{"id":"a6b12a11a9440ae6a008f3008fb79c6c","_format":"hh-sol-build-info-1","solcVersion":"0.8.4","solcLongVersion":"0.8.4+commit.c7e474f2","input":{"language":"Solidity","sources":{"contracts/Dependencies.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\n\n// for compile time artifacts\n"},"@openzeppelin/contracts/security/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    constructor() {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        require(!paused(), \"Pausable: paused\");\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        require(paused(), \"Pausable: not paused\");\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    function safeTransfer(\n        IERC20 token,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    function safeTransferFrom(\n        IERC20 token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    function safeIncreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        uint256 newAllowance = token.allowance(address(this), spender) + value;\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n    }\n\n    function safeDecreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            uint256 newAllowance = oldAllowance - value;\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n        }\n    }\n\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        if (returndata.length > 0) {\n            // Return data is optional\n            require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.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(\n        address from,\n        address to,\n        uint256 amount\n    ) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.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                /// @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}\n"},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n    using Address for address;\n    using Strings for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    // Mapping from token ID to owner address\n    mapping(uint256 => address) private _owners;\n\n    // Mapping owner address to token count\n    mapping(address => uint256) private _balances;\n\n    // Mapping from token ID to approved address\n    mapping(uint256 => address) private _tokenApprovals;\n\n    // Mapping from owner to operator approvals\n    mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n        return\n            interfaceId == type(IERC721).interfaceId ||\n            interfaceId == type(IERC721Metadata).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual override returns (uint256) {\n        require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n        address owner = _owners[tokenId];\n        require(owner != address(0), \"ERC721: invalid token ID\");\n        return owner;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n        _requireMinted(tokenId);\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overridden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual override {\n        address owner = ERC721.ownerOf(tokenId);\n        require(to != owner, \"ERC721: approval to current owner\");\n\n        require(\n            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n            \"ERC721: approve caller is not token owner nor approved for all\"\n        );\n\n        _approve(to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual override returns (address) {\n        _requireMinted(tokenId);\n\n        return _tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual override {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n        return _operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) public virtual override {\n        //solhint-disable-next-line max-line-length\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner nor approved\");\n\n        _transfer(from, to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) public virtual override {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) public virtual override {\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner nor approved\");\n        _safeTransfer(from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * `data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) internal virtual {\n        _transfer(from, to, tokenId);\n        require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n    }\n\n    /**\n     * @dev Returns whether `tokenId` exists.\n     *\n     * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n     *\n     * Tokens start existing when they are minted (`_mint`),\n     * and stop existing when they are burned (`_burn`).\n     */\n    function _exists(uint256 tokenId) internal view virtual returns (bool) {\n        return _owners[tokenId] != address(0);\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `tokenId`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n        address owner = ERC721.ownerOf(tokenId);\n        return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n    }\n\n    /**\n     * @dev Safely mints `tokenId` and transfers it to `to`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal virtual {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) internal virtual {\n        _mint(to, tokenId);\n        require(\n            _checkOnERC721Received(address(0), to, tokenId, data),\n            \"ERC721: transfer to non ERC721Receiver implementer\"\n        );\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal virtual {\n        require(to != address(0), \"ERC721: mint to the zero address\");\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        _beforeTokenTransfer(address(0), to, tokenId);\n\n        _balances[to] += 1;\n        _owners[tokenId] = to;\n\n        emit Transfer(address(0), to, tokenId);\n\n        _afterTokenTransfer(address(0), to, tokenId);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal virtual {\n        address owner = ERC721.ownerOf(tokenId);\n\n        _beforeTokenTransfer(owner, address(0), tokenId);\n\n        // Clear approvals\n        _approve(address(0), tokenId);\n\n        _balances[owner] -= 1;\n        delete _owners[tokenId];\n\n        emit Transfer(owner, address(0), tokenId);\n\n        _afterTokenTransfer(owner, address(0), tokenId);\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(\n        address from,\n        address to,\n        uint256 tokenId\n    ) internal virtual {\n        require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n        require(to != address(0), \"ERC721: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, tokenId);\n\n        // Clear approvals from the previous owner\n        _approve(address(0), tokenId);\n\n        _balances[from] -= 1;\n        _balances[to] += 1;\n        _owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        _afterTokenTransfer(from, to, tokenId);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * Emits an {Approval} event.\n     */\n    function _approve(address to, uint256 tokenId) internal virtual {\n        _tokenApprovals[tokenId] = to;\n        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(\n        address owner,\n        address operator,\n        bool approved\n    ) internal virtual {\n        require(owner != operator, \"ERC721: approve to caller\");\n        _operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Reverts if the `tokenId` has not been minted yet.\n     */\n    function _requireMinted(uint256 tokenId) internal view virtual {\n        require(_exists(tokenId), \"ERC721: invalid token ID\");\n    }\n\n    /**\n     * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n     * The call is not executed if the target address is not a contract.\n     *\n     * @param from address representing the previous owner of the given token ID\n     * @param to target address that will receive the tokens\n     * @param tokenId uint256 ID of the token to be transferred\n     * @param data bytes optional data to send along with the call\n     * @return bool whether the call correctly returned the expected magic value\n     */\n    function _checkOnERC721Received(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) private returns (bool) {\n        if (to.isContract()) {\n            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n                return retval == IERC721Receiver.onERC721Received.selector;\n            } catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n                } else {\n                    /// @solidity memory-safe-assembly\n                    assembly {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        } else {\n            return true;\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any token transfer. This includes minting\n     * and burning.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n     * transferred to `to`.\n     * - When `from` is zero, `tokenId` will be minted for `to`.\n     * - When `to` is zero, ``from``'s `tokenId` 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(\n        address from,\n        address to,\n        uint256 tokenId\n    ) 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.\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(\n        address from,\n        address to,\n        uint256 tokenId\n    ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n    /**\n     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n     */\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n     */\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n    /**\n     * @dev Returns the number of tokens in ``owner``'s account.\n     */\n    function balanceOf(address owner) external view returns (uint256 balance);\n\n    /**\n     * @dev Returns the owner of the `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function ownerOf(uint256 tokenId) external view returns (address owner);\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes calldata data\n    ) external;\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) external;\n\n    /**\n     * @dev Transfers `tokenId` token from `from` to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) external;\n\n    /**\n     * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n     * The approval is cleared when the token is transferred.\n     *\n     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n     *\n     * Requirements:\n     *\n     * - The caller must own the token or be an approved operator.\n     * - `tokenId` must exist.\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address to, uint256 tokenId) external;\n\n    /**\n     * @dev Approve or remove `operator` as an operator for the caller.\n     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n     *\n     * Requirements:\n     *\n     * - The `operator` cannot be the caller.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function setApprovalForAll(address operator, bool _approved) external;\n\n    /**\n     * @dev Returns the account approved for `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function getApproved(uint256 tokenId) external view returns (address operator);\n\n    /**\n     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n     *\n     * See {setApprovalForAll}\n     */\n    function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n    /**\n     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n     * by `operator` from `from`, this function is called.\n     *\n     * It must return its Solidity selector to confirm the token transfer.\n     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n     *\n     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n     */\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n    /**\n     * @dev Returns the token collection name.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the token collection symbol.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n     */\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant _HEX_SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        // Inspired by OraclizeAPI's implementation - MIT licence\n        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n        if (value == 0) {\n            return \"0\";\n        }\n        uint256 temp = value;\n        uint256 digits;\n        while (temp != 0) {\n            digits++;\n            temp /= 10;\n        }\n        bytes memory buffer = new bytes(digits);\n        while (value != 0) {\n            digits -= 1;\n            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n            value /= 10;\n        }\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        if (value == 0) {\n            return \"0x00\";\n        }\n        uint256 temp = value;\n        uint256 length = 0;\n        while (temp != 0) {\n            length++;\n            temp >>= 8;\n        }\n        return toHexString(value, length);\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _HEX_SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n    /**\n     * @dev Returns the total amount of tokens stored by the contract.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n     * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n     */\n    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\n\n    /**\n     * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n     * Use along with {totalSupply} to enumerate all tokens.\n     */\n    function tokenByIndex(uint256 index) external view returns (uint256);\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/ERC721Enumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC721.sol\";\nimport \"./IERC721Enumerable.sol\";\n\n/**\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\n * enumerability of all the token ids in the contract as well as all token ids owned by each\n * account.\n */\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\n    // Mapping from owner to list of owned token IDs\n    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\n\n    // Mapping from token ID to index of the owner tokens list\n    mapping(uint256 => uint256) private _ownedTokensIndex;\n\n    // Array with all token ids, used for enumeration\n    uint256[] private _allTokens;\n\n    // Mapping from token id to position in the allTokens array\n    mapping(uint256 => uint256) private _allTokensIndex;\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\n        return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n     */\n    function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n        require(index < ERC721.balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n        return _ownedTokens[owner][index];\n    }\n\n    /**\n     * @dev See {IERC721Enumerable-totalSupply}.\n     */\n    function totalSupply() public view virtual override returns (uint256) {\n        return _allTokens.length;\n    }\n\n    /**\n     * @dev See {IERC721Enumerable-tokenByIndex}.\n     */\n    function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n        require(index < ERC721Enumerable.totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n        return _allTokens[index];\n    }\n\n    /**\n     * @dev Hook that is called before any token transfer. This includes minting\n     * and burning.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n     * transferred to `to`.\n     * - When `from` is zero, `tokenId` will be minted for `to`.\n     * - When `to` is zero, ``from``'s `tokenId` will be burned.\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(\n        address from,\n        address to,\n        uint256 tokenId\n    ) internal virtual override {\n        super._beforeTokenTransfer(from, to, tokenId);\n\n        if (from == address(0)) {\n            _addTokenToAllTokensEnumeration(tokenId);\n        } else if (from != to) {\n            _removeTokenFromOwnerEnumeration(from, tokenId);\n        }\n        if (to == address(0)) {\n            _removeTokenFromAllTokensEnumeration(tokenId);\n        } else if (to != from) {\n            _addTokenToOwnerEnumeration(to, tokenId);\n        }\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's ownership-tracking data structures.\n     * @param to address representing the new owner of the given token ID\n     * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n     */\n    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n        uint256 length = ERC721.balanceOf(to);\n        _ownedTokens[to][length] = tokenId;\n        _ownedTokensIndex[tokenId] = length;\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's token tracking data structures.\n     * @param tokenId uint256 ID of the token to be added to the tokens list\n     */\n    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n        _allTokensIndex[tokenId] = _allTokens.length;\n        _allTokens.push(tokenId);\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n     * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n     * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n     * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n     * @param from address representing the previous owner of the given token ID\n     * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n     */\n    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n        // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\n        uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary\n        if (tokenIndex != lastTokenIndex) {\n            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n        }\n\n        // This also deletes the contents at the last position of the array\n        delete _ownedTokensIndex[tokenId];\n        delete _ownedTokens[from][lastTokenIndex];\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's token tracking data structures.\n     * This has O(1) time complexity, but alters the order of the _allTokens array.\n     * @param tokenId uint256 ID of the token to be removed from the tokens list\n     */\n    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n        // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = _allTokens.length - 1;\n        uint256 tokenIndex = _allTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n        // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n        // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n        uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n        // This also deletes the contents at the last position of the array\n        delete _allTokensIndex[tokenId];\n        _allTokens.pop();\n    }\n}\n"},"contracts/MAHAXLocker.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {ERC2981, IERC165} from \"@openzeppelin/contracts/token/common/ERC2981.sol\";\nimport {IERC721Receiver} from \"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {AccessControl} from \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport {ERC721Enumerable} from \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\";\n\nimport {ITokenURIGenerator} from \"./interfaces/ITokenURIGenerator.sol\";\nimport {IRegistry} from \"./interfaces/IRegistry.sol\";\nimport {INFTLocker} from \"./interfaces/INFTLocker.sol\";\nimport {INFTStaker} from \"./interfaces/INFTStaker.sol\";\n\n/**\n  @title Voting Escrow\n  @author Curve Finance\n  @notice Votes have a weight depending on time, so that users are\n  committed to the future of (whatever they are voting for)\n  @dev Vote weight decays linearly over time. Lock time cannot be\n  more than `MAXTIME` (4 years).\n\n  # Voting escrow to have time-weighted votes\n  # Votes have a weight depending on time, so that users are committed\n  # to the future of (whatever they are voting for).\n  # The weight in this implementation is linear, and lock cannot be more than maxtime:\n  # w ^\n  # 1 +        /\n  #   |      /\n  #   |    /\n  #   |  /\n  #   |/\n  # 0 +--------+------> time\n  # maxtime (4 years?)\n*/\n\ncontract MAHAXLocker is ReentrancyGuard, INFTLocker, AccessControl, ERC2981 {\n    IRegistry public override registry;\n\n    uint256 internal constant WEEK = 1 weeks;\n    uint256 internal constant MAXTIME = 4 * 365 * 86400;\n    int128 internal constant iMAXTIME = 4 * 365 * 86400;\n    uint256 internal constant MULTIPLIER = 1 ether;\n\n    bool public inBootstrapMode = true;\n\n    ITokenURIGenerator public renderingContract;\n\n    uint256 public supply;\n    mapping(uint256 => LockedBalance) public locked;\n\n    mapping(uint256 => uint256) public ownershipChange;\n\n    uint256 public override epoch;\n    mapping(uint256 => Point) internal _pointHistory; // epoch -> unsigned point\n    mapping(uint256 => Point[1000000000]) internal _userPointHistory; // user -> Point[userEpoch]\n\n    mapping(uint256 => uint256) public override userPointEpoch;\n    mapping(uint256 => int128) public slopeChanges; // time -> signed slope change\n\n    string public constant name = \"Locked MAHA NFT\";\n    string public constant symbol = \"MAHAX\";\n    string public constant version = \"1.0.0\";\n    uint8 public constant decimals = 18;\n    uint256 public minLockAmount = 99 * 1e18;\n\n    /// @dev Current count of token\n    uint256 internal tokenId;\n\n    /// @dev Mapping from NFT ID to the address that owns it.\n    mapping(uint256 => address) internal idToOwner;\n\n    /// @dev Mapping from NFT ID to approved address.\n    mapping(uint256 => address) internal idToApprovals;\n\n    /// @dev Mapping from owner address to count of his tokens.\n    mapping(address => uint256) internal ownerToNFTokenCount;\n\n    /// @dev Mapping from owner address to mapping of index to tokenIds\n    mapping(address => mapping(uint256 => uint256))\n        internal ownerToNFTokenIdList;\n\n    /// @dev Mapping from NFT ID to index of owner\n    mapping(uint256 => uint256) internal tokenToOwnerIndex;\n\n    /// @dev Mapping from owner address to mapping of operator addresses.\n    mapping(address => mapping(address => bool)) internal ownerToOperators;\n\n    bytes32 public constant MIGRATION_ROLE = keccak256(\"MIGRATION_ROLE\");\n\n    modifier onlyGovernance() {\n        require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"not governance\");\n        _;\n    }\n\n    modifier onlyMigrator() {\n        require(hasRole(MIGRATION_ROLE, msg.sender), \"not migrator\");\n        _;\n    }\n\n    constructor(\n        address _registry,\n        address _royaltyRcv,\n        address _renderingContract,\n        uint96 _royaltyFeeNumerator\n    ) {\n        registry = IRegistry(_registry);\n\n        _pointHistory[0].blk = block.number;\n        _pointHistory[0].ts = block.timestamp;\n\n        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n        _setupRole(MIGRATION_ROLE, msg.sender);\n\n        _setDefaultRoyalty(_royaltyRcv, _royaltyFeeNumerator);\n        renderingContract = ITokenURIGenerator(_renderingContract);\n    }\n\n    /// @dev Interface identification is specified in ERC-165.\n    /// @param _interfaceID Id of the interface\n    function supportsInterface(bytes4 _interfaceID)\n        public\n        view\n        override(ERC2981, IERC165, AccessControl)\n        returns (bool)\n    {\n        return\n            bytes4(0x01ffc9a7) == _interfaceID || // ERC165\n            bytes4(0x80ac58cd) == _interfaceID || // ERC721\n            bytes4(0x5b5e139f) == _interfaceID || // ERC721Metadata\n            super.supportsInterface(_interfaceID);\n    }\n\n    function totalSupplyWithoutDecay()\n        external\n        view\n        override\n        returns (uint256)\n    {\n        return supply;\n    }\n\n    function pointHistory(uint256 val)\n        external\n        view\n        override\n        returns (Point memory)\n    {\n        return _pointHistory[val];\n    }\n\n    function userPointHistory(uint256 val, uint256 loc)\n        external\n        view\n        override\n        returns (Point memory)\n    {\n        return _userPointHistory[val][loc];\n    }\n\n    /// @notice Get the most recently recorded rate of voting power decrease for `_tokenId`\n    /// @param _tokenId token of the NFT\n    /// @return Value of the slope\n    function getLastUserSlope(uint256 _tokenId) external view returns (int128) {\n        uint256 uepoch = userPointEpoch[_tokenId];\n        return _userPointHistory[_tokenId][uepoch].slope;\n    }\n\n    /// @notice Get the timestamp for checkpoint `_idx` for `_tokenId`\n    /// @param _tokenId token of the NFT\n    /// @param _idx User epoch number\n    /// @return Epoch time of the checkpoint\n    function userPointHistoryTs(uint256 _tokenId, uint256 _idx)\n        external\n        view\n        returns (uint256)\n    {\n        return _userPointHistory[_tokenId][_idx].ts;\n    }\n\n    /// @notice Get timestamp when `_tokenId`'s lock finishes\n    /// @param _tokenId User NFT\n    /// @return Epoch time of the lock end\n    function lockedEnd(uint256 _tokenId) external view returns (uint256) {\n        return locked[_tokenId].end;\n    }\n\n    /// @dev Returns the number of NFTs owned by `_owner`.\n    ///      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\n    /// @param _owner Address for whom to query the balance.\n    function _balance(address _owner) internal view returns (uint256) {\n        return ownerToNFTokenCount[_owner];\n    }\n\n    /// @dev Returns the number of NFTs owned by `_owner`.\n    ///      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\n    /// @param _owner Address for whom to query the balance.\n    function balanceOf(address _owner)\n        external\n        view\n        override\n        returns (uint256)\n    {\n        return _balance(_owner);\n    }\n\n    /// @dev Returns the address of the owner of the NFT.\n    /// @param _tokenId The identifier for an NFT.\n    function _ownerOf(uint256 _tokenId) internal view returns (address) {\n        return idToOwner[_tokenId];\n    }\n\n    /// @dev Returns the address of the owner of the NFT.\n    /// @param _tokenId The identifier for an NFT.\n    function ownerOf(uint256 _tokenId)\n        external\n        view\n        override\n        returns (address)\n    {\n        return _ownerOf(_tokenId);\n    }\n\n    /// @dev Returns the voting power of the `_owner`.\n    ///      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\n    /// @param _owner Address for whom to query the voting power of.\n    function votingPowerOf(address _owner)\n        external\n        view\n        returns (uint256 _power)\n    {\n        for (uint256 index = 0; index < ownerToNFTokenCount[_owner]; index++) {\n            uint256 _tokenId = ownerToNFTokenIdList[_owner][index];\n            _power += _balanceOfNFT(_tokenId, block.timestamp);\n        }\n    }\n\n    /// @dev Get the approved address for a single NFT.\n    /// @param _tokenId ID of the NFT to query the approval of.\n    function getApproved(uint256 _tokenId)\n        external\n        view\n        override\n        returns (address)\n    {\n        return idToApprovals[_tokenId];\n    }\n\n    /// @dev Checks if `_operator` is an approved operator for `_owner`.\n    /// @param _owner The address that owns the NFTs.\n    /// @param _operator The address that acts on behalf of the owner.\n    function isApprovedForAll(address _owner, address _operator)\n        external\n        view\n        override\n        returns (bool)\n    {\n        return (ownerToOperators[_owner])[_operator];\n    }\n\n    /// @dev  Get token by index\n    function tokenOfOwnerByIndex(address _owner, uint256 _tokenIndex)\n        external\n        view\n        returns (uint256)\n    {\n        return ownerToNFTokenIdList[_owner][_tokenIndex];\n    }\n\n    /// @dev Returns whether the given spender can transfer a given token ID\n    /// @param _spender address of the spender to query\n    /// @param _tokenId uint ID of the token to be transferred\n    /// @return bool whether the msg.sender is approved for the given token ID, is an operator of the owner, or is the owner of the token\n    function _isApprovedOrOwner(address _spender, uint256 _tokenId)\n        internal\n        view\n        returns (bool)\n    {\n        address owner = idToOwner[_tokenId];\n        bool spenderIsOwner = owner == _spender;\n        bool spenderIsApproved = _spender == idToApprovals[_tokenId];\n        bool spenderIsApprovedForAll = (ownerToOperators[owner])[_spender];\n        return spenderIsOwner || spenderIsApproved || spenderIsApprovedForAll;\n    }\n\n    function isApprovedOrOwner(address _spender, uint256 _tokenId)\n        external\n        view\n        override\n        returns (bool)\n    {\n        return _isApprovedOrOwner(_spender, _tokenId);\n    }\n\n    /// @dev Add a NFT to an index mapping to a given address\n    /// @param _to address of the receiver\n    /// @param _tokenId uint ID Of the token to be added\n    function _addTokenToOwnerList(address _to, uint256 _tokenId) internal {\n        uint256 currentCount = _balance(_to);\n        ownerToNFTokenIdList[_to][currentCount] = _tokenId;\n        tokenToOwnerIndex[_tokenId] = currentCount;\n    }\n\n    /// @dev Remove a NFT from an index mapping to a given address\n    /// @param _from address of the sender\n    /// @param _tokenId uint ID Of the token to be removed\n    function _removeTokenFromOwnerList(address _from, uint256 _tokenId)\n        internal\n    {\n        // Delete\n        uint256 currentCount = _balance(_from) - 1;\n        uint256 currentIndex = tokenToOwnerIndex[_tokenId];\n\n        if (currentCount == currentIndex) {\n            // update ownerToNFTokenIdList\n            ownerToNFTokenIdList[_from][currentCount] = 0;\n            // update tokenToOwnerIndex\n            tokenToOwnerIndex[_tokenId] = 0;\n        } else {\n            uint256 lastTokenId = ownerToNFTokenIdList[_from][currentCount];\n\n            // Add\n            // update ownerToNFTokenIdList\n            ownerToNFTokenIdList[_from][currentIndex] = lastTokenId;\n            // update tokenToOwnerIndex\n            tokenToOwnerIndex[lastTokenId] = currentIndex;\n\n            // Delete\n            // update ownerToNFTokenIdList\n            ownerToNFTokenIdList[_from][currentCount] = 0;\n            // update tokenToOwnerIndex\n            tokenToOwnerIndex[_tokenId] = 0;\n        }\n    }\n\n    /// @dev Add a NFT to a given address\n    ///      Throws if `_tokenId` is owned by someone.\n    function _addTokenTo(address _to, uint256 _tokenId) internal {\n        // Throws if `_tokenId` is owned by someone\n        assert(idToOwner[_tokenId] == address(0));\n        // Change the owner\n        idToOwner[_tokenId] = _to;\n        // Update owner token index tracking\n        _addTokenToOwnerList(_to, _tokenId);\n        // Change count tracking\n        ownerToNFTokenCount[_to] += 1;\n    }\n\n    /// @dev Remove a NFT from a given address\n    ///      Throws if `_from` is not the current owner.\n    function _removeTokenFrom(address _from, uint256 _tokenId) internal {\n        // Throws if `_from` is not the current owner\n        assert(idToOwner[_tokenId] == _from);\n        // Change the owner\n        idToOwner[_tokenId] = address(0);\n        // Update owner token index tracking\n        _removeTokenFromOwnerList(_from, _tokenId);\n        // Change count tracking\n        ownerToNFTokenCount[_from] -= 1;\n    }\n\n    /// @dev Clear an approval of a given address\n    ///      Throws if `_owner` is not the current owner.\n    function _clearApproval(address _owner, uint256 _tokenId) internal {\n        // Throws if `_owner` is not the current owner\n        assert(idToOwner[_tokenId] == _owner);\n        if (idToApprovals[_tokenId] != address(0)) {\n            // Reset approvals\n            idToApprovals[_tokenId] = address(0);\n        }\n    }\n\n    /// @dev Exeute transfer of a NFT.\n    ///      Throws unless `msg.sender` is the current owner, an authorized operator, or the approved\n    ///      address for this NFT. (NOTE: `msg.sender` not allowed in internal function so pass `_sender`.)\n    ///      Throws if `_to` is the zero address.\n    ///      Throws if `_from` is not the current owner.\n    ///      Throws if `_tokenId` is not a valid NFT.\n    function _transferFrom(\n        address _from,\n        address _to,\n        uint256 _tokenId,\n        address _sender\n    ) internal {\n        // Check requirements\n        require(!_isStaked(_tokenId), \"staked\");\n        require(_isApprovedOrOwner(_sender, _tokenId), \"not approved sender\");\n        // Clear approval. Throws if `_from` is not the current owner\n        _clearApproval(_from, _tokenId);\n        // Remove NFT. Throws if `_tokenId` is not a valid NFT\n        _removeTokenFrom(_from, _tokenId);\n        // Add NFT\n        _addTokenTo(_to, _tokenId);\n        // Set the block of ownership transfer (for Flash NFT protection)\n        ownershipChange[_tokenId] = block.number;\n        // Log the transfer\n        emit Transfer(_from, _to, _tokenId);\n    }\n\n    /* TRANSFER FUNCTIONS */\n    /// @dev Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT.\n    ///      Throws if `_from` is not the current owner.\n    ///      Throws if `_to` is the zero address.\n    ///      Throws if `_tokenId` is not a valid NFT.\n    /// @notice The caller is responsible to confirm that `_to` is capable of receiving NFTs or else\n    ///        they maybe be permanently lost.\n    /// @param _from The current owner of the NFT.\n    /// @param _to The new owner.\n    /// @param _tokenId The NFT to transfer.\n    function transferFrom(\n        address _from,\n        address _to,\n        uint256 _tokenId\n    ) external override {\n        _transferFrom(_from, _to, _tokenId, msg.sender);\n    }\n\n    function _isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize, which returns 0 for contracts in\n        // construction, since the code is only stored at the end of the\n        // constructor execution.\n        uint256 size;\n        assembly {\n            size := extcodesize(account)\n        }\n        return size > 0;\n    }\n\n    /// @dev Transfers the ownership of an NFT from one address to another address.\n    ///      Throws unless `msg.sender` is the current owner, an authorized operator, or the\n    ///      approved address for this NFT.\n    ///      Throws if `_from` is not the current owner.\n    ///      Throws if `_to` is the zero address.\n    ///      Throws if `_tokenId` is not a valid NFT.\n    ///      If `_to` is a smart contract, it calls `onERC721Received` on `_to` and throws if\n    ///      the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint,bytes)\"))`.\n    /// @param _from The current owner of the NFT.\n    /// @param _to The new owner.\n    /// @param _tokenId The NFT to transfer.\n    /// @param _data Additional data with no specified format, sent in call to `_to`.\n    function safeTransferFrom(\n        address _from,\n        address _to,\n        uint256 _tokenId,\n        bytes memory _data\n    ) public override {\n        _transferFrom(_from, _to, _tokenId, msg.sender);\n\n        if (_isContract(_to)) {\n            // Throws if transfer destination is a contract which does not implement 'onERC721Received'\n            try\n                IERC721Receiver(_to).onERC721Received(\n                    msg.sender,\n                    _from,\n                    _tokenId,\n                    _data\n                )\n            returns (bytes4) {} catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    revert(\n                        \"ERC721: transfer to non ERC721Receiver implementer\"\n                    );\n                } else {\n                    assembly {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        }\n    }\n\n    /// @dev Transfers the ownership of an NFT from one address to another address.\n    ///      Throws unless `msg.sender` is the current owner, an authorized operator, or the\n    ///      approved address for this NFT.\n    ///      Throws if `_from` is not the current owner.\n    ///      Throws if `_to` is the zero address.\n    ///      Throws if `_tokenId` is not a valid NFT.\n    ///      If `_to` is a smart contract, it calls `onERC721Received` on `_to` and throws if\n    ///      the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint,bytes)\"))`.\n    /// @param _from The current owner of the NFT.\n    /// @param _to The new owner.\n    /// @param _tokenId The NFT to transfer.\n    function safeTransferFrom(\n        address _from,\n        address _to,\n        uint256 _tokenId\n    ) external override {\n        safeTransferFrom(_from, _to, _tokenId, \"\");\n    }\n\n    /// @dev Set or reaffirm the approved address for an NFT. The zero address indicates there is no approved address.\n    ///      Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\n    ///      Throws if `_tokenId` is not a valid NFT. (NOTE: This is not written the EIP)\n    ///      Throws if `_approved` is the current owner. (NOTE: This is not written the EIP)\n    /// @param _approved Address to be approved for the given NFT ID.\n    /// @param _tokenId ID of the token to be approved.\n    function _approve(address _approved, uint256 _tokenId) internal {\n        address owner = idToOwner[_tokenId];\n        // Throws if `_tokenId` is not a valid NFT\n        require(owner != address(0), \"owner is 0x0\");\n        // Throws if `_approved` is the current owner\n        require(_approved != owner, \"not owner\");\n        // Check requirements\n        bool senderIsOwner = (idToOwner[_tokenId] == msg.sender);\n        bool senderIsApprovedForAll = (ownerToOperators[owner])[msg.sender];\n        require(senderIsOwner || senderIsApprovedForAll, \"invalid sender\");\n        // Set the approval\n        idToApprovals[_tokenId] = _approved;\n        emit Approval(owner, _approved, _tokenId);\n    }\n\n    /// @dev Set or reaffirm the approved address for an NFT. The zero address indicates there is no approved address.\n    ///      Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\n    ///      Throws if `_tokenId` is not a valid NFT. (NOTE: This is not written the EIP)\n    ///      Throws if `_approved` is the current owner. (NOTE: This is not written the EIP)\n    /// @param _approved Address to be approved for the given NFT ID.\n    /// @param _tokenId ID of the token to be approved.\n    function approve(address _approved, uint256 _tokenId) external override {\n        _approve(_approved, _tokenId);\n    }\n\n    /// @dev Enables or disables approval for a third party (\"operator\") to manage all of\n    ///      `msg.sender`'s assets. It also emits the ApprovalForAll event.\n    ///      Throws if `_operator` is the `msg.sender`. (NOTE: This is not written the EIP)\n    /// @notice This works even if sender doesn't own any tokens at the time.\n    /// @param _operator Address to add to the set of authorized operators.\n    /// @param _approved True if the operators is approved, false to revoke approval.\n    function setApprovalForAll(address _operator, bool _approved)\n        external\n        override\n    {\n        // Throws if `_operator` is the `msg.sender`\n        assert(_operator != msg.sender);\n        ownerToOperators[msg.sender][_operator] = _approved;\n        emit ApprovalForAll(msg.sender, _operator, _approved);\n    }\n\n    /// @dev Function to mint tokens\n    ///      Throws if `_to` is zero address.\n    ///      Throws if `_tokenId` is owned by someone.\n    /// @param _to The address that will receive the minted tokens.\n    /// @param _tokenId The token id to mint.\n    /// @return A boolean that indicates if the operation was successful.\n    function _mint(address _to, uint256 _tokenId) internal returns (bool) {\n        // Throws if `_to` is zero address\n        assert(_to != address(0));\n        // Add NFT. Throws if `_tokenId` is owned by someone\n        _addTokenTo(_to, _tokenId);\n        emit Transfer(address(0), _to, _tokenId);\n        return true;\n    }\n\n    /// @notice Record global and per-user data to checkpoint\n    /// @param _tokenId NFT token ID. No user checkpoint if 0\n    /// @param oldLocked Pevious locked amount / end lock time for the user\n    /// @param newLocked New locked amount / end lock time for the user\n    function _checkpoint(\n        uint256 _tokenId,\n        LockedBalance memory oldLocked,\n        LockedBalance memory newLocked\n    ) internal {\n        Point memory uOld;\n        Point memory uNew;\n        int128 oldDslope = 0;\n        int128 newDslope = 0;\n        uint256 _epoch = epoch;\n\n        if (_tokenId != 0) {\n            // Calculate slopes and biases\n            // Kept at zero when they have to\n            if (oldLocked.end > block.timestamp && oldLocked.amount > 0) {\n                uOld.slope = oldLocked.amount / iMAXTIME;\n                uOld.bias =\n                    uOld.slope *\n                    int128(int256(oldLocked.end - block.timestamp));\n            }\n            if (newLocked.end > block.timestamp && newLocked.amount > 0) {\n                uNew.slope = newLocked.amount / iMAXTIME;\n                uNew.bias =\n                    uNew.slope *\n                    int128(int256(newLocked.end - block.timestamp));\n            }\n\n            // Read values of scheduled changes in the slope\n            // oldLocked.end can be in the past and in the future\n            // newLocked.end can ONLY by in the FUTURE unless everything expired: than zeros\n            oldDslope = slopeChanges[oldLocked.end];\n            if (newLocked.end != 0) {\n                if (newLocked.end == oldLocked.end) {\n                    newDslope = oldDslope;\n                } else {\n                    newDslope = slopeChanges[newLocked.end];\n                }\n            }\n        }\n\n        Point memory lastPoint = Point({\n            bias: 0,\n            slope: 0,\n            ts: block.timestamp,\n            blk: block.number\n        });\n        if (_epoch > 0) {\n            lastPoint = _pointHistory[_epoch];\n        }\n        uint256 lastCheckpoint = lastPoint.ts;\n        // initialLastPoint is used for extrapolation to calculate block number\n        // (approximately, for *At methods) and save them\n        // as we cannot figure that out exactly from inside the contract\n        Point memory initialLastPoint = lastPoint;\n        uint256 blockSlope = 0; // dblock/dt\n        if (block.timestamp > lastPoint.ts) {\n            blockSlope =\n                (MULTIPLIER * (block.number - lastPoint.blk)) /\n                (block.timestamp - lastPoint.ts);\n        }\n        // If last point is already recorded in this block, slope=0\n        // But that's ok b/c we know the block in such case\n\n        // Go over weeks to fill history and calculate what the current point is\n        {\n            uint256 tI = (lastCheckpoint / WEEK) * WEEK;\n            for (uint256 i = 0; i < 255; ++i) {\n                // Hopefully it won't happen that this won't get used in 5 years!\n                // If it does, users will be able to withdraw but vote weight will be broken\n                tI += WEEK;\n                int128 dSlope = 0;\n                if (tI > block.timestamp) {\n                    tI = block.timestamp;\n                } else {\n                    dSlope = slopeChanges[tI];\n                }\n                lastPoint.bias -=\n                    lastPoint.slope *\n                    int128(int256(tI - lastCheckpoint));\n                lastPoint.slope += dSlope;\n                if (lastPoint.bias < 0) {\n                    // This can happen\n                    lastPoint.bias = 0;\n                }\n                if (lastPoint.slope < 0) {\n                    // This cannot happen - just in case\n                    lastPoint.slope = 0;\n                }\n                lastCheckpoint = tI;\n                lastPoint.ts = tI;\n                lastPoint.blk =\n                    initialLastPoint.blk +\n                    (blockSlope * (tI - initialLastPoint.ts)) /\n                    MULTIPLIER;\n                _epoch += 1;\n                if (tI == block.timestamp) {\n                    lastPoint.blk = block.number;\n                    break;\n                } else {\n                    _pointHistory[_epoch] = lastPoint;\n                }\n            }\n        }\n\n        epoch = _epoch;\n        // Now _pointHistory is filled until t=now\n\n        if (_tokenId != 0) {\n            // If last point was in this block, the slope change has been applied already\n            // But in such case we have 0 slope(s)\n            lastPoint.slope += (uNew.slope - uOld.slope);\n            lastPoint.bias += (uNew.bias - uOld.bias);\n            if (lastPoint.slope < 0) {\n                lastPoint.slope = 0;\n            }\n            if (lastPoint.bias < 0) {\n                lastPoint.bias = 0;\n            }\n        }\n\n        // Record the changed point into history\n        _pointHistory[_epoch] = lastPoint;\n\n        if (_tokenId != 0) {\n            // Schedule the slope changes (slope is going down)\n            // We subtract new_user_slope from [newLocked.end]\n            // and add old_user_slope to [oldLocked.end]\n            if (oldLocked.end > block.timestamp) {\n                // oldDslope was <something> - uOld.slope, so we cancel that\n                oldDslope += uOld.slope;\n                if (newLocked.end == oldLocked.end) {\n                    oldDslope -= uNew.slope; // It was a new deposit, not extension\n                }\n                slopeChanges[oldLocked.end] = oldDslope;\n            }\n\n            if (newLocked.end > block.timestamp) {\n                if (newLocked.end > oldLocked.end) {\n                    newDslope -= uNew.slope; // old slope disappeared at this point\n                    slopeChanges[newLocked.end] = newDslope;\n                }\n                // else: we recorded it already in oldDslope\n            }\n            // Now handle user history\n            uint256 userEpoch = userPointEpoch[_tokenId] + 1;\n\n            userPointEpoch[_tokenId] = userEpoch;\n            uNew.ts = block.timestamp;\n            uNew.blk = block.number;\n            _userPointHistory[_tokenId][userEpoch] = uNew;\n        }\n    }\n\n    /// @notice Deposit and lock tokens for a user\n    /// @param _tokenId NFT that holds lock\n    /// @param _value Amount to deposit\n    /// @param unlockTime New time when to unlock the tokens, or 0 if unchanged\n    /// @param lockedBalance Previous locked amount / timestamp\n    /// @param depositType The type of deposit\n    function _depositFor(\n        uint256 _tokenId,\n        uint256 _value,\n        uint256 unlockTime,\n        LockedBalance memory lockedBalance,\n        DepositType depositType,\n        bool _shouldPullUserMaha,\n        bool _stakeNFT\n    ) internal {\n        registry.ensureNotPaused();\n\n        LockedBalance memory _locked = lockedBalance;\n        uint256 supplyBefore = supply;\n\n        supply = supplyBefore + _value;\n        LockedBalance memory oldLocked;\n        (oldLocked.amount, oldLocked.end) = (_locked.amount, _locked.end);\n\n        // Adding to existing lock, or if a lock is expired - creating a new one\n        _locked.amount += int128(int256(_value));\n        if (unlockTime != 0) {\n            _locked.end = unlockTime;\n        }\n        if (depositType == DepositType.CREATE_LOCK_TYPE) {\n            _locked.start = block.timestamp;\n        }\n\n        locked[_tokenId] = _locked;\n\n        // Possibilities:\n        // Both oldLocked.end could be current or expired (>/< block.timestamp)\n        // value == 0 (extend lock) or value > 0 (add to lock or extend lock)\n        // _locked.end > block.timestamp (always)\n        _checkpoint(_tokenId, oldLocked, _locked);\n\n        address from = msg.sender;\n        if (\n            _value != 0 &&\n            depositType != DepositType.MERGE_TYPE &&\n            _shouldPullUserMaha\n        ) {\n            assert(\n                IERC20(registry.maha()).transferFrom(\n                    from,\n                    address(this),\n                    _value\n                )\n            );\n        }\n\n        if (_stakeNFT) INFTStaker(registry.staker())._stakeFromLock(_tokenId);\n\n        emit Deposit(\n            from,\n            _tokenId,\n            _value,\n            _locked.end,\n            depositType,\n            block.timestamp\n        );\n        emit Supply(supplyBefore, supplyBefore + _value);\n    }\n\n    function merge(uint256 _from, uint256 _to) external override {\n        require(!_isStaked(_from), \"from staked\");\n        require(!_isStaked(_to), \"to staked\");\n\n        require(_from != _to, \"same nft\");\n        require(_isApprovedOrOwner(msg.sender, _from), \"from not approved\");\n        require(_isApprovedOrOwner(msg.sender, _to), \"to not approved\");\n\n        LockedBalance memory _locked0 = locked[_from];\n        LockedBalance memory _locked1 = locked[_to];\n        uint256 value0 = uint256(int256(_locked0.amount));\n        uint256 end = _locked0.end >= _locked1.end\n            ? _locked0.end\n            : _locked1.end;\n\n        locked[_from] = LockedBalance(0, 0, 0);\n        _checkpoint(_from, _locked0, LockedBalance(0, 0, 0));\n        _burn(_from);\n        _depositFor(\n            _to,\n            value0,\n            end,\n            _locked1,\n            DepositType.MERGE_TYPE,\n            true,\n            false\n        );\n    }\n\n    function blockNumber() external view override returns (uint256) {\n        return block.number;\n    }\n\n    /// @notice Record global data to checkpoint\n    function checkpoint() external override {\n        _checkpoint(0, LockedBalance(0, 0, 0), LockedBalance(0, 0, 0));\n    }\n\n    /// @notice Deposit `_value` tokens for `_tokenId` and add to the lock\n    /// @dev Anyone (even a smart contract) can deposit for someone else, but\n    ///      cannot extend their locktime and deposit for a brand new user\n    /// @param _tokenId lock NFT\n    /// @param _value Amount to add to user's lock\n    function depositFor(uint256 _tokenId, uint256 _value)\n        external\n        override\n        nonReentrant\n    {\n        LockedBalance memory _locked = locked[_tokenId];\n\n        require(!_isStaked(_tokenId), \"staked\");\n        require(_value > 0, \"value = 0\"); // dev: need non-zero value\n        require(_locked.amount > 0, \"No existing lock found\");\n        require(_locked.end > block.timestamp, \"Cannot add to expired lock.\");\n        _depositFor(\n            _tokenId,\n            _value,\n            0,\n            _locked,\n            DepositType.DEPOSIT_FOR_TYPE,\n            true,\n            false\n        );\n    }\n\n    /// @notice Deposit `_value` tokens for `_to` and lock for `_lockDuration`\n    /// @param _value Amount to deposit\n    /// @param _lockDuration Number of seconds to lock tokens for (rounded down to nearest week)\n    /// @param _to Address to deposit\n    /// @param _shouldPullUserMaha Should we pull maha with the lock\n    /// @param _stakeNFT should we stake into the staking contract\n    function _createLock(\n        uint256 _value,\n        uint256 _lockDuration,\n        address _to,\n        bool _shouldPullUserMaha,\n        bool _stakeNFT\n    ) internal returns (uint256) {\n        registry.ensureNotPaused();\n\n        uint256 unlockTime = ((block.timestamp + _lockDuration) / WEEK) * WEEK; // Locktime is rounded down to weeks\n\n        require(_value > 0, \"value = 0\"); // dev: need non-zero value\n        require(unlockTime > block.timestamp, \"Can only lock in the future\");\n        require(\n            unlockTime <= block.timestamp + MAXTIME,\n            \"Voting lock can be 4 years max\"\n        );\n\n        ++tokenId;\n        uint256 _tokenId = tokenId;\n        _mint(_to, _tokenId);\n\n        _depositFor(\n            _tokenId,\n            _value,\n            unlockTime,\n            locked[_tokenId],\n            DepositType.CREATE_LOCK_TYPE,\n            _shouldPullUserMaha,\n            _stakeNFT\n        );\n\n        require(\n            _balanceOfNFT(_tokenId, block.timestamp) >= minLockAmount,\n            \"min amount for nft not met\"\n        );\n\n        return _tokenId;\n    }\n\n    /// @notice Deposit `_value` tokens for `_to` and lock for `_lockDuration`\n    /// @param _value Amount to deposit\n    /// @param _lockDuration Number of seconds to lock tokens for (rounded down to nearest week)\n    /// @param _to Address to deposit\n    function createLockFor(\n        uint256 _value,\n        uint256 _lockDuration,\n        address _to,\n        bool _stakeNFT\n    ) external override nonReentrant returns (uint256) {\n        return _createLock(_value, _lockDuration, _to, true, _stakeNFT);\n    }\n\n    function migrateTokenFor(\n        uint256 _value,\n        uint256 _lockDuration,\n        address _to\n    ) external override onlyMigrator returns (uint256) {\n        return _createLock(_value, _lockDuration, _to, false, true);\n    }\n\n    /// @notice Deposit `_value` tokens for `msg.sender` and lock for `_lockDuration`\n    /// @param _value Amount to deposit\n    /// @param _lockDuration Number of seconds to lock tokens for (rounded down to nearest week)\n    /// @param _stakeNFT Should we also stake the NFT as well?\n    function createLock(\n        uint256 _value,\n        uint256 _lockDuration,\n        bool _stakeNFT\n    ) external override nonReentrant returns (uint256) {\n        return _createLock(_value, _lockDuration, msg.sender, true, _stakeNFT);\n    }\n\n    /// @notice Upload users.\n    /// @param _users The users for whose lock is to be added.\n    /// @param _value The values for users.\n    /// @param _lockDuration The lock duration for users.\n    function uploadUsers(\n        address[] memory _users,\n        uint256[] memory _value,\n        uint256[] memory _lockDuration,\n        bool _stakeNFT\n    ) external onlyMigrator {\n        require(_value.length == _lockDuration.length, \"invalid data\");\n        require(_users.length == _value.length, \"invalid data\");\n\n        for (uint256 i = 0; i < _users.length; i++) {\n            _createLock(\n                _value[i],\n                _lockDuration[i],\n                _users[i],\n                false,\n                _stakeNFT\n            );\n        }\n    }\n\n    /// @notice Sets the royalty info for all NFT marketplaces\n    /// @param _royaltyRcv The address to recieve royalties\n    /// @param _royaltyFeeNumerator The amount of royalty to recieve\n    function setRoyaltyInfo(address _royaltyRcv, uint96 _royaltyFeeNumerator)\n        external\n        onlyGovernance\n    {\n        _setDefaultRoyalty(_royaltyRcv, _royaltyFeeNumerator);\n    }\n\n    /// @notice Sets the min amount to lock\n    /// @param _minLockAmount The min amount to lock\n    function setMinLockAmount(uint256 _minLockAmount) external onlyGovernance {\n        minLockAmount = _minLockAmount;\n    }\n\n    /// @notice Deposit `_value` additional tokens for `_tokenId` without modifying the unlock time\n    /// @param _value Amount of tokens to deposit and add to the lock\n    function increaseAmount(uint256 _tokenId, uint256 _value)\n        external\n        nonReentrant\n    {\n        require(\n            _isApprovedOrOwner(msg.sender, _tokenId),\n            \"caller is not owner nor approved\"\n        );\n        LockedBalance memory _locked = locked[_tokenId];\n\n        assert(_value > 0); // dev: need non-zero value\n        require(_locked.amount > 0, \"No existing lock found\");\n        require(_locked.end > block.timestamp, \"Cannot add to expired lock.\");\n\n        _depositFor(\n            _tokenId,\n            _value,\n            0,\n            _locked,\n            DepositType.INCREASE_LOCK_AMOUNT,\n            true,\n            _isStaked(_tokenId)\n        );\n    }\n\n    /// @notice Extend the unlock time for `_tokenId`\n    /// @param _lockDuration New number of seconds until tokens unlock\n    function increaseUnlockTime(uint256 _tokenId, uint256 _lockDuration)\n        external\n        nonReentrant\n    {\n        require(\n            _isApprovedOrOwner(msg.sender, _tokenId),\n            \"caller is not owner nor approved\"\n        );\n\n        LockedBalance memory _locked = locked[_tokenId];\n        uint256 unlockTime = ((block.timestamp + _lockDuration) / WEEK) * WEEK; // Locktime is rounded down to weeks\n\n        require(_locked.end > block.timestamp, \"Lock expired\");\n        require(_locked.amount > 0, \"Nothing is locked\");\n        require(unlockTime > _locked.end, \"Can only increase lock duration\");\n        require(\n            unlockTime <= block.timestamp + MAXTIME,\n            \"Voting lock can be 4 years max\"\n        );\n        require(\n            unlockTime <= _locked.start + MAXTIME,\n            \"Voting lock can be 4 years max\"\n        );\n\n        _depositFor(\n            _tokenId,\n            0,\n            unlockTime,\n            _locked,\n            DepositType.INCREASE_UNLOCK_TIME,\n            false,\n            _isStaked(_tokenId)\n        );\n    }\n\n    /// @notice Withdraw all tokens for `_tokenId`\n    /// @dev Only possible if the lock has expired\n    function withdraw(uint256 _tokenId) external nonReentrant {\n        require(\n            _isApprovedOrOwner(msg.sender, _tokenId),\n            \"caller is not owner nor approved\"\n        );\n        require(!_isStaked(_tokenId), \"staked\");\n\n        LockedBalance memory _locked = locked[_tokenId];\n        require(block.timestamp >= _locked.end, \"The lock didn't expire\");\n        uint256 value = uint256(int256(_locked.amount));\n\n        locked[_tokenId] = LockedBalance(0, 0, 0);\n        uint256 supplyBefore = supply;\n        supply = supplyBefore - value;\n\n        // oldLocked can have either expired <= timestamp or zero end\n        // _locked has only 0 end\n        // Both can have >= 0 amount\n        _checkpoint(_tokenId, _locked, LockedBalance(0, 0, 0));\n\n        assert(IERC20(registry.maha()).transfer(msg.sender, value));\n\n        // Burn the NFT\n        _burn(_tokenId);\n\n        emit Withdraw(msg.sender, _tokenId, value, block.timestamp);\n        emit Supply(supplyBefore, supplyBefore - value);\n    }\n\n    /// @notice Sets the optional tokenURI override contract.\n    function setRenderingContract(ITokenURIGenerator _contract)\n        external\n        onlyGovernance\n    {\n        renderingContract = _contract;\n    }\n\n    /// @notice If renderingContract is set then returns its tokenURI(tokenId)\n    /// return value, otherwise returns the standard baseTokenURI + tokenId.\n    function tokenURI(uint256 _tokenId) public view returns (string memory) {\n        return renderingContract.tokenURI(_tokenId);\n    }\n\n    // The following ERC20/minime-compatible methods are not real balanceOf and supply!\n    // They measure the weights for the purpose of voting, so they don't represent\n    // real coins.\n\n    /// @notice Binary search to estimate timestamp for block number\n    /// @param _block Block to find\n    /// @param maxEpoch Don't go beyond this epoch\n    /// @return Approximate timestamp for block\n    function _findBlockEpoch(uint256 _block, uint256 maxEpoch)\n        internal\n        view\n        returns (uint256)\n    {\n        // Binary search\n        uint256 _min = 0;\n        uint256 _max = maxEpoch;\n        for (uint256 i = 0; i < 128; ++i) {\n            // Will be always enough for 128-bit numbers\n            if (_min >= _max) {\n                break;\n            }\n            uint256 _mid = (_min + _max + 1) / 2;\n            if (_pointHistory[_mid].blk <= _block) {\n                _min = _mid;\n            } else {\n                _max = _mid - 1;\n            }\n        }\n        return _min;\n    }\n\n    /// @notice Get the current voting power for `_tokenId`\n    /// @dev Adheres to the ERC20 `balanceOf` interface for Aragon compatibility\n    /// @param _tokenId NFT for lock\n    /// @param _t Epoch time to return voting power at\n    /// @return User voting power\n    function _balanceOfNFT(uint256 _tokenId, uint256 _t)\n        internal\n        view\n        returns (uint256)\n    {\n        uint256 _epoch = userPointEpoch[_tokenId];\n        if (_epoch == 0) {\n            return 0;\n        } else {\n            Point memory lastPoint = _userPointHistory[_tokenId][_epoch];\n            lastPoint.bias -=\n                lastPoint.slope *\n                int128(int256(_t) - int256(lastPoint.ts));\n            if (lastPoint.bias < 0) {\n                lastPoint.bias = 0;\n            }\n            return uint256(int256(lastPoint.bias));\n        }\n    }\n\n    function balanceOfNFT(uint256 _tokenId)\n        external\n        view\n        override\n        returns (uint256)\n    {\n        if (ownershipChange[_tokenId] == block.number) return 0;\n        return _balanceOfNFT(_tokenId, block.timestamp);\n    }\n\n    function balanceOfNFTAt(uint256 _tokenId, uint256 _t)\n        external\n        view\n        returns (uint256)\n    {\n        return _balanceOfNFT(_tokenId, _t);\n    }\n\n    /// @notice Measure voting power of `_tokenId` at block height `_block`\n    /// @dev Adheres to MiniMe `balanceOfAt` interface: https://github.com/Giveth/minime\n    /// @param _tokenId User's wallet NFT\n    /// @param _block Block to calculate the voting power at\n    /// @return Voting power\n    function _balanceOfAtNFT(uint256 _tokenId, uint256 _block)\n        internal\n        view\n        returns (uint256)\n    {\n        // Copying and pasting totalSupply code because Vyper cannot pass by\n        // reference yet\n        assert(_block <= block.number);\n\n        // Binary search\n        uint256 _min = 0;\n        uint256 _max = userPointEpoch[_tokenId];\n        for (uint256 i = 0; i < 128; ++i) {\n            // Will be always enough for 128-bit numbers\n            if (_min >= _max) {\n                break;\n            }\n            uint256 _mid = (_min + _max + 1) / 2;\n            if (_userPointHistory[_tokenId][_mid].blk <= _block) {\n                _min = _mid;\n            } else {\n                _max = _mid - 1;\n            }\n        }\n\n        Point memory upoint = _userPointHistory[_tokenId][_min];\n\n        uint256 maxEpoch = epoch;\n        uint256 _epoch = _findBlockEpoch(_block, maxEpoch);\n        Point memory point0 = _pointHistory[_epoch];\n        uint256 dBlock = 0;\n        uint256 dT = 0;\n        if (_epoch < maxEpoch) {\n            Point memory point1 = _pointHistory[_epoch + 1];\n            dBlock = point1.blk - point0.blk;\n            dT = point1.ts - point0.ts;\n        } else {\n            dBlock = block.number - point0.blk;\n            dT = block.timestamp - point0.ts;\n        }\n        uint256 blockTime = point0.ts;\n        if (dBlock != 0) {\n            blockTime += (dT * (_block - point0.blk)) / dBlock;\n        }\n\n        upoint.bias -= upoint.slope * int128(int256(blockTime - upoint.ts));\n        if (upoint.bias >= 0) {\n            return uint256(uint128(upoint.bias));\n        } else {\n            return 0;\n        }\n    }\n\n    function balanceOfAtNFT(uint256 _tokenId, uint256 _block)\n        external\n        view\n        returns (uint256)\n    {\n        return _balanceOfAtNFT(_tokenId, _block);\n    }\n\n    /// @notice Calculate total voting power at some point in the past\n    /// @param point The point (bias/slope) to start search from\n    /// @param t Time to calculate the total voting power at\n    /// @return Total voting power at that time\n    function _supplyAt(Point memory point, uint256 t)\n        internal\n        view\n        returns (uint256)\n    {\n        Point memory lastPoint = point;\n        uint256 tI = (lastPoint.ts / WEEK) * WEEK;\n        for (uint256 i = 0; i < 255; ++i) {\n            tI += WEEK;\n            int128 dSlope = 0;\n            if (tI > t) {\n                tI = t;\n            } else {\n                dSlope = slopeChanges[tI];\n            }\n            lastPoint.bias -=\n                lastPoint.slope *\n                int128(int256(tI - lastPoint.ts));\n            if (tI == t) {\n                break;\n            }\n            lastPoint.slope += dSlope;\n            lastPoint.ts = tI;\n        }\n\n        if (lastPoint.bias < 0) {\n            lastPoint.bias = 0;\n        }\n        return uint256(uint128(lastPoint.bias));\n    }\n\n    /// @notice Calculate total voting power\n    /// @dev Adheres to the ERC20 `totalSupply` interface for Aragon compatibility\n    /// @return Total voting power\n    function totalSupplyAtT(uint256 t) public view returns (uint256) {\n        uint256 _epoch = epoch;\n        Point memory lastPoint = _pointHistory[_epoch];\n        return _supplyAt(lastPoint, t);\n    }\n\n    function totalSupply() external view override returns (uint256) {\n        return totalSupplyAtT(block.timestamp);\n    }\n\n    /// @notice Calculate total voting power at some point in the past\n    /// @param _block Block to calculate the total voting power at\n    /// @return Total voting power at `_block`\n    function totalSupplyAt(uint256 _block)\n        external\n        view\n        override\n        returns (uint256)\n    {\n        assert(_block <= block.number);\n        uint256 _epoch = epoch;\n        uint256 targetEpoch = _findBlockEpoch(_block, _epoch);\n\n        Point memory point = _pointHistory[targetEpoch];\n        uint256 dt = 0;\n        if (targetEpoch < _epoch) {\n            Point memory pointNext = _pointHistory[targetEpoch + 1];\n            if (point.blk != pointNext.blk) {\n                dt =\n                    ((_block - point.blk) * (pointNext.ts - point.ts)) /\n                    (pointNext.blk - point.blk);\n            }\n        } else {\n            if (point.blk != block.number) {\n                dt =\n                    ((_block - point.blk) * (block.timestamp - point.ts)) /\n                    (block.number - point.blk);\n            }\n        }\n        // Now dt contains info on how far are we beyond point\n        return _supplyAt(point, point.ts + dt);\n    }\n\n    /// @dev A refund code that triggers a refund of maha; only used for the bootstrapping period of the DAO\n    function emergencyRefund(address to) external onlyGovernance {\n        require(inBootstrapMode, \"not in bootstrap mode\");\n        IERC20(registry.maha()).transfer(\n            to,\n            IERC20(registry.maha()).balanceOf(address(this))\n        );\n    }\n\n    /// @dev stop the bootstrap mode that allows governance to take all the maha out\n    function stopBootstrapMode() external onlyGovernance {\n        inBootstrapMode = false;\n    }\n\n    function _burn(uint256 _tokenId) internal {\n        require(\n            _isApprovedOrOwner(msg.sender, _tokenId),\n            \"caller is not owner nor approved\"\n        );\n\n        address owner = _ownerOf(_tokenId);\n\n        // Clear approval\n        _approve(address(0), _tokenId);\n        // Remove token\n        _removeTokenFrom(msg.sender, _tokenId);\n        emit Transfer(owner, address(0), _tokenId);\n    }\n\n    function isStaked(uint256 _tokenId) external view override returns (bool) {\n        return _isStaked(_tokenId);\n    }\n\n    function _isStaked(uint256 _tokenId) internal view returns (bool) {\n        return INFTStaker(registry.staker()).isStaked(_tokenId);\n    }\n}\n"},"contracts/interfaces/ITokenURIGenerator.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface ITokenURIGenerator {\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"contracts/interfaces/IRegistry.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IAccessControl} from \"@openzeppelin/contracts/access/IAccessControl.sol\";\n\ninterface IRegistry is IAccessControl {\n    event MahaChanged(address indexed whom, address _old, address _new);\n    event VoterChanged(address indexed whom, address _old, address _new);\n    event LockerChanged(address indexed whom, address _old, address _new);\n    event GovernorChanged(address indexed whom, address _old, address _new);\n    event StakerChanged(address indexed whom, address _old, address _new);\n    event EmissionControllerChanged(\n        address indexed whom,\n        address _old,\n        address _new\n    );\n\n    function maha() external view returns (address);\n\n    function gaugeVoter() external view returns (address);\n\n    function locker() external view returns (address);\n\n    function staker() external view returns (address);\n\n    function emissionController() external view returns (address);\n\n    function governor() external view returns (address);\n\n    function getAllAddresses()\n        external\n        view\n        returns (\n            address,\n            address,\n            address,\n            address,\n            address\n        );\n\n    function ensureNotPaused() external;\n\n    function setMAHA(address _new) external;\n\n    function setEmissionController(address _new) external;\n\n    function setStaker(address _new) external;\n\n    function setVoter(address _new) external;\n\n    function setLocker(address _new) external;\n\n    function setGovernor(address _new) external;\n}\n"},"contracts/interfaces/INFTLocker.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC721} from \"@openzeppelin/contracts/interfaces/IERC721.sol\";\nimport {IERC721Receiver} from \"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\";\nimport {IRegistry} from \"./IRegistry.sol\";\n\ninterface INFTLocker is IERC721 {\n    function registry() external view returns (IRegistry);\n\n    function balanceOfNFT(uint256) external view returns (uint256);\n\n    function isStaked(uint256) external view returns (bool);\n\n    function epoch() external view returns (uint256);\n\n    function userPointEpoch(uint256) external view returns (uint256);\n\n    function userPointHistory(uint256, uint256)\n        external\n        view\n        returns (Point memory);\n\n    function pointHistory(uint256) external view returns (Point memory);\n\n    function totalSupplyWithoutDecay() external view returns (uint256);\n\n    function isApprovedOrOwner(address, uint256) external view returns (bool);\n\n    function totalSupply() external view returns (uint256);\n\n    function totalSupplyAt(uint256 _block) external view returns (uint256);\n\n    function merge(uint256 _from, uint256 _to) external;\n\n    function blockNumber() external view returns (uint256);\n\n    function checkpoint() external;\n\n    function depositFor(uint256 _tokenId, uint256 _value) external;\n\n    function createLockFor(\n        uint256 _value,\n        uint256 _lockDuration,\n        address _to,\n        bool _stakeNFT\n    ) external returns (uint256);\n\n    function migrateTokenFor(\n        uint256 _value,\n        uint256 _lockDuration,\n        address _to\n    ) external returns (uint256);\n\n    function createLock(\n        uint256 _value,\n        uint256 _lockDuration,\n        bool _stakeNFT\n    ) external returns (uint256);\n\n    enum DepositType {\n        DEPOSIT_FOR_TYPE,\n        CREATE_LOCK_TYPE,\n        INCREASE_LOCK_AMOUNT,\n        INCREASE_UNLOCK_TIME,\n        MERGE_TYPE\n    }\n\n    struct Point {\n        int128 bias;\n        int128 slope; // # -dweight / dt\n        uint256 ts;\n        uint256 blk; // block\n    }\n\n    /* We cannot really do block numbers per se b/c slope is per time, not per block\n     * and per block could be fairly bad b/c Ethereum changes blocktimes.\n     * What we can do is to extrapolate ***At functions */\n\n    struct LockedBalance {\n        int128 amount;\n        uint256 end;\n        uint256 start;\n    }\n\n    event Deposit(\n        address indexed provider,\n        uint256 tokenId,\n        uint256 value,\n        uint256 indexed locktime,\n        DepositType deposit_type,\n        uint256 ts\n    );\n\n    event Withdraw(\n        address indexed provider,\n        uint256 tokenId,\n        uint256 value,\n        uint256 ts\n    );\n\n    event Supply(uint256 prevSupply, uint256 supply);\n}\n"},"contracts/interfaces/INFTStaker.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\nimport {IVotes} from \"@openzeppelin/contracts/governance/utils/IVotes.sol\";\n\ninterface INFTStaker is IVotes {\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    function name() external view returns (string memory);\n\n    function symbol() external view returns (string memory);\n\n    function decimals() external view returns (uint8);\n\n    function totalSupply() external view returns (uint256);\n\n    function balanceOf(address account) external view returns (uint256);\n\n    function getStakedBalance(address who) external view returns (uint256);\n\n    function registry() external view returns (IRegistry);\n\n    function stake(uint256 _tokenId) external;\n\n    function isStaked(uint256 _tokenId) external view returns (bool);\n\n    function _stakeFromLock(uint256 _tokenId) external;\n\n    function unstake(uint256 _tokenId) external;\n\n    event StakeNFT(\n        address indexed who,\n        address indexed owner,\n        uint256 tokenId,\n        uint256 amount\n    );\n    event UnstakeNFT(\n        address indexed who,\n        address indexed owner,\n        uint256 tokenId,\n        uint256 amount\n    );\n}\n"},"@openzeppelin/contracts/interfaces/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../token/ERC20/IERC20.sol\";\n"},"@openzeppelin/contracts/security/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuard {\n    // Booleans are more expensive than uint256 or any type that takes up a full\n    // word because each write operation emits an extra SLOAD to first read the\n    // slot's contents, replace the bits taken up by the boolean, and then write\n    // back. This is the compiler's defense against contract upgrades and\n    // pointer aliasing, and it cannot be disabled.\n\n    // The values being non-zero value makes deployment a bit more expensive,\n    // but in exchange the refund on every call to nonReentrant will be lower in\n    // amount. Since refunds are capped to a percentage of the total\n    // transaction's gas, it is best to keep them low in cases like this one, to\n    // increase the likelihood of the full refund coming into effect.\n    uint256 private constant _NOT_ENTERED = 1;\n    uint256 private constant _ENTERED = 2;\n\n    uint256 private _status;\n\n    constructor() {\n        _status = _NOT_ENTERED;\n    }\n\n    /**\n     * @dev Prevents a contract from calling itself, directly or indirectly.\n     * Calling a `nonReentrant` function from another `nonReentrant`\n     * function is not supported. It is possible to prevent this from happening\n     * by making the `nonReentrant` function external, and making it call a\n     * `private` function that does the actual work.\n     */\n    modifier nonReentrant() {\n        // On the first call to nonReentrant, _notEntered will be true\n        require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\n\n        // Any calls to nonReentrant after this point will fail\n        _status = _ENTERED;\n\n        _;\n\n        // By storing the original value once again, a refund is triggered (see\n        // https://eips.ethereum.org/EIPS/eip-2200)\n        _status = _NOT_ENTERED;\n    }\n}\n"},"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Strings.sol\";\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n    struct RoleData {\n        mapping(address => bool) members;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with a standardized message including the required role.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     *\n     * _Available since v4.1._\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n        return _roles[role].members[account];\n    }\n\n    /**\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\n     *\n     * Format of the revert message is described in {_checkRole}.\n     *\n     * _Available since v4.6._\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Revert with a standard message if `account` is missing `role`.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert(\n                string(\n                    abi.encodePacked(\n                        \"AccessControl: account \",\n                        Strings.toHexString(uint160(account), 20),\n                        \" is missing role \",\n                        Strings.toHexString(uint256(role), 32)\n                    )\n                )\n            );\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address account) public virtual override {\n        require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event. Note that unlike {grantRole}, this function doesn't perform any\n     * checks on the calling account.\n     *\n     * May emit a {RoleGranted} event.\n     *\n     * [WARNING]\n     * ====\n     * This function should only be called from the constructor when setting\n     * up the initial roles for the system.\n     *\n     * Using this function in any other way is effectively circumventing the admin\n     * system imposed by {AccessControl}.\n     * ====\n     *\n     * NOTE: This function is deprecated in favor of {_grantRole}.\n     */\n    function _setupRole(bytes32 role, address account) internal virtual {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual {\n        if (!hasRole(role, account)) {\n            _roles[role].members[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n        }\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual {\n        if (hasRole(role, account)) {\n            _roles[role].members[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n        }\n    }\n}\n"},"@openzeppelin/contracts/interfaces/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../token/ERC721/IERC721Receiver.sol\";\n"},"@openzeppelin/contracts/token/common/ERC2981.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/common/ERC2981.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../interfaces/IERC2981.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.\n *\n * Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for\n * specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.\n *\n * Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the\n * fee is specified in basis points by default.\n *\n * IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See\n * https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to\n * voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.\n *\n * _Available since v4.5._\n */\nabstract contract ERC2981 is IERC2981, ERC165 {\n    struct RoyaltyInfo {\n        address receiver;\n        uint96 royaltyFraction;\n    }\n\n    RoyaltyInfo private _defaultRoyaltyInfo;\n    mapping(uint256 => RoyaltyInfo) private _tokenRoyaltyInfo;\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) {\n        return interfaceId == type(IERC2981).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @inheritdoc IERC2981\n     */\n    function royaltyInfo(uint256 _tokenId, uint256 _salePrice) public view virtual override returns (address, uint256) {\n        RoyaltyInfo memory royalty = _tokenRoyaltyInfo[_tokenId];\n\n        if (royalty.receiver == address(0)) {\n            royalty = _defaultRoyaltyInfo;\n        }\n\n        uint256 royaltyAmount = (_salePrice * royalty.royaltyFraction) / _feeDenominator();\n\n        return (royalty.receiver, royaltyAmount);\n    }\n\n    /**\n     * @dev The denominator with which to interpret the fee set in {_setTokenRoyalty} and {_setDefaultRoyalty} as a\n     * fraction of the sale price. Defaults to 10000 so fees are expressed in basis points, but may be customized by an\n     * override.\n     */\n    function _feeDenominator() internal pure virtual returns (uint96) {\n        return 10000;\n    }\n\n    /**\n     * @dev Sets the royalty information that all ids in this contract will default to.\n     *\n     * Requirements:\n     *\n     * - `receiver` cannot be the zero address.\n     * - `feeNumerator` cannot be greater than the fee denominator.\n     */\n    function _setDefaultRoyalty(address receiver, uint96 feeNumerator) internal virtual {\n        require(feeNumerator <= _feeDenominator(), \"ERC2981: royalty fee will exceed salePrice\");\n        require(receiver != address(0), \"ERC2981: invalid receiver\");\n\n        _defaultRoyaltyInfo = RoyaltyInfo(receiver, feeNumerator);\n    }\n\n    /**\n     * @dev Removes default royalty information.\n     */\n    function _deleteDefaultRoyalty() internal virtual {\n        delete _defaultRoyaltyInfo;\n    }\n\n    /**\n     * @dev Sets the royalty information for a specific token id, overriding the global default.\n     *\n     * Requirements:\n     *\n     * - `receiver` cannot be the zero address.\n     * - `feeNumerator` cannot be greater than the fee denominator.\n     */\n    function _setTokenRoyalty(\n        uint256 tokenId,\n        address receiver,\n        uint96 feeNumerator\n    ) internal virtual {\n        require(feeNumerator <= _feeDenominator(), \"ERC2981: royalty fee will exceed salePrice\");\n        require(receiver != address(0), \"ERC2981: Invalid parameters\");\n\n        _tokenRoyaltyInfo[tokenId] = RoyaltyInfo(receiver, feeNumerator);\n    }\n\n    /**\n     * @dev Resets royalty information for the token id back to the global default.\n     */\n    function _resetTokenRoyalty(uint256 tokenId) internal virtual {\n        delete _tokenRoyaltyInfo[tokenId];\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/interfaces/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../token/ERC721/IERC721.sol\";\n"},"@openzeppelin/contracts/governance/utils/IVotes.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (governance/utils/IVotes.sol)\npragma solidity ^0.8.0;\n\n/**\n * @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.\n *\n * _Available since v4.5._\n */\ninterface IVotes {\n    /**\n     * @dev Emitted when an account changes their delegate.\n     */\n    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);\n\n    /**\n     * @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\n     */\n    event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);\n\n    /**\n     * @dev Returns the current amount of votes that `account` has.\n     */\n    function getVotes(address account) external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\n     */\n    function getPastVotes(address account, uint256 blockNumber) external view returns (uint256);\n\n    /**\n     * @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n     *\n     * NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n     * Votes that have not been delegated are still part of total supply, even though they would not participate in a\n     * vote.\n     */\n    function getPastTotalSupply(uint256 blockNumber) external view returns (uint256);\n\n    /**\n     * @dev Returns the delegate that `account` has chosen.\n     */\n    function delegates(address account) external view returns (address);\n\n    /**\n     * @dev Delegates votes from the sender to `delegatee`.\n     */\n    function delegate(address delegatee) external;\n\n    /**\n     * @dev Delegates votes from signer to `delegatee`.\n     */\n    function delegateBySig(\n        address delegatee,\n        uint256 nonce,\n        uint256 expiry,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n}\n"},"@openzeppelin/contracts/interfaces/IERC2981.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface for the NFT Royalty Standard.\n *\n * A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal\n * support for royalty payments across all NFT marketplaces and ecosystem participants.\n *\n * _Available since v4.5._\n */\ninterface IERC2981 is IERC165 {\n    /**\n     * @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of\n     * exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\n     */\n    function royaltyInfo(uint256 tokenId, uint256 salePrice)\n        external\n        view\n        returns (address receiver, uint256 royaltyAmount);\n}\n"},"@openzeppelin/contracts/governance/TimelockController.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (governance/TimelockController.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../access/AccessControl.sol\";\nimport \"../token/ERC721/IERC721Receiver.sol\";\nimport \"../token/ERC1155/IERC1155Receiver.sol\";\nimport \"../utils/Address.sol\";\n\n/**\n * @dev Contract module which acts as a timelocked controller. When set as the\n * owner of an `Ownable` smart contract, it enforces a timelock on all\n * `onlyOwner` maintenance operations. This gives time for users of the\n * controlled contract to exit before a potentially dangerous maintenance\n * operation is applied.\n *\n * By default, this contract is self administered, meaning administration tasks\n * have to go through the timelock process. The proposer (resp executor) role\n * is in charge of proposing (resp executing) operations. A common use case is\n * to position this {TimelockController} as the owner of a smart contract, with\n * a multisig or a DAO as the sole proposer.\n *\n * _Available since v3.3._\n */\ncontract TimelockController is AccessControl, IERC721Receiver, IERC1155Receiver {\n    bytes32 public constant TIMELOCK_ADMIN_ROLE = keccak256(\"TIMELOCK_ADMIN_ROLE\");\n    bytes32 public constant PROPOSER_ROLE = keccak256(\"PROPOSER_ROLE\");\n    bytes32 public constant EXECUTOR_ROLE = keccak256(\"EXECUTOR_ROLE\");\n    bytes32 public constant CANCELLER_ROLE = keccak256(\"CANCELLER_ROLE\");\n    uint256 internal constant _DONE_TIMESTAMP = uint256(1);\n\n    mapping(bytes32 => uint256) private _timestamps;\n    uint256 private _minDelay;\n\n    /**\n     * @dev Emitted when a call is scheduled as part of operation `id`.\n     */\n    event CallScheduled(\n        bytes32 indexed id,\n        uint256 indexed index,\n        address target,\n        uint256 value,\n        bytes data,\n        bytes32 predecessor,\n        uint256 delay\n    );\n\n    /**\n     * @dev Emitted when a call is performed as part of operation `id`.\n     */\n    event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data);\n\n    /**\n     * @dev Emitted when operation `id` is cancelled.\n     */\n    event Cancelled(bytes32 indexed id);\n\n    /**\n     * @dev Emitted when the minimum delay for future operations is modified.\n     */\n    event MinDelayChange(uint256 oldDuration, uint256 newDuration);\n\n    /**\n     * @dev Initializes the contract with a given `minDelay`, and a list of\n     * initial proposers and executors. The proposers receive both the\n     * proposer and the canceller role (for backward compatibility). The\n     * executors receive the executor role.\n     *\n     * NOTE: At construction, both the deployer and the timelock itself are\n     * administrators. This helps further configuration of the timelock by the\n     * deployer. After configuration is done, it is recommended that the\n     * deployer renounces its admin position and relies on timelocked\n     * operations to perform future maintenance.\n     */\n    constructor(\n        uint256 minDelay,\n        address[] memory proposers,\n        address[] memory executors\n    ) {\n        _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(CANCELLER_ROLE, TIMELOCK_ADMIN_ROLE);\n\n        // deployer + self administration\n        _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender());\n        _setupRole(TIMELOCK_ADMIN_ROLE, address(this));\n\n        // register proposers and cancellers\n        for (uint256 i = 0; i < proposers.length; ++i) {\n            _setupRole(PROPOSER_ROLE, proposers[i]);\n            _setupRole(CANCELLER_ROLE, proposers[i]);\n        }\n\n        // register executors\n        for (uint256 i = 0; i < executors.length; ++i) {\n            _setupRole(EXECUTOR_ROLE, executors[i]);\n        }\n\n        _minDelay = minDelay;\n        emit MinDelayChange(0, minDelay);\n    }\n\n    /**\n     * @dev Modifier to make a function callable only by a certain role. In\n     * addition to checking the sender's role, `address(0)` 's role is also\n     * considered. Granting a role to `address(0)` is equivalent to enabling\n     * this role for everyone.\n     */\n    modifier onlyRoleOrOpenRole(bytes32 role) {\n        if (!hasRole(role, address(0))) {\n            _checkRole(role, _msgSender());\n        }\n        _;\n    }\n\n    /**\n     * @dev Contract might receive/hold ETH as part of the maintenance process.\n     */\n    receive() external payable {}\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, AccessControl) returns (bool) {\n        return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns whether an id correspond to a registered operation. This\n     * includes both Pending, Ready and Done operations.\n     */\n    function isOperation(bytes32 id) public view virtual returns (bool registered) {\n        return getTimestamp(id) > 0;\n    }\n\n    /**\n     * @dev Returns whether an operation is pending or not.\n     */\n    function isOperationPending(bytes32 id) public view virtual returns (bool pending) {\n        return getTimestamp(id) > _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Returns whether an operation is ready or not.\n     */\n    function isOperationReady(bytes32 id) public view virtual returns (bool ready) {\n        uint256 timestamp = getTimestamp(id);\n        return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp;\n    }\n\n    /**\n     * @dev Returns whether an operation is done or not.\n     */\n    function isOperationDone(bytes32 id) public view virtual returns (bool done) {\n        return getTimestamp(id) == _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Returns the timestamp at with an operation becomes ready (0 for\n     * unset operations, 1 for done operations).\n     */\n    function getTimestamp(bytes32 id) public view virtual returns (uint256 timestamp) {\n        return _timestamps[id];\n    }\n\n    /**\n     * @dev Returns the minimum delay for an operation to become valid.\n     *\n     * This value can be changed by executing an operation that calls `updateDelay`.\n     */\n    function getMinDelay() public view virtual returns (uint256 duration) {\n        return _minDelay;\n    }\n\n    /**\n     * @dev Returns the identifier of an operation containing a single\n     * transaction.\n     */\n    function hashOperation(\n        address target,\n        uint256 value,\n        bytes calldata data,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public pure virtual returns (bytes32 hash) {\n        return keccak256(abi.encode(target, value, data, predecessor, salt));\n    }\n\n    /**\n     * @dev Returns the identifier of an operation containing a batch of\n     * transactions.\n     */\n    function hashOperationBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public pure virtual returns (bytes32 hash) {\n        return keccak256(abi.encode(targets, values, payloads, predecessor, salt));\n    }\n\n    /**\n     * @dev Schedule an operation containing a single transaction.\n     *\n     * Emits a {CallScheduled} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'proposer' role.\n     */\n    function schedule(\n        address target,\n        uint256 value,\n        bytes calldata data,\n        bytes32 predecessor,\n        bytes32 salt,\n        uint256 delay\n    ) public virtual onlyRole(PROPOSER_ROLE) {\n        bytes32 id = hashOperation(target, value, data, predecessor, salt);\n        _schedule(id, delay);\n        emit CallScheduled(id, 0, target, value, data, predecessor, delay);\n    }\n\n    /**\n     * @dev Schedule an operation containing a batch of transactions.\n     *\n     * Emits one {CallScheduled} event per transaction in the batch.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'proposer' role.\n     */\n    function scheduleBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt,\n        uint256 delay\n    ) public virtual onlyRole(PROPOSER_ROLE) {\n        require(targets.length == values.length, \"TimelockController: length mismatch\");\n        require(targets.length == payloads.length, \"TimelockController: length mismatch\");\n\n        bytes32 id = hashOperationBatch(targets, values, payloads, predecessor, salt);\n        _schedule(id, delay);\n        for (uint256 i = 0; i < targets.length; ++i) {\n            emit CallScheduled(id, i, targets[i], values[i], payloads[i], predecessor, delay);\n        }\n    }\n\n    /**\n     * @dev Schedule an operation that is to becomes valid after a given delay.\n     */\n    function _schedule(bytes32 id, uint256 delay) private {\n        require(!isOperation(id), \"TimelockController: operation already scheduled\");\n        require(delay >= getMinDelay(), \"TimelockController: insufficient delay\");\n        _timestamps[id] = block.timestamp + delay;\n    }\n\n    /**\n     * @dev Cancel an operation.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'canceller' role.\n     */\n    function cancel(bytes32 id) public virtual onlyRole(CANCELLER_ROLE) {\n        require(isOperationPending(id), \"TimelockController: operation cannot be cancelled\");\n        delete _timestamps[id];\n\n        emit Cancelled(id);\n    }\n\n    /**\n     * @dev Execute an (ready) operation containing a single transaction.\n     *\n     * Emits a {CallExecuted} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'executor' role.\n     */\n    // This function can reenter, but it doesn't pose a risk because _afterCall checks that the proposal is pending,\n    // thus any modifications to the operation during reentrancy should be caught.\n    // slither-disable-next-line reentrancy-eth\n    function execute(\n        address target,\n        uint256 value,\n        bytes calldata payload,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n        bytes32 id = hashOperation(target, value, payload, predecessor, salt);\n\n        _beforeCall(id, predecessor);\n        _execute(target, value, payload);\n        emit CallExecuted(id, 0, target, value, payload);\n        _afterCall(id);\n    }\n\n    /**\n     * @dev Execute an (ready) operation containing a batch of transactions.\n     *\n     * Emits one {CallExecuted} event per transaction in the batch.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'executor' role.\n     */\n    function executeBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n        require(targets.length == values.length, \"TimelockController: length mismatch\");\n        require(targets.length == payloads.length, \"TimelockController: length mismatch\");\n\n        bytes32 id = hashOperationBatch(targets, values, payloads, predecessor, salt);\n\n        _beforeCall(id, predecessor);\n        for (uint256 i = 0; i < targets.length; ++i) {\n            address target = targets[i];\n            uint256 value = values[i];\n            bytes calldata payload = payloads[i];\n            _execute(target, value, payload);\n            emit CallExecuted(id, i, target, value, payload);\n        }\n        _afterCall(id);\n    }\n\n    /**\n     * @dev Execute an operation's call.\n     */\n    function _execute(\n        address target,\n        uint256 value,\n        bytes calldata data\n    ) internal virtual {\n        (bool success, ) = target.call{value: value}(data);\n        require(success, \"TimelockController: underlying transaction reverted\");\n    }\n\n    /**\n     * @dev Checks before execution of an operation's calls.\n     */\n    function _beforeCall(bytes32 id, bytes32 predecessor) private view {\n        require(isOperationReady(id), \"TimelockController: operation is not ready\");\n        require(predecessor == bytes32(0) || isOperationDone(predecessor), \"TimelockController: missing dependency\");\n    }\n\n    /**\n     * @dev Checks after execution of an operation's calls.\n     */\n    function _afterCall(bytes32 id) private {\n        require(isOperationReady(id), \"TimelockController: operation is not ready\");\n        _timestamps[id] = _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Changes the minimum timelock duration for future operations.\n     *\n     * Emits a {MinDelayChange} event.\n     *\n     * Requirements:\n     *\n     * - the caller must be the timelock itself. This can only be achieved by scheduling and later executing\n     * an operation where the timelock is the target and the data is the ABI-encoded call to this function.\n     */\n    function updateDelay(uint256 newDelay) external virtual {\n        require(msg.sender == address(this), \"TimelockController: caller must be timelock\");\n        emit MinDelayChange(_minDelay, newDelay);\n        _minDelay = newDelay;\n    }\n\n    /**\n     * @dev See {IERC721Receiver-onERC721Received}.\n     */\n    function onERC721Received(\n        address,\n        address,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC721Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155Received}.\n     */\n    function onERC1155Received(\n        address,\n        address,\n        uint256,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155BatchReceived}.\n     */\n    function onERC1155BatchReceived(\n        address,\n        address,\n        uint256[] memory,\n        uint256[] memory,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155BatchReceived.selector;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev _Available since v3.1._\n */\ninterface IERC1155Receiver is IERC165 {\n    /**\n     * @dev Handles the receipt of a single ERC1155 token type. This function is\n     * called at the end of a `safeTransferFrom` after the balance has been updated.\n     *\n     * NOTE: To accept the transfer, this must return\n     * `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n     * (i.e. 0xf23a6e61, or its own function selector).\n     *\n     * @param operator The address which initiated the transfer (i.e. msg.sender)\n     * @param from The address which previously owned the token\n     * @param id The ID of the token being transferred\n     * @param value The amount of tokens being transferred\n     * @param data Additional data with no specified format\n     * @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n     */\n    function onERC1155Received(\n        address operator,\n        address from,\n        uint256 id,\n        uint256 value,\n        bytes calldata data\n    ) external returns (bytes4);\n\n    /**\n     * @dev Handles the receipt of a multiple ERC1155 token types. This function\n     * is called at the end of a `safeBatchTransferFrom` after the balances have\n     * been updated.\n     *\n     * NOTE: To accept the transfer(s), this must return\n     * `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n     * (i.e. 0xbc197c81, or its own function selector).\n     *\n     * @param operator The address which initiated the batch transfer (i.e. msg.sender)\n     * @param from The address which previously owned the token\n     * @param ids An array containing ids of each token being transferred (order and length must match values array)\n     * @param values An array containing amounts of each token being transferred (order and length must match ids array)\n     * @param data Additional data with no specified format\n     * @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n     */\n    function onERC1155BatchReceived(\n        address operator,\n        address from,\n        uint256[] calldata ids,\n        uint256[] calldata values,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/governance/Governor.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.2) (governance/Governor.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../token/ERC721/IERC721Receiver.sol\";\nimport \"../token/ERC1155/IERC1155Receiver.sol\";\nimport \"../utils/cryptography/ECDSA.sol\";\nimport \"../utils/cryptography/draft-EIP712.sol\";\nimport \"../utils/introspection/ERC165.sol\";\nimport \"../utils/math/SafeCast.sol\";\nimport \"../utils/structs/DoubleEndedQueue.sol\";\nimport \"../utils/Address.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Timers.sol\";\nimport \"./IGovernor.sol\";\n\n/**\n * @dev Core of the governance system, designed to be extended though various modules.\n *\n * This contract is abstract and requires several function to be implemented in various modules:\n *\n * - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote}\n * - A voting module must implement {_getVotes}\n * - Additionanly, the {votingPeriod} must also be implemented\n *\n * _Available since v4.3._\n */\nabstract contract Governor is Context, ERC165, EIP712, IGovernor, IERC721Receiver, IERC1155Receiver {\n    using DoubleEndedQueue for DoubleEndedQueue.Bytes32Deque;\n    using SafeCast for uint256;\n    using Timers for Timers.BlockNumber;\n\n    bytes32 public constant BALLOT_TYPEHASH = keccak256(\"Ballot(uint256 proposalId,uint8 support)\");\n    bytes32 public constant EXTENDED_BALLOT_TYPEHASH =\n        keccak256(\"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)\");\n\n    struct ProposalCore {\n        Timers.BlockNumber voteStart;\n        Timers.BlockNumber voteEnd;\n        bool executed;\n        bool canceled;\n    }\n\n    string private _name;\n\n    mapping(uint256 => ProposalCore) private _proposals;\n\n    // This queue keeps track of the governor operating on itself. Calls to functions protected by the\n    // {onlyGovernance} modifier needs to be whitelisted in this queue. Whitelisting is set in {_beforeExecute},\n    // consumed by the {onlyGovernance} modifier and eventually reset in {_afterExecute}. This ensures that the\n    // execution of {onlyGovernance} protected calls can only be achieved through successful proposals.\n    DoubleEndedQueue.Bytes32Deque private _governanceCall;\n\n    /**\n     * @dev Restricts a function so it can only be executed through governance proposals. For example, governance\n     * parameter setters in {GovernorSettings} are protected using this modifier.\n     *\n     * The governance executing address may be different from the Governor's own address, for example it could be a\n     * timelock. This can be customized by modules by overriding {_executor}. The executor is only able to invoke these\n     * functions during the execution of the governor's {execute} function, and not under any other circumstances. Thus,\n     * for example, additional timelock proposers are not able to change governance parameters without going through the\n     * governance protocol (since v4.6).\n     */\n    modifier onlyGovernance() {\n        require(_msgSender() == _executor(), \"Governor: onlyGovernance\");\n        if (_executor() != address(this)) {\n            bytes32 msgDataHash = keccak256(_msgData());\n            // loop until popping the expected operation - throw if deque is empty (operation not authorized)\n            while (_governanceCall.popFront() != msgDataHash) {}\n        }\n        _;\n    }\n\n    /**\n     * @dev Sets the value for {name} and {version}\n     */\n    constructor(string memory name_) EIP712(name_, version()) {\n        _name = name_;\n    }\n\n    /**\n     * @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract)\n     */\n    receive() external payable virtual {\n        require(_executor() == address(this));\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) {\n        // In addition to the current interfaceId, also support previous version of the interfaceId that did not\n        // include the castVoteWithReasonAndParams() function as standard\n        return\n            interfaceId ==\n            (type(IGovernor).interfaceId ^\n                this.castVoteWithReasonAndParams.selector ^\n                this.castVoteWithReasonAndParamsBySig.selector ^\n                this.getVotesWithParams.selector) ||\n            interfaceId == type(IGovernor).interfaceId ||\n            interfaceId == type(IERC1155Receiver).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IGovernor-name}.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IGovernor-version}.\n     */\n    function version() public view virtual override returns (string memory) {\n        return \"1\";\n    }\n\n    /**\n     * @dev See {IGovernor-hashProposal}.\n     *\n     * The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array\n     * and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id\n     * can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in\n     * advance, before the proposal is submitted.\n     *\n     * Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the\n     * same proposal (with same operation and same description) will have the same id if submitted on multiple governors\n     * across multiple networks. This also means that in order to execute the same operation twice (on the same\n     * governor) the proposer will have to change the description in order to avoid proposal id conflicts.\n     */\n    function hashProposal(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public pure virtual override returns (uint256) {\n        return uint256(keccak256(abi.encode(targets, values, calldatas, descriptionHash)));\n    }\n\n    /**\n     * @dev See {IGovernor-state}.\n     */\n    function state(uint256 proposalId) public view virtual override returns (ProposalState) {\n        ProposalCore storage proposal = _proposals[proposalId];\n\n        if (proposal.executed) {\n            return ProposalState.Executed;\n        }\n\n        if (proposal.canceled) {\n            return ProposalState.Canceled;\n        }\n\n        uint256 snapshot = proposalSnapshot(proposalId);\n\n        if (snapshot == 0) {\n            revert(\"Governor: unknown proposal id\");\n        }\n\n        if (snapshot >= block.number) {\n            return ProposalState.Pending;\n        }\n\n        uint256 deadline = proposalDeadline(proposalId);\n\n        if (deadline >= block.number) {\n            return ProposalState.Active;\n        }\n\n        if (_quorumReached(proposalId) && _voteSucceeded(proposalId)) {\n            return ProposalState.Succeeded;\n        } else {\n            return ProposalState.Defeated;\n        }\n    }\n\n    /**\n     * @dev See {IGovernor-proposalSnapshot}.\n     */\n    function proposalSnapshot(uint256 proposalId) public view virtual override returns (uint256) {\n        return _proposals[proposalId].voteStart.getDeadline();\n    }\n\n    /**\n     * @dev See {IGovernor-proposalDeadline}.\n     */\n    function proposalDeadline(uint256 proposalId) public view virtual override returns (uint256) {\n        return _proposals[proposalId].voteEnd.getDeadline();\n    }\n\n    /**\n     * @dev Part of the Governor Bravo's interface: _\"The number of votes required in order for a voter to become a proposer\"_.\n     */\n    function proposalThreshold() public view virtual returns (uint256) {\n        return 0;\n    }\n\n    /**\n     * @dev Amount of votes already cast passes the threshold limit.\n     */\n    function _quorumReached(uint256 proposalId) internal view virtual returns (bool);\n\n    /**\n     * @dev Is the proposal successful or not.\n     */\n    function _voteSucceeded(uint256 proposalId) internal view virtual returns (bool);\n\n    /**\n     * @dev Get the voting weight of `account` at a specific `blockNumber`, for a vote as described by `params`.\n     */\n    function _getVotes(\n        address account,\n        uint256 blockNumber,\n        bytes memory params\n    ) internal view virtual returns (uint256);\n\n    /**\n     * @dev Register a vote for `proposalId` by `account` with a given `support`, voting `weight` and voting `params`.\n     *\n     * Note: Support is generic and can represent various things depending on the voting system used.\n     */\n    function _countVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        uint256 weight,\n        bytes memory params\n    ) internal virtual;\n\n    /**\n     * @dev Default additional encoded parameters used by castVote methods that don't include them\n     *\n     * Note: Should be overridden by specific implementations to use an appropriate value, the\n     * meaning of the additional params, in the context of that implementation\n     */\n    function _defaultParams() internal view virtual returns (bytes memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IGovernor-propose}.\n     */\n    function propose(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        string memory description\n    ) public virtual override returns (uint256) {\n        require(\n            getVotes(_msgSender(), block.number - 1) >= proposalThreshold(),\n            \"Governor: proposer votes below proposal threshold\"\n        );\n\n        uint256 proposalId = hashProposal(targets, values, calldatas, keccak256(bytes(description)));\n\n        require(targets.length == values.length, \"Governor: invalid proposal length\");\n        require(targets.length == calldatas.length, \"Governor: invalid proposal length\");\n        require(targets.length > 0, \"Governor: empty proposal\");\n\n        ProposalCore storage proposal = _proposals[proposalId];\n        require(proposal.voteStart.isUnset(), \"Governor: proposal already exists\");\n\n        uint64 snapshot = block.number.toUint64() + votingDelay().toUint64();\n        uint64 deadline = snapshot + votingPeriod().toUint64();\n\n        proposal.voteStart.setDeadline(snapshot);\n        proposal.voteEnd.setDeadline(deadline);\n\n        emit ProposalCreated(\n            proposalId,\n            _msgSender(),\n            targets,\n            values,\n            new string[](targets.length),\n            calldatas,\n            snapshot,\n            deadline,\n            description\n        );\n\n        return proposalId;\n    }\n\n    /**\n     * @dev See {IGovernor-execute}.\n     */\n    function execute(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public payable virtual override returns (uint256) {\n        uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash);\n\n        ProposalState status = state(proposalId);\n        require(\n            status == ProposalState.Succeeded || status == ProposalState.Queued,\n            \"Governor: proposal not successful\"\n        );\n        _proposals[proposalId].executed = true;\n\n        emit ProposalExecuted(proposalId);\n\n        _beforeExecute(proposalId, targets, values, calldatas, descriptionHash);\n        _execute(proposalId, targets, values, calldatas, descriptionHash);\n        _afterExecute(proposalId, targets, values, calldatas, descriptionHash);\n\n        return proposalId;\n    }\n\n    /**\n     * @dev Internal execution mechanism. Can be overridden to implement different execution mechanism\n     */\n    function _execute(\n        uint256, /* proposalId */\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 /*descriptionHash*/\n    ) internal virtual {\n        string memory errorMessage = \"Governor: call reverted without message\";\n        for (uint256 i = 0; i < targets.length; ++i) {\n            (bool success, bytes memory returndata) = targets[i].call{value: values[i]}(calldatas[i]);\n            Address.verifyCallResult(success, returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Hook before execution is triggered.\n     */\n    function _beforeExecute(\n        uint256, /* proposalId */\n        address[] memory targets,\n        uint256[] memory, /* values */\n        bytes[] memory calldatas,\n        bytes32 /*descriptionHash*/\n    ) internal virtual {\n        if (_executor() != address(this)) {\n            for (uint256 i = 0; i < targets.length; ++i) {\n                if (targets[i] == address(this)) {\n                    _governanceCall.pushBack(keccak256(calldatas[i]));\n                }\n            }\n        }\n    }\n\n    /**\n     * @dev Hook after execution is triggered.\n     */\n    function _afterExecute(\n        uint256, /* proposalId */\n        address[] memory, /* targets */\n        uint256[] memory, /* values */\n        bytes[] memory, /* calldatas */\n        bytes32 /*descriptionHash*/\n    ) internal virtual {\n        if (_executor() != address(this)) {\n            if (!_governanceCall.empty()) {\n                _governanceCall.clear();\n            }\n        }\n    }\n\n    /**\n     * @dev Internal cancel mechanism: locks up the proposal timer, preventing it from being re-submitted. Marks it as\n     * canceled to allow distinguishing it from executed proposals.\n     *\n     * Emits a {IGovernor-ProposalCanceled} event.\n     */\n    function _cancel(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal virtual returns (uint256) {\n        uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash);\n        ProposalState status = state(proposalId);\n\n        require(\n            status != ProposalState.Canceled && status != ProposalState.Expired && status != ProposalState.Executed,\n            \"Governor: proposal not active\"\n        );\n        _proposals[proposalId].canceled = true;\n\n        emit ProposalCanceled(proposalId);\n\n        return proposalId;\n    }\n\n    /**\n     * @dev See {IGovernor-getVotes}.\n     */\n    function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) {\n        return _getVotes(account, blockNumber, _defaultParams());\n    }\n\n    /**\n     * @dev See {IGovernor-getVotesWithParams}.\n     */\n    function getVotesWithParams(\n        address account,\n        uint256 blockNumber,\n        bytes memory params\n    ) public view virtual override returns (uint256) {\n        return _getVotes(account, blockNumber, params);\n    }\n\n    /**\n     * @dev See {IGovernor-castVote}.\n     */\n    function castVote(uint256 proposalId, uint8 support) public virtual override returns (uint256) {\n        address voter = _msgSender();\n        return _castVote(proposalId, voter, support, \"\");\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteWithReason}.\n     */\n    function castVoteWithReason(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason\n    ) public virtual override returns (uint256) {\n        address voter = _msgSender();\n        return _castVote(proposalId, voter, support, reason);\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteWithReasonAndParams}.\n     */\n    function castVoteWithReasonAndParams(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params\n    ) public virtual override returns (uint256) {\n        address voter = _msgSender();\n        return _castVote(proposalId, voter, support, reason, params);\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteBySig}.\n     */\n    function castVoteBySig(\n        uint256 proposalId,\n        uint8 support,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override returns (uint256) {\n        address voter = ECDSA.recover(\n            _hashTypedDataV4(keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support))),\n            v,\n            r,\n            s\n        );\n        return _castVote(proposalId, voter, support, \"\");\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteWithReasonAndParamsBySig}.\n     */\n    function castVoteWithReasonAndParamsBySig(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override returns (uint256) {\n        address voter = ECDSA.recover(\n            _hashTypedDataV4(\n                keccak256(\n                    abi.encode(\n                        EXTENDED_BALLOT_TYPEHASH,\n                        proposalId,\n                        support,\n                        keccak256(bytes(reason)),\n                        keccak256(params)\n                    )\n                )\n            ),\n            v,\n            r,\n            s\n        );\n\n        return _castVote(proposalId, voter, support, reason, params);\n    }\n\n    /**\n     * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n     * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. Uses the _defaultParams().\n     *\n     * Emits a {IGovernor-VoteCast} event.\n     */\n    function _castVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        string memory reason\n    ) internal virtual returns (uint256) {\n        return _castVote(proposalId, account, support, reason, _defaultParams());\n    }\n\n    /**\n     * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n     * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function.\n     *\n     * Emits a {IGovernor-VoteCast} event.\n     */\n    function _castVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        string memory reason,\n        bytes memory params\n    ) internal virtual returns (uint256) {\n        ProposalCore storage proposal = _proposals[proposalId];\n        require(state(proposalId) == ProposalState.Active, \"Governor: vote not currently active\");\n\n        uint256 weight = _getVotes(account, proposal.voteStart.getDeadline(), params);\n        _countVote(proposalId, account, support, weight, params);\n\n        if (params.length == 0) {\n            emit VoteCast(account, proposalId, support, weight, reason);\n        } else {\n            emit VoteCastWithParams(account, proposalId, support, weight, reason, params);\n        }\n\n        return weight;\n    }\n\n    /**\n     * @dev Relays a transaction or function call to an arbitrary target. In cases where the governance executor\n     * is some contract other than the governor itself, like when using a timelock, this function can be invoked\n     * in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake.\n     * Note that if the executor is simply the governor itself, use of `relay` is redundant.\n     */\n    function relay(\n        address target,\n        uint256 value,\n        bytes calldata data\n    ) external virtual onlyGovernance {\n        Address.functionCallWithValue(target, data, value);\n    }\n\n    /**\n     * @dev Address through which the governor executes action. Will be overloaded by module that execute actions\n     * through another contract such as a timelock.\n     */\n    function _executor() internal view virtual returns (address) {\n        return address(this);\n    }\n\n    /**\n     * @dev See {IERC721Receiver-onERC721Received}.\n     */\n    function onERC721Received(\n        address,\n        address,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC721Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155Received}.\n     */\n    function onERC1155Received(\n        address,\n        address,\n        uint256,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155BatchReceived}.\n     */\n    function onERC1155BatchReceived(\n        address,\n        address,\n        uint256[] memory,\n        uint256[] memory,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155BatchReceived.selector;\n    }\n}\n"},"@openzeppelin/contracts/utils/Timers.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Timers.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Tooling for timepoints, timers and delays\n */\nlibrary Timers {\n    struct Timestamp {\n        uint64 _deadline;\n    }\n\n    function getDeadline(Timestamp memory timer) internal pure returns (uint64) {\n        return timer._deadline;\n    }\n\n    function setDeadline(Timestamp storage timer, uint64 timestamp) internal {\n        timer._deadline = timestamp;\n    }\n\n    function reset(Timestamp storage timer) internal {\n        timer._deadline = 0;\n    }\n\n    function isUnset(Timestamp memory timer) internal pure returns (bool) {\n        return timer._deadline == 0;\n    }\n\n    function isStarted(Timestamp memory timer) internal pure returns (bool) {\n        return timer._deadline > 0;\n    }\n\n    function isPending(Timestamp memory timer) internal view returns (bool) {\n        return timer._deadline > block.timestamp;\n    }\n\n    function isExpired(Timestamp memory timer) internal view returns (bool) {\n        return isStarted(timer) && timer._deadline <= block.timestamp;\n    }\n\n    struct BlockNumber {\n        uint64 _deadline;\n    }\n\n    function getDeadline(BlockNumber memory timer) internal pure returns (uint64) {\n        return timer._deadline;\n    }\n\n    function setDeadline(BlockNumber storage timer, uint64 timestamp) internal {\n        timer._deadline = timestamp;\n    }\n\n    function reset(BlockNumber storage timer) internal {\n        timer._deadline = 0;\n    }\n\n    function isUnset(BlockNumber memory timer) internal pure returns (bool) {\n        return timer._deadline == 0;\n    }\n\n    function isStarted(BlockNumber memory timer) internal pure returns (bool) {\n        return timer._deadline > 0;\n    }\n\n    function isPending(BlockNumber memory timer) internal view returns (bool) {\n        return timer._deadline > block.number;\n    }\n\n    function isExpired(BlockNumber memory timer) internal view returns (bool) {\n        return isStarted(timer) && timer._deadline <= block.number;\n    }\n}\n"},"@openzeppelin/contracts/governance/IGovernor.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.2) (governance/IGovernor.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Interface of the {Governor} core.\n *\n * _Available since v4.3._\n */\nabstract contract IGovernor is IERC165 {\n    enum ProposalState {\n        Pending,\n        Active,\n        Canceled,\n        Defeated,\n        Succeeded,\n        Queued,\n        Expired,\n        Executed\n    }\n\n    /**\n     * @dev Emitted when a proposal is created.\n     */\n    event ProposalCreated(\n        uint256 proposalId,\n        address proposer,\n        address[] targets,\n        uint256[] values,\n        string[] signatures,\n        bytes[] calldatas,\n        uint256 startBlock,\n        uint256 endBlock,\n        string description\n    );\n\n    /**\n     * @dev Emitted when a proposal is canceled.\n     */\n    event ProposalCanceled(uint256 proposalId);\n\n    /**\n     * @dev Emitted when a proposal is executed.\n     */\n    event ProposalExecuted(uint256 proposalId);\n\n    /**\n     * @dev Emitted when a vote is cast without params.\n     *\n     * Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\n     */\n    event VoteCast(address indexed voter, uint256 proposalId, uint8 support, uint256 weight, string reason);\n\n    /**\n     * @dev Emitted when a vote is cast with params.\n     *\n     * Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\n     * `params` are additional encoded parameters. Their intepepretation also depends on the voting module used.\n     */\n    event VoteCastWithParams(\n        address indexed voter,\n        uint256 proposalId,\n        uint8 support,\n        uint256 weight,\n        string reason,\n        bytes params\n    );\n\n    /**\n     * @notice module:core\n     * @dev Name of the governor instance (used in building the ERC712 domain separator).\n     */\n    function name() public view virtual returns (string memory);\n\n    /**\n     * @notice module:core\n     * @dev Version of the governor instance (used in building the ERC712 domain separator). Default: \"1\"\n     */\n    function version() public view virtual returns (string memory);\n\n    /**\n     * @notice module:voting\n     * @dev A description of the possible `support` values for {castVote} and the way these votes are counted, meant to\n     * be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of\n     * key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`.\n     *\n     * There are 2 standard keys: `support` and `quorum`.\n     *\n     * - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`.\n     * - `quorum=bravo` means that only For votes are counted towards quorum.\n     * - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum.\n     *\n     * If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique\n     * name that describes the behavior. For example:\n     *\n     * - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain.\n     * - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote.\n     *\n     * NOTE: The string can be decoded by the standard\n     * https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`]\n     * JavaScript class.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function COUNTING_MODE() public pure virtual returns (string memory);\n\n    /**\n     * @notice module:core\n     * @dev Hashing function used to (re)build the proposal id from the proposal details..\n     */\n    function hashProposal(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public pure virtual returns (uint256);\n\n    /**\n     * @notice module:core\n     * @dev Current state of a proposal, following Compound's convention\n     */\n    function state(uint256 proposalId) public view virtual returns (ProposalState);\n\n    /**\n     * @notice module:core\n     * @dev Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's\n     * ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the\n     * beginning of the following block.\n     */\n    function proposalSnapshot(uint256 proposalId) public view virtual returns (uint256);\n\n    /**\n     * @notice module:core\n     * @dev Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote\n     * during this block.\n     */\n    function proposalDeadline(uint256 proposalId) public view virtual returns (uint256);\n\n    /**\n     * @notice module:user-config\n     * @dev Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to\n     * leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\n     */\n    function votingDelay() public view virtual returns (uint256);\n\n    /**\n     * @notice module:user-config\n     * @dev Delay, in number of blocks, between the vote start and vote ends.\n     *\n     * NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting\n     * duration compared to the voting delay.\n     */\n    function votingPeriod() public view virtual returns (uint256);\n\n    /**\n     * @notice module:user-config\n     * @dev Minimum number of cast voted required for a proposal to be successful.\n     *\n     * Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the\n     * quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\n     */\n    function quorum(uint256 blockNumber) public view virtual returns (uint256);\n\n    /**\n     * @notice module:reputation\n     * @dev Voting power of an `account` at a specific `blockNumber`.\n     *\n     * Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or\n     * multiple), {ERC20Votes} tokens.\n     */\n    function getVotes(address account, uint256 blockNumber) public view virtual returns (uint256);\n\n    /**\n     * @notice module:reputation\n     * @dev Voting power of an `account` at a specific `blockNumber` given additional encoded parameters.\n     */\n    function getVotesWithParams(\n        address account,\n        uint256 blockNumber,\n        bytes memory params\n    ) public view virtual returns (uint256);\n\n    /**\n     * @notice module:voting\n     * @dev Returns weither `account` has cast a vote on `proposalId`.\n     */\n    function hasVoted(uint256 proposalId, address account) public view virtual returns (bool);\n\n    /**\n     * @dev Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends\n     * {IGovernor-votingPeriod} blocks after the voting starts.\n     *\n     * Emits a {ProposalCreated} event.\n     */\n    function propose(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        string memory description\n    ) public virtual returns (uint256 proposalId);\n\n    /**\n     * @dev Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the\n     * deadline to be reached.\n     *\n     * Emits a {ProposalExecuted} event.\n     *\n     * Note: some module can modify the requirements for execution, for example by adding an additional timelock.\n     */\n    function execute(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public payable virtual returns (uint256 proposalId);\n\n    /**\n     * @dev Cast a vote\n     *\n     * Emits a {VoteCast} event.\n     */\n    function castVote(uint256 proposalId, uint8 support) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote with a reason\n     *\n     * Emits a {VoteCast} event.\n     */\n    function castVoteWithReason(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason\n    ) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote with a reason and additional encoded parameters\n     *\n     * Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\n     */\n    function castVoteWithReasonAndParams(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params\n    ) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote using the user's cryptographic signature.\n     *\n     * Emits a {VoteCast} event.\n     */\n    function castVoteBySig(\n        uint256 proposalId,\n        uint8 support,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature.\n     *\n     * Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\n     */\n    function castVoteWithReasonAndParamsBySig(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual returns (uint256 balance);\n}\n"},"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/cryptography/draft-EIP712.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./ECDSA.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n * they need in their contracts using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * _Available since v3.4._\n */\nabstract contract EIP712 {\n    /* solhint-disable var-name-mixedcase */\n    // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to\n    // invalidate the cached domain separator if the chain id changes.\n    bytes32 private immutable _CACHED_DOMAIN_SEPARATOR;\n    uint256 private immutable _CACHED_CHAIN_ID;\n    address private immutable _CACHED_THIS;\n\n    bytes32 private immutable _HASHED_NAME;\n    bytes32 private immutable _HASHED_VERSION;\n    bytes32 private immutable _TYPE_HASH;\n\n    /* solhint-enable var-name-mixedcase */\n\n    /**\n     * @dev Initializes the domain separator and parameter caches.\n     *\n     * The meaning of `name` and `version` is specified in\n     * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n     *\n     * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n     * - `version`: the current major version of the signing domain.\n     *\n     * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n     * contract upgrade].\n     */\n    constructor(string memory name, string memory version) {\n        bytes32 hashedName = keccak256(bytes(name));\n        bytes32 hashedVersion = keccak256(bytes(version));\n        bytes32 typeHash = keccak256(\n            \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"\n        );\n        _HASHED_NAME = hashedName;\n        _HASHED_VERSION = hashedVersion;\n        _CACHED_CHAIN_ID = block.chainid;\n        _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion);\n        _CACHED_THIS = address(this);\n        _TYPE_HASH = typeHash;\n    }\n\n    /**\n     * @dev Returns the domain separator for the current chain.\n     */\n    function _domainSeparatorV4() internal view returns (bytes32) {\n        if (address(this) == _CACHED_THIS && block.chainid == _CACHED_CHAIN_ID) {\n            return _CACHED_DOMAIN_SEPARATOR;\n        } else {\n            return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION);\n        }\n    }\n\n    function _buildDomainSeparator(\n        bytes32 typeHash,\n        bytes32 nameHash,\n        bytes32 versionHash\n    ) private view returns (bytes32) {\n        return keccak256(abi.encode(typeHash, nameHash, versionHash, block.chainid, address(this)));\n    }\n\n    /**\n     * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n     * function returns the hash of the fully encoded EIP712 message for this domain.\n     *\n     * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n     *\n     * ```solidity\n     * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     *     keccak256(\"Mail(address to,string contents)\"),\n     *     mailTo,\n     *     keccak256(bytes(mailContents))\n     * )));\n     * address signer = ECDSA.recover(digest, signature);\n     * ```\n     */\n    function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n        return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash);\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.3) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Strings.sol\";\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n    enum RecoverError {\n        NoError,\n        InvalidSignature,\n        InvalidSignatureLength,\n        InvalidSignatureS,\n        InvalidSignatureV\n    }\n\n    function _throwError(RecoverError error) private pure {\n        if (error == RecoverError.NoError) {\n            return; // no error: do nothing\n        } else if (error == RecoverError.InvalidSignature) {\n            revert(\"ECDSA: invalid signature\");\n        } else if (error == RecoverError.InvalidSignatureLength) {\n            revert(\"ECDSA: invalid signature length\");\n        } else if (error == RecoverError.InvalidSignatureS) {\n            revert(\"ECDSA: invalid signature 's' value\");\n        } else if (error == RecoverError.InvalidSignatureV) {\n            revert(\"ECDSA: invalid signature 'v' value\");\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature` or error string. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     *\n     * Documentation for signature generation:\n     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {\n        if (signature.length == 65) {\n            bytes32 r;\n            bytes32 s;\n            uint8 v;\n            // ecrecover takes the signature parameters, and the only way to get them\n            // currently is to use assembly.\n            /// @solidity memory-safe-assembly\n            assembly {\n                r := mload(add(signature, 0x20))\n                s := mload(add(signature, 0x40))\n                v := byte(0, mload(add(signature, 0x60)))\n            }\n            return tryRecover(hash, v, r, s);\n        } else {\n            return (address(0), RecoverError.InvalidSignatureLength);\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature`. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     */\n    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, signature);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n     *\n     * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(\n        bytes32 hash,\n        bytes32 r,\n        bytes32 vs\n    ) internal pure returns (address, RecoverError) {\n        bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n        uint8 v = uint8((uint256(vs) >> 255) + 27);\n        return tryRecover(hash, v, r, s);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n     *\n     * _Available since v4.2._\n     */\n    function recover(\n        bytes32 hash,\n        bytes32 r,\n        bytes32 vs\n    ) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, r, vs);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(\n        bytes32 hash,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal pure returns (address, RecoverError) {\n        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n        // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n        //\n        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n        // these malleable signatures as well.\n        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n            return (address(0), RecoverError.InvalidSignatureS);\n        }\n        if (v != 27 && v != 28) {\n            return (address(0), RecoverError.InvalidSignatureV);\n        }\n\n        // If the signature is valid (and not malleable), return the signer address\n        address signer = ecrecover(hash, v, r, s);\n        if (signer == address(0)) {\n            return (address(0), RecoverError.InvalidSignature);\n        }\n\n        return (signer, RecoverError.NoError);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     */\n    function recover(\n        bytes32 hash,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, v, r, s);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from a `hash`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {\n        // 32 is the length in bytes of hash,\n        // enforced by the type signature above\n        return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", hash));\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from `s`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n\", Strings.toString(s.length), s));\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Typed Data, created from a\n     * `domainSeparator` and a `structHash`. This produces hash corresponding\n     * to the one signed with the\n     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n     * JSON-RPC method as part of EIP-712.\n     *\n     * See {recover}.\n     */\n    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/math/SafeCast.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n *\n * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n * all math on `uint256` and `int256` and then downcasting.\n */\nlibrary SafeCast {\n    /**\n     * @dev Returns the downcasted uint248 from uint256, reverting on\n     * overflow (when the input is greater than largest uint248).\n     *\n     * Counterpart to Solidity's `uint248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint248(uint256 value) internal pure returns (uint248) {\n        require(value <= type(uint248).max, \"SafeCast: value doesn't fit in 248 bits\");\n        return uint248(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint240 from uint256, reverting on\n     * overflow (when the input is greater than largest uint240).\n     *\n     * Counterpart to Solidity's `uint240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint240(uint256 value) internal pure returns (uint240) {\n        require(value <= type(uint240).max, \"SafeCast: value doesn't fit in 240 bits\");\n        return uint240(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint232 from uint256, reverting on\n     * overflow (when the input is greater than largest uint232).\n     *\n     * Counterpart to Solidity's `uint232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint232(uint256 value) internal pure returns (uint232) {\n        require(value <= type(uint232).max, \"SafeCast: value doesn't fit in 232 bits\");\n        return uint232(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint224 from uint256, reverting on\n     * overflow (when the input is greater than largest uint224).\n     *\n     * Counterpart to Solidity's `uint224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint224(uint256 value) internal pure returns (uint224) {\n        require(value <= type(uint224).max, \"SafeCast: value doesn't fit in 224 bits\");\n        return uint224(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint216 from uint256, reverting on\n     * overflow (when the input is greater than largest uint216).\n     *\n     * Counterpart to Solidity's `uint216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint216(uint256 value) internal pure returns (uint216) {\n        require(value <= type(uint216).max, \"SafeCast: value doesn't fit in 216 bits\");\n        return uint216(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint208 from uint256, reverting on\n     * overflow (when the input is greater than largest uint208).\n     *\n     * Counterpart to Solidity's `uint208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint208(uint256 value) internal pure returns (uint208) {\n        require(value <= type(uint208).max, \"SafeCast: value doesn't fit in 208 bits\");\n        return uint208(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint200 from uint256, reverting on\n     * overflow (when the input is greater than largest uint200).\n     *\n     * Counterpart to Solidity's `uint200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint200(uint256 value) internal pure returns (uint200) {\n        require(value <= type(uint200).max, \"SafeCast: value doesn't fit in 200 bits\");\n        return uint200(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint192 from uint256, reverting on\n     * overflow (when the input is greater than largest uint192).\n     *\n     * Counterpart to Solidity's `uint192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint192(uint256 value) internal pure returns (uint192) {\n        require(value <= type(uint192).max, \"SafeCast: value doesn't fit in 192 bits\");\n        return uint192(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint184 from uint256, reverting on\n     * overflow (when the input is greater than largest uint184).\n     *\n     * Counterpart to Solidity's `uint184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint184(uint256 value) internal pure returns (uint184) {\n        require(value <= type(uint184).max, \"SafeCast: value doesn't fit in 184 bits\");\n        return uint184(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint176 from uint256, reverting on\n     * overflow (when the input is greater than largest uint176).\n     *\n     * Counterpart to Solidity's `uint176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint176(uint256 value) internal pure returns (uint176) {\n        require(value <= type(uint176).max, \"SafeCast: value doesn't fit in 176 bits\");\n        return uint176(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint168 from uint256, reverting on\n     * overflow (when the input is greater than largest uint168).\n     *\n     * Counterpart to Solidity's `uint168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint168(uint256 value) internal pure returns (uint168) {\n        require(value <= type(uint168).max, \"SafeCast: value doesn't fit in 168 bits\");\n        return uint168(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint160 from uint256, reverting on\n     * overflow (when the input is greater than largest uint160).\n     *\n     * Counterpart to Solidity's `uint160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint160(uint256 value) internal pure returns (uint160) {\n        require(value <= type(uint160).max, \"SafeCast: value doesn't fit in 160 bits\");\n        return uint160(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint152 from uint256, reverting on\n     * overflow (when the input is greater than largest uint152).\n     *\n     * Counterpart to Solidity's `uint152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint152(uint256 value) internal pure returns (uint152) {\n        require(value <= type(uint152).max, \"SafeCast: value doesn't fit in 152 bits\");\n        return uint152(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint144 from uint256, reverting on\n     * overflow (when the input is greater than largest uint144).\n     *\n     * Counterpart to Solidity's `uint144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint144(uint256 value) internal pure returns (uint144) {\n        require(value <= type(uint144).max, \"SafeCast: value doesn't fit in 144 bits\");\n        return uint144(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint136 from uint256, reverting on\n     * overflow (when the input is greater than largest uint136).\n     *\n     * Counterpart to Solidity's `uint136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint136(uint256 value) internal pure returns (uint136) {\n        require(value <= type(uint136).max, \"SafeCast: value doesn't fit in 136 bits\");\n        return uint136(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint128 from uint256, reverting on\n     * overflow (when the input is greater than largest uint128).\n     *\n     * Counterpart to Solidity's `uint128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint128(uint256 value) internal pure returns (uint128) {\n        require(value <= type(uint128).max, \"SafeCast: value doesn't fit in 128 bits\");\n        return uint128(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint120 from uint256, reverting on\n     * overflow (when the input is greater than largest uint120).\n     *\n     * Counterpart to Solidity's `uint120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint120(uint256 value) internal pure returns (uint120) {\n        require(value <= type(uint120).max, \"SafeCast: value doesn't fit in 120 bits\");\n        return uint120(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint112 from uint256, reverting on\n     * overflow (when the input is greater than largest uint112).\n     *\n     * Counterpart to Solidity's `uint112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint112(uint256 value) internal pure returns (uint112) {\n        require(value <= type(uint112).max, \"SafeCast: value doesn't fit in 112 bits\");\n        return uint112(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint104 from uint256, reverting on\n     * overflow (when the input is greater than largest uint104).\n     *\n     * Counterpart to Solidity's `uint104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint104(uint256 value) internal pure returns (uint104) {\n        require(value <= type(uint104).max, \"SafeCast: value doesn't fit in 104 bits\");\n        return uint104(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint96 from uint256, reverting on\n     * overflow (when the input is greater than largest uint96).\n     *\n     * Counterpart to Solidity's `uint96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint96(uint256 value) internal pure returns (uint96) {\n        require(value <= type(uint96).max, \"SafeCast: value doesn't fit in 96 bits\");\n        return uint96(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint88 from uint256, reverting on\n     * overflow (when the input is greater than largest uint88).\n     *\n     * Counterpart to Solidity's `uint88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint88(uint256 value) internal pure returns (uint88) {\n        require(value <= type(uint88).max, \"SafeCast: value doesn't fit in 88 bits\");\n        return uint88(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint80 from uint256, reverting on\n     * overflow (when the input is greater than largest uint80).\n     *\n     * Counterpart to Solidity's `uint80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint80(uint256 value) internal pure returns (uint80) {\n        require(value <= type(uint80).max, \"SafeCast: value doesn't fit in 80 bits\");\n        return uint80(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint72 from uint256, reverting on\n     * overflow (when the input is greater than largest uint72).\n     *\n     * Counterpart to Solidity's `uint72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint72(uint256 value) internal pure returns (uint72) {\n        require(value <= type(uint72).max, \"SafeCast: value doesn't fit in 72 bits\");\n        return uint72(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint64 from uint256, reverting on\n     * overflow (when the input is greater than largest uint64).\n     *\n     * Counterpart to Solidity's `uint64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint64(uint256 value) internal pure returns (uint64) {\n        require(value <= type(uint64).max, \"SafeCast: value doesn't fit in 64 bits\");\n        return uint64(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint56 from uint256, reverting on\n     * overflow (when the input is greater than largest uint56).\n     *\n     * Counterpart to Solidity's `uint56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint56(uint256 value) internal pure returns (uint56) {\n        require(value <= type(uint56).max, \"SafeCast: value doesn't fit in 56 bits\");\n        return uint56(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint48 from uint256, reverting on\n     * overflow (when the input is greater than largest uint48).\n     *\n     * Counterpart to Solidity's `uint48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint48(uint256 value) internal pure returns (uint48) {\n        require(value <= type(uint48).max, \"SafeCast: value doesn't fit in 48 bits\");\n        return uint48(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint40 from uint256, reverting on\n     * overflow (when the input is greater than largest uint40).\n     *\n     * Counterpart to Solidity's `uint40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint40(uint256 value) internal pure returns (uint40) {\n        require(value <= type(uint40).max, \"SafeCast: value doesn't fit in 40 bits\");\n        return uint40(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint32 from uint256, reverting on\n     * overflow (when the input is greater than largest uint32).\n     *\n     * Counterpart to Solidity's `uint32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint32(uint256 value) internal pure returns (uint32) {\n        require(value <= type(uint32).max, \"SafeCast: value doesn't fit in 32 bits\");\n        return uint32(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint24 from uint256, reverting on\n     * overflow (when the input is greater than largest uint24).\n     *\n     * Counterpart to Solidity's `uint24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint24(uint256 value) internal pure returns (uint24) {\n        require(value <= type(uint24).max, \"SafeCast: value doesn't fit in 24 bits\");\n        return uint24(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint16 from uint256, reverting on\n     * overflow (when the input is greater than largest uint16).\n     *\n     * Counterpart to Solidity's `uint16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint16(uint256 value) internal pure returns (uint16) {\n        require(value <= type(uint16).max, \"SafeCast: value doesn't fit in 16 bits\");\n        return uint16(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint8 from uint256, reverting on\n     * overflow (when the input is greater than largest uint8).\n     *\n     * Counterpart to Solidity's `uint8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint8(uint256 value) internal pure returns (uint8) {\n        require(value <= type(uint8).max, \"SafeCast: value doesn't fit in 8 bits\");\n        return uint8(value);\n    }\n\n    /**\n     * @dev Converts a signed int256 into an unsigned uint256.\n     *\n     * Requirements:\n     *\n     * - input must be greater than or equal to 0.\n     *\n     * _Available since v3.0._\n     */\n    function toUint256(int256 value) internal pure returns (uint256) {\n        require(value >= 0, \"SafeCast: value must be positive\");\n        return uint256(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int248 from int256, reverting on\n     * overflow (when the input is less than smallest int248 or\n     * greater than largest int248).\n     *\n     * Counterpart to Solidity's `int248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt248(int256 value) internal pure returns (int248) {\n        require(value >= type(int248).min && value <= type(int248).max, \"SafeCast: value doesn't fit in 248 bits\");\n        return int248(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int240 from int256, reverting on\n     * overflow (when the input is less than smallest int240 or\n     * greater than largest int240).\n     *\n     * Counterpart to Solidity's `int240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt240(int256 value) internal pure returns (int240) {\n        require(value >= type(int240).min && value <= type(int240).max, \"SafeCast: value doesn't fit in 240 bits\");\n        return int240(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int232 from int256, reverting on\n     * overflow (when the input is less than smallest int232 or\n     * greater than largest int232).\n     *\n     * Counterpart to Solidity's `int232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt232(int256 value) internal pure returns (int232) {\n        require(value >= type(int232).min && value <= type(int232).max, \"SafeCast: value doesn't fit in 232 bits\");\n        return int232(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int224 from int256, reverting on\n     * overflow (when the input is less than smallest int224 or\n     * greater than largest int224).\n     *\n     * Counterpart to Solidity's `int224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt224(int256 value) internal pure returns (int224) {\n        require(value >= type(int224).min && value <= type(int224).max, \"SafeCast: value doesn't fit in 224 bits\");\n        return int224(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int216 from int256, reverting on\n     * overflow (when the input is less than smallest int216 or\n     * greater than largest int216).\n     *\n     * Counterpart to Solidity's `int216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt216(int256 value) internal pure returns (int216) {\n        require(value >= type(int216).min && value <= type(int216).max, \"SafeCast: value doesn't fit in 216 bits\");\n        return int216(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int208 from int256, reverting on\n     * overflow (when the input is less than smallest int208 or\n     * greater than largest int208).\n     *\n     * Counterpart to Solidity's `int208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt208(int256 value) internal pure returns (int208) {\n        require(value >= type(int208).min && value <= type(int208).max, \"SafeCast: value doesn't fit in 208 bits\");\n        return int208(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int200 from int256, reverting on\n     * overflow (when the input is less than smallest int200 or\n     * greater than largest int200).\n     *\n     * Counterpart to Solidity's `int200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt200(int256 value) internal pure returns (int200) {\n        require(value >= type(int200).min && value <= type(int200).max, \"SafeCast: value doesn't fit in 200 bits\");\n        return int200(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int192 from int256, reverting on\n     * overflow (when the input is less than smallest int192 or\n     * greater than largest int192).\n     *\n     * Counterpart to Solidity's `int192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt192(int256 value) internal pure returns (int192) {\n        require(value >= type(int192).min && value <= type(int192).max, \"SafeCast: value doesn't fit in 192 bits\");\n        return int192(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int184 from int256, reverting on\n     * overflow (when the input is less than smallest int184 or\n     * greater than largest int184).\n     *\n     * Counterpart to Solidity's `int184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt184(int256 value) internal pure returns (int184) {\n        require(value >= type(int184).min && value <= type(int184).max, \"SafeCast: value doesn't fit in 184 bits\");\n        return int184(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int176 from int256, reverting on\n     * overflow (when the input is less than smallest int176 or\n     * greater than largest int176).\n     *\n     * Counterpart to Solidity's `int176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt176(int256 value) internal pure returns (int176) {\n        require(value >= type(int176).min && value <= type(int176).max, \"SafeCast: value doesn't fit in 176 bits\");\n        return int176(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int168 from int256, reverting on\n     * overflow (when the input is less than smallest int168 or\n     * greater than largest int168).\n     *\n     * Counterpart to Solidity's `int168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt168(int256 value) internal pure returns (int168) {\n        require(value >= type(int168).min && value <= type(int168).max, \"SafeCast: value doesn't fit in 168 bits\");\n        return int168(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int160 from int256, reverting on\n     * overflow (when the input is less than smallest int160 or\n     * greater than largest int160).\n     *\n     * Counterpart to Solidity's `int160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt160(int256 value) internal pure returns (int160) {\n        require(value >= type(int160).min && value <= type(int160).max, \"SafeCast: value doesn't fit in 160 bits\");\n        return int160(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int152 from int256, reverting on\n     * overflow (when the input is less than smallest int152 or\n     * greater than largest int152).\n     *\n     * Counterpart to Solidity's `int152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt152(int256 value) internal pure returns (int152) {\n        require(value >= type(int152).min && value <= type(int152).max, \"SafeCast: value doesn't fit in 152 bits\");\n        return int152(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int144 from int256, reverting on\n     * overflow (when the input is less than smallest int144 or\n     * greater than largest int144).\n     *\n     * Counterpart to Solidity's `int144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt144(int256 value) internal pure returns (int144) {\n        require(value >= type(int144).min && value <= type(int144).max, \"SafeCast: value doesn't fit in 144 bits\");\n        return int144(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int136 from int256, reverting on\n     * overflow (when the input is less than smallest int136 or\n     * greater than largest int136).\n     *\n     * Counterpart to Solidity's `int136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt136(int256 value) internal pure returns (int136) {\n        require(value >= type(int136).min && value <= type(int136).max, \"SafeCast: value doesn't fit in 136 bits\");\n        return int136(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int128 from int256, reverting on\n     * overflow (when the input is less than smallest int128 or\n     * greater than largest int128).\n     *\n     * Counterpart to Solidity's `int128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt128(int256 value) internal pure returns (int128) {\n        require(value >= type(int128).min && value <= type(int128).max, \"SafeCast: value doesn't fit in 128 bits\");\n        return int128(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int120 from int256, reverting on\n     * overflow (when the input is less than smallest int120 or\n     * greater than largest int120).\n     *\n     * Counterpart to Solidity's `int120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt120(int256 value) internal pure returns (int120) {\n        require(value >= type(int120).min && value <= type(int120).max, \"SafeCast: value doesn't fit in 120 bits\");\n        return int120(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int112 from int256, reverting on\n     * overflow (when the input is less than smallest int112 or\n     * greater than largest int112).\n     *\n     * Counterpart to Solidity's `int112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt112(int256 value) internal pure returns (int112) {\n        require(value >= type(int112).min && value <= type(int112).max, \"SafeCast: value doesn't fit in 112 bits\");\n        return int112(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int104 from int256, reverting on\n     * overflow (when the input is less than smallest int104 or\n     * greater than largest int104).\n     *\n     * Counterpart to Solidity's `int104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt104(int256 value) internal pure returns (int104) {\n        require(value >= type(int104).min && value <= type(int104).max, \"SafeCast: value doesn't fit in 104 bits\");\n        return int104(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int96 from int256, reverting on\n     * overflow (when the input is less than smallest int96 or\n     * greater than largest int96).\n     *\n     * Counterpart to Solidity's `int96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt96(int256 value) internal pure returns (int96) {\n        require(value >= type(int96).min && value <= type(int96).max, \"SafeCast: value doesn't fit in 96 bits\");\n        return int96(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int88 from int256, reverting on\n     * overflow (when the input is less than smallest int88 or\n     * greater than largest int88).\n     *\n     * Counterpart to Solidity's `int88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt88(int256 value) internal pure returns (int88) {\n        require(value >= type(int88).min && value <= type(int88).max, \"SafeCast: value doesn't fit in 88 bits\");\n        return int88(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int80 from int256, reverting on\n     * overflow (when the input is less than smallest int80 or\n     * greater than largest int80).\n     *\n     * Counterpart to Solidity's `int80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt80(int256 value) internal pure returns (int80) {\n        require(value >= type(int80).min && value <= type(int80).max, \"SafeCast: value doesn't fit in 80 bits\");\n        return int80(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int72 from int256, reverting on\n     * overflow (when the input is less than smallest int72 or\n     * greater than largest int72).\n     *\n     * Counterpart to Solidity's `int72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt72(int256 value) internal pure returns (int72) {\n        require(value >= type(int72).min && value <= type(int72).max, \"SafeCast: value doesn't fit in 72 bits\");\n        return int72(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int64 from int256, reverting on\n     * overflow (when the input is less than smallest int64 or\n     * greater than largest int64).\n     *\n     * Counterpart to Solidity's `int64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt64(int256 value) internal pure returns (int64) {\n        require(value >= type(int64).min && value <= type(int64).max, \"SafeCast: value doesn't fit in 64 bits\");\n        return int64(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int56 from int256, reverting on\n     * overflow (when the input is less than smallest int56 or\n     * greater than largest int56).\n     *\n     * Counterpart to Solidity's `int56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt56(int256 value) internal pure returns (int56) {\n        require(value >= type(int56).min && value <= type(int56).max, \"SafeCast: value doesn't fit in 56 bits\");\n        return int56(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int48 from int256, reverting on\n     * overflow (when the input is less than smallest int48 or\n     * greater than largest int48).\n     *\n     * Counterpart to Solidity's `int48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt48(int256 value) internal pure returns (int48) {\n        require(value >= type(int48).min && value <= type(int48).max, \"SafeCast: value doesn't fit in 48 bits\");\n        return int48(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int40 from int256, reverting on\n     * overflow (when the input is less than smallest int40 or\n     * greater than largest int40).\n     *\n     * Counterpart to Solidity's `int40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt40(int256 value) internal pure returns (int40) {\n        require(value >= type(int40).min && value <= type(int40).max, \"SafeCast: value doesn't fit in 40 bits\");\n        return int40(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int32 from int256, reverting on\n     * overflow (when the input is less than smallest int32 or\n     * greater than largest int32).\n     *\n     * Counterpart to Solidity's `int32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt32(int256 value) internal pure returns (int32) {\n        require(value >= type(int32).min && value <= type(int32).max, \"SafeCast: value doesn't fit in 32 bits\");\n        return int32(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int24 from int256, reverting on\n     * overflow (when the input is less than smallest int24 or\n     * greater than largest int24).\n     *\n     * Counterpart to Solidity's `int24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt24(int256 value) internal pure returns (int24) {\n        require(value >= type(int24).min && value <= type(int24).max, \"SafeCast: value doesn't fit in 24 bits\");\n        return int24(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int16 from int256, reverting on\n     * overflow (when the input is less than smallest int16 or\n     * greater than largest int16).\n     *\n     * Counterpart to Solidity's `int16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt16(int256 value) internal pure returns (int16) {\n        require(value >= type(int16).min && value <= type(int16).max, \"SafeCast: value doesn't fit in 16 bits\");\n        return int16(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int8 from int256, reverting on\n     * overflow (when the input is less than smallest int8 or\n     * greater than largest int8).\n     *\n     * Counterpart to Solidity's `int8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt8(int256 value) internal pure returns (int8) {\n        require(value >= type(int8).min && value <= type(int8).max, \"SafeCast: value doesn't fit in 8 bits\");\n        return int8(value);\n    }\n\n    /**\n     * @dev Converts an unsigned uint256 into a signed int256.\n     *\n     * Requirements:\n     *\n     * - input must be less than or equal to maxInt256.\n     *\n     * _Available since v3.0._\n     */\n    function toInt256(uint256 value) internal pure returns (int256) {\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n        require(value <= uint256(type(int256).max), \"SafeCast: value doesn't fit in an int256\");\n        return int256(value);\n    }\n}\n"},"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (utils/structs/DoubleEndedQueue.sol)\npragma solidity ^0.8.4;\n\nimport \"../math/SafeCast.sol\";\n\n/**\n * @dev A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of\n * the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and\n * FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that\n * the existing queue contents are left in storage.\n *\n * The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be\n * used in storage, and not in memory.\n * ```\n * DoubleEndedQueue.Bytes32Deque queue;\n * ```\n *\n * _Available since v4.6._\n */\nlibrary DoubleEndedQueue {\n    /**\n     * @dev An operation (e.g. {front}) couldn't be completed due to the queue being empty.\n     */\n    error Empty();\n\n    /**\n     * @dev An operation (e.g. {at}) couldn't be completed due to an index being out of bounds.\n     */\n    error OutOfBounds();\n\n    /**\n     * @dev Indices are signed integers because the queue can grow in any direction. They are 128 bits so begin and end\n     * are packed in a single storage slot for efficient access. Since the items are added one at a time we can safely\n     * assume that these 128-bit indices will not overflow, and use unchecked arithmetic.\n     *\n     * Struct members have an underscore prefix indicating that they are \"private\" and should not be read or written to\n     * directly. Use the functions provided below instead. Modifying the struct manually may violate assumptions and\n     * lead to unexpected behavior.\n     *\n     * Indices are in the range [begin, end) which means the first item is at data[begin] and the last item is at\n     * data[end - 1].\n     */\n    struct Bytes32Deque {\n        int128 _begin;\n        int128 _end;\n        mapping(int128 => bytes32) _data;\n    }\n\n    /**\n     * @dev Inserts an item at the end of the queue.\n     */\n    function pushBack(Bytes32Deque storage deque, bytes32 value) internal {\n        int128 backIndex = deque._end;\n        deque._data[backIndex] = value;\n        unchecked {\n            deque._end = backIndex + 1;\n        }\n    }\n\n    /**\n     * @dev Removes the item at the end of the queue and returns it.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function popBack(Bytes32Deque storage deque) internal returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 backIndex;\n        unchecked {\n            backIndex = deque._end - 1;\n        }\n        value = deque._data[backIndex];\n        delete deque._data[backIndex];\n        deque._end = backIndex;\n    }\n\n    /**\n     * @dev Inserts an item at the beginning of the queue.\n     */\n    function pushFront(Bytes32Deque storage deque, bytes32 value) internal {\n        int128 frontIndex;\n        unchecked {\n            frontIndex = deque._begin - 1;\n        }\n        deque._data[frontIndex] = value;\n        deque._begin = frontIndex;\n    }\n\n    /**\n     * @dev Removes the item at the beginning of the queue and returns it.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function popFront(Bytes32Deque storage deque) internal returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 frontIndex = deque._begin;\n        value = deque._data[frontIndex];\n        delete deque._data[frontIndex];\n        unchecked {\n            deque._begin = frontIndex + 1;\n        }\n    }\n\n    /**\n     * @dev Returns the item at the beginning of the queue.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function front(Bytes32Deque storage deque) internal view returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 frontIndex = deque._begin;\n        return deque._data[frontIndex];\n    }\n\n    /**\n     * @dev Returns the item at the end of the queue.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function back(Bytes32Deque storage deque) internal view returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 backIndex;\n        unchecked {\n            backIndex = deque._end - 1;\n        }\n        return deque._data[backIndex];\n    }\n\n    /**\n     * @dev Return the item at a position in the queue given by `index`, with the first item at 0 and last item at\n     * `length(deque) - 1`.\n     *\n     * Reverts with `OutOfBounds` if the index is out of bounds.\n     */\n    function at(Bytes32Deque storage deque, uint256 index) internal view returns (bytes32 value) {\n        // int256(deque._begin) is a safe upcast\n        int128 idx = SafeCast.toInt128(int256(deque._begin) + SafeCast.toInt256(index));\n        if (idx >= deque._end) revert OutOfBounds();\n        return deque._data[idx];\n    }\n\n    /**\n     * @dev Resets the queue back to being empty.\n     *\n     * NOTE: The current items are left behind in storage. This does not affect the functioning of the queue, but misses\n     * out on potential gas refunds.\n     */\n    function clear(Bytes32Deque storage deque) internal {\n        deque._begin = 0;\n        deque._end = 0;\n    }\n\n    /**\n     * @dev Returns the number of items in the queue.\n     */\n    function length(Bytes32Deque storage deque) internal view returns (uint256) {\n        // The interface preserves the invariant that begin <= end so we assume this will not overflow.\n        // We also assume there are at most int256.max items in the queue.\n        unchecked {\n            return uint256(int256(deque._end) - int256(deque._begin));\n        }\n    }\n\n    /**\n     * @dev Returns true if the queue is empty.\n     */\n    function empty(Bytes32Deque storage deque) internal view returns (bool) {\n        return deque._end <= deque._begin;\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (governance/extensions/GovernorPreventLateQuorum.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Governor.sol\";\nimport \"../../utils/math/Math.sol\";\n\n/**\n * @dev A module that ensures there is a minimum voting period after quorum is reached. This prevents a large voter from\n * swaying a vote and triggering quorum at the last minute, by ensuring there is always time for other voters to react\n * and try to oppose the decision.\n *\n * If a vote causes quorum to be reached, the proposal's voting period may be extended so that it does not end before at\n * least a given number of blocks have passed (the \"vote extension\" parameter). This parameter can be set by the\n * governance executor (e.g. through a governance proposal).\n *\n * _Available since v4.5._\n */\nabstract contract GovernorPreventLateQuorum is Governor {\n    using SafeCast for uint256;\n    using Timers for Timers.BlockNumber;\n\n    uint64 private _voteExtension;\n    mapping(uint256 => Timers.BlockNumber) private _extendedDeadlines;\n\n    /// @dev Emitted when a proposal deadline is pushed back due to reaching quorum late in its voting period.\n    event ProposalExtended(uint256 indexed proposalId, uint64 extendedDeadline);\n\n    /// @dev Emitted when the {lateQuorumVoteExtension} parameter is changed.\n    event LateQuorumVoteExtensionSet(uint64 oldVoteExtension, uint64 newVoteExtension);\n\n    /**\n     * @dev Initializes the vote extension parameter: the number of blocks that are required to pass since a proposal\n     * reaches quorum until its voting period ends. If necessary the voting period will be extended beyond the one set\n     * at proposal creation.\n     */\n    constructor(uint64 initialVoteExtension) {\n        _setLateQuorumVoteExtension(initialVoteExtension);\n    }\n\n    /**\n     * @dev Returns the proposal deadline, which may have been extended beyond that set at proposal creation, if the\n     * proposal reached quorum late in the voting period. See {Governor-proposalDeadline}.\n     */\n    function proposalDeadline(uint256 proposalId) public view virtual override returns (uint256) {\n        return Math.max(super.proposalDeadline(proposalId), _extendedDeadlines[proposalId].getDeadline());\n    }\n\n    /**\n     * @dev Casts a vote and detects if it caused quorum to be reached, potentially extending the voting period. See\n     * {Governor-_castVote}.\n     *\n     * May emit a {ProposalExtended} event.\n     */\n    function _castVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        string memory reason,\n        bytes memory params\n    ) internal virtual override returns (uint256) {\n        uint256 result = super._castVote(proposalId, account, support, reason, params);\n\n        Timers.BlockNumber storage extendedDeadline = _extendedDeadlines[proposalId];\n\n        if (extendedDeadline.isUnset() && _quorumReached(proposalId)) {\n            uint64 extendedDeadlineValue = block.number.toUint64() + lateQuorumVoteExtension();\n\n            if (extendedDeadlineValue > proposalDeadline(proposalId)) {\n                emit ProposalExtended(proposalId, extendedDeadlineValue);\n            }\n\n            extendedDeadline.setDeadline(extendedDeadlineValue);\n        }\n\n        return result;\n    }\n\n    /**\n     * @dev Returns the current value of the vote extension parameter: the number of blocks that are required to pass\n     * from the time a proposal reaches quorum until its voting period ends.\n     */\n    function lateQuorumVoteExtension() public view virtual returns (uint64) {\n        return _voteExtension;\n    }\n\n    /**\n     * @dev Changes the {lateQuorumVoteExtension}. This operation can only be performed by the governance executor,\n     * generally through a governance proposal.\n     *\n     * Emits a {LateQuorumVoteExtensionSet} event.\n     */\n    function setLateQuorumVoteExtension(uint64 newVoteExtension) public virtual onlyGovernance {\n        _setLateQuorumVoteExtension(newVoteExtension);\n    }\n\n    /**\n     * @dev Changes the {lateQuorumVoteExtension}. This is an internal function that can be exposed in a public function\n     * like {setLateQuorumVoteExtension} if another access control mechanism is needed.\n     *\n     * Emits a {LateQuorumVoteExtensionSet} event.\n     */\n    function _setLateQuorumVoteExtension(uint64 newVoteExtension) internal virtual {\n        emit LateQuorumVoteExtensionSet(_voteExtension, newVoteExtension);\n        _voteExtension = newVoteExtension;\n    }\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a >= b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(\n        uint256 x,\n        uint256 y,\n        uint256 denominator\n    ) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1);\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(\n        uint256 x,\n        uint256 y,\n        uint256 denominator,\n        Rounding rounding\n    ) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. It the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`.\n        // We also know that `k`, the position of the most significant bit, is such that `msb(a) = 2**k`.\n        // This gives `2**k < a <= 2**(k+1)` → `2**(k/2) <= sqrt(a) < 2 ** (k/2+1)`.\n        // Using an algorithm similar to the msb conmputation, we are able to compute `result = 2**(k/2)` which is a\n        // good first aproximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1;\n        uint256 x = a;\n        if (x >> 128 > 0) {\n            x >>= 128;\n            result <<= 64;\n        }\n        if (x >> 64 > 0) {\n            x >>= 64;\n            result <<= 32;\n        }\n        if (x >> 32 > 0) {\n            x >>= 32;\n            result <<= 16;\n        }\n        if (x >> 16 > 0) {\n            x >>= 16;\n            result <<= 8;\n        }\n        if (x >> 8 > 0) {\n            x >>= 8;\n            result <<= 4;\n        }\n        if (x >> 4 > 0) {\n            x >>= 4;\n            result <<= 2;\n        }\n        if (x >> 2 > 0) {\n            result <<= 1;\n        }\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        uint256 result = sqrt(a);\n        if (rounding == Rounding.Up && result * result < a) {\n            result += 1;\n        }\n        return result;\n    }\n}\n"},"@openzeppelin/contracts/utils/Checkpoints.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (utils/Checkpoints.sol)\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SafeCast.sol\";\n\n/**\n * @dev This library defines the `History` struct, for checkpointing values as they change at different points in\n * time, and later looking up past values by block number. See {Votes} as an example.\n *\n * To create a history of checkpoints define a variable type `Checkpoints.History` in your contract, and store a new\n * checkpoint for the current transaction block using the {push} function.\n *\n * _Available since v4.5._\n */\nlibrary Checkpoints {\n    struct Checkpoint {\n        uint32 _blockNumber;\n        uint224 _value;\n    }\n\n    struct History {\n        Checkpoint[] _checkpoints;\n    }\n\n    /**\n     * @dev Returns the value in the latest checkpoint, or zero if there are no checkpoints.\n     */\n    function latest(History storage self) internal view returns (uint256) {\n        uint256 pos = self._checkpoints.length;\n        return pos == 0 ? 0 : self._checkpoints[pos - 1]._value;\n    }\n\n    /**\n     * @dev Returns the value at a given block number. If a checkpoint is not available at that block, the closest one\n     * before it is returned, or zero otherwise.\n     */\n    function getAtBlock(History storage self, uint256 blockNumber) internal view returns (uint256) {\n        require(blockNumber < block.number, \"Checkpoints: block not yet mined\");\n\n        uint256 high = self._checkpoints.length;\n        uint256 low = 0;\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (self._checkpoints[mid]._blockNumber > blockNumber) {\n                high = mid;\n            } else {\n                low = mid + 1;\n            }\n        }\n        return high == 0 ? 0 : self._checkpoints[high - 1]._value;\n    }\n\n    /**\n     * @dev Pushes a value onto a History so that it is stored as the checkpoint for the current block.\n     *\n     * Returns previous value and new value.\n     */\n    function push(History storage self, uint256 value) internal returns (uint256, uint256) {\n        uint256 pos = self._checkpoints.length;\n        uint256 old = latest(self);\n        if (pos > 0 && self._checkpoints[pos - 1]._blockNumber == block.number) {\n            self._checkpoints[pos - 1]._value = SafeCast.toUint224(value);\n        } else {\n            self._checkpoints.push(\n                Checkpoint({_blockNumber: SafeCast.toUint32(block.number), _value: SafeCast.toUint224(value)})\n            );\n        }\n        return (old, value);\n    }\n\n    /**\n     * @dev Pushes a value onto a History, by updating the latest value using binary operation `op`. The new value will\n     * be set to `op(latest, delta)`.\n     *\n     * Returns previous value and new value.\n     */\n    function push(\n        History storage self,\n        function(uint256, uint256) view returns (uint256) op,\n        uint256 delta\n    ) internal returns (uint256, uint256) {\n        return push(self, op(latest(self), delta));\n    }\n}\n"},"@openzeppelin/contracts/governance/utils/Votes.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (governance/utils/Votes.sol)\npragma solidity ^0.8.0;\n\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Counters.sol\";\nimport \"../../utils/Checkpoints.sol\";\nimport \"../../utils/cryptography/draft-EIP712.sol\";\nimport \"./IVotes.sol\";\n\n/**\n * @dev This is a base abstract contract that tracks voting units, which are a measure of voting power that can be\n * transferred, and provides a system of vote delegation, where an account can delegate its voting units to a sort of\n * \"representative\" that will pool delegated voting units from different accounts and can then use it to vote in\n * decisions. In fact, voting units _must_ be delegated in order to count as actual votes, and an account has to\n * delegate those votes to itself if it wishes to participate in decisions and does not have a trusted representative.\n *\n * This contract is often combined with a token contract such that voting units correspond to token units. For an\n * example, see {ERC721Votes}.\n *\n * The full history of delegate votes is tracked on-chain so that governance protocols can consider votes as distributed\n * at a particular block number to protect against flash loans and double voting. The opt-in delegate system makes the\n * cost of this history tracking optional.\n *\n * When using this module the derived contract must implement {_getVotingUnits} (for example, make it return\n * {ERC721-balanceOf}), and can use {_transferVotingUnits} to track a change in the distribution of those units (in the\n * previous example, it would be included in {ERC721-_beforeTokenTransfer}).\n *\n * _Available since v4.5._\n */\nabstract contract Votes is IVotes, Context, EIP712 {\n    using Checkpoints for Checkpoints.History;\n    using Counters for Counters.Counter;\n\n    bytes32 private constant _DELEGATION_TYPEHASH =\n        keccak256(\"Delegation(address delegatee,uint256 nonce,uint256 expiry)\");\n\n    mapping(address => address) private _delegation;\n    mapping(address => Checkpoints.History) private _delegateCheckpoints;\n    Checkpoints.History private _totalCheckpoints;\n\n    mapping(address => Counters.Counter) private _nonces;\n\n    /**\n     * @dev Returns the current amount of votes that `account` has.\n     */\n    function getVotes(address account) public view virtual override returns (uint256) {\n        return _delegateCheckpoints[account].latest();\n    }\n\n    /**\n     * @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\n     *\n     * Requirements:\n     *\n     * - `blockNumber` must have been already mined\n     */\n    function getPastVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) {\n        return _delegateCheckpoints[account].getAtBlock(blockNumber);\n    }\n\n    /**\n     * @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n     *\n     * NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n     * Votes that have not been delegated are still part of total supply, even though they would not participate in a\n     * vote.\n     *\n     * Requirements:\n     *\n     * - `blockNumber` must have been already mined\n     */\n    function getPastTotalSupply(uint256 blockNumber) public view virtual override returns (uint256) {\n        require(blockNumber < block.number, \"Votes: block not yet mined\");\n        return _totalCheckpoints.getAtBlock(blockNumber);\n    }\n\n    /**\n     * @dev Returns the current total supply of votes.\n     */\n    function _getTotalSupply() internal view virtual returns (uint256) {\n        return _totalCheckpoints.latest();\n    }\n\n    /**\n     * @dev Returns the delegate that `account` has chosen.\n     */\n    function delegates(address account) public view virtual override returns (address) {\n        return _delegation[account];\n    }\n\n    /**\n     * @dev Delegates votes from the sender to `delegatee`.\n     */\n    function delegate(address delegatee) public virtual override {\n        address account = _msgSender();\n        _delegate(account, delegatee);\n    }\n\n    /**\n     * @dev Delegates votes from signer to `delegatee`.\n     */\n    function delegateBySig(\n        address delegatee,\n        uint256 nonce,\n        uint256 expiry,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override {\n        require(block.timestamp <= expiry, \"Votes: signature expired\");\n        address signer = ECDSA.recover(\n            _hashTypedDataV4(keccak256(abi.encode(_DELEGATION_TYPEHASH, delegatee, nonce, expiry))),\n            v,\n            r,\n            s\n        );\n        require(nonce == _useNonce(signer), \"Votes: invalid nonce\");\n        _delegate(signer, delegatee);\n    }\n\n    /**\n     * @dev Delegate all of `account`'s voting units to `delegatee`.\n     *\n     * Emits events {DelegateChanged} and {DelegateVotesChanged}.\n     */\n    function _delegate(address account, address delegatee) internal virtual {\n        address oldDelegate = delegates(account);\n        _delegation[account] = delegatee;\n\n        emit DelegateChanged(account, oldDelegate, delegatee);\n        _moveDelegateVotes(oldDelegate, delegatee, _getVotingUnits(account));\n    }\n\n    /**\n     * @dev Transfers, mints, or burns voting units. To register a mint, `from` should be zero. To register a burn, `to`\n     * should be zero. Total supply of voting units will be adjusted with mints and burns.\n     */\n    function _transferVotingUnits(\n        address from,\n        address to,\n        uint256 amount\n    ) internal virtual {\n        if (from == address(0)) {\n            _totalCheckpoints.push(_add, amount);\n        }\n        if (to == address(0)) {\n            _totalCheckpoints.push(_subtract, amount);\n        }\n        _moveDelegateVotes(delegates(from), delegates(to), amount);\n    }\n\n    /**\n     * @dev Moves delegated votes from one delegate to another.\n     */\n    function _moveDelegateVotes(\n        address from,\n        address to,\n        uint256 amount\n    ) private {\n        if (from != to && amount > 0) {\n            if (from != address(0)) {\n                (uint256 oldValue, uint256 newValue) = _delegateCheckpoints[from].push(_subtract, amount);\n                emit DelegateVotesChanged(from, oldValue, newValue);\n            }\n            if (to != address(0)) {\n                (uint256 oldValue, uint256 newValue) = _delegateCheckpoints[to].push(_add, amount);\n                emit DelegateVotesChanged(to, oldValue, newValue);\n            }\n        }\n    }\n\n    function _add(uint256 a, uint256 b) private pure returns (uint256) {\n        return a + b;\n    }\n\n    function _subtract(uint256 a, uint256 b) private pure returns (uint256) {\n        return a - b;\n    }\n\n    /**\n     * @dev Consumes a nonce.\n     *\n     * Returns the current value and increments nonce.\n     */\n    function _useNonce(address owner) internal virtual returns (uint256 current) {\n        Counters.Counter storage nonce = _nonces[owner];\n        current = nonce.current();\n        nonce.increment();\n    }\n\n    /**\n     * @dev Returns an address nonce.\n     */\n    function nonces(address owner) public view virtual returns (uint256) {\n        return _nonces[owner].current();\n    }\n\n    /**\n     * @dev Returns the contract's {EIP712} domain separator.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32) {\n        return _domainSeparatorV4();\n    }\n\n    /**\n     * @dev Must return the voting units held by an account.\n     */\n    function _getVotingUnits(address) internal view virtual returns (uint256);\n}\n"},"@openzeppelin/contracts/utils/Counters.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n    struct Counter {\n        // This variable should never be directly accessed by users of the library: interactions must be restricted to\n        // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n        // this feature: see https://github.com/ethereum/solidity/issues/4637\n        uint256 _value; // default: 0\n    }\n\n    function current(Counter storage counter) internal view returns (uint256) {\n        return counter._value;\n    }\n\n    function increment(Counter storage counter) internal {\n        unchecked {\n            counter._value += 1;\n        }\n    }\n\n    function decrement(Counter storage counter) internal {\n        uint256 value = counter._value;\n        require(value > 0, \"Counter: decrement overflow\");\n        unchecked {\n            counter._value = value - 1;\n        }\n    }\n\n    function reset(Counter storage counter) internal {\n        counter._value = 0;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\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     * The default value of {decimals} is 18. To select a different value for\n     * {decimals} you should overload it.\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 value {ERC20} uses, unless this function is\n     * 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(\n        address from,\n        address to,\n        uint256 amount\n    ) 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(\n        address from,\n        address to,\n        uint256 amount\n    ) 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        }\n        _balances[to] += amount;\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        _balances[account] += amount;\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        }\n        _totalSupply -= amount;\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(\n        address owner,\n        address spender,\n        uint256 amount\n    ) 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(\n        address owner,\n        address spender,\n        uint256 amount\n    ) 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(\n        address from,\n        address to,\n        uint256 amount\n    ) 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(\n        address from,\n        address to,\n        uint256 amount\n    ) 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"},"contracts/voter/BaseV2Voter.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {EIP712, Votes} from \"@openzeppelin/contracts/governance/utils/Votes.sol\";\n\nimport {IBribeV2} from \"../interfaces/IBribeV2.sol\";\nimport {IBribeFactory} from \"../interfaces/IBribeFactory.sol\";\nimport {IEmissionController} from \"../interfaces/IEmissionController.sol\";\nimport {IGauge} from \"../interfaces/IGauge.sol\";\nimport {IGaugeVoterV2} from \"../interfaces/IGaugeVoterV2.sol\";\nimport {IRegistry} from \"../interfaces/IRegistry.sol\";\nimport {IUniswapV2Pair} from \"../interfaces/IUniswapV2Pair.sol\";\nimport {INFTStaker} from \"../interfaces/INFTStaker.sol\";\n\n/**\n * This contract is an extension of the BaseV1Voter that was originally written by Andre.\n * This contract allows delegation and captures voting power of a user overtime. This contract\n * is also compatible with openzepplin's Governor contract.\n */\ncontract BaseV2Voter is ReentrancyGuard, Ownable, IGaugeVoterV2 {\n    IRegistry public immutable override registry;\n\n    uint256 internal constant DURATION = 7 days; // rewards are released over 7 days\n\n    uint256 public totalWeight; // total voting weight\n\n    address[] public pools; // all pools viable for incentives\n    mapping(address => address) public gauges; // pool => gauge\n    mapping(address => address) public poolForGauge; // gauge => pool\n    mapping(address => address) public bribes; // gauge => bribe\n    mapping(address => int256) public weights; // pool => weight\n    mapping(address => mapping(address => int256)) public votes; // nft => pool => votes\n    mapping(address => address[]) public poolVote; // nft => pools\n    mapping(address => uint256) public usedWeights; // nft => total voting weight of user\n    mapping(address => bool) public isGauge;\n    mapping(address => bool) public whitelist;\n\n    mapping(address => uint256) public override attachments;\n\n    uint256 internal index;\n    mapping(address => uint256) internal supplyIndex;\n    mapping(address => uint256) public claimable;\n\n    modifier onlyGauge() {\n        require(isGauge[msg.sender], \"not gauge\");\n        _;\n    }\n\n    constructor(address _registry) {\n        registry = IRegistry(_registry);\n    }\n\n    function reset() external override {\n        _reset(msg.sender);\n    }\n\n    function resetFor(address who) external override {\n        require(msg.sender == registry.staker(), \"not staker contract\");\n        _reset(who);\n    }\n\n    function _reset(address _who) internal {\n        address[] storage _poolVote = poolVote[_who];\n        uint256 _poolVoteCnt = _poolVote.length;\n        int256 _totalWeight = 0;\n\n        for (uint256 i = 0; i < _poolVoteCnt; i++) {\n            address _pool = _poolVote[i];\n            int256 _votes = votes[_who][_pool];\n\n            if (_votes != 0) {\n                _updateFor(gauges[_pool]);\n                weights[_pool] -= _votes;\n                votes[_who][_pool] -= _votes;\n                if (_votes > 0) {\n                    IBribeV2(bribes[gauges[_pool]])._withdraw(\n                        uint256(_votes),\n                        _who\n                    );\n                    _totalWeight += _votes;\n                } else {\n                    _totalWeight -= _votes;\n                }\n                emit Abstained(_who, _votes);\n            }\n        }\n        totalWeight -= uint256(_totalWeight);\n        usedWeights[_who] = 0;\n        delete poolVote[_who];\n    }\n\n    function poke(address _who) external {\n        address[] memory _poolVote = poolVote[_who];\n        uint256 _poolCnt = _poolVote.length;\n        int256[] memory _weights = new int256[](_poolCnt);\n\n        for (uint256 i = 0; i < _poolCnt; i++) {\n            _weights[i] = votes[_who][_poolVote[i]];\n        }\n\n        _vote(_who, _poolVote, _weights);\n    }\n\n    function _vote(\n        address _who,\n        address[] memory _poolVote,\n        int256[] memory _weights\n    ) internal {\n        _reset(_who);\n\n        uint256 _poolCnt = _poolVote.length;\n\n        INFTStaker staker = INFTStaker(registry.staker());\n        int256 _weight = int256(staker.getStakedBalance(_who));\n        int256 _totalVoteWeight = 0;\n        int256 _totalWeight = 0;\n        int256 _usedWeight = 0;\n\n        for (uint256 i = 0; i < _poolCnt; i++) {\n            _totalVoteWeight += _weights[i] > 0 ? _weights[i] : -_weights[i];\n        }\n\n        for (uint256 i = 0; i < _poolCnt; i++) {\n            address _pool = _poolVote[i];\n            address _gauge = gauges[_pool];\n\n            if (isGauge[_gauge]) {\n                int256 _poolWeight = (_weights[i] * _weight) / _totalVoteWeight;\n                require(votes[_who][_pool] == 0, \"votes = 0\");\n                require(_poolWeight != 0, \"poolweight = 0\");\n                _updateFor(_gauge);\n\n                poolVote[_who].push(_pool);\n\n                weights[_pool] += _poolWeight;\n                votes[_who][_pool] += _poolWeight;\n                if (_poolWeight > 0) {\n                    IBribeV2(bribes[_gauge])._deposit(\n                        uint256(_poolWeight),\n                        _who\n                    );\n                } else {\n                    _poolWeight = -_poolWeight;\n                }\n                _usedWeight += _poolWeight;\n                _totalWeight += _poolWeight;\n                emit Voted(msg.sender, _who, _poolWeight);\n            }\n        }\n\n        totalWeight += uint256(_totalWeight);\n        usedWeights[_who] = uint256(_usedWeight);\n    }\n\n    function vote(address[] calldata _poolVote, int256[] calldata _weights)\n        external\n    {\n        require(_poolVote.length == _weights.length, \"invalid weights\");\n        _vote(msg.sender, _poolVote, _weights);\n    }\n\n    function toggleWhitelist(address what) external onlyOwner {\n        whitelist[what] = !whitelist[what];\n        emit Whitelisted(msg.sender, what, whitelist[what]);\n    }\n\n    function registerGaugeBribe(\n        address _pool,\n        address _bribe,\n        address _gauge\n    ) external onlyOwner returns (address) {\n        registry.ensureNotPaused(); // ensure protocol is active\n\n        require(gauges[_pool] == address(0x0), \"gauge exists\");\n\n        // sanity checks\n        require(whitelist[_pool], \"pool not whitelisted\");\n        require(whitelist[_bribe], \"bribe factory not whitelisted\");\n        require(whitelist[_gauge], \"gauge factory not whitelisted\");\n\n        IERC20(registry.maha()).approve(_gauge, type(uint256).max);\n        bribes[_gauge] = _bribe;\n        gauges[_pool] = _gauge;\n        poolForGauge[_gauge] = _pool;\n        isGauge[_gauge] = true;\n\n        _updateFor(_gauge);\n        pools.push(_pool);\n\n        emit GaugeCreated(_gauge, msg.sender, _bribe, _pool);\n        return _gauge;\n    }\n\n    function updateGaugeBribe(\n        address _pool,\n        address _newbribe,\n        address _newgauge\n    ) external onlyOwner {\n        registry.ensureNotPaused(); // ensure protocol is active\n\n        require(gauges[_pool] != address(0x0), \"gauge not registered\");\n\n        // sanity checks\n        require(whitelist[_pool], \"pool not whitelisted\");\n        require(whitelist[_newbribe], \"bribe factory not whitelisted\");\n        require(whitelist[_newgauge], \"gauge factory not whitelisted\");\n\n        address oldgauge = gauges[_pool];\n\n        bribes[oldgauge] = address(0);\n        gauges[_pool] = _newgauge;\n        poolForGauge[oldgauge] = address(0);\n        isGauge[oldgauge] = false;\n\n        bribes[_newgauge] = _newbribe;\n        poolForGauge[_newgauge] = _pool;\n        isGauge[_newgauge] = true;\n\n        _updateFor(_newgauge);\n        emit GaugeUpdated(_newgauge, msg.sender, _newbribe, _pool);\n    }\n\n    function attachStakerToGauge(address account) external override onlyGauge {\n        attachments[account] = attachments[account] + 1;\n        emit Attach(account, msg.sender);\n    }\n\n    function detachStakerFromGauge(address account)\n        external\n        override\n        onlyGauge\n    {\n        attachments[account] = attachments[account] - 1;\n        emit Detach(account, msg.sender);\n    }\n\n    function length() external view returns (uint256) {\n        return pools.length;\n    }\n\n    function notifyRewardAmount(uint256 amount) external override {\n        require(\n            msg.sender == registry.emissionController(),\n            \"not emission controller\"\n        );\n        uint256 _ratio = (amount * 1e18) / totalWeight; // 1e18 adjustment is removed during claim\n        if (_ratio > 0) {\n            index += _ratio;\n        }\n        emit NotifyReward(msg.sender, registry.maha(), amount);\n    }\n\n    function updateFor(address[] memory _gauges) external {\n        for (uint256 i = 0; i < _gauges.length; i++) {\n            _updateFor(_gauges[i]);\n        }\n    }\n\n    function updateForRange(uint256 start, uint256 end) public {\n        for (uint256 i = start; i < end; i++) {\n            _updateFor(gauges[pools[i]]);\n        }\n    }\n\n    function updateAll() external {\n        updateForRange(0, pools.length);\n    }\n\n    function updateGauge(address _gauge) external {\n        _updateFor(_gauge);\n    }\n\n    function _updateFor(address _gauge) internal {\n        address _pool = poolForGauge[_gauge];\n        int256 _supplied = weights[_pool];\n        if (_supplied > 0) {\n            uint256 _supplyIndex = supplyIndex[_gauge];\n            uint256 _index = index; // get global index0 for accumulated distro\n            supplyIndex[_gauge] = _index; // update _gauge current position to global position\n            uint256 _delta = _index - _supplyIndex; // see if there is any difference that need to be accrued\n            if (_delta > 0) {\n                uint256 _share = (uint256(_supplied) * _delta) / 1e18; // add accrued difference for each address\n                claimable[_gauge] += _share;\n            }\n        } else {\n            supplyIndex[_gauge] = index; // new users are set to the default global state\n        }\n    }\n\n    function _distribute(address _gauge) internal nonReentrant {\n        if (IEmissionController(registry.emissionController()).callable())\n            IEmissionController(registry.emissionController())\n                .allocateEmission();\n\n        _updateFor(_gauge);\n        uint256 _claimable = claimable[_gauge];\n\n        if (\n            _claimable > IGauge(_gauge).left(registry.maha()) &&\n            _claimable / DURATION > 0\n        ) {\n            claimable[_gauge] = 0;\n            IGauge(_gauge).notifyRewardAmount(registry.maha(), _claimable);\n            emit DistributeReward(msg.sender, _gauge, _claimable);\n        }\n    }\n\n    function distribute(address _gauge) external override {\n        _distribute(_gauge);\n    }\n\n    function distribute() external override {\n        distribute(0, pools.length);\n    }\n\n    function distribute(uint256 start, uint256 finish) public {\n        for (uint256 x = start; x < finish; x++) {\n            _distribute(gauges[pools[x]]);\n        }\n    }\n\n    function distribute(address[] memory _gauges) external override {\n        for (uint256 x = 0; x < _gauges.length; x++) {\n            _distribute(_gauges[x]);\n        }\n    }\n\n    function _safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid token code\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(\n                IERC20.transferFrom.selector,\n                from,\n                to,\n                value\n            )\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transferFrom failed\"\n        );\n    }\n}\n"},"contracts/interfaces/IBribeV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\n\ninterface IBribeV2 {\n    function registry() external view returns (IRegistry);\n\n    function notifyRewardAmount(address token, uint256 amount) external;\n\n    function left(address token) external view returns (uint256);\n\n    function _deposit(uint256 amount, address tokenId) external;\n\n    function _withdraw(uint256 amount, address tokenId) external;\n\n    function getRewardForOwner(address tokenId, address[] memory tokens)\n        external;\n\n    event Deposit(address indexed from, address tokenId, uint256 amount);\n    event Withdraw(address indexed from, address tokenId, uint256 amount);\n    event NotifyReward(\n        address indexed from,\n        address indexed reward,\n        uint256 amount\n    );\n    event ClaimRewards(\n        address indexed from,\n        address indexed reward,\n        uint256 amount\n    );\n}\n"},"contracts/interfaces/IBribeFactory.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IBribeFactory {\n  function createBribe(address _registry) external returns (address);\n\n  event BribeCreated(address _bribe);\n}\n"},"contracts/interfaces/IEmissionController.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IEpoch} from \"./IEpoch.sol\";\n\ninterface IEmissionController is IEpoch {\n    function allocateEmission() external;\n}\n"},"contracts/interfaces/IGauge.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\n\ninterface IGauge {\n    function notifyRewardAmount(address token, uint256 amount) external;\n\n    function getReward(address account, address[] memory tokens) external;\n\n    function registry() external view returns (IRegistry);\n\n    function left(address token) external view returns (uint256);\n}\n"},"contracts/interfaces/IGaugeVoterV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\n\ninterface IGaugeVoterV2 {\n    function attachStakerToGauge(address account) external;\n\n    function detachStakerFromGauge(address account) external;\n\n    function distribute(address _gauge) external;\n\n    function distribute() external;\n\n    function distribute(address[] memory _gauges) external;\n\n    function reset() external;\n\n    function resetFor(address _who) external;\n\n    function registry() external view returns (IRegistry);\n\n    function notifyRewardAmount(uint256 amount) external;\n\n    function attachments(address who) external view returns (uint256);\n\n    event GaugeCreated(\n        address indexed gauge,\n        address creator,\n        address indexed bribe,\n        address indexed pool\n    );\n    event GaugeUpdated(\n        address indexed gauge,\n        address creator,\n        address indexed bribe,\n        address indexed pool\n    );\n    event Voted(address indexed voter, address tokenId, int256 weight);\n    event Abstained(address tokenId, int256 weight);\n    event Deposit(address indexed lp, address indexed gauge, uint256 amount);\n    event Withdraw(address indexed lp, address indexed gauge, uint256 amount);\n    event NotifyReward(\n        address indexed sender,\n        address indexed reward,\n        uint256 amount\n    );\n    event DistributeReward(\n        address indexed sender,\n        address indexed gauge,\n        uint256 amount\n    );\n    event Attach(address indexed owner, address indexed gauge);\n    event Detach(address indexed owner, address indexed gauge);\n    event Whitelisted(\n        address indexed whitelister,\n        address indexed token,\n        bool value\n    );\n}\n"},"contracts/interfaces/IUniswapV2Pair.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IUniswapV2Pair {\n  function factory() external view returns (address);\n\n  function token0() external view returns (address);\n\n  function token1() external view returns (address);\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/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 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"},"contracts/interfaces/IEpoch.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IEpoch {\n  function callable() external view returns (bool);\n\n  function getLastEpoch() external view returns (uint256);\n\n  function getCurrentEpoch() external view returns (uint256);\n\n  function getNextEpoch() external view returns (uint256);\n\n  function nextEpochPoint() external view returns (uint256);\n\n  function getPeriod() external view returns (uint256);\n\n  function getStartTime() external view returns (uint256);\n}\n"},"contracts/voter/BaseV1Voter.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\n\nimport {IBribe} from \"../interfaces/IBribe.sol\";\nimport {IBribeFactory} from \"../interfaces/IBribeFactory.sol\";\nimport {IEmissionController} from \"../interfaces/IEmissionController.sol\";\nimport {IGauge} from \"../interfaces/IGauge.sol\";\nimport {IGaugeFactory} from \"../interfaces/IGaugeFactory.sol\";\nimport {IGaugeVoter} from \"../interfaces/IGaugeVoter.sol\";\nimport {IRegistry} from \"../interfaces/IRegistry.sol\";\nimport {IUniswapV2Pair} from \"../interfaces/IUniswapV2Pair.sol\";\nimport {IOldVotingEscrow} from \"../interfaces/IOldVotingEscrow.sol\";\n\ncontract BaseV1Voter is ReentrancyGuard, Ownable, IGaugeVoter {\n    IRegistry public immutable override registry;\n\n    uint256 internal constant DURATION = 7 days; // rewards are released over 7 days\n    IEmissionController public emissionController;\n\n    uint256 public totalWeight; // total voting weight\n\n    address[] public pools; // all pools viable for incentives\n    mapping(address => address) public gauges; // pool => gauge\n    mapping(address => address) public poolForGauge; // gauge => pool\n    mapping(address => address) public bribes; // gauge => bribe\n    mapping(address => int256) public weights; // pool => weight\n    mapping(uint256 => mapping(address => int256)) public votes; // nft => pool => votes\n    mapping(uint256 => address[]) public poolVote; // nft => pools\n    mapping(uint256 => uint256) public usedWeights; // nft => total voting weight of user\n    mapping(address => bool) public isGauge;\n    mapping(address => bool) public whitelist;\n\n    uint256 internal index;\n    mapping(address => uint256) internal supplyIndex;\n    mapping(address => uint256) public claimable;\n\n    modifier onlyGauge() {\n        require(isGauge[msg.sender], \"not gauge\");\n        _;\n    }\n\n    constructor(\n        address _registry,\n        address _emissionController,\n        address _governance\n    ) {\n        registry = IRegistry(_registry);\n        emissionController = IEmissionController(_emissionController);\n\n        _transferOwnership(_governance);\n    }\n\n    function reset(uint256 _tokenId) external {\n        require(\n            IOldVotingEscrow(registry.locker()).isApprovedOrOwner(\n                msg.sender,\n                _tokenId\n            ),\n            \"not approved owner\"\n        );\n        _reset(_tokenId);\n        IOldVotingEscrow(registry.locker()).abstain(_tokenId);\n    }\n\n    function _reset(uint256 _tokenId) internal {\n        address[] storage _poolVote = poolVote[_tokenId];\n        uint256 _poolVoteCnt = _poolVote.length;\n        int256 _totalWeight = 0;\n\n        for (uint256 i = 0; i < _poolVoteCnt; i++) {\n            address _pool = _poolVote[i];\n            int256 _votes = votes[_tokenId][_pool];\n\n            if (_votes != 0) {\n                _updateFor(gauges[_pool]);\n                weights[_pool] -= _votes;\n                votes[_tokenId][_pool] -= _votes;\n                if (_votes > 0) {\n                    IBribe(bribes[gauges[_pool]])._withdraw(\n                        uint256(_votes),\n                        _tokenId\n                    );\n                    _totalWeight += _votes;\n                } else {\n                    _totalWeight -= _votes;\n                }\n                emit Abstained(_tokenId, _votes);\n            }\n        }\n        totalWeight -= uint256(_totalWeight);\n        usedWeights[_tokenId] = 0;\n        delete poolVote[_tokenId];\n    }\n\n    function poke(uint256 _tokenId) external {\n        address[] memory _poolVote = poolVote[_tokenId];\n        uint256 _poolCnt = _poolVote.length;\n        int256[] memory _weights = new int256[](_poolCnt);\n\n        for (uint256 i = 0; i < _poolCnt; i++) {\n            _weights[i] = votes[_tokenId][_poolVote[i]];\n        }\n\n        _vote(_tokenId, _poolVote, _weights);\n    }\n\n    function _vote(\n        uint256 _tokenId,\n        address[] memory _poolVote,\n        int256[] memory _weights\n    ) internal {\n        _reset(_tokenId);\n        uint256 _poolCnt = _poolVote.length;\n        int256 _weight = int256(\n            IOldVotingEscrow(registry.locker()).balanceOfNFT(_tokenId)\n        );\n        int256 _totalVoteWeight = 0;\n        int256 _totalWeight = 0;\n        int256 _usedWeight = 0;\n\n        for (uint256 i = 0; i < _poolCnt; i++) {\n            _totalVoteWeight += _weights[i] > 0 ? _weights[i] : -_weights[i];\n        }\n\n        for (uint256 i = 0; i < _poolCnt; i++) {\n            address _pool = _poolVote[i];\n            address _gauge = gauges[_pool];\n\n            if (isGauge[_gauge]) {\n                int256 _poolWeight = (_weights[i] * _weight) / _totalVoteWeight;\n                require(votes[_tokenId][_pool] == 0, \"votes = 0\");\n                require(_poolWeight != 0, \"poolweight = 0\");\n                _updateFor(_gauge);\n\n                poolVote[_tokenId].push(_pool);\n\n                weights[_pool] += _poolWeight;\n                votes[_tokenId][_pool] += _poolWeight;\n                if (_poolWeight > 0) {\n                    IBribe(bribes[_gauge])._deposit(\n                        uint256(_poolWeight),\n                        _tokenId\n                    );\n                } else {\n                    _poolWeight = -_poolWeight;\n                }\n                _usedWeight += _poolWeight;\n                _totalWeight += _poolWeight;\n                emit Voted(msg.sender, _tokenId, _poolWeight);\n            }\n        }\n\n        if (_usedWeight > 0) IOldVotingEscrow(registry.locker()).voting(_tokenId);\n        totalWeight += uint256(_totalWeight);\n        usedWeights[_tokenId] = uint256(_usedWeight);\n    }\n\n    function vote(\n        uint256 tokenId,\n        address[] calldata _poolVote,\n        int256[] calldata _weights\n    ) external {\n        require(\n            IOldVotingEscrow(registry.locker()).isApprovedOrOwner(\n                msg.sender,\n                tokenId\n            ),\n            \"not token owner\"\n        );\n        require(_poolVote.length == _weights.length, \"invalid weights\");\n        _vote(tokenId, _poolVote, _weights);\n    }\n\n    function toggleWhitelist(address what) external onlyOwner {\n        whitelist[what] = !whitelist[what];\n        emit Whitelisted(msg.sender, what, whitelist[what]);\n    }\n\n    function registerGauge(\n        address _pool,\n        address _bribefactory,\n        address _gaugefactory\n    ) external returns (address) {\n        registry.ensureNotPaused(); // ensure protocol is active\n\n        require(gauges[_pool] == address(0x0), \"gauge exists\");\n\n        // sanity checks\n        require(whitelist[_pool], \"pool not whitelisted\");\n        require(whitelist[_bribefactory], \"bribe factory not whitelisted\");\n        require(whitelist[_gaugefactory], \"gauge factory not whitelisted\");\n\n        address _bribe = IBribeFactory(_bribefactory).createBribe(\n            address(registry)\n        );\n        address _gauge = IGaugeFactory(_gaugefactory).createGauge(\n            _pool,\n            _bribe,\n            address(registry)\n        );\n\n        IERC20(registry.maha()).approve(_gauge, type(uint256).max);\n        bribes[_gauge] = _bribe;\n        gauges[_pool] = _gauge;\n        poolForGauge[_gauge] = _pool;\n        isGauge[_gauge] = true;\n\n        _updateFor(_gauge);\n        pools.push(_pool);\n\n        emit GaugeCreated(_gauge, msg.sender, _bribe, _pool);\n        return _gauge;\n    }\n\n    function attachTokenToGauge(uint256 tokenId, address account)\n        external\n        override\n        onlyGauge\n    {\n        if (tokenId > 0) IOldVotingEscrow(registry.locker()).attach(tokenId);\n        emit Attach(account, msg.sender, tokenId);\n    }\n\n    function emitDeposit(\n        uint256 tokenId,\n        address account,\n        uint256 amount\n    ) external override onlyGauge {\n        emit Deposit(account, msg.sender, tokenId, amount);\n    }\n\n    function detachTokenFromGauge(uint256 tokenId, address account)\n        external\n        override\n        onlyGauge\n    {\n        if (tokenId > 0) IOldVotingEscrow(registry.locker()).detach(tokenId);\n        emit Detach(account, msg.sender, tokenId);\n    }\n\n    function emitWithdraw(\n        uint256 tokenId,\n        address account,\n        uint256 amount\n    ) external override onlyGauge {\n        emit Withdraw(account, msg.sender, tokenId, amount);\n    }\n\n    function length() external view returns (uint256) {\n        return pools.length;\n    }\n\n    function notifyRewardAmount(uint256 amount) external override {\n        _safeTransferFrom(registry.maha(), msg.sender, address(this), amount); // transfer the distro in\n        uint256 _ratio = (amount * 1e18) / totalWeight; // 1e18 adjustment is removed during claim\n        if (_ratio > 0) {\n            index += _ratio;\n        }\n        emit NotifyReward(msg.sender, registry.maha(), amount);\n    }\n\n    function updateFor(address[] memory _gauges) external {\n        for (uint256 i = 0; i < _gauges.length; i++) {\n            _updateFor(_gauges[i]);\n        }\n    }\n\n    function updateForRange(uint256 start, uint256 end) public {\n        for (uint256 i = start; i < end; i++) {\n            _updateFor(gauges[pools[i]]);\n        }\n    }\n\n    function updateAll() external {\n        updateForRange(0, pools.length);\n    }\n\n    function updateGauge(address _gauge) external {\n        _updateFor(_gauge);\n    }\n\n    function _updateFor(address _gauge) internal {\n        address _pool = poolForGauge[_gauge];\n        int256 _supplied = weights[_pool];\n        if (_supplied > 0) {\n            uint256 _supplyIndex = supplyIndex[_gauge];\n            uint256 _index = index; // get global index0 for accumulated distro\n            supplyIndex[_gauge] = _index; // update _gauge current position to global position\n            uint256 _delta = _index - _supplyIndex; // see if there is any difference that need to be accrued\n            if (_delta > 0) {\n                uint256 _share = (uint256(_supplied) * _delta) / 1e18; // add accrued difference for each supplied token\n                claimable[_gauge] += _share;\n            }\n        } else {\n            supplyIndex[_gauge] = index; // new users are set to the default global state\n        }\n    }\n\n    function claimRewards(address[] memory _gauges, address[][] memory _tokens)\n        external\n    {\n        for (uint256 i = 0; i < _gauges.length; i++) {\n            IGauge(_gauges[i]).getReward(msg.sender, _tokens[i]);\n        }\n    }\n\n    function claimBribes(\n        address[] memory _bribes,\n        address[][] memory _tokens,\n        uint256 _tokenId\n    ) external {\n        require(\n            IOldVotingEscrow(registry.locker()).isApprovedOrOwner(\n                msg.sender,\n                _tokenId\n            ),\n            \"not approved owner\"\n        );\n        for (uint256 i = 0; i < _bribes.length; i++) {\n            IBribe(_bribes[i]).getRewardForOwner(_tokenId, _tokens[i]);\n        }\n    }\n\n    function _distribute(address _gauge) internal nonReentrant {\n        if (IEmissionController(emissionController).callable())\n            IEmissionController(emissionController).allocateEmission();\n        _updateFor(_gauge);\n        uint256 _claimable = claimable[_gauge];\n\n        if (\n            _claimable > IGauge(_gauge).left(registry.maha()) &&\n            _claimable / DURATION > 0\n        ) {\n            claimable[_gauge] = 0;\n            IGauge(_gauge).notifyRewardAmount(registry.maha(), _claimable);\n            emit DistributeReward(msg.sender, _gauge, _claimable);\n        }\n    }\n\n    function distribute(address _gauge) external override {\n        _distribute(_gauge);\n    }\n\n    function distro() external {\n        distribute(0, pools.length);\n    }\n\n    function distribute() external {\n        distribute(0, pools.length);\n    }\n\n    function distribute(uint256 start, uint256 finish) public {\n        for (uint256 x = start; x < finish; x++) {\n            _distribute(gauges[pools[x]]);\n        }\n    }\n\n    function distribute(address[] memory _gauges) external {\n        for (uint256 x = 0; x < _gauges.length; x++) {\n            _distribute(_gauges[x]);\n        }\n    }\n\n    function _safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid token code\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(\n                IERC20.transferFrom.selector,\n                from,\n                to,\n                value\n            )\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transferFrom failed\"\n        );\n    }\n}\n"},"contracts/interfaces/IBribe.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\n\ninterface IBribe {\n  function registry() external view returns (IRegistry);\n\n  function notifyRewardAmount(address token, uint256 amount) external;\n\n  function left(address token) external view returns (uint256);\n\n  function _deposit(uint256 amount, uint256 tokenId) external;\n\n  function _withdraw(uint256 amount, uint256 tokenId) external;\n\n  function getRewardForOwner(uint256 tokenId, address[] memory tokens) external;\n\n  event Deposit(address indexed from, uint256 tokenId, uint256 amount);\n  event Withdraw(address indexed from, uint256 tokenId, uint256 amount);\n  event NotifyReward(\n    address indexed from,\n    address indexed reward,\n    uint256 amount\n  );\n  event ClaimRewards(\n    address indexed from,\n    address indexed reward,\n    uint256 amount\n  );\n}\n"},"contracts/interfaces/IGaugeFactory.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IGaugeFactory {\n  function createGauge(\n    address _registry,\n    address _pool,\n    address _bribe\n  ) external returns (address);\n\n  event GaugeCreated(address _gauge, address _pool, address _bribe);\n}\n"},"contracts/interfaces/IGaugeVoter.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\n\ninterface IGaugeVoter {\n    function attachTokenToGauge(uint256 _tokenId, address account) external;\n\n    function detachTokenFromGauge(uint256 _tokenId, address account) external;\n\n    function emitDeposit(\n        uint256 _tokenId,\n        address account,\n        uint256 amount\n    ) external;\n\n    function emitWithdraw(\n        uint256 _tokenId,\n        address account,\n        uint256 amount\n    ) external;\n\n    function distribute(address _gauge) external;\n\n    function registry() external view returns (IRegistry);\n\n    function notifyRewardAmount(uint256 amount) external;\n\n    event GaugeCreated(\n        address indexed gauge,\n        address creator,\n        address indexed bribe,\n        address indexed pool\n    );\n    event Voted(address indexed voter, uint256 tokenId, int256 weight);\n    event Abstained(uint256 tokenId, int256 weight);\n    event Deposit(\n        address indexed lp,\n        address indexed gauge,\n        uint256 tokenId,\n        uint256 amount\n    );\n    event Withdraw(\n        address indexed lp,\n        address indexed gauge,\n        uint256 tokenId,\n        uint256 amount\n    );\n    event NotifyReward(\n        address indexed sender,\n        address indexed reward,\n        uint256 amount\n    );\n    event DistributeReward(\n        address indexed sender,\n        address indexed gauge,\n        uint256 amount\n    );\n    event Attach(address indexed owner, address indexed gauge, uint256 tokenId);\n    event Detach(address indexed owner, address indexed gauge, uint256 tokenId);\n    event Whitelisted(\n        address indexed whitelister,\n        address indexed token,\n        bool value\n    );\n}\n"},"contracts/interfaces/IOldVotingEscrow.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC721} from \"@openzeppelin/contracts/interfaces/IERC721.sol\";\nimport {IERC721Receiver} from \"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\";\n\ninterface IOldVotingEscrow is IERC721 {\n  function token() external view returns (address);\n\n  function balanceOfNFT(uint256) external view returns (uint256);\n\n  function totalSupplyWithoutDecay() external view returns (uint256);\n\n  function isApprovedOrOwner(address, uint256) external view returns (bool);\n\n  function attach(uint256 tokenId) external;\n\n  function detach(uint256 tokenId) external;\n\n  function voting(uint256 tokenId) external;\n\n  function abstain(uint256 tokenId) external;\n\n  function totalSupply() external view returns (uint256);\n\n  function votingPowerOfAtTs(address _owner, uint256 timestamp)\n    external\n    view\n    returns (uint256 _power);\n\n  function votingPowerOfAtBlk(address _owner, uint256 blk)\n    external\n    view\n    returns (uint256 _power);\n\n  enum DepositType {\n    DEPOSIT_FOR_TYPE,\n    CREATE_LOCK_TYPE,\n    INCREASE_LOCK_AMOUNT,\n    INCREASE_UNLOCK_TIME,\n    MERGE_TYPE\n  }\n\n  struct Point {\n    int128 bias;\n    int128 slope; // # -dweight / dt\n    uint256 ts;\n    uint256 blk; // block\n  }\n\n  /* We cannot really do block numbers per se b/c slope is per time, not per block\n   * and per block could be fairly bad b/c Ethereum changes blocktimes.\n   * What we can do is to extrapolate ***At functions */\n\n  struct LockedBalance {\n    int128 amount;\n    uint256 end;\n    uint256 start;\n  }\n\n  event Deposit(\n    address indexed provider,\n    uint256 tokenId,\n    uint256 value,\n    uint256 indexed locktime,\n    DepositType deposit_type,\n    uint256 ts\n  );\n\n  event Withdraw(\n    address indexed provider,\n    uint256 tokenId,\n    uint256 value,\n    uint256 ts\n  );\n\n  event Supply(uint256 prevSupply, uint256 supply);\n}\n"},"contracts/utils/Operator.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {Context, Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\n\nabstract contract Operator is Context, Ownable {\n  address private _operator;\n\n  event OperatorTransferred(\n    address indexed previousOperator,\n    address indexed newOperator\n  );\n\n  constructor() {\n    _operator = _msgSender();\n    emit OperatorTransferred(address(0), _operator);\n  }\n\n  function operator() public view returns (address) {\n    return _operator;\n  }\n\n  modifier onlyOperator() {\n    require(_operator == _msgSender(), \"operator: caller is not the operator\");\n    _;\n  }\n\n  function isOperator() public view returns (bool) {\n    return _msgSender() == _operator;\n  }\n\n  function transferOperator(address newOperator_) public onlyOwner {\n    _transferOperator(newOperator_);\n  }\n\n  function _transferOperator(address newOperator_) internal {\n    require(\n      newOperator_ != address(0),\n      \"operator: zero address given for new operator\"\n    );\n    emit OperatorTransferred(address(0), newOperator_);\n    _operator = newOperator_;\n  }\n}\n"},"contracts/fees/FeeDistributor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {Initializable} from \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\n\nimport {Operator} from \"../utils/Operator.sol\";\nimport {IFeeDistributor} from \"../interfaces/IFeeDistributor.sol\";\nimport {INFTLocker} from \"../interfaces/INFTLocker.sol\";\n\nimport {console} from \"hardhat/console.sol\";\nimport {IPendingFeeDistributor} from \"../interfaces/IPendingFeeDistributor.sol\";\n\ncontract FeeDistributor is\n    Operator,\n    IFeeDistributor,\n    ReentrancyGuard,\n    Initializable\n{\n    uint256 public constant WEEK = 7 * 86400;\n    uint256 public constant TOKEN_CHECKPOINT_DEADLINE = 86400;\n\n    uint256 public startTime;\n    uint256 public timeCursor;\n    mapping(uint256 => uint256) public timeCursorOf;\n    mapping(uint256 => uint256) public userEpochOf;\n\n    uint256 public lastTokenTime;\n    uint256[1000000000000000] public tokensPerWeek;\n\n    INFTLocker public locker;\n    IERC20 public token;\n    uint256 public tokenLastBalance;\n\n    uint256[1000000000000000] public veSupply; // VE total supply at week bounds\n\n    bool public isKilled;\n    bool public canCheckpointToken = true;\n    IPendingFeeDistributor public pendingFeeDistributor;\n\n    constructor(\n        address _votingEscrow,\n        address _token,\n        address _pendingFeeDistributor\n    ) {\n        uint256 t = (block.timestamp / WEEK) * WEEK;\n        startTime = t;\n        lastTokenTime = t;\n        timeCursor = t;\n        token = IERC20(_token);\n        locker = INFTLocker(_votingEscrow);\n        pendingFeeDistributor = IPendingFeeDistributor(_pendingFeeDistributor);\n    }\n\n    function _checkpointToken(uint256 timestamp) internal {\n        // console.log(\"_checkpointToken(...)\");\n        uint256 tokenBalance = token.balanceOf(address(this));\n        uint256 toDistribute = tokenBalance - tokenLastBalance;\n        tokenLastBalance = tokenBalance;\n\n        uint256 t = lastTokenTime;\n        uint256 sinceLast = timestamp - t;\n        lastTokenTime = timestamp;\n\n        uint256 thisWeek = (t / WEEK) * WEEK;\n        uint256 nextWeek = 0;\n\n        for (uint256 index = 0; index < 20; index++) {\n            nextWeek = thisWeek + WEEK;\n            if (timestamp < nextWeek) {\n                if (sinceLast == 0 && timestamp == t)\n                    tokensPerWeek[thisWeek] += toDistribute;\n                else\n                    tokensPerWeek[thisWeek] +=\n                        (toDistribute * (timestamp - t)) /\n                        sinceLast;\n                break;\n            } else {\n                if (sinceLast == 0 && nextWeek == t)\n                    tokensPerWeek[thisWeek] += toDistribute;\n                else\n                    tokensPerWeek[thisWeek] +=\n                        (toDistribute * (nextWeek - t)) /\n                        sinceLast;\n            }\n            t = nextWeek;\n            thisWeek = nextWeek;\n        }\n\n        emit CheckpointToken(timestamp, toDistribute);\n    }\n\n    function checkpointToken() external override {\n        require(\n            msg.sender == operator() ||\n                (canCheckpointToken &&\n                    (block.timestamp >\n                        lastTokenTime + TOKEN_CHECKPOINT_DEADLINE)),\n            \"not operator or not allowed\"\n        );\n        _checkpointToken(block.timestamp);\n    }\n\n    function _findTimestampEpoch(uint256 _timestamp)\n        internal\n        view\n        returns (uint256)\n    {\n        uint256 min = 0;\n        uint256 max = locker.epoch();\n\n        for (uint256 index = 0; index < 128; index++) {\n            if (min >= max) {\n                break;\n            }\n            uint256 mid = (min + max + 2) / 2;\n            INFTLocker.Point memory pt = locker.pointHistory(mid);\n\n            if (pt.ts <= _timestamp) min = mid;\n            else max = mid - 1;\n        }\n\n        return min;\n    }\n\n    function _findTimestampUserEpoch(\n        uint256 nftId,\n        uint256 _timestamp,\n        uint256 maxUserEpoch\n    ) internal view returns (uint256) {\n        uint256 min = 0;\n        uint256 max = maxUserEpoch;\n\n        for (uint256 index = 0; index < 128; index++) {\n            if (min >= max) {\n                break;\n            }\n            uint256 mid = (min + max + 2) / 2;\n            INFTLocker.Point memory pt = locker.userPointHistory(nftId, mid);\n\n            if (pt.ts <= _timestamp) min = mid;\n            else max = mid - 1;\n        }\n\n        return min;\n    }\n\n    function _checkpointTotalSupply(uint256 timestamp) internal {\n        // console.log(\"_checkpointTotalSupply(...)\");\n        uint256 t = timeCursor;\n        uint256 roundedTimestamp = (timestamp / WEEK) * WEEK;\n\n        locker.checkpoint();\n\n        for (uint256 index = 0; index < 20; index++) {\n            if (t > roundedTimestamp) break;\n            else {\n                uint256 epoch = _findTimestampEpoch(t);\n                INFTLocker.Point memory pt = locker.pointHistory(epoch);\n\n                int128 dt = 0;\n\n                if (t > pt.ts) dt = int128(uint128(t - pt.ts));\n                veSupply[t] = Math.max(uint128(pt.bias - pt.slope * dt), 0);\n\n                // console.log(\"_checkpointTotalSupply(...) t\", t);\n                // console.log(\n                //     \"_checkpointTotalSupply(...) veSupply t\",\n                //     veSupply[t]\n                // );\n            }\n\n            t += WEEK;\n        }\n\n        timeCursor = t;\n    }\n\n    function checkpointTotalSupply() external override {\n        _checkpointTotalSupply(block.timestamp);\n    }\n\n    function _claim(uint256 nftId, uint256 _lastTokenTime)\n        internal\n        returns (uint256)\n    {\n        require(locker.isStaked(nftId), \"nft not staked\");\n\n        // console.log(\"inside claim\");\n\n        uint256 userEpoch = 0;\n        uint256 toDistribute = 0;\n\n        uint256 maxUserEpoch = locker.userPointEpoch(nftId);\n        uint256 _startTime = startTime;\n\n        // console.log(\"if maxUserEpoch = 0\", maxUserEpoch);\n        if (maxUserEpoch == 0) return 0;\n\n        uint256 weekCursor = timeCursorOf[nftId];\n        // console.log(\"weekCursor     =\", weekCursor);\n\n        if (weekCursor == 0)\n            userEpoch = _findTimestampUserEpoch(\n                nftId,\n                _startTime,\n                maxUserEpoch\n            );\n        else userEpoch = userEpochOf[nftId];\n\n        if (userEpoch == 0) userEpoch = 1;\n\n        INFTLocker.Point memory userPoint = locker.userPointHistory(\n            nftId,\n            userEpoch\n        );\n\n        // console.log(\"userEpoch      =\", userEpoch);\n        // console.log(\"weekCursor     =\", weekCursor);\n\n        if (weekCursor == 0)\n            weekCursor = ((userPoint.ts + WEEK - 1) / WEEK) * WEEK;\n\n        // console.log(\"weekCursor     =\", weekCursor);\n        // console.log(\"_lastTokenTime =\", _lastTokenTime);\n        // console.log(\"_startTime     =\", _startTime);\n        // console.log(\n        //     \"weekCursor >= _lastTokenTime\",\n        //     weekCursor >= _lastTokenTime\n        // );\n\n        if (weekCursor >= _lastTokenTime) return 0;\n\n        if (weekCursor < _startTime) weekCursor = _startTime;\n\n        INFTLocker.Point memory oldUserPoint = INFTLocker.Point(0, 0, 0, 0);\n\n        for (uint256 index = 0; index < 50; index++) {\n            if (weekCursor >= _lastTokenTime) break;\n\n            if (weekCursor >= userPoint.ts && userEpoch <= maxUserEpoch) {\n                userEpoch += 1;\n                oldUserPoint = userPoint;\n\n                if (userEpoch > maxUserEpoch)\n                    userPoint = INFTLocker.Point(0, 0, 0, 0);\n                else userPoint = locker.userPointHistory(nftId, userEpoch);\n            } else {\n                int128 dt = int128(uint128(weekCursor - oldUserPoint.ts));\n                uint256 balanceOf = Math.max(\n                    uint128(oldUserPoint.bias - dt * oldUserPoint.slope),\n                    0\n                );\n\n                // console.log(\"weekCursor\", weekCursor);\n                // console.log(\"veSupply[weekCursor]\", veSupply[weekCursor]);\n\n                if (balanceOf == 0 && userEpoch > maxUserEpoch) break;\n                if (balanceOf > 0)\n                    toDistribute +=\n                        (balanceOf * tokensPerWeek[weekCursor]) /\n                        veSupply[weekCursor];\n\n                weekCursor += WEEK;\n            }\n        }\n\n        userEpoch = Math.min(maxUserEpoch, userEpoch - 1);\n        userEpochOf[nftId] = userEpoch;\n        timeCursorOf[nftId] = weekCursor;\n\n        emit Claimed(nftId, toDistribute, userEpoch, maxUserEpoch);\n        return toDistribute;\n    }\n\n    function _claimWithChecks(uint256 nftId) internal returns (uint256) {\n        require(!isKilled, \"killed\");\n\n        if (block.timestamp >= timeCursor)\n            _checkpointTotalSupply(block.timestamp);\n\n        uint256 _lastTokenTime = lastTokenTime;\n\n        if (\n            canCheckpointToken &&\n            (block.timestamp > lastTokenTime + TOKEN_CHECKPOINT_DEADLINE)\n        ) {\n            _checkpointToken(block.timestamp);\n            _lastTokenTime = block.timestamp;\n        }\n\n        _lastTokenTime = (_lastTokenTime / WEEK) * WEEK;\n\n        uint256 amount = _claim(nftId, _lastTokenTime);\n        address who = locker.ownerOf(nftId);\n\n        if (amount != 0) {\n            tokenLastBalance -= amount;\n            token.transfer(who, amount);\n        }\n\n        return amount;\n    }\n\n    function claim(uint256 id)\n        external\n        override\n        nonReentrant\n        returns (uint256)\n    {\n        return _claimWithChecks(id);\n    }\n\n    function claimWithPendingRewards(\n        uint256 id,\n        address _who,\n        uint256 _reward,\n        bytes32[] memory _proof\n    ) external override nonReentrant returns (uint256) {\n        uint256 amt1 = _claimWithChecks(id);\n\n        if (address(pendingFeeDistributor) == address(0)) return amt1;\n        uint256 amt2 = pendingFeeDistributor.distribute(\n            id,\n            _who,\n            _reward,\n            _proof\n        );\n\n        return amt1 + amt2;\n    }\n\n    function claimMany(uint256[] memory nftIds)\n        external\n        override\n        nonReentrant\n        returns (bool)\n    {\n        require(!isKilled, \"killed\");\n        if (block.timestamp >= timeCursor)\n            _checkpointTotalSupply(block.timestamp);\n\n        uint256 _lastTokenTime = lastTokenTime;\n\n        if (\n            canCheckpointToken &&\n            (block.timestamp > lastTokenTime + TOKEN_CHECKPOINT_DEADLINE)\n        ) {\n            _checkpointToken(block.timestamp);\n            _lastTokenTime = block.timestamp;\n        }\n\n        _lastTokenTime = (_lastTokenTime / WEEK) * WEEK;\n\n        for (uint256 index = 0; index < nftIds.length; index++) {\n            uint256 amount = _claim(nftIds[index], _lastTokenTime);\n            address who = locker.ownerOf(nftIds[index]);\n\n            if (amount != 0) {\n                tokenLastBalance -= amount;\n                token.transfer(who, amount);\n            }\n        }\n\n        return true;\n    }\n\n    // @external\n    // def burn(_coin: address) -> bool:\n    //     \"\"\"\n    //     @notice Receive 3CRV into the contract and trigger a token checkpoint\n    //     @param _coin Address of the coin being received (must be 3CRV)\n    //     @return bool success\n    //     \"\"\"\n    //     assert _coin == self.token\n    //     assert not self.isKilled\n    //     amount: uint256 = ERC20(_coin).balanceOf(msg.sender)\n    //     if amount != 0:\n    //         ERC20(_coin).transferFrom(msg.sender, self, amount)\n    //         if self.canCheckpointToken and (block.timestamp > self.lastTokenTime + TOKEN_CHECKPOINT_DEADLINE):\n    //             self._checkpoint_token()\n    //     return True\n\n    function toggleAllowCheckpointToken() external onlyOwner {\n        canCheckpointToken = !canCheckpointToken;\n        emit ToggleAllowCheckpointToken(canCheckpointToken);\n    }\n\n    function killMe() external onlyOwner {\n        isKilled = true;\n        token.transfer(msg.sender, token.balanceOf(address(this)));\n    }\n\n    function setPendingFeeDistributor(address _what) external onlyOwner {\n        pendingFeeDistributor = IPendingFeeDistributor(_what);\n    }\n\n    function recoverBalance(IERC20 _coin) external onlyOwner {\n        _coin.transfer(msg.sender, _coin.balanceOf(address(this)));\n    }\n}\n"},"contracts/interfaces/IFeeDistributor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IFeeDistributor {\n    event ToggleAllowCheckpointToken(bool toggleFlag);\n    event CheckpointToken(uint256 time, uint256 tokens);\n    event Claimed(\n        uint256 nftId,\n        uint256 amount,\n        uint256 claimEpoch,\n        uint256 maxEpoch\n    );\n\n    function checkpointToken() external;\n\n    function checkpointTotalSupply() external;\n\n    function claim(uint256 nftId) external returns (uint256);\n\n    function claimMany(uint256[] memory nftIds) external returns (bool);\n\n    function claimWithPendingRewards(\n        uint256 id,\n        address _who,\n        uint256 _reward,\n        bytes32[] memory _proof\n    ) external returns (uint256);\n}\n"},"contracts/interfaces/IPendingFeeDistributor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IPendingFeeDistributor {\n    function distribute(\n        uint256 _tokenId,\n        address _owner,\n        uint256 _reward,\n        bytes32[] memory proof\n    ) external returns (uint256);\n\n    function validProof(\n        uint256 _tokenId,\n        address _owner,\n        uint256 _reward,\n        bytes32[] memory proof\n    ) external view returns (bool);\n\n    event HistoricRewardPaid(address to, uint256 tokenId, uint256 _reward);\n}\n"},"hardhat/console.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >= 0.4.22 <0.9.0;\n\nlibrary console {\n\taddress constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);\n\n\tfunction _sendLogPayload(bytes memory payload) private view {\n\t\tuint256 payloadLength = payload.length;\n\t\taddress consoleAddress = CONSOLE_ADDRESS;\n\t\tassembly {\n\t\t\tlet payloadStart := add(payload, 32)\n\t\t\tlet r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)\n\t\t}\n\t}\n\n\tfunction log() internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log()\"));\n\t}\n\n\tfunction logInt(int256 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(int256)\", p0));\n\t}\n\n\tfunction logUint(uint256 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n\t}\n\n\tfunction logString(string memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n\t}\n\n\tfunction logBool(bool p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n\t}\n\n\tfunction logAddress(address p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n\t}\n\n\tfunction logBytes(bytes memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n\t}\n\n\tfunction logBytes1(bytes1 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n\t}\n\n\tfunction logBytes2(bytes2 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n\t}\n\n\tfunction logBytes3(bytes3 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n\t}\n\n\tfunction logBytes4(bytes4 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n\t}\n\n\tfunction logBytes5(bytes5 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n\t}\n\n\tfunction logBytes6(bytes6 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n\t}\n\n\tfunction logBytes7(bytes7 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n\t}\n\n\tfunction logBytes8(bytes8 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n\t}\n\n\tfunction logBytes9(bytes9 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n\t}\n\n\tfunction logBytes10(bytes10 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n\t}\n\n\tfunction logBytes11(bytes11 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n\t}\n\n\tfunction logBytes12(bytes12 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n\t}\n\n\tfunction logBytes13(bytes13 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n\t}\n\n\tfunction logBytes14(bytes14 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n\t}\n\n\tfunction logBytes15(bytes15 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n\t}\n\n\tfunction logBytes16(bytes16 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n\t}\n\n\tfunction logBytes17(bytes17 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n\t}\n\n\tfunction logBytes18(bytes18 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n\t}\n\n\tfunction logBytes19(bytes19 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n\t}\n\n\tfunction logBytes20(bytes20 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n\t}\n\n\tfunction logBytes21(bytes21 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n\t}\n\n\tfunction logBytes22(bytes22 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n\t}\n\n\tfunction logBytes23(bytes23 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n\t}\n\n\tfunction logBytes24(bytes24 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n\t}\n\n\tfunction logBytes25(bytes25 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n\t}\n\n\tfunction logBytes26(bytes26 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n\t}\n\n\tfunction logBytes27(bytes27 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n\t}\n\n\tfunction logBytes28(bytes28 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n\t}\n\n\tfunction logBytes29(bytes29 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n\t}\n\n\tfunction logBytes30(bytes30 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n\t}\n\n\tfunction logBytes31(bytes31 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n\t}\n\n\tfunction logBytes32(bytes32 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n\t}\n\n\tfunction log(uint256 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n\t}\n\n\tfunction log(string memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n\t}\n\n\tfunction log(bool p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n\t}\n\n\tfunction log(address p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256)\", p0, p1));\n\t}\n\n\tfunction log(uint256 p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string)\", p0, p1));\n\t}\n\n\tfunction log(uint256 p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool)\", p0, p1));\n\t}\n\n\tfunction log(uint256 p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, uint256 p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, uint256 p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n\t}\n\n\tfunction log(address p0, uint256 p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256)\", p0, p1));\n\t}\n\n\tfunction log(address p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n\t}\n\n\tfunction log(address p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n\t}\n\n\tfunction log(address p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, bool p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, address p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint256 p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint256 p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint256 p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint256 p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint256 p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint256 p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint256 p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint256 p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, uint256 p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, uint256 p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint256 p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint256 p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint256 p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint256 p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint256 p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint256 p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint256 p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint256 p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, uint256 p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint256)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n}\n"},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/Address.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n    /**\n     * @dev Indicates that the contract has been initialized.\n     * @custom:oz-retyped-from bool\n     */\n    uint8 private _initialized;\n\n    /**\n     * @dev Indicates that the contract is in the process of being initialized.\n     */\n    bool private _initializing;\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized(uint8 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`.\n     */\n    modifier initializer() {\n        bool isTopLevelCall = !_initializing;\n        require(\n            (isTopLevelCall && _initialized < 1) || (!Address.isContract(address(this)) && _initialized == 1),\n            \"Initializable: contract is already initialized\"\n        );\n        _initialized = 1;\n        if (isTopLevelCall) {\n            _initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            _initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n     * initialization step. This is essential to configure modules that are added through upgrades and that require\n     * initialization.\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    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    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"},"contracts/gauges/uniswapv3/UniswapV3Base.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Initializable} from \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport {IUniswapV3Factory} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\";\nimport {IUniswapV3Pool} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {SafeMath} from \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\n\nimport {IRegistry} from \"../../interfaces/IRegistry.sol\";\nimport {INonfungiblePositionManager} from \"../../interfaces/INonfungiblePositionManager.sol\";\nimport {IGauge} from \"../../interfaces/IGauge.sol\";\n\nabstract contract UniswapV3Base is Initializable, ReentrancyGuard, IGauge {\n    using SafeMath for uint256;\n    using SafeMath for uint128;\n\n    /// @notice Represents the deposit of a liquidity NFT\n    struct Deposit {\n        address owner;\n        uint128 liquidity;\n        uint128 derivedLiquidity;\n    }\n\n    /* ========== STATE VARIABLES ========== */\n    IRegistry public override registry;\n    IERC20 public rewardsToken;\n    uint256 public periodFinish = 0;\n    uint256 public rewardRate = 0;\n    uint256 public rewardsDuration = 7 days;\n    uint256 public lastUpdateTime;\n    uint256 public rewardPerTokenStored;\n    uint256 public maxBoostRequirement = 5000e18;\n    mapping(uint256 => uint256) public userRewardPerTokenPaid;\n\n    uint256 public totalSupply;\n\n    /// @dev all the NFT deposits\n    mapping(uint256 => Deposit) public deposits;\n\n    /// @dev [nft token id => reward count] rewards\n    mapping(uint256 => uint256) public rewards;\n\n    /// @dev the uniswap v3 factory\n    IUniswapV3Factory public factory;\n\n    /// @dev the uniswap v3 nft position manager\n    INonfungiblePositionManager public nonfungiblePositionManager;\n\n    /// @dev the pool for which we are staking the rewards\n    IUniswapV3Pool public pool;\n\n    /// @dev the number of NFTs staked by the given user.\n    mapping(address => uint256) public balanceOf;\n\n    /// @dev Mapping from owner to list of owned token IDs\n    mapping(address => mapping(uint256 => uint256)) internal _ownedTokens;\n\n    /// @dev Mapping from token ID to index of the owner tokens list\n    mapping(uint256 => uint256) internal _ownedTokensIndex;\n\n    /// @dev Array with all token ids, used for enumeration\n    uint256[] internal _allTokens;\n\n    /// @dev Mapping from token id to position in the allTokens array\n    mapping(uint256 => uint256) internal _allTokensIndex;\n\n    /// @dev is the user attached to this gauge\n    mapping(address => bool) public attached;\n\n    /* ========== CONSTRUCTOR ========== */\n\n    function initialize(\n        address _registry,\n        address token0,\n        address token1,\n        uint24 fee,\n        address _rewardsToken,\n        address _nonfungiblePositionManager\n    ) public initializer {\n        nonfungiblePositionManager = INonfungiblePositionManager(\n            _nonfungiblePositionManager\n        );\n\n        registry = IRegistry(_registry);\n        factory = IUniswapV3Factory(nonfungiblePositionManager.factory());\n        rewardsToken = IERC20(_rewardsToken);\n\n        address _pool = factory.getPool(token0, token1, fee);\n        require(_pool != address(0), \"pool doesn't exist\");\n        pool = IUniswapV3Pool(_pool);\n    }\n\n    /* ========== VIEWS ========== */\n\n    function left(address) external view override returns (uint256) {\n        if (block.timestamp >= periodFinish) return 0;\n        uint256 _remaining = periodFinish - block.timestamp;\n        return _remaining * rewardRate;\n    }\n\n    function liquidity(uint256 _tokenId) external view returns (uint256) {\n        return deposits[_tokenId].liquidity;\n    }\n\n    function derivedLiquidity(uint256 _tokenId)\n        external\n        view\n        returns (uint256)\n    {\n        return deposits[_tokenId].derivedLiquidity;\n    }\n\n    function lastTimeRewardApplicable() public view returns (uint256) {\n        return block.timestamp < periodFinish ? block.timestamp : periodFinish;\n    }\n\n    function rewardPerToken() public view returns (uint256) {\n        if (totalSupply == 0) return rewardPerTokenStored;\n        return\n            rewardPerTokenStored.add(\n                lastTimeRewardApplicable()\n                    .sub(lastUpdateTime)\n                    .mul(rewardRate)\n                    .mul(1e18)\n                    .div(totalSupply)\n            );\n    }\n\n    function earned(uint256 _tokenId) public view returns (uint256) {\n        return\n            deposits[_tokenId]\n                .derivedLiquidity\n                .mul(rewardPerToken().sub(userRewardPerTokenPaid[_tokenId]))\n                .div(1e18)\n                .add(rewards[_tokenId]);\n    }\n\n    function getRewardForDuration() external view returns (uint256) {\n        return rewardRate.mul(rewardsDuration);\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's ownership-tracking data structures.\n     * @param to address representing the new owner of the given token ID\n     * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n     */\n    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) internal {\n        uint256 length = balanceOf[to];\n        _ownedTokens[to][length] = tokenId;\n        _ownedTokensIndex[tokenId] = length;\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's token tracking data structures.\n     * @param tokenId uint256 ID of the token to be added to the tokens list\n     */\n    function _addTokenToAllTokensEnumeration(uint256 tokenId) internal {\n        _allTokensIndex[tokenId] = _allTokens.length;\n        _allTokens.push(tokenId);\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n     * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n     * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n     * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n     * @param from address representing the previous owner of the given token ID\n     * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n     */\n    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId)\n        internal\n    {\n        // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = balanceOf[from];\n        uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary\n        if (tokenIndex != lastTokenIndex) {\n            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n        }\n\n        // This also deletes the contents at the last position of the array\n        delete _ownedTokensIndex[tokenId];\n        delete _ownedTokens[from][lastTokenIndex];\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's token tracking data structures.\n     * This has O(1) time complexity, but alters the order of the _allTokens array.\n     * @param tokenId uint256 ID of the token to be removed from the tokens list\n     */\n    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) internal {\n        // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = _allTokens.length - 1;\n        uint256 tokenIndex = _allTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n        // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n        // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n        uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n        // This also deletes the contents at the last position of the array\n        delete _allTokensIndex[tokenId];\n        _allTokens.pop();\n    }\n\n    modifier onlyTokenOwner(uint256 _tokenId) {\n        require(deposits[_tokenId].owner == msg.sender, \"only tokenid owner\");\n        _;\n    }\n    /* ========== EVENTS ========== */\n\n    event RewardAdded(uint256 reward);\n    event Staked(\n        address indexed user,\n        uint256 tokenId,\n        uint128 liquidty,\n        uint128 derivedLiquidity\n    );\n    event Withdrawn(address indexed user, uint256 tokenId);\n    event RewardPaid(address indexed user, uint256 tokenId, uint256 reward);\n    event MaxBoostRequirementChanged(uint256 _old, uint256 _new);\n    event EmergencyModeEnabled();\n}\n"},"contracts/interfaces/INonfungiblePositionManager.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\";\n\nimport \"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\";\nimport \"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\";\nimport \"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\";\nimport \"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\";\n\nimport \"../utils/PoolAddress.sol\";\n\n/// @title Non-fungible token for positions\n/// @notice Wraps Uniswap V3 positions in a non-fungible token interface which allows for them to be transferred\n/// and authorized.\ninterface INonfungiblePositionManager is\n    IPoolInitializer,\n    IPeripheryPayments,\n    IPeripheryImmutableState,\n    IERC721Metadata,\n    IERC721Enumerable,\n    IERC721Permit\n{\n    /// @notice Emitted when liquidity is increased for a position NFT\n    /// @dev Also emitted when a token is minted\n    /// @param tokenId The ID of the token for which liquidity was increased\n    /// @param liquidity The amount by which liquidity for the NFT position was increased\n    /// @param amount0 The amount of token0 that was paid for the increase in liquidity\n    /// @param amount1 The amount of token1 that was paid for the increase in liquidity\n    event IncreaseLiquidity(\n        uint256 indexed tokenId,\n        uint128 liquidity,\n        uint256 amount0,\n        uint256 amount1\n    );\n    /// @notice Emitted when liquidity is decreased for a position NFT\n    /// @param tokenId The ID of the token for which liquidity was decreased\n    /// @param liquidity The amount by which liquidity for the NFT position was decreased\n    /// @param amount0 The amount of token0 that was accounted for the decrease in liquidity\n    /// @param amount1 The amount of token1 that was accounted for the decrease in liquidity\n    event DecreaseLiquidity(\n        uint256 indexed tokenId,\n        uint128 liquidity,\n        uint256 amount0,\n        uint256 amount1\n    );\n    /// @notice Emitted when tokens are collected for a position NFT\n    /// @dev The amounts reported may not be exactly equivalent to the amounts transferred, due to rounding behavior\n    /// @param tokenId The ID of the token for which underlying tokens were collected\n    /// @param recipient The address of the account that received the collected tokens\n    /// @param amount0 The amount of token0 owed to the position that was collected\n    /// @param amount1 The amount of token1 owed to the position that was collected\n    event Collect(\n        uint256 indexed tokenId,\n        address recipient,\n        uint256 amount0,\n        uint256 amount1\n    );\n\n    /// @notice Returns the position information associated with a given token ID.\n    /// @dev Throws if the token ID is not valid.\n    /// @param tokenId The ID of the token that represents the position\n    /// @return nonce The nonce for permits\n    /// @return operator The address that is approved for spending\n    /// @return token0 The address of the token0 for a specific pool\n    /// @return token1 The address of the token1 for a specific pool\n    /// @return fee The fee associated with the pool\n    /// @return tickLower The lower end of the tick range for the position\n    /// @return tickUpper The higher end of the tick range for the position\n    /// @return liquidity The liquidity of the position\n    /// @return feeGrowthInside0LastX128 The fee growth of token0 as of the last action on the individual position\n    /// @return feeGrowthInside1LastX128 The fee growth of token1 as of the last action on the individual position\n    /// @return tokensOwed0 The uncollected amount of token0 owed to the position as of the last computation\n    /// @return tokensOwed1 The uncollected amount of token1 owed to the position as of the last computation\n    function positions(uint256 tokenId)\n        external\n        view\n        returns (\n            uint96 nonce,\n            address operator,\n            address token0,\n            address token1,\n            uint24 fee,\n            int24 tickLower,\n            int24 tickUpper,\n            uint128 liquidity,\n            uint256 feeGrowthInside0LastX128,\n            uint256 feeGrowthInside1LastX128,\n            uint128 tokensOwed0,\n            uint128 tokensOwed1\n        );\n\n    struct MintParams {\n        address token0;\n        address token1;\n        uint24 fee;\n        int24 tickLower;\n        int24 tickUpper;\n        uint256 amount0Desired;\n        uint256 amount1Desired;\n        uint256 amount0Min;\n        uint256 amount1Min;\n        address recipient;\n        uint256 deadline;\n    }\n\n    /// @notice Creates a new position wrapped in a NFT\n    /// @dev Call this when the pool does exist and is initialized. Note that if the pool is created but not initialized\n    /// a method does not exist, i.e. the pool is assumed to be initialized.\n    /// @param params The params necessary to mint a position, encoded as `MintParams` in calldata\n    /// @return tokenId The ID of the token that represents the minted position\n    /// @return liquidity The amount of liquidity for this position\n    /// @return amount0 The amount of token0\n    /// @return amount1 The amount of token1\n    function mint(MintParams calldata params)\n        external\n        payable\n        returns (\n            uint256 tokenId,\n            uint128 liquidity,\n            uint256 amount0,\n            uint256 amount1\n        );\n\n    struct IncreaseLiquidityParams {\n        uint256 tokenId;\n        uint256 amount0Desired;\n        uint256 amount1Desired;\n        uint256 amount0Min;\n        uint256 amount1Min;\n        uint256 deadline;\n    }\n\n    /// @notice Increases the amount of liquidity in a position, with tokens paid by the `msg.sender`\n    /// @param params tokenId The ID of the token for which liquidity is being increased,\n    /// amount0Desired The desired amount of token0 to be spent,\n    /// amount1Desired The desired amount of token1 to be spent,\n    /// amount0Min The minimum amount of token0 to spend, which serves as a slippage check,\n    /// amount1Min The minimum amount of token1 to spend, which serves as a slippage check,\n    /// deadline The time by which the transaction must be included to effect the change\n    /// @return liquidity The new liquidity amount as a result of the increase\n    /// @return amount0 The amount of token0 to acheive resulting liquidity\n    /// @return amount1 The amount of token1 to acheive resulting liquidity\n    function increaseLiquidity(IncreaseLiquidityParams calldata params)\n        external\n        payable\n        returns (\n            uint128 liquidity,\n            uint256 amount0,\n            uint256 amount1\n        );\n\n    struct DecreaseLiquidityParams {\n        uint256 tokenId;\n        uint128 liquidity;\n        uint256 amount0Min;\n        uint256 amount1Min;\n        uint256 deadline;\n    }\n\n    /// @notice Decreases the amount of liquidity in a position and accounts it to the position\n    /// @param params tokenId The ID of the token for which liquidity is being decreased,\n    /// amount The amount by which liquidity will be decreased,\n    /// amount0Min The minimum amount of token0 that should be accounted for the burned liquidity,\n    /// amount1Min The minimum amount of token1 that should be accounted for the burned liquidity,\n    /// deadline The time by which the transaction must be included to effect the change\n    /// @return amount0 The amount of token0 accounted to the position's tokens owed\n    /// @return amount1 The amount of token1 accounted to the position's tokens owed\n    function decreaseLiquidity(DecreaseLiquidityParams calldata params)\n        external\n        payable\n        returns (uint256 amount0, uint256 amount1);\n\n    struct CollectParams {\n        uint256 tokenId;\n        address recipient;\n        uint128 amount0Max;\n        uint128 amount1Max;\n    }\n\n    /// @notice Collects up to a maximum amount of fees owed to a specific position to the recipient\n    /// @param params tokenId The ID of the NFT for which tokens are being collected,\n    /// recipient The account that should receive the tokens,\n    /// amount0Max The maximum amount of token0 to collect,\n    /// amount1Max The maximum amount of token1 to collect\n    /// @return amount0 The amount of fees collected in token0\n    /// @return amount1 The amount of fees collected in token1\n    function collect(CollectParams calldata params)\n        external\n        payable\n        returns (uint256 amount0, uint256 amount1);\n\n    /// @notice Burns a token ID, which deletes it from the NFT contract. The token must have 0 liquidity and all tokens\n    /// must be collected first.\n    /// @param tokenId The ID of the token that is being burned\n    function burn(uint256 tokenId) external payable;\n}\n"},"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title The interface for the Uniswap V3 Factory\n/// @notice The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees\ninterface IUniswapV3Factory {\n    /// @notice Emitted when the owner of the factory is changed\n    /// @param oldOwner The owner before the owner was changed\n    /// @param newOwner The owner after the owner was changed\n    event OwnerChanged(address indexed oldOwner, address indexed newOwner);\n\n    /// @notice Emitted when a pool is created\n    /// @param token0 The first token of the pool by address sort order\n    /// @param token1 The second token of the pool by address sort order\n    /// @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n    /// @param tickSpacing The minimum number of ticks between initialized ticks\n    /// @param pool The address of the created pool\n    event PoolCreated(\n        address indexed token0,\n        address indexed token1,\n        uint24 indexed fee,\n        int24 tickSpacing,\n        address pool\n    );\n\n    /// @notice Emitted when a new fee amount is enabled for pool creation via the factory\n    /// @param fee The enabled fee, denominated in hundredths of a bip\n    /// @param tickSpacing The minimum number of ticks between initialized ticks for pools created with the given fee\n    event FeeAmountEnabled(uint24 indexed fee, int24 indexed tickSpacing);\n\n    /// @notice Returns the current owner of the factory\n    /// @dev Can be changed by the current owner via setOwner\n    /// @return The address of the factory owner\n    function owner() external view returns (address);\n\n    /// @notice Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled\n    /// @dev A fee amount can never be removed, so this value should be hard coded or cached in the calling context\n    /// @param fee The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee\n    /// @return The tick spacing\n    function feeAmountTickSpacing(uint24 fee) external view returns (int24);\n\n    /// @notice Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist\n    /// @dev tokenA and tokenB may be passed in either token0/token1 or token1/token0 order\n    /// @param tokenA The contract address of either token0 or token1\n    /// @param tokenB The contract address of the other token\n    /// @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n    /// @return pool The pool address\n    function getPool(\n        address tokenA,\n        address tokenB,\n        uint24 fee\n    ) external view returns (address pool);\n\n    /// @notice Creates a pool for the given two tokens and fee\n    /// @param tokenA One of the two tokens in the desired pool\n    /// @param tokenB The other of the two tokens in the desired pool\n    /// @param fee The desired fee for the pool\n    /// @dev tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved\n    /// from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments\n    /// are invalid.\n    /// @return pool The address of the newly created pool\n    function createPool(\n        address tokenA,\n        address tokenB,\n        uint24 fee\n    ) external returns (address pool);\n\n    /// @notice Updates the owner of the factory\n    /// @dev Must be called by the current owner\n    /// @param _owner The new owner of the factory\n    function setOwner(address _owner) external;\n\n    /// @notice Enables a fee amount with the given tickSpacing\n    /// @dev Fee amounts may never be removed once enabled\n    /// @param fee The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)\n    /// @param tickSpacing The spacing between ticks to be enforced for all pools created with the given fee amount\n    function enableFeeAmount(uint24 fee, int24 tickSpacing) external;\n}\n"},"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\nimport './pool/IUniswapV3PoolImmutables.sol';\nimport './pool/IUniswapV3PoolState.sol';\nimport './pool/IUniswapV3PoolDerivedState.sol';\nimport './pool/IUniswapV3PoolActions.sol';\nimport './pool/IUniswapV3PoolOwnerActions.sol';\nimport './pool/IUniswapV3PoolEvents.sol';\n\n/// @title The interface for a Uniswap V3 Pool\n/// @notice A Uniswap pool facilitates swapping and automated market making between any two assets that strictly conform\n/// to the ERC20 specification\n/// @dev The pool interface is broken up into many smaller pieces\ninterface IUniswapV3Pool is\n    IUniswapV3PoolImmutables,\n    IUniswapV3PoolState,\n    IUniswapV3PoolDerivedState,\n    IUniswapV3PoolActions,\n    IUniswapV3PoolOwnerActions,\n    IUniswapV3PoolEvents\n{\n\n}\n"},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)\n\npragma solidity ^0.8.0;\n\n// CAUTION\n// This version of SafeMath should only be used with Solidity 0.8 or later,\n// because it relies on the compiler's built in overflow checks.\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations.\n *\n * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n * now has built in overflow checking.\n */\nlibrary SafeMath {\n    /**\n     * @dev Returns the addition of two unsigned integers, with an overflow flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            uint256 c = a + b;\n            if (c < a) return (false, 0);\n            return (true, c);\n        }\n    }\n\n    /**\n     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n     *\n     * _Available since v3.4._\n     */\n    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            if (b > a) return (false, 0);\n            return (true, a - b);\n        }\n    }\n\n    /**\n     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n            // benefit is lost if 'b' is also tested.\n            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n            if (a == 0) return (true, 0);\n            uint256 c = a * b;\n            if (c / a != b) return (false, 0);\n            return (true, c);\n        }\n    }\n\n    /**\n     * @dev Returns the division of two unsigned integers, with a division by zero flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            if (b == 0) return (false, 0);\n            return (true, a / b);\n        }\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            if (b == 0) return (false, 0);\n            return (true, a % b);\n        }\n    }\n\n    /**\n     * @dev Returns the addition of two unsigned integers, reverting on\n     * overflow.\n     *\n     * Counterpart to Solidity's `+` operator.\n     *\n     * Requirements:\n     *\n     * - Addition cannot overflow.\n     */\n    function add(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a + b;\n    }\n\n    /**\n     * @dev Returns the subtraction of two unsigned integers, reverting on\n     * overflow (when the result is negative).\n     *\n     * Counterpart to Solidity's `-` operator.\n     *\n     * Requirements:\n     *\n     * - Subtraction cannot overflow.\n     */\n    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a - b;\n    }\n\n    /**\n     * @dev Returns the multiplication of two unsigned integers, reverting on\n     * overflow.\n     *\n     * Counterpart to Solidity's `*` operator.\n     *\n     * Requirements:\n     *\n     * - Multiplication cannot overflow.\n     */\n    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a * b;\n    }\n\n    /**\n     * @dev Returns the integer division of two unsigned integers, reverting on\n     * division by zero. The result is rounded towards zero.\n     *\n     * Counterpart to Solidity's `/` operator.\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function div(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a / b;\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n     * reverting when dividing by zero.\n     *\n     * Counterpart to Solidity's `%` operator. This function uses a `revert`\n     * opcode (which leaves remaining gas untouched) while Solidity uses an\n     * invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a % b;\n    }\n\n    /**\n     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n     * overflow (when the result is negative).\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {trySub}.\n     *\n     * Counterpart to Solidity's `-` operator.\n     *\n     * Requirements:\n     *\n     * - Subtraction cannot overflow.\n     */\n    function sub(\n        uint256 a,\n        uint256 b,\n        string memory errorMessage\n    ) internal pure returns (uint256) {\n        unchecked {\n            require(b <= a, errorMessage);\n            return a - b;\n        }\n    }\n\n    /**\n     * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n     * division by zero. The result is rounded towards zero.\n     *\n     * Counterpart to Solidity's `/` operator. Note: this function uses a\n     * `revert` opcode (which leaves remaining gas untouched) while Solidity\n     * uses an invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function div(\n        uint256 a,\n        uint256 b,\n        string memory errorMessage\n    ) internal pure returns (uint256) {\n        unchecked {\n            require(b > 0, errorMessage);\n            return a / b;\n        }\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n     * reverting with custom message when dividing by zero.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryMod}.\n     *\n     * Counterpart to Solidity's `%` operator. This function uses a `revert`\n     * opcode (which leaves remaining gas untouched) while Solidity uses an\n     * invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function mod(\n        uint256 a,\n        uint256 b,\n        string memory errorMessage\n    ) internal pure returns (uint256) {\n        unchecked {\n            require(b > 0, errorMessage);\n            return a % b;\n        }\n    }\n}\n"},"contracts/utils/PoolAddress.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.8.0;\n\n/// @title Provides functions for deriving a pool address from the factory, tokens, and the fee\nlibrary PoolAddress {\n    bytes32 internal constant POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;\n\n    /// @notice The identifying key of the pool\n    struct PoolKey {\n        address token0;\n        address token1;\n        uint24 fee;\n    }\n\n    /// @notice Returns PoolKey: the ordered tokens with the matched fee levels\n    /// @param tokenA The first token of a pool, unsorted\n    /// @param tokenB The second token of a pool, unsorted\n    /// @param fee The fee level of the pool\n    /// @return Poolkey The pool details with ordered token0 and token1 assignments\n    function getPoolKey(\n        address tokenA,\n        address tokenB,\n        uint24 fee\n    ) internal pure returns (PoolKey memory) {\n        if (tokenA > tokenB) (tokenA, tokenB) = (tokenB, tokenA);\n        return PoolKey({token0: tokenA, token1: tokenB, fee: fee});\n    }\n\n    /// @notice Deterministically computes the pool address given the factory and PoolKey\n    /// @param factory The Uniswap V3 factory contract address\n    /// @param key The PoolKey\n    /// @return pool The contract address of the V3 pool\n    function computeAddress(address factory, PoolKey memory key) internal pure returns (address pool) {\n        require(key.token0 < key.token1);\n        pool = address(\n            bytes20(\n                keccak256(\n                    abi.encodePacked(\n                        hex'ff',\n                        factory,\n                        keccak256(abi.encode(key.token0, key.token1, key.fee)),\n                        POOL_INIT_CODE_HASH\n                    )\n                )\n            )\n        );\n    }\n}\n"},"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.7.5;\npragma abicoder v2;\n\n/// @title Creates and initializes V3 Pools\n/// @notice Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that\n/// require the pool to exist.\ninterface IPoolInitializer {\n    /// @notice Creates a new pool if it does not exist, then initializes if not initialized\n    /// @dev This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\n    /// @param token0 The contract address of token0 of the pool\n    /// @param token1 The contract address of token1 of the pool\n    /// @param fee The fee amount of the v3 pool for the specified token pair\n    /// @param sqrtPriceX96 The initial square root price of the pool as a Q64.96 value\n    /// @return pool Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary\n    function createAndInitializePoolIfNecessary(\n        address token0,\n        address token1,\n        uint24 fee,\n        uint160 sqrtPriceX96\n    ) external payable returns (address pool);\n}\n"},"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.7.5;\n\nimport '@openzeppelin/contracts/token/ERC721/IERC721.sol';\n\n/// @title ERC721 with permit\n/// @notice Extension to ERC721 that includes a permit function for signature based approvals\ninterface IERC721Permit is IERC721 {\n    /// @notice The permit typehash used in the permit signature\n    /// @return The typehash for the permit\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n    /// @notice The domain separator used in the permit signature\n    /// @return The domain seperator used in encoding of permit signature\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n    /// @notice Approve of a specific token ID for spending by spender via signature\n    /// @param spender The account that is being approved\n    /// @param tokenId The ID of the token that is being approved for spending\n    /// @param deadline The deadline timestamp by which the call must be mined for the approve to work\n    /// @param v Must produce valid secp256k1 signature from the holder along with `r` and `s`\n    /// @param r Must produce valid secp256k1 signature from the holder along with `v` and `s`\n    /// @param s Must produce valid secp256k1 signature from the holder along with `r` and `v`\n    function permit(\n        address spender,\n        uint256 tokenId,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external payable;\n}\n"},"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.7.5;\n\n/// @title Periphery Payments\n/// @notice Functions to ease deposits and withdrawals of ETH\ninterface IPeripheryPayments {\n    /// @notice Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\n    /// @dev The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\n    /// @param amountMinimum The minimum amount of WETH9 to unwrap\n    /// @param recipient The address receiving ETH\n    function unwrapWETH9(uint256 amountMinimum, address recipient) external payable;\n\n    /// @notice Refunds any ETH balance held by this contract to the `msg.sender`\n    /// @dev Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps\n    /// that use ether for the input amount\n    function refundETH() external payable;\n\n    /// @notice Transfers the full amount of a token held by this contract to recipient\n    /// @dev The amountMinimum parameter prevents malicious contracts from stealing the token from users\n    /// @param token The contract address of the token which will be transferred to `recipient`\n    /// @param amountMinimum The minimum amount of token required for a transfer\n    /// @param recipient The destination address of the token\n    function sweepToken(\n        address token,\n        uint256 amountMinimum,\n        address recipient\n    ) external payable;\n}\n"},"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Immutable state\n/// @notice Functions that return immutable state of the router\ninterface IPeripheryImmutableState {\n    /// @return Returns the address of the Uniswap V3 factory\n    function factory() external view returns (address);\n\n    /// @return Returns the address of WETH9\n    function WETH9() external view returns (address);\n}\n"},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Pool state that never changes\n/// @notice These parameters are fixed for a pool forever, i.e., the methods will always return the same values\ninterface IUniswapV3PoolImmutables {\n    /// @notice The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\n    /// @return The contract address\n    function factory() external view returns (address);\n\n    /// @notice The first of the two tokens of the pool, sorted by address\n    /// @return The token contract address\n    function token0() external view returns (address);\n\n    /// @notice The second of the two tokens of the pool, sorted by address\n    /// @return The token contract address\n    function token1() external view returns (address);\n\n    /// @notice The pool's fee in hundredths of a bip, i.e. 1e-6\n    /// @return The fee\n    function fee() external view returns (uint24);\n\n    /// @notice The pool tick spacing\n    /// @dev Ticks can only be used at multiples of this value, minimum of 1 and always positive\n    /// e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ...\n    /// This value is an int24 to avoid casting even though it is always positive.\n    /// @return The tick spacing\n    function tickSpacing() external view returns (int24);\n\n    /// @notice The maximum amount of position liquidity that can use any tick in the range\n    /// @dev This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and\n    /// also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\n    /// @return The max amount of liquidity per tick\n    function maxLiquidityPerTick() external view returns (uint128);\n}\n"},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Pool state that is not stored\n/// @notice Contains view functions to provide information about the pool that is computed rather than stored on the\n/// blockchain. The functions here may have variable gas costs.\ninterface IUniswapV3PoolDerivedState {\n    /// @notice Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\n    /// @dev To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing\n    /// the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick,\n    /// you must call it with secondsAgos = [3600, 0].\n    /// @dev The time weighted average tick represents the geometric time weighted average price of the pool, in\n    /// log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\n    /// @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned\n    /// @return tickCumulatives Cumulative tick values as of each `secondsAgos` from the current block timestamp\n    /// @return secondsPerLiquidityCumulativeX128s Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block\n    /// timestamp\n    function observe(uint32[] calldata secondsAgos)\n        external\n        view\n        returns (int56[] memory tickCumulatives, uint160[] memory secondsPerLiquidityCumulativeX128s);\n\n    /// @notice Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\n    /// @dev Snapshots must only be compared to other snapshots, taken over a period for which a position existed.\n    /// I.e., snapshots cannot be compared if a position is not held for the entire period between when the first\n    /// snapshot is taken and the second snapshot is taken.\n    /// @param tickLower The lower tick of the range\n    /// @param tickUpper The upper tick of the range\n    /// @return tickCumulativeInside The snapshot of the tick accumulator for the range\n    /// @return secondsPerLiquidityInsideX128 The snapshot of seconds per liquidity for the range\n    /// @return secondsInside The snapshot of seconds per liquidity for the range\n    function snapshotCumulativesInside(int24 tickLower, int24 tickUpper)\n        external\n        view\n        returns (\n            int56 tickCumulativeInside,\n            uint160 secondsPerLiquidityInsideX128,\n            uint32 secondsInside\n        );\n}\n"},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Pool state that can change\n/// @notice These methods compose the pool's state, and can change with any frequency including multiple times\n/// per transaction\ninterface IUniswapV3PoolState {\n    /// @notice The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas\n    /// when accessed externally.\n    /// @return sqrtPriceX96 The current price of the pool as a sqrt(token1/token0) Q64.96 value\n    /// tick The current tick of the pool, i.e. according to the last tick transition that was run.\n    /// This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick\n    /// boundary.\n    /// observationIndex The index of the last oracle observation that was written,\n    /// observationCardinality The current maximum number of observations stored in the pool,\n    /// observationCardinalityNext The next maximum number of observations, to be updated when the observation.\n    /// feeProtocol The protocol fee for both tokens of the pool.\n    /// Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0\n    /// is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee.\n    /// unlocked Whether the pool is currently locked to reentrancy\n    function slot0()\n        external\n        view\n        returns (\n            uint160 sqrtPriceX96,\n            int24 tick,\n            uint16 observationIndex,\n            uint16 observationCardinality,\n            uint16 observationCardinalityNext,\n            uint8 feeProtocol,\n            bool unlocked\n        );\n\n    /// @notice The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\n    /// @dev This value can overflow the uint256\n    function feeGrowthGlobal0X128() external view returns (uint256);\n\n    /// @notice The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\n    /// @dev This value can overflow the uint256\n    function feeGrowthGlobal1X128() external view returns (uint256);\n\n    /// @notice The amounts of token0 and token1 that are owed to the protocol\n    /// @dev Protocol fees will never exceed uint128 max in either token\n    function protocolFees() external view returns (uint128 token0, uint128 token1);\n\n    /// @notice The currently in range liquidity available to the pool\n    /// @dev This value has no relationship to the total liquidity across all ticks\n    function liquidity() external view returns (uint128);\n\n    /// @notice Look up information about a specific tick in the pool\n    /// @param tick The tick to look up\n    /// @return liquidityGross the total amount of position liquidity that uses the pool either as tick lower or\n    /// tick upper,\n    /// liquidityNet how much liquidity changes when the pool price crosses the tick,\n    /// feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0,\n    /// feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1,\n    /// tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick\n    /// secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick,\n    /// secondsOutside the seconds spent on the other side of the tick from the current tick,\n    /// initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false.\n    /// Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0.\n    /// In addition, these values are only relative and must be used only in comparison to previous snapshots for\n    /// a specific position.\n    function ticks(int24 tick)\n        external\n        view\n        returns (\n            uint128 liquidityGross,\n            int128 liquidityNet,\n            uint256 feeGrowthOutside0X128,\n            uint256 feeGrowthOutside1X128,\n            int56 tickCumulativeOutside,\n            uint160 secondsPerLiquidityOutsideX128,\n            uint32 secondsOutside,\n            bool initialized\n        );\n\n    /// @notice Returns 256 packed tick initialized boolean values. See TickBitmap for more information\n    function tickBitmap(int16 wordPosition) external view returns (uint256);\n\n    /// @notice Returns the information about a position by the position's key\n    /// @param key The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\n    /// @return _liquidity The amount of liquidity in the position,\n    /// Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke,\n    /// Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke,\n    /// Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke,\n    /// Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\n    function positions(bytes32 key)\n        external\n        view\n        returns (\n            uint128 _liquidity,\n            uint256 feeGrowthInside0LastX128,\n            uint256 feeGrowthInside1LastX128,\n            uint128 tokensOwed0,\n            uint128 tokensOwed1\n        );\n\n    /// @notice Returns data about a specific observation index\n    /// @param index The element of the observations array to fetch\n    /// @dev You most likely want to use #observe() instead of this method to get an observation as of some amount of time\n    /// ago, rather than at a specific index in the array.\n    /// @return blockTimestamp The timestamp of the observation,\n    /// Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp,\n    /// Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp,\n    /// Returns initialized whether the observation has been initialized and the values are safe to use\n    function observations(uint256 index)\n        external\n        view\n        returns (\n            uint32 blockTimestamp,\n            int56 tickCumulative,\n            uint160 secondsPerLiquidityCumulativeX128,\n            bool initialized\n        );\n}\n"},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Permissionless pool actions\n/// @notice Contains pool methods that can be called by anyone\ninterface IUniswapV3PoolActions {\n    /// @notice Sets the initial price for the pool\n    /// @dev Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\n    /// @param sqrtPriceX96 the initial sqrt price of the pool as a Q64.96\n    function initialize(uint160 sqrtPriceX96) external;\n\n    /// @notice Adds liquidity for the given recipient/tickLower/tickUpper position\n    /// @dev The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback\n    /// in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends\n    /// on tickLower, tickUpper, the amount of liquidity, and the current price.\n    /// @param recipient The address for which the liquidity will be created\n    /// @param tickLower The lower tick of the position in which to add liquidity\n    /// @param tickUpper The upper tick of the position in which to add liquidity\n    /// @param amount The amount of liquidity to mint\n    /// @param data Any data that should be passed through to the callback\n    /// @return amount0 The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\n    /// @return amount1 The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\n    function mint(\n        address recipient,\n        int24 tickLower,\n        int24 tickUpper,\n        uint128 amount,\n        bytes calldata data\n    ) external returns (uint256 amount0, uint256 amount1);\n\n    /// @notice Collects tokens owed to a position\n    /// @dev Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity.\n    /// Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or\n    /// amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the\n    /// actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\n    /// @param recipient The address which should receive the fees collected\n    /// @param tickLower The lower tick of the position for which to collect fees\n    /// @param tickUpper The upper tick of the position for which to collect fees\n    /// @param amount0Requested How much token0 should be withdrawn from the fees owed\n    /// @param amount1Requested How much token1 should be withdrawn from the fees owed\n    /// @return amount0 The amount of fees collected in token0\n    /// @return amount1 The amount of fees collected in token1\n    function collect(\n        address recipient,\n        int24 tickLower,\n        int24 tickUpper,\n        uint128 amount0Requested,\n        uint128 amount1Requested\n    ) external returns (uint128 amount0, uint128 amount1);\n\n    /// @notice Burn liquidity from the sender and account tokens owed for the liquidity to the position\n    /// @dev Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0\n    /// @dev Fees must be collected separately via a call to #collect\n    /// @param tickLower The lower tick of the position for which to burn liquidity\n    /// @param tickUpper The upper tick of the position for which to burn liquidity\n    /// @param amount How much liquidity to burn\n    /// @return amount0 The amount of token0 sent to the recipient\n    /// @return amount1 The amount of token1 sent to the recipient\n    function burn(\n        int24 tickLower,\n        int24 tickUpper,\n        uint128 amount\n    ) external returns (uint256 amount0, uint256 amount1);\n\n    /// @notice Swap token0 for token1, or token1 for token0\n    /// @dev The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback\n    /// @param recipient The address to receive the output of the swap\n    /// @param zeroForOne The direction of the swap, true for token0 to token1, false for token1 to token0\n    /// @param amountSpecified The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\n    /// @param sqrtPriceLimitX96 The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this\n    /// value after the swap. If one for zero, the price cannot be greater than this value after the swap\n    /// @param data Any data to be passed through to the callback\n    /// @return amount0 The delta of the balance of token0 of the pool, exact when negative, minimum when positive\n    /// @return amount1 The delta of the balance of token1 of the pool, exact when negative, minimum when positive\n    function swap(\n        address recipient,\n        bool zeroForOne,\n        int256 amountSpecified,\n        uint160 sqrtPriceLimitX96,\n        bytes calldata data\n    ) external returns (int256 amount0, int256 amount1);\n\n    /// @notice Receive token0 and/or token1 and pay it back, plus a fee, in the callback\n    /// @dev The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallback\n    /// @dev Can be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling\n    /// with 0 amount{0,1} and sending the donation amount(s) from the callback\n    /// @param recipient The address which will receive the token0 and token1 amounts\n    /// @param amount0 The amount of token0 to send\n    /// @param amount1 The amount of token1 to send\n    /// @param data Any data to be passed through to the callback\n    function flash(\n        address recipient,\n        uint256 amount0,\n        uint256 amount1,\n        bytes calldata data\n    ) external;\n\n    /// @notice Increase the maximum number of price and liquidity observations that this pool will store\n    /// @dev This method is no-op if the pool already has an observationCardinalityNext greater than or equal to\n    /// the input observationCardinalityNext.\n    /// @param observationCardinalityNext The desired minimum number of observations for the pool to store\n    function increaseObservationCardinalityNext(uint16 observationCardinalityNext) external;\n}\n"},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Permissioned pool actions\n/// @notice Contains pool methods that may only be called by the factory owner\ninterface IUniswapV3PoolOwnerActions {\n    /// @notice Set the denominator of the protocol's % share of the fees\n    /// @param feeProtocol0 new protocol fee for token0 of the pool\n    /// @param feeProtocol1 new protocol fee for token1 of the pool\n    function setFeeProtocol(uint8 feeProtocol0, uint8 feeProtocol1) external;\n\n    /// @notice Collect the protocol fee accrued to the pool\n    /// @param recipient The address to which collected protocol fees should be sent\n    /// @param amount0Requested The maximum amount of token0 to send, can be 0 to collect fees in only token1\n    /// @param amount1Requested The maximum amount of token1 to send, can be 0 to collect fees in only token0\n    /// @return amount0 The protocol fee collected in token0\n    /// @return amount1 The protocol fee collected in token1\n    function collectProtocol(\n        address recipient,\n        uint128 amount0Requested,\n        uint128 amount1Requested\n    ) external returns (uint128 amount0, uint128 amount1);\n}\n"},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Events emitted by a pool\n/// @notice Contains all events emitted by the pool\ninterface IUniswapV3PoolEvents {\n    /// @notice Emitted exactly once by a pool when #initialize is first called on the pool\n    /// @dev Mint/Burn/Swap cannot be emitted by the pool before Initialize\n    /// @param sqrtPriceX96 The initial sqrt price of the pool, as a Q64.96\n    /// @param tick The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool\n    event Initialize(uint160 sqrtPriceX96, int24 tick);\n\n    /// @notice Emitted when liquidity is minted for a given position\n    /// @param sender The address that minted the liquidity\n    /// @param owner The owner of the position and recipient of any minted liquidity\n    /// @param tickLower The lower tick of the position\n    /// @param tickUpper The upper tick of the position\n    /// @param amount The amount of liquidity minted to the position range\n    /// @param amount0 How much token0 was required for the minted liquidity\n    /// @param amount1 How much token1 was required for the minted liquidity\n    event Mint(\n        address sender,\n        address indexed owner,\n        int24 indexed tickLower,\n        int24 indexed tickUpper,\n        uint128 amount,\n        uint256 amount0,\n        uint256 amount1\n    );\n\n    /// @notice Emitted when fees are collected by the owner of a position\n    /// @dev Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\n    /// @param owner The owner of the position for which fees are collected\n    /// @param tickLower The lower tick of the position\n    /// @param tickUpper The upper tick of the position\n    /// @param amount0 The amount of token0 fees collected\n    /// @param amount1 The amount of token1 fees collected\n    event Collect(\n        address indexed owner,\n        address recipient,\n        int24 indexed tickLower,\n        int24 indexed tickUpper,\n        uint128 amount0,\n        uint128 amount1\n    );\n\n    /// @notice Emitted when a position's liquidity is removed\n    /// @dev Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\n    /// @param owner The owner of the position for which liquidity is removed\n    /// @param tickLower The lower tick of the position\n    /// @param tickUpper The upper tick of the position\n    /// @param amount The amount of liquidity to remove\n    /// @param amount0 The amount of token0 withdrawn\n    /// @param amount1 The amount of token1 withdrawn\n    event Burn(\n        address indexed owner,\n        int24 indexed tickLower,\n        int24 indexed tickUpper,\n        uint128 amount,\n        uint256 amount0,\n        uint256 amount1\n    );\n\n    /// @notice Emitted by the pool for any swaps between token0 and token1\n    /// @param sender The address that initiated the swap call, and that received the callback\n    /// @param recipient The address that received the output of the swap\n    /// @param amount0 The delta of the token0 balance of the pool\n    /// @param amount1 The delta of the token1 balance of the pool\n    /// @param sqrtPriceX96 The sqrt(price) of the pool after the swap, as a Q64.96\n    /// @param liquidity The liquidity of the pool after the swap\n    /// @param tick The log base 1.0001 of price of the pool after the swap\n    event Swap(\n        address indexed sender,\n        address indexed recipient,\n        int256 amount0,\n        int256 amount1,\n        uint160 sqrtPriceX96,\n        uint128 liquidity,\n        int24 tick\n    );\n\n    /// @notice Emitted by the pool for any flashes of token0/token1\n    /// @param sender The address that initiated the swap call, and that received the callback\n    /// @param recipient The address that received the tokens from flash\n    /// @param amount0 The amount of token0 that was flashed\n    /// @param amount1 The amount of token1 that was flashed\n    /// @param paid0 The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\n    /// @param paid1 The amount of token1 paid for the flash, which can exceed the amount1 plus the fee\n    event Flash(\n        address indexed sender,\n        address indexed recipient,\n        uint256 amount0,\n        uint256 amount1,\n        uint256 paid0,\n        uint256 paid1\n    );\n\n    /// @notice Emitted by the pool for increases to the number of observations that can be stored\n    /// @dev observationCardinalityNext is not the observation cardinality until an observation is written at the index\n    /// just before a mint/swap/burn.\n    /// @param observationCardinalityNextOld The previous value of the next observation cardinality\n    /// @param observationCardinalityNextNew The updated value of the next observation cardinality\n    event IncreaseObservationCardinalityNext(\n        uint16 observationCardinalityNextOld,\n        uint16 observationCardinalityNextNew\n    );\n\n    /// @notice Emitted when the protocol fee is changed by the pool\n    /// @param feeProtocol0Old The previous value of the token0 protocol fee\n    /// @param feeProtocol1Old The previous value of the token1 protocol fee\n    /// @param feeProtocol0New The updated value of the token0 protocol fee\n    /// @param feeProtocol1New The updated value of the token1 protocol fee\n    event SetFeeProtocol(uint8 feeProtocol0Old, uint8 feeProtocol1Old, uint8 feeProtocol0New, uint8 feeProtocol1New);\n\n    /// @notice Emitted when the collected protocol fees are withdrawn by the factory owner\n    /// @param sender The address that collects the protocol fees\n    /// @param recipient The address that receives the collected protocol fees\n    /// @param amount0 The amount of token0 protocol fees that is withdrawn\n    /// @param amount0 The amount of token1 protocol fees that is withdrawn\n    event CollectProtocol(address indexed sender, address indexed recipient, uint128 amount0, uint128 amount1);\n}\n"},"contracts/utils/Epoch.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {SafeMath} from \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {IEpoch} from \"../interfaces/IEpoch.sol\";\n\ncontract Epoch is IEpoch, Ownable {\n    using SafeMath for uint256;\n\n    uint256 private period;\n    uint256 private startTime;\n    uint256 private lastExecutedAt;\n\n    /* ========== CONSTRUCTOR ========== */\n\n    constructor(\n        uint256 _period,\n        uint256 _startTime,\n        uint256 _startEpoch\n    ) {\n        period = _period;\n        startTime = _startTime;\n        lastExecutedAt = startTime.add(_startEpoch.mul(period));\n    }\n\n    /* ========== Modifier ========== */\n\n    modifier checkStartTime() {\n        require(block.timestamp >= startTime, \"Epoch: not started yet\");\n        _;\n    }\n\n    modifier checkEpoch() {\n        require(block.timestamp > startTime, \"Epoch: not started yet\");\n        require(_callable(), \"Epoch: not allowed\");\n        _;\n        lastExecutedAt = block.timestamp;\n    }\n\n    function _getLastEpoch() internal view returns (uint256) {\n        return lastExecutedAt.sub(startTime).div(period);\n    }\n\n    function _getCurrentEpoch() internal view returns (uint256) {\n        return Math.max(startTime, block.timestamp).sub(startTime).div(period);\n    }\n\n    function callable() external view override returns (bool) {\n        return _callable();\n    }\n\n    function _callable() internal view returns (bool) {\n        return _getCurrentEpoch() >= _getNextEpoch();\n    }\n\n    function _getNextEpoch() internal view returns (uint256) {\n        if (startTime == lastExecutedAt) {\n            return _getLastEpoch();\n        }\n        return _getLastEpoch().add(1);\n    }\n\n    // epoch\n    function getLastEpoch() external view override returns (uint256) {\n        return _getLastEpoch();\n    }\n\n    function getCurrentEpoch() external view override returns (uint256) {\n        return Math.max(startTime, block.timestamp).sub(startTime).div(period);\n    }\n\n    function getNextEpoch() external view override returns (uint256) {\n        return _getNextEpoch();\n    }\n\n    function nextEpochPoint() external view override returns (uint256) {\n        return startTime.add(_getNextEpoch().mul(period));\n    }\n\n    // params\n    function getPeriod() external view override returns (uint256) {\n        return period;\n    }\n\n    function getStartTime() external view override returns (uint256) {\n        return startTime;\n    }\n\n    /* ========== GOVERNANCE ========== */\n\n    function setPeriod(uint256 _period) external onlyOwner {\n        period = _period;\n    }\n}\n"},"contracts/interfaces/IStakingCollector.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IEpoch} from \"./IEpoch.sol\";\n\ninterface IStakingCollector is IEpoch {\n  function step() external;\n}\n"},"contracts/EmissionController.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\n\nimport {Epoch} from \"./utils/Epoch.sol\";\nimport {IGaugeVoter} from \"./interfaces/IGaugeVoter.sol\";\nimport {IRegistry} from \"./interfaces/IRegistry.sol\";\nimport {IEmissionController} from \"./interfaces/IEmissionController.sol\";\n\ncontract EmissionController is IEmissionController, Epoch {\n    IRegistry public registry;\n\n    uint256 public ratePerEpoch;\n    mapping(address => address) public tokenStakingPool;\n\n    event RateUpdated(uint256 old, uint256 rate);\n\n    constructor(address _registry, uint256 _ratePerEpoch)\n        Epoch(7 days, block.timestamp, 0)\n    {\n        registry = IRegistry(_registry);\n        ratePerEpoch = _ratePerEpoch;\n    }\n\n    function allocateEmission() external override checkEpoch {\n        uint256 mahaBalance = IERC20(registry.maha()).balanceOf(address(this));\n\n        // figure out how much tokens to send\n        uint256 balanceToSend;\n\n        // if a rate was not set, then we send everything in the contract\n        if (ratePerEpoch == 0)\n            balanceToSend = mahaBalance;\n\n            // if a rate was set, then we send as much as we can\n        else balanceToSend = Math.min(mahaBalance, ratePerEpoch);\n\n        require(balanceToSend > 0, \"no maha to send\");\n\n        // approve token and notify the gauge voter\n        IERC20(registry.maha()).transfer(registry.gaugeVoter(), balanceToSend);\n        IGaugeVoter(registry.gaugeVoter()).notifyRewardAmount(balanceToSend);\n    }\n\n    function updateRate(uint256 epochRate) external onlyOwner {\n        emit RateUpdated(ratePerEpoch, epochRate);\n        ratePerEpoch = epochRate;\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\n\n/**\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\n */\ninterface IAccessControlEnumerable is IAccessControl {\n    /**\n     * @dev Returns one of the accounts that have `role`. `index` must be a\n     * value between 0 and {getRoleMemberCount}, non-inclusive.\n     *\n     * Role bearers are not sorted in any particular way, and their ordering may\n     * change at any point.\n     *\n     * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n     * you perform all queries on the same block. See the following\n     * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n     * for more information.\n     */\n    function getRoleMember(bytes32 role, uint256 index) external view returns (address);\n\n    /**\n     * @dev Returns the number of accounts that have `role`. Can be used\n     * together with {getRoleMember} to enumerate all bearers of a role.\n     */\n    function getRoleMemberCount(bytes32 role) external view returns (uint256);\n}\n"},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControlEnumerable.sol\";\nimport \"./AccessControl.sol\";\nimport \"../utils/structs/EnumerableSet.sol\";\n\n/**\n * @dev Extension of {AccessControl} that allows enumerating the members of each role.\n */\nabstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns one of the accounts that have `role`. `index` must be a\n     * value between 0 and {getRoleMemberCount}, non-inclusive.\n     *\n     * Role bearers are not sorted in any particular way, and their ordering may\n     * change at any point.\n     *\n     * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n     * you perform all queries on the same block. See the following\n     * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n     * for more information.\n     */\n    function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {\n        return _roleMembers[role].at(index);\n    }\n\n    /**\n     * @dev Returns the number of accounts that have `role`. Can be used\n     * together with {getRoleMember} to enumerate all bearers of a role.\n     */\n    function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {\n        return _roleMembers[role].length();\n    }\n\n    /**\n     * @dev Overload {_grantRole} to track enumerable memberships\n     */\n    function _grantRole(bytes32 role, address account) internal virtual override {\n        super._grantRole(role, account);\n        _roleMembers[role].add(account);\n    }\n\n    /**\n     * @dev Overload {_revokeRole} to track enumerable memberships\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual override {\n        super._revokeRole(role, account);\n        _roleMembers[role].remove(account);\n    }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/structs/EnumerableSet.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n *     // Add the library methods\n *     using EnumerableSet for EnumerableSet.AddressSet;\n *\n *     // Declare a set state variable\n *     EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n *  Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.\n *  See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n *  In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n    // To implement this library for multiple types with as little code\n    // repetition as possible, we write it in terms of a generic Set type with\n    // bytes32 values.\n    // The Set implementation uses private functions, and user-facing\n    // implementations (such as AddressSet) are just wrappers around the\n    // underlying Set.\n    // This means that we can only create new EnumerableSets for types that fit\n    // in bytes32.\n\n    struct Set {\n        // Storage of set values\n        bytes32[] _values;\n        // Position of the value in the `values` array, plus 1 because index 0\n        // means a value is not in the set.\n        mapping(bytes32 => uint256) _indexes;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function _add(Set storage set, bytes32 value) private returns (bool) {\n        if (!_contains(set, value)) {\n            set._values.push(value);\n            // The value is stored at length-1, but we add 1 to all indexes\n            // and use 0 as a sentinel value\n            set._indexes[value] = set._values.length;\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function _remove(Set storage set, bytes32 value) private returns (bool) {\n        // We read and store the value's index to prevent multiple reads from the same storage slot\n        uint256 valueIndex = set._indexes[value];\n\n        if (valueIndex != 0) {\n            // Equivalent to contains(set, value)\n            // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n            // the array, and then remove the last element (sometimes called as 'swap and pop').\n            // This modifies the order of the array, as noted in {at}.\n\n            uint256 toDeleteIndex = valueIndex - 1;\n            uint256 lastIndex = set._values.length - 1;\n\n            if (lastIndex != toDeleteIndex) {\n                bytes32 lastValue = set._values[lastIndex];\n\n                // Move the last value to the index where the value to delete is\n                set._values[toDeleteIndex] = lastValue;\n                // Update the index for the moved value\n                set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex\n            }\n\n            // Delete the slot where the moved value was stored\n            set._values.pop();\n\n            // Delete the index for the deleted slot\n            delete set._indexes[value];\n\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function _contains(Set storage set, bytes32 value) private view returns (bool) {\n        return set._indexes[value] != 0;\n    }\n\n    /**\n     * @dev Returns the number of values on the set. O(1).\n     */\n    function _length(Set storage set) private view returns (uint256) {\n        return set._values.length;\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function _at(Set storage set, uint256 index) private view returns (bytes32) {\n        return set._values[index];\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function _values(Set storage set) private view returns (bytes32[] memory) {\n        return set._values;\n    }\n\n    // Bytes32Set\n\n    struct Bytes32Set {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _add(set._inner, value);\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _remove(set._inner, value);\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n        return _contains(set._inner, value);\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(Bytes32Set storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n        return _at(set._inner, index);\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n        return _values(set._inner);\n    }\n\n    // AddressSet\n\n    struct AddressSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(AddressSet storage set, address value) internal returns (bool) {\n        return _add(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(AddressSet storage set, address value) internal returns (bool) {\n        return _remove(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(AddressSet storage set, address value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(AddressSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(AddressSet storage set, uint256 index) internal view returns (address) {\n        return address(uint160(uint256(_at(set._inner, index))));\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(AddressSet storage set) internal view returns (address[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        address[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n\n    // UintSet\n\n    struct UintSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(UintSet storage set, uint256 value) internal returns (bool) {\n        return _add(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(UintSet storage set, uint256 value) internal returns (bool) {\n        return _remove(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns the number of values on the set. O(1).\n     */\n    function length(UintSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n        return uint256(_at(set._inner, index));\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(UintSet storage set) internal view returns (uint256[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        uint256[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n}\n"},"contracts/MAHAXStaker.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {AccessControl} from \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {Counters} from \"@openzeppelin/contracts/utils/Counters.sol\";\nimport {Checkpoints} from \"@openzeppelin/contracts/utils/Checkpoints.sol\";\nimport {ECDSA, EIP712} from \"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\";\n\nimport {IGaugeVoterV2} from \"./interfaces/IGaugeVoterV2.sol\";\nimport {INFTLocker} from \"./interfaces/INFTLocker.sol\";\nimport {IRegistry, INFTStaker} from \"./interfaces/INFTStaker.sol\";\n\n/**\n * This contract stakes an NFT and captures it's voting power. It is an extension\n * of openzepplin's Votes contract that also allows delegration.\n *\n * All benefits such as voting, protocol fees, rewards, special access etc.. accure\n * to NFT stakers.\n *\n * When you stake your NFT, your voting power is locked in and stops decreasing over time.\n *\n * TODO: Ensure we limit the amount of delegation power a wallet can have.\n *\n * @author Steven Enamakel <enamakel@mahadao.com>\n */\ncontract MAHAXStaker is ReentrancyGuard, AccessControl, EIP712, INFTStaker {\n    using Checkpoints for Checkpoints.History;\n    using Counters for Counters.Counter;\n\n    IRegistry public immutable override registry;\n\n    bytes32 public constant DELEGATION_TYPEHASH =\n        keccak256(\"Delegation(address delegatee,uint256 nonce,uint256 expiry)\");\n\n    bytes32 public constant KICK_FROM_STAKE_ROLE =\n        keccak256(\"KICK_FROM_STAKE_ROLE\");\n\n    mapping(address => address) private _delegation;\n    mapping(address => Checkpoints.History) private _delegateCheckpoints;\n    Checkpoints.History private _totalCheckpoints;\n\n    mapping(address => Counters.Counter) private _nonces;\n\n    uint256 public totalWeight; // total voting weight\n    bool public disableAttachmentCheck; // check attachments when unstaking\n\n    mapping(uint256 => uint256) public stakedBalancesNFT; // nft => pool => votes\n    mapping(address => uint256) public stakedBalances; // nft => pool => votes\n\n    constructor(address _registry, address _governance)\n        EIP712(\"MAHAXStaker\", \"1\")\n    {\n        registry = IRegistry(_registry);\n        _setupRole(DEFAULT_ADMIN_ROLE, _governance);\n    }\n\n    function stake(uint256 _tokenId) external override {\n        INFTLocker locker = INFTLocker(registry.locker());\n        require(\n            locker.isApprovedOrOwner(msg.sender, _tokenId),\n            \"not token owner\"\n        );\n        _stake(_tokenId);\n    }\n\n    function unstake(uint256 _tokenId) external override {\n        INFTLocker locker = INFTLocker(registry.locker());\n\n        // check if the nfts have been used in a gauge\n        if (!disableAttachmentCheck) {\n            IGaugeVoterV2 gaugeVoter = IGaugeVoterV2(registry.gaugeVoter());\n            require(\n                gaugeVoter.attachments(locker.ownerOf(_tokenId)) == 0,\n                \"attached\"\n            );\n        }\n\n        require(\n            locker.isApprovedOrOwner(msg.sender, _tokenId),\n            \"not token owner\"\n        );\n        _unstake(_tokenId);\n    }\n\n    function _stakeFromLock(uint256 _tokenId) external override {\n        require(msg.sender == registry.locker(), \"not locker\");\n        if (!_isStaked(_tokenId)) _stake(_tokenId);\n        else {\n            _unstake(_tokenId);\n            _stake(_tokenId);\n        }\n    }\n\n    function _stake(uint256 _tokenId) internal {\n        registry.ensureNotPaused();\n\n        INFTLocker locker = INFTLocker(registry.locker());\n        require(stakedBalancesNFT[_tokenId] == 0, \"already staked\");\n\n        address _owner = locker.ownerOf(_tokenId);\n\n        uint256 _weight = locker.balanceOfNFT(_tokenId);\n        _transferVotingUnits(address(0), _owner, _weight);\n\n        stakedBalancesNFT[_tokenId] = _weight;\n        stakedBalances[_owner] += _weight;\n        totalWeight += _weight;\n\n        emit StakeNFT(msg.sender, _owner, _tokenId, _weight);\n\n        // if the user is staking for the first time; set the delegate to himself by default.\n        if (_delegation[_owner] == address(0)) _delegate(_owner, _owner);\n    }\n\n    function _unstake(uint256 _tokenId) internal {\n        INFTLocker locker = INFTLocker(registry.locker());\n        address _owner = locker.ownerOf(_tokenId);\n\n        require(stakedBalancesNFT[_tokenId] > 0, \"not staked\");\n        IGaugeVoterV2(registry.gaugeVoter()).resetFor(_owner);\n\n        uint256 _weight = stakedBalancesNFT[_tokenId];\n        _transferVotingUnits(_owner, address(0), _weight);\n\n        stakedBalancesNFT[_tokenId] = 0;\n        stakedBalances[_owner] -= _weight;\n        totalWeight -= _weight;\n\n        emit UnstakeNFT(msg.sender, _owner, _tokenId, _weight);\n    }\n\n    /// @dev ban a NFT from stake; ideally should be used with NFTs that are staked but listed on opensea.\n    /// Should be called from a smart contract\n    function banFromStake(uint256 _tokenId) external {\n        _checkRole(KICK_FROM_STAKE_ROLE, msg.sender);\n        _unstake(_tokenId);\n    }\n\n    /// @dev in the unlikely event of some kind of issue with the gauge voter, we\n    /// disable the attachment check so that NFTs can safely by unstaked.\n    function toggleAttachmentCheck() external {\n        _checkRole(DEFAULT_ADMIN_ROLE, msg.sender);\n        disableAttachmentCheck = !disableAttachmentCheck;\n    }\n\n    function _getVotingUnits(address who)\n        internal\n        view\n        virtual\n        returns (uint256)\n    {\n        return stakedBalances[who];\n    }\n\n    function getStakedBalance(address who)\n        external\n        view\n        virtual\n        override\n        returns (uint256)\n    {\n        return stakedBalances[who];\n    }\n\n    function balanceOf(address who)\n        external\n        view\n        virtual\n        override\n        returns (uint256)\n    {\n        return _delegateCheckpoints[who].latest();\n    }\n\n    function totalSupply() external view virtual override returns (uint256) {\n        return _getTotalSupply();\n    }\n\n    function isStaked(uint256 tokenId)\n        external\n        view\n        virtual\n        override\n        returns (bool)\n    {\n        return _isStaked(tokenId);\n    }\n\n    function _isStaked(uint256 tokenId) internal view virtual returns (bool) {\n        return stakedBalancesNFT[tokenId] > 0;\n    }\n\n    /**\n     * @dev Returns the current amount of votes that `account` has.\n     */\n    function getVotes(address account)\n        public\n        view\n        virtual\n        override\n        returns (uint256)\n    {\n        return _delegateCheckpoints[account].latest();\n    }\n\n    /**\n     * @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\n     *\n     * Requirements:\n     *\n     * - `blockNumber` must have been already mined\n     */\n    function getPastVotes(address account, uint256 blockNumber)\n        public\n        view\n        virtual\n        override\n        returns (uint256)\n    {\n        return _delegateCheckpoints[account].getAtBlock(blockNumber);\n    }\n\n    /**\n     * @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n     *\n     * NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n     * Votes that have not been delegated are still part of total supply, even though they would not participate in a\n     * vote.\n     *\n     * Requirements:\n     *\n     * - `blockNumber` must have been already mined\n     */\n    function getPastTotalSupply(uint256 blockNumber)\n        public\n        view\n        virtual\n        override\n        returns (uint256)\n    {\n        require(blockNumber < block.number, \"Votes: block not yet mined\");\n        return _totalCheckpoints.getAtBlock(blockNumber);\n    }\n\n    /**\n     * @dev Returns the current total supply of votes.\n     */\n    function _getTotalSupply() internal view virtual returns (uint256) {\n        return _totalCheckpoints.latest();\n    }\n\n    /**\n     * @dev Returns the delegate that `account` has chosen.\n     */\n    function delegates(address account)\n        public\n        view\n        virtual\n        override\n        returns (address)\n    {\n        return _delegation[account];\n    }\n\n    /**\n     * @dev Delegates votes from the sender to `delegatee`.\n     */\n    function delegate(address delegatee) public virtual override {\n        address account = _msgSender();\n        _delegate(account, delegatee);\n    }\n\n    /**\n     * @dev Delegates votes from signer to `delegatee`.\n     */\n    function delegateBySig(\n        address delegatee,\n        uint256 nonce,\n        uint256 expiry,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override {\n        require(block.timestamp <= expiry, \"Votes: signature expired\");\n        address signer = ECDSA.recover(\n            _hashTypedDataV4(\n                keccak256(\n                    abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)\n                )\n            ),\n            v,\n            r,\n            s\n        );\n        require(nonce == _useNonce(signer), \"Votes: invalid nonce\");\n        _delegate(signer, delegatee);\n    }\n\n    /**\n     * @dev Delegate all of `account`'s voting units to `delegatee`.\n     *\n     * Emits events {DelegateChanged} and {DelegateVotesChanged}.\n     */\n    function _delegate(address account, address delegatee) internal virtual {\n        address oldDelegate = delegates(account);\n        _delegation[account] = delegatee;\n\n        emit DelegateChanged(account, oldDelegate, delegatee);\n        _moveDelegateVotes(oldDelegate, delegatee, _getVotingUnits(account));\n    }\n\n    /**\n     * @dev Transfers, mints, or burns voting units. To register a mint, `from` should be zero. To register a burn, `to`\n     * should be zero. Total supply of voting units will be adjusted with mints and burns.\n     */\n    function _transferVotingUnits(\n        address from,\n        address to,\n        uint256 amount\n    ) internal virtual {\n        if (from == address(0)) _totalCheckpoints.push(_add, amount);\n        if (to == address(0)) _totalCheckpoints.push(_subtract, amount);\n\n        _moveDelegateVotes(delegates(from), delegates(to), amount);\n    }\n\n    /**\n     * @dev Moves delegated votes from one delegate to another.\n     */\n    function _moveDelegateVotes(\n        address from,\n        address to,\n        uint256 amount\n    ) private {\n        if (from != to && amount > 0) {\n            if (from != address(0)) {\n                (uint256 oldValue, uint256 newValue) = _delegateCheckpoints[\n                    from\n                ].push(_subtract, amount);\n                emit DelegateVotesChanged(from, oldValue, newValue);\n            }\n            if (to != address(0)) {\n                (uint256 oldValue, uint256 newValue) = _delegateCheckpoints[to]\n                    .push(_add, amount);\n                emit DelegateVotesChanged(to, oldValue, newValue);\n            }\n            emit Transfer(from, to, amount);\n        }\n    }\n\n    function _add(uint256 a, uint256 b) private pure returns (uint256) {\n        return a + b;\n    }\n\n    function _subtract(uint256 a, uint256 b) private pure returns (uint256) {\n        return a - b;\n    }\n\n    /**\n     * @dev Consumes a nonce.\n     *\n     * Returns the current value and increments nonce.\n     */\n    function _useNonce(address owner)\n        internal\n        virtual\n        returns (uint256 current)\n    {\n        Counters.Counter storage nonce = _nonces[owner];\n        current = nonce.current();\n        nonce.increment();\n    }\n\n    /**\n     * @dev Returns an address nonce.\n     */\n    function nonces(address owner) public view virtual returns (uint256) {\n        return _nonces[owner].current();\n    }\n\n    /**\n     * @dev Returns the contract's {EIP712} domain separator.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32) {\n        return _domainSeparatorV4();\n    }\n\n    function name() external view virtual override returns (string memory) {\n        return \"MAHAX Staked Voting Power\";\n    }\n\n    function symbol() external view virtual override returns (string memory) {\n        return \"MAHAXvp\";\n    }\n\n    function decimals() external view virtual override returns (uint8) {\n        return 18;\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (governance/extensions/GovernorVotes.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Governor.sol\";\nimport \"../utils/IVotes.sol\";\n\n/**\n * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token, or since v4.5 an {ERC721Votes} token.\n *\n * _Available since v4.3._\n */\nabstract contract GovernorVotes is Governor {\n    IVotes public immutable token;\n\n    constructor(IVotes tokenAddress) {\n        token = tokenAddress;\n    }\n\n    /**\n     * Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes}).\n     */\n    function _getVotes(\n        address account,\n        uint256 blockNumber,\n        bytes memory /*params*/\n    ) internal view virtual override returns (uint256) {\n        return token.getPastVotes(account, blockNumber);\n    }\n}\n"},"contracts/MAHAXGovernor.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IGovernor, Governor} from \"@openzeppelin/contracts/governance/Governor.sol\";\nimport {GovernorSettings} from \"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\";\nimport {GovernorCountingSimple} from \"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\";\nimport {IVotes} from \"@openzeppelin/contracts/governance/utils/IVotes.sol\";\nimport {TimelockController, GovernorTimelockControl} from \"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\";\nimport {GovernorVotes} from \"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\";\nimport {GovernorPreventLateQuorum} from \"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol\";\nimport {IRegistry} from \"./interfaces/IRegistry.sol\";\n\n/// @custom:security-contact security@mahadao.com\ncontract MAHAXGovernor is\n    Governor,\n    GovernorSettings,\n    GovernorPreventLateQuorum,\n    GovernorCountingSimple,\n    GovernorTimelockControl\n{\n    IRegistry public immutable registry;\n    uint256 private _quorum;\n\n    event QuorumUpdated(uint256 oldQuorum, uint256 newQuorum);\n\n    constructor(\n        IRegistry _registry,\n        TimelockController _timelock,\n        uint64 initialVoteExtension,\n        uint256 initialVotingDelay,\n        uint256 initialVotingPeriod,\n        uint256 initialProposalThreshold,\n        uint256 initialQuorum\n    )\n        Governor(\"MAHAXGovernor\")\n        GovernorSettings(\n            initialVotingDelay,\n            initialVotingPeriod,\n            initialProposalThreshold\n        )\n        GovernorPreventLateQuorum(initialVoteExtension)\n        GovernorTimelockControl(_timelock)\n    {\n        registry = _registry;\n        _updateQuorum(initialQuorum);\n    }\n\n    // The following functions are overrides required by Solidity.\n\n    /**\n     * Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes}).\n     */\n    function _getVotes(\n        address account,\n        uint256 blockNumber,\n        bytes memory /*params*/\n    ) internal view virtual override returns (uint256) {\n        return IVotes(registry.staker()).getPastVotes(account, blockNumber);\n    }\n\n    function votingDelay()\n        public\n        view\n        override(IGovernor, GovernorSettings)\n        returns (uint256)\n    {\n        return super.votingDelay();\n    }\n\n    function votingPeriod()\n        public\n        view\n        override(IGovernor, GovernorSettings)\n        returns (uint256)\n    {\n        return super.votingPeriod();\n    }\n\n    function proposalDeadline(uint256 proposalId)\n        public\n        view\n        override(IGovernor, Governor, GovernorPreventLateQuorum)\n        returns (uint256)\n    {\n        return super.proposalDeadline(proposalId);\n    }\n\n    function state(uint256 proposalId)\n        public\n        view\n        override(Governor, GovernorTimelockControl)\n        returns (ProposalState)\n    {\n        return super.state(proposalId);\n    }\n\n    function propose(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        string memory description\n    ) public override(IGovernor, Governor) returns (uint256) {\n        return super.propose(targets, values, calldatas, description);\n    }\n\n    function proposalThreshold()\n        public\n        view\n        override(Governor, GovernorSettings)\n        returns (uint256)\n    {\n        return super.proposalThreshold();\n    }\n\n    function _castVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        string memory reason,\n        bytes memory params\n    )\n        internal\n        virtual\n        override(Governor, GovernorPreventLateQuorum)\n        returns (uint256)\n    {\n        return super._castVote(proposalId, account, support, reason, params);\n    }\n\n    function _execute(\n        uint256 proposalId,\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal override(Governor, GovernorTimelockControl) {\n        super._execute(proposalId, targets, values, calldatas, descriptionHash);\n    }\n\n    function _cancel(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal override(Governor, GovernorTimelockControl) returns (uint256) {\n        return super._cancel(targets, values, calldatas, descriptionHash);\n    }\n\n    function _executor()\n        internal\n        view\n        override(Governor, GovernorTimelockControl)\n        returns (address)\n    {\n        return super._executor();\n    }\n\n    function supportsInterface(bytes4 interfaceId)\n        public\n        view\n        override(Governor, GovernorTimelockControl)\n        returns (bool)\n    {\n        return super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`.\n     */\n    function quorum(uint256 blockNumber)\n        public\n        view\n        override\n        returns (uint256)\n    {\n        return _quorum;\n    }\n\n    /**\n     * @dev Changes the quorum.\n     *\n     * Emits a {QuorumUpdated} event.\n     *\n     * Requirements:\n     *\n     * - Must be called through a governance proposal.\n     */\n    function updateQuorum(uint256 newQuorum) external virtual onlyGovernance {\n        _updateQuorum(newQuorum);\n    }\n\n    /**\n     * @dev Changes the quorum numerator.\n     *\n     * Emits a {QuorumUpdated} event.\n     */\n    function _updateQuorum(uint256 newQuorum) internal virtual {\n        uint256 oldQuorum = _quorum;\n        _quorum = newQuorum;\n        emit QuorumUpdated(oldQuorum, newQuorum);\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (governance/extensions/GovernorSettings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Governor.sol\";\n\n/**\n * @dev Extension of {Governor} for settings updatable through governance.\n *\n * _Available since v4.4._\n */\nabstract contract GovernorSettings is Governor {\n    uint256 private _votingDelay;\n    uint256 private _votingPeriod;\n    uint256 private _proposalThreshold;\n\n    event VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay);\n    event VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod);\n    event ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold);\n\n    /**\n     * @dev Initialize the governance parameters.\n     */\n    constructor(\n        uint256 initialVotingDelay,\n        uint256 initialVotingPeriod,\n        uint256 initialProposalThreshold\n    ) {\n        _setVotingDelay(initialVotingDelay);\n        _setVotingPeriod(initialVotingPeriod);\n        _setProposalThreshold(initialProposalThreshold);\n    }\n\n    /**\n     * @dev See {IGovernor-votingDelay}.\n     */\n    function votingDelay() public view virtual override returns (uint256) {\n        return _votingDelay;\n    }\n\n    /**\n     * @dev See {IGovernor-votingPeriod}.\n     */\n    function votingPeriod() public view virtual override returns (uint256) {\n        return _votingPeriod;\n    }\n\n    /**\n     * @dev See {Governor-proposalThreshold}.\n     */\n    function proposalThreshold() public view virtual override returns (uint256) {\n        return _proposalThreshold;\n    }\n\n    /**\n     * @dev Update the voting delay. This operation can only be performed through a governance proposal.\n     *\n     * Emits a {VotingDelaySet} event.\n     */\n    function setVotingDelay(uint256 newVotingDelay) public virtual onlyGovernance {\n        _setVotingDelay(newVotingDelay);\n    }\n\n    /**\n     * @dev Update the voting period. This operation can only be performed through a governance proposal.\n     *\n     * Emits a {VotingPeriodSet} event.\n     */\n    function setVotingPeriod(uint256 newVotingPeriod) public virtual onlyGovernance {\n        _setVotingPeriod(newVotingPeriod);\n    }\n\n    /**\n     * @dev Update the proposal threshold. This operation can only be performed through a governance proposal.\n     *\n     * Emits a {ProposalThresholdSet} event.\n     */\n    function setProposalThreshold(uint256 newProposalThreshold) public virtual onlyGovernance {\n        _setProposalThreshold(newProposalThreshold);\n    }\n\n    /**\n     * @dev Internal setter for the voting delay.\n     *\n     * Emits a {VotingDelaySet} event.\n     */\n    function _setVotingDelay(uint256 newVotingDelay) internal virtual {\n        emit VotingDelaySet(_votingDelay, newVotingDelay);\n        _votingDelay = newVotingDelay;\n    }\n\n    /**\n     * @dev Internal setter for the voting period.\n     *\n     * Emits a {VotingPeriodSet} event.\n     */\n    function _setVotingPeriod(uint256 newVotingPeriod) internal virtual {\n        // voting period must be at least one block long\n        require(newVotingPeriod > 0, \"GovernorSettings: voting period too low\");\n        emit VotingPeriodSet(_votingPeriod, newVotingPeriod);\n        _votingPeriod = newVotingPeriod;\n    }\n\n    /**\n     * @dev Internal setter for the proposal threshold.\n     *\n     * Emits a {ProposalThresholdSet} event.\n     */\n    function _setProposalThreshold(uint256 newProposalThreshold) internal virtual {\n        emit ProposalThresholdSet(_proposalThreshold, newProposalThreshold);\n        _proposalThreshold = newProposalThreshold;\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (governance/extensions/GovernorTimelockControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IGovernorTimelock.sol\";\nimport \"../Governor.sol\";\nimport \"../TimelockController.sol\";\n\n/**\n * @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a\n * delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The\n * {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly.\n *\n * Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus,\n * the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be\n * inaccessible.\n *\n * WARNING: Setting up the TimelockController to have additional proposers besides the governor is very risky, as it\n * grants them powers that they must be trusted or known not to use: 1) {onlyGovernance} functions like {relay} are\n * available to them through the timelock, and 2) approved governance proposals can be blocked by them, effectively\n * executing a Denial of Service attack. This risk will be mitigated in a future release.\n *\n * _Available since v4.3._\n */\nabstract contract GovernorTimelockControl is IGovernorTimelock, Governor {\n    TimelockController private _timelock;\n    mapping(uint256 => bytes32) private _timelockIds;\n\n    /**\n     * @dev Emitted when the timelock controller used for proposal execution is modified.\n     */\n    event TimelockChange(address oldTimelock, address newTimelock);\n\n    /**\n     * @dev Set the timelock.\n     */\n    constructor(TimelockController timelockAddress) {\n        _updateTimelock(timelockAddress);\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Governor) returns (bool) {\n        return interfaceId == type(IGovernorTimelock).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Overridden version of the {Governor-state} function with added support for the `Queued` status.\n     */\n    function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) {\n        ProposalState status = super.state(proposalId);\n\n        if (status != ProposalState.Succeeded) {\n            return status;\n        }\n\n        // core tracks execution, so we just have to check if successful proposal have been queued.\n        bytes32 queueid = _timelockIds[proposalId];\n        if (queueid == bytes32(0)) {\n            return status;\n        } else if (_timelock.isOperationDone(queueid)) {\n            return ProposalState.Executed;\n        } else if (_timelock.isOperationPending(queueid)) {\n            return ProposalState.Queued;\n        } else {\n            return ProposalState.Canceled;\n        }\n    }\n\n    /**\n     * @dev Public accessor to check the address of the timelock\n     */\n    function timelock() public view virtual override returns (address) {\n        return address(_timelock);\n    }\n\n    /**\n     * @dev Public accessor to check the eta of a queued proposal\n     */\n    function proposalEta(uint256 proposalId) public view virtual override returns (uint256) {\n        uint256 eta = _timelock.getTimestamp(_timelockIds[proposalId]);\n        return eta == 1 ? 0 : eta; // _DONE_TIMESTAMP (1) should be replaced with a 0 value\n    }\n\n    /**\n     * @dev Function to queue a proposal to the timelock.\n     */\n    function queue(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public virtual override returns (uint256) {\n        uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash);\n\n        require(state(proposalId) == ProposalState.Succeeded, \"Governor: proposal not successful\");\n\n        uint256 delay = _timelock.getMinDelay();\n        _timelockIds[proposalId] = _timelock.hashOperationBatch(targets, values, calldatas, 0, descriptionHash);\n        _timelock.scheduleBatch(targets, values, calldatas, 0, descriptionHash, delay);\n\n        emit ProposalQueued(proposalId, block.timestamp + delay);\n\n        return proposalId;\n    }\n\n    /**\n     * @dev Overridden execute function that run the already queued proposal through the timelock.\n     */\n    function _execute(\n        uint256, /* proposalId */\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal virtual override {\n        _timelock.executeBatch{value: msg.value}(targets, values, calldatas, 0, descriptionHash);\n    }\n\n    /**\n     * @dev Overridden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already\n     * been queued.\n     */\n    // This function can reenter through the external call to the timelock, but we assume the timelock is trusted and\n    // well behaved (according to TimelockController) and this will not happen.\n    // slither-disable-next-line reentrancy-no-eth\n    function _cancel(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal virtual override returns (uint256) {\n        uint256 proposalId = super._cancel(targets, values, calldatas, descriptionHash);\n\n        if (_timelockIds[proposalId] != 0) {\n            _timelock.cancel(_timelockIds[proposalId]);\n            delete _timelockIds[proposalId];\n        }\n\n        return proposalId;\n    }\n\n    /**\n     * @dev Address through which the governor executes action. In this case, the timelock.\n     */\n    function _executor() internal view virtual override returns (address) {\n        return address(_timelock);\n    }\n\n    /**\n     * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates\n     * must be proposed, scheduled, and executed through governance proposals.\n     *\n     * CAUTION: It is not recommended to change the timelock while there are other queued governance proposals.\n     */\n    function updateTimelock(TimelockController newTimelock) external virtual onlyGovernance {\n        _updateTimelock(newTimelock);\n    }\n\n    function _updateTimelock(TimelockController newTimelock) private {\n        emit TimelockChange(address(_timelock), address(newTimelock));\n        _timelock = newTimelock;\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (governance/extensions/GovernorCountingSimple.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Governor.sol\";\n\n/**\n * @dev Extension of {Governor} for simple, 3 options, vote counting.\n *\n * _Available since v4.3._\n */\nabstract contract GovernorCountingSimple is Governor {\n    /**\n     * @dev Supported vote types. Matches Governor Bravo ordering.\n     */\n    enum VoteType {\n        Against,\n        For,\n        Abstain\n    }\n\n    struct ProposalVote {\n        uint256 againstVotes;\n        uint256 forVotes;\n        uint256 abstainVotes;\n        mapping(address => bool) hasVoted;\n    }\n\n    mapping(uint256 => ProposalVote) private _proposalVotes;\n\n    /**\n     * @dev See {IGovernor-COUNTING_MODE}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function COUNTING_MODE() public pure virtual override returns (string memory) {\n        return \"support=bravo&quorum=for,abstain\";\n    }\n\n    /**\n     * @dev See {IGovernor-hasVoted}.\n     */\n    function hasVoted(uint256 proposalId, address account) public view virtual override returns (bool) {\n        return _proposalVotes[proposalId].hasVoted[account];\n    }\n\n    /**\n     * @dev Accessor to the internal vote counts.\n     */\n    function proposalVotes(uint256 proposalId)\n        public\n        view\n        virtual\n        returns (\n            uint256 againstVotes,\n            uint256 forVotes,\n            uint256 abstainVotes\n        )\n    {\n        ProposalVote storage proposalvote = _proposalVotes[proposalId];\n        return (proposalvote.againstVotes, proposalvote.forVotes, proposalvote.abstainVotes);\n    }\n\n    /**\n     * @dev See {Governor-_quorumReached}.\n     */\n    function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) {\n        ProposalVote storage proposalvote = _proposalVotes[proposalId];\n\n        return quorum(proposalSnapshot(proposalId)) <= proposalvote.forVotes + proposalvote.abstainVotes;\n    }\n\n    /**\n     * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes.\n     */\n    function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) {\n        ProposalVote storage proposalvote = _proposalVotes[proposalId];\n\n        return proposalvote.forVotes > proposalvote.againstVotes;\n    }\n\n    /**\n     * @dev See {Governor-_countVote}. In this module, the support follows the `VoteType` enum (from Governor Bravo).\n     */\n    function _countVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        uint256 weight,\n        bytes memory // params\n    ) internal virtual override {\n        ProposalVote storage proposalvote = _proposalVotes[proposalId];\n\n        require(!proposalvote.hasVoted[account], \"GovernorVotingSimple: vote already cast\");\n        proposalvote.hasVoted[account] = true;\n\n        if (support == uint8(VoteType.Against)) {\n            proposalvote.againstVotes += weight;\n        } else if (support == uint8(VoteType.For)) {\n            proposalvote.forVotes += weight;\n        } else if (support == uint8(VoteType.Abstain)) {\n            proposalvote.abstainVotes += weight;\n        } else {\n            revert(\"GovernorVotingSimple: invalid value for enum VoteType\");\n        }\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (governance/extensions/IGovernorTimelock.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IGovernor.sol\";\n\n/**\n * @dev Extension of the {IGovernor} for timelock supporting modules.\n *\n * _Available since v4.3._\n */\nabstract contract IGovernorTimelock is IGovernor {\n    event ProposalQueued(uint256 proposalId, uint256 eta);\n\n    function timelock() public view virtual returns (address);\n\n    function proposalEta(uint256 proposalId) public view virtual returns (uint256);\n\n    function queue(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public virtual returns (uint256 proposalId);\n}\n"},"contracts/MAHAXVetoGovernor.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IGovernor, Governor} from \"@openzeppelin/contracts/governance/Governor.sol\";\nimport {GovernorSettings} from \"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\";\nimport {GovernorCountingSimple} from \"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\";\nimport {IVotes} from \"@openzeppelin/contracts/governance/utils/IVotes.sol\";\nimport {IRegistry} from \"./interfaces/IRegistry.sol\";\n\n/// @custom:security-contact security@mahadao.com\ncontract MAHAXVetoGovernor is\n    Governor,\n    GovernorSettings,\n    GovernorCountingSimple\n{\n    IRegistry public immutable registry;\n    uint256 private _quorum;\n\n    event QuorumUpdated(uint256 oldQuorum, uint256 newQuorum);\n\n    constructor(\n        IRegistry _registry,\n        uint256 _initialVotingDelay,\n        uint256 _initialVotingPeriod,\n        uint256 _initialProposalThreshold,\n        uint256 __quorum\n    )\n        Governor(\"MAHAXVetoGovernor\")\n        GovernorSettings(\n            _initialVotingDelay,\n            _initialVotingPeriod,\n            _initialProposalThreshold\n        )\n    {\n        registry = _registry;\n        _updateQuorum(__quorum);\n    }\n\n    /**\n     * Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes}).\n     */\n    function _getVotes(\n        address account,\n        uint256 blockNumber,\n        bytes memory /*params*/\n    ) internal view virtual override returns (uint256) {\n        return IVotes(registry.staker()).getPastVotes(account, blockNumber);\n    }\n\n    function votingDelay()\n        public\n        view\n        override(IGovernor, GovernorSettings)\n        returns (uint256)\n    {\n        return super.votingDelay();\n    }\n\n    function votingPeriod()\n        public\n        view\n        override(IGovernor, GovernorSettings)\n        returns (uint256)\n    {\n        return super.votingPeriod();\n    }\n\n    function proposalThreshold()\n        public\n        view\n        override(Governor, GovernorSettings)\n        returns (uint256)\n    {\n        return super.proposalThreshold();\n    }\n\n    /**\n     * @dev Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`.\n     */\n    function quorum(uint256 blockNumber)\n        public\n        view\n        override\n        returns (uint256)\n    {\n        return _quorum;\n    }\n\n    /**\n     * @dev Changes the quorum.\n     *\n     * Emits a {QuorumUpdated} event.\n     *\n     * Requirements:\n     *\n     * - Must be called through a governance proposal.\n     */\n    function updateQuorum(uint256 newQuorum) external virtual onlyGovernance {\n        _updateQuorum(newQuorum);\n    }\n\n    /**\n     * @dev Changes the quorum numerator.\n     *\n     * Emits a {QuorumUpdated} event.\n     */\n    function _updateQuorum(uint256 newQuorum) internal virtual {\n        uint256 oldQuorum = _quorum;\n        _quorum = newQuorum;\n        emit QuorumUpdated(oldQuorum, newQuorum);\n    }\n}\n"},"contracts/gauges/uniswapv3/BaseGaugeV3UniV3.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IGovernorTimelock} from \"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\";\nimport {INonfungiblePositionManager} from \"../../interfaces/INonfungiblePositionManager.sol\";\nimport {UniswapV3Base, StakingRewardsV3} from \"./StakingRewardsV3.sol\";\n\ncontract BaseGaugeV3UniV3 is StakingRewardsV3 {\n    /// @dev is the contract in emergency mode? if so then allow for NFTs to be withdrawn without much checks.\n    bool public inEmergency;\n\n    // constructor(\n    //     address _token0,\n    //     address _token1,\n    //     uint24 _fee,\n    //     address _registry,\n    //     INonfungiblePositionManager _nonfungiblePositionManager\n    // )\n    //     UniswapV3Base(\n    //         _token0,\n    //         _token1,\n    //         _fee,\n    //         _registry,\n    //         _nonfungiblePositionManager\n    //     )\n    // {}\n\n    function onERC721Received(\n        address,\n        address _from,\n        uint256 _tokenId,\n        bytes calldata\n    ) external returns (bytes4) {\n        require(inEmergency, \"not in emergency mode\");\n        _onERC721Received(_from, _tokenId);\n        return this.onERC721Received.selector;\n    }\n\n    function withdrawViaEmergency(uint256 tokenId)\n        external\n        nonReentrant\n        onlyTokenOwner(tokenId)\n    {\n        require(inEmergency, \"not in emergency mode\");\n        require(deposits[tokenId].liquidity != 0, \"stake does not exist\");\n\n        delete deposits[tokenId];\n        emit Withdrawn(msg.sender, tokenId);\n\n        nonfungiblePositionManager.safeTransferFrom(\n            address(this),\n            msg.sender,\n            tokenId\n        );\n    }\n\n    function enableEmergencyMode() external onlyTimelock {\n        require(!inEmergency, \"already in emergency mode\");\n        inEmergency = true;\n        rewardsToken.transfer(\n            msg.sender,\n            rewardsToken.balanceOf(address(this))\n        );\n\n        emit EmergencyModeEnabled();\n    }\n\n    /// @dev in case admin needs to execute some calls directly\n    function emergencyCall(address target, bytes memory signature)\n        external\n        onlyTimelock\n    {\n        require(inEmergency, \"not in emergency mode\");\n        (bool success, bytes memory response) = target.call(signature);\n        require(success, string(response));\n    }\n\n    modifier onlyTimelock() {\n        require(\n            msg.sender == IGovernorTimelock(registry.governor()).timelock(),\n            \"not timelock\"\n        );\n        _;\n    }\n}\n"},"contracts/gauges/uniswapv3/StakingRewardsV3.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IUniswapV3Pool} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {SafeMath} from \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\n\nimport {NFTPositionInfo} from \"../../utils/NFTPositionInfo.sol\";\nimport {IGaugeVoterV2} from \"../../interfaces/IGaugeVoterV2.sol\";\nimport {IGauge} from \"../../interfaces/IGauge.sol\";\nimport {UniswapV3Base} from \"./UniswapV3Base.sol\";\nimport {INFTStaker} from \"../../interfaces/INFTStaker.sol\";\n\nabstract contract StakingRewardsV3 is UniswapV3Base {\n    using SafeMath for uint256;\n    using SafeMath for uint128;\n\n    function derivedLiquidity(uint128 _liquidity, address account)\n        public\n        view\n        returns (uint128)\n    {\n        uint128 _derived = (_liquidity * 20) / 100;\n        uint256 stake = INFTStaker(registry.staker()).balanceOf(account);\n\n        uint128 _adjusted = ((_liquidity * uint128(stake) * 80) /\n            uint128(maxBoostRequirement)) / 100;\n\n        // because of this we are able to max out the boost by 5x\n        return\n            _derived + _adjusted < _liquidity\n                ? _derived + _adjusted\n                : _liquidity;\n    }\n\n    /* ========== MUTATIVE FUNCTIONS ========== */\n\n    function withdraw(uint256 tokenId)\n        public\n        nonReentrant\n        updateReward(tokenId)\n        onlyTokenOwner(tokenId)\n    {\n        require(deposits[tokenId].liquidity > 0, \"Cannot withdraw 0\");\n\n        totalSupply = totalSupply.sub(deposits[tokenId].derivedLiquidity);\n        delete deposits[tokenId];\n\n        // delete the nft from our array\n        _removeTokenFromOwnerEnumeration(msg.sender, tokenId);\n        _removeTokenFromAllTokensEnumeration(tokenId);\n        balanceOf[msg.sender] -= 1;\n\n        nonfungiblePositionManager.safeTransferFrom(\n            address(this),\n            msg.sender,\n            tokenId\n        );\n\n        if (balanceOf[msg.sender] == 0 && attached[msg.sender]) {\n            attached[msg.sender] = false;\n            IGaugeVoterV2(registry.gaugeVoter()).detachStakerFromGauge(\n                msg.sender\n            );\n        }\n\n        emit Withdrawn(msg.sender, tokenId);\n    }\n\n    function getReward(uint256 _tokenId)\n        public\n        nonReentrant\n        updateReward(_tokenId)\n        onlyTokenOwner(_tokenId)\n    {\n        uint256 reward = rewards[_tokenId];\n        if (reward > 0) {\n            rewards[_tokenId] = 0;\n            rewardsToken.transfer(deposits[_tokenId].owner, reward);\n            emit RewardPaid(deposits[_tokenId].owner, _tokenId, reward);\n        }\n    }\n\n    function getReward(address account, address[] memory)\n        external\n        override\n        nonReentrant\n    {\n        for (uint256 index = 0; index < balanceOf[account]; index++) {\n            uint256 tokenId = _ownedTokens[account][index];\n            getReward(tokenId);\n        }\n    }\n\n    function exit(uint256 _tokenId) external {\n        withdraw(_tokenId);\n        getReward(_tokenId);\n    }\n\n    /// @notice Upon receiving a Uniswap V3 ERC721, creates the token deposit setting owner to `from`. Also stakes token\n    /// in one or more incentives if properly formatted `data` has a length > 0.\n    function _onERC721Received(address _from, uint256 _tokenId)\n        internal\n        updateReward(_tokenId)\n    {\n        require(\n            msg.sender == address(nonfungiblePositionManager),\n            \"not called from nft manager\"\n        );\n        (\n            IUniswapV3Pool _pool,\n            bool inRange,\n            uint128 liquidity\n        ) = _getLiquidityAndInRange(_tokenId);\n\n        require(\n            address(_pool) == address(pool),\n            \"token pool is not the right pool\"\n        );\n        require(inRange, \"liquidty not in range\");\n        require(liquidity > 0, \"cannot stake 0 liquidity\");\n\n        uint128 _derivedLiquidity = derivedLiquidity(liquidity, _from);\n\n        deposits[_tokenId] = Deposit({\n            owner: _from,\n            liquidity: liquidity,\n            derivedLiquidity: _derivedLiquidity\n        });\n\n        _addTokenToAllTokensEnumeration(_tokenId);\n        _addTokenToOwnerEnumeration(_from, _tokenId);\n\n        balanceOf[_from] += 1;\n        totalSupply = totalSupply.add(_derivedLiquidity);\n\n        if (!attached[_from]) {\n            attached[_from] = true;\n            IGaugeVoterV2(registry.gaugeVoter()).attachStakerToGauge(_from);\n        }\n\n        emit Staked(msg.sender, _tokenId, liquidity, _derivedLiquidity);\n    }\n\n    /* ========== RESTRICTED FUNCTIONS ========== */\n\n    function notifyRewardAmount(address, uint256 reward)\n        external\n        override\n        updateReward(0)\n    {\n        require(msg.sender == registry.gaugeVoter(), \"not gauge voter\");\n\n        if (block.timestamp >= periodFinish)\n            rewardRate = reward.div(rewardsDuration);\n        else {\n            uint256 remaining = periodFinish.sub(block.timestamp);\n            uint256 leftover = remaining.mul(rewardRate);\n            rewardRate = reward.add(leftover).div(rewardsDuration);\n        }\n\n        // Ensure the provided reward amount is not more than the balance in the contract.\n        // This keeps the reward rate in the right range, preventing overflows due to\n        // very high values of rewardRate in the earned and rewardsPerToken functions;\n        // Reward + leftover must be less than 2^256 / 10^18 to avoid overflow.\n        uint256 balance = rewardsToken.balanceOf(address(this));\n        require(\n            rewardRate <= balance.div(rewardsDuration),\n            \"Provided reward too high\"\n        );\n\n        lastUpdateTime = block.timestamp;\n        periodFinish = block.timestamp.add(rewardsDuration);\n        emit RewardAdded(reward);\n    }\n\n    function _updateLiquidity(uint256 _tokenId) private {\n        (, , , uint128 _liquidity) = NFTPositionInfo.getPositionInfo(\n            factory,\n            nonfungiblePositionManager,\n            _tokenId\n        );\n\n        if (_liquidity == deposits[_tokenId].liquidity) return;\n\n        address _who = deposits[_tokenId].owner;\n        uint128 _derivedLiquidity = derivedLiquidity(_liquidity, _who);\n\n        // remove old, add new derived liquidity\n        totalSupply = totalSupply.add(_derivedLiquidity).sub(\n            deposits[_tokenId].derivedLiquidity\n        );\n\n        deposits[_tokenId].liquidity = _liquidity;\n        deposits[_tokenId].derivedLiquidity = _derivedLiquidity;\n    }\n\n    function _getLiquidityAndInRange(uint256 _tokenId)\n        private\n        view\n        returns (\n            IUniswapV3Pool pool,\n            bool inRange,\n            uint128 liquidity\n        )\n    {\n        (\n            IUniswapV3Pool _pool,\n            int24 _tickLower,\n            int24 _tickUpper,\n            uint128 _liquidity\n        ) = NFTPositionInfo.getPositionInfo(\n                factory,\n                nonfungiblePositionManager,\n                _tokenId\n            );\n\n        (, int24 tick, , , , , ) = _pool.slot0();\n\n        pool = _pool;\n        inRange = _tickLower <= tick && tick >= _tickUpper;\n        liquidity = _liquidity;\n    }\n\n    /* ========== MODIFIERS ========== */\n\n    function _updateReward(uint256 _tokenId) private {\n        rewardPerTokenStored = rewardPerToken();\n        lastUpdateTime = lastTimeRewardApplicable();\n        if (_tokenId != 0) {\n            rewards[_tokenId] = earned(_tokenId);\n            userRewardPerTokenPaid[_tokenId] = rewardPerTokenStored;\n            _updateLiquidity(_tokenId);\n        }\n    }\n\n    modifier updateReward(uint256 _tokenId) {\n        _updateReward(_tokenId);\n        _;\n    }\n\n    function updateRewardFor(uint256 _tokenId) external {\n        require(deposits[_tokenId].liquidity > 0, \"liquidity is 0\");\n        _updateReward(_tokenId);\n    }\n}\n"},"contracts/utils/NFTPositionInfo.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity ^0.8.0;\n\nimport {INonfungiblePositionManager} from \"../interfaces/INonfungiblePositionManager.sol\";\nimport {IUniswapV3Factory} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\";\nimport {IUniswapV3Pool} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\";\n\n/// @notice Encapsulates the logic for getting info about a NFT token ID\nlibrary NFTPositionInfo {\n    /// @param factory The address of the Uniswap V3 Factory used in computing the pool address\n    /// @param nonfungiblePositionManager The address of the nonfungible position manager to query\n    /// @param tokenId The unique identifier of an Uniswap V3 LP token\n    /// @return pool The address of the Uniswap V3 pool\n    /// @return tickLower The lower tick of the Uniswap V3 position\n    /// @return tickUpper The upper tick of the Uniswap V3 position\n    /// @return liquidity The amount of liquidity staked\n    function getPositionInfo(\n        IUniswapV3Factory factory,\n        INonfungiblePositionManager nonfungiblePositionManager,\n        uint256 tokenId\n    )\n        internal\n        view\n        returns (\n            IUniswapV3Pool pool,\n            int24 tickLower,\n            int24 tickUpper,\n            uint128 liquidity\n        )\n    {\n        address token0;\n        address token1;\n        uint24 fee;\n        (\n            ,\n            ,\n            token0,\n            token1,\n            fee,\n            tickLower,\n            tickUpper,\n            liquidity,\n            ,\n            ,\n            ,\n\n        ) = nonfungiblePositionManager.positions(tokenId);\n\n        pool = IUniswapV3Pool(factory.getPool(token0, token1, fee));\n    }\n}\n"},"contracts/interfaces/IUniswapV3Staker.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\";\n\nimport \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\";\nimport \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport \"./INonfungiblePositionManager.sol\";\nimport \"./IMulticall.sol\";\n\ninterface IUniswapV3Staker is IERC721Receiver, IMulticall {\n    /// @notice The Uniswap V3 Factory\n    function factory() external view returns (IUniswapV3Factory);\n\n    /**\n     * @dev Returns the total amount of tokens stored by the contract.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n     * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n     */\n    function tokenOfOwnerByIndex(address owner, uint256 index)\n        external\n        view\n        returns (uint256);\n\n    /**\n     * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n     * Use along with {totalSupply} to enumerate all tokens.\n     */\n    function tokenByIndex(uint256 index) external view returns (uint256);\n\n    /// @notice The nonfungible position manager with which this staking contract is compatible\n    function nonfungiblePositionManager()\n        external\n        view\n        returns (INonfungiblePositionManager);\n\n    /// @notice Represents a staking incentive\n    /// @return totalRewardUnclaimed The amount of reward token not yet claimed by users\n    /// @return totalSecondsClaimedX128 Total liquidity-seconds claimed, represented as a UQ32.128\n    function incentives()\n        external\n        view\n        returns (uint256 totalRewardUnclaimed, uint160 totalSecondsClaimedX128);\n\n    /// @notice Returns information about a deposited NFT\n    /// @return owner The owner of the deposited NFT\n    /// @return tickLower The lower tick of the range\n    /// @return tickUpper The upper tick of the range\n    function deposits(uint256 tokenId)\n        external\n        view\n        returns (\n            address owner,\n            int24 tickLower,\n            int24 tickUpper\n        );\n\n    /// @notice Returns information about a deposited NFT\n    /// @param depositOwner The owner of the deposited NFT\n    /// @return uint256 The current no of nfts deposited by owner.\n    function balanceOf(address depositOwner) external view returns (uint256);\n\n    /// @notice Returns information about a staked liquidity NFT\n    /// @param tokenId The ID of the staked token\n    /// @return secondsPerLiquidityInsideInitialX128 secondsPerLiquidity represented as a UQ32.128\n    /// @return liquidity The amount of liquidity in the NFT as of the last time the rewards were computed\n    function stakes(uint256 tokenId)\n        external\n        view\n        returns (\n            uint160 secondsPerLiquidityInsideInitialX128,\n            uint128 liquidity\n        );\n\n    /// @notice Returns amounts of reward tokens owed to a given address according to the last time all stakes were updated\n    /// @param owner The owner for which the rewards owed are checked\n    /// @return rewardsOwed The amount of the reward token claimable by the owner\n    function rewards(address owner) external view returns (uint256 rewardsOwed);\n\n    /// @notice checks if the given LP token ids are within their given liquidaty range or not\n    function isIdsWithinRange(uint256[] memory tokenIds)\n        external\n        view\n        returns (bool[] memory);\n\n    function left(address token) external view returns (uint256);\n\n    /// @notice Creates a new liquidity mining incentive program\n    /// @param reward The amount of reward tokens to be distributed\n    function notifyRewardAmount(address token, uint256 reward) external;\n\n    /// @notice Withdraws a Uniswap V3 LP token `tokenId` from this contract to the recipient `to`\n    /// @param tokenId The ID of the token\n    function withdrawToken(uint256 tokenId) external;\n\n    /// @param to The address where claimed rewards will be sent to\n    /// @param tokenId The ID of the token\n    /// @return reward The amount of reward tokens claimed\n    function claimReward(uint256 tokenId, address to)\n        external\n        returns (uint256 reward);\n\n    /// @param to The address where claimed rewards will be sent to\n    /// @param tokenIds The IDs of the token\n    /// @return reward The amount of reward tokens claimed\n    function claimRewards(uint256[] memory tokenIds, address to)\n        external\n        returns (uint256 reward);\n\n    /// @notice Event emitted when a liquidity mining incentive has been created\n    /// @param pool The Uniswap V3 pool\n    /// @param startTime The time when the incentive program begins\n    /// @param endTime The time when rewards stop accruing\n    /// @param reward The amount of reward tokens to be distributed\n    event IncentiveCreated(\n        IUniswapV3Pool indexed pool,\n        uint256 startTime,\n        uint256 endTime,\n        uint256 reward\n    );\n\n    /// @notice Event emitted when a Uniswap V3 LP token has been staked\n    /// @param tokenId The unique identifier of an Uniswap V3 LP token\n    /// @param liquidity The amount of liquidity staked\n    event TokenStaked(uint256 indexed tokenId, uint128 liquidity);\n\n    /// @notice Event emitted when a Uniswap V3 LP token has been unstaked\n    /// @param tokenId The unique identifier of an Uniswap V3 LP token\n    event TokenUnstaked(uint256 indexed tokenId);\n\n    /// @notice Event emitted when a reward token has been claimed\n    /// @param to The address where claimed rewards were sent to\n    /// @param reward The amount of reward tokens claimed\n    event RewardClaimed(address indexed to, uint256 reward);\n}\n"},"contracts/interfaces/IMulticall.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\n/// @title Multicall interface\n/// @notice Enables calling multiple methods in a single call to the contract\ninterface IMulticall {\n    /// @notice Call multiple functions in the current contract and return the data from all of them if they all succeed\n    /// @dev The `msg.value` should not be trusted for any method callable from multicall.\n    /// @param data The encoded function data for each of the calls to make to this contract\n    /// @return results The results from each of the calls passed in via data\n    function multicall(bytes[] calldata data) external payable returns (bytes[] memory results);\n}\n"},"contracts/utils/IncentiveId.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../interfaces/IUniswapV3Staker.sol\";\n\nlibrary IncentiveId {\n    // /// @notice Calculate the key for a staking incentive\n    // /// @param key The components used to compute the incentive identifier\n    // /// @return incentiveId The identifier for the incentive\n    // function compute(IUniswapV3Staker.IncentiveKey memory key) internal pure returns (bytes32 incentiveId) {\n    //     return keccak256(abi.encode(key));\n    // }\n}\n"},"contracts/utils/Multicall.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport '../interfaces/IMulticall.sol';\n\n/// @title Multicall\n/// @notice Enables calling multiple methods in a single call to the contract\nabstract contract Multicall is IMulticall {\n    /// @inheritdoc IMulticall\n    function multicall(bytes[] calldata data) public payable override returns (bytes[] memory results) {\n        results = new bytes[](data.length);\n        for (uint256 i = 0; i < data.length; i++) {\n            (bool success, bytes memory result) = address(this).delegatecall(data[i]);\n\n            if (!success) {\n                // Next 5 lines from https://ethereum.stackexchange.com/a/83577\n                if (result.length < 68) revert();\n                assembly {\n                    result := add(result, 0x04)\n                }\n                revert(abi.decode(result, (string)));\n            }\n\n            results[i] = result;\n        }\n    }\n}\n"},"contracts/gauges/BaseGaugeV2UniV3.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport {IUniswapV3Factory} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\";\nimport {IUniswapV3Pool} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\n\nimport {RewardMath} from \"../utils/RewardMath.sol\";\nimport {INonfungiblePositionManager} from \"../interfaces/INonfungiblePositionManager.sol\";\nimport {IGaugeV2UniV3} from \"../interfaces/IGaugeV2UniV3.sol\";\nimport {IRegistry} from \"../interfaces/IRegistry.sol\";\nimport {NFTPositionInfo} from \"../utils/NFTPositionInfo.sol\";\nimport {Multicall} from \"../utils/Multicall.sol\";\nimport {TransferHelperExtended} from \"../utils/TransferHelperExtended.sol\";\nimport {PoolAddress} from \"../utils/PoolAddress.sol\";\nimport {IUniswapV3Staker} from \"../interfaces/IUniswapV3Staker.sol\";\nimport {INFTStaker} from \"../interfaces/INFTStaker.sol\";\n\n/// @title Uniswap V3 canonical staking interface\ncontract BaseGaugeV2UniV3 is\n    IGaugeV2UniV3,\n    IUniswapV3Staker,\n    Multicall,\n    ReentrancyGuard\n{\n    IRegistry public immutable override registry;\n    IUniswapV3Pool public immutable pool;\n\n    uint256 public totalRewardUnclaimed;\n    uint160 public totalSecondsClaimedX128;\n    uint256 public startTime;\n    uint256 public endTime;\n    uint256 public maxBoostRequirement;\n    bool public inEmergency;\n    address public timelock;\n    uint256 public constant DURATION = 7 days; // rewards are released over 7 days\n\n    /// @notice Represents the deposit of a liquidity NFT\n    struct Deposit {\n        address owner;\n        int24 tickLower;\n        int24 tickUpper;\n    }\n\n    /// @notice Represents a staked liquidity NFT\n    struct Stake {\n        uint160 secondsPerLiquidityInsideInitialX128;\n        uint96 liquidityNoOverflow;\n        uint128 liquidityIfOverflow;\n        uint128 nonDerivedLiquidity;\n    }\n\n    /// @inheritdoc IUniswapV3Staker\n    IUniswapV3Factory public override factory;\n\n    /// @inheritdoc IUniswapV3Staker\n    INonfungiblePositionManager public override nonfungiblePositionManager;\n\n    /// @dev deposits[tokenId] => Deposit\n    mapping(uint256 => Deposit) public override deposits;\n\n    /// @dev stakes[tokenId] => Stake\n    mapping(uint256 => Stake) private _stakes;\n\n    uint256 public totalLiquiditySupply;\n\n    /// @dev rewards[owner] => uint256\n    /// @inheritdoc IUniswapV3Staker\n    mapping(address => uint256) public override rewards;\n\n    mapping(address => uint256) public override balanceOf;\n\n    /// @dev Mapping from owner to list of owned token IDs\n    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\n\n    /// @dev Mapping from token ID to index of the owner tokens list\n    mapping(uint256 => uint256) private _ownedTokensIndex;\n\n    /// @dev Array with all token ids, used for enumeration\n    uint256[] private _allTokens;\n\n    /// @dev Mapping from token id to position in the allTokens array\n    mapping(uint256 => uint256) private _allTokensIndex;\n\n    /// @param _nonfungiblePositionManager the NFT position manager contract address\n    constructor(\n        address token0,\n        address token1,\n        uint24 fee,\n        address _registry,\n        address _timelock,\n        INonfungiblePositionManager _nonfungiblePositionManager\n    ) {\n        registry = IRegistry(_registry);\n        nonfungiblePositionManager = _nonfungiblePositionManager;\n\n        factory = IUniswapV3Factory(nonfungiblePositionManager.factory());\n        address _pool = factory.getPool(token0, token1, fee);\n        require(_pool != address(0), \"pool doesn't exist\");\n\n        pool = IUniswapV3Pool(_pool);\n        timelock = _timelock;\n\n        startTime = block.timestamp;\n    }\n\n    /// @inheritdoc IUniswapV3Staker\n    function stakes(uint256 tokenId)\n        public\n        view\n        override\n        returns (\n            uint160 secondsPerLiquidityInsideInitialX128,\n            uint128 liquidity\n        )\n    {\n        Stake storage stake = _stakes[tokenId];\n        secondsPerLiquidityInsideInitialX128 = stake\n            .secondsPerLiquidityInsideInitialX128;\n        liquidity = stake.liquidityNoOverflow;\n        if (liquidity == type(uint96).max)\n            liquidity = stake.liquidityIfOverflow;\n    }\n\n    /// @notice Upon receiving a Uniswap V3 ERC721, creates the token deposit setting owner to `from`. Also stakes token\n    /// in one or more incentives if properly formatted `data` has a length > 0.\n    function onERC721Received(\n        address,\n        address from,\n        uint256 tokenId,\n        bytes calldata\n    ) external override returns (bytes4) {\n        require(!inEmergency, \"in emergency mode\");\n        require(\n            msg.sender == address(nonfungiblePositionManager),\n            \"UniswapV3Staker::onERC721Received: not a univ3 nft\"\n        );\n\n        (\n            IUniswapV3Pool _pool,\n            int24 tickLower,\n            int24 tickUpper,\n            uint128 _liquidity\n        ) = NFTPositionInfo.getPositionInfo(\n                factory,\n                nonfungiblePositionManager,\n                tokenId\n            );\n\n        deposits[tokenId] = Deposit({\n            owner: from,\n            tickLower: tickLower,\n            tickUpper: tickUpper\n        });\n\n        require(\n            _pool == pool,\n            \"UniswapV3Staker::stakeToken: token pool is not the right pool\"\n        );\n        require(\n            _liquidity > 0,\n            \"UniswapV3Staker::stakeToken: cannot stake token with 0 liquidity\"\n        );\n\n        totalLiquiditySupply += uint256(_liquidity);\n        uint128 liquidity = uint128(derivedLiquidity(_liquidity, from));\n\n        (, uint160 secondsPerLiquidityInsideX128, ) = _pool\n            .snapshotCumulativesInside(tickLower, tickUpper);\n\n        if (liquidity >= type(uint96).max) {\n            _stakes[tokenId] = Stake({\n                secondsPerLiquidityInsideInitialX128: secondsPerLiquidityInsideX128,\n                liquidityNoOverflow: type(uint96).max,\n                liquidityIfOverflow: liquidity,\n                nonDerivedLiquidity: _liquidity\n            });\n        } else {\n            _stakes[tokenId] = Stake({\n                secondsPerLiquidityInsideInitialX128: secondsPerLiquidityInsideX128,\n                liquidityNoOverflow: uint96(liquidity),\n                liquidityIfOverflow: 0,\n                nonDerivedLiquidity: _liquidity\n            });\n        }\n\n        _addTokenToAllTokensEnumeration(tokenId);\n        _addTokenToOwnerEnumeration(from, tokenId);\n        balanceOf[from] += 1;\n\n        emit TokenStaked(tokenId, _liquidity);\n        return this.onERC721Received.selector;\n    }\n\n    /// @inheritdoc IUniswapV3Staker\n    function withdrawToken(uint256 tokenId) external override {\n        require(!inEmergency, \"in emergency mode\");\n\n        // try to update rewards\n        _updateReward(tokenId);\n\n        totalLiquiditySupply -= uint256(_stakes[tokenId].nonDerivedLiquidity);\n\n        require(\n            deposits[tokenId].owner == msg.sender,\n            \"UniswapV3Staker::withdrawToken: only owner can withdraw token\"\n        );\n\n        delete deposits[tokenId];\n        delete _stakes[tokenId];\n\n        _removeTokenFromOwnerEnumeration(msg.sender, tokenId);\n        _removeTokenFromAllTokensEnumeration(tokenId);\n        balanceOf[msg.sender] -= 1;\n\n        emit TokenUnstaked(tokenId);\n\n        nonfungiblePositionManager.safeTransferFrom(\n            address(this),\n            msg.sender,\n            tokenId\n        );\n    }\n\n    function withdrawViaEmergency(uint256 tokenId) external {\n        require(inEmergency, \"not in emergency mode\");\n        require(\n            deposits[tokenId].owner == msg.sender,\n            \"UniswapV3Staker::withdrawToken: only owner can withdraw token\"\n        );\n\n        (, uint128 liquidity) = stakes(tokenId);\n        require(\n            liquidity != 0,\n            \"UniswapV3Staker::unstakeToken: stake does not exist\"\n        );\n\n        delete deposits[tokenId];\n        delete _stakes[tokenId];\n\n        _removeTokenFromOwnerEnumeration(msg.sender, tokenId);\n        _removeTokenFromAllTokensEnumeration(tokenId);\n        balanceOf[msg.sender] -= 1;\n\n        emit TokenUnstaked(tokenId);\n\n        nonfungiblePositionManager.safeTransferFrom(\n            address(this),\n            msg.sender,\n            tokenId\n        );\n    }\n\n    function enableEmergencyMode() external {\n        require(msg.sender == timelock, \"not timelock\");\n        require(!inEmergency, \"already in emergency mode\");\n\n        inEmergency = true;\n        TransferHelperExtended.safeTransfer(\n            registry.maha(),\n            msg.sender,\n            IERC20(registry.maha()).balanceOf(address(this))\n        );\n    }\n\n    function _updateReward(uint256 tokenId) internal {\n        Deposit memory deposit = deposits[tokenId];\n\n        (\n            uint160 secondsPerLiquidityInsideInitialX128,\n            uint128 liquidity\n        ) = stakes(tokenId);\n\n        require(\n            liquidity != 0,\n            \"UniswapV3Staker::unstakeToken: stake does not exist\"\n        );\n\n        (, uint160 secondsPerLiquidityInsideX128, ) = pool\n            .snapshotCumulativesInside(deposit.tickLower, deposit.tickUpper);\n\n        (uint256 reward, uint160 secondsInsideX128) = RewardMath\n            .computeRewardAmount(\n                totalRewardUnclaimed,\n                totalSecondsClaimedX128,\n                startTime,\n                endTime,\n                liquidity,\n                secondsPerLiquidityInsideInitialX128,\n                secondsPerLiquidityInsideX128,\n                block.timestamp\n            );\n\n        // if this overflows, e.g. after 2^32-1 full liquidity seconds have been claimed,\n        // reward rate will fall drastically so it's safe\n        totalSecondsClaimedX128 += secondsInsideX128;\n        // reward is never greater than total reward unclaimed\n        totalRewardUnclaimed -= reward;\n        // this only overflows if a token has a total supply greater than type(uint256).max\n        rewards[deposit.owner] += reward;\n    }\n\n    function _claimReward(uint256 tokenId, address to)\n        internal\n        returns (uint256)\n    {\n        require(!inEmergency, \"in emergency mode\");\n\n        _updateReward(tokenId);\n        uint256 reward = rewards[msg.sender];\n        rewards[msg.sender] -= reward;\n        TransferHelperExtended.safeTransfer(registry.maha(), to, reward);\n        emit RewardClaimed(to, reward);\n        return reward;\n    }\n\n    /// @inheritdoc IUniswapV3Staker\n    function claimRewards(uint256[] memory tokenIds, address to)\n        external\n        override\n        returns (uint256)\n    {\n        uint256 reward;\n        for (uint256 index = 0; index < tokenIds.length; index++) {\n            reward += _claimReward(tokenIds[index], to);\n        }\n        return reward;\n    }\n\n    function claimReward(uint256 tokenId, address to)\n        external\n        override\n        returns (uint256)\n    {\n        return _claimReward(tokenId, to);\n    }\n\n    function derivedLiquidity(uint256 liquidity, address account)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 _derived = (liquidity * 20) / 100;\n        uint256 stake = INFTStaker(registry.staker()).balanceOf(account);\n\n        uint256 _adjusted = ((liquidity * stake * 80) / maxBoostRequirement) /\n            100;\n\n        // because of this we are able to max out the boost by 5x\n        return Math.min(_derived + _adjusted, liquidity);\n    }\n\n    function boostedFactor(uint256 tokenId, address who)\n        public\n        view\n        returns (\n            uint256 original,\n            uint256 boosted,\n            uint256 factor\n        )\n    {\n        (, , , uint128 _liquidity) = NFTPositionInfo.getPositionInfo(\n            factory,\n            nonfungiblePositionManager,\n            tokenId\n        );\n\n        original = (_liquidity * 20) / 100;\n        boosted = derivedLiquidity(_liquidity, who);\n        factor = (original * 1e18) / boosted;\n    }\n\n    function left(address token) external view override returns (uint256) {\n        return totalRewardUnclaimed;\n    }\n\n    /// @inheritdoc IUniswapV3Staker\n    function isIdsWithinRange(uint256[] memory tokenIds)\n        external\n        view\n        override\n        returns (bool[] memory)\n    {\n        bool[] memory ret = new bool[](tokenIds.length);\n\n        for (uint256 index = 0; index < tokenIds.length; index++) {\n            uint256 tokenId = tokenIds[index];\n            (\n                IUniswapV3Pool _pool,\n                int24 tickLower,\n                int24 tickUpper,\n\n            ) = NFTPositionInfo.getPositionInfo(\n                    factory,\n                    nonfungiblePositionManager,\n                    tokenId\n                );\n\n            (, int24 tick, , , , , ) = _pool.slot0();\n            ret[index] = tickLower < tick && tick < tickUpper;\n        }\n\n        return ret;\n    }\n\n    function incentives() external view override returns (uint256, uint160) {\n        return (totalRewardUnclaimed, totalSecondsClaimedX128);\n    }\n\n    function notifyRewardAmount(address token, uint256 amount)\n        external\n        override\n        nonReentrant\n    {\n        require(\n            token == registry.maha(),\n            \"UniswapV3Staker::createIncentive: only maha allowed\"\n        );\n        require(\n            amount > 0,\n            \"UniswapV3Staker::createIncentive: reward must be positive\"\n        );\n\n        totalRewardUnclaimed += amount;\n        endTime = block.timestamp + DURATION;\n\n        TransferHelperExtended.safeTransferFrom(\n            registry.maha(),\n            msg.sender,\n            address(this),\n            amount\n        );\n\n        emit IncentiveCreated(pool, startTime, endTime, amount);\n    }\n\n    function tokenOfOwnerByIndex(address owner, uint256 index)\n        public\n        view\n        virtual\n        override\n        returns (uint256)\n    {\n        require(\n            index < balanceOf[owner],\n            \"ERC721Enumerable: owner index out of bounds\"\n        );\n        return _ownedTokens[owner][index];\n    }\n\n    function totalSupply() public view virtual override returns (uint256) {\n        return _allTokens.length;\n    }\n\n    function tokenByIndex(uint256 index)\n        public\n        view\n        virtual\n        override\n        returns (uint256)\n    {\n        require(\n            index < totalSupply(),\n            \"ERC721Enumerable: global index out of bounds\"\n        );\n        return _allTokens[index];\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's ownership-tracking data structures.\n     * @param to address representing the new owner of the given token ID\n     * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n     */\n    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n        uint256 length = balanceOf[to];\n        _ownedTokens[to][length] = tokenId;\n        _ownedTokensIndex[tokenId] = length;\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's token tracking data structures.\n     * @param tokenId uint256 ID of the token to be added to the tokens list\n     */\n    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n        _allTokensIndex[tokenId] = _allTokens.length;\n        _allTokens.push(tokenId);\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n     * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n     * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n     * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n     * @param from address representing the previous owner of the given token ID\n     * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n     */\n    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId)\n        private\n    {\n        // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = balanceOf[from];\n        uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary\n        if (tokenIndex != lastTokenIndex) {\n            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n        }\n\n        // This also deletes the contents at the last position of the array\n        delete _ownedTokensIndex[tokenId];\n        delete _ownedTokens[from][lastTokenIndex];\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's token tracking data structures.\n     * This has O(1) time complexity, but alters the order of the _allTokens array.\n     * @param tokenId uint256 ID of the token to be removed from the tokens list\n     */\n    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n        // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = _allTokens.length - 1;\n        uint256 tokenIndex = _allTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n        // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n        // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n        uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n        // This also deletes the contents at the last position of the array\n        delete _allTokensIndex[tokenId];\n        _allTokens.pop();\n    }\n}\n"},"contracts/utils/RewardMath.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./FullMath.sol\";\nimport \"@openzeppelin/contracts/utils/math/Math.sol\";\n\n/// @title Math for computing rewards\n/// @notice Allows computing rewards given some parameters of stakes and incentives\nlibrary RewardMath {\n    /// @notice Compute the amount of rewards owed given parameters of the incentive and stake\n    /// @param totalRewardUnclaimed The total amount of unclaimed rewards left for an incentive\n    /// @param totalSecondsClaimedX128 How many full liquidity-seconds have been already claimed for the incentive\n    /// @param startTime When the incentive rewards began in epoch seconds\n    /// @param endTime When rewards are no longer being dripped out in epoch seconds\n    /// @param liquidity The amount of liquidity, assumed to be constant over the period over which the snapshots are measured\n    /// @param secondsPerLiquidityInsideInitialX128 The seconds per liquidity of the liquidity tick range as of the beginning of the period\n    /// @param secondsPerLiquidityInsideX128 The seconds per liquidity of the liquidity tick range as of the current block timestamp\n    /// @param currentTime The current block timestamp, which must be greater than or equal to the start time\n    /// @return reward The amount of rewards owed\n    /// @return secondsInsideX128 The total liquidity seconds inside the position's range for the duration of the stake\n    function computeRewardAmount(\n        uint256 totalRewardUnclaimed,\n        uint160 totalSecondsClaimedX128,\n        uint256 startTime,\n        uint256 endTime,\n        uint128 liquidity,\n        uint160 secondsPerLiquidityInsideInitialX128,\n        uint160 secondsPerLiquidityInsideX128,\n        uint256 currentTime\n    ) internal pure returns (uint256 reward, uint160 secondsInsideX128) {\n        // this should never be called before the start time\n        assert(currentTime >= startTime);\n\n        // this operation is safe, as the difference cannot be greater than 1/stake.liquidity\n        secondsInsideX128 =\n            (secondsPerLiquidityInsideX128 -\n                secondsPerLiquidityInsideInitialX128) *\n            liquidity;\n\n        uint256 totalSecondsUnclaimedX128 = ((Math.max(endTime, currentTime) -\n            startTime) << 128) - totalSecondsClaimedX128;\n\n        reward = FullMath.mulDiv(\n            totalRewardUnclaimed,\n            secondsInsideX128,\n            totalSecondsUnclaimedX128\n        );\n    }\n}\n"},"contracts/interfaces/IGaugeV2UniV3.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\n\ninterface IGaugeV2UniV3 {\n    function registry() external view returns (IRegistry);\n}\n"},"contracts/utils/TransferHelperExtended.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity ^0.8.0;\n\nimport './TransferHelper.sol';\nimport '@openzeppelin/contracts/utils/Address.sol';\n\nlibrary TransferHelperExtended {\n    using Address for address;\n\n    /// @notice Transfers tokens from the targeted address to the given destination\n    /// @notice Errors with 'STF' if transfer fails\n    /// @param token The contract address of the token to be transferred\n    /// @param from The originating address from which the tokens will be transferred\n    /// @param to The destination address of the transfer\n    /// @param value The amount to be transferred\n    function safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.isContract(), 'TransferHelperExtended::safeTransferFrom: call to non-contract');\n        TransferHelper.safeTransferFrom(token, from, to, value);\n    }\n\n    /// @notice Transfers tokens from msg.sender to a recipient\n    /// @dev Errors with ST if transfer fails\n    /// @param token The contract address of the token which will be transferred\n    /// @param to The recipient of the transfer\n    /// @param value The value of the transfer\n    function safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.isContract(), 'TransferHelperExtended::safeTransfer: call to non-contract');\n        TransferHelper.safeTransfer(token, to, value);\n    }\n}\n"},"contracts/utils/FullMath.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @title Contains 512-bit math functions\n/// @notice Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision\n/// @dev Handles \"phantom overflow\" i.e., allows multiplication and division where an intermediate value overflows 256 bits\nlibrary FullMath {\n    /// @notice Calculates floor(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n    /// @param a The multiplicand\n    /// @param b The multiplier\n    /// @param denominator The divisor\n    /// @return result The 256-bit result\n    /// @dev Credit to Remco Bloemen under MIT license https://xn--2-umb.com/21/muldiv\n    function mulDiv(\n        uint256 a,\n        uint256 b,\n        uint256 denominator\n    ) internal pure returns (uint256 result) {\n        // 512-bit multiply [prod1 prod0] = a * b\n        // Compute the product mod 2**256 and mod 2**256 - 1\n        // then use the Chinese Remainder Theorem to reconstruct\n        // the 512 bit result. The result is stored in two 256\n        // variables such that product = prod1 * 2**256 + prod0\n        uint256 prod0; // Least significant 256 bits of the product\n        uint256 prod1; // Most significant 256 bits of the product\n        assembly {\n            let mm := mulmod(a, b, not(0))\n            prod0 := mul(a, b)\n            prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n        }\n\n        // Handle non-overflow cases, 256 by 256 division\n        if (prod1 == 0) {\n            require(denominator > 0);\n            assembly {\n                result := div(prod0, denominator)\n            }\n            return result;\n        }\n\n        // Make sure the result is less than 2**256.\n        // Also prevents denominator == 0\n        require(denominator > prod1);\n\n        ///////////////////////////////////////////////\n        // 512 by 256 division.\n        ///////////////////////////////////////////////\n\n        // Make division exact by subtracting the remainder from [prod1 prod0]\n        // Compute remainder using mulmod\n        uint256 remainder;\n        assembly {\n            remainder := mulmod(a, b, denominator)\n        }\n        // Subtract 256 bit number from 512 bit number\n        assembly {\n            prod1 := sub(prod1, gt(remainder, prod0))\n            prod0 := sub(prod0, remainder)\n        }\n\n        // Factor powers of two out of denominator\n        // Compute largest power of two divisor of denominator.\n        // Always >= 1.\n        uint256 twos = (type(uint256).max - denominator + 1) & denominator;\n        // Divide denominator by power of two\n        assembly {\n            denominator := div(denominator, twos)\n        }\n\n        // Divide [prod1 prod0] by the factors of two\n        assembly {\n            prod0 := div(prod0, twos)\n        }\n        // Shift in bits from prod1 into prod0. For this we need\n        // to flip `twos` such that it is 2**256 / twos.\n        // If twos is zero, then it becomes one\n        assembly {\n            twos := add(div(sub(0, twos), twos), 1)\n        }\n        prod0 |= prod1 * twos;\n\n        // Invert denominator mod 2**256\n        // Now that denominator is an odd number, it has an inverse\n        // modulo 2**256 such that denominator * inv = 1 mod 2**256.\n        // Compute the inverse by starting with a seed that is correct\n        // correct for four bits. That is, denominator * inv = 1 mod 2**4\n        uint256 inv = (3 * denominator) ^ 2;\n        // Now use Newton-Raphson iteration to improve the precision.\n        // Thanks to Hensel's lifting lemma, this also works in modular\n        // arithmetic, doubling the correct bits in each step.\n        inv *= 2 - denominator * inv; // inverse mod 2**8\n        inv *= 2 - denominator * inv; // inverse mod 2**16\n        inv *= 2 - denominator * inv; // inverse mod 2**32\n        inv *= 2 - denominator * inv; // inverse mod 2**64\n        inv *= 2 - denominator * inv; // inverse mod 2**128\n        inv *= 2 - denominator * inv; // inverse mod 2**256\n\n        // Because the division is now exact we can divide by multiplying\n        // with the modular inverse of denominator. This will give us the\n        // correct result modulo 2**256. Since the precoditions guarantee\n        // that the outcome is less than 2**256, this is the final result.\n        // We don't need to compute the high bits of the result and prod1\n        // is no longer required.\n        result = prod0 * inv;\n        return result;\n    }\n\n    /// @notice Calculates ceil(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n    /// @param a The multiplicand\n    /// @param b The multiplier\n    /// @param denominator The divisor\n    /// @return result The 256-bit result\n    function mulDivRoundingUp(\n        uint256 a,\n        uint256 b,\n        uint256 denominator\n    ) internal pure returns (uint256 result) {\n        result = mulDiv(a, b, denominator);\n        if (mulmod(a, b, denominator) > 0) {\n            require(result < type(uint256).max);\n            result++;\n        }\n    }\n}\n"},"contracts/utils/TransferHelper.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity ^0.8.0;\n\nimport '@openzeppelin/contracts/token/ERC20/IERC20.sol';\n\nlibrary TransferHelper {\n    /// @notice Transfers tokens from the targeted address to the given destination\n    /// @notice Errors with 'STF' if transfer fails\n    /// @param token The contract address of the token to be transferred\n    /// @param from The originating address from which the tokens will be transferred\n    /// @param to The destination address of the transfer\n    /// @param value The amount to be transferred\n    function safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        (bool success, bytes memory data) =\n            token.call(abi.encodeWithSelector(IERC20.transferFrom.selector, from, to, value));\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'STF');\n    }\n\n    /// @notice Transfers tokens from msg.sender to a recipient\n    /// @dev Errors with ST if transfer fails\n    /// @param token The contract address of the token which will be transferred\n    /// @param to The recipient of the transfer\n    /// @param value The value of the transfer\n    function safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'ST');\n    }\n\n    /// @notice Approves the stipulated contract to spend the given allowance in the given token\n    /// @dev Errors with 'SA' if transfer fails\n    /// @param token The contract address of the token to be approved\n    /// @param to The target of the approval\n    /// @param value The amount of the given token the target will be allowed to spend\n    function safeApprove(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.approve.selector, to, value));\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'SA');\n    }\n\n    /// @notice Transfers ETH to the recipient address\n    /// @dev Fails with `STE`\n    /// @param to The destination of the transfer\n    /// @param value The value to be transferred\n    function safeTransferETH(address to, uint256 value) internal {\n        (bool success, ) = to.call{value: value}(new bytes(0));\n        require(success, 'STE');\n    }\n}\n"},"contracts/interfaces/IGaugeV2UniV3Factory.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IUniswapV3Factory} from \"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\";\n\nimport {INonfungiblePositionManager} from \"../interfaces/INonfungiblePositionManager.sol\";\n\ninterface IGaugeV2UniV3Factory {\n    function createGauge(\n        address _pool,\n        address _bribe,\n        address _registry,\n        address _refundee,\n        IUniswapV3Factory _uniswapV3factory,\n        INonfungiblePositionManager _nonfungiblePositionManager,\n        uint256 _maxIncentiveStartLeadTime,\n        uint256 _maxIncentiveDuration\n    ) external returns (address);\n\n    event GaugeCreated(\n        address _gauge,\n        address _pool,\n        address _bribe,\n        address _registry,\n        address _refundee,\n        address _uniswapV3factory,\n        address _nonfungiblePositionManager,\n        uint256 _maxIncentiveStartLeadTime,\n        uint256 _maxIncentiveDuration\n    );\n}\n"},"contracts/interfaces/IGaugeWrapper.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IRegistry} from \"./IRegistry.sol\";\nimport {IUniswapV3Staker} from \"./IUniswapV3Staker.sol\";\n\ninterface IGaugeWrapper {\n    function notifyRewardAmount(address token, uint256 amount) external;\n\n    function registry() external view returns (IRegistry);\n\n    function staker() external view returns (IUniswapV3Staker);\n}\n"},"contracts/interfaces/IGaugeV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IGauge} from \"./IGauge.sol\";\n\ninterface IGaugeV2 is IGauge {\n    /// @notice A checkpoint for marking balance\n    struct Checkpoint {\n        uint256 timestamp;\n        uint256 balanceOf;\n    }\n\n    /// @notice A checkpoint for marking reward rate\n    struct RewardPerTokenCheckpoint {\n        uint256 timestamp;\n        uint256 rewardPerToken;\n    }\n\n    /// @notice A checkpoint for marking supply\n    struct SupplyCheckpoint {\n        uint256 timestamp;\n        uint256 supply;\n    }\n\n    event Deposit(address indexed from, uint256 amount);\n    event Withdraw(address indexed from, uint256 amount);\n    event NotifyReward(\n        address indexed from,\n        address indexed reward,\n        uint256 amount\n    );\n    event ClaimFees(address indexed from, uint256 claimed0, uint256 claimed1);\n    event ClaimRewards(\n        address indexed from,\n        address indexed reward,\n        uint256 amount\n    );\n    event MaxBoostRequirementChanged(uint256 _old, uint256 _new);\n}\n"},"contracts/gauges/BaseGaugeV2.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {IGovernorTimelock} from \"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\";\n\n\nimport {IRegistry} from \"../interfaces/IRegistry.sol\";\nimport {IGaugeVoterV2} from \"../interfaces/IGaugeVoterV2.sol\";\nimport {INFTLocker} from \"../interfaces/INFTLocker.sol\";\nimport {IBribe} from \"../interfaces/IBribe.sol\";\nimport {IGaugeV2} from \"../interfaces/IGaugeV2.sol\";\nimport {INFTStaker} from \"../interfaces/INFTStaker.sol\";\n\n// Gauges are used to incentivize pools, they emit reward tokens over 7 days for staked LP tokens\ncontract BaseGaugeV2 is IGaugeV2 {\n    IRegistry public immutable override registry;\n    address public immutable stake; // the LP token that needs to be staked for rewards\n\n    uint256 public derivedSupply;\n    mapping(address => uint256) public derivedBalances;\n\n    uint256 internal constant DURATION = 7 days; // rewards are released over 7 days\n    uint256 internal constant PRECISION = 10**18;\n\n    mapping(address => bool) public attached;\n\n    // default snx staking contract implementation\n    mapping(address => uint256) public rewardRate;\n    mapping(address => uint256) public periodFinish;\n    mapping(address => uint256) public lastUpdateTime;\n    mapping(address => uint256) public rewardPerTokenStored;\n\n    uint256 public maxBoostRequirement = 5000e18;\n\n    mapping(address => mapping(address => uint256)) public lastEarn;\n    mapping(address => mapping(address => uint256))\n        public userRewardPerTokenStored;\n\n    uint256 public totalSupply;\n    mapping(address => uint256) public balanceOf;\n\n    address[] public rewards;\n    mapping(address => bool) public isReward;\n\n    /// @notice A record of balance checkpoints for each account, by index\n    mapping(address => mapping(uint256 => Checkpoint)) public checkpoints;\n\n    /// @notice The number of checkpoints for each account\n    mapping(address => uint256) public numCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(uint256 => SupplyCheckpoint) public supplyCheckpoints;\n\n    /// @notice The number of checkpoints\n    uint256 public supplyNumCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(address => mapping(uint256 => RewardPerTokenCheckpoint))\n        public rewardPerTokenCheckpoints;\n\n    /// @notice The number of checkpoints for each token\n    mapping(address => uint256) public rewardPerTokenNumCheckpoints;\n\n    // simple re-entrancy check\n    uint256 internal _unlocked = 1;\n    modifier lock() {\n        require(_unlocked == 1, \"reentrancy\");\n        _unlocked = 2;\n        _;\n        _unlocked = 1;\n    }\n\n    constructor(address _stake, address _registry) {\n        stake = _stake;\n        registry = IRegistry(_registry);\n    }\n\n    /**\n     * @notice Determine the prior balance for an account as of a block number\n     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n     * @param account The address of the account to check\n     * @param timestamp The timestamp to get the balance at\n     * @return The balance the account had as of the given block\n     */\n    function getPriorBalanceIndex(address account, uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = numCheckpoints[account];\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (checkpoints[account][nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (checkpoints[account][0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            Checkpoint memory cp = checkpoints[account][center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorSupplyIndex(uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = supplyNumCheckpoints;\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (supplyCheckpoints[nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (supplyCheckpoints[0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            SupplyCheckpoint memory cp = supplyCheckpoints[center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorRewardPerToken(address token, uint256 timestamp)\n        public\n        view\n        returns (uint256, uint256)\n    {\n        uint256 nCheckpoints = rewardPerTokenNumCheckpoints[token];\n        if (nCheckpoints == 0) {\n            return (0, 0);\n        }\n\n        // First check most recent balance\n        if (\n            rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp <=\n            timestamp\n        ) {\n            return (\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1]\n                    .rewardPerToken,\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp\n            );\n        }\n\n        // Next check implicit zero balance\n        if (rewardPerTokenCheckpoints[token][0].timestamp > timestamp) {\n            return (0, 0);\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            RewardPerTokenCheckpoint memory cp = rewardPerTokenCheckpoints[\n                token\n            ][center];\n            if (cp.timestamp == timestamp) {\n                return (cp.rewardPerToken, cp.timestamp);\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return (\n            rewardPerTokenCheckpoints[token][lower].rewardPerToken,\n            rewardPerTokenCheckpoints[token][lower].timestamp\n        );\n    }\n\n    function _writeCheckpoint(address account, uint256 balance) internal {\n        uint256 _timestamp = block.timestamp;\n        uint256 _nCheckPoints = numCheckpoints[account];\n\n        if (\n            _nCheckPoints > 0 &&\n            checkpoints[account][_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            checkpoints[account][_nCheckPoints - 1].balanceOf = balance;\n        } else {\n            checkpoints[account][_nCheckPoints] = Checkpoint(\n                _timestamp,\n                balance\n            );\n            numCheckpoints[account] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeRewardPerTokenCheckpoint(\n        address token,\n        uint256 reward,\n        uint256 timestamp\n    ) internal {\n        uint256 _nCheckPoints = rewardPerTokenNumCheckpoints[token];\n\n        if (\n            _nCheckPoints > 0 &&\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1].timestamp ==\n            timestamp\n        ) {\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1]\n                .rewardPerToken = reward;\n        } else {\n            rewardPerTokenCheckpoints[token][\n                _nCheckPoints\n            ] = RewardPerTokenCheckpoint(timestamp, reward);\n            rewardPerTokenNumCheckpoints[token] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeSupplyCheckpoint() internal {\n        uint256 _nCheckPoints = supplyNumCheckpoints;\n        uint256 _timestamp = block.timestamp;\n\n        if (\n            _nCheckPoints > 0 &&\n            supplyCheckpoints[_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            supplyCheckpoints[_nCheckPoints - 1].supply = derivedSupply;\n        } else {\n            supplyCheckpoints[_nCheckPoints] = SupplyCheckpoint(\n                _timestamp,\n                derivedSupply\n            );\n            supplyNumCheckpoints = _nCheckPoints + 1;\n        }\n    }\n\n    function rewardsListLength() external view returns (uint256) {\n        return rewards.length;\n    }\n\n    // returns the last time the reward was modified or periodFinish if the reward has ended\n    function lastTimeRewardApplicable(address token)\n        public\n        view\n        returns (uint256)\n    {\n        return Math.min(block.timestamp, periodFinish[token]);\n    }\n\n    function getReward(address account, address[] memory tokens)\n        external\n        override\n        lock\n    {\n        registry.ensureNotPaused();\n        require(\n            msg.sender == account || msg.sender == registry.gaugeVoter(),\n            \"sender not account or voter\"\n        );\n\n        _unlocked = 1;\n        IGaugeVoterV2(registry.gaugeVoter()).distribute(address(this));\n        _unlocked = 2;\n\n        for (uint256 i = 0; i < tokens.length; i++) {\n            (\n                rewardPerTokenStored[tokens[i]],\n                lastUpdateTime[tokens[i]]\n            ) = _updateRewardPerToken(tokens[i]);\n\n            uint256 _reward = earned(tokens[i], account);\n            lastEarn[tokens[i]][account] = block.timestamp;\n            userRewardPerTokenStored[tokens[i]][account] = rewardPerTokenStored[\n                tokens[i]\n            ];\n            if (_reward > 0) _safeTransfer(tokens[i], account, _reward);\n\n            emit ClaimRewards(msg.sender, tokens[i], _reward);\n        }\n\n        uint256 _derivedBalance = derivedBalances[account];\n        derivedSupply -= _derivedBalance;\n        _derivedBalance = derivedBalance(account);\n        derivedBalances[account] = _derivedBalance;\n        derivedSupply += _derivedBalance;\n\n        _writeCheckpoint(account, derivedBalances[account]);\n        _writeSupplyCheckpoint();\n    }\n\n    function rewardPerToken(address token) public view returns (uint256) {\n        if (derivedSupply == 0) {\n            return rewardPerTokenStored[token];\n        }\n        return\n            rewardPerTokenStored[token] +\n            (((lastTimeRewardApplicable(token) -\n                Math.min(lastUpdateTime[token], periodFinish[token])) *\n                rewardRate[token] *\n                PRECISION) / derivedSupply);\n    }\n\n\n    function derivedBalance(address account)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 _balance = balanceOf[account];\n\n        uint256 _derived = (_balance * 20) / 100;\n        uint256 _stake = INFTStaker(registry.staker()).balanceOf(account);\n\n        uint256 _adjusted = ((_balance * _stake * 80) /\n            maxBoostRequirement) / 100;\n\n        // because of this we are able to max out the boost by 5x\n        return Math.min(_derived + _adjusted, _balance);\n    }\n\n    function batchRewardPerToken(address token, uint256 maxRuns) external {\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _batchRewardPerToken(token, maxRuns);\n    }\n\n    function _batchRewardPerToken(address token, uint256 maxRuns)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = Math.min(supplyNumCheckpoints - 1, maxRuns);\n\n        for (uint256 i = _startIndex; i < _endIndex; i++) {\n            SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n            if (sp0.supply > 0) {\n                SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                (uint256 _reward, uint256 _endTime) = _calcRewardPerToken(\n                    token,\n                    sp1.timestamp,\n                    sp0.timestamp,\n                    sp0.supply,\n                    _startTimestamp\n                );\n                reward += _reward;\n                _writeRewardPerTokenCheckpoint(token, reward, _endTime);\n                _startTimestamp = _endTime;\n            }\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    function _calcRewardPerToken(\n        address token,\n        uint256 timestamp1,\n        uint256 timestamp0,\n        uint256 supply,\n        uint256 startTimestamp\n    ) internal view returns (uint256, uint256) {\n        uint256 endTime = Math.max(timestamp1, startTimestamp);\n        return (\n            (((Math.min(endTime, periodFinish[token]) -\n                Math.min(\n                    Math.max(timestamp0, startTimestamp),\n                    periodFinish[token]\n                )) *\n                rewardRate[token] *\n                PRECISION) / supply),\n            endTime\n        );\n    }\n\n    function _updateRewardPerToken(address token)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = supplyNumCheckpoints - 1;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n                if (sp0.supply > 0) {\n                    SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                    (uint256 _reward, uint256 _endTime) = _calcRewardPerToken(\n                        token,\n                        sp1.timestamp,\n                        sp0.timestamp,\n                        sp0.supply,\n                        _startTimestamp\n                    );\n                    reward += _reward;\n                    _writeRewardPerTokenCheckpoint(token, reward, _endTime);\n                    _startTimestamp = _endTime;\n                }\n            }\n        }\n\n        SupplyCheckpoint memory sp = supplyCheckpoints[_endIndex];\n        if (sp.supply > 0) {\n            (uint256 _reward, ) = _calcRewardPerToken(\n                token,\n                lastTimeRewardApplicable(token),\n                Math.max(sp.timestamp, _startTimestamp),\n                sp.supply,\n                _startTimestamp\n            );\n            reward += _reward;\n            _writeRewardPerTokenCheckpoint(token, reward, block.timestamp);\n            _startTimestamp = block.timestamp;\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    // earned is an estimation, it won't be exact till the supply > rewardPerToken calculations have run\n    function earned(address token, address account)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 _startTimestamp = Math.max(\n            lastEarn[token][account],\n            rewardPerTokenCheckpoints[token][0].timestamp\n        );\n        if (numCheckpoints[account] == 0) {\n            return 0;\n        }\n\n        uint256 _startIndex = getPriorBalanceIndex(account, _startTimestamp);\n        uint256 _endIndex = numCheckpoints[account] - 1;\n\n        uint256 reward = 0;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                Checkpoint memory cp0 = checkpoints[account][i];\n                Checkpoint memory cp1 = checkpoints[account][i + 1];\n                (uint256 _rewardPerTokenStored0, ) = getPriorRewardPerToken(\n                    token,\n                    cp0.timestamp\n                );\n                (uint256 _rewardPerTokenStored1, ) = getPriorRewardPerToken(\n                    token,\n                    cp1.timestamp\n                );\n                reward +=\n                    (cp0.balanceOf *\n                        (_rewardPerTokenStored1 - _rewardPerTokenStored0)) /\n                    PRECISION;\n            }\n        }\n\n        Checkpoint memory cp = checkpoints[account][_endIndex];\n        (uint256 _rewardPerTokenStored, ) = getPriorRewardPerToken(\n            token,\n            cp.timestamp\n        );\n        reward +=\n            (cp.balanceOf *\n                (rewardPerToken(token) -\n                    Math.max(\n                        _rewardPerTokenStored,\n                        userRewardPerTokenStored[token][account]\n                    ))) /\n            PRECISION;\n\n        return reward;\n    }\n\n    function depositAll() external {\n        deposit(IERC20(stake).balanceOf(msg.sender));\n    }\n\n    function deposit(uint256 amount) public lock {\n        registry.ensureNotPaused();\n        require(amount > 0, \"amount = 0\");\n\n        _safeTransferFrom(stake, msg.sender, address(this), amount);\n        totalSupply += amount;\n        balanceOf[msg.sender] += amount;\n\n        uint256 _derivedBalance = derivedBalances[msg.sender];\n        derivedSupply -= _derivedBalance;\n        _derivedBalance = derivedBalance(msg.sender);\n        derivedBalances[msg.sender] = _derivedBalance;\n        derivedSupply += _derivedBalance;\n\n        if (!attached[msg.sender]) {\n            attached[msg.sender] = true;\n            IGaugeVoterV2(registry.gaugeVoter()).attachStakerToGauge(\n                msg.sender\n            );\n        }\n\n        _writeCheckpoint(msg.sender, _derivedBalance);\n        _writeSupplyCheckpoint();\n\n        emit Deposit(msg.sender, amount);\n    }\n\n    function withdrawAll() external {\n        withdraw(balanceOf[msg.sender]);\n    }\n\n    function withdraw(uint256 amount) public {\n        withdrawToken(amount);\n    }\n\n    function withdrawToken(uint256 amount) public lock {\n        totalSupply -= amount;\n        balanceOf[msg.sender] -= amount;\n        _safeTransfer(stake, msg.sender, amount);\n\n        if (amount == balanceOf[msg.sender] && attached[msg.sender]) {\n            attached[msg.sender] = false;\n            IGaugeVoterV2(registry.gaugeVoter()).detachStakerFromGauge(\n                msg.sender\n            );\n        }\n\n        uint256 _derivedBalance = derivedBalances[msg.sender];\n        derivedSupply -= _derivedBalance;\n        _derivedBalance = derivedBalance(msg.sender);\n        derivedBalances[msg.sender] = _derivedBalance;\n        derivedSupply += _derivedBalance;\n\n        _writeCheckpoint(msg.sender, derivedBalances[msg.sender]);\n        _writeSupplyCheckpoint();\n\n        emit Withdraw(msg.sender, amount);\n    }\n\n    function left(address token) external view override returns (uint256) {\n        if (block.timestamp >= periodFinish[token]) return 0;\n        uint256 _remaining = periodFinish[token] - block.timestamp;\n        return _remaining * rewardRate[token];\n    }\n\n    function notifyRewardAmount(address token, uint256 amount)\n        external\n        override\n        lock\n    {\n        require(token != stake, \"token = stake\");\n        require(amount > 0, \"amount = 0\");\n        if (rewardRate[token] == 0)\n            _writeRewardPerTokenCheckpoint(token, 0, block.timestamp);\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _updateRewardPerToken(token);\n\n        if (block.timestamp >= periodFinish[token]) {\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = amount / DURATION;\n        } else {\n            uint256 _remaining = periodFinish[token] - block.timestamp;\n            uint256 _left = _remaining * rewardRate[token];\n            require(amount > _left, \"amount > left\");\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = (amount + _left) / DURATION;\n        }\n\n        require(rewardRate[token] > 0, \"rewardrate = 0\");\n        uint256 balance = IERC20(token).balanceOf(address(this));\n        require(\n            rewardRate[token] <= balance / DURATION,\n            \"Provided reward too high\"\n        );\n        periodFinish[token] = block.timestamp + DURATION;\n\n        if (!isReward[token]) {\n            isReward[token] = true;\n            rewards.push(token);\n        }\n\n        emit NotifyReward(msg.sender, token, amount);\n    }\n\n    /// @dev in case admin needs to execute some calls directly\n    function emergencyCall(address target, bytes memory signature)\n        external\n        onlyTimelock\n    {\n        (bool success, bytes memory response) = target.call(signature);\n        require(success, string(response));\n    }\n\n    function setMaxBoost(uint256 _maxBoostRequirement) external onlyTimelock {\n        emit MaxBoostRequirementChanged(\n            maxBoostRequirement,\n            _maxBoostRequirement\n        );\n        maxBoostRequirement = _maxBoostRequirement;\n    }\n\n    function _safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid code length\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(IERC20.transfer.selector, to, value)\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transfer failed\"\n        );\n    }\n\n    function _safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid code length\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(\n                IERC20.transferFrom.selector,\n                from,\n                to,\n                value\n            )\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transferFrom failed\"\n        );\n    }\n\n    function _safeApprove(\n        address token,\n        address spender,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid code length\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(IERC20.approve.selector, spender, value)\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"approve failed\"\n        );\n    }\n\n    modifier onlyTimelock() {\n        require(\n            msg.sender == IGovernorTimelock(registry.governor()).timelock(),\n            \"not timelock\"\n        );\n        _;\n    }\n}\n"},"contracts/gauges/BaseV2GaugeFactory.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {BaseGaugeV2} from \"./BaseGaugeV2.sol\";\nimport {IGaugeFactory} from \"../interfaces/IGaugeFactory.sol\";\n\ncontract BaseV2GaugeFactory is IGaugeFactory {\n    function createGauge(\n        address _pool,\n        address _bribe,\n        address _registry\n    ) external override returns (address) {\n        address guage = address(new BaseGaugeV2(_pool, _registry));\n        emit GaugeCreated(guage, _pool, _bribe);\n        return guage;\n    }\n}\n"},"contracts/gauges/BaseGaugeV1Factory.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {BaseGaugeV2} from \"./BaseGaugeV2.sol\";\nimport {IGaugeFactory} from \"../interfaces/IGaugeFactory.sol\";\n\ncontract BaseV1GaugeFactory is IGaugeFactory {\n    function createGauge(\n        address _pool,\n        address _bribe,\n        address _registry\n    ) external override returns (address) {\n        address guage = address(new BaseGaugeV2(_pool, _registry));\n        emit GaugeCreated(guage, _pool, _bribe);\n        return guage;\n    }\n}\n"},"contracts/gauges/BaseGaugeV1.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\n\nimport {IRegistry} from \"../interfaces/IRegistry.sol\";\nimport {IGaugeVoter} from \"../interfaces/IGaugeVoter.sol\";\nimport {INFTLocker} from \"../interfaces/INFTLocker.sol\";\nimport {IBribe} from \"../interfaces/IBribe.sol\";\nimport {IGaugeV1} from \"../interfaces/IGaugeV1.sol\";\n\n// Gauges are used to incentivize pools, they emit reward tokens over 7 days for staked LP tokens\ncontract BaseGaugeV1 is IGaugeV1 {\n    IRegistry public immutable override registry;\n    address public immutable stake; // the LP token that needs to be staked for rewards\n\n    uint256 public derivedSupply;\n    mapping(address => uint256) public derivedBalances;\n\n    uint256 internal constant DURATION = 7 days; // rewards are released over 7 days\n    uint256 internal constant PRECISION = 10**18;\n\n    // default snx staking contract implementation\n    mapping(address => uint256) public rewardRate;\n    mapping(address => uint256) public periodFinish;\n    mapping(address => uint256) public lastUpdateTime;\n    mapping(address => uint256) public rewardPerTokenStored;\n\n    mapping(address => mapping(address => uint256)) public lastEarn;\n    mapping(address => mapping(address => uint256))\n        public userRewardPerTokenStored;\n\n    mapping(address => uint256) public tokenIds;\n\n    uint256 public totalSupply;\n    mapping(address => uint256) public balanceOf;\n\n    address[] public rewards;\n    mapping(address => bool) public isReward;\n\n    /// @notice A record of balance checkpoints for each account, by index\n    mapping(address => mapping(uint256 => Checkpoint)) public checkpoints;\n\n    /// @notice The number of checkpoints for each account\n    mapping(address => uint256) public numCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(uint256 => SupplyCheckpoint) public supplyCheckpoints;\n\n    /// @notice The number of checkpoints\n    uint256 public supplyNumCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(address => mapping(uint256 => RewardPerTokenCheckpoint))\n        public rewardPerTokenCheckpoints;\n\n    /// @notice The number of checkpoints for each token\n    mapping(address => uint256) public rewardPerTokenNumCheckpoints;\n\n    // simple re-entrancy check\n    uint256 internal _unlocked = 1;\n    modifier lock() {\n        require(_unlocked == 1, \"reentrancy\");\n        _unlocked = 2;\n        _;\n        _unlocked = 1;\n    }\n\n    constructor(address _stake, address _registry) {\n        stake = _stake;\n        registry = IRegistry(_registry);\n    }\n\n    /**\n     * @notice Determine the prior balance for an account as of a block number\n     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n     * @param account The address of the account to check\n     * @param timestamp The timestamp to get the balance at\n     * @return The balance the account had as of the given block\n     */\n    function getPriorBalanceIndex(address account, uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = numCheckpoints[account];\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (checkpoints[account][nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (checkpoints[account][0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            Checkpoint memory cp = checkpoints[account][center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorSupplyIndex(uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = supplyNumCheckpoints;\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (supplyCheckpoints[nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (supplyCheckpoints[0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            SupplyCheckpoint memory cp = supplyCheckpoints[center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorRewardPerToken(address token, uint256 timestamp)\n        public\n        view\n        returns (uint256, uint256)\n    {\n        uint256 nCheckpoints = rewardPerTokenNumCheckpoints[token];\n        if (nCheckpoints == 0) {\n            return (0, 0);\n        }\n\n        // First check most recent balance\n        if (\n            rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp <=\n            timestamp\n        ) {\n            return (\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1]\n                    .rewardPerToken,\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp\n            );\n        }\n\n        // Next check implicit zero balance\n        if (rewardPerTokenCheckpoints[token][0].timestamp > timestamp) {\n            return (0, 0);\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            RewardPerTokenCheckpoint memory cp = rewardPerTokenCheckpoints[\n                token\n            ][center];\n            if (cp.timestamp == timestamp) {\n                return (cp.rewardPerToken, cp.timestamp);\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return (\n            rewardPerTokenCheckpoints[token][lower].rewardPerToken,\n            rewardPerTokenCheckpoints[token][lower].timestamp\n        );\n    }\n\n    function _writeCheckpoint(address account, uint256 balance) internal {\n        uint256 _timestamp = block.timestamp;\n        uint256 _nCheckPoints = numCheckpoints[account];\n\n        if (\n            _nCheckPoints > 0 &&\n            checkpoints[account][_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            checkpoints[account][_nCheckPoints - 1].balanceOf = balance;\n        } else {\n            checkpoints[account][_nCheckPoints] = Checkpoint(\n                _timestamp,\n                balance\n            );\n            numCheckpoints[account] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeRewardPerTokenCheckpoint(\n        address token,\n        uint256 reward,\n        uint256 timestamp\n    ) internal {\n        uint256 _nCheckPoints = rewardPerTokenNumCheckpoints[token];\n\n        if (\n            _nCheckPoints > 0 &&\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1].timestamp ==\n            timestamp\n        ) {\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1]\n                .rewardPerToken = reward;\n        } else {\n            rewardPerTokenCheckpoints[token][\n                _nCheckPoints\n            ] = RewardPerTokenCheckpoint(timestamp, reward);\n            rewardPerTokenNumCheckpoints[token] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeSupplyCheckpoint() internal {\n        uint256 _nCheckPoints = supplyNumCheckpoints;\n        uint256 _timestamp = block.timestamp;\n\n        if (\n            _nCheckPoints > 0 &&\n            supplyCheckpoints[_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            supplyCheckpoints[_nCheckPoints - 1].supply = derivedSupply;\n        } else {\n            supplyCheckpoints[_nCheckPoints] = SupplyCheckpoint(\n                _timestamp,\n                derivedSupply\n            );\n            supplyNumCheckpoints = _nCheckPoints + 1;\n        }\n    }\n\n    function rewardsListLength() external view returns (uint256) {\n        return rewards.length;\n    }\n\n    // returns the last time the reward was modified or periodFinish if the reward has ended\n    function lastTimeRewardApplicable(address token)\n        public\n        view\n        returns (uint256)\n    {\n        return Math.min(block.timestamp, periodFinish[token]);\n    }\n\n    function getReward(address account, address[] memory tokens)\n        external\n        override\n        lock\n    {\n        registry.ensureNotPaused();\n        require(\n            msg.sender == account || msg.sender == registry.gaugeVoter(),\n            \"sender not account or voter\"\n        );\n\n        _unlocked = 1;\n        IGaugeVoter(registry.gaugeVoter()).distribute(address(this));\n        _unlocked = 2;\n\n        for (uint256 i = 0; i < tokens.length; i++) {\n            (\n                rewardPerTokenStored[tokens[i]],\n                lastUpdateTime[tokens[i]]\n            ) = _updateRewardPerToken(tokens[i]);\n\n            uint256 _reward = earned(tokens[i], account);\n            lastEarn[tokens[i]][account] = block.timestamp;\n            userRewardPerTokenStored[tokens[i]][account] = rewardPerTokenStored[\n                tokens[i]\n            ];\n            if (_reward > 0) _safeTransfer(tokens[i], account, _reward);\n\n            emit ClaimRewards(msg.sender, tokens[i], _reward);\n        }\n\n        uint256 _derivedBalance = derivedBalances[account];\n        derivedSupply -= _derivedBalance;\n        _derivedBalance = derivedBalance(account);\n        derivedBalances[account] = _derivedBalance;\n        derivedSupply += _derivedBalance;\n\n        _writeCheckpoint(account, derivedBalances[account]);\n        _writeSupplyCheckpoint();\n    }\n\n    function rewardPerToken(address token) public view returns (uint256) {\n        if (derivedSupply == 0) {\n            return rewardPerTokenStored[token];\n        }\n        return\n            rewardPerTokenStored[token] +\n            (((lastTimeRewardApplicable(token) -\n                Math.min(lastUpdateTime[token], periodFinish[token])) *\n                rewardRate[token] *\n                PRECISION) / derivedSupply);\n    }\n\n    function derivedBalance(address account) public view returns (uint256) {\n        uint256 _tokenId = tokenIds[account];\n        uint256 _balance = balanceOf[account];\n        uint256 _derived = (_balance * 20) / 100;\n        uint256 _adjusted = 0;\n        uint256 _supply = IERC20(registry.locker()).totalSupply();\n        if (\n            account == INFTLocker(registry.locker()).ownerOf(_tokenId) &&\n            _supply > 0\n        ) {\n            _adjusted = INFTLocker(registry.locker()).balanceOfNFT(_tokenId);\n            _adjusted = (((totalSupply * _adjusted) / _supply) * 80) / 100;\n        }\n        return Math.min((_derived + _adjusted), _balance);\n    }\n\n    function batchRewardPerToken(address token, uint256 maxRuns) external {\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _batchRewardPerToken(token, maxRuns);\n    }\n\n    function _batchRewardPerToken(address token, uint256 maxRuns)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = Math.min(supplyNumCheckpoints - 1, maxRuns);\n\n        for (uint256 i = _startIndex; i < _endIndex; i++) {\n            SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n            if (sp0.supply > 0) {\n                SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                (uint256 _reward, uint256 _endTime) = _calcRewardPerToken(\n                    token,\n                    sp1.timestamp,\n                    sp0.timestamp,\n                    sp0.supply,\n                    _startTimestamp\n                );\n                reward += _reward;\n                _writeRewardPerTokenCheckpoint(token, reward, _endTime);\n                _startTimestamp = _endTime;\n            }\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    function _calcRewardPerToken(\n        address token,\n        uint256 timestamp1,\n        uint256 timestamp0,\n        uint256 supply,\n        uint256 startTimestamp\n    ) internal view returns (uint256, uint256) {\n        uint256 endTime = Math.max(timestamp1, startTimestamp);\n        return (\n            (((Math.min(endTime, periodFinish[token]) -\n                Math.min(\n                    Math.max(timestamp0, startTimestamp),\n                    periodFinish[token]\n                )) *\n                rewardRate[token] *\n                PRECISION) / supply),\n            endTime\n        );\n    }\n\n    function _updateRewardPerToken(address token)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = supplyNumCheckpoints - 1;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n                if (sp0.supply > 0) {\n                    SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                    (uint256 _reward, uint256 _endTime) = _calcRewardPerToken(\n                        token,\n                        sp1.timestamp,\n                        sp0.timestamp,\n                        sp0.supply,\n                        _startTimestamp\n                    );\n                    reward += _reward;\n                    _writeRewardPerTokenCheckpoint(token, reward, _endTime);\n                    _startTimestamp = _endTime;\n                }\n            }\n        }\n\n        SupplyCheckpoint memory sp = supplyCheckpoints[_endIndex];\n        if (sp.supply > 0) {\n            (uint256 _reward, ) = _calcRewardPerToken(\n                token,\n                lastTimeRewardApplicable(token),\n                Math.max(sp.timestamp, _startTimestamp),\n                sp.supply,\n                _startTimestamp\n            );\n            reward += _reward;\n            _writeRewardPerTokenCheckpoint(token, reward, block.timestamp);\n            _startTimestamp = block.timestamp;\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    // earned is an estimation, it won't be exact till the supply > rewardPerToken calculations have run\n    function earned(address token, address account)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 _startTimestamp = Math.max(\n            lastEarn[token][account],\n            rewardPerTokenCheckpoints[token][0].timestamp\n        );\n        if (numCheckpoints[account] == 0) {\n            return 0;\n        }\n\n        uint256 _startIndex = getPriorBalanceIndex(account, _startTimestamp);\n        uint256 _endIndex = numCheckpoints[account] - 1;\n\n        uint256 reward = 0;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                Checkpoint memory cp0 = checkpoints[account][i];\n                Checkpoint memory cp1 = checkpoints[account][i + 1];\n                (uint256 _rewardPerTokenStored0, ) = getPriorRewardPerToken(\n                    token,\n                    cp0.timestamp\n                );\n                (uint256 _rewardPerTokenStored1, ) = getPriorRewardPerToken(\n                    token,\n                    cp1.timestamp\n                );\n                reward +=\n                    (cp0.balanceOf *\n                        (_rewardPerTokenStored1 - _rewardPerTokenStored0)) /\n                    PRECISION;\n            }\n        }\n\n        Checkpoint memory cp = checkpoints[account][_endIndex];\n        (uint256 _rewardPerTokenStored, ) = getPriorRewardPerToken(\n            token,\n            cp.timestamp\n        );\n        reward +=\n            (cp.balanceOf *\n                (rewardPerToken(token) -\n                    Math.max(\n                        _rewardPerTokenStored,\n                        userRewardPerTokenStored[token][account]\n                    ))) /\n            PRECISION;\n\n        return reward;\n    }\n\n    function depositAll(uint256 tokenId) external {\n        deposit(IERC20(stake).balanceOf(msg.sender), tokenId);\n    }\n\n    function deposit(uint256 amount, uint256 tokenId) public lock {\n        registry.ensureNotPaused();\n        require(amount > 0, \"amount = 0\");\n\n        _safeTransferFrom(stake, msg.sender, address(this), amount);\n        totalSupply += amount;\n        balanceOf[msg.sender] += amount;\n\n        if (tokenId > 0) {\n            require(\n                INFTLocker(registry.locker()).ownerOf(tokenId) == msg.sender,\n                \"bad owner\"\n            );\n            if (tokenIds[msg.sender] == 0) {\n                tokenIds[msg.sender] = tokenId;\n                IGaugeVoter(registry.gaugeVoter()).attachTokenToGauge(\n                    tokenId,\n                    msg.sender\n                );\n            }\n            require(tokenIds[msg.sender] == tokenId, \"bad tokenId\");\n        } else {\n            tokenId = tokenIds[msg.sender];\n        }\n\n        uint256 _derivedBalance = derivedBalances[msg.sender];\n        derivedSupply -= _derivedBalance;\n        _derivedBalance = derivedBalance(msg.sender);\n        derivedBalances[msg.sender] = _derivedBalance;\n        derivedSupply += _derivedBalance;\n\n        _writeCheckpoint(msg.sender, _derivedBalance);\n        _writeSupplyCheckpoint();\n\n        IGaugeVoter(registry.gaugeVoter()).emitDeposit(\n            tokenId,\n            msg.sender,\n            amount\n        );\n        emit Deposit(msg.sender, tokenId, amount);\n    }\n\n    function withdrawAll() external {\n        withdraw(balanceOf[msg.sender]);\n    }\n\n    function withdraw(uint256 amount) public {\n        uint256 tokenId = 0;\n        if (amount == balanceOf[msg.sender]) {\n            tokenId = tokenIds[msg.sender];\n        }\n        withdrawToken(amount, tokenId);\n    }\n\n    function withdrawToken(uint256 amount, uint256 tokenId) public lock {\n        totalSupply -= amount;\n        balanceOf[msg.sender] -= amount;\n        _safeTransfer(stake, msg.sender, amount);\n\n        if (tokenId > 0) {\n            require(tokenId == tokenIds[msg.sender], \"bad tokenId\");\n            tokenIds[msg.sender] = 0;\n            IGaugeVoter(registry.gaugeVoter()).detachTokenFromGauge(\n                tokenId,\n                msg.sender\n            );\n        } else {\n            tokenId = tokenIds[msg.sender];\n        }\n\n        uint256 _derivedBalance = derivedBalances[msg.sender];\n        derivedSupply -= _derivedBalance;\n        _derivedBalance = derivedBalance(msg.sender);\n        derivedBalances[msg.sender] = _derivedBalance;\n        derivedSupply += _derivedBalance;\n\n        _writeCheckpoint(msg.sender, derivedBalances[msg.sender]);\n        _writeSupplyCheckpoint();\n\n        IGaugeVoter(registry.gaugeVoter()).emitWithdraw(\n            tokenId,\n            msg.sender,\n            amount\n        );\n        emit Withdraw(msg.sender, tokenId, amount);\n    }\n\n    function left(address token) external view override returns (uint256) {\n        if (block.timestamp >= periodFinish[token]) return 0;\n        uint256 _remaining = periodFinish[token] - block.timestamp;\n        return _remaining * rewardRate[token];\n    }\n\n    function notifyRewardAmount(address token, uint256 amount)\n        external\n        override\n        lock\n    {\n        require(token != stake, \"token = stake\");\n        require(amount > 0, \"amount = 0\");\n        if (rewardRate[token] == 0)\n            _writeRewardPerTokenCheckpoint(token, 0, block.timestamp);\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _updateRewardPerToken(token);\n\n        if (block.timestamp >= periodFinish[token]) {\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = amount / DURATION;\n        } else {\n            uint256 _remaining = periodFinish[token] - block.timestamp;\n            uint256 _left = _remaining * rewardRate[token];\n            require(amount > _left, \"amount > left\");\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = (amount + _left) / DURATION;\n        }\n        require(rewardRate[token] > 0, \"rewardrate = 0\");\n        uint256 balance = IERC20(token).balanceOf(address(this));\n        require(\n            rewardRate[token] <= balance / DURATION,\n            \"Provided reward too high\"\n        );\n        periodFinish[token] = block.timestamp + DURATION;\n        if (!isReward[token]) {\n            isReward[token] = true;\n            rewards.push(token);\n        }\n\n        emit NotifyReward(msg.sender, token, amount);\n    }\n\n    function _safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid code length\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(IERC20.transfer.selector, to, value)\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transfer failed\"\n        );\n    }\n\n    function _safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid code length\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(\n                IERC20.transferFrom.selector,\n                from,\n                to,\n                value\n            )\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transferFrom failed\"\n        );\n    }\n\n    function _safeApprove(\n        address token,\n        address spender,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid code length\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(IERC20.approve.selector, spender, value)\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"approve failed\"\n        );\n    }\n}\n"},"contracts/interfaces/IGaugeV1.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IGauge} from \"./IGauge.sol\";\n\ninterface IGaugeV1 is IGauge {\n    /// @notice A checkpoint for marking balance\n    struct Checkpoint {\n        uint256 timestamp;\n        uint256 balanceOf;\n    }\n\n    /// @notice A checkpoint for marking reward rate\n    struct RewardPerTokenCheckpoint {\n        uint256 timestamp;\n        uint256 rewardPerToken;\n    }\n\n    /// @notice A checkpoint for marking supply\n    struct SupplyCheckpoint {\n        uint256 timestamp;\n        uint256 supply;\n    }\n\n    event Deposit(address indexed from, uint256 tokenId, uint256 amount);\n    event Withdraw(address indexed from, uint256 tokenId, uint256 amount);\n    event NotifyReward(\n        address indexed from,\n        address indexed reward,\n        uint256 amount\n    );\n    event ClaimFees(address indexed from, uint256 claimed0, uint256 claimed1);\n    event ClaimRewards(\n        address indexed from,\n        address indexed reward,\n        uint256 amount\n    );\n}\n"},"contracts/referrals/MAHAReferralV1.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {INFTLocker} from \"../interfaces/INFTLocker.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MAHAReferralV1 is Ownable {\n    INFTLocker public locker;\n    IERC20 public maha;\n    uint256 public minLockDuration;\n    uint256 public referralDenominator = 10;\n    address internal me;\n\n    event ReferralPaid(\n        address indexed who,\n        address indexed referral,\n        uint256 amt,\n        uint256 mahax\n    );\n\n    constructor(\n        INFTLocker _locker,\n        IERC20 _maha,\n        uint256 _minLockDuration\n    ) {\n        locker = _locker;\n        maha = _maha;\n        minLockDuration = _minLockDuration;\n\n        maha.approve(\n            address(locker),\n            0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        );\n\n        me = address(this);\n    }\n\n    function createLockWithReferral(\n        uint256 _value,\n        uint256 _lockDuration,\n        bool _stakeNFT,\n        address referral\n    ) external {\n        maha.transferFrom(msg.sender, me, _value);\n\n        uint256 nftId = locker.createLockFor(\n            _value,\n            _lockDuration,\n            msg.sender,\n            _stakeNFT\n        );\n\n        if (_lockDuration > minLockDuration && referral != address(0)) {\n            uint256 mahax = locker.balanceOfNFT(nftId);\n            uint256 reward = mahax / referralDenominator; // give 10% of the mahax value as referral\n\n            if (maha.balanceOf(me) > reward) {\n                maha.transfer(referral, reward);\n                emit ReferralPaid(referral, msg.sender, reward, mahax);\n            }\n        }\n    }\n\n    function setParams(uint256 _minLockDuration, uint256 _referralDenominator)\n        external\n        onlyOwner\n    {\n        minLockDuration = _minLockDuration;\n        referralDenominator = _referralDenominator;\n    }\n\n    function refund() external onlyOwner {\n        maha.transfer(msg.sender, maha.balanceOf(address(this)));\n    }\n}\n"},"contracts/bribes/BaseV2Bribes.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\n\nimport {IGaugeVoter} from \"../interfaces/IGaugeVoter.sol\";\nimport {IRegistry} from \"../interfaces/IRegistry.sol\";\nimport {INFTLocker} from \"../interfaces/INFTLocker.sol\";\nimport {IBribeV2} from \"../interfaces/IBribeV2.sol\";\n\n// Bribes pay out rewards for a given pool based on the votes that were received from the user (goes hand in hand with BaseV1Gauges.vote())\ncontract BaseV2Bribes is ReentrancyGuard, IBribeV2 {\n    IRegistry public immutable override registry;\n\n    uint256 public constant DURATION = 7 days; // rewards are released over 7 days\n    uint256 public constant PRECISION = 10**18;\n\n    // default snx staking contract implementation\n    mapping(address => uint256) public rewardRate;\n    mapping(address => uint256) public periodFinish;\n    mapping(address => uint256) public lastUpdateTime;\n    mapping(address => uint256) public rewardPerTokenStored;\n\n    mapping(address => mapping(address => uint256)) public lastEarn;\n    mapping(address => mapping(address => uint256))\n        public userRewardPerTokenStored;\n\n    address[] public rewards;\n    mapping(address => bool) public isReward;\n\n    uint256 public totalSupply;\n    mapping(address => uint256) public balanceOf;\n\n    /// @notice A checkpoint for marking balance\n    struct Checkpoint {\n        uint256 timestamp;\n        uint256 balanceOf;\n    }\n\n    /// @notice A checkpoint for marking reward rate\n    struct RewardPerTokenCheckpoint {\n        uint256 timestamp;\n        uint256 rewardPerToken;\n    }\n\n    /// @notice A checkpoint for marking supply\n    struct SupplyCheckpoint {\n        uint256 timestamp;\n        uint256 supply;\n    }\n\n    /// @notice A record of balance checkpoints for each account, by index\n    mapping(address => mapping(uint256 => Checkpoint)) public checkpoints;\n\n    /// @notice The number of checkpoints for each account\n    mapping(address => uint256) public numCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(uint256 => SupplyCheckpoint) public supplyCheckpoints;\n\n    /// @notice The number of checkpoints\n    uint256 public supplyNumCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(address => mapping(uint256 => RewardPerTokenCheckpoint))\n        public rewardPerTokenCheckpoints;\n\n    /// @notice The number of checkpoints for each token\n    mapping(address => uint256) public rewardPerTokenNumCheckpoints;\n\n    constructor(address _registry) {\n        registry = IRegistry(_registry);\n    }\n\n    /**\n     * @notice Determine the prior balance for an account as of a block number\n     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n     * @param who The token of the NFT to check\n     * @param timestamp The timestamp to get the balance at\n     * @return The balance the account had as of the given block\n     */\n    function getPriorBalanceIndex(address who, uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = numCheckpoints[who];\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (checkpoints[who][nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (checkpoints[who][0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            Checkpoint memory cp = checkpoints[who][center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorSupplyIndex(uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = supplyNumCheckpoints;\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (supplyCheckpoints[nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (supplyCheckpoints[0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            SupplyCheckpoint memory cp = supplyCheckpoints[center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorRewardPerToken(address token, uint256 timestamp)\n        public\n        view\n        returns (uint256, uint256)\n    {\n        uint256 nCheckpoints = rewardPerTokenNumCheckpoints[token];\n        if (nCheckpoints == 0) {\n            return (0, 0);\n        }\n\n        // First check most recent balance\n        if (\n            rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp <=\n            timestamp\n        ) {\n            return (\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1]\n                    .rewardPerToken,\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp\n            );\n        }\n\n        // Next check implicit zero balance\n        if (rewardPerTokenCheckpoints[token][0].timestamp > timestamp) {\n            return (0, 0);\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            RewardPerTokenCheckpoint memory cp = rewardPerTokenCheckpoints[\n                token\n            ][center];\n            if (cp.timestamp == timestamp) {\n                return (cp.rewardPerToken, cp.timestamp);\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return (\n            rewardPerTokenCheckpoints[token][lower].rewardPerToken,\n            rewardPerTokenCheckpoints[token][lower].timestamp\n        );\n    }\n\n    function _writeCheckpoint(address who, uint256 balance) internal {\n        uint256 _timestamp = block.timestamp;\n        uint256 _nCheckPoints = numCheckpoints[who];\n\n        if (\n            _nCheckPoints > 0 &&\n            checkpoints[who][_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            checkpoints[who][_nCheckPoints - 1].balanceOf = balance;\n        } else {\n            checkpoints[who][_nCheckPoints] = Checkpoint(_timestamp, balance);\n            numCheckpoints[who] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeRewardPerTokenCheckpoint(\n        address token,\n        uint256 reward,\n        uint256 timestamp\n    ) internal {\n        uint256 _nCheckPoints = rewardPerTokenNumCheckpoints[token];\n\n        if (\n            _nCheckPoints > 0 &&\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1].timestamp ==\n            timestamp\n        ) {\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1]\n                .rewardPerToken = reward;\n        } else {\n            rewardPerTokenCheckpoints[token][\n                _nCheckPoints\n            ] = RewardPerTokenCheckpoint(timestamp, reward);\n            rewardPerTokenNumCheckpoints[token] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeSupplyCheckpoint() internal {\n        uint256 _nCheckPoints = supplyNumCheckpoints;\n        uint256 _timestamp = block.timestamp;\n\n        if (\n            _nCheckPoints > 0 &&\n            supplyCheckpoints[_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            supplyCheckpoints[_nCheckPoints - 1].supply = totalSupply;\n        } else {\n            supplyCheckpoints[_nCheckPoints] = SupplyCheckpoint(\n                _timestamp,\n                totalSupply\n            );\n            supplyNumCheckpoints = _nCheckPoints + 1;\n        }\n    }\n\n    function rewardsListLength() external view returns (uint256) {\n        return rewards.length;\n    }\n\n    // returns the last time the reward was modified or periodFinish if the reward has ended\n    function lastTimeRewardApplicable(address token)\n        public\n        view\n        returns (uint256)\n    {\n        return Math.min(block.timestamp, periodFinish[token]);\n    }\n\n    // allows a user to claim rewards for a given token\n    function getReward(address[] memory tokens) external nonReentrant {\n        for (uint256 i = 0; i < tokens.length; i++) {\n            (\n                rewardPerTokenStored[tokens[i]],\n                lastUpdateTime[tokens[i]]\n            ) = _updateRewardPerToken(tokens[i]);\n\n            uint256 _reward = earned(tokens[i], msg.sender);\n            lastEarn[tokens[i]][msg.sender] = block.timestamp;\n            userRewardPerTokenStored[tokens[i]][\n                msg.sender\n            ] = rewardPerTokenStored[tokens[i]];\n            if (_reward > 0) _safeTransfer(tokens[i], msg.sender, _reward);\n\n            emit ClaimRewards(msg.sender, tokens[i], _reward);\n        }\n    }\n\n    // used by BaseV1Voter to allow batched reward claims\n    function getRewardForOwner(address _owner, address[] memory tokens)\n        external\n        override\n        nonReentrant\n    {\n        require(msg.sender == registry.gaugeVoter(), \"not voter\");\n        for (uint256 i = 0; i < tokens.length; i++) {\n            (\n                rewardPerTokenStored[tokens[i]],\n                lastUpdateTime[tokens[i]]\n            ) = _updateRewardPerToken(tokens[i]);\n\n            uint256 _reward = earned(tokens[i], _owner);\n            lastEarn[tokens[i]][_owner] = block.timestamp;\n            userRewardPerTokenStored[tokens[i]][_owner] = rewardPerTokenStored[\n                tokens[i]\n            ];\n            if (_reward > 0) _safeTransfer(tokens[i], _owner, _reward);\n\n            emit ClaimRewards(_owner, tokens[i], _reward);\n        }\n    }\n\n    function rewardPerToken(address token) public view returns (uint256) {\n        if (totalSupply == 0) {\n            return rewardPerTokenStored[token];\n        }\n        return\n            rewardPerTokenStored[token] +\n            (((lastTimeRewardApplicable(token) -\n                Math.min(lastUpdateTime[token], periodFinish[token])) *\n                rewardRate[token] *\n                PRECISION) / totalSupply);\n    }\n\n    function batchRewardPerToken(address token, uint256 maxRuns) external {\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _batchRewardPerToken(token, maxRuns);\n    }\n\n    function _batchRewardPerToken(address token, uint256 maxRuns)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = Math.min(supplyNumCheckpoints - 1, maxRuns);\n\n        for (uint256 i = _startIndex; i < _endIndex; i++) {\n            SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n            if (sp0.supply > 0) {\n                SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                (uint256 _reward, uint256 endTime) = _calcRewardPerToken(\n                    token,\n                    sp1.timestamp,\n                    sp0.timestamp,\n                    sp0.supply,\n                    _startTimestamp\n                );\n                reward += _reward;\n                _writeRewardPerTokenCheckpoint(token, reward, endTime);\n                _startTimestamp = endTime;\n            }\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    function _calcRewardPerToken(\n        address token,\n        uint256 timestamp1,\n        uint256 timestamp0,\n        uint256 supply,\n        uint256 startTimestamp\n    ) internal view returns (uint256, uint256) {\n        uint256 endTime = Math.max(timestamp1, startTimestamp);\n        return (\n            (((Math.min(endTime, periodFinish[token]) -\n                Math.min(\n                    Math.max(timestamp0, startTimestamp),\n                    periodFinish[token]\n                )) *\n                rewardRate[token] *\n                PRECISION) / supply),\n            endTime\n        );\n    }\n\n    function _updateRewardPerToken(address token)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = supplyNumCheckpoints - 1;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n                if (sp0.supply > 0) {\n                    SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                    (uint256 _reward, uint256 _endTime) = _calcRewardPerToken(\n                        token,\n                        sp1.timestamp,\n                        sp0.timestamp,\n                        sp0.supply,\n                        _startTimestamp\n                    );\n                    reward += _reward;\n                    _writeRewardPerTokenCheckpoint(token, reward, _endTime);\n                    _startTimestamp = _endTime;\n                }\n            }\n        }\n\n        SupplyCheckpoint memory sp = supplyCheckpoints[_endIndex];\n        if (sp.supply > 0) {\n            (uint256 _reward, ) = _calcRewardPerToken(\n                token,\n                lastTimeRewardApplicable(token),\n                Math.max(sp.timestamp, _startTimestamp),\n                sp.supply,\n                _startTimestamp\n            );\n            reward += _reward;\n            _writeRewardPerTokenCheckpoint(token, reward, block.timestamp);\n            _startTimestamp = block.timestamp;\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    function earned(address token, address who) public view returns (uint256) {\n        uint256 _startTimestamp = Math.max(\n            lastEarn[token][who],\n            rewardPerTokenCheckpoints[token][0].timestamp\n        );\n        if (numCheckpoints[who] == 0) {\n            return 0;\n        }\n\n        uint256 _startIndex = getPriorBalanceIndex(who, _startTimestamp);\n        uint256 _endIndex = numCheckpoints[who] - 1;\n\n        uint256 reward = 0;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                Checkpoint memory cp0 = checkpoints[who][i];\n                Checkpoint memory cp1 = checkpoints[who][i + 1];\n                (uint256 _rewardPerTokenStored0, ) = getPriorRewardPerToken(\n                    token,\n                    cp0.timestamp\n                );\n                (uint256 _rewardPerTokenStored1, ) = getPriorRewardPerToken(\n                    token,\n                    cp1.timestamp\n                );\n                reward +=\n                    (cp0.balanceOf *\n                        (_rewardPerTokenStored1 - _rewardPerTokenStored0)) /\n                    PRECISION;\n            }\n        }\n\n        Checkpoint memory cp = checkpoints[who][_endIndex];\n        (uint256 _rewardPerTokenStored, ) = getPriorRewardPerToken(\n            token,\n            cp.timestamp\n        );\n        reward +=\n            (cp.balanceOf *\n                (rewardPerToken(token) -\n                    Math.max(\n                        _rewardPerTokenStored,\n                        userRewardPerTokenStored[token][who]\n                    ))) /\n            PRECISION;\n\n        return reward;\n    }\n\n    // This is an external function, but internal notation is used since it can only be called \"internally\" from BaseV1Gauges\n    function _deposit(uint256 amount, address who) external override {\n        registry.ensureNotPaused();\n\n        require(msg.sender == registry.gaugeVoter(), \"not voter\");\n        totalSupply += amount;\n        balanceOf[who] += amount;\n\n        _writeCheckpoint(who, balanceOf[who]);\n        _writeSupplyCheckpoint();\n\n        emit Deposit(msg.sender, who, amount);\n    }\n\n    function _withdraw(uint256 amount, address who) external override {\n        registry.ensureNotPaused();\n\n        require(msg.sender == registry.gaugeVoter(), \"not voter\");\n        totalSupply -= amount;\n        balanceOf[who] -= amount;\n\n        _writeCheckpoint(who, balanceOf[who]);\n        _writeSupplyCheckpoint();\n\n        emit Withdraw(msg.sender, who, amount);\n    }\n\n    function left(address token) external view override returns (uint256) {\n        if (block.timestamp >= periodFinish[token]) return 0;\n        uint256 _remaining = periodFinish[token] - block.timestamp;\n        return _remaining * rewardRate[token];\n    }\n\n    // used to notify a gauge/bribe of a given reward, this can create griefing attacks by extending rewards\n    function notifyRewardAmount(address token, uint256 amount)\n        external\n        override\n        nonReentrant\n    {\n        require(amount > 0, \"amount = 0\");\n        if (rewardRate[token] == 0)\n            _writeRewardPerTokenCheckpoint(token, 0, block.timestamp);\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _updateRewardPerToken(token);\n\n        if (block.timestamp >= periodFinish[token]) {\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = amount / DURATION;\n        } else {\n            uint256 _remaining = periodFinish[token] - block.timestamp;\n            uint256 _left = _remaining * rewardRate[token];\n            require(amount > _left, \"amount < left\");\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = (amount + _left) / DURATION;\n        }\n        require(rewardRate[token] > 0, \"rewardRate = 0\");\n        uint256 balance = IERC20(token).balanceOf(address(this));\n        require(\n            rewardRate[token] <= balance / DURATION,\n            \"Provided reward too high\"\n        );\n        periodFinish[token] = block.timestamp + DURATION;\n        if (!isReward[token]) {\n            isReward[token] = true;\n            rewards.push(token);\n        }\n\n        emit NotifyReward(msg.sender, token, amount);\n    }\n\n    function _safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid token code\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(IERC20.transfer.selector, to, value)\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transfer failed\"\n        );\n    }\n\n    function _safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid token code\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(\n                IERC20.transferFrom.selector,\n                from,\n                to,\n                value\n            )\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transferFrom failed\"\n        );\n    }\n}\n"},"contracts/bribes/BaseV2BribesFactory.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {BaseV2Bribes} from \"./BaseV2Bribes.sol\";\nimport {IBribeFactory} from \"../interfaces/IBribeFactory.sol\";\n\ncontract BaseV2BribesFactory is IBribeFactory {\n    function createBribe(address _registry)\n        external\n        override\n        returns (address)\n    {\n        address bribe = address(new BaseV2Bribes(_registry));\n        emit BribeCreated(bribe);\n        return bribe;\n    }\n}\n"},"contracts/bribes/BaseV1BribesFactory.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {BaseV1Bribes} from \"./BaseV1Bribes.sol\";\nimport {IBribeFactory} from \"../interfaces/IBribeFactory.sol\";\n\ncontract BaseV1BribeFactory is IBribeFactory {\n    function createBribe(address _registry)\n        external\n        override\n        returns (address)\n    {\n        address bribe = address(new BaseV1Bribes(_registry));\n        emit BribeCreated(bribe);\n        return bribe;\n    }\n}\n"},"contracts/bribes/BaseV1Bribes.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\n\nimport {IGaugeVoter} from \"../interfaces/IGaugeVoter.sol\";\nimport {IRegistry} from \"../interfaces/IRegistry.sol\";\nimport {INFTLocker} from \"../interfaces/INFTLocker.sol\";\nimport {IBribe} from \"../interfaces/IBribe.sol\";\n\n// Bribes pay out rewards for a given pool based on the votes that were received from the user (goes hand in hand with BaseV1Gauges.vote())\ncontract BaseV1Bribes is ReentrancyGuard, IBribe {\n    IRegistry public immutable override registry;\n\n    uint256 public constant DURATION = 7 days; // rewards are released over 7 days\n    uint256 public constant PRECISION = 10**18;\n\n    // default snx staking contract implementation\n    mapping(address => uint256) public rewardRate;\n    mapping(address => uint256) public periodFinish;\n    mapping(address => uint256) public lastUpdateTime;\n    mapping(address => uint256) public rewardPerTokenStored;\n\n    mapping(address => mapping(uint256 => uint256)) public lastEarn;\n    mapping(address => mapping(uint256 => uint256))\n        public userRewardPerTokenStored;\n\n    address[] public rewards;\n    mapping(address => bool) public isReward;\n\n    uint256 public totalSupply;\n    mapping(uint256 => uint256) public balanceOf;\n\n    /// @notice A checkpoint for marking balance\n    struct Checkpoint {\n        uint256 timestamp;\n        uint256 balanceOf;\n    }\n\n    /// @notice A checkpoint for marking reward rate\n    struct RewardPerTokenCheckpoint {\n        uint256 timestamp;\n        uint256 rewardPerToken;\n    }\n\n    /// @notice A checkpoint for marking supply\n    struct SupplyCheckpoint {\n        uint256 timestamp;\n        uint256 supply;\n    }\n\n    /// @notice A record of balance checkpoints for each account, by index\n    mapping(uint256 => mapping(uint256 => Checkpoint)) public checkpoints;\n\n    /// @notice The number of checkpoints for each account\n    mapping(uint256 => uint256) public numCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(uint256 => SupplyCheckpoint) public supplyCheckpoints;\n\n    /// @notice The number of checkpoints\n    uint256 public supplyNumCheckpoints;\n\n    /// @notice A record of balance checkpoints for each token, by index\n    mapping(address => mapping(uint256 => RewardPerTokenCheckpoint))\n        public rewardPerTokenCheckpoints;\n\n    /// @notice The number of checkpoints for each token\n    mapping(address => uint256) public rewardPerTokenNumCheckpoints;\n\n    constructor(address _registry) {\n        registry = IRegistry(_registry);\n    }\n\n    /**\n     * @notice Determine the prior balance for an account as of a block number\n     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n     * @param tokenId The token of the NFT to check\n     * @param timestamp The timestamp to get the balance at\n     * @return The balance the account had as of the given block\n     */\n    function getPriorBalanceIndex(uint256 tokenId, uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = numCheckpoints[tokenId];\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (checkpoints[tokenId][nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (checkpoints[tokenId][0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            Checkpoint memory cp = checkpoints[tokenId][center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorSupplyIndex(uint256 timestamp)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 nCheckpoints = supplyNumCheckpoints;\n        if (nCheckpoints == 0) {\n            return 0;\n        }\n\n        // First check most recent balance\n        if (supplyCheckpoints[nCheckpoints - 1].timestamp <= timestamp) {\n            return (nCheckpoints - 1);\n        }\n\n        // Next check implicit zero balance\n        if (supplyCheckpoints[0].timestamp > timestamp) {\n            return 0;\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            SupplyCheckpoint memory cp = supplyCheckpoints[center];\n            if (cp.timestamp == timestamp) {\n                return center;\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return lower;\n    }\n\n    function getPriorRewardPerToken(address token, uint256 timestamp)\n        public\n        view\n        returns (uint256, uint256)\n    {\n        uint256 nCheckpoints = rewardPerTokenNumCheckpoints[token];\n        if (nCheckpoints == 0) {\n            return (0, 0);\n        }\n\n        // First check most recent balance\n        if (\n            rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp <=\n            timestamp\n        ) {\n            return (\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1]\n                    .rewardPerToken,\n                rewardPerTokenCheckpoints[token][nCheckpoints - 1].timestamp\n            );\n        }\n\n        // Next check implicit zero balance\n        if (rewardPerTokenCheckpoints[token][0].timestamp > timestamp) {\n            return (0, 0);\n        }\n\n        uint256 lower = 0;\n        uint256 upper = nCheckpoints - 1;\n        while (upper > lower) {\n            uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n            RewardPerTokenCheckpoint memory cp = rewardPerTokenCheckpoints[\n                token\n            ][center];\n            if (cp.timestamp == timestamp) {\n                return (cp.rewardPerToken, cp.timestamp);\n            } else if (cp.timestamp < timestamp) {\n                lower = center;\n            } else {\n                upper = center - 1;\n            }\n        }\n        return (\n            rewardPerTokenCheckpoints[token][lower].rewardPerToken,\n            rewardPerTokenCheckpoints[token][lower].timestamp\n        );\n    }\n\n    function _writeCheckpoint(uint256 tokenId, uint256 balance) internal {\n        uint256 _timestamp = block.timestamp;\n        uint256 _nCheckPoints = numCheckpoints[tokenId];\n\n        if (\n            _nCheckPoints > 0 &&\n            checkpoints[tokenId][_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            checkpoints[tokenId][_nCheckPoints - 1].balanceOf = balance;\n        } else {\n            checkpoints[tokenId][_nCheckPoints] = Checkpoint(\n                _timestamp,\n                balance\n            );\n            numCheckpoints[tokenId] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeRewardPerTokenCheckpoint(\n        address token,\n        uint256 reward,\n        uint256 timestamp\n    ) internal {\n        uint256 _nCheckPoints = rewardPerTokenNumCheckpoints[token];\n\n        if (\n            _nCheckPoints > 0 &&\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1].timestamp ==\n            timestamp\n        ) {\n            rewardPerTokenCheckpoints[token][_nCheckPoints - 1]\n                .rewardPerToken = reward;\n        } else {\n            rewardPerTokenCheckpoints[token][\n                _nCheckPoints\n            ] = RewardPerTokenCheckpoint(timestamp, reward);\n            rewardPerTokenNumCheckpoints[token] = _nCheckPoints + 1;\n        }\n    }\n\n    function _writeSupplyCheckpoint() internal {\n        uint256 _nCheckPoints = supplyNumCheckpoints;\n        uint256 _timestamp = block.timestamp;\n\n        if (\n            _nCheckPoints > 0 &&\n            supplyCheckpoints[_nCheckPoints - 1].timestamp == _timestamp\n        ) {\n            supplyCheckpoints[_nCheckPoints - 1].supply = totalSupply;\n        } else {\n            supplyCheckpoints[_nCheckPoints] = SupplyCheckpoint(\n                _timestamp,\n                totalSupply\n            );\n            supplyNumCheckpoints = _nCheckPoints + 1;\n        }\n    }\n\n    function rewardsListLength() external view returns (uint256) {\n        return rewards.length;\n    }\n\n    // returns the last time the reward was modified or periodFinish if the reward has ended\n    function lastTimeRewardApplicable(address token)\n        public\n        view\n        returns (uint256)\n    {\n        return Math.min(block.timestamp, periodFinish[token]);\n    }\n\n    // allows a user to claim rewards for a given token\n    function getReward(uint256 tokenId, address[] memory tokens)\n        external\n        nonReentrant\n    {\n        require(\n            INFTLocker(registry.locker()).isApprovedOrOwner(\n                msg.sender,\n                tokenId\n            ),\n            \"not ve approved owner\"\n        );\n        for (uint256 i = 0; i < tokens.length; i++) {\n            (\n                rewardPerTokenStored[tokens[i]],\n                lastUpdateTime[tokens[i]]\n            ) = _updateRewardPerToken(tokens[i]);\n\n            uint256 _reward = earned(tokens[i], tokenId);\n            lastEarn[tokens[i]][tokenId] = block.timestamp;\n            userRewardPerTokenStored[tokens[i]][tokenId] = rewardPerTokenStored[\n                tokens[i]\n            ];\n            if (_reward > 0) _safeTransfer(tokens[i], msg.sender, _reward);\n\n            emit ClaimRewards(msg.sender, tokens[i], _reward);\n        }\n    }\n\n    // used by BaseV1Voter to allow batched reward claims\n    function getRewardForOwner(uint256 tokenId, address[] memory tokens)\n        external\n        override\n        nonReentrant\n    {\n        require(msg.sender == registry.gaugeVoter(), \"not voter\");\n        address _owner = INFTLocker(registry.locker()).ownerOf(tokenId);\n        for (uint256 i = 0; i < tokens.length; i++) {\n            (\n                rewardPerTokenStored[tokens[i]],\n                lastUpdateTime[tokens[i]]\n            ) = _updateRewardPerToken(tokens[i]);\n\n            uint256 _reward = earned(tokens[i], tokenId);\n            lastEarn[tokens[i]][tokenId] = block.timestamp;\n            userRewardPerTokenStored[tokens[i]][tokenId] = rewardPerTokenStored[\n                tokens[i]\n            ];\n            if (_reward > 0) _safeTransfer(tokens[i], _owner, _reward);\n\n            emit ClaimRewards(_owner, tokens[i], _reward);\n        }\n    }\n\n    function rewardPerToken(address token) public view returns (uint256) {\n        if (totalSupply == 0) {\n            return rewardPerTokenStored[token];\n        }\n        return\n            rewardPerTokenStored[token] +\n            (((lastTimeRewardApplicable(token) -\n                Math.min(lastUpdateTime[token], periodFinish[token])) *\n                rewardRate[token] *\n                PRECISION) / totalSupply);\n    }\n\n    function batchRewardPerToken(address token, uint256 maxRuns) external {\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _batchRewardPerToken(token, maxRuns);\n    }\n\n    function _batchRewardPerToken(address token, uint256 maxRuns)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = Math.min(supplyNumCheckpoints - 1, maxRuns);\n\n        for (uint256 i = _startIndex; i < _endIndex; i++) {\n            SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n            if (sp0.supply > 0) {\n                SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                (uint256 _reward, uint256 endTime) = _calcRewardPerToken(\n                    token,\n                    sp1.timestamp,\n                    sp0.timestamp,\n                    sp0.supply,\n                    _startTimestamp\n                );\n                reward += _reward;\n                _writeRewardPerTokenCheckpoint(token, reward, endTime);\n                _startTimestamp = endTime;\n            }\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    function _calcRewardPerToken(\n        address token,\n        uint256 timestamp1,\n        uint256 timestamp0,\n        uint256 supply,\n        uint256 startTimestamp\n    ) internal view returns (uint256, uint256) {\n        uint256 endTime = Math.max(timestamp1, startTimestamp);\n        return (\n            (((Math.min(endTime, periodFinish[token]) -\n                Math.min(\n                    Math.max(timestamp0, startTimestamp),\n                    periodFinish[token]\n                )) *\n                rewardRate[token] *\n                PRECISION) / supply),\n            endTime\n        );\n    }\n\n    function _updateRewardPerToken(address token)\n        internal\n        returns (uint256, uint256)\n    {\n        uint256 _startTimestamp = lastUpdateTime[token];\n        uint256 reward = rewardPerTokenStored[token];\n\n        if (supplyNumCheckpoints == 0) {\n            return (reward, _startTimestamp);\n        }\n\n        if (rewardRate[token] == 0) {\n            return (reward, block.timestamp);\n        }\n\n        uint256 _startIndex = getPriorSupplyIndex(_startTimestamp);\n        uint256 _endIndex = supplyNumCheckpoints - 1;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                SupplyCheckpoint memory sp0 = supplyCheckpoints[i];\n                if (sp0.supply > 0) {\n                    SupplyCheckpoint memory sp1 = supplyCheckpoints[i + 1];\n                    (uint256 _reward, uint256 _endTime) = _calcRewardPerToken(\n                        token,\n                        sp1.timestamp,\n                        sp0.timestamp,\n                        sp0.supply,\n                        _startTimestamp\n                    );\n                    reward += _reward;\n                    _writeRewardPerTokenCheckpoint(token, reward, _endTime);\n                    _startTimestamp = _endTime;\n                }\n            }\n        }\n\n        SupplyCheckpoint memory sp = supplyCheckpoints[_endIndex];\n        if (sp.supply > 0) {\n            (uint256 _reward, ) = _calcRewardPerToken(\n                token,\n                lastTimeRewardApplicable(token),\n                Math.max(sp.timestamp, _startTimestamp),\n                sp.supply,\n                _startTimestamp\n            );\n            reward += _reward;\n            _writeRewardPerTokenCheckpoint(token, reward, block.timestamp);\n            _startTimestamp = block.timestamp;\n        }\n\n        return (reward, _startTimestamp);\n    }\n\n    function earned(address token, uint256 tokenId)\n        public\n        view\n        returns (uint256)\n    {\n        uint256 _startTimestamp = Math.max(\n            lastEarn[token][tokenId],\n            rewardPerTokenCheckpoints[token][0].timestamp\n        );\n        if (numCheckpoints[tokenId] == 0) {\n            return 0;\n        }\n\n        uint256 _startIndex = getPriorBalanceIndex(tokenId, _startTimestamp);\n        uint256 _endIndex = numCheckpoints[tokenId] - 1;\n\n        uint256 reward = 0;\n\n        if (_endIndex - _startIndex > 1) {\n            for (uint256 i = _startIndex; i < _endIndex - 1; i++) {\n                Checkpoint memory cp0 = checkpoints[tokenId][i];\n                Checkpoint memory cp1 = checkpoints[tokenId][i + 1];\n                (uint256 _rewardPerTokenStored0, ) = getPriorRewardPerToken(\n                    token,\n                    cp0.timestamp\n                );\n                (uint256 _rewardPerTokenStored1, ) = getPriorRewardPerToken(\n                    token,\n                    cp1.timestamp\n                );\n                reward +=\n                    (cp0.balanceOf *\n                        (_rewardPerTokenStored1 - _rewardPerTokenStored0)) /\n                    PRECISION;\n            }\n        }\n\n        Checkpoint memory cp = checkpoints[tokenId][_endIndex];\n        (uint256 _rewardPerTokenStored, ) = getPriorRewardPerToken(\n            token,\n            cp.timestamp\n        );\n        reward +=\n            (cp.balanceOf *\n                (rewardPerToken(token) -\n                    Math.max(\n                        _rewardPerTokenStored,\n                        userRewardPerTokenStored[token][tokenId]\n                    ))) /\n            PRECISION;\n\n        return reward;\n    }\n\n    // This is an external function, but internal notation is used since it can only be called \"internally\" from BaseV1Gauges\n    function _deposit(uint256 amount, uint256 tokenId) external override {\n        registry.ensureNotPaused();\n\n        require(msg.sender == registry.gaugeVoter(), \"not voter\");\n        totalSupply += amount;\n        balanceOf[tokenId] += amount;\n\n        _writeCheckpoint(tokenId, balanceOf[tokenId]);\n        _writeSupplyCheckpoint();\n\n        emit Deposit(msg.sender, tokenId, amount);\n    }\n\n    function _withdraw(uint256 amount, uint256 tokenId) external override {\n        registry.ensureNotPaused();\n\n        require(msg.sender == registry.gaugeVoter(), \"not voter\");\n        totalSupply -= amount;\n        balanceOf[tokenId] -= amount;\n\n        _writeCheckpoint(tokenId, balanceOf[tokenId]);\n        _writeSupplyCheckpoint();\n\n        emit Withdraw(msg.sender, tokenId, amount);\n    }\n\n    function left(address token) external view override returns (uint256) {\n        if (block.timestamp >= periodFinish[token]) return 0;\n        uint256 _remaining = periodFinish[token] - block.timestamp;\n        return _remaining * rewardRate[token];\n    }\n\n    // used to notify a gauge/bribe of a given reward, this can create griefing attacks by extending rewards\n    function notifyRewardAmount(address token, uint256 amount)\n        external\n        override\n        nonReentrant\n    {\n        require(amount > 0, \"amount = 0\");\n        if (rewardRate[token] == 0)\n            _writeRewardPerTokenCheckpoint(token, 0, block.timestamp);\n        (\n            rewardPerTokenStored[token],\n            lastUpdateTime[token]\n        ) = _updateRewardPerToken(token);\n\n        if (block.timestamp >= periodFinish[token]) {\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = amount / DURATION;\n        } else {\n            uint256 _remaining = periodFinish[token] - block.timestamp;\n            uint256 _left = _remaining * rewardRate[token];\n            require(amount > _left, \"amount < left\");\n            _safeTransferFrom(token, msg.sender, address(this), amount);\n            rewardRate[token] = (amount + _left) / DURATION;\n        }\n        require(rewardRate[token] > 0, \"rewardRate = 0\");\n        uint256 balance = IERC20(token).balanceOf(address(this));\n        require(\n            rewardRate[token] <= balance / DURATION,\n            \"Provided reward too high\"\n        );\n        periodFinish[token] = block.timestamp + DURATION;\n        if (!isReward[token]) {\n            isReward[token] = true;\n            rewards.push(token);\n        }\n\n        emit NotifyReward(msg.sender, token, amount);\n    }\n\n    function _safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid token code\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(IERC20.transfer.selector, to, value)\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transfer failed\"\n        );\n    }\n\n    function _safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        require(token.code.length > 0, \"invalid token code\");\n        (bool success, bytes memory data) = token.call(\n            abi.encodeWithSelector(\n                IERC20.transferFrom.selector,\n                from,\n                to,\n                value\n            )\n        );\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            \"transferFrom failed\"\n        );\n    }\n}\n"},"contracts/LockMigrator.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {Context, Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {MerkleProof} from \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {Pausable} from \"@openzeppelin/contracts/security/Pausable.sol\";\n\nimport {INFTLocker} from \"./interfaces/INFTLocker.sol\";\nimport {ILockMigrator} from \"./interfaces/ILockMigrator.sol\";\n\ncontract LockMigrator is ILockMigrator, Ownable, Pausable, ReentrancyGuard {\n    bytes32 public merkleRoot;\n    uint256 public migrationReward = 10 * 1e18;\n\n    IERC20 public maha;\n    IERC20 public scallop;\n    INFTLocker public mahaxLocker;\n\n    uint256 internal constant WEEK = 1 weeks;\n\n    mapping(uint256 => bool) public isTokenIdMigrated;\n    mapping(uint256 => bool) public isTokenIdBanned;\n    mapping(address => bool) public isAddressBanned;\n\n    constructor(\n        bytes32 _merkleRoot,\n        IERC20 _maha,\n        IERC20 _scallop,\n        INFTLocker _mahaxLocker\n    ) {\n        merkleRoot = _merkleRoot;\n        maha = _maha;\n        scallop = _scallop;\n        mahaxLocker = _mahaxLocker;\n    }\n\n    function setMigrationReward(uint256 reward) external override onlyOwner {\n        emit MigrationRewardChanged(migrationReward, reward);\n        migrationReward = reward;\n    }\n\n    function _migrateLock(\n        uint256 _value,\n        uint256 _endDate,\n        uint256 _tokenId,\n        address _who,\n        uint256 _mahaReward,\n        uint256 _scallopReward,\n        bytes32[] memory proof\n    ) internal nonReentrant whenNotPaused returns (uint256) {\n        require(_endDate >= (block.timestamp + 2 * WEEK), \"end date expired\");\n        require(_tokenId != 0, \"tokenId is 0\");\n        require(!isTokenIdMigrated[_tokenId], \"tokenId already migrated\");\n        require(!isTokenIdBanned[_tokenId], \"tokenId banned\");\n        require(!isAddressBanned[_who], \"owner banned\");\n\n        bool _isLockvalid = isLockValid(\n            _value,\n            _endDate,\n            _who,\n            _tokenId,\n            _mahaReward,\n            _scallopReward,\n            proof\n        );\n        require(_isLockvalid, \"Migrator: invalid lock\");\n\n        uint256 _lockDuration = _endDate - block.timestamp;\n        uint256 newTokenId = mahaxLocker.migrateTokenFor(\n            _value,\n            _lockDuration,\n            _who\n        );\n        require(newTokenId > 0, \"Migrator: migration failed\");\n\n        isTokenIdMigrated[_tokenId] = true;\n\n        if (_mahaReward > 0) maha.transfer(_who, _mahaReward);\n        if (_scallopReward > 0) scallop.transfer(_who, _scallopReward);\n        if (migrationReward > 0) maha.transfer(msg.sender, migrationReward);\n\n        return newTokenId;\n    }\n\n    function migrateLock(\n        uint256 _value,\n        uint256 _endDate,\n        uint256 _tokenId,\n        address _who,\n        uint256 _mahaReward,\n        uint256 _scallopReward,\n        bytes32[] memory _proof\n    ) external override returns (uint256) {\n        return\n            _migrateLock(\n                _value,\n                _endDate,\n                _tokenId,\n                _who,\n                _mahaReward,\n                _scallopReward,\n                _proof\n            );\n    }\n\n    function migrateLocks(\n        uint256[] memory _value,\n        uint256[] memory _endDate,\n        uint256[] memory _tokenId,\n        address[] memory _who,\n        uint256[] memory _mahaReward,\n        uint256[] memory _scallopReward,\n        bytes32[][] memory proof\n    ) external {\n        for (uint256 index = 0; index < _value.length; index++) {\n            _migrateLock(\n                _value[index],\n                _endDate[index],\n                _tokenId[index],\n                _who[index],\n                _mahaReward[index],\n                _scallopReward[index],\n                proof[index]\n            );\n        }\n    }\n\n    function isLockValid(\n        uint256 _value,\n        uint256 _endDate,\n        address _owner,\n        uint256 _tokenId,\n        uint256 _mahaReward,\n        uint256 _scallopReward,\n        bytes32[] memory proof\n    ) public view override returns (bool) {\n        bytes32 leaf = keccak256(\n            abi.encode(\n                _value,\n                _endDate,\n                _owner,\n                _tokenId,\n                _mahaReward,\n                _scallopReward\n            )\n        );\n        return MerkleProof.verify(proof, merkleRoot, leaf);\n    }\n\n    function refund() external onlyOwner {\n        maha.transfer(msg.sender, maha.balanceOf(address(this)));\n        scallop.transfer(msg.sender, scallop.balanceOf(address(this)));\n    }\n\n    function toggleBanID(uint256 id) external onlyOwner {\n        isTokenIdBanned[id] = !isTokenIdBanned[id];\n    }\n\n    function togglePause() external onlyOwner {\n        if (paused()) _unpause();\n        else _pause();\n    }\n\n    function toggleBanOwner(address _who) external onlyOwner {\n        isAddressBanned[_who] = !isAddressBanned[_who];\n    }\n}\n"},"contracts/interfaces/ILockMigrator.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface ILockMigrator {\n    function setMigrationReward(uint256 reward) external;\n\n    function migrateLock(\n        uint256 _value,\n        uint256 _lockDuration,\n        uint256 _tokenId,\n        address _owner,\n        uint256 _mahaReward,\n        uint256 _scallopReward,\n        bytes32[] memory proof\n    ) external returns (uint256);\n\n    function isLockValid(\n        uint256 _value,\n        uint256 _lockDuration,\n        address _owner,\n        uint256 _tokenId,\n        uint256 _mahaReward,\n        uint256 _scallopReward,\n        bytes32[] memory proof\n    ) external view returns (bool);\n\n    event MigrationRewardChanged(uint256 oldReward, uint256 newReward);\n    event TransferMigrationReward(\n        address indexed who,\n        address indexed token,\n        uint256 amount\n    );\n}\n"},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/cryptography/MerkleProof.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev These functions deal with verification of Merkle Tree proofs.\n *\n * The proofs can be generated using the JavaScript library\n * https://github.com/miguelmota/merkletreejs[merkletreejs].\n * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.\n *\n * See `test/utils/cryptography/MerkleProof.test.js` for some examples.\n *\n * WARNING: You should avoid using leaf values that are 64 bytes long prior to\n * hashing, or use a hash function other than keccak256 for hashing leaves.\n * This is because the concatenation of a sorted pair of internal nodes in\n * the merkle tree could be reinterpreted as a leaf value.\n */\nlibrary MerkleProof {\n    /**\n     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n     * defined by `root`. For this, a `proof` must be provided, containing\n     * sibling hashes on the branch from the leaf to the root of the tree. Each\n     * pair of leaves and each pair of pre-images are assumed to be sorted.\n     */\n    function verify(\n        bytes32[] memory proof,\n        bytes32 root,\n        bytes32 leaf\n    ) internal pure returns (bool) {\n        return processProof(proof, leaf) == root;\n    }\n\n    /**\n     * @dev Calldata version of {verify}\n     *\n     * _Available since v4.7._\n     */\n    function verifyCalldata(\n        bytes32[] calldata proof,\n        bytes32 root,\n        bytes32 leaf\n    ) internal pure returns (bool) {\n        return processProofCalldata(proof, leaf) == root;\n    }\n\n    /**\n     * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n     * hash matches the root of the tree. When processing the proof, the pairs\n     * of leafs & pre-images are assumed to be sorted.\n     *\n     * _Available since v4.4._\n     */\n    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = _hashPair(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Calldata version of {processProof}\n     *\n     * _Available since v4.7._\n     */\n    function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = _hashPair(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Returns true if the `leaves` can be proved to be a part of a Merkle tree defined by\n     * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n     *\n     * _Available since v4.7._\n     */\n    function multiProofVerify(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves\n    ) internal pure returns (bool) {\n        return processMultiProof(proof, proofFlags, leaves) == root;\n    }\n\n    /**\n     * @dev Calldata version of {multiProofVerify}\n     *\n     * _Available since v4.7._\n     */\n    function multiProofVerifyCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves\n    ) internal pure returns (bool) {\n        return processMultiProofCalldata(proof, proofFlags, leaves) == root;\n    }\n\n    /**\n     * @dev Returns the root of a tree reconstructed from `leaves` and the sibling nodes in `proof`,\n     * consuming from one or the other at each step according to the instructions given by\n     * `proofFlags`.\n     *\n     * _Available since v4.7._\n     */\n    function processMultiProof(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32[] memory leaves\n    ) internal pure returns (bytes32 merkleRoot) {\n        // This function rebuild the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 totalHashes = proofFlags.length;\n\n        // Check proof validity.\n        require(leavesLen + proof.length - 1 == totalHashes, \"MerkleProof: invalid multiproof\");\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](totalHashes);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value for the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < totalHashes; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i] ? leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++] : proof[proofPos++];\n            hashes[i] = _hashPair(a, b);\n        }\n\n        if (totalHashes > 0) {\n            return hashes[totalHashes - 1];\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n\n    /**\n     * @dev Calldata version of {processMultiProof}\n     *\n     * _Available since v4.7._\n     */\n    function processMultiProofCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32[] memory leaves\n    ) internal pure returns (bytes32 merkleRoot) {\n        // This function rebuild the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 totalHashes = proofFlags.length;\n\n        // Check proof validity.\n        require(leavesLen + proof.length - 1 == totalHashes, \"MerkleProof: invalid multiproof\");\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](totalHashes);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value for the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < totalHashes; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i] ? leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++] : proof[proofPos++];\n            hashes[i] = _hashPair(a, b);\n        }\n\n        if (totalHashes > 0) {\n            return hashes[totalHashes - 1];\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n\n    function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) {\n        return a < b ? _efficientHash(a, b) : _efficientHash(b, a);\n    }\n\n    function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            mstore(0x00, a)\n            mstore(0x20, b)\n            value := keccak256(0x00, 0x40)\n        }\n    }\n}\n"},"contracts/fees/PendingFeeDistributor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {Context, Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {ReentrancyGuard} from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport {MerkleProof} from \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\nimport {IPendingFeeDistributor} from \"../interfaces/IPendingFeeDistributor.sol\";\n\ncontract PendingFeeDistributor is\n    IPendingFeeDistributor,\n    Ownable,\n    ReentrancyGuard\n{\n    bytes32 public merkleRoot;\n\n    IERC20 public rewardToken;\n    mapping(uint256 => bool) public hasClaimed;\n\n    constructor(bytes32 _merkleRoot, address _rewardToken) {\n        merkleRoot = _merkleRoot;\n        rewardToken = IERC20(_rewardToken);\n    }\n\n    function distribute(\n        uint256 _tokenId,\n        address _owner,\n        uint256 _reward,\n        bytes32[] memory proof\n    ) external override nonReentrant returns (uint256) {\n        require(validProof(_tokenId, _owner, _reward, proof), \"invalid proof\");\n        require(_tokenId > 0, \"Token id = 0\");\n\n        if (hasClaimed[_tokenId]) return 0;\n        hasClaimed[_tokenId] = true;\n\n        rewardToken.transfer(_owner, _reward);\n        emit HistoricRewardPaid(_owner, _tokenId, _reward);\n        return _reward;\n    }\n\n    function validProof(\n        uint256 _tokenId,\n        address _owner,\n        uint256 _reward,\n        bytes32[] memory proof\n    ) public view override returns (bool) {\n        bytes32 leaf = keccak256(abi.encode(_owner, _reward, _tokenId));\n        return MerkleProof.verify(proof, merkleRoot, leaf);\n    }\n\n    function refund(IERC20 token) external onlyOwner {\n        token.transfer(msg.sender, token.balanceOf(address(this)));\n    }\n}\n"},"contracts/Regsitry.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {AccessControl} from \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport {IRegistry} from \"./interfaces/IRegistry.sol\";\n\ncontract Registry is AccessControl, IRegistry {\n    address public override maha;\n    address public override locker;\n    address public override gaugeVoter;\n    address public override governor;\n    address public override staker;\n    address public override emissionController;\n    bool public paused;\n\n    bool internal initialized;\n\n    bytes32 public constant EMERGENCY_STOP_ROLE =\n        keccak256(\"EMERGENCY_STOP_ROLE\");\n\n    function initialize(\n        address _maha,\n        address _gaugeVoter,\n        address _locker,\n        address _governor,\n        address _staker,\n        address _emissionController,\n        address _governance\n    ) external {\n        require(!initialized, \"already initialized\");\n\n        maha = _maha;\n        gaugeVoter = _gaugeVoter;\n        locker = _locker;\n        governor = _governor;\n        staker = _staker;\n        emissionController = _emissionController;\n\n        _setupRole(DEFAULT_ADMIN_ROLE, _governance);\n        _setupRole(EMERGENCY_STOP_ROLE, _governance);\n\n        initialized = true;\n    }\n\n    modifier onlyGovernance() {\n        require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"not governance\");\n        _;\n    }\n\n    function toggleProtocol() external {\n        require(\n            hasRole(EMERGENCY_STOP_ROLE, msg.sender) ||\n                hasRole(DEFAULT_ADMIN_ROLE, msg.sender),\n            \"not governance or emergency\"\n        );\n        paused = !paused;\n    }\n\n    function ensureNotPaused() external view override {\n        require(!paused, \"protocol is paused\");\n    }\n\n    function getAllAddresses()\n        external\n        view\n        override\n        returns (\n            address,\n            address,\n            address,\n            address,\n            address\n        )\n    {\n        return (maha, gaugeVoter, locker, governor, staker);\n    }\n\n    function setMAHA(address _new) external override onlyGovernance {\n        emit MahaChanged(msg.sender, maha, _new);\n        maha = _new;\n    }\n\n    function setVoter(address _new) external override onlyGovernance {\n        emit VoterChanged(msg.sender, gaugeVoter, _new);\n        gaugeVoter = _new;\n    }\n\n    function setLocker(address _new) external override onlyGovernance {\n        emit LockerChanged(msg.sender, locker, _new);\n        locker = _new;\n    }\n\n    function setGovernor(address _new) external override onlyGovernance {\n        emit GovernorChanged(msg.sender, governor, _new);\n        governor = _new;\n    }\n\n    function setEmissionController(address _new)\n        external\n        override\n        onlyGovernance\n    {\n        emit EmissionControllerChanged(msg.sender, emissionController, _new);\n        emissionController = _new;\n    }\n\n    function setStaker(address _new) external override onlyGovernance {\n        emit GovernorChanged(msg.sender, governor, _new);\n        staker = _new;\n    }\n}\n"},"contracts/MAHATimelockController.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (governance/TimelockController.sol)\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\";\nimport \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport \"@openzeppelin/contracts/utils/Address.sol\";\n\n/**\n * @dev Contract module which acts as a timelocked controller. When set as the\n * owner of an `Ownable` smart contract, it enforces a timelock on all\n * `onlyOwner` maintenance operations. This gives time for users of the\n * controlled contract to exit before a potentially dangerous maintenance\n * operation is applied.\n *\n * By default, this contract is self administered, meaning administration tasks\n * have to go through the timelock process. The proposer (resp executor) role\n * is in charge of proposing (resp executing) operations. A common use case is\n * to position this {TimelockController} as the owner of a smart contract, with\n * a multisig or a DAO as the sole proposer.\n *\n * _Available since v3.3._\n */\ncontract MAHATimelockController is\n    AccessControlEnumerable,\n    IERC721Receiver,\n    IERC1155Receiver\n{\n    bytes32 public constant TIMELOCK_ADMIN_ROLE =\n        keccak256(\"TIMELOCK_ADMIN_ROLE\");\n    bytes32 public constant PROPOSER_ROLE = keccak256(\"PROPOSER_ROLE\");\n    bytes32 public constant EXECUTOR_ROLE = keccak256(\"EXECUTOR_ROLE\");\n    bytes32 public constant CANCELLER_ROLE = keccak256(\"CANCELLER_ROLE\");\n    uint256 internal constant _DONE_TIMESTAMP = uint256(1);\n\n    mapping(bytes32 => uint256) private _timestamps;\n    uint256 private _minDelay;\n\n    /**\n     * @dev Emitted when a call is scheduled as part of operation `id`.\n     */\n    event CallScheduled(\n        bytes32 indexed id,\n        uint256 indexed index,\n        address target,\n        uint256 value,\n        bytes data,\n        bytes32 predecessor,\n        uint256 delay\n    );\n\n    /**\n     * @dev Emitted when a call is performed as part of operation `id`.\n     */\n    event CallExecuted(\n        bytes32 indexed id,\n        uint256 indexed index,\n        address target,\n        uint256 value,\n        bytes data\n    );\n\n    /**\n     * @dev Emitted when operation `id` is cancelled.\n     */\n    event Cancelled(bytes32 indexed id);\n\n    /**\n     * @dev Emitted when the minimum delay for future operations is modified.\n     */\n    event MinDelayChange(uint256 oldDuration, uint256 newDuration);\n\n    /**\n     * @dev Initializes the contract with a given `minDelay`, and a list of\n     * initial proposers and executors. The proposers receive both the\n     * proposer and the canceller role (for backward compatibility). The\n     * executors receive the executor role.\n     *\n     * NOTE: At construction, both the deployer and the timelock itself are\n     * administrators. This helps further configuration of the timelock by the\n     * deployer. After configuration is done, it is recommended that the\n     * deployer renounces its admin position and relies on timelocked\n     * operations to perform future maintenance.\n     */\n    constructor(\n        uint256 minDelay,\n        address admin,\n        address[] memory proposers,\n        address[] memory cancellors,\n        address[] memory executors\n    ) {\n        _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(CANCELLER_ROLE, TIMELOCK_ADMIN_ROLE);\n\n        // deployer + self administration\n        _setupRole(TIMELOCK_ADMIN_ROLE, admin);\n        _setupRole(TIMELOCK_ADMIN_ROLE, address(this));\n\n        // register proposers and cancellers\n        for (uint256 i = 0; i < proposers.length; ++i) {\n            _setupRole(PROPOSER_ROLE, proposers[i]);\n            _setupRole(CANCELLER_ROLE, proposers[i]);\n        }\n        // register cancellers\n        for (uint256 i = 0; i < cancellors.length; ++i) {\n            _setupRole(CANCELLER_ROLE, cancellors[i]);\n        }\n\n        // register executors\n        for (uint256 i = 0; i < executors.length; ++i) {\n            _setupRole(EXECUTOR_ROLE, executors[i]);\n        }\n\n        _minDelay = minDelay;\n        emit MinDelayChange(0, minDelay);\n    }\n\n    /**\n     * @dev Modifier to make a function callable only by a certain role. In\n     * addition to checking the sender's role, `address(0)` 's role is also\n     * considered. Granting a role to `address(0)` is equivalent to enabling\n     * this role for everyone.\n     */\n    modifier onlyRoleOrOpenRole(bytes32 role) {\n        if (!hasRole(role, address(0))) {\n            _checkRole(role, _msgSender());\n        }\n        _;\n    }\n\n    /**\n     * @dev Contract might receive/hold ETH as part of the maintenance process.\n     */\n    receive() external payable {}\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId)\n        public\n        view\n        virtual\n        override(IERC165, AccessControlEnumerable)\n        returns (bool)\n    {\n        return\n            interfaceId == type(IERC1155Receiver).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns whether an id correspond to a registered operation. This\n     * includes both Pending, Ready and Done operations.\n     */\n    function isOperation(bytes32 id)\n        public\n        view\n        virtual\n        returns (bool registered)\n    {\n        return getTimestamp(id) > 0;\n    }\n\n    /**\n     * @dev Returns whether an operation is pending or not.\n     */\n    function isOperationPending(bytes32 id)\n        public\n        view\n        virtual\n        returns (bool pending)\n    {\n        return getTimestamp(id) > _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Returns whether an operation is ready or not.\n     */\n    function isOperationReady(bytes32 id)\n        public\n        view\n        virtual\n        returns (bool ready)\n    {\n        uint256 timestamp = getTimestamp(id);\n        return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp;\n    }\n\n    /**\n     * @dev Returns whether an operation is done or not.\n     */\n    function isOperationDone(bytes32 id)\n        public\n        view\n        virtual\n        returns (bool done)\n    {\n        return getTimestamp(id) == _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Returns the timestamp at with an operation becomes ready (0 for\n     * unset operations, 1 for done operations).\n     */\n    function getTimestamp(bytes32 id)\n        public\n        view\n        virtual\n        returns (uint256 timestamp)\n    {\n        return _timestamps[id];\n    }\n\n    /**\n     * @dev Returns the minimum delay for an operation to become valid.\n     *\n     * This value can be changed by executing an operation that calls `updateDelay`.\n     */\n    function getMinDelay() public view virtual returns (uint256 duration) {\n        return _minDelay;\n    }\n\n    /**\n     * @dev Returns the identifier of an operation containing a single\n     * transaction.\n     */\n    function hashOperation(\n        address target,\n        uint256 value,\n        bytes calldata data,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public pure virtual returns (bytes32 hash) {\n        return keccak256(abi.encode(target, value, data, predecessor, salt));\n    }\n\n    /**\n     * @dev Returns the identifier of an operation containing a batch of\n     * transactions.\n     */\n    function hashOperationBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public pure virtual returns (bytes32 hash) {\n        return\n            keccak256(abi.encode(targets, values, payloads, predecessor, salt));\n    }\n\n    /**\n     * @dev Schedule an operation containing a single transaction.\n     *\n     * Emits a {CallScheduled} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'proposer' role.\n     */\n    function schedule(\n        address target,\n        uint256 value,\n        bytes calldata data,\n        bytes32 predecessor,\n        bytes32 salt,\n        uint256 delay\n    ) public virtual onlyRole(PROPOSER_ROLE) {\n        bytes32 id = hashOperation(target, value, data, predecessor, salt);\n        _schedule(id, delay);\n        emit CallScheduled(id, 0, target, value, data, predecessor, delay);\n    }\n\n    /**\n     * @dev Schedule an operation containing a batch of transactions.\n     *\n     * Emits one {CallScheduled} event per transaction in the batch.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'proposer' role.\n     */\n    function scheduleBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt,\n        uint256 delay\n    ) public virtual onlyRole(PROPOSER_ROLE) {\n        require(\n            targets.length == values.length,\n            \"TimelockController: length mismatch\"\n        );\n        require(\n            targets.length == payloads.length,\n            \"TimelockController: length mismatch\"\n        );\n\n        bytes32 id = hashOperationBatch(\n            targets,\n            values,\n            payloads,\n            predecessor,\n            salt\n        );\n        _schedule(id, delay);\n        for (uint256 i = 0; i < targets.length; ++i) {\n            emit CallScheduled(\n                id,\n                i,\n                targets[i],\n                values[i],\n                payloads[i],\n                predecessor,\n                delay\n            );\n        }\n    }\n\n    /**\n     * @dev Schedule an operation that is to becomes valid after a given delay.\n     */\n    function _schedule(bytes32 id, uint256 delay) private {\n        require(\n            !isOperation(id),\n            \"TimelockController: operation already scheduled\"\n        );\n        require(\n            delay >= getMinDelay(),\n            \"TimelockController: insufficient delay\"\n        );\n        _timestamps[id] = block.timestamp + delay;\n    }\n\n    /**\n     * @dev Cancel an operation.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'canceller' role.\n     */\n    function cancel(bytes32 id) public virtual onlyRole(CANCELLER_ROLE) {\n        require(\n            isOperationPending(id),\n            \"TimelockController: operation cannot be cancelled\"\n        );\n        delete _timestamps[id];\n\n        emit Cancelled(id);\n    }\n\n    /**\n     * @dev Execute an (ready) operation containing a single transaction.\n     *\n     * Emits a {CallExecuted} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'executor' role.\n     */\n    // This function can reenter, but it doesn't pose a risk because _afterCall checks that the proposal is pending,\n    // thus any modifications to the operation during reentrancy should be caught.\n    // slither-disable-next-line reentrancy-eth\n    function execute(\n        address target,\n        uint256 value,\n        bytes calldata payload,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n        bytes32 id = hashOperation(target, value, payload, predecessor, salt);\n\n        _beforeCall(id, predecessor);\n        _execute(target, value, payload);\n        emit CallExecuted(id, 0, target, value, payload);\n        _afterCall(id);\n    }\n\n    /**\n     * @dev Execute an (ready) operation containing a batch of transactions.\n     *\n     * Emits one {CallExecuted} event per transaction in the batch.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'executor' role.\n     */\n    function executeBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n        require(\n            targets.length == values.length,\n            \"TimelockController: length mismatch\"\n        );\n        require(\n            targets.length == payloads.length,\n            \"TimelockController: length mismatch\"\n        );\n\n        bytes32 id = hashOperationBatch(\n            targets,\n            values,\n            payloads,\n            predecessor,\n            salt\n        );\n\n        _beforeCall(id, predecessor);\n        for (uint256 i = 0; i < targets.length; ++i) {\n            address target = targets[i];\n            uint256 value = values[i];\n            bytes calldata payload = payloads[i];\n            _execute(target, value, payload);\n            emit CallExecuted(id, i, target, value, payload);\n        }\n        _afterCall(id);\n    }\n\n    /**\n     * @dev Execute an operation's call.\n     */\n    function _execute(\n        address target,\n        uint256 value,\n        bytes calldata data\n    ) internal virtual {\n        (bool success, ) = target.call{value: value}(data);\n        require(success, \"TimelockController: underlying transaction reverted\");\n    }\n\n    /**\n     * @dev Checks before execution of an operation's calls.\n     */\n    function _beforeCall(bytes32 id, bytes32 predecessor) private view {\n        require(\n            isOperationReady(id),\n            \"TimelockController: operation is not ready\"\n        );\n        require(\n            predecessor == bytes32(0) || isOperationDone(predecessor),\n            \"TimelockController: missing dependency\"\n        );\n    }\n\n    /**\n     * @dev Checks after execution of an operation's calls.\n     */\n    function _afterCall(bytes32 id) private {\n        require(\n            isOperationReady(id),\n            \"TimelockController: operation is not ready\"\n        );\n        _timestamps[id] = _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Changes the minimum timelock duration for future operations.\n     *\n     * Emits a {MinDelayChange} event.\n     *\n     * Requirements:\n     *\n     * - the caller must be the timelock itself. This can only be achieved by scheduling and later executing\n     * an operation where the timelock is the target and the data is the ABI-encoded call to this function.\n     */\n    function updateDelay(uint256 newDelay) external virtual {\n        require(\n            msg.sender == address(this),\n            \"TimelockController: caller must be timelock\"\n        );\n        emit MinDelayChange(_minDelay, newDelay);\n        _minDelay = newDelay;\n    }\n\n    /**\n     * @dev See {IERC721Receiver-onERC721Received}.\n     */\n    function onERC721Received(\n        address,\n        address,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC721Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155Received}.\n     */\n    function onERC1155Received(\n        address,\n        address,\n        uint256,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155BatchReceived}.\n     */\n    function onERC1155BatchReceived(\n        address,\n        address,\n        uint256[] memory,\n        uint256[] memory,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155BatchReceived.selector;\n    }\n}\n"},"contracts/splitters/MAHASplitKeeper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {FeesSplitter} from \"./FeesSplitter.sol\";\nimport {KeeperCompatibleInterface} from \"../interfaces/KeeperCompatibleInterface.sol\";\nimport {Epoch} from \"../utils/Epoch.sol\";\n\ninterface ICommunityFund {\n    function release(IERC20 token) external;\n\n    function releasableAmount(IERC20 token) external view returns (uint256);\n}\n\n/**\n * This is a keeper contract that splits the maha from the ecosystem fund into the various treasuries on a\n * monthly basis via a keeper.\n *\n * Currently deployed at: https://etherscan.io/address/0x5f7a88d09491b89f0e9a02e3cce3309ef1502ab8\n */\ncontract MAHASplitKeeper is Epoch, FeesSplitter, KeeperCompatibleInterface {\n    IERC20 public maha;\n    ICommunityFund public communityFund;\n\n    constructor(\n        address[] memory _accounts,\n        uint32[] memory _percentAllocations,\n        IERC20 _maha,\n        ICommunityFund _fund\n    )\n        FeesSplitter(_accounts, _percentAllocations)\n        Epoch(86400 * 30, block.timestamp, 0)\n    {\n        maha = _maha;\n        communityFund = _fund;\n    }\n\n    function releaseAndDistributeMAHA() public {\n        communityFund.release(maha);\n        distributeERC20(maha);\n    }\n\n    function releasable() public view returns (uint256) {\n        return communityFund.releasableAmount(maha);\n    }\n\n    function distributeMAHA() public {\n        distributeERC20(maha);\n    }\n\n    function checkUpkeep(bytes calldata)\n        external\n        view\n        override\n        returns (bool upkeepNeeded, bytes memory performData)\n    {\n        return (_callable(), \"\");\n    }\n\n    function performUpkeep(bytes calldata) external override checkEpoch {\n        releaseAndDistributeMAHA();\n    }\n}\n"},"contracts/splitters/FeesSplitter.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport {SafeERC20, IERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract FeesSplitter is Ownable {\n    using SafeERC20 for IERC20;\n\n    uint256 public constant PERCENTAGE_SCALE = 1e6;\n    address[] public accounts;\n    uint32[] public percentAllocations;\n\n    constructor(address[] memory _accounts, uint32[] memory _percentAllocations)\n    {\n        accounts = _accounts;\n        percentAllocations = _percentAllocations;\n        checkPercentages(_percentAllocations);\n    }\n\n    fallback() external {\n        distributeETH();\n    }\n\n    receive() external payable {\n        distributeETH();\n    }\n\n    function distributeETH() public payable {\n        uint256 amountToSplit = address(this).balance;\n\n        // distribute remaining balance\n        // overflow should be impossible in for-loop index\n        // cache accounts length to save gas\n        uint256 accountsLength = accounts.length;\n        for (uint256 i = 0; i < accountsLength; ++i) {\n            // overflow should be impossible with validated allocations\n            uint256 amt = _scaleAmountByPercentage(\n                amountToSplit,\n                percentAllocations[i]\n            );\n\n            payable(accounts[i]).transfer(amt);\n        }\n    }\n\n    function distributeERC20(IERC20 token) public {\n        uint256 amountToSplit = token.balanceOf(address(this));\n        uint256 accountsLength = accounts.length;\n        for (uint256 i = 0; i < accountsLength; ++i) {\n            // overflow should be impossible with validated allocations\n            uint256 amt = _scaleAmountByPercentage(\n                amountToSplit,\n                percentAllocations[i]\n            );\n\n            token.transfer(accounts[i], amt);\n        }\n    }\n\n    function updateSplit(\n        address[] memory _accounts,\n        uint32[] memory _percentAllocations\n    ) external onlyOwner {\n        accounts = _accounts;\n        percentAllocations = _percentAllocations;\n        checkPercentages(_percentAllocations);\n    }\n\n    function checkPercentages(uint32[] memory _percentAllocations)\n        public\n        view\n        onlyOwner\n    {\n        uint32 sum = 0;\n        for (uint256 i = 0; i < _percentAllocations.length; i++) {\n            sum += _percentAllocations[i];\n        }\n        require(sum == PERCENTAGE_SCALE, \"invalid percentages\");\n    }\n\n    function withdrawETH() external onlyOwner {\n        payable(owner()).transfer(address(this).balance);\n    }\n\n    function withdrawERC20(IERC20 token) external onlyOwner {\n        token.transfer(owner(), token.balanceOf(address(this)));\n    }\n\n    function _scaleAmountByPercentage(uint256 amount, uint256 scaledPercent)\n        internal\n        pure\n        returns (uint256 scaledAmount)\n    {\n        // use assembly to bypass checking for overflow & division by 0\n        // scaledPercent has been validated to be < PERCENTAGE_SCALE)\n        // & PERCENTAGE_SCALE will never be 0\n        // pernicious ERC20s may cause overflow, but results do not affect ETH & other ERC20 balances\n        assembly {\n            /* eg (100 * 2*1e4) / (1e6) */\n            scaledAmount := div(mul(amount, scaledPercent), PERCENTAGE_SCALE)\n        }\n    }\n}\n"},"contracts/interfaces/KeeperCompatibleInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface KeeperCompatibleInterface {\n  /**\n   * @notice method that is simulated by the keepers to see if any work actually\n   * needs to be performed. This method does does not actually need to be\n   * executable, and since it is only ever simulated it can consume lots of gas.\n   * @dev To ensure that it is never called, you may want to add the\n   * cannotExecute modifier from KeeperBase to your implementation of this\n   * method.\n   * @param checkData specified in the upkeep registration so it is always the\n   * same for a registered upkeep. This can easily be broken down into specific\n   * arguments using `abi.decode`, so multiple upkeeps can be registered on the\n   * same contract and easily differentiated by the contract.\n   * @return upkeepNeeded boolean to indicate whether the keeper should call\n   * performUpkeep or not.\n   * @return performData bytes that the keeper should call performUpkeep with, if\n   * upkeep is needed. If you would like to encode data to decode later, try\n   * `abi.encode`.\n   */\n  function checkUpkeep(bytes calldata checkData)\n    external\n    returns (bool upkeepNeeded, bytes memory performData);\n\n  /**\n   * @notice method that is actually executed by the keepers, via the registry.\n   * The data returned by the checkUpkeep simulation will be passed into\n   * this method to actually be executed.\n   * @dev The input to this method should not be trusted, and the caller of the\n   * method should not even be restricted to any single registry. Anyone should\n   * be able call it, and the input should be validated, there is no guarantee\n   * that the data passed in is the performData returned from checkUpkeep. This\n   * could happen due to malicious keepers, racing keepers, or simply a state\n   * change while the performUpkeep transaction is waiting for confirmation.\n   * Always validate the data passed in.\n   * @param performData is the data which was passed back from the checkData\n   * simulation. If it is encoded, it can easily be decoded into other types by\n   * calling `abi.decode`. This data should not be trusted, and should be\n   * validated against the contract's current state.\n   */\n  function performUpkeep(bytes calldata performData) external;\n}\n"},"contracts/fees/MultiFeeDistributor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {IFeeDistributor} from \"../interfaces/IFeeDistributor.sol\";\n\ncontract MultiFeeDistributor {\n    function claimMany(\n        uint256[] memory nftIds,\n        IFeeDistributor[] memory distributors\n    ) external returns (uint256[] memory) {\n        uint256[] memory ret = new uint256[](nftIds.length);\n\n        for (uint256 index = 0; index < nftIds.length; index++) {\n            ret[index] = distributors[index].claim(nftIds[index]);\n        }\n\n        return ret;\n    }\n\n    function claimManyWithProofs(\n        bytes[] memory data,\n        IFeeDistributor[] memory distributors\n    ) external returns (uint256[] memory) {\n        uint256[] memory ret = new uint256[](data.length);\n\n        for (uint256 index = 0; index < data.length; index++) {\n            (\n                uint256 nftId,\n                address _who,\n                uint256 _reward,\n                bytes32[] memory _proof\n            ) = abi.decode(data[index], (uint256, address, uint256, bytes32[]));\n            ret[index] = distributors[index].claimWithPendingRewards(\n                nftId,\n                _who,\n                _reward,\n                _proof\n            );\n        }\n\n        return ret;\n    }\n}\n"},"contracts/interfaces/IWETH.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\nimport {IERC20} from \"@openzeppelin/contracts/interfaces/IERC20.sol\";\n\ninterface IWETH is IERC20 {\n    function deposit() external payable;\n\n    function withdraw(uint256 wad) external;\n}\n"},"contracts/test/MockERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport {ERC20} from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract MockERC20 is ERC20 {\n    uint8 private _decimals;\n\n    // solhint-disable-next-line\n    constructor(\n        string memory name,\n        string memory symbol,\n        uint8 decimal\n    ) ERC20(name, symbol) {\n        _decimals = decimal;\n        _mint(msg.sender, (1000000) * (10**decimal));\n    }\n\n    function decimals() public view virtual override returns (uint8) {\n        return _decimals;\n    }\n\n    function mint(address account, uint256 amount) public {\n        _mint(account, amount);\n    }\n}\n"},"contracts/RenderingContract.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {ITokenURIGenerator} from \"./interfaces/ITokenURIGenerator.sol\";\n\ncontract RenderingContract is ITokenURIGenerator {\n    /// @dev Returns current token URI metadata\n    /// @param _tokenId Token ID to fetch URI for.\n    function tokenURI(uint256 _tokenId)\n        external\n        pure\n        override\n        returns (string memory)\n    {\n        return\n            string(\n                abi.encodePacked(\n                    \"https://images.mahapeople.com/\",\n                    toString(_tokenId),\n                    \".json\"\n                )\n            );\n    }\n\n    function toString(uint256 value) internal pure returns (string memory) {\n        // Inspired by OraclizeAPI's implementation - MIT license\n        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n        if (value == 0) {\n            return \"0\";\n        }\n        uint256 temp = value;\n        uint256 digits;\n        while (temp != 0) {\n            digits++;\n            temp /= 10;\n        }\n        bytes memory buffer = new bytes(digits);\n        while (value != 0) {\n            digits -= 1;\n            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n            value /= 10;\n        }\n        return string(buffer);\n    }\n}\n"},"contracts/interfaces/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\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"},"contracts/interfaces/IGaugeWrapperFactory.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IGaugeWrapperFactory {\n  function createGauge(\n    address _registry,\n    address _pool,\n    address _bribe,\n    address _uniV3Staker\n  ) external returns (address);\n\n  event GaugeCreated(address _gauge, address _pool, address _bribe, address _uniV3Staker);\n}\n"},"contracts/interfaces/IStakingChild.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IStakingChild {\n  function notifyRewardAmount(uint256 reward) external;\n\n  function getRewardFor(address who) external;\n\n  function updateReward(address who) external;\n\n  function lastTimeRewardApplicable() external view returns (uint256);\n\n  function rewardPerToken() external view returns (uint256);\n\n  function earned(address who) external view returns (uint256);\n\n  function getRewardForDuration() external view returns (uint256);\n\n  function totalSupply() external view returns (uint256);\n\n  function balanceOf(address who) external view returns (uint256);\n\n  function changeStakingMaster(address who) external;\n\n  function changeStakingCollector(address who) external;\n\n  function changeRewardsDuration(uint256 duration) external;\n\n  function refundTokens(address token) external;\n}\n"},"contracts/interfaces/IStakingMaster.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IStakingMaster {\n  function totalSupply() external view returns (uint256);\n\n  function balanceOf(address who) external view returns (uint256);\n\n  function getReward() external;\n\n  function addPool(address pool) external;\n\n  function addPools(address[] memory pools) external;\n\n  function updateRewardFor(address who) external;\n\n  function updateRewardForMultiple(address[] memory whom) external;\n\n  function refundTokens(address token) external;\n\n  function setVotingEscrow(address _escrow) external;\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":100},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n   --> contracts/MAHAXGovernor.sol:170:21:\n    |\n170 |     function quorum(uint256 blockNumber)\n    |                     ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":5098,"file":"contracts/MAHAXGovernor.sol","start":5079},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/MAHAXVetoGovernor.sol:80:21:\n   |\n80 |     function quorum(uint256 blockNumber)\n   |                     ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":2299,"file":"contracts/MAHAXVetoGovernor.sol","start":2280},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n   --> contracts/gauges/BaseGaugeV2UniV3.sol:376:19:\n    |\n376 |     function left(address token) external view override returns (uint256) {\n    |                   ^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":12251,"file":"contracts/gauges/BaseGaugeV2UniV3.sol","start":12238},"type":"Warning"}],"sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[319],"Context":[8255],"ERC165":[9837],"IAccessControl":[517],"IERC165":[9849],"Strings":[8555]},"id":320,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:0"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":320,"sourceUnit":518,"src":"133:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":320,"sourceUnit":8256,"src":"164:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":4,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":320,"sourceUnit":8556,"src":"195:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":320,"sourceUnit":9838,"src":"226:43:0","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"1841:7:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"1841:7:0"},{"baseName":{"id":9,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":517,"src":"1850:14:0"},"id":10,"nodeType":"InheritanceSpecifier","src":"1850:14:0"},{"baseName":{"id":11,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":9837,"src":"1866:6:0"},"id":12,"nodeType":"InheritanceSpecifier","src":"1866:6:0"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"271:1534:0","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it."},"fullyImplemented":true,"id":319,"linearizedBaseContracts":[319,9837,9849,517,8255],"name":"AccessControl","nameLocation":"1824:13:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":19,"members":[{"constant":false,"id":16,"mutability":"mutable","name":"members","nameLocation":"1930:7:0","nodeType":"VariableDeclaration","scope":19,"src":"1905:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":15,"keyType":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"1913:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1905:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":14,"name":"bool","nodeType":"ElementaryTypeName","src":"1924:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":18,"mutability":"mutable","name":"adminRole","nameLocation":"1955:9:0","nodeType":"VariableDeclaration","scope":19,"src":"1947:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1947:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"1886:8:0","nodeType":"StructDefinition","scope":319,"src":"1879:92:0","visibility":"public"},{"constant":false,"id":24,"mutability":"mutable","name":"_roles","nameLocation":"2014:6:0","nodeType":"VariableDeclaration","scope":319,"src":"1977:43:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":23,"keyType":{"id":20,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1985:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1977:28:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueType":{"id":22,"nodeType":"UserDefinedTypeName","pathNode":{"id":21,"name":"RoleData","nodeType":"IdentifierPath","referencedDeclaration":19,"src":"1996:8:0"},"referencedDeclaration":19,"src":"1996:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":27,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2051:18:0","nodeType":"VariableDeclaration","scope":319,"src":"2027:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2027:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":26,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:4:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":37,"nodeType":"Block","src":"2495:44:0","statements":[{"expression":{"arguments":[{"id":33,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2516:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,135],"referencedDeclaration":92,"src":"2505:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":34,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2505:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35,"nodeType":"ExpressionStatement","src":"2505:16:0"},{"id":36,"nodeType":"PlaceholderStatement","src":"2531:1:0"}]},"documentation":{"id":28,"nodeType":"StructuredDocumentation","src":"2083:375:0","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":38,"name":"onlyRole","nameLocation":"2472:8:0","nodeType":"ModifierDefinition","parameters":{"id":31,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30,"mutability":"mutable","name":"role","nameLocation":"2489:4:0","nodeType":"VariableDeclaration","scope":38,"src":"2481:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:14:0"},"src":"2463:76:0","virtual":false,"visibility":"internal"},{"baseFunctions":[9836],"body":{"id":59,"nodeType":"Block","src":"2697:111:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2714:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":49,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":517,"src":"2734:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$517_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$517_$","typeString":"type(contract IAccessControl)"}],"id":48,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":50,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2729:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$517","typeString":"type(contract IAccessControl)"}},"id":51,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2729:32:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2714:47:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":55,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2789:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":53,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2765:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$319_$","typeString":"type(contract super AccessControl)"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":9836,"src":"2765:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2714:87:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46,"id":58,"nodeType":"Return","src":"2707:94:0"}]},"documentation":{"id":39,"nodeType":"StructuredDocumentation","src":"2545:56:0","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":60,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2615:17:0","nodeType":"FunctionDefinition","overrides":{"id":43,"nodeType":"OverrideSpecifier","overrides":[],"src":"2673:8:0"},"parameters":{"id":42,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41,"mutability":"mutable","name":"interfaceId","nameLocation":"2640:11:0","nodeType":"VariableDeclaration","scope":60,"src":"2633:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2633:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2632:20:0"},"returnParameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60,"src":"2691:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44,"name":"bool","nodeType":"ElementaryTypeName","src":"2691:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2690:6:0"},"scope":319,"src":"2606:202:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[484],"body":{"id":78,"nodeType":"Block","src":"2987:53:0","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":71,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":73,"indexExpression":{"id":72,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"3011:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":74,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"3004:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76,"indexExpression":{"id":75,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"3025:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":70,"id":77,"nodeType":"Return","src":"2997:36:0"}]},"documentation":{"id":61,"nodeType":"StructuredDocumentation","src":"2814:76:0","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":79,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2904:7:0","nodeType":"FunctionDefinition","overrides":{"id":67,"nodeType":"OverrideSpecifier","overrides":[],"src":"2963:8:0"},"parameters":{"id":66,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63,"mutability":"mutable","name":"role","nameLocation":"2920:4:0","nodeType":"VariableDeclaration","scope":79,"src":"2912:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":62,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":65,"mutability":"mutable","name":"account","nameLocation":"2934:7:0","nodeType":"VariableDeclaration","scope":79,"src":"2926:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64,"name":"address","nodeType":"ElementaryTypeName","src":"2926:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2911:31:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79,"src":"2981:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2980:6:0"},"scope":319,"src":"2895:145:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":91,"nodeType":"Block","src":"3390:47:0","statements":[{"expression":{"arguments":[{"id":86,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"3411:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":87,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"3417:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":88,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3417:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":85,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,135],"referencedDeclaration":135,"src":"3400:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":89,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3400:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90,"nodeType":"ExpressionStatement","src":"3400:30:0"}]},"documentation":{"id":80,"nodeType":"StructuredDocumentation","src":"3046:283:0","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":92,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3343:10:0","nodeType":"FunctionDefinition","parameters":{"id":83,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82,"mutability":"mutable","name":"role","nameLocation":"3362:4:0","nodeType":"VariableDeclaration","scope":92,"src":"3354:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3354:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3353:14:0"},"returnParameters":{"id":84,"nodeType":"ParameterList","parameters":[],"src":"3390:0:0"},"scope":319,"src":"3334:103:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":134,"nodeType":"Block","src":"3791:419:0","statements":[{"condition":{"id":104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3805:23:0","subExpression":{"arguments":[{"id":101,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3814:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":102,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"3820:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":100,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"3806:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3806:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":133,"nodeType":"IfStatement","src":"3801:403:0","trueBody":{"id":132,"nodeType":"Block","src":"3830:374:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"arguments":[{"id":115,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"4017:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4009:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":113,"name":"uint160","nodeType":"ElementaryTypeName","src":"4009:7:0","typeDescriptions":{}}},"id":116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4009:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"hexValue":"3230","id":117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4027:2:0","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":111,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"3989:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$8555_$","typeString":"type(library Strings)"}},"id":112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":8534,"src":"3989:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3989:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4056:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":124,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4129:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4121:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":122,"name":"uint256","nodeType":"ElementaryTypeName","src":"4121:7:0","typeDescriptions":{}}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4121:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4136:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":120,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"4101:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$8555_$","typeString":"type(library Strings)"}},"id":121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":8534,"src":"4101:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4101:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":108,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3896:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3896:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3896:265:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":106,"name":"string","nodeType":"ElementaryTypeName","src":"3868:6:0","typeDescriptions":{}}},"id":129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3868:311:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":105,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3844:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:349:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":131,"nodeType":"ExpressionStatement","src":"3844:349:0"}]}}]},"documentation":{"id":93,"nodeType":"StructuredDocumentation","src":"3443:270:0","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":135,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3727:10:0","nodeType":"FunctionDefinition","parameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"role","nameLocation":"3746:4:0","nodeType":"VariableDeclaration","scope":135,"src":"3738:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3738:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"account","nameLocation":"3760:7:0","nodeType":"VariableDeclaration","scope":135,"src":"3752:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3737:31:0"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[],"src":"3791:0:0"},"scope":319,"src":"3718:492:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[492],"body":{"id":149,"nodeType":"Block","src":"4474:46:0","statements":[{"expression":{"expression":{"baseExpression":{"id":144,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"4491:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":146,"indexExpression":{"id":145,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"4498:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4491:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"4491:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":143,"id":148,"nodeType":"Return","src":"4484:29:0"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"4216:170:0","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":150,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4400:12:0","nodeType":"FunctionDefinition","overrides":{"id":140,"nodeType":"OverrideSpecifier","overrides":[],"src":"4447:8:0"},"parameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"role","nameLocation":"4421:4:0","nodeType":"VariableDeclaration","scope":150,"src":"4413:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4413:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4412:14:0"},"returnParameters":{"id":143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":150,"src":"4465:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4465:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4464:9:0"},"scope":319,"src":"4391:129:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[500],"body":{"id":169,"nodeType":"Block","src":"4919:42:0","statements":[{"expression":{"arguments":[{"id":165,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"4940:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":166,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":155,"src":"4946:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":164,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"4929:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4929:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":168,"nodeType":"ExpressionStatement","src":"4929:25:0"}]},"documentation":{"id":151,"nodeType":"StructuredDocumentation","src":"4526:285:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":170,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":160,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"4912:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":159,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"4899:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4899:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":162,"kind":"modifierInvocation","modifierName":{"id":158,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4890:8:0"},"nodeType":"ModifierInvocation","src":"4890:28:0"}],"name":"grantRole","nameLocation":"4825:9:0","nodeType":"FunctionDefinition","overrides":{"id":157,"nodeType":"OverrideSpecifier","overrides":[],"src":"4881:8:0"},"parameters":{"id":156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"mutability":"mutable","name":"role","nameLocation":"4843:4:0","nodeType":"VariableDeclaration","scope":170,"src":"4835:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4835:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":155,"mutability":"mutable","name":"account","nameLocation":"4857:7:0","nodeType":"VariableDeclaration","scope":170,"src":"4849:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":154,"name":"address","nodeType":"ElementaryTypeName","src":"4849:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4834:31:0"},"returnParameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"4919:0:0"},"scope":319,"src":"4816:145:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[508],"body":{"id":189,"nodeType":"Block","src":"5345:43:0","statements":[{"expression":{"arguments":[{"id":185,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"5367:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":186,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175,"src":"5373:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":184,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"5355:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5355:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":188,"nodeType":"ExpressionStatement","src":"5355:26:0"}]},"documentation":{"id":171,"nodeType":"StructuredDocumentation","src":"4967:269:0","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":190,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":180,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"5338:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":179,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"5325:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5325:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":182,"kind":"modifierInvocation","modifierName":{"id":178,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5316:8:0"},"nodeType":"ModifierInvocation","src":"5316:28:0"}],"name":"revokeRole","nameLocation":"5250:10:0","nodeType":"FunctionDefinition","overrides":{"id":177,"nodeType":"OverrideSpecifier","overrides":[],"src":"5307:8:0"},"parameters":{"id":176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173,"mutability":"mutable","name":"role","nameLocation":"5269:4:0","nodeType":"VariableDeclaration","scope":190,"src":"5261:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5261:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":175,"mutability":"mutable","name":"account","nameLocation":"5283:7:0","nodeType":"VariableDeclaration","scope":190,"src":"5275:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":174,"name":"address","nodeType":"ElementaryTypeName","src":"5275:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5260:31:0"},"returnParameters":{"id":183,"nodeType":"ParameterList","parameters":[],"src":"5345:0:0"},"scope":319,"src":"5241:147:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[516],"body":{"id":212,"nodeType":"Block","src":"6002:137:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":200,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":195,"src":"6020:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":201,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"6031:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6031:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6020:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6045:49:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":199,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6012:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6012:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":206,"nodeType":"ExpressionStatement","src":"6012:83:0"},{"expression":{"arguments":[{"id":208,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"6118:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":209,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":195,"src":"6124:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":207,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"6106:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6106:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"ExpressionStatement","src":"6106:26:0"}]},"documentation":{"id":191,"nodeType":"StructuredDocumentation","src":"5394:526:0","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":213,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5934:12:0","nodeType":"FunctionDefinition","overrides":{"id":197,"nodeType":"OverrideSpecifier","overrides":[],"src":"5993:8:0"},"parameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":193,"mutability":"mutable","name":"role","nameLocation":"5955:4:0","nodeType":"VariableDeclaration","scope":213,"src":"5947:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5947:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":195,"mutability":"mutable","name":"account","nameLocation":"5969:7:0","nodeType":"VariableDeclaration","scope":213,"src":"5961:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"5961:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5946:31:0"},"returnParameters":{"id":198,"nodeType":"ParameterList","parameters":[],"src":"6002:0:0"},"scope":319,"src":"5925:214:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":226,"nodeType":"Block","src":"6892:42:0","statements":[{"expression":{"arguments":[{"id":222,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"6913:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":223,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"6919:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":221,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"6902:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6902:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":225,"nodeType":"ExpressionStatement","src":"6902:25:0"}]},"documentation":{"id":214,"nodeType":"StructuredDocumentation","src":"6145:674:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":227,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6833:10:0","nodeType":"FunctionDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":216,"mutability":"mutable","name":"role","nameLocation":"6852:4:0","nodeType":"VariableDeclaration","scope":227,"src":"6844:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":215,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6844:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":218,"mutability":"mutable","name":"account","nameLocation":"6866:7:0","nodeType":"VariableDeclaration","scope":227,"src":"6858:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":217,"name":"address","nodeType":"ElementaryTypeName","src":"6858:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6843:31:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[],"src":"6892:0:0"},"scope":319,"src":"6824:110:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":254,"nodeType":"Block","src":"7132:174:0","statements":[{"assignments":[236],"declarations":[{"constant":false,"id":236,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7150:17:0","nodeType":"VariableDeclaration","scope":254,"src":"7142:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7142:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":240,"initialValue":{"arguments":[{"id":238,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"7183:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":237,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"7170:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7170:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7142:46:0"},{"expression":{"id":246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":241,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7198:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":243,"indexExpression":{"id":242,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"7205:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7198:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"7198:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":245,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"7223:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7198:34:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":247,"nodeType":"ExpressionStatement","src":"7198:34:0"},{"eventCall":{"arguments":[{"id":249,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"7264:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":250,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":236,"src":"7270:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":251,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"7289:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":248,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"7247:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7247:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":253,"nodeType":"EmitStatement","src":"7242:57:0"}]},"documentation":{"id":228,"nodeType":"StructuredDocumentation","src":"6940:114:0","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":255,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7068:13:0","nodeType":"FunctionDefinition","parameters":{"id":233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":230,"mutability":"mutable","name":"role","nameLocation":"7090:4:0","nodeType":"VariableDeclaration","scope":255,"src":"7082:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7082:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":232,"mutability":"mutable","name":"adminRole","nameLocation":"7104:9:0","nodeType":"VariableDeclaration","scope":255,"src":"7096:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7096:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7081:33:0"},"returnParameters":{"id":234,"nodeType":"ParameterList","parameters":[],"src":"7132:0:0"},"scope":319,"src":"7059:247:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":286,"nodeType":"Block","src":"7542:165:0","statements":[{"condition":{"id":267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7556:23:0","subExpression":{"arguments":[{"id":264,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"7565:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":265,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"7571:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":263,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"7557:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7557:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":285,"nodeType":"IfStatement","src":"7552:149:0","trueBody":{"id":284,"nodeType":"Block","src":"7581:120:0","statements":[{"expression":{"id":275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":268,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7595:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":270,"indexExpression":{"id":269,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"7602:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7595:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"7595:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":273,"indexExpression":{"id":272,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"7616:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7595:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7627:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7595:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":276,"nodeType":"ExpressionStatement","src":"7595:36:0"},{"eventCall":{"arguments":[{"id":278,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"7662:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":279,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"7668:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":280,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"7677:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7677:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":277,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":465,"src":"7650:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7650:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":283,"nodeType":"EmitStatement","src":"7645:45:0"}]}}]},"documentation":{"id":256,"nodeType":"StructuredDocumentation","src":"7312:157:0","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":287,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7483:10:0","nodeType":"FunctionDefinition","parameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":258,"mutability":"mutable","name":"role","nameLocation":"7502:4:0","nodeType":"VariableDeclaration","scope":287,"src":"7494:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7494:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":260,"mutability":"mutable","name":"account","nameLocation":"7516:7:0","nodeType":"VariableDeclaration","scope":287,"src":"7508:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":259,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7493:31:0"},"returnParameters":{"id":262,"nodeType":"ParameterList","parameters":[],"src":"7542:0:0"},"scope":319,"src":"7474:233:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":317,"nodeType":"Block","src":"7947:165:0","statements":[{"condition":{"arguments":[{"id":296,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"7969:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":297,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"7975:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":295,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"7961:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7961:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":316,"nodeType":"IfStatement","src":"7957:149:0","trueBody":{"id":315,"nodeType":"Block","src":"7985:121:0","statements":[{"expression":{"id":306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":299,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7999:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":301,"indexExpression":{"id":300,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"8006:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7999:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"7999:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":304,"indexExpression":{"id":303,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"8020:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7999:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8031:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7999:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":307,"nodeType":"ExpressionStatement","src":"7999:37:0"},{"eventCall":{"arguments":[{"id":309,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"8067:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":310,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"8073:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":311,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"8082:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":308,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"8055:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8055:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":314,"nodeType":"EmitStatement","src":"8050:45:0"}]}}]},"documentation":{"id":288,"nodeType":"StructuredDocumentation","src":"7713:160:0","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":318,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7887:11:0","nodeType":"FunctionDefinition","parameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":290,"mutability":"mutable","name":"role","nameLocation":"7907:4:0","nodeType":"VariableDeclaration","scope":318,"src":"7899:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7899:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":292,"mutability":"mutable","name":"account","nameLocation":"7921:7:0","nodeType":"VariableDeclaration","scope":318,"src":"7913:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":291,"name":"address","nodeType":"ElementaryTypeName","src":"7913:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7898:31:0"},"returnParameters":{"id":294,"nodeType":"ParameterList","parameters":[],"src":"7947:0:0"},"scope":319,"src":"7878:234:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":320,"src":"1806:6308:0","usedErrors":[]}],"src":"108:8007:0"},"id":0},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","exportedSymbols":{"AccessControl":[319],"AccessControlEnumerable":[444],"Context":[8255],"ERC165":[9837],"EnumerableSet":[13456],"IAccessControl":[517],"IAccessControlEnumerable":[542],"IERC165":[9849],"Strings":[8555]},"id":445,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":321,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:1"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","file":"./IAccessControlEnumerable.sol","id":322,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":445,"sourceUnit":543,"src":"143:40:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"./AccessControl.sol","id":323,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":445,"sourceUnit":320,"src":"184:29:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"../utils/structs/EnumerableSet.sol","id":324,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":445,"sourceUnit":13457,"src":"214:44:1","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":326,"name":"IAccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":542,"src":"400:24:1"},"id":327,"nodeType":"InheritanceSpecifier","src":"400:24:1"},{"baseName":{"id":328,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"426:13:1"},"id":329,"nodeType":"InheritanceSpecifier","src":"426:13:1"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":325,"nodeType":"StructuredDocumentation","src":"260:94:1","text":" @dev Extension of {AccessControl} that allows enumerating the members of each role."},"fullyImplemented":true,"id":444,"linearizedBaseContracts":[444,319,9837,9849,542,517,8255],"name":"AccessControlEnumerable","nameLocation":"373:23:1","nodeType":"ContractDefinition","nodes":[{"id":333,"libraryName":{"id":330,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":13456,"src":"452:13:1"},"nodeType":"UsingForDirective","src":"446:49:1","typeName":{"id":332,"nodeType":"UserDefinedTypeName","pathNode":{"id":331,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"470:24:1"},"referencedDeclaration":13169,"src":"470:24:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":338,"mutability":"mutable","name":"_roleMembers","nameLocation":"554:12:1","nodeType":"VariableDeclaration","scope":444,"src":"501:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$13169_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"typeName":{"id":337,"keyType":{"id":334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"509:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"501:44:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$13169_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"valueType":{"id":336,"nodeType":"UserDefinedTypeName","pathNode":{"id":335,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"520:24:1"},"referencedDeclaration":13169,"src":"520:24:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"baseFunctions":[60],"body":{"id":359,"nodeType":"Block","src":"725:121:1","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":347,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":341,"src":"742:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":349,"name":"IAccessControlEnumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":542,"src":"762:24:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$542_$","typeString":"type(contract IAccessControlEnumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$542_$","typeString":"type(contract IAccessControlEnumerable)"}],"id":348,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"757:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"757:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControlEnumerable_$542","typeString":"type(contract IAccessControlEnumerable)"}},"id":351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"757:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"742:57:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":355,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":341,"src":"827:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":353,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"803:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$444_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":60,"src":"803:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"803:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"742:97:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":346,"id":358,"nodeType":"Return","src":"735:104:1"}]},"documentation":{"id":339,"nodeType":"StructuredDocumentation","src":"573:56:1","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":360,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"643:17:1","nodeType":"FunctionDefinition","overrides":{"id":343,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:1"},"parameters":{"id":342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":341,"mutability":"mutable","name":"interfaceId","nameLocation":"668:11:1","nodeType":"VariableDeclaration","scope":360,"src":"661:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":340,"name":"bytes4","nodeType":"ElementaryTypeName","src":"661:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"660:20:1"},"returnParameters":{"id":346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":360,"src":"719:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":344,"name":"bool","nodeType":"ElementaryTypeName","src":"719:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"718:6:1"},"scope":444,"src":"634:212:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[533],"body":{"id":378,"nodeType":"Block","src":"1530:52:1","statements":[{"expression":{"arguments":[{"id":375,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"1569:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":371,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"1547:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$13169_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":373,"indexExpression":{"id":372,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"1560:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1547:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":13292,"src":"1547:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$13169_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$13169_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1547:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":370,"id":377,"nodeType":"Return","src":"1540:35:1"}]},"documentation":{"id":361,"nodeType":"StructuredDocumentation","src":"852:574:1","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":379,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"1440:13:1","nodeType":"FunctionDefinition","overrides":{"id":367,"nodeType":"OverrideSpecifier","overrides":[],"src":"1503:8:1"},"parameters":{"id":366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":363,"mutability":"mutable","name":"role","nameLocation":"1462:4:1","nodeType":"VariableDeclaration","scope":379,"src":"1454:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1454:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":365,"mutability":"mutable","name":"index","nameLocation":"1476:5:1","nodeType":"VariableDeclaration","scope":379,"src":"1468:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1453:29:1"},"returnParameters":{"id":370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":379,"src":"1521:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":368,"name":"address","nodeType":"ElementaryTypeName","src":"1521:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1520:9:1"},"scope":444,"src":"1431:151:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[541],"body":{"id":394,"nodeType":"Block","src":"1839:51:1","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":388,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"1856:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$13169_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":390,"indexExpression":{"id":389,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"1869:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1856:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":13265,"src":"1856:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$13169_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$13169_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1856:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":387,"id":393,"nodeType":"Return","src":"1849:34:1"}]},"documentation":{"id":380,"nodeType":"StructuredDocumentation","src":"1588:157:1","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":395,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1759:18:1","nodeType":"FunctionDefinition","overrides":{"id":384,"nodeType":"OverrideSpecifier","overrides":[],"src":"1812:8:1"},"parameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"role","nameLocation":"1786:4:1","nodeType":"VariableDeclaration","scope":395,"src":"1778:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1778:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1777:14:1"},"returnParameters":{"id":387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":395,"src":"1830:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":385,"name":"uint256","nodeType":"ElementaryTypeName","src":"1830:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1829:9:1"},"scope":444,"src":"1750:140:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[287],"body":{"id":418,"nodeType":"Block","src":"2055:89:1","statements":[{"expression":{"arguments":[{"id":407,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"2082:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":408,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":400,"src":"2088:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":404,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2065:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$444_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_grantRole","nodeType":"MemberAccess","referencedDeclaration":287,"src":"2065:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2065:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":410,"nodeType":"ExpressionStatement","src":"2065:31:1"},{"expression":{"arguments":[{"id":415,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":400,"src":"2129:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":411,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"2106:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$13169_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":413,"indexExpression":{"id":412,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"2119:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2106:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":13196,"src":"2106:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$13169_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$13169_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2106:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":417,"nodeType":"ExpressionStatement","src":"2106:31:1"}]},"documentation":{"id":396,"nodeType":"StructuredDocumentation","src":"1896:77:1","text":" @dev Overload {_grantRole} to track enumerable memberships"},"id":419,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"1987:10:1","nodeType":"FunctionDefinition","overrides":{"id":402,"nodeType":"OverrideSpecifier","overrides":[],"src":"2046:8:1"},"parameters":{"id":401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":398,"mutability":"mutable","name":"role","nameLocation":"2006:4:1","nodeType":"VariableDeclaration","scope":419,"src":"1998:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1998:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":400,"mutability":"mutable","name":"account","nameLocation":"2020:7:1","nodeType":"VariableDeclaration","scope":419,"src":"2012:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":399,"name":"address","nodeType":"ElementaryTypeName","src":"2012:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:31:1"},"returnParameters":{"id":403,"nodeType":"ParameterList","parameters":[],"src":"2055:0:1"},"scope":444,"src":"1978:166:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[318],"body":{"id":442,"nodeType":"Block","src":"2311:93:1","statements":[{"expression":{"arguments":[{"id":431,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2339:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":432,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":424,"src":"2345:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":428,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2321:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$444_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_revokeRole","nodeType":"MemberAccess","referencedDeclaration":318,"src":"2321:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":434,"nodeType":"ExpressionStatement","src":"2321:32:1"},{"expression":{"arguments":[{"id":439,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":424,"src":"2389:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":435,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"2363:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$13169_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":437,"indexExpression":{"id":436,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2376:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2363:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":13223,"src":"2363:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$13169_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$13169_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2363:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":441,"nodeType":"ExpressionStatement","src":"2363:34:1"}]},"documentation":{"id":420,"nodeType":"StructuredDocumentation","src":"2150:78:1","text":" @dev Overload {_revokeRole} to track enumerable memberships"},"id":443,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"2242:11:1","nodeType":"FunctionDefinition","overrides":{"id":426,"nodeType":"OverrideSpecifier","overrides":[],"src":"2302:8:1"},"parameters":{"id":425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":422,"mutability":"mutable","name":"role","nameLocation":"2262:4:1","nodeType":"VariableDeclaration","scope":443,"src":"2254:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2254:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":424,"mutability":"mutable","name":"account","nameLocation":"2276:7:1","nodeType":"VariableDeclaration","scope":443,"src":"2268:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":423,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2253:31:1"},"returnParameters":{"id":427,"nodeType":"ParameterList","parameters":[],"src":"2311:0:1"},"scope":444,"src":"2233:171:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":445,"src":"355:2051:1","usedErrors":[]}],"src":"118:2289:1"},"id":1},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[517]},"id":518,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":446,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:2"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":447,"nodeType":"StructuredDocumentation","src":"119:89:2","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":517,"linearizedBaseContracts":[517],"name":"IAccessControl","nameLocation":"219:14:2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":448,"nodeType":"StructuredDocumentation","src":"240:292:2","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._"},"id":456,"name":"RoleAdminChanged","nameLocation":"543:16:2","nodeType":"EventDefinition","parameters":{"id":455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":450,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:2","nodeType":"VariableDeclaration","scope":456,"src":"560:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":452,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:2","nodeType":"VariableDeclaration","scope":456,"src":"582:33:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":454,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:2","nodeType":"VariableDeclaration","scope":456,"src":"617:28:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:2"},"src":"537:110:2"},{"anonymous":false,"documentation":{"id":457,"nodeType":"StructuredDocumentation","src":"653:212:2","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}."},"id":465,"name":"RoleGranted","nameLocation":"876:11:2","nodeType":"EventDefinition","parameters":{"id":464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":459,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:2","nodeType":"VariableDeclaration","scope":465,"src":"888:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":461,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:2","nodeType":"VariableDeclaration","scope":465,"src":"910:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":460,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":463,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:2","nodeType":"VariableDeclaration","scope":465,"src":"935:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":462,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:2"},"src":"870:89:2"},{"anonymous":false,"documentation":{"id":466,"nodeType":"StructuredDocumentation","src":"965:275:2","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`)"},"id":474,"name":"RoleRevoked","nameLocation":"1251:11:2","nodeType":"EventDefinition","parameters":{"id":473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":468,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:2","nodeType":"VariableDeclaration","scope":474,"src":"1263:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":470,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:2","nodeType":"VariableDeclaration","scope":474,"src":"1285:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":469,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":472,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:2","nodeType":"VariableDeclaration","scope":474,"src":"1310:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":471,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:2"},"src":"1245:89:2"},{"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"1340:76:2","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":484,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:2","nodeType":"FunctionDefinition","parameters":{"id":480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":477,"mutability":"mutable","name":"role","nameLocation":"1446:4:2","nodeType":"VariableDeclaration","scope":484,"src":"1438:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":476,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":479,"mutability":"mutable","name":"account","nameLocation":"1460:7:2","nodeType":"VariableDeclaration","scope":484,"src":"1452:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":478,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:2"},"returnParameters":{"id":483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":482,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":484,"src":"1492:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":481,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:2"},"scope":517,"src":"1421:77:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":485,"nodeType":"StructuredDocumentation","src":"1504:184:2","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":492,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:2","nodeType":"FunctionDefinition","parameters":{"id":488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":487,"mutability":"mutable","name":"role","nameLocation":"1723:4:2","nodeType":"VariableDeclaration","scope":492,"src":"1715:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:2"},"returnParameters":{"id":491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":492,"src":"1752:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:2"},"scope":517,"src":"1693:68:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":493,"nodeType":"StructuredDocumentation","src":"1767:239:2","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":500,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:2","nodeType":"FunctionDefinition","parameters":{"id":498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":495,"mutability":"mutable","name":"role","nameLocation":"2038:4:2","nodeType":"VariableDeclaration","scope":500,"src":"2030:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":494,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":497,"mutability":"mutable","name":"account","nameLocation":"2052:7:2","nodeType":"VariableDeclaration","scope":500,"src":"2044:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":496,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:2"},"returnParameters":{"id":499,"nodeType":"ParameterList","parameters":[],"src":"2069:0:2"},"scope":517,"src":"2011:59:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":501,"nodeType":"StructuredDocumentation","src":"2076:223:2","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":508,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:2","nodeType":"FunctionDefinition","parameters":{"id":506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":503,"mutability":"mutable","name":"role","nameLocation":"2332:4:2","nodeType":"VariableDeclaration","scope":508,"src":"2324:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":505,"mutability":"mutable","name":"account","nameLocation":"2346:7:2","nodeType":"VariableDeclaration","scope":508,"src":"2338:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":504,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:2"},"returnParameters":{"id":507,"nodeType":"ParameterList","parameters":[],"src":"2363:0:2"},"scope":517,"src":"2304:60:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":509,"nodeType":"StructuredDocumentation","src":"2370:480:2","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":516,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:2","nodeType":"FunctionDefinition","parameters":{"id":514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":511,"mutability":"mutable","name":"role","nameLocation":"2885:4:2","nodeType":"VariableDeclaration","scope":516,"src":"2877:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":513,"mutability":"mutable","name":"account","nameLocation":"2899:7:2","nodeType":"VariableDeclaration","scope":516,"src":"2891:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":512,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:2"},"returnParameters":{"id":515,"nodeType":"ParameterList","parameters":[],"src":"2916:0:2"},"scope":517,"src":"2855:62:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":518,"src":"209:2710:2","usedErrors":[]}],"src":"94:2826:2"},"id":2},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","exportedSymbols":{"IAccessControl":[517],"IAccessControlEnumerable":[542]},"id":543,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":519,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:3"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":520,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":543,"sourceUnit":518,"src":"129:30:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":522,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":517,"src":"299:14:3"},"id":523,"nodeType":"InheritanceSpecifier","src":"299:14:3"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":521,"nodeType":"StructuredDocumentation","src":"161:99:3","text":" @dev External interface of AccessControlEnumerable declared to support ERC165 detection."},"fullyImplemented":false,"id":542,"linearizedBaseContracts":[542,517],"name":"IAccessControlEnumerable","nameLocation":"271:24:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":524,"nodeType":"StructuredDocumentation","src":"320:574:3","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":533,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"908:13:3","nodeType":"FunctionDefinition","parameters":{"id":529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":526,"mutability":"mutable","name":"role","nameLocation":"930:4:3","nodeType":"VariableDeclaration","scope":533,"src":"922:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":528,"mutability":"mutable","name":"index","nameLocation":"944:5:3","nodeType":"VariableDeclaration","scope":533,"src":"936:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint256","nodeType":"ElementaryTypeName","src":"936:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"921:29:3"},"returnParameters":{"id":532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":533,"src":"974:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":530,"name":"address","nodeType":"ElementaryTypeName","src":"974:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:9:3"},"scope":542,"src":"899:84:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":534,"nodeType":"StructuredDocumentation","src":"989:157:3","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":541,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1160:18:3","nodeType":"FunctionDefinition","parameters":{"id":537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":536,"mutability":"mutable","name":"role","nameLocation":"1187:4:3","nodeType":"VariableDeclaration","scope":541,"src":"1179:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1179:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1178:14:3"},"returnParameters":{"id":540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":541,"src":"1216:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":538,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:9:3"},"scope":542,"src":"1151:74:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":543,"src":"261:966:3","usedErrors":[]}],"src":"104:1124:3"},"id":3},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[8255],"Ownable":[655]},"id":656,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":544,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:4"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":545,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":656,"sourceUnit":8256,"src":"127:30:4","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":547,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"683:7:4"},"id":548,"nodeType":"InheritanceSpecifier","src":"683:7:4"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":546,"nodeType":"StructuredDocumentation","src":"159: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":655,"linearizedBaseContracts":[655,8255],"name":"Ownable","nameLocation":"672:7:4","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":550,"mutability":"mutable","name":"_owner","nameLocation":"713:6:4","nodeType":"VariableDeclaration","scope":655,"src":"697:22:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":549,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"id":556,"name":"OwnershipTransferred","nameLocation":"732:20:4","nodeType":"EventDefinition","parameters":{"id":555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:4","nodeType":"VariableDeclaration","scope":556,"src":"753:29:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:4","nodeType":"VariableDeclaration","scope":556,"src":"784:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":553,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:4"},"src":"726:84:4"},{"body":{"id":565,"nodeType":"Block","src":"926:49:4","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":561,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"955:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":560,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"936:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":564,"nodeType":"ExpressionStatement","src":"936:32:4"}]},"documentation":{"id":557,"nodeType":"StructuredDocumentation","src":"816:91:4","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":566,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":558,"nodeType":"ParameterList","parameters":[],"src":"923:2:4"},"returnParameters":{"id":559,"nodeType":"ParameterList","parameters":[],"src":"926:0:4"},"scope":655,"src":"912:63:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":573,"nodeType":"Block","src":"1084:41:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":569,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"1094:11:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":571,"nodeType":"ExpressionStatement","src":"1094:13:4"},{"id":572,"nodeType":"PlaceholderStatement","src":"1117:1:4"}]},"documentation":{"id":567,"nodeType":"StructuredDocumentation","src":"981:77:4","text":" @dev Throws if called by any account other than the owner."},"id":574,"name":"onlyOwner","nameLocation":"1072:9:4","nodeType":"ModifierDefinition","parameters":{"id":568,"nodeType":"ParameterList","parameters":[],"src":"1081:2:4"},"src":"1063:62:4","virtual":false,"visibility":"internal"},{"body":{"id":582,"nodeType":"Block","src":"1256:30:4","statements":[{"expression":{"id":580,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"1273:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":579,"id":581,"nodeType":"Return","src":"1266:13:4"}]},"documentation":{"id":575,"nodeType":"StructuredDocumentation","src":"1131:65:4","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":583,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:4","nodeType":"FunctionDefinition","parameters":{"id":576,"nodeType":"ParameterList","parameters":[],"src":"1215:2:4"},"returnParameters":{"id":579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":583,"src":"1247:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":577,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:4"},"scope":655,"src":"1201:85:4","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":596,"nodeType":"Block","src":"1404:85:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":588,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"1422:5:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":590,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"1433:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447: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":587,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":595,"nodeType":"ExpressionStatement","src":"1414:68:4"}]},"documentation":{"id":584,"nodeType":"StructuredDocumentation","src":"1292:62:4","text":" @dev Throws if the sender is not the owner."},"id":597,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:4","nodeType":"FunctionDefinition","parameters":{"id":585,"nodeType":"ParameterList","parameters":[],"src":"1379:2:4"},"returnParameters":{"id":586,"nodeType":"ParameterList","parameters":[],"src":"1404:0:4"},"scope":655,"src":"1359:130:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":610,"nodeType":"Block","src":"1885:47:4","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922: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":605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":604,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:4","typeDescriptions":{}}},"id":607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":603,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"1895:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":609,"nodeType":"ExpressionStatement","src":"1895:30:4"}]},"documentation":{"id":598,"nodeType":"StructuredDocumentation","src":"1495:331:4","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":611,"implemented":true,"kind":"function","modifiers":[{"id":601,"kind":"modifierInvocation","modifierName":{"id":600,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"1875:9:4"},"nodeType":"ModifierInvocation","src":"1875:9:4"}],"name":"renounceOwnership","nameLocation":"1840:17:4","nodeType":"FunctionDefinition","parameters":{"id":599,"nodeType":"ParameterList","parameters":[],"src":"1857:2:4"},"returnParameters":{"id":602,"nodeType":"ParameterList","parameters":[],"src":"1885:0:4"},"scope":655,"src":"1831:101:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":633,"nodeType":"Block","src":"2151:128:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":620,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":614,"src":"2169:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189: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":622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":621,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:4","typeDescriptions":{}}},"id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193: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":619,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":628,"nodeType":"ExpressionStatement","src":"2161:73:4"},{"expression":{"arguments":[{"id":630,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":614,"src":"2263:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":629,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"2244:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"2244:28:4"}]},"documentation":{"id":612,"nodeType":"StructuredDocumentation","src":"1938: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":634,"implemented":true,"kind":"function","modifiers":[{"id":617,"kind":"modifierInvocation","modifierName":{"id":616,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"2141:9:4"},"nodeType":"ModifierInvocation","src":"2141:9:4"}],"name":"transferOwnership","nameLocation":"2090:17:4","nodeType":"FunctionDefinition","parameters":{"id":615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":614,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:4","nodeType":"VariableDeclaration","scope":634,"src":"2108:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":613,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:4"},"returnParameters":{"id":618,"nodeType":"ParameterList","parameters":[],"src":"2151:0:4"},"scope":655,"src":"2081:198:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":653,"nodeType":"Block","src":"2496:124:4","statements":[{"assignments":[641],"declarations":[{"constant":false,"id":641,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:4","nodeType":"VariableDeclaration","scope":653,"src":"2506:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":640,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":643,"initialValue":{"id":642,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"2525:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:4"},{"expression":{"id":646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":644,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"2541:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":645,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"2550:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":647,"nodeType":"ExpressionStatement","src":"2541:17:4"},{"eventCall":{"arguments":[{"id":649,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"2594:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":650,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"2604:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":648,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"2573:20:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":652,"nodeType":"EmitStatement","src":"2568:45:4"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"2285:143:4","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":654,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:4","nodeType":"FunctionDefinition","parameters":{"id":638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":637,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:4","nodeType":"VariableDeclaration","scope":654,"src":"2461:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":636,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:4"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[],"src":"2496:0:4"},"scope":655,"src":"2433:187:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":656,"src":"654:1968:4","usedErrors":[]}],"src":"102:2521:4"},"id":4},"@openzeppelin/contracts/governance/Governor.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"DoubleEndedQueue":[12857],"ECDSA":[9157],"EIP712":[9813],"ERC165":[9837],"Governor":[1952],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"IGovernor":[2249],"SafeCast":[12204],"Strings":[8555],"Timers":[8769]},"id":1953,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":657,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"../token/ERC721/IERC721Receiver.sol","id":658,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":7111,"src":"132:45:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"../token/ERC1155/IERC1155Receiver.sol","id":659,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":5104,"src":"178:47:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"../utils/cryptography/ECDSA.sol","id":660,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":9158,"src":"226:41:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","file":"../utils/cryptography/draft-EIP712.sol","id":661,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":9814,"src":"268:48:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":9838,"src":"317:43:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../utils/math/SafeCast.sol","id":663,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":12205,"src":"361:36:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol","file":"../utils/structs/DoubleEndedQueue.sol","id":664,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":12858,"src":"398:47:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../utils/Address.sol","id":665,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":8000,"src":"446:30:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":8256,"src":"477:30:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Timers.sol","file":"../utils/Timers.sol","id":667,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":8770,"src":"508:29:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/IGovernor.sol","file":"./IGovernor.sol","id":668,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1953,"sourceUnit":2250,"src":"538:25:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":670,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"1034:7:5"},"id":671,"nodeType":"InheritanceSpecifier","src":"1034:7:5"},{"baseName":{"id":672,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":9837,"src":"1043:6:5"},"id":673,"nodeType":"InheritanceSpecifier","src":"1043:6:5"},{"baseName":{"id":674,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":9813,"src":"1051:6:5"},"id":675,"nodeType":"InheritanceSpecifier","src":"1051:6:5"},{"baseName":{"id":676,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"1059:9:5"},"id":677,"nodeType":"InheritanceSpecifier","src":"1059:9:5"},{"baseName":{"id":678,"name":"IERC721Receiver","nodeType":"IdentifierPath","referencedDeclaration":7110,"src":"1070:15:5"},"id":679,"nodeType":"InheritanceSpecifier","src":"1070:15:5"},{"baseName":{"id":680,"name":"IERC1155Receiver","nodeType":"IdentifierPath","referencedDeclaration":5103,"src":"1087:16:5"},"id":681,"nodeType":"InheritanceSpecifier","src":"1087:16:5"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":669,"nodeType":"StructuredDocumentation","src":"565:438:5","text":" @dev Core of the governance system, designed to be extended though various modules.\n This contract is abstract and requires several function to be implemented in various modules:\n - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote}\n - A voting module must implement {_getVotes}\n - Additionanly, the {votingPeriod} must also be implemented\n _Available since v4.3._"},"fullyImplemented":false,"id":1952,"linearizedBaseContracts":[1952,5103,7110,2249,9813,9837,9849,8255],"name":"Governor","nameLocation":"1022:8:5","nodeType":"ContractDefinition","nodes":[{"id":685,"libraryName":{"id":682,"name":"DoubleEndedQueue","nodeType":"IdentifierPath","referencedDeclaration":12857,"src":"1116:16:5"},"nodeType":"UsingForDirective","src":"1110:57:5","typeName":{"id":684,"nodeType":"UserDefinedTypeName","pathNode":{"id":683,"name":"DoubleEndedQueue.Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"1137:29:5"},"referencedDeclaration":12535,"src":"1137:29:5","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}}},{"id":688,"libraryName":{"id":686,"name":"SafeCast","nodeType":"IdentifierPath","referencedDeclaration":12204,"src":"1178:8:5"},"nodeType":"UsingForDirective","src":"1172:27:5","typeName":{"id":687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1191:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":692,"libraryName":{"id":689,"name":"Timers","nodeType":"IdentifierPath","referencedDeclaration":8769,"src":"1210:6:5"},"nodeType":"UsingForDirective","src":"1204:36:5","typeName":{"id":691,"nodeType":"UserDefinedTypeName","pathNode":{"id":690,"name":"Timers.BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1221:18:5"},"referencedDeclaration":8666,"src":"1221:18:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}}},{"constant":true,"functionSelector":"deaaa7cc","id":697,"mutability":"constant","name":"BALLOT_TYPEHASH","nameLocation":"1270:15:5","nodeType":"VariableDeclaration","scope":1952,"src":"1246:95:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1246:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f727429","id":695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1298:42:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""},"value":"Ballot(uint256 proposalId,uint8 support)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""}],"id":694,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1288:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1288:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"2fe3e261","id":702,"mutability":"constant","name":"EXTENDED_BALLOT_TYPEHASH","nameLocation":"1371:24:5","nodeType":"VariableDeclaration","scope":1952,"src":"1347:147:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1347:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"457874656e64656442616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f72742c737472696e6720726561736f6e2c627974657320706172616d7329","id":700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1416:77:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af88","typeString":"literal_string \"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)\""},"value":"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af88","typeString":"literal_string \"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)\""}],"id":699,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1406:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1406:88:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"canonicalName":"Governor.ProposalCore","id":713,"members":[{"constant":false,"id":705,"mutability":"mutable","name":"voteStart","nameLocation":"1550:9:5","nodeType":"VariableDeclaration","scope":713,"src":"1531:28:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":704,"nodeType":"UserDefinedTypeName","pathNode":{"id":703,"name":"Timers.BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1531:18:5"},"referencedDeclaration":8666,"src":"1531:18:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"},{"constant":false,"id":708,"mutability":"mutable","name":"voteEnd","nameLocation":"1588:7:5","nodeType":"VariableDeclaration","scope":713,"src":"1569:26:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":707,"nodeType":"UserDefinedTypeName","pathNode":{"id":706,"name":"Timers.BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1569:18:5"},"referencedDeclaration":8666,"src":"1569:18:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"},{"constant":false,"id":710,"mutability":"mutable","name":"executed","nameLocation":"1610:8:5","nodeType":"VariableDeclaration","scope":713,"src":"1605:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":709,"name":"bool","nodeType":"ElementaryTypeName","src":"1605:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":712,"mutability":"mutable","name":"canceled","nameLocation":"1633:8:5","nodeType":"VariableDeclaration","scope":713,"src":"1628:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":711,"name":"bool","nodeType":"ElementaryTypeName","src":"1628:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"ProposalCore","nameLocation":"1508:12:5","nodeType":"StructDefinition","scope":1952,"src":"1501:147:5","visibility":"public"},{"constant":false,"id":715,"mutability":"mutable","name":"_name","nameLocation":"1669:5:5","nodeType":"VariableDeclaration","scope":1952,"src":"1654:20:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":714,"name":"string","nodeType":"ElementaryTypeName","src":"1654:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":720,"mutability":"mutable","name":"_proposals","nameLocation":"1722:10:5","nodeType":"VariableDeclaration","scope":1952,"src":"1681:51:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore)"},"typeName":{"id":719,"keyType":{"id":716,"name":"uint256","nodeType":"ElementaryTypeName","src":"1689:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1681:32:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore)"},"valueType":{"id":718,"nodeType":"UserDefinedTypeName","pathNode":{"id":717,"name":"ProposalCore","nodeType":"IdentifierPath","referencedDeclaration":713,"src":"1700:12:5"},"referencedDeclaration":713,"src":"1700:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore"}}},"visibility":"private"},{"constant":false,"id":723,"mutability":"mutable","name":"_governanceCall","nameLocation":"2209:15:5","nodeType":"VariableDeclaration","scope":1952,"src":"2171:53:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":722,"nodeType":"UserDefinedTypeName","pathNode":{"id":721,"name":"DoubleEndedQueue.Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"2171:29:5"},"referencedDeclaration":12535,"src":"2171:29:5","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"private"},{"body":{"id":759,"nodeType":"Block","src":"2995:378:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":727,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"3013:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3013:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":729,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"3029:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3029:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3013:27:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a206f6e6c79476f7665726e616e6365","id":732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3042:26:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f","typeString":"literal_string \"Governor: onlyGovernance\""},"value":"Governor: onlyGovernance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f","typeString":"literal_string \"Governor: onlyGovernance\""}],"id":726,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3005:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3005:64:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":734,"nodeType":"ExpressionStatement","src":"3005:64:5"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":735,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"3083:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3083:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":739,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3106:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}],"id":738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3098:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":737,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:5","typeDescriptions":{}}},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3098:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3083:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":757,"nodeType":"IfStatement","src":"3079:277:5","trueBody":{"id":756,"nodeType":"Block","src":"3113:243:5","statements":[{"assignments":[743],"declarations":[{"constant":false,"id":743,"mutability":"mutable","name":"msgDataHash","nameLocation":"3135:11:5","nodeType":"VariableDeclaration","scope":756,"src":"3127:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3127:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":748,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":745,"name":"_msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8254,"src":"3159:8:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_calldata_ptr_$","typeString":"function () view returns (bytes calldata)"}},"id":746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3159:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3149:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3149:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3127:43:5"},{"body":{"id":754,"nodeType":"Block","src":"3344:2:5","statements":[]},"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":749,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":723,"src":"3301:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"popFront","nodeType":"MemberAccess","referencedDeclaration":12693,"src":"3301:24:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Deque_$12535_storage_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_Bytes32Deque_$12535_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) returns (bytes32)"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3301:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":752,"name":"msgDataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"3331:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3301:41:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":755,"nodeType":"WhileStatement","src":"3294:52:5"}]}},{"id":758,"nodeType":"PlaceholderStatement","src":"3365:1:5"}]},"documentation":{"id":724,"nodeType":"StructuredDocumentation","src":"2231:733:5","text":" @dev Restricts a function so it can only be executed through governance proposals. For example, governance\n parameter setters in {GovernorSettings} are protected using this modifier.\n The governance executing address may be different from the Governor's own address, for example it could be a\n timelock. This can be customized by modules by overriding {_executor}. The executor is only able to invoke these\n functions during the execution of the governor's {execute} function, and not under any other circumstances. Thus,\n for example, additional timelock proposers are not able to change governance parameters without going through the\n governance protocol (since v4.6)."},"id":760,"name":"onlyGovernance","nameLocation":"2978:14:5","nodeType":"ModifierDefinition","parameters":{"id":725,"nodeType":"ParameterList","parameters":[],"src":"2992:2:5"},"src":"2969:404:5","virtual":false,"visibility":"internal"},{"body":{"id":775,"nodeType":"Block","src":"3505:30:5","statements":[{"expression":{"id":773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":771,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"3515:5:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":772,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":763,"src":"3523:5:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3515:13:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":774,"nodeType":"ExpressionStatement","src":"3515:13:5"}]},"documentation":{"id":761,"nodeType":"StructuredDocumentation","src":"3379:63:5","text":" @dev Sets the value for {name} and {version}"},"id":776,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":766,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":763,"src":"3487:5:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":767,"name":"version","nodeType":"Identifier","overloadedDeclarations":[862],"referencedDeclaration":862,"src":"3494:7:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3494:9:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":769,"kind":"baseConstructorSpecifier","modifierName":{"id":765,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":9813,"src":"3480:6:5"},"nodeType":"ModifierInvocation","src":"3480:24:5"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":763,"mutability":"mutable","name":"name_","nameLocation":"3473:5:5","nodeType":"VariableDeclaration","scope":776,"src":"3459:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":762,"name":"string","nodeType":"ElementaryTypeName","src":"3459:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3458:21:5"},"returnParameters":{"id":770,"nodeType":"ParameterList","parameters":[],"src":"3505:0:5"},"scope":1952,"src":"3447:88:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":790,"nodeType":"Block","src":"3714:54:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":781,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"3732:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3732:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":785,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3755:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}],"id":784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3747:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":783,"name":"address","nodeType":"ElementaryTypeName","src":"3747:7:5","typeDescriptions":{}}},"id":786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3747:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3732:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":780,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3724:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3724:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":789,"nodeType":"ExpressionStatement","src":"3724:37:5"}]},"documentation":{"id":777,"nodeType":"StructuredDocumentation","src":"3541:133:5","text":" @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract)"},"id":791,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":778,"nodeType":"ParameterList","parameters":[],"src":"3686:2:5"},"returnParameters":{"id":779,"nodeType":"ParameterList","parameters":[],"src":"3714:0:5"},"scope":1952,"src":"3679:89:5","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[9836,9848],"body":{"id":841,"nodeType":"Block","src":"3943:630:5","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":802,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"4159:11:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":804,"name":"IGovernor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2249,"src":"4192:9:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernor_$2249_$","typeString":"type(contract IGovernor)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IGovernor_$2249_$","typeString":"type(contract IGovernor)"}],"id":803,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4187:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4187:15:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IGovernor_$2249","typeString":"type(contract IGovernor)"}},"id":806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"4187:27:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"expression":{"id":807,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4233:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}},"id":808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"castVoteWithReasonAndParams","nodeType":"MemberAccess","referencedDeclaration":1647,"src":"4233:32:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint8,string memory,bytes memory) external returns (uint256)"}},"id":809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4233:41:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4187:87:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"expression":{"id":811,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4293:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"castVoteWithReasonAndParamsBySig","nodeType":"MemberAccess","referencedDeclaration":1749,"src":"4293:37:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (uint256,uint8,string memory,bytes memory,uint8,bytes32,bytes32) external returns (uint256)"}},"id":813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4293:46:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4187:152:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"expression":{"id":815,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4358:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getVotesWithParams","nodeType":"MemberAccess","referencedDeclaration":1568,"src":"4358:23:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (uint256)"}},"id":817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4358:32:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4187:203:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":819,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4186:205:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4159:232:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":821,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"4407:11:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":823,"name":"IGovernor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2249,"src":"4427:9:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernor_$2249_$","typeString":"type(contract IGovernor)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IGovernor_$2249_$","typeString":"type(contract IGovernor)"}],"id":822,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4422:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4422:15:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IGovernor_$2249","typeString":"type(contract IGovernor)"}},"id":825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"4422:27:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4407:42:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4159:290:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":828,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"4465:11:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":830,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"4485:16:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$5103_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$5103_$","typeString":"type(contract IERC1155Receiver)"}],"id":829,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4480:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4480:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$5103","typeString":"type(contract IERC1155Receiver)"}},"id":832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"4480:34:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4465:49:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4159:355:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":837,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"4554:11:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":835,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4530:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Governor_$1952_$","typeString":"type(contract super Governor)"}},"id":836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":9836,"src":"4530:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4530:36:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4159:407:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":801,"id":840,"nodeType":"Return","src":"4140:426:5"}]},"documentation":{"id":792,"nodeType":"StructuredDocumentation","src":"3774:56:5","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":842,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3844:17:5","nodeType":"FunctionDefinition","overrides":{"id":798,"nodeType":"OverrideSpecifier","overrides":[{"id":796,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"3911:7:5"},{"id":797,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":9837,"src":"3920:6:5"}],"src":"3902:25:5"},"parameters":{"id":795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":794,"mutability":"mutable","name":"interfaceId","nameLocation":"3869:11:5","nodeType":"VariableDeclaration","scope":842,"src":"3862:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":793,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3862:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3861:20:5"},"returnParameters":{"id":801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":842,"src":"3937:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":799,"name":"bool","nodeType":"ElementaryTypeName","src":"3937:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3936:6:5"},"scope":1952,"src":"3835:738:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2036],"body":{"id":851,"nodeType":"Block","src":"4698:29:5","statements":[{"expression":{"id":849,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"4715:5:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":848,"id":850,"nodeType":"Return","src":"4708:12:5"}]},"documentation":{"id":843,"nodeType":"StructuredDocumentation","src":"4579:45:5","text":" @dev See {IGovernor-name}."},"functionSelector":"06fdde03","id":852,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"4638:4:5","nodeType":"FunctionDefinition","overrides":{"id":845,"nodeType":"OverrideSpecifier","overrides":[],"src":"4665:8:5"},"parameters":{"id":844,"nodeType":"ParameterList","parameters":[],"src":"4642:2:5"},"returnParameters":{"id":848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":852,"src":"4683:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":846,"name":"string","nodeType":"ElementaryTypeName","src":"4683:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4682:15:5"},"scope":1952,"src":"4629:98:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2042],"body":{"id":861,"nodeType":"Block","src":"4858:27:5","statements":[{"expression":{"hexValue":"31","id":859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4875:3:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"functionReturnParameters":858,"id":860,"nodeType":"Return","src":"4868:10:5"}]},"documentation":{"id":853,"nodeType":"StructuredDocumentation","src":"4733:48:5","text":" @dev See {IGovernor-version}."},"functionSelector":"54fd4d50","id":862,"implemented":true,"kind":"function","modifiers":[],"name":"version","nameLocation":"4795:7:5","nodeType":"FunctionDefinition","overrides":{"id":855,"nodeType":"OverrideSpecifier","overrides":[],"src":"4825:8:5"},"parameters":{"id":854,"nodeType":"ParameterList","parameters":[],"src":"4802:2:5"},"returnParameters":{"id":858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":857,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":862,"src":"4843:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":856,"name":"string","nodeType":"ElementaryTypeName","src":"4843:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4842:15:5"},"scope":1952,"src":"4786:99:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2065],"body":{"id":893,"nodeType":"Block","src":"6039:99:5","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":885,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"6085:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":886,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"6094:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":887,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":872,"src":"6102:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":888,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":874,"src":"6113:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6074:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"6074:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6074:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":882,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6064:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6064:66:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6056:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":880,"name":"uint256","nodeType":"ElementaryTypeName","src":"6056:7:5","typeDescriptions":{}}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6056:75:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":879,"id":892,"nodeType":"Return","src":"6049:82:5"}]},"documentation":{"id":863,"nodeType":"StructuredDocumentation","src":"4891:934:5","text":" @dev See {IGovernor-hashProposal}.\n The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array\n and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id\n can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in\n advance, before the proposal is submitted.\n Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the\n same proposal (with same operation and same description) will have the same id if submitted on multiple governors\n across multiple networks. This also means that in order to execute the same operation twice (on the same\n governor) the proposer will have to change the description in order to avoid proposal id conflicts."},"functionSelector":"c59057e4","id":894,"implemented":true,"kind":"function","modifiers":[],"name":"hashProposal","nameLocation":"5839:12:5","nodeType":"FunctionDefinition","overrides":{"id":876,"nodeType":"OverrideSpecifier","overrides":[],"src":"6012:8:5"},"parameters":{"id":875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":866,"mutability":"mutable","name":"targets","nameLocation":"5878:7:5","nodeType":"VariableDeclaration","scope":894,"src":"5861:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":864,"name":"address","nodeType":"ElementaryTypeName","src":"5861:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":865,"nodeType":"ArrayTypeName","src":"5861:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":869,"mutability":"mutable","name":"values","nameLocation":"5912:6:5","nodeType":"VariableDeclaration","scope":894,"src":"5895:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":867,"name":"uint256","nodeType":"ElementaryTypeName","src":"5895:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":868,"nodeType":"ArrayTypeName","src":"5895:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":872,"mutability":"mutable","name":"calldatas","nameLocation":"5943:9:5","nodeType":"VariableDeclaration","scope":894,"src":"5928:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":870,"name":"bytes","nodeType":"ElementaryTypeName","src":"5928:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":871,"nodeType":"ArrayTypeName","src":"5928:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":874,"mutability":"mutable","name":"descriptionHash","nameLocation":"5970:15:5","nodeType":"VariableDeclaration","scope":894,"src":"5962:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5962:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5851:140:5"},"returnParameters":{"id":879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":894,"src":"6030:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":877,"name":"uint256","nodeType":"ElementaryTypeName","src":"6030:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6029:9:5"},"scope":1952,"src":"5830:308:5","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[2074],"body":{"id":980,"nodeType":"Block","src":"6283:826:5","statements":[{"assignments":[906],"declarations":[{"constant":false,"id":906,"mutability":"mutable","name":"proposal","nameLocation":"6314:8:5","nodeType":"VariableDeclaration","scope":980,"src":"6293:29:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore"},"typeName":{"id":905,"nodeType":"UserDefinedTypeName","pathNode":{"id":904,"name":"ProposalCore","nodeType":"IdentifierPath","referencedDeclaration":713,"src":"6293:12:5"},"referencedDeclaration":713,"src":"6293:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore"}},"visibility":"internal"}],"id":910,"initialValue":{"baseExpression":{"id":907,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"6325:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":909,"indexExpression":{"id":908,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"6336:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6325:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage","typeString":"struct Governor.ProposalCore storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6293:54:5"},{"condition":{"expression":{"id":911,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"6362:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":710,"src":"6362:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":917,"nodeType":"IfStatement","src":"6358:77:5","trueBody":{"id":916,"nodeType":"Block","src":"6381:54:5","statements":[{"expression":{"expression":{"id":913,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"6402:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":1966,"src":"6402:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":903,"id":915,"nodeType":"Return","src":"6395:29:5"}]}},{"condition":{"expression":{"id":918,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"6449:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":712,"src":"6449:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":924,"nodeType":"IfStatement","src":"6445:77:5","trueBody":{"id":923,"nodeType":"Block","src":"6468:54:5","statements":[{"expression":{"expression":{"id":920,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"6489:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":1961,"src":"6489:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":903,"id":922,"nodeType":"Return","src":"6482:29:5"}]}},{"assignments":[926],"declarations":[{"constant":false,"id":926,"mutability":"mutable","name":"snapshot","nameLocation":"6540:8:5","nodeType":"VariableDeclaration","scope":980,"src":"6532:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":925,"name":"uint256","nodeType":"ElementaryTypeName","src":"6532:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":930,"initialValue":{"arguments":[{"id":928,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"6568:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":927,"name":"proposalSnapshot","nodeType":"Identifier","overloadedDeclarations":[998],"referencedDeclaration":998,"src":"6551:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6551:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6532:47:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":931,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"6594:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6594:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":939,"nodeType":"IfStatement","src":"6590:83:5","trueBody":{"id":938,"nodeType":"Block","src":"6609:64:5","statements":[{"expression":{"arguments":[{"hexValue":"476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c206964","id":935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6630:31:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892","typeString":"literal_string \"Governor: unknown proposal id\""},"value":"Governor: unknown proposal id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892","typeString":"literal_string \"Governor: unknown proposal id\""}],"id":934,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6623:6:5","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6623:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":937,"nodeType":"ExpressionStatement","src":"6623:39:5"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":940,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"6687:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":941,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6699:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"6699:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:24:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":948,"nodeType":"IfStatement","src":"6683:83:5","trueBody":{"id":947,"nodeType":"Block","src":"6713:53:5","statements":[{"expression":{"expression":{"id":944,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"6734:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":1959,"src":"6734:21:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":903,"id":946,"nodeType":"Return","src":"6727:28:5"}]}},{"assignments":[950],"declarations":[{"constant":false,"id":950,"mutability":"mutable","name":"deadline","nameLocation":"6784:8:5","nodeType":"VariableDeclaration","scope":980,"src":"6776:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":949,"name":"uint256","nodeType":"ElementaryTypeName","src":"6776:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":954,"initialValue":{"arguments":[{"id":952,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"6812:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":951,"name":"proposalDeadline","nodeType":"Identifier","overloadedDeclarations":[1015],"referencedDeclaration":1015,"src":"6795:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6795:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6776:47:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":955,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"6838:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":956,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6850:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"6850:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6838:24:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":963,"nodeType":"IfStatement","src":"6834:82:5","trueBody":{"id":962,"nodeType":"Block","src":"6864:52:5","statements":[{"expression":{"expression":{"id":959,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"6885:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":1960,"src":"6885:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":903,"id":961,"nodeType":"Return","src":"6878:27:5"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":965,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"6945:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":964,"name":"_quorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"6930:14:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6930:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":968,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"6975:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":967,"name":"_voteSucceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"6960:14:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6960:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6930:56:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":978,"nodeType":"Block","src":"7049:54:5","statements":[{"expression":{"expression":{"id":975,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"7070:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Defeated","nodeType":"MemberAccess","referencedDeclaration":1962,"src":"7070:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":903,"id":977,"nodeType":"Return","src":"7063:29:5"}]},"id":979,"nodeType":"IfStatement","src":"6926:177:5","trueBody":{"id":974,"nodeType":"Block","src":"6988:55:5","statements":[{"expression":{"expression":{"id":971,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"7009:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":1963,"src":"7009:23:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":903,"id":973,"nodeType":"Return","src":"7002:30:5"}]}}]},"documentation":{"id":895,"nodeType":"StructuredDocumentation","src":"6144:46:5","text":" @dev See {IGovernor-state}."},"functionSelector":"3e4f49e6","id":981,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"6204:5:5","nodeType":"FunctionDefinition","overrides":{"id":899,"nodeType":"OverrideSpecifier","overrides":[],"src":"6250:8:5"},"parameters":{"id":898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":897,"mutability":"mutable","name":"proposalId","nameLocation":"6218:10:5","nodeType":"VariableDeclaration","scope":981,"src":"6210:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":896,"name":"uint256","nodeType":"ElementaryTypeName","src":"6210:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6209:20:5"},"returnParameters":{"id":903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":902,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":981,"src":"6268:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":901,"nodeType":"UserDefinedTypeName","pathNode":{"id":900,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"6268:13:5"},"referencedDeclaration":1967,"src":"6268:13:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"6267:15:5"},"scope":1952,"src":"6195:914:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2082],"body":{"id":997,"nodeType":"Block","src":"7270:70:5","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":990,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"7287:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":992,"indexExpression":{"id":991,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":984,"src":"7298:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7287:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":705,"src":"7287:32:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getDeadline","nodeType":"MemberAccess","referencedDeclaration":8678,"src":"7287:44:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$8666_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_BlockNumber_$8666_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (uint64)"}},"id":995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7287:46:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":989,"id":996,"nodeType":"Return","src":"7280:53:5"}]},"documentation":{"id":982,"nodeType":"StructuredDocumentation","src":"7115:57:5","text":" @dev See {IGovernor-proposalSnapshot}."},"functionSelector":"2d63f693","id":998,"implemented":true,"kind":"function","modifiers":[],"name":"proposalSnapshot","nameLocation":"7186:16:5","nodeType":"FunctionDefinition","overrides":{"id":986,"nodeType":"OverrideSpecifier","overrides":[],"src":"7243:8:5"},"parameters":{"id":985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":984,"mutability":"mutable","name":"proposalId","nameLocation":"7211:10:5","nodeType":"VariableDeclaration","scope":998,"src":"7203:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":983,"name":"uint256","nodeType":"ElementaryTypeName","src":"7203:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7202:20:5"},"returnParameters":{"id":989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":998,"src":"7261:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":987,"name":"uint256","nodeType":"ElementaryTypeName","src":"7261:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7260:9:5"},"scope":1952,"src":"7177:163:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2090],"body":{"id":1014,"nodeType":"Block","src":"7501:68:5","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":1007,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"7518:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":1009,"indexExpression":{"id":1008,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"7529:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7518:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":1010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteEnd","nodeType":"MemberAccess","referencedDeclaration":708,"src":"7518:30:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":1011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getDeadline","nodeType":"MemberAccess","referencedDeclaration":8678,"src":"7518:42:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$8666_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_BlockNumber_$8666_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (uint64)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7518:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1006,"id":1013,"nodeType":"Return","src":"7511:51:5"}]},"documentation":{"id":999,"nodeType":"StructuredDocumentation","src":"7346:57:5","text":" @dev See {IGovernor-proposalDeadline}."},"functionSelector":"c01f9e37","id":1015,"implemented":true,"kind":"function","modifiers":[],"name":"proposalDeadline","nameLocation":"7417:16:5","nodeType":"FunctionDefinition","overrides":{"id":1003,"nodeType":"OverrideSpecifier","overrides":[],"src":"7474:8:5"},"parameters":{"id":1002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1001,"mutability":"mutable","name":"proposalId","nameLocation":"7442:10:5","nodeType":"VariableDeclaration","scope":1015,"src":"7434:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1000,"name":"uint256","nodeType":"ElementaryTypeName","src":"7434:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7433:20:5"},"returnParameters":{"id":1006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1015,"src":"7492:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1004,"name":"uint256","nodeType":"ElementaryTypeName","src":"7492:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7491:9:5"},"scope":1952,"src":"7408:161:5","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1023,"nodeType":"Block","src":"7786:25:5","statements":[{"expression":{"hexValue":"30","id":1021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7803:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1020,"id":1022,"nodeType":"Return","src":"7796:8:5"}]},"documentation":{"id":1016,"nodeType":"StructuredDocumentation","src":"7575:139:5","text":" @dev Part of the Governor Bravo's interface: _\"The number of votes required in order for a voter to become a proposer\"_."},"functionSelector":"b58131b0","id":1024,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nameLocation":"7728:17:5","nodeType":"FunctionDefinition","parameters":{"id":1017,"nodeType":"ParameterList","parameters":[],"src":"7745:2:5"},"returnParameters":{"id":1020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1024,"src":"7777:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1018,"name":"uint256","nodeType":"ElementaryTypeName","src":"7777:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7776:9:5"},"scope":1952,"src":"7719:92:5","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":1025,"nodeType":"StructuredDocumentation","src":"7817:80:5","text":" @dev Amount of votes already cast passes the threshold limit."},"id":1032,"implemented":false,"kind":"function","modifiers":[],"name":"_quorumReached","nameLocation":"7911:14:5","nodeType":"FunctionDefinition","parameters":{"id":1028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1027,"mutability":"mutable","name":"proposalId","nameLocation":"7934:10:5","nodeType":"VariableDeclaration","scope":1032,"src":"7926:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1026,"name":"uint256","nodeType":"ElementaryTypeName","src":"7926:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7925:20:5"},"returnParameters":{"id":1031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1030,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1032,"src":"7977:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1029,"name":"bool","nodeType":"ElementaryTypeName","src":"7977:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7976:6:5"},"scope":1952,"src":"7902:81:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"documentation":{"id":1033,"nodeType":"StructuredDocumentation","src":"7989:58:5","text":" @dev Is the proposal successful or not."},"id":1040,"implemented":false,"kind":"function","modifiers":[],"name":"_voteSucceeded","nameLocation":"8061:14:5","nodeType":"FunctionDefinition","parameters":{"id":1036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1035,"mutability":"mutable","name":"proposalId","nameLocation":"8084:10:5","nodeType":"VariableDeclaration","scope":1040,"src":"8076:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1034,"name":"uint256","nodeType":"ElementaryTypeName","src":"8076:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8075:20:5"},"returnParameters":{"id":1039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1040,"src":"8127:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1037,"name":"bool","nodeType":"ElementaryTypeName","src":"8127:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8126:6:5"},"scope":1952,"src":"8052:81:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"documentation":{"id":1041,"nodeType":"StructuredDocumentation","src":"8139:124:5","text":" @dev Get the voting weight of `account` at a specific `blockNumber`, for a vote as described by `params`."},"id":1052,"implemented":false,"kind":"function","modifiers":[],"name":"_getVotes","nameLocation":"8277:9:5","nodeType":"FunctionDefinition","parameters":{"id":1048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1043,"mutability":"mutable","name":"account","nameLocation":"8304:7:5","nodeType":"VariableDeclaration","scope":1052,"src":"8296:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1042,"name":"address","nodeType":"ElementaryTypeName","src":"8296:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1045,"mutability":"mutable","name":"blockNumber","nameLocation":"8329:11:5","nodeType":"VariableDeclaration","scope":1052,"src":"8321:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1044,"name":"uint256","nodeType":"ElementaryTypeName","src":"8321:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1047,"mutability":"mutable","name":"params","nameLocation":"8363:6:5","nodeType":"VariableDeclaration","scope":1052,"src":"8350:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1046,"name":"bytes","nodeType":"ElementaryTypeName","src":"8350:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8286:89:5"},"returnParameters":{"id":1051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1052,"src":"8407:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1049,"name":"uint256","nodeType":"ElementaryTypeName","src":"8407:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8406:9:5"},"scope":1952,"src":"8268:148:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"documentation":{"id":1053,"nodeType":"StructuredDocumentation","src":"8422:239:5","text":" @dev Register a vote for `proposalId` by `account` with a given `support`, voting `weight` and voting `params`.\n Note: Support is generic and can represent various things depending on the voting system used."},"id":1066,"implemented":false,"kind":"function","modifiers":[],"name":"_countVote","nameLocation":"8675:10:5","nodeType":"FunctionDefinition","parameters":{"id":1064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1055,"mutability":"mutable","name":"proposalId","nameLocation":"8703:10:5","nodeType":"VariableDeclaration","scope":1066,"src":"8695:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1054,"name":"uint256","nodeType":"ElementaryTypeName","src":"8695:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1057,"mutability":"mutable","name":"account","nameLocation":"8731:7:5","nodeType":"VariableDeclaration","scope":1066,"src":"8723:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1056,"name":"address","nodeType":"ElementaryTypeName","src":"8723:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1059,"mutability":"mutable","name":"support","nameLocation":"8754:7:5","nodeType":"VariableDeclaration","scope":1066,"src":"8748:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1058,"name":"uint8","nodeType":"ElementaryTypeName","src":"8748:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"weight","nameLocation":"8779:6:5","nodeType":"VariableDeclaration","scope":1066,"src":"8771:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1060,"name":"uint256","nodeType":"ElementaryTypeName","src":"8771:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1063,"mutability":"mutable","name":"params","nameLocation":"8808:6:5","nodeType":"VariableDeclaration","scope":1066,"src":"8795:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1062,"name":"bytes","nodeType":"ElementaryTypeName","src":"8795:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8685:135:5"},"returnParameters":{"id":1065,"nodeType":"ParameterList","parameters":[],"src":"8837:0:5"},"scope":1952,"src":"8666:172:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1074,"nodeType":"Block","src":"9211:26:5","statements":[{"expression":{"hexValue":"","id":1072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9228:2:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":1071,"id":1073,"nodeType":"Return","src":"9221:9:5"}]},"documentation":{"id":1067,"nodeType":"StructuredDocumentation","src":"8844:291:5","text":" @dev Default additional encoded parameters used by castVote methods that don't include them\n Note: Should be overridden by specific implementations to use an appropriate value, the\n meaning of the additional params, in the context of that implementation"},"id":1075,"implemented":true,"kind":"function","modifiers":[],"name":"_defaultParams","nameLocation":"9149:14:5","nodeType":"FunctionDefinition","parameters":{"id":1068,"nodeType":"ParameterList","parameters":[],"src":"9163:2:5"},"returnParameters":{"id":1071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1075,"src":"9197:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1069,"name":"bytes","nodeType":"ElementaryTypeName","src":"9197:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9196:14:5"},"scope":1952,"src":"9140:97:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2159],"body":{"id":1220,"nodeType":"Block","src":"9497:1207:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1095,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"9537:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9537:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1097,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9551:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"9551:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9566:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1094,"name":"getVotes","nodeType":"Identifier","overloadedDeclarations":[1548],"referencedDeclaration":1548,"src":"9528:8:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9528:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1102,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1024,"src":"9572:17:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9572:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9528:63:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64","id":1105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9605:51:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86","typeString":"literal_string \"Governor: proposer votes below proposal threshold\""},"value":"Governor: proposer votes below proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86","typeString":"literal_string \"Governor: proposer votes below proposal threshold\""}],"id":1093,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9507:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9507:159:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1107,"nodeType":"ExpressionStatement","src":"9507:159:5"},{"assignments":[1109],"declarations":[{"constant":false,"id":1109,"mutability":"mutable","name":"proposalId","nameLocation":"9685:10:5","nodeType":"VariableDeclaration","scope":1220,"src":"9677:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1108,"name":"uint256","nodeType":"ElementaryTypeName","src":"9677:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1121,"initialValue":{"arguments":[{"id":1111,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"9711:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1112,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"9720:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1113,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1085,"src":"9728:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"arguments":[{"arguments":[{"id":1117,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"9755:11:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9749:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1115,"name":"bytes","nodeType":"ElementaryTypeName","src":"9749:5:5","typeDescriptions":{}}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9749:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1114,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9739:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9739:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1110,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[894],"referencedDeclaration":894,"src":"9698:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9698:71:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9677:92:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1123,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"9788:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9788:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1125,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"9806:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9806:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9788:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677468","id":1128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9821:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""},"value":"Governor: invalid proposal length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""}],"id":1122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9780:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9780:77:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1130,"nodeType":"ExpressionStatement","src":"9780:77:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1132,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"9875:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9875:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1134,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1085,"src":"9893:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9893:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9875:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677468","id":1137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9911:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""},"value":"Governor: invalid proposal length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""}],"id":1131,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9867:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9867:80:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1139,"nodeType":"ExpressionStatement","src":"9867:80:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1141,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"9965:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9965:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9982:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9965:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20656d7074792070726f706f73616c","id":1145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9985:26:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513","typeString":"literal_string \"Governor: empty proposal\""},"value":"Governor: empty proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513","typeString":"literal_string \"Governor: empty proposal\""}],"id":1140,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9957:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9957:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1147,"nodeType":"ExpressionStatement","src":"9957:55:5"},{"assignments":[1150],"declarations":[{"constant":false,"id":1150,"mutability":"mutable","name":"proposal","nameLocation":"10044:8:5","nodeType":"VariableDeclaration","scope":1220,"src":"10023:29:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore"},"typeName":{"id":1149,"nodeType":"UserDefinedTypeName","pathNode":{"id":1148,"name":"ProposalCore","nodeType":"IdentifierPath","referencedDeclaration":713,"src":"10023:12:5"},"referencedDeclaration":713,"src":"10023:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore"}},"visibility":"internal"}],"id":1154,"initialValue":{"baseExpression":{"id":1151,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"10055:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":1153,"indexExpression":{"id":1152,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"10066:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10055:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage","typeString":"struct Governor.ProposalCore storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10023:54:5"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":1156,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10095:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":1157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":705,"src":"10095:18:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":1158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isUnset","nodeType":"MemberAccess","referencedDeclaration":8720,"src":"10095:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$8666_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_BlockNumber_$8666_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (bool)"}},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10095:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c20616c726561647920657869737473","id":1160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10125:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40","typeString":"literal_string \"Governor: proposal already exists\""},"value":"Governor: proposal already exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40","typeString":"literal_string \"Governor: proposal already exists\""}],"id":1155,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10087:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10087:74:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1162,"nodeType":"ExpressionStatement","src":"10087:74:5"},{"assignments":[1164],"declarations":[{"constant":false,"id":1164,"mutability":"mutable","name":"snapshot","nameLocation":"10179:8:5","nodeType":"VariableDeclaration","scope":1220,"src":"10172:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1163,"name":"uint64","nodeType":"ElementaryTypeName","src":"10172:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1174,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":1165,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10190:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"10190:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":10956,"src":"10190:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":1168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10190:23:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1169,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2096,"src":"10216:11:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10216:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":10956,"src":"10216:22:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":1172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10216:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10190:50:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10172:68:5"},{"assignments":[1176],"declarations":[{"constant":false,"id":1176,"mutability":"mutable","name":"deadline","nameLocation":"10257:8:5","nodeType":"VariableDeclaration","scope":1220,"src":"10250:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1175,"name":"uint64","nodeType":"ElementaryTypeName","src":"10250:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1183,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1177,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"10268:8:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1178,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2102,"src":"10279:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10279:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":10956,"src":"10279:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10279:25:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10268:36:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10250:54:5"},{"expression":{"arguments":[{"id":1189,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"10346:8:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":1184,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10315:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":1187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":705,"src":"10315:18:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":1188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"setDeadline","nodeType":"MemberAccess","referencedDeclaration":8693,"src":"10315:30:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockNumber_$8666_storage_ptr_$_t_uint64_$returns$__$bound_to$_t_struct$_BlockNumber_$8666_storage_ptr_$","typeString":"function (struct Timers.BlockNumber storage pointer,uint64)"}},"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10315:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1191,"nodeType":"ExpressionStatement","src":"10315:40:5"},{"expression":{"arguments":[{"id":1197,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"10394:8:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":1192,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10365:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":1195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteEnd","nodeType":"MemberAccess","referencedDeclaration":708,"src":"10365:16:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":1196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"setDeadline","nodeType":"MemberAccess","referencedDeclaration":8693,"src":"10365:28:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockNumber_$8666_storage_ptr_$_t_uint64_$returns$__$bound_to$_t_struct$_BlockNumber_$8666_storage_ptr_$","typeString":"function (struct Timers.BlockNumber storage pointer,uint64)"}},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10365:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1199,"nodeType":"ExpressionStatement","src":"10365:38:5"},{"eventCall":{"arguments":[{"id":1201,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"10448:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1202,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"10472:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10472:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1204,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"10498:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1205,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"10519:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"arguments":[{"expression":{"id":1209,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"10552:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10552:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10539:12:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":1206,"name":"string","nodeType":"ElementaryTypeName","src":"10543:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1207,"nodeType":"ArrayTypeName","src":"10543:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10539:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":1212,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1085,"src":"10581:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1213,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"10604:8:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1214,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"10626:8:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1215,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"10648:11:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1200,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1992,"src":"10419:15:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory)"}},"id":1216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10419:250:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1217,"nodeType":"EmitStatement","src":"10414:255:5"},{"expression":{"id":1218,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"10687:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1092,"id":1219,"nodeType":"Return","src":"10680:17:5"}]},"documentation":{"id":1076,"nodeType":"StructuredDocumentation","src":"9243:48:5","text":" @dev See {IGovernor-propose}."},"functionSelector":"7d5e81e2","id":1221,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nameLocation":"9305:7:5","nodeType":"FunctionDefinition","overrides":{"id":1089,"nodeType":"OverrideSpecifier","overrides":[],"src":"9470:8:5"},"parameters":{"id":1088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1079,"mutability":"mutable","name":"targets","nameLocation":"9339:7:5","nodeType":"VariableDeclaration","scope":1221,"src":"9322:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1077,"name":"address","nodeType":"ElementaryTypeName","src":"9322:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1078,"nodeType":"ArrayTypeName","src":"9322:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1082,"mutability":"mutable","name":"values","nameLocation":"9373:6:5","nodeType":"VariableDeclaration","scope":1221,"src":"9356:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1080,"name":"uint256","nodeType":"ElementaryTypeName","src":"9356:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1081,"nodeType":"ArrayTypeName","src":"9356:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1085,"mutability":"mutable","name":"calldatas","nameLocation":"9404:9:5","nodeType":"VariableDeclaration","scope":1221,"src":"9389:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1083,"name":"bytes","nodeType":"ElementaryTypeName","src":"9389:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1084,"nodeType":"ArrayTypeName","src":"9389:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1087,"mutability":"mutable","name":"description","nameLocation":"9437:11:5","nodeType":"VariableDeclaration","scope":1221,"src":"9423:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1086,"name":"string","nodeType":"ElementaryTypeName","src":"9423:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9312:142:5"},"returnParameters":{"id":1092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1221,"src":"9488:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1090,"name":"uint256","nodeType":"ElementaryTypeName","src":"9488:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9487:9:5"},"scope":1952,"src":"9296:1408:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2176],"body":{"id":1305,"nodeType":"Block","src":"10970:660:5","statements":[{"assignments":[1240],"declarations":[{"constant":false,"id":1240,"mutability":"mutable","name":"proposalId","nameLocation":"10988:10:5","nodeType":"VariableDeclaration","scope":1305,"src":"10980:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1239,"name":"uint256","nodeType":"ElementaryTypeName","src":"10980:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1247,"initialValue":{"arguments":[{"id":1242,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"11014:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1243,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"11023:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1244,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"11031:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1245,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"11042:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1241,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[894],"referencedDeclaration":894,"src":"11001:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":1246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11001:57:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10980:78:5"},{"assignments":[1250],"declarations":[{"constant":false,"id":1250,"mutability":"mutable","name":"status","nameLocation":"11083:6:5","nodeType":"VariableDeclaration","scope":1305,"src":"11069:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":1249,"nodeType":"UserDefinedTypeName","pathNode":{"id":1248,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"11069:13:5"},"referencedDeclaration":1967,"src":"11069:13:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"id":1254,"initialValue":{"arguments":[{"id":1252,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"11098:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1251,"name":"state","nodeType":"Identifier","overloadedDeclarations":[981],"referencedDeclaration":981,"src":"11092:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1967_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11092:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"11069:40:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1256,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1250,"src":"11140:6:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1257,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"11150:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":1258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":1963,"src":"11150:23:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"11140:33:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":1263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1260,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1250,"src":"11177:6:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1261,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"11187:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":1262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":1964,"src":"11187:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"11177:30:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11140:67:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756c","id":1265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11221:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""},"value":"Governor: proposal not successful"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""}],"id":1255,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11119:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11119:147:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1267,"nodeType":"ExpressionStatement","src":"11119:147:5"},{"expression":{"id":1273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1268,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"11276:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":1270,"indexExpression":{"id":1269,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"11287:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11276:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":1271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":710,"src":"11276:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11310:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11276:38:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1274,"nodeType":"ExpressionStatement","src":"11276:38:5"},{"eventCall":{"arguments":[{"id":1276,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"11347:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1275,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2002,"src":"11330:16:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11330:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1278,"nodeType":"EmitStatement","src":"11325:33:5"},{"expression":{"arguments":[{"id":1280,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"11384:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1281,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"11396:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1282,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"11405:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1283,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"11413:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1284,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"11424:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1279,"name":"_beforeExecute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1426,"src":"11369:14:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":1285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11369:71:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1286,"nodeType":"ExpressionStatement","src":"11369:71:5"},{"expression":{"arguments":[{"id":1288,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"11459:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1289,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"11471:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1290,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"11480:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1291,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"11488:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1292,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"11499:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1287,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"11450:8:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11450:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1294,"nodeType":"ExpressionStatement","src":"11450:65:5"},{"expression":{"arguments":[{"id":1296,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"11539:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1297,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"11551:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1298,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"11560:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1299,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"11568:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1300,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"11579:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1295,"name":"_afterExecute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"11525:13:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":1301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11525:70:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1302,"nodeType":"ExpressionStatement","src":"11525:70:5"},{"expression":{"id":1303,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"11613:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1238,"id":1304,"nodeType":"Return","src":"11606:17:5"}]},"documentation":{"id":1222,"nodeType":"StructuredDocumentation","src":"10710:48:5","text":" @dev See {IGovernor-execute}."},"functionSelector":"2656227d","id":1306,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"10772:7:5","nodeType":"FunctionDefinition","overrides":{"id":1235,"nodeType":"OverrideSpecifier","overrides":[],"src":"10943:8:5"},"parameters":{"id":1234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1225,"mutability":"mutable","name":"targets","nameLocation":"10806:7:5","nodeType":"VariableDeclaration","scope":1306,"src":"10789:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1223,"name":"address","nodeType":"ElementaryTypeName","src":"10789:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1224,"nodeType":"ArrayTypeName","src":"10789:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"values","nameLocation":"10840:6:5","nodeType":"VariableDeclaration","scope":1306,"src":"10823:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1226,"name":"uint256","nodeType":"ElementaryTypeName","src":"10823:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1227,"nodeType":"ArrayTypeName","src":"10823:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1231,"mutability":"mutable","name":"calldatas","nameLocation":"10871:9:5","nodeType":"VariableDeclaration","scope":1306,"src":"10856:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"10856:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1230,"nodeType":"ArrayTypeName","src":"10856:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1233,"mutability":"mutable","name":"descriptionHash","nameLocation":"10898:15:5","nodeType":"VariableDeclaration","scope":1306,"src":"10890:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10890:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10779:140:5"},"returnParameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1306,"src":"10961:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1236,"name":"uint256","nodeType":"ElementaryTypeName","src":"10961:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10960:9:5"},"scope":1952,"src":"10763:867:5","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":1365,"nodeType":"Block","src":"11968:328:5","statements":[{"assignments":[1324],"declarations":[{"constant":false,"id":1324,"mutability":"mutable","name":"errorMessage","nameLocation":"11992:12:5","nodeType":"VariableDeclaration","scope":1365,"src":"11978:26:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1323,"name":"string","nodeType":"ElementaryTypeName","src":"11978:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1326,"initialValue":{"hexValue":"476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765","id":1325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12007:41:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_60bfcc3776c91812db2df5ee8e14efc111acb8df47a38be82f94cf8f4bc73336","typeString":"literal_string \"Governor: call reverted without message\""},"value":"Governor: call reverted without message"},"nodeType":"VariableDeclarationStatement","src":"11978:70:5"},{"body":{"id":1363,"nodeType":"Block","src":"12103:187:5","statements":[{"assignments":[1339,1341],"declarations":[{"constant":false,"id":1339,"mutability":"mutable","name":"success","nameLocation":"12123:7:5","nodeType":"VariableDeclaration","scope":1363,"src":"12118:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1338,"name":"bool","nodeType":"ElementaryTypeName","src":"12118:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1341,"mutability":"mutable","name":"returndata","nameLocation":"12145:10:5","nodeType":"VariableDeclaration","scope":1363,"src":"12132:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1340,"name":"bytes","nodeType":"ElementaryTypeName","src":"12132:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1354,"initialValue":{"arguments":[{"baseExpression":{"id":1350,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"12193:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":1352,"indexExpression":{"id":1351,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"12203:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12193:12:5","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":{"baseExpression":{"id":1342,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"12159:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1344,"indexExpression":{"id":1343,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"12167:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12159:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"12159:15:5","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":1349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"baseExpression":{"id":1346,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1315,"src":"12182:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1348,"indexExpression":{"id":1347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"12189:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12182:9:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"12159:33:5","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":1353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12159:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12117:89:5"},{"expression":{"arguments":[{"id":1358,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1339,"src":"12245:7:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1359,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1341,"src":"12254:10:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1360,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"12266:12:5","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"}],"expression":{"id":1355,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"12220:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$7999_$","typeString":"type(library Address)"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyCallResult","nodeType":"MemberAccess","referencedDeclaration":7998,"src":"12220:24:5","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":1361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12220:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1362,"nodeType":"ExpressionStatement","src":"12220:59:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"12078:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1332,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"12082:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12082:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12078:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1364,"initializationExpression":{"assignments":[1328],"declarations":[{"constant":false,"id":1328,"mutability":"mutable","name":"i","nameLocation":"12071:1:5","nodeType":"VariableDeclaration","scope":1364,"src":"12063:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1327,"name":"uint256","nodeType":"ElementaryTypeName","src":"12063:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1330,"initialValue":{"hexValue":"30","id":1329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12075:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12063:13:5"},"loopExpression":{"expression":{"id":1336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12098:3:5","subExpression":{"id":1335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"12100:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1337,"nodeType":"ExpressionStatement","src":"12098:3:5"},"nodeType":"ForStatement","src":"12058:232:5"}]},"documentation":{"id":1307,"nodeType":"StructuredDocumentation","src":"11636:114:5","text":" @dev Internal execution mechanism. Can be overridden to implement different execution mechanism"},"id":1366,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"11764:8:5","nodeType":"FunctionDefinition","parameters":{"id":1321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1366,"src":"11782:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1308,"name":"uint256","nodeType":"ElementaryTypeName","src":"11782:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1312,"mutability":"mutable","name":"targets","nameLocation":"11833:7:5","nodeType":"VariableDeclaration","scope":1366,"src":"11816:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1310,"name":"address","nodeType":"ElementaryTypeName","src":"11816:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1311,"nodeType":"ArrayTypeName","src":"11816:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1315,"mutability":"mutable","name":"values","nameLocation":"11867:6:5","nodeType":"VariableDeclaration","scope":1366,"src":"11850:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1313,"name":"uint256","nodeType":"ElementaryTypeName","src":"11850:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1314,"nodeType":"ArrayTypeName","src":"11850:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1318,"mutability":"mutable","name":"calldatas","nameLocation":"11898:9:5","nodeType":"VariableDeclaration","scope":1366,"src":"11883:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1316,"name":"bytes","nodeType":"ElementaryTypeName","src":"11883:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1317,"nodeType":"ArrayTypeName","src":"11883:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1366,"src":"11917:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11917:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11772:178:5"},"returnParameters":{"id":1322,"nodeType":"ParameterList","parameters":[],"src":"11968:0:5"},"scope":1952,"src":"11755:541:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1425,"nodeType":"Block","src":"12591:274:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1383,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"12605:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12605:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":1387,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12628:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}],"id":1386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12620:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1385,"name":"address","nodeType":"ElementaryTypeName","src":"12620:7:5","typeDescriptions":{}}},"id":1388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12620:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12605:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1424,"nodeType":"IfStatement","src":"12601:258:5","trueBody":{"id":1423,"nodeType":"Block","src":"12635:224:5","statements":[{"body":{"id":1421,"nodeType":"Block","src":"12694:155:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1401,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1372,"src":"12716:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1403,"indexExpression":{"id":1402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"12724:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12716:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":1406,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12738:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}],"id":1405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12730:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1404,"name":"address","nodeType":"ElementaryTypeName","src":"12730:7:5","typeDescriptions":{}}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12730:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12716:27:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1420,"nodeType":"IfStatement","src":"12712:123:5","trueBody":{"id":1419,"nodeType":"Block","src":"12745:90:5","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":1413,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1378,"src":"12802:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":1415,"indexExpression":{"id":1414,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"12812:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12802:12:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1412,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12792:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12792:23:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1409,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":723,"src":"12767:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":1411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"pushBack","nodeType":"MemberAccess","referencedDeclaration":12567,"src":"12767:24:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Deque_$12535_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_struct$_Bytes32Deque_$12535_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer,bytes32)"}},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12767:49:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1418,"nodeType":"ExpressionStatement","src":"12767:49:5"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"12669:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1395,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1372,"src":"12673:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12673:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12669:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1422,"initializationExpression":{"assignments":[1391],"declarations":[{"constant":false,"id":1391,"mutability":"mutable","name":"i","nameLocation":"12662:1:5","nodeType":"VariableDeclaration","scope":1422,"src":"12654:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1390,"name":"uint256","nodeType":"ElementaryTypeName","src":"12654:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1393,"initialValue":{"hexValue":"30","id":1392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12666:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12654:13:5"},"loopExpression":{"expression":{"id":1399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12689:3:5","subExpression":{"id":1398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"12691:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1400,"nodeType":"ExpressionStatement","src":"12689:3:5"},"nodeType":"ForStatement","src":"12649:200:5"}]}}]},"documentation":{"id":1367,"nodeType":"StructuredDocumentation","src":"12302:59:5","text":" @dev Hook before execution is triggered."},"id":1426,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeExecute","nameLocation":"12375:14:5","nodeType":"FunctionDefinition","parameters":{"id":1381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1426,"src":"12399:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1368,"name":"uint256","nodeType":"ElementaryTypeName","src":"12399:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1372,"mutability":"mutable","name":"targets","nameLocation":"12450:7:5","nodeType":"VariableDeclaration","scope":1426,"src":"12433:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1370,"name":"address","nodeType":"ElementaryTypeName","src":"12433:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1371,"nodeType":"ArrayTypeName","src":"12433:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1426,"src":"12467:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1373,"name":"uint256","nodeType":"ElementaryTypeName","src":"12467:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1374,"nodeType":"ArrayTypeName","src":"12467:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1378,"mutability":"mutable","name":"calldatas","nameLocation":"12521:9:5","nodeType":"VariableDeclaration","scope":1426,"src":"12506:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1376,"name":"bytes","nodeType":"ElementaryTypeName","src":"12506:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1377,"nodeType":"ArrayTypeName","src":"12506:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1426,"src":"12540:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12540:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12389:184:5"},"returnParameters":{"id":1382,"nodeType":"ParameterList","parameters":[],"src":"12591:0:5"},"scope":1952,"src":"12366:499:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1463,"nodeType":"Block","src":"13170:160:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1443,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"13184:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13184:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":1447,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13207:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}],"id":1446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13199:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1445,"name":"address","nodeType":"ElementaryTypeName","src":"13199:7:5","typeDescriptions":{}}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13199:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13184:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1462,"nodeType":"IfStatement","src":"13180:144:5","trueBody":{"id":1461,"nodeType":"Block","src":"13214:110:5","statements":[{"condition":{"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13232:24:5","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1450,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":723,"src":"13233:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":1451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":12856,"src":"13233:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$12535_storage_ptr_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Deque_$12535_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":1452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13233:23:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1460,"nodeType":"IfStatement","src":"13228:86:5","trueBody":{"id":1459,"nodeType":"Block","src":"13258:56:5","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1454,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":723,"src":"13276:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":1456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"clear","nodeType":"MemberAccess","referencedDeclaration":12814,"src":"13276:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Deque_$12535_storage_ptr_$returns$__$bound_to$_t_struct$_Bytes32Deque_$12535_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer)"}},"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13276:23:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1458,"nodeType":"ExpressionStatement","src":"13276:23:5"}]}}]}}]},"documentation":{"id":1427,"nodeType":"StructuredDocumentation","src":"12871:58:5","text":" @dev Hook after execution is triggered."},"id":1464,"implemented":true,"kind":"function","modifiers":[],"name":"_afterExecute","nameLocation":"12943:13:5","nodeType":"FunctionDefinition","parameters":{"id":1441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1464,"src":"12966:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1428,"name":"uint256","nodeType":"ElementaryTypeName","src":"12966:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1464,"src":"13000:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1430,"name":"address","nodeType":"ElementaryTypeName","src":"13000:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1431,"nodeType":"ArrayTypeName","src":"13000:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1464,"src":"13040:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1433,"name":"uint256","nodeType":"ElementaryTypeName","src":"13040:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1434,"nodeType":"ArrayTypeName","src":"13040:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1464,"src":"13079:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1436,"name":"bytes","nodeType":"ElementaryTypeName","src":"13079:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1437,"nodeType":"ArrayTypeName","src":"13079:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1464,"src":"13119:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13119:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12956:196:5"},"returnParameters":{"id":1442,"nodeType":"ParameterList","parameters":[],"src":"13170:0:5"},"scope":1952,"src":"12934:396:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1528,"nodeType":"Block","src":"13789:455:5","statements":[{"assignments":[1482],"declarations":[{"constant":false,"id":1482,"mutability":"mutable","name":"proposalId","nameLocation":"13807:10:5","nodeType":"VariableDeclaration","scope":1528,"src":"13799:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1481,"name":"uint256","nodeType":"ElementaryTypeName","src":"13799:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1489,"initialValue":{"arguments":[{"id":1484,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1468,"src":"13833:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1485,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1471,"src":"13842:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1486,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"13850:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1487,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"13861:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1483,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[894],"referencedDeclaration":894,"src":"13820:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":1488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13820:57:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13799:78:5"},{"assignments":[1492],"declarations":[{"constant":false,"id":1492,"mutability":"mutable","name":"status","nameLocation":"13901:6:5","nodeType":"VariableDeclaration","scope":1528,"src":"13887:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":1491,"nodeType":"UserDefinedTypeName","pathNode":{"id":1490,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"13887:13:5"},"referencedDeclaration":1967,"src":"13887:13:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"id":1496,"initialValue":{"arguments":[{"id":1494,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"13916:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1493,"name":"state","nodeType":"Identifier","overloadedDeclarations":[981],"referencedDeclaration":981,"src":"13910:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1967_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13910:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"13887:40:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1498,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"13959:6:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1499,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"13969:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":1500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":1961,"src":"13969:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"13959:32:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":1505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1502,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"13995:6:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1503,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"14005:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":1504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":1965,"src":"14005:21:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"13995:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13959:67:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":1510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1507,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"14030:6:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1508,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"14040:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":1966,"src":"14040:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"14030:32:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13959:103:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c206e6f7420616374697665","id":1512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14076:31:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_9df62e32cc9e9c02131fa3d2189c515bf05634e5979aec1a0e5b3a9e44a36d0b","typeString":"literal_string \"Governor: proposal not active\""},"value":"Governor: proposal not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9df62e32cc9e9c02131fa3d2189c515bf05634e5979aec1a0e5b3a9e44a36d0b","typeString":"literal_string \"Governor: proposal not active\""}],"id":1497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13938:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13938:179:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1514,"nodeType":"ExpressionStatement","src":"13938:179:5"},{"expression":{"id":1520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1515,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"14127:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":1517,"indexExpression":{"id":1516,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"14138:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14127:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":1518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":712,"src":"14127:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14161:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14127:38:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1521,"nodeType":"ExpressionStatement","src":"14127:38:5"},{"eventCall":{"arguments":[{"id":1523,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"14198:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1522,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1997,"src":"14181:16:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14181:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1525,"nodeType":"EmitStatement","src":"14176:33:5"},{"expression":{"id":1526,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"14227:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1480,"id":1527,"nodeType":"Return","src":"14220:17:5"}]},"documentation":{"id":1465,"nodeType":"StructuredDocumentation","src":"13336:256:5","text":" @dev Internal cancel mechanism: locks up the proposal timer, preventing it from being re-submitted. Marks it as\n canceled to allow distinguishing it from executed proposals.\n Emits a {IGovernor-ProposalCanceled} event."},"id":1529,"implemented":true,"kind":"function","modifiers":[],"name":"_cancel","nameLocation":"13606:7:5","nodeType":"FunctionDefinition","parameters":{"id":1477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1468,"mutability":"mutable","name":"targets","nameLocation":"13640:7:5","nodeType":"VariableDeclaration","scope":1529,"src":"13623:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1466,"name":"address","nodeType":"ElementaryTypeName","src":"13623:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1467,"nodeType":"ArrayTypeName","src":"13623:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1471,"mutability":"mutable","name":"values","nameLocation":"13674:6:5","nodeType":"VariableDeclaration","scope":1529,"src":"13657:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1469,"name":"uint256","nodeType":"ElementaryTypeName","src":"13657:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1470,"nodeType":"ArrayTypeName","src":"13657:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"calldatas","nameLocation":"13705:9:5","nodeType":"VariableDeclaration","scope":1529,"src":"13690:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1472,"name":"bytes","nodeType":"ElementaryTypeName","src":"13690:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1473,"nodeType":"ArrayTypeName","src":"13690:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1476,"mutability":"mutable","name":"descriptionHash","nameLocation":"13732:15:5","nodeType":"VariableDeclaration","scope":1529,"src":"13724:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13724:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13613:140:5"},"returnParameters":{"id":1480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1529,"src":"13780:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1478,"name":"uint256","nodeType":"ElementaryTypeName","src":"13780:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13779:9:5"},"scope":1952,"src":"13597:647:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2120],"body":{"id":1547,"nodeType":"Block","src":"14407:73:5","statements":[{"expression":{"arguments":[{"id":1541,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1532,"src":"14434:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1542,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"14443:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1543,"name":"_defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"14456:14:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_memory_ptr_$","typeString":"function () view returns (bytes memory)"}},"id":1544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14456:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1540,"name":"_getVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1052,"src":"14424:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view returns (uint256)"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14424:49:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1539,"id":1546,"nodeType":"Return","src":"14417:56:5"}]},"documentation":{"id":1530,"nodeType":"StructuredDocumentation","src":"14250:49:5","text":" @dev See {IGovernor-getVotes}."},"functionSelector":"eb9019d4","id":1548,"implemented":true,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"14313:8:5","nodeType":"FunctionDefinition","overrides":{"id":1536,"nodeType":"OverrideSpecifier","overrides":[],"src":"14380:8:5"},"parameters":{"id":1535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1532,"mutability":"mutable","name":"account","nameLocation":"14330:7:5","nodeType":"VariableDeclaration","scope":1548,"src":"14322:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1531,"name":"address","nodeType":"ElementaryTypeName","src":"14322:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"blockNumber","nameLocation":"14347:11:5","nodeType":"VariableDeclaration","scope":1548,"src":"14339:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1533,"name":"uint256","nodeType":"ElementaryTypeName","src":"14339:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14321:38:5"},"returnParameters":{"id":1539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1548,"src":"14398:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1537,"name":"uint256","nodeType":"ElementaryTypeName","src":"14398:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14397:9:5"},"scope":1952,"src":"14304:176:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2132],"body":{"id":1567,"nodeType":"Block","src":"14714:63:5","statements":[{"expression":{"arguments":[{"id":1562,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1551,"src":"14741:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1563,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"14750:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1564,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1555,"src":"14763:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1561,"name":"_getVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1052,"src":"14731:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view returns (uint256)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14731:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1560,"id":1566,"nodeType":"Return","src":"14724:46:5"}]},"documentation":{"id":1549,"nodeType":"StructuredDocumentation","src":"14486:59:5","text":" @dev See {IGovernor-getVotesWithParams}."},"functionSelector":"9a802a6d","id":1568,"implemented":true,"kind":"function","modifiers":[],"name":"getVotesWithParams","nameLocation":"14559:18:5","nodeType":"FunctionDefinition","overrides":{"id":1557,"nodeType":"OverrideSpecifier","overrides":[],"src":"14687:8:5"},"parameters":{"id":1556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1551,"mutability":"mutable","name":"account","nameLocation":"14595:7:5","nodeType":"VariableDeclaration","scope":1568,"src":"14587:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1550,"name":"address","nodeType":"ElementaryTypeName","src":"14587:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1553,"mutability":"mutable","name":"blockNumber","nameLocation":"14620:11:5","nodeType":"VariableDeclaration","scope":1568,"src":"14612:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1552,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1555,"mutability":"mutable","name":"params","nameLocation":"14654:6:5","nodeType":"VariableDeclaration","scope":1568,"src":"14641:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1554,"name":"bytes","nodeType":"ElementaryTypeName","src":"14641:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14577:89:5"},"returnParameters":{"id":1560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1568,"src":"14705:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1558,"name":"uint256","nodeType":"ElementaryTypeName","src":"14705:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14704:9:5"},"scope":1952,"src":"14550:227:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2186],"body":{"id":1591,"nodeType":"Block","src":"14932:103:5","statements":[{"assignments":[1580],"declarations":[{"constant":false,"id":1580,"mutability":"mutable","name":"voter","nameLocation":"14950:5:5","nodeType":"VariableDeclaration","scope":1591,"src":"14942:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1579,"name":"address","nodeType":"ElementaryTypeName","src":"14942:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1583,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1581,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"14958:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14958:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14942:28:5"},{"expression":{"arguments":[{"id":1585,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"14997:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1586,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1580,"src":"15009:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1587,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"15016:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"hexValue":"","id":1588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15025:2:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1584,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[1773,1852],"referencedDeclaration":1773,"src":"14987:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory) returns (uint256)"}},"id":1589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14987:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1578,"id":1590,"nodeType":"Return","src":"14980:48:5"}]},"documentation":{"id":1569,"nodeType":"StructuredDocumentation","src":"14783:49:5","text":" @dev See {IGovernor-castVote}."},"functionSelector":"56781388","id":1592,"implemented":true,"kind":"function","modifiers":[],"name":"castVote","nameLocation":"14846:8:5","nodeType":"FunctionDefinition","overrides":{"id":1575,"nodeType":"OverrideSpecifier","overrides":[],"src":"14905:8:5"},"parameters":{"id":1574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1571,"mutability":"mutable","name":"proposalId","nameLocation":"14863:10:5","nodeType":"VariableDeclaration","scope":1592,"src":"14855:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"14855:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1573,"mutability":"mutable","name":"support","nameLocation":"14881:7:5","nodeType":"VariableDeclaration","scope":1592,"src":"14875:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1572,"name":"uint8","nodeType":"ElementaryTypeName","src":"14875:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"14854:35:5"},"returnParameters":{"id":1578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1592,"src":"14923:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"14923:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14922:9:5"},"scope":1952,"src":"14837:198:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2198],"body":{"id":1617,"nodeType":"Block","src":"15264:107:5","statements":[{"assignments":[1606],"declarations":[{"constant":false,"id":1606,"mutability":"mutable","name":"voter","nameLocation":"15282:5:5","nodeType":"VariableDeclaration","scope":1617,"src":"15274:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1605,"name":"address","nodeType":"ElementaryTypeName","src":"15274:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1609,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1607,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"15290:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15290:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15274:28:5"},{"expression":{"arguments":[{"id":1611,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"15329:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1612,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1606,"src":"15341:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1613,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1597,"src":"15348:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1614,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1599,"src":"15357:6:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":1610,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[1773,1852],"referencedDeclaration":1773,"src":"15319:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory) returns (uint256)"}},"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15319:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1604,"id":1616,"nodeType":"Return","src":"15312:52:5"}]},"documentation":{"id":1593,"nodeType":"StructuredDocumentation","src":"15041:59:5","text":" @dev See {IGovernor-castVoteWithReason}."},"functionSelector":"7b3c71d3","id":1618,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReason","nameLocation":"15114:18:5","nodeType":"FunctionDefinition","overrides":{"id":1601,"nodeType":"OverrideSpecifier","overrides":[],"src":"15237:8:5"},"parameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1595,"mutability":"mutable","name":"proposalId","nameLocation":"15150:10:5","nodeType":"VariableDeclaration","scope":1618,"src":"15142:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1594,"name":"uint256","nodeType":"ElementaryTypeName","src":"15142:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1597,"mutability":"mutable","name":"support","nameLocation":"15176:7:5","nodeType":"VariableDeclaration","scope":1618,"src":"15170:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1596,"name":"uint8","nodeType":"ElementaryTypeName","src":"15170:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1599,"mutability":"mutable","name":"reason","nameLocation":"15209:6:5","nodeType":"VariableDeclaration","scope":1618,"src":"15193:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1598,"name":"string","nodeType":"ElementaryTypeName","src":"15193:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15132:89:5"},"returnParameters":{"id":1604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1618,"src":"15255:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1602,"name":"uint256","nodeType":"ElementaryTypeName","src":"15255:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15254:9:5"},"scope":1952,"src":"15105:266:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2212],"body":{"id":1646,"nodeType":"Block","src":"15647:115:5","statements":[{"assignments":[1634],"declarations":[{"constant":false,"id":1634,"mutability":"mutable","name":"voter","nameLocation":"15665:5:5","nodeType":"VariableDeclaration","scope":1646,"src":"15657:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1633,"name":"address","nodeType":"ElementaryTypeName","src":"15657:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1637,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1635,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"15673:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15673:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15657:28:5"},{"expression":{"arguments":[{"id":1639,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1621,"src":"15712:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1640,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"15724:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1641,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"15731:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1642,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"15740:6:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":1643,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"15748:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1638,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[1773,1852],"referencedDeclaration":1852,"src":"15702:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15702:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1632,"id":1645,"nodeType":"Return","src":"15695:60:5"}]},"documentation":{"id":1619,"nodeType":"StructuredDocumentation","src":"15377:68:5","text":" @dev See {IGovernor-castVoteWithReasonAndParams}."},"functionSelector":"5f398a14","id":1647,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParams","nameLocation":"15459:27:5","nodeType":"FunctionDefinition","overrides":{"id":1629,"nodeType":"OverrideSpecifier","overrides":[],"src":"15620:8:5"},"parameters":{"id":1628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1621,"mutability":"mutable","name":"proposalId","nameLocation":"15504:10:5","nodeType":"VariableDeclaration","scope":1647,"src":"15496:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1620,"name":"uint256","nodeType":"ElementaryTypeName","src":"15496:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1623,"mutability":"mutable","name":"support","nameLocation":"15530:7:5","nodeType":"VariableDeclaration","scope":1647,"src":"15524:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1622,"name":"uint8","nodeType":"ElementaryTypeName","src":"15524:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1625,"mutability":"mutable","name":"reason","nameLocation":"15563:6:5","nodeType":"VariableDeclaration","scope":1647,"src":"15547:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1624,"name":"string","nodeType":"ElementaryTypeName","src":"15547:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1627,"mutability":"mutable","name":"params","nameLocation":"15592:6:5","nodeType":"VariableDeclaration","scope":1647,"src":"15579:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1626,"name":"bytes","nodeType":"ElementaryTypeName","src":"15579:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15486:118:5"},"returnParameters":{"id":1632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1647,"src":"15638:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1630,"name":"uint256","nodeType":"ElementaryTypeName","src":"15638:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15637:9:5"},"scope":1952,"src":"15450:312:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2228],"body":{"id":1690,"nodeType":"Block","src":"16004:250:5","statements":[{"assignments":[1665],"declarations":[{"constant":false,"id":1665,"mutability":"mutable","name":"voter","nameLocation":"16022:5:5","nodeType":"VariableDeclaration","scope":1690,"src":"16014:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1664,"name":"address","nodeType":"ElementaryTypeName","src":"16014:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1682,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":1672,"name":"BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"16095:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1673,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"16112:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1674,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"16124:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1670,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16084:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"16084:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16084:48:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1669,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16074:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16074:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1668,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9812,"src":"16057:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16057:77:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1678,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1654,"src":"16148:1:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1679,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"16163:1:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1680,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1658,"src":"16178:1:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1666,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"16030:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9157_$","typeString":"type(library ECDSA)"}},"id":1667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":9097,"src":"16030:13:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":1681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16030:159:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16014:175:5"},{"expression":{"arguments":[{"id":1684,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"16216:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1685,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"16228:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1686,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"16235:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"hexValue":"","id":1687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16244:2:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1683,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[1773,1852],"referencedDeclaration":1773,"src":"16206:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory) returns (uint256)"}},"id":1688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16206:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1663,"id":1689,"nodeType":"Return","src":"16199:48:5"}]},"documentation":{"id":1648,"nodeType":"StructuredDocumentation","src":"15768:54:5","text":" @dev See {IGovernor-castVoteBySig}."},"functionSelector":"3bccf4fd","id":1691,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteBySig","nameLocation":"15836:13:5","nodeType":"FunctionDefinition","overrides":{"id":1660,"nodeType":"OverrideSpecifier","overrides":[],"src":"15977:8:5"},"parameters":{"id":1659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"proposalId","nameLocation":"15867:10:5","nodeType":"VariableDeclaration","scope":1691,"src":"15859:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1649,"name":"uint256","nodeType":"ElementaryTypeName","src":"15859:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1652,"mutability":"mutable","name":"support","nameLocation":"15893:7:5","nodeType":"VariableDeclaration","scope":1691,"src":"15887:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1651,"name":"uint8","nodeType":"ElementaryTypeName","src":"15887:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1654,"mutability":"mutable","name":"v","nameLocation":"15916:1:5","nodeType":"VariableDeclaration","scope":1691,"src":"15910:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1653,"name":"uint8","nodeType":"ElementaryTypeName","src":"15910:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1656,"mutability":"mutable","name":"r","nameLocation":"15935:1:5","nodeType":"VariableDeclaration","scope":1691,"src":"15927:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15927:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1658,"mutability":"mutable","name":"s","nameLocation":"15954:1:5","nodeType":"VariableDeclaration","scope":1691,"src":"15946:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15946:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15849:112:5"},"returnParameters":{"id":1663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1691,"src":"15995:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1661,"name":"uint256","nodeType":"ElementaryTypeName","src":"15995:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15994:9:5"},"scope":1952,"src":"15827:427:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2248],"body":{"id":1748,"nodeType":"Block","src":"16595:527:5","statements":[{"assignments":[1713],"declarations":[{"constant":false,"id":1713,"mutability":"mutable","name":"voter","nameLocation":"16613:5:5","nodeType":"VariableDeclaration","scope":1748,"src":"16605:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1712,"name":"address","nodeType":"ElementaryTypeName","src":"16605:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1739,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":1720,"name":"EXTENDED_BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":702,"src":"16749:24:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1721,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1694,"src":"16799:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1722,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1696,"src":"16835:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":1726,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"16884:6:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":1725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16878:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1724,"name":"bytes","nodeType":"ElementaryTypeName","src":"16878:5:5","typeDescriptions":{}}},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16878:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1723,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16868:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16868:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":1730,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1700,"src":"16928:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1729,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16918:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16918:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16713:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"16713:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16713:244:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1717,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16682:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16682:293:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1716,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9812,"src":"16648:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16648:341:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1735,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"17003:1:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1736,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"17018:1:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1737,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1706,"src":"17033:1:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1714,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"16621:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9157_$","typeString":"type(library ECDSA)"}},"id":1715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":9097,"src":"16621:13:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16621:423:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16605:439:5"},{"expression":{"arguments":[{"id":1741,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1694,"src":"17072:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1742,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"17084:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1743,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1696,"src":"17091:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1744,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"17100:6:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":1745,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1700,"src":"17108:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1740,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[1773,1852],"referencedDeclaration":1852,"src":"17062:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":1746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17062:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1711,"id":1747,"nodeType":"Return","src":"17055:60:5"}]},"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"16260:73:5","text":" @dev See {IGovernor-castVoteWithReasonAndParamsBySig}."},"functionSelector":"03420181","id":1749,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParamsBySig","nameLocation":"16347:32:5","nodeType":"FunctionDefinition","overrides":{"id":1708,"nodeType":"OverrideSpecifier","overrides":[],"src":"16568:8:5"},"parameters":{"id":1707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1694,"mutability":"mutable","name":"proposalId","nameLocation":"16397:10:5","nodeType":"VariableDeclaration","scope":1749,"src":"16389:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1693,"name":"uint256","nodeType":"ElementaryTypeName","src":"16389:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1696,"mutability":"mutable","name":"support","nameLocation":"16423:7:5","nodeType":"VariableDeclaration","scope":1749,"src":"16417:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1695,"name":"uint8","nodeType":"ElementaryTypeName","src":"16417:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1698,"mutability":"mutable","name":"reason","nameLocation":"16456:6:5","nodeType":"VariableDeclaration","scope":1749,"src":"16440:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1697,"name":"string","nodeType":"ElementaryTypeName","src":"16440:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1700,"mutability":"mutable","name":"params","nameLocation":"16485:6:5","nodeType":"VariableDeclaration","scope":1749,"src":"16472:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1699,"name":"bytes","nodeType":"ElementaryTypeName","src":"16472:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1702,"mutability":"mutable","name":"v","nameLocation":"16507:1:5","nodeType":"VariableDeclaration","scope":1749,"src":"16501:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1701,"name":"uint8","nodeType":"ElementaryTypeName","src":"16501:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1704,"mutability":"mutable","name":"r","nameLocation":"16526:1:5","nodeType":"VariableDeclaration","scope":1749,"src":"16518:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16518:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1706,"mutability":"mutable","name":"s","nameLocation":"16545:1:5","nodeType":"VariableDeclaration","scope":1749,"src":"16537:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16537:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16379:173:5"},"returnParameters":{"id":1711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1749,"src":"16586:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1709,"name":"uint256","nodeType":"ElementaryTypeName","src":"16586:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16585:9:5"},"scope":1952,"src":"16338:784:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1772,"nodeType":"Block","src":"17597:89:5","statements":[{"expression":{"arguments":[{"id":1764,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"17624:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1765,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"17636:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1766,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1756,"src":"17645:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1767,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1758,"src":"17654:6:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1768,"name":"_defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"17662:14:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_memory_ptr_$","typeString":"function () view returns (bytes memory)"}},"id":1769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17662:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1763,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[1773,1852],"referencedDeclaration":1852,"src":"17614:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":1770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17614:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1762,"id":1771,"nodeType":"Return","src":"17607:72:5"}]},"documentation":{"id":1750,"nodeType":"StructuredDocumentation","src":"17128:298:5","text":" @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. Uses the _defaultParams().\n Emits a {IGovernor-VoteCast} event."},"id":1773,"implemented":true,"kind":"function","modifiers":[],"name":"_castVote","nameLocation":"17440:9:5","nodeType":"FunctionDefinition","parameters":{"id":1759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1752,"mutability":"mutable","name":"proposalId","nameLocation":"17467:10:5","nodeType":"VariableDeclaration","scope":1773,"src":"17459:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1751,"name":"uint256","nodeType":"ElementaryTypeName","src":"17459:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1754,"mutability":"mutable","name":"account","nameLocation":"17495:7:5","nodeType":"VariableDeclaration","scope":1773,"src":"17487:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1753,"name":"address","nodeType":"ElementaryTypeName","src":"17487:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1756,"mutability":"mutable","name":"support","nameLocation":"17518:7:5","nodeType":"VariableDeclaration","scope":1773,"src":"17512:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1755,"name":"uint8","nodeType":"ElementaryTypeName","src":"17512:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1758,"mutability":"mutable","name":"reason","nameLocation":"17549:6:5","nodeType":"VariableDeclaration","scope":1773,"src":"17535:20:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1757,"name":"string","nodeType":"ElementaryTypeName","src":"17535:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17449:112:5"},"returnParameters":{"id":1762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1773,"src":"17588:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1760,"name":"uint256","nodeType":"ElementaryTypeName","src":"17588:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17587:9:5"},"scope":1952,"src":"17431:255:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1851,"nodeType":"Block","src":"18163:574:5","statements":[{"assignments":[1791],"declarations":[{"constant":false,"id":1791,"mutability":"mutable","name":"proposal","nameLocation":"18194:8:5","nodeType":"VariableDeclaration","scope":1851,"src":"18173:29:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore"},"typeName":{"id":1790,"nodeType":"UserDefinedTypeName","pathNode":{"id":1789,"name":"ProposalCore","nodeType":"IdentifierPath","referencedDeclaration":713,"src":"18173:12:5"},"referencedDeclaration":713,"src":"18173:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore"}},"visibility":"internal"}],"id":1795,"initialValue":{"baseExpression":{"id":1792,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"18205:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$713_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":1794,"indexExpression":{"id":1793,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"18216:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18205:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage","typeString":"struct Governor.ProposalCore storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18173:54:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1798,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"18251:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1797,"name":"state","nodeType":"Identifier","overloadedDeclarations":[981],"referencedDeclaration":981,"src":"18245:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1967_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":1799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18245:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1800,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"18266:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":1801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":1960,"src":"18266:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"18245:41:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20766f7465206e6f742063757272656e746c7920616374697665","id":1803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18288:37:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80","typeString":"literal_string \"Governor: vote not currently active\""},"value":"Governor: vote not currently active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80","typeString":"literal_string \"Governor: vote not currently active\""}],"id":1796,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18237:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18237:89:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1805,"nodeType":"ExpressionStatement","src":"18237:89:5"},{"assignments":[1807],"declarations":[{"constant":false,"id":1807,"mutability":"mutable","name":"weight","nameLocation":"18345:6:5","nodeType":"VariableDeclaration","scope":1851,"src":"18337:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1806,"name":"uint256","nodeType":"ElementaryTypeName","src":"18337:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1816,"initialValue":{"arguments":[{"id":1809,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"18364:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":1810,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"18373:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$713_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":1811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":705,"src":"18373:18:5","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":1812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getDeadline","nodeType":"MemberAccess","referencedDeclaration":8678,"src":"18373:30:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$8666_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_BlockNumber_$8666_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (uint64)"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18373:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1814,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1784,"src":"18407:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1808,"name":"_getVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1052,"src":"18354:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view returns (uint256)"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18354:60:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18337:77:5"},{"expression":{"arguments":[{"id":1818,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"18435:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1819,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"18447:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1820,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"18456:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1821,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"18465:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1822,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1784,"src":"18473:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1817,"name":"_countVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1066,"src":"18424:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint8,uint256,bytes memory)"}},"id":1823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18424:56:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1824,"nodeType":"ExpressionStatement","src":"18424:56:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1825,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1784,"src":"18495:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"18495:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18512:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18495:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1847,"nodeType":"Block","src":"18605:102:5","statements":[{"eventCall":{"arguments":[{"id":1839,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"18643:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1840,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"18652:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1841,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"18664:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1842,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"18673:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1843,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"18681:6:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1844,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1784,"src":"18689:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1838,"name":"VoteCastWithParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"18624:18:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory,bytes memory)"}},"id":1845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18624:72:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1846,"nodeType":"EmitStatement","src":"18619:77:5"}]},"id":1848,"nodeType":"IfStatement","src":"18491:216:5","trueBody":{"id":1837,"nodeType":"Block","src":"18515:84:5","statements":[{"eventCall":{"arguments":[{"id":1830,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"18543:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1831,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"18552:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1832,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"18564:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1833,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"18573:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1834,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"18581:6:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1829,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2015,"src":"18534:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":1835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18534:54:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1836,"nodeType":"EmitStatement","src":"18529:59:5"}]}},{"expression":{"id":1849,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"18724:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1788,"id":1850,"nodeType":"Return","src":"18717:13:5"}]},"documentation":{"id":1774,"nodeType":"StructuredDocumentation","src":"17692:271:5","text":" @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n voting weight using {IGovernor-getVotes} and call the {_countVote} internal function.\n Emits a {IGovernor-VoteCast} event."},"id":1852,"implemented":true,"kind":"function","modifiers":[],"name":"_castVote","nameLocation":"17977:9:5","nodeType":"FunctionDefinition","parameters":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"mutability":"mutable","name":"proposalId","nameLocation":"18004:10:5","nodeType":"VariableDeclaration","scope":1852,"src":"17996:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1775,"name":"uint256","nodeType":"ElementaryTypeName","src":"17996:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1778,"mutability":"mutable","name":"account","nameLocation":"18032:7:5","nodeType":"VariableDeclaration","scope":1852,"src":"18024:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1777,"name":"address","nodeType":"ElementaryTypeName","src":"18024:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1780,"mutability":"mutable","name":"support","nameLocation":"18055:7:5","nodeType":"VariableDeclaration","scope":1852,"src":"18049:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1779,"name":"uint8","nodeType":"ElementaryTypeName","src":"18049:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1782,"mutability":"mutable","name":"reason","nameLocation":"18086:6:5","nodeType":"VariableDeclaration","scope":1852,"src":"18072:20:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1781,"name":"string","nodeType":"ElementaryTypeName","src":"18072:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1784,"mutability":"mutable","name":"params","nameLocation":"18115:6:5","nodeType":"VariableDeclaration","scope":1852,"src":"18102:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1783,"name":"bytes","nodeType":"ElementaryTypeName","src":"18102:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17986:141:5"},"returnParameters":{"id":1788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1852,"src":"18154:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1786,"name":"uint256","nodeType":"ElementaryTypeName","src":"18154:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18153:9:5"},"scope":1952,"src":"17968:769:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1872,"nodeType":"Block","src":"19317:67:5","statements":[{"expression":{"arguments":[{"id":1867,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1855,"src":"19357:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1868,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1859,"src":"19365:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1869,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1857,"src":"19371:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1864,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"19327:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$7999_$","typeString":"type(library Address)"}},"id":1866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":7813,"src":"19327:29:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19327:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1871,"nodeType":"ExpressionStatement","src":"19327:50:5"}]},"documentation":{"id":1853,"nodeType":"StructuredDocumentation","src":"18743:440:5","text":" @dev Relays a transaction or function call to an arbitrary target. In cases where the governance executor\n is some contract other than the governor itself, like when using a timelock, this function can be invoked\n in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake.\n Note that if the executor is simply the governor itself, use of `relay` is redundant."},"functionSelector":"c28bc2fa","id":1873,"implemented":true,"kind":"function","modifiers":[{"id":1862,"kind":"modifierInvocation","modifierName":{"id":1861,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"19302:14:5"},"nodeType":"ModifierInvocation","src":"19302:14:5"}],"name":"relay","nameLocation":"19197:5:5","nodeType":"FunctionDefinition","parameters":{"id":1860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1855,"mutability":"mutable","name":"target","nameLocation":"19220:6:5","nodeType":"VariableDeclaration","scope":1873,"src":"19212:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1854,"name":"address","nodeType":"ElementaryTypeName","src":"19212:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1857,"mutability":"mutable","name":"value","nameLocation":"19244:5:5","nodeType":"VariableDeclaration","scope":1873,"src":"19236:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1856,"name":"uint256","nodeType":"ElementaryTypeName","src":"19236:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1859,"mutability":"mutable","name":"data","nameLocation":"19274:4:5","nodeType":"VariableDeclaration","scope":1873,"src":"19259:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1858,"name":"bytes","nodeType":"ElementaryTypeName","src":"19259:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19202:82:5"},"returnParameters":{"id":1863,"nodeType":"ParameterList","parameters":[],"src":"19317:0:5"},"scope":1952,"src":"19188:196:5","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":1884,"nodeType":"Block","src":"19633:37:5","statements":[{"expression":{"arguments":[{"id":1881,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19658:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}],"id":1880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19650:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1879,"name":"address","nodeType":"ElementaryTypeName","src":"19650:7:5","typeDescriptions":{}}},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19650:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1878,"id":1883,"nodeType":"Return","src":"19643:20:5"}]},"documentation":{"id":1874,"nodeType":"StructuredDocumentation","src":"19390:177:5","text":" @dev Address through which the governor executes action. Will be overloaded by module that execute actions\n through another contract such as a timelock."},"id":1885,"implemented":true,"kind":"function","modifiers":[],"name":"_executor","nameLocation":"19581:9:5","nodeType":"FunctionDefinition","parameters":{"id":1875,"nodeType":"ParameterList","parameters":[],"src":"19590:2:5"},"returnParameters":{"id":1878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1885,"src":"19624:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1876,"name":"address","nodeType":"ElementaryTypeName","src":"19624:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19623:9:5"},"scope":1952,"src":"19572:98:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7109],"body":{"id":1904,"nodeType":"Block","src":"19890:54:5","statements":[{"expression":{"expression":{"expression":{"id":1900,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19907:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}},"id":1901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1905,"src":"19907:21:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":1902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"19907:30:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":1899,"id":1903,"nodeType":"Return","src":"19900:37:5"}]},"documentation":{"id":1886,"nodeType":"StructuredDocumentation","src":"19676:63:5","text":" @dev See {IERC721Receiver-onERC721Received}."},"functionSelector":"150b7a02","id":1905,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"19753:16:5","nodeType":"FunctionDefinition","overrides":{"id":1896,"nodeType":"OverrideSpecifier","overrides":[],"src":"19864:8:5"},"parameters":{"id":1895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1905,"src":"19779:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1887,"name":"address","nodeType":"ElementaryTypeName","src":"19779:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1905,"src":"19796:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1889,"name":"address","nodeType":"ElementaryTypeName","src":"19796:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1905,"src":"19813:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1891,"name":"uint256","nodeType":"ElementaryTypeName","src":"19813:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1905,"src":"19830:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1893,"name":"bytes","nodeType":"ElementaryTypeName","src":"19830:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19769:79:5"},"returnParameters":{"id":1899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1905,"src":"19882:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1897,"name":"bytes4","nodeType":"ElementaryTypeName","src":"19882:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"19881:8:5"},"scope":1952,"src":"19744:200:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5084],"body":{"id":1926,"nodeType":"Block","src":"20184:55:5","statements":[{"expression":{"expression":{"expression":{"id":1922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20201:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1927,"src":"20201:22:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":1924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"20201:31:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":1921,"id":1925,"nodeType":"Return","src":"20194:38:5"}]},"documentation":{"id":1906,"nodeType":"StructuredDocumentation","src":"19950:65:5","text":" @dev See {IERC1155Receiver-onERC1155Received}."},"functionSelector":"f23a6e61","id":1927,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"20029:17:5","nodeType":"FunctionDefinition","overrides":{"id":1918,"nodeType":"OverrideSpecifier","overrides":[],"src":"20158:8:5"},"parameters":{"id":1917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1927,"src":"20056:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1907,"name":"address","nodeType":"ElementaryTypeName","src":"20056:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1927,"src":"20073:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1909,"name":"address","nodeType":"ElementaryTypeName","src":"20073:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1927,"src":"20090:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1911,"name":"uint256","nodeType":"ElementaryTypeName","src":"20090:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1927,"src":"20107:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1913,"name":"uint256","nodeType":"ElementaryTypeName","src":"20107:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1927,"src":"20124:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1915,"name":"bytes","nodeType":"ElementaryTypeName","src":"20124:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20046:96:5"},"returnParameters":{"id":1921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1927,"src":"20176:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1919,"name":"bytes4","nodeType":"ElementaryTypeName","src":"20176:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"20175:8:5"},"scope":1952,"src":"20020:219:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5102],"body":{"id":1950,"nodeType":"Block","src":"20507:60:5","statements":[{"expression":{"expression":{"expression":{"id":1946,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20524:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$1952","typeString":"contract Governor"}},"id":1947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1951,"src":"20524:27:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":1948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"20524:36:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":1945,"id":1949,"nodeType":"Return","src":"20517:43:5"}]},"documentation":{"id":1928,"nodeType":"StructuredDocumentation","src":"20245:70:5","text":" @dev See {IERC1155Receiver-onERC1155BatchReceived}."},"functionSelector":"bc197c81","id":1951,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"20329:22:5","nodeType":"FunctionDefinition","overrides":{"id":1942,"nodeType":"OverrideSpecifier","overrides":[],"src":"20481:8:5"},"parameters":{"id":1941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1951,"src":"20361:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1929,"name":"address","nodeType":"ElementaryTypeName","src":"20361:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1951,"src":"20378:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1931,"name":"address","nodeType":"ElementaryTypeName","src":"20378:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1951,"src":"20395:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1933,"name":"uint256","nodeType":"ElementaryTypeName","src":"20395:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1934,"nodeType":"ArrayTypeName","src":"20395:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1951,"src":"20421:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1936,"name":"uint256","nodeType":"ElementaryTypeName","src":"20421:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1937,"nodeType":"ArrayTypeName","src":"20421:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1951,"src":"20447:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1939,"name":"bytes","nodeType":"ElementaryTypeName","src":"20447:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20351:114:5"},"returnParameters":{"id":1945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1951,"src":"20499:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1943,"name":"bytes4","nodeType":"ElementaryTypeName","src":"20499:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"20498:8:5"},"scope":1952,"src":"20320:247:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":1953,"src":"1004:19565:5","usedErrors":[12523]}],"src":"107:20463:5"},"id":5},"@openzeppelin/contracts/governance/IGovernor.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/IGovernor.sol","exportedSymbols":{"ERC165":[9837],"IERC165":[9849],"IGovernor":[2249]},"id":2250,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1954,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:6"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":1955,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2250,"sourceUnit":9838,"src":"133:43:6","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1957,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"289:7:6"},"id":1958,"nodeType":"InheritanceSpecifier","src":"289:7:6"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":1956,"nodeType":"StructuredDocumentation","src":"178:79:6","text":" @dev Interface of the {Governor} core.\n _Available since v4.3._"},"fullyImplemented":false,"id":2249,"linearizedBaseContracts":[2249,9849],"name":"IGovernor","nameLocation":"276:9:6","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IGovernor.ProposalState","id":1967,"members":[{"id":1959,"name":"Pending","nameLocation":"332:7:6","nodeType":"EnumValue","src":"332:7:6"},{"id":1960,"name":"Active","nameLocation":"349:6:6","nodeType":"EnumValue","src":"349:6:6"},{"id":1961,"name":"Canceled","nameLocation":"365:8:6","nodeType":"EnumValue","src":"365:8:6"},{"id":1962,"name":"Defeated","nameLocation":"383:8:6","nodeType":"EnumValue","src":"383:8:6"},{"id":1963,"name":"Succeeded","nameLocation":"401:9:6","nodeType":"EnumValue","src":"401:9:6"},{"id":1964,"name":"Queued","nameLocation":"420:6:6","nodeType":"EnumValue","src":"420:6:6"},{"id":1965,"name":"Expired","nameLocation":"436:7:6","nodeType":"EnumValue","src":"436:7:6"},{"id":1966,"name":"Executed","nameLocation":"453:8:6","nodeType":"EnumValue","src":"453:8:6"}],"name":"ProposalState","nameLocation":"308:13:6","nodeType":"EnumDefinition","src":"303:164:6"},{"anonymous":false,"documentation":{"id":1968,"nodeType":"StructuredDocumentation","src":"473:59:6","text":" @dev Emitted when a proposal is created."},"id":1992,"name":"ProposalCreated","nameLocation":"543:15:6","nodeType":"EventDefinition","parameters":{"id":1991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1970,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"576:10:6","nodeType":"VariableDeclaration","scope":1992,"src":"568:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1969,"name":"uint256","nodeType":"ElementaryTypeName","src":"568:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1972,"indexed":false,"mutability":"mutable","name":"proposer","nameLocation":"604:8:6","nodeType":"VariableDeclaration","scope":1992,"src":"596:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1971,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1975,"indexed":false,"mutability":"mutable","name":"targets","nameLocation":"632:7:6","nodeType":"VariableDeclaration","scope":1992,"src":"622:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1973,"name":"address","nodeType":"ElementaryTypeName","src":"622:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1974,"nodeType":"ArrayTypeName","src":"622:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1978,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"659:6:6","nodeType":"VariableDeclaration","scope":1992,"src":"649:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1976,"name":"uint256","nodeType":"ElementaryTypeName","src":"649:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1977,"nodeType":"ArrayTypeName","src":"649:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1981,"indexed":false,"mutability":"mutable","name":"signatures","nameLocation":"684:10:6","nodeType":"VariableDeclaration","scope":1992,"src":"675:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1979,"name":"string","nodeType":"ElementaryTypeName","src":"675:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1980,"nodeType":"ArrayTypeName","src":"675:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":1984,"indexed":false,"mutability":"mutable","name":"calldatas","nameLocation":"712:9:6","nodeType":"VariableDeclaration","scope":1992,"src":"704:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1982,"name":"bytes","nodeType":"ElementaryTypeName","src":"704:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1983,"nodeType":"ArrayTypeName","src":"704:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1986,"indexed":false,"mutability":"mutable","name":"startBlock","nameLocation":"739:10:6","nodeType":"VariableDeclaration","scope":1992,"src":"731:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1985,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1988,"indexed":false,"mutability":"mutable","name":"endBlock","nameLocation":"767:8:6","nodeType":"VariableDeclaration","scope":1992,"src":"759:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1987,"name":"uint256","nodeType":"ElementaryTypeName","src":"759:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1990,"indexed":false,"mutability":"mutable","name":"description","nameLocation":"792:11:6","nodeType":"VariableDeclaration","scope":1992,"src":"785:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1989,"name":"string","nodeType":"ElementaryTypeName","src":"785:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"558:251:6"},"src":"537:273:6"},{"anonymous":false,"documentation":{"id":1993,"nodeType":"StructuredDocumentation","src":"816:60:6","text":" @dev Emitted when a proposal is canceled."},"id":1997,"name":"ProposalCanceled","nameLocation":"887:16:6","nodeType":"EventDefinition","parameters":{"id":1996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1995,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"912:10:6","nodeType":"VariableDeclaration","scope":1997,"src":"904:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1994,"name":"uint256","nodeType":"ElementaryTypeName","src":"904:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"903:20:6"},"src":"881:43:6"},{"anonymous":false,"documentation":{"id":1998,"nodeType":"StructuredDocumentation","src":"930:60:6","text":" @dev Emitted when a proposal is executed."},"id":2002,"name":"ProposalExecuted","nameLocation":"1001:16:6","nodeType":"EventDefinition","parameters":{"id":2001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2000,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"1026:10:6","nodeType":"VariableDeclaration","scope":2002,"src":"1018:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1017:20:6"},"src":"995:43:6"},{"anonymous":false,"documentation":{"id":2003,"nodeType":"StructuredDocumentation","src":"1044:187:6","text":" @dev Emitted when a vote is cast without params.\n Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used."},"id":2015,"name":"VoteCast","nameLocation":"1242:8:6","nodeType":"EventDefinition","parameters":{"id":2014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2005,"indexed":true,"mutability":"mutable","name":"voter","nameLocation":"1267:5:6","nodeType":"VariableDeclaration","scope":2015,"src":"1251:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2004,"name":"address","nodeType":"ElementaryTypeName","src":"1251:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2007,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"1282:10:6","nodeType":"VariableDeclaration","scope":2015,"src":"1274:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2006,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2009,"indexed":false,"mutability":"mutable","name":"support","nameLocation":"1300:7:6","nodeType":"VariableDeclaration","scope":2015,"src":"1294:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2008,"name":"uint8","nodeType":"ElementaryTypeName","src":"1294:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2011,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"1317:6:6","nodeType":"VariableDeclaration","scope":2015,"src":"1309:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2010,"name":"uint256","nodeType":"ElementaryTypeName","src":"1309:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2013,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"1332:6:6","nodeType":"VariableDeclaration","scope":2015,"src":"1325:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2012,"name":"string","nodeType":"ElementaryTypeName","src":"1325:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1250:89:6"},"src":"1236:104:6"},{"anonymous":false,"documentation":{"id":2016,"nodeType":"StructuredDocumentation","src":"1346:297:6","text":" @dev Emitted when a vote is cast with params.\n Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\n `params` are additional encoded parameters. Their intepepretation also depends on the voting module used."},"id":2030,"name":"VoteCastWithParams","nameLocation":"1654:18:6","nodeType":"EventDefinition","parameters":{"id":2029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2018,"indexed":true,"mutability":"mutable","name":"voter","nameLocation":"1698:5:6","nodeType":"VariableDeclaration","scope":2030,"src":"1682:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2017,"name":"address","nodeType":"ElementaryTypeName","src":"1682:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2020,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"1721:10:6","nodeType":"VariableDeclaration","scope":2030,"src":"1713:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1713:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2022,"indexed":false,"mutability":"mutable","name":"support","nameLocation":"1747:7:6","nodeType":"VariableDeclaration","scope":2030,"src":"1741:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2021,"name":"uint8","nodeType":"ElementaryTypeName","src":"1741:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2024,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"1772:6:6","nodeType":"VariableDeclaration","scope":2030,"src":"1764:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2023,"name":"uint256","nodeType":"ElementaryTypeName","src":"1764:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2026,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"1795:6:6","nodeType":"VariableDeclaration","scope":2030,"src":"1788:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2025,"name":"string","nodeType":"ElementaryTypeName","src":"1788:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2028,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"1817:6:6","nodeType":"VariableDeclaration","scope":2030,"src":"1811:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2027,"name":"bytes","nodeType":"ElementaryTypeName","src":"1811:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1672:157:6"},"src":"1648:182:6"},{"documentation":{"id":2031,"nodeType":"StructuredDocumentation","src":"1836:128:6","text":" @notice module:core\n @dev Name of the governor instance (used in building the ERC712 domain separator)."},"functionSelector":"06fdde03","id":2036,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"1978:4:6","nodeType":"FunctionDefinition","parameters":{"id":2032,"nodeType":"ParameterList","parameters":[],"src":"1982:2:6"},"returnParameters":{"id":2035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2036,"src":"2014:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2033,"name":"string","nodeType":"ElementaryTypeName","src":"2014:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2013:15:6"},"scope":2249,"src":"1969:60:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2037,"nodeType":"StructuredDocumentation","src":"2035:144:6","text":" @notice module:core\n @dev Version of the governor instance (used in building the ERC712 domain separator). Default: \"1\""},"functionSelector":"54fd4d50","id":2042,"implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"2193:7:6","nodeType":"FunctionDefinition","parameters":{"id":2038,"nodeType":"ParameterList","parameters":[],"src":"2200:2:6"},"returnParameters":{"id":2041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2042,"src":"2232:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2039,"name":"string","nodeType":"ElementaryTypeName","src":"2232:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2231:15:6"},"scope":2249,"src":"2184:63:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2043,"nodeType":"StructuredDocumentation","src":"2253:1315:6","text":" @notice module:voting\n @dev A description of the possible `support` values for {castVote} and the way these votes are counted, meant to\n be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of\n key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`.\n There are 2 standard keys: `support` and `quorum`.\n - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`.\n - `quorum=bravo` means that only For votes are counted towards quorum.\n - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum.\n If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique\n name that describes the behavior. For example:\n - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain.\n - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote.\n NOTE: The string can be decoded by the standard\n https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`]\n JavaScript class."},"functionSelector":"dd4e2ba5","id":2048,"implemented":false,"kind":"function","modifiers":[],"name":"COUNTING_MODE","nameLocation":"3635:13:6","nodeType":"FunctionDefinition","parameters":{"id":2044,"nodeType":"ParameterList","parameters":[],"src":"3648:2:6"},"returnParameters":{"id":2047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2048,"src":"3680:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2045,"name":"string","nodeType":"ElementaryTypeName","src":"3680:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3679:15:6"},"scope":2249,"src":"3626:69:6","stateMutability":"pure","virtual":true,"visibility":"public"},{"documentation":{"id":2049,"nodeType":"StructuredDocumentation","src":"3701:129:6","text":" @notice module:core\n @dev Hashing function used to (re)build the proposal id from the proposal details.."},"functionSelector":"c59057e4","id":2065,"implemented":false,"kind":"function","modifiers":[],"name":"hashProposal","nameLocation":"3844:12:6","nodeType":"FunctionDefinition","parameters":{"id":2061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2052,"mutability":"mutable","name":"targets","nameLocation":"3883:7:6","nodeType":"VariableDeclaration","scope":2065,"src":"3866:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2050,"name":"address","nodeType":"ElementaryTypeName","src":"3866:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2051,"nodeType":"ArrayTypeName","src":"3866:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2055,"mutability":"mutable","name":"values","nameLocation":"3917:6:6","nodeType":"VariableDeclaration","scope":2065,"src":"3900:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3900:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2054,"nodeType":"ArrayTypeName","src":"3900:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2058,"mutability":"mutable","name":"calldatas","nameLocation":"3948:9:6","nodeType":"VariableDeclaration","scope":2065,"src":"3933:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2056,"name":"bytes","nodeType":"ElementaryTypeName","src":"3933:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2057,"nodeType":"ArrayTypeName","src":"3933:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2060,"mutability":"mutable","name":"descriptionHash","nameLocation":"3975:15:6","nodeType":"VariableDeclaration","scope":2065,"src":"3967:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3967:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3856:140:6"},"returnParameters":{"id":2064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2065,"src":"4026:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2062,"name":"uint256","nodeType":"ElementaryTypeName","src":"4026:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4025:9:6"},"scope":2249,"src":"3835:200:6","stateMutability":"pure","virtual":true,"visibility":"public"},{"documentation":{"id":2066,"nodeType":"StructuredDocumentation","src":"4041:111:6","text":" @notice module:core\n @dev Current state of a proposal, following Compound's convention"},"functionSelector":"3e4f49e6","id":2074,"implemented":false,"kind":"function","modifiers":[],"name":"state","nameLocation":"4166:5:6","nodeType":"FunctionDefinition","parameters":{"id":2069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2068,"mutability":"mutable","name":"proposalId","nameLocation":"4180:10:6","nodeType":"VariableDeclaration","scope":2074,"src":"4172:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2067,"name":"uint256","nodeType":"ElementaryTypeName","src":"4172:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4171:20:6"},"returnParameters":{"id":2073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2074,"src":"4221:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":2071,"nodeType":"UserDefinedTypeName","pathNode":{"id":2070,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"4221:13:6"},"referencedDeclaration":1967,"src":"4221:13:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"4220:15:6"},"scope":2249,"src":"4157:79:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2075,"nodeType":"StructuredDocumentation","src":"4242:305:6","text":" @notice module:core\n @dev Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's\n ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the\n beginning of the following block."},"functionSelector":"2d63f693","id":2082,"implemented":false,"kind":"function","modifiers":[],"name":"proposalSnapshot","nameLocation":"4561:16:6","nodeType":"FunctionDefinition","parameters":{"id":2078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2077,"mutability":"mutable","name":"proposalId","nameLocation":"4586:10:6","nodeType":"VariableDeclaration","scope":2082,"src":"4578:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2076,"name":"uint256","nodeType":"ElementaryTypeName","src":"4578:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4577:20:6"},"returnParameters":{"id":2081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2082,"src":"4627:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2079,"name":"uint256","nodeType":"ElementaryTypeName","src":"4627:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4626:9:6"},"scope":2249,"src":"4552:84:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2083,"nodeType":"StructuredDocumentation","src":"4642:182:6","text":" @notice module:core\n @dev Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote\n during this block."},"functionSelector":"c01f9e37","id":2090,"implemented":false,"kind":"function","modifiers":[],"name":"proposalDeadline","nameLocation":"4838:16:6","nodeType":"FunctionDefinition","parameters":{"id":2086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2085,"mutability":"mutable","name":"proposalId","nameLocation":"4863:10:6","nodeType":"VariableDeclaration","scope":2090,"src":"4855:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2084,"name":"uint256","nodeType":"ElementaryTypeName","src":"4855:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4854:20:6"},"returnParameters":{"id":2089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2090,"src":"4904:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2087,"name":"uint256","nodeType":"ElementaryTypeName","src":"4904:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4903:9:6"},"scope":2249,"src":"4829:84:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2091,"nodeType":"StructuredDocumentation","src":"4919:268:6","text":" @notice module:user-config\n @dev Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to\n leave time for users to buy voting power, or delegate it, before the voting of a proposal starts."},"functionSelector":"3932abb1","id":2096,"implemented":false,"kind":"function","modifiers":[],"name":"votingDelay","nameLocation":"5201:11:6","nodeType":"FunctionDefinition","parameters":{"id":2092,"nodeType":"ParameterList","parameters":[],"src":"5212:2:6"},"returnParameters":{"id":2095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2096,"src":"5244:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2093,"name":"uint256","nodeType":"ElementaryTypeName","src":"5244:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5243:9:6"},"scope":2249,"src":"5192:61:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2097,"nodeType":"StructuredDocumentation","src":"5259:288:6","text":" @notice module:user-config\n @dev Delay, in number of blocks, between the vote start and vote ends.\n NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting\n duration compared to the voting delay."},"functionSelector":"02a251a3","id":2102,"implemented":false,"kind":"function","modifiers":[],"name":"votingPeriod","nameLocation":"5561:12:6","nodeType":"FunctionDefinition","parameters":{"id":2098,"nodeType":"ParameterList","parameters":[],"src":"5573:2:6"},"returnParameters":{"id":2101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2102,"src":"5605:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2099,"name":"uint256","nodeType":"ElementaryTypeName","src":"5605:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5604:9:6"},"scope":2249,"src":"5552:62:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2103,"nodeType":"StructuredDocumentation","src":"5620:356:6","text":" @notice module:user-config\n @dev Minimum number of cast voted required for a proposal to be successful.\n Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the\n quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes})."},"functionSelector":"f8ce560a","id":2110,"implemented":false,"kind":"function","modifiers":[],"name":"quorum","nameLocation":"5990:6:6","nodeType":"FunctionDefinition","parameters":{"id":2106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2105,"mutability":"mutable","name":"blockNumber","nameLocation":"6005:11:6","nodeType":"VariableDeclaration","scope":2110,"src":"5997:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2104,"name":"uint256","nodeType":"ElementaryTypeName","src":"5997:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5996:21:6"},"returnParameters":{"id":2109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2110,"src":"6047:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2107,"name":"uint256","nodeType":"ElementaryTypeName","src":"6047:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6046:9:6"},"scope":2249,"src":"5981:75:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2111,"nodeType":"StructuredDocumentation","src":"6062:276:6","text":" @notice module:reputation\n @dev Voting power of an `account` at a specific `blockNumber`.\n Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or\n multiple), {ERC20Votes} tokens."},"functionSelector":"eb9019d4","id":2120,"implemented":false,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"6352:8:6","nodeType":"FunctionDefinition","parameters":{"id":2116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"account","nameLocation":"6369:7:6","nodeType":"VariableDeclaration","scope":2120,"src":"6361:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2112,"name":"address","nodeType":"ElementaryTypeName","src":"6361:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2115,"mutability":"mutable","name":"blockNumber","nameLocation":"6386:11:6","nodeType":"VariableDeclaration","scope":2120,"src":"6378:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2114,"name":"uint256","nodeType":"ElementaryTypeName","src":"6378:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6360:38:6"},"returnParameters":{"id":2119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2120,"src":"6428:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2117,"name":"uint256","nodeType":"ElementaryTypeName","src":"6428:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6427:9:6"},"scope":2249,"src":"6343:94:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2121,"nodeType":"StructuredDocumentation","src":"6443:150:6","text":" @notice module:reputation\n @dev Voting power of an `account` at a specific `blockNumber` given additional encoded parameters."},"functionSelector":"9a802a6d","id":2132,"implemented":false,"kind":"function","modifiers":[],"name":"getVotesWithParams","nameLocation":"6607:18:6","nodeType":"FunctionDefinition","parameters":{"id":2128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2123,"mutability":"mutable","name":"account","nameLocation":"6643:7:6","nodeType":"VariableDeclaration","scope":2132,"src":"6635:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2122,"name":"address","nodeType":"ElementaryTypeName","src":"6635:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2125,"mutability":"mutable","name":"blockNumber","nameLocation":"6668:11:6","nodeType":"VariableDeclaration","scope":2132,"src":"6660:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2124,"name":"uint256","nodeType":"ElementaryTypeName","src":"6660:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2127,"mutability":"mutable","name":"params","nameLocation":"6702:6:6","nodeType":"VariableDeclaration","scope":2132,"src":"6689:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2126,"name":"bytes","nodeType":"ElementaryTypeName","src":"6689:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6625:89:6"},"returnParameters":{"id":2131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2132,"src":"6744:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2129,"name":"uint256","nodeType":"ElementaryTypeName","src":"6744:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6743:9:6"},"scope":2249,"src":"6598:155:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2133,"nodeType":"StructuredDocumentation","src":"6759:111:6","text":" @notice module:voting\n @dev Returns weither `account` has cast a vote on `proposalId`."},"functionSelector":"43859632","id":2142,"implemented":false,"kind":"function","modifiers":[],"name":"hasVoted","nameLocation":"6884:8:6","nodeType":"FunctionDefinition","parameters":{"id":2138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2135,"mutability":"mutable","name":"proposalId","nameLocation":"6901:10:6","nodeType":"VariableDeclaration","scope":2142,"src":"6893:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2134,"name":"uint256","nodeType":"ElementaryTypeName","src":"6893:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2137,"mutability":"mutable","name":"account","nameLocation":"6921:7:6","nodeType":"VariableDeclaration","scope":2142,"src":"6913:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2136,"name":"address","nodeType":"ElementaryTypeName","src":"6913:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6892:37:6"},"returnParameters":{"id":2141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2142,"src":"6959:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2139,"name":"bool","nodeType":"ElementaryTypeName","src":"6959:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6958:6:6"},"scope":2249,"src":"6875:90:6","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":2143,"nodeType":"StructuredDocumentation","src":"6971:238:6","text":" @dev Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends\n {IGovernor-votingPeriod} blocks after the voting starts.\n Emits a {ProposalCreated} event."},"functionSelector":"7d5e81e2","id":2159,"implemented":false,"kind":"function","modifiers":[],"name":"propose","nameLocation":"7223:7:6","nodeType":"FunctionDefinition","parameters":{"id":2155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2146,"mutability":"mutable","name":"targets","nameLocation":"7257:7:6","nodeType":"VariableDeclaration","scope":2159,"src":"7240:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2144,"name":"address","nodeType":"ElementaryTypeName","src":"7240:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2145,"nodeType":"ArrayTypeName","src":"7240:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2149,"mutability":"mutable","name":"values","nameLocation":"7291:6:6","nodeType":"VariableDeclaration","scope":2159,"src":"7274:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2147,"name":"uint256","nodeType":"ElementaryTypeName","src":"7274:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2148,"nodeType":"ArrayTypeName","src":"7274:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2152,"mutability":"mutable","name":"calldatas","nameLocation":"7322:9:6","nodeType":"VariableDeclaration","scope":2159,"src":"7307:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2150,"name":"bytes","nodeType":"ElementaryTypeName","src":"7307:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2151,"nodeType":"ArrayTypeName","src":"7307:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2154,"mutability":"mutable","name":"description","nameLocation":"7355:11:6","nodeType":"VariableDeclaration","scope":2159,"src":"7341:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2153,"name":"string","nodeType":"ElementaryTypeName","src":"7341:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7230:142:6"},"returnParameters":{"id":2158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2157,"mutability":"mutable","name":"proposalId","nameLocation":"7405:10:6","nodeType":"VariableDeclaration","scope":2159,"src":"7397:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2156,"name":"uint256","nodeType":"ElementaryTypeName","src":"7397:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7396:20:6"},"scope":2249,"src":"7214:203:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":2160,"nodeType":"StructuredDocumentation","src":"7423:329:6","text":" @dev Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the\n deadline to be reached.\n Emits a {ProposalExecuted} event.\n Note: some module can modify the requirements for execution, for example by adding an additional timelock."},"functionSelector":"2656227d","id":2176,"implemented":false,"kind":"function","modifiers":[],"name":"execute","nameLocation":"7766:7:6","nodeType":"FunctionDefinition","parameters":{"id":2172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2163,"mutability":"mutable","name":"targets","nameLocation":"7800:7:6","nodeType":"VariableDeclaration","scope":2176,"src":"7783:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2161,"name":"address","nodeType":"ElementaryTypeName","src":"7783:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2162,"nodeType":"ArrayTypeName","src":"7783:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2166,"mutability":"mutable","name":"values","nameLocation":"7834:6:6","nodeType":"VariableDeclaration","scope":2176,"src":"7817:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2164,"name":"uint256","nodeType":"ElementaryTypeName","src":"7817:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2165,"nodeType":"ArrayTypeName","src":"7817:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2169,"mutability":"mutable","name":"calldatas","nameLocation":"7865:9:6","nodeType":"VariableDeclaration","scope":2176,"src":"7850:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2167,"name":"bytes","nodeType":"ElementaryTypeName","src":"7850:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2168,"nodeType":"ArrayTypeName","src":"7850:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2171,"mutability":"mutable","name":"descriptionHash","nameLocation":"7892:15:6","nodeType":"VariableDeclaration","scope":2176,"src":"7884:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7884:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7773:140:6"},"returnParameters":{"id":2175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2174,"mutability":"mutable","name":"proposalId","nameLocation":"7954:10:6","nodeType":"VariableDeclaration","scope":2176,"src":"7946:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2173,"name":"uint256","nodeType":"ElementaryTypeName","src":"7946:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7945:20:6"},"scope":2249,"src":"7757:209:6","stateMutability":"payable","virtual":true,"visibility":"public"},{"documentation":{"id":2177,"nodeType":"StructuredDocumentation","src":"7972:75:6","text":" @dev Cast a vote\n Emits a {VoteCast} event."},"functionSelector":"56781388","id":2186,"implemented":false,"kind":"function","modifiers":[],"name":"castVote","nameLocation":"8061:8:6","nodeType":"FunctionDefinition","parameters":{"id":2182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2179,"mutability":"mutable","name":"proposalId","nameLocation":"8078:10:6","nodeType":"VariableDeclaration","scope":2186,"src":"8070:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2178,"name":"uint256","nodeType":"ElementaryTypeName","src":"8070:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2181,"mutability":"mutable","name":"support","nameLocation":"8096:7:6","nodeType":"VariableDeclaration","scope":2186,"src":"8090:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2180,"name":"uint8","nodeType":"ElementaryTypeName","src":"8090:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8069:35:6"},"returnParameters":{"id":2185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2184,"mutability":"mutable","name":"balance","nameLocation":"8137:7:6","nodeType":"VariableDeclaration","scope":2186,"src":"8129:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2183,"name":"uint256","nodeType":"ElementaryTypeName","src":"8129:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8128:17:6"},"scope":2249,"src":"8052:94:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":2187,"nodeType":"StructuredDocumentation","src":"8152:89:6","text":" @dev Cast a vote with a reason\n Emits a {VoteCast} event."},"functionSelector":"7b3c71d3","id":2198,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteWithReason","nameLocation":"8255:18:6","nodeType":"FunctionDefinition","parameters":{"id":2194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2189,"mutability":"mutable","name":"proposalId","nameLocation":"8291:10:6","nodeType":"VariableDeclaration","scope":2198,"src":"8283:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2188,"name":"uint256","nodeType":"ElementaryTypeName","src":"8283:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2191,"mutability":"mutable","name":"support","nameLocation":"8317:7:6","nodeType":"VariableDeclaration","scope":2198,"src":"8311:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2190,"name":"uint8","nodeType":"ElementaryTypeName","src":"8311:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2193,"mutability":"mutable","name":"reason","nameLocation":"8350:6:6","nodeType":"VariableDeclaration","scope":2198,"src":"8334:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2192,"name":"string","nodeType":"ElementaryTypeName","src":"8334:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8273:89:6"},"returnParameters":{"id":2197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2196,"mutability":"mutable","name":"balance","nameLocation":"8395:7:6","nodeType":"VariableDeclaration","scope":2198,"src":"8387:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2195,"name":"uint256","nodeType":"ElementaryTypeName","src":"8387:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8386:17:6"},"scope":2249,"src":"8246:158:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":2199,"nodeType":"StructuredDocumentation","src":"8410:181:6","text":" @dev Cast a vote with a reason and additional encoded parameters\n Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params."},"functionSelector":"5f398a14","id":2212,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParams","nameLocation":"8605:27:6","nodeType":"FunctionDefinition","parameters":{"id":2208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2201,"mutability":"mutable","name":"proposalId","nameLocation":"8650:10:6","nodeType":"VariableDeclaration","scope":2212,"src":"8642:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2200,"name":"uint256","nodeType":"ElementaryTypeName","src":"8642:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2203,"mutability":"mutable","name":"support","nameLocation":"8676:7:6","nodeType":"VariableDeclaration","scope":2212,"src":"8670:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2202,"name":"uint8","nodeType":"ElementaryTypeName","src":"8670:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2205,"mutability":"mutable","name":"reason","nameLocation":"8709:6:6","nodeType":"VariableDeclaration","scope":2212,"src":"8693:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2204,"name":"string","nodeType":"ElementaryTypeName","src":"8693:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2207,"mutability":"mutable","name":"params","nameLocation":"8738:6:6","nodeType":"VariableDeclaration","scope":2212,"src":"8725:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2206,"name":"bytes","nodeType":"ElementaryTypeName","src":"8725:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8632:118:6"},"returnParameters":{"id":2211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2210,"mutability":"mutable","name":"balance","nameLocation":"8783:7:6","nodeType":"VariableDeclaration","scope":2212,"src":"8775:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2209,"name":"uint256","nodeType":"ElementaryTypeName","src":"8775:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8774:17:6"},"scope":2249,"src":"8596:196:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":2213,"nodeType":"StructuredDocumentation","src":"8798:117:6","text":" @dev Cast a vote using the user's cryptographic signature.\n Emits a {VoteCast} event."},"functionSelector":"3bccf4fd","id":2228,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteBySig","nameLocation":"8929:13:6","nodeType":"FunctionDefinition","parameters":{"id":2224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2215,"mutability":"mutable","name":"proposalId","nameLocation":"8960:10:6","nodeType":"VariableDeclaration","scope":2228,"src":"8952:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2214,"name":"uint256","nodeType":"ElementaryTypeName","src":"8952:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2217,"mutability":"mutable","name":"support","nameLocation":"8986:7:6","nodeType":"VariableDeclaration","scope":2228,"src":"8980:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2216,"name":"uint8","nodeType":"ElementaryTypeName","src":"8980:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2219,"mutability":"mutable","name":"v","nameLocation":"9009:1:6","nodeType":"VariableDeclaration","scope":2228,"src":"9003:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2218,"name":"uint8","nodeType":"ElementaryTypeName","src":"9003:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2221,"mutability":"mutable","name":"r","nameLocation":"9028:1:6","nodeType":"VariableDeclaration","scope":2228,"src":"9020:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9020:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2223,"mutability":"mutable","name":"s","nameLocation":"9047:1:6","nodeType":"VariableDeclaration","scope":2228,"src":"9039:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9039:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8942:112:6"},"returnParameters":{"id":2227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2226,"mutability":"mutable","name":"balance","nameLocation":"9087:7:6","nodeType":"VariableDeclaration","scope":2228,"src":"9079:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2225,"name":"uint256","nodeType":"ElementaryTypeName","src":"9079:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9078:17:6"},"scope":2249,"src":"8920:176:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":2229,"nodeType":"StructuredDocumentation","src":"9102:223:6","text":" @dev Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature.\n Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params."},"functionSelector":"03420181","id":2248,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParamsBySig","nameLocation":"9339:32:6","nodeType":"FunctionDefinition","parameters":{"id":2244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2231,"mutability":"mutable","name":"proposalId","nameLocation":"9389:10:6","nodeType":"VariableDeclaration","scope":2248,"src":"9381:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2230,"name":"uint256","nodeType":"ElementaryTypeName","src":"9381:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2233,"mutability":"mutable","name":"support","nameLocation":"9415:7:6","nodeType":"VariableDeclaration","scope":2248,"src":"9409:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2232,"name":"uint8","nodeType":"ElementaryTypeName","src":"9409:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2235,"mutability":"mutable","name":"reason","nameLocation":"9448:6:6","nodeType":"VariableDeclaration","scope":2248,"src":"9432:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2234,"name":"string","nodeType":"ElementaryTypeName","src":"9432:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2237,"mutability":"mutable","name":"params","nameLocation":"9477:6:6","nodeType":"VariableDeclaration","scope":2248,"src":"9464:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2236,"name":"bytes","nodeType":"ElementaryTypeName","src":"9464:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2239,"mutability":"mutable","name":"v","nameLocation":"9499:1:6","nodeType":"VariableDeclaration","scope":2248,"src":"9493:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2238,"name":"uint8","nodeType":"ElementaryTypeName","src":"9493:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2241,"mutability":"mutable","name":"r","nameLocation":"9518:1:6","nodeType":"VariableDeclaration","scope":2248,"src":"9510:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2240,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9510:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2243,"mutability":"mutable","name":"s","nameLocation":"9537:1:6","nodeType":"VariableDeclaration","scope":2248,"src":"9529:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9529:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9371:173:6"},"returnParameters":{"id":2247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2246,"mutability":"mutable","name":"balance","nameLocation":"9577:7:6","nodeType":"VariableDeclaration","scope":2248,"src":"9569:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2245,"name":"uint256","nodeType":"ElementaryTypeName","src":"9569:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9568:17:6"},"scope":2249,"src":"9330:256:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":2250,"src":"258:9330:6","usedErrors":[]}],"src":"108:9481:6"},"id":6},"@openzeppelin/contracts/governance/TimelockController.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/TimelockController.sol","exportedSymbols":{"AccessControl":[319],"Address":[7999],"Context":[8255],"ERC165":[9837],"IAccessControl":[517],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"Strings":[8555],"TimelockController":[3154]},"id":3155,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2251,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"117:23:7"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"../access/AccessControl.sol","id":2252,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3155,"sourceUnit":320,"src":"142:37:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"../token/ERC721/IERC721Receiver.sol","id":2253,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3155,"sourceUnit":7111,"src":"180:45:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"../token/ERC1155/IERC1155Receiver.sol","id":2254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3155,"sourceUnit":5104,"src":"226:47:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../utils/Address.sol","id":2255,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3155,"sourceUnit":8000,"src":"274:30:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2257,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"1061:13:7"},"id":2258,"nodeType":"InheritanceSpecifier","src":"1061:13:7"},{"baseName":{"id":2259,"name":"IERC721Receiver","nodeType":"IdentifierPath","referencedDeclaration":7110,"src":"1076:15:7"},"id":2260,"nodeType":"InheritanceSpecifier","src":"1076:15:7"},{"baseName":{"id":2261,"name":"IERC1155Receiver","nodeType":"IdentifierPath","referencedDeclaration":5103,"src":"1093:16:7"},"id":2262,"nodeType":"InheritanceSpecifier","src":"1093:16:7"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":2256,"nodeType":"StructuredDocumentation","src":"306:723:7","text":" @dev Contract module which acts as a timelocked controller. When set as the\n owner of an `Ownable` smart contract, it enforces a timelock on all\n `onlyOwner` maintenance operations. This gives time for users of the\n controlled contract to exit before a potentially dangerous maintenance\n operation is applied.\n By default, this contract is self administered, meaning administration tasks\n have to go through the timelock process. The proposer (resp executor) role\n is in charge of proposing (resp executing) operations. A common use case is\n to position this {TimelockController} as the owner of a smart contract, with\n a multisig or a DAO as the sole proposer.\n _Available since v3.3._"},"fullyImplemented":true,"id":3154,"linearizedBaseContracts":[3154,5103,7110,319,9837,9849,517,8255],"name":"TimelockController","nameLocation":"1039:18:7","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"0d3cf6fc","id":2267,"mutability":"constant","name":"TIMELOCK_ADMIN_ROLE","nameLocation":"1140:19:7","nodeType":"VariableDeclaration","scope":3154,"src":"1116:78:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1116:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"54494d454c4f434b5f41444d494e5f524f4c45","id":2265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1172:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5","typeString":"literal_string \"TIMELOCK_ADMIN_ROLE\""},"value":"TIMELOCK_ADMIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5","typeString":"literal_string \"TIMELOCK_ADMIN_ROLE\""}],"id":2264,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1162:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1162:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"8f61f4f5","id":2272,"mutability":"constant","name":"PROPOSER_ROLE","nameLocation":"1224:13:7","nodeType":"VariableDeclaration","scope":3154,"src":"1200:66:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1200:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50524f504f5345525f524f4c45","id":2270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1250:15:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1","typeString":"literal_string \"PROPOSER_ROLE\""},"value":"PROPOSER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1","typeString":"literal_string \"PROPOSER_ROLE\""}],"id":2269,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1240:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1240:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"07bd0265","id":2277,"mutability":"constant","name":"EXECUTOR_ROLE","nameLocation":"1296:13:7","nodeType":"VariableDeclaration","scope":3154,"src":"1272:66:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1272:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4558454355544f525f524f4c45","id":2275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:15:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63","typeString":"literal_string \"EXECUTOR_ROLE\""},"value":"EXECUTOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63","typeString":"literal_string \"EXECUTOR_ROLE\""}],"id":2274,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1312:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1312:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"b08e51c0","id":2282,"mutability":"constant","name":"CANCELLER_ROLE","nameLocation":"1368:14:7","nodeType":"VariableDeclaration","scope":3154,"src":"1344:68:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1344:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"43414e43454c4c45525f524f4c45","id":2280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1395:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","typeString":"literal_string \"CANCELLER_ROLE\""},"value":"CANCELLER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","typeString":"literal_string \"CANCELLER_ROLE\""}],"id":2279,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1385:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1385:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":2288,"mutability":"constant","name":"_DONE_TIMESTAMP","nameLocation":"1444:15:7","nodeType":"VariableDeclaration","scope":3154,"src":"1418:54:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2283,"name":"uint256","nodeType":"ElementaryTypeName","src":"1418:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"31","id":2286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1470:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":2285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1462:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2284,"name":"uint256","nodeType":"ElementaryTypeName","src":"1462:7:7","typeDescriptions":{}}},"id":2287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1462:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2292,"mutability":"mutable","name":"_timestamps","nameLocation":"1515:11:7","nodeType":"VariableDeclaration","scope":3154,"src":"1479:47:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":2291,"keyType":{"id":2289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1479:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":2290,"name":"uint256","nodeType":"ElementaryTypeName","src":"1498:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":2294,"mutability":"mutable","name":"_minDelay","nameLocation":"1548:9:7","nodeType":"VariableDeclaration","scope":3154,"src":"1532:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2293,"name":"uint256","nodeType":"ElementaryTypeName","src":"1532:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":2295,"nodeType":"StructuredDocumentation","src":"1564:83:7","text":" @dev Emitted when a call is scheduled as part of operation `id`."},"id":2311,"name":"CallScheduled","nameLocation":"1658:13:7","nodeType":"EventDefinition","parameters":{"id":2310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2297,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1697:2:7","nodeType":"VariableDeclaration","scope":2311,"src":"1681:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1681:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2299,"indexed":true,"mutability":"mutable","name":"index","nameLocation":"1725:5:7","nodeType":"VariableDeclaration","scope":2311,"src":"1709:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2301,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"1748:6:7","nodeType":"VariableDeclaration","scope":2311,"src":"1740:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2300,"name":"address","nodeType":"ElementaryTypeName","src":"1740:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2303,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1772:5:7","nodeType":"VariableDeclaration","scope":2311,"src":"1764:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2302,"name":"uint256","nodeType":"ElementaryTypeName","src":"1764:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2305,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1793:4:7","nodeType":"VariableDeclaration","scope":2311,"src":"1787:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2304,"name":"bytes","nodeType":"ElementaryTypeName","src":"1787:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2307,"indexed":false,"mutability":"mutable","name":"predecessor","nameLocation":"1815:11:7","nodeType":"VariableDeclaration","scope":2311,"src":"1807:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2306,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1807:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2309,"indexed":false,"mutability":"mutable","name":"delay","nameLocation":"1844:5:7","nodeType":"VariableDeclaration","scope":2311,"src":"1836:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2308,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1671:184:7"},"src":"1652:204:7"},{"anonymous":false,"documentation":{"id":2312,"nodeType":"StructuredDocumentation","src":"1862:83:7","text":" @dev Emitted when a call is performed as part of operation `id`."},"id":2324,"name":"CallExecuted","nameLocation":"1956:12:7","nodeType":"EventDefinition","parameters":{"id":2323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2314,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1985:2:7","nodeType":"VariableDeclaration","scope":2324,"src":"1969:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1969:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2316,"indexed":true,"mutability":"mutable","name":"index","nameLocation":"2005:5:7","nodeType":"VariableDeclaration","scope":2324,"src":"1989:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2315,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2318,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"2020:6:7","nodeType":"VariableDeclaration","scope":2324,"src":"2012:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2317,"name":"address","nodeType":"ElementaryTypeName","src":"2012:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2320,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2036:5:7","nodeType":"VariableDeclaration","scope":2324,"src":"2028:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2319,"name":"uint256","nodeType":"ElementaryTypeName","src":"2028:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2322,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2049:4:7","nodeType":"VariableDeclaration","scope":2324,"src":"2043:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2321,"name":"bytes","nodeType":"ElementaryTypeName","src":"2043:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1968:86:7"},"src":"1950:105:7"},{"anonymous":false,"documentation":{"id":2325,"nodeType":"StructuredDocumentation","src":"2061:65:7","text":" @dev Emitted when operation `id` is cancelled."},"id":2329,"name":"Cancelled","nameLocation":"2137:9:7","nodeType":"EventDefinition","parameters":{"id":2328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2327,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"2163:2:7","nodeType":"VariableDeclaration","scope":2329,"src":"2147:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2147:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2146:20:7"},"src":"2131:36:7"},{"anonymous":false,"documentation":{"id":2330,"nodeType":"StructuredDocumentation","src":"2173:89:7","text":" @dev Emitted when the minimum delay for future operations is modified."},"id":2336,"name":"MinDelayChange","nameLocation":"2273:14:7","nodeType":"EventDefinition","parameters":{"id":2335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2332,"indexed":false,"mutability":"mutable","name":"oldDuration","nameLocation":"2296:11:7","nodeType":"VariableDeclaration","scope":2336,"src":"2288:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2331,"name":"uint256","nodeType":"ElementaryTypeName","src":"2288:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2334,"indexed":false,"mutability":"mutable","name":"newDuration","nameLocation":"2317:11:7","nodeType":"VariableDeclaration","scope":2336,"src":"2309:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2333,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2287:42:7"},"src":"2267:63:7"},{"body":{"id":2438,"nodeType":"Block","src":"3086:848:7","statements":[{"expression":{"arguments":[{"id":2349,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"3110:19:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2350,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"3131:19:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2348,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3096:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3096:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2352,"nodeType":"ExpressionStatement","src":"3096:55:7"},{"expression":{"arguments":[{"id":2354,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"3175:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2355,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"3190:19:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2353,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3161:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3161:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2357,"nodeType":"ExpressionStatement","src":"3161:49:7"},{"expression":{"arguments":[{"id":2359,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"3234:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2360,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"3249:19:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2358,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3220:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":2361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3220:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2362,"nodeType":"ExpressionStatement","src":"3220:49:7"},{"expression":{"arguments":[{"id":2364,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2282,"src":"3293:14:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2365,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"3309:19:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2363,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3279:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3279:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2367,"nodeType":"ExpressionStatement","src":"3279:50:7"},{"expression":{"arguments":[{"id":2369,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"3393:19:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2370,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"3414:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3414:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2368,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3382:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3382:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2373,"nodeType":"ExpressionStatement","src":"3382:45:7"},{"expression":{"arguments":[{"id":2375,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"3448:19:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2378,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3477:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":2377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3469:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2376,"name":"address","nodeType":"ElementaryTypeName","src":"3469:7:7","typeDescriptions":{}}},"id":2379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3469:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2374,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3437:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3437:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2381,"nodeType":"ExpressionStatement","src":"3437:46:7"},{"body":{"id":2407,"nodeType":"Block","src":"3586:118:7","statements":[{"expression":{"arguments":[{"id":2394,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"3611:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":2395,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2342,"src":"3626:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2397,"indexExpression":{"id":2396,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"3636:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3626:12:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2393,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3600:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3600:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2399,"nodeType":"ExpressionStatement","src":"3600:39:7"},{"expression":{"arguments":[{"id":2401,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2282,"src":"3664:14:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":2402,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2342,"src":"3680:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2404,"indexExpression":{"id":2403,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"3690:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3680:12:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2400,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3653:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3653:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2406,"nodeType":"ExpressionStatement","src":"3653:40:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"3559:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2387,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2342,"src":"3563:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3563:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3559:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2408,"initializationExpression":{"assignments":[2383],"declarations":[{"constant":false,"id":2383,"mutability":"mutable","name":"i","nameLocation":"3552:1:7","nodeType":"VariableDeclaration","scope":2408,"src":"3544:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2382,"name":"uint256","nodeType":"ElementaryTypeName","src":"3544:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2385,"initialValue":{"hexValue":"30","id":2384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3556:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3544:13:7"},"loopExpression":{"expression":{"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3581:3:7","subExpression":{"id":2390,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"3583:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2392,"nodeType":"ExpressionStatement","src":"3581:3:7"},"nodeType":"ForStatement","src":"3539:165:7"},{"body":{"id":2427,"nodeType":"Block","src":"3791:64:7","statements":[{"expression":{"arguments":[{"id":2421,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"3816:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":2422,"name":"executors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"3831:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2424,"indexExpression":{"id":2423,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2410,"src":"3841:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3831:12:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2420,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3805:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3805:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2426,"nodeType":"ExpressionStatement","src":"3805:39:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2413,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2410,"src":"3764:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2414,"name":"executors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"3768:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3768:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3764:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2428,"initializationExpression":{"assignments":[2410],"declarations":[{"constant":false,"id":2410,"mutability":"mutable","name":"i","nameLocation":"3757:1:7","nodeType":"VariableDeclaration","scope":2428,"src":"3749:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2409,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2412,"initialValue":{"hexValue":"30","id":2411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3761:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3749:13:7"},"loopExpression":{"expression":{"id":2418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3786:3:7","subExpression":{"id":2417,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2410,"src":"3788:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2419,"nodeType":"ExpressionStatement","src":"3786:3:7"},"nodeType":"ForStatement","src":"3744:111:7"},{"expression":{"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2429,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2294,"src":"3865:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2430,"name":"minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2339,"src":"3877:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3865:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2432,"nodeType":"ExpressionStatement","src":"3865:20:7"},{"eventCall":{"arguments":[{"hexValue":"30","id":2434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3915:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2435,"name":"minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2339,"src":"3918:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2433,"name":"MinDelayChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"3900:14:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":2436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3900:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2437,"nodeType":"EmitStatement","src":"3895:32:7"}]},"documentation":{"id":2337,"nodeType":"StructuredDocumentation","src":"2336:629:7","text":" @dev Initializes the contract with a given `minDelay`, and a list of\n initial proposers and executors. The proposers receive both the\n proposer and the canceller role (for backward compatibility). The\n executors receive the executor role.\n NOTE: At construction, both the deployer and the timelock itself are\n administrators. This helps further configuration of the timelock by the\n deployer. After configuration is done, it is recommended that the\n deployer renounces its admin position and relies on timelocked\n operations to perform future maintenance."},"id":2439,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2339,"mutability":"mutable","name":"minDelay","nameLocation":"2999:8:7","nodeType":"VariableDeclaration","scope":2439,"src":"2991:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2342,"mutability":"mutable","name":"proposers","nameLocation":"3034:9:7","nodeType":"VariableDeclaration","scope":2439,"src":"3017:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2340,"name":"address","nodeType":"ElementaryTypeName","src":"3017:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2341,"nodeType":"ArrayTypeName","src":"3017:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2345,"mutability":"mutable","name":"executors","nameLocation":"3070:9:7","nodeType":"VariableDeclaration","scope":2439,"src":"3053:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2343,"name":"address","nodeType":"ElementaryTypeName","src":"3053:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2344,"nodeType":"ArrayTypeName","src":"3053:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2981:104:7"},"returnParameters":{"id":2347,"nodeType":"ParameterList","parameters":[],"src":"3086:0:7"},"scope":3154,"src":"2970:964:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2461,"nodeType":"Block","src":"4258:114:7","statements":[{"condition":{"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4272:26:7","subExpression":{"arguments":[{"id":2445,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2442,"src":"4281:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":2448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4295:1:7","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":2447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4287:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2446,"name":"address","nodeType":"ElementaryTypeName","src":"4287:7:7","typeDescriptions":{}}},"id":2449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4287:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2444,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"4273:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4273:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2459,"nodeType":"IfStatement","src":"4268:87:7","trueBody":{"id":2458,"nodeType":"Block","src":"4300:55:7","statements":[{"expression":{"arguments":[{"id":2453,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2442,"src":"4325:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2454,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"4331:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4331:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2452,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,135],"referencedDeclaration":135,"src":"4314:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4314:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2457,"nodeType":"ExpressionStatement","src":"4314:30:7"}]}},{"id":2460,"nodeType":"PlaceholderStatement","src":"4364:1:7"}]},"documentation":{"id":2440,"nodeType":"StructuredDocumentation","src":"3940:271:7","text":" @dev Modifier to make a function callable only by a certain role. In\n addition to checking the sender's role, `address(0)` 's role is also\n considered. Granting a role to `address(0)` is equivalent to enabling\n this role for everyone."},"id":2462,"name":"onlyRoleOrOpenRole","nameLocation":"4225:18:7","nodeType":"ModifierDefinition","parameters":{"id":2443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2442,"mutability":"mutable","name":"role","nameLocation":"4252:4:7","nodeType":"VariableDeclaration","scope":2462,"src":"4244:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4244:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4243:14:7"},"src":"4216:156:7","virtual":false,"visibility":"internal"},{"body":{"id":2466,"nodeType":"Block","src":"4501:2:7","statements":[]},"documentation":{"id":2463,"nodeType":"StructuredDocumentation","src":"4378:91:7","text":" @dev Contract might receive/hold ETH as part of the maintenance process."},"id":2467,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2464,"nodeType":"ParameterList","parameters":[],"src":"4481:2:7"},"returnParameters":{"id":2465,"nodeType":"ParameterList","parameters":[],"src":"4501:0:7"},"scope":3154,"src":"4474:29:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[60,9848],"body":{"id":2490,"nodeType":"Block","src":"4685:113:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2478,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2470,"src":"4702:11:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2480,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"4722:16:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$5103_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$5103_$","typeString":"type(contract IERC1155Receiver)"}],"id":2479,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4717:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4717:22:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$5103","typeString":"type(contract IERC1155Receiver)"}},"id":2482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"4717:34:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4702:49:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2486,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2470,"src":"4779:11:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":2484,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4755:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TimelockController_$3154_$","typeString":"type(contract super TimelockController)"}},"id":2485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":60,"src":"4755:23:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":2487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4755:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4702:89:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2477,"id":2489,"nodeType":"Return","src":"4695:96:7"}]},"documentation":{"id":2468,"nodeType":"StructuredDocumentation","src":"4509:56:7","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2491,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4579:17:7","nodeType":"FunctionDefinition","overrides":{"id":2474,"nodeType":"OverrideSpecifier","overrides":[{"id":2472,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"4646:7:7"},{"id":2473,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"4655:13:7"}],"src":"4637:32:7"},"parameters":{"id":2471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2470,"mutability":"mutable","name":"interfaceId","nameLocation":"4604:11:7","nodeType":"VariableDeclaration","scope":2491,"src":"4597:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2469,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4596:20:7"},"returnParameters":{"id":2477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2491,"src":"4679:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2475,"name":"bool","nodeType":"ElementaryTypeName","src":"4679:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4678:6:7"},"scope":3154,"src":"4570:228:7","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2505,"nodeType":"Block","src":"5033:44:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2500,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2494,"src":"5063:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2499,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"5050:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":2501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5050:16:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5069:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5050:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2498,"id":2504,"nodeType":"Return","src":"5043:27:7"}]},"documentation":{"id":2492,"nodeType":"StructuredDocumentation","src":"4804:145:7","text":" @dev Returns whether an id correspond to a registered operation. This\n includes both Pending, Ready and Done operations."},"functionSelector":"31d50750","id":2506,"implemented":true,"kind":"function","modifiers":[],"name":"isOperation","nameLocation":"4963:11:7","nodeType":"FunctionDefinition","parameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2494,"mutability":"mutable","name":"id","nameLocation":"4983:2:7","nodeType":"VariableDeclaration","scope":2506,"src":"4975:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4975:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4974:12:7"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"registered","nameLocation":"5021:10:7","nodeType":"VariableDeclaration","scope":2506,"src":"5016:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2496,"name":"bool","nodeType":"ElementaryTypeName","src":"5016:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5015:17:7"},"scope":3154,"src":"4954:123:7","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2520,"nodeType":"Block","src":"5242:58:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2515,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2509,"src":"5272:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2514,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"5259:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":2516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5259:16:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2517,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"5278:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5259:34:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2513,"id":2519,"nodeType":"Return","src":"5252:41:7"}]},"documentation":{"id":2507,"nodeType":"StructuredDocumentation","src":"5083:71:7","text":" @dev Returns whether an operation is pending or not."},"functionSelector":"584b153e","id":2521,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationPending","nameLocation":"5168:18:7","nodeType":"FunctionDefinition","parameters":{"id":2510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2509,"mutability":"mutable","name":"id","nameLocation":"5195:2:7","nodeType":"VariableDeclaration","scope":2521,"src":"5187:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5187:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5186:12:7"},"returnParameters":{"id":2513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2512,"mutability":"mutable","name":"pending","nameLocation":"5233:7:7","nodeType":"VariableDeclaration","scope":2521,"src":"5228:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2511,"name":"bool","nodeType":"ElementaryTypeName","src":"5228:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5227:14:7"},"scope":3154,"src":"5159:141:7","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2544,"nodeType":"Block","src":"5459:129:7","statements":[{"assignments":[2530],"declarations":[{"constant":false,"id":2530,"mutability":"mutable","name":"timestamp","nameLocation":"5477:9:7","nodeType":"VariableDeclaration","scope":2544,"src":"5469:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2529,"name":"uint256","nodeType":"ElementaryTypeName","src":"5469:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2534,"initialValue":{"arguments":[{"id":2532,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2524,"src":"5502:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2531,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"5489:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":2533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5489:16:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5469:36:7"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2535,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2530,"src":"5522:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2536,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"5534:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5522:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2538,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2530,"src":"5553:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":2539,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5566:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5566:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5553:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5522:59:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2528,"id":2543,"nodeType":"Return","src":"5515:66:7"}]},"documentation":{"id":2522,"nodeType":"StructuredDocumentation","src":"5306:69:7","text":" @dev Returns whether an operation is ready or not."},"functionSelector":"13bc9f20","id":2545,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationReady","nameLocation":"5389:16:7","nodeType":"FunctionDefinition","parameters":{"id":2525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2524,"mutability":"mutable","name":"id","nameLocation":"5414:2:7","nodeType":"VariableDeclaration","scope":2545,"src":"5406:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5406:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5405:12:7"},"returnParameters":{"id":2528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2527,"mutability":"mutable","name":"ready","nameLocation":"5452:5:7","nodeType":"VariableDeclaration","scope":2545,"src":"5447:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2526,"name":"bool","nodeType":"ElementaryTypeName","src":"5447:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5446:12:7"},"scope":3154,"src":"5380:208:7","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2559,"nodeType":"Block","src":"5744:59:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2554,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"5774:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2553,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"5761:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":2555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5761:16:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2556,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"5781:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5761:35:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2552,"id":2558,"nodeType":"Return","src":"5754:42:7"}]},"documentation":{"id":2546,"nodeType":"StructuredDocumentation","src":"5594:68:7","text":" @dev Returns whether an operation is done or not."},"functionSelector":"2ab0f529","id":2560,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationDone","nameLocation":"5676:15:7","nodeType":"FunctionDefinition","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2548,"mutability":"mutable","name":"id","nameLocation":"5700:2:7","nodeType":"VariableDeclaration","scope":2560,"src":"5692:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5692:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5691:12:7"},"returnParameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2551,"mutability":"mutable","name":"done","nameLocation":"5738:4:7","nodeType":"VariableDeclaration","scope":2560,"src":"5733:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2550,"name":"bool","nodeType":"ElementaryTypeName","src":"5733:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5732:11:7"},"scope":3154,"src":"5667:136:7","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2572,"nodeType":"Block","src":"6032:39:7","statements":[{"expression":{"baseExpression":{"id":2568,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"6049:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2570,"indexExpression":{"id":2569,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2563,"src":"6061:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6049:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2567,"id":2571,"nodeType":"Return","src":"6042:22:7"}]},"documentation":{"id":2561,"nodeType":"StructuredDocumentation","src":"5809:136:7","text":" @dev Returns the timestamp at with an operation becomes ready (0 for\n unset operations, 1 for done operations)."},"functionSelector":"d45c4435","id":2573,"implemented":true,"kind":"function","modifiers":[],"name":"getTimestamp","nameLocation":"5959:12:7","nodeType":"FunctionDefinition","parameters":{"id":2564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2563,"mutability":"mutable","name":"id","nameLocation":"5980:2:7","nodeType":"VariableDeclaration","scope":2573,"src":"5972:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5972:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5971:12:7"},"returnParameters":{"id":2567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2566,"mutability":"mutable","name":"timestamp","nameLocation":"6021:9:7","nodeType":"VariableDeclaration","scope":2573,"src":"6013:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2565,"name":"uint256","nodeType":"ElementaryTypeName","src":"6013:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6012:19:7"},"scope":3154,"src":"5950:121:7","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2581,"nodeType":"Block","src":"6327:33:7","statements":[{"expression":{"id":2579,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2294,"src":"6344:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2578,"id":2580,"nodeType":"Return","src":"6337:16:7"}]},"documentation":{"id":2574,"nodeType":"StructuredDocumentation","src":"6077:175:7","text":" @dev Returns the minimum delay for an operation to become valid.\n This value can be changed by executing an operation that calls `updateDelay`."},"functionSelector":"f27a0c92","id":2582,"implemented":true,"kind":"function","modifiers":[],"name":"getMinDelay","nameLocation":"6266:11:7","nodeType":"FunctionDefinition","parameters":{"id":2575,"nodeType":"ParameterList","parameters":[],"src":"6277:2:7"},"returnParameters":{"id":2578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2577,"mutability":"mutable","name":"duration","nameLocation":"6317:8:7","nodeType":"VariableDeclaration","scope":2582,"src":"6309:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2576,"name":"uint256","nodeType":"ElementaryTypeName","src":"6309:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6308:18:7"},"scope":3154,"src":"6257:103:7","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2609,"nodeType":"Block","src":"6672:85:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":2601,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2585,"src":"6710:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2587,"src":"6718:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2603,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2589,"src":"6725:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2604,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2591,"src":"6731:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2605,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2593,"src":"6744:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6699:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"6699:10:7","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6699:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2598,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6689:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6689:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2597,"id":2608,"nodeType":"Return","src":"6682:68:7"}]},"documentation":{"id":2583,"nodeType":"StructuredDocumentation","src":"6366:102:7","text":" @dev Returns the identifier of an operation containing a single\n transaction."},"functionSelector":"8065657f","id":2610,"implemented":true,"kind":"function","modifiers":[],"name":"hashOperation","nameLocation":"6482:13:7","nodeType":"FunctionDefinition","parameters":{"id":2594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2585,"mutability":"mutable","name":"target","nameLocation":"6513:6:7","nodeType":"VariableDeclaration","scope":2610,"src":"6505:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2584,"name":"address","nodeType":"ElementaryTypeName","src":"6505:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2587,"mutability":"mutable","name":"value","nameLocation":"6537:5:7","nodeType":"VariableDeclaration","scope":2610,"src":"6529:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2586,"name":"uint256","nodeType":"ElementaryTypeName","src":"6529:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2589,"mutability":"mutable","name":"data","nameLocation":"6567:4:7","nodeType":"VariableDeclaration","scope":2610,"src":"6552:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2588,"name":"bytes","nodeType":"ElementaryTypeName","src":"6552:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2591,"mutability":"mutable","name":"predecessor","nameLocation":"6589:11:7","nodeType":"VariableDeclaration","scope":2610,"src":"6581:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6581:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2593,"mutability":"mutable","name":"salt","nameLocation":"6618:4:7","nodeType":"VariableDeclaration","scope":2610,"src":"6610:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6610:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6495:133:7"},"returnParameters":{"id":2597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2596,"mutability":"mutable","name":"hash","nameLocation":"6666:4:7","nodeType":"VariableDeclaration","scope":2610,"src":"6658:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6658:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6657:14:7"},"scope":3154,"src":"6473:284:7","stateMutability":"pure","virtual":true,"visibility":"public"},{"body":{"id":2640,"nodeType":"Block","src":"7107:91:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":2632,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2614,"src":"7145:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":2633,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2617,"src":"7154:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":2634,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2620,"src":"7162:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":2635,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2622,"src":"7172:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2636,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2624,"src":"7185:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7134:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7134:10:7","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7134:56:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2629,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7124:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7124:67:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2628,"id":2639,"nodeType":"Return","src":"7117:74:7"}]},"documentation":{"id":2611,"nodeType":"StructuredDocumentation","src":"6763:105:7","text":" @dev Returns the identifier of an operation containing a batch of\n transactions."},"functionSelector":"b1c5f427","id":2641,"implemented":true,"kind":"function","modifiers":[],"name":"hashOperationBatch","nameLocation":"6882:18:7","nodeType":"FunctionDefinition","parameters":{"id":2625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2614,"mutability":"mutable","name":"targets","nameLocation":"6929:7:7","nodeType":"VariableDeclaration","scope":2641,"src":"6910:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2612,"name":"address","nodeType":"ElementaryTypeName","src":"6910:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2613,"nodeType":"ArrayTypeName","src":"6910:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2617,"mutability":"mutable","name":"values","nameLocation":"6965:6:7","nodeType":"VariableDeclaration","scope":2641,"src":"6946:25:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2615,"name":"uint256","nodeType":"ElementaryTypeName","src":"6946:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2616,"nodeType":"ArrayTypeName","src":"6946:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2620,"mutability":"mutable","name":"payloads","nameLocation":"6998:8:7","nodeType":"VariableDeclaration","scope":2641,"src":"6981:25:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2618,"name":"bytes","nodeType":"ElementaryTypeName","src":"6981:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2619,"nodeType":"ArrayTypeName","src":"6981:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2622,"mutability":"mutable","name":"predecessor","nameLocation":"7024:11:7","nodeType":"VariableDeclaration","scope":2641,"src":"7016:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7016:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2624,"mutability":"mutable","name":"salt","nameLocation":"7053:4:7","nodeType":"VariableDeclaration","scope":2641,"src":"7045:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7045:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6900:163:7"},"returnParameters":{"id":2628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2627,"mutability":"mutable","name":"hash","nameLocation":"7101:4:7","nodeType":"VariableDeclaration","scope":2641,"src":"7093:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7093:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7092:14:7"},"scope":3154,"src":"6873:325:7","stateMutability":"pure","virtual":true,"visibility":"public"},{"body":{"id":2685,"nodeType":"Block","src":"7631:189:7","statements":[{"assignments":[2661],"declarations":[{"constant":false,"id":2661,"mutability":"mutable","name":"id","nameLocation":"7649:2:7","nodeType":"VariableDeclaration","scope":2685,"src":"7641:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7641:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2669,"initialValue":{"arguments":[{"id":2663,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2644,"src":"7668:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2664,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2646,"src":"7676:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2665,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"7683:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2666,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"7689:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2667,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2652,"src":"7702:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2662,"name":"hashOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"7654:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":2668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7654:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7641:66:7"},{"expression":{"arguments":[{"id":2671,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"7727:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2672,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7731:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2670,"name":"_schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"7717:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":2673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7717:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2674,"nodeType":"ExpressionStatement","src":"7717:20:7"},{"eventCall":{"arguments":[{"id":2676,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"7766:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":2677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7770:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2678,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2644,"src":"7773:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2679,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2646,"src":"7781:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2680,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"7788:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2681,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"7794:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2682,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7807:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2675,"name":"CallScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2311,"src":"7752:13:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)"}},"id":2683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7752:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2684,"nodeType":"EmitStatement","src":"7747:66:7"}]},"documentation":{"id":2642,"nodeType":"StructuredDocumentation","src":"7204:209:7","text":" @dev Schedule an operation containing a single transaction.\n Emits a {CallScheduled} event.\n Requirements:\n - the caller must have the 'proposer' role."},"functionSelector":"01d5062a","id":2686,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2657,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"7616:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2658,"kind":"modifierInvocation","modifierName":{"id":2656,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"7607:8:7"},"nodeType":"ModifierInvocation","src":"7607:23:7"}],"name":"schedule","nameLocation":"7427:8:7","nodeType":"FunctionDefinition","parameters":{"id":2655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2644,"mutability":"mutable","name":"target","nameLocation":"7453:6:7","nodeType":"VariableDeclaration","scope":2686,"src":"7445:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2643,"name":"address","nodeType":"ElementaryTypeName","src":"7445:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2646,"mutability":"mutable","name":"value","nameLocation":"7477:5:7","nodeType":"VariableDeclaration","scope":2686,"src":"7469:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2645,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2648,"mutability":"mutable","name":"data","nameLocation":"7507:4:7","nodeType":"VariableDeclaration","scope":2686,"src":"7492:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2647,"name":"bytes","nodeType":"ElementaryTypeName","src":"7492:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2650,"mutability":"mutable","name":"predecessor","nameLocation":"7529:11:7","nodeType":"VariableDeclaration","scope":2686,"src":"7521:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7521:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2652,"mutability":"mutable","name":"salt","nameLocation":"7558:4:7","nodeType":"VariableDeclaration","scope":2686,"src":"7550:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7550:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2654,"mutability":"mutable","name":"delay","nameLocation":"7580:5:7","nodeType":"VariableDeclaration","scope":2686,"src":"7572:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2653,"name":"uint256","nodeType":"ElementaryTypeName","src":"7572:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7435:156:7"},"returnParameters":{"id":2659,"nodeType":"ParameterList","parameters":[],"src":"7631:0:7"},"scope":3154,"src":"7418:402:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2770,"nodeType":"Block","src":"8322:465:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2709,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"8340:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8340:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2711,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2693,"src":"8358:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":2712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8358:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8340:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":2714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8373:37:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":2708,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8332:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8332:79:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2716,"nodeType":"ExpressionStatement","src":"8332:79:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2718,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"8429:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8429:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2720,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2696,"src":"8447:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":2721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8447:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8429:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":2723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8464:37:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":2717,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8421:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8421:81:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2725,"nodeType":"ExpressionStatement","src":"8421:81:7"},{"assignments":[2727],"declarations":[{"constant":false,"id":2727,"mutability":"mutable","name":"id","nameLocation":"8521:2:7","nodeType":"VariableDeclaration","scope":2770,"src":"8513:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8513:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2735,"initialValue":{"arguments":[{"id":2729,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"8545:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":2730,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2693,"src":"8554:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":2731,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2696,"src":"8562:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":2732,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"8572:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2733,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"8585:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2728,"name":"hashOperationBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2641,"src":"8526:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":2734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8526:64:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8513:77:7"},{"expression":{"arguments":[{"id":2737,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2727,"src":"8610:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2738,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"8614:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2736,"name":"_schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"8600:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8600:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2740,"nodeType":"ExpressionStatement","src":"8600:20:7"},{"body":{"id":2768,"nodeType":"Block","src":"8675:106:7","statements":[{"eventCall":{"arguments":[{"id":2753,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2727,"src":"8708:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2754,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2742,"src":"8712:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":2755,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"8715:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2757,"indexExpression":{"id":2756,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2742,"src":"8723:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8715:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":2758,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2693,"src":"8727:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":2760,"indexExpression":{"id":2759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2742,"src":"8734:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8727:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":2761,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2696,"src":"8738:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":2763,"indexExpression":{"id":2762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2742,"src":"8747:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8738:11:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2764,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"8751:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2765,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"8764:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2752,"name":"CallScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2311,"src":"8694:13:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)"}},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8694:76:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2767,"nodeType":"EmitStatement","src":"8689:81:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2745,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2742,"src":"8650:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2746,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"8654:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8654:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8650:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2769,"initializationExpression":{"assignments":[2742],"declarations":[{"constant":false,"id":2742,"mutability":"mutable","name":"i","nameLocation":"8643:1:7","nodeType":"VariableDeclaration","scope":2769,"src":"8635:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2741,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2744,"initialValue":{"hexValue":"30","id":2743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8647:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8635:13:7"},"loopExpression":{"expression":{"id":2750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8670:3:7","subExpression":{"id":2749,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2742,"src":"8672:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2751,"nodeType":"ExpressionStatement","src":"8670:3:7"},"nodeType":"ForStatement","src":"8630:151:7"}]},"documentation":{"id":2687,"nodeType":"StructuredDocumentation","src":"7826:243:7","text":" @dev Schedule an operation containing a batch of transactions.\n Emits one {CallScheduled} event per transaction in the batch.\n Requirements:\n - the caller must have the 'proposer' role."},"functionSelector":"8f2a0bb0","id":2771,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2705,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"8307:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2706,"kind":"modifierInvocation","modifierName":{"id":2704,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"8298:8:7"},"nodeType":"ModifierInvocation","src":"8298:23:7"}],"name":"scheduleBatch","nameLocation":"8083:13:7","nodeType":"FunctionDefinition","parameters":{"id":2703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2690,"mutability":"mutable","name":"targets","nameLocation":"8125:7:7","nodeType":"VariableDeclaration","scope":2771,"src":"8106:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2688,"name":"address","nodeType":"ElementaryTypeName","src":"8106:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2689,"nodeType":"ArrayTypeName","src":"8106:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2693,"mutability":"mutable","name":"values","nameLocation":"8161:6:7","nodeType":"VariableDeclaration","scope":2771,"src":"8142:25:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2691,"name":"uint256","nodeType":"ElementaryTypeName","src":"8142:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2692,"nodeType":"ArrayTypeName","src":"8142:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2696,"mutability":"mutable","name":"payloads","nameLocation":"8194:8:7","nodeType":"VariableDeclaration","scope":2771,"src":"8177:25:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2694,"name":"bytes","nodeType":"ElementaryTypeName","src":"8177:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2695,"nodeType":"ArrayTypeName","src":"8177:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2698,"mutability":"mutable","name":"predecessor","nameLocation":"8220:11:7","nodeType":"VariableDeclaration","scope":2771,"src":"8212:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8212:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2700,"mutability":"mutable","name":"salt","nameLocation":"8249:4:7","nodeType":"VariableDeclaration","scope":2771,"src":"8241:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8241:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2702,"mutability":"mutable","name":"delay","nameLocation":"8271:5:7","nodeType":"VariableDeclaration","scope":2771,"src":"8263:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2701,"name":"uint256","nodeType":"ElementaryTypeName","src":"8263:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8096:186:7"},"returnParameters":{"id":2707,"nodeType":"ParameterList","parameters":[],"src":"8322:0:7"},"scope":3154,"src":"8074:713:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2804,"nodeType":"Block","src":"8943:227:7","statements":[{"expression":{"arguments":[{"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8961:16:7","subExpression":{"arguments":[{"id":2781,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2774,"src":"8974:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2780,"name":"isOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2506,"src":"8962:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8962:15:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c7265616479207363686564756c6564","id":2784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8979:49:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe","typeString":"literal_string \"TimelockController: operation already scheduled\""},"value":"TimelockController: operation already scheduled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe","typeString":"literal_string \"TimelockController: operation already scheduled\""}],"id":2779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8953:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8953:76:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2786,"nodeType":"ExpressionStatement","src":"8953:76:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2788,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"9047:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2789,"name":"getMinDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"9056:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9056:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9047:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e742064656c6179","id":2792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9071:40:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca","typeString":"literal_string \"TimelockController: insufficient delay\""},"value":"TimelockController: insufficient delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca","typeString":"literal_string \"TimelockController: insufficient delay\""}],"id":2787,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9039:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9039:73:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2794,"nodeType":"ExpressionStatement","src":"9039:73:7"},{"expression":{"id":2802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2795,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"9122:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2797,"indexExpression":{"id":2796,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2774,"src":"9134:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9122:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2798,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9140:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9140:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2800,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"9158:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9140:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9122:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2803,"nodeType":"ExpressionStatement","src":"9122:41:7"}]},"documentation":{"id":2772,"nodeType":"StructuredDocumentation","src":"8793:91:7","text":" @dev Schedule an operation that is to becomes valid after a given delay."},"id":2805,"implemented":true,"kind":"function","modifiers":[],"name":"_schedule","nameLocation":"8898:9:7","nodeType":"FunctionDefinition","parameters":{"id":2777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2774,"mutability":"mutable","name":"id","nameLocation":"8916:2:7","nodeType":"VariableDeclaration","scope":2805,"src":"8908:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2773,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8908:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2776,"mutability":"mutable","name":"delay","nameLocation":"8928:5:7","nodeType":"VariableDeclaration","scope":2805,"src":"8920:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2775,"name":"uint256","nodeType":"ElementaryTypeName","src":"8920:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8907:27:7"},"returnParameters":{"id":2778,"nodeType":"ParameterList","parameters":[],"src":"8943:0:7"},"scope":3154,"src":"8889:281:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2830,"nodeType":"Block","src":"9380:162:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":2816,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2808,"src":"9417:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2815,"name":"isOperationPending","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2521,"src":"9398:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":2817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9398:22:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616e6e6f742062652063616e63656c6c6564","id":2818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9422:51:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41","typeString":"literal_string \"TimelockController: operation cannot be cancelled\""},"value":"TimelockController: operation cannot be cancelled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41","typeString":"literal_string \"TimelockController: operation cannot be cancelled\""}],"id":2814,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9390:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9390:84:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2820,"nodeType":"ExpressionStatement","src":"9390:84:7"},{"expression":{"id":2824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9484:22:7","subExpression":{"baseExpression":{"id":2821,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"9491:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2823,"indexExpression":{"id":2822,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2808,"src":"9503:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9491:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2825,"nodeType":"ExpressionStatement","src":"9484:22:7"},{"eventCall":{"arguments":[{"id":2827,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2808,"src":"9532:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2826,"name":"Cancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"9522:9:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":2828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9522:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2829,"nodeType":"EmitStatement","src":"9517:18:7"}]},"documentation":{"id":2806,"nodeType":"StructuredDocumentation","src":"9176:131:7","text":" @dev Cancel an operation.\n Requirements:\n - the caller must have the 'canceller' role."},"functionSelector":"c4d252f5","id":2831,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2811,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2282,"src":"9364:14:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2812,"kind":"modifierInvocation","modifierName":{"id":2810,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"9355:8:7"},"nodeType":"ModifierInvocation","src":"9355:24:7"}],"name":"cancel","nameLocation":"9321:6:7","nodeType":"FunctionDefinition","parameters":{"id":2809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2808,"mutability":"mutable","name":"id","nameLocation":"9336:2:7","nodeType":"VariableDeclaration","scope":2831,"src":"9328:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9328:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9327:12:7"},"returnParameters":{"id":2813,"nodeType":"ParameterList","parameters":[],"src":"9380:0:7"},"scope":3154,"src":"9312:230:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2881,"nodeType":"Block","src":"10226:249:7","statements":[{"assignments":[2849],"declarations":[{"constant":false,"id":2849,"mutability":"mutable","name":"id","nameLocation":"10244:2:7","nodeType":"VariableDeclaration","scope":2881,"src":"10236:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10236:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2857,"initialValue":{"arguments":[{"id":2851,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2834,"src":"10263:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2852,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2836,"src":"10271:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2853,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"10278:7:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2854,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2840,"src":"10287:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2855,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"10300:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2850,"name":"hashOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"10249:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10249:56:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10236:69:7"},{"expression":{"arguments":[{"id":2859,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2849,"src":"10328:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2860,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2840,"src":"10332:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2858,"name":"_beforeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3040,"src":"10316:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) view"}},"id":2861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10316:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2862,"nodeType":"ExpressionStatement","src":"10316:28:7"},{"expression":{"arguments":[{"id":2864,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2834,"src":"10363:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2836,"src":"10371:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2866,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"10378:7:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2863,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"10354:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":2867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10354:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2868,"nodeType":"ExpressionStatement","src":"10354:32:7"},{"eventCall":{"arguments":[{"id":2870,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2849,"src":"10414:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":2871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10418:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2872,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2834,"src":"10421:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2873,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2836,"src":"10429:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2874,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"10436:7:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2869,"name":"CallExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"10401:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory)"}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10401:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2876,"nodeType":"EmitStatement","src":"10396:48:7"},{"expression":{"arguments":[{"id":2878,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2849,"src":"10465:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2877,"name":"_afterCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3060,"src":"10454:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":2879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10454:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2880,"nodeType":"ExpressionStatement","src":"10454:14:7"}]},"documentation":{"id":2832,"nodeType":"StructuredDocumentation","src":"9548:215:7","text":" @dev Execute an (ready) operation containing a single transaction.\n Emits a {CallExecuted} event.\n Requirements:\n - the caller must have the 'executor' role."},"functionSelector":"134008d3","id":2882,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2845,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"10211:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2846,"kind":"modifierInvocation","modifierName":{"id":2844,"name":"onlyRoleOrOpenRole","nodeType":"IdentifierPath","referencedDeclaration":2462,"src":"10192:18:7"},"nodeType":"ModifierInvocation","src":"10192:33:7"}],"name":"execute","nameLocation":"10025:7:7","nodeType":"FunctionDefinition","parameters":{"id":2843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2834,"mutability":"mutable","name":"target","nameLocation":"10050:6:7","nodeType":"VariableDeclaration","scope":2882,"src":"10042:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2833,"name":"address","nodeType":"ElementaryTypeName","src":"10042:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2836,"mutability":"mutable","name":"value","nameLocation":"10074:5:7","nodeType":"VariableDeclaration","scope":2882,"src":"10066:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2835,"name":"uint256","nodeType":"ElementaryTypeName","src":"10066:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2838,"mutability":"mutable","name":"payload","nameLocation":"10104:7:7","nodeType":"VariableDeclaration","scope":2882,"src":"10089:22:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2837,"name":"bytes","nodeType":"ElementaryTypeName","src":"10089:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2840,"mutability":"mutable","name":"predecessor","nameLocation":"10129:11:7","nodeType":"VariableDeclaration","scope":2882,"src":"10121:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10121:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2842,"mutability":"mutable","name":"salt","nameLocation":"10158:4:7","nodeType":"VariableDeclaration","scope":2882,"src":"10150:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10150:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10032:136:7"},"returnParameters":{"id":2847,"nodeType":"ParameterList","parameters":[],"src":"10226:0:7"},"scope":3154,"src":"10016:459:7","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":2984,"nodeType":"Block","src":"10977:641:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2903,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2886,"src":"10995:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10995:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2905,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2889,"src":"11013:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":2906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11013:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10995:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":2908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11028:37:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":2902,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10987:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10987:79:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2910,"nodeType":"ExpressionStatement","src":"10987:79:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2912,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2886,"src":"11084:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11084:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2914,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"11102:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11102:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11084:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":2917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11119:37:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":2911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11076:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11076:81:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2919,"nodeType":"ExpressionStatement","src":"11076:81:7"},{"assignments":[2921],"declarations":[{"constant":false,"id":2921,"mutability":"mutable","name":"id","nameLocation":"11176:2:7","nodeType":"VariableDeclaration","scope":2984,"src":"11168:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11168:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2929,"initialValue":{"arguments":[{"id":2923,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2886,"src":"11200:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":2924,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2889,"src":"11209:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":2925,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"11217:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":2926,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2894,"src":"11227:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2927,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"11240:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2922,"name":"hashOperationBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2641,"src":"11181:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11181:64:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11168:77:7"},{"expression":{"arguments":[{"id":2931,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2921,"src":"11268:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2932,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2894,"src":"11272:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2930,"name":"_beforeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3040,"src":"11256:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) view"}},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11256:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2934,"nodeType":"ExpressionStatement","src":"11256:28:7"},{"body":{"id":2978,"nodeType":"Block","src":"11339:249:7","statements":[{"assignments":[2947],"declarations":[{"constant":false,"id":2947,"mutability":"mutable","name":"target","nameLocation":"11361:6:7","nodeType":"VariableDeclaration","scope":2978,"src":"11353:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2946,"name":"address","nodeType":"ElementaryTypeName","src":"11353:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2951,"initialValue":{"baseExpression":{"id":2948,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2886,"src":"11370:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2950,"indexExpression":{"id":2949,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"11378:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11370:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11353:27:7"},{"assignments":[2953],"declarations":[{"constant":false,"id":2953,"mutability":"mutable","name":"value","nameLocation":"11402:5:7","nodeType":"VariableDeclaration","scope":2978,"src":"11394:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2952,"name":"uint256","nodeType":"ElementaryTypeName","src":"11394:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2957,"initialValue":{"baseExpression":{"id":2954,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2889,"src":"11410:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":2956,"indexExpression":{"id":2955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"11417:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11410:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11394:25:7"},{"assignments":[2959],"declarations":[{"constant":false,"id":2959,"mutability":"mutable","name":"payload","nameLocation":"11448:7:7","nodeType":"VariableDeclaration","scope":2978,"src":"11433:22:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2958,"name":"bytes","nodeType":"ElementaryTypeName","src":"11433:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2963,"initialValue":{"baseExpression":{"id":2960,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"11458:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":2962,"indexExpression":{"id":2961,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"11467:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11458:11:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11433:36:7"},{"expression":{"arguments":[{"id":2965,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2947,"src":"11492:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2966,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"11500:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2967,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"11507:7:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2964,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"11483:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11483:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2969,"nodeType":"ExpressionStatement","src":"11483:32:7"},{"eventCall":{"arguments":[{"id":2971,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2921,"src":"11547:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2972,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"11551:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2973,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2947,"src":"11554:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2974,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"11562:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2975,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"11569:7:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2970,"name":"CallExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"11534:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory)"}},"id":2976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11534:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2977,"nodeType":"EmitStatement","src":"11529:48:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2939,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"11314:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2940,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2886,"src":"11318:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11318:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11314:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2979,"initializationExpression":{"assignments":[2936],"declarations":[{"constant":false,"id":2936,"mutability":"mutable","name":"i","nameLocation":"11307:1:7","nodeType":"VariableDeclaration","scope":2979,"src":"11299:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2935,"name":"uint256","nodeType":"ElementaryTypeName","src":"11299:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2938,"initialValue":{"hexValue":"30","id":2937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11311:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11299:13:7"},"loopExpression":{"expression":{"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11334:3:7","subExpression":{"id":2943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"11336:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2945,"nodeType":"ExpressionStatement","src":"11334:3:7"},"nodeType":"ForStatement","src":"11294:294:7"},{"expression":{"arguments":[{"id":2981,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2921,"src":"11608:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2980,"name":"_afterCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3060,"src":"11597:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":2982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11597:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2983,"nodeType":"ExpressionStatement","src":"11597:14:7"}]},"documentation":{"id":2883,"nodeType":"StructuredDocumentation","src":"10481:249:7","text":" @dev Execute an (ready) operation containing a batch of transactions.\n Emits one {CallExecuted} event per transaction in the batch.\n Requirements:\n - the caller must have the 'executor' role."},"functionSelector":"e38335e5","id":2985,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2899,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"10962:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2900,"kind":"modifierInvocation","modifierName":{"id":2898,"name":"onlyRoleOrOpenRole","nodeType":"IdentifierPath","referencedDeclaration":2462,"src":"10943:18:7"},"nodeType":"ModifierInvocation","src":"10943:33:7"}],"name":"executeBatch","nameLocation":"10744:12:7","nodeType":"FunctionDefinition","parameters":{"id":2897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2886,"mutability":"mutable","name":"targets","nameLocation":"10785:7:7","nodeType":"VariableDeclaration","scope":2985,"src":"10766:26:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2884,"name":"address","nodeType":"ElementaryTypeName","src":"10766:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2885,"nodeType":"ArrayTypeName","src":"10766:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2889,"mutability":"mutable","name":"values","nameLocation":"10821:6:7","nodeType":"VariableDeclaration","scope":2985,"src":"10802:25:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2887,"name":"uint256","nodeType":"ElementaryTypeName","src":"10802:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2888,"nodeType":"ArrayTypeName","src":"10802:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2892,"mutability":"mutable","name":"payloads","nameLocation":"10854:8:7","nodeType":"VariableDeclaration","scope":2985,"src":"10837:25:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2890,"name":"bytes","nodeType":"ElementaryTypeName","src":"10837:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2891,"nodeType":"ArrayTypeName","src":"10837:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2894,"mutability":"mutable","name":"predecessor","nameLocation":"10880:11:7","nodeType":"VariableDeclaration","scope":2985,"src":"10872:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10872:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2896,"mutability":"mutable","name":"salt","nameLocation":"10909:4:7","nodeType":"VariableDeclaration","scope":2985,"src":"10901:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10901:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10756:163:7"},"returnParameters":{"id":2901,"nodeType":"ParameterList","parameters":[],"src":"10977:0:7"},"scope":3154,"src":"10735:883:7","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":3009,"nodeType":"Block","src":"11798:148:7","statements":[{"assignments":[2996,null],"declarations":[{"constant":false,"id":2996,"mutability":"mutable","name":"success","nameLocation":"11814:7:7","nodeType":"VariableDeclaration","scope":3009,"src":"11809:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2995,"name":"bool","nodeType":"ElementaryTypeName","src":"11809:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":3003,"initialValue":{"arguments":[{"id":3001,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11853:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":2997,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"11827:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"11827: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":3000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2999,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2990,"src":"11846:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"11827: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":3002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11827:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11808:50:7"},{"expression":{"arguments":[{"id":3005,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2996,"src":"11876:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e67207472616e73616374696f6e207265766572746564","id":3006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11885:53:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf","typeString":"literal_string \"TimelockController: underlying transaction reverted\""},"value":"TimelockController: underlying transaction reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf","typeString":"literal_string \"TimelockController: underlying transaction reverted\""}],"id":3004,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11868:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11868:71:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3008,"nodeType":"ExpressionStatement","src":"11868:71:7"}]},"documentation":{"id":2986,"nodeType":"StructuredDocumentation","src":"11624:52:7","text":" @dev Execute an operation's call."},"id":3010,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"11690:8:7","nodeType":"FunctionDefinition","parameters":{"id":2993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2988,"mutability":"mutable","name":"target","nameLocation":"11716:6:7","nodeType":"VariableDeclaration","scope":3010,"src":"11708:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2987,"name":"address","nodeType":"ElementaryTypeName","src":"11708:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2990,"mutability":"mutable","name":"value","nameLocation":"11740:5:7","nodeType":"VariableDeclaration","scope":3010,"src":"11732:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2989,"name":"uint256","nodeType":"ElementaryTypeName","src":"11732:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2992,"mutability":"mutable","name":"data","nameLocation":"11770:4:7","nodeType":"VariableDeclaration","scope":3010,"src":"11755:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2991,"name":"bytes","nodeType":"ElementaryTypeName","src":"11755:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11698:82:7"},"returnParameters":{"id":2994,"nodeType":"ParameterList","parameters":[],"src":"11798:0:7"},"scope":3154,"src":"11681:265:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3039,"nodeType":"Block","src":"12096:210:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":3020,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"12131:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3019,"name":"isOperationReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"12114:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":3021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12114:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973206e6f74207265616479","id":3022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12136:44:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""},"value":"TimelockController: operation is not ready"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""}],"id":3018,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12106:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12106:75:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3024,"nodeType":"ExpressionStatement","src":"12106:75:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3026,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"12199:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12222:1:7","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":3028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12214:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12214:7:7","typeDescriptions":{}}},"id":3030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12214:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12199:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3033,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"12244:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3032,"name":"isOperationDone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2560,"src":"12228:15:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12228:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12199:57:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656e64656e6379","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12258:40:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111","typeString":"literal_string \"TimelockController: missing dependency\""},"value":"TimelockController: missing dependency"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111","typeString":"literal_string \"TimelockController: missing dependency\""}],"id":3025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12191:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12191:108:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3038,"nodeType":"ExpressionStatement","src":"12191:108:7"}]},"documentation":{"id":3011,"nodeType":"StructuredDocumentation","src":"11952:72:7","text":" @dev Checks before execution of an operation's calls."},"id":3040,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeCall","nameLocation":"12038:11:7","nodeType":"FunctionDefinition","parameters":{"id":3016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3013,"mutability":"mutable","name":"id","nameLocation":"12058:2:7","nodeType":"VariableDeclaration","scope":3040,"src":"12050:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12050:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3015,"mutability":"mutable","name":"predecessor","nameLocation":"12070:11:7","nodeType":"VariableDeclaration","scope":3040,"src":"12062:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12062:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12049:33:7"},"returnParameters":{"id":3017,"nodeType":"ParameterList","parameters":[],"src":"12096:0:7"},"scope":3154,"src":"12029:277:7","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3059,"nodeType":"Block","src":"12428:135:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":3048,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"12463:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3047,"name":"isOperationReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"12446:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12446:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973206e6f74207265616479","id":3050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12468:44:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""},"value":"TimelockController: operation is not ready"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""}],"id":3046,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12438:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12438:75:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3052,"nodeType":"ExpressionStatement","src":"12438:75:7"},{"expression":{"id":3057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3053,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"12523:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3055,"indexExpression":{"id":3054,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"12535:2:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12523:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3056,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"12541:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12523:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3058,"nodeType":"ExpressionStatement","src":"12523:33:7"}]},"documentation":{"id":3041,"nodeType":"StructuredDocumentation","src":"12312:71:7","text":" @dev Checks after execution of an operation's calls."},"id":3060,"implemented":true,"kind":"function","modifiers":[],"name":"_afterCall","nameLocation":"12397:10:7","nodeType":"FunctionDefinition","parameters":{"id":3044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3043,"mutability":"mutable","name":"id","nameLocation":"12416:2:7","nodeType":"VariableDeclaration","scope":3060,"src":"12408:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12408:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12407:12:7"},"returnParameters":{"id":3045,"nodeType":"ParameterList","parameters":[],"src":"12428:0:7"},"scope":3154,"src":"12388:175:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3086,"nodeType":"Block","src":"13012:180:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3067,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13030:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13030:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":3071,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13052:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":3070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13044:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3069,"name":"address","nodeType":"ElementaryTypeName","src":"13044:7:7","typeDescriptions":{}}},"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13044:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13030:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742062652074696d656c6f636b","id":3074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13059:45:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df","typeString":"literal_string \"TimelockController: caller must be timelock\""},"value":"TimelockController: caller must be timelock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df","typeString":"literal_string \"TimelockController: caller must be timelock\""}],"id":3066,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13022:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13022:83:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3076,"nodeType":"ExpressionStatement","src":"13022:83:7"},{"eventCall":{"arguments":[{"id":3078,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2294,"src":"13135:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3079,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3063,"src":"13146:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3077,"name":"MinDelayChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"13120:14:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13120:35:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3081,"nodeType":"EmitStatement","src":"13115:40:7"},{"expression":{"id":3084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3082,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2294,"src":"13165:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3083,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3063,"src":"13177:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13165:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3085,"nodeType":"ExpressionStatement","src":"13165:20:7"}]},"documentation":{"id":3061,"nodeType":"StructuredDocumentation","src":"12569:382:7","text":" @dev Changes the minimum timelock duration for future operations.\n Emits a {MinDelayChange} event.\n Requirements:\n - the caller must be the timelock itself. This can only be achieved by scheduling and later executing\n an operation where the timelock is the target and the data is the ABI-encoded call to this function."},"functionSelector":"64d62353","id":3087,"implemented":true,"kind":"function","modifiers":[],"name":"updateDelay","nameLocation":"12965:11:7","nodeType":"FunctionDefinition","parameters":{"id":3064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3063,"mutability":"mutable","name":"newDelay","nameLocation":"12985:8:7","nodeType":"VariableDeclaration","scope":3087,"src":"12977:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3062,"name":"uint256","nodeType":"ElementaryTypeName","src":"12977:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12976:18:7"},"returnParameters":{"id":3065,"nodeType":"ParameterList","parameters":[],"src":"13012:0:7"},"scope":3154,"src":"12956:236:7","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[7109],"body":{"id":3106,"nodeType":"Block","src":"13412:54:7","statements":[{"expression":{"expression":{"expression":{"id":3102,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13429:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":3107,"src":"13429:21:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":3104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"13429:30:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":3101,"id":3105,"nodeType":"Return","src":"13422:37:7"}]},"documentation":{"id":3088,"nodeType":"StructuredDocumentation","src":"13198:63:7","text":" @dev See {IERC721Receiver-onERC721Received}."},"functionSelector":"150b7a02","id":3107,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"13275:16:7","nodeType":"FunctionDefinition","overrides":{"id":3098,"nodeType":"OverrideSpecifier","overrides":[],"src":"13386:8:7"},"parameters":{"id":3097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3107,"src":"13301:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3089,"name":"address","nodeType":"ElementaryTypeName","src":"13301:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3107,"src":"13318:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3091,"name":"address","nodeType":"ElementaryTypeName","src":"13318:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3107,"src":"13335:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3093,"name":"uint256","nodeType":"ElementaryTypeName","src":"13335:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3107,"src":"13352:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3095,"name":"bytes","nodeType":"ElementaryTypeName","src":"13352:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13291:79:7"},"returnParameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3107,"src":"13404:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3099,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13404:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13403:8:7"},"scope":3154,"src":"13266:200:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5084],"body":{"id":3128,"nodeType":"Block","src":"13706:55:7","statements":[{"expression":{"expression":{"expression":{"id":3124,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13723:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":3129,"src":"13723:22:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":3126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"13723:31:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":3123,"id":3127,"nodeType":"Return","src":"13716:38:7"}]},"documentation":{"id":3108,"nodeType":"StructuredDocumentation","src":"13472:65:7","text":" @dev See {IERC1155Receiver-onERC1155Received}."},"functionSelector":"f23a6e61","id":3129,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"13551:17:7","nodeType":"FunctionDefinition","overrides":{"id":3120,"nodeType":"OverrideSpecifier","overrides":[],"src":"13680:8:7"},"parameters":{"id":3119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3129,"src":"13578:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3109,"name":"address","nodeType":"ElementaryTypeName","src":"13578:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3129,"src":"13595:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3111,"name":"address","nodeType":"ElementaryTypeName","src":"13595:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3129,"src":"13612:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3113,"name":"uint256","nodeType":"ElementaryTypeName","src":"13612:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3129,"src":"13629:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3115,"name":"uint256","nodeType":"ElementaryTypeName","src":"13629:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3129,"src":"13646:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3117,"name":"bytes","nodeType":"ElementaryTypeName","src":"13646:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13568:96:7"},"returnParameters":{"id":3123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3129,"src":"13698:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3121,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13698:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13697:8:7"},"scope":3154,"src":"13542:219:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5102],"body":{"id":3152,"nodeType":"Block","src":"14029:60:7","statements":[{"expression":{"expression":{"expression":{"id":3148,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14046:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":3153,"src":"14046:27:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":3150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"14046:36:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":3147,"id":3151,"nodeType":"Return","src":"14039:43:7"}]},"documentation":{"id":3130,"nodeType":"StructuredDocumentation","src":"13767:70:7","text":" @dev See {IERC1155Receiver-onERC1155BatchReceived}."},"functionSelector":"bc197c81","id":3153,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"13851:22:7","nodeType":"FunctionDefinition","overrides":{"id":3144,"nodeType":"OverrideSpecifier","overrides":[],"src":"14003:8:7"},"parameters":{"id":3143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"13883:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3131,"name":"address","nodeType":"ElementaryTypeName","src":"13883:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3134,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"13900:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3133,"name":"address","nodeType":"ElementaryTypeName","src":"13900:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"13917:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3135,"name":"uint256","nodeType":"ElementaryTypeName","src":"13917:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3136,"nodeType":"ArrayTypeName","src":"13917:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"13943:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3138,"name":"uint256","nodeType":"ElementaryTypeName","src":"13943:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3139,"nodeType":"ArrayTypeName","src":"13943:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"13969:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3141,"name":"bytes","nodeType":"ElementaryTypeName","src":"13969:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13873:114:7"},"returnParameters":{"id":3147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"14021:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3145,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14021:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14020:8:7"},"scope":3154,"src":"13842:247:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":3155,"src":"1030:13061:7","usedErrors":[]}],"src":"117:13975:7"},"id":7},"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"DoubleEndedQueue":[12857],"ECDSA":[9157],"EIP712":[9813],"ERC165":[9837],"Governor":[1952],"GovernorCountingSimple":[3380],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"IGovernor":[2249],"SafeCast":[12204],"Strings":[8555],"Timers":[8769]},"id":3381,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3156,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"132:23:8"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":3157,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3381,"sourceUnit":1953,"src":"157:25:8","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3159,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"336:8:8"},"id":3160,"nodeType":"InheritanceSpecifier","src":"336:8:8"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":3158,"nodeType":"StructuredDocumentation","src":"184:107:8","text":" @dev Extension of {Governor} for simple, 3 options, vote counting.\n _Available since v4.3._"},"fullyImplemented":false,"id":3380,"linearizedBaseContracts":[3380,1952,5103,7110,2249,9813,9837,9849,8255],"name":"GovernorCountingSimple","nameLocation":"310:22:8","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GovernorCountingSimple.VoteType","id":3164,"members":[{"id":3161,"name":"Against","nameLocation":"458:7:8","nodeType":"EnumValue","src":"458:7:8"},{"id":3162,"name":"For","nameLocation":"475:3:8","nodeType":"EnumValue","src":"475:3:8"},{"id":3163,"name":"Abstain","nameLocation":"488:7:8","nodeType":"EnumValue","src":"488:7:8"}],"name":"VoteType","nameLocation":"439:8:8","nodeType":"EnumDefinition","src":"434:67:8"},{"canonicalName":"GovernorCountingSimple.ProposalVote","id":3175,"members":[{"constant":false,"id":3166,"mutability":"mutable","name":"againstVotes","nameLocation":"545:12:8","nodeType":"VariableDeclaration","scope":3175,"src":"537:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3165,"name":"uint256","nodeType":"ElementaryTypeName","src":"537:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3168,"mutability":"mutable","name":"forVotes","nameLocation":"575:8:8","nodeType":"VariableDeclaration","scope":3175,"src":"567:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3167,"name":"uint256","nodeType":"ElementaryTypeName","src":"567:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3170,"mutability":"mutable","name":"abstainVotes","nameLocation":"601:12:8","nodeType":"VariableDeclaration","scope":3175,"src":"593:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3169,"name":"uint256","nodeType":"ElementaryTypeName","src":"593:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3174,"mutability":"mutable","name":"hasVoted","nameLocation":"648:8:8","nodeType":"VariableDeclaration","scope":3175,"src":"623:33:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":3173,"keyType":{"id":3171,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"623:24:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":3172,"name":"bool","nodeType":"ElementaryTypeName","src":"642:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"}],"name":"ProposalVote","nameLocation":"514:12:8","nodeType":"StructDefinition","scope":3380,"src":"507:156:8","visibility":"public"},{"constant":false,"id":3180,"mutability":"mutable","name":"_proposalVotes","nameLocation":"710:14:8","nodeType":"VariableDeclaration","scope":3380,"src":"669:55:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$3175_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote)"},"typeName":{"id":3179,"keyType":{"id":3176,"name":"uint256","nodeType":"ElementaryTypeName","src":"677:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"669:32:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$3175_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote)"},"valueType":{"id":3178,"nodeType":"UserDefinedTypeName","pathNode":{"id":3177,"name":"ProposalVote","nodeType":"IdentifierPath","referencedDeclaration":3175,"src":"688:12:8"},"referencedDeclaration":3175,"src":"688:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}}},"visibility":"private"},{"baseFunctions":[2048],"body":{"id":3189,"nodeType":"Block","src":"921:58:8","statements":[{"expression":{"hexValue":"737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e","id":3187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"938:34:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3816e28b29b48b8e7bf93291116c21473ef28186248d173042d1986430466e1","typeString":"literal_string \"support=bravo&quorum=for,abstain\""},"value":"support=bravo&quorum=for,abstain"},"functionReturnParameters":3186,"id":3188,"nodeType":"Return","src":"931:41:8"}]},"documentation":{"id":3181,"nodeType":"StructuredDocumentation","src":"731:54:8","text":" @dev See {IGovernor-COUNTING_MODE}."},"functionSelector":"dd4e2ba5","id":3190,"implemented":true,"kind":"function","modifiers":[],"name":"COUNTING_MODE","nameLocation":"852:13:8","nodeType":"FunctionDefinition","overrides":{"id":3183,"nodeType":"OverrideSpecifier","overrides":[],"src":"888:8:8"},"parameters":{"id":3182,"nodeType":"ParameterList","parameters":[],"src":"865:2:8"},"returnParameters":{"id":3186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3190,"src":"906:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3184,"name":"string","nodeType":"ElementaryTypeName","src":"906:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"905:15:8"},"scope":3380,"src":"843:136:8","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[2142],"body":{"id":3208,"nodeType":"Block","src":"1138:68:8","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":3201,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"1155:14:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$3175_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":3203,"indexExpression":{"id":3202,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"1170:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1155:26:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"id":3204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":3174,"src":"1155:35:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3206,"indexExpression":{"id":3205,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"1191:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1155:44:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3200,"id":3207,"nodeType":"Return","src":"1148:51:8"}]},"documentation":{"id":3191,"nodeType":"StructuredDocumentation","src":"985:49:8","text":" @dev See {IGovernor-hasVoted}."},"functionSelector":"43859632","id":3209,"implemented":true,"kind":"function","modifiers":[],"name":"hasVoted","nameLocation":"1048:8:8","nodeType":"FunctionDefinition","overrides":{"id":3197,"nodeType":"OverrideSpecifier","overrides":[],"src":"1114:8:8"},"parameters":{"id":3196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3193,"mutability":"mutable","name":"proposalId","nameLocation":"1065:10:8","nodeType":"VariableDeclaration","scope":3209,"src":"1057:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3192,"name":"uint256","nodeType":"ElementaryTypeName","src":"1057:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3195,"mutability":"mutable","name":"account","nameLocation":"1085:7:8","nodeType":"VariableDeclaration","scope":3209,"src":"1077:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3194,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1056:37:8"},"returnParameters":{"id":3200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3199,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3209,"src":"1132:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3198,"name":"bool","nodeType":"ElementaryTypeName","src":"1132:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1131:6:8"},"scope":3380,"src":"1039:167:8","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3236,"nodeType":"Block","src":"1494:173:8","statements":[{"assignments":[3223],"declarations":[{"constant":false,"id":3223,"mutability":"mutable","name":"proposalvote","nameLocation":"1525:12:8","nodeType":"VariableDeclaration","scope":3236,"src":"1504:33:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":3222,"nodeType":"UserDefinedTypeName","pathNode":{"id":3221,"name":"ProposalVote","nodeType":"IdentifierPath","referencedDeclaration":3175,"src":"1504:12:8"},"referencedDeclaration":3175,"src":"1504:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":3227,"initialValue":{"baseExpression":{"id":3224,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"1540:14:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$3175_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":3226,"indexExpression":{"id":3225,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"1555:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1540:26:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1504:62:8"},{"expression":{"components":[{"expression":{"id":3228,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3223,"src":"1584:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":3166,"src":"1584:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3230,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3223,"src":"1611:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":3168,"src":"1611:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3232,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3223,"src":"1634:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":3170,"src":"1634:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3234,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1583:77:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":3220,"id":3235,"nodeType":"Return","src":"1576:84:8"}]},"documentation":{"id":3210,"nodeType":"StructuredDocumentation","src":"1212:61:8","text":" @dev Accessor to the internal vote counts."},"functionSelector":"544ffc9c","id":3237,"implemented":true,"kind":"function","modifiers":[],"name":"proposalVotes","nameLocation":"1287:13:8","nodeType":"FunctionDefinition","parameters":{"id":3213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"proposalId","nameLocation":"1309:10:8","nodeType":"VariableDeclaration","scope":3237,"src":"1301:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1300:20:8"},"returnParameters":{"id":3220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3215,"mutability":"mutable","name":"againstVotes","nameLocation":"1403:12:8","nodeType":"VariableDeclaration","scope":3237,"src":"1395:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3214,"name":"uint256","nodeType":"ElementaryTypeName","src":"1395:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3217,"mutability":"mutable","name":"forVotes","nameLocation":"1437:8:8","nodeType":"VariableDeclaration","scope":3237,"src":"1429:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1429:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3219,"mutability":"mutable","name":"abstainVotes","nameLocation":"1467:12:8","nodeType":"VariableDeclaration","scope":3237,"src":"1459:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3218,"name":"uint256","nodeType":"ElementaryTypeName","src":"1459:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1381:108:8"},"scope":3380,"src":"1278:389:8","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1032],"body":{"id":3265,"nodeType":"Block","src":"1822:186:8","statements":[{"assignments":[3248],"declarations":[{"constant":false,"id":3248,"mutability":"mutable","name":"proposalvote","nameLocation":"1853:12:8","nodeType":"VariableDeclaration","scope":3265,"src":"1832:33:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":3247,"nodeType":"UserDefinedTypeName","pathNode":{"id":3246,"name":"ProposalVote","nodeType":"IdentifierPath","referencedDeclaration":3175,"src":"1832:12:8"},"referencedDeclaration":3175,"src":"1832:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":3252,"initialValue":{"baseExpression":{"id":3249,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"1868:14:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$3175_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":3251,"indexExpression":{"id":3250,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3240,"src":"1883:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1868:26:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1832:62:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":3255,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3240,"src":"1936:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3254,"name":"proposalSnapshot","nodeType":"Identifier","overloadedDeclarations":[998],"referencedDeclaration":998,"src":"1919:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":3256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1919:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3253,"name":"quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1912:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1912:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3258,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"1952:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":3168,"src":"1952:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":3260,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"1976:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":3170,"src":"1976:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1952:49:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1912:89:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3245,"id":3264,"nodeType":"Return","src":"1905:96:8"}]},"documentation":{"id":3238,"nodeType":"StructuredDocumentation","src":"1673:54:8","text":" @dev See {Governor-_quorumReached}."},"id":3266,"implemented":true,"kind":"function","modifiers":[],"name":"_quorumReached","nameLocation":"1741:14:8","nodeType":"FunctionDefinition","overrides":{"id":3242,"nodeType":"OverrideSpecifier","overrides":[],"src":"1798:8:8"},"parameters":{"id":3241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3240,"mutability":"mutable","name":"proposalId","nameLocation":"1764:10:8","nodeType":"VariableDeclaration","scope":3266,"src":"1756:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1756:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1755:20:8"},"returnParameters":{"id":3245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3266,"src":"1816:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3243,"name":"bool","nodeType":"ElementaryTypeName","src":"1816:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1815:6:8"},"scope":3380,"src":"1732:276:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1040],"body":{"id":3288,"nodeType":"Block","src":"2232:146:8","statements":[{"assignments":[3277],"declarations":[{"constant":false,"id":3277,"mutability":"mutable","name":"proposalvote","nameLocation":"2263:12:8","nodeType":"VariableDeclaration","scope":3288,"src":"2242:33:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":3276,"nodeType":"UserDefinedTypeName","pathNode":{"id":3275,"name":"ProposalVote","nodeType":"IdentifierPath","referencedDeclaration":3175,"src":"2242:12:8"},"referencedDeclaration":3175,"src":"2242:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":3281,"initialValue":{"baseExpression":{"id":3278,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"2278:14:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$3175_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":3280,"indexExpression":{"id":3279,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"2293:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2278:26:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2242:62:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3282,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3277,"src":"2322:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":3168,"src":"2322:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":3284,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3277,"src":"2346:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":3166,"src":"2346:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2322:49:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3274,"id":3287,"nodeType":"Return","src":"2315:56:8"}]},"documentation":{"id":3267,"nodeType":"StructuredDocumentation","src":"2014:123:8","text":" @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes."},"id":3289,"implemented":true,"kind":"function","modifiers":[],"name":"_voteSucceeded","nameLocation":"2151:14:8","nodeType":"FunctionDefinition","overrides":{"id":3271,"nodeType":"OverrideSpecifier","overrides":[],"src":"2208:8:8"},"parameters":{"id":3270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3269,"mutability":"mutable","name":"proposalId","nameLocation":"2174:10:8","nodeType":"VariableDeclaration","scope":3289,"src":"2166:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3268,"name":"uint256","nodeType":"ElementaryTypeName","src":"2166:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2165:20:8"},"returnParameters":{"id":3274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3289,"src":"2226:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3272,"name":"bool","nodeType":"ElementaryTypeName","src":"2226:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2225:6:8"},"scope":3380,"src":"2142:236:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1066],"body":{"id":3378,"nodeType":"Block","src":"2702:628:8","statements":[{"assignments":[3306],"declarations":[{"constant":false,"id":3306,"mutability":"mutable","name":"proposalvote","nameLocation":"2733:12:8","nodeType":"VariableDeclaration","scope":3378,"src":"2712:33:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":3305,"nodeType":"UserDefinedTypeName","pathNode":{"id":3304,"name":"ProposalVote","nodeType":"IdentifierPath","referencedDeclaration":3175,"src":"2712:12:8"},"referencedDeclaration":3175,"src":"2712:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":3310,"initialValue":{"baseExpression":{"id":3307,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"2748:14:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$3175_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":3309,"indexExpression":{"id":3308,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"2763:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2748:26:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2712:62:8"},{"expression":{"arguments":[{"id":3316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2793:31:8","subExpression":{"baseExpression":{"expression":{"id":3312,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"2794:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":3174,"src":"2794:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3315,"indexExpression":{"id":3314,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"2816:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2794:30:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f72566f74696e6753696d706c653a20766f746520616c72656164792063617374","id":3317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2826:41:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8","typeString":"literal_string \"GovernorVotingSimple: vote already cast\""},"value":"GovernorVotingSimple: vote already cast"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8","typeString":"literal_string \"GovernorVotingSimple: vote already cast\""}],"id":3311,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2785:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2785:83:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3319,"nodeType":"ExpressionStatement","src":"2785:83:8"},{"expression":{"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3320,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"2878:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":3174,"src":"2878:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3324,"indexExpression":{"id":3322,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"2900:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2878:30:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2911:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2878:37:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3327,"nodeType":"ExpressionStatement","src":"2878:37:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3328,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"2930:7:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":3331,"name":"VoteType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3164,"src":"2947:8:8","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VoteType_$3164_$","typeString":"type(enum GovernorCountingSimple.VoteType)"}},"id":3332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Against","nodeType":"MemberAccess","referencedDeclaration":3161,"src":"2947:16:8","typeDescriptions":{"typeIdentifier":"t_enum$_VoteType_$3164","typeString":"enum GovernorCountingSimple.VoteType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_VoteType_$3164","typeString":"enum GovernorCountingSimple.VoteType"}],"id":3330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2941:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3329,"name":"uint8","nodeType":"ElementaryTypeName","src":"2941:5:8","typeDescriptions":{}}},"id":3333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2941:23:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2930:34:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3342,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"3036:7:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":3345,"name":"VoteType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3164,"src":"3053:8:8","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VoteType_$3164_$","typeString":"type(enum GovernorCountingSimple.VoteType)"}},"id":3346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"For","nodeType":"MemberAccess","referencedDeclaration":3162,"src":"3053:12:8","typeDescriptions":{"typeIdentifier":"t_enum$_VoteType_$3164","typeString":"enum GovernorCountingSimple.VoteType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_VoteType_$3164","typeString":"enum GovernorCountingSimple.VoteType"}],"id":3344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3047:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3343,"name":"uint8","nodeType":"ElementaryTypeName","src":"3047:5:8","typeDescriptions":{}}},"id":3347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3047:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3036:30:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3356,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"3134:7:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":3359,"name":"VoteType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3164,"src":"3151:8:8","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VoteType_$3164_$","typeString":"type(enum GovernorCountingSimple.VoteType)"}},"id":3360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Abstain","nodeType":"MemberAccess","referencedDeclaration":3163,"src":"3151:16:8","typeDescriptions":{"typeIdentifier":"t_enum$_VoteType_$3164","typeString":"enum GovernorCountingSimple.VoteType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_VoteType_$3164","typeString":"enum GovernorCountingSimple.VoteType"}],"id":3358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3145:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3357,"name":"uint8","nodeType":"ElementaryTypeName","src":"3145:5:8","typeDescriptions":{}}},"id":3361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3145:23:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3134:34:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3374,"nodeType":"Block","src":"3236:88:8","statements":[{"expression":{"arguments":[{"hexValue":"476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616c756520666f7220656e756d20566f746554797065","id":3371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3257:55:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887","typeString":"literal_string \"GovernorVotingSimple: invalid value for enum VoteType\""},"value":"GovernorVotingSimple: invalid value for enum VoteType"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887","typeString":"literal_string \"GovernorVotingSimple: invalid value for enum VoteType\""}],"id":3370,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3250:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3250:63:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3373,"nodeType":"ExpressionStatement","src":"3250:63:8"}]},"id":3375,"nodeType":"IfStatement","src":"3130:194:8","trueBody":{"id":3369,"nodeType":"Block","src":"3170:60:8","statements":[{"expression":{"id":3367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3363,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"3184:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":3170,"src":"3184:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3366,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"3213:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3184:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3368,"nodeType":"ExpressionStatement","src":"3184:35:8"}]}},"id":3376,"nodeType":"IfStatement","src":"3032:292:8","trueBody":{"id":3355,"nodeType":"Block","src":"3068:56:8","statements":[{"expression":{"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3349,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"3082:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":3168,"src":"3082:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3352,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"3107:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3082:31:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3354,"nodeType":"ExpressionStatement","src":"3082:31:8"}]}},"id":3377,"nodeType":"IfStatement","src":"2926:398:8","trueBody":{"id":3341,"nodeType":"Block","src":"2966:60:8","statements":[{"expression":{"id":3339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3335,"name":"proposalvote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"2980:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$3175_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":3337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":3166,"src":"2980:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3338,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"3009:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2980:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3340,"nodeType":"ExpressionStatement","src":"2980:35:8"}]}}]},"documentation":{"id":3290,"nodeType":"StructuredDocumentation","src":"2384:129:8","text":" @dev See {Governor-_countVote}. In this module, the support follows the `VoteType` enum (from Governor Bravo)."},"id":3379,"implemented":true,"kind":"function","modifiers":[],"name":"_countVote","nameLocation":"2527:10:8","nodeType":"FunctionDefinition","overrides":{"id":3302,"nodeType":"OverrideSpecifier","overrides":[],"src":"2693:8:8"},"parameters":{"id":3301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3292,"mutability":"mutable","name":"proposalId","nameLocation":"2555:10:8","nodeType":"VariableDeclaration","scope":3379,"src":"2547:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3291,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3294,"mutability":"mutable","name":"account","nameLocation":"2583:7:8","nodeType":"VariableDeclaration","scope":3379,"src":"2575:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3293,"name":"address","nodeType":"ElementaryTypeName","src":"2575:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3296,"mutability":"mutable","name":"support","nameLocation":"2606:7:8","nodeType":"VariableDeclaration","scope":3379,"src":"2600:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3295,"name":"uint8","nodeType":"ElementaryTypeName","src":"2600:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3298,"mutability":"mutable","name":"weight","nameLocation":"2631:6:8","nodeType":"VariableDeclaration","scope":3379,"src":"2623:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3297,"name":"uint256","nodeType":"ElementaryTypeName","src":"2623:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3379,"src":"2647:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3299,"name":"bytes","nodeType":"ElementaryTypeName","src":"2647:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2537:138:8"},"returnParameters":{"id":3303,"nodeType":"ParameterList","parameters":[],"src":"2702:0:8"},"scope":3380,"src":"2518:812:8","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3381,"src":"292:3040:8","usedErrors":[12523]}],"src":"132:3201:8"},"id":8},"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"DoubleEndedQueue":[12857],"ECDSA":[9157],"EIP712":[9813],"ERC165":[9837],"Governor":[1952],"GovernorPreventLateQuorum":[3565],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"IGovernor":[2249],"Math":[10353],"SafeCast":[12204],"Strings":[8555],"Timers":[8769]},"id":3566,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3382,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"135:23:9"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":3383,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3566,"sourceUnit":1953,"src":"160:25:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"../../utils/math/Math.sol","id":3384,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3566,"sourceUnit":10354,"src":"186:35:9","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3386,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"881:8:9"},"id":3387,"nodeType":"InheritanceSpecifier","src":"881:8:9"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":3385,"nodeType":"StructuredDocumentation","src":"223:610:9","text":" @dev A module that ensures there is a minimum voting period after quorum is reached. This prevents a large voter from\n swaying a vote and triggering quorum at the last minute, by ensuring there is always time for other voters to react\n and try to oppose the decision.\n If a vote causes quorum to be reached, the proposal's voting period may be extended so that it does not end before at\n least a given number of blocks have passed (the \"vote extension\" parameter). This parameter can be set by the\n governance executor (e.g. through a governance proposal).\n _Available since v4.5._"},"fullyImplemented":false,"id":3565,"linearizedBaseContracts":[3565,1952,5103,7110,2249,9813,9837,9849,8255],"name":"GovernorPreventLateQuorum","nameLocation":"852:25:9","nodeType":"ContractDefinition","nodes":[{"id":3390,"libraryName":{"id":3388,"name":"SafeCast","nodeType":"IdentifierPath","referencedDeclaration":12204,"src":"902:8:9"},"nodeType":"UsingForDirective","src":"896:27:9","typeName":{"id":3389,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":3394,"libraryName":{"id":3391,"name":"Timers","nodeType":"IdentifierPath","referencedDeclaration":8769,"src":"934:6:9"},"nodeType":"UsingForDirective","src":"928:36:9","typeName":{"id":3393,"nodeType":"UserDefinedTypeName","pathNode":{"id":3392,"name":"Timers.BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"945:18:9"},"referencedDeclaration":8666,"src":"945:18:9","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}}},{"constant":false,"id":3396,"mutability":"mutable","name":"_voteExtension","nameLocation":"985:14:9","nodeType":"VariableDeclaration","scope":3565,"src":"970:29:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3395,"name":"uint64","nodeType":"ElementaryTypeName","src":"970:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"private"},{"constant":false,"id":3401,"mutability":"mutable","name":"_extendedDeadlines","nameLocation":"1052:18:9","nodeType":"VariableDeclaration","scope":3565,"src":"1005:65:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BlockNumber_$8666_storage_$","typeString":"mapping(uint256 => struct Timers.BlockNumber)"},"typeName":{"id":3400,"keyType":{"id":3397,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1005:38:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BlockNumber_$8666_storage_$","typeString":"mapping(uint256 => struct Timers.BlockNumber)"},"valueType":{"id":3399,"nodeType":"UserDefinedTypeName","pathNode":{"id":3398,"name":"Timers.BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1024:18:9"},"referencedDeclaration":8666,"src":"1024:18:9","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}}},"visibility":"private"},{"anonymous":false,"documentation":{"id":3402,"nodeType":"StructuredDocumentation","src":"1077:106:9","text":"@dev Emitted when a proposal deadline is pushed back due to reaching quorum late in its voting period."},"id":3408,"name":"ProposalExtended","nameLocation":"1194:16:9","nodeType":"EventDefinition","parameters":{"id":3407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3404,"indexed":true,"mutability":"mutable","name":"proposalId","nameLocation":"1227:10:9","nodeType":"VariableDeclaration","scope":3408,"src":"1211:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3403,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3406,"indexed":false,"mutability":"mutable","name":"extendedDeadline","nameLocation":"1246:16:9","nodeType":"VariableDeclaration","scope":3408,"src":"1239:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3405,"name":"uint64","nodeType":"ElementaryTypeName","src":"1239:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1210:53:9"},"src":"1188:76:9"},{"anonymous":false,"documentation":{"id":3409,"nodeType":"StructuredDocumentation","src":"1270:73:9","text":"@dev Emitted when the {lateQuorumVoteExtension} parameter is changed."},"id":3415,"name":"LateQuorumVoteExtensionSet","nameLocation":"1354:26:9","nodeType":"EventDefinition","parameters":{"id":3414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3411,"indexed":false,"mutability":"mutable","name":"oldVoteExtension","nameLocation":"1388:16:9","nodeType":"VariableDeclaration","scope":3415,"src":"1381:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3410,"name":"uint64","nodeType":"ElementaryTypeName","src":"1381:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3413,"indexed":false,"mutability":"mutable","name":"newVoteExtension","nameLocation":"1413:16:9","nodeType":"VariableDeclaration","scope":3415,"src":"1406:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3412,"name":"uint64","nodeType":"ElementaryTypeName","src":"1406:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1380:50:9"},"src":"1348:83:9"},{"body":{"id":3425,"nodeType":"Block","src":"1760:66:9","statements":[{"expression":{"arguments":[{"id":3422,"name":"initialVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"1798:20:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3421,"name":"_setLateQuorumVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"1770:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":3423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:49:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3424,"nodeType":"ExpressionStatement","src":"1770:49:9"}]},"documentation":{"id":3416,"nodeType":"StructuredDocumentation","src":"1437:277:9","text":" @dev Initializes the vote extension parameter: the number of blocks that are required to pass since a proposal\n reaches quorum until its voting period ends. If necessary the voting period will be extended beyond the one set\n at proposal creation."},"id":3426,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3418,"mutability":"mutable","name":"initialVoteExtension","nameLocation":"1738:20:9","nodeType":"VariableDeclaration","scope":3426,"src":"1731:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3417,"name":"uint64","nodeType":"ElementaryTypeName","src":"1731:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1730:29:9"},"returnParameters":{"id":3420,"nodeType":"ParameterList","parameters":[],"src":"1760:0:9"},"scope":3565,"src":"1719:107:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1015],"body":{"id":3448,"nodeType":"Block","src":"2149:114:9","statements":[{"expression":{"arguments":[{"arguments":[{"id":3439,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"2198:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3437,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2175:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorPreventLateQuorum_$3565_$","typeString":"type(contract super GovernorPreventLateQuorum)"}},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalDeadline","nodeType":"MemberAccess","referencedDeclaration":1015,"src":"2175:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":3440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2175:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":3441,"name":"_extendedDeadlines","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"2211:18:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BlockNumber_$8666_storage_$","typeString":"mapping(uint256 => struct Timers.BlockNumber storage ref)"}},"id":3443,"indexExpression":{"id":3442,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"2230:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2211:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":3444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getDeadline","nodeType":"MemberAccess","referencedDeclaration":8678,"src":"2211:42:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$8666_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_BlockNumber_$8666_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (uint64)"}},"id":3445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2211:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":3435,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"2166:4:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"2166:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2166:90:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3434,"id":3447,"nodeType":"Return","src":"2159:97:9"}]},"documentation":{"id":3427,"nodeType":"StructuredDocumentation","src":"1832:219:9","text":" @dev Returns the proposal deadline, which may have been extended beyond that set at proposal creation, if the\n proposal reached quorum late in the voting period. See {Governor-proposalDeadline}."},"functionSelector":"c01f9e37","id":3449,"implemented":true,"kind":"function","modifiers":[],"name":"proposalDeadline","nameLocation":"2065:16:9","nodeType":"FunctionDefinition","overrides":{"id":3431,"nodeType":"OverrideSpecifier","overrides":[],"src":"2122:8:9"},"parameters":{"id":3430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3429,"mutability":"mutable","name":"proposalId","nameLocation":"2090:10:9","nodeType":"VariableDeclaration","scope":3449,"src":"2082:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3428,"name":"uint256","nodeType":"ElementaryTypeName","src":"2082:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2081:20:9"},"returnParameters":{"id":3434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3449,"src":"2140:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3432,"name":"uint256","nodeType":"ElementaryTypeName","src":"2140:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2139:9:9"},"scope":3565,"src":"2056:207:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1852],"body":{"id":3525,"nodeType":"Block","src":"2686:612:9","statements":[{"assignments":[3467],"declarations":[{"constant":false,"id":3467,"mutability":"mutable","name":"result","nameLocation":"2704:6:9","nodeType":"VariableDeclaration","scope":3525,"src":"2696:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3466,"name":"uint256","nodeType":"ElementaryTypeName","src":"2696:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3476,"initialValue":{"arguments":[{"id":3470,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"2729:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3471,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3454,"src":"2741:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3472,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3456,"src":"2750:7:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3473,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3458,"src":"2759:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3474,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3460,"src":"2767:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3468,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2713:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorPreventLateQuorum_$3565_$","typeString":"type(contract super GovernorPreventLateQuorum)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_castVote","nodeType":"MemberAccess","referencedDeclaration":1852,"src":"2713:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":3475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2713:61:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2696:78:9"},{"assignments":[3481],"declarations":[{"constant":false,"id":3481,"mutability":"mutable","name":"extendedDeadline","nameLocation":"2812:16:9","nodeType":"VariableDeclaration","scope":3525,"src":"2785:43:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":3480,"nodeType":"UserDefinedTypeName","pathNode":{"id":3479,"name":"Timers.BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"2785:18:9"},"referencedDeclaration":8666,"src":"2785:18:9","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"id":3485,"initialValue":{"baseExpression":{"id":3482,"name":"_extendedDeadlines","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"2831:18:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BlockNumber_$8666_storage_$","typeString":"mapping(uint256 => struct Timers.BlockNumber storage ref)"}},"id":3484,"indexExpression":{"id":3483,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"2850:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2831:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage","typeString":"struct Timers.BlockNumber storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2785:76:9"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3486,"name":"extendedDeadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3481,"src":"2876:16:9","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber storage pointer"}},"id":3487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isUnset","nodeType":"MemberAccess","referencedDeclaration":8720,"src":"2876:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$8666_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_BlockNumber_$8666_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (bool)"}},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2876:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":3490,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"2921:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3489,"name":"_quorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"2906:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2906:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2876:56:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3522,"nodeType":"IfStatement","src":"2872:396:9","trueBody":{"id":3521,"nodeType":"Block","src":"2934:334:9","statements":[{"assignments":[3494],"declarations":[{"constant":false,"id":3494,"mutability":"mutable","name":"extendedDeadlineValue","nameLocation":"2955:21:9","nodeType":"VariableDeclaration","scope":3521,"src":"2948:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3493,"name":"uint64","nodeType":"ElementaryTypeName","src":"2948:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":3502,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":3501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":3495,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2979:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"2979:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":10956,"src":"2979:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":3498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2979:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3499,"name":"lateQuorumVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3535,"src":"3005:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3005:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2979:51:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2948:82:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3503,"name":"extendedDeadlineValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"3049:21:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":3505,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"3090:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3504,"name":"proposalDeadline","nodeType":"Identifier","overloadedDeclarations":[3449],"referencedDeclaration":3449,"src":"3073:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3073:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3049:52:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3514,"nodeType":"IfStatement","src":"3045:147:9","trueBody":{"id":3513,"nodeType":"Block","src":"3103:89:9","statements":[{"eventCall":{"arguments":[{"id":3509,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"3143:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3510,"name":"extendedDeadlineValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"3155:21:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3508,"name":"ProposalExtended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"3126:16:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$","typeString":"function (uint256,uint64)"}},"id":3511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3126:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3512,"nodeType":"EmitStatement","src":"3121:56:9"}]}},{"expression":{"arguments":[{"id":3518,"name":"extendedDeadlineValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"3235:21:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":3515,"name":"extendedDeadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3481,"src":"3206:16:9","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber storage pointer"}},"id":3517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"setDeadline","nodeType":"MemberAccess","referencedDeclaration":8693,"src":"3206:28:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockNumber_$8666_storage_ptr_$_t_uint64_$returns$__$bound_to$_t_struct$_BlockNumber_$8666_storage_ptr_$","typeString":"function (struct Timers.BlockNumber storage pointer,uint64)"}},"id":3519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3206:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3520,"nodeType":"ExpressionStatement","src":"3206:51:9"}]}},{"expression":{"id":3523,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3467,"src":"3285:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3465,"id":3524,"nodeType":"Return","src":"3278:13:9"}]},"documentation":{"id":3450,"nodeType":"StructuredDocumentation","src":"2269:208:9","text":" @dev Casts a vote and detects if it caused quorum to be reached, potentially extending the voting period. See\n {Governor-_castVote}.\n May emit a {ProposalExtended} event."},"id":3526,"implemented":true,"kind":"function","modifiers":[],"name":"_castVote","nameLocation":"2491:9:9","nodeType":"FunctionDefinition","overrides":{"id":3462,"nodeType":"OverrideSpecifier","overrides":[],"src":"2659:8:9"},"parameters":{"id":3461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3452,"mutability":"mutable","name":"proposalId","nameLocation":"2518:10:9","nodeType":"VariableDeclaration","scope":3526,"src":"2510:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3451,"name":"uint256","nodeType":"ElementaryTypeName","src":"2510:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3454,"mutability":"mutable","name":"account","nameLocation":"2546:7:9","nodeType":"VariableDeclaration","scope":3526,"src":"2538:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3453,"name":"address","nodeType":"ElementaryTypeName","src":"2538:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3456,"mutability":"mutable","name":"support","nameLocation":"2569:7:9","nodeType":"VariableDeclaration","scope":3526,"src":"2563:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3455,"name":"uint8","nodeType":"ElementaryTypeName","src":"2563:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3458,"mutability":"mutable","name":"reason","nameLocation":"2600:6:9","nodeType":"VariableDeclaration","scope":3526,"src":"2586:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3457,"name":"string","nodeType":"ElementaryTypeName","src":"2586:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3460,"mutability":"mutable","name":"params","nameLocation":"2629:6:9","nodeType":"VariableDeclaration","scope":3526,"src":"2616:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3459,"name":"bytes","nodeType":"ElementaryTypeName","src":"2616:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2500:141:9"},"returnParameters":{"id":3465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3526,"src":"2677:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3463,"name":"uint256","nodeType":"ElementaryTypeName","src":"2677:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:9:9"},"scope":3565,"src":"2482:816:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3534,"nodeType":"Block","src":"3587:38:9","statements":[{"expression":{"id":3532,"name":"_voteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"3604:14:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":3531,"id":3533,"nodeType":"Return","src":"3597:21:9"}]},"documentation":{"id":3527,"nodeType":"StructuredDocumentation","src":"3304:206:9","text":" @dev Returns the current value of the vote extension parameter: the number of blocks that are required to pass\n from the time a proposal reaches quorum until its voting period ends."},"functionSelector":"32b8113e","id":3535,"implemented":true,"kind":"function","modifiers":[],"name":"lateQuorumVoteExtension","nameLocation":"3524:23:9","nodeType":"FunctionDefinition","parameters":{"id":3528,"nodeType":"ParameterList","parameters":[],"src":"3547:2:9"},"returnParameters":{"id":3531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3535,"src":"3579:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3529,"name":"uint64","nodeType":"ElementaryTypeName","src":"3579:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3578:8:9"},"scope":3565,"src":"3515:110:9","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3547,"nodeType":"Block","src":"3960:62:9","statements":[{"expression":{"arguments":[{"id":3544,"name":"newVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3538,"src":"3998:16:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3543,"name":"_setLateQuorumVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"3970:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3970:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3546,"nodeType":"ExpressionStatement","src":"3970:45:9"}]},"documentation":{"id":3536,"nodeType":"StructuredDocumentation","src":"3631:233:9","text":" @dev Changes the {lateQuorumVoteExtension}. This operation can only be performed by the governance executor,\n generally through a governance proposal.\n Emits a {LateQuorumVoteExtensionSet} event."},"functionSelector":"d07f91e9","id":3548,"implemented":true,"kind":"function","modifiers":[{"id":3541,"kind":"modifierInvocation","modifierName":{"id":3540,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"3945:14:9"},"nodeType":"ModifierInvocation","src":"3945:14:9"}],"name":"setLateQuorumVoteExtension","nameLocation":"3878:26:9","nodeType":"FunctionDefinition","parameters":{"id":3539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3538,"mutability":"mutable","name":"newVoteExtension","nameLocation":"3912:16:9","nodeType":"VariableDeclaration","scope":3548,"src":"3905:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3537,"name":"uint64","nodeType":"ElementaryTypeName","src":"3905:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3904:25:9"},"returnParameters":{"id":3542,"nodeType":"ParameterList","parameters":[],"src":"3960:0:9"},"scope":3565,"src":"3869:153:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3563,"nodeType":"Block","src":"4390:125:9","statements":[{"eventCall":{"arguments":[{"id":3555,"name":"_voteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"4432:14:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3556,"name":"newVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3551,"src":"4448:16:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3554,"name":"LateQuorumVoteExtensionSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3415,"src":"4405:26:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$","typeString":"function (uint64,uint64)"}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4405:60:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3558,"nodeType":"EmitStatement","src":"4400:65:9"},{"expression":{"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3559,"name":"_voteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"4475:14:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3560,"name":"newVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3551,"src":"4492:16:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4475:33:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":3562,"nodeType":"ExpressionStatement","src":"4475:33:9"}]},"documentation":{"id":3549,"nodeType":"StructuredDocumentation","src":"4028:278:9","text":" @dev Changes the {lateQuorumVoteExtension}. This is an internal function that can be exposed in a public function\n like {setLateQuorumVoteExtension} if another access control mechanism is needed.\n Emits a {LateQuorumVoteExtensionSet} event."},"id":3564,"implemented":true,"kind":"function","modifiers":[],"name":"_setLateQuorumVoteExtension","nameLocation":"4320:27:9","nodeType":"FunctionDefinition","parameters":{"id":3552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3551,"mutability":"mutable","name":"newVoteExtension","nameLocation":"4355:16:9","nodeType":"VariableDeclaration","scope":3564,"src":"4348:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3550,"name":"uint64","nodeType":"ElementaryTypeName","src":"4348:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4347:25:9"},"returnParameters":{"id":3553,"nodeType":"ParameterList","parameters":[],"src":"4390:0:9"},"scope":3565,"src":"4311:204:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3566,"src":"834:3683:9","usedErrors":[12523]}],"src":"135:4383:9"},"id":9},"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"DoubleEndedQueue":[12857],"ECDSA":[9157],"EIP712":[9813],"ERC165":[9837],"Governor":[1952],"GovernorSettings":[3743],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"IGovernor":[2249],"SafeCast":[12204],"Strings":[8555],"Timers":[8769]},"id":3744,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3567,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"111:23:10"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":3568,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3744,"sourceUnit":1953,"src":"136:25:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3570,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"314:8:10"},"id":3571,"nodeType":"InheritanceSpecifier","src":"314:8:10"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":3569,"nodeType":"StructuredDocumentation","src":"163:112:10","text":" @dev Extension of {Governor} for settings updatable through governance.\n _Available since v4.4._"},"fullyImplemented":false,"id":3743,"linearizedBaseContracts":[3743,1952,5103,7110,2249,9813,9837,9849,8255],"name":"GovernorSettings","nameLocation":"294:16:10","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3573,"mutability":"mutable","name":"_votingDelay","nameLocation":"345:12:10","nodeType":"VariableDeclaration","scope":3743,"src":"329:28:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3572,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3575,"mutability":"mutable","name":"_votingPeriod","nameLocation":"379:13:10","nodeType":"VariableDeclaration","scope":3743,"src":"363:29:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3574,"name":"uint256","nodeType":"ElementaryTypeName","src":"363:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3577,"mutability":"mutable","name":"_proposalThreshold","nameLocation":"414:18:10","nodeType":"VariableDeclaration","scope":3743,"src":"398:34:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3576,"name":"uint256","nodeType":"ElementaryTypeName","src":"398:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"anonymous":false,"id":3583,"name":"VotingDelaySet","nameLocation":"445:14:10","nodeType":"EventDefinition","parameters":{"id":3582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3579,"indexed":false,"mutability":"mutable","name":"oldVotingDelay","nameLocation":"468:14:10","nodeType":"VariableDeclaration","scope":3583,"src":"460:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3578,"name":"uint256","nodeType":"ElementaryTypeName","src":"460:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3581,"indexed":false,"mutability":"mutable","name":"newVotingDelay","nameLocation":"492:14:10","nodeType":"VariableDeclaration","scope":3583,"src":"484:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3580,"name":"uint256","nodeType":"ElementaryTypeName","src":"484:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"459:48:10"},"src":"439:69:10"},{"anonymous":false,"id":3589,"name":"VotingPeriodSet","nameLocation":"519:15:10","nodeType":"EventDefinition","parameters":{"id":3588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3585,"indexed":false,"mutability":"mutable","name":"oldVotingPeriod","nameLocation":"543:15:10","nodeType":"VariableDeclaration","scope":3589,"src":"535:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3584,"name":"uint256","nodeType":"ElementaryTypeName","src":"535:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3587,"indexed":false,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"568:15:10","nodeType":"VariableDeclaration","scope":3589,"src":"560:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3586,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"534:50:10"},"src":"513:72:10"},{"anonymous":false,"id":3595,"name":"ProposalThresholdSet","nameLocation":"596:20:10","nodeType":"EventDefinition","parameters":{"id":3594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3591,"indexed":false,"mutability":"mutable","name":"oldProposalThreshold","nameLocation":"625:20:10","nodeType":"VariableDeclaration","scope":3595,"src":"617:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3590,"name":"uint256","nodeType":"ElementaryTypeName","src":"617:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3593,"indexed":false,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"655:20:10","nodeType":"VariableDeclaration","scope":3595,"src":"647:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3592,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"616:60:10"},"src":"590:87:10"},{"body":{"id":3617,"nodeType":"Block","src":"882:156:10","statements":[{"expression":{"arguments":[{"id":3606,"name":"initialVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"908:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3605,"name":"_setVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"892:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"892:35:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3608,"nodeType":"ExpressionStatement","src":"892:35:10"},{"expression":{"arguments":[{"id":3610,"name":"initialVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3600,"src":"954:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3609,"name":"_setVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3726,"src":"937:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"937:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3612,"nodeType":"ExpressionStatement","src":"937:37:10"},{"expression":{"arguments":[{"id":3614,"name":"initialProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3602,"src":"1006:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3613,"name":"_setProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"984:21:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"984:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3616,"nodeType":"ExpressionStatement","src":"984:47:10"}]},"documentation":{"id":3596,"nodeType":"StructuredDocumentation","src":"683:61:10","text":" @dev Initialize the governance parameters."},"id":3618,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3598,"mutability":"mutable","name":"initialVotingDelay","nameLocation":"778:18:10","nodeType":"VariableDeclaration","scope":3618,"src":"770:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3597,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3600,"mutability":"mutable","name":"initialVotingPeriod","nameLocation":"814:19:10","nodeType":"VariableDeclaration","scope":3618,"src":"806:27:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3599,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3602,"mutability":"mutable","name":"initialProposalThreshold","nameLocation":"851:24:10","nodeType":"VariableDeclaration","scope":3618,"src":"843:32:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3601,"name":"uint256","nodeType":"ElementaryTypeName","src":"843:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:121:10"},"returnParameters":{"id":3604,"nodeType":"ParameterList","parameters":[],"src":"882:0:10"},"scope":3743,"src":"749:289:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2096],"body":{"id":3627,"nodeType":"Block","src":"1171:36:10","statements":[{"expression":{"id":3625,"name":"_votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3573,"src":"1188:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3624,"id":3626,"nodeType":"Return","src":"1181:19:10"}]},"documentation":{"id":3619,"nodeType":"StructuredDocumentation","src":"1044:52:10","text":" @dev See {IGovernor-votingDelay}."},"functionSelector":"3932abb1","id":3628,"implemented":true,"kind":"function","modifiers":[],"name":"votingDelay","nameLocation":"1110:11:10","nodeType":"FunctionDefinition","overrides":{"id":3621,"nodeType":"OverrideSpecifier","overrides":[],"src":"1144:8:10"},"parameters":{"id":3620,"nodeType":"ParameterList","parameters":[],"src":"1121:2:10"},"returnParameters":{"id":3624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3628,"src":"1162:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1162:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1161:9:10"},"scope":3743,"src":"1101:106:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2102],"body":{"id":3637,"nodeType":"Block","src":"1342:37:10","statements":[{"expression":{"id":3635,"name":"_votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3575,"src":"1359:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3634,"id":3636,"nodeType":"Return","src":"1352:20:10"}]},"documentation":{"id":3629,"nodeType":"StructuredDocumentation","src":"1213:53:10","text":" @dev See {IGovernor-votingPeriod}."},"functionSelector":"02a251a3","id":3638,"implemented":true,"kind":"function","modifiers":[],"name":"votingPeriod","nameLocation":"1280:12:10","nodeType":"FunctionDefinition","overrides":{"id":3631,"nodeType":"OverrideSpecifier","overrides":[],"src":"1315:8:10"},"parameters":{"id":3630,"nodeType":"ParameterList","parameters":[],"src":"1292:2:10"},"returnParameters":{"id":3634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3638,"src":"1333:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3632,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1332:9:10"},"scope":3743,"src":"1271:108:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1024],"body":{"id":3647,"nodeType":"Block","src":"1523:42:10","statements":[{"expression":{"id":3645,"name":"_proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3577,"src":"1540:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3644,"id":3646,"nodeType":"Return","src":"1533:25:10"}]},"documentation":{"id":3639,"nodeType":"StructuredDocumentation","src":"1385:57:10","text":" @dev See {Governor-proposalThreshold}."},"functionSelector":"b58131b0","id":3648,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nameLocation":"1456:17:10","nodeType":"FunctionDefinition","overrides":{"id":3641,"nodeType":"OverrideSpecifier","overrides":[],"src":"1496:8:10"},"parameters":{"id":3640,"nodeType":"ParameterList","parameters":[],"src":"1473:2:10"},"returnParameters":{"id":3644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3648,"src":"1514:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3642,"name":"uint256","nodeType":"ElementaryTypeName","src":"1514:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1513:9:10"},"scope":3743,"src":"1447:118:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3660,"nodeType":"Block","src":"1816:48:10","statements":[{"expression":{"arguments":[{"id":3657,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"1842:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3656,"name":"_setVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"1826:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1826:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3659,"nodeType":"ExpressionStatement","src":"1826:31:10"}]},"documentation":{"id":3649,"nodeType":"StructuredDocumentation","src":"1571:162:10","text":" @dev Update the voting delay. This operation can only be performed through a governance proposal.\n Emits a {VotingDelaySet} event."},"functionSelector":"70b0f660","id":3661,"implemented":true,"kind":"function","modifiers":[{"id":3654,"kind":"modifierInvocation","modifierName":{"id":3653,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"1801:14:10"},"nodeType":"ModifierInvocation","src":"1801:14:10"}],"name":"setVotingDelay","nameLocation":"1747:14:10","nodeType":"FunctionDefinition","parameters":{"id":3652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3651,"mutability":"mutable","name":"newVotingDelay","nameLocation":"1770:14:10","nodeType":"VariableDeclaration","scope":3661,"src":"1762:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3650,"name":"uint256","nodeType":"ElementaryTypeName","src":"1762:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1761:24:10"},"returnParameters":{"id":3655,"nodeType":"ParameterList","parameters":[],"src":"1816:0:10"},"scope":3743,"src":"1738:126:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3673,"nodeType":"Block","src":"2119:50:10","statements":[{"expression":{"arguments":[{"id":3670,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3664,"src":"2146:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3669,"name":"_setVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3726,"src":"2129:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2129:33:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3672,"nodeType":"ExpressionStatement","src":"2129:33:10"}]},"documentation":{"id":3662,"nodeType":"StructuredDocumentation","src":"1870:164:10","text":" @dev Update the voting period. This operation can only be performed through a governance proposal.\n Emits a {VotingPeriodSet} event."},"functionSelector":"ea0217cf","id":3674,"implemented":true,"kind":"function","modifiers":[{"id":3667,"kind":"modifierInvocation","modifierName":{"id":3666,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"2104:14:10"},"nodeType":"ModifierInvocation","src":"2104:14:10"}],"name":"setVotingPeriod","nameLocation":"2048:15:10","nodeType":"FunctionDefinition","parameters":{"id":3665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3664,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"2072:15:10","nodeType":"VariableDeclaration","scope":3674,"src":"2064:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3663,"name":"uint256","nodeType":"ElementaryTypeName","src":"2064:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2063:25:10"},"returnParameters":{"id":3668,"nodeType":"ParameterList","parameters":[],"src":"2119:0:10"},"scope":3743,"src":"2039:130:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3686,"nodeType":"Block","src":"2444:60:10","statements":[{"expression":{"arguments":[{"id":3683,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"2476:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3682,"name":"_setProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"2454:21:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2454:43:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3685,"nodeType":"ExpressionStatement","src":"2454:43:10"}]},"documentation":{"id":3675,"nodeType":"StructuredDocumentation","src":"2175:174:10","text":" @dev Update the proposal threshold. This operation can only be performed through a governance proposal.\n Emits a {ProposalThresholdSet} event."},"functionSelector":"ece40cc1","id":3687,"implemented":true,"kind":"function","modifiers":[{"id":3680,"kind":"modifierInvocation","modifierName":{"id":3679,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"2429:14:10"},"nodeType":"ModifierInvocation","src":"2429:14:10"}],"name":"setProposalThreshold","nameLocation":"2363:20:10","nodeType":"FunctionDefinition","parameters":{"id":3678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"2392:20:10","nodeType":"VariableDeclaration","scope":3687,"src":"2384:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3676,"name":"uint256","nodeType":"ElementaryTypeName","src":"2384:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2383:30:10"},"returnParameters":{"id":3681,"nodeType":"ParameterList","parameters":[],"src":"2444:0:10"},"scope":3743,"src":"2354:150:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3702,"nodeType":"Block","src":"2688:105:10","statements":[{"eventCall":{"arguments":[{"id":3694,"name":"_votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3573,"src":"2718:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3695,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3690,"src":"2732:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3693,"name":"VotingDelaySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"2703:14:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2703:44:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3697,"nodeType":"EmitStatement","src":"2698:49:10"},{"expression":{"id":3700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3698,"name":"_votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3573,"src":"2757:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3699,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3690,"src":"2772:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2757:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3701,"nodeType":"ExpressionStatement","src":"2757:29:10"}]},"documentation":{"id":3688,"nodeType":"StructuredDocumentation","src":"2510:107:10","text":" @dev Internal setter for the voting delay.\n Emits a {VotingDelaySet} event."},"id":3703,"implemented":true,"kind":"function","modifiers":[],"name":"_setVotingDelay","nameLocation":"2631:15:10","nodeType":"FunctionDefinition","parameters":{"id":3691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3690,"mutability":"mutable","name":"newVotingDelay","nameLocation":"2655:14:10","nodeType":"VariableDeclaration","scope":3703,"src":"2647:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3689,"name":"uint256","nodeType":"ElementaryTypeName","src":"2647:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2646:24:10"},"returnParameters":{"id":3692,"nodeType":"ParameterList","parameters":[],"src":"2688:0:10"},"scope":3743,"src":"2622:171:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3725,"nodeType":"Block","src":"2981:248:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3710,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"3056:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3074:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3056:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420746f6f206c6f77","id":3713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3077:41:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83","typeString":"literal_string \"GovernorSettings: voting period too low\""},"value":"GovernorSettings: voting period too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83","typeString":"literal_string \"GovernorSettings: voting period too low\""}],"id":3709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3048:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3048:71:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3715,"nodeType":"ExpressionStatement","src":"3048:71:10"},{"eventCall":{"arguments":[{"id":3717,"name":"_votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3575,"src":"3150:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3718,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"3165:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3716,"name":"VotingPeriodSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3589,"src":"3134:15:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3134:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3720,"nodeType":"EmitStatement","src":"3129:52:10"},{"expression":{"id":3723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3721,"name":"_votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3575,"src":"3191:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3722,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"3207:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3191:31:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3724,"nodeType":"ExpressionStatement","src":"3191:31:10"}]},"documentation":{"id":3704,"nodeType":"StructuredDocumentation","src":"2799:109:10","text":" @dev Internal setter for the voting period.\n Emits a {VotingPeriodSet} event."},"id":3726,"implemented":true,"kind":"function","modifiers":[],"name":"_setVotingPeriod","nameLocation":"2922:16:10","nodeType":"FunctionDefinition","parameters":{"id":3707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3706,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"2947:15:10","nodeType":"VariableDeclaration","scope":3726,"src":"2939:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3705,"name":"uint256","nodeType":"ElementaryTypeName","src":"2939:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2938:25:10"},"returnParameters":{"id":3708,"nodeType":"ParameterList","parameters":[],"src":"2981:0:10"},"scope":3743,"src":"2913:316:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3741,"nodeType":"Block","src":"3437:135:10","statements":[{"eventCall":{"arguments":[{"id":3733,"name":"_proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3577,"src":"3473:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3734,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3729,"src":"3493:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3732,"name":"ProposalThresholdSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"3452:20:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3452:62:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3736,"nodeType":"EmitStatement","src":"3447:67:10"},{"expression":{"id":3739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3737,"name":"_proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3577,"src":"3524:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3738,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3729,"src":"3545:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3524:41:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3740,"nodeType":"ExpressionStatement","src":"3524:41:10"}]},"documentation":{"id":3727,"nodeType":"StructuredDocumentation","src":"3235:119:10","text":" @dev Internal setter for the proposal threshold.\n Emits a {ProposalThresholdSet} event."},"id":3742,"implemented":true,"kind":"function","modifiers":[],"name":"_setProposalThreshold","nameLocation":"3368:21:10","nodeType":"FunctionDefinition","parameters":{"id":3730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3729,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"3398:20:10","nodeType":"VariableDeclaration","scope":3742,"src":"3390:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3390:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3389:30:10"},"returnParameters":{"id":3731,"nodeType":"ParameterList","parameters":[],"src":"3437:0:10"},"scope":3743,"src":"3359:213:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3744,"src":"276:3298:10","usedErrors":[12523]}],"src":"111:3464:10"},"id":10},"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol","exportedSymbols":{"AccessControl":[319],"Address":[7999],"Context":[8255],"DoubleEndedQueue":[12857],"ECDSA":[9157],"EIP712":[9813],"ERC165":[9837],"Governor":[1952],"GovernorTimelockControl":[4120],"IAccessControl":[517],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"IGovernor":[2249],"IGovernorTimelock":[4203],"SafeCast":[12204],"Strings":[8555],"TimelockController":[3154],"Timers":[8769]},"id":4121,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3745,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"133:23:11"},{"absolutePath":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","file":"./IGovernorTimelock.sol","id":3746,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4121,"sourceUnit":4204,"src":"158:33:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":3747,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4121,"sourceUnit":1953,"src":"192:25:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/TimelockController.sol","file":"../TimelockController.sol","id":3748,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4121,"sourceUnit":3155,"src":"218:35:11","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3750,"name":"IGovernorTimelock","nodeType":"IdentifierPath","referencedDeclaration":4203,"src":"1370:17:11"},"id":3751,"nodeType":"InheritanceSpecifier","src":"1370:17:11"},{"baseName":{"id":3752,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"1389:8:11"},"id":3753,"nodeType":"InheritanceSpecifier","src":"1389:8:11"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":3749,"nodeType":"StructuredDocumentation","src":"255:1069:11","text":" @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a\n delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The\n {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly.\n Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus,\n the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be\n inaccessible.\n WARNING: Setting up the TimelockController to have additional proposers besides the governor is very risky, as it\n grants them powers that they must be trusted or known not to use: 1) {onlyGovernance} functions like {relay} are\n available to them through the timelock, and 2) approved governance proposals can be blocked by them, effectively\n executing a Denial of Service attack. This risk will be mitigated in a future release.\n _Available since v4.3._"},"fullyImplemented":false,"id":4120,"linearizedBaseContracts":[4120,1952,5103,7110,4203,2249,9813,9837,9849,8255],"name":"GovernorTimelockControl","nameLocation":"1343:23:11","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3756,"mutability":"mutable","name":"_timelock","nameLocation":"1431:9:11","nodeType":"VariableDeclaration","scope":4120,"src":"1404:36:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"},"typeName":{"id":3755,"nodeType":"UserDefinedTypeName","pathNode":{"id":3754,"name":"TimelockController","nodeType":"IdentifierPath","referencedDeclaration":3154,"src":"1404:18:11"},"referencedDeclaration":3154,"src":"1404:18:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"visibility":"private"},{"constant":false,"id":3760,"mutability":"mutable","name":"_timelockIds","nameLocation":"1482:12:11","nodeType":"VariableDeclaration","scope":4120,"src":"1446:48:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"typeName":{"id":3759,"keyType":{"id":3757,"name":"uint256","nodeType":"ElementaryTypeName","src":"1454:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1446:27:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"valueType":{"id":3758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1465:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"private"},{"anonymous":false,"documentation":{"id":3761,"nodeType":"StructuredDocumentation","src":"1501:101:11","text":" @dev Emitted when the timelock controller used for proposal execution is modified."},"id":3767,"name":"TimelockChange","nameLocation":"1613:14:11","nodeType":"EventDefinition","parameters":{"id":3766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3763,"indexed":false,"mutability":"mutable","name":"oldTimelock","nameLocation":"1636:11:11","nodeType":"VariableDeclaration","scope":3767,"src":"1628:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3762,"name":"address","nodeType":"ElementaryTypeName","src":"1628:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3765,"indexed":false,"mutability":"mutable","name":"newTimelock","nameLocation":"1657:11:11","nodeType":"VariableDeclaration","scope":3767,"src":"1649:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3764,"name":"address","nodeType":"ElementaryTypeName","src":"1649:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1627:42:11"},"src":"1607:63:11"},{"body":{"id":3778,"nodeType":"Block","src":"1770:49:11","statements":[{"expression":{"arguments":[{"id":3775,"name":"timelockAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3771,"src":"1796:15:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":3774,"name":"_updateTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"1780:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_TimelockController_$3154_$returns$__$","typeString":"function (contract TimelockController)"}},"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1780:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3777,"nodeType":"ExpressionStatement","src":"1780:32:11"}]},"documentation":{"id":3768,"nodeType":"StructuredDocumentation","src":"1676:41:11","text":" @dev Set the timelock."},"id":3779,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3771,"mutability":"mutable","name":"timelockAddress","nameLocation":"1753:15:11","nodeType":"VariableDeclaration","scope":3779,"src":"1734:34:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"},"typeName":{"id":3770,"nodeType":"UserDefinedTypeName","pathNode":{"id":3769,"name":"TimelockController","nodeType":"IdentifierPath","referencedDeclaration":3154,"src":"1734:18:11"},"referencedDeclaration":3154,"src":"1734:18:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"visibility":"internal"}],"src":"1733:36:11"},"returnParameters":{"id":3773,"nodeType":"ParameterList","parameters":[],"src":"1770:0:11"},"scope":4120,"src":"1722:97:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[842,9848],"body":{"id":3802,"nodeType":"Block","src":"1996:114:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3790,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"2013:11:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3792,"name":"IGovernorTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4203,"src":"2033:17:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernorTimelock_$4203_$","typeString":"type(contract IGovernorTimelock)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IGovernorTimelock_$4203_$","typeString":"type(contract IGovernorTimelock)"}],"id":3791,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2028:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2028:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IGovernorTimelock_$4203","typeString":"type(contract IGovernorTimelock)"}},"id":3794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2028:35:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2013:50:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3798,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"2091:11:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":3796,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2067:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorTimelockControl_$4120_$","typeString":"type(contract super GovernorTimelockControl)"}},"id":3797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":842,"src":"2067:23:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":3799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2067:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2013:90:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3789,"id":3801,"nodeType":"Return","src":"2006:97:11"}]},"documentation":{"id":3780,"nodeType":"StructuredDocumentation","src":"1825:56:11","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":3803,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1895:17:11","nodeType":"FunctionDefinition","overrides":{"id":3786,"nodeType":"OverrideSpecifier","overrides":[{"id":3784,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"1962:7:11"},{"id":3785,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"1971:8:11"}],"src":"1953:27:11"},"parameters":{"id":3783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3782,"mutability":"mutable","name":"interfaceId","nameLocation":"1920:11:11","nodeType":"VariableDeclaration","scope":3803,"src":"1913:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3781,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1913:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1912:20:11"},"returnParameters":{"id":3789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3803,"src":"1990:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3787,"name":"bool","nodeType":"ElementaryTypeName","src":"1990:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1989:6:11"},"scope":4120,"src":"1886:224:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[981,2074],"body":{"id":3869,"nodeType":"Block","src":"2349:638:11","statements":[{"assignments":[3817],"declarations":[{"constant":false,"id":3817,"mutability":"mutable","name":"status","nameLocation":"2373:6:11","nodeType":"VariableDeclaration","scope":3869,"src":"2359:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":3816,"nodeType":"UserDefinedTypeName","pathNode":{"id":3815,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"2359:13:11"},"referencedDeclaration":1967,"src":"2359:13:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"id":3822,"initialValue":{"arguments":[{"id":3820,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"2394:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3818,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2382:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorTimelockControl_$4120_$","typeString":"type(contract super GovernorTimelockControl)"}},"id":3819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":981,"src":"2382:11:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1967_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":3821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2382:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"2359:46:11"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3823,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"2420:6:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":3824,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"2430:13:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":3825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":1963,"src":"2430:23:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"2420:33:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3830,"nodeType":"IfStatement","src":"2416:77:11","trueBody":{"id":3829,"nodeType":"Block","src":"2455:38:11","statements":[{"expression":{"id":3827,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"2476:6:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":3814,"id":3828,"nodeType":"Return","src":"2469:13:11"}]}},{"assignments":[3832],"declarations":[{"constant":false,"id":3832,"mutability":"mutable","name":"queueid","nameLocation":"2611:7:11","nodeType":"VariableDeclaration","scope":3869,"src":"2603:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2603:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3836,"initialValue":{"baseExpression":{"id":3833,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"2621:12:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":3835,"indexExpression":{"id":3834,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"2634:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2621:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2603:42:11"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3837,"name":"queueid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"2659:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2678: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":3839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2670:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2670:7:11","typeDescriptions":{}}},"id":3841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2670:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2659:21:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":3848,"name":"queueid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"2756:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3846,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"2730:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isOperationDone","nodeType":"MemberAccess","referencedDeclaration":2560,"src":"2730:25:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2730:34:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":3856,"name":"queueid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"2859:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3854,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"2830:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isOperationPending","nodeType":"MemberAccess","referencedDeclaration":2521,"src":"2830:28:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":3857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2830:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3865,"nodeType":"Block","src":"2927:54:11","statements":[{"expression":{"expression":{"id":3862,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"2948:13:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":3863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":1961,"src":"2948:22:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":3814,"id":3864,"nodeType":"Return","src":"2941:29:11"}]},"id":3866,"nodeType":"IfStatement","src":"2826:155:11","trueBody":{"id":3861,"nodeType":"Block","src":"2869:52:11","statements":[{"expression":{"expression":{"id":3858,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"2890:13:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":1964,"src":"2890:20:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":3814,"id":3860,"nodeType":"Return","src":"2883:27:11"}]}},"id":3867,"nodeType":"IfStatement","src":"2726:255:11","trueBody":{"id":3853,"nodeType":"Block","src":"2766:54:11","statements":[{"expression":{"expression":{"id":3850,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"2787:13:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":3851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":1966,"src":"2787:22:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":3814,"id":3852,"nodeType":"Return","src":"2780:29:11"}]}},"id":3868,"nodeType":"IfStatement","src":"2655:326:11","trueBody":{"id":3845,"nodeType":"Block","src":"2682:38:11","statements":[{"expression":{"id":3843,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"2703:6:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":3814,"id":3844,"nodeType":"Return","src":"2696:13:11"}]}}]},"documentation":{"id":3804,"nodeType":"StructuredDocumentation","src":"2116:119:11","text":" @dev Overridden version of the {Governor-state} function with added support for the `Queued` status."},"functionSelector":"3e4f49e6","id":3870,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"2249:5:11","nodeType":"FunctionDefinition","overrides":{"id":3810,"nodeType":"OverrideSpecifier","overrides":[{"id":3808,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"2304:9:11"},{"id":3809,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"2315:8:11"}],"src":"2295:29:11"},"parameters":{"id":3807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3806,"mutability":"mutable","name":"proposalId","nameLocation":"2263:10:11","nodeType":"VariableDeclaration","scope":3870,"src":"2255:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2255:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2254:20:11"},"returnParameters":{"id":3814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3870,"src":"2334:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":3812,"nodeType":"UserDefinedTypeName","pathNode":{"id":3811,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"2334:13:11"},"referencedDeclaration":1967,"src":"2334:13:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"2333:15:11"},"scope":4120,"src":"2240:747:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4179],"body":{"id":3882,"nodeType":"Block","src":"3141:42:11","statements":[{"expression":{"arguments":[{"id":3879,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"3166:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":3878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3158:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3877,"name":"address","nodeType":"ElementaryTypeName","src":"3158:7:11","typeDescriptions":{}}},"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3158:18:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3876,"id":3881,"nodeType":"Return","src":"3151:25:11"}]},"documentation":{"id":3871,"nodeType":"StructuredDocumentation","src":"2993:76:11","text":" @dev Public accessor to check the address of the timelock"},"functionSelector":"d33219b4","id":3883,"implemented":true,"kind":"function","modifiers":[],"name":"timelock","nameLocation":"3083:8:11","nodeType":"FunctionDefinition","overrides":{"id":3873,"nodeType":"OverrideSpecifier","overrides":[],"src":"3114:8:11"},"parameters":{"id":3872,"nodeType":"ParameterList","parameters":[],"src":"3091:2:11"},"returnParameters":{"id":3876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3883,"src":"3132:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3874,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3131:9:11"},"scope":4120,"src":"3074:109:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4186],"body":{"id":3908,"nodeType":"Block","src":"3359:171:11","statements":[{"assignments":[3893],"declarations":[{"constant":false,"id":3893,"mutability":"mutable","name":"eta","nameLocation":"3377:3:11","nodeType":"VariableDeclaration","scope":3908,"src":"3369:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3892,"name":"uint256","nodeType":"ElementaryTypeName","src":"3369:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3900,"initialValue":{"arguments":[{"baseExpression":{"id":3896,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"3406:12:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":3898,"indexExpression":{"id":3897,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3886,"src":"3419:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3406:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3894,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"3383:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTimestamp","nodeType":"MemberAccess","referencedDeclaration":2573,"src":"3383:22:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3383:48:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3369:62:11"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3901,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"3448:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":3902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3448:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3905,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"3463:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3448:18:11","trueExpression":{"hexValue":"30","id":3904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3459:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3891,"id":3907,"nodeType":"Return","src":"3441:25:11"}]},"documentation":{"id":3884,"nodeType":"StructuredDocumentation","src":"3189:77:11","text":" @dev Public accessor to check the eta of a queued proposal"},"functionSelector":"ab58fb8e","id":3909,"implemented":true,"kind":"function","modifiers":[],"name":"proposalEta","nameLocation":"3280:11:11","nodeType":"FunctionDefinition","overrides":{"id":3888,"nodeType":"OverrideSpecifier","overrides":[],"src":"3332:8:11"},"parameters":{"id":3887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3886,"mutability":"mutable","name":"proposalId","nameLocation":"3300:10:11","nodeType":"VariableDeclaration","scope":3909,"src":"3292:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3885,"name":"uint256","nodeType":"ElementaryTypeName","src":"3292:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3291:20:11"},"returnParameters":{"id":3891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3909,"src":"3350:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3889,"name":"uint256","nodeType":"ElementaryTypeName","src":"3350:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3349:9:11"},"scope":4120,"src":"3271:259:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4202],"body":{"id":3986,"nodeType":"Block","src":"3807:542:11","statements":[{"assignments":[3928],"declarations":[{"constant":false,"id":3928,"mutability":"mutable","name":"proposalId","nameLocation":"3825:10:11","nodeType":"VariableDeclaration","scope":3986,"src":"3817:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3927,"name":"uint256","nodeType":"ElementaryTypeName","src":"3817:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3935,"initialValue":{"arguments":[{"id":3930,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"3851:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":3931,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3916,"src":"3860:6:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":3932,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"3868:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":3933,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"3879:15:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3929,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[894],"referencedDeclaration":894,"src":"3838:12:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:57:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3817:78:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3938,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"3920:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3937,"name":"state","nodeType":"Identifier","overloadedDeclarations":[3870],"referencedDeclaration":3870,"src":"3914:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1967_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":3939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3914:17:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3940,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"3935:13:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1967_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":3941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":1963,"src":"3935:23:11","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"src":"3914:44:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756c","id":3943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3960:35:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""},"value":"Governor: proposal not successful"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""}],"id":3936,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3906:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3906:90:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3945,"nodeType":"ExpressionStatement","src":"3906:90:11"},{"assignments":[3947],"declarations":[{"constant":false,"id":3947,"mutability":"mutable","name":"delay","nameLocation":"4015:5:11","nodeType":"VariableDeclaration","scope":3986,"src":"4007:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3946,"name":"uint256","nodeType":"ElementaryTypeName","src":"4007:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3951,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3948,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"4023:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMinDelay","nodeType":"MemberAccess","referencedDeclaration":2582,"src":"4023:21:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4023:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4007:39:11"},{"expression":{"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3952,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"4056:12:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":3954,"indexExpression":{"id":3953,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"4069:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4056:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3957,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"4112:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":3958,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3916,"src":"4121:6:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":3959,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"4129:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"30","id":3960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4140:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":3961,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"4143:15:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3955,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"4083:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashOperationBatch","nodeType":"MemberAccess","referencedDeclaration":2641,"src":"4083:28:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32) pure external returns (bytes32)"}},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4083:76:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4056:103:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3964,"nodeType":"ExpressionStatement","src":"4056:103:11"},{"expression":{"arguments":[{"id":3968,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"4193:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":3969,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3916,"src":"4202:6:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":3970,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"4210:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"30","id":3971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4221:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":3972,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"4224:15:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3973,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"4241:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3965,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"4169:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"scheduleBatch","nodeType":"MemberAccess","referencedDeclaration":2771,"src":"4169:23:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32,uint256) external"}},"id":3974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4169:78:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3975,"nodeType":"ExpressionStatement","src":"4169:78:11"},{"eventCall":{"arguments":[{"id":3977,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"4278:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3978,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4290:5:11","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4290:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3980,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"4308:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4290:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3976,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4174,"src":"4263:14:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4263:51:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3983,"nodeType":"EmitStatement","src":"4258:56:11"},{"expression":{"id":3984,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"4332:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3926,"id":3985,"nodeType":"Return","src":"4325:17:11"}]},"documentation":{"id":3910,"nodeType":"StructuredDocumentation","src":"3536:69:11","text":" @dev Function to queue a proposal to the timelock."},"functionSelector":"160cbed7","id":3987,"implemented":true,"kind":"function","modifiers":[],"name":"queue","nameLocation":"3619:5:11","nodeType":"FunctionDefinition","overrides":{"id":3923,"nodeType":"OverrideSpecifier","overrides":[],"src":"3780:8:11"},"parameters":{"id":3922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3913,"mutability":"mutable","name":"targets","nameLocation":"3651:7:11","nodeType":"VariableDeclaration","scope":3987,"src":"3634:24:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3911,"name":"address","nodeType":"ElementaryTypeName","src":"3634:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3912,"nodeType":"ArrayTypeName","src":"3634:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":3916,"mutability":"mutable","name":"values","nameLocation":"3685:6:11","nodeType":"VariableDeclaration","scope":3987,"src":"3668:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3914,"name":"uint256","nodeType":"ElementaryTypeName","src":"3668:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3915,"nodeType":"ArrayTypeName","src":"3668:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3919,"mutability":"mutable","name":"calldatas","nameLocation":"3716:9:11","nodeType":"VariableDeclaration","scope":3987,"src":"3701:24:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":3917,"name":"bytes","nodeType":"ElementaryTypeName","src":"3701:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":3918,"nodeType":"ArrayTypeName","src":"3701:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":3921,"mutability":"mutable","name":"descriptionHash","nameLocation":"3743:15:11","nodeType":"VariableDeclaration","scope":3987,"src":"3735:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3735:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3624:140:11"},"returnParameters":{"id":3926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3987,"src":"3798:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3798:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3797:9:11"},"scope":4120,"src":"3610:739:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1366],"body":{"id":4018,"nodeType":"Block","src":"4688:105:11","statements":[{"expression":{"arguments":[{"id":4011,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"4739:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":4012,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3996,"src":"4748:6:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":4013,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3999,"src":"4756:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"30","id":4014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4015,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4001,"src":"4770:15:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4005,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"4698:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":4007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeBatch","nodeType":"MemberAccess","referencedDeclaration":2985,"src":"4698:22:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32) payable external"}},"id":4010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":4008,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4728:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"4728:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4698:40:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$__$value","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32) payable external"}},"id":4016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4698:88:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4017,"nodeType":"ExpressionStatement","src":"4698:88:11"}]},"documentation":{"id":3988,"nodeType":"StructuredDocumentation","src":"4355:110:11","text":" @dev Overridden execute function that run the already queued proposal through the timelock."},"id":4019,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"4479:8:11","nodeType":"FunctionDefinition","overrides":{"id":4003,"nodeType":"OverrideSpecifier","overrides":[],"src":"4679:8:11"},"parameters":{"id":4002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4019,"src":"4497:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3989,"name":"uint256","nodeType":"ElementaryTypeName","src":"4497:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3993,"mutability":"mutable","name":"targets","nameLocation":"4548:7:11","nodeType":"VariableDeclaration","scope":4019,"src":"4531:24:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3991,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3992,"nodeType":"ArrayTypeName","src":"4531:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":3996,"mutability":"mutable","name":"values","nameLocation":"4582:6:11","nodeType":"VariableDeclaration","scope":4019,"src":"4565:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3994,"name":"uint256","nodeType":"ElementaryTypeName","src":"4565:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3995,"nodeType":"ArrayTypeName","src":"4565:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3999,"mutability":"mutable","name":"calldatas","nameLocation":"4613:9:11","nodeType":"VariableDeclaration","scope":4019,"src":"4598:24:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":3997,"name":"bytes","nodeType":"ElementaryTypeName","src":"4598:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":3998,"nodeType":"ArrayTypeName","src":"4598:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":4001,"mutability":"mutable","name":"descriptionHash","nameLocation":"4640:15:11","nodeType":"VariableDeclaration","scope":4019,"src":"4632:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4632:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4487:174:11"},"returnParameters":{"id":4004,"nodeType":"ParameterList","parameters":[],"src":"4688:0:11"},"scope":4120,"src":"4470:323:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1529],"body":{"id":4069,"nodeType":"Block","src":"5402:281:11","statements":[{"assignments":[4038],"declarations":[{"constant":false,"id":4038,"mutability":"mutable","name":"proposalId","nameLocation":"5420:10:11","nodeType":"VariableDeclaration","scope":4069,"src":"5412:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4037,"name":"uint256","nodeType":"ElementaryTypeName","src":"5412:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4046,"initialValue":{"arguments":[{"id":4041,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"5447:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":4042,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4026,"src":"5456:6:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":4043,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4029,"src":"5464:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":4044,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4031,"src":"5475:15:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4039,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5433:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorTimelockControl_$4120_$","typeString":"type(contract super GovernorTimelockControl)"}},"id":4040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_cancel","nodeType":"MemberAccess","referencedDeclaration":1529,"src":"5433:13:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) returns (uint256)"}},"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5433:58:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5412:79:11"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4047,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"5506:12:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":4049,"indexExpression":{"id":4048,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4038,"src":"5519:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5506:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5534:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5506:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4066,"nodeType":"IfStatement","src":"5502:147:11","trueBody":{"id":4065,"nodeType":"Block","src":"5537:112:11","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4055,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"5568:12:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":4057,"indexExpression":{"id":4056,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4038,"src":"5581:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5568:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4052,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"5551:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":4054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancel","nodeType":"MemberAccess","referencedDeclaration":2831,"src":"5551:16:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":4058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5551:42:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4059,"nodeType":"ExpressionStatement","src":"5551:42:11"},{"expression":{"id":4063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5607:31:11","subExpression":{"baseExpression":{"id":4060,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"5614:12:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":4062,"indexExpression":{"id":4061,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4038,"src":"5627:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5614:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4064,"nodeType":"ExpressionStatement","src":"5607:31:11"}]}},{"expression":{"id":4067,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4038,"src":"5666:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4036,"id":4068,"nodeType":"Return","src":"5659:17:11"}]},"documentation":{"id":4020,"nodeType":"StructuredDocumentation","src":"4799:148:11","text":" @dev Overridden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already\n been queued."},"id":4070,"implemented":true,"kind":"function","modifiers":[],"name":"_cancel","nameLocation":"5210:7:11","nodeType":"FunctionDefinition","overrides":{"id":4033,"nodeType":"OverrideSpecifier","overrides":[],"src":"5375:8:11"},"parameters":{"id":4032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4023,"mutability":"mutable","name":"targets","nameLocation":"5244:7:11","nodeType":"VariableDeclaration","scope":4070,"src":"5227:24:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4021,"name":"address","nodeType":"ElementaryTypeName","src":"5227:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4022,"nodeType":"ArrayTypeName","src":"5227:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":4026,"mutability":"mutable","name":"values","nameLocation":"5278:6:11","nodeType":"VariableDeclaration","scope":4070,"src":"5261:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4024,"name":"uint256","nodeType":"ElementaryTypeName","src":"5261:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4025,"nodeType":"ArrayTypeName","src":"5261:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4029,"mutability":"mutable","name":"calldatas","nameLocation":"5309:9:11","nodeType":"VariableDeclaration","scope":4070,"src":"5294:24:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4027,"name":"bytes","nodeType":"ElementaryTypeName","src":"5294:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4028,"nodeType":"ArrayTypeName","src":"5294:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":4031,"mutability":"mutable","name":"descriptionHash","nameLocation":"5336:15:11","nodeType":"VariableDeclaration","scope":4070,"src":"5328:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5328:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5217:140:11"},"returnParameters":{"id":4036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4070,"src":"5393:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4034,"name":"uint256","nodeType":"ElementaryTypeName","src":"5393:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5392:9:11"},"scope":4120,"src":"5201:482:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1885],"body":{"id":4082,"nodeType":"Block","src":"5867:42:11","statements":[{"expression":{"arguments":[{"id":4079,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"5892:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":4078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5884:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4077,"name":"address","nodeType":"ElementaryTypeName","src":"5884:7:11","typeDescriptions":{}}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5884:18:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4076,"id":4081,"nodeType":"Return","src":"5877:25:11"}]},"documentation":{"id":4071,"nodeType":"StructuredDocumentation","src":"5689:103:11","text":" @dev Address through which the governor executes action. In this case, the timelock."},"id":4083,"implemented":true,"kind":"function","modifiers":[],"name":"_executor","nameLocation":"5806:9:11","nodeType":"FunctionDefinition","overrides":{"id":4073,"nodeType":"OverrideSpecifier","overrides":[],"src":"5840:8:11"},"parameters":{"id":4072,"nodeType":"ParameterList","parameters":[],"src":"5815:2:11"},"returnParameters":{"id":4076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4083,"src":"5858:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4074,"name":"address","nodeType":"ElementaryTypeName","src":"5858:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5857:9:11"},"scope":4120,"src":"5797:112:11","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4096,"nodeType":"Block","src":"6335:45:11","statements":[{"expression":{"arguments":[{"id":4093,"name":"newTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4087,"src":"6361:11:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":4092,"name":"_updateTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"6345:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_TimelockController_$3154_$returns$__$","typeString":"function (contract TimelockController)"}},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6345:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4095,"nodeType":"ExpressionStatement","src":"6345:28:11"}]},"documentation":{"id":4084,"nodeType":"StructuredDocumentation","src":"5915:327:11","text":" @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates\n must be proposed, scheduled, and executed through governance proposals.\n CAUTION: It is not recommended to change the timelock while there are other queued governance proposals."},"functionSelector":"a890c910","id":4097,"implemented":true,"kind":"function","modifiers":[{"id":4090,"kind":"modifierInvocation","modifierName":{"id":4089,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"6320:14:11"},"nodeType":"ModifierInvocation","src":"6320:14:11"}],"name":"updateTimelock","nameLocation":"6256:14:11","nodeType":"FunctionDefinition","parameters":{"id":4088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4087,"mutability":"mutable","name":"newTimelock","nameLocation":"6290:11:11","nodeType":"VariableDeclaration","scope":4097,"src":"6271:30:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"},"typeName":{"id":4086,"nodeType":"UserDefinedTypeName","pathNode":{"id":4085,"name":"TimelockController","nodeType":"IdentifierPath","referencedDeclaration":3154,"src":"6271:18:11"},"referencedDeclaration":3154,"src":"6271:18:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"visibility":"internal"}],"src":"6270:32:11"},"returnParameters":{"id":4091,"nodeType":"ParameterList","parameters":[],"src":"6335:0:11"},"scope":4120,"src":"6247:133:11","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":4118,"nodeType":"Block","src":"6451:111:11","statements":[{"eventCall":{"arguments":[{"arguments":[{"id":4106,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"6489:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":4105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6481:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4104,"name":"address","nodeType":"ElementaryTypeName","src":"6481:7:11","typeDescriptions":{}}},"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6481:18:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":4110,"name":"newTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4100,"src":"6509:11:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}],"id":4109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6501:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4108,"name":"address","nodeType":"ElementaryTypeName","src":"6501:7:11","typeDescriptions":{}}},"id":4111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6501:20:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4103,"name":"TimelockChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3767,"src":"6466:14:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6466:56:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4113,"nodeType":"EmitStatement","src":"6461:61:11"},{"expression":{"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4114,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"6532:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4115,"name":"newTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4100,"src":"6544:11:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"src":"6532:23:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"id":4117,"nodeType":"ExpressionStatement","src":"6532:23:11"}]},"id":4119,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTimelock","nameLocation":"6395:15:11","nodeType":"FunctionDefinition","parameters":{"id":4101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4100,"mutability":"mutable","name":"newTimelock","nameLocation":"6430:11:11","nodeType":"VariableDeclaration","scope":4119,"src":"6411:30:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"},"typeName":{"id":4099,"nodeType":"UserDefinedTypeName","pathNode":{"id":4098,"name":"TimelockController","nodeType":"IdentifierPath","referencedDeclaration":3154,"src":"6411:18:11"},"referencedDeclaration":3154,"src":"6411:18:11","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"visibility":"internal"}],"src":"6410:32:11"},"returnParameters":{"id":4102,"nodeType":"ParameterList","parameters":[],"src":"6451:0:11"},"scope":4120,"src":"6386:176:11","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":4121,"src":"1325:5239:11","usedErrors":[12523]}],"src":"133:6432:11"},"id":11},"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"DoubleEndedQueue":[12857],"ECDSA":[9157],"EIP712":[9813],"ERC165":[9837],"Governor":[1952],"GovernorVotes":[4162],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"IGovernor":[2249],"IVotes":[4281],"SafeCast":[12204],"Strings":[8555],"Timers":[8769]},"id":4163,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4122,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:12"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":4123,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4163,"sourceUnit":1953,"src":"148:25:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"../utils/IVotes.sol","id":4124,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4163,"sourceUnit":4282,"src":"174:29:12","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4126,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"405:8:12"},"id":4127,"nodeType":"InheritanceSpecifier","src":"405:8:12"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":4125,"nodeType":"StructuredDocumentation","src":"205:164:12","text":" @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token, or since v4.5 an {ERC721Votes} token.\n _Available since v4.3._"},"fullyImplemented":false,"id":4162,"linearizedBaseContracts":[4162,1952,5103,7110,2249,9813,9837,9849,8255],"name":"GovernorVotes","nameLocation":"388:13:12","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"fc0c546a","id":4130,"mutability":"immutable","name":"token","nameLocation":"444:5:12","nodeType":"VariableDeclaration","scope":4162,"src":"420:29:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"},"typeName":{"id":4129,"nodeType":"UserDefinedTypeName","pathNode":{"id":4128,"name":"IVotes","nodeType":"IdentifierPath","referencedDeclaration":4281,"src":"420:6:12"},"referencedDeclaration":4281,"src":"420:6:12","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"visibility":"public"},{"body":{"id":4140,"nodeType":"Block","src":"489:37:12","statements":[{"expression":{"id":4138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4136,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"499:5:12","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4137,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4133,"src":"507:12:12","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"src":"499:20:12","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"id":4139,"nodeType":"ExpressionStatement","src":"499:20:12"}]},"id":4141,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4133,"mutability":"mutable","name":"tokenAddress","nameLocation":"475:12:12","nodeType":"VariableDeclaration","scope":4141,"src":"468:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"},"typeName":{"id":4132,"nodeType":"UserDefinedTypeName","pathNode":{"id":4131,"name":"IVotes","nodeType":"IdentifierPath","referencedDeclaration":4281,"src":"468:6:12"},"referencedDeclaration":4281,"src":"468:6:12","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"visibility":"internal"}],"src":"467:21:12"},"returnParameters":{"id":4135,"nodeType":"ParameterList","parameters":[],"src":"489:0:12"},"scope":4162,"src":"456:70:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1052],"body":{"id":4160,"nodeType":"Block","src":"812:64:12","statements":[{"expression":{"arguments":[{"id":4156,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"848:7:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4157,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"857:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4154,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"829:5:12","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPastVotes","nodeType":"MemberAccess","referencedDeclaration":4242,"src":"829:18:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"829:40:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4153,"id":4159,"nodeType":"Return","src":"822:47:12"}]},"documentation":{"id":4142,"nodeType":"StructuredDocumentation","src":"532:114:12","text":" Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes})."},"id":4161,"implemented":true,"kind":"function","modifiers":[],"name":"_getVotes","nameLocation":"660:9:12","nodeType":"FunctionDefinition","overrides":{"id":4150,"nodeType":"OverrideSpecifier","overrides":[],"src":"785:8:12"},"parameters":{"id":4149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4144,"mutability":"mutable","name":"account","nameLocation":"687:7:12","nodeType":"VariableDeclaration","scope":4161,"src":"679:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4143,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4146,"mutability":"mutable","name":"blockNumber","nameLocation":"712:11:12","nodeType":"VariableDeclaration","scope":4161,"src":"704:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4145,"name":"uint256","nodeType":"ElementaryTypeName","src":"704:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4161,"src":"733:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4147,"name":"bytes","nodeType":"ElementaryTypeName","src":"733:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"669:93:12"},"returnParameters":{"id":4153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4161,"src":"803:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4151,"name":"uint256","nodeType":"ElementaryTypeName","src":"803:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"802:9:12"},"scope":4162,"src":"651:225:12","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":4163,"src":"370:508:12","usedErrors":[12523]}],"src":"123:756:12"},"id":12},"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","exportedSymbols":{"ERC165":[9837],"IERC165":[9849],"IGovernor":[2249],"IGovernorTimelock":[4203]},"id":4204,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4164,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:13"},{"absolutePath":"@openzeppelin/contracts/governance/IGovernor.sol","file":"../IGovernor.sol","id":4165,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4204,"sourceUnit":2250,"src":"137:26:13","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4167,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"312:9:13"},"id":4168,"nodeType":"InheritanceSpecifier","src":"312:9:13"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":4166,"nodeType":"StructuredDocumentation","src":"165:107:13","text":" @dev Extension of the {IGovernor} for timelock supporting modules.\n _Available since v4.3._"},"fullyImplemented":false,"id":4203,"linearizedBaseContracts":[4203,2249,9849],"name":"IGovernorTimelock","nameLocation":"291:17:13","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":4174,"name":"ProposalQueued","nameLocation":"334:14:13","nodeType":"EventDefinition","parameters":{"id":4173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4170,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"357:10:13","nodeType":"VariableDeclaration","scope":4174,"src":"349:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4169,"name":"uint256","nodeType":"ElementaryTypeName","src":"349:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4172,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"377:3:13","nodeType":"VariableDeclaration","scope":4174,"src":"369:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4171,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"348:33:13"},"src":"328:54:13"},{"functionSelector":"d33219b4","id":4179,"implemented":false,"kind":"function","modifiers":[],"name":"timelock","nameLocation":"397:8:13","nodeType":"FunctionDefinition","parameters":{"id":4175,"nodeType":"ParameterList","parameters":[],"src":"405:2:13"},"returnParameters":{"id":4178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4179,"src":"437:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4176,"name":"address","nodeType":"ElementaryTypeName","src":"437:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"436:9:13"},"scope":4203,"src":"388:58:13","stateMutability":"view","virtual":true,"visibility":"public"},{"functionSelector":"ab58fb8e","id":4186,"implemented":false,"kind":"function","modifiers":[],"name":"proposalEta","nameLocation":"461:11:13","nodeType":"FunctionDefinition","parameters":{"id":4182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4181,"mutability":"mutable","name":"proposalId","nameLocation":"481:10:13","nodeType":"VariableDeclaration","scope":4186,"src":"473:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4180,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"472:20:13"},"returnParameters":{"id":4185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4186,"src":"522:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4183,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"521:9:13"},"scope":4203,"src":"452:79:13","stateMutability":"view","virtual":true,"visibility":"public"},{"functionSelector":"160cbed7","id":4202,"implemented":false,"kind":"function","modifiers":[],"name":"queue","nameLocation":"546:5:13","nodeType":"FunctionDefinition","parameters":{"id":4198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4189,"mutability":"mutable","name":"targets","nameLocation":"578:7:13","nodeType":"VariableDeclaration","scope":4202,"src":"561:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4187,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4188,"nodeType":"ArrayTypeName","src":"561:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":4192,"mutability":"mutable","name":"values","nameLocation":"612:6:13","nodeType":"VariableDeclaration","scope":4202,"src":"595:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4190,"name":"uint256","nodeType":"ElementaryTypeName","src":"595:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4191,"nodeType":"ArrayTypeName","src":"595:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4195,"mutability":"mutable","name":"calldatas","nameLocation":"643:9:13","nodeType":"VariableDeclaration","scope":4202,"src":"628:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4193,"name":"bytes","nodeType":"ElementaryTypeName","src":"628:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4194,"nodeType":"ArrayTypeName","src":"628:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":4197,"mutability":"mutable","name":"descriptionHash","nameLocation":"670:15:13","nodeType":"VariableDeclaration","scope":4202,"src":"662:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"662:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"551:140:13"},"returnParameters":{"id":4201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4200,"mutability":"mutable","name":"proposalId","nameLocation":"724:10:13","nodeType":"VariableDeclaration","scope":4202,"src":"716:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4199,"name":"uint256","nodeType":"ElementaryTypeName","src":"716:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"715:20:13"},"scope":4203,"src":"537:199:13","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":4204,"src":"273:465:13","usedErrors":[]}],"src":"112:627:13"},"id":13},"@openzeppelin/contracts/governance/utils/IVotes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","exportedSymbols":{"IVotes":[4281]},"id":4282,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4205,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:14"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":4206,"nodeType":"StructuredDocumentation","src":"135:132:14","text":" @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.\n _Available since v4.5._"},"fullyImplemented":false,"id":4281,"linearizedBaseContracts":[4281],"name":"IVotes","nameLocation":"278:6:14","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4207,"nodeType":"StructuredDocumentation","src":"291:71:14","text":" @dev Emitted when an account changes their delegate."},"id":4215,"name":"DelegateChanged","nameLocation":"373:15:14","nodeType":"EventDefinition","parameters":{"id":4214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4209,"indexed":true,"mutability":"mutable","name":"delegator","nameLocation":"405:9:14","nodeType":"VariableDeclaration","scope":4215,"src":"389:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4208,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4211,"indexed":true,"mutability":"mutable","name":"fromDelegate","nameLocation":"432:12:14","nodeType":"VariableDeclaration","scope":4215,"src":"416:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4210,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4213,"indexed":true,"mutability":"mutable","name":"toDelegate","nameLocation":"462:10:14","nodeType":"VariableDeclaration","scope":4215,"src":"446:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4212,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"388:85:14"},"src":"367:107:14"},{"anonymous":false,"documentation":{"id":4216,"nodeType":"StructuredDocumentation","src":"480:124:14","text":" @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."},"id":4224,"name":"DelegateVotesChanged","nameLocation":"615:20:14","nodeType":"EventDefinition","parameters":{"id":4223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4218,"indexed":true,"mutability":"mutable","name":"delegate","nameLocation":"652:8:14","nodeType":"VariableDeclaration","scope":4224,"src":"636:24:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4217,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4220,"indexed":false,"mutability":"mutable","name":"previousBalance","nameLocation":"670:15:14","nodeType":"VariableDeclaration","scope":4224,"src":"662:23:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4219,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4222,"indexed":false,"mutability":"mutable","name":"newBalance","nameLocation":"695:10:14","nodeType":"VariableDeclaration","scope":4224,"src":"687:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4221,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"635:71:14"},"src":"609:98:14"},{"documentation":{"id":4225,"nodeType":"StructuredDocumentation","src":"713:79:14","text":" @dev Returns the current amount of votes that `account` has."},"functionSelector":"9ab24eb0","id":4232,"implemented":false,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"806:8:14","nodeType":"FunctionDefinition","parameters":{"id":4228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4227,"mutability":"mutable","name":"account","nameLocation":"823:7:14","nodeType":"VariableDeclaration","scope":4232,"src":"815:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4226,"name":"address","nodeType":"ElementaryTypeName","src":"815:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"814:17:14"},"returnParameters":{"id":4231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4232,"src":"855:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4229,"name":"uint256","nodeType":"ElementaryTypeName","src":"855:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"854:9:14"},"scope":4281,"src":"797:67:14","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4233,"nodeType":"StructuredDocumentation","src":"870:114:14","text":" @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"functionSelector":"3a46b1a8","id":4242,"implemented":false,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"998:12:14","nodeType":"FunctionDefinition","parameters":{"id":4238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4235,"mutability":"mutable","name":"account","nameLocation":"1019:7:14","nodeType":"VariableDeclaration","scope":4242,"src":"1011:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4234,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4237,"mutability":"mutable","name":"blockNumber","nameLocation":"1036:11:14","nodeType":"VariableDeclaration","scope":4242,"src":"1028:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1028:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:38:14"},"returnParameters":{"id":4241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4242,"src":"1072:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1071:9:14"},"scope":4281,"src":"989:92:14","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4243,"nodeType":"StructuredDocumentation","src":"1087:365:14","text":" @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n Votes that have not been delegated are still part of total supply, even though they would not participate in a\n vote."},"functionSelector":"8e539e8c","id":4250,"implemented":false,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"1466:18:14","nodeType":"FunctionDefinition","parameters":{"id":4246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4245,"mutability":"mutable","name":"blockNumber","nameLocation":"1493:11:14","nodeType":"VariableDeclaration","scope":4250,"src":"1485:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1484:21:14"},"returnParameters":{"id":4249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4250,"src":"1529:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4247,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1528:9:14"},"scope":4281,"src":"1457:81:14","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4251,"nodeType":"StructuredDocumentation","src":"1544:71:14","text":" @dev Returns the delegate that `account` has chosen."},"functionSelector":"587cde1e","id":4258,"implemented":false,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"1629:9:14","nodeType":"FunctionDefinition","parameters":{"id":4254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4253,"mutability":"mutable","name":"account","nameLocation":"1647:7:14","nodeType":"VariableDeclaration","scope":4258,"src":"1639:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4252,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1638:17:14"},"returnParameters":{"id":4257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4258,"src":"1679:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4255,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:9:14"},"scope":4281,"src":"1620:68:14","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4259,"nodeType":"StructuredDocumentation","src":"1694:71:14","text":" @dev Delegates votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","id":4264,"implemented":false,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"1779:8:14","nodeType":"FunctionDefinition","parameters":{"id":4262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4261,"mutability":"mutable","name":"delegatee","nameLocation":"1796:9:14","nodeType":"VariableDeclaration","scope":4264,"src":"1788:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4260,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1787:19:14"},"returnParameters":{"id":4263,"nodeType":"ParameterList","parameters":[],"src":"1815:0:14"},"scope":4281,"src":"1770:46:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4265,"nodeType":"StructuredDocumentation","src":"1822:67:14","text":" @dev Delegates votes from signer to `delegatee`."},"functionSelector":"c3cda520","id":4280,"implemented":false,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"1903:13:14","nodeType":"FunctionDefinition","parameters":{"id":4278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4267,"mutability":"mutable","name":"delegatee","nameLocation":"1934:9:14","nodeType":"VariableDeclaration","scope":4280,"src":"1926:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4266,"name":"address","nodeType":"ElementaryTypeName","src":"1926:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4269,"mutability":"mutable","name":"nonce","nameLocation":"1961:5:14","nodeType":"VariableDeclaration","scope":4280,"src":"1953:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4268,"name":"uint256","nodeType":"ElementaryTypeName","src":"1953:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4271,"mutability":"mutable","name":"expiry","nameLocation":"1984:6:14","nodeType":"VariableDeclaration","scope":4280,"src":"1976:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4270,"name":"uint256","nodeType":"ElementaryTypeName","src":"1976:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4273,"mutability":"mutable","name":"v","nameLocation":"2006:1:14","nodeType":"VariableDeclaration","scope":4280,"src":"2000:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4272,"name":"uint8","nodeType":"ElementaryTypeName","src":"2000:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4275,"mutability":"mutable","name":"r","nameLocation":"2025:1:14","nodeType":"VariableDeclaration","scope":4280,"src":"2017:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2017:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4277,"mutability":"mutable","name":"s","nameLocation":"2044:1:14","nodeType":"VariableDeclaration","scope":4280,"src":"2036:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2036:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1916:135:14"},"returnParameters":{"id":4279,"nodeType":"ParameterList","parameters":[],"src":"2060:0:14"},"scope":4281,"src":"1894:167:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4282,"src":"268:1795:14","usedErrors":[]}],"src":"110:1954:14"},"id":14},"@openzeppelin/contracts/governance/utils/Votes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/utils/Votes.sol","exportedSymbols":{"Checkpoints":[8233],"Context":[8255],"Counters":[8329],"ECDSA":[9157],"EIP712":[9813],"IVotes":[4281],"Math":[10353],"SafeCast":[12204],"Strings":[8555],"Votes":[4735]},"id":4736,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4283,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:15"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":4284,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4736,"sourceUnit":8256,"src":"134:33:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","file":"../../utils/Counters.sol","id":4285,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4736,"sourceUnit":8330,"src":"168:34:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Checkpoints.sol","file":"../../utils/Checkpoints.sol","id":4286,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4736,"sourceUnit":8234,"src":"203:37:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","file":"../../utils/cryptography/draft-EIP712.sol","id":4287,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4736,"sourceUnit":9814,"src":"241:51:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"./IVotes.sol","id":4288,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4736,"sourceUnit":4282,"src":"293:22:15","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4290,"name":"IVotes","nodeType":"IdentifierPath","referencedDeclaration":4281,"src":"1703:6:15"},"id":4291,"nodeType":"InheritanceSpecifier","src":"1703:6:15"},{"baseName":{"id":4292,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"1711:7:15"},"id":4293,"nodeType":"InheritanceSpecifier","src":"1711:7:15"},{"baseName":{"id":4294,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":9813,"src":"1720:6:15"},"id":4295,"nodeType":"InheritanceSpecifier","src":"1720:6:15"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":4289,"nodeType":"StructuredDocumentation","src":"317:1358:15","text":" @dev This is a base abstract contract that tracks voting units, which are a measure of voting power that can be\n transferred, and provides a system of vote delegation, where an account can delegate its voting units to a sort of\n \"representative\" that will pool delegated voting units from different accounts and can then use it to vote in\n decisions. In fact, voting units _must_ be delegated in order to count as actual votes, and an account has to\n delegate those votes to itself if it wishes to participate in decisions and does not have a trusted representative.\n This contract is often combined with a token contract such that voting units correspond to token units. For an\n example, see {ERC721Votes}.\n The full history of delegate votes is tracked on-chain so that governance protocols can consider votes as distributed\n at a particular block number to protect against flash loans and double voting. The opt-in delegate system makes the\n cost of this history tracking optional.\n When using this module the derived contract must implement {_getVotingUnits} (for example, make it return\n {ERC721-balanceOf}), and can use {_transferVotingUnits} to track a change in the distribution of those units (in the\n previous example, it would be included in {ERC721-_beforeTokenTransfer}).\n _Available since v4.5._"},"fullyImplemented":false,"id":4735,"linearizedBaseContracts":[4735,9813,8255,4281],"name":"Votes","nameLocation":"1694:5:15","nodeType":"ContractDefinition","nodes":[{"id":4299,"libraryName":{"id":4296,"name":"Checkpoints","nodeType":"IdentifierPath","referencedDeclaration":8233,"src":"1739:11:15"},"nodeType":"UsingForDirective","src":"1733:42:15","typeName":{"id":4298,"nodeType":"UserDefinedTypeName","pathNode":{"id":4297,"name":"Checkpoints.History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"1755:19:15"},"referencedDeclaration":8014,"src":"1755:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}}},{"id":4303,"libraryName":{"id":4300,"name":"Counters","nodeType":"IdentifierPath","referencedDeclaration":8329,"src":"1786:8:15"},"nodeType":"UsingForDirective","src":"1780:36:15","typeName":{"id":4302,"nodeType":"UserDefinedTypeName","pathNode":{"id":4301,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"1799:16:15"},"referencedDeclaration":8261,"src":"1799:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}}},{"constant":true,"id":4308,"mutability":"constant","name":"_DELEGATION_TYPEHASH","nameLocation":"1847:20:15","nodeType":"VariableDeclaration","scope":4735,"src":"1822:127:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1822:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929","id":4306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1888:60:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf","typeString":"literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""},"value":"Delegation(address delegatee,uint256 nonce,uint256 expiry)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf","typeString":"literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""}],"id":4305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1878:9:15","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1878:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":4312,"mutability":"mutable","name":"_delegation","nameLocation":"1992:11:15","nodeType":"VariableDeclaration","scope":4735,"src":"1956:47:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":4311,"keyType":{"id":4309,"name":"address","nodeType":"ElementaryTypeName","src":"1964:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1956:27:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":4310,"name":"address","nodeType":"ElementaryTypeName","src":"1975:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":4317,"mutability":"mutable","name":"_delegateCheckpoints","nameLocation":"2057:20:15","nodeType":"VariableDeclaration","scope":4735,"src":"2009:68:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History)"},"typeName":{"id":4316,"keyType":{"id":4313,"name":"address","nodeType":"ElementaryTypeName","src":"2017:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2009:39:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History)"},"valueType":{"id":4315,"nodeType":"UserDefinedTypeName","pathNode":{"id":4314,"name":"Checkpoints.History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"2028:19:15"},"referencedDeclaration":8014,"src":"2028:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}}},"visibility":"private"},{"constant":false,"id":4320,"mutability":"mutable","name":"_totalCheckpoints","nameLocation":"2111:17:15","nodeType":"VariableDeclaration","scope":4735,"src":"2083:45:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History"},"typeName":{"id":4319,"nodeType":"UserDefinedTypeName","pathNode":{"id":4318,"name":"Checkpoints.History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"2083:19:15"},"referencedDeclaration":8014,"src":"2083:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"private"},{"constant":false,"id":4325,"mutability":"mutable","name":"_nonces","nameLocation":"2180:7:15","nodeType":"VariableDeclaration","scope":4735,"src":"2135:52:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"typeName":{"id":4324,"keyType":{"id":4321,"name":"address","nodeType":"ElementaryTypeName","src":"2143:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2135:36:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"valueType":{"id":4323,"nodeType":"UserDefinedTypeName","pathNode":{"id":4322,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"2154:16:15"},"referencedDeclaration":8261,"src":"2154:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}}},"visibility":"private"},{"baseFunctions":[4232],"body":{"id":4340,"nodeType":"Block","src":"2360:62:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":4334,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4317,"src":"2377:20:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":4336,"indexExpression":{"id":4335,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4328,"src":"2398:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2377:29:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"latest","nodeType":"MemberAccess","referencedDeclaration":8043,"src":"2377:36:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint256)"}},"id":4338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2377:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4333,"id":4339,"nodeType":"Return","src":"2370:45:15"}]},"documentation":{"id":4326,"nodeType":"StructuredDocumentation","src":"2194:79:15","text":" @dev Returns the current amount of votes that `account` has."},"functionSelector":"9ab24eb0","id":4341,"implemented":true,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"2287:8:15","nodeType":"FunctionDefinition","overrides":{"id":4330,"nodeType":"OverrideSpecifier","overrides":[],"src":"2333:8:15"},"parameters":{"id":4329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4328,"mutability":"mutable","name":"account","nameLocation":"2304:7:15","nodeType":"VariableDeclaration","scope":4341,"src":"2296:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4327,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2295:17:15"},"returnParameters":{"id":4333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4341,"src":"2351:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4331,"name":"uint256","nodeType":"ElementaryTypeName","src":"2351:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2350:9:15"},"scope":4735,"src":"2278:144:15","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4242],"body":{"id":4359,"nodeType":"Block","src":"2741:77:15","statements":[{"expression":{"arguments":[{"id":4356,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"2799:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":4352,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4317,"src":"2758:20:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":4354,"indexExpression":{"id":4353,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4344,"src":"2779:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758:29:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getAtBlock","nodeType":"MemberAccess","referencedDeclaration":8119,"src":"2758:40:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) view returns (uint256)"}},"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2758:53:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4351,"id":4358,"nodeType":"Return","src":"2751:60:15"}]},"documentation":{"id":4342,"nodeType":"StructuredDocumentation","src":"2428:201:15","text":" @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\n Requirements:\n - `blockNumber` must have been already mined"},"functionSelector":"3a46b1a8","id":4360,"implemented":true,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"2643:12:15","nodeType":"FunctionDefinition","overrides":{"id":4348,"nodeType":"OverrideSpecifier","overrides":[],"src":"2714:8:15"},"parameters":{"id":4347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4344,"mutability":"mutable","name":"account","nameLocation":"2664:7:15","nodeType":"VariableDeclaration","scope":4360,"src":"2656:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4343,"name":"address","nodeType":"ElementaryTypeName","src":"2656:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4346,"mutability":"mutable","name":"blockNumber","nameLocation":"2681:11:15","nodeType":"VariableDeclaration","scope":4360,"src":"2673:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4345,"name":"uint256","nodeType":"ElementaryTypeName","src":"2673:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2655:38:15"},"returnParameters":{"id":4351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4360,"src":"2732:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4349,"name":"uint256","nodeType":"ElementaryTypeName","src":"2732:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2731:9:15"},"scope":4735,"src":"2634:184:15","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4250],"body":{"id":4382,"nodeType":"Block","src":"3377:140:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4370,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4363,"src":"3395:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4371,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3409:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"3409:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3395:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f7465733a20626c6f636b206e6f7420796574206d696e6564","id":4374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3423:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_83c09804cf777c619c7ba082380b263866073c54e541883e3b7cb00a4aa7fe69","typeString":"literal_string \"Votes: block not yet mined\""},"value":"Votes: block not yet mined"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_83c09804cf777c619c7ba082380b263866073c54e541883e3b7cb00a4aa7fe69","typeString":"literal_string \"Votes: block not yet mined\""}],"id":4369,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3387:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3387:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4376,"nodeType":"ExpressionStatement","src":"3387:65:15"},{"expression":{"arguments":[{"id":4379,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4363,"src":"3498:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4377,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"3469:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getAtBlock","nodeType":"MemberAccess","referencedDeclaration":8119,"src":"3469:28:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) view returns (uint256)"}},"id":4380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3469:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4368,"id":4381,"nodeType":"Return","src":"3462:48:15"}]},"documentation":{"id":4361,"nodeType":"StructuredDocumentation","src":"2824:452:15","text":" @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n Votes that have not been delegated are still part of total supply, even though they would not participate in a\n vote.\n Requirements:\n - `blockNumber` must have been already mined"},"functionSelector":"8e539e8c","id":4383,"implemented":true,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"3290:18:15","nodeType":"FunctionDefinition","overrides":{"id":4365,"nodeType":"OverrideSpecifier","overrides":[],"src":"3350:8:15"},"parameters":{"id":4364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4363,"mutability":"mutable","name":"blockNumber","nameLocation":"3317:11:15","nodeType":"VariableDeclaration","scope":4383,"src":"3309:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4362,"name":"uint256","nodeType":"ElementaryTypeName","src":"3309:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3308:21:15"},"returnParameters":{"id":4368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4383,"src":"3368:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4366,"name":"uint256","nodeType":"ElementaryTypeName","src":"3368:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3367:9:15"},"scope":4735,"src":"3281:236:15","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4393,"nodeType":"Block","src":"3661:50:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4389,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"3678:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"latest","nodeType":"MemberAccess","referencedDeclaration":8043,"src":"3678:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint256)"}},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3678:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4388,"id":4392,"nodeType":"Return","src":"3671:33:15"}]},"documentation":{"id":4384,"nodeType":"StructuredDocumentation","src":"3523:66:15","text":" @dev Returns the current total supply of votes."},"id":4394,"implemented":true,"kind":"function","modifiers":[],"name":"_getTotalSupply","nameLocation":"3603:15:15","nodeType":"FunctionDefinition","parameters":{"id":4385,"nodeType":"ParameterList","parameters":[],"src":"3618:2:15"},"returnParameters":{"id":4388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4394,"src":"3652:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4386,"name":"uint256","nodeType":"ElementaryTypeName","src":"3652:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3651:9:15"},"scope":4735,"src":"3594:117:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[4258],"body":{"id":4407,"nodeType":"Block","src":"3876:44:15","statements":[{"expression":{"baseExpression":{"id":4403,"name":"_delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4312,"src":"3893:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4405,"indexExpression":{"id":4404,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"3905:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3893:20:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4402,"id":4406,"nodeType":"Return","src":"3886:27:15"}]},"documentation":{"id":4395,"nodeType":"StructuredDocumentation","src":"3717:71:15","text":" @dev Returns the delegate that `account` has chosen."},"functionSelector":"587cde1e","id":4408,"implemented":true,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"3802:9:15","nodeType":"FunctionDefinition","overrides":{"id":4399,"nodeType":"OverrideSpecifier","overrides":[],"src":"3849:8:15"},"parameters":{"id":4398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4397,"mutability":"mutable","name":"account","nameLocation":"3820:7:15","nodeType":"VariableDeclaration","scope":4408,"src":"3812:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4396,"name":"address","nodeType":"ElementaryTypeName","src":"3812:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3811:17:15"},"returnParameters":{"id":4402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4408,"src":"3867:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4400,"name":"address","nodeType":"ElementaryTypeName","src":"3867:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3866:9:15"},"scope":4735,"src":"3793:127:15","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4264],"body":{"id":4425,"nodeType":"Block","src":"4063:86:15","statements":[{"assignments":[4416],"declarations":[{"constant":false,"id":4416,"mutability":"mutable","name":"account","nameLocation":"4081:7:15","nodeType":"VariableDeclaration","scope":4425,"src":"4073:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4415,"name":"address","nodeType":"ElementaryTypeName","src":"4073:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4419,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4417,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"4091:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4091:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4073:30:15"},{"expression":{"arguments":[{"id":4421,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"4123:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4422,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4411,"src":"4132:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4420,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4521,"src":"4113:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4113:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4424,"nodeType":"ExpressionStatement","src":"4113:29:15"}]},"documentation":{"id":4409,"nodeType":"StructuredDocumentation","src":"3926:71:15","text":" @dev Delegates votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","id":4426,"implemented":true,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"4011:8:15","nodeType":"FunctionDefinition","overrides":{"id":4413,"nodeType":"OverrideSpecifier","overrides":[],"src":"4054:8:15"},"parameters":{"id":4412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4411,"mutability":"mutable","name":"delegatee","nameLocation":"4028:9:15","nodeType":"VariableDeclaration","scope":4426,"src":"4020:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4410,"name":"address","nodeType":"ElementaryTypeName","src":"4020:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4019:19:15"},"returnParameters":{"id":4414,"nodeType":"ParameterList","parameters":[],"src":"4063:0:15"},"scope":4735,"src":"4002:147:15","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4280],"body":{"id":4485,"nodeType":"Block","src":"4409:382:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4444,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4427:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4427:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":4446,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4433,"src":"4446:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4427:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f7465733a207369676e61747572652065787069726564","id":4448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4454:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d5ff3f347872d51f9a2d63fc6e49268c6b2f830105a4897008d3883d68bc66f","typeString":"literal_string \"Votes: signature expired\""},"value":"Votes: signature expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d5ff3f347872d51f9a2d63fc6e49268c6b2f830105a4897008d3883d68bc66f","typeString":"literal_string \"Votes: signature expired\""}],"id":4443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4419:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4419:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4450,"nodeType":"ExpressionStatement","src":"4419:62:15"},{"assignments":[4452],"declarations":[{"constant":false,"id":4452,"mutability":"mutable","name":"signer","nameLocation":"4499:6:15","nodeType":"VariableDeclaration","scope":4485,"src":"4491:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4451,"name":"address","nodeType":"ElementaryTypeName","src":"4491:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4470,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":4459,"name":"_DELEGATION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4308,"src":"4573:20:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4460,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4429,"src":"4595:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4461,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"4606:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4462,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4433,"src":"4613:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4562:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4562:10:15","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4562:58:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4456,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4552:9:15","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4552:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4455,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9812,"src":"4535:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":4465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4535:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4466,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4435,"src":"4636:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":4467,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"4651:1:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"4666:1:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4453,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"4508:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9157_$","typeString":"type(library ECDSA)"}},"id":4454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":9097,"src":"4508:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4508:169:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4491:186:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4472,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"4695:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":4474,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4714:6:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4473,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4701,"src":"4704:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4704:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4695:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f7465733a20696e76616c6964206e6f6e6365","id":4477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4723:22:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_13ff7ccc79996334a065c9426876e6554e1ae6a3f574e0ced02fc6062a794b0c","typeString":"literal_string \"Votes: invalid nonce\""},"value":"Votes: invalid nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13ff7ccc79996334a065c9426876e6554e1ae6a3f574e0ced02fc6062a794b0c","typeString":"literal_string \"Votes: invalid nonce\""}],"id":4471,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4687:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4687:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4479,"nodeType":"ExpressionStatement","src":"4687:59:15"},{"expression":{"arguments":[{"id":4481,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4766:6:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4482,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4429,"src":"4774:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4480,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4521,"src":"4756:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4756:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4484,"nodeType":"ExpressionStatement","src":"4756:28:15"}]},"documentation":{"id":4427,"nodeType":"StructuredDocumentation","src":"4155:67:15","text":" @dev Delegates votes from signer to `delegatee`."},"functionSelector":"c3cda520","id":4486,"implemented":true,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"4236:13:15","nodeType":"FunctionDefinition","overrides":{"id":4441,"nodeType":"OverrideSpecifier","overrides":[],"src":"4400:8:15"},"parameters":{"id":4440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4429,"mutability":"mutable","name":"delegatee","nameLocation":"4267:9:15","nodeType":"VariableDeclaration","scope":4486,"src":"4259:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4428,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4431,"mutability":"mutable","name":"nonce","nameLocation":"4294:5:15","nodeType":"VariableDeclaration","scope":4486,"src":"4286:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4430,"name":"uint256","nodeType":"ElementaryTypeName","src":"4286:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4433,"mutability":"mutable","name":"expiry","nameLocation":"4317:6:15","nodeType":"VariableDeclaration","scope":4486,"src":"4309:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4432,"name":"uint256","nodeType":"ElementaryTypeName","src":"4309:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4435,"mutability":"mutable","name":"v","nameLocation":"4339:1:15","nodeType":"VariableDeclaration","scope":4486,"src":"4333:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4434,"name":"uint8","nodeType":"ElementaryTypeName","src":"4333:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4437,"mutability":"mutable","name":"r","nameLocation":"4358:1:15","nodeType":"VariableDeclaration","scope":4486,"src":"4350:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4350:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4439,"mutability":"mutable","name":"s","nameLocation":"4377:1:15","nodeType":"VariableDeclaration","scope":4486,"src":"4369:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4369:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4249:135:15"},"returnParameters":{"id":4442,"nodeType":"ParameterList","parameters":[],"src":"4409:0:15"},"scope":4735,"src":"4227:564:15","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":4520,"nodeType":"Block","src":"5027:241:15","statements":[{"assignments":[4495],"declarations":[{"constant":false,"id":4495,"mutability":"mutable","name":"oldDelegate","nameLocation":"5045:11:15","nodeType":"VariableDeclaration","scope":4520,"src":"5037:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4494,"name":"address","nodeType":"ElementaryTypeName","src":"5037:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4499,"initialValue":{"arguments":[{"id":4497,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"5069:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4496,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4408,"src":"5059:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":4498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5059:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5037:40:15"},{"expression":{"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4500,"name":"_delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4312,"src":"5087:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4502,"indexExpression":{"id":4501,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"5099:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5087:20:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4503,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"5110:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5087:32:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4505,"nodeType":"ExpressionStatement","src":"5087:32:15"},{"eventCall":{"arguments":[{"id":4507,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"5151:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4508,"name":"oldDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4495,"src":"5160:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4509,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"5173:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4506,"name":"DelegateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"5135:15:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5135:48:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4511,"nodeType":"EmitStatement","src":"5130:53:15"},{"expression":{"arguments":[{"id":4513,"name":"oldDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4495,"src":"5212:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4514,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"5225:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":4516,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"5252:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4515,"name":"_getVotingUnits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4734,"src":"5236:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5236:24:15","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":4512,"name":"_moveDelegateVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4644,"src":"5193:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5193:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4519,"nodeType":"ExpressionStatement","src":"5193:68:15"}]},"documentation":{"id":4487,"nodeType":"StructuredDocumentation","src":"4797:153:15","text":" @dev Delegate all of `account`'s voting units to `delegatee`.\n Emits events {DelegateChanged} and {DelegateVotesChanged}."},"id":4521,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"4964:9:15","nodeType":"FunctionDefinition","parameters":{"id":4492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"account","nameLocation":"4982:7:15","nodeType":"VariableDeclaration","scope":4521,"src":"4974:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4488,"name":"address","nodeType":"ElementaryTypeName","src":"4974:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4491,"mutability":"mutable","name":"delegatee","nameLocation":"4999:9:15","nodeType":"VariableDeclaration","scope":4521,"src":"4991:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4490,"name":"address","nodeType":"ElementaryTypeName","src":"4991:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4973:36:15"},"returnParameters":{"id":4493,"nodeType":"ParameterList","parameters":[],"src":"5027:0:15"},"scope":4735,"src":"4955:313:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4571,"nodeType":"Block","src":"5621:266:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4531,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4524,"src":"5635:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5651: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":4533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5643:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4532,"name":"address","nodeType":"ElementaryTypeName","src":"5643:7:15","typeDescriptions":{}}},"id":4535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5643:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5635:18:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4545,"nodeType":"IfStatement","src":"5631:85:15","trueBody":{"id":4544,"nodeType":"Block","src":"5655:61:15","statements":[{"expression":{"arguments":[{"id":4540,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"5692:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":4541,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"5698:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4537,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"5669:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"5669:22:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":4542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5669:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":4543,"nodeType":"ExpressionStatement","src":"5669:36:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4546,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4526,"src":"5729:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5743: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":4548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5735:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4547,"name":"address","nodeType":"ElementaryTypeName","src":"5735:7:15","typeDescriptions":{}}},"id":4550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5735:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5729:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4560,"nodeType":"IfStatement","src":"5725:88:15","trueBody":{"id":4559,"nodeType":"Block","src":"5747:66:15","statements":[{"expression":{"arguments":[{"id":4555,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"5784:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":4556,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"5795:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4552,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"5761:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"5761:22:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":4557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5761:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":4558,"nodeType":"ExpressionStatement","src":"5761:41:15"}]}},{"expression":{"arguments":[{"arguments":[{"id":4563,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4524,"src":"5851:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4562,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4408,"src":"5841:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":4564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5841:15:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":4566,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4526,"src":"5868:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4565,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4408,"src":"5858:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5858:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4568,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"5873:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4561,"name":"_moveDelegateVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4644,"src":"5822:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5822:58:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4570,"nodeType":"ExpressionStatement","src":"5822:58:15"}]},"documentation":{"id":4522,"nodeType":"StructuredDocumentation","src":"5274:223:15","text":" @dev Transfers, mints, or burns voting units. To register a mint, `from` should be zero. To register a burn, `to`\n should be zero. Total supply of voting units will be adjusted with mints and burns."},"id":4572,"implemented":true,"kind":"function","modifiers":[],"name":"_transferVotingUnits","nameLocation":"5511:20:15","nodeType":"FunctionDefinition","parameters":{"id":4529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4524,"mutability":"mutable","name":"from","nameLocation":"5549:4:15","nodeType":"VariableDeclaration","scope":4572,"src":"5541:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4523,"name":"address","nodeType":"ElementaryTypeName","src":"5541:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4526,"mutability":"mutable","name":"to","nameLocation":"5571:2:15","nodeType":"VariableDeclaration","scope":4572,"src":"5563:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4525,"name":"address","nodeType":"ElementaryTypeName","src":"5563:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4528,"mutability":"mutable","name":"amount","nameLocation":"5591:6:15","nodeType":"VariableDeclaration","scope":4572,"src":"5583:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4527,"name":"uint256","nodeType":"ElementaryTypeName","src":"5583:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5531:72:15"},"returnParameters":{"id":4530,"nodeType":"ParameterList","parameters":[],"src":"5621:0:15"},"scope":4735,"src":"5502:385:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4643,"nodeType":"Block","src":"6081:502:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4582,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"6095:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4583,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4577,"src":"6103:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6095:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4585,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4579,"src":"6109:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6118:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6109:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6095:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4642,"nodeType":"IfStatement","src":"6091:486:15","trueBody":{"id":4641,"nodeType":"Block","src":"6121:456:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4589,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"6139:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6155: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":4591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6147:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4590,"name":"address","nodeType":"ElementaryTypeName","src":"6147:7:15","typeDescriptions":{}}},"id":4593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6147:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6139:18:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4614,"nodeType":"IfStatement","src":"6135:215:15","trueBody":{"id":4613,"nodeType":"Block","src":"6159:191:15","statements":[{"assignments":[4596,4598],"declarations":[{"constant":false,"id":4596,"mutability":"mutable","name":"oldValue","nameLocation":"6186:8:15","nodeType":"VariableDeclaration","scope":4613,"src":"6178:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4595,"name":"uint256","nodeType":"ElementaryTypeName","src":"6178:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4598,"mutability":"mutable","name":"newValue","nameLocation":"6204:8:15","nodeType":"VariableDeclaration","scope":4613,"src":"6196:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4597,"name":"uint256","nodeType":"ElementaryTypeName","src":"6196:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4606,"initialValue":{"arguments":[{"id":4603,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"6248:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":4604,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4579,"src":"6259:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":4599,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4317,"src":"6216:20:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":4601,"indexExpression":{"id":4600,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"6237:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6216:26:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"6216:31:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":4605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6216:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6177:89:15"},{"eventCall":{"arguments":[{"id":4608,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"6310:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4609,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4596,"src":"6316:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4610,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4598,"src":"6326:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4607,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"6289:20:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":4611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6289:46:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4612,"nodeType":"EmitStatement","src":"6284:51:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4615,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4577,"src":"6367:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6381: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":4617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6373:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4616,"name":"address","nodeType":"ElementaryTypeName","src":"6373:7:15","typeDescriptions":{}}},"id":4619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6373:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6367:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4640,"nodeType":"IfStatement","src":"6363:204:15","trueBody":{"id":4639,"nodeType":"Block","src":"6385:182:15","statements":[{"assignments":[4622,4624],"declarations":[{"constant":false,"id":4622,"mutability":"mutable","name":"oldValue","nameLocation":"6412:8:15","nodeType":"VariableDeclaration","scope":4639,"src":"6404:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4621,"name":"uint256","nodeType":"ElementaryTypeName","src":"6404:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4624,"mutability":"mutable","name":"newValue","nameLocation":"6430:8:15","nodeType":"VariableDeclaration","scope":4639,"src":"6422:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4623,"name":"uint256","nodeType":"ElementaryTypeName","src":"6422:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4632,"initialValue":{"arguments":[{"id":4629,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"6472:4:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":4630,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4579,"src":"6478:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":4625,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4317,"src":"6442:20:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":4627,"indexExpression":{"id":4626,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4577,"src":"6463:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6442:24:15","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":4628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"6442:29:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":4631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6442:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6403:82:15"},{"eventCall":{"arguments":[{"id":4634,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4577,"src":"6529:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4635,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4622,"src":"6533:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4636,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4624,"src":"6543:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4633,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"6508:20:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6508:44:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4638,"nodeType":"EmitStatement","src":"6503:49:15"}]}}]}}]},"documentation":{"id":4573,"nodeType":"StructuredDocumentation","src":"5893:75:15","text":" @dev Moves delegated votes from one delegate to another."},"id":4644,"implemented":true,"kind":"function","modifiers":[],"name":"_moveDelegateVotes","nameLocation":"5982:18:15","nodeType":"FunctionDefinition","parameters":{"id":4580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4575,"mutability":"mutable","name":"from","nameLocation":"6018:4:15","nodeType":"VariableDeclaration","scope":4644,"src":"6010:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4574,"name":"address","nodeType":"ElementaryTypeName","src":"6010:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4577,"mutability":"mutable","name":"to","nameLocation":"6040:2:15","nodeType":"VariableDeclaration","scope":4644,"src":"6032:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4576,"name":"address","nodeType":"ElementaryTypeName","src":"6032:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4579,"mutability":"mutable","name":"amount","nameLocation":"6060:6:15","nodeType":"VariableDeclaration","scope":4644,"src":"6052:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4578,"name":"uint256","nodeType":"ElementaryTypeName","src":"6052:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6000:72:15"},"returnParameters":{"id":4581,"nodeType":"ParameterList","parameters":[],"src":"6081:0:15"},"scope":4735,"src":"5973:610:15","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4657,"nodeType":"Block","src":"6656:29:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4653,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4646,"src":"6673:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4654,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4648,"src":"6677:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6673:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4652,"id":4656,"nodeType":"Return","src":"6666:12:15"}]},"id":4658,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"6598:4:15","nodeType":"FunctionDefinition","parameters":{"id":4649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4646,"mutability":"mutable","name":"a","nameLocation":"6611:1:15","nodeType":"VariableDeclaration","scope":4658,"src":"6603:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4645,"name":"uint256","nodeType":"ElementaryTypeName","src":"6603:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4648,"mutability":"mutable","name":"b","nameLocation":"6622:1:15","nodeType":"VariableDeclaration","scope":4658,"src":"6614:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4647,"name":"uint256","nodeType":"ElementaryTypeName","src":"6614:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6602:22:15"},"returnParameters":{"id":4652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4658,"src":"6647:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4650,"name":"uint256","nodeType":"ElementaryTypeName","src":"6647:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6646:9:15"},"scope":4735,"src":"6589:96:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4671,"nodeType":"Block","src":"6763:29:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4667,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"6780:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4668,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4662,"src":"6784:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6780:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4666,"id":4670,"nodeType":"Return","src":"6773:12:15"}]},"id":4672,"implemented":true,"kind":"function","modifiers":[],"name":"_subtract","nameLocation":"6700:9:15","nodeType":"FunctionDefinition","parameters":{"id":4663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"a","nameLocation":"6718:1:15","nodeType":"VariableDeclaration","scope":4672,"src":"6710:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4659,"name":"uint256","nodeType":"ElementaryTypeName","src":"6710:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4662,"mutability":"mutable","name":"b","nameLocation":"6729:1:15","nodeType":"VariableDeclaration","scope":4672,"src":"6721:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4661,"name":"uint256","nodeType":"ElementaryTypeName","src":"6721:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6709:22:15"},"returnParameters":{"id":4666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4672,"src":"6754:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4664,"name":"uint256","nodeType":"ElementaryTypeName","src":"6754:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6753:9:15"},"scope":4735,"src":"6691:101:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4700,"nodeType":"Block","src":"6983:126:15","statements":[{"assignments":[4684],"declarations":[{"constant":false,"id":4684,"mutability":"mutable","name":"nonce","nameLocation":"7018:5:15","nodeType":"VariableDeclaration","scope":4700,"src":"6993:30:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":4683,"nodeType":"UserDefinedTypeName","pathNode":{"id":4682,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"6993:16:15"},"referencedDeclaration":8261,"src":"6993:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"id":4688,"initialValue":{"baseExpression":{"id":4685,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4325,"src":"7026:7:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":4687,"indexExpression":{"id":4686,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"7034:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7026:14:15","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage","typeString":"struct Counters.Counter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6993:47:15"},{"expression":{"id":4693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4689,"name":"current","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4678,"src":"7050:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4690,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4684,"src":"7060:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":4691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"current","nodeType":"MemberAccess","referencedDeclaration":8273,"src":"7060:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$8261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$8261_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":4692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7060:15:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7050:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4694,"nodeType":"ExpressionStatement","src":"7050:25:15"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4695,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4684,"src":"7085:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":4697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":8287,"src":"7085:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Counter_$8261_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$8261_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer)"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7085:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4699,"nodeType":"ExpressionStatement","src":"7085:17:15"}]},"documentation":{"id":4673,"nodeType":"StructuredDocumentation","src":"6798:103:15","text":" @dev Consumes a nonce.\n Returns the current value and increments nonce."},"id":4701,"implemented":true,"kind":"function","modifiers":[],"name":"_useNonce","nameLocation":"6915:9:15","nodeType":"FunctionDefinition","parameters":{"id":4676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4675,"mutability":"mutable","name":"owner","nameLocation":"6933:5:15","nodeType":"VariableDeclaration","scope":4701,"src":"6925:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4674,"name":"address","nodeType":"ElementaryTypeName","src":"6925:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6924:15:15"},"returnParameters":{"id":4679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4678,"mutability":"mutable","name":"current","nameLocation":"6974:7:15","nodeType":"VariableDeclaration","scope":4701,"src":"6966:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4677,"name":"uint256","nodeType":"ElementaryTypeName","src":"6966:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6965:17:15"},"scope":4735,"src":"6906:203:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4715,"nodeType":"Block","src":"7238:48:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":4709,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4325,"src":"7255:7:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":4711,"indexExpression":{"id":4710,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"7263:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7255:14:15","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage","typeString":"struct Counters.Counter storage ref"}},"id":4712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"current","nodeType":"MemberAccess","referencedDeclaration":8273,"src":"7255:22:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$8261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$8261_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":4713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7255:24:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4708,"id":4714,"nodeType":"Return","src":"7248:31:15"}]},"documentation":{"id":4702,"nodeType":"StructuredDocumentation","src":"7115:49:15","text":" @dev Returns an address nonce."},"functionSelector":"7ecebe00","id":4716,"implemented":true,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"7178:6:15","nodeType":"FunctionDefinition","parameters":{"id":4705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4704,"mutability":"mutable","name":"owner","nameLocation":"7193:5:15","nodeType":"VariableDeclaration","scope":4716,"src":"7185:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4703,"name":"address","nodeType":"ElementaryTypeName","src":"7185:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7184:15:15"},"returnParameters":{"id":4708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4716,"src":"7229:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4706,"name":"uint256","nodeType":"ElementaryTypeName","src":"7229:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7228:9:15"},"scope":4735,"src":"7169:117:15","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4725,"nodeType":"Block","src":"7483:44:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4722,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9769,"src":"7500:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":4723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7500:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4721,"id":4724,"nodeType":"Return","src":"7493:27:15"}]},"documentation":{"id":4717,"nodeType":"StructuredDocumentation","src":"7292:73:15","text":" @dev Returns the contract's {EIP712} domain separator."},"functionSelector":"3644e515","id":4726,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"7432:16:15","nodeType":"FunctionDefinition","parameters":{"id":4718,"nodeType":"ParameterList","parameters":[],"src":"7448:2:15"},"returnParameters":{"id":4721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4726,"src":"7474:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7474:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7473:9:15"},"scope":4735,"src":"7423:104:15","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4727,"nodeType":"StructuredDocumentation","src":"7533:72:15","text":" @dev Must return the voting units held by an account."},"id":4734,"implemented":false,"kind":"function","modifiers":[],"name":"_getVotingUnits","nameLocation":"7619:15:15","nodeType":"FunctionDefinition","parameters":{"id":4730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4734,"src":"7635:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4728,"name":"address","nodeType":"ElementaryTypeName","src":"7635:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7634:9:15"},"returnParameters":{"id":4733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4734,"src":"7675:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4731,"name":"uint256","nodeType":"ElementaryTypeName","src":"7675:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7674:9:15"},"scope":4735,"src":"7610:74:15","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":4736,"src":"1676:6010:15","usedErrors":[]}],"src":"109:7578:15"},"id":15},"@openzeppelin/contracts/interfaces/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","exportedSymbols":{"IERC20":[5767]},"id":4739,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4737,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"90:23:16"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../token/ERC20/IERC20.sol","id":4738,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4739,"sourceUnit":5768,"src":"115:35:16","symbolAliases":[],"unitAlias":""}],"src":"90:61:16"},"id":16},"@openzeppelin/contracts/interfaces/IERC2981.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC2981.sol","exportedSymbols":{"IERC165":[9849],"IERC2981":[4757]},"id":4758,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4740,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:17"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../utils/introspection/IERC165.sol","id":4741,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4758,"sourceUnit":9850,"src":"132:44:17","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4743,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"490:7:17"},"id":4744,"nodeType":"InheritanceSpecifier","src":"490:7:17"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":4742,"nodeType":"StructuredDocumentation","src":"178:289:17","text":" @dev Interface for the NFT Royalty Standard.\n A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal\n support for royalty payments across all NFT marketplaces and ecosystem participants.\n _Available since v4.5._"},"fullyImplemented":false,"id":4757,"linearizedBaseContracts":[4757,9849],"name":"IERC2981","nameLocation":"478:8:17","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4745,"nodeType":"StructuredDocumentation","src":"504:231:17","text":" @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of\n exchange. The royalty amount is denominated and should be paid in that same unit of exchange."},"functionSelector":"2a55205a","id":4756,"implemented":false,"kind":"function","modifiers":[],"name":"royaltyInfo","nameLocation":"749:11:17","nodeType":"FunctionDefinition","parameters":{"id":4750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4747,"mutability":"mutable","name":"tokenId","nameLocation":"769:7:17","nodeType":"VariableDeclaration","scope":4756,"src":"761:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4746,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4749,"mutability":"mutable","name":"salePrice","nameLocation":"786:9:17","nodeType":"VariableDeclaration","scope":4756,"src":"778:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4748,"name":"uint256","nodeType":"ElementaryTypeName","src":"778:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:36:17"},"returnParameters":{"id":4755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"receiver","nameLocation":"852:8:17","nodeType":"VariableDeclaration","scope":4756,"src":"844:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4751,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4754,"mutability":"mutable","name":"royaltyAmount","nameLocation":"870:13:17","nodeType":"VariableDeclaration","scope":4756,"src":"862:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4753,"name":"uint256","nodeType":"ElementaryTypeName","src":"862:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"843:41:17"},"scope":4757,"src":"740:145:17","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4758,"src":"468:419:17","usedErrors":[]}],"src":"107:781:17"},"id":17},"@openzeppelin/contracts/interfaces/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","exportedSymbols":{"IERC165":[9849],"IERC721":[7092]},"id":4761,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4759,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"91:23:18"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../token/ERC721/IERC721.sol","id":4760,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4761,"sourceUnit":7093,"src":"116:37:18","symbolAliases":[],"unitAlias":""}],"src":"91:63:18"},"id":18},"@openzeppelin/contracts/interfaces/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[7110]},"id":4764,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4762,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:19"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"../token/ERC721/IERC721Receiver.sol","id":4763,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4764,"sourceUnit":7111,"src":"124:45:19","symbolAliases":[],"unitAlias":""}],"src":"99:71:19"},"id":19},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","exportedSymbols":{"Address":[7999],"Initializable":[4914]},"id":4915,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4765,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:20"},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":4766,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4915,"sourceUnit":8000,"src":"138:33:20","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":4767,"nodeType":"StructuredDocumentation","src":"173:2198:20","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":4914,"linearizedBaseContracts":[4914],"name":"Initializable","nameLocation":"2390:13:20","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":4768,"nodeType":"StructuredDocumentation","src":"2410:109:20","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":4770,"mutability":"mutable","name":"_initialized","nameLocation":"2538:12:20","nodeType":"VariableDeclaration","scope":4914,"src":"2524:26:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4769,"name":"uint8","nodeType":"ElementaryTypeName","src":"2524:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":4771,"nodeType":"StructuredDocumentation","src":"2557:91:20","text":" @dev Indicates that the contract is in the process of being initialized."},"id":4773,"mutability":"mutable","name":"_initializing","nameLocation":"2666:13:20","nodeType":"VariableDeclaration","scope":4914,"src":"2653:26:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4772,"name":"bool","nodeType":"ElementaryTypeName","src":"2653:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":4774,"nodeType":"StructuredDocumentation","src":"2686:90:20","text":" @dev Triggered when the contract has been initialized or reinitialized."},"id":4778,"name":"Initialized","nameLocation":"2787:11:20","nodeType":"EventDefinition","parameters":{"id":4777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4776,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2805:7:20","nodeType":"VariableDeclaration","scope":4778,"src":"2799:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4775,"name":"uint8","nodeType":"ElementaryTypeName","src":"2799:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2798:15:20"},"src":"2781:33:20"},{"body":{"id":4833,"nodeType":"Block","src":"3090:472:20","statements":[{"assignments":[4782],"declarations":[{"constant":false,"id":4782,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3105:14:20","nodeType":"VariableDeclaration","scope":4833,"src":"3100:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4781,"name":"bool","nodeType":"ElementaryTypeName","src":"3100:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":4785,"initialValue":{"id":4784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3122:14:20","subExpression":{"id":4783,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"3123:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3100:36:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4787,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4782,"src":"3168:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4788,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"3186:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":4789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3201:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3186:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3168:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":4792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3167:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3208:34:20","subExpression":{"arguments":[{"arguments":[{"id":4797,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3236:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$4914","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$4914","typeString":"contract Initializable"}],"id":4796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4795,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:20","typeDescriptions":{}}},"id":4798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4793,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"3209:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$7999_$","typeString":"type(library Address)"}},"id":4794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":7722,"src":"3209:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3209:33:20","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":4803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4801,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"3246:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3262:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3246:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3208:55:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":4805,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3207:57:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3167:97:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":4807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3278:48:20","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":4786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3146:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3146:190:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4809,"nodeType":"ExpressionStatement","src":"3146:190:20"},{"expression":{"id":4812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4810,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"3346:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":4811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3361:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3346:16:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4813,"nodeType":"ExpressionStatement","src":"3346:16:20"},{"condition":{"id":4814,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4782,"src":"3376:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4820,"nodeType":"IfStatement","src":"3372:65:20","trueBody":{"id":4819,"nodeType":"Block","src":"3392:45:20","statements":[{"expression":{"id":4817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4815,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"3406:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3422:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3406:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4818,"nodeType":"ExpressionStatement","src":"3406:20:20"}]}},{"id":4821,"nodeType":"PlaceholderStatement","src":"3446:1:20"},{"condition":{"id":4822,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4782,"src":"3461:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4832,"nodeType":"IfStatement","src":"3457:99:20","trueBody":{"id":4831,"nodeType":"Block","src":"3477:79:20","statements":[{"expression":{"id":4825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4823,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"3491:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3507:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3491:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4826,"nodeType":"ExpressionStatement","src":"3491:21:20"},{"eventCall":{"arguments":[{"hexValue":"31","id":4828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:1:20","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":4827,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"3531:11:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3531:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4830,"nodeType":"EmitStatement","src":"3526:19:20"}]}}]},"documentation":{"id":4779,"nodeType":"StructuredDocumentation","src":"2820:242:20","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. Equivalent to `reinitializer(1)`."},"id":4834,"name":"initializer","nameLocation":"3076:11:20","nodeType":"ModifierDefinition","parameters":{"id":4780,"nodeType":"ParameterList","parameters":[],"src":"3087:2:20"},"src":"3067:495:20","virtual":false,"visibility":"internal"},{"body":{"id":4866,"nodeType":"Block","src":"4377:255:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4395:14:20","subExpression":{"id":4840,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"4396:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4842,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"4413:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4843,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4837,"src":"4428:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4413:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4395:40:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":4846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4437:48:20","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":4839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4387:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4387:99:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4848,"nodeType":"ExpressionStatement","src":"4387:99:20"},{"expression":{"id":4851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4849,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"4496:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4850,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4837,"src":"4511:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4496:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4852,"nodeType":"ExpressionStatement","src":"4496:22:20"},{"expression":{"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4853,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"4528:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4544:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4528:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4856,"nodeType":"ExpressionStatement","src":"4528:20:20"},{"id":4857,"nodeType":"PlaceholderStatement","src":"4558:1:20"},{"expression":{"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4858,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"4569:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4585:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4569:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4861,"nodeType":"ExpressionStatement","src":"4569:21:20"},{"eventCall":{"arguments":[{"id":4863,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4837,"src":"4617:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4862,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"4605:11:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":4864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4605:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4865,"nodeType":"EmitStatement","src":"4600:25:20"}]},"documentation":{"id":4835,"nodeType":"StructuredDocumentation","src":"3568:766:20","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 `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n initialization step. This is essential to configure modules that are added through upgrades and that require\n initialization.\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."},"id":4867,"name":"reinitializer","nameLocation":"4348:13:20","nodeType":"ModifierDefinition","parameters":{"id":4838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4837,"mutability":"mutable","name":"version","nameLocation":"4368:7:20","nodeType":"VariableDeclaration","scope":4867,"src":"4362:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4836,"name":"uint8","nodeType":"ElementaryTypeName","src":"4362:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4361:15:20"},"src":"4339:293:20","virtual":false,"visibility":"internal"},{"body":{"id":4876,"nodeType":"Block","src":"4870:97:20","statements":[{"expression":{"arguments":[{"id":4871,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"4888:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":4872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4903:45:20","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":4870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4880:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4880:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4874,"nodeType":"ExpressionStatement","src":"4880:69:20"},{"id":4875,"nodeType":"PlaceholderStatement","src":"4959:1:20"}]},"documentation":{"id":4868,"nodeType":"StructuredDocumentation","src":"4638:199:20","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":4877,"name":"onlyInitializing","nameLocation":"4851:16:20","nodeType":"ModifierDefinition","parameters":{"id":4869,"nodeType":"ParameterList","parameters":[],"src":"4867:2:20"},"src":"4842:125:20","virtual":false,"visibility":"internal"},{"body":{"id":4912,"nodeType":"Block","src":"5415:230:20","statements":[{"expression":{"arguments":[{"id":4883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5433:14:20","subExpression":{"id":4882,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"5434:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":4884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5449:41:20","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":4881,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5425:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5425:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4886,"nodeType":"ExpressionStatement","src":"5425:66:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4887,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"5505:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":4890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5525:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4889,"name":"uint8","nodeType":"ElementaryTypeName","src":"5525:5:20","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":4888,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5520:4:20","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":4892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5520:15:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5505:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4911,"nodeType":"IfStatement","src":"5501:138:20","trueBody":{"id":4910,"nodeType":"Block","src":"5537:102:20","statements":[{"expression":{"id":4900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4894,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"5551:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":4897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5571:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4896,"name":"uint8","nodeType":"ElementaryTypeName","src":"5571:5:20","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":4895,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5566:4:20","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5566:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":4899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5566:15:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5551:30:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4901,"nodeType":"ExpressionStatement","src":"5551:30:20"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":4905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5617:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4904,"name":"uint8","nodeType":"ElementaryTypeName","src":"5617:5:20","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":4903,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5612:4:20","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":4907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5612:15:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4902,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"5600:11:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5600:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4909,"nodeType":"EmitStatement","src":"5595:33:20"}]}}]},"documentation":{"id":4878,"nodeType":"StructuredDocumentation","src":"4973:388:20","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."},"id":4913,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5375:20:20","nodeType":"FunctionDefinition","parameters":{"id":4879,"nodeType":"ParameterList","parameters":[],"src":"5395:2:20"},"returnParameters":{"id":4880,"nodeType":"ParameterList","parameters":[],"src":"5415:0:20"},"scope":4914,"src":"5366:279:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4915,"src":"2372:3275:20","usedErrors":[]}],"src":"113:5535:20"},"id":20},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[8255],"Pausable":[5022]},"id":5023,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4916,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:21"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":4917,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5023,"sourceUnit":8256,"src":"130:30:21","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4919,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"632:7:21"},"id":4920,"nodeType":"InheritanceSpecifier","src":"632:7:21"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":4918,"nodeType":"StructuredDocumentation","src":"162:439:21","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":5022,"linearizedBaseContracts":[5022,8255],"name":"Pausable","nameLocation":"620:8:21","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4921,"nodeType":"StructuredDocumentation","src":"646:73:21","text":" @dev Emitted when the pause is triggered by `account`."},"id":4925,"name":"Paused","nameLocation":"730:6:21","nodeType":"EventDefinition","parameters":{"id":4924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4923,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:21","nodeType":"VariableDeclaration","scope":4925,"src":"737:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4922,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:21"},"src":"724:30:21"},{"anonymous":false,"documentation":{"id":4926,"nodeType":"StructuredDocumentation","src":"760:70:21","text":" @dev Emitted when the pause is lifted by `account`."},"id":4930,"name":"Unpaused","nameLocation":"841:8:21","nodeType":"EventDefinition","parameters":{"id":4929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4928,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:21","nodeType":"VariableDeclaration","scope":4930,"src":"850:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4927,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:21"},"src":"835:32:21"},{"constant":false,"id":4932,"mutability":"mutable","name":"_paused","nameLocation":"886:7:21","nodeType":"VariableDeclaration","scope":5022,"src":"873:20:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4931,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":4940,"nodeType":"Block","src":"986:32:21","statements":[{"expression":{"id":4938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4936,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4932,"src":"996:7:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4939,"nodeType":"ExpressionStatement","src":"996:15:21"}]},"documentation":{"id":4933,"nodeType":"StructuredDocumentation","src":"900:67:21","text":" @dev Initializes the contract in unpaused state."},"id":4941,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4934,"nodeType":"ParameterList","parameters":[],"src":"983:2:21"},"returnParameters":{"id":4935,"nodeType":"ParameterList","parameters":[],"src":"986:0:21"},"scope":5022,"src":"972:46:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4948,"nodeType":"Block","src":"1229:47:21","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4944,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4978,"src":"1239:17:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1239:19:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4946,"nodeType":"ExpressionStatement","src":"1239:19:21"},{"id":4947,"nodeType":"PlaceholderStatement","src":"1268:1:21"}]},"documentation":{"id":4942,"nodeType":"StructuredDocumentation","src":"1024:175:21","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":4949,"name":"whenNotPaused","nameLocation":"1213:13:21","nodeType":"ModifierDefinition","parameters":{"id":4943,"nodeType":"ParameterList","parameters":[],"src":"1226:2:21"},"src":"1204:72:21","virtual":false,"visibility":"internal"},{"body":{"id":4956,"nodeType":"Block","src":"1476:44:21","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4952,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"1486:14:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1486:16:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4954,"nodeType":"ExpressionStatement","src":"1486:16:21"},{"id":4955,"nodeType":"PlaceholderStatement","src":"1512:1:21"}]},"documentation":{"id":4950,"nodeType":"StructuredDocumentation","src":"1282:167:21","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":4957,"name":"whenPaused","nameLocation":"1463:10:21","nodeType":"ModifierDefinition","parameters":{"id":4951,"nodeType":"ParameterList","parameters":[],"src":"1473:2:21"},"src":"1454:66:21","virtual":false,"visibility":"internal"},{"body":{"id":4965,"nodeType":"Block","src":"1668:31:21","statements":[{"expression":{"id":4963,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4932,"src":"1685:7:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4962,"id":4964,"nodeType":"Return","src":"1678:14:21"}]},"documentation":{"id":4958,"nodeType":"StructuredDocumentation","src":"1526:84:21","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":4966,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:21","nodeType":"FunctionDefinition","parameters":{"id":4959,"nodeType":"ParameterList","parameters":[],"src":"1630:2:21"},"returnParameters":{"id":4962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4966,"src":"1662:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4960,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:21"},"scope":5022,"src":"1615:84:21","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4977,"nodeType":"Block","src":"1818:55:21","statements":[{"expression":{"arguments":[{"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:21","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4971,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4966,"src":"1837:6:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:8:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":4974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:21","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":4970,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1828:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1828:38:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4976,"nodeType":"ExpressionStatement","src":"1828:38:21"}]},"documentation":{"id":4967,"nodeType":"StructuredDocumentation","src":"1705:57:21","text":" @dev Throws if the contract is paused."},"id":4978,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:21","nodeType":"FunctionDefinition","parameters":{"id":4968,"nodeType":"ParameterList","parameters":[],"src":"1793:2:21"},"returnParameters":{"id":4969,"nodeType":"ParameterList","parameters":[],"src":"1818:0:21"},"scope":5022,"src":"1767:106:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4988,"nodeType":"Block","src":"1993:58:21","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4983,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4966,"src":"2011:6:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":4984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:8:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":4985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:21","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":4982,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2003:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2003:41:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4987,"nodeType":"ExpressionStatement","src":"2003:41:21"}]},"documentation":{"id":4979,"nodeType":"StructuredDocumentation","src":"1879:61:21","text":" @dev Throws if the contract is not paused."},"id":4989,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:21","nodeType":"FunctionDefinition","parameters":{"id":4980,"nodeType":"ParameterList","parameters":[],"src":"1968:2:21"},"returnParameters":{"id":4981,"nodeType":"ParameterList","parameters":[],"src":"1993:0:21"},"scope":5022,"src":"1945:106:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5004,"nodeType":"Block","src":"2235:66:21","statements":[{"expression":{"id":4997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4995,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4932,"src":"2245:7:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4998,"nodeType":"ExpressionStatement","src":"2245:14:21"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5000,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"2281:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2281:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4999,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4925,"src":"2274:6:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2274:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5003,"nodeType":"EmitStatement","src":"2269:25:21"}]},"documentation":{"id":4990,"nodeType":"StructuredDocumentation","src":"2057:124:21","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":5005,"implemented":true,"kind":"function","modifiers":[{"id":4993,"kind":"modifierInvocation","modifierName":{"id":4992,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":4949,"src":"2221:13:21"},"nodeType":"ModifierInvocation","src":"2221:13:21"}],"name":"_pause","nameLocation":"2195:6:21","nodeType":"FunctionDefinition","parameters":{"id":4991,"nodeType":"ParameterList","parameters":[],"src":"2201:2:21"},"returnParameters":{"id":4994,"nodeType":"ParameterList","parameters":[],"src":"2235:0:21"},"scope":5022,"src":"2186:115:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5020,"nodeType":"Block","src":"2481:69:21","statements":[{"expression":{"id":5013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5011,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4932,"src":"2491:7:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5014,"nodeType":"ExpressionStatement","src":"2491:15:21"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5016,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"2530:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2530:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5015,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4930,"src":"2521:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5019,"nodeType":"EmitStatement","src":"2516:27:21"}]},"documentation":{"id":5006,"nodeType":"StructuredDocumentation","src":"2307:121:21","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":5021,"implemented":true,"kind":"function","modifiers":[{"id":5009,"kind":"modifierInvocation","modifierName":{"id":5008,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":4957,"src":"2470:10:21"},"nodeType":"ModifierInvocation","src":"2470:10:21"}],"name":"_unpause","nameLocation":"2442:8:21","nodeType":"FunctionDefinition","parameters":{"id":5007,"nodeType":"ParameterList","parameters":[],"src":"2450:2:21"},"returnParameters":{"id":5010,"nodeType":"ParameterList","parameters":[],"src":"2481:0:21"},"scope":5022,"src":"2433:117:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5023,"src":"602:1950:21","usedErrors":[]}],"src":"105:2448:21"},"id":21},"@openzeppelin/contracts/security/ReentrancyGuard.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[5062]},"id":5063,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5024,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"97:23:22"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":5025,"nodeType":"StructuredDocumentation","src":"122:750:22","text":" @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"fullyImplemented":true,"id":5062,"linearizedBaseContracts":[5062],"name":"ReentrancyGuard","nameLocation":"891:15:22","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":5028,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"1686:12:22","nodeType":"VariableDeclaration","scope":5062,"src":"1661:41:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5026,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":5027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1701:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":5031,"mutability":"constant","name":"_ENTERED","nameLocation":"1733:8:22","nodeType":"VariableDeclaration","scope":5062,"src":"1708:37:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5029,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":5030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1744:1:22","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":false,"id":5033,"mutability":"mutable","name":"_status","nameLocation":"1768:7:22","nodeType":"VariableDeclaration","scope":5062,"src":"1752:23:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1752:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":5040,"nodeType":"Block","src":"1796:39:22","statements":[{"expression":{"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5036,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5033,"src":"1806:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5037,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5028,"src":"1816:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1806:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5039,"nodeType":"ExpressionStatement","src":"1806:22:22"}]},"id":5041,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5034,"nodeType":"ParameterList","parameters":[],"src":"1793:2:22"},"returnParameters":{"id":5035,"nodeType":"ParameterList","parameters":[],"src":"1796:0:22"},"scope":5062,"src":"1782:53:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5060,"nodeType":"Block","src":"2236:421:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5045,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5033,"src":"2325:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5046,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5031,"src":"2336:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2325:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","id":5048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2346:33:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""},"value":"ReentrancyGuard: reentrant call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""}],"id":5044,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2317:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:63:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5050,"nodeType":"ExpressionStatement","src":"2317:63:22"},{"expression":{"id":5053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5051,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5033,"src":"2455:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5052,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5031,"src":"2465:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2455:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5054,"nodeType":"ExpressionStatement","src":"2455:18:22"},{"id":5055,"nodeType":"PlaceholderStatement","src":"2484:1:22"},{"expression":{"id":5058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5056,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5033,"src":"2628:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5057,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5028,"src":"2638:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5059,"nodeType":"ExpressionStatement","src":"2628:22:22"}]},"documentation":{"id":5042,"nodeType":"StructuredDocumentation","src":"1841:366:22","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"id":5061,"name":"nonReentrant","nameLocation":"2221:12:22","nodeType":"ModifierDefinition","parameters":{"id":5043,"nodeType":"ParameterList","parameters":[],"src":"2233:2:22"},"src":"2212:445:22","virtual":false,"visibility":"internal"}],"scope":5063,"src":"873:1786:22","usedErrors":[]}],"src":"97:2563:22"},"id":22},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","exportedSymbols":{"IERC1155Receiver":[5103],"IERC165":[9849]},"id":5104,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5064,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:23"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":5065,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5104,"sourceUnit":9850,"src":"143:47:23","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5067,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"262:7:23"},"id":5068,"nodeType":"InheritanceSpecifier","src":"262:7:23"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":5066,"nodeType":"StructuredDocumentation","src":"192:39:23","text":" @dev _Available since v3.1._"},"fullyImplemented":false,"id":5103,"linearizedBaseContracts":[5103,9849],"name":"IERC1155Receiver","nameLocation":"242:16:23","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5069,"nodeType":"StructuredDocumentation","src":"276:826:23","text":" @dev Handles the receipt of a single ERC1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n NOTE: To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed"},"functionSelector":"f23a6e61","id":5084,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"1116:17:23","nodeType":"FunctionDefinition","parameters":{"id":5080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5071,"mutability":"mutable","name":"operator","nameLocation":"1151:8:23","nodeType":"VariableDeclaration","scope":5084,"src":"1143:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5070,"name":"address","nodeType":"ElementaryTypeName","src":"1143:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5073,"mutability":"mutable","name":"from","nameLocation":"1177:4:23","nodeType":"VariableDeclaration","scope":5084,"src":"1169:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5072,"name":"address","nodeType":"ElementaryTypeName","src":"1169:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5075,"mutability":"mutable","name":"id","nameLocation":"1199:2:23","nodeType":"VariableDeclaration","scope":5084,"src":"1191:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5074,"name":"uint256","nodeType":"ElementaryTypeName","src":"1191:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5077,"mutability":"mutable","name":"value","nameLocation":"1219:5:23","nodeType":"VariableDeclaration","scope":5084,"src":"1211:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5079,"mutability":"mutable","name":"data","nameLocation":"1249:4:23","nodeType":"VariableDeclaration","scope":5084,"src":"1234:19:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5078,"name":"bytes","nodeType":"ElementaryTypeName","src":"1234:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1133:126:23"},"returnParameters":{"id":5083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5084,"src":"1278:6:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5081,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1278:6:23","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1277:8:23"},"scope":5103,"src":"1107:179:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5085,"nodeType":"StructuredDocumentation","src":"1292:994:23","text":" @dev Handles the receipt of a multiple ERC1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated.\n NOTE: To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed"},"functionSelector":"bc197c81","id":5102,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"2300:22:23","nodeType":"FunctionDefinition","parameters":{"id":5098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5087,"mutability":"mutable","name":"operator","nameLocation":"2340:8:23","nodeType":"VariableDeclaration","scope":5102,"src":"2332:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5086,"name":"address","nodeType":"ElementaryTypeName","src":"2332:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5089,"mutability":"mutable","name":"from","nameLocation":"2366:4:23","nodeType":"VariableDeclaration","scope":5102,"src":"2358:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5088,"name":"address","nodeType":"ElementaryTypeName","src":"2358:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5092,"mutability":"mutable","name":"ids","nameLocation":"2399:3:23","nodeType":"VariableDeclaration","scope":5102,"src":"2380:22:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5090,"name":"uint256","nodeType":"ElementaryTypeName","src":"2380:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5091,"nodeType":"ArrayTypeName","src":"2380:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":5095,"mutability":"mutable","name":"values","nameLocation":"2431:6:23","nodeType":"VariableDeclaration","scope":5102,"src":"2412:25:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5093,"name":"uint256","nodeType":"ElementaryTypeName","src":"2412:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5094,"nodeType":"ArrayTypeName","src":"2412:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":5097,"mutability":"mutable","name":"data","nameLocation":"2462:4:23","nodeType":"VariableDeclaration","scope":5102,"src":"2447:19:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5096,"name":"bytes","nodeType":"ElementaryTypeName","src":"2447:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2322:150:23"},"returnParameters":{"id":5101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5102,"src":"2491:6:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5099,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2491:6:23","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2490:8:23"},"scope":5103,"src":"2291:208:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5104,"src":"232:2269:23","usedErrors":[]}],"src":"118:2384:23"},"id":23},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[8255],"ERC20":[5689],"IERC20":[5767],"IERC20Metadata":[5792]},"id":5690,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5105,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:24"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":5106,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5690,"sourceUnit":5768,"src":"130:22:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":5107,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5690,"sourceUnit":5793,"src":"153:41:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":5108,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5690,"sourceUnit":8256,"src":"195:33:24","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5110,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"1421:7:24"},"id":5111,"nodeType":"InheritanceSpecifier","src":"1421:7:24"},{"baseName":{"id":5112,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1430:6:24"},"id":5113,"nodeType":"InheritanceSpecifier","src":"1430:6:24"},{"baseName":{"id":5114,"name":"IERC20Metadata","nodeType":"IdentifierPath","referencedDeclaration":5792,"src":"1438:14:24"},"id":5115,"nodeType":"InheritanceSpecifier","src":"1438:14:24"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":5109,"nodeType":"StructuredDocumentation","src":"230:1172:24","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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\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":5689,"linearizedBaseContracts":[5689,5792,5767,8255],"name":"ERC20","nameLocation":"1412:5:24","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5119,"mutability":"mutable","name":"_balances","nameLocation":"1495:9:24","nodeType":"VariableDeclaration","scope":5689,"src":"1459:45:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5118,"keyType":{"id":5116,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1459:27:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":5117,"name":"uint256","nodeType":"ElementaryTypeName","src":"1478:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":5125,"mutability":"mutable","name":"_allowances","nameLocation":"1567:11:24","nodeType":"VariableDeclaration","scope":5689,"src":"1511:67:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":5124,"keyType":{"id":5120,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:47:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":5123,"keyType":{"id":5121,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:27:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":5122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":5127,"mutability":"mutable","name":"_totalSupply","nameLocation":"1601:12:24","nodeType":"VariableDeclaration","scope":5689,"src":"1585:28:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":5129,"mutability":"mutable","name":"_name","nameLocation":"1635:5:24","nodeType":"VariableDeclaration","scope":5689,"src":"1620:20:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5128,"name":"string","nodeType":"ElementaryTypeName","src":"1620:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5131,"mutability":"mutable","name":"_symbol","nameLocation":"1661:7:24","nodeType":"VariableDeclaration","scope":5689,"src":"1646:22:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5130,"name":"string","nodeType":"ElementaryTypeName","src":"1646:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":5147,"nodeType":"Block","src":"2034:57:24","statements":[{"expression":{"id":5141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5139,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5129,"src":"2044:5:24","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5140,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5134,"src":"2052:5:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2044:13:24","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5142,"nodeType":"ExpressionStatement","src":"2044:13:24"},{"expression":{"id":5145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5143,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5131,"src":"2067:7:24","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5144,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"2077:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2067:17:24","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5146,"nodeType":"ExpressionStatement","src":"2067:17:24"}]},"documentation":{"id":5132,"nodeType":"StructuredDocumentation","src":"1675:298:24","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"id":5148,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5134,"mutability":"mutable","name":"name_","nameLocation":"2004:5:24","nodeType":"VariableDeclaration","scope":5148,"src":"1990:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5133,"name":"string","nodeType":"ElementaryTypeName","src":"1990:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5136,"mutability":"mutable","name":"symbol_","nameLocation":"2025:7:24","nodeType":"VariableDeclaration","scope":5148,"src":"2011:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5135,"name":"string","nodeType":"ElementaryTypeName","src":"2011:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1989:44:24"},"returnParameters":{"id":5138,"nodeType":"ParameterList","parameters":[],"src":"2034:0:24"},"scope":5689,"src":"1978:113:24","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5779],"body":{"id":5157,"nodeType":"Block","src":"2225:29:24","statements":[{"expression":{"id":5155,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5129,"src":"2242:5:24","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5154,"id":5156,"nodeType":"Return","src":"2235:12:24"}]},"documentation":{"id":5149,"nodeType":"StructuredDocumentation","src":"2097:54:24","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":5158,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2165:4:24","nodeType":"FunctionDefinition","overrides":{"id":5151,"nodeType":"OverrideSpecifier","overrides":[],"src":"2192:8:24"},"parameters":{"id":5150,"nodeType":"ParameterList","parameters":[],"src":"2169:2:24"},"returnParameters":{"id":5154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5158,"src":"2210:13:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5152,"name":"string","nodeType":"ElementaryTypeName","src":"2210:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2209:15:24"},"scope":5689,"src":"2156:98:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5785],"body":{"id":5167,"nodeType":"Block","src":"2438:31:24","statements":[{"expression":{"id":5165,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5131,"src":"2455:7:24","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5164,"id":5166,"nodeType":"Return","src":"2448:14:24"}]},"documentation":{"id":5159,"nodeType":"StructuredDocumentation","src":"2260:102:24","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":5168,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2376:6:24","nodeType":"FunctionDefinition","overrides":{"id":5161,"nodeType":"OverrideSpecifier","overrides":[],"src":"2405:8:24"},"parameters":{"id":5160,"nodeType":"ParameterList","parameters":[],"src":"2382:2:24"},"returnParameters":{"id":5164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5168,"src":"2423:13:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5162,"name":"string","nodeType":"ElementaryTypeName","src":"2423:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2422:15:24"},"scope":5689,"src":"2367:102:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5791],"body":{"id":5177,"nodeType":"Block","src":"3158:26:24","statements":[{"expression":{"hexValue":"3138","id":5175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:2:24","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":5174,"id":5176,"nodeType":"Return","src":"3168:9:24"}]},"documentation":{"id":5169,"nodeType":"StructuredDocumentation","src":"2475:613:24","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 value {ERC20} uses, unless this function is\n 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":5178,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3102:8:24","nodeType":"FunctionDefinition","overrides":{"id":5171,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:24"},"parameters":{"id":5170,"nodeType":"ParameterList","parameters":[],"src":"3110:2:24"},"returnParameters":{"id":5174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5178,"src":"3151:5:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5172,"name":"uint8","nodeType":"ElementaryTypeName","src":"3151:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3150:7:24"},"scope":5689,"src":"3093:91:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5716],"body":{"id":5187,"nodeType":"Block","src":"3314:36:24","statements":[{"expression":{"id":5185,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"3331:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5184,"id":5186,"nodeType":"Return","src":"3324:19:24"}]},"documentation":{"id":5179,"nodeType":"StructuredDocumentation","src":"3190:49:24","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":5188,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3253:11:24","nodeType":"FunctionDefinition","overrides":{"id":5181,"nodeType":"OverrideSpecifier","overrides":[],"src":"3287:8:24"},"parameters":{"id":5180,"nodeType":"ParameterList","parameters":[],"src":"3264:2:24"},"returnParameters":{"id":5184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5188,"src":"3305:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5182,"name":"uint256","nodeType":"ElementaryTypeName","src":"3305:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3304:9:24"},"scope":5689,"src":"3244:106:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5724],"body":{"id":5201,"nodeType":"Block","src":"3491:42:24","statements":[{"expression":{"baseExpression":{"id":5197,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"3508:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5199,"indexExpression":{"id":5198,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5191,"src":"3518:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3508:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5196,"id":5200,"nodeType":"Return","src":"3501:25:24"}]},"documentation":{"id":5189,"nodeType":"StructuredDocumentation","src":"3356:47:24","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":5202,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3417:9:24","nodeType":"FunctionDefinition","overrides":{"id":5193,"nodeType":"OverrideSpecifier","overrides":[],"src":"3464:8:24"},"parameters":{"id":5192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5191,"mutability":"mutable","name":"account","nameLocation":"3435:7:24","nodeType":"VariableDeclaration","scope":5202,"src":"3427:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5190,"name":"address","nodeType":"ElementaryTypeName","src":"3427:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3426:17:24"},"returnParameters":{"id":5196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5202,"src":"3482:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5194,"name":"uint256","nodeType":"ElementaryTypeName","src":"3482:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3481:9:24"},"scope":5689,"src":"3408:125:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5734],"body":{"id":5226,"nodeType":"Block","src":"3814:104:24","statements":[{"assignments":[5214],"declarations":[{"constant":false,"id":5214,"mutability":"mutable","name":"owner","nameLocation":"3832:5:24","nodeType":"VariableDeclaration","scope":5226,"src":"3824:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5213,"name":"address","nodeType":"ElementaryTypeName","src":"3824:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5217,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5215,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"3840:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3840:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3824:28:24"},{"expression":{"arguments":[{"id":5219,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5214,"src":"3872:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5220,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5205,"src":"3879:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5221,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5207,"src":"3883:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5218,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"3862:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3862:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5223,"nodeType":"ExpressionStatement","src":"3862:28:24"},{"expression":{"hexValue":"74727565","id":5224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3907:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5212,"id":5225,"nodeType":"Return","src":"3900:11:24"}]},"documentation":{"id":5203,"nodeType":"StructuredDocumentation","src":"3539:185:24","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":5227,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3738:8:24","nodeType":"FunctionDefinition","overrides":{"id":5209,"nodeType":"OverrideSpecifier","overrides":[],"src":"3790:8:24"},"parameters":{"id":5208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5205,"mutability":"mutable","name":"to","nameLocation":"3755:2:24","nodeType":"VariableDeclaration","scope":5227,"src":"3747:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5204,"name":"address","nodeType":"ElementaryTypeName","src":"3747:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5207,"mutability":"mutable","name":"amount","nameLocation":"3767:6:24","nodeType":"VariableDeclaration","scope":5227,"src":"3759:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5206,"name":"uint256","nodeType":"ElementaryTypeName","src":"3759:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3746:28:24"},"returnParameters":{"id":5212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5227,"src":"3808:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5210,"name":"bool","nodeType":"ElementaryTypeName","src":"3808:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3807:6:24"},"scope":5689,"src":"3729:189:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5744],"body":{"id":5244,"nodeType":"Block","src":"4074:51:24","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5238,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5125,"src":"4091:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5240,"indexExpression":{"id":5239,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5230,"src":"4103:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:18:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5242,"indexExpression":{"id":5241,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5232,"src":"4110:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:27:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5237,"id":5243,"nodeType":"Return","src":"4084:34:24"}]},"documentation":{"id":5228,"nodeType":"StructuredDocumentation","src":"3924:47:24","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":5245,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3985:9:24","nodeType":"FunctionDefinition","overrides":{"id":5234,"nodeType":"OverrideSpecifier","overrides":[],"src":"4047:8:24"},"parameters":{"id":5233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5230,"mutability":"mutable","name":"owner","nameLocation":"4003:5:24","nodeType":"VariableDeclaration","scope":5245,"src":"3995:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5229,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5232,"mutability":"mutable","name":"spender","nameLocation":"4018:7:24","nodeType":"VariableDeclaration","scope":5245,"src":"4010:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5231,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3994:32:24"},"returnParameters":{"id":5237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5245,"src":"4065:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5235,"name":"uint256","nodeType":"ElementaryTypeName","src":"4065:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4064:9:24"},"scope":5689,"src":"3976:149:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5754],"body":{"id":5269,"nodeType":"Block","src":"4522:108:24","statements":[{"assignments":[5257],"declarations":[{"constant":false,"id":5257,"mutability":"mutable","name":"owner","nameLocation":"4540:5:24","nodeType":"VariableDeclaration","scope":5269,"src":"4532:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5256,"name":"address","nodeType":"ElementaryTypeName","src":"4532:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5260,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5258,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"4548:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4548:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4532:28:24"},{"expression":{"arguments":[{"id":5262,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5257,"src":"4579:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5263,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"4586:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5264,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"4595:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5261,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"4570:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4570:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5266,"nodeType":"ExpressionStatement","src":"4570:32:24"},{"expression":{"hexValue":"74727565","id":5267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4619:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5255,"id":5268,"nodeType":"Return","src":"4612:11:24"}]},"documentation":{"id":5246,"nodeType":"StructuredDocumentation","src":"4131:297:24","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":5270,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4442:7:24","nodeType":"FunctionDefinition","overrides":{"id":5252,"nodeType":"OverrideSpecifier","overrides":[],"src":"4498:8:24"},"parameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5248,"mutability":"mutable","name":"spender","nameLocation":"4458:7:24","nodeType":"VariableDeclaration","scope":5270,"src":"4450:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5247,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5250,"mutability":"mutable","name":"amount","nameLocation":"4475:6:24","nodeType":"VariableDeclaration","scope":5270,"src":"4467:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5249,"name":"uint256","nodeType":"ElementaryTypeName","src":"4467:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:33:24"},"returnParameters":{"id":5255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5270,"src":"4516:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5253,"name":"bool","nodeType":"ElementaryTypeName","src":"4516:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4515:6:24"},"scope":5689,"src":"4433:197:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5766],"body":{"id":5302,"nodeType":"Block","src":"5325:153:24","statements":[{"assignments":[5284],"declarations":[{"constant":false,"id":5284,"mutability":"mutable","name":"spender","nameLocation":"5343:7:24","nodeType":"VariableDeclaration","scope":5302,"src":"5335:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5283,"name":"address","nodeType":"ElementaryTypeName","src":"5335:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5287,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5285,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"5353:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5353:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5335:30:24"},{"expression":{"arguments":[{"id":5289,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"5391:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5290,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"5397:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5291,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5277,"src":"5406:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5288,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"5375:15:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5375:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5293,"nodeType":"ExpressionStatement","src":"5375:38:24"},{"expression":{"arguments":[{"id":5295,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"5433:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5296,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5275,"src":"5439:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5297,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5277,"src":"5443:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5294,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"5423:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5423:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5299,"nodeType":"ExpressionStatement","src":"5423:27:24"},{"expression":{"hexValue":"74727565","id":5300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5467:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5282,"id":5301,"nodeType":"Return","src":"5460:11:24"}]},"documentation":{"id":5271,"nodeType":"StructuredDocumentation","src":"4636:551:24","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":5303,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5201:12:24","nodeType":"FunctionDefinition","overrides":{"id":5279,"nodeType":"OverrideSpecifier","overrides":[],"src":"5301:8:24"},"parameters":{"id":5278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5273,"mutability":"mutable","name":"from","nameLocation":"5231:4:24","nodeType":"VariableDeclaration","scope":5303,"src":"5223:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5272,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5275,"mutability":"mutable","name":"to","nameLocation":"5253:2:24","nodeType":"VariableDeclaration","scope":5303,"src":"5245:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5274,"name":"address","nodeType":"ElementaryTypeName","src":"5245:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5277,"mutability":"mutable","name":"amount","nameLocation":"5273:6:24","nodeType":"VariableDeclaration","scope":5303,"src":"5265:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5276,"name":"uint256","nodeType":"ElementaryTypeName","src":"5265:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5213:72:24"},"returnParameters":{"id":5282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5303,"src":"5319:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5280,"name":"bool","nodeType":"ElementaryTypeName","src":"5319:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5318:6:24"},"scope":5689,"src":"5192:286:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5331,"nodeType":"Block","src":"5967:140:24","statements":[{"assignments":[5314],"declarations":[{"constant":false,"id":5314,"mutability":"mutable","name":"owner","nameLocation":"5985:5:24","nodeType":"VariableDeclaration","scope":5331,"src":"5977:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5313,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5315,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"5993:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5993:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5977:28:24"},{"expression":{"arguments":[{"id":5319,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"6024:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5320,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5306,"src":"6031:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5322,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"6050:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5323,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5306,"src":"6057:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5321,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5245,"src":"6040:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6040:25:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5325,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5308,"src":"6068:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6040:38:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5318,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"6015:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6015:64:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5328,"nodeType":"ExpressionStatement","src":"6015:64:24"},{"expression":{"hexValue":"74727565","id":5329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6096:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5312,"id":5330,"nodeType":"Return","src":"6089:11:24"}]},"documentation":{"id":5304,"nodeType":"StructuredDocumentation","src":"5484:384:24","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":5332,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5882:17:24","nodeType":"FunctionDefinition","parameters":{"id":5309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5306,"mutability":"mutable","name":"spender","nameLocation":"5908:7:24","nodeType":"VariableDeclaration","scope":5332,"src":"5900:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5305,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5308,"mutability":"mutable","name":"addedValue","nameLocation":"5925:10:24","nodeType":"VariableDeclaration","scope":5332,"src":"5917:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5307,"name":"uint256","nodeType":"ElementaryTypeName","src":"5917:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5899:37:24"},"returnParameters":{"id":5312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5332,"src":"5961:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5310,"name":"bool","nodeType":"ElementaryTypeName","src":"5961:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5960:6:24"},"scope":5689,"src":"5873:234:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5372,"nodeType":"Block","src":"6693:328:24","statements":[{"assignments":[5343],"declarations":[{"constant":false,"id":5343,"mutability":"mutable","name":"owner","nameLocation":"6711:5:24","nodeType":"VariableDeclaration","scope":5372,"src":"6703:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5342,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5346,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5344,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"6719:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6719:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6703:28:24"},{"assignments":[5348],"declarations":[{"constant":false,"id":5348,"mutability":"mutable","name":"currentAllowance","nameLocation":"6749:16:24","nodeType":"VariableDeclaration","scope":5372,"src":"6741:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5347,"name":"uint256","nodeType":"ElementaryTypeName","src":"6741:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5353,"initialValue":{"arguments":[{"id":5350,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5343,"src":"6778:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5351,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"6785:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5349,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5245,"src":"6768:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6768:25:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6741:52:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5355,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"6811:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5356,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5337,"src":"6831:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6811:35:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":5358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6848:39:24","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":5354,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6803:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6803:85:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5360,"nodeType":"ExpressionStatement","src":"6803:85:24"},{"id":5369,"nodeType":"UncheckedBlock","src":"6898:95:24","statements":[{"expression":{"arguments":[{"id":5362,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5343,"src":"6931:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5363,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"6938:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5364,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"6947:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5365,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5337,"src":"6966:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6947:34:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5361,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"6922:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6922:60:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5368,"nodeType":"ExpressionStatement","src":"6922:60:24"}]},{"expression":{"hexValue":"74727565","id":5370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7010:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5341,"id":5371,"nodeType":"Return","src":"7003:11:24"}]},"documentation":{"id":5333,"nodeType":"StructuredDocumentation","src":"6113:476:24","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":5373,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6603:17:24","nodeType":"FunctionDefinition","parameters":{"id":5338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5335,"mutability":"mutable","name":"spender","nameLocation":"6629:7:24","nodeType":"VariableDeclaration","scope":5373,"src":"6621:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5334,"name":"address","nodeType":"ElementaryTypeName","src":"6621:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5337,"mutability":"mutable","name":"subtractedValue","nameLocation":"6646:15:24","nodeType":"VariableDeclaration","scope":5373,"src":"6638:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5336,"name":"uint256","nodeType":"ElementaryTypeName","src":"6638:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6620:42:24"},"returnParameters":{"id":5341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5373,"src":"6687:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5339,"name":"bool","nodeType":"ElementaryTypeName","src":"6687:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6686:6:24"},"scope":5689,"src":"6594:427:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5449,"nodeType":"Block","src":"7583:543:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5384,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5376,"src":"7601:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7617:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7609:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5385,"name":"address","nodeType":"ElementaryTypeName","src":"7609:7:24","typeDescriptions":{}}},"id":5388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7609:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7601:18:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":5390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7621:39:24","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":5383,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7593:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7593:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5392,"nodeType":"ExpressionStatement","src":"7593:68:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5394,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5378,"src":"7679:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7693:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7685:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5395,"name":"address","nodeType":"ElementaryTypeName","src":"7685:7:24","typeDescriptions":{}}},"id":5398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7685:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7679:16:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":5400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7697:37:24","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":5393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7671:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7671:64:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5402,"nodeType":"ExpressionStatement","src":"7671:64:24"},{"expression":{"arguments":[{"id":5404,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5376,"src":"7767:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5405,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5378,"src":"7773:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5380,"src":"7777:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5403,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5677,"src":"7746:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7746:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5408,"nodeType":"ExpressionStatement","src":"7746:38:24"},{"assignments":[5410],"declarations":[{"constant":false,"id":5410,"mutability":"mutable","name":"fromBalance","nameLocation":"7803:11:24","nodeType":"VariableDeclaration","scope":5449,"src":"7795:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5409,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5414,"initialValue":{"baseExpression":{"id":5411,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"7817:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5413,"indexExpression":{"id":5412,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5376,"src":"7827:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7817:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:37:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5416,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"7850:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5417,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5380,"src":"7865:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":5419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7873:40:24","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":5415,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7842:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7842:72:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5421,"nodeType":"ExpressionStatement","src":"7842:72:24"},{"id":5430,"nodeType":"UncheckedBlock","src":"7924:73:24","statements":[{"expression":{"id":5428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5422,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"7948:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5424,"indexExpression":{"id":5423,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5376,"src":"7958:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7948:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5425,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"7966:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5426,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5380,"src":"7980:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7966:20:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:38:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5429,"nodeType":"ExpressionStatement","src":"7948:38:24"}]},{"expression":{"id":5435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5431,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"8006:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5433,"indexExpression":{"id":5432,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5378,"src":"8016:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8006:13:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5434,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5380,"src":"8023:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8006:23:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5436,"nodeType":"ExpressionStatement","src":"8006:23:24"},{"eventCall":{"arguments":[{"id":5438,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5376,"src":"8054:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5439,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5378,"src":"8060:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5440,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5380,"src":"8064:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5437,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"8045:8:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8045:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5442,"nodeType":"EmitStatement","src":"8040:31:24"},{"expression":{"arguments":[{"id":5444,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5376,"src":"8102:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5445,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5378,"src":"8108:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5446,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5380,"src":"8112:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5443,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"8082:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5448,"nodeType":"ExpressionStatement","src":"8082:37:24"}]},"documentation":{"id":5374,"nodeType":"StructuredDocumentation","src":"7027:443:24","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":5450,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7484:9:24","nodeType":"FunctionDefinition","parameters":{"id":5381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5376,"mutability":"mutable","name":"from","nameLocation":"7511:4:24","nodeType":"VariableDeclaration","scope":5450,"src":"7503:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5375,"name":"address","nodeType":"ElementaryTypeName","src":"7503:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5378,"mutability":"mutable","name":"to","nameLocation":"7533:2:24","nodeType":"VariableDeclaration","scope":5450,"src":"7525:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5377,"name":"address","nodeType":"ElementaryTypeName","src":"7525:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5380,"mutability":"mutable","name":"amount","nameLocation":"7553:6:24","nodeType":"VariableDeclaration","scope":5450,"src":"7545:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5379,"name":"uint256","nodeType":"ElementaryTypeName","src":"7545:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7493:72:24"},"returnParameters":{"id":5382,"nodeType":"ParameterList","parameters":[],"src":"7583:0:24"},"scope":5689,"src":"7475:651:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5505,"nodeType":"Block","src":"8467:324:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5459,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"8485:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8504:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8496:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5460,"name":"address","nodeType":"ElementaryTypeName","src":"8496:7:24","typeDescriptions":{}}},"id":5463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8496:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8485:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":5465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8508:33:24","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":5458,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8477:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8477:65:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5467,"nodeType":"ExpressionStatement","src":"8477:65:24"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8582:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8574:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5469,"name":"address","nodeType":"ElementaryTypeName","src":"8574:7:24","typeDescriptions":{}}},"id":5472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8574:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5473,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"8586:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5474,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"8595:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5468,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5677,"src":"8553:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8553:49:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5476,"nodeType":"ExpressionStatement","src":"8553:49:24"},{"expression":{"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5477,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"8613:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"8629:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5480,"nodeType":"ExpressionStatement","src":"8613:22:24"},{"expression":{"id":5485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5481,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"8645:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5483,"indexExpression":{"id":5482,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"8655:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8645:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5484,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"8667:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8645:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5486,"nodeType":"ExpressionStatement","src":"8645:28:24"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8705:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8697:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5488,"name":"address","nodeType":"ElementaryTypeName","src":"8697:7:24","typeDescriptions":{}}},"id":5491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8697:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5492,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"8709:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5493,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"8718:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5487,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"8688:8:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8688:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5495,"nodeType":"EmitStatement","src":"8683:42:24"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8764:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8756:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5497,"name":"address","nodeType":"ElementaryTypeName","src":"8756:7:24","typeDescriptions":{}}},"id":5500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8756:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5501,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"8768:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5502,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"8777:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5496,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"8736:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8736:48:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5504,"nodeType":"ExpressionStatement","src":"8736:48:24"}]},"documentation":{"id":5451,"nodeType":"StructuredDocumentation","src":"8132:265:24","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":5506,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8411:5:24","nodeType":"FunctionDefinition","parameters":{"id":5456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5453,"mutability":"mutable","name":"account","nameLocation":"8425:7:24","nodeType":"VariableDeclaration","scope":5506,"src":"8417:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5452,"name":"address","nodeType":"ElementaryTypeName","src":"8417:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5455,"mutability":"mutable","name":"amount","nameLocation":"8442:6:24","nodeType":"VariableDeclaration","scope":5506,"src":"8434:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5454,"name":"uint256","nodeType":"ElementaryTypeName","src":"8434:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8416:33:24"},"returnParameters":{"id":5457,"nodeType":"ParameterList","parameters":[],"src":"8467:0:24"},"scope":5689,"src":"8402:389:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5577,"nodeType":"Block","src":"9176:511:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5515,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"9194:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9213:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9205:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5516,"name":"address","nodeType":"ElementaryTypeName","src":"9205:7:24","typeDescriptions":{}}},"id":5519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9205:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9194:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":5521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9217:35:24","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":5514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9186:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9186:67:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5523,"nodeType":"ExpressionStatement","src":"9186:67:24"},{"expression":{"arguments":[{"id":5525,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"9285:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9302:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9294:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5526,"name":"address","nodeType":"ElementaryTypeName","src":"9294:7:24","typeDescriptions":{}}},"id":5529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9294:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5530,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"9306:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5524,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5677,"src":"9264:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9264:49:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5532,"nodeType":"ExpressionStatement","src":"9264:49:24"},{"assignments":[5534],"declarations":[{"constant":false,"id":5534,"mutability":"mutable","name":"accountBalance","nameLocation":"9332:14:24","nodeType":"VariableDeclaration","scope":5577,"src":"9324:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5533,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5538,"initialValue":{"baseExpression":{"id":5535,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"9349:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5537,"indexExpression":{"id":5536,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"9359:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9349:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:43:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5540,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5534,"src":"9385:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5541,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"9403:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9385:24:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":5543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9411:36:24","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":5539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9377:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9377:71:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5545,"nodeType":"ExpressionStatement","src":"9377:71:24"},{"id":5554,"nodeType":"UncheckedBlock","src":"9458:79:24","statements":[{"expression":{"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5546,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"9482:9:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5548,"indexExpression":{"id":5547,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"9492:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9482:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5549,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5534,"src":"9503:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5550,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"9520:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9503:23:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9482:44:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5553,"nodeType":"ExpressionStatement","src":"9482:44:24"}]},{"expression":{"id":5557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5555,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"9546:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5556,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"9562:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9546:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5558,"nodeType":"ExpressionStatement","src":"9546:22:24"},{"eventCall":{"arguments":[{"id":5560,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"9593:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9610:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9602:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5561,"name":"address","nodeType":"ElementaryTypeName","src":"9602:7:24","typeDescriptions":{}}},"id":5564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9602:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5565,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"9614:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5559,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"9584:8:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9584:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5567,"nodeType":"EmitStatement","src":"9579:42:24"},{"expression":{"arguments":[{"id":5569,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"9652:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9669:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9661:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5570,"name":"address","nodeType":"ElementaryTypeName","src":"9661:7:24","typeDescriptions":{}}},"id":5573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9661:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5574,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"9673:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5568,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"9632:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9632:48:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5576,"nodeType":"ExpressionStatement","src":"9632:48:24"}]},"documentation":{"id":5507,"nodeType":"StructuredDocumentation","src":"8797:309:24","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":5578,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9120:5:24","nodeType":"FunctionDefinition","parameters":{"id":5512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5509,"mutability":"mutable","name":"account","nameLocation":"9134:7:24","nodeType":"VariableDeclaration","scope":5578,"src":"9126:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5508,"name":"address","nodeType":"ElementaryTypeName","src":"9126:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5511,"mutability":"mutable","name":"amount","nameLocation":"9151:6:24","nodeType":"VariableDeclaration","scope":5578,"src":"9143:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5510,"name":"uint256","nodeType":"ElementaryTypeName","src":"9143:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9125:33:24"},"returnParameters":{"id":5513,"nodeType":"ParameterList","parameters":[],"src":"9176:0:24"},"scope":5689,"src":"9111:576:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5622,"nodeType":"Block","src":"10223:257:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5589,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5581,"src":"10241:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10258:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10250:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5590,"name":"address","nodeType":"ElementaryTypeName","src":"10250:7:24","typeDescriptions":{}}},"id":5593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10250:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10241:19:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":5595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10262:38:24","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":5588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10233:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10233:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5597,"nodeType":"ExpressionStatement","src":"10233:68:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5599,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"10319:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10338:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10330:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5600,"name":"address","nodeType":"ElementaryTypeName","src":"10330:7:24","typeDescriptions":{}}},"id":5603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10330:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10319:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":5605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10342:36:24","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":5598,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10311:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10311:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5607,"nodeType":"ExpressionStatement","src":"10311:68:24"},{"expression":{"id":5614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5608,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5125,"src":"10390:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5611,"indexExpression":{"id":5609,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5581,"src":"10402:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10390:18:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5612,"indexExpression":{"id":5610,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"10409:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10390:27:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5613,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5585,"src":"10420:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10390:36:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5615,"nodeType":"ExpressionStatement","src":"10390:36:24"},{"eventCall":{"arguments":[{"id":5617,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5581,"src":"10450:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5618,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"10457:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5619,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5585,"src":"10466:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5616,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5710,"src":"10441:8:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10441:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5621,"nodeType":"EmitStatement","src":"10436:37:24"}]},"documentation":{"id":5579,"nodeType":"StructuredDocumentation","src":"9693:412:24","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":5623,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10119:8:24","nodeType":"FunctionDefinition","parameters":{"id":5586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5581,"mutability":"mutable","name":"owner","nameLocation":"10145:5:24","nodeType":"VariableDeclaration","scope":5623,"src":"10137:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5580,"name":"address","nodeType":"ElementaryTypeName","src":"10137:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5583,"mutability":"mutable","name":"spender","nameLocation":"10168:7:24","nodeType":"VariableDeclaration","scope":5623,"src":"10160:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5582,"name":"address","nodeType":"ElementaryTypeName","src":"10160:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5585,"mutability":"mutable","name":"amount","nameLocation":"10193:6:24","nodeType":"VariableDeclaration","scope":5623,"src":"10185:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5584,"name":"uint256","nodeType":"ElementaryTypeName","src":"10185:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10127:78:24"},"returnParameters":{"id":5587,"nodeType":"ParameterList","parameters":[],"src":"10223:0:24"},"scope":5689,"src":"10110:370:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5665,"nodeType":"Block","src":"10881:321:24","statements":[{"assignments":[5634],"declarations":[{"constant":false,"id":5634,"mutability":"mutable","name":"currentAllowance","nameLocation":"10899:16:24","nodeType":"VariableDeclaration","scope":5665,"src":"10891:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5633,"name":"uint256","nodeType":"ElementaryTypeName","src":"10891:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5639,"initialValue":{"arguments":[{"id":5636,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"10928:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5637,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"10935:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5635,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5245,"src":"10918:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10918:25:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10891:52:24"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5640,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"10957:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":5643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10982:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5642,"name":"uint256","nodeType":"ElementaryTypeName","src":"10982:7:24","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":5641,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10977:4:24","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10977:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":5645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10977:17:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10957:37:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5664,"nodeType":"IfStatement","src":"10953:243:24","trueBody":{"id":5663,"nodeType":"Block","src":"10996:200:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5648,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"11018:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5649,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5630,"src":"11038:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11018:26:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":5651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11046:31:24","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":5647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11010:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11010:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5653,"nodeType":"ExpressionStatement","src":"11010:68:24"},{"id":5662,"nodeType":"UncheckedBlock","src":"11092:94:24","statements":[{"expression":{"arguments":[{"id":5655,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"11129:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5656,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"11136:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5657,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"11145:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5658,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5630,"src":"11164:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11145:25:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5654,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"11120:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11120:51:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5661,"nodeType":"ExpressionStatement","src":"11120:51:24"}]}]}}]},"documentation":{"id":5624,"nodeType":"StructuredDocumentation","src":"10486:270:24","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":5666,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10770:15:24","nodeType":"FunctionDefinition","parameters":{"id":5631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5626,"mutability":"mutable","name":"owner","nameLocation":"10803:5:24","nodeType":"VariableDeclaration","scope":5666,"src":"10795:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5625,"name":"address","nodeType":"ElementaryTypeName","src":"10795:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5628,"mutability":"mutable","name":"spender","nameLocation":"10826:7:24","nodeType":"VariableDeclaration","scope":5666,"src":"10818:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5627,"name":"address","nodeType":"ElementaryTypeName","src":"10818:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5630,"mutability":"mutable","name":"amount","nameLocation":"10851:6:24","nodeType":"VariableDeclaration","scope":5666,"src":"10843:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5629,"name":"uint256","nodeType":"ElementaryTypeName","src":"10843:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10785:78:24"},"returnParameters":{"id":5632,"nodeType":"ParameterList","parameters":[],"src":"10881:0:24"},"scope":5689,"src":"10761:441:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5676,"nodeType":"Block","src":"11905:2:24","statements":[]},"documentation":{"id":5667,"nodeType":"StructuredDocumentation","src":"11208:573:24","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":5677,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"11795:20:24","nodeType":"FunctionDefinition","parameters":{"id":5674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5669,"mutability":"mutable","name":"from","nameLocation":"11833:4:24","nodeType":"VariableDeclaration","scope":5677,"src":"11825:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5668,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5671,"mutability":"mutable","name":"to","nameLocation":"11855:2:24","nodeType":"VariableDeclaration","scope":5677,"src":"11847:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5670,"name":"address","nodeType":"ElementaryTypeName","src":"11847:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5673,"mutability":"mutable","name":"amount","nameLocation":"11875:6:24","nodeType":"VariableDeclaration","scope":5677,"src":"11867:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5672,"name":"uint256","nodeType":"ElementaryTypeName","src":"11867:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11815:72:24"},"returnParameters":{"id":5675,"nodeType":"ParameterList","parameters":[],"src":"11905:0:24"},"scope":5689,"src":"11786:121:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5687,"nodeType":"Block","src":"12613:2:24","statements":[]},"documentation":{"id":5678,"nodeType":"StructuredDocumentation","src":"11913:577:24","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":5688,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12504:19:24","nodeType":"FunctionDefinition","parameters":{"id":5685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5680,"mutability":"mutable","name":"from","nameLocation":"12541:4:24","nodeType":"VariableDeclaration","scope":5688,"src":"12533:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5679,"name":"address","nodeType":"ElementaryTypeName","src":"12533:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5682,"mutability":"mutable","name":"to","nameLocation":"12563:2:24","nodeType":"VariableDeclaration","scope":5688,"src":"12555:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5681,"name":"address","nodeType":"ElementaryTypeName","src":"12555:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5684,"mutability":"mutable","name":"amount","nameLocation":"12583:6:24","nodeType":"VariableDeclaration","scope":5688,"src":"12575:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5683,"name":"uint256","nodeType":"ElementaryTypeName","src":"12575:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12523:72:24"},"returnParameters":{"id":5686,"nodeType":"ParameterList","parameters":[],"src":"12613:0:24"},"scope":5689,"src":"12495:120:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5690,"src":"1403:11214:24","usedErrors":[]}],"src":"105:12513:24"},"id":24},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[5767]},"id":5768,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5691,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:25"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":5692,"nodeType":"StructuredDocumentation","src":"131:70:25","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":5767,"linearizedBaseContracts":[5767],"name":"IERC20","nameLocation":"212:6:25","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":5693,"nodeType":"StructuredDocumentation","src":"225:158:25","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"id":5701,"name":"Transfer","nameLocation":"394:8:25","nodeType":"EventDefinition","parameters":{"id":5700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5695,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:25","nodeType":"VariableDeclaration","scope":5701,"src":"403:20:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5694,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5697,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:25","nodeType":"VariableDeclaration","scope":5701,"src":"425:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5696,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5699,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:25","nodeType":"VariableDeclaration","scope":5701,"src":"445:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5698,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:25"},"src":"388:72:25"},{"anonymous":false,"documentation":{"id":5702,"nodeType":"StructuredDocumentation","src":"466:148:25","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."},"id":5710,"name":"Approval","nameLocation":"625:8:25","nodeType":"EventDefinition","parameters":{"id":5709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5704,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:25","nodeType":"VariableDeclaration","scope":5710,"src":"634:21:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5703,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5706,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:25","nodeType":"VariableDeclaration","scope":5710,"src":"657:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5705,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5708,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:25","nodeType":"VariableDeclaration","scope":5710,"src":"682:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5707,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:25"},"src":"619:78:25"},{"documentation":{"id":5711,"nodeType":"StructuredDocumentation","src":"703:66:25","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":5716,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:25","nodeType":"FunctionDefinition","parameters":{"id":5712,"nodeType":"ParameterList","parameters":[],"src":"794:2:25"},"returnParameters":{"id":5715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5716,"src":"820:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5713,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:25"},"scope":5767,"src":"774:55:25","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5717,"nodeType":"StructuredDocumentation","src":"835:72:25","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":5724,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:25","nodeType":"FunctionDefinition","parameters":{"id":5720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5719,"mutability":"mutable","name":"account","nameLocation":"939:7:25","nodeType":"VariableDeclaration","scope":5724,"src":"931:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5718,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:25"},"returnParameters":{"id":5723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5724,"src":"971:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5721,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:25"},"scope":5767,"src":"912:68:25","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5725,"nodeType":"StructuredDocumentation","src":"986:202:25","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":5734,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:25","nodeType":"FunctionDefinition","parameters":{"id":5730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5727,"mutability":"mutable","name":"to","nameLocation":"1219:2:25","nodeType":"VariableDeclaration","scope":5734,"src":"1211:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5726,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5729,"mutability":"mutable","name":"amount","nameLocation":"1231:6:25","nodeType":"VariableDeclaration","scope":5734,"src":"1223:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5728,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:25"},"returnParameters":{"id":5733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5734,"src":"1257:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5731,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:25"},"scope":5767,"src":"1193:70:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5735,"nodeType":"StructuredDocumentation","src":"1269:264:25","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":5744,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:25","nodeType":"FunctionDefinition","parameters":{"id":5740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5737,"mutability":"mutable","name":"owner","nameLocation":"1565:5:25","nodeType":"VariableDeclaration","scope":5744,"src":"1557:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5736,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5739,"mutability":"mutable","name":"spender","nameLocation":"1580:7:25","nodeType":"VariableDeclaration","scope":5744,"src":"1572:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5738,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:25"},"returnParameters":{"id":5743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5744,"src":"1612:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:25"},"scope":5767,"src":"1538:83:25","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5745,"nodeType":"StructuredDocumentation","src":"1627:642:25","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":5754,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:25","nodeType":"FunctionDefinition","parameters":{"id":5750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5747,"mutability":"mutable","name":"spender","nameLocation":"2299:7:25","nodeType":"VariableDeclaration","scope":5754,"src":"2291:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5746,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5749,"mutability":"mutable","name":"amount","nameLocation":"2316:6:25","nodeType":"VariableDeclaration","scope":5754,"src":"2308:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5748,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:25"},"returnParameters":{"id":5753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5754,"src":"2342:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5751,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:25"},"scope":5767,"src":"2274:74:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5755,"nodeType":"StructuredDocumentation","src":"2354:287:25","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":5766,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:25","nodeType":"FunctionDefinition","parameters":{"id":5762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5757,"mutability":"mutable","name":"from","nameLocation":"2685:4:25","nodeType":"VariableDeclaration","scope":5766,"src":"2677:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5756,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5759,"mutability":"mutable","name":"to","nameLocation":"2707:2:25","nodeType":"VariableDeclaration","scope":5766,"src":"2699:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5758,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5761,"mutability":"mutable","name":"amount","nameLocation":"2727:6:25","nodeType":"VariableDeclaration","scope":5766,"src":"2719:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5760,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:25"},"returnParameters":{"id":5765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5766,"src":"2758:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5763,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:25"},"scope":5767,"src":"2646:118:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5768,"src":"202:2564:25","usedErrors":[]}],"src":"106:2661:25"},"id":25},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[5767],"IERC20Metadata":[5792]},"id":5793,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5769,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:26"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":5770,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5793,"sourceUnit":5768,"src":"135:23:26","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5772,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"305:6:26"},"id":5773,"nodeType":"InheritanceSpecifier","src":"305:6:26"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":5771,"nodeType":"StructuredDocumentation","src":"160:116:26","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":5792,"linearizedBaseContracts":[5792,5767],"name":"IERC20Metadata","nameLocation":"287:14:26","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5774,"nodeType":"StructuredDocumentation","src":"318:54:26","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":5779,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:26","nodeType":"FunctionDefinition","parameters":{"id":5775,"nodeType":"ParameterList","parameters":[],"src":"390:2:26"},"returnParameters":{"id":5778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5779,"src":"416:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5776,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:26"},"scope":5792,"src":"377:54:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5780,"nodeType":"StructuredDocumentation","src":"437:56:26","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":5785,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:26","nodeType":"FunctionDefinition","parameters":{"id":5781,"nodeType":"ParameterList","parameters":[],"src":"513:2:26"},"returnParameters":{"id":5784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5785,"src":"539:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5782,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:26"},"scope":5792,"src":"498:56:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5786,"nodeType":"StructuredDocumentation","src":"560:65:26","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":5791,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:26","nodeType":"FunctionDefinition","parameters":{"id":5787,"nodeType":"ParameterList","parameters":[],"src":"647:2:26"},"returnParameters":{"id":5790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5791,"src":"673:5:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5788,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:26"},"scope":5792,"src":"630:50:26","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5793,"src":"277:405:26","usedErrors":[]}],"src":"110:573:26"},"id":26},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[5828]},"id":5829,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5794,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:27"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":5795,"nodeType":"StructuredDocumentation","src":"139:480:27","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":5828,"linearizedBaseContracts":[5828],"name":"IERC20Permit","nameLocation":"630:12:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5796,"nodeType":"StructuredDocumentation","src":"649:792:27","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":5813,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:27","nodeType":"FunctionDefinition","parameters":{"id":5811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5798,"mutability":"mutable","name":"owner","nameLocation":"1479:5:27","nodeType":"VariableDeclaration","scope":5813,"src":"1471:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5797,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5800,"mutability":"mutable","name":"spender","nameLocation":"1502:7:27","nodeType":"VariableDeclaration","scope":5813,"src":"1494:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5799,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5802,"mutability":"mutable","name":"value","nameLocation":"1527:5:27","nodeType":"VariableDeclaration","scope":5813,"src":"1519:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5801,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5804,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:27","nodeType":"VariableDeclaration","scope":5813,"src":"1542:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5803,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5806,"mutability":"mutable","name":"v","nameLocation":"1574:1:27","nodeType":"VariableDeclaration","scope":5813,"src":"1568:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5805,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5808,"mutability":"mutable","name":"r","nameLocation":"1593:1:27","nodeType":"VariableDeclaration","scope":5813,"src":"1585:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5810,"mutability":"mutable","name":"s","nameLocation":"1612:1:27","nodeType":"VariableDeclaration","scope":5813,"src":"1604:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:27"},"returnParameters":{"id":5812,"nodeType":"ParameterList","parameters":[],"src":"1628:0:27"},"scope":5828,"src":"1446:183:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5814,"nodeType":"StructuredDocumentation","src":"1635:294:27","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":5821,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:27","nodeType":"FunctionDefinition","parameters":{"id":5817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5816,"mutability":"mutable","name":"owner","nameLocation":"1958:5:27","nodeType":"VariableDeclaration","scope":5821,"src":"1950:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5815,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:27"},"returnParameters":{"id":5820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5821,"src":"1988:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5818,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:27"},"scope":5828,"src":"1934:63:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5822,"nodeType":"StructuredDocumentation","src":"2003:128:27","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":5827,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:27","nodeType":"FunctionDefinition","parameters":{"id":5823,"nodeType":"ParameterList","parameters":[],"src":"2214:2:27"},"returnParameters":{"id":5826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5827,"src":"2240:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:27"},"scope":5828,"src":"2189:60:27","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5829,"src":"620:1631:27","usedErrors":[]}],"src":"114:2138:27"},"id":27},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[7999],"IERC20":[5767],"IERC20Permit":[5828],"SafeERC20":[6109]},"id":6110,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5830,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:28"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":5831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6110,"sourceUnit":5768,"src":"140:23:28","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","file":"../extensions/draft-IERC20Permit.sol","id":5832,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6110,"sourceUnit":5829,"src":"164:46:28","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":5833,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6110,"sourceUnit":8000,"src":"211:36:28","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":5834,"nodeType":"StructuredDocumentation","src":"249:457:28","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":6109,"linearizedBaseContracts":[6109],"name":"SafeERC20","nameLocation":"715:9:28","nodeType":"ContractDefinition","nodes":[{"id":5837,"libraryName":{"id":5835,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":7999,"src":"737:7:28"},"nodeType":"UsingForDirective","src":"731:26:28","typeName":{"id":5836,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":5859,"nodeType":"Block","src":"865:103:28","statements":[{"expression":{"arguments":[{"id":5848,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"895:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5851,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"925:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":5852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"925:14:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"925:23:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5854,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5842,"src":"950:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5855,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5844,"src":"954:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"902:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"902:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"902:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5847,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"875:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5767_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"875:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5858,"nodeType":"ExpressionStatement","src":"875:86:28"}]},"id":5860,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"772:12:28","nodeType":"FunctionDefinition","parameters":{"id":5845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5840,"mutability":"mutable","name":"token","nameLocation":"801:5:28","nodeType":"VariableDeclaration","scope":5860,"src":"794:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":5839,"nodeType":"UserDefinedTypeName","pathNode":{"id":5838,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"794:6:28"},"referencedDeclaration":5767,"src":"794:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5842,"mutability":"mutable","name":"to","nameLocation":"824:2:28","nodeType":"VariableDeclaration","scope":5860,"src":"816:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5841,"name":"address","nodeType":"ElementaryTypeName","src":"816:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5844,"mutability":"mutable","name":"value","nameLocation":"844:5:28","nodeType":"VariableDeclaration","scope":5860,"src":"836:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5843,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"784:71:28"},"returnParameters":{"id":5846,"nodeType":"ParameterList","parameters":[],"src":"865:0:28"},"scope":6109,"src":"763:205:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5885,"nodeType":"Block","src":"1102:113:28","statements":[{"expression":{"arguments":[{"id":5873,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5863,"src":"1132:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5876,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5863,"src":"1162:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":5877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"1162:18:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":5878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1162:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5879,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5865,"src":"1191:4:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5880,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"1197:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5881,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"1201:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5874,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1139:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1139:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1139:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5872,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"1112:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5767_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1112:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5884,"nodeType":"ExpressionStatement","src":"1112:96:28"}]},"id":5886,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"983:16:28","nodeType":"FunctionDefinition","parameters":{"id":5870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5863,"mutability":"mutable","name":"token","nameLocation":"1016:5:28","nodeType":"VariableDeclaration","scope":5886,"src":"1009:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":5862,"nodeType":"UserDefinedTypeName","pathNode":{"id":5861,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1009:6:28"},"referencedDeclaration":5767,"src":"1009:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5865,"mutability":"mutable","name":"from","nameLocation":"1039:4:28","nodeType":"VariableDeclaration","scope":5886,"src":"1031:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5864,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5867,"mutability":"mutable","name":"to","nameLocation":"1061:2:28","nodeType":"VariableDeclaration","scope":5886,"src":"1053:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5866,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5869,"mutability":"mutable","name":"value","nameLocation":"1081:5:28","nodeType":"VariableDeclaration","scope":5886,"src":"1073:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5868,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"999:93:28"},"returnParameters":{"id":5871,"nodeType":"ParameterList","parameters":[],"src":"1102:0:28"},"scope":6109,"src":"974:241:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5929,"nodeType":"Block","src":"1581:497:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"1830:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1839:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1830:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5901,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1829:12:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5906,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1870:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6109","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6109","typeString":"library SafeERC20"}],"id":5905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1862:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5904,"name":"address","nodeType":"ElementaryTypeName","src":"1862:7:28","typeDescriptions":{}}},"id":5907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1862:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5908,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"1877:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5902,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5890,"src":"1846:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":5903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5744,"src":"1846:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1846:44:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5912,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1845:46:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1829:62:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":5914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1905:56:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":5897,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1808:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1808:163:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5916,"nodeType":"ExpressionStatement","src":"1808:163:28"},{"expression":{"arguments":[{"id":5918,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5890,"src":"2001:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5921,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5890,"src":"2031:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":5922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"2031:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2031:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5924,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"2055:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5925,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"2064:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5919,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2008:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2008:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2008:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5917,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"1981:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5767_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1981:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5928,"nodeType":"ExpressionStatement","src":"1981:90:28"}]},"documentation":{"id":5887,"nodeType":"StructuredDocumentation","src":"1221:249:28","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":5930,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1484:11:28","nodeType":"FunctionDefinition","parameters":{"id":5895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5890,"mutability":"mutable","name":"token","nameLocation":"1512:5:28","nodeType":"VariableDeclaration","scope":5930,"src":"1505:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":5889,"nodeType":"UserDefinedTypeName","pathNode":{"id":5888,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1505:6:28"},"referencedDeclaration":5767,"src":"1505:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5892,"mutability":"mutable","name":"spender","nameLocation":"1535:7:28","nodeType":"VariableDeclaration","scope":5930,"src":"1527:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5891,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5894,"mutability":"mutable","name":"value","nameLocation":"1560:5:28","nodeType":"VariableDeclaration","scope":5930,"src":"1552:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5893,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1495:76:28"},"returnParameters":{"id":5896,"nodeType":"ParameterList","parameters":[],"src":"1581:0:28"},"scope":6109,"src":"1475:603:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5965,"nodeType":"Block","src":"2200:194:28","statements":[{"assignments":[5941],"declarations":[{"constant":false,"id":5941,"mutability":"mutable","name":"newAllowance","nameLocation":"2218:12:28","nodeType":"VariableDeclaration","scope":5965,"src":"2210:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5940,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5952,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5946,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2257:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6109","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6109","typeString":"library SafeERC20"}],"id":5945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2249:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5944,"name":"address","nodeType":"ElementaryTypeName","src":"2249:7:28","typeDescriptions":{}}},"id":5947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5948,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"2264:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5942,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"2233:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5744,"src":"2233:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2233:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"2275:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2233:47:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2210:70:28"},{"expression":{"arguments":[{"id":5954,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"2310:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5957,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"2340:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":5958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"2340:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2340:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5960,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"2364:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5961,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5941,"src":"2373:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5955,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2317:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2317:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5953,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"2290:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5767_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:97:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5964,"nodeType":"ExpressionStatement","src":"2290:97:28"}]},"id":5966,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2093:21:28","nodeType":"FunctionDefinition","parameters":{"id":5938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5933,"mutability":"mutable","name":"token","nameLocation":"2131:5:28","nodeType":"VariableDeclaration","scope":5966,"src":"2124:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":5932,"nodeType":"UserDefinedTypeName","pathNode":{"id":5931,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"2124:6:28"},"referencedDeclaration":5767,"src":"2124:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5935,"mutability":"mutable","name":"spender","nameLocation":"2154:7:28","nodeType":"VariableDeclaration","scope":5966,"src":"2146:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5934,"name":"address","nodeType":"ElementaryTypeName","src":"2146:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5937,"mutability":"mutable","name":"value","nameLocation":"2179:5:28","nodeType":"VariableDeclaration","scope":5966,"src":"2171:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5936,"name":"uint256","nodeType":"ElementaryTypeName","src":"2171:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2114:76:28"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[],"src":"2200:0:28"},"scope":6109,"src":"2084:310:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6013,"nodeType":"Block","src":"2516:370:28","statements":[{"id":6012,"nodeType":"UncheckedBlock","src":"2526:354:28","statements":[{"assignments":[5977],"declarations":[{"constant":false,"id":5977,"mutability":"mutable","name":"oldAllowance","nameLocation":"2558:12:28","nodeType":"VariableDeclaration","scope":6012,"src":"2550:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5976,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5986,"initialValue":{"arguments":[{"arguments":[{"id":5982,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2597:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6109","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6109","typeString":"library SafeERC20"}],"id":5981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2589:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5980,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:28","typeDescriptions":{}}},"id":5983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2589:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5984,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5971,"src":"2604:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5978,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5969,"src":"2573:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":5979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5744,"src":"2573:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2550:62:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5988,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5977,"src":"2634:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"2650:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2634:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":5991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2657:43:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":5987,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2626:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2626:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5993,"nodeType":"ExpressionStatement","src":"2626:75:28"},{"assignments":[5995],"declarations":[{"constant":false,"id":5995,"mutability":"mutable","name":"newAllowance","nameLocation":"2723:12:28","nodeType":"VariableDeclaration","scope":6012,"src":"2715:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2715:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5999,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5996,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5977,"src":"2738:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5997,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"2753:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2738:20:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2715:43:28"},{"expression":{"arguments":[{"id":6001,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5969,"src":"2792:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6004,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5969,"src":"2822:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":6005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"2822:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2822:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6007,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5971,"src":"2846:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6008,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"2855:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6002,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2799:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2799:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2799:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6000,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"2772:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5767_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2772:97:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6011,"nodeType":"ExpressionStatement","src":"2772:97:28"}]}]},"id":6014,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2409:21:28","nodeType":"FunctionDefinition","parameters":{"id":5974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5969,"mutability":"mutable","name":"token","nameLocation":"2447:5:28","nodeType":"VariableDeclaration","scope":6014,"src":"2440:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":5968,"nodeType":"UserDefinedTypeName","pathNode":{"id":5967,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"2440:6:28"},"referencedDeclaration":5767,"src":"2440:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5971,"mutability":"mutable","name":"spender","nameLocation":"2470:7:28","nodeType":"VariableDeclaration","scope":6014,"src":"2462:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5970,"name":"address","nodeType":"ElementaryTypeName","src":"2462:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5973,"mutability":"mutable","name":"value","nameLocation":"2495:5:28","nodeType":"VariableDeclaration","scope":6014,"src":"2487:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5972,"name":"uint256","nodeType":"ElementaryTypeName","src":"2487:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:76:28"},"returnParameters":{"id":5975,"nodeType":"ParameterList","parameters":[],"src":"2516:0:28"},"scope":6109,"src":"2400:486:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6069,"nodeType":"Block","src":"3107:257:28","statements":[{"assignments":[6035],"declarations":[{"constant":false,"id":6035,"mutability":"mutable","name":"nonceBefore","nameLocation":"3125:11:28","nodeType":"VariableDeclaration","scope":6069,"src":"3117:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6034,"name":"uint256","nodeType":"ElementaryTypeName","src":"3117:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6040,"initialValue":{"arguments":[{"id":6038,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6019,"src":"3152:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6036,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"3139:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5828","typeString":"contract IERC20Permit"}},"id":6037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":5821,"src":"3139:12:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3139:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3117:41:28"},{"expression":{"arguments":[{"id":6044,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6019,"src":"3181:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6045,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"3188:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6046,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"3197:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6047,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"3204:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6048,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"3214:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6049,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6029,"src":"3217:1:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6050,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"3220:1:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6041,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"3168:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5828","typeString":"contract IERC20Permit"}},"id":6043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":5813,"src":"3168:12:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":6051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6052,"nodeType":"ExpressionStatement","src":"3168:54:28"},{"assignments":[6054],"declarations":[{"constant":false,"id":6054,"mutability":"mutable","name":"nonceAfter","nameLocation":"3240:10:28","nodeType":"VariableDeclaration","scope":6069,"src":"3232:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3232:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6059,"initialValue":{"arguments":[{"id":6057,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6019,"src":"3266:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6055,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"3253:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5828","typeString":"contract IERC20Permit"}},"id":6056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":5821,"src":"3253:12:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3253:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3232:40:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6061,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6054,"src":"3290:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6062,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"3304:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3318:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3304:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3290:29:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":6066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3321:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":6060,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3282:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6068,"nodeType":"ExpressionStatement","src":"3282:75:28"}]},"id":6070,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"2901:10:28","nodeType":"FunctionDefinition","parameters":{"id":6032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6017,"mutability":"mutable","name":"token","nameLocation":"2934:5:28","nodeType":"VariableDeclaration","scope":6070,"src":"2921:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5828","typeString":"contract IERC20Permit"},"typeName":{"id":6016,"nodeType":"UserDefinedTypeName","pathNode":{"id":6015,"name":"IERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":5828,"src":"2921:12:28"},"referencedDeclaration":5828,"src":"2921:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5828","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":6019,"mutability":"mutable","name":"owner","nameLocation":"2957:5:28","nodeType":"VariableDeclaration","scope":6070,"src":"2949:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6018,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6021,"mutability":"mutable","name":"spender","nameLocation":"2980:7:28","nodeType":"VariableDeclaration","scope":6070,"src":"2972:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6020,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6023,"mutability":"mutable","name":"value","nameLocation":"3005:5:28","nodeType":"VariableDeclaration","scope":6070,"src":"2997:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6022,"name":"uint256","nodeType":"ElementaryTypeName","src":"2997:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6025,"mutability":"mutable","name":"deadline","nameLocation":"3028:8:28","nodeType":"VariableDeclaration","scope":6070,"src":"3020:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6024,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6027,"mutability":"mutable","name":"v","nameLocation":"3052:1:28","nodeType":"VariableDeclaration","scope":6070,"src":"3046:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6026,"name":"uint8","nodeType":"ElementaryTypeName","src":"3046:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6029,"mutability":"mutable","name":"r","nameLocation":"3071:1:28","nodeType":"VariableDeclaration","scope":6070,"src":"3063:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3063:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6031,"mutability":"mutable","name":"s","nameLocation":"3090:1:28","nodeType":"VariableDeclaration","scope":6070,"src":"3082:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3082:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2911:186:28"},"returnParameters":{"id":6033,"nodeType":"ParameterList","parameters":[],"src":"3107:0:28"},"scope":6109,"src":"2892:472:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6107,"nodeType":"Block","src":"3817:636:28","statements":[{"assignments":[6080],"declarations":[{"constant":false,"id":6080,"mutability":"mutable","name":"returndata","nameLocation":"4179:10:28","nodeType":"VariableDeclaration","scope":6107,"src":"4166:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6079,"name":"bytes","nodeType":"ElementaryTypeName","src":"4166:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6089,"initialValue":{"arguments":[{"id":6086,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"4220:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":6087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4226:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":6083,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"4200:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}],"id":6082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4192:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6081,"name":"address","nodeType":"ElementaryTypeName","src":"4192:7:28","typeDescriptions":{}}},"id":6084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":7793,"src":"4192:27:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4166:95:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6090,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6080,"src":"4275:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4275:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4295:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4275:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6106,"nodeType":"IfStatement","src":"4271:176:28","trueBody":{"id":6105,"nodeType":"Block","src":"4298:149:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":6097,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6080,"src":"4370:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4383:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":6098,"name":"bool","nodeType":"ElementaryTypeName","src":"4383:4:28","typeDescriptions":{}}}],"id":6100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4382:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":6095,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4359:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"4359:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4359:30:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":6102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4391:44:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":6094,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4351:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4351:85:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6104,"nodeType":"ExpressionStatement","src":"4351:85:28"}]}}]},"documentation":{"id":6071,"nodeType":"StructuredDocumentation","src":"3370:372:28","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":6108,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"3756:19:28","nodeType":"FunctionDefinition","parameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6074,"mutability":"mutable","name":"token","nameLocation":"3783:5:28","nodeType":"VariableDeclaration","scope":6108,"src":"3776:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":6073,"nodeType":"UserDefinedTypeName","pathNode":{"id":6072,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"3776:6:28"},"referencedDeclaration":5767,"src":"3776:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"data","nameLocation":"3803:4:28","nodeType":"VariableDeclaration","scope":6108,"src":"3790:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6075,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:33:28"},"returnParameters":{"id":6078,"nodeType":"ParameterList","parameters":[],"src":"3817:0:28"},"scope":6109,"src":"3747:706:28","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":6110,"src":"707:3748:28","usedErrors":[]}],"src":"115:4341:28"},"id":28},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"ERC165":[9837],"ERC721":[6976],"IERC165":[9849],"IERC721":[7092],"IERC721Metadata":[7506],"IERC721Receiver":[7110],"Strings":[8555]},"id":6977,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6111,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:29"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":6112,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6977,"sourceUnit":7093,"src":"132:23:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":6113,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6977,"sourceUnit":7111,"src":"156:31:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":6114,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6977,"sourceUnit":7507,"src":"188:42:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":6115,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6977,"sourceUnit":8000,"src":"231:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":6116,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6977,"sourceUnit":8256,"src":"265:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":6117,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6977,"sourceUnit":8556,"src":"299:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":6118,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6977,"sourceUnit":9838,"src":"333:46:29","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6120,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"647:7:29"},"id":6121,"nodeType":"InheritanceSpecifier","src":"647:7:29"},{"baseName":{"id":6122,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":9837,"src":"656:6:29"},"id":6123,"nodeType":"InheritanceSpecifier","src":"656:6:29"},{"baseName":{"id":6124,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":7092,"src":"664:7:29"},"id":6125,"nodeType":"InheritanceSpecifier","src":"664:7:29"},{"baseName":{"id":6126,"name":"IERC721Metadata","nodeType":"IdentifierPath","referencedDeclaration":7506,"src":"673:15:29"},"id":6127,"nodeType":"InheritanceSpecifier","src":"673:15:29"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":6119,"nodeType":"StructuredDocumentation","src":"381:246:29","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":6976,"linearizedBaseContracts":[6976,7506,7092,9837,9849,8255],"name":"ERC721","nameLocation":"637:6:29","nodeType":"ContractDefinition","nodes":[{"id":6130,"libraryName":{"id":6128,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":7999,"src":"701:7:29"},"nodeType":"UsingForDirective","src":"695:26:29","typeName":{"id":6129,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":6133,"libraryName":{"id":6131,"name":"Strings","nodeType":"IdentifierPath","referencedDeclaration":8555,"src":"732:7:29"},"nodeType":"UsingForDirective","src":"726:26:29","typeName":{"id":6132,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":6135,"mutability":"mutable","name":"_name","nameLocation":"791:5:29","nodeType":"VariableDeclaration","scope":6976,"src":"776:20:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6134,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":6137,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:29","nodeType":"VariableDeclaration","scope":6976,"src":"823:22:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6136,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":6141,"mutability":"mutable","name":"_owners","nameLocation":"934:7:29","nodeType":"VariableDeclaration","scope":6976,"src":"898:43:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":6140,"keyType":{"id":6138,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":6139,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":6145,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:29","nodeType":"VariableDeclaration","scope":6976,"src":"992:45:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":6144,"keyType":{"id":6142,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":6143,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":6149,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:29","nodeType":"VariableDeclaration","scope":6976,"src":"1093:51:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":6148,"keyType":{"id":6146,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":6147,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":6155,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:29","nodeType":"VariableDeclaration","scope":6976,"src":"1199:71:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":6154,"keyType":{"id":6150,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":6153,"keyType":{"id":6151,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6152,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":6171,"nodeType":"Block","src":"1446:57:29","statements":[{"expression":{"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6163,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"1456:5:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6164,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"1464:5:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6166,"nodeType":"ExpressionStatement","src":"1456:13:29"},{"expression":{"id":6169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6167,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6137,"src":"1479:7:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6168,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"1489:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6170,"nodeType":"ExpressionStatement","src":"1479:17:29"}]},"documentation":{"id":6156,"nodeType":"StructuredDocumentation","src":"1277:108:29","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":6172,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6158,"mutability":"mutable","name":"name_","nameLocation":"1416:5:29","nodeType":"VariableDeclaration","scope":6172,"src":"1402:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6157,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6160,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:29","nodeType":"VariableDeclaration","scope":6172,"src":"1423:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6159,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:29"},"returnParameters":{"id":6162,"nodeType":"ParameterList","parameters":[],"src":"1446:0:29"},"scope":6976,"src":"1390:113:29","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9836,9848],"body":{"id":6202,"nodeType":"Block","src":"1678:192:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6183,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"1707:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6185,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"1727:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$7092_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$7092_$","typeString":"type(contract IERC721)"}],"id":6184,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1722:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1722:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$7092","typeString":"type(contract IERC721)"}},"id":6187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6189,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"1763:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6191,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"1783:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$7506_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$7506_$","typeString":"type(contract IERC721Metadata)"}],"id":6190,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1778:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1778:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$7506","typeString":"type(contract IERC721Metadata)"}},"id":6193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6198,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"1851:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":6196,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1827:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$6976_$","typeString":"type(contract super ERC721)"}},"id":6197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":9836,"src":"1827:23:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1827:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6182,"id":6201,"nodeType":"Return","src":"1688:175:29"}]},"documentation":{"id":6173,"nodeType":"StructuredDocumentation","src":"1509:56:29","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":6203,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:29","nodeType":"FunctionDefinition","overrides":{"id":6179,"nodeType":"OverrideSpecifier","overrides":[{"id":6177,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":9837,"src":"1646:6:29"},{"id":6178,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"1654:7:29"}],"src":"1637:25:29"},"parameters":{"id":6176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6175,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:29","nodeType":"VariableDeclaration","scope":6203,"src":"1597:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6174,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:29"},"returnParameters":{"id":6182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6203,"src":"1672:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6180,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:29"},"scope":6976,"src":"1570:300:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7017],"body":{"id":6226,"nodeType":"Block","src":"2010:123:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6213,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6206,"src":"2028:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6214,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:29","typeDescriptions":{}}},"id":6217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2037:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":6219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:43:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""},"value":"ERC721: address zero is not a valid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""}],"id":6212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6221,"nodeType":"ExpressionStatement","src":"2020:73:29"},{"expression":{"baseExpression":{"id":6222,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"2110:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6224,"indexExpression":{"id":6223,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6206,"src":"2120:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2110:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6211,"id":6225,"nodeType":"Return","src":"2103:23:29"}]},"documentation":{"id":6204,"nodeType":"StructuredDocumentation","src":"1876:48:29","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":6227,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:29","nodeType":"FunctionDefinition","overrides":{"id":6208,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:29"},"parameters":{"id":6207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6206,"mutability":"mutable","name":"owner","nameLocation":"1956:5:29","nodeType":"VariableDeclaration","scope":6227,"src":"1948:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6205,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:29"},"returnParameters":{"id":6211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6227,"src":"2001:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6209,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:29"},"scope":6976,"src":"1929:204:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7025],"body":{"id":6254,"nodeType":"Block","src":"2271:137:29","statements":[{"assignments":[6237],"declarations":[{"constant":false,"id":6237,"mutability":"mutable","name":"owner","nameLocation":"2289:5:29","nodeType":"VariableDeclaration","scope":6254,"src":"2281:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6236,"name":"address","nodeType":"ElementaryTypeName","src":"2281:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6241,"initialValue":{"baseExpression":{"id":6238,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"2297:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6240,"indexExpression":{"id":6239,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6230,"src":"2305:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2297:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2281:32:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6237,"src":"2331:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2348:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2340:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6244,"name":"address","nodeType":"ElementaryTypeName","src":"2340:7:29","typeDescriptions":{}}},"id":6247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2340:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2331:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":6249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2352:26:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":6242,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2323:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2323:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6251,"nodeType":"ExpressionStatement","src":"2323:56:29"},{"expression":{"id":6252,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6237,"src":"2396:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6235,"id":6253,"nodeType":"Return","src":"2389:12:29"}]},"documentation":{"id":6228,"nodeType":"StructuredDocumentation","src":"2139:46:29","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":6255,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2199:7:29","nodeType":"FunctionDefinition","overrides":{"id":6232,"nodeType":"OverrideSpecifier","overrides":[],"src":"2244:8:29"},"parameters":{"id":6231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6230,"mutability":"mutable","name":"tokenId","nameLocation":"2215:7:29","nodeType":"VariableDeclaration","scope":6255,"src":"2207:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6229,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2206:17:29"},"returnParameters":{"id":6235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6255,"src":"2262:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6233,"name":"address","nodeType":"ElementaryTypeName","src":"2262:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2261:9:29"},"scope":6976,"src":"2190:218:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7491],"body":{"id":6264,"nodeType":"Block","src":"2539:29:29","statements":[{"expression":{"id":6262,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"2556:5:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":6261,"id":6263,"nodeType":"Return","src":"2549:12:29"}]},"documentation":{"id":6256,"nodeType":"StructuredDocumentation","src":"2414:51:29","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":6265,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2479:4:29","nodeType":"FunctionDefinition","overrides":{"id":6258,"nodeType":"OverrideSpecifier","overrides":[],"src":"2506:8:29"},"parameters":{"id":6257,"nodeType":"ParameterList","parameters":[],"src":"2483:2:29"},"returnParameters":{"id":6261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6260,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6265,"src":"2524:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6259,"name":"string","nodeType":"ElementaryTypeName","src":"2524:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2523:15:29"},"scope":6976,"src":"2470:98:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7497],"body":{"id":6274,"nodeType":"Block","src":"2703:31:29","statements":[{"expression":{"id":6272,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6137,"src":"2720:7:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":6271,"id":6273,"nodeType":"Return","src":"2713:14:29"}]},"documentation":{"id":6266,"nodeType":"StructuredDocumentation","src":"2574:53:29","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":6275,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2641:6:29","nodeType":"FunctionDefinition","overrides":{"id":6268,"nodeType":"OverrideSpecifier","overrides":[],"src":"2670:8:29"},"parameters":{"id":6267,"nodeType":"ParameterList","parameters":[],"src":"2647:2:29"},"returnParameters":{"id":6271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6275,"src":"2688:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6269,"name":"string","nodeType":"ElementaryTypeName","src":"2688:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2687:15:29"},"scope":6976,"src":"2632:102:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7505],"body":{"id":6313,"nodeType":"Block","src":"2888:188:29","statements":[{"expression":{"arguments":[{"id":6285,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6278,"src":"2913:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6284,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6891,"src":"2898:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2898:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6287,"nodeType":"ExpressionStatement","src":"2898:23:29"},{"assignments":[6289],"declarations":[{"constant":false,"id":6289,"mutability":"mutable","name":"baseURI","nameLocation":"2946:7:29","nodeType":"VariableDeclaration","scope":6313,"src":"2932:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6288,"name":"string","nodeType":"ElementaryTypeName","src":"2932:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":6292,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6290,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6323,"src":"2956:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":6291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2932:34:29"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6295,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6289,"src":"2989:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2983:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6293,"name":"bytes","nodeType":"ElementaryTypeName","src":"2983:5:29","typeDescriptions":{}}},"id":6296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2983:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2983:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3007:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2983:25:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":6310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3067:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":6311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2983:86:29","trueExpression":{"arguments":[{"arguments":[{"id":6304,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6289,"src":"3035:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6305,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6278,"src":"3044:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8417,"src":"3044:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3044:18:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6302,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3018:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3018:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3018:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3011:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":6300,"name":"string","nodeType":"ElementaryTypeName","src":"3011:6:29","typeDescriptions":{}}},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3011:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6283,"id":6312,"nodeType":"Return","src":"2976:93:29"}]},"documentation":{"id":6276,"nodeType":"StructuredDocumentation","src":"2740:55:29","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":6314,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2809:8:29","nodeType":"FunctionDefinition","overrides":{"id":6280,"nodeType":"OverrideSpecifier","overrides":[],"src":"2855:8:29"},"parameters":{"id":6279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6278,"mutability":"mutable","name":"tokenId","nameLocation":"2826:7:29","nodeType":"VariableDeclaration","scope":6314,"src":"2818:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6277,"name":"uint256","nodeType":"ElementaryTypeName","src":"2818:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2817:17:29"},"returnParameters":{"id":6283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6314,"src":"2873:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6281,"name":"string","nodeType":"ElementaryTypeName","src":"2873:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2872:15:29"},"scope":6976,"src":"2800:276:29","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6322,"nodeType":"Block","src":"3384:26:29","statements":[{"expression":{"hexValue":"","id":6320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3401:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":6319,"id":6321,"nodeType":"Return","src":"3394:9:29"}]},"documentation":{"id":6315,"nodeType":"StructuredDocumentation","src":"3082:231:29","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":6323,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3327:8:29","nodeType":"FunctionDefinition","parameters":{"id":6316,"nodeType":"ParameterList","parameters":[],"src":"3335:2:29"},"returnParameters":{"id":6319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6323,"src":"3369:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6317,"name":"string","nodeType":"ElementaryTypeName","src":"3369:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3368:15:29"},"scope":6976,"src":"3318:92:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7065],"body":{"id":6365,"nodeType":"Block","src":"3537:337:29","statements":[{"assignments":[6333],"declarations":[{"constant":false,"id":6333,"mutability":"mutable","name":"owner","nameLocation":"3555:5:29","nodeType":"VariableDeclaration","scope":6365,"src":"3547:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6332,"name":"address","nodeType":"ElementaryTypeName","src":"3547:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6338,"initialValue":{"arguments":[{"id":6336,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6328,"src":"3578:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6334,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"3563:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":6335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6255,"src":"3563:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3563:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3547:39:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6340,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6326,"src":"3604:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6341,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"3610:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3604:11:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":6343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:35:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":6339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3596:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3596:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6345,"nodeType":"ExpressionStatement","src":"3596:57:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6347,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"3685:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3685:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6349,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"3701:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3685:21:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6352,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"3727:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6353,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"3734:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3734:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6351,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6419,"src":"3710:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":6355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3710:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3685:62:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c","id":6357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3761:64:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""},"value":"ERC721: approve caller is not token owner nor approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""}],"id":6346,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3664:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3664:171:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6359,"nodeType":"ExpressionStatement","src":"3664:171:29"},{"expression":{"arguments":[{"id":6361,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6326,"src":"3855:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6362,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6328,"src":"3859:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6360,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6845,"src":"3846:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3846:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6364,"nodeType":"ExpressionStatement","src":"3846:21:29"}]},"documentation":{"id":6324,"nodeType":"StructuredDocumentation","src":"3416:46:29","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":6366,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3476:7:29","nodeType":"FunctionDefinition","overrides":{"id":6330,"nodeType":"OverrideSpecifier","overrides":[],"src":"3528:8:29"},"parameters":{"id":6329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6326,"mutability":"mutable","name":"to","nameLocation":"3492:2:29","nodeType":"VariableDeclaration","scope":6366,"src":"3484:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6325,"name":"address","nodeType":"ElementaryTypeName","src":"3484:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6328,"mutability":"mutable","name":"tokenId","nameLocation":"3504:7:29","nodeType":"VariableDeclaration","scope":6366,"src":"3496:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6327,"name":"uint256","nodeType":"ElementaryTypeName","src":"3496:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3483:29:29"},"returnParameters":{"id":6331,"nodeType":"ParameterList","parameters":[],"src":"3537:0:29"},"scope":6976,"src":"3467:407:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7081],"body":{"id":6383,"nodeType":"Block","src":"4020:82:29","statements":[{"expression":{"arguments":[{"id":6376,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"4045:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6375,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6891,"src":"4030:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4030:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6378,"nodeType":"ExpressionStatement","src":"4030:23:29"},{"expression":{"baseExpression":{"id":6379,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"4071:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6381,"indexExpression":{"id":6380,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"4087:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4071:24:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6374,"id":6382,"nodeType":"Return","src":"4064:31:29"}]},"documentation":{"id":6367,"nodeType":"StructuredDocumentation","src":"3880:50:29","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":6384,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3944:11:29","nodeType":"FunctionDefinition","overrides":{"id":6371,"nodeType":"OverrideSpecifier","overrides":[],"src":"3993:8:29"},"parameters":{"id":6370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6369,"mutability":"mutable","name":"tokenId","nameLocation":"3964:7:29","nodeType":"VariableDeclaration","scope":6384,"src":"3956:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6368,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:17:29"},"returnParameters":{"id":6374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6384,"src":"4011:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6372,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:9:29"},"scope":6976,"src":"3935:167:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7073],"body":{"id":6400,"nodeType":"Block","src":"4253:69:29","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6394,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"4282:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4282:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6396,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6387,"src":"4296:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6397,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6389,"src":"4306:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6393,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6877,"src":"4263:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":6398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4263:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6399,"nodeType":"ExpressionStatement","src":"4263:52:29"}]},"documentation":{"id":6385,"nodeType":"StructuredDocumentation","src":"4108:56:29","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":6401,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4178:17:29","nodeType":"FunctionDefinition","overrides":{"id":6391,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:29"},"parameters":{"id":6390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6387,"mutability":"mutable","name":"operator","nameLocation":"4204:8:29","nodeType":"VariableDeclaration","scope":6401,"src":"4196:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6386,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6389,"mutability":"mutable","name":"approved","nameLocation":"4219:8:29","nodeType":"VariableDeclaration","scope":6401,"src":"4214:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6388,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4195:33:29"},"returnParameters":{"id":6392,"nodeType":"ParameterList","parameters":[],"src":"4253:0:29"},"scope":6976,"src":"4169:153:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7091],"body":{"id":6418,"nodeType":"Block","src":"4491:59:29","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":6412,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"4508:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":6414,"indexExpression":{"id":6413,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6404,"src":"4527:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6416,"indexExpression":{"id":6415,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6406,"src":"4534:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6411,"id":6417,"nodeType":"Return","src":"4501:42:29"}]},"documentation":{"id":6402,"nodeType":"StructuredDocumentation","src":"4328:55:29","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":6419,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4397:16:29","nodeType":"FunctionDefinition","overrides":{"id":6408,"nodeType":"OverrideSpecifier","overrides":[],"src":"4467:8:29"},"parameters":{"id":6407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6404,"mutability":"mutable","name":"owner","nameLocation":"4422:5:29","nodeType":"VariableDeclaration","scope":6419,"src":"4414:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6403,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6406,"mutability":"mutable","name":"operator","nameLocation":"4437:8:29","nodeType":"VariableDeclaration","scope":6419,"src":"4429:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6405,"name":"address","nodeType":"ElementaryTypeName","src":"4429:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:33:29"},"returnParameters":{"id":6411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6419,"src":"4485:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6409,"name":"bool","nodeType":"ElementaryTypeName","src":"4485:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4484:6:29"},"scope":6976,"src":"4388:162:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7057],"body":{"id":6445,"nodeType":"Block","src":"4731:208:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6432,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"4820:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4820:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6434,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6426,"src":"4834:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6431,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6576,"src":"4801:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":6435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4801:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":6436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4844:48:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":6430,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4793:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4793:100:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6438,"nodeType":"ExpressionStatement","src":"4793:100:29"},{"expression":{"arguments":[{"id":6440,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6422,"src":"4914:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6441,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6424,"src":"4920:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6442,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6426,"src":"4924:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6439,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6821,"src":"4904:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4904:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6444,"nodeType":"ExpressionStatement","src":"4904:28:29"}]},"documentation":{"id":6420,"nodeType":"StructuredDocumentation","src":"4556:51:29","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":6446,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4621:12:29","nodeType":"FunctionDefinition","overrides":{"id":6428,"nodeType":"OverrideSpecifier","overrides":[],"src":"4722:8:29"},"parameters":{"id":6427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6422,"mutability":"mutable","name":"from","nameLocation":"4651:4:29","nodeType":"VariableDeclaration","scope":6446,"src":"4643:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6421,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6424,"mutability":"mutable","name":"to","nameLocation":"4673:2:29","nodeType":"VariableDeclaration","scope":6446,"src":"4665:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6423,"name":"address","nodeType":"ElementaryTypeName","src":"4665:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6426,"mutability":"mutable","name":"tokenId","nameLocation":"4693:7:29","nodeType":"VariableDeclaration","scope":6446,"src":"4685:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6425,"name":"uint256","nodeType":"ElementaryTypeName","src":"4685:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4633:73:29"},"returnParameters":{"id":6429,"nodeType":"ParameterList","parameters":[],"src":"4731:0:29"},"scope":6976,"src":"4612:327:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7047],"body":{"id":6464,"nodeType":"Block","src":"5128:56:29","statements":[{"expression":{"arguments":[{"id":6458,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6449,"src":"5155:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6459,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6451,"src":"5161:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6460,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"5165:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":6461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5174:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":6457,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[6465,6495],"referencedDeclaration":6495,"src":"5138:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":6462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5138:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6463,"nodeType":"ExpressionStatement","src":"5138:39:29"}]},"documentation":{"id":6447,"nodeType":"StructuredDocumentation","src":"4945:55:29","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":6465,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5014:16:29","nodeType":"FunctionDefinition","overrides":{"id":6455,"nodeType":"OverrideSpecifier","overrides":[],"src":"5119:8:29"},"parameters":{"id":6454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6449,"mutability":"mutable","name":"from","nameLocation":"5048:4:29","nodeType":"VariableDeclaration","scope":6465,"src":"5040:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6448,"name":"address","nodeType":"ElementaryTypeName","src":"5040:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6451,"mutability":"mutable","name":"to","nameLocation":"5070:2:29","nodeType":"VariableDeclaration","scope":6465,"src":"5062:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6450,"name":"address","nodeType":"ElementaryTypeName","src":"5062:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6453,"mutability":"mutable","name":"tokenId","nameLocation":"5090:7:29","nodeType":"VariableDeclaration","scope":6465,"src":"5082:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6452,"name":"uint256","nodeType":"ElementaryTypeName","src":"5082:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5030:73:29"},"returnParameters":{"id":6456,"nodeType":"ParameterList","parameters":[],"src":"5128:0:29"},"scope":6976,"src":"5005:179:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7037],"body":{"id":6494,"nodeType":"Block","src":"5400:165:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6480,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"5437:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5437:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6482,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6472,"src":"5451:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6479,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6576,"src":"5418:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":6483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5418:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":6484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5461:48:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":6478,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5410:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5410:100:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6486,"nodeType":"ExpressionStatement","src":"5410:100:29"},{"expression":{"arguments":[{"id":6488,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6468,"src":"5534:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6489,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6470,"src":"5540:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6490,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6472,"src":"5544:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6491,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6474,"src":"5553:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6487,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6524,"src":"5520:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":6492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6493,"nodeType":"ExpressionStatement","src":"5520:38:29"}]},"documentation":{"id":6466,"nodeType":"StructuredDocumentation","src":"5190:55:29","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":6495,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5259:16:29","nodeType":"FunctionDefinition","overrides":{"id":6476,"nodeType":"OverrideSpecifier","overrides":[],"src":"5391:8:29"},"parameters":{"id":6475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6468,"mutability":"mutable","name":"from","nameLocation":"5293:4:29","nodeType":"VariableDeclaration","scope":6495,"src":"5285:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6467,"name":"address","nodeType":"ElementaryTypeName","src":"5285:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6470,"mutability":"mutable","name":"to","nameLocation":"5315:2:29","nodeType":"VariableDeclaration","scope":6495,"src":"5307:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6469,"name":"address","nodeType":"ElementaryTypeName","src":"5307:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6472,"mutability":"mutable","name":"tokenId","nameLocation":"5335:7:29","nodeType":"VariableDeclaration","scope":6495,"src":"5327:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6471,"name":"uint256","nodeType":"ElementaryTypeName","src":"5327:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6474,"mutability":"mutable","name":"data","nameLocation":"5365:4:29","nodeType":"VariableDeclaration","scope":6495,"src":"5352:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6473,"name":"bytes","nodeType":"ElementaryTypeName","src":"5352:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5275:100:29"},"returnParameters":{"id":6477,"nodeType":"ParameterList","parameters":[],"src":"5400:0:29"},"scope":6976,"src":"5250:315:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6523,"nodeType":"Block","src":"6566:165:29","statements":[{"expression":{"arguments":[{"id":6508,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6498,"src":"6586:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6509,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"6592:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6510,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"6596:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6507,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6821,"src":"6576:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6576:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6512,"nodeType":"ExpressionStatement","src":"6576:28:29"},{"expression":{"arguments":[{"arguments":[{"id":6515,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6498,"src":"6645:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6516,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"6651:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6517,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"6655:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6518,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"6664:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6514,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6953,"src":"6622:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":6519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6622:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":6520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6671:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":6513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6614:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6614:110:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6522,"nodeType":"ExpressionStatement","src":"6614:110:29"}]},"documentation":{"id":6496,"nodeType":"StructuredDocumentation","src":"5571:850:29","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":6524,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6435:13:29","nodeType":"FunctionDefinition","parameters":{"id":6505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6498,"mutability":"mutable","name":"from","nameLocation":"6466:4:29","nodeType":"VariableDeclaration","scope":6524,"src":"6458:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6497,"name":"address","nodeType":"ElementaryTypeName","src":"6458:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6500,"mutability":"mutable","name":"to","nameLocation":"6488:2:29","nodeType":"VariableDeclaration","scope":6524,"src":"6480:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6499,"name":"address","nodeType":"ElementaryTypeName","src":"6480:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6502,"mutability":"mutable","name":"tokenId","nameLocation":"6508:7:29","nodeType":"VariableDeclaration","scope":6524,"src":"6500:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6501,"name":"uint256","nodeType":"ElementaryTypeName","src":"6500:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6504,"mutability":"mutable","name":"data","nameLocation":"6538:4:29","nodeType":"VariableDeclaration","scope":6524,"src":"6525:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6503,"name":"bytes","nodeType":"ElementaryTypeName","src":"6525:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6448:100:29"},"returnParameters":{"id":6506,"nodeType":"ParameterList","parameters":[],"src":"6566:0:29"},"scope":6976,"src":"6426:305:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6541,"nodeType":"Block","src":"7105:54:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6532,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"7122:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6534,"indexExpression":{"id":6533,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6527,"src":"7130:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7122:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7150:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7142:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6535,"name":"address","nodeType":"ElementaryTypeName","src":"7142:7:29","typeDescriptions":{}}},"id":6538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7142:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7122:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6531,"id":6540,"nodeType":"Return","src":"7115:37:29"}]},"documentation":{"id":6525,"nodeType":"StructuredDocumentation","src":"6737:292:29","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":6542,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7043:7:29","nodeType":"FunctionDefinition","parameters":{"id":6528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6527,"mutability":"mutable","name":"tokenId","nameLocation":"7059:7:29","nodeType":"VariableDeclaration","scope":6542,"src":"7051:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint256","nodeType":"ElementaryTypeName","src":"7051:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7050:17:29"},"returnParameters":{"id":6531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6542,"src":"7099:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6529,"name":"bool","nodeType":"ElementaryTypeName","src":"7099:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7098:6:29"},"scope":6976,"src":"7034:125:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6575,"nodeType":"Block","src":"7416:162:29","statements":[{"assignments":[6553],"declarations":[{"constant":false,"id":6553,"mutability":"mutable","name":"owner","nameLocation":"7434:5:29","nodeType":"VariableDeclaration","scope":6575,"src":"7426:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6552,"name":"address","nodeType":"ElementaryTypeName","src":"7426:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6558,"initialValue":{"arguments":[{"id":6556,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6547,"src":"7457:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6554,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"7442:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":6555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6255,"src":"7442:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7442:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7426:39:29"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6559,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6545,"src":"7483:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6560,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6553,"src":"7494:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7483:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6563,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6553,"src":"7520:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6564,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6545,"src":"7527:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6562,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6419,"src":"7503:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":6565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7503:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7483:52:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6568,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6547,"src":"7551:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6567,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6384,"src":"7539:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7539:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6570,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6545,"src":"7563:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7539:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7483:87:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7482:89:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6551,"id":6574,"nodeType":"Return","src":"7475:96:29"}]},"documentation":{"id":6543,"nodeType":"StructuredDocumentation","src":"7165:147:29","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":6576,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7326:18:29","nodeType":"FunctionDefinition","parameters":{"id":6548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6545,"mutability":"mutable","name":"spender","nameLocation":"7353:7:29","nodeType":"VariableDeclaration","scope":6576,"src":"7345:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6544,"name":"address","nodeType":"ElementaryTypeName","src":"7345:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6547,"mutability":"mutable","name":"tokenId","nameLocation":"7370:7:29","nodeType":"VariableDeclaration","scope":6576,"src":"7362:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6546,"name":"uint256","nodeType":"ElementaryTypeName","src":"7362:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7344:34:29"},"returnParameters":{"id":6551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6576,"src":"7410:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6549,"name":"bool","nodeType":"ElementaryTypeName","src":"7410:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7409:6:29"},"scope":6976,"src":"7317:261:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6590,"nodeType":"Block","src":"7973:43:29","statements":[{"expression":{"arguments":[{"id":6585,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"7993:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6586,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"7997:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":6587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8006:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":6584,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[6591,6620],"referencedDeclaration":6620,"src":"7983:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":6588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7983:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6589,"nodeType":"ExpressionStatement","src":"7983:26:29"}]},"documentation":{"id":6577,"nodeType":"StructuredDocumentation","src":"7584:319:29","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":6591,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"7917:9:29","nodeType":"FunctionDefinition","parameters":{"id":6582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6579,"mutability":"mutable","name":"to","nameLocation":"7935:2:29","nodeType":"VariableDeclaration","scope":6591,"src":"7927:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6578,"name":"address","nodeType":"ElementaryTypeName","src":"7927:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6581,"mutability":"mutable","name":"tokenId","nameLocation":"7947:7:29","nodeType":"VariableDeclaration","scope":6591,"src":"7939:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6580,"name":"uint256","nodeType":"ElementaryTypeName","src":"7939:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7926:29:29"},"returnParameters":{"id":6583,"nodeType":"ParameterList","parameters":[],"src":"7973:0:29"},"scope":6976,"src":"7908:108:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6619,"nodeType":"Block","src":"8351:195:29","statements":[{"expression":{"arguments":[{"id":6602,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"8367:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6603,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"8371:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6601,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6686,"src":"8361:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8361:18:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6605,"nodeType":"ExpressionStatement","src":"8361:18:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":6610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8441:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8433:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6608,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:29","typeDescriptions":{}}},"id":6611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8433:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6612,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"8445:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6613,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"8449:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6614,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6598,"src":"8458:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6607,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6953,"src":"8410:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":6615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8410:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":6616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8477:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":6606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8389:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8389:150:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6618,"nodeType":"ExpressionStatement","src":"8389:150:29"}]},"documentation":{"id":6592,"nodeType":"StructuredDocumentation","src":"8022:210:29","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":6620,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8246:9:29","nodeType":"FunctionDefinition","parameters":{"id":6599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6594,"mutability":"mutable","name":"to","nameLocation":"8273:2:29","nodeType":"VariableDeclaration","scope":6620,"src":"8265:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6593,"name":"address","nodeType":"ElementaryTypeName","src":"8265:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6596,"mutability":"mutable","name":"tokenId","nameLocation":"8293:7:29","nodeType":"VariableDeclaration","scope":6620,"src":"8285:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6595,"name":"uint256","nodeType":"ElementaryTypeName","src":"8285:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6598,"mutability":"mutable","name":"data","nameLocation":"8323:4:29","nodeType":"VariableDeclaration","scope":6620,"src":"8310:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6597,"name":"bytes","nodeType":"ElementaryTypeName","src":"8310:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8255:78:29"},"returnParameters":{"id":6600,"nodeType":"ParameterList","parameters":[],"src":"8351:0:29"},"scope":6976,"src":"8237:309:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6685,"nodeType":"Block","src":"8929:366:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6629,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"8947:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8961:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8953:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6630,"name":"address","nodeType":"ElementaryTypeName","src":"8953:7:29","typeDescriptions":{}}},"id":6633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8953:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8947:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":6635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8965:34:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":6628,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8939:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8939:61:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6637,"nodeType":"ExpressionStatement","src":"8939:61:29"},{"expression":{"arguments":[{"id":6642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9018:17:29","subExpression":{"arguments":[{"id":6640,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6625,"src":"9027:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6639,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6542,"src":"9019:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":6641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9019:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":6643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9037:30:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":6638,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9010:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9010:58:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6645,"nodeType":"ExpressionStatement","src":"9010:58:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9108:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9100:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6647,"name":"address","nodeType":"ElementaryTypeName","src":"9100:7:29","typeDescriptions":{}}},"id":6650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9100:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6651,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"9112:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6652,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6625,"src":"9116:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6646,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"9079:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9079:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6654,"nodeType":"ExpressionStatement","src":"9079:45:29"},{"expression":{"id":6659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6655,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"9135:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6657,"indexExpression":{"id":6656,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"9145:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9135:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9152:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9135:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6660,"nodeType":"ExpressionStatement","src":"9135:18:29"},{"expression":{"id":6665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6661,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"9163:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6663,"indexExpression":{"id":6662,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6625,"src":"9171:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9163:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"9182:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9163:21:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6666,"nodeType":"ExpressionStatement","src":"9163:21:29"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":6670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9217:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9209:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6668,"name":"address","nodeType":"ElementaryTypeName","src":"9209:7:29","typeDescriptions":{}}},"id":6671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9209:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6672,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"9221:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6673,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6625,"src":"9225:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6667,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6991,"src":"9200:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9200:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6675,"nodeType":"EmitStatement","src":"9195:38:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9264:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6677,"name":"address","nodeType":"ElementaryTypeName","src":"9264:7:29","typeDescriptions":{}}},"id":6680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9264:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6681,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"9276:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6682,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6625,"src":"9280:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6676,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6975,"src":"9244:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9244:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6684,"nodeType":"ExpressionStatement","src":"9244:44:29"}]},"documentation":{"id":6621,"nodeType":"StructuredDocumentation","src":"8552:311:29","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":6686,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8877:5:29","nodeType":"FunctionDefinition","parameters":{"id":6626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6623,"mutability":"mutable","name":"to","nameLocation":"8891:2:29","nodeType":"VariableDeclaration","scope":6686,"src":"8883:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6622,"name":"address","nodeType":"ElementaryTypeName","src":"8883:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6625,"mutability":"mutable","name":"tokenId","nameLocation":"8903:7:29","nodeType":"VariableDeclaration","scope":6686,"src":"8895:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6624,"name":"uint256","nodeType":"ElementaryTypeName","src":"8895:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8882:29:29"},"returnParameters":{"id":6627,"nodeType":"ParameterList","parameters":[],"src":"8929:0:29"},"scope":6976,"src":"8868:427:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6745,"nodeType":"Block","src":"9561:357:29","statements":[{"assignments":[6693],"declarations":[{"constant":false,"id":6693,"mutability":"mutable","name":"owner","nameLocation":"9579:5:29","nodeType":"VariableDeclaration","scope":6745,"src":"9571:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6692,"name":"address","nodeType":"ElementaryTypeName","src":"9571:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6698,"initialValue":{"arguments":[{"id":6696,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"9602:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6694,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"9587:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":6695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6255,"src":"9587:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9587:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9571:39:29"},{"expression":{"arguments":[{"id":6700,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"9642:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9657:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9649:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6701,"name":"address","nodeType":"ElementaryTypeName","src":"9649:7:29","typeDescriptions":{}}},"id":6704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9649:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6705,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"9661:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6699,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"9621:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9621:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6707,"nodeType":"ExpressionStatement","src":"9621:48:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9724:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9716:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6709,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:29","typeDescriptions":{}}},"id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9716:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6713,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"9728:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6708,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6845,"src":"9707:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9707:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6715,"nodeType":"ExpressionStatement","src":"9707:29:29"},{"expression":{"id":6720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6716,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"9747:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6718,"indexExpression":{"id":6717,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"9757:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9747:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":6719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9767:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9747:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6721,"nodeType":"ExpressionStatement","src":"9747:21:29"},{"expression":{"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9778:23:29","subExpression":{"baseExpression":{"id":6722,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"9785:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6724,"indexExpression":{"id":6723,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"9793:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9785:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6726,"nodeType":"ExpressionStatement","src":"9778:23:29"},{"eventCall":{"arguments":[{"id":6728,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"9826:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9841:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6729,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:29","typeDescriptions":{}}},"id":6732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9833:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6733,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"9845:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6727,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6991,"src":"9817:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9817:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6735,"nodeType":"EmitStatement","src":"9812:41:29"},{"expression":{"arguments":[{"id":6737,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"9884:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9899:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9891:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6738,"name":"address","nodeType":"ElementaryTypeName","src":"9891:7:29","typeDescriptions":{}}},"id":6741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9891:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6742,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"9903:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6736,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6975,"src":"9864:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9864:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6744,"nodeType":"ExpressionStatement","src":"9864:47:29"}]},"documentation":{"id":6687,"nodeType":"StructuredDocumentation","src":"9301:206:29","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":6746,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9521:5:29","nodeType":"FunctionDefinition","parameters":{"id":6690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6689,"mutability":"mutable","name":"tokenId","nameLocation":"9535:7:29","nodeType":"VariableDeclaration","scope":6746,"src":"9527:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6688,"name":"uint256","nodeType":"ElementaryTypeName","src":"9527:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9526:17:29"},"returnParameters":{"id":6691,"nodeType":"ParameterList","parameters":[],"src":"9561:0:29"},"scope":6976,"src":"9512:406:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6820,"nodeType":"Block","src":"10351:496:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6759,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"10384:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6757,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"10369:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":6758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6255,"src":"10369:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10369:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6761,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6749,"src":"10396:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10369:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":6763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10402:39:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":6756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10361:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10361:81:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6765,"nodeType":"ExpressionStatement","src":"10361:81:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6767,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6751,"src":"10460:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10474:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10466:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6768,"name":"address","nodeType":"ElementaryTypeName","src":"10466:7:29","typeDescriptions":{}}},"id":6771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10466:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10460:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":6773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10478:38:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":6766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10452:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10452:65:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6775,"nodeType":"ExpressionStatement","src":"10452:65:29"},{"expression":{"arguments":[{"id":6777,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6749,"src":"10549:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6778,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6751,"src":"10555:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6779,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"10559:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6776,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"10528:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10528:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6781,"nodeType":"ExpressionStatement","src":"10528:39:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10646:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10638:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6783,"name":"address","nodeType":"ElementaryTypeName","src":"10638:7:29","typeDescriptions":{}}},"id":6786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10638:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6787,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"10650:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6782,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6845,"src":"10629:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10629:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6789,"nodeType":"ExpressionStatement","src":"10629:29:29"},{"expression":{"id":6794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6790,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"10669:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6792,"indexExpression":{"id":6791,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6749,"src":"10679:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10669:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":6793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10688:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10669:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6795,"nodeType":"ExpressionStatement","src":"10669:20:29"},{"expression":{"id":6800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6796,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"10699:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6798,"indexExpression":{"id":6797,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6751,"src":"10709:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10699:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10716:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10699:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6801,"nodeType":"ExpressionStatement","src":"10699:18:29"},{"expression":{"id":6806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6802,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"10727:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6804,"indexExpression":{"id":6803,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"10735:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10727:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6805,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6751,"src":"10746:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10727:21:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6807,"nodeType":"ExpressionStatement","src":"10727:21:29"},{"eventCall":{"arguments":[{"id":6809,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6749,"src":"10773:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6810,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6751,"src":"10779:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6811,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"10783:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6808,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6991,"src":"10764:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10764:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6813,"nodeType":"EmitStatement","src":"10759:32:29"},{"expression":{"arguments":[{"id":6815,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6749,"src":"10822:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6816,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6751,"src":"10828:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6817,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"10832:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6814,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6975,"src":"10802:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10802:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6819,"nodeType":"ExpressionStatement","src":"10802:38:29"}]},"documentation":{"id":6747,"nodeType":"StructuredDocumentation","src":"9924:313:29","text":" @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":6821,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"10251:9:29","nodeType":"FunctionDefinition","parameters":{"id":6754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6749,"mutability":"mutable","name":"from","nameLocation":"10278:4:29","nodeType":"VariableDeclaration","scope":6821,"src":"10270:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6748,"name":"address","nodeType":"ElementaryTypeName","src":"10270:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6751,"mutability":"mutable","name":"to","nameLocation":"10300:2:29","nodeType":"VariableDeclaration","scope":6821,"src":"10292:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6750,"name":"address","nodeType":"ElementaryTypeName","src":"10292:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6753,"mutability":"mutable","name":"tokenId","nameLocation":"10320:7:29","nodeType":"VariableDeclaration","scope":6821,"src":"10312:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6752,"name":"uint256","nodeType":"ElementaryTypeName","src":"10312:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10260:73:29"},"returnParameters":{"id":6755,"nodeType":"ParameterList","parameters":[],"src":"10351:0:29"},"scope":6976,"src":"10242:605:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6844,"nodeType":"Block","src":"11023:107:29","statements":[{"expression":{"id":6833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6829,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"11033:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6831,"indexExpression":{"id":6830,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"11049:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11033:24:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6832,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6824,"src":"11060:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11033:29:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6834,"nodeType":"ExpressionStatement","src":"11033:29:29"},{"eventCall":{"arguments":[{"arguments":[{"id":6838,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"11101:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6836,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"11086:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":6837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6255,"src":"11086:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11086:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6840,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6824,"src":"11111:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6841,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"11115:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6835,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"11077:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11077:46:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6843,"nodeType":"EmitStatement","src":"11072:51:29"}]},"documentation":{"id":6822,"nodeType":"StructuredDocumentation","src":"10853:101:29","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":6845,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10968:8:29","nodeType":"FunctionDefinition","parameters":{"id":6827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6824,"mutability":"mutable","name":"to","nameLocation":"10985:2:29","nodeType":"VariableDeclaration","scope":6845,"src":"10977:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6823,"name":"address","nodeType":"ElementaryTypeName","src":"10977:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6826,"mutability":"mutable","name":"tokenId","nameLocation":"10997:7:29","nodeType":"VariableDeclaration","scope":6845,"src":"10989:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6825,"name":"uint256","nodeType":"ElementaryTypeName","src":"10989:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10976:29:29"},"returnParameters":{"id":6828,"nodeType":"ParameterList","parameters":[],"src":"11023:0:29"},"scope":6976,"src":"10959:171:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6876,"nodeType":"Block","src":"11389:184:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6856,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"11407:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6857,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"11416:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11407:17:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":6859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11426:27:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":6855,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11399:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11399:55:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6861,"nodeType":"ExpressionStatement","src":"11399:55:29"},{"expression":{"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":6862,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"11464:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":6865,"indexExpression":{"id":6863,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"11483:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11464:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6866,"indexExpression":{"id":6864,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"11490:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11464:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6867,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"11502:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11464:46:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6869,"nodeType":"ExpressionStatement","src":"11464:46:29"},{"eventCall":{"arguments":[{"id":6871,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"11540:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6872,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"11547:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6873,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"11557:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6870,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"11525:14:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":6874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11525:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6875,"nodeType":"EmitStatement","src":"11520:46:29"}]},"documentation":{"id":6846,"nodeType":"StructuredDocumentation","src":"11136:125:29","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":6877,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"11275:18:29","nodeType":"FunctionDefinition","parameters":{"id":6853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6848,"mutability":"mutable","name":"owner","nameLocation":"11311:5:29","nodeType":"VariableDeclaration","scope":6877,"src":"11303:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6847,"name":"address","nodeType":"ElementaryTypeName","src":"11303:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6850,"mutability":"mutable","name":"operator","nameLocation":"11334:8:29","nodeType":"VariableDeclaration","scope":6877,"src":"11326:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6849,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6852,"mutability":"mutable","name":"approved","nameLocation":"11357:8:29","nodeType":"VariableDeclaration","scope":6877,"src":"11352:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6851,"name":"bool","nodeType":"ElementaryTypeName","src":"11352:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11293:78:29"},"returnParameters":{"id":6854,"nodeType":"ParameterList","parameters":[],"src":"11389:0:29"},"scope":6976,"src":"11266:307:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6890,"nodeType":"Block","src":"11720:70:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":6885,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"11746:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6884,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6542,"src":"11738:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":6886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11738:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":6887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11756:26:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":6883,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11730:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11730:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6889,"nodeType":"ExpressionStatement","src":"11730:53:29"}]},"documentation":{"id":6878,"nodeType":"StructuredDocumentation","src":"11579:73:29","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":6891,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"11666:14:29","nodeType":"FunctionDefinition","parameters":{"id":6881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6880,"mutability":"mutable","name":"tokenId","nameLocation":"11689:7:29","nodeType":"VariableDeclaration","scope":6891,"src":"11681:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6879,"name":"uint256","nodeType":"ElementaryTypeName","src":"11681:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11680:17:29"},"returnParameters":{"id":6882,"nodeType":"ParameterList","parameters":[],"src":"11720:0:29"},"scope":6976,"src":"11657:133:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6952,"nodeType":"Block","src":"12497:676:29","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6905,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"12511:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":7722,"src":"12511:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12511:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6950,"nodeType":"Block","src":"13131:36:29","statements":[{"expression":{"hexValue":"74727565","id":6948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13152:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6904,"id":6949,"nodeType":"Return","src":"13145:11:29"}]},"id":6951,"nodeType":"IfStatement","src":"12507:660:29","trueBody":{"id":6947,"nodeType":"Block","src":"12528:597:29","statements":[{"clauses":[{"block":{"id":6927,"nodeType":"Block","src":"12642:91:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6921,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"12667:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":6922,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7110,"src":"12677:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$7110_$","typeString":"type(contract IERC721Receiver)"}},"id":6923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":7109,"src":"12677:32:29","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":6924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"12677:41:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"12667:51:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6904,"id":6926,"nodeType":"Return","src":"12660:58:29"}]},"errorName":"","id":6928,"nodeType":"TryCatchClause","parameters":{"id":6920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6919,"mutability":"mutable","name":"retval","nameLocation":"12634:6:29","nodeType":"VariableDeclaration","scope":6928,"src":"12627:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6918,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12627:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"12626:15:29"},"src":"12618:115:29"},{"block":{"id":6944,"nodeType":"Block","src":"12762:353:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6932,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6930,"src":"12784:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12784:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12801:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12784:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6942,"nodeType":"Block","src":"12911:190:29","statements":[{"AST":{"nodeType":"YulBlock","src":"12997:86:29","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13034:2:29","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"13038:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13030:3:29"},"nodeType":"YulFunctionCall","src":"13030:15:29"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"13053:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13047:5:29"},"nodeType":"YulFunctionCall","src":"13047:13:29"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13023:6:29"},"nodeType":"YulFunctionCall","src":"13023:38:29"},"nodeType":"YulExpressionStatement","src":"13023:38:29"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":6930,"isOffset":false,"isSlot":false,"src":"13038:6:29","valueSize":1},{"declaration":6930,"isOffset":false,"isSlot":false,"src":"13053:6:29","valueSize":1}],"id":6941,"nodeType":"InlineAssembly","src":"12988:95:29"}]},"id":6943,"nodeType":"IfStatement","src":"12780:321:29","trueBody":{"id":6940,"nodeType":"Block","src":"12804:101:29","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":6937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12833:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":6936,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"12826:6:29","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12826:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6939,"nodeType":"ExpressionStatement","src":"12826:60:29"}]}}]},"errorName":"","id":6945,"nodeType":"TryCatchClause","parameters":{"id":6931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6930,"mutability":"mutable","name":"reason","nameLocation":"12754:6:29","nodeType":"VariableDeclaration","scope":6945,"src":"12741:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6929,"name":"bytes","nodeType":"ElementaryTypeName","src":"12741:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12740:21:29"},"src":"12734:381:29"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6912,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"12583:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12583:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6914,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6894,"src":"12597:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6915,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6898,"src":"12603:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6916,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"12612:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6909,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"12562:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6908,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7110,"src":"12546:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$7110_$","typeString":"type(contract IERC721Receiver)"}},"id":6910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12546:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$7110","typeString":"contract IERC721Receiver"}},"id":6911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":7109,"src":"12546:36:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":6917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12546:71:29","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6946,"nodeType":"TryStatement","src":"12542:573:29"}]}}]},"documentation":{"id":6892,"nodeType":"StructuredDocumentation","src":"11796:541:29","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":6953,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"12351:22:29","nodeType":"FunctionDefinition","parameters":{"id":6901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6894,"mutability":"mutable","name":"from","nameLocation":"12391:4:29","nodeType":"VariableDeclaration","scope":6953,"src":"12383:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6893,"name":"address","nodeType":"ElementaryTypeName","src":"12383:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6896,"mutability":"mutable","name":"to","nameLocation":"12413:2:29","nodeType":"VariableDeclaration","scope":6953,"src":"12405:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6895,"name":"address","nodeType":"ElementaryTypeName","src":"12405:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6898,"mutability":"mutable","name":"tokenId","nameLocation":"12433:7:29","nodeType":"VariableDeclaration","scope":6953,"src":"12425:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6897,"name":"uint256","nodeType":"ElementaryTypeName","src":"12425:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6900,"mutability":"mutable","name":"data","nameLocation":"12463:4:29","nodeType":"VariableDeclaration","scope":6953,"src":"12450:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6899,"name":"bytes","nodeType":"ElementaryTypeName","src":"12450:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12373:100:29"},"returnParameters":{"id":6904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6953,"src":"12491:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6902,"name":"bool","nodeType":"ElementaryTypeName","src":"12491:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12490:6:29"},"scope":6976,"src":"12342:831:29","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6963,"nodeType":"Block","src":"13849:2:29","statements":[]},"documentation":{"id":6954,"nodeType":"StructuredDocumentation","src":"13179:545:29","text":" @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` 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":6964,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"13738:20:29","nodeType":"FunctionDefinition","parameters":{"id":6961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6956,"mutability":"mutable","name":"from","nameLocation":"13776:4:29","nodeType":"VariableDeclaration","scope":6964,"src":"13768:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6955,"name":"address","nodeType":"ElementaryTypeName","src":"13768:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6958,"mutability":"mutable","name":"to","nameLocation":"13798:2:29","nodeType":"VariableDeclaration","scope":6964,"src":"13790:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6957,"name":"address","nodeType":"ElementaryTypeName","src":"13790:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6960,"mutability":"mutable","name":"tokenId","nameLocation":"13818:7:29","nodeType":"VariableDeclaration","scope":6964,"src":"13810:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6959,"name":"uint256","nodeType":"ElementaryTypeName","src":"13810:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13758:73:29"},"returnParameters":{"id":6962,"nodeType":"ParameterList","parameters":[],"src":"13849:0:29"},"scope":6976,"src":"13729:122:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6974,"nodeType":"Block","src":"14342:2:29","statements":[]},"documentation":{"id":6965,"nodeType":"StructuredDocumentation","src":"13857:361:29","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.\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":6975,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"14232:19:29","nodeType":"FunctionDefinition","parameters":{"id":6972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6967,"mutability":"mutable","name":"from","nameLocation":"14269:4:29","nodeType":"VariableDeclaration","scope":6975,"src":"14261:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6966,"name":"address","nodeType":"ElementaryTypeName","src":"14261:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6969,"mutability":"mutable","name":"to","nameLocation":"14291:2:29","nodeType":"VariableDeclaration","scope":6975,"src":"14283:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6968,"name":"address","nodeType":"ElementaryTypeName","src":"14283:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6971,"mutability":"mutable","name":"tokenId","nameLocation":"14311:7:29","nodeType":"VariableDeclaration","scope":6975,"src":"14303:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6970,"name":"uint256","nodeType":"ElementaryTypeName","src":"14303:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14251:73:29"},"returnParameters":{"id":6973,"nodeType":"ParameterList","parameters":[],"src":"14342:0:29"},"scope":6976,"src":"14223:121:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":6977,"src":"628:13718:29","usedErrors":[]}],"src":"107:14240:29"},"id":29},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[9849],"IERC721":[7092]},"id":7093,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6978,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:30"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":6979,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7093,"sourceUnit":9850,"src":"133:47:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6981,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"271:7:30"},"id":6982,"nodeType":"InheritanceSpecifier","src":"271:7:30"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":6980,"nodeType":"StructuredDocumentation","src":"182:67:30","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":7092,"linearizedBaseContracts":[7092,9849],"name":"IERC721","nameLocation":"260:7:30","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6983,"nodeType":"StructuredDocumentation","src":"285:88:30","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"id":6991,"name":"Transfer","nameLocation":"384:8:30","nodeType":"EventDefinition","parameters":{"id":6990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6985,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:30","nodeType":"VariableDeclaration","scope":6991,"src":"393:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6984,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6987,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:30","nodeType":"VariableDeclaration","scope":6991,"src":"415:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6986,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6989,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:30","nodeType":"VariableDeclaration","scope":6991,"src":"435:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6988,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:30"},"src":"378:82:30"},{"anonymous":false,"documentation":{"id":6992,"nodeType":"StructuredDocumentation","src":"466:94:30","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"id":7000,"name":"Approval","nameLocation":"571:8:30","nodeType":"EventDefinition","parameters":{"id":6999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6994,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:30","nodeType":"VariableDeclaration","scope":7000,"src":"580:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6993,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6996,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:30","nodeType":"VariableDeclaration","scope":7000,"src":"603:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6995,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6998,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:30","nodeType":"VariableDeclaration","scope":7000,"src":"629:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6997,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:30"},"src":"565:89:30"},{"anonymous":false,"documentation":{"id":7001,"nodeType":"StructuredDocumentation","src":"660:117:30","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"id":7009,"name":"ApprovalForAll","nameLocation":"788:14:30","nodeType":"EventDefinition","parameters":{"id":7008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7003,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:30","nodeType":"VariableDeclaration","scope":7009,"src":"803:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7002,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7005,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:30","nodeType":"VariableDeclaration","scope":7009,"src":"826:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7004,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7007,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:30","nodeType":"VariableDeclaration","scope":7009,"src":"852:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7006,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:30"},"src":"782:85:30"},{"documentation":{"id":7010,"nodeType":"StructuredDocumentation","src":"873:76:30","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":7017,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:30","nodeType":"FunctionDefinition","parameters":{"id":7013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7012,"mutability":"mutable","name":"owner","nameLocation":"981:5:30","nodeType":"VariableDeclaration","scope":7017,"src":"973:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7011,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:30"},"returnParameters":{"id":7016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7015,"mutability":"mutable","name":"balance","nameLocation":"1019:7:30","nodeType":"VariableDeclaration","scope":7017,"src":"1011:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7014,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:30"},"scope":7092,"src":"954:74:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7018,"nodeType":"StructuredDocumentation","src":"1034:131:30","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":7025,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:30","nodeType":"FunctionDefinition","parameters":{"id":7021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7020,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:30","nodeType":"VariableDeclaration","scope":7025,"src":"1187:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:30"},"returnParameters":{"id":7024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7023,"mutability":"mutable","name":"owner","nameLocation":"1235:5:30","nodeType":"VariableDeclaration","scope":7025,"src":"1227:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7022,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:30"},"scope":7092,"src":"1170:72:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7026,"nodeType":"StructuredDocumentation","src":"1248:556:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":7037,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:30","nodeType":"FunctionDefinition","parameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7028,"mutability":"mutable","name":"from","nameLocation":"1852:4:30","nodeType":"VariableDeclaration","scope":7037,"src":"1844:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7027,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7030,"mutability":"mutable","name":"to","nameLocation":"1874:2:30","nodeType":"VariableDeclaration","scope":7037,"src":"1866:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7029,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7032,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:30","nodeType":"VariableDeclaration","scope":7037,"src":"1886:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7031,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7034,"mutability":"mutable","name":"data","nameLocation":"1926:4:30","nodeType":"VariableDeclaration","scope":7037,"src":"1911:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7033,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:30"},"returnParameters":{"id":7036,"nodeType":"ParameterList","parameters":[],"src":"1945:0:30"},"scope":7092,"src":"1809:137:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7038,"nodeType":"StructuredDocumentation","src":"1952:687:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":7047,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2653:16:30","nodeType":"FunctionDefinition","parameters":{"id":7045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7040,"mutability":"mutable","name":"from","nameLocation":"2687:4:30","nodeType":"VariableDeclaration","scope":7047,"src":"2679:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7039,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7042,"mutability":"mutable","name":"to","nameLocation":"2709:2:30","nodeType":"VariableDeclaration","scope":7047,"src":"2701:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7041,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7044,"mutability":"mutable","name":"tokenId","nameLocation":"2729:7:30","nodeType":"VariableDeclaration","scope":7047,"src":"2721:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7043,"name":"uint256","nodeType":"ElementaryTypeName","src":"2721:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2669:73:30"},"returnParameters":{"id":7046,"nodeType":"ParameterList","parameters":[],"src":"2751:0:30"},"scope":7092,"src":"2644:108:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7048,"nodeType":"StructuredDocumentation","src":"2758:504:30","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":7057,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3276:12:30","nodeType":"FunctionDefinition","parameters":{"id":7055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7050,"mutability":"mutable","name":"from","nameLocation":"3306:4:30","nodeType":"VariableDeclaration","scope":7057,"src":"3298:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7049,"name":"address","nodeType":"ElementaryTypeName","src":"3298:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7052,"mutability":"mutable","name":"to","nameLocation":"3328:2:30","nodeType":"VariableDeclaration","scope":7057,"src":"3320:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7051,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7054,"mutability":"mutable","name":"tokenId","nameLocation":"3348:7:30","nodeType":"VariableDeclaration","scope":7057,"src":"3340:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3340:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3288:73:30"},"returnParameters":{"id":7056,"nodeType":"ParameterList","parameters":[],"src":"3370:0:30"},"scope":7092,"src":"3267:104:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7058,"nodeType":"StructuredDocumentation","src":"3377:452:30","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":7065,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3843:7:30","nodeType":"FunctionDefinition","parameters":{"id":7063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7060,"mutability":"mutable","name":"to","nameLocation":"3859:2:30","nodeType":"VariableDeclaration","scope":7065,"src":"3851:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7059,"name":"address","nodeType":"ElementaryTypeName","src":"3851:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7062,"mutability":"mutable","name":"tokenId","nameLocation":"3871:7:30","nodeType":"VariableDeclaration","scope":7065,"src":"3863:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7061,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3850:29:30"},"returnParameters":{"id":7064,"nodeType":"ParameterList","parameters":[],"src":"3888:0:30"},"scope":7092,"src":"3834:55:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7066,"nodeType":"StructuredDocumentation","src":"3895:309:30","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":7073,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4218:17:30","nodeType":"FunctionDefinition","parameters":{"id":7071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7068,"mutability":"mutable","name":"operator","nameLocation":"4244:8:30","nodeType":"VariableDeclaration","scope":7073,"src":"4236:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7067,"name":"address","nodeType":"ElementaryTypeName","src":"4236:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7070,"mutability":"mutable","name":"_approved","nameLocation":"4259:9:30","nodeType":"VariableDeclaration","scope":7073,"src":"4254:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7069,"name":"bool","nodeType":"ElementaryTypeName","src":"4254:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4235:34:30"},"returnParameters":{"id":7072,"nodeType":"ParameterList","parameters":[],"src":"4278:0:30"},"scope":7092,"src":"4209:70:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7074,"nodeType":"StructuredDocumentation","src":"4285:139:30","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":7081,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4438:11:30","nodeType":"FunctionDefinition","parameters":{"id":7077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7076,"mutability":"mutable","name":"tokenId","nameLocation":"4458:7:30","nodeType":"VariableDeclaration","scope":7081,"src":"4450:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7075,"name":"uint256","nodeType":"ElementaryTypeName","src":"4450:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:17:30"},"returnParameters":{"id":7080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7079,"mutability":"mutable","name":"operator","nameLocation":"4498:8:30","nodeType":"VariableDeclaration","scope":7081,"src":"4490:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7078,"name":"address","nodeType":"ElementaryTypeName","src":"4490:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4489:18:30"},"scope":7092,"src":"4429:79:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7082,"nodeType":"StructuredDocumentation","src":"4514:138:30","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":7091,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4666:16:30","nodeType":"FunctionDefinition","parameters":{"id":7087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7084,"mutability":"mutable","name":"owner","nameLocation":"4691:5:30","nodeType":"VariableDeclaration","scope":7091,"src":"4683:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7083,"name":"address","nodeType":"ElementaryTypeName","src":"4683:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7086,"mutability":"mutable","name":"operator","nameLocation":"4706:8:30","nodeType":"VariableDeclaration","scope":7091,"src":"4698:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7085,"name":"address","nodeType":"ElementaryTypeName","src":"4698:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4682:33:30"},"returnParameters":{"id":7090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7091,"src":"4739:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7088,"name":"bool","nodeType":"ElementaryTypeName","src":"4739:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4738:6:30"},"scope":7092,"src":"4657:88:30","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7093,"src":"250:4497:30","usedErrors":[]}],"src":"108:4640:30"},"id":30},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[7110]},"id":7111,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7094,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:31"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7095,"nodeType":"StructuredDocumentation","src":"141:152:31","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":7110,"linearizedBaseContracts":[7110],"name":"IERC721Receiver","nameLocation":"304:15:31","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7096,"nodeType":"StructuredDocumentation","src":"326:493:31","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":7109,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:31","nodeType":"FunctionDefinition","parameters":{"id":7105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7098,"mutability":"mutable","name":"operator","nameLocation":"867:8:31","nodeType":"VariableDeclaration","scope":7109,"src":"859:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7097,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7100,"mutability":"mutable","name":"from","nameLocation":"893:4:31","nodeType":"VariableDeclaration","scope":7109,"src":"885:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7099,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7102,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:31","nodeType":"VariableDeclaration","scope":7109,"src":"907:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7101,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7104,"mutability":"mutable","name":"data","nameLocation":"947:4:31","nodeType":"VariableDeclaration","scope":7109,"src":"932:19:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7103,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:31"},"returnParameters":{"id":7108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7109,"src":"976:6:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7106,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:31"},"scope":7110,"src":"824:160:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7111,"src":"294:692:31","usedErrors":[]}],"src":"116:871:31"},"id":31},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"ERC165":[9837],"ERC721":[6976],"ERC721Enumerable":[7448],"IERC165":[9849],"IERC721":[7092],"IERC721Enumerable":[7479],"IERC721Metadata":[7506],"IERC721Receiver":[7110],"Strings":[8555]},"id":7449,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7112,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:32"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":7113,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7449,"sourceUnit":6977,"src":"138:23:32","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","file":"./IERC721Enumerable.sol","id":7114,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7449,"sourceUnit":7480,"src":"162:33:32","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7116,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":6976,"src":"435:6:32"},"id":7117,"nodeType":"InheritanceSpecifier","src":"435:6:32"},{"baseName":{"id":7118,"name":"IERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":7479,"src":"443:17:32"},"id":7119,"nodeType":"InheritanceSpecifier","src":"443:17:32"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7115,"nodeType":"StructuredDocumentation","src":"197:199:32","text":" @dev This implements an optional extension of {ERC721} defined in the EIP that adds\n enumerability of all the token ids in the contract as well as all token ids owned by each\n account."},"fullyImplemented":false,"id":7448,"linearizedBaseContracts":[7448,7479,6976,7506,7092,9837,9849,8255],"name":"ERC721Enumerable","nameLocation":"415:16:32","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7125,"mutability":"mutable","name":"_ownedTokens","nameLocation":"576:12:32","nodeType":"VariableDeclaration","scope":7448,"src":"520:68:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":7124,"keyType":{"id":7120,"name":"address","nodeType":"ElementaryTypeName","src":"528:7:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"520:47:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":7123,"keyType":{"id":7121,"name":"uint256","nodeType":"ElementaryTypeName","src":"547:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"539:27:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":7122,"name":"uint256","nodeType":"ElementaryTypeName","src":"558:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":7129,"mutability":"mutable","name":"_ownedTokensIndex","nameLocation":"694:17:32","nodeType":"VariableDeclaration","scope":7448,"src":"658:53:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":7128,"keyType":{"id":7126,"name":"uint256","nodeType":"ElementaryTypeName","src":"666:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"658:27:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":7127,"name":"uint256","nodeType":"ElementaryTypeName","src":"677:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":7132,"mutability":"mutable","name":"_allTokens","nameLocation":"790:10:32","nodeType":"VariableDeclaration","scope":7448,"src":"772:28:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":7130,"name":"uint256","nodeType":"ElementaryTypeName","src":"772:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7131,"nodeType":"ArrayTypeName","src":"772:9:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"private"},{"constant":false,"id":7136,"mutability":"mutable","name":"_allTokensIndex","nameLocation":"907:15:32","nodeType":"VariableDeclaration","scope":7448,"src":"871:51:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":7135,"keyType":{"id":7133,"name":"uint256","nodeType":"ElementaryTypeName","src":"879:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"871:27:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":7134,"name":"uint256","nodeType":"ElementaryTypeName","src":"890:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"baseFunctions":[6203,9848],"body":{"id":7159,"nodeType":"Block","src":"1098:114:32","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7147,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"1115:11:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7149,"name":"IERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7479,"src":"1135:17:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Enumerable_$7479_$","typeString":"type(contract IERC721Enumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Enumerable_$7479_$","typeString":"type(contract IERC721Enumerable)"}],"id":7148,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1130:4:32","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1130:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Enumerable_$7479","typeString":"type(contract IERC721Enumerable)"}},"id":7151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1130:35:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1115:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7155,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"1193:11:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7153,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1169:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Enumerable_$7448_$","typeString":"type(contract super ERC721Enumerable)"}},"id":7154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":6203,"src":"1169:23:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":7156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1169:36:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1115:90:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7146,"id":7158,"nodeType":"Return","src":"1108:97:32"}]},"documentation":{"id":7137,"nodeType":"StructuredDocumentation","src":"929:56:32","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":7160,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"999:17:32","nodeType":"FunctionDefinition","overrides":{"id":7143,"nodeType":"OverrideSpecifier","overrides":[{"id":7141,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"1066:7:32"},{"id":7142,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":6976,"src":"1075:6:32"}],"src":"1057:25:32"},"parameters":{"id":7140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7139,"mutability":"mutable","name":"interfaceId","nameLocation":"1024:11:32","nodeType":"VariableDeclaration","scope":7160,"src":"1017:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7138,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1017:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1016:20:32"},"returnParameters":{"id":7146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7160,"src":"1092:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7144,"name":"bool","nodeType":"ElementaryTypeName","src":"1092:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1091:6:32"},"scope":7448,"src":"990:222:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7470],"body":{"id":7187,"nodeType":"Block","src":"1397:147:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7172,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7165,"src":"1415:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"id":7175,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"1440:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7173,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"1423:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":7174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":6227,"src":"1423:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":7176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1423:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1415:31:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473","id":7178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1448:45:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c","typeString":"literal_string \"ERC721Enumerable: owner index out of bounds\""},"value":"ERC721Enumerable: owner index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c","typeString":"literal_string \"ERC721Enumerable: owner index out of bounds\""}],"id":7171,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1407:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1407:87:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7180,"nodeType":"ExpressionStatement","src":"1407:87:32"},{"expression":{"baseExpression":{"baseExpression":{"id":7181,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7125,"src":"1511:12:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":7183,"indexExpression":{"id":7182,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"1524:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1511:19:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7185,"indexExpression":{"id":7184,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7165,"src":"1531:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1511:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7170,"id":7186,"nodeType":"Return","src":"1504:33:32"}]},"documentation":{"id":7161,"nodeType":"StructuredDocumentation","src":"1218:68:32","text":" @dev See {IERC721Enumerable-tokenOfOwnerByIndex}."},"functionSelector":"2f745c59","id":7188,"implemented":true,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"1300:19:32","nodeType":"FunctionDefinition","overrides":{"id":7167,"nodeType":"OverrideSpecifier","overrides":[],"src":"1370:8:32"},"parameters":{"id":7166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7163,"mutability":"mutable","name":"owner","nameLocation":"1328:5:32","nodeType":"VariableDeclaration","scope":7188,"src":"1320:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7162,"name":"address","nodeType":"ElementaryTypeName","src":"1320:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7165,"mutability":"mutable","name":"index","nameLocation":"1343:5:32","nodeType":"VariableDeclaration","scope":7188,"src":"1335:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1335:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1319:30:32"},"returnParameters":{"id":7170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7188,"src":"1388:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1388:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1387:9:32"},"scope":7448,"src":"1291:253:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7460],"body":{"id":7198,"nodeType":"Block","src":"1685:41:32","statements":[{"expression":{"expression":{"id":7195,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"1702:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1702:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7194,"id":7197,"nodeType":"Return","src":"1695:24:32"}]},"documentation":{"id":7189,"nodeType":"StructuredDocumentation","src":"1550:60:32","text":" @dev See {IERC721Enumerable-totalSupply}."},"functionSelector":"18160ddd","id":7199,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1624:11:32","nodeType":"FunctionDefinition","overrides":{"id":7191,"nodeType":"OverrideSpecifier","overrides":[],"src":"1658:8:32"},"parameters":{"id":7190,"nodeType":"ParameterList","parameters":[],"src":"1635:2:32"},"returnParameters":{"id":7194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7199,"src":"1676:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7192,"name":"uint256","nodeType":"ElementaryTypeName","src":"1676:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1675:9:32"},"scope":7448,"src":"1615:111:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7478],"body":{"id":7221,"nodeType":"Block","src":"1882:146:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7209,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7202,"src":"1900:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7210,"name":"ERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"1908:16:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Enumerable_$7448_$","typeString":"type(contract ERC721Enumerable)"}},"id":7211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":7199,"src":"1908:28:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":7212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1908:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1900:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473","id":7214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1940:46:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc","typeString":"literal_string \"ERC721Enumerable: global index out of bounds\""},"value":"ERC721Enumerable: global index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc","typeString":"literal_string \"ERC721Enumerable: global index out of bounds\""}],"id":7208,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1892:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1892:95:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7216,"nodeType":"ExpressionStatement","src":"1892:95:32"},{"expression":{"baseExpression":{"id":7217,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"2004:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7219,"indexExpression":{"id":7218,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7202,"src":"2015:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2004:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7207,"id":7220,"nodeType":"Return","src":"1997:24:32"}]},"documentation":{"id":7200,"nodeType":"StructuredDocumentation","src":"1732:61:32","text":" @dev See {IERC721Enumerable-tokenByIndex}."},"functionSelector":"4f6ccce7","id":7222,"implemented":true,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"1807:12:32","nodeType":"FunctionDefinition","overrides":{"id":7204,"nodeType":"OverrideSpecifier","overrides":[],"src":"1855:8:32"},"parameters":{"id":7203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7202,"mutability":"mutable","name":"index","nameLocation":"1828:5:32","nodeType":"VariableDeclaration","scope":7222,"src":"1820:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7201,"name":"uint256","nodeType":"ElementaryTypeName","src":"1820:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1819:15:32"},"returnParameters":{"id":7207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7222,"src":"1873:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1873:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1872:9:32"},"scope":7448,"src":"1798:230:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6964],"body":{"id":7285,"nodeType":"Block","src":"2753:443:32","statements":[{"expression":{"arguments":[{"id":7236,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7225,"src":"2790:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7237,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"2796:2:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7238,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7229,"src":"2800:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7233,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2763:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Enumerable_$7448_$","typeString":"type(contract super ERC721Enumerable)"}},"id":7235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":6964,"src":"2763:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2763:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7240,"nodeType":"ExpressionStatement","src":"2763:45:32"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7241,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7225,"src":"2823:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2839:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2831:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7242,"name":"address","nodeType":"ElementaryTypeName","src":"2831:7:32","typeDescriptions":{}}},"id":7245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2831:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2823:18:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7252,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7225,"src":"2918:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7253,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"2926:2:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2918:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7261,"nodeType":"IfStatement","src":"2914:88:32","trueBody":{"id":7260,"nodeType":"Block","src":"2930:72:32","statements":[{"expression":{"arguments":[{"id":7256,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7225,"src":"2977:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7257,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7229,"src":"2983:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7255,"name":"_removeTokenFromOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7399,"src":"2944:32:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2944:47:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7259,"nodeType":"ExpressionStatement","src":"2944:47:32"}]}},"id":7262,"nodeType":"IfStatement","src":"2819:183:32","trueBody":{"id":7251,"nodeType":"Block","src":"2843:65:32","statements":[{"expression":{"arguments":[{"id":7248,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7229,"src":"2889:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7247,"name":"_addTokenToAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7336,"src":"2857:31:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2857:40:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7250,"nodeType":"ExpressionStatement","src":"2857:40:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7263,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"3015:2:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3029:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3021:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7264,"name":"address","nodeType":"ElementaryTypeName","src":"3021:7:32","typeDescriptions":{}}},"id":7267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3021:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3015:16:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7274,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"3113:2:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7275,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7225,"src":"3119:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3113:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7283,"nodeType":"IfStatement","src":"3109:81:32","trueBody":{"id":7282,"nodeType":"Block","src":"3125:65:32","statements":[{"expression":{"arguments":[{"id":7278,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"3167:2:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7279,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7229,"src":"3171:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7277,"name":"_addTokenToOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"3139:27:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3139:40:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7281,"nodeType":"ExpressionStatement","src":"3139:40:32"}]}},"id":7284,"nodeType":"IfStatement","src":"3011:179:32","trueBody":{"id":7273,"nodeType":"Block","src":"3033:70:32","statements":[{"expression":{"arguments":[{"id":7270,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7229,"src":"3084:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7269,"name":"_removeTokenFromAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"3047:36:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3047:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7272,"nodeType":"ExpressionStatement","src":"3047:45:32"}]}}]},"documentation":{"id":7223,"nodeType":"StructuredDocumentation","src":"2034:585:32","text":" @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":7286,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"2633:20:32","nodeType":"FunctionDefinition","overrides":{"id":7231,"nodeType":"OverrideSpecifier","overrides":[],"src":"2744:8:32"},"parameters":{"id":7230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7225,"mutability":"mutable","name":"from","nameLocation":"2671:4:32","nodeType":"VariableDeclaration","scope":7286,"src":"2663:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7224,"name":"address","nodeType":"ElementaryTypeName","src":"2663:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7227,"mutability":"mutable","name":"to","nameLocation":"2693:2:32","nodeType":"VariableDeclaration","scope":7286,"src":"2685:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7226,"name":"address","nodeType":"ElementaryTypeName","src":"2685:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7229,"mutability":"mutable","name":"tokenId","nameLocation":"2713:7:32","nodeType":"VariableDeclaration","scope":7286,"src":"2705:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7228,"name":"uint256","nodeType":"ElementaryTypeName","src":"2705:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2653:73:32"},"returnParameters":{"id":7232,"nodeType":"ParameterList","parameters":[],"src":"2753:0:32"},"scope":7448,"src":"2624:572:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7315,"nodeType":"Block","src":"3564:143:32","statements":[{"assignments":[7295],"declarations":[{"constant":false,"id":7295,"mutability":"mutable","name":"length","nameLocation":"3582:6:32","nodeType":"VariableDeclaration","scope":7315,"src":"3574:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7294,"name":"uint256","nodeType":"ElementaryTypeName","src":"3574:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7300,"initialValue":{"arguments":[{"id":7298,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7289,"src":"3608:2:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7296,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"3591:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":7297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":6227,"src":"3591:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3591:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3574:37:32"},{"expression":{"id":7307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":7301,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7125,"src":"3621:12:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":7304,"indexExpression":{"id":7302,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7289,"src":"3634:2:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3621:16:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7305,"indexExpression":{"id":7303,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7295,"src":"3638:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3621:24:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7306,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7291,"src":"3648:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3621:34:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7308,"nodeType":"ExpressionStatement","src":"3621:34:32"},{"expression":{"id":7313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7309,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7129,"src":"3665:17:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7311,"indexExpression":{"id":7310,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7291,"src":"3683:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3665:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7312,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7295,"src":"3694:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3665:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7314,"nodeType":"ExpressionStatement","src":"3665:35:32"}]},"documentation":{"id":7287,"nodeType":"StructuredDocumentation","src":"3202:283:32","text":" @dev Private function to add a token to this extension's ownership-tracking data structures.\n @param to address representing the new owner of the given token ID\n @param tokenId uint256 ID of the token to be added to the tokens list of the given address"},"id":7316,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToOwnerEnumeration","nameLocation":"3499:27:32","nodeType":"FunctionDefinition","parameters":{"id":7292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7289,"mutability":"mutable","name":"to","nameLocation":"3535:2:32","nodeType":"VariableDeclaration","scope":7316,"src":"3527:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7288,"name":"address","nodeType":"ElementaryTypeName","src":"3527:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7291,"mutability":"mutable","name":"tokenId","nameLocation":"3547:7:32","nodeType":"VariableDeclaration","scope":7316,"src":"3539:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7290,"name":"uint256","nodeType":"ElementaryTypeName","src":"3539:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3526:29:32"},"returnParameters":{"id":7293,"nodeType":"ParameterList","parameters":[],"src":"3564:0:32"},"scope":7448,"src":"3490:217:32","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7335,"nodeType":"Block","src":"3968:95:32","statements":[{"expression":{"id":7327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7322,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"3978:15:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7324,"indexExpression":{"id":7323,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7319,"src":"3994:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3978:24:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":7325,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"4005:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4005:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3978:44:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7328,"nodeType":"ExpressionStatement","src":"3978:44:32"},{"expression":{"arguments":[{"id":7332,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7319,"src":"4048:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7329,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"4032:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"4032:15:32","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4032:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7334,"nodeType":"ExpressionStatement","src":"4032:24:32"}]},"documentation":{"id":7317,"nodeType":"StructuredDocumentation","src":"3713:184:32","text":" @dev Private function to add a token to this extension's token tracking data structures.\n @param tokenId uint256 ID of the token to be added to the tokens list"},"id":7336,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToAllTokensEnumeration","nameLocation":"3911:31:32","nodeType":"FunctionDefinition","parameters":{"id":7320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7319,"mutability":"mutable","name":"tokenId","nameLocation":"3951:7:32","nodeType":"VariableDeclaration","scope":7336,"src":"3943:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7318,"name":"uint256","nodeType":"ElementaryTypeName","src":"3943:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3942:17:32"},"returnParameters":{"id":7321,"nodeType":"ParameterList","parameters":[],"src":"3968:0:32"},"scope":7448,"src":"3902:161:32","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7398,"nodeType":"Block","src":"4761:889:32","statements":[{"assignments":[7345],"declarations":[{"constant":false,"id":7345,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"4950:14:32","nodeType":"VariableDeclaration","scope":7398,"src":"4942:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7344,"name":"uint256","nodeType":"ElementaryTypeName","src":"4942:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7352,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7348,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7339,"src":"4984:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7346,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"4967:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6976_$","typeString":"type(contract ERC721)"}},"id":7347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":6227,"src":"4967:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":7349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4967:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4992:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4967:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4942:51:32"},{"assignments":[7354],"declarations":[{"constant":false,"id":7354,"mutability":"mutable","name":"tokenIndex","nameLocation":"5011:10:32","nodeType":"VariableDeclaration","scope":7398,"src":"5003:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7353,"name":"uint256","nodeType":"ElementaryTypeName","src":"5003:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7358,"initialValue":{"baseExpression":{"id":7355,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7129,"src":"5024:17:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7357,"indexExpression":{"id":7356,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"5042:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5024:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5003:47:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7359,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"5154:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7360,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"5168:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5154:28:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7385,"nodeType":"IfStatement","src":"5150:323:32","trueBody":{"id":7384,"nodeType":"Block","src":"5184:289:32","statements":[{"assignments":[7363],"declarations":[{"constant":false,"id":7363,"mutability":"mutable","name":"lastTokenId","nameLocation":"5206:11:32","nodeType":"VariableDeclaration","scope":7384,"src":"5198:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7362,"name":"uint256","nodeType":"ElementaryTypeName","src":"5198:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7369,"initialValue":{"baseExpression":{"baseExpression":{"id":7364,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7125,"src":"5220:12:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":7366,"indexExpression":{"id":7365,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7339,"src":"5233:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5220:18:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7368,"indexExpression":{"id":7367,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"5239:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5220:34:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5198:56:32"},{"expression":{"id":7376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":7370,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7125,"src":"5269:12:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":7373,"indexExpression":{"id":7371,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7339,"src":"5282:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5269:18:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7374,"indexExpression":{"id":7372,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"5288:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5269:30:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7375,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"5302:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5269:44:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7377,"nodeType":"ExpressionStatement","src":"5269:44:32"},{"expression":{"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7378,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7129,"src":"5385:17:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7380,"indexExpression":{"id":7379,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"5403:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5385:30:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7381,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"5418:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5385:43:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7383,"nodeType":"ExpressionStatement","src":"5385:43:32"}]}},{"expression":{"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5559:33:32","subExpression":{"baseExpression":{"id":7386,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7129,"src":"5566:17:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7388,"indexExpression":{"id":7387,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"5584:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5566:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7390,"nodeType":"ExpressionStatement","src":"5559:33:32"},{"expression":{"id":7396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5602:41:32","subExpression":{"baseExpression":{"baseExpression":{"id":7391,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7125,"src":"5609:12:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":7393,"indexExpression":{"id":7392,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7339,"src":"5622:4:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5609:18:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7395,"indexExpression":{"id":7394,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"5628:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5609:34:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7397,"nodeType":"ExpressionStatement","src":"5602:41:32"}]},"documentation":{"id":7337,"nodeType":"StructuredDocumentation","src":"4069:606:32","text":" @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n This has O(1) time complexity, but alters the order of the _ownedTokens array.\n @param from address representing the previous owner of the given token ID\n @param tokenId uint256 ID of the token to be removed from the tokens list of the given address"},"id":7399,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromOwnerEnumeration","nameLocation":"4689:32:32","nodeType":"FunctionDefinition","parameters":{"id":7342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7339,"mutability":"mutable","name":"from","nameLocation":"4730:4:32","nodeType":"VariableDeclaration","scope":7399,"src":"4722:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7338,"name":"address","nodeType":"ElementaryTypeName","src":"4722:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7341,"mutability":"mutable","name":"tokenId","nameLocation":"4744:7:32","nodeType":"VariableDeclaration","scope":7399,"src":"4736:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7340,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4721:31:32"},"returnParameters":{"id":7343,"nodeType":"ParameterList","parameters":[],"src":"4761:0:32"},"scope":7448,"src":"4680:970:32","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7446,"nodeType":"Block","src":"6009:990:32","statements":[{"assignments":[7406],"declarations":[{"constant":false,"id":7406,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"6195:14:32","nodeType":"VariableDeclaration","scope":7446,"src":"6187:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7405,"name":"uint256","nodeType":"ElementaryTypeName","src":"6187:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7411,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7407,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"6212:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6212:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6232:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6212:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6187:46:32"},{"assignments":[7413],"declarations":[{"constant":false,"id":7413,"mutability":"mutable","name":"tokenIndex","nameLocation":"6251:10:32","nodeType":"VariableDeclaration","scope":7446,"src":"6243:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7412,"name":"uint256","nodeType":"ElementaryTypeName","src":"6243:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7417,"initialValue":{"baseExpression":{"id":7414,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"6264:15:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7416,"indexExpression":{"id":7415,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"6280:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6264:24:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6243:45:32"},{"assignments":[7419],"declarations":[{"constant":false,"id":7419,"mutability":"mutable","name":"lastTokenId","nameLocation":"6618:11:32","nodeType":"VariableDeclaration","scope":7446,"src":"6610:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7418,"name":"uint256","nodeType":"ElementaryTypeName","src":"6610:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7423,"initialValue":{"baseExpression":{"id":7420,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"6632:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7422,"indexExpression":{"id":7421,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7406,"src":"6643:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6632:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6610:48:32"},{"expression":{"id":7428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7424,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"6669:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7426,"indexExpression":{"id":7425,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"6680:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6669:22:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7427,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"6694:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6669:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7429,"nodeType":"ExpressionStatement","src":"6669:36:32"},{"expression":{"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7430,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"6773:15:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7432,"indexExpression":{"id":7431,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"6789:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6773:28:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7433,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"6804:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6773:41:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7435,"nodeType":"ExpressionStatement","src":"6773:41:32"},{"expression":{"id":7439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6935:31:32","subExpression":{"baseExpression":{"id":7436,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"6942:15:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":7438,"indexExpression":{"id":7437,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"6958:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6942:24:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7440,"nodeType":"ExpressionStatement","src":"6935:31:32"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7441,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"6976:10:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"6976:14:32","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer)"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6976:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7445,"nodeType":"ExpressionStatement","src":"6976:16:32"}]},"documentation":{"id":7400,"nodeType":"StructuredDocumentation","src":"5656:277:32","text":" @dev Private function to remove a token from this extension's token tracking data structures.\n This has O(1) time complexity, but alters the order of the _allTokens array.\n @param tokenId uint256 ID of the token to be removed from the tokens list"},"id":7447,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromAllTokensEnumeration","nameLocation":"5947:36:32","nodeType":"FunctionDefinition","parameters":{"id":7403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7402,"mutability":"mutable","name":"tokenId","nameLocation":"5992:7:32","nodeType":"VariableDeclaration","scope":7447,"src":"5984:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7401,"name":"uint256","nodeType":"ElementaryTypeName","src":"5984:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5983:17:32"},"returnParameters":{"id":7404,"nodeType":"ParameterList","parameters":[],"src":"6009:0:32"},"scope":7448,"src":"5938:1061:32","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":7449,"src":"397:6604:32","usedErrors":[]}],"src":"113:6889:32"},"id":32},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","exportedSymbols":{"IERC165":[9849],"IERC721":[7092],"IERC721Enumerable":[7479]},"id":7480,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7450,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"129:23:33"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":7451,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7480,"sourceUnit":7093,"src":"154:24:33","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7453,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":7092,"src":"348:7:33"},"id":7454,"nodeType":"InheritanceSpecifier","src":"348:7:33"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7452,"nodeType":"StructuredDocumentation","src":"180:136:33","text":" @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":7479,"linearizedBaseContracts":[7479,7092,9849],"name":"IERC721Enumerable","nameLocation":"327:17:33","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7455,"nodeType":"StructuredDocumentation","src":"362:82:33","text":" @dev Returns the total amount of tokens stored by the contract."},"functionSelector":"18160ddd","id":7460,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"458:11:33","nodeType":"FunctionDefinition","parameters":{"id":7456,"nodeType":"ParameterList","parameters":[],"src":"469:2:33"},"returnParameters":{"id":7459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7460,"src":"495:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7457,"name":"uint256","nodeType":"ElementaryTypeName","src":"495:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"494:9:33"},"scope":7479,"src":"449:55:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7461,"nodeType":"StructuredDocumentation","src":"510:171:33","text":" @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"functionSelector":"2f745c59","id":7470,"implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"695:19:33","nodeType":"FunctionDefinition","parameters":{"id":7466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7463,"mutability":"mutable","name":"owner","nameLocation":"723:5:33","nodeType":"VariableDeclaration","scope":7470,"src":"715:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7462,"name":"address","nodeType":"ElementaryTypeName","src":"715:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7465,"mutability":"mutable","name":"index","nameLocation":"738:5:33","nodeType":"VariableDeclaration","scope":7470,"src":"730:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7464,"name":"uint256","nodeType":"ElementaryTypeName","src":"730:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"714:30:33"},"returnParameters":{"id":7469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7470,"src":"768:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7467,"name":"uint256","nodeType":"ElementaryTypeName","src":"768:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"767:9:33"},"scope":7479,"src":"686:91:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7471,"nodeType":"StructuredDocumentation","src":"783:164:33","text":" @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens."},"functionSelector":"4f6ccce7","id":7478,"implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"961:12:33","nodeType":"FunctionDefinition","parameters":{"id":7474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7473,"mutability":"mutable","name":"index","nameLocation":"982:5:33","nodeType":"VariableDeclaration","scope":7478,"src":"974:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7472,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"973:15:33"},"returnParameters":{"id":7477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7478,"src":"1012:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7475,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:9:33"},"scope":7479,"src":"952:69:33","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7480,"src":"317:706:33","usedErrors":[]}],"src":"129:895:33"},"id":33},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[9849],"IERC721":[7092],"IERC721Metadata":[7506]},"id":7507,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7481,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:34"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":7482,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7507,"sourceUnit":7093,"src":"137:24:34","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7484,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":7092,"src":"326:7:34"},"id":7485,"nodeType":"InheritanceSpecifier","src":"326:7:34"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7483,"nodeType":"StructuredDocumentation","src":"163:133:34","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":7506,"linearizedBaseContracts":[7506,7092,9849],"name":"IERC721Metadata","nameLocation":"307:15:34","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7486,"nodeType":"StructuredDocumentation","src":"340:58:34","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":7491,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:34","nodeType":"FunctionDefinition","parameters":{"id":7487,"nodeType":"ParameterList","parameters":[],"src":"416:2:34"},"returnParameters":{"id":7490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7491,"src":"442:13:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7488,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:34"},"scope":7506,"src":"403:54:34","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7492,"nodeType":"StructuredDocumentation","src":"463:60:34","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":7497,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:34","nodeType":"FunctionDefinition","parameters":{"id":7493,"nodeType":"ParameterList","parameters":[],"src":"543:2:34"},"returnParameters":{"id":7496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7497,"src":"569:13:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7494,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:34"},"scope":7506,"src":"528:56:34","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7498,"nodeType":"StructuredDocumentation","src":"590:90:34","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":7505,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:34","nodeType":"FunctionDefinition","parameters":{"id":7501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7500,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:34","nodeType":"VariableDeclaration","scope":7505,"src":"703:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7499,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:34"},"returnParameters":{"id":7504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7505,"src":"743:13:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7502,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:34"},"scope":7506,"src":"685:73:34","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7507,"src":"297:463:34","usedErrors":[]}],"src":"112:649:34"},"id":34},"@openzeppelin/contracts/token/common/ERC2981.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/common/ERC2981.sol","exportedSymbols":{"ERC165":[9837],"ERC2981":[7704],"IERC165":[9849],"IERC2981":[4757]},"id":7705,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7508,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:35"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC2981.sol","file":"../../interfaces/IERC2981.sol","id":7509,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7705,"sourceUnit":4758,"src":"133:39:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":7510,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7705,"sourceUnit":9838,"src":"173:46:35","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7512,"name":"IERC2981","nodeType":"IdentifierPath","referencedDeclaration":4757,"src":"1125:8:35"},"id":7513,"nodeType":"InheritanceSpecifier","src":"1125:8:35"},{"baseName":{"id":7514,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":9837,"src":"1135:6:35"},"id":7515,"nodeType":"InheritanceSpecifier","src":"1135:6:35"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7511,"nodeType":"StructuredDocumentation","src":"221:874:35","text":" @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.\n Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for\n specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.\n Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the\n fee is specified in basis points by default.\n IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See\n https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to\n voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.\n _Available since v4.5._"},"fullyImplemented":true,"id":7704,"linearizedBaseContracts":[7704,9837,4757,9849],"name":"ERC2981","nameLocation":"1114:7:35","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC2981.RoyaltyInfo","id":7520,"members":[{"constant":false,"id":7517,"mutability":"mutable","name":"receiver","nameLocation":"1185:8:35","nodeType":"VariableDeclaration","scope":7520,"src":"1177:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7516,"name":"address","nodeType":"ElementaryTypeName","src":"1177:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7519,"mutability":"mutable","name":"royaltyFraction","nameLocation":"1210:15:35","nodeType":"VariableDeclaration","scope":7520,"src":"1203:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":7518,"name":"uint96","nodeType":"ElementaryTypeName","src":"1203:6:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"name":"RoyaltyInfo","nameLocation":"1155:11:35","nodeType":"StructDefinition","scope":7704,"src":"1148:84:35","visibility":"public"},{"constant":false,"id":7523,"mutability":"mutable","name":"_defaultRoyaltyInfo","nameLocation":"1258:19:35","nodeType":"VariableDeclaration","scope":7704,"src":"1238:39:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo"},"typeName":{"id":7522,"nodeType":"UserDefinedTypeName","pathNode":{"id":7521,"name":"RoyaltyInfo","nodeType":"IdentifierPath","referencedDeclaration":7520,"src":"1238:11:35"},"referencedDeclaration":7520,"src":"1238:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage_ptr","typeString":"struct ERC2981.RoyaltyInfo"}},"visibility":"private"},{"constant":false,"id":7528,"mutability":"mutable","name":"_tokenRoyaltyInfo","nameLocation":"1323:17:35","nodeType":"VariableDeclaration","scope":7704,"src":"1283:57:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$7520_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo)"},"typeName":{"id":7527,"keyType":{"id":7524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1283:31:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$7520_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo)"},"valueType":{"id":7526,"nodeType":"UserDefinedTypeName","pathNode":{"id":7525,"name":"RoyaltyInfo","nodeType":"IdentifierPath","referencedDeclaration":7520,"src":"1302:11:35"},"referencedDeclaration":7520,"src":"1302:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage_ptr","typeString":"struct ERC2981.RoyaltyInfo"}}},"visibility":"private"},{"baseFunctions":[9836,9848],"body":{"id":7551,"nodeType":"Block","src":"1516:105:35","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7539,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7531,"src":"1533:11:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7541,"name":"IERC2981","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4757,"src":"1553:8:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC2981_$4757_$","typeString":"type(contract IERC2981)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC2981_$4757_$","typeString":"type(contract IERC2981)"}],"id":7540,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1548:4:35","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1548:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC2981_$4757","typeString":"type(contract IERC2981)"}},"id":7543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1548:26:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1533:41:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7547,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7531,"src":"1602:11:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7545,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1578:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC2981_$7704_$","typeString":"type(contract super ERC2981)"}},"id":7546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":9836,"src":"1578:23:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":7548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1578:36:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1533:81:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7538,"id":7550,"nodeType":"Return","src":"1526:88:35"}]},"documentation":{"id":7529,"nodeType":"StructuredDocumentation","src":"1347:56:35","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":7552,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1417:17:35","nodeType":"FunctionDefinition","overrides":{"id":7535,"nodeType":"OverrideSpecifier","overrides":[{"id":7533,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"1484:7:35"},{"id":7534,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":9837,"src":"1493:6:35"}],"src":"1475:25:35"},"parameters":{"id":7532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7531,"mutability":"mutable","name":"interfaceId","nameLocation":"1442:11:35","nodeType":"VariableDeclaration","scope":7552,"src":"1435:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7530,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1435:6:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1434:20:35"},"returnParameters":{"id":7538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7552,"src":"1510:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7536,"name":"bool","nodeType":"ElementaryTypeName","src":"1510:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1509:6:35"},"scope":7704,"src":"1408:213:35","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4756],"body":{"id":7601,"nodeType":"Block","src":"1786:317:35","statements":[{"assignments":[7567],"declarations":[{"constant":false,"id":7567,"mutability":"mutable","name":"royalty","nameLocation":"1815:7:35","nodeType":"VariableDeclaration","scope":7601,"src":"1796:26:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo"},"typeName":{"id":7566,"nodeType":"UserDefinedTypeName","pathNode":{"id":7565,"name":"RoyaltyInfo","nodeType":"IdentifierPath","referencedDeclaration":7520,"src":"1796:11:35"},"referencedDeclaration":7520,"src":"1796:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage_ptr","typeString":"struct ERC2981.RoyaltyInfo"}},"visibility":"internal"}],"id":7571,"initialValue":{"baseExpression":{"id":7568,"name":"_tokenRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"1825:17:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$7520_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"}},"id":7570,"indexExpression":{"id":7569,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"1843:8:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1825:27:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1796:56:35"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7572,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7567,"src":"1867:7:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":7573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receiver","nodeType":"MemberAccess","referencedDeclaration":7517,"src":"1867:16:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1895:1:35","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":7575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1887:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7574,"name":"address","nodeType":"ElementaryTypeName","src":"1887:7:35","typeDescriptions":{}}},"id":7577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1887:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1867:30:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7584,"nodeType":"IfStatement","src":"1863:90:35","trueBody":{"id":7583,"nodeType":"Block","src":"1899:54:35","statements":[{"expression":{"id":7581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7579,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7567,"src":"1913:7:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7580,"name":"_defaultRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7523,"src":"1923:19:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"src":"1913:29:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":7582,"nodeType":"ExpressionStatement","src":"1913:29:35"}]}},{"assignments":[7586],"declarations":[{"constant":false,"id":7586,"mutability":"mutable","name":"royaltyAmount","nameLocation":"1971:13:35","nodeType":"VariableDeclaration","scope":7601,"src":"1963:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7585,"name":"uint256","nodeType":"ElementaryTypeName","src":"1963:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7595,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7587,"name":"_salePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"1988:10:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":7588,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7567,"src":"2001:7:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":7589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"royaltyFraction","nodeType":"MemberAccess","referencedDeclaration":7519,"src":"2001:23:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1988:36:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7591,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1987:38:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7592,"name":"_feeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7611,"src":"2028:15:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint96_$","typeString":"function () pure returns (uint96)"}},"id":7593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2028:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1987:58:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1963:82:35"},{"expression":{"components":[{"expression":{"id":7596,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7567,"src":"2064:7:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":7597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receiver","nodeType":"MemberAccess","referencedDeclaration":7517,"src":"2064:16:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7598,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7586,"src":"2082:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7599,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2063:33:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":7564,"id":7600,"nodeType":"Return","src":"2056:40:35"}]},"documentation":{"id":7553,"nodeType":"StructuredDocumentation","src":"1627:39:35","text":" @inheritdoc IERC2981"},"functionSelector":"2a55205a","id":7602,"implemented":true,"kind":"function","modifiers":[],"name":"royaltyInfo","nameLocation":"1680:11:35","nodeType":"FunctionDefinition","overrides":{"id":7559,"nodeType":"OverrideSpecifier","overrides":[],"src":"1750:8:35"},"parameters":{"id":7558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7555,"mutability":"mutable","name":"_tokenId","nameLocation":"1700:8:35","nodeType":"VariableDeclaration","scope":7602,"src":"1692:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7554,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7557,"mutability":"mutable","name":"_salePrice","nameLocation":"1718:10:35","nodeType":"VariableDeclaration","scope":7602,"src":"1710:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7556,"name":"uint256","nodeType":"ElementaryTypeName","src":"1710:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1691:38:35"},"returnParameters":{"id":7564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7602,"src":"1768:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7560,"name":"address","nodeType":"ElementaryTypeName","src":"1768:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7602,"src":"1777:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7562,"name":"uint256","nodeType":"ElementaryTypeName","src":"1777:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1767:18:35"},"scope":7704,"src":"1671:432:35","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7610,"nodeType":"Block","src":"2444:29:35","statements":[{"expression":{"hexValue":"3130303030","id":7608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2461:5:35","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"functionReturnParameters":7607,"id":7609,"nodeType":"Return","src":"2454:12:35"}]},"documentation":{"id":7603,"nodeType":"StructuredDocumentation","src":"2109:264:35","text":" @dev The denominator with which to interpret the fee set in {_setTokenRoyalty} and {_setDefaultRoyalty} as a\n fraction of the sale price. Defaults to 10000 so fees are expressed in basis points, but may be customized by an\n override."},"id":7611,"implemented":true,"kind":"function","modifiers":[],"name":"_feeDenominator","nameLocation":"2387:15:35","nodeType":"FunctionDefinition","parameters":{"id":7604,"nodeType":"ParameterList","parameters":[],"src":"2402:2:35"},"returnParameters":{"id":7607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7611,"src":"2436:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":7605,"name":"uint96","nodeType":"ElementaryTypeName","src":"2436:6:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"2435:8:35"},"scope":7704,"src":"2378:95:35","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":7644,"nodeType":"Block","src":"2818:243:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":7623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7620,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7616,"src":"2836:12:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7621,"name":"_feeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7611,"src":"2852:15:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint96_$","typeString":"function () pure returns (uint96)"}},"id":7622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2852:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2836:33:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20726f79616c7479206665652077696c6c206578636565642073616c655072696365","id":7624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2871:44:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""},"value":"ERC2981: royalty fee will exceed salePrice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""}],"id":7619,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2828:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2828:88:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7626,"nodeType":"ExpressionStatement","src":"2828:88:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7628,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7614,"src":"2934:8:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:1:35","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":7630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2946:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7629,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:35","typeDescriptions":{}}},"id":7632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2946:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2934:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20696e76616c6964207265636569766572","id":7634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2958:27:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff","typeString":"literal_string \"ERC2981: invalid receiver\""},"value":"ERC2981: invalid receiver"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff","typeString":"literal_string \"ERC2981: invalid receiver\""}],"id":7627,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2926:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2926:60:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7636,"nodeType":"ExpressionStatement","src":"2926:60:35"},{"expression":{"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7637,"name":"_defaultRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7523,"src":"2997:19:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7639,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7614,"src":"3031:8:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7640,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7616,"src":"3041:12:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":7638,"name":"RoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7520,"src":"3019:11:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RoyaltyInfo_$7520_storage_ptr_$","typeString":"type(struct ERC2981.RoyaltyInfo storage pointer)"}},"id":7641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3019:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"src":"2997:57:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"id":7643,"nodeType":"ExpressionStatement","src":"2997:57:35"}]},"documentation":{"id":7612,"nodeType":"StructuredDocumentation","src":"2479:250:35","text":" @dev Sets the royalty information that all ids in this contract will default to.\n Requirements:\n - `receiver` cannot be the zero address.\n - `feeNumerator` cannot be greater than the fee denominator."},"id":7645,"implemented":true,"kind":"function","modifiers":[],"name":"_setDefaultRoyalty","nameLocation":"2743:18:35","nodeType":"FunctionDefinition","parameters":{"id":7617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7614,"mutability":"mutable","name":"receiver","nameLocation":"2770:8:35","nodeType":"VariableDeclaration","scope":7645,"src":"2762:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7613,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7616,"mutability":"mutable","name":"feeNumerator","nameLocation":"2787:12:35","nodeType":"VariableDeclaration","scope":7645,"src":"2780:19:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":7615,"name":"uint96","nodeType":"ElementaryTypeName","src":"2780:6:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"2761:39:35"},"returnParameters":{"id":7618,"nodeType":"ParameterList","parameters":[],"src":"2818:0:35"},"scope":7704,"src":"2734:327:35","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7652,"nodeType":"Block","src":"3182:43:35","statements":[{"expression":{"id":7650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3192:26:35","subExpression":{"id":7649,"name":"_defaultRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7523,"src":"3199:19:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7651,"nodeType":"ExpressionStatement","src":"3192:26:35"}]},"documentation":{"id":7646,"nodeType":"StructuredDocumentation","src":"3067:60:35","text":" @dev Removes default royalty information."},"id":7653,"implemented":true,"kind":"function","modifiers":[],"name":"_deleteDefaultRoyalty","nameLocation":"3141:21:35","nodeType":"FunctionDefinition","parameters":{"id":7647,"nodeType":"ParameterList","parameters":[],"src":"3162:2:35"},"returnParameters":{"id":7648,"nodeType":"ParameterList","parameters":[],"src":"3182:0:35"},"scope":7704,"src":"3132:93:35","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7690,"nodeType":"Block","src":"3624:252:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":7667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7664,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7660,"src":"3642:12:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7665,"name":"_feeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7611,"src":"3658:15:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint96_$","typeString":"function () pure returns (uint96)"}},"id":7666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3658:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"3642:33:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20726f79616c7479206665652077696c6c206578636565642073616c655072696365","id":7668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3677:44:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""},"value":"ERC2981: royalty fee will exceed salePrice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""}],"id":7663,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3634:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3634:88:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7670,"nodeType":"ExpressionStatement","src":"3634:88:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7672,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"3740:8:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3760:1:35","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":7674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3752:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7673,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:35","typeDescriptions":{}}},"id":7676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3752:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3740:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20496e76616c696420706172616d6574657273","id":7678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3764:29:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_d20a09dd8b4080dbbc254e38d9f607ef83a2c7a38b671ae8f8f162ffe46e2084","typeString":"literal_string \"ERC2981: Invalid parameters\""},"value":"ERC2981: Invalid parameters"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d20a09dd8b4080dbbc254e38d9f607ef83a2c7a38b671ae8f8f162ffe46e2084","typeString":"literal_string \"ERC2981: Invalid parameters\""}],"id":7671,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3732:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3732:62:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7680,"nodeType":"ExpressionStatement","src":"3732:62:35"},{"expression":{"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7681,"name":"_tokenRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"3805:17:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$7520_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"}},"id":7683,"indexExpression":{"id":7682,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"3823:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3805:26:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7685,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"3846:8:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7686,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7660,"src":"3856:12:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":7684,"name":"RoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7520,"src":"3834:11:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RoyaltyInfo_$7520_storage_ptr_$","typeString":"type(struct ERC2981.RoyaltyInfo storage pointer)"}},"id":7687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3834:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"src":"3805:64:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"id":7689,"nodeType":"ExpressionStatement","src":"3805:64:35"}]},"documentation":{"id":7654,"nodeType":"StructuredDocumentation","src":"3231:259:35","text":" @dev Sets the royalty information for a specific token id, overriding the global default.\n Requirements:\n - `receiver` cannot be the zero address.\n - `feeNumerator` cannot be greater than the fee denominator."},"id":7691,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenRoyalty","nameLocation":"3504:16:35","nodeType":"FunctionDefinition","parameters":{"id":7661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7656,"mutability":"mutable","name":"tokenId","nameLocation":"3538:7:35","nodeType":"VariableDeclaration","scope":7691,"src":"3530:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7655,"name":"uint256","nodeType":"ElementaryTypeName","src":"3530:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7658,"mutability":"mutable","name":"receiver","nameLocation":"3563:8:35","nodeType":"VariableDeclaration","scope":7691,"src":"3555:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7657,"name":"address","nodeType":"ElementaryTypeName","src":"3555:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7660,"mutability":"mutable","name":"feeNumerator","nameLocation":"3588:12:35","nodeType":"VariableDeclaration","scope":7691,"src":"3581:19:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":7659,"name":"uint96","nodeType":"ElementaryTypeName","src":"3581:6:35","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"3520:86:35"},"returnParameters":{"id":7662,"nodeType":"ParameterList","parameters":[],"src":"3624:0:35"},"scope":7704,"src":"3495:381:35","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7702,"nodeType":"Block","src":"4044:50:35","statements":[{"expression":{"id":7700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4054:33:35","subExpression":{"baseExpression":{"id":7697,"name":"_tokenRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"4061:17:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$7520_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"}},"id":7699,"indexExpression":{"id":7698,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7694,"src":"4079:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4061:26:35","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$7520_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7701,"nodeType":"ExpressionStatement","src":"4054:33:35"}]},"documentation":{"id":7692,"nodeType":"StructuredDocumentation","src":"3882:95:35","text":" @dev Resets royalty information for the token id back to the global default."},"id":7703,"implemented":true,"kind":"function","modifiers":[],"name":"_resetTokenRoyalty","nameLocation":"3991:18:35","nodeType":"FunctionDefinition","parameters":{"id":7695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7694,"mutability":"mutable","name":"tokenId","nameLocation":"4018:7:35","nodeType":"VariableDeclaration","scope":7703,"src":"4010:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7693,"name":"uint256","nodeType":"ElementaryTypeName","src":"4010:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4009:17:35"},"returnParameters":{"id":7696,"nodeType":"ParameterList","parameters":[],"src":"4044:0:35"},"scope":7704,"src":"3982:112:35","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7705,"src":"1096:3000:35","usedErrors":[]}],"src":"108:3989:35"},"id":35},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[7999]},"id":8000,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7706,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:36"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":7707,"nodeType":"StructuredDocumentation","src":"126:67:36","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":7999,"linearizedBaseContracts":[7999],"name":"Address","nameLocation":"202:7:36","nodeType":"ContractDefinition","nodes":[{"body":{"id":7721,"nodeType":"Block","src":"1241:254:36","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7715,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"1465:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1465:12:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1465:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7714,"id":7720,"nodeType":"Return","src":"1458:30:36"}]},"documentation":{"id":7708,"nodeType":"StructuredDocumentation","src":"216:954:36","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":7722,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:36","nodeType":"FunctionDefinition","parameters":{"id":7711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7710,"mutability":"mutable","name":"account","nameLocation":"1203:7:36","nodeType":"VariableDeclaration","scope":7722,"src":"1195:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7709,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:36"},"returnParameters":{"id":7714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7722,"src":"1235:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7712,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:36"},"scope":7999,"src":"1175:320:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7755,"nodeType":"Block","src":"2483:241:36","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7733,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2509:4:36","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7999","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7999","typeString":"library Address"}],"id":7732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7731,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:36","typeDescriptions":{}}},"id":7734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2501:13:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2501:21:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7736,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"2526:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":7738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:36","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":7730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2493:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2493:73:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7740,"nodeType":"ExpressionStatement","src":"2493:73:36"},{"assignments":[7742,null],"declarations":[{"constant":false,"id":7742,"mutability":"mutable","name":"success","nameLocation":"2583:7:36","nodeType":"VariableDeclaration","scope":7755,"src":"2578:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7741,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7749,"initialValue":{"arguments":[{"hexValue":"","id":7747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:36","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":7743,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7725,"src":"2596:9:36","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2596:14:36","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":7746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7745,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"2618:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:36","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":7748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2596:33:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:36"},{"expression":{"arguments":[{"id":7751,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7742,"src":"2647:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:36","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":7750,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2639:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:78:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7754,"nodeType":"ExpressionStatement","src":"2639:78:36"}]},"documentation":{"id":7723,"nodeType":"StructuredDocumentation","src":"1501:906:36","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":7756,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:36","nodeType":"FunctionDefinition","parameters":{"id":7728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7725,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:36","nodeType":"VariableDeclaration","scope":7756,"src":"2431:25:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":7724,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:36","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":7727,"mutability":"mutable","name":"amount","nameLocation":"2466:6:36","nodeType":"VariableDeclaration","scope":7756,"src":"2458:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7726,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:36"},"returnParameters":{"id":7729,"nodeType":"ParameterList","parameters":[],"src":"2483:0:36"},"scope":7999,"src":"2412:312:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7772,"nodeType":"Block","src":"3555:84:36","statements":[{"expression":{"arguments":[{"id":7767,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7759,"src":"3585:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7768,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7761,"src":"3593:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":7769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3599:32:36","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":7766,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[7773,7793],"referencedDeclaration":7793,"src":"3572:12:36","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":7770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:60:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7765,"id":7771,"nodeType":"Return","src":"3565:67:36"}]},"documentation":{"id":7757,"nodeType":"StructuredDocumentation","src":"2730:731:36","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":7773,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:36","nodeType":"FunctionDefinition","parameters":{"id":7762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7759,"mutability":"mutable","name":"target","nameLocation":"3496:6:36","nodeType":"VariableDeclaration","scope":7773,"src":"3488:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7758,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7761,"mutability":"mutable","name":"data","nameLocation":"3517:4:36","nodeType":"VariableDeclaration","scope":7773,"src":"3504:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7760,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:36"},"returnParameters":{"id":7765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7773,"src":"3541:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7763,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:36"},"scope":7999,"src":"3466:173:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7792,"nodeType":"Block","src":"4008:76:36","statements":[{"expression":{"arguments":[{"id":7786,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7776,"src":"4047:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7787,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"4055:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":7788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7789,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7780,"src":"4064:12:36","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":7785,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7813,7863],"referencedDeclaration":7863,"src":"4025:21:36","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":7790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4025:52:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7784,"id":7791,"nodeType":"Return","src":"4018:59:36"}]},"documentation":{"id":7774,"nodeType":"StructuredDocumentation","src":"3645:211:36","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":7793,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3870:12:36","nodeType":"FunctionDefinition","parameters":{"id":7781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7776,"mutability":"mutable","name":"target","nameLocation":"3900:6:36","nodeType":"VariableDeclaration","scope":7793,"src":"3892:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7775,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7778,"mutability":"mutable","name":"data","nameLocation":"3929:4:36","nodeType":"VariableDeclaration","scope":7793,"src":"3916:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7777,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7780,"mutability":"mutable","name":"errorMessage","nameLocation":"3957:12:36","nodeType":"VariableDeclaration","scope":7793,"src":"3943:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7779,"name":"string","nodeType":"ElementaryTypeName","src":"3943:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3882:93:36"},"returnParameters":{"id":7784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7793,"src":"3994:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7782,"name":"bytes","nodeType":"ElementaryTypeName","src":"3994:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3993:14:36"},"scope":7999,"src":"3861:223:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7812,"nodeType":"Block","src":"4589:111:36","statements":[{"expression":{"arguments":[{"id":7806,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7796,"src":"4628:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7807,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"4636:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"4642:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":7809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4649:43:36","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":7805,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7813,7863],"referencedDeclaration":7863,"src":"4606:21:36","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":7810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4606:87:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7804,"id":7811,"nodeType":"Return","src":"4599:94:36"}]},"documentation":{"id":7794,"nodeType":"StructuredDocumentation","src":"4090:351:36","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":7813,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4455:21:36","nodeType":"FunctionDefinition","parameters":{"id":7801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7796,"mutability":"mutable","name":"target","nameLocation":"4494:6:36","nodeType":"VariableDeclaration","scope":7813,"src":"4486:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7795,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7798,"mutability":"mutable","name":"data","nameLocation":"4523:4:36","nodeType":"VariableDeclaration","scope":7813,"src":"4510:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7797,"name":"bytes","nodeType":"ElementaryTypeName","src":"4510:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7800,"mutability":"mutable","name":"value","nameLocation":"4545:5:36","nodeType":"VariableDeclaration","scope":7813,"src":"4537:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7799,"name":"uint256","nodeType":"ElementaryTypeName","src":"4537:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4476:80:36"},"returnParameters":{"id":7804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7813,"src":"4575:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7802,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4574:14:36"},"scope":7999,"src":"4446:254:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7862,"nodeType":"Block","src":"5127:320:36","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7830,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5153:4:36","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7999","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7999","typeString":"library Address"}],"id":7829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5145:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7828,"name":"address","nodeType":"ElementaryTypeName","src":"5145:7:36","typeDescriptions":{}}},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5145:13:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5145:21:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7833,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7820,"src":"5170:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:30:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":7835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:40:36","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":7827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5137:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5137:81:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7837,"nodeType":"ExpressionStatement","src":"5137:81:36"},{"expression":{"arguments":[{"arguments":[{"id":7840,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7816,"src":"5247:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7839,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"5236:10:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5236:18:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":7842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5256:31:36","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":7838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5228:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:60:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7844,"nodeType":"ExpressionStatement","src":"5228:60:36"},{"assignments":[7846,7848],"declarations":[{"constant":false,"id":7846,"mutability":"mutable","name":"success","nameLocation":"5305:7:36","nodeType":"VariableDeclaration","scope":7862,"src":"5300:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7845,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7848,"mutability":"mutable","name":"returndata","nameLocation":"5327:10:36","nodeType":"VariableDeclaration","scope":7862,"src":"5314:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7847,"name":"bytes","nodeType":"ElementaryTypeName","src":"5314:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7855,"initialValue":{"arguments":[{"id":7853,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"5367:4:36","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":7849,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7816,"src":"5341:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5341:11:36","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":7852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7851,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7820,"src":"5360:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5341:25:36","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":7854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5341:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5299:73:36"},{"expression":{"arguments":[{"id":7857,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7846,"src":"5406:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7858,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7848,"src":"5415:10:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7859,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7822,"src":"5427:12:36","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":7856,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7998,"src":"5389:16:36","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":7860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5389:51:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7826,"id":7861,"nodeType":"Return","src":"5382:58:36"}]},"documentation":{"id":7814,"nodeType":"StructuredDocumentation","src":"4706:237:36","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":7863,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4957:21:36","nodeType":"FunctionDefinition","parameters":{"id":7823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7816,"mutability":"mutable","name":"target","nameLocation":"4996:6:36","nodeType":"VariableDeclaration","scope":7863,"src":"4988:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7815,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7818,"mutability":"mutable","name":"data","nameLocation":"5025:4:36","nodeType":"VariableDeclaration","scope":7863,"src":"5012:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7817,"name":"bytes","nodeType":"ElementaryTypeName","src":"5012:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7820,"mutability":"mutable","name":"value","nameLocation":"5047:5:36","nodeType":"VariableDeclaration","scope":7863,"src":"5039:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7819,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7822,"mutability":"mutable","name":"errorMessage","nameLocation":"5076:12:36","nodeType":"VariableDeclaration","scope":7863,"src":"5062:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7821,"name":"string","nodeType":"ElementaryTypeName","src":"5062:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4978:116:36"},"returnParameters":{"id":7826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7863,"src":"5113:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7824,"name":"bytes","nodeType":"ElementaryTypeName","src":"5113:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5112:14:36"},"scope":7999,"src":"4948:499:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7879,"nodeType":"Block","src":"5724:97:36","statements":[{"expression":{"arguments":[{"id":7874,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7866,"src":"5760:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7875,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7868,"src":"5768:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":7876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5774:39:36","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":7873,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[7880,7915],"referencedDeclaration":7915,"src":"5741:18:36","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":7877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5741:73:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7872,"id":7878,"nodeType":"Return","src":"5734:80:36"}]},"documentation":{"id":7864,"nodeType":"StructuredDocumentation","src":"5453:166:36","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":7880,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5633:18:36","nodeType":"FunctionDefinition","parameters":{"id":7869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7866,"mutability":"mutable","name":"target","nameLocation":"5660:6:36","nodeType":"VariableDeclaration","scope":7880,"src":"5652:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7865,"name":"address","nodeType":"ElementaryTypeName","src":"5652:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7868,"mutability":"mutable","name":"data","nameLocation":"5681:4:36","nodeType":"VariableDeclaration","scope":7880,"src":"5668:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7867,"name":"bytes","nodeType":"ElementaryTypeName","src":"5668:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5651:35:36"},"returnParameters":{"id":7872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7880,"src":"5710:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7870,"name":"bytes","nodeType":"ElementaryTypeName","src":"5710:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5709:14:36"},"scope":7999,"src":"5624:197:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7914,"nodeType":"Block","src":"6163:228:36","statements":[{"expression":{"arguments":[{"arguments":[{"id":7894,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"6192:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7893,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"6181:10:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6181:18:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":7896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6201:38:36","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":7892,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6173:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6173:67:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7898,"nodeType":"ExpressionStatement","src":"6173:67:36"},{"assignments":[7900,7902],"declarations":[{"constant":false,"id":7900,"mutability":"mutable","name":"success","nameLocation":"6257:7:36","nodeType":"VariableDeclaration","scope":7914,"src":"6252:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7899,"name":"bool","nodeType":"ElementaryTypeName","src":"6252:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7902,"mutability":"mutable","name":"returndata","nameLocation":"6279:10:36","nodeType":"VariableDeclaration","scope":7914,"src":"6266:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7901,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7907,"initialValue":{"arguments":[{"id":7905,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"6311:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7903,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"6293:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6293:17:36","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":7906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6293:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6251:65:36"},{"expression":{"arguments":[{"id":7909,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7900,"src":"6350:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7910,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7902,"src":"6359:10:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7911,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7887,"src":"6371:12:36","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":7908,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7998,"src":"6333:16:36","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":7912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6333:51:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7891,"id":7913,"nodeType":"Return","src":"6326:58:36"}]},"documentation":{"id":7881,"nodeType":"StructuredDocumentation","src":"5827:173:36","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":7915,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6014:18:36","nodeType":"FunctionDefinition","parameters":{"id":7888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7883,"mutability":"mutable","name":"target","nameLocation":"6050:6:36","nodeType":"VariableDeclaration","scope":7915,"src":"6042:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7882,"name":"address","nodeType":"ElementaryTypeName","src":"6042:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7885,"mutability":"mutable","name":"data","nameLocation":"6079:4:36","nodeType":"VariableDeclaration","scope":7915,"src":"6066:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7884,"name":"bytes","nodeType":"ElementaryTypeName","src":"6066:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7887,"mutability":"mutable","name":"errorMessage","nameLocation":"6107:12:36","nodeType":"VariableDeclaration","scope":7915,"src":"6093:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7886,"name":"string","nodeType":"ElementaryTypeName","src":"6093:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6032:93:36"},"returnParameters":{"id":7891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7915,"src":"6149:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7889,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6148:14:36"},"scope":7999,"src":"6005:386:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7931,"nodeType":"Block","src":"6667:101:36","statements":[{"expression":{"arguments":[{"id":7926,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"6705:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7927,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7920,"src":"6713:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":7928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6719:41:36","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":7925,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[7932,7967],"referencedDeclaration":7967,"src":"6684:20:36","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":7929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6684:77:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7924,"id":7930,"nodeType":"Return","src":"6677:84:36"}]},"documentation":{"id":7916,"nodeType":"StructuredDocumentation","src":"6397:168:36","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":7932,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6579:20:36","nodeType":"FunctionDefinition","parameters":{"id":7921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7918,"mutability":"mutable","name":"target","nameLocation":"6608:6:36","nodeType":"VariableDeclaration","scope":7932,"src":"6600:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7917,"name":"address","nodeType":"ElementaryTypeName","src":"6600:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7920,"mutability":"mutable","name":"data","nameLocation":"6629:4:36","nodeType":"VariableDeclaration","scope":7932,"src":"6616:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7919,"name":"bytes","nodeType":"ElementaryTypeName","src":"6616:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6599:35:36"},"returnParameters":{"id":7924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7932,"src":"6653:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7922,"name":"bytes","nodeType":"ElementaryTypeName","src":"6653:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6652:14:36"},"scope":7999,"src":"6570:198:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7966,"nodeType":"Block","src":"7109:232:36","statements":[{"expression":{"arguments":[{"arguments":[{"id":7946,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7935,"src":"7138:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7945,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"7127:10:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7127:18:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":7948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:40:36","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":7944,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7119:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7119:69:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7950,"nodeType":"ExpressionStatement","src":"7119:69:36"},{"assignments":[7952,7954],"declarations":[{"constant":false,"id":7952,"mutability":"mutable","name":"success","nameLocation":"7205:7:36","nodeType":"VariableDeclaration","scope":7966,"src":"7200:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7951,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7954,"mutability":"mutable","name":"returndata","nameLocation":"7227:10:36","nodeType":"VariableDeclaration","scope":7966,"src":"7214:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7953,"name":"bytes","nodeType":"ElementaryTypeName","src":"7214:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7959,"initialValue":{"arguments":[{"id":7957,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7937,"src":"7261:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7955,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7935,"src":"7241:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"7241:19:36","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":7958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7241:25:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7199:67:36"},{"expression":{"arguments":[{"id":7961,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"7300:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7962,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7954,"src":"7309:10:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7963,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7939,"src":"7321:12:36","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":7960,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7998,"src":"7283:16:36","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":7964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7283:51:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7943,"id":7965,"nodeType":"Return","src":"7276:58:36"}]},"documentation":{"id":7933,"nodeType":"StructuredDocumentation","src":"6774:175:36","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":7967,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6963:20:36","nodeType":"FunctionDefinition","parameters":{"id":7940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7935,"mutability":"mutable","name":"target","nameLocation":"7001:6:36","nodeType":"VariableDeclaration","scope":7967,"src":"6993:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7934,"name":"address","nodeType":"ElementaryTypeName","src":"6993:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7937,"mutability":"mutable","name":"data","nameLocation":"7030:4:36","nodeType":"VariableDeclaration","scope":7967,"src":"7017:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7936,"name":"bytes","nodeType":"ElementaryTypeName","src":"7017:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7939,"mutability":"mutable","name":"errorMessage","nameLocation":"7058:12:36","nodeType":"VariableDeclaration","scope":7967,"src":"7044:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7938,"name":"string","nodeType":"ElementaryTypeName","src":"7044:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6983:93:36"},"returnParameters":{"id":7943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7967,"src":"7095:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7941,"name":"bytes","nodeType":"ElementaryTypeName","src":"7095:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7094:14:36"},"scope":7999,"src":"6954:387:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7997,"nodeType":"Block","src":"7721:582:36","statements":[{"condition":{"id":7979,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"7735:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7995,"nodeType":"Block","src":"7792:505:36","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7983,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7972,"src":"7876:10:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7876:17:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7876:21:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7993,"nodeType":"Block","src":"8234:53:36","statements":[{"expression":{"arguments":[{"id":7990,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7974,"src":"8259:12:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7989,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8252:6:36","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8252:20:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7992,"nodeType":"ExpressionStatement","src":"8252:20:36"}]},"id":7994,"nodeType":"IfStatement","src":"7872:415:36","trueBody":{"id":7988,"nodeType":"Block","src":"7899:329:36","statements":[{"AST":{"nodeType":"YulBlock","src":"8069:145:36","statements":[{"nodeType":"YulVariableDeclaration","src":"8091:40:36","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"8120:10:36"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8114:5:36"},"nodeType":"YulFunctionCall","src":"8114:17:36"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8095:15:36","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8163:2:36","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"8167:10:36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8159:3:36"},"nodeType":"YulFunctionCall","src":"8159:19:36"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"8180:15:36"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8152:6:36"},"nodeType":"YulFunctionCall","src":"8152:44:36"},"nodeType":"YulExpressionStatement","src":"8152:44:36"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":7972,"isOffset":false,"isSlot":false,"src":"8120:10:36","valueSize":1},{"declaration":7972,"isOffset":false,"isSlot":false,"src":"8167:10:36","valueSize":1}],"id":7987,"nodeType":"InlineAssembly","src":"8060:154:36"}]}}]},"id":7996,"nodeType":"IfStatement","src":"7731:566:36","trueBody":{"id":7982,"nodeType":"Block","src":"7744:42:36","statements":[{"expression":{"id":7980,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7972,"src":"7765:10:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7978,"id":7981,"nodeType":"Return","src":"7758:17:36"}]}}]},"documentation":{"id":7968,"nodeType":"StructuredDocumentation","src":"7347:209:36","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":7998,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7570:16:36","nodeType":"FunctionDefinition","parameters":{"id":7975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7970,"mutability":"mutable","name":"success","nameLocation":"7601:7:36","nodeType":"VariableDeclaration","scope":7998,"src":"7596:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7969,"name":"bool","nodeType":"ElementaryTypeName","src":"7596:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7972,"mutability":"mutable","name":"returndata","nameLocation":"7631:10:36","nodeType":"VariableDeclaration","scope":7998,"src":"7618:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7971,"name":"bytes","nodeType":"ElementaryTypeName","src":"7618:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7974,"mutability":"mutable","name":"errorMessage","nameLocation":"7665:12:36","nodeType":"VariableDeclaration","scope":7998,"src":"7651:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7973,"name":"string","nodeType":"ElementaryTypeName","src":"7651:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7586:97:36"},"returnParameters":{"id":7978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7998,"src":"7707:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7976,"name":"bytes","nodeType":"ElementaryTypeName","src":"7707:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7706:14:36"},"scope":7999,"src":"7561:742:36","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8000,"src":"194:8111:36","usedErrors":[]}],"src":"101:8205:36"},"id":36},"@openzeppelin/contracts/utils/Checkpoints.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Checkpoints.sol","exportedSymbols":{"Checkpoints":[8233],"Math":[10353],"SafeCast":[12204]},"id":8234,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8001,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:37"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":8002,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8234,"sourceUnit":10354,"src":"129:25:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./math/SafeCast.sol","id":8003,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8234,"sourceUnit":12205,"src":"155:29:37","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":8004,"nodeType":"StructuredDocumentation","src":"186:432:37","text":" @dev This library defines the `History` struct, for checkpointing values as they change at different points in\n time, and later looking up past values by block number. See {Votes} as an example.\n To create a history of checkpoints define a variable type `Checkpoints.History` in your contract, and store a new\n checkpoint for the current transaction block using the {push} function.\n _Available since v4.5._"},"fullyImplemented":true,"id":8233,"linearizedBaseContracts":[8233],"name":"Checkpoints","nameLocation":"627:11:37","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Checkpoints.Checkpoint","id":8009,"members":[{"constant":false,"id":8006,"mutability":"mutable","name":"_blockNumber","nameLocation":"680:12:37","nodeType":"VariableDeclaration","scope":8009,"src":"673:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8005,"name":"uint32","nodeType":"ElementaryTypeName","src":"673:6:37","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":8008,"mutability":"mutable","name":"_value","nameLocation":"710:6:37","nodeType":"VariableDeclaration","scope":8009,"src":"702:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8007,"name":"uint224","nodeType":"ElementaryTypeName","src":"702:7:37","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"652:10:37","nodeType":"StructDefinition","scope":8233,"src":"645:78:37","visibility":"public"},{"canonicalName":"Checkpoints.History","id":8014,"members":[{"constant":false,"id":8013,"mutability":"mutable","name":"_checkpoints","nameLocation":"767:12:37","nodeType":"VariableDeclaration","scope":8014,"src":"754:25:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"},"typeName":{"baseType":{"id":8011,"nodeType":"UserDefinedTypeName","pathNode":{"id":8010,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":8009,"src":"754:10:37"},"referencedDeclaration":8009,"src":"754:10:37","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$8009_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"id":8012,"nodeType":"ArrayTypeName","src":"754:12:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"}},"visibility":"internal"}],"name":"History","nameLocation":"736:7:37","nodeType":"StructDefinition","scope":8233,"src":"729:57:37","visibility":"public"},{"body":{"id":8042,"nodeType":"Block","src":"971:120:37","statements":[{"assignments":[8024],"declarations":[{"constant":false,"id":8024,"mutability":"mutable","name":"pos","nameLocation":"989:3:37","nodeType":"VariableDeclaration","scope":8042,"src":"981:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8023,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8028,"initialValue":{"expression":{"expression":{"id":8025,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8018,"src":"995:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"995:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"995:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"981:38:37"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8029,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"1036:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1043:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1036:8:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"baseExpression":{"expression":{"id":8033,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8018,"src":"1051:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"1051:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8038,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8035,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"1069:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1075:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1069:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1051:26:37","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$8009_storage","typeString":"struct Checkpoints.Checkpoint storage ref"}},"id":8039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8008,"src":"1051:33:37","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":8040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1036:48:37","trueExpression":{"hexValue":"30","id":8032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1047:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":8022,"id":8041,"nodeType":"Return","src":"1029:55:37"}]},"documentation":{"id":8015,"nodeType":"StructuredDocumentation","src":"792:104:37","text":" @dev Returns the value in the latest checkpoint, or zero if there are no checkpoints."},"id":8043,"implemented":true,"kind":"function","modifiers":[],"name":"latest","nameLocation":"910:6:37","nodeType":"FunctionDefinition","parameters":{"id":8019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8018,"mutability":"mutable","name":"self","nameLocation":"933:4:37","nodeType":"VariableDeclaration","scope":8043,"src":"917:20:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":8017,"nodeType":"UserDefinedTypeName","pathNode":{"id":8016,"name":"History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"917:7:37"},"referencedDeclaration":8014,"src":"917:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"}],"src":"916:22:37"},"returnParameters":{"id":8022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8043,"src":"962:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8020,"name":"uint256","nodeType":"ElementaryTypeName","src":"962:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"961:9:37"},"scope":8233,"src":"901:190:37","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8118,"nodeType":"Block","src":"1376:483:37","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8055,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"1394:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8056,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1408:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"1408:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1394:26:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e6564","id":8059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1422:34:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be","typeString":"literal_string \"Checkpoints: block not yet mined\""},"value":"Checkpoints: block not yet mined"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be","typeString":"literal_string \"Checkpoints: block not yet mined\""}],"id":8054,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1386:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1386:71:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8061,"nodeType":"ExpressionStatement","src":"1386:71:37"},{"assignments":[8063],"declarations":[{"constant":false,"id":8063,"mutability":"mutable","name":"high","nameLocation":"1476:4:37","nodeType":"VariableDeclaration","scope":8118,"src":"1468:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8062,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8067,"initialValue":{"expression":{"expression":{"id":8064,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8047,"src":"1483:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"1483:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1483:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1468:39:37"},{"assignments":[8069],"declarations":[{"constant":false,"id":8069,"mutability":"mutable","name":"low","nameLocation":"1525:3:37","nodeType":"VariableDeclaration","scope":8118,"src":"1517:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8068,"name":"uint256","nodeType":"ElementaryTypeName","src":"1517:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8071,"initialValue":{"hexValue":"30","id":8070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1531:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1517:15:37"},{"body":{"id":8103,"nodeType":"Block","src":"1561:225:37","statements":[{"assignments":[8076],"declarations":[{"constant":false,"id":8076,"mutability":"mutable","name":"mid","nameLocation":"1583:3:37","nodeType":"VariableDeclaration","scope":8103,"src":"1575:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8075,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8082,"initialValue":{"arguments":[{"id":8079,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"1602:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8080,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"1607:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8077,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"1589:4:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":8078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"average","nodeType":"MemberAccess","referencedDeclaration":9915,"src":"1589:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1589:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1575:37:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":8083,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8047,"src":"1630:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"1630:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8086,"indexExpression":{"id":8085,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8076,"src":"1648:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1630:22:37","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$8009_storage","typeString":"struct Checkpoints.Checkpoint storage ref"}},"id":8087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":8006,"src":"1630:35:37","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8088,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"1668:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1630:49:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8101,"nodeType":"Block","src":"1730:46:37","statements":[{"expression":{"id":8099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8095,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"1748:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8096,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8076,"src":"1754:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1760:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1754:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1748:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8100,"nodeType":"ExpressionStatement","src":"1748:13:37"}]},"id":8102,"nodeType":"IfStatement","src":"1626:150:37","trueBody":{"id":8094,"nodeType":"Block","src":"1681:43:37","statements":[{"expression":{"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8090,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"1699:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8091,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8076,"src":"1706:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1699:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8093,"nodeType":"ExpressionStatement","src":"1699:10:37"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8072,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"1549:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8073,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"1555:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1549:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8104,"nodeType":"WhileStatement","src":"1542:244:37"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8105,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"1802:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1810:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1802:9:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"baseExpression":{"expression":{"id":8109,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8047,"src":"1818:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"1818:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8114,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8111,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"1836:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1843:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1836:8:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1818:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$8009_storage","typeString":"struct Checkpoints.Checkpoint storage ref"}},"id":8115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8008,"src":"1818:34:37","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":8116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1802:50:37","trueExpression":{"hexValue":"30","id":8108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1814:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":8053,"id":8117,"nodeType":"Return","src":"1795:57:37"}]},"documentation":{"id":8044,"nodeType":"StructuredDocumentation","src":"1097:179:37","text":" @dev Returns the value at a given block number. If a checkpoint is not available at that block, the closest one\n before it is returned, or zero otherwise."},"id":8119,"implemented":true,"kind":"function","modifiers":[],"name":"getAtBlock","nameLocation":"1290:10:37","nodeType":"FunctionDefinition","parameters":{"id":8050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8047,"mutability":"mutable","name":"self","nameLocation":"1317:4:37","nodeType":"VariableDeclaration","scope":8119,"src":"1301:20:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":8046,"nodeType":"UserDefinedTypeName","pathNode":{"id":8045,"name":"History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"1301:7:37"},"referencedDeclaration":8014,"src":"1301:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"},{"constant":false,"id":8049,"mutability":"mutable","name":"blockNumber","nameLocation":"1331:11:37","nodeType":"VariableDeclaration","scope":8119,"src":"1323:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8048,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1300:43:37"},"returnParameters":{"id":8053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8119,"src":"1367:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8051,"name":"uint256","nodeType":"ElementaryTypeName","src":"1367:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1366:9:37"},"scope":8233,"src":"1281:578:37","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8197,"nodeType":"Block","src":"2124:466:37","statements":[{"assignments":[8133],"declarations":[{"constant":false,"id":8133,"mutability":"mutable","name":"pos","nameLocation":"2142:3:37","nodeType":"VariableDeclaration","scope":8197,"src":"2134:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8132,"name":"uint256","nodeType":"ElementaryTypeName","src":"2134:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8137,"initialValue":{"expression":{"expression":{"id":8134,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"2148:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"2148:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2148:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2134:38:37"},{"assignments":[8139],"declarations":[{"constant":false,"id":8139,"mutability":"mutable","name":"old","nameLocation":"2190:3:37","nodeType":"VariableDeclaration","scope":8197,"src":"2182:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8138,"name":"uint256","nodeType":"ElementaryTypeName","src":"2182:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8143,"initialValue":{"arguments":[{"id":8141,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"2203:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}],"id":8140,"name":"latest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8043,"src":"2196:6:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint256)"}},"id":8142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2196:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2182:26:37"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8144,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8133,"src":"2222:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2228:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2222:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":8147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"2233:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"2233:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8152,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8149,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8133,"src":"2251:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2257:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2251:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2233:26:37","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$8009_storage","typeString":"struct Checkpoints.Checkpoint storage ref"}},"id":8153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":8006,"src":"2233:39:37","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8154,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2276:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"2276:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2233:55:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2222:66:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8191,"nodeType":"Block","src":"2382:173:37","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":8181,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2480:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"2480:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8179,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"2462:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$12204_$","typeString":"type(library SafeCast)"}},"id":8180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":11056,"src":"2462:17:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":8183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2462:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":8186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"2522:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8184,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"2503:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$12204_$","typeString":"type(library SafeCast)"}},"id":8185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":10456,"src":"2503:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2503:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":8178,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8009,"src":"2436:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$8009_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint storage pointer)"}},"id":8188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["_blockNumber","_value"],"nodeType":"FunctionCall","src":"2436:94:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$8009_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint_$8009_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}],"expression":{"expression":{"id":8173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"2396:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"2396:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2396:22:37","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint_$8009_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,struct Checkpoints.Checkpoint storage ref)"}},"id":8189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2396:148:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8190,"nodeType":"ExpressionStatement","src":"2396:148:37"}]},"id":8192,"nodeType":"IfStatement","src":"2218:337:37","trueBody":{"id":8172,"nodeType":"Block","src":"2290:86:37","statements":[{"expression":{"id":8170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":8158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"2304:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":8163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":8013,"src":"2304:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$8009_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":8164,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8160,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8133,"src":"2322:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2328:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2322:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2304:26:37","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$8009_storage","typeString":"struct Checkpoints.Checkpoint storage ref"}},"id":8165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8008,"src":"2304:33:37","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8168,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"2359:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8166,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"2340:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$12204_$","typeString":"type(library SafeCast)"}},"id":8167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":10456,"src":"2340:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":8169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2340:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"2304:61:37","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":8171,"nodeType":"ExpressionStatement","src":"2304:61:37"}]}},{"expression":{"components":[{"id":8193,"name":"old","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8139,"src":"2572:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8194,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"2577:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2571:12:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":8131,"id":8196,"nodeType":"Return","src":"2564:19:37"}]},"documentation":{"id":8120,"nodeType":"StructuredDocumentation","src":"1865:167:37","text":" @dev Pushes a value onto a History so that it is stored as the checkpoint for the current block.\n Returns previous value and new value."},"id":8198,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"2046:4:37","nodeType":"FunctionDefinition","parameters":{"id":8126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8123,"mutability":"mutable","name":"self","nameLocation":"2067:4:37","nodeType":"VariableDeclaration","scope":8198,"src":"2051:20:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":8122,"nodeType":"UserDefinedTypeName","pathNode":{"id":8121,"name":"History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"2051:7:37"},"referencedDeclaration":8014,"src":"2051:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"},{"constant":false,"id":8125,"mutability":"mutable","name":"value","nameLocation":"2081:5:37","nodeType":"VariableDeclaration","scope":8198,"src":"2073:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8124,"name":"uint256","nodeType":"ElementaryTypeName","src":"2073:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2050:37:37"},"returnParameters":{"id":8131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8198,"src":"2106:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8127,"name":"uint256","nodeType":"ElementaryTypeName","src":"2106:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8198,"src":"2115:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8129,"name":"uint256","nodeType":"ElementaryTypeName","src":"2115:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2105:18:37"},"scope":8233,"src":"2037:553:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8231,"nodeType":"Block","src":"2993:59:37","statements":[{"expression":{"arguments":[{"id":8222,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8202,"src":"3015:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},{"arguments":[{"arguments":[{"id":8225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8202,"src":"3031:4:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}],"id":8224,"name":"latest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8043,"src":"3024:6:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint256)"}},"id":8226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3024:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8227,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8214,"src":"3038:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8223,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8212,"src":"3021:2:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":8228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3021:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8221,"name":"push","nodeType":"Identifier","overloadedDeclarations":[8198,8232],"referencedDeclaration":8198,"src":"3010:4:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) returns (uint256,uint256)"}},"id":8229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3010:35:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":8220,"id":8230,"nodeType":"Return","src":"3003:42:37"}]},"documentation":{"id":8199,"nodeType":"StructuredDocumentation","src":"2596:221:37","text":" @dev Pushes a value onto a History, by updating the latest value using binary operation `op`. The new value will\n be set to `op(latest, delta)`.\n Returns previous value and new value."},"id":8232,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"2831:4:37","nodeType":"FunctionDefinition","parameters":{"id":8215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8202,"mutability":"mutable","name":"self","nameLocation":"2861:4:37","nodeType":"VariableDeclaration","scope":8232,"src":"2845:20:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":8201,"nodeType":"UserDefinedTypeName","pathNode":{"id":8200,"name":"History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"2845:7:37"},"referencedDeclaration":8014,"src":"2845:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"},{"constant":false,"id":8212,"mutability":"mutable","name":"op","nameLocation":"2925:2:37","nodeType":"VariableDeclaration","scope":8232,"src":"2875:52:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"},"typeName":{"id":8211,"nodeType":"FunctionTypeName","parameterTypes":{"id":8207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8211,"src":"2884:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2884:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8211,"src":"2893:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8205,"name":"uint256","nodeType":"ElementaryTypeName","src":"2893:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2883:18:37"},"returnParameterTypes":{"id":8210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8209,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8211,"src":"2916:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8208,"name":"uint256","nodeType":"ElementaryTypeName","src":"2916:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2915:9:37"},"src":"2875:52:37","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"},"visibility":"internal"},"visibility":"internal"},{"constant":false,"id":8214,"mutability":"mutable","name":"delta","nameLocation":"2945:5:37","nodeType":"VariableDeclaration","scope":8232,"src":"2937:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2937:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:121:37"},"returnParameters":{"id":8220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8232,"src":"2975:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8216,"name":"uint256","nodeType":"ElementaryTypeName","src":"2975:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8232,"src":"2984:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8218,"name":"uint256","nodeType":"ElementaryTypeName","src":"2984:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2974:18:37"},"scope":8233,"src":"2822:230:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":8234,"src":"619:2435:37","usedErrors":[]}],"src":"104:2951:37"},"id":37},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[8255]},"id":8256,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8235,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:38"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":8236,"nodeType":"StructuredDocumentation","src":"111:496:38","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":8255,"linearizedBaseContracts":[8255],"name":"Context","nameLocation":"626:7:38","nodeType":"ContractDefinition","nodes":[{"body":{"id":8244,"nodeType":"Block","src":"702:34:38","statements":[{"expression":{"expression":{"id":8241,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8240,"id":8243,"nodeType":"Return","src":"712:17:38"}]},"id":8245,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:38","nodeType":"FunctionDefinition","parameters":{"id":8237,"nodeType":"ParameterList","parameters":[],"src":"659:2:38"},"returnParameters":{"id":8240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8245,"src":"693:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8238,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:38"},"scope":8255,"src":"640:96:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8253,"nodeType":"Block","src":"809:32:38","statements":[{"expression":{"expression":{"id":8250,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":8249,"id":8252,"nodeType":"Return","src":"819:15:38"}]},"id":8254,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:38","nodeType":"FunctionDefinition","parameters":{"id":8246,"nodeType":"ParameterList","parameters":[],"src":"759:2:38"},"returnParameters":{"id":8249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8254,"src":"793:14:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8247,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:38"},"scope":8255,"src":"742:99:38","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":8256,"src":"608:235:38","usedErrors":[]}],"src":"86:758:38"},"id":38},"@openzeppelin/contracts/utils/Counters.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","exportedSymbols":{"Counters":[8329]},"id":8330,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8257,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:39"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":8258,"nodeType":"StructuredDocumentation","src":"112:311:39","text":" @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"},"fullyImplemented":true,"id":8329,"linearizedBaseContracts":[8329],"name":"Counters","nameLocation":"432:8:39","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Counters.Counter","id":8261,"members":[{"constant":false,"id":8260,"mutability":"mutable","name":"_value","nameLocation":"794:6:39","nodeType":"VariableDeclaration","scope":8261,"src":"786:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8259,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:39","nodeType":"StructDefinition","scope":8329,"src":"447:374:39","visibility":"public"},{"body":{"id":8272,"nodeType":"Block","src":"901:38:39","statements":[{"expression":{"expression":{"id":8269,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8264,"src":"918:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8260,"src":"918:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8268,"id":8271,"nodeType":"Return","src":"911:21:39"}]},"id":8273,"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:39","nodeType":"FunctionDefinition","parameters":{"id":8265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8264,"mutability":"mutable","name":"counter","nameLocation":"860:7:39","nodeType":"VariableDeclaration","scope":8273,"src":"844:23:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8263,"nodeType":"UserDefinedTypeName","pathNode":{"id":8262,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"844:7:39"},"referencedDeclaration":8261,"src":"844:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:39"},"returnParameters":{"id":8268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8273,"src":"892:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8266,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:39"},"scope":8329,"src":"827:112:39","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8286,"nodeType":"Block","src":"998:70:39","statements":[{"id":8285,"nodeType":"UncheckedBlock","src":"1008:54:39","statements":[{"expression":{"id":8283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8279,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"1032:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8260,"src":"1032:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8284,"nodeType":"ExpressionStatement","src":"1032:19:39"}]}]},"id":8287,"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:39","nodeType":"FunctionDefinition","parameters":{"id":8277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8276,"mutability":"mutable","name":"counter","nameLocation":"980:7:39","nodeType":"VariableDeclaration","scope":8287,"src":"964:23:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8275,"nodeType":"UserDefinedTypeName","pathNode":{"id":8274,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"964:7:39"},"referencedDeclaration":8261,"src":"964:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:39"},"returnParameters":{"id":8278,"nodeType":"ParameterList","parameters":[],"src":"998:0:39"},"scope":8329,"src":"945:123:39","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8314,"nodeType":"Block","src":"1127:176:39","statements":[{"assignments":[8294],"declarations":[{"constant":false,"id":8294,"mutability":"mutable","name":"value","nameLocation":"1145:5:39","nodeType":"VariableDeclaration","scope":8314,"src":"1137:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8293,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8297,"initialValue":{"expression":{"id":8295,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"1153:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8260,"src":"1153:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:39"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8299,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8294,"src":"1185:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":8302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""},"value":"Counter: decrement overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""}],"id":8298,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1177:49:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8304,"nodeType":"ExpressionStatement","src":"1177:49:39"},{"id":8313,"nodeType":"UncheckedBlock","src":"1236:61:39","statements":[{"expression":{"id":8311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8305,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"1260:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8260,"src":"1260:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8308,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8294,"src":"1277:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8312,"nodeType":"ExpressionStatement","src":"1260:26:39"}]}]},"id":8315,"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:39","nodeType":"FunctionDefinition","parameters":{"id":8291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8290,"mutability":"mutable","name":"counter","nameLocation":"1109:7:39","nodeType":"VariableDeclaration","scope":8315,"src":"1093:23:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8289,"nodeType":"UserDefinedTypeName","pathNode":{"id":8288,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"1093:7:39"},"referencedDeclaration":8261,"src":"1093:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:39"},"returnParameters":{"id":8292,"nodeType":"ParameterList","parameters":[],"src":"1127:0:39"},"scope":8329,"src":"1074:229:39","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8327,"nodeType":"Block","src":"1358:35:39","statements":[{"expression":{"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8321,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8318,"src":"1368:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8260,"src":"1368:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8326,"nodeType":"ExpressionStatement","src":"1368:18:39"}]},"id":8328,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:39","nodeType":"FunctionDefinition","parameters":{"id":8319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8318,"mutability":"mutable","name":"counter","nameLocation":"1340:7:39","nodeType":"VariableDeclaration","scope":8328,"src":"1324:23:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8317,"nodeType":"UserDefinedTypeName","pathNode":{"id":8316,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"1324:7:39"},"referencedDeclaration":8261,"src":"1324:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:39"},"returnParameters":{"id":8320,"nodeType":"ParameterList","parameters":[],"src":"1358:0:39"},"scope":8329,"src":"1309:84:39","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":8330,"src":"424:971:39","usedErrors":[]}],"src":"87:1309:39"},"id":39},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Strings":[8555]},"id":8556,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8331,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:40"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":8332,"nodeType":"StructuredDocumentation","src":"126:34:40","text":" @dev String operations."},"fullyImplemented":true,"id":8555,"linearizedBaseContracts":[8555],"name":"Strings","nameLocation":"169:7:40","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8335,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"208:12:40","nodeType":"VariableDeclaration","scope":8555,"src":"183:58:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":8333,"name":"bytes16","nodeType":"ElementaryTypeName","src":"183:7:40","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":8334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"223:18:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":8338,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"270:15:40","nodeType":"VariableDeclaration","scope":8555,"src":"247:43:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8336,"name":"uint8","nodeType":"ElementaryTypeName","src":"247:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":8337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:2:40","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":8416,"nodeType":"Block","src":"463:632:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"665:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"665:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8352,"nodeType":"IfStatement","src":"661:51:40","trueBody":{"id":8351,"nodeType":"Block","src":"677:35:40","statements":[{"expression":{"hexValue":"30","id":8349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"698:3:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":8345,"id":8350,"nodeType":"Return","src":"691:10:40"}]}},{"assignments":[8354],"declarations":[{"constant":false,"id":8354,"mutability":"mutable","name":"temp","nameLocation":"729:4:40","nodeType":"VariableDeclaration","scope":8416,"src":"721:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8353,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8356,"initialValue":{"id":8355,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"736:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"721:20:40"},{"assignments":[8358],"declarations":[{"constant":false,"id":8358,"mutability":"mutable","name":"digits","nameLocation":"759:6:40","nodeType":"VariableDeclaration","scope":8416,"src":"751:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8357,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8359,"nodeType":"VariableDeclarationStatement","src":"751:14:40"},{"body":{"id":8370,"nodeType":"Block","src":"793:57:40","statements":[{"expression":{"id":8364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"807:8:40","subExpression":{"id":8363,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"807:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8365,"nodeType":"ExpressionStatement","src":"807:8:40"},{"expression":{"id":8368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8366,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"829:4:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:2:40","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"829:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8369,"nodeType":"ExpressionStatement","src":"829:10:40"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8360,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"782:4:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"782:9:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8371,"nodeType":"WhileStatement","src":"775:75:40"},{"assignments":[8373],"declarations":[{"constant":false,"id":8373,"mutability":"mutable","name":"buffer","nameLocation":"872:6:40","nodeType":"VariableDeclaration","scope":8416,"src":"859:19:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8372,"name":"bytes","nodeType":"ElementaryTypeName","src":"859:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8378,"initialValue":{"arguments":[{"id":8376,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"891:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"881:9:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8374,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:17:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"859:39:40"},{"body":{"id":8409,"nodeType":"Block","src":"927:131:40","statements":[{"expression":{"id":8384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8382,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"941:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":8383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"941:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8385,"nodeType":"ExpressionStatement","src":"941:11:40"},{"expression":{"id":8403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8386,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8373,"src":"966:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8388,"indexExpression":{"id":8387,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"973:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"966:14:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":8393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:2:40","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8396,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"1009:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":8397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:2:40","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1009:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8394,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:40","typeDescriptions":{}}},"id":8399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1001:19:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"996:24:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"990:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8391,"name":"uint8","nodeType":"ElementaryTypeName","src":"990:5:40","typeDescriptions":{}}},"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"990:31:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"983:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8389,"name":"bytes1","nodeType":"ElementaryTypeName","src":"983:6:40","typeDescriptions":{}}},"id":8402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"983:39:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"966:56:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8404,"nodeType":"ExpressionStatement","src":"966:56:40"},{"expression":{"id":8407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"1036:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:40","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8408,"nodeType":"ExpressionStatement","src":"1036:11:40"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8379,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"915:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"924:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"915:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8410,"nodeType":"WhileStatement","src":"908:150:40"},{"expression":{"arguments":[{"id":8413,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8373,"src":"1081:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8411,"name":"string","nodeType":"ElementaryTypeName","src":"1074:6:40","typeDescriptions":{}}},"id":8414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8345,"id":8415,"nodeType":"Return","src":"1067:21:40"}]},"documentation":{"id":8339,"nodeType":"StructuredDocumentation","src":"297:90:40","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":8417,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"401:8:40","nodeType":"FunctionDefinition","parameters":{"id":8342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8341,"mutability":"mutable","name":"value","nameLocation":"418:5:40","nodeType":"VariableDeclaration","scope":8417,"src":"410:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8340,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:15:40"},"returnParameters":{"id":8345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8417,"src":"448:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8343,"name":"string","nodeType":"ElementaryTypeName","src":"448:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"447:15:40"},"scope":8555,"src":"392:703:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8457,"nodeType":"Block","src":"1274:255:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8425,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"1288:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1288:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8431,"nodeType":"IfStatement","src":"1284:54:40","trueBody":{"id":8430,"nodeType":"Block","src":"1300:38:40","statements":[{"expression":{"hexValue":"30783030","id":8428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1321:6:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":8424,"id":8429,"nodeType":"Return","src":"1314:13:40"}]}},{"assignments":[8433],"declarations":[{"constant":false,"id":8433,"mutability":"mutable","name":"temp","nameLocation":"1355:4:40","nodeType":"VariableDeclaration","scope":8457,"src":"1347:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8432,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8435,"initialValue":{"id":8434,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"1362:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1347:20:40"},{"assignments":[8437],"declarations":[{"constant":false,"id":8437,"mutability":"mutable","name":"length","nameLocation":"1385:6:40","nodeType":"VariableDeclaration","scope":8457,"src":"1377:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8436,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8439,"initialValue":{"hexValue":"30","id":8438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1377:18:40"},{"body":{"id":8450,"nodeType":"Block","src":"1423:57:40","statements":[{"expression":{"id":8444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1437:8:40","subExpression":{"id":8443,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8437,"src":"1437:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8445,"nodeType":"ExpressionStatement","src":"1437:8:40"},{"expression":{"id":8448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8446,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8433,"src":"1459:4:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":8447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1468:1:40","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1459:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8449,"nodeType":"ExpressionStatement","src":"1459:10:40"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8440,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8433,"src":"1412:4:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1420:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1412:9:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8451,"nodeType":"WhileStatement","src":"1405:75:40"},{"expression":{"arguments":[{"id":8453,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"1508:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8454,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8437,"src":"1515:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8452,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[8458,8534,8554],"referencedDeclaration":8534,"src":"1496:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":8455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1496:26:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8424,"id":8456,"nodeType":"Return","src":"1489:33:40"}]},"documentation":{"id":8418,"nodeType":"StructuredDocumentation","src":"1101:94:40","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":8458,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1209:11:40","nodeType":"FunctionDefinition","parameters":{"id":8421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8420,"mutability":"mutable","name":"value","nameLocation":"1229:5:40","nodeType":"VariableDeclaration","scope":8458,"src":"1221:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8419,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:15:40"},"returnParameters":{"id":8424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8458,"src":"1259:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8422,"name":"string","nodeType":"ElementaryTypeName","src":"1259:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:15:40"},"scope":8555,"src":"1200:329:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8533,"nodeType":"Block","src":"1742:351:40","statements":[{"assignments":[8469],"declarations":[{"constant":false,"id":8469,"mutability":"mutable","name":"buffer","nameLocation":"1765:6:40","nodeType":"VariableDeclaration","scope":8533,"src":"1752:19:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8468,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8478,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:1:40","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8473,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8463,"src":"1788:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":8475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:40","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1784:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1774:9:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8470,"name":"bytes","nodeType":"ElementaryTypeName","src":"1778:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:25:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1752:47:40"},{"expression":{"id":8483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8479,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"1809:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8481,"indexExpression":{"hexValue":"30","id":8480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1809:9:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:3:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1809:15:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8484,"nodeType":"ExpressionStatement","src":"1809:15:40"},{"expression":{"id":8489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8485,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"1834:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8487,"indexExpression":{"hexValue":"31","id":8486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1834:9:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":8488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1846:3:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1834:15:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8490,"nodeType":"ExpressionStatement","src":"1834:15:40"},{"body":{"id":8519,"nodeType":"Block","src":"1904:87:40","statements":[{"expression":{"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8505,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"1918:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8507,"indexExpression":{"id":8506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8492,"src":"1925:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:9:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":8508,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8335,"src":"1930:12:40","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":8512,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8509,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"1943:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":8510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:3:40","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1943:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:25:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1918:37:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8514,"nodeType":"ExpressionStatement","src":"1918:37:40"},{"expression":{"id":8517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"1969:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":8516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:40","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1969:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8518,"nodeType":"ExpressionStatement","src":"1969:11:40"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8492,"src":"1892:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":8500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1892:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8520,"initializationExpression":{"assignments":[8492],"declarations":[{"constant":false,"id":8492,"mutability":"mutable","name":"i","nameLocation":"1872:1:40","nodeType":"VariableDeclaration","scope":8520,"src":"1864:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8498,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:1:40","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8494,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8463,"src":"1880:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1876:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1876:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1864:26:40"},"loopExpression":{"expression":{"id":8503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1899:3:40","subExpression":{"id":8502,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8492,"src":"1901:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8504,"nodeType":"ExpressionStatement","src":"1899:3:40"},"nodeType":"ForStatement","src":"1859:132:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"2008:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2017:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2008:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":8525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:34:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":8521,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2000:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:55:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8527,"nodeType":"ExpressionStatement","src":"2000:55:40"},{"expression":{"arguments":[{"id":8530,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"2079:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8528,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:40","typeDescriptions":{}}},"id":8531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8467,"id":8532,"nodeType":"Return","src":"2065:21:40"}]},"documentation":{"id":8459,"nodeType":"StructuredDocumentation","src":"1535:112:40","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":8534,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1661:11:40","nodeType":"FunctionDefinition","parameters":{"id":8464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8461,"mutability":"mutable","name":"value","nameLocation":"1681:5:40","nodeType":"VariableDeclaration","scope":8534,"src":"1673:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8460,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8463,"mutability":"mutable","name":"length","nameLocation":"1696:6:40","nodeType":"VariableDeclaration","scope":8534,"src":"1688:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1672:31:40"},"returnParameters":{"id":8467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8534,"src":"1727:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8465,"name":"string","nodeType":"ElementaryTypeName","src":"1727:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1726:15:40"},"scope":8555,"src":"1652:441:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8553,"nodeType":"Block","src":"2318:76:40","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":8547,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2363:4:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2355:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8545,"name":"uint160","nodeType":"ElementaryTypeName","src":"2355:7:40","typeDescriptions":{}}},"id":8548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2355:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2347:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8543,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:40","typeDescriptions":{}}},"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2347:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8550,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"2371:15:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8542,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[8458,8534,8554],"referencedDeclaration":8534,"src":"2335:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":8551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2335:52:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8541,"id":8552,"nodeType":"Return","src":"2328:59:40"}]},"documentation":{"id":8535,"nodeType":"StructuredDocumentation","src":"2099:141:40","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":8554,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2254:11:40","nodeType":"FunctionDefinition","parameters":{"id":8538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8537,"mutability":"mutable","name":"addr","nameLocation":"2274:4:40","nodeType":"VariableDeclaration","scope":8554,"src":"2266:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8536,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2265:14:40"},"returnParameters":{"id":8541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8554,"src":"2303:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8539,"name":"string","nodeType":"ElementaryTypeName","src":"2303:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2302:15:40"},"scope":8555,"src":"2245:149:40","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8556,"src":"161:2235:40","usedErrors":[]}],"src":"101:2296:40"},"id":40},"@openzeppelin/contracts/utils/Timers.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Timers.sol","exportedSymbols":{"Timers":[8769]},"id":8770,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8557,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"85:23:41"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":8558,"nodeType":"StructuredDocumentation","src":"110:57:41","text":" @dev Tooling for timepoints, timers and delays"},"fullyImplemented":true,"id":8769,"linearizedBaseContracts":[8769],"name":"Timers","nameLocation":"176:6:41","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Timers.Timestamp","id":8561,"members":[{"constant":false,"id":8560,"mutability":"mutable","name":"_deadline","nameLocation":"223:9:41","nodeType":"VariableDeclaration","scope":8561,"src":"216:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8559,"name":"uint64","nodeType":"ElementaryTypeName","src":"216:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Timestamp","nameLocation":"196:9:41","nodeType":"StructDefinition","scope":8769,"src":"189:50:41","visibility":"public"},{"body":{"id":8572,"nodeType":"Block","src":"321:39:41","statements":[{"expression":{"expression":{"id":8569,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"338:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":8570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"338:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":8568,"id":8571,"nodeType":"Return","src":"331:22:41"}]},"id":8573,"implemented":true,"kind":"function","modifiers":[],"name":"getDeadline","nameLocation":"254:11:41","nodeType":"FunctionDefinition","parameters":{"id":8565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8564,"mutability":"mutable","name":"timer","nameLocation":"283:5:41","nodeType":"VariableDeclaration","scope":8573,"src":"266:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":8563,"nodeType":"UserDefinedTypeName","pathNode":{"id":8562,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":8561,"src":"266:9:41"},"referencedDeclaration":8561,"src":"266:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"265:24:41"},"returnParameters":{"id":8568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8573,"src":"313:6:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8566,"name":"uint64","nodeType":"ElementaryTypeName","src":"313:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"312:8:41"},"scope":8769,"src":"245:115:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8587,"nodeType":"Block","src":"439:44:41","statements":[{"expression":{"id":8585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8581,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"449:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp storage pointer"}},"id":8583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"449:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8584,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8578,"src":"467:9:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"449:27:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8586,"nodeType":"ExpressionStatement","src":"449:27:41"}]},"id":8588,"implemented":true,"kind":"function","modifiers":[],"name":"setDeadline","nameLocation":"375:11:41","nodeType":"FunctionDefinition","parameters":{"id":8579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8576,"mutability":"mutable","name":"timer","nameLocation":"405:5:41","nodeType":"VariableDeclaration","scope":8588,"src":"387:23:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":8575,"nodeType":"UserDefinedTypeName","pathNode":{"id":8574,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":8561,"src":"387:9:41"},"referencedDeclaration":8561,"src":"387:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"},{"constant":false,"id":8578,"mutability":"mutable","name":"timestamp","nameLocation":"419:9:41","nodeType":"VariableDeclaration","scope":8588,"src":"412:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8577,"name":"uint64","nodeType":"ElementaryTypeName","src":"412:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"386:43:41"},"returnParameters":{"id":8580,"nodeType":"ParameterList","parameters":[],"src":"439:0:41"},"scope":8769,"src":"366:117:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8600,"nodeType":"Block","src":"538:36:41","statements":[{"expression":{"id":8598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8594,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"548:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp storage pointer"}},"id":8596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"548:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"566:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"548:19:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8599,"nodeType":"ExpressionStatement","src":"548:19:41"}]},"id":8601,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"498:5:41","nodeType":"FunctionDefinition","parameters":{"id":8592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8591,"mutability":"mutable","name":"timer","nameLocation":"522:5:41","nodeType":"VariableDeclaration","scope":8601,"src":"504:23:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":8590,"nodeType":"UserDefinedTypeName","pathNode":{"id":8589,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":8561,"src":"504:9:41"},"referencedDeclaration":8561,"src":"504:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"503:25:41"},"returnParameters":{"id":8593,"nodeType":"ParameterList","parameters":[],"src":"538:0:41"},"scope":8769,"src":"489:85:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8614,"nodeType":"Block","src":"650:44:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8609,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"667:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":8610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"667:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"686:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"667:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8608,"id":8613,"nodeType":"Return","src":"660:27:41"}]},"id":8615,"implemented":true,"kind":"function","modifiers":[],"name":"isUnset","nameLocation":"589:7:41","nodeType":"FunctionDefinition","parameters":{"id":8605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8604,"mutability":"mutable","name":"timer","nameLocation":"614:5:41","nodeType":"VariableDeclaration","scope":8615,"src":"597:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":8603,"nodeType":"UserDefinedTypeName","pathNode":{"id":8602,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":8561,"src":"597:9:41"},"referencedDeclaration":8561,"src":"597:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"596:24:41"},"returnParameters":{"id":8608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8615,"src":"644:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8606,"name":"bool","nodeType":"ElementaryTypeName","src":"644:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"643:6:41"},"scope":8769,"src":"580:114:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8628,"nodeType":"Block","src":"772:43:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8623,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8618,"src":"789:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":8624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"789:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"807:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"789:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8622,"id":8627,"nodeType":"Return","src":"782:26:41"}]},"id":8629,"implemented":true,"kind":"function","modifiers":[],"name":"isStarted","nameLocation":"709:9:41","nodeType":"FunctionDefinition","parameters":{"id":8619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8618,"mutability":"mutable","name":"timer","nameLocation":"736:5:41","nodeType":"VariableDeclaration","scope":8629,"src":"719:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":8617,"nodeType":"UserDefinedTypeName","pathNode":{"id":8616,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":8561,"src":"719:9:41"},"referencedDeclaration":8561,"src":"719:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"718:24:41"},"returnParameters":{"id":8622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8629,"src":"766:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8620,"name":"bool","nodeType":"ElementaryTypeName","src":"766:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"765:6:41"},"scope":8769,"src":"700:115:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8643,"nodeType":"Block","src":"893:57:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8637,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8632,"src":"910:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":8638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"910:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":8639,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"928:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"928:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"910:33:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8636,"id":8642,"nodeType":"Return","src":"903:40:41"}]},"id":8644,"implemented":true,"kind":"function","modifiers":[],"name":"isPending","nameLocation":"830:9:41","nodeType":"FunctionDefinition","parameters":{"id":8633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8632,"mutability":"mutable","name":"timer","nameLocation":"857:5:41","nodeType":"VariableDeclaration","scope":8644,"src":"840:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":8631,"nodeType":"UserDefinedTypeName","pathNode":{"id":8630,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":8561,"src":"840:9:41"},"referencedDeclaration":8561,"src":"840:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"839:24:41"},"returnParameters":{"id":8636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8644,"src":"887:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8634,"name":"bool","nodeType":"ElementaryTypeName","src":"887:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"886:6:41"},"scope":8769,"src":"821:129:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8662,"nodeType":"Block","src":"1028:78:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8653,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"1055:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp memory"}],"id":8652,"name":"isStarted","nodeType":"Identifier","overloadedDeclarations":[8629,8734],"referencedDeclaration":8629,"src":"1045:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Timestamp_$8561_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Timers.Timestamp memory) pure returns (bool)"}},"id":8654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1045:16:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8655,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"1065:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":8656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"1065:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":8657,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1084:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"1084:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1065:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1045:54:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8651,"id":8661,"nodeType":"Return","src":"1038:61:41"}]},"id":8663,"implemented":true,"kind":"function","modifiers":[],"name":"isExpired","nameLocation":"965:9:41","nodeType":"FunctionDefinition","parameters":{"id":8648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8647,"mutability":"mutable","name":"timer","nameLocation":"992:5:41","nodeType":"VariableDeclaration","scope":8663,"src":"975:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":8646,"nodeType":"UserDefinedTypeName","pathNode":{"id":8645,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":8561,"src":"975:9:41"},"referencedDeclaration":8561,"src":"975:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$8561_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"974:24:41"},"returnParameters":{"id":8651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8663,"src":"1022:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8649,"name":"bool","nodeType":"ElementaryTypeName","src":"1022:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1021:6:41"},"scope":8769,"src":"956:150:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"Timers.BlockNumber","id":8666,"members":[{"constant":false,"id":8665,"mutability":"mutable","name":"_deadline","nameLocation":"1148:9:41","nodeType":"VariableDeclaration","scope":8666,"src":"1141:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8664,"name":"uint64","nodeType":"ElementaryTypeName","src":"1141:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"BlockNumber","nameLocation":"1119:11:41","nodeType":"StructDefinition","scope":8769,"src":"1112:52:41","visibility":"public"},{"body":{"id":8677,"nodeType":"Block","src":"1248:39:41","statements":[{"expression":{"expression":{"id":8674,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8669,"src":"1265:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":8675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8665,"src":"1265:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":8673,"id":8676,"nodeType":"Return","src":"1258:22:41"}]},"id":8678,"implemented":true,"kind":"function","modifiers":[],"name":"getDeadline","nameLocation":"1179:11:41","nodeType":"FunctionDefinition","parameters":{"id":8670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8669,"mutability":"mutable","name":"timer","nameLocation":"1210:5:41","nodeType":"VariableDeclaration","scope":8678,"src":"1191:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":8668,"nodeType":"UserDefinedTypeName","pathNode":{"id":8667,"name":"BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1191:11:41"},"referencedDeclaration":8666,"src":"1191:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1190:26:41"},"returnParameters":{"id":8673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8678,"src":"1240:6:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8671,"name":"uint64","nodeType":"ElementaryTypeName","src":"1240:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1239:8:41"},"scope":8769,"src":"1170:117:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8692,"nodeType":"Block","src":"1368:44:41","statements":[{"expression":{"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8686,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8681,"src":"1378:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber storage pointer"}},"id":8688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8665,"src":"1378:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8689,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8683,"src":"1396:9:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1378:27:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8691,"nodeType":"ExpressionStatement","src":"1378:27:41"}]},"id":8693,"implemented":true,"kind":"function","modifiers":[],"name":"setDeadline","nameLocation":"1302:11:41","nodeType":"FunctionDefinition","parameters":{"id":8684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8681,"mutability":"mutable","name":"timer","nameLocation":"1334:5:41","nodeType":"VariableDeclaration","scope":8693,"src":"1314:25:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":8680,"nodeType":"UserDefinedTypeName","pathNode":{"id":8679,"name":"BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1314:11:41"},"referencedDeclaration":8666,"src":"1314:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"},{"constant":false,"id":8683,"mutability":"mutable","name":"timestamp","nameLocation":"1348:9:41","nodeType":"VariableDeclaration","scope":8693,"src":"1341:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8682,"name":"uint64","nodeType":"ElementaryTypeName","src":"1341:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1313:45:41"},"returnParameters":{"id":8685,"nodeType":"ParameterList","parameters":[],"src":"1368:0:41"},"scope":8769,"src":"1293:119:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8705,"nodeType":"Block","src":"1469:36:41","statements":[{"expression":{"id":8703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8699,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"1479:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber storage pointer"}},"id":8701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8665,"src":"1479:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1497:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1479:19:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":8704,"nodeType":"ExpressionStatement","src":"1479:19:41"}]},"id":8706,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1427:5:41","nodeType":"FunctionDefinition","parameters":{"id":8697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8696,"mutability":"mutable","name":"timer","nameLocation":"1453:5:41","nodeType":"VariableDeclaration","scope":8706,"src":"1433:25:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":8695,"nodeType":"UserDefinedTypeName","pathNode":{"id":8694,"name":"BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1433:11:41"},"referencedDeclaration":8666,"src":"1433:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1432:27:41"},"returnParameters":{"id":8698,"nodeType":"ParameterList","parameters":[],"src":"1469:0:41"},"scope":8769,"src":"1418:87:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8719,"nodeType":"Block","src":"1583:44:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8714,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8709,"src":"1600:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":8715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8665,"src":"1600:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1619:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1600:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8713,"id":8718,"nodeType":"Return","src":"1593:27:41"}]},"id":8720,"implemented":true,"kind":"function","modifiers":[],"name":"isUnset","nameLocation":"1520:7:41","nodeType":"FunctionDefinition","parameters":{"id":8710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8709,"mutability":"mutable","name":"timer","nameLocation":"1547:5:41","nodeType":"VariableDeclaration","scope":8720,"src":"1528:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":8708,"nodeType":"UserDefinedTypeName","pathNode":{"id":8707,"name":"BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1528:11:41"},"referencedDeclaration":8666,"src":"1528:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1527:26:41"},"returnParameters":{"id":8713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8720,"src":"1577:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8711,"name":"bool","nodeType":"ElementaryTypeName","src":"1577:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1576:6:41"},"scope":8769,"src":"1511:116:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8733,"nodeType":"Block","src":"1707:43:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":8731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8728,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"1724:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":8729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8665,"src":"1724:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1742:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1724:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8727,"id":8732,"nodeType":"Return","src":"1717:26:41"}]},"id":8734,"implemented":true,"kind":"function","modifiers":[],"name":"isStarted","nameLocation":"1642:9:41","nodeType":"FunctionDefinition","parameters":{"id":8724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8723,"mutability":"mutable","name":"timer","nameLocation":"1671:5:41","nodeType":"VariableDeclaration","scope":8734,"src":"1652:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":8722,"nodeType":"UserDefinedTypeName","pathNode":{"id":8721,"name":"BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1652:11:41"},"referencedDeclaration":8666,"src":"1652:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1651:26:41"},"returnParameters":{"id":8727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8734,"src":"1701:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8725,"name":"bool","nodeType":"ElementaryTypeName","src":"1701:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1700:6:41"},"scope":8769,"src":"1633:117:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8748,"nodeType":"Block","src":"1830:54:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8742,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8737,"src":"1847:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":8743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8665,"src":"1847:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":8744,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1865:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"1865:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1847:30:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8741,"id":8747,"nodeType":"Return","src":"1840:37:41"}]},"id":8749,"implemented":true,"kind":"function","modifiers":[],"name":"isPending","nameLocation":"1765:9:41","nodeType":"FunctionDefinition","parameters":{"id":8738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8737,"mutability":"mutable","name":"timer","nameLocation":"1794:5:41","nodeType":"VariableDeclaration","scope":8749,"src":"1775:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":8736,"nodeType":"UserDefinedTypeName","pathNode":{"id":8735,"name":"BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1775:11:41"},"referencedDeclaration":8666,"src":"1775:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1774:26:41"},"returnParameters":{"id":8741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8749,"src":"1824:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8739,"name":"bool","nodeType":"ElementaryTypeName","src":"1824:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1823:6:41"},"scope":8769,"src":"1756:128:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8767,"nodeType":"Block","src":"1964:75:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8758,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"1991:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber memory"}],"id":8757,"name":"isStarted","nodeType":"Identifier","overloadedDeclarations":[8629,8734],"referencedDeclaration":8734,"src":"1981:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$8666_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (bool)"}},"id":8759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1981:16:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8760,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"2001:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":8761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":8665,"src":"2001:15:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":8762,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2020:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"2020:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2001:31:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1981:51:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8756,"id":8766,"nodeType":"Return","src":"1974:58:41"}]},"id":8768,"implemented":true,"kind":"function","modifiers":[],"name":"isExpired","nameLocation":"1899:9:41","nodeType":"FunctionDefinition","parameters":{"id":8753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8752,"mutability":"mutable","name":"timer","nameLocation":"1928:5:41","nodeType":"VariableDeclaration","scope":8768,"src":"1909:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":8751,"nodeType":"UserDefinedTypeName","pathNode":{"id":8750,"name":"BlockNumber","nodeType":"IdentifierPath","referencedDeclaration":8666,"src":"1909:11:41"},"referencedDeclaration":8666,"src":"1909:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$8666_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1908:26:41"},"returnParameters":{"id":8756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8768,"src":"1958:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8754,"name":"bool","nodeType":"ElementaryTypeName","src":"1958:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1957:6:41"},"scope":8769,"src":"1890:149:41","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":8770,"src":"168:1873:41","usedErrors":[]}],"src":"85:1957:41"},"id":41},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[9157],"Strings":[8555]},"id":9158,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8771,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:42"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":8772,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9158,"sourceUnit":8556,"src":"137:24:42","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":8773,"nodeType":"StructuredDocumentation","src":"163:205:42","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":9157,"linearizedBaseContracts":[9157],"name":"ECDSA","nameLocation":"377:5:42","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":8779,"members":[{"id":8774,"name":"NoError","nameLocation":"417:7:42","nodeType":"EnumValue","src":"417:7:42"},{"id":8775,"name":"InvalidSignature","nameLocation":"434:16:42","nodeType":"EnumValue","src":"434:16:42"},{"id":8776,"name":"InvalidSignatureLength","nameLocation":"460:22:42","nodeType":"EnumValue","src":"460:22:42"},{"id":8777,"name":"InvalidSignatureS","nameLocation":"492:17:42","nodeType":"EnumValue","src":"492:17:42"},{"id":8778,"name":"InvalidSignatureV","nameLocation":"519:17:42","nodeType":"EnumValue","src":"519:17:42"}],"name":"RecoverError","nameLocation":"394:12:42","nodeType":"EnumDefinition","src":"389:153:42"},{"body":{"id":8832,"nodeType":"Block","src":"602:577:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"id":8788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8785,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8782,"src":"616:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8786,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"625:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":8787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":8774,"src":"625:20:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"src":"616:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8791,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8782,"src":"712:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8792,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"721:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":8793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":8775,"src":"721:29:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"src":"712:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"id":8803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8800,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8782,"src":"821:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8801,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"830:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":8802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":8776,"src":"830:35:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"src":"821:44:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"id":8812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8809,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8782,"src":"943:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8810,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"952:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":8811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":8777,"src":"952:30:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"src":"943:39:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"id":8821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8818,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8782,"src":"1063:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8819,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"1072:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":8820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureV","nodeType":"MemberAccess","referencedDeclaration":8778,"src":"1072:30:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"src":"1063:39:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8827,"nodeType":"IfStatement","src":"1059:114:42","trueBody":{"id":8826,"nodeType":"Block","src":"1104:69:42","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202776272076616c7565","id":8823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1125:36:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4","typeString":"literal_string \"ECDSA: invalid signature 'v' value\""},"value":"ECDSA: invalid signature 'v' value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4","typeString":"literal_string \"ECDSA: invalid signature 'v' value\""}],"id":8822,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1118:6:42","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1118:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8825,"nodeType":"ExpressionStatement","src":"1118:44:42"}]}},"id":8828,"nodeType":"IfStatement","src":"939:234:42","trueBody":{"id":8817,"nodeType":"Block","src":"984:69:42","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c7565","id":8814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1005:36:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""},"value":"ECDSA: invalid signature 's' value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""}],"id":8813,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"998:6:42","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"998:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8816,"nodeType":"ExpressionStatement","src":"998:44:42"}]}},"id":8829,"nodeType":"IfStatement","src":"817:356:42","trueBody":{"id":8808,"nodeType":"Block","src":"867:66:42","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","id":8805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"888:33:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""},"value":"ECDSA: invalid signature length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""}],"id":8804,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"881:6:42","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8807,"nodeType":"ExpressionStatement","src":"881:41:42"}]}},"id":8830,"nodeType":"IfStatement","src":"708:465:42","trueBody":{"id":8799,"nodeType":"Block","src":"752:59:42","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","id":8796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"773:26:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""},"value":"ECDSA: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""}],"id":8795,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"766:6:42","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"766:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8798,"nodeType":"ExpressionStatement","src":"766:34:42"}]}},"id":8831,"nodeType":"IfStatement","src":"612:561:42","trueBody":{"id":8790,"nodeType":"Block","src":"647:55:42","statements":[{"functionReturnParameters":8784,"id":8789,"nodeType":"Return","src":"661:7:42"}]}}]},"id":8833,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"557:11:42","nodeType":"FunctionDefinition","parameters":{"id":8783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8782,"mutability":"mutable","name":"error","nameLocation":"582:5:42","nodeType":"VariableDeclaration","scope":8833,"src":"569:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":8781,"nodeType":"UserDefinedTypeName","pathNode":{"id":8780,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":8779,"src":"569:12:42"},"referencedDeclaration":8779,"src":"569:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"568:20:42"},"returnParameters":{"id":8784,"nodeType":"ParameterList","parameters":[],"src":"602:0:42"},"scope":9157,"src":"548:631:42","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":8878,"nodeType":"Block","src":"2347:626:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8846,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8838,"src":"2361:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2361:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":8848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2381:2:42","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2361:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8876,"nodeType":"Block","src":"2886:81:42","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":8870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2916:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2908:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8868,"name":"address","nodeType":"ElementaryTypeName","src":"2908:7:42","typeDescriptions":{}}},"id":8871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2908:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8872,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"2920:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":8873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":8776,"src":"2920:35:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"id":8874,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2907:49:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":8845,"id":8875,"nodeType":"Return","src":"2900:56:42"}]},"id":8877,"nodeType":"IfStatement","src":"2357:610:42","trueBody":{"id":8867,"nodeType":"Block","src":"2385:495:42","statements":[{"assignments":[8851],"declarations":[{"constant":false,"id":8851,"mutability":"mutable","name":"r","nameLocation":"2407:1:42","nodeType":"VariableDeclaration","scope":8867,"src":"2399:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2399:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8852,"nodeType":"VariableDeclarationStatement","src":"2399:9:42"},{"assignments":[8854],"declarations":[{"constant":false,"id":8854,"mutability":"mutable","name":"s","nameLocation":"2430:1:42","nodeType":"VariableDeclaration","scope":8867,"src":"2422:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2422:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8855,"nodeType":"VariableDeclarationStatement","src":"2422:9:42"},{"assignments":[8857],"declarations":[{"constant":false,"id":8857,"mutability":"mutable","name":"v","nameLocation":"2451:1:42","nodeType":"VariableDeclaration","scope":8867,"src":"2445:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8856,"name":"uint8","nodeType":"ElementaryTypeName","src":"2445:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":8858,"nodeType":"VariableDeclarationStatement","src":"2445:7:42"},{"AST":{"nodeType":"YulBlock","src":"2653:171:42","statements":[{"nodeType":"YulAssignment","src":"2671:32:42","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2686:9:42"},{"kind":"number","nodeType":"YulLiteral","src":"2697:4:42","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2682:3:42"},"nodeType":"YulFunctionCall","src":"2682:20:42"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2676:5:42"},"nodeType":"YulFunctionCall","src":"2676:27:42"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2671:1:42"}]},{"nodeType":"YulAssignment","src":"2720:32:42","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2735:9:42"},{"kind":"number","nodeType":"YulLiteral","src":"2746:4:42","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2731:3:42"},"nodeType":"YulFunctionCall","src":"2731:20:42"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2725:5:42"},"nodeType":"YulFunctionCall","src":"2725:27:42"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2720:1:42"}]},{"nodeType":"YulAssignment","src":"2769:41:42","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2779:1:42","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2792:9:42"},{"kind":"number","nodeType":"YulLiteral","src":"2803:4:42","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2788:3:42"},"nodeType":"YulFunctionCall","src":"2788:20:42"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2782:5:42"},"nodeType":"YulFunctionCall","src":"2782:27:42"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2774:4:42"},"nodeType":"YulFunctionCall","src":"2774:36:42"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2769:1:42"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":8851,"isOffset":false,"isSlot":false,"src":"2671:1:42","valueSize":1},{"declaration":8854,"isOffset":false,"isSlot":false,"src":"2720:1:42","valueSize":1},{"declaration":8838,"isOffset":false,"isSlot":false,"src":"2686:9:42","valueSize":1},{"declaration":8838,"isOffset":false,"isSlot":false,"src":"2735:9:42","valueSize":1},{"declaration":8838,"isOffset":false,"isSlot":false,"src":"2792:9:42","valueSize":1},{"declaration":8857,"isOffset":false,"isSlot":false,"src":"2769:1:42","valueSize":1}],"id":8859,"nodeType":"InlineAssembly","src":"2644:180:42"},{"expression":{"arguments":[{"id":8861,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8836,"src":"2855:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8862,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8857,"src":"2861:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":8863,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8851,"src":"2864:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8864,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8854,"src":"2867:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8860,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[8879,8953,9064],"referencedDeclaration":9064,"src":"2844:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":8865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2844:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":8845,"id":8866,"nodeType":"Return","src":"2837:32:42"}]}}]},"documentation":{"id":8834,"nodeType":"StructuredDocumentation","src":"1185:1053:42","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"id":8879,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2252:10:42","nodeType":"FunctionDefinition","parameters":{"id":8839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8836,"mutability":"mutable","name":"hash","nameLocation":"2271:4:42","nodeType":"VariableDeclaration","scope":8879,"src":"2263:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2263:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8838,"mutability":"mutable","name":"signature","nameLocation":"2290:9:42","nodeType":"VariableDeclaration","scope":8879,"src":"2277:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8837,"name":"bytes","nodeType":"ElementaryTypeName","src":"2277:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2262:38:42"},"returnParameters":{"id":8845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8879,"src":"2324:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8840,"name":"address","nodeType":"ElementaryTypeName","src":"2324:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8879,"src":"2333:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":8843,"nodeType":"UserDefinedTypeName","pathNode":{"id":8842,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":8779,"src":"2333:12:42"},"referencedDeclaration":8779,"src":"2333:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"2323:23:42"},"scope":9157,"src":"2243:730:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8905,"nodeType":"Block","src":"3846:140:42","statements":[{"assignments":[8890,8893],"declarations":[{"constant":false,"id":8890,"mutability":"mutable","name":"recovered","nameLocation":"3865:9:42","nodeType":"VariableDeclaration","scope":8905,"src":"3857:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8889,"name":"address","nodeType":"ElementaryTypeName","src":"3857:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8893,"mutability":"mutable","name":"error","nameLocation":"3889:5:42","nodeType":"VariableDeclaration","scope":8905,"src":"3876:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":8892,"nodeType":"UserDefinedTypeName","pathNode":{"id":8891,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":8779,"src":"3876:12:42"},"referencedDeclaration":8779,"src":"3876:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":8898,"initialValue":{"arguments":[{"id":8895,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8882,"src":"3909:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8896,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8884,"src":"3915:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8894,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[8879,8953,9064],"referencedDeclaration":8879,"src":"3898:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":8897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"3856:69:42"},{"expression":{"arguments":[{"id":8900,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8893,"src":"3947:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}],"id":8899,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8833,"src":"3935:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$8779_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":8901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3935:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8902,"nodeType":"ExpressionStatement","src":"3935:18:42"},{"expression":{"id":8903,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8890,"src":"3970:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8888,"id":8904,"nodeType":"Return","src":"3963:16:42"}]},"documentation":{"id":8880,"nodeType":"StructuredDocumentation","src":"2979:775:42","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"id":8906,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3768:7:42","nodeType":"FunctionDefinition","parameters":{"id":8885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8882,"mutability":"mutable","name":"hash","nameLocation":"3784:4:42","nodeType":"VariableDeclaration","scope":8906,"src":"3776:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8881,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3776:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8884,"mutability":"mutable","name":"signature","nameLocation":"3803:9:42","nodeType":"VariableDeclaration","scope":8906,"src":"3790:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8883,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:38:42"},"returnParameters":{"id":8888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8906,"src":"3837:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8886,"name":"address","nodeType":"ElementaryTypeName","src":"3837:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3836:9:42"},"scope":9157,"src":"3759:227:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8952,"nodeType":"Block","src":"4373:203:42","statements":[{"assignments":[8922],"declarations":[{"constant":false,"id":8922,"mutability":"mutable","name":"s","nameLocation":"4391:1:42","nodeType":"VariableDeclaration","scope":8952,"src":"4383:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8921,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4383:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8929,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8923,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8913,"src":"4395:2:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":8926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408:66:42","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":8925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4400:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4400:7:42","typeDescriptions":{}}},"id":8927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4400:75:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4395:80:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4383:92:42"},{"assignments":[8931],"declarations":[{"constant":false,"id":8931,"mutability":"mutable","name":"v","nameLocation":"4491:1:42","nodeType":"VariableDeclaration","scope":8952,"src":"4485:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8930,"name":"uint8","nodeType":"ElementaryTypeName","src":"4485:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":8944,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8936,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8913,"src":"4510:2:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4502:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8934,"name":"uint256","nodeType":"ElementaryTypeName","src":"4502:7:42","typeDescriptions":{}}},"id":8937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4502:11:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":8938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4517:3:42","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4502:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8940,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4501:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":8941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4524:2:42","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4501:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4495:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8932,"name":"uint8","nodeType":"ElementaryTypeName","src":"4495:5:42","typeDescriptions":{}}},"id":8943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4495:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4485:42:42"},{"expression":{"arguments":[{"id":8946,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8909,"src":"4555:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8947,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8931,"src":"4561:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":8948,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8911,"src":"4564:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8949,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8922,"src":"4567:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8945,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[8879,8953,9064],"referencedDeclaration":9064,"src":"4544:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":8950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4544:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":8920,"id":8951,"nodeType":"Return","src":"4537:32:42"}]},"documentation":{"id":8907,"nodeType":"StructuredDocumentation","src":"3992:243:42","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"id":8953,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4249:10:42","nodeType":"FunctionDefinition","parameters":{"id":8914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8909,"mutability":"mutable","name":"hash","nameLocation":"4277:4:42","nodeType":"VariableDeclaration","scope":8953,"src":"4269:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4269:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8911,"mutability":"mutable","name":"r","nameLocation":"4299:1:42","nodeType":"VariableDeclaration","scope":8953,"src":"4291:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4291:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8913,"mutability":"mutable","name":"vs","nameLocation":"4318:2:42","nodeType":"VariableDeclaration","scope":8953,"src":"4310:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4310:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4259:67:42"},"returnParameters":{"id":8920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8953,"src":"4350:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8915,"name":"address","nodeType":"ElementaryTypeName","src":"4350:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8953,"src":"4359:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":8918,"nodeType":"UserDefinedTypeName","pathNode":{"id":8917,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":8779,"src":"4359:12:42"},"referencedDeclaration":8779,"src":"4359:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"4349:23:42"},"scope":9157,"src":"4240:336:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8982,"nodeType":"Block","src":"4857:136:42","statements":[{"assignments":[8966,8969],"declarations":[{"constant":false,"id":8966,"mutability":"mutable","name":"recovered","nameLocation":"4876:9:42","nodeType":"VariableDeclaration","scope":8982,"src":"4868:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8965,"name":"address","nodeType":"ElementaryTypeName","src":"4868:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8969,"mutability":"mutable","name":"error","nameLocation":"4900:5:42","nodeType":"VariableDeclaration","scope":8982,"src":"4887:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":8968,"nodeType":"UserDefinedTypeName","pathNode":{"id":8967,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":8779,"src":"4887:12:42"},"referencedDeclaration":8779,"src":"4887:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":8975,"initialValue":{"arguments":[{"id":8971,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"4920:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8972,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8958,"src":"4926:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8973,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"4929:2:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8970,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[8879,8953,9064],"referencedDeclaration":8953,"src":"4909:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":8974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4909:23:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"4867:65:42"},{"expression":{"arguments":[{"id":8977,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8969,"src":"4954:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}],"id":8976,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8833,"src":"4942:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$8779_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":8978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4942:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8979,"nodeType":"ExpressionStatement","src":"4942:18:42"},{"expression":{"id":8980,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8966,"src":"4977:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8964,"id":8981,"nodeType":"Return","src":"4970:16:42"}]},"documentation":{"id":8954,"nodeType":"StructuredDocumentation","src":"4582:154:42","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"id":8983,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4750:7:42","nodeType":"FunctionDefinition","parameters":{"id":8961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8956,"mutability":"mutable","name":"hash","nameLocation":"4775:4:42","nodeType":"VariableDeclaration","scope":8983,"src":"4767:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4767:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8958,"mutability":"mutable","name":"r","nameLocation":"4797:1:42","nodeType":"VariableDeclaration","scope":8983,"src":"4789:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4789:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8960,"mutability":"mutable","name":"vs","nameLocation":"4816:2:42","nodeType":"VariableDeclaration","scope":8983,"src":"4808:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4808:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4757:67:42"},"returnParameters":{"id":8964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8983,"src":"4848:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8962,"name":"address","nodeType":"ElementaryTypeName","src":"4848:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4847:9:42"},"scope":9157,"src":"4741:252:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9063,"nodeType":"Block","src":"5316:1454:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9002,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8992,"src":"6212:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6204:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9000,"name":"uint256","nodeType":"ElementaryTypeName","src":"6204:7:42","typeDescriptions":{}}},"id":9003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6204:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":9004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6217:66:42","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6204:79:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9015,"nodeType":"IfStatement","src":"6200:161:42","trueBody":{"id":9014,"nodeType":"Block","src":"6285:76:42","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":9008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6315:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6307:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9006,"name":"address","nodeType":"ElementaryTypeName","src":"6307:7:42","typeDescriptions":{}}},"id":9009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6307:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9010,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"6319:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":9011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":8777,"src":"6319:30:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"id":9012,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6306:44:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":8999,"id":9013,"nodeType":"Return","src":"6299:51:42"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9016,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8988,"src":"6374:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3237","id":9017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6379:2:42","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"6374:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9019,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8988,"src":"6385:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3238","id":9020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6390:2:42","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"6385:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6374:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9032,"nodeType":"IfStatement","src":"6370:100:42","trueBody":{"id":9031,"nodeType":"Block","src":"6394:76:42","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":9025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6424:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6416:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9023,"name":"address","nodeType":"ElementaryTypeName","src":"6416:7:42","typeDescriptions":{}}},"id":9026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6416:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9027,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"6428:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":9028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureV","nodeType":"MemberAccess","referencedDeclaration":8778,"src":"6428:30:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"id":9029,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6415:44:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":8999,"id":9030,"nodeType":"Return","src":"6408:51:42"}]}},{"assignments":[9034],"declarations":[{"constant":false,"id":9034,"mutability":"mutable","name":"signer","nameLocation":"6572:6:42","nodeType":"VariableDeclaration","scope":9063,"src":"6564:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9033,"name":"address","nodeType":"ElementaryTypeName","src":"6564:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9041,"initialValue":{"arguments":[{"id":9036,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8986,"src":"6591:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9037,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8988,"src":"6597:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9038,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8990,"src":"6600:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9039,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8992,"src":"6603:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9035,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6581:9:42","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":9040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6581:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6564:41:42"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9042,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9034,"src":"6619:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":9045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6637:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6629:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9043,"name":"address","nodeType":"ElementaryTypeName","src":"6629:7:42","typeDescriptions":{}}},"id":9046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6629:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6619:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9057,"nodeType":"IfStatement","src":"6615:101:42","trueBody":{"id":9056,"nodeType":"Block","src":"6641:75:42","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":9050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6671:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6663:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9048,"name":"address","nodeType":"ElementaryTypeName","src":"6663:7:42","typeDescriptions":{}}},"id":9051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6663:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9052,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"6675:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":9053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":8775,"src":"6675:29:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"id":9054,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6662:43:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":8999,"id":9055,"nodeType":"Return","src":"6655:50:42"}]}},{"expression":{"components":[{"id":9058,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9034,"src":"6734:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9059,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"6742:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$8779_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":9060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":8774,"src":"6742:20:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"id":9061,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6733:30:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":8999,"id":9062,"nodeType":"Return","src":"6726:37:42"}]},"documentation":{"id":8984,"nodeType":"StructuredDocumentation","src":"4999:163:42","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"id":9064,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5176:10:42","nodeType":"FunctionDefinition","parameters":{"id":8993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8986,"mutability":"mutable","name":"hash","nameLocation":"5204:4:42","nodeType":"VariableDeclaration","scope":9064,"src":"5196:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5196:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8988,"mutability":"mutable","name":"v","nameLocation":"5224:1:42","nodeType":"VariableDeclaration","scope":9064,"src":"5218:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8987,"name":"uint8","nodeType":"ElementaryTypeName","src":"5218:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8990,"mutability":"mutable","name":"r","nameLocation":"5243:1:42","nodeType":"VariableDeclaration","scope":9064,"src":"5235:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5235:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8992,"mutability":"mutable","name":"s","nameLocation":"5262:1:42","nodeType":"VariableDeclaration","scope":9064,"src":"5254:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5254:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5186:83:42"},"returnParameters":{"id":8999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9064,"src":"5293:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8994,"name":"address","nodeType":"ElementaryTypeName","src":"5293:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8998,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9064,"src":"5302:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":8997,"nodeType":"UserDefinedTypeName","pathNode":{"id":8996,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":8779,"src":"5302:12:42"},"referencedDeclaration":8779,"src":"5302:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"5292:23:42"},"scope":9157,"src":"5167:1603:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9096,"nodeType":"Block","src":"7035:138:42","statements":[{"assignments":[9079,9082],"declarations":[{"constant":false,"id":9079,"mutability":"mutable","name":"recovered","nameLocation":"7054:9:42","nodeType":"VariableDeclaration","scope":9096,"src":"7046:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9078,"name":"address","nodeType":"ElementaryTypeName","src":"7046:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9082,"mutability":"mutable","name":"error","nameLocation":"7078:5:42","nodeType":"VariableDeclaration","scope":9096,"src":"7065:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":9081,"nodeType":"UserDefinedTypeName","pathNode":{"id":9080,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":8779,"src":"7065:12:42"},"referencedDeclaration":8779,"src":"7065:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":9089,"initialValue":{"arguments":[{"id":9084,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9067,"src":"7098:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9085,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9069,"src":"7104:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9086,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9071,"src":"7107:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9087,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9073,"src":"7110:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9083,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[8879,8953,9064],"referencedDeclaration":9064,"src":"7087:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":9088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7087:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$8779_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"7045:67:42"},{"expression":{"arguments":[{"id":9091,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9082,"src":"7134:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$8779","typeString":"enum ECDSA.RecoverError"}],"id":9090,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8833,"src":"7122:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$8779_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":9092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7122:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9093,"nodeType":"ExpressionStatement","src":"7122:18:42"},{"expression":{"id":9094,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9079,"src":"7157:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9077,"id":9095,"nodeType":"Return","src":"7150:16:42"}]},"documentation":{"id":9065,"nodeType":"StructuredDocumentation","src":"6776:122:42","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":9097,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6912:7:42","nodeType":"FunctionDefinition","parameters":{"id":9074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9067,"mutability":"mutable","name":"hash","nameLocation":"6937:4:42","nodeType":"VariableDeclaration","scope":9097,"src":"6929:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6929:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9069,"mutability":"mutable","name":"v","nameLocation":"6957:1:42","nodeType":"VariableDeclaration","scope":9097,"src":"6951:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9068,"name":"uint8","nodeType":"ElementaryTypeName","src":"6951:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9071,"mutability":"mutable","name":"r","nameLocation":"6976:1:42","nodeType":"VariableDeclaration","scope":9097,"src":"6968:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6968:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9073,"mutability":"mutable","name":"s","nameLocation":"6995:1:42","nodeType":"VariableDeclaration","scope":9097,"src":"6987:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9072,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6987:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6919:83:42"},"returnParameters":{"id":9077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9097,"src":"7026:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9075,"name":"address","nodeType":"ElementaryTypeName","src":"7026:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7025:9:42"},"scope":9157,"src":"6903:270:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9113,"nodeType":"Block","src":"7541:187:42","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":9108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7679:34:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},"value":"\u0019Ethereum Signed Message:\n32"},{"id":9109,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9100,"src":"7715:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9106,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7662:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7662:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7662:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9105,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7652:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7652:69:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9104,"id":9112,"nodeType":"Return","src":"7645:76:42"}]},"documentation":{"id":9098,"nodeType":"StructuredDocumentation","src":"7179:279:42","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":9114,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7472:22:42","nodeType":"FunctionDefinition","parameters":{"id":9101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9100,"mutability":"mutable","name":"hash","nameLocation":"7503:4:42","nodeType":"VariableDeclaration","scope":9114,"src":"7495:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7495:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7494:14:42"},"returnParameters":{"id":9104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9114,"src":"7532:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7532:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7531:9:42"},"scope":9157,"src":"7463:265:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9135,"nodeType":"Block","src":"8093:116:42","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":9125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8137:32:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":9128,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"8188:1:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8188:8:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9126,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"8171:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$8555_$","typeString":"type(library Strings)"}},"id":9127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8417,"src":"8171:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":9130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8171:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9131,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"8199:1:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8120:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"8120:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8120:81:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9122,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8110:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8110:92:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9121,"id":9134,"nodeType":"Return","src":"8103:99:42"}]},"documentation":{"id":9115,"nodeType":"StructuredDocumentation","src":"7734:274:42","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":9136,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"8022:22:42","nodeType":"FunctionDefinition","parameters":{"id":9118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9117,"mutability":"mutable","name":"s","nameLocation":"8058:1:42","nodeType":"VariableDeclaration","scope":9136,"src":"8045:14:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9116,"name":"bytes","nodeType":"ElementaryTypeName","src":"8045:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8044:16:42"},"returnParameters":{"id":9121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9136,"src":"8084:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8084:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8083:9:42"},"scope":9157,"src":"8013:196:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9155,"nodeType":"Block","src":"8650:92:42","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":9149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8694:10:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"id":9150,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9139,"src":"8706:15:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9151,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9141,"src":"8723:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8677:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"8677:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8677:57:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9146,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8667:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8667:68:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9145,"id":9154,"nodeType":"Return","src":"8660:75:42"}]},"documentation":{"id":9137,"nodeType":"StructuredDocumentation","src":"8215:328:42","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"id":9156,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"8557:15:42","nodeType":"FunctionDefinition","parameters":{"id":9142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9139,"mutability":"mutable","name":"domainSeparator","nameLocation":"8581:15:42","nodeType":"VariableDeclaration","scope":9156,"src":"8573:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8573:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9141,"mutability":"mutable","name":"structHash","nameLocation":"8606:10:42","nodeType":"VariableDeclaration","scope":9156,"src":"8598:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8598:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8572:45:42"},"returnParameters":{"id":9145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9156,"src":"8641:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8641:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8640:9:42"},"scope":9157,"src":"8548:194:42","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":9158,"src":"369:8375:42","usedErrors":[]}],"src":"112:8633:42"},"id":42},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","exportedSymbols":{"MerkleProof":[9659]},"id":9660,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9159,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:43"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":9160,"nodeType":"StructuredDocumentation","src":"143:655:43","text":" @dev These functions deal with verification of Merkle Tree proofs.\n The proofs can be generated using the JavaScript library\n https://github.com/miguelmota/merkletreejs[merkletreejs].\n Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.\n See `test/utils/cryptography/MerkleProof.test.js` for some examples.\n WARNING: You should avoid using leaf values that are 64 bytes long prior to\n hashing, or use a hash function other than keccak256 for hashing leaves.\n This is because the concatenation of a sorted pair of internal nodes in\n the merkle tree could be reinterpreted as a leaf value."},"fullyImplemented":true,"id":9659,"linearizedBaseContracts":[9659],"name":"MerkleProof","nameLocation":"807:11:43","nodeType":"ContractDefinition","nodes":[{"body":{"id":9180,"nodeType":"Block","src":"1280:57:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9174,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9164,"src":"1310:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":9175,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9168,"src":"1317:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9173,"name":"processProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9242,"src":"1297:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bytes32) pure returns (bytes32)"}},"id":9176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1297:25:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9177,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9166,"src":"1326:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1297:33:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9172,"id":9179,"nodeType":"Return","src":"1290:40:43"}]},"documentation":{"id":9161,"nodeType":"StructuredDocumentation","src":"825:323:43","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted."},"id":9181,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1162:6:43","nodeType":"FunctionDefinition","parameters":{"id":9169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9164,"mutability":"mutable","name":"proof","nameLocation":"1195:5:43","nodeType":"VariableDeclaration","scope":9181,"src":"1178:22:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1178:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9163,"nodeType":"ArrayTypeName","src":"1178:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9166,"mutability":"mutable","name":"root","nameLocation":"1218:4:43","nodeType":"VariableDeclaration","scope":9181,"src":"1210:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1210:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9168,"mutability":"mutable","name":"leaf","nameLocation":"1240:4:43","nodeType":"VariableDeclaration","scope":9181,"src":"1232:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1232:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1168:82:43"},"returnParameters":{"id":9172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9181,"src":"1274:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9170,"name":"bool","nodeType":"ElementaryTypeName","src":"1274:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1273:6:43"},"scope":9659,"src":"1153:184:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9201,"nodeType":"Block","src":"1575:65:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9195,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9185,"src":"1613:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":9196,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9189,"src":"1620:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9194,"name":"processProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9282,"src":"1592:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32) pure returns (bytes32)"}},"id":9197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1592:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9198,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"1629:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1592:41:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9193,"id":9200,"nodeType":"Return","src":"1585:48:43"}]},"documentation":{"id":9182,"nodeType":"StructuredDocumentation","src":"1343:90:43","text":" @dev Calldata version of {verify}\n _Available since v4.7._"},"id":9202,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCalldata","nameLocation":"1447:14:43","nodeType":"FunctionDefinition","parameters":{"id":9190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9185,"mutability":"mutable","name":"proof","nameLocation":"1490:5:43","nodeType":"VariableDeclaration","scope":9202,"src":"1471:24:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1471:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9184,"nodeType":"ArrayTypeName","src":"1471:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9187,"mutability":"mutable","name":"root","nameLocation":"1513:4:43","nodeType":"VariableDeclaration","scope":9202,"src":"1505:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1505:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9189,"mutability":"mutable","name":"leaf","nameLocation":"1535:4:43","nodeType":"VariableDeclaration","scope":9202,"src":"1527:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1527:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:84:43"},"returnParameters":{"id":9193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9202,"src":"1569:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9191,"name":"bool","nodeType":"ElementaryTypeName","src":"1569:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1568:6:43"},"scope":9659,"src":"1438:202:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9241,"nodeType":"Block","src":"2083:198:43","statements":[{"assignments":[9214],"declarations":[{"constant":false,"id":9214,"mutability":"mutable","name":"computedHash","nameLocation":"2101:12:43","nodeType":"VariableDeclaration","scope":9241,"src":"2093:20:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2093:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9216,"initialValue":{"id":9215,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"2116:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2093:27:43"},{"body":{"id":9237,"nodeType":"Block","src":"2173:73:43","statements":[{"expression":{"id":9235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9228,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9214,"src":"2187:12:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9230,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9214,"src":"2212:12:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":9231,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9206,"src":"2226:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9233,"indexExpression":{"id":9232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9218,"src":"2232:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2226:8:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9229,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9647,"src":"2202:9:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":9234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2202:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2187:48:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9236,"nodeType":"ExpressionStatement","src":"2187:48:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9221,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9218,"src":"2150:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9222,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9206,"src":"2154:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2154:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2150:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9238,"initializationExpression":{"assignments":[9218],"declarations":[{"constant":false,"id":9218,"mutability":"mutable","name":"i","nameLocation":"2143:1:43","nodeType":"VariableDeclaration","scope":9238,"src":"2135:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9217,"name":"uint256","nodeType":"ElementaryTypeName","src":"2135:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9220,"initialValue":{"hexValue":"30","id":9219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2147:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2135:13:43"},"loopExpression":{"expression":{"id":9226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2168:3:43","subExpression":{"id":9225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9218,"src":"2168:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9227,"nodeType":"ExpressionStatement","src":"2168:3:43"},"nodeType":"ForStatement","src":"2130:116:43"},{"expression":{"id":9239,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9214,"src":"2262:12:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9212,"id":9240,"nodeType":"Return","src":"2255:19:43"}]},"documentation":{"id":9203,"nodeType":"StructuredDocumentation","src":"1646:340:43","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leafs & pre-images are assumed to be sorted.\n _Available since v4.4._"},"id":9242,"implemented":true,"kind":"function","modifiers":[],"name":"processProof","nameLocation":"2000:12:43","nodeType":"FunctionDefinition","parameters":{"id":9209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9206,"mutability":"mutable","name":"proof","nameLocation":"2030:5:43","nodeType":"VariableDeclaration","scope":9242,"src":"2013:22:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2013:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9205,"nodeType":"ArrayTypeName","src":"2013:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9208,"mutability":"mutable","name":"leaf","nameLocation":"2045:4:43","nodeType":"VariableDeclaration","scope":9242,"src":"2037:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2037:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2012:38:43"},"returnParameters":{"id":9212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9242,"src":"2074:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2074:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2073:9:43"},"scope":9659,"src":"1991:290:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9281,"nodeType":"Block","src":"2490:198:43","statements":[{"assignments":[9254],"declarations":[{"constant":false,"id":9254,"mutability":"mutable","name":"computedHash","nameLocation":"2508:12:43","nodeType":"VariableDeclaration","scope":9281,"src":"2500:20:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2500:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9256,"initialValue":{"id":9255,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9248,"src":"2523:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2500:27:43"},{"body":{"id":9277,"nodeType":"Block","src":"2580:73:43","statements":[{"expression":{"id":9275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9268,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9254,"src":"2594:12:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9270,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9254,"src":"2619:12:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":9271,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9246,"src":"2633:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":9273,"indexExpression":{"id":9272,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9258,"src":"2639:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2633:8:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9269,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9647,"src":"2609:9:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":9274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2609:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2594:48:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9276,"nodeType":"ExpressionStatement","src":"2594:48:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9261,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9258,"src":"2557:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9262,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9246,"src":"2561:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":9263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2561:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2557:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9278,"initializationExpression":{"assignments":[9258],"declarations":[{"constant":false,"id":9258,"mutability":"mutable","name":"i","nameLocation":"2550:1:43","nodeType":"VariableDeclaration","scope":9278,"src":"2542:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9257,"name":"uint256","nodeType":"ElementaryTypeName","src":"2542:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9260,"initialValue":{"hexValue":"30","id":9259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2554:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2542:13:43"},"loopExpression":{"expression":{"id":9266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2575:3:43","subExpression":{"id":9265,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9258,"src":"2575:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9267,"nodeType":"ExpressionStatement","src":"2575:3:43"},"nodeType":"ForStatement","src":"2537:116:43"},{"expression":{"id":9279,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9254,"src":"2669:12:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9252,"id":9280,"nodeType":"Return","src":"2662:19:43"}]},"documentation":{"id":9243,"nodeType":"StructuredDocumentation","src":"2287:96:43","text":" @dev Calldata version of {processProof}\n _Available since v4.7._"},"id":9282,"implemented":true,"kind":"function","modifiers":[],"name":"processProofCalldata","nameLocation":"2397:20:43","nodeType":"FunctionDefinition","parameters":{"id":9249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9246,"mutability":"mutable","name":"proof","nameLocation":"2437:5:43","nodeType":"VariableDeclaration","scope":9282,"src":"2418:24:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2418:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9245,"nodeType":"ArrayTypeName","src":"2418:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9248,"mutability":"mutable","name":"leaf","nameLocation":"2452:4:43","nodeType":"VariableDeclaration","scope":9282,"src":"2444:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2444:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2417:40:43"},"returnParameters":{"id":9252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9282,"src":"2481:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:9:43"},"scope":9659,"src":"2388:300:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9307,"nodeType":"Block","src":"3116:76:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9300,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9286,"src":"3151:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":9301,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9289,"src":"3158:10:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":9302,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9294,"src":"3170:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":9299,"name":"processMultiProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9479,"src":"3133:17:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bool[] memory,bytes32[] memory) pure returns (bytes32)"}},"id":9303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3133:44:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9304,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9291,"src":"3181:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3133:52:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9298,"id":9306,"nodeType":"Return","src":"3126:59:43"}]},"documentation":{"id":9283,"nodeType":"StructuredDocumentation","src":"2694:235:43","text":" @dev Returns true if the `leaves` can be proved to be a part of a Merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n _Available since v4.7._"},"id":9308,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerify","nameLocation":"2943:16:43","nodeType":"FunctionDefinition","parameters":{"id":9295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9286,"mutability":"mutable","name":"proof","nameLocation":"2986:5:43","nodeType":"VariableDeclaration","scope":9308,"src":"2969:22:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2969:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9285,"nodeType":"ArrayTypeName","src":"2969:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9289,"mutability":"mutable","name":"proofFlags","nameLocation":"3015:10:43","nodeType":"VariableDeclaration","scope":9308,"src":"3001:24:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":9287,"name":"bool","nodeType":"ElementaryTypeName","src":"3001:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9288,"nodeType":"ArrayTypeName","src":"3001:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":9291,"mutability":"mutable","name":"root","nameLocation":"3043:4:43","nodeType":"VariableDeclaration","scope":9308,"src":"3035:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3035:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9294,"mutability":"mutable","name":"leaves","nameLocation":"3074:6:43","nodeType":"VariableDeclaration","scope":9308,"src":"3057:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3057:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9293,"nodeType":"ArrayTypeName","src":"3057:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"2959:127:43"},"returnParameters":{"id":9298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9308,"src":"3110:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9296,"name":"bool","nodeType":"ElementaryTypeName","src":"3110:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3109:6:43"},"scope":9659,"src":"2934:258:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9333,"nodeType":"Block","src":"3497:84:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9326,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9312,"src":"3540:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":9327,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9315,"src":"3547:10:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},{"id":9328,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9320,"src":"3559:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":9325,"name":"processMultiProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"3514:25:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_array$_t_bool_$dyn_calldata_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bool[] calldata,bytes32[] memory) pure returns (bytes32)"}},"id":9329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3514:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9330,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9317,"src":"3570:4:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3514:60:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9324,"id":9332,"nodeType":"Return","src":"3507:67:43"}]},"documentation":{"id":9309,"nodeType":"StructuredDocumentation","src":"3198:100:43","text":" @dev Calldata version of {multiProofVerify}\n _Available since v4.7._"},"id":9334,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerifyCalldata","nameLocation":"3312:24:43","nodeType":"FunctionDefinition","parameters":{"id":9321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9312,"mutability":"mutable","name":"proof","nameLocation":"3365:5:43","nodeType":"VariableDeclaration","scope":9334,"src":"3346:24:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3346:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9311,"nodeType":"ArrayTypeName","src":"3346:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9315,"mutability":"mutable","name":"proofFlags","nameLocation":"3396:10:43","nodeType":"VariableDeclaration","scope":9334,"src":"3380:26:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":9313,"name":"bool","nodeType":"ElementaryTypeName","src":"3380:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9314,"nodeType":"ArrayTypeName","src":"3380:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":9317,"mutability":"mutable","name":"root","nameLocation":"3424:4:43","nodeType":"VariableDeclaration","scope":9334,"src":"3416:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3416:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9320,"mutability":"mutable","name":"leaves","nameLocation":"3455:6:43","nodeType":"VariableDeclaration","scope":9334,"src":"3438:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3438:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9319,"nodeType":"ArrayTypeName","src":"3438:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3336:131:43"},"returnParameters":{"id":9324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9334,"src":"3491:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9322,"name":"bool","nodeType":"ElementaryTypeName","src":"3491:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3490:6:43"},"scope":9659,"src":"3303:278:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9478,"nodeType":"Block","src":"4029:1860:43","statements":[{"assignments":[9350],"declarations":[{"constant":false,"id":9350,"mutability":"mutable","name":"leavesLen","nameLocation":"4420:9:43","nodeType":"VariableDeclaration","scope":9478,"src":"4412:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9349,"name":"uint256","nodeType":"ElementaryTypeName","src":"4412:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9353,"initialValue":{"expression":{"id":9351,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"4432:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4432:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4412:33:43"},{"assignments":[9355],"declarations":[{"constant":false,"id":9355,"mutability":"mutable","name":"totalHashes","nameLocation":"4463:11:43","nodeType":"VariableDeclaration","scope":9478,"src":"4455:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9354,"name":"uint256","nodeType":"ElementaryTypeName","src":"4455:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9358,"initialValue":{"expression":{"id":9356,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9341,"src":"4477:10:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":9357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4477:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4455:39:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9360,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9350,"src":"4546:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":9361,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9338,"src":"4558:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4558:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4546:24:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4546:28:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9366,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"4578:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4546:43:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f66","id":9368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4591:33:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""},"value":"MerkleProof: invalid multiproof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""}],"id":9359,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4538:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4538:87:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9370,"nodeType":"ExpressionStatement","src":"4538:87:43"},{"assignments":[9375],"declarations":[{"constant":false,"id":9375,"mutability":"mutable","name":"hashes","nameLocation":"4887:6:43","nodeType":"VariableDeclaration","scope":9478,"src":"4870:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4870:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9374,"nodeType":"ArrayTypeName","src":"4870:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":9381,"initialValue":{"arguments":[{"id":9379,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"4910:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4896:13:43","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":9376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4900:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9377,"nodeType":"ArrayTypeName","src":"4900:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":9380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4896:26:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4870:52:43"},{"assignments":[9383],"declarations":[{"constant":false,"id":9383,"mutability":"mutable","name":"leafPos","nameLocation":"4940:7:43","nodeType":"VariableDeclaration","scope":9478,"src":"4932:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9382,"name":"uint256","nodeType":"ElementaryTypeName","src":"4932:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9385,"initialValue":{"hexValue":"30","id":9384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4950:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4932:19:43"},{"assignments":[9387],"declarations":[{"constant":false,"id":9387,"mutability":"mutable","name":"hashPos","nameLocation":"4969:7:43","nodeType":"VariableDeclaration","scope":9478,"src":"4961:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9386,"name":"uint256","nodeType":"ElementaryTypeName","src":"4961:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9389,"initialValue":{"hexValue":"30","id":9388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4979:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4961:19:43"},{"assignments":[9391],"declarations":[{"constant":false,"id":9391,"mutability":"mutable","name":"proofPos","nameLocation":"4998:8:43","nodeType":"VariableDeclaration","scope":9478,"src":"4990:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9390,"name":"uint256","nodeType":"ElementaryTypeName","src":"4990:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9393,"initialValue":{"hexValue":"30","id":9392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5009:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4990:20:43"},{"body":{"id":9451,"nodeType":"Block","src":"5427:258:43","statements":[{"assignments":[9405],"declarations":[{"constant":false,"id":9405,"mutability":"mutable","name":"a","nameLocation":"5449:1:43","nodeType":"VariableDeclaration","scope":9451,"src":"5441:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5441:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9418,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9406,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9383,"src":"5453:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9407,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9350,"src":"5463:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5453:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":9413,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9375,"src":"5495:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9416,"indexExpression":{"id":9415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5502:9:43","subExpression":{"id":9414,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9387,"src":"5502:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5495:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5453:59:43","trueExpression":{"baseExpression":{"id":9409,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"5475:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9412,"indexExpression":{"id":9411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5482:9:43","subExpression":{"id":9410,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9383,"src":"5482:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5475:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5441:71:43"},{"assignments":[9420],"declarations":[{"constant":false,"id":9420,"mutability":"mutable","name":"b","nameLocation":"5534:1:43","nodeType":"VariableDeclaration","scope":9451,"src":"5526:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5526:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9441,"initialValue":{"condition":{"baseExpression":{"id":9421,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9341,"src":"5538:10:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":9423,"indexExpression":{"id":9422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"5549:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5538:13:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":9436,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9338,"src":"5616:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9439,"indexExpression":{"id":9438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5622:10:43","subExpression":{"id":9437,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"5622:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5616:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5538:95:43","trueExpression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9424,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9383,"src":"5554:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9425,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9350,"src":"5564:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5554:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":9431,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9375,"src":"5596:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9434,"indexExpression":{"id":9433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5603:9:43","subExpression":{"id":9432,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9387,"src":"5603:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5596:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5554:59:43","trueExpression":{"baseExpression":{"id":9427,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"5576:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9430,"indexExpression":{"id":9429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5583:9:43","subExpression":{"id":9428,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9383,"src":"5583:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5576:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5526:107:43"},{"expression":{"id":9449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9442,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9375,"src":"5647:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9444,"indexExpression":{"id":9443,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"5654:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5647:9:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9446,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"5669:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9447,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9420,"src":"5672:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9445,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9647,"src":"5659:9:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":9448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5659:15:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5647:27:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9450,"nodeType":"ExpressionStatement","src":"5647:27:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"5405:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9399,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"5409:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5405:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9452,"initializationExpression":{"assignments":[9395],"declarations":[{"constant":false,"id":9395,"mutability":"mutable","name":"i","nameLocation":"5398:1:43","nodeType":"VariableDeclaration","scope":9452,"src":"5390:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9394,"name":"uint256","nodeType":"ElementaryTypeName","src":"5390:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9397,"initialValue":{"hexValue":"30","id":9396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5402:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5390:13:43"},"loopExpression":{"expression":{"id":9402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5422:3:43","subExpression":{"id":9401,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"5422:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9403,"nodeType":"ExpressionStatement","src":"5422:3:43"},"nodeType":"ForStatement","src":"5385:300:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9453,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"5699:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5713:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5699:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9463,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9350,"src":"5781:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5793:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5781:13:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9475,"nodeType":"Block","src":"5843:40:43","statements":[{"expression":{"baseExpression":{"id":9471,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9338,"src":"5864:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9473,"indexExpression":{"hexValue":"30","id":9472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5870:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5864:8:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9348,"id":9474,"nodeType":"Return","src":"5857:15:43"}]},"id":9476,"nodeType":"IfStatement","src":"5777:106:43","trueBody":{"id":9470,"nodeType":"Block","src":"5796:41:43","statements":[{"expression":{"baseExpression":{"id":9466,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"5817:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9468,"indexExpression":{"hexValue":"30","id":9467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5824:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5817:9:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9348,"id":9469,"nodeType":"Return","src":"5810:16:43"}]}},"id":9477,"nodeType":"IfStatement","src":"5695:188:43","trueBody":{"id":9462,"nodeType":"Block","src":"5716:55:43","statements":[{"expression":{"baseExpression":{"id":9456,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9375,"src":"5737:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9460,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9457,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"5744:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5758:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5744:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5737:23:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9348,"id":9461,"nodeType":"Return","src":"5730:30:43"}]}}]},"documentation":{"id":9335,"nodeType":"StructuredDocumentation","src":"3587:262:43","text":" @dev Returns the root of a tree reconstructed from `leaves` and the sibling nodes in `proof`,\n consuming from one or the other at each step according to the instructions given by\n `proofFlags`.\n _Available since v4.7._"},"id":9479,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProof","nameLocation":"3863:17:43","nodeType":"FunctionDefinition","parameters":{"id":9345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9338,"mutability":"mutable","name":"proof","nameLocation":"3907:5:43","nodeType":"VariableDeclaration","scope":9479,"src":"3890:22:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3890:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9337,"nodeType":"ArrayTypeName","src":"3890:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9341,"mutability":"mutable","name":"proofFlags","nameLocation":"3936:10:43","nodeType":"VariableDeclaration","scope":9479,"src":"3922:24:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":9339,"name":"bool","nodeType":"ElementaryTypeName","src":"3922:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9340,"nodeType":"ArrayTypeName","src":"3922:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":9344,"mutability":"mutable","name":"leaves","nameLocation":"3973:6:43","nodeType":"VariableDeclaration","scope":9479,"src":"3956:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3956:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9343,"nodeType":"ArrayTypeName","src":"3956:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3880:105:43"},"returnParameters":{"id":9348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9347,"mutability":"mutable","name":"merkleRoot","nameLocation":"4017:10:43","nodeType":"VariableDeclaration","scope":9479,"src":"4009:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4009:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4008:20:43"},"scope":9659,"src":"3854:2035:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9623,"nodeType":"Block","src":"6188:1860:43","statements":[{"assignments":[9495],"declarations":[{"constant":false,"id":9495,"mutability":"mutable","name":"leavesLen","nameLocation":"6579:9:43","nodeType":"VariableDeclaration","scope":9623,"src":"6571:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9494,"name":"uint256","nodeType":"ElementaryTypeName","src":"6571:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9498,"initialValue":{"expression":{"id":9496,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"6591:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6591:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6571:33:43"},{"assignments":[9500],"declarations":[{"constant":false,"id":9500,"mutability":"mutable","name":"totalHashes","nameLocation":"6622:11:43","nodeType":"VariableDeclaration","scope":9623,"src":"6614:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9499,"name":"uint256","nodeType":"ElementaryTypeName","src":"6614:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9503,"initialValue":{"expression":{"id":9501,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"6636:10:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":9502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6636:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6614:39:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9505,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"6705:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":9506,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"6717:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":9507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6717:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6705:24:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6732:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6705:28:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9511,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9500,"src":"6737:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6705:43:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f66","id":9513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6750:33:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""},"value":"MerkleProof: invalid multiproof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""}],"id":9504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6697:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6697:87:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9515,"nodeType":"ExpressionStatement","src":"6697:87:43"},{"assignments":[9520],"declarations":[{"constant":false,"id":9520,"mutability":"mutable","name":"hashes","nameLocation":"7046:6:43","nodeType":"VariableDeclaration","scope":9623,"src":"7029:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7029:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9519,"nodeType":"ArrayTypeName","src":"7029:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":9526,"initialValue":{"arguments":[{"id":9524,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9500,"src":"7069:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7055:13:43","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":9521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7059:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9522,"nodeType":"ArrayTypeName","src":"7059:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":9525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7055:26:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7029:52:43"},{"assignments":[9528],"declarations":[{"constant":false,"id":9528,"mutability":"mutable","name":"leafPos","nameLocation":"7099:7:43","nodeType":"VariableDeclaration","scope":9623,"src":"7091:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9527,"name":"uint256","nodeType":"ElementaryTypeName","src":"7091:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9530,"initialValue":{"hexValue":"30","id":9529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7109:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7091:19:43"},{"assignments":[9532],"declarations":[{"constant":false,"id":9532,"mutability":"mutable","name":"hashPos","nameLocation":"7128:7:43","nodeType":"VariableDeclaration","scope":9623,"src":"7120:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9531,"name":"uint256","nodeType":"ElementaryTypeName","src":"7120:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9534,"initialValue":{"hexValue":"30","id":9533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7138:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7120:19:43"},{"assignments":[9536],"declarations":[{"constant":false,"id":9536,"mutability":"mutable","name":"proofPos","nameLocation":"7157:8:43","nodeType":"VariableDeclaration","scope":9623,"src":"7149:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9535,"name":"uint256","nodeType":"ElementaryTypeName","src":"7149:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9538,"initialValue":{"hexValue":"30","id":9537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7168:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7149:20:43"},{"body":{"id":9596,"nodeType":"Block","src":"7586:258:43","statements":[{"assignments":[9550],"declarations":[{"constant":false,"id":9550,"mutability":"mutable","name":"a","nameLocation":"7608:1:43","nodeType":"VariableDeclaration","scope":9596,"src":"7600:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9549,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7600:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9563,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9551,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"7612:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9552,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"7622:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7612:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":9558,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"7654:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9561,"indexExpression":{"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7661:9:43","subExpression":{"id":9559,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"7661:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7654:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7612:59:43","trueExpression":{"baseExpression":{"id":9554,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"7634:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9557,"indexExpression":{"id":9556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7641:9:43","subExpression":{"id":9555,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"7641:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7634:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7600:71:43"},{"assignments":[9565],"declarations":[{"constant":false,"id":9565,"mutability":"mutable","name":"b","nameLocation":"7693:1:43","nodeType":"VariableDeclaration","scope":9596,"src":"7685:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7685:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9586,"initialValue":{"condition":{"baseExpression":{"id":9566,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"7697:10:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":9568,"indexExpression":{"id":9567,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"7708:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7697:13:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":9581,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"7775:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":9584,"indexExpression":{"id":9583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7781:10:43","subExpression":{"id":9582,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"7781:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7775:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7697:95:43","trueExpression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9569,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"7713:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9570,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"7723:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7713:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":9576,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"7755:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9579,"indexExpression":{"id":9578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7762:9:43","subExpression":{"id":9577,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"7762:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7755:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7713:59:43","trueExpression":{"baseExpression":{"id":9572,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"7735:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9575,"indexExpression":{"id":9574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7742:9:43","subExpression":{"id":9573,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"7742:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7735:17:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7685:107:43"},{"expression":{"id":9594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9587,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"7806:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9589,"indexExpression":{"id":9588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"7813:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7806:9:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9591,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9550,"src":"7828:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9592,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9565,"src":"7831:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9590,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9647,"src":"7818:9:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":9593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7818:15:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7806:27:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9595,"nodeType":"ExpressionStatement","src":"7806:27:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9543,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"7564:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9544,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9500,"src":"7568:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7564:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9597,"initializationExpression":{"assignments":[9540],"declarations":[{"constant":false,"id":9540,"mutability":"mutable","name":"i","nameLocation":"7557:1:43","nodeType":"VariableDeclaration","scope":9597,"src":"7549:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9539,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9542,"initialValue":{"hexValue":"30","id":9541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7561:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7549:13:43"},"loopExpression":{"expression":{"id":9547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7581:3:43","subExpression":{"id":9546,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"7581:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9548,"nodeType":"ExpressionStatement","src":"7581:3:43"},"nodeType":"ForStatement","src":"7544:300:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9598,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9500,"src":"7858:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7872:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7858:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9608,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"7940:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7952:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7940:13:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9620,"nodeType":"Block","src":"8002:40:43","statements":[{"expression":{"baseExpression":{"id":9616,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"8023:5:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":9618,"indexExpression":{"hexValue":"30","id":9617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8029:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8023:8:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9493,"id":9619,"nodeType":"Return","src":"8016:15:43"}]},"id":9621,"nodeType":"IfStatement","src":"7936:106:43","trueBody":{"id":9615,"nodeType":"Block","src":"7955:41:43","statements":[{"expression":{"baseExpression":{"id":9611,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"7976:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9613,"indexExpression":{"hexValue":"30","id":9612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7983:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7976:9:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9493,"id":9614,"nodeType":"Return","src":"7969:16:43"}]}},"id":9622,"nodeType":"IfStatement","src":"7854:188:43","trueBody":{"id":9607,"nodeType":"Block","src":"7875:55:43","statements":[{"expression":{"baseExpression":{"id":9601,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"7896:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9605,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9602,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9500,"src":"7903:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7917:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7903:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7896:23:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9493,"id":9606,"nodeType":"Return","src":"7889:30:43"}]}}]},"documentation":{"id":9480,"nodeType":"StructuredDocumentation","src":"5895:101:43","text":" @dev Calldata version of {processMultiProof}\n _Available since v4.7._"},"id":9624,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProofCalldata","nameLocation":"6010:25:43","nodeType":"FunctionDefinition","parameters":{"id":9490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9483,"mutability":"mutable","name":"proof","nameLocation":"6064:5:43","nodeType":"VariableDeclaration","scope":9624,"src":"6045:24:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6045:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9482,"nodeType":"ArrayTypeName","src":"6045:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":9486,"mutability":"mutable","name":"proofFlags","nameLocation":"6095:10:43","nodeType":"VariableDeclaration","scope":9624,"src":"6079:26:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":9484,"name":"bool","nodeType":"ElementaryTypeName","src":"6079:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9485,"nodeType":"ArrayTypeName","src":"6079:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":9489,"mutability":"mutable","name":"leaves","nameLocation":"6132:6:43","nodeType":"VariableDeclaration","scope":9624,"src":"6115:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6115:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9488,"nodeType":"ArrayTypeName","src":"6115:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6035:109:43"},"returnParameters":{"id":9493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9492,"mutability":"mutable","name":"merkleRoot","nameLocation":"6176:10:43","nodeType":"VariableDeclaration","scope":9624,"src":"6168:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6168:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6167:20:43"},"scope":9659,"src":"6001:2047:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9646,"nodeType":"Block","src":"8126:75:43","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9633,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9626,"src":"8143:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9634,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9628,"src":"8147:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8143:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":9641,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9628,"src":"8189:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9642,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9626,"src":"8192:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9640,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9658,"src":"8174:14:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":9643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8174:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8143:51:43","trueExpression":{"arguments":[{"id":9637,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9626,"src":"8166:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9638,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9628,"src":"8169:1:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9636,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9658,"src":"8151:14:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":9639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8151:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9632,"id":9645,"nodeType":"Return","src":"8136:58:43"}]},"id":9647,"implemented":true,"kind":"function","modifiers":[],"name":"_hashPair","nameLocation":"8063:9:43","nodeType":"FunctionDefinition","parameters":{"id":9629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9626,"mutability":"mutable","name":"a","nameLocation":"8081:1:43","nodeType":"VariableDeclaration","scope":9647,"src":"8073:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8073:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9628,"mutability":"mutable","name":"b","nameLocation":"8092:1:43","nodeType":"VariableDeclaration","scope":9647,"src":"8084:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8084:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8072:22:43"},"returnParameters":{"id":9632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9647,"src":"8117:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8117:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8116:9:43"},"scope":9659,"src":"8054:147:43","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":9657,"nodeType":"Block","src":"8290:178:43","statements":[{"AST":{"nodeType":"YulBlock","src":"8352:110:43","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8373:4:43","type":"","value":"0x00"},{"name":"a","nodeType":"YulIdentifier","src":"8379:1:43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8366:6:43"},"nodeType":"YulFunctionCall","src":"8366:15:43"},"nodeType":"YulExpressionStatement","src":"8366:15:43"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8401:4:43","type":"","value":"0x20"},{"name":"b","nodeType":"YulIdentifier","src":"8407:1:43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8394:6:43"},"nodeType":"YulFunctionCall","src":"8394:15:43"},"nodeType":"YulExpressionStatement","src":"8394:15:43"},{"nodeType":"YulAssignment","src":"8422:30:43","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8441:4:43","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"8447:4:43","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8431:9:43"},"nodeType":"YulFunctionCall","src":"8431:21:43"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8422:5:43"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":9649,"isOffset":false,"isSlot":false,"src":"8379:1:43","valueSize":1},{"declaration":9651,"isOffset":false,"isSlot":false,"src":"8407:1:43","valueSize":1},{"declaration":9654,"isOffset":false,"isSlot":false,"src":"8422:5:43","valueSize":1}],"id":9656,"nodeType":"InlineAssembly","src":"8343:119:43"}]},"id":9658,"implemented":true,"kind":"function","modifiers":[],"name":"_efficientHash","nameLocation":"8216:14:43","nodeType":"FunctionDefinition","parameters":{"id":9652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9649,"mutability":"mutable","name":"a","nameLocation":"8239:1:43","nodeType":"VariableDeclaration","scope":9658,"src":"8231:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8231:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9651,"mutability":"mutable","name":"b","nameLocation":"8250:1:43","nodeType":"VariableDeclaration","scope":9658,"src":"8242:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8242:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8230:22:43"},"returnParameters":{"id":9655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9654,"mutability":"mutable","name":"value","nameLocation":"8283:5:43","nodeType":"VariableDeclaration","scope":9658,"src":"8275:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8275:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8274:15:43"},"scope":9659,"src":"8207:261:43","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":9660,"src":"799:7671:43","usedErrors":[]}],"src":"118:8353:43"},"id":43},"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","exportedSymbols":{"ECDSA":[9157],"EIP712":[9813],"Strings":[8555]},"id":9814,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9661,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:44"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":9662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9814,"sourceUnit":9158,"src":"129:21:44","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":9663,"nodeType":"StructuredDocumentation","src":"152:1142:44","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._"},"fullyImplemented":true,"id":9813,"linearizedBaseContracts":[9813],"name":"EIP712","nameLocation":"1313:6:44","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":9665,"mutability":"immutable","name":"_CACHED_DOMAIN_SEPARATOR","nameLocation":"1589:24:44","nodeType":"VariableDeclaration","scope":9813,"src":"1563:50:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1563:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":9667,"mutability":"immutable","name":"_CACHED_CHAIN_ID","nameLocation":"1645:16:44","nodeType":"VariableDeclaration","scope":9813,"src":"1619:42:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":9669,"mutability":"immutable","name":"_CACHED_THIS","nameLocation":"1693:12:44","nodeType":"VariableDeclaration","scope":9813,"src":"1667:38:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9668,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":9671,"mutability":"immutable","name":"_HASHED_NAME","nameLocation":"1738:12:44","nodeType":"VariableDeclaration","scope":9813,"src":"1712:38:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1712:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":9673,"mutability":"immutable","name":"_HASHED_VERSION","nameLocation":"1782:15:44","nodeType":"VariableDeclaration","scope":9813,"src":"1756:41:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1756:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":9675,"mutability":"immutable","name":"_TYPE_HASH","nameLocation":"1829:10:44","nodeType":"VariableDeclaration","scope":9813,"src":"1803:36:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1803:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"body":{"id":9739,"nodeType":"Block","src":"2510:547:44","statements":[{"assignments":[9684],"declarations":[{"constant":false,"id":9684,"mutability":"mutable","name":"hashedName","nameLocation":"2528:10:44","nodeType":"VariableDeclaration","scope":9739,"src":"2520:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2520:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9691,"initialValue":{"arguments":[{"arguments":[{"id":9688,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9678,"src":"2557:4:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2551:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9686,"name":"bytes","nodeType":"ElementaryTypeName","src":"2551:5:44","typeDescriptions":{}}},"id":9689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2551:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9685,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2541:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2541:22:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2520:43:44"},{"assignments":[9693],"declarations":[{"constant":false,"id":9693,"mutability":"mutable","name":"hashedVersion","nameLocation":"2581:13:44","nodeType":"VariableDeclaration","scope":9739,"src":"2573:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9700,"initialValue":{"arguments":[{"arguments":[{"id":9697,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9680,"src":"2613:7:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9695,"name":"bytes","nodeType":"ElementaryTypeName","src":"2607:5:44","typeDescriptions":{}}},"id":9698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2607:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9694,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2597:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2597:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2573:49:44"},{"assignments":[9702],"declarations":[{"constant":false,"id":9702,"mutability":"mutable","name":"typeHash","nameLocation":"2640:8:44","nodeType":"VariableDeclaration","scope":9739,"src":"2632:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2632:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9706,"initialValue":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":9704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2674:84:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":9703,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2651:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2651:117:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2632:136:44"},{"expression":{"id":9709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9707,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9671,"src":"2778:12:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9708,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9684,"src":"2793:10:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2778:25:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9710,"nodeType":"ExpressionStatement","src":"2778:25:44"},{"expression":{"id":9713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9711,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9673,"src":"2813:15:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9712,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9693,"src":"2831:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2813:31:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9714,"nodeType":"ExpressionStatement","src":"2813:31:44"},{"expression":{"id":9718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9715,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9667,"src":"2854:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":9716,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2873:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2873:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2854:32:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9719,"nodeType":"ExpressionStatement","src":"2854:32:44"},{"expression":{"id":9726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9720,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"2896:24:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9722,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9702,"src":"2945:8:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9723,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9684,"src":"2955:10:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9724,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9693,"src":"2967:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9721,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9796,"src":"2923:21:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":9725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2923:58:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2896:85:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9727,"nodeType":"ExpressionStatement","src":"2896:85:44"},{"expression":{"id":9733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9728,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9669,"src":"2991:12:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9731,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3014:4:44","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$9813","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$9813","typeString":"contract EIP712"}],"id":9730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3006:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9729,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:44","typeDescriptions":{}}},"id":9732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3006:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2991:28:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9734,"nodeType":"ExpressionStatement","src":"2991:28:44"},{"expression":{"id":9737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9735,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9675,"src":"3029:10:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9736,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9702,"src":"3042:8:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3029:21:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9738,"nodeType":"ExpressionStatement","src":"3029:21:44"}]},"documentation":{"id":9676,"nodeType":"StructuredDocumentation","src":"1891:559:44","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"id":9740,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9678,"mutability":"mutable","name":"name","nameLocation":"2481:4:44","nodeType":"VariableDeclaration","scope":9740,"src":"2467:18:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9677,"name":"string","nodeType":"ElementaryTypeName","src":"2467:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9680,"mutability":"mutable","name":"version","nameLocation":"2501:7:44","nodeType":"VariableDeclaration","scope":9740,"src":"2487:21:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9679,"name":"string","nodeType":"ElementaryTypeName","src":"2487:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2466:43:44"},"returnParameters":{"id":9682,"nodeType":"ParameterList","parameters":[],"src":"2510:0:44"},"scope":9813,"src":"2455:602:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9768,"nodeType":"Block","src":"3205:246:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9748,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3227:4:44","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$9813","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$9813","typeString":"contract EIP712"}],"id":9747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3219:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9746,"name":"address","nodeType":"ElementaryTypeName","src":"3219:7:44","typeDescriptions":{}}},"id":9749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3219:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9750,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9669,"src":"3236:12:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3219:29:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9752,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3252:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3252:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9754,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9667,"src":"3269:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3252:33:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3219:66:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9766,"nodeType":"Block","src":"3349:96:44","statements":[{"expression":{"arguments":[{"id":9761,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9675,"src":"3392:10:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9762,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9671,"src":"3404:12:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9763,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9673,"src":"3418:15:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9760,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9796,"src":"3370:21:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":9764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3370:64:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9745,"id":9765,"nodeType":"Return","src":"3363:71:44"}]},"id":9767,"nodeType":"IfStatement","src":"3215:230:44","trueBody":{"id":9759,"nodeType":"Block","src":"3287:56:44","statements":[{"expression":{"id":9757,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"3308:24:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9745,"id":9758,"nodeType":"Return","src":"3301:31:44"}]}}]},"documentation":{"id":9741,"nodeType":"StructuredDocumentation","src":"3063:75:44","text":" @dev Returns the domain separator for the current chain."},"id":9769,"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3152:18:44","nodeType":"FunctionDefinition","parameters":{"id":9742,"nodeType":"ParameterList","parameters":[],"src":"3170:2:44"},"returnParameters":{"id":9745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9769,"src":"3196:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3196:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3195:9:44"},"scope":9813,"src":"3143:308:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9795,"nodeType":"Block","src":"3606:108:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":9783,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9771,"src":"3644:8:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9784,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9773,"src":"3654:8:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9785,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9775,"src":"3664:11:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":9786,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3677:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3677:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":9790,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3700:4:44","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$9813","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$9813","typeString":"contract EIP712"}],"id":9789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3692:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9788,"name":"address","nodeType":"ElementaryTypeName","src":"3692:7:44","typeDescriptions":{}}},"id":9791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3692:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3633:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3633:10:44","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3633:73:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9780,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3623:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3623:84:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9779,"id":9794,"nodeType":"Return","src":"3616:91:44"}]},"id":9796,"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3466:21:44","nodeType":"FunctionDefinition","parameters":{"id":9776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9771,"mutability":"mutable","name":"typeHash","nameLocation":"3505:8:44","nodeType":"VariableDeclaration","scope":9796,"src":"3497:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3497:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9773,"mutability":"mutable","name":"nameHash","nameLocation":"3531:8:44","nodeType":"VariableDeclaration","scope":9796,"src":"3523:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3523:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9775,"mutability":"mutable","name":"versionHash","nameLocation":"3557:11:44","nodeType":"VariableDeclaration","scope":9796,"src":"3549:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3549:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3487:87:44"},"returnParameters":{"id":9779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9796,"src":"3597:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3597:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3596:9:44"},"scope":9813,"src":"3457:257:44","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":9811,"nodeType":"Block","src":"4425:79:44","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9806,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9769,"src":"4464:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":9807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4464:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9808,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9799,"src":"4486:10:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9804,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"4442:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9157_$","typeString":"type(library ECDSA)"}},"id":9805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":9156,"src":"4442:21:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4442:55:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9803,"id":9810,"nodeType":"Return","src":"4435:62:44"}]},"documentation":{"id":9797,"nodeType":"StructuredDocumentation","src":"3720:614:44","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     keccak256(\"Mail(address to,string contents)\"),\n     mailTo,\n     keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"id":9812,"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4348:16:44","nodeType":"FunctionDefinition","parameters":{"id":9800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9799,"mutability":"mutable","name":"structHash","nameLocation":"4373:10:44","nodeType":"VariableDeclaration","scope":9812,"src":"4365:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4365:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4364:20:44"},"returnParameters":{"id":9803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9812,"src":"4416:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4416:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4415:9:44"},"scope":9813,"src":"4339:165:44","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":9814,"src":"1295:3211:44","usedErrors":[]}],"src":"104:4403:44"},"id":44},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[9837],"IERC165":[9849]},"id":9838,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9815,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:45"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":9816,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9838,"sourceUnit":9850,"src":"124:23:45","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":9818,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"754:7:45"},"id":9819,"nodeType":"InheritanceSpecifier","src":"754:7:45"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":9817,"nodeType":"StructuredDocumentation","src":"149:576:45","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":9837,"linearizedBaseContracts":[9837,9849],"name":"ERC165","nameLocation":"744:6:45","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[9848],"body":{"id":9835,"nodeType":"Block","src":"920:64:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9828,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"937:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":9830,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9849,"src":"957:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$9849_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$9849_$","typeString":"type(contract IERC165)"}],"id":9829,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$9849","typeString":"type(contract IERC165)"}},"id":9832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9827,"id":9834,"nodeType":"Return","src":"930:47:45"}]},"documentation":{"id":9820,"nodeType":"StructuredDocumentation","src":"768:56:45","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":9836,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:45","nodeType":"FunctionDefinition","overrides":{"id":9824,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:45"},"parameters":{"id":9823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9822,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:45","nodeType":"VariableDeclaration","scope":9836,"src":"856:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9821,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:45"},"returnParameters":{"id":9827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9836,"src":"914:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9825,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:45"},"scope":9837,"src":"829:155:45","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":9838,"src":"726:260:45","usedErrors":[]}],"src":"99:888:45"},"id":45},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[9849]},"id":9850,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9839,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:46"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":9840,"nodeType":"StructuredDocumentation","src":"125:279:46","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":9849,"linearizedBaseContracts":[9849],"name":"IERC165","nameLocation":"415:7:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9841,"nodeType":"StructuredDocumentation","src":"429:340:46","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":9848,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:46","nodeType":"FunctionDefinition","parameters":{"id":9844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9843,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:46","nodeType":"VariableDeclaration","scope":9848,"src":"801:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9842,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:46"},"returnParameters":{"id":9847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9848,"src":"844:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9845,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:46"},"scope":9849,"src":"774:76:46","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9850,"src":"405:447:46","usedErrors":[]}],"src":"100:753:46"},"id":46},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[10353]},"id":10354,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9851,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:47"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":9852,"nodeType":"StructuredDocumentation","src":"128:73:47","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":10353,"linearizedBaseContracts":[10353],"name":"Math","nameLocation":"210:4:47","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":9856,"members":[{"id":9853,"name":"Down","nameLocation":"245:4:47","nodeType":"EnumValue","src":"245:4:47"},{"id":9854,"name":"Up","nameLocation":"287:2:47","nodeType":"EnumValue","src":"287:2:47"},{"id":9855,"name":"Zero","nameLocation":"318:4:47","nodeType":"EnumValue","src":"318:4:47"}],"name":"Rounding","nameLocation":"226:8:47","nodeType":"EnumDefinition","src":"221:122:47"},{"body":{"id":9873,"nodeType":"Block","src":"480:38:47","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9866,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9859,"src":"497:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9867,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"502:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":9870,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"510:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:14:47","trueExpression":{"id":9869,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9859,"src":"506:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9865,"id":9872,"nodeType":"Return","src":"490:21:47"}]},"documentation":{"id":9857,"nodeType":"StructuredDocumentation","src":"349:59:47","text":" @dev Returns the largest of two numbers."},"id":9874,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:47","nodeType":"FunctionDefinition","parameters":{"id":9862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9859,"mutability":"mutable","name":"a","nameLocation":"434:1:47","nodeType":"VariableDeclaration","scope":9874,"src":"426:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9858,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9861,"mutability":"mutable","name":"b","nameLocation":"445:1:47","nodeType":"VariableDeclaration","scope":9874,"src":"437:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9860,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:47"},"returnParameters":{"id":9865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9874,"src":"471:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9863,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:47"},"scope":10353,"src":"413:105:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9891,"nodeType":"Block","src":"656:37:47","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9884,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"673:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9885,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"677:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"673:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":9888,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"685:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"673:13:47","trueExpression":{"id":9887,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"681:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9883,"id":9890,"nodeType":"Return","src":"666:20:47"}]},"documentation":{"id":9875,"nodeType":"StructuredDocumentation","src":"524:60:47","text":" @dev Returns the smallest of two numbers."},"id":9892,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"598:3:47","nodeType":"FunctionDefinition","parameters":{"id":9880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9877,"mutability":"mutable","name":"a","nameLocation":"610:1:47","nodeType":"VariableDeclaration","scope":9892,"src":"602:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9876,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9879,"mutability":"mutable","name":"b","nameLocation":"621:1:47","nodeType":"VariableDeclaration","scope":9892,"src":"613:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9878,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:22:47"},"returnParameters":{"id":9883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9892,"src":"647:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9881,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:9:47"},"scope":10353,"src":"589:104:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9914,"nodeType":"Block","src":"877:82:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9902,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9895,"src":"932:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":9903,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9897,"src":"936:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"932:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9905,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"931:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9906,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9895,"src":"942:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":9907,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9897,"src":"946:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"942:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9909,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"941:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":9910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"941:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9901,"id":9913,"nodeType":"Return","src":"924:28:47"}]},"documentation":{"id":9893,"nodeType":"StructuredDocumentation","src":"699:102:47","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":9915,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"815:7:47","nodeType":"FunctionDefinition","parameters":{"id":9898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9895,"mutability":"mutable","name":"a","nameLocation":"831:1:47","nodeType":"VariableDeclaration","scope":9915,"src":"823:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9894,"name":"uint256","nodeType":"ElementaryTypeName","src":"823:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9897,"mutability":"mutable","name":"b","nameLocation":"842:1:47","nodeType":"VariableDeclaration","scope":9915,"src":"834:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9896,"name":"uint256","nodeType":"ElementaryTypeName","src":"834:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"822:22:47"},"returnParameters":{"id":9901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9915,"src":"868:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9899,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"867:9:47"},"scope":10353,"src":"806:153:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9939,"nodeType":"Block","src":"1229:123:47","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9925,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"1317:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1317:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9929,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"1331:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1335:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1331:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9932,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1330:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9933,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9920,"src":"1340:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1330:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":9935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1344:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1317:28:47","trueExpression":{"hexValue":"30","id":9928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1326:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9924,"id":9938,"nodeType":"Return","src":"1310:35:47"}]},"documentation":{"id":9916,"nodeType":"StructuredDocumentation","src":"965:188:47","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":9940,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1167:7:47","nodeType":"FunctionDefinition","parameters":{"id":9921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9918,"mutability":"mutable","name":"a","nameLocation":"1183:1:47","nodeType":"VariableDeclaration","scope":9940,"src":"1175:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9917,"name":"uint256","nodeType":"ElementaryTypeName","src":"1175:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9920,"mutability":"mutable","name":"b","nameLocation":"1194:1:47","nodeType":"VariableDeclaration","scope":9940,"src":"1186:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9919,"name":"uint256","nodeType":"ElementaryTypeName","src":"1186:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1174:22:47"},"returnParameters":{"id":9924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9940,"src":"1220:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9922,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1219:9:47"},"scope":10353,"src":"1158:194:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10061,"nodeType":"Block","src":"1796:3797:47","statements":[{"id":10060,"nodeType":"UncheckedBlock","src":"1806:3781:47","statements":[{"assignments":[9953],"declarations":[{"constant":false,"id":9953,"mutability":"mutable","name":"prod0","nameLocation":"2135:5:47","nodeType":"VariableDeclaration","scope":10060,"src":"2127:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9952,"name":"uint256","nodeType":"ElementaryTypeName","src":"2127:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9954,"nodeType":"VariableDeclarationStatement","src":"2127:13:47"},{"assignments":[9956],"declarations":[{"constant":false,"id":9956,"mutability":"mutable","name":"prod1","nameLocation":"2207:5:47","nodeType":"VariableDeclaration","scope":10060,"src":"2199:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9955,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9957,"nodeType":"VariableDeclarationStatement","src":"2199:13:47"},{"AST":{"nodeType":"YulBlock","src":"2279:157:47","statements":[{"nodeType":"YulVariableDeclaration","src":"2297:30:47","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2314:1:47"},{"name":"y","nodeType":"YulIdentifier","src":"2317:1:47"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2324:1:47","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2320:3:47"},"nodeType":"YulFunctionCall","src":"2320:6:47"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2307:6:47"},"nodeType":"YulFunctionCall","src":"2307:20:47"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2301:2:47","type":""}]},{"nodeType":"YulAssignment","src":"2344:18:47","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2357:1:47"},{"name":"y","nodeType":"YulIdentifier","src":"2360:1:47"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2353:3:47"},"nodeType":"YulFunctionCall","src":"2353:9:47"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2344:5:47"}]},{"nodeType":"YulAssignment","src":"2379:43:47","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2396:2:47"},{"name":"prod0","nodeType":"YulIdentifier","src":"2400:5:47"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2392:3:47"},"nodeType":"YulFunctionCall","src":"2392:14:47"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2411:2:47"},{"name":"prod0","nodeType":"YulIdentifier","src":"2415:5:47"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2408:2:47"},"nodeType":"YulFunctionCall","src":"2408:13:47"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2388:3:47"},"nodeType":"YulFunctionCall","src":"2388:34:47"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2379:5:47"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":9953,"isOffset":false,"isSlot":false,"src":"2344:5:47","valueSize":1},{"declaration":9953,"isOffset":false,"isSlot":false,"src":"2400:5:47","valueSize":1},{"declaration":9953,"isOffset":false,"isSlot":false,"src":"2415:5:47","valueSize":1},{"declaration":9956,"isOffset":false,"isSlot":false,"src":"2379:5:47","valueSize":1},{"declaration":9943,"isOffset":false,"isSlot":false,"src":"2314:1:47","valueSize":1},{"declaration":9943,"isOffset":false,"isSlot":false,"src":"2357:1:47","valueSize":1},{"declaration":9945,"isOffset":false,"isSlot":false,"src":"2317:1:47","valueSize":1},{"declaration":9945,"isOffset":false,"isSlot":false,"src":"2360:1:47","valueSize":1}],"id":9958,"nodeType":"InlineAssembly","src":"2270:166:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9959,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9956,"src":"2517:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2526:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2517:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9967,"nodeType":"IfStatement","src":"2513:75:47","trueBody":{"id":9966,"nodeType":"Block","src":"2529:59:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9962,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9953,"src":"2554:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9963,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"2562:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2554:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9951,"id":9965,"nodeType":"Return","src":"2547:26:47"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9969,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"2698:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9970,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9956,"src":"2712:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2698:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9968,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2690:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2690:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9973,"nodeType":"ExpressionStatement","src":"2690:28:47"},{"assignments":[9975],"declarations":[{"constant":false,"id":9975,"mutability":"mutable","name":"remainder","nameLocation":"2982:9:47","nodeType":"VariableDeclaration","scope":10060,"src":"2974:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9974,"name":"uint256","nodeType":"ElementaryTypeName","src":"2974:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9976,"nodeType":"VariableDeclarationStatement","src":"2974:17:47"},{"AST":{"nodeType":"YulBlock","src":"3014:291:47","statements":[{"nodeType":"YulAssignment","src":"3083:38:47","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3103:1:47"},{"name":"y","nodeType":"YulIdentifier","src":"3106:1:47"},{"name":"denominator","nodeType":"YulIdentifier","src":"3109:11:47"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3096:6:47"},"nodeType":"YulFunctionCall","src":"3096:25:47"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3083:9:47"}]},{"nodeType":"YulAssignment","src":"3203:41:47","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3216:5:47"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3226:9:47"},{"name":"prod0","nodeType":"YulIdentifier","src":"3237:5:47"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3223:2:47"},"nodeType":"YulFunctionCall","src":"3223:20:47"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3212:3:47"},"nodeType":"YulFunctionCall","src":"3212:32:47"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3203:5:47"}]},{"nodeType":"YulAssignment","src":"3261:30:47","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3274:5:47"},{"name":"remainder","nodeType":"YulIdentifier","src":"3281:9:47"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3270:3:47"},"nodeType":"YulFunctionCall","src":"3270:21:47"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3261:5:47"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":9947,"isOffset":false,"isSlot":false,"src":"3109:11:47","valueSize":1},{"declaration":9953,"isOffset":false,"isSlot":false,"src":"3237:5:47","valueSize":1},{"declaration":9953,"isOffset":false,"isSlot":false,"src":"3261:5:47","valueSize":1},{"declaration":9953,"isOffset":false,"isSlot":false,"src":"3274:5:47","valueSize":1},{"declaration":9956,"isOffset":false,"isSlot":false,"src":"3203:5:47","valueSize":1},{"declaration":9956,"isOffset":false,"isSlot":false,"src":"3216:5:47","valueSize":1},{"declaration":9975,"isOffset":false,"isSlot":false,"src":"3083:9:47","valueSize":1},{"declaration":9975,"isOffset":false,"isSlot":false,"src":"3226:9:47","valueSize":1},{"declaration":9975,"isOffset":false,"isSlot":false,"src":"3281:9:47","valueSize":1},{"declaration":9943,"isOffset":false,"isSlot":false,"src":"3103:1:47","valueSize":1},{"declaration":9945,"isOffset":false,"isSlot":false,"src":"3106:1:47","valueSize":1}],"id":9977,"nodeType":"InlineAssembly","src":"3005:300:47"},{"assignments":[9979],"declarations":[{"constant":false,"id":9979,"mutability":"mutable","name":"twos","nameLocation":"3620:4:47","nodeType":"VariableDeclaration","scope":10060,"src":"3612:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9978,"name":"uint256","nodeType":"ElementaryTypeName","src":"3612:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9987,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9980,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"3627:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3642:12:47","subExpression":{"id":9981,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"3643:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":9983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3657:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3642:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9985,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3641:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:32:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3612:47:47"},{"AST":{"nodeType":"YulBlock","src":"3682:362:47","statements":[{"nodeType":"YulAssignment","src":"3747:37:47","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"3766:11:47"},{"name":"twos","nodeType":"YulIdentifier","src":"3779:4:47"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3762:3:47"},"nodeType":"YulFunctionCall","src":"3762:22:47"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"3747:11:47"}]},{"nodeType":"YulAssignment","src":"3851:25:47","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3864:5:47"},{"name":"twos","nodeType":"YulIdentifier","src":"3871:4:47"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3860:3:47"},"nodeType":"YulFunctionCall","src":"3860:16:47"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3851:5:47"}]},{"nodeType":"YulAssignment","src":"3991:39:47","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4011:1:47","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4014:4:47"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4007:3:47"},"nodeType":"YulFunctionCall","src":"4007:12:47"},{"name":"twos","nodeType":"YulIdentifier","src":"4021:4:47"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4003:3:47"},"nodeType":"YulFunctionCall","src":"4003:23:47"},{"kind":"number","nodeType":"YulLiteral","src":"4028:1:47","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3999:3:47"},"nodeType":"YulFunctionCall","src":"3999:31:47"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"3991:4:47"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":9947,"isOffset":false,"isSlot":false,"src":"3747:11:47","valueSize":1},{"declaration":9947,"isOffset":false,"isSlot":false,"src":"3766:11:47","valueSize":1},{"declaration":9953,"isOffset":false,"isSlot":false,"src":"3851:5:47","valueSize":1},{"declaration":9953,"isOffset":false,"isSlot":false,"src":"3864:5:47","valueSize":1},{"declaration":9979,"isOffset":false,"isSlot":false,"src":"3779:4:47","valueSize":1},{"declaration":9979,"isOffset":false,"isSlot":false,"src":"3871:4:47","valueSize":1},{"declaration":9979,"isOffset":false,"isSlot":false,"src":"3991:4:47","valueSize":1},{"declaration":9979,"isOffset":false,"isSlot":false,"src":"4014:4:47","valueSize":1},{"declaration":9979,"isOffset":false,"isSlot":false,"src":"4021:4:47","valueSize":1}],"id":9988,"nodeType":"InlineAssembly","src":"3673:371:47"},{"expression":{"id":9993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9989,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9953,"src":"4110:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9990,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9956,"src":"4119:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9991,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9979,"src":"4127:4:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4119:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4110:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9994,"nodeType":"ExpressionStatement","src":"4110:21:47"},{"assignments":[9996],"declarations":[{"constant":false,"id":9996,"mutability":"mutable","name":"inverse","nameLocation":"4457:7:47","nodeType":"VariableDeclaration","scope":10060,"src":"4449:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9995,"name":"uint256","nodeType":"ElementaryTypeName","src":"4449:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10003,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":9997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4468:1:47","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9998,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"4472:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4468:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10000,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4467:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":10001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4487:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4467:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4449:39:47"},{"expression":{"id":10010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10004,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4705:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4716:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10006,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"4720:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10007,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4734:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4720:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4716:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4705:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10011,"nodeType":"ExpressionStatement","src":"4705:36:47"},{"expression":{"id":10018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10012,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4774:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4785:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10014,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"4789:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10015,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4803:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4789:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4785:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4774:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10019,"nodeType":"ExpressionStatement","src":"4774:36:47"},{"expression":{"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10020,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4844:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4855:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10022,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"4859:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10023,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4873:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4859:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4855:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4844:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10027,"nodeType":"ExpressionStatement","src":"4844:36:47"},{"expression":{"id":10034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10028,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4914:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4925:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10030,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"4929:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10031,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4943:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4929:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4925:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4914:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10035,"nodeType":"ExpressionStatement","src":"4914:36:47"},{"expression":{"id":10042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10036,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"4984:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4995:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10038,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"4999:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10039,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"5013:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4999:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4995:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4984:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10043,"nodeType":"ExpressionStatement","src":"4984:36:47"},{"expression":{"id":10050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10044,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"5055:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5066:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10046,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9947,"src":"5070:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10047,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"5084:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5070:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5066:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5055:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10051,"nodeType":"ExpressionStatement","src":"5055:36:47"},{"expression":{"id":10056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10052,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9950,"src":"5525:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10053,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9953,"src":"5534:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10054,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"5542:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5534:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5525:24:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10057,"nodeType":"ExpressionStatement","src":"5525:24:47"},{"expression":{"id":10058,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9950,"src":"5570:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9951,"id":10059,"nodeType":"Return","src":"5563:13:47"}]}]},"documentation":{"id":9941,"nodeType":"StructuredDocumentation","src":"1358:305:47","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":10062,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1677:6:47","nodeType":"FunctionDefinition","parameters":{"id":9948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9943,"mutability":"mutable","name":"x","nameLocation":"1701:1:47","nodeType":"VariableDeclaration","scope":10062,"src":"1693:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9942,"name":"uint256","nodeType":"ElementaryTypeName","src":"1693:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9945,"mutability":"mutable","name":"y","nameLocation":"1720:1:47","nodeType":"VariableDeclaration","scope":10062,"src":"1712:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9944,"name":"uint256","nodeType":"ElementaryTypeName","src":"1712:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9947,"mutability":"mutable","name":"denominator","nameLocation":"1739:11:47","nodeType":"VariableDeclaration","scope":10062,"src":"1731:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9946,"name":"uint256","nodeType":"ElementaryTypeName","src":"1731:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1683:73:47"},"returnParameters":{"id":9951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9950,"mutability":"mutable","name":"result","nameLocation":"1788:6:47","nodeType":"VariableDeclaration","scope":10062,"src":"1780:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9949,"name":"uint256","nodeType":"ElementaryTypeName","src":"1780:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1779:16:47"},"scope":10353,"src":"1668:3925:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10105,"nodeType":"Block","src":"5873:189:47","statements":[{"assignments":[10078],"declarations":[{"constant":false,"id":10078,"mutability":"mutable","name":"result","nameLocation":"5891:6:47","nodeType":"VariableDeclaration","scope":10105,"src":"5883:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10077,"name":"uint256","nodeType":"ElementaryTypeName","src":"5883:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10084,"initialValue":{"arguments":[{"id":10080,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10065,"src":"5907:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10081,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"5910:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10082,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10069,"src":"5913:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10079,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[10062,10106],"referencedDeclaration":10062,"src":"5900:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":10083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5900:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5883:42:47"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"},"id":10088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10085,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10072,"src":"5939:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":10086,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9856,"src":"5951:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$9856_$","typeString":"type(enum Math.Rounding)"}},"id":10087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":9854,"src":"5951:11:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"}},"src":"5939:23:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10090,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10065,"src":"5973:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10091,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"5976:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10092,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10069,"src":"5979:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10089,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"5966:6:47","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":10093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5966:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5994:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5966:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5939:56:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10102,"nodeType":"IfStatement","src":"5935:98:47","trueBody":{"id":10101,"nodeType":"Block","src":"5997:36:47","statements":[{"expression":{"id":10099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10097,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"6011:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":10098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6021:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6011:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10100,"nodeType":"ExpressionStatement","src":"6011:11:47"}]}},{"expression":{"id":10103,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"6049:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10076,"id":10104,"nodeType":"Return","src":"6042:13:47"}]},"documentation":{"id":10063,"nodeType":"StructuredDocumentation","src":"5599:121:47","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":10106,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5734:6:47","nodeType":"FunctionDefinition","parameters":{"id":10073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10065,"mutability":"mutable","name":"x","nameLocation":"5758:1:47","nodeType":"VariableDeclaration","scope":10106,"src":"5750:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10064,"name":"uint256","nodeType":"ElementaryTypeName","src":"5750:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10067,"mutability":"mutable","name":"y","nameLocation":"5777:1:47","nodeType":"VariableDeclaration","scope":10106,"src":"5769:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10066,"name":"uint256","nodeType":"ElementaryTypeName","src":"5769:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10069,"mutability":"mutable","name":"denominator","nameLocation":"5796:11:47","nodeType":"VariableDeclaration","scope":10106,"src":"5788:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10068,"name":"uint256","nodeType":"ElementaryTypeName","src":"5788:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10072,"mutability":"mutable","name":"rounding","nameLocation":"5826:8:47","nodeType":"VariableDeclaration","scope":10106,"src":"5817:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"},"typeName":{"id":10071,"nodeType":"UserDefinedTypeName","pathNode":{"id":10070,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":9856,"src":"5817:8:47"},"referencedDeclaration":9856,"src":"5817:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"5740:100:47"},"returnParameters":{"id":10076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10106,"src":"5864:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10074,"name":"uint256","nodeType":"ElementaryTypeName","src":"5864:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5863:9:47"},"scope":10353,"src":"5725:337:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10315,"nodeType":"Block","src":"6338:2149:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10114,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"6352:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6357:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6352:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10120,"nodeType":"IfStatement","src":"6348:45:47","trueBody":{"id":10119,"nodeType":"Block","src":"6360:33:47","statements":[{"expression":{"hexValue":"30","id":10117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6381:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":10113,"id":10118,"nodeType":"Return","src":"6374:8:47"}]}},{"assignments":[10122],"declarations":[{"constant":false,"id":10122,"mutability":"mutable","name":"result","nameLocation":"7066:6:47","nodeType":"VariableDeclaration","scope":10315,"src":"7058:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10121,"name":"uint256","nodeType":"ElementaryTypeName","src":"7058:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10124,"initialValue":{"hexValue":"31","id":10123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7075:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"7058:18:47"},{"assignments":[10126],"declarations":[{"constant":false,"id":10126,"mutability":"mutable","name":"x","nameLocation":"7094:1:47","nodeType":"VariableDeclaration","scope":10315,"src":"7086:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10125,"name":"uint256","nodeType":"ElementaryTypeName","src":"7086:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10128,"initialValue":{"id":10127,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"7098:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7086:13:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10129,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7113:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":10130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7118:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"7113:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7124:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7113:12:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10143,"nodeType":"IfStatement","src":"7109:79:47","trueBody":{"id":10142,"nodeType":"Block","src":"7127:61:47","statements":[{"expression":{"id":10136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10134,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7141:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":10135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7147:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"7141:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10137,"nodeType":"ExpressionStatement","src":"7141:9:47"},{"expression":{"id":10140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10138,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"7164:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":10139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7175:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"7164:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10141,"nodeType":"ExpressionStatement","src":"7164:13:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10144,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7201:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":10145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7206:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"7201:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7211:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7201:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10158,"nodeType":"IfStatement","src":"7197:77:47","trueBody":{"id":10157,"nodeType":"Block","src":"7214:60:47","statements":[{"expression":{"id":10151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10149,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7228:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":10150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7234:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"7228:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10152,"nodeType":"ExpressionStatement","src":"7228:8:47"},{"expression":{"id":10155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10153,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"7250:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":10154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7261:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7250:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10156,"nodeType":"ExpressionStatement","src":"7250:13:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10159,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7287:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":10160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7292:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7287:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7297:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7287:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10173,"nodeType":"IfStatement","src":"7283:77:47","trueBody":{"id":10172,"nodeType":"Block","src":"7300:60:47","statements":[{"expression":{"id":10166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10164,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7314:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":10165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7320:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7314:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10167,"nodeType":"ExpressionStatement","src":"7314:8:47"},{"expression":{"id":10170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10168,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"7336:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":10169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7347:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"7336:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10171,"nodeType":"ExpressionStatement","src":"7336:13:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10174,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7373:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":10175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7378:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"7373:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7383:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7373:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10188,"nodeType":"IfStatement","src":"7369:76:47","trueBody":{"id":10187,"nodeType":"Block","src":"7386:59:47","statements":[{"expression":{"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10179,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7400:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":10180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7406:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"7400:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10182,"nodeType":"ExpressionStatement","src":"7400:8:47"},{"expression":{"id":10185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10183,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"7422:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":10184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7433:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"7422:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10186,"nodeType":"ExpressionStatement","src":"7422:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10189,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7458:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":10190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7463:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"7458:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7467:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7458:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10203,"nodeType":"IfStatement","src":"7454:74:47","trueBody":{"id":10202,"nodeType":"Block","src":"7470:58:47","statements":[{"expression":{"id":10196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10194,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7484:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":10195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7490:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"7484:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10197,"nodeType":"ExpressionStatement","src":"7484:7:47"},{"expression":{"id":10200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10198,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"7505:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":10199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7516:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7505:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10201,"nodeType":"ExpressionStatement","src":"7505:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10204,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7541:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":10205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7546:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7541:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7550:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7541:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10218,"nodeType":"IfStatement","src":"7537:74:47","trueBody":{"id":10217,"nodeType":"Block","src":"7553:58:47","statements":[{"expression":{"id":10211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10209,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7567:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":10210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7573:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7567:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10212,"nodeType":"ExpressionStatement","src":"7567:7:47"},{"expression":{"id":10215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10213,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"7588:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":10214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7599:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7588:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10216,"nodeType":"ExpressionStatement","src":"7588:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10219,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"7624:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":10220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7629:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7624:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7633:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7624:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10229,"nodeType":"IfStatement","src":"7620:53:47","trueBody":{"id":10228,"nodeType":"Block","src":"7636:37:47","statements":[{"expression":{"id":10226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10224,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"7650:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":10225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7661:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7650:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10227,"nodeType":"ExpressionStatement","src":"7650:12:47"}]}},{"id":10314,"nodeType":"UncheckedBlock","src":"8073:408:47","statements":[{"expression":{"id":10239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10230,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8097:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10231,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8107:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10232,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8116:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10233,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8120:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8116:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8107:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10236,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8106:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8131:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8106:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8097:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10240,"nodeType":"ExpressionStatement","src":"8097:35:47"},{"expression":{"id":10250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10241,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8146:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10242,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8156:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10243,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8165:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10244,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8169:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8165:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8156:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10247,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8155:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8180:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8155:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8146:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10251,"nodeType":"ExpressionStatement","src":"8146:35:47"},{"expression":{"id":10261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10252,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8195:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10253,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8205:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10254,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8214:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10255,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8218:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8205:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10258,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8204:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8229:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8204:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8195:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10262,"nodeType":"ExpressionStatement","src":"8195:35:47"},{"expression":{"id":10272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10263,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8244:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10264,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8254:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10265,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8263:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10266,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8267:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8263:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8254:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10269,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8253:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8278:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8253:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8244:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10273,"nodeType":"ExpressionStatement","src":"8244:35:47"},{"expression":{"id":10283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10274,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8293:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10275,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8303:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10276,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8312:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10277,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8316:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8312:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8303:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10280,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8302:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8327:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8302:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8293:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10284,"nodeType":"ExpressionStatement","src":"8293:35:47"},{"expression":{"id":10294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8342:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10286,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8352:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10287,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8361:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10288,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8365:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8361:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8352:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10291,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8351:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8376:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8351:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8342:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10295,"nodeType":"ExpressionStatement","src":"8342:35:47"},{"expression":{"id":10305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10296,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8391:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10297,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8401:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10298,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8410:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10299,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8414:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8410:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8401:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8400:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8425:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8400:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8391:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10306,"nodeType":"ExpressionStatement","src":"8391:35:47"},{"expression":{"arguments":[{"id":10308,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8451:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10309,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8459:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":10310,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"8463:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8459:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10307,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9892,"src":"8447:3:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8447:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10113,"id":10313,"nodeType":"Return","src":"8440:30:47"}]}]},"documentation":{"id":10107,"nodeType":"StructuredDocumentation","src":"6068:208:47","text":" @dev Returns the square root of a number. It the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":10316,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6290:4:47","nodeType":"FunctionDefinition","parameters":{"id":10110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10109,"mutability":"mutable","name":"a","nameLocation":"6303:1:47","nodeType":"VariableDeclaration","scope":10316,"src":"6295:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10108,"name":"uint256","nodeType":"ElementaryTypeName","src":"6295:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6294:11:47"},"returnParameters":{"id":10113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10316,"src":"6329:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6329:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6328:9:47"},"scope":10353,"src":"6281:2206:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10351,"nodeType":"Block","src":"8663:161:47","statements":[{"assignments":[10328],"declarations":[{"constant":false,"id":10328,"mutability":"mutable","name":"result","nameLocation":"8681:6:47","nodeType":"VariableDeclaration","scope":10351,"src":"8673:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10327,"name":"uint256","nodeType":"ElementaryTypeName","src":"8673:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10332,"initialValue":{"arguments":[{"id":10330,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10319,"src":"8695:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10329,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[10316,10352],"referencedDeclaration":10316,"src":"8690:4:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8690:7:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8673:24:47"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"},"id":10336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10333,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10322,"src":"8711:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":10334,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9856,"src":"8723:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$9856_$","typeString":"type(enum Math.Rounding)"}},"id":10335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":9854,"src":"8723:11:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"}},"src":"8711:23:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10337,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10328,"src":"8738:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10338,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10328,"src":"8747:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8738:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10340,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10319,"src":"8756:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8738:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8711:46:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10348,"nodeType":"IfStatement","src":"8707:88:47","trueBody":{"id":10347,"nodeType":"Block","src":"8759:36:47","statements":[{"expression":{"id":10345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10343,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10328,"src":"8773:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":10344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8783:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8773:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10346,"nodeType":"ExpressionStatement","src":"8773:11:47"}]}},{"expression":{"id":10349,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10328,"src":"8811:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10326,"id":10350,"nodeType":"Return","src":"8804:13:47"}]},"documentation":{"id":10317,"nodeType":"StructuredDocumentation","src":"8493:89:47","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":10352,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8596:4:47","nodeType":"FunctionDefinition","parameters":{"id":10323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10319,"mutability":"mutable","name":"a","nameLocation":"8609:1:47","nodeType":"VariableDeclaration","scope":10352,"src":"8601:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10318,"name":"uint256","nodeType":"ElementaryTypeName","src":"8601:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10322,"mutability":"mutable","name":"rounding","nameLocation":"8621:8:47","nodeType":"VariableDeclaration","scope":10352,"src":"8612:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"},"typeName":{"id":10321,"nodeType":"UserDefinedTypeName","pathNode":{"id":10320,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":9856,"src":"8612:8:47"},"referencedDeclaration":9856,"src":"8612:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$9856","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8600:30:47"},"returnParameters":{"id":10326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10352,"src":"8654:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10324,"name":"uint256","nodeType":"ElementaryTypeName","src":"8654:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8653:9:47"},"scope":10353,"src":"8587:237:47","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10354,"src":"202:8624:47","usedErrors":[]}],"src":"103:8724:47"},"id":47},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[12204]},"id":12205,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10355,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:48"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10356,"nodeType":"StructuredDocumentation","src":"132:709:48","text":" @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always.\n Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n all math on `uint256` and `int256` and then downcasting."},"fullyImplemented":true,"id":12204,"linearizedBaseContracts":[12204],"name":"SafeCast","nameLocation":"850:8:48","nodeType":"ContractDefinition","nodes":[{"body":{"id":10380,"nodeType":"Block","src":"1254:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10359,"src":"1272:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1286:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":10367,"name":"uint248","nodeType":"ElementaryTypeName","src":"1286:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":10366,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1281:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1281:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":10370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1281:17:48","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1272:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":10372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1300:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":10364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1264:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1264:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10374,"nodeType":"ExpressionStatement","src":"1264:78:48"},{"expression":{"arguments":[{"id":10377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10359,"src":"1367:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1359:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":10375,"name":"uint248","nodeType":"ElementaryTypeName","src":"1359:7:48","typeDescriptions":{}}},"id":10378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1359:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":10363,"id":10379,"nodeType":"Return","src":"1352:21:48"}]},"documentation":{"id":10357,"nodeType":"StructuredDocumentation","src":"865:318:48","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":10381,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1197:9:48","nodeType":"FunctionDefinition","parameters":{"id":10360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10359,"mutability":"mutable","name":"value","nameLocation":"1215:5:48","nodeType":"VariableDeclaration","scope":10381,"src":"1207:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1207:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1206:15:48"},"returnParameters":{"id":10363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10381,"src":"1245:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":10361,"name":"uint248","nodeType":"ElementaryTypeName","src":"1245:7:48","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1244:9:48"},"scope":12204,"src":"1188:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10405,"nodeType":"Block","src":"1775:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10390,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10384,"src":"1793:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1807:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":10392,"name":"uint240","nodeType":"ElementaryTypeName","src":"1807:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":10391,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1802:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1802:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":10395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1802:17:48","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"1793:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":10397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":10389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1785:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1785:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10399,"nodeType":"ExpressionStatement","src":"1785:78:48"},{"expression":{"arguments":[{"id":10402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10384,"src":"1888:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1880:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":10400,"name":"uint240","nodeType":"ElementaryTypeName","src":"1880:7:48","typeDescriptions":{}}},"id":10403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1880:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":10388,"id":10404,"nodeType":"Return","src":"1873:21:48"}]},"documentation":{"id":10382,"nodeType":"StructuredDocumentation","src":"1386:318:48","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":10406,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"1718:9:48","nodeType":"FunctionDefinition","parameters":{"id":10385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10384,"mutability":"mutable","name":"value","nameLocation":"1736:5:48","nodeType":"VariableDeclaration","scope":10406,"src":"1728:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10383,"name":"uint256","nodeType":"ElementaryTypeName","src":"1728:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1727:15:48"},"returnParameters":{"id":10388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10406,"src":"1766:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":10386,"name":"uint240","nodeType":"ElementaryTypeName","src":"1766:7:48","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"1765:9:48"},"scope":12204,"src":"1709:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10430,"nodeType":"Block","src":"2296:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10415,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10409,"src":"2314:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2328:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":10417,"name":"uint232","nodeType":"ElementaryTypeName","src":"2328:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":10416,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2323:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2323:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":10420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2323:17:48","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2314:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":10422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2342:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":10414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2306:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2306:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10424,"nodeType":"ExpressionStatement","src":"2306:78:48"},{"expression":{"arguments":[{"id":10427,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10409,"src":"2409:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2401:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":10425,"name":"uint232","nodeType":"ElementaryTypeName","src":"2401:7:48","typeDescriptions":{}}},"id":10428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2401:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":10413,"id":10429,"nodeType":"Return","src":"2394:21:48"}]},"documentation":{"id":10407,"nodeType":"StructuredDocumentation","src":"1907:318:48","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":10431,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2239:9:48","nodeType":"FunctionDefinition","parameters":{"id":10410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10409,"mutability":"mutable","name":"value","nameLocation":"2257:5:48","nodeType":"VariableDeclaration","scope":10431,"src":"2249:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10408,"name":"uint256","nodeType":"ElementaryTypeName","src":"2249:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2248:15:48"},"returnParameters":{"id":10413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10431,"src":"2287:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":10411,"name":"uint232","nodeType":"ElementaryTypeName","src":"2287:7:48","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2286:9:48"},"scope":12204,"src":"2230:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10455,"nodeType":"Block","src":"2817:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10440,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10434,"src":"2835:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2849:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":10442,"name":"uint224","nodeType":"ElementaryTypeName","src":"2849:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":10441,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2844:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2844:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":10445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2844:17:48","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"2835:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":10447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2863:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":10439,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2827:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2827:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10449,"nodeType":"ExpressionStatement","src":"2827:78:48"},{"expression":{"arguments":[{"id":10452,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10434,"src":"2930:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2922:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":10450,"name":"uint224","nodeType":"ElementaryTypeName","src":"2922:7:48","typeDescriptions":{}}},"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2922:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":10438,"id":10454,"nodeType":"Return","src":"2915:21:48"}]},"documentation":{"id":10432,"nodeType":"StructuredDocumentation","src":"2428:318:48","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.2._"},"id":10456,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"2760:9:48","nodeType":"FunctionDefinition","parameters":{"id":10435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10434,"mutability":"mutable","name":"value","nameLocation":"2778:5:48","nodeType":"VariableDeclaration","scope":10456,"src":"2770:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10433,"name":"uint256","nodeType":"ElementaryTypeName","src":"2770:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2769:15:48"},"returnParameters":{"id":10438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10456,"src":"2808:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":10436,"name":"uint224","nodeType":"ElementaryTypeName","src":"2808:7:48","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"2807:9:48"},"scope":12204,"src":"2751:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10480,"nodeType":"Block","src":"3338:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"3356:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3370:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":10467,"name":"uint216","nodeType":"ElementaryTypeName","src":"3370:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":10466,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3365:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3365:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":10470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3365:17:48","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3356:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":10472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3384:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":10464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3348:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3348:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10474,"nodeType":"ExpressionStatement","src":"3348:78:48"},{"expression":{"arguments":[{"id":10477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"3451:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3443:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":10475,"name":"uint216","nodeType":"ElementaryTypeName","src":"3443:7:48","typeDescriptions":{}}},"id":10478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3443:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":10463,"id":10479,"nodeType":"Return","src":"3436:21:48"}]},"documentation":{"id":10457,"nodeType":"StructuredDocumentation","src":"2949:318:48","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":10481,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3281:9:48","nodeType":"FunctionDefinition","parameters":{"id":10460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10459,"mutability":"mutable","name":"value","nameLocation":"3299:5:48","nodeType":"VariableDeclaration","scope":10481,"src":"3291:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10458,"name":"uint256","nodeType":"ElementaryTypeName","src":"3291:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3290:15:48"},"returnParameters":{"id":10463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10481,"src":"3329:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":10461,"name":"uint216","nodeType":"ElementaryTypeName","src":"3329:7:48","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3328:9:48"},"scope":12204,"src":"3272:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10505,"nodeType":"Block","src":"3859:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10490,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10484,"src":"3877:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3891:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":10492,"name":"uint208","nodeType":"ElementaryTypeName","src":"3891:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":10491,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3886:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3886:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":10495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3886:17:48","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"3877:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":10497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3905:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":10489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3869:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3869:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10499,"nodeType":"ExpressionStatement","src":"3869:78:48"},{"expression":{"arguments":[{"id":10502,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10484,"src":"3972:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3964:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":10500,"name":"uint208","nodeType":"ElementaryTypeName","src":"3964:7:48","typeDescriptions":{}}},"id":10503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3964:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":10488,"id":10504,"nodeType":"Return","src":"3957:21:48"}]},"documentation":{"id":10482,"nodeType":"StructuredDocumentation","src":"3470:318:48","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":10506,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"3802:9:48","nodeType":"FunctionDefinition","parameters":{"id":10485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10484,"mutability":"mutable","name":"value","nameLocation":"3820:5:48","nodeType":"VariableDeclaration","scope":10506,"src":"3812:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3812:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3811:15:48"},"returnParameters":{"id":10488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10506,"src":"3850:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":10486,"name":"uint208","nodeType":"ElementaryTypeName","src":"3850:7:48","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"3849:9:48"},"scope":12204,"src":"3793:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10530,"nodeType":"Block","src":"4380:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"4398:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4412:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":10517,"name":"uint200","nodeType":"ElementaryTypeName","src":"4412:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":10516,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4407:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4407:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":10520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"4407:17:48","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4398:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":10522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4426:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":10514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4390:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4390:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10524,"nodeType":"ExpressionStatement","src":"4390:78:48"},{"expression":{"arguments":[{"id":10527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"4493:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4485:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":10525,"name":"uint200","nodeType":"ElementaryTypeName","src":"4485:7:48","typeDescriptions":{}}},"id":10528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4485:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":10513,"id":10529,"nodeType":"Return","src":"4478:21:48"}]},"documentation":{"id":10507,"nodeType":"StructuredDocumentation","src":"3991:318:48","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":10531,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4323:9:48","nodeType":"FunctionDefinition","parameters":{"id":10510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10509,"mutability":"mutable","name":"value","nameLocation":"4341:5:48","nodeType":"VariableDeclaration","scope":10531,"src":"4333:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10508,"name":"uint256","nodeType":"ElementaryTypeName","src":"4333:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4332:15:48"},"returnParameters":{"id":10513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10531,"src":"4371:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":10511,"name":"uint200","nodeType":"ElementaryTypeName","src":"4371:7:48","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4370:9:48"},"scope":12204,"src":"4314:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10555,"nodeType":"Block","src":"4901:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10540,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10534,"src":"4919:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4933:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":10542,"name":"uint192","nodeType":"ElementaryTypeName","src":"4933:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":10541,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4928:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4928:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":10545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"4928:17:48","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"4919:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":10547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4947:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":10539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4911:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4911:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10549,"nodeType":"ExpressionStatement","src":"4911:78:48"},{"expression":{"arguments":[{"id":10552,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10534,"src":"5014:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5006:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":10550,"name":"uint192","nodeType":"ElementaryTypeName","src":"5006:7:48","typeDescriptions":{}}},"id":10553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5006:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":10538,"id":10554,"nodeType":"Return","src":"4999:21:48"}]},"documentation":{"id":10532,"nodeType":"StructuredDocumentation","src":"4512:318:48","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":10556,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"4844:9:48","nodeType":"FunctionDefinition","parameters":{"id":10535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10534,"mutability":"mutable","name":"value","nameLocation":"4862:5:48","nodeType":"VariableDeclaration","scope":10556,"src":"4854:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10533,"name":"uint256","nodeType":"ElementaryTypeName","src":"4854:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4853:15:48"},"returnParameters":{"id":10538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10556,"src":"4892:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":10536,"name":"uint192","nodeType":"ElementaryTypeName","src":"4892:7:48","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"4891:9:48"},"scope":12204,"src":"4835:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10580,"nodeType":"Block","src":"5422:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10559,"src":"5440:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5454:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":10567,"name":"uint184","nodeType":"ElementaryTypeName","src":"5454:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":10566,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5449:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5449:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":10570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5449:17:48","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5440:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":10572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5468:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":10564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5432:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5432:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10574,"nodeType":"ExpressionStatement","src":"5432:78:48"},{"expression":{"arguments":[{"id":10577,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10559,"src":"5535:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5527:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":10575,"name":"uint184","nodeType":"ElementaryTypeName","src":"5527:7:48","typeDescriptions":{}}},"id":10578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5527:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":10563,"id":10579,"nodeType":"Return","src":"5520:21:48"}]},"documentation":{"id":10557,"nodeType":"StructuredDocumentation","src":"5033:318:48","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":10581,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5365:9:48","nodeType":"FunctionDefinition","parameters":{"id":10560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10559,"mutability":"mutable","name":"value","nameLocation":"5383:5:48","nodeType":"VariableDeclaration","scope":10581,"src":"5375:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10558,"name":"uint256","nodeType":"ElementaryTypeName","src":"5375:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5374:15:48"},"returnParameters":{"id":10563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10581,"src":"5413:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":10561,"name":"uint184","nodeType":"ElementaryTypeName","src":"5413:7:48","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5412:9:48"},"scope":12204,"src":"5356:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10605,"nodeType":"Block","src":"5943:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"5961:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5975:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":10592,"name":"uint176","nodeType":"ElementaryTypeName","src":"5975:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":10591,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5970:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5970:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":10595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5970:17:48","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"5961:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":10597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5989:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":10589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5953:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5953:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10599,"nodeType":"ExpressionStatement","src":"5953:78:48"},{"expression":{"arguments":[{"id":10602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"6056:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6048:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":10600,"name":"uint176","nodeType":"ElementaryTypeName","src":"6048:7:48","typeDescriptions":{}}},"id":10603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6048:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":10588,"id":10604,"nodeType":"Return","src":"6041:21:48"}]},"documentation":{"id":10582,"nodeType":"StructuredDocumentation","src":"5554:318:48","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":10606,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"5886:9:48","nodeType":"FunctionDefinition","parameters":{"id":10585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10584,"mutability":"mutable","name":"value","nameLocation":"5904:5:48","nodeType":"VariableDeclaration","scope":10606,"src":"5896:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10583,"name":"uint256","nodeType":"ElementaryTypeName","src":"5896:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5895:15:48"},"returnParameters":{"id":10588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10606,"src":"5934:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":10586,"name":"uint176","nodeType":"ElementaryTypeName","src":"5934:7:48","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"5933:9:48"},"scope":12204,"src":"5877:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10630,"nodeType":"Block","src":"6464:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10609,"src":"6482:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6496:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":10617,"name":"uint168","nodeType":"ElementaryTypeName","src":"6496:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":10616,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6491:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6491:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":10620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6491:17:48","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6482:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":10622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6510:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":10614,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6474:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6474:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10624,"nodeType":"ExpressionStatement","src":"6474:78:48"},{"expression":{"arguments":[{"id":10627,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10609,"src":"6577:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6569:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":10625,"name":"uint168","nodeType":"ElementaryTypeName","src":"6569:7:48","typeDescriptions":{}}},"id":10628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6569:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":10613,"id":10629,"nodeType":"Return","src":"6562:21:48"}]},"documentation":{"id":10607,"nodeType":"StructuredDocumentation","src":"6075:318:48","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":10631,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6407:9:48","nodeType":"FunctionDefinition","parameters":{"id":10610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10609,"mutability":"mutable","name":"value","nameLocation":"6425:5:48","nodeType":"VariableDeclaration","scope":10631,"src":"6417:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10608,"name":"uint256","nodeType":"ElementaryTypeName","src":"6417:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6416:15:48"},"returnParameters":{"id":10613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10631,"src":"6455:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":10611,"name":"uint168","nodeType":"ElementaryTypeName","src":"6455:7:48","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6454:9:48"},"scope":12204,"src":"6398:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10655,"nodeType":"Block","src":"6985:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"7003:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7017:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10642,"name":"uint160","nodeType":"ElementaryTypeName","src":"7017:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":10641,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7012:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7012:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":10645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"7012:17:48","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7003:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":10647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7031:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":10639,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6995:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6995:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10649,"nodeType":"ExpressionStatement","src":"6995:78:48"},{"expression":{"arguments":[{"id":10652,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"7098:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7090:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10650,"name":"uint160","nodeType":"ElementaryTypeName","src":"7090:7:48","typeDescriptions":{}}},"id":10653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7090:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":10638,"id":10654,"nodeType":"Return","src":"7083:21:48"}]},"documentation":{"id":10632,"nodeType":"StructuredDocumentation","src":"6596:318:48","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":10656,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"6928:9:48","nodeType":"FunctionDefinition","parameters":{"id":10635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10634,"mutability":"mutable","name":"value","nameLocation":"6946:5:48","nodeType":"VariableDeclaration","scope":10656,"src":"6938:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10633,"name":"uint256","nodeType":"ElementaryTypeName","src":"6938:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6937:15:48"},"returnParameters":{"id":10638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10656,"src":"6976:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":10636,"name":"uint160","nodeType":"ElementaryTypeName","src":"6976:7:48","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"6975:9:48"},"scope":12204,"src":"6919:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10680,"nodeType":"Block","src":"7506:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10665,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10659,"src":"7524:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7538:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":10667,"name":"uint152","nodeType":"ElementaryTypeName","src":"7538:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":10666,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7533:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7533:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":10670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"7533:17:48","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7524:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":10672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":10664,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7516:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7516:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10674,"nodeType":"ExpressionStatement","src":"7516:78:48"},{"expression":{"arguments":[{"id":10677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10659,"src":"7619:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7611:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":10675,"name":"uint152","nodeType":"ElementaryTypeName","src":"7611:7:48","typeDescriptions":{}}},"id":10678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7611:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":10663,"id":10679,"nodeType":"Return","src":"7604:21:48"}]},"documentation":{"id":10657,"nodeType":"StructuredDocumentation","src":"7117:318:48","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":10681,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7449:9:48","nodeType":"FunctionDefinition","parameters":{"id":10660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10659,"mutability":"mutable","name":"value","nameLocation":"7467:5:48","nodeType":"VariableDeclaration","scope":10681,"src":"7459:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10658,"name":"uint256","nodeType":"ElementaryTypeName","src":"7459:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7458:15:48"},"returnParameters":{"id":10663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10681,"src":"7497:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":10661,"name":"uint152","nodeType":"ElementaryTypeName","src":"7497:7:48","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7496:9:48"},"scope":12204,"src":"7440:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10705,"nodeType":"Block","src":"8027:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10690,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10684,"src":"8045:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8059:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":10692,"name":"uint144","nodeType":"ElementaryTypeName","src":"8059:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":10691,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8054:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8054:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":10695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"8054:17:48","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8045:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":10697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8073:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":10689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8037:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8037:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10699,"nodeType":"ExpressionStatement","src":"8037:78:48"},{"expression":{"arguments":[{"id":10702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10684,"src":"8140:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8132:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":10700,"name":"uint144","nodeType":"ElementaryTypeName","src":"8132:7:48","typeDescriptions":{}}},"id":10703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8132:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":10688,"id":10704,"nodeType":"Return","src":"8125:21:48"}]},"documentation":{"id":10682,"nodeType":"StructuredDocumentation","src":"7638:318:48","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":10706,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"7970:9:48","nodeType":"FunctionDefinition","parameters":{"id":10685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10684,"mutability":"mutable","name":"value","nameLocation":"7988:5:48","nodeType":"VariableDeclaration","scope":10706,"src":"7980:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10683,"name":"uint256","nodeType":"ElementaryTypeName","src":"7980:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7979:15:48"},"returnParameters":{"id":10688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10706,"src":"8018:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":10686,"name":"uint144","nodeType":"ElementaryTypeName","src":"8018:7:48","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8017:9:48"},"scope":12204,"src":"7961:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10730,"nodeType":"Block","src":"8548:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"8566:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8580:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":10717,"name":"uint136","nodeType":"ElementaryTypeName","src":"8580:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":10716,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8575:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8575:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":10720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"8575:17:48","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8566:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":10722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8594:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":10714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8558:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8558:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10724,"nodeType":"ExpressionStatement","src":"8558:78:48"},{"expression":{"arguments":[{"id":10727,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"8661:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8653:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":10725,"name":"uint136","nodeType":"ElementaryTypeName","src":"8653:7:48","typeDescriptions":{}}},"id":10728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8653:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":10713,"id":10729,"nodeType":"Return","src":"8646:21:48"}]},"documentation":{"id":10707,"nodeType":"StructuredDocumentation","src":"8159:318:48","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":10731,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8491:9:48","nodeType":"FunctionDefinition","parameters":{"id":10710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10709,"mutability":"mutable","name":"value","nameLocation":"8509:5:48","nodeType":"VariableDeclaration","scope":10731,"src":"8501:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10708,"name":"uint256","nodeType":"ElementaryTypeName","src":"8501:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8500:15:48"},"returnParameters":{"id":10713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10731,"src":"8539:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":10711,"name":"uint136","nodeType":"ElementaryTypeName","src":"8539:7:48","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8538:9:48"},"scope":12204,"src":"8482:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10755,"nodeType":"Block","src":"9069:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10740,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10734,"src":"9087:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9101:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":10742,"name":"uint128","nodeType":"ElementaryTypeName","src":"9101:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":10741,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9096:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9096:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":10745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"9096:17:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9087:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":10747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9115:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":10739,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9079:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9079:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10749,"nodeType":"ExpressionStatement","src":"9079:78:48"},{"expression":{"arguments":[{"id":10752,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10734,"src":"9182:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9174:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":10750,"name":"uint128","nodeType":"ElementaryTypeName","src":"9174:7:48","typeDescriptions":{}}},"id":10753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9174:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":10738,"id":10754,"nodeType":"Return","src":"9167:21:48"}]},"documentation":{"id":10732,"nodeType":"StructuredDocumentation","src":"8680:318:48","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v2.5._"},"id":10756,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9012:9:48","nodeType":"FunctionDefinition","parameters":{"id":10735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10734,"mutability":"mutable","name":"value","nameLocation":"9030:5:48","nodeType":"VariableDeclaration","scope":10756,"src":"9022:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10733,"name":"uint256","nodeType":"ElementaryTypeName","src":"9022:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9021:15:48"},"returnParameters":{"id":10738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10756,"src":"9060:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":10736,"name":"uint128","nodeType":"ElementaryTypeName","src":"9060:7:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9059:9:48"},"scope":12204,"src":"9003:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10780,"nodeType":"Block","src":"9590:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10765,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"9608:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9622:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":10767,"name":"uint120","nodeType":"ElementaryTypeName","src":"9622:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":10766,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9617:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9617:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":10770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"9617:17:48","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9608:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":10772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9636:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":10764,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9600:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9600:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10774,"nodeType":"ExpressionStatement","src":"9600:78:48"},{"expression":{"arguments":[{"id":10777,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"9703:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9695:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":10775,"name":"uint120","nodeType":"ElementaryTypeName","src":"9695:7:48","typeDescriptions":{}}},"id":10778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9695:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":10763,"id":10779,"nodeType":"Return","src":"9688:21:48"}]},"documentation":{"id":10757,"nodeType":"StructuredDocumentation","src":"9201:318:48","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":10781,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9533:9:48","nodeType":"FunctionDefinition","parameters":{"id":10760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10759,"mutability":"mutable","name":"value","nameLocation":"9551:5:48","nodeType":"VariableDeclaration","scope":10781,"src":"9543:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10758,"name":"uint256","nodeType":"ElementaryTypeName","src":"9543:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9542:15:48"},"returnParameters":{"id":10763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10781,"src":"9581:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":10761,"name":"uint120","nodeType":"ElementaryTypeName","src":"9581:7:48","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9580:9:48"},"scope":12204,"src":"9524:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10805,"nodeType":"Block","src":"10111:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10790,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10784,"src":"10129:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10143:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":10792,"name":"uint112","nodeType":"ElementaryTypeName","src":"10143:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":10791,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10138:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10138:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":10795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10138:17:48","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10129:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":10797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10157:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":10789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10121:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10121:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10799,"nodeType":"ExpressionStatement","src":"10121:78:48"},{"expression":{"arguments":[{"id":10802,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10784,"src":"10224:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10216:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":10800,"name":"uint112","nodeType":"ElementaryTypeName","src":"10216:7:48","typeDescriptions":{}}},"id":10803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10216:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":10788,"id":10804,"nodeType":"Return","src":"10209:21:48"}]},"documentation":{"id":10782,"nodeType":"StructuredDocumentation","src":"9722:318:48","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":10806,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10054:9:48","nodeType":"FunctionDefinition","parameters":{"id":10785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10784,"mutability":"mutable","name":"value","nameLocation":"10072:5:48","nodeType":"VariableDeclaration","scope":10806,"src":"10064:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10783,"name":"uint256","nodeType":"ElementaryTypeName","src":"10064:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10063:15:48"},"returnParameters":{"id":10788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10806,"src":"10102:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":10786,"name":"uint112","nodeType":"ElementaryTypeName","src":"10102:7:48","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10101:9:48"},"scope":12204,"src":"10045:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10830,"nodeType":"Block","src":"10632:126:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10815,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10809,"src":"10650:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10664:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":10817,"name":"uint104","nodeType":"ElementaryTypeName","src":"10664:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":10816,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10659:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10659:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":10820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10659:17:48","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10650:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":10822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10678:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":10814,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10642:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10642:78:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10824,"nodeType":"ExpressionStatement","src":"10642:78:48"},{"expression":{"arguments":[{"id":10827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10809,"src":"10745:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10737:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":10825,"name":"uint104","nodeType":"ElementaryTypeName","src":"10737:7:48","typeDescriptions":{}}},"id":10828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10737:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":10813,"id":10829,"nodeType":"Return","src":"10730:21:48"}]},"documentation":{"id":10807,"nodeType":"StructuredDocumentation","src":"10243:318:48","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":10831,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10575:9:48","nodeType":"FunctionDefinition","parameters":{"id":10810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10809,"mutability":"mutable","name":"value","nameLocation":"10593:5:48","nodeType":"VariableDeclaration","scope":10831,"src":"10585:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10808,"name":"uint256","nodeType":"ElementaryTypeName","src":"10585:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10584:15:48"},"returnParameters":{"id":10813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10831,"src":"10623:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":10811,"name":"uint104","nodeType":"ElementaryTypeName","src":"10623:7:48","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10622:9:48"},"scope":12204,"src":"10566:192:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10855,"nodeType":"Block","src":"11147:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10840,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10834,"src":"11165:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11179:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":10842,"name":"uint96","nodeType":"ElementaryTypeName","src":"11179:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":10841,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11174:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11174:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":10845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11174:16:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11165:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":10847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11192:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":10839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11157:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11157:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10849,"nodeType":"ExpressionStatement","src":"11157:76:48"},{"expression":{"arguments":[{"id":10852,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10834,"src":"11257:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11250:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":10850,"name":"uint96","nodeType":"ElementaryTypeName","src":"11250:6:48","typeDescriptions":{}}},"id":10853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11250:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":10838,"id":10854,"nodeType":"Return","src":"11243:20:48"}]},"documentation":{"id":10832,"nodeType":"StructuredDocumentation","src":"10764:314:48","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.2._"},"id":10856,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11092:8:48","nodeType":"FunctionDefinition","parameters":{"id":10835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10834,"mutability":"mutable","name":"value","nameLocation":"11109:5:48","nodeType":"VariableDeclaration","scope":10856,"src":"11101:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10833,"name":"uint256","nodeType":"ElementaryTypeName","src":"11101:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11100:15:48"},"returnParameters":{"id":10838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10856,"src":"11139:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10836,"name":"uint96","nodeType":"ElementaryTypeName","src":"11139:6:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11138:8:48"},"scope":12204,"src":"11083:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10880,"nodeType":"Block","src":"11659:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10859,"src":"11677:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11691:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":10867,"name":"uint88","nodeType":"ElementaryTypeName","src":"11691:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":10866,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11686:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11686:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":10870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11686:16:48","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11677:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":10872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11704:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":10864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11669:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11669:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10874,"nodeType":"ExpressionStatement","src":"11669:76:48"},{"expression":{"arguments":[{"id":10877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10859,"src":"11769:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11762:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":10875,"name":"uint88","nodeType":"ElementaryTypeName","src":"11762:6:48","typeDescriptions":{}}},"id":10878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11762:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":10863,"id":10879,"nodeType":"Return","src":"11755:20:48"}]},"documentation":{"id":10857,"nodeType":"StructuredDocumentation","src":"11276:314:48","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":10881,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11604:8:48","nodeType":"FunctionDefinition","parameters":{"id":10860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10859,"mutability":"mutable","name":"value","nameLocation":"11621:5:48","nodeType":"VariableDeclaration","scope":10881,"src":"11613:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10858,"name":"uint256","nodeType":"ElementaryTypeName","src":"11613:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11612:15:48"},"returnParameters":{"id":10863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10881,"src":"11651:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":10861,"name":"uint88","nodeType":"ElementaryTypeName","src":"11651:6:48","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11650:8:48"},"scope":12204,"src":"11595:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10905,"nodeType":"Block","src":"12171:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10884,"src":"12189:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12203:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":10892,"name":"uint80","nodeType":"ElementaryTypeName","src":"12203:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":10891,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12198:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12198:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":10895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"12198:16:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12189:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":10897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12216:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":10889,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12181:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12181:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10899,"nodeType":"ExpressionStatement","src":"12181:76:48"},{"expression":{"arguments":[{"id":10902,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10884,"src":"12281:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12274:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":10900,"name":"uint80","nodeType":"ElementaryTypeName","src":"12274:6:48","typeDescriptions":{}}},"id":10903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12274:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":10888,"id":10904,"nodeType":"Return","src":"12267:20:48"}]},"documentation":{"id":10882,"nodeType":"StructuredDocumentation","src":"11788:314:48","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":10906,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12116:8:48","nodeType":"FunctionDefinition","parameters":{"id":10885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10884,"mutability":"mutable","name":"value","nameLocation":"12133:5:48","nodeType":"VariableDeclaration","scope":10906,"src":"12125:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10883,"name":"uint256","nodeType":"ElementaryTypeName","src":"12125:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12124:15:48"},"returnParameters":{"id":10888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10906,"src":"12163:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":10886,"name":"uint80","nodeType":"ElementaryTypeName","src":"12163:6:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12162:8:48"},"scope":12204,"src":"12107:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10930,"nodeType":"Block","src":"12683:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10915,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10909,"src":"12701:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12715:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":10917,"name":"uint72","nodeType":"ElementaryTypeName","src":"12715:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":10916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12710:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12710:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":10920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"12710:16:48","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12701:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":10922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12728:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":10914,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12693:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12693:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10924,"nodeType":"ExpressionStatement","src":"12693:76:48"},{"expression":{"arguments":[{"id":10927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10909,"src":"12793:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12786:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":10925,"name":"uint72","nodeType":"ElementaryTypeName","src":"12786:6:48","typeDescriptions":{}}},"id":10928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12786:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":10913,"id":10929,"nodeType":"Return","src":"12779:20:48"}]},"documentation":{"id":10907,"nodeType":"StructuredDocumentation","src":"12300:314:48","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":10931,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12628:8:48","nodeType":"FunctionDefinition","parameters":{"id":10910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10909,"mutability":"mutable","name":"value","nameLocation":"12645:5:48","nodeType":"VariableDeclaration","scope":10931,"src":"12637:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10908,"name":"uint256","nodeType":"ElementaryTypeName","src":"12637:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12636:15:48"},"returnParameters":{"id":10913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10931,"src":"12675:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":10911,"name":"uint72","nodeType":"ElementaryTypeName","src":"12675:6:48","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12674:8:48"},"scope":12204,"src":"12619:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10955,"nodeType":"Block","src":"13195:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10934,"src":"13213:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13227:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":10942,"name":"uint64","nodeType":"ElementaryTypeName","src":"13227:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":10941,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13222:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13222:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":10945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"13222:16:48","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13213:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":10947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13240:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":10939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13205:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13205:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10949,"nodeType":"ExpressionStatement","src":"13205:76:48"},{"expression":{"arguments":[{"id":10952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10934,"src":"13305:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13298:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":10950,"name":"uint64","nodeType":"ElementaryTypeName","src":"13298:6:48","typeDescriptions":{}}},"id":10953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13298:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":10938,"id":10954,"nodeType":"Return","src":"13291:20:48"}]},"documentation":{"id":10932,"nodeType":"StructuredDocumentation","src":"12812:314:48","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v2.5._"},"id":10956,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13140:8:48","nodeType":"FunctionDefinition","parameters":{"id":10935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10934,"mutability":"mutable","name":"value","nameLocation":"13157:5:48","nodeType":"VariableDeclaration","scope":10956,"src":"13149:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10933,"name":"uint256","nodeType":"ElementaryTypeName","src":"13149:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13148:15:48"},"returnParameters":{"id":10938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10956,"src":"13187:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10936,"name":"uint64","nodeType":"ElementaryTypeName","src":"13187:6:48","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13186:8:48"},"scope":12204,"src":"13131:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10980,"nodeType":"Block","src":"13707:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10965,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10959,"src":"13725:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13739:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":10967,"name":"uint56","nodeType":"ElementaryTypeName","src":"13739:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":10966,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13734:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13734:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":10970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"13734:16:48","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13725:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":10972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13752:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":10964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13717:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13717:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10974,"nodeType":"ExpressionStatement","src":"13717:76:48"},{"expression":{"arguments":[{"id":10977,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10959,"src":"13817:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13810:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":10975,"name":"uint56","nodeType":"ElementaryTypeName","src":"13810:6:48","typeDescriptions":{}}},"id":10978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13810:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":10963,"id":10979,"nodeType":"Return","src":"13803:20:48"}]},"documentation":{"id":10957,"nodeType":"StructuredDocumentation","src":"13324:314:48","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":10981,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13652:8:48","nodeType":"FunctionDefinition","parameters":{"id":10960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10959,"mutability":"mutable","name":"value","nameLocation":"13669:5:48","nodeType":"VariableDeclaration","scope":10981,"src":"13661:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10958,"name":"uint256","nodeType":"ElementaryTypeName","src":"13661:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13660:15:48"},"returnParameters":{"id":10963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10981,"src":"13699:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":10961,"name":"uint56","nodeType":"ElementaryTypeName","src":"13699:6:48","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13698:8:48"},"scope":12204,"src":"13643:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11005,"nodeType":"Block","src":"14219:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10984,"src":"14237:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":10993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14251:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":10992,"name":"uint48","nodeType":"ElementaryTypeName","src":"14251:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":10991,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14246:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14246:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":10995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"14246:16:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14237:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":10997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14264:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":10989,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14229:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14229:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10999,"nodeType":"ExpressionStatement","src":"14229:76:48"},{"expression":{"arguments":[{"id":11002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10984,"src":"14329:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14322:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":11000,"name":"uint48","nodeType":"ElementaryTypeName","src":"14322:6:48","typeDescriptions":{}}},"id":11003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14322:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":10988,"id":11004,"nodeType":"Return","src":"14315:20:48"}]},"documentation":{"id":10982,"nodeType":"StructuredDocumentation","src":"13836:314:48","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":11006,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14164:8:48","nodeType":"FunctionDefinition","parameters":{"id":10985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10984,"mutability":"mutable","name":"value","nameLocation":"14181:5:48","nodeType":"VariableDeclaration","scope":11006,"src":"14173:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10983,"name":"uint256","nodeType":"ElementaryTypeName","src":"14173:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14172:15:48"},"returnParameters":{"id":10988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11006,"src":"14211:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":10986,"name":"uint48","nodeType":"ElementaryTypeName","src":"14211:6:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14210:8:48"},"scope":12204,"src":"14155:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11030,"nodeType":"Block","src":"14731:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11015,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11009,"src":"14749:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14763:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":11017,"name":"uint40","nodeType":"ElementaryTypeName","src":"14763:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":11016,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14758:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14758:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":11020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"14758:16:48","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14749:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":11022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14776:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":11014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14741:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14741:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11024,"nodeType":"ExpressionStatement","src":"14741:76:48"},{"expression":{"arguments":[{"id":11027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11009,"src":"14841:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14834:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":11025,"name":"uint40","nodeType":"ElementaryTypeName","src":"14834:6:48","typeDescriptions":{}}},"id":11028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14834:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":11013,"id":11029,"nodeType":"Return","src":"14827:20:48"}]},"documentation":{"id":11007,"nodeType":"StructuredDocumentation","src":"14348:314:48","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":11031,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14676:8:48","nodeType":"FunctionDefinition","parameters":{"id":11010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11009,"mutability":"mutable","name":"value","nameLocation":"14693:5:48","nodeType":"VariableDeclaration","scope":11031,"src":"14685:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11008,"name":"uint256","nodeType":"ElementaryTypeName","src":"14685:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14684:15:48"},"returnParameters":{"id":11013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11031,"src":"14723:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":11011,"name":"uint40","nodeType":"ElementaryTypeName","src":"14723:6:48","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14722:8:48"},"scope":12204,"src":"14667:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11055,"nodeType":"Block","src":"15243:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11034,"src":"15261:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15275:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":11042,"name":"uint32","nodeType":"ElementaryTypeName","src":"15275:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":11041,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15270:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15270:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":11045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"15270:16:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15261:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":11047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15288:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":11039,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15253:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15253:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11049,"nodeType":"ExpressionStatement","src":"15253:76:48"},{"expression":{"arguments":[{"id":11052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11034,"src":"15353:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15346:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":11050,"name":"uint32","nodeType":"ElementaryTypeName","src":"15346:6:48","typeDescriptions":{}}},"id":11053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15346:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":11038,"id":11054,"nodeType":"Return","src":"15339:20:48"}]},"documentation":{"id":11032,"nodeType":"StructuredDocumentation","src":"14860:314:48","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v2.5._"},"id":11056,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15188:8:48","nodeType":"FunctionDefinition","parameters":{"id":11035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11034,"mutability":"mutable","name":"value","nameLocation":"15205:5:48","nodeType":"VariableDeclaration","scope":11056,"src":"15197:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11033,"name":"uint256","nodeType":"ElementaryTypeName","src":"15197:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15196:15:48"},"returnParameters":{"id":11038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11056,"src":"15235:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":11036,"name":"uint32","nodeType":"ElementaryTypeName","src":"15235:6:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15234:8:48"},"scope":12204,"src":"15179:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11080,"nodeType":"Block","src":"15755:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11059,"src":"15773:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15787:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":11067,"name":"uint24","nodeType":"ElementaryTypeName","src":"15787:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":11066,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15782:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15782:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":11070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"15782:16:48","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15773:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":11072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15800:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":11064,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15765:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15765:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11074,"nodeType":"ExpressionStatement","src":"15765:76:48"},{"expression":{"arguments":[{"id":11077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11059,"src":"15865:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15858:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":11075,"name":"uint24","nodeType":"ElementaryTypeName","src":"15858:6:48","typeDescriptions":{}}},"id":11078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15858:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":11063,"id":11079,"nodeType":"Return","src":"15851:20:48"}]},"documentation":{"id":11057,"nodeType":"StructuredDocumentation","src":"15372:314:48","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":11081,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15700:8:48","nodeType":"FunctionDefinition","parameters":{"id":11060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11059,"mutability":"mutable","name":"value","nameLocation":"15717:5:48","nodeType":"VariableDeclaration","scope":11081,"src":"15709:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11058,"name":"uint256","nodeType":"ElementaryTypeName","src":"15709:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15708:15:48"},"returnParameters":{"id":11063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11081,"src":"15747:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":11061,"name":"uint24","nodeType":"ElementaryTypeName","src":"15747:6:48","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15746:8:48"},"scope":12204,"src":"15691:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11105,"nodeType":"Block","src":"16267:123:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11090,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11084,"src":"16285:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16299:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":11092,"name":"uint16","nodeType":"ElementaryTypeName","src":"16299:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":11091,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16294:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16294:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":11095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"16294:16:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16285:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":11097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16312:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":11089,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16277:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16277:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11099,"nodeType":"ExpressionStatement","src":"16277:76:48"},{"expression":{"arguments":[{"id":11102,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11084,"src":"16377:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16370:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":11100,"name":"uint16","nodeType":"ElementaryTypeName","src":"16370:6:48","typeDescriptions":{}}},"id":11103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16370:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":11088,"id":11104,"nodeType":"Return","src":"16363:20:48"}]},"documentation":{"id":11082,"nodeType":"StructuredDocumentation","src":"15884:314:48","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v2.5._"},"id":11106,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16212:8:48","nodeType":"FunctionDefinition","parameters":{"id":11085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11084,"mutability":"mutable","name":"value","nameLocation":"16229:5:48","nodeType":"VariableDeclaration","scope":11106,"src":"16221:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11083,"name":"uint256","nodeType":"ElementaryTypeName","src":"16221:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16220:15:48"},"returnParameters":{"id":11088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11106,"src":"16259:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11086,"name":"uint16","nodeType":"ElementaryTypeName","src":"16259:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16258:8:48"},"scope":12204,"src":"16203:187:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11130,"nodeType":"Block","src":"16773:120:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11109,"src":"16791:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16805:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":11117,"name":"uint8","nodeType":"ElementaryTypeName","src":"16805:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":11116,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16800:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16800:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":11120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"16800:15:48","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16791:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":11122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16817:39:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":11114,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16783:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16783:74:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11124,"nodeType":"ExpressionStatement","src":"16783:74:48"},{"expression":{"arguments":[{"id":11127,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11109,"src":"16880:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16874:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":11125,"name":"uint8","nodeType":"ElementaryTypeName","src":"16874:5:48","typeDescriptions":{}}},"id":11128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16874:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":11113,"id":11129,"nodeType":"Return","src":"16867:19:48"}]},"documentation":{"id":11107,"nodeType":"StructuredDocumentation","src":"16396:310:48","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v2.5._"},"id":11131,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16720:7:48","nodeType":"FunctionDefinition","parameters":{"id":11110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11109,"mutability":"mutable","name":"value","nameLocation":"16736:5:48","nodeType":"VariableDeclaration","scope":11131,"src":"16728:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11108,"name":"uint256","nodeType":"ElementaryTypeName","src":"16728:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16727:15:48"},"returnParameters":{"id":11113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11131,"src":"16766:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11111,"name":"uint8","nodeType":"ElementaryTypeName","src":"16766:5:48","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16765:7:48"},"scope":12204,"src":"16711:182:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11151,"nodeType":"Block","src":"17167:103:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11140,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11134,"src":"17185:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":11141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17194:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17185:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c7565206d75737420626520706f736974697665","id":11143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17197:34:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""},"value":"SafeCast: value must be positive"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""}],"id":11139,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17177:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17177:55:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11145,"nodeType":"ExpressionStatement","src":"17177:55:48"},{"expression":{"arguments":[{"id":11148,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11134,"src":"17257:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17249:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11146,"name":"uint256","nodeType":"ElementaryTypeName","src":"17249:7:48","typeDescriptions":{}}},"id":11149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17249:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11138,"id":11150,"nodeType":"Return","src":"17242:21:48"}]},"documentation":{"id":11132,"nodeType":"StructuredDocumentation","src":"16899:198:48","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0.\n _Available since v3.0._"},"id":11152,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17111:9:48","nodeType":"FunctionDefinition","parameters":{"id":11135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11134,"mutability":"mutable","name":"value","nameLocation":"17128:5:48","nodeType":"VariableDeclaration","scope":11152,"src":"17121:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11133,"name":"int256","nodeType":"ElementaryTypeName","src":"17121:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17120:14:48"},"returnParameters":{"id":11138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11152,"src":"17158:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11136,"name":"uint256","nodeType":"ElementaryTypeName","src":"17158:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17157:9:48"},"scope":12204,"src":"17102:168:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11184,"nodeType":"Block","src":"17694:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11155,"src":"17712:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17726:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":11163,"name":"int248","nodeType":"ElementaryTypeName","src":"17726:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"}],"id":11162,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"17721:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17721:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int248","typeString":"type(int248)"}},"id":11166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"17721:16:48","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17712:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11168,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11155,"src":"17741:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17755:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":11170,"name":"int248","nodeType":"ElementaryTypeName","src":"17755:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"}],"id":11169,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"17750:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17750:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int248","typeString":"type(int248)"}},"id":11173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"17750:16:48","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17741:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17712:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":11176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17768:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":11160,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17704:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17704:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11178,"nodeType":"ExpressionStatement","src":"17704:106:48"},{"expression":{"arguments":[{"id":11181,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11155,"src":"17834:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17827:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":11179,"name":"int248","nodeType":"ElementaryTypeName","src":"17827:6:48","typeDescriptions":{}}},"id":11182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17827:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"functionReturnParameters":11159,"id":11183,"nodeType":"Return","src":"17820:20:48"}]},"documentation":{"id":11153,"nodeType":"StructuredDocumentation","src":"17276:350:48","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":11185,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17640:8:48","nodeType":"FunctionDefinition","parameters":{"id":11156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11155,"mutability":"mutable","name":"value","nameLocation":"17656:5:48","nodeType":"VariableDeclaration","scope":11185,"src":"17649:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11154,"name":"int256","nodeType":"ElementaryTypeName","src":"17649:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17648:14:48"},"returnParameters":{"id":11159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11185,"src":"17686:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":11157,"name":"int248","nodeType":"ElementaryTypeName","src":"17686:6:48","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17685:8:48"},"scope":12204,"src":"17631:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11217,"nodeType":"Block","src":"18271:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11194,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11188,"src":"18289:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18303:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":11196,"name":"int240","nodeType":"ElementaryTypeName","src":"18303:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"}],"id":11195,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18298:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18298:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int240","typeString":"type(int240)"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"18298:16:48","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18289:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11201,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11188,"src":"18318:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18332:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":11203,"name":"int240","nodeType":"ElementaryTypeName","src":"18332:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"}],"id":11202,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18327:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18327:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int240","typeString":"type(int240)"}},"id":11206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"18327:16:48","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18318:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18289:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":11209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18345:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":11193,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18281:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18281:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11211,"nodeType":"ExpressionStatement","src":"18281:106:48"},{"expression":{"arguments":[{"id":11214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11188,"src":"18411:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18404:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":11212,"name":"int240","nodeType":"ElementaryTypeName","src":"18404:6:48","typeDescriptions":{}}},"id":11215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18404:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"functionReturnParameters":11192,"id":11216,"nodeType":"Return","src":"18397:20:48"}]},"documentation":{"id":11186,"nodeType":"StructuredDocumentation","src":"17853:350:48","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":11218,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18217:8:48","nodeType":"FunctionDefinition","parameters":{"id":11189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11188,"mutability":"mutable","name":"value","nameLocation":"18233:5:48","nodeType":"VariableDeclaration","scope":11218,"src":"18226:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11187,"name":"int256","nodeType":"ElementaryTypeName","src":"18226:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18225:14:48"},"returnParameters":{"id":11192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11218,"src":"18263:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":11190,"name":"int240","nodeType":"ElementaryTypeName","src":"18263:6:48","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18262:8:48"},"scope":12204,"src":"18208:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11250,"nodeType":"Block","src":"18848:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11221,"src":"18866:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18880:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":11229,"name":"int232","nodeType":"ElementaryTypeName","src":"18880:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"}],"id":11228,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18875:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18875:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int232","typeString":"type(int232)"}},"id":11232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"18875:16:48","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18866:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11234,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11221,"src":"18895:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18909:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":11236,"name":"int232","nodeType":"ElementaryTypeName","src":"18909:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"}],"id":11235,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18904:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18904:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int232","typeString":"type(int232)"}},"id":11239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"18904:16:48","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18895:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18866:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":11242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18922:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":11226,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18858:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18858:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11244,"nodeType":"ExpressionStatement","src":"18858:106:48"},{"expression":{"arguments":[{"id":11247,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11221,"src":"18988:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18981:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":11245,"name":"int232","nodeType":"ElementaryTypeName","src":"18981:6:48","typeDescriptions":{}}},"id":11248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18981:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"functionReturnParameters":11225,"id":11249,"nodeType":"Return","src":"18974:20:48"}]},"documentation":{"id":11219,"nodeType":"StructuredDocumentation","src":"18430:350:48","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":11251,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18794:8:48","nodeType":"FunctionDefinition","parameters":{"id":11222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11221,"mutability":"mutable","name":"value","nameLocation":"18810:5:48","nodeType":"VariableDeclaration","scope":11251,"src":"18803:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11220,"name":"int256","nodeType":"ElementaryTypeName","src":"18803:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18802:14:48"},"returnParameters":{"id":11225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11251,"src":"18840:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":11223,"name":"int232","nodeType":"ElementaryTypeName","src":"18840:6:48","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18839:8:48"},"scope":12204,"src":"18785:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11283,"nodeType":"Block","src":"19425:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11260,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"19443:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19457:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":11262,"name":"int224","nodeType":"ElementaryTypeName","src":"19457:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"}],"id":11261,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"19452:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19452:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int224","typeString":"type(int224)"}},"id":11265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"19452:16:48","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19443:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11267,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"19472:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19486:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":11269,"name":"int224","nodeType":"ElementaryTypeName","src":"19486:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"}],"id":11268,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"19481:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19481:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int224","typeString":"type(int224)"}},"id":11272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"19481:16:48","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19472:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19443:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":11275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19499:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":11259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19435:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19435:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11277,"nodeType":"ExpressionStatement","src":"19435:106:48"},{"expression":{"arguments":[{"id":11280,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"19565:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19558:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":11278,"name":"int224","nodeType":"ElementaryTypeName","src":"19558:6:48","typeDescriptions":{}}},"id":11281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19558:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"functionReturnParameters":11258,"id":11282,"nodeType":"Return","src":"19551:20:48"}]},"documentation":{"id":11252,"nodeType":"StructuredDocumentation","src":"19007:350:48","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.7._"},"id":11284,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19371:8:48","nodeType":"FunctionDefinition","parameters":{"id":11255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11254,"mutability":"mutable","name":"value","nameLocation":"19387:5:48","nodeType":"VariableDeclaration","scope":11284,"src":"19380:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11253,"name":"int256","nodeType":"ElementaryTypeName","src":"19380:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19379:14:48"},"returnParameters":{"id":11258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11284,"src":"19417:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":11256,"name":"int224","nodeType":"ElementaryTypeName","src":"19417:6:48","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19416:8:48"},"scope":12204,"src":"19362:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11316,"nodeType":"Block","src":"20002:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11287,"src":"20020:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20034:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":11295,"name":"int216","nodeType":"ElementaryTypeName","src":"20034:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"}],"id":11294,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20029:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20029:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int216","typeString":"type(int216)"}},"id":11298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"20029:16:48","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"20020:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11300,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11287,"src":"20049:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20063:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":11302,"name":"int216","nodeType":"ElementaryTypeName","src":"20063:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"}],"id":11301,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20058:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20058:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int216","typeString":"type(int216)"}},"id":11305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"20058:16:48","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"20049:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20020:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":11308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20076:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":11292,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20012:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20012:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11310,"nodeType":"ExpressionStatement","src":"20012:106:48"},{"expression":{"arguments":[{"id":11313,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11287,"src":"20142:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20135:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":11311,"name":"int216","nodeType":"ElementaryTypeName","src":"20135:6:48","typeDescriptions":{}}},"id":11314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20135:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"functionReturnParameters":11291,"id":11315,"nodeType":"Return","src":"20128:20:48"}]},"documentation":{"id":11285,"nodeType":"StructuredDocumentation","src":"19584:350:48","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":11317,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19948:8:48","nodeType":"FunctionDefinition","parameters":{"id":11288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11287,"mutability":"mutable","name":"value","nameLocation":"19964:5:48","nodeType":"VariableDeclaration","scope":11317,"src":"19957:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11286,"name":"int256","nodeType":"ElementaryTypeName","src":"19957:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19956:14:48"},"returnParameters":{"id":11291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11317,"src":"19994:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":11289,"name":"int216","nodeType":"ElementaryTypeName","src":"19994:6:48","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19993:8:48"},"scope":12204,"src":"19939:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11349,"nodeType":"Block","src":"20579:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11320,"src":"20597:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20611:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":11328,"name":"int208","nodeType":"ElementaryTypeName","src":"20611:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"}],"id":11327,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20606:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20606:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int208","typeString":"type(int208)"}},"id":11331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"20606:16:48","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20597:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11333,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11320,"src":"20626:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20640:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":11335,"name":"int208","nodeType":"ElementaryTypeName","src":"20640:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"}],"id":11334,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20635:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20635:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int208","typeString":"type(int208)"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"20635:16:48","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20626:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20597:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":11341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20653:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":11325,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20589:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20589:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11343,"nodeType":"ExpressionStatement","src":"20589:106:48"},{"expression":{"arguments":[{"id":11346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11320,"src":"20719:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20712:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":11344,"name":"int208","nodeType":"ElementaryTypeName","src":"20712:6:48","typeDescriptions":{}}},"id":11347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20712:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"functionReturnParameters":11324,"id":11348,"nodeType":"Return","src":"20705:20:48"}]},"documentation":{"id":11318,"nodeType":"StructuredDocumentation","src":"20161:350:48","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":11350,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20525:8:48","nodeType":"FunctionDefinition","parameters":{"id":11321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11320,"mutability":"mutable","name":"value","nameLocation":"20541:5:48","nodeType":"VariableDeclaration","scope":11350,"src":"20534:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11319,"name":"int256","nodeType":"ElementaryTypeName","src":"20534:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20533:14:48"},"returnParameters":{"id":11324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11350,"src":"20571:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":11322,"name":"int208","nodeType":"ElementaryTypeName","src":"20571:6:48","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20570:8:48"},"scope":12204,"src":"20516:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11382,"nodeType":"Block","src":"21156:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11359,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11353,"src":"21174:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21188:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":11361,"name":"int200","nodeType":"ElementaryTypeName","src":"21188:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"}],"id":11360,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21183:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21183:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int200","typeString":"type(int200)"}},"id":11364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"21183:16:48","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21174:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11366,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11353,"src":"21203:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21217:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":11368,"name":"int200","nodeType":"ElementaryTypeName","src":"21217:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"}],"id":11367,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21212:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21212:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int200","typeString":"type(int200)"}},"id":11371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"21212:16:48","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21203:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21174:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":11374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21230:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":11358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21166:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21166:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11376,"nodeType":"ExpressionStatement","src":"21166:106:48"},{"expression":{"arguments":[{"id":11379,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11353,"src":"21296:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21289:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":11377,"name":"int200","nodeType":"ElementaryTypeName","src":"21289:6:48","typeDescriptions":{}}},"id":11380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21289:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"functionReturnParameters":11357,"id":11381,"nodeType":"Return","src":"21282:20:48"}]},"documentation":{"id":11351,"nodeType":"StructuredDocumentation","src":"20738:350:48","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":11383,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"21102:8:48","nodeType":"FunctionDefinition","parameters":{"id":11354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11353,"mutability":"mutable","name":"value","nameLocation":"21118:5:48","nodeType":"VariableDeclaration","scope":11383,"src":"21111:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11352,"name":"int256","nodeType":"ElementaryTypeName","src":"21111:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21110:14:48"},"returnParameters":{"id":11357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11383,"src":"21148:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":11355,"name":"int200","nodeType":"ElementaryTypeName","src":"21148:6:48","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21147:8:48"},"scope":12204,"src":"21093:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11415,"nodeType":"Block","src":"21733:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11392,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11386,"src":"21751:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21765:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":11394,"name":"int192","nodeType":"ElementaryTypeName","src":"21765:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"}],"id":11393,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21760:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21760:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int192","typeString":"type(int192)"}},"id":11397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"21760:16:48","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21751:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11386,"src":"21780:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21794:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":11401,"name":"int192","nodeType":"ElementaryTypeName","src":"21794:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"}],"id":11400,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21789:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21789:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int192","typeString":"type(int192)"}},"id":11404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"21789:16:48","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21780:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21751:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":11407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21807:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":11391,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21743:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21743:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11409,"nodeType":"ExpressionStatement","src":"21743:106:48"},{"expression":{"arguments":[{"id":11412,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11386,"src":"21873:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21866:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":11410,"name":"int192","nodeType":"ElementaryTypeName","src":"21866:6:48","typeDescriptions":{}}},"id":11413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21866:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"functionReturnParameters":11390,"id":11414,"nodeType":"Return","src":"21859:20:48"}]},"documentation":{"id":11384,"nodeType":"StructuredDocumentation","src":"21315:350:48","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":11416,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21679:8:48","nodeType":"FunctionDefinition","parameters":{"id":11387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11386,"mutability":"mutable","name":"value","nameLocation":"21695:5:48","nodeType":"VariableDeclaration","scope":11416,"src":"21688:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11385,"name":"int256","nodeType":"ElementaryTypeName","src":"21688:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21687:14:48"},"returnParameters":{"id":11390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11416,"src":"21725:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":11388,"name":"int192","nodeType":"ElementaryTypeName","src":"21725:6:48","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21724:8:48"},"scope":12204,"src":"21670:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11448,"nodeType":"Block","src":"22310:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11425,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11419,"src":"22328:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22342:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":11427,"name":"int184","nodeType":"ElementaryTypeName","src":"22342:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"}],"id":11426,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"22337:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22337:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int184","typeString":"type(int184)"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"22337:16:48","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22328:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11432,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11419,"src":"22357:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22371:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":11434,"name":"int184","nodeType":"ElementaryTypeName","src":"22371:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"}],"id":11433,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"22366:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22366:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int184","typeString":"type(int184)"}},"id":11437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"22366:16:48","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22357:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22328:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":11440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22384:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":11424,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22320:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22320:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11442,"nodeType":"ExpressionStatement","src":"22320:106:48"},{"expression":{"arguments":[{"id":11445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11419,"src":"22450:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22443:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":11443,"name":"int184","nodeType":"ElementaryTypeName","src":"22443:6:48","typeDescriptions":{}}},"id":11446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22443:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"functionReturnParameters":11423,"id":11447,"nodeType":"Return","src":"22436:20:48"}]},"documentation":{"id":11417,"nodeType":"StructuredDocumentation","src":"21892:350:48","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":11449,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22256:8:48","nodeType":"FunctionDefinition","parameters":{"id":11420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11419,"mutability":"mutable","name":"value","nameLocation":"22272:5:48","nodeType":"VariableDeclaration","scope":11449,"src":"22265:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11418,"name":"int256","nodeType":"ElementaryTypeName","src":"22265:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22264:14:48"},"returnParameters":{"id":11423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11449,"src":"22302:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":11421,"name":"int184","nodeType":"ElementaryTypeName","src":"22302:6:48","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22301:8:48"},"scope":12204,"src":"22247:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11481,"nodeType":"Block","src":"22887:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11458,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11452,"src":"22905:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22919:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":11460,"name":"int176","nodeType":"ElementaryTypeName","src":"22919:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"}],"id":11459,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"22914:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22914:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int176","typeString":"type(int176)"}},"id":11463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"22914:16:48","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22905:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11452,"src":"22934:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22948:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":11467,"name":"int176","nodeType":"ElementaryTypeName","src":"22948:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"}],"id":11466,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"22943:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22943:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int176","typeString":"type(int176)"}},"id":11470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"22943:16:48","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22934:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22905:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":11473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22961:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":11457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22897:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22897:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11475,"nodeType":"ExpressionStatement","src":"22897:106:48"},{"expression":{"arguments":[{"id":11478,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11452,"src":"23027:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23020:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":11476,"name":"int176","nodeType":"ElementaryTypeName","src":"23020:6:48","typeDescriptions":{}}},"id":11479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23020:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"functionReturnParameters":11456,"id":11480,"nodeType":"Return","src":"23013:20:48"}]},"documentation":{"id":11450,"nodeType":"StructuredDocumentation","src":"22469:350:48","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":11482,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22833:8:48","nodeType":"FunctionDefinition","parameters":{"id":11453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11452,"mutability":"mutable","name":"value","nameLocation":"22849:5:48","nodeType":"VariableDeclaration","scope":11482,"src":"22842:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11451,"name":"int256","nodeType":"ElementaryTypeName","src":"22842:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22841:14:48"},"returnParameters":{"id":11456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11482,"src":"22879:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":11454,"name":"int176","nodeType":"ElementaryTypeName","src":"22879:6:48","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22878:8:48"},"scope":12204,"src":"22824:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11514,"nodeType":"Block","src":"23464:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11485,"src":"23482:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23496:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":11493,"name":"int168","nodeType":"ElementaryTypeName","src":"23496:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"}],"id":11492,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"23491:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23491:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int168","typeString":"type(int168)"}},"id":11496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"23491:16:48","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23482:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11485,"src":"23511:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23525:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":11500,"name":"int168","nodeType":"ElementaryTypeName","src":"23525:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"}],"id":11499,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"23520:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23520:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int168","typeString":"type(int168)"}},"id":11503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"23520:16:48","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23511:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23482:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":11506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23538:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":11490,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23474:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23474:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11508,"nodeType":"ExpressionStatement","src":"23474:106:48"},{"expression":{"arguments":[{"id":11511,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11485,"src":"23604:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23597:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":11509,"name":"int168","nodeType":"ElementaryTypeName","src":"23597:6:48","typeDescriptions":{}}},"id":11512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23597:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"functionReturnParameters":11489,"id":11513,"nodeType":"Return","src":"23590:20:48"}]},"documentation":{"id":11483,"nodeType":"StructuredDocumentation","src":"23046:350:48","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":11515,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23410:8:48","nodeType":"FunctionDefinition","parameters":{"id":11486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11485,"mutability":"mutable","name":"value","nameLocation":"23426:5:48","nodeType":"VariableDeclaration","scope":11515,"src":"23419:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11484,"name":"int256","nodeType":"ElementaryTypeName","src":"23419:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23418:14:48"},"returnParameters":{"id":11489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11515,"src":"23456:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":11487,"name":"int168","nodeType":"ElementaryTypeName","src":"23456:6:48","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23455:8:48"},"scope":12204,"src":"23401:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11547,"nodeType":"Block","src":"24041:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11524,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"24059:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24073:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":11526,"name":"int160","nodeType":"ElementaryTypeName","src":"24073:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"}],"id":11525,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"24068:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24068:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int160","typeString":"type(int160)"}},"id":11529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"24068:16:48","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"24059:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11531,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"24088:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24102:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":11533,"name":"int160","nodeType":"ElementaryTypeName","src":"24102:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"}],"id":11532,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"24097:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24097:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int160","typeString":"type(int160)"}},"id":11536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"24097:16:48","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"24088:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24059:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":11539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24115:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":11523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24051:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24051:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11541,"nodeType":"ExpressionStatement","src":"24051:106:48"},{"expression":{"arguments":[{"id":11544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"24181:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24174:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":11542,"name":"int160","nodeType":"ElementaryTypeName","src":"24174:6:48","typeDescriptions":{}}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24174:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"functionReturnParameters":11522,"id":11546,"nodeType":"Return","src":"24167:20:48"}]},"documentation":{"id":11516,"nodeType":"StructuredDocumentation","src":"23623:350:48","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":11548,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23987:8:48","nodeType":"FunctionDefinition","parameters":{"id":11519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11518,"mutability":"mutable","name":"value","nameLocation":"24003:5:48","nodeType":"VariableDeclaration","scope":11548,"src":"23996:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11517,"name":"int256","nodeType":"ElementaryTypeName","src":"23996:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23995:14:48"},"returnParameters":{"id":11522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11548,"src":"24033:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":11520,"name":"int160","nodeType":"ElementaryTypeName","src":"24033:6:48","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"24032:8:48"},"scope":12204,"src":"23978:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11580,"nodeType":"Block","src":"24618:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"24636:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24650:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":11559,"name":"int152","nodeType":"ElementaryTypeName","src":"24650:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"}],"id":11558,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"24645:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24645:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int152","typeString":"type(int152)"}},"id":11562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"24645:16:48","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24636:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11564,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"24665:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24679:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":11566,"name":"int152","nodeType":"ElementaryTypeName","src":"24679:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"}],"id":11565,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"24674:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24674:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int152","typeString":"type(int152)"}},"id":11569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"24674:16:48","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24665:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24636:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":11572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24692:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":11556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24628:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24628:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11574,"nodeType":"ExpressionStatement","src":"24628:106:48"},{"expression":{"arguments":[{"id":11577,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"24758:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24751:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":11575,"name":"int152","nodeType":"ElementaryTypeName","src":"24751:6:48","typeDescriptions":{}}},"id":11578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24751:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"functionReturnParameters":11555,"id":11579,"nodeType":"Return","src":"24744:20:48"}]},"documentation":{"id":11549,"nodeType":"StructuredDocumentation","src":"24200:350:48","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":11581,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24564:8:48","nodeType":"FunctionDefinition","parameters":{"id":11552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11551,"mutability":"mutable","name":"value","nameLocation":"24580:5:48","nodeType":"VariableDeclaration","scope":11581,"src":"24573:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11550,"name":"int256","nodeType":"ElementaryTypeName","src":"24573:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24572:14:48"},"returnParameters":{"id":11555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11581,"src":"24610:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":11553,"name":"int152","nodeType":"ElementaryTypeName","src":"24610:6:48","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24609:8:48"},"scope":12204,"src":"24555:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11613,"nodeType":"Block","src":"25195:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11584,"src":"25213:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25227:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":11592,"name":"int144","nodeType":"ElementaryTypeName","src":"25227:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"}],"id":11591,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"25222:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25222:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int144","typeString":"type(int144)"}},"id":11595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"25222:16:48","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"25213:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11597,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11584,"src":"25242:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25256:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":11599,"name":"int144","nodeType":"ElementaryTypeName","src":"25256:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"}],"id":11598,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"25251:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25251:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int144","typeString":"type(int144)"}},"id":11602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"25251:16:48","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"25242:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25213:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":11605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25269:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":11589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25205:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25205:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11607,"nodeType":"ExpressionStatement","src":"25205:106:48"},{"expression":{"arguments":[{"id":11610,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11584,"src":"25335:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25328:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":11608,"name":"int144","nodeType":"ElementaryTypeName","src":"25328:6:48","typeDescriptions":{}}},"id":11611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25328:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"functionReturnParameters":11588,"id":11612,"nodeType":"Return","src":"25321:20:48"}]},"documentation":{"id":11582,"nodeType":"StructuredDocumentation","src":"24777:350:48","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":11614,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"25141:8:48","nodeType":"FunctionDefinition","parameters":{"id":11585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11584,"mutability":"mutable","name":"value","nameLocation":"25157:5:48","nodeType":"VariableDeclaration","scope":11614,"src":"25150:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11583,"name":"int256","nodeType":"ElementaryTypeName","src":"25150:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25149:14:48"},"returnParameters":{"id":11588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11614,"src":"25187:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":11586,"name":"int144","nodeType":"ElementaryTypeName","src":"25187:6:48","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"25186:8:48"},"scope":12204,"src":"25132:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11646,"nodeType":"Block","src":"25772:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11623,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11617,"src":"25790:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25804:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":11625,"name":"int136","nodeType":"ElementaryTypeName","src":"25804:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"}],"id":11624,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"25799:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25799:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int136","typeString":"type(int136)"}},"id":11628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"25799:16:48","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25790:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11630,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11617,"src":"25819:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25833:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":11632,"name":"int136","nodeType":"ElementaryTypeName","src":"25833:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"}],"id":11631,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"25828:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25828:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int136","typeString":"type(int136)"}},"id":11635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"25828:16:48","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25819:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25790:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":11638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25846:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":11622,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25782:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25782:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11640,"nodeType":"ExpressionStatement","src":"25782:106:48"},{"expression":{"arguments":[{"id":11643,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11617,"src":"25912:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25905:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":11641,"name":"int136","nodeType":"ElementaryTypeName","src":"25905:6:48","typeDescriptions":{}}},"id":11644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25905:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"functionReturnParameters":11621,"id":11645,"nodeType":"Return","src":"25898:20:48"}]},"documentation":{"id":11615,"nodeType":"StructuredDocumentation","src":"25354:350:48","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":11647,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25718:8:48","nodeType":"FunctionDefinition","parameters":{"id":11618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11617,"mutability":"mutable","name":"value","nameLocation":"25734:5:48","nodeType":"VariableDeclaration","scope":11647,"src":"25727:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11616,"name":"int256","nodeType":"ElementaryTypeName","src":"25727:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25726:14:48"},"returnParameters":{"id":11621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11647,"src":"25764:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":11619,"name":"int136","nodeType":"ElementaryTypeName","src":"25764:6:48","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25763:8:48"},"scope":12204,"src":"25709:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11679,"nodeType":"Block","src":"26349:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11656,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11650,"src":"26367:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26381:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":11658,"name":"int128","nodeType":"ElementaryTypeName","src":"26381:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"}],"id":11657,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"26376:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26376:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int128","typeString":"type(int128)"}},"id":11661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"26376:16:48","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26367:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11650,"src":"26396:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26410:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":11665,"name":"int128","nodeType":"ElementaryTypeName","src":"26410:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"}],"id":11664,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"26405:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26405:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int128","typeString":"type(int128)"}},"id":11668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"26405:16:48","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26396:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26367:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":11671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26423:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":11655,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26359:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26359:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11673,"nodeType":"ExpressionStatement","src":"26359:106:48"},{"expression":{"arguments":[{"id":11676,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11650,"src":"26489:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26482:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":11674,"name":"int128","nodeType":"ElementaryTypeName","src":"26482:6:48","typeDescriptions":{}}},"id":11677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26482:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"functionReturnParameters":11654,"id":11678,"nodeType":"Return","src":"26475:20:48"}]},"documentation":{"id":11648,"nodeType":"StructuredDocumentation","src":"25931:350:48","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v3.1._"},"id":11680,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"26295:8:48","nodeType":"FunctionDefinition","parameters":{"id":11651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11650,"mutability":"mutable","name":"value","nameLocation":"26311:5:48","nodeType":"VariableDeclaration","scope":11680,"src":"26304:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11649,"name":"int256","nodeType":"ElementaryTypeName","src":"26304:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26303:14:48"},"returnParameters":{"id":11654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11680,"src":"26341:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":11652,"name":"int128","nodeType":"ElementaryTypeName","src":"26341:6:48","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"26340:8:48"},"scope":12204,"src":"26286:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11712,"nodeType":"Block","src":"26926:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11683,"src":"26944:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26958:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":11691,"name":"int120","nodeType":"ElementaryTypeName","src":"26958:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"}],"id":11690,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"26953:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26953:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int120","typeString":"type(int120)"}},"id":11694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"26953:16:48","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26944:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11696,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11683,"src":"26973:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26987:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":11698,"name":"int120","nodeType":"ElementaryTypeName","src":"26987:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"}],"id":11697,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"26982:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26982:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int120","typeString":"type(int120)"}},"id":11701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"26982:16:48","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26973:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26944:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":11704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27000:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":11688,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26936:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26936:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11706,"nodeType":"ExpressionStatement","src":"26936:106:48"},{"expression":{"arguments":[{"id":11709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11683,"src":"27066:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27059:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":11707,"name":"int120","nodeType":"ElementaryTypeName","src":"27059:6:48","typeDescriptions":{}}},"id":11710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27059:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"functionReturnParameters":11687,"id":11711,"nodeType":"Return","src":"27052:20:48"}]},"documentation":{"id":11681,"nodeType":"StructuredDocumentation","src":"26508:350:48","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":11713,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26872:8:48","nodeType":"FunctionDefinition","parameters":{"id":11684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11683,"mutability":"mutable","name":"value","nameLocation":"26888:5:48","nodeType":"VariableDeclaration","scope":11713,"src":"26881:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11682,"name":"int256","nodeType":"ElementaryTypeName","src":"26881:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26880:14:48"},"returnParameters":{"id":11687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11713,"src":"26918:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":11685,"name":"int120","nodeType":"ElementaryTypeName","src":"26918:6:48","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26917:8:48"},"scope":12204,"src":"26863:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11745,"nodeType":"Block","src":"27503:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11722,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11716,"src":"27521:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27535:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":11724,"name":"int112","nodeType":"ElementaryTypeName","src":"27535:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"}],"id":11723,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"27530:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27530:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int112","typeString":"type(int112)"}},"id":11727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"27530:16:48","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27521:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11729,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11716,"src":"27550:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27564:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":11731,"name":"int112","nodeType":"ElementaryTypeName","src":"27564:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"}],"id":11730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"27559:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27559:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int112","typeString":"type(int112)"}},"id":11734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"27559:16:48","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27550:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27521:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":11737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27577:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":11721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27513:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27513:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11739,"nodeType":"ExpressionStatement","src":"27513:106:48"},{"expression":{"arguments":[{"id":11742,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11716,"src":"27643:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27636:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":11740,"name":"int112","nodeType":"ElementaryTypeName","src":"27636:6:48","typeDescriptions":{}}},"id":11743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27636:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"functionReturnParameters":11720,"id":11744,"nodeType":"Return","src":"27629:20:48"}]},"documentation":{"id":11714,"nodeType":"StructuredDocumentation","src":"27085:350:48","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":11746,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"27449:8:48","nodeType":"FunctionDefinition","parameters":{"id":11717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11716,"mutability":"mutable","name":"value","nameLocation":"27465:5:48","nodeType":"VariableDeclaration","scope":11746,"src":"27458:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11715,"name":"int256","nodeType":"ElementaryTypeName","src":"27458:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27457:14:48"},"returnParameters":{"id":11720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11746,"src":"27495:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":11718,"name":"int112","nodeType":"ElementaryTypeName","src":"27495:6:48","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27494:8:48"},"scope":12204,"src":"27440:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11778,"nodeType":"Block","src":"28080:153:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"28098:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28112:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":11757,"name":"int104","nodeType":"ElementaryTypeName","src":"28112:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"}],"id":11756,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"28107:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28107:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int104","typeString":"type(int104)"}},"id":11760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"28107:16:48","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"28098:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11762,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"28127:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28141:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":11764,"name":"int104","nodeType":"ElementaryTypeName","src":"28141:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"}],"id":11763,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"28136:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28136:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int104","typeString":"type(int104)"}},"id":11767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"28136:16:48","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"28127:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28098:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":11770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28154:41:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":11754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28090:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28090:106:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11772,"nodeType":"ExpressionStatement","src":"28090:106:48"},{"expression":{"arguments":[{"id":11775,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"28220:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28213:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":11773,"name":"int104","nodeType":"ElementaryTypeName","src":"28213:6:48","typeDescriptions":{}}},"id":11776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28213:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"functionReturnParameters":11753,"id":11777,"nodeType":"Return","src":"28206:20:48"}]},"documentation":{"id":11747,"nodeType":"StructuredDocumentation","src":"27662:350:48","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":11779,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"28026:8:48","nodeType":"FunctionDefinition","parameters":{"id":11750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11749,"mutability":"mutable","name":"value","nameLocation":"28042:5:48","nodeType":"VariableDeclaration","scope":11779,"src":"28035:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11748,"name":"int256","nodeType":"ElementaryTypeName","src":"28035:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28034:14:48"},"returnParameters":{"id":11753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11779,"src":"28072:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":11751,"name":"int104","nodeType":"ElementaryTypeName","src":"28072:6:48","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"28071:8:48"},"scope":12204,"src":"28017:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11811,"nodeType":"Block","src":"28650:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11782,"src":"28668:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28682:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":11790,"name":"int96","nodeType":"ElementaryTypeName","src":"28682:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"}],"id":11789,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"28677:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28677:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int96","typeString":"type(int96)"}},"id":11793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"28677:15:48","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28668:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11795,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11782,"src":"28696:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28710:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":11797,"name":"int96","nodeType":"ElementaryTypeName","src":"28710:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"}],"id":11796,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"28705:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28705:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int96","typeString":"type(int96)"}},"id":11800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"28705:15:48","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28696:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28668:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":11803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28722:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":11787,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28660:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28660:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11805,"nodeType":"ExpressionStatement","src":"28660:103:48"},{"expression":{"arguments":[{"id":11808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11782,"src":"28786:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28780:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":11806,"name":"int96","nodeType":"ElementaryTypeName","src":"28780:5:48","typeDescriptions":{}}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28780:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"functionReturnParameters":11786,"id":11810,"nodeType":"Return","src":"28773:19:48"}]},"documentation":{"id":11780,"nodeType":"StructuredDocumentation","src":"28239:345:48","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.7._"},"id":11812,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28598:7:48","nodeType":"FunctionDefinition","parameters":{"id":11783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11782,"mutability":"mutable","name":"value","nameLocation":"28613:5:48","nodeType":"VariableDeclaration","scope":11812,"src":"28606:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11781,"name":"int256","nodeType":"ElementaryTypeName","src":"28606:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28605:14:48"},"returnParameters":{"id":11786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11812,"src":"28643:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":11784,"name":"int96","nodeType":"ElementaryTypeName","src":"28643:5:48","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28642:7:48"},"scope":12204,"src":"28589:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11844,"nodeType":"Block","src":"29216:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11821,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"29234:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29248:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":11823,"name":"int88","nodeType":"ElementaryTypeName","src":"29248:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"}],"id":11822,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"29243:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29243:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int88","typeString":"type(int88)"}},"id":11826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"29243:15:48","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"29234:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11828,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"29262:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29276:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":11830,"name":"int88","nodeType":"ElementaryTypeName","src":"29276:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"}],"id":11829,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"29271:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29271:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int88","typeString":"type(int88)"}},"id":11833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"29271:15:48","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"29262:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29234:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":11836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29288:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":11820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29226:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29226:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11838,"nodeType":"ExpressionStatement","src":"29226:103:48"},{"expression":{"arguments":[{"id":11841,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"29352:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29346:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":11839,"name":"int88","nodeType":"ElementaryTypeName","src":"29346:5:48","typeDescriptions":{}}},"id":11842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29346:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"functionReturnParameters":11819,"id":11843,"nodeType":"Return","src":"29339:19:48"}]},"documentation":{"id":11813,"nodeType":"StructuredDocumentation","src":"28805:345:48","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":11845,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"29164:7:48","nodeType":"FunctionDefinition","parameters":{"id":11816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11815,"mutability":"mutable","name":"value","nameLocation":"29179:5:48","nodeType":"VariableDeclaration","scope":11845,"src":"29172:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11814,"name":"int256","nodeType":"ElementaryTypeName","src":"29172:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29171:14:48"},"returnParameters":{"id":11819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11845,"src":"29209:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":11817,"name":"int88","nodeType":"ElementaryTypeName","src":"29209:5:48","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"29208:7:48"},"scope":12204,"src":"29155:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11877,"nodeType":"Block","src":"29782:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11848,"src":"29800:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29814:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":11856,"name":"int80","nodeType":"ElementaryTypeName","src":"29814:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"}],"id":11855,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"29809:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29809:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int80","typeString":"type(int80)"}},"id":11859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"29809:15:48","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29800:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11861,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11848,"src":"29828:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29842:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":11863,"name":"int80","nodeType":"ElementaryTypeName","src":"29842:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"}],"id":11862,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"29837:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29837:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int80","typeString":"type(int80)"}},"id":11866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"29837:15:48","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29828:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29800:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":11869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29854:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":11853,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29792:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29792:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11871,"nodeType":"ExpressionStatement","src":"29792:103:48"},{"expression":{"arguments":[{"id":11874,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11848,"src":"29918:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29912:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":11872,"name":"int80","nodeType":"ElementaryTypeName","src":"29912:5:48","typeDescriptions":{}}},"id":11875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29912:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"functionReturnParameters":11852,"id":11876,"nodeType":"Return","src":"29905:19:48"}]},"documentation":{"id":11846,"nodeType":"StructuredDocumentation","src":"29371:345:48","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":11878,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29730:7:48","nodeType":"FunctionDefinition","parameters":{"id":11849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11848,"mutability":"mutable","name":"value","nameLocation":"29745:5:48","nodeType":"VariableDeclaration","scope":11878,"src":"29738:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11847,"name":"int256","nodeType":"ElementaryTypeName","src":"29738:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29737:14:48"},"returnParameters":{"id":11852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11878,"src":"29775:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":11850,"name":"int80","nodeType":"ElementaryTypeName","src":"29775:5:48","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29774:7:48"},"scope":12204,"src":"29721:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11910,"nodeType":"Block","src":"30348:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11887,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11881,"src":"30366:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30380:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":11889,"name":"int72","nodeType":"ElementaryTypeName","src":"30380:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"}],"id":11888,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"30375:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30375:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int72","typeString":"type(int72)"}},"id":11892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"30375:15:48","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"30366:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11894,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11881,"src":"30394:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30408:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":11896,"name":"int72","nodeType":"ElementaryTypeName","src":"30408:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"}],"id":11895,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"30403:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30403:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int72","typeString":"type(int72)"}},"id":11899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"30403:15:48","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"30394:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30366:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":11902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30420:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":11886,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30358:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30358:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11904,"nodeType":"ExpressionStatement","src":"30358:103:48"},{"expression":{"arguments":[{"id":11907,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11881,"src":"30484:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30478:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":11905,"name":"int72","nodeType":"ElementaryTypeName","src":"30478:5:48","typeDescriptions":{}}},"id":11908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30478:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"functionReturnParameters":11885,"id":11909,"nodeType":"Return","src":"30471:19:48"}]},"documentation":{"id":11879,"nodeType":"StructuredDocumentation","src":"29937:345:48","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":11911,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"30296:7:48","nodeType":"FunctionDefinition","parameters":{"id":11882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11881,"mutability":"mutable","name":"value","nameLocation":"30311:5:48","nodeType":"VariableDeclaration","scope":11911,"src":"30304:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11880,"name":"int256","nodeType":"ElementaryTypeName","src":"30304:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30303:14:48"},"returnParameters":{"id":11885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11911,"src":"30341:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":11883,"name":"int72","nodeType":"ElementaryTypeName","src":"30341:5:48","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"30340:7:48"},"scope":12204,"src":"30287:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11943,"nodeType":"Block","src":"30914:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11920,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"30932:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30946:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":11922,"name":"int64","nodeType":"ElementaryTypeName","src":"30946:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"}],"id":11921,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"30941:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30941:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int64","typeString":"type(int64)"}},"id":11925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"30941:15:48","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30932:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"30960:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30974:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":11929,"name":"int64","nodeType":"ElementaryTypeName","src":"30974:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"}],"id":11928,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"30969:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30969:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int64","typeString":"type(int64)"}},"id":11932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"30969:15:48","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30960:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30932:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":11935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30986:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":11919,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30924:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30924:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11937,"nodeType":"ExpressionStatement","src":"30924:103:48"},{"expression":{"arguments":[{"id":11940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"31050:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31044:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":11938,"name":"int64","nodeType":"ElementaryTypeName","src":"31044:5:48","typeDescriptions":{}}},"id":11941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31044:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"functionReturnParameters":11918,"id":11942,"nodeType":"Return","src":"31037:19:48"}]},"documentation":{"id":11912,"nodeType":"StructuredDocumentation","src":"30503:345:48","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v3.1._"},"id":11944,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30862:7:48","nodeType":"FunctionDefinition","parameters":{"id":11915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11914,"mutability":"mutable","name":"value","nameLocation":"30877:5:48","nodeType":"VariableDeclaration","scope":11944,"src":"30870:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11913,"name":"int256","nodeType":"ElementaryTypeName","src":"30870:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30869:14:48"},"returnParameters":{"id":11918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11944,"src":"30907:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":11916,"name":"int64","nodeType":"ElementaryTypeName","src":"30907:5:48","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30906:7:48"},"scope":12204,"src":"30853:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11976,"nodeType":"Block","src":"31480:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11953,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"31498:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31512:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":11955,"name":"int56","nodeType":"ElementaryTypeName","src":"31512:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"}],"id":11954,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"31507:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31507:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int56","typeString":"type(int56)"}},"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"31507:15:48","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"31498:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11960,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"31526:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31540:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":11962,"name":"int56","nodeType":"ElementaryTypeName","src":"31540:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"}],"id":11961,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"31535:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31535:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int56","typeString":"type(int56)"}},"id":11965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"31535:15:48","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"31526:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31498:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":11968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31552:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":11952,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31490:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31490:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11970,"nodeType":"ExpressionStatement","src":"31490:103:48"},{"expression":{"arguments":[{"id":11973,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"31616:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31610:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":11971,"name":"int56","nodeType":"ElementaryTypeName","src":"31610:5:48","typeDescriptions":{}}},"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31610:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"functionReturnParameters":11951,"id":11975,"nodeType":"Return","src":"31603:19:48"}]},"documentation":{"id":11945,"nodeType":"StructuredDocumentation","src":"31069:345:48","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":11977,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"31428:7:48","nodeType":"FunctionDefinition","parameters":{"id":11948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11947,"mutability":"mutable","name":"value","nameLocation":"31443:5:48","nodeType":"VariableDeclaration","scope":11977,"src":"31436:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11946,"name":"int256","nodeType":"ElementaryTypeName","src":"31436:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31435:14:48"},"returnParameters":{"id":11951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11950,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11977,"src":"31473:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":11949,"name":"int56","nodeType":"ElementaryTypeName","src":"31473:5:48","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"31472:7:48"},"scope":12204,"src":"31419:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12009,"nodeType":"Block","src":"32046:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"32064:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":11989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32078:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":11988,"name":"int48","nodeType":"ElementaryTypeName","src":"32078:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"}],"id":11987,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"32073:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32073:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int48","typeString":"type(int48)"}},"id":11991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"32073:15:48","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"32064:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11993,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"32092:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":11996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32106:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":11995,"name":"int48","nodeType":"ElementaryTypeName","src":"32106:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"}],"id":11994,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"32101:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32101:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int48","typeString":"type(int48)"}},"id":11998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"32101:15:48","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"32092:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32064:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":12001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32118:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":11985,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32056:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32056:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12003,"nodeType":"ExpressionStatement","src":"32056:103:48"},{"expression":{"arguments":[{"id":12006,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"32182:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32176:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":12004,"name":"int48","nodeType":"ElementaryTypeName","src":"32176:5:48","typeDescriptions":{}}},"id":12007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32176:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"functionReturnParameters":11984,"id":12008,"nodeType":"Return","src":"32169:19:48"}]},"documentation":{"id":11978,"nodeType":"StructuredDocumentation","src":"31635:345:48","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":12010,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31994:7:48","nodeType":"FunctionDefinition","parameters":{"id":11981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11980,"mutability":"mutable","name":"value","nameLocation":"32009:5:48","nodeType":"VariableDeclaration","scope":12010,"src":"32002:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11979,"name":"int256","nodeType":"ElementaryTypeName","src":"32002:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32001:14:48"},"returnParameters":{"id":11984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12010,"src":"32039:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":11982,"name":"int48","nodeType":"ElementaryTypeName","src":"32039:5:48","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"32038:7:48"},"scope":12204,"src":"31985:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12042,"nodeType":"Block","src":"32612:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"32630:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":12022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32644:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":12021,"name":"int40","nodeType":"ElementaryTypeName","src":"32644:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"}],"id":12020,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"32639:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32639:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int40","typeString":"type(int40)"}},"id":12024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"32639:15:48","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"32630:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12026,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"32658:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":12029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32672:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":12028,"name":"int40","nodeType":"ElementaryTypeName","src":"32672:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"}],"id":12027,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"32667:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32667:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int40","typeString":"type(int40)"}},"id":12031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"32667:15:48","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"32658:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32630:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":12034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32684:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":12018,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32622:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32622:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12036,"nodeType":"ExpressionStatement","src":"32622:103:48"},{"expression":{"arguments":[{"id":12039,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"32748:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32742:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":12037,"name":"int40","nodeType":"ElementaryTypeName","src":"32742:5:48","typeDescriptions":{}}},"id":12040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32742:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"functionReturnParameters":12017,"id":12041,"nodeType":"Return","src":"32735:19:48"}]},"documentation":{"id":12011,"nodeType":"StructuredDocumentation","src":"32201:345:48","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":12043,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"32560:7:48","nodeType":"FunctionDefinition","parameters":{"id":12014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12013,"mutability":"mutable","name":"value","nameLocation":"32575:5:48","nodeType":"VariableDeclaration","scope":12043,"src":"32568:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12012,"name":"int256","nodeType":"ElementaryTypeName","src":"32568:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32567:14:48"},"returnParameters":{"id":12017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12043,"src":"32605:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":12015,"name":"int40","nodeType":"ElementaryTypeName","src":"32605:5:48","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"32604:7:48"},"scope":12204,"src":"32551:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12075,"nodeType":"Block","src":"33178:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"33196:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":12055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33210:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":12054,"name":"int32","nodeType":"ElementaryTypeName","src":"33210:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"}],"id":12053,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"33205:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33205:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int32","typeString":"type(int32)"}},"id":12057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"33205:15:48","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"33196:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"33224:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":12062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33238:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":12061,"name":"int32","nodeType":"ElementaryTypeName","src":"33238:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"}],"id":12060,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"33233:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33233:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int32","typeString":"type(int32)"}},"id":12064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"33233:15:48","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"33224:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33196:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":12067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33250:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":12051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33188:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33188:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12069,"nodeType":"ExpressionStatement","src":"33188:103:48"},{"expression":{"arguments":[{"id":12072,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"33314:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33308:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":12070,"name":"int32","nodeType":"ElementaryTypeName","src":"33308:5:48","typeDescriptions":{}}},"id":12073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33308:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"functionReturnParameters":12050,"id":12074,"nodeType":"Return","src":"33301:19:48"}]},"documentation":{"id":12044,"nodeType":"StructuredDocumentation","src":"32767:345:48","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v3.1._"},"id":12076,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"33126:7:48","nodeType":"FunctionDefinition","parameters":{"id":12047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12046,"mutability":"mutable","name":"value","nameLocation":"33141:5:48","nodeType":"VariableDeclaration","scope":12076,"src":"33134:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12045,"name":"int256","nodeType":"ElementaryTypeName","src":"33134:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33133:14:48"},"returnParameters":{"id":12050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12076,"src":"33171:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":12048,"name":"int32","nodeType":"ElementaryTypeName","src":"33171:5:48","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"33170:7:48"},"scope":12204,"src":"33117:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12108,"nodeType":"Block","src":"33744:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"33762:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":12088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33776:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":12087,"name":"int24","nodeType":"ElementaryTypeName","src":"33776:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"}],"id":12086,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"33771:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33771:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int24","typeString":"type(int24)"}},"id":12090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"33771:15:48","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"33762:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"33790:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":12095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33804:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":12094,"name":"int24","nodeType":"ElementaryTypeName","src":"33804:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"}],"id":12093,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"33799:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33799:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int24","typeString":"type(int24)"}},"id":12097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"33799:15:48","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"33790:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33762:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":12100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33816:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":12084,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33754:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33754:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12102,"nodeType":"ExpressionStatement","src":"33754:103:48"},{"expression":{"arguments":[{"id":12105,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"33880:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33874:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":12103,"name":"int24","nodeType":"ElementaryTypeName","src":"33874:5:48","typeDescriptions":{}}},"id":12106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33874:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"functionReturnParameters":12083,"id":12107,"nodeType":"Return","src":"33867:19:48"}]},"documentation":{"id":12077,"nodeType":"StructuredDocumentation","src":"33333:345:48","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":12109,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"33692:7:48","nodeType":"FunctionDefinition","parameters":{"id":12080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12079,"mutability":"mutable","name":"value","nameLocation":"33707:5:48","nodeType":"VariableDeclaration","scope":12109,"src":"33700:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12078,"name":"int256","nodeType":"ElementaryTypeName","src":"33700:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33699:14:48"},"returnParameters":{"id":12083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12109,"src":"33737:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":12081,"name":"int24","nodeType":"ElementaryTypeName","src":"33737:5:48","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"33736:7:48"},"scope":12204,"src":"33683:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12141,"nodeType":"Block","src":"34310:149:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12118,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"34328:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":12121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34342:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":12120,"name":"int16","nodeType":"ElementaryTypeName","src":"34342:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"}],"id":12119,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34337:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34337:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int16","typeString":"type(int16)"}},"id":12123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"34337:15:48","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"34328:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"34356:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":12128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34370:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":12127,"name":"int16","nodeType":"ElementaryTypeName","src":"34370:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"}],"id":12126,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34365:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34365:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int16","typeString":"type(int16)"}},"id":12130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"34365:15:48","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"34356:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"34328:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":12133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34382:40:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":12117,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34320:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34320:103:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12135,"nodeType":"ExpressionStatement","src":"34320:103:48"},{"expression":{"arguments":[{"id":12138,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"34446:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34440:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":12136,"name":"int16","nodeType":"ElementaryTypeName","src":"34440:5:48","typeDescriptions":{}}},"id":12139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34440:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"functionReturnParameters":12116,"id":12140,"nodeType":"Return","src":"34433:19:48"}]},"documentation":{"id":12110,"nodeType":"StructuredDocumentation","src":"33899:345:48","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v3.1._"},"id":12142,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"34258:7:48","nodeType":"FunctionDefinition","parameters":{"id":12113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12112,"mutability":"mutable","name":"value","nameLocation":"34273:5:48","nodeType":"VariableDeclaration","scope":12142,"src":"34266:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12111,"name":"int256","nodeType":"ElementaryTypeName","src":"34266:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34265:14:48"},"returnParameters":{"id":12116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12142,"src":"34303:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":12114,"name":"int16","nodeType":"ElementaryTypeName","src":"34303:5:48","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"34302:7:48"},"scope":12204,"src":"34249:210:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12174,"nodeType":"Block","src":"34869:145:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"34887:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":12154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34901:4:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":12153,"name":"int8","nodeType":"ElementaryTypeName","src":"34901:4:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"}],"id":12152,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34896:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34896:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int8","typeString":"type(int8)"}},"id":12156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","src":"34896:14:48","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34887:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12158,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"34914:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":12161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34928:4:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":12160,"name":"int8","nodeType":"ElementaryTypeName","src":"34928:4:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"}],"id":12159,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34923:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34923:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int8","typeString":"type(int8)"}},"id":12163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"34923:14:48","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34914:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"34887:50:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":12166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34939:39:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":12150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34879:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34879:100:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12168,"nodeType":"ExpressionStatement","src":"34879:100:48"},{"expression":{"arguments":[{"id":12171,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"35001:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34996:4:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":12169,"name":"int8","nodeType":"ElementaryTypeName","src":"34996:4:48","typeDescriptions":{}}},"id":12172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34996:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"functionReturnParameters":12149,"id":12173,"nodeType":"Return","src":"34989:18:48"}]},"documentation":{"id":12143,"nodeType":"StructuredDocumentation","src":"34465:340:48","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v3.1._"},"id":12175,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"34819:6:48","nodeType":"FunctionDefinition","parameters":{"id":12146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12145,"mutability":"mutable","name":"value","nameLocation":"34833:5:48","nodeType":"VariableDeclaration","scope":12175,"src":"34826:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12144,"name":"int256","nodeType":"ElementaryTypeName","src":"34826:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34825:14:48"},"returnParameters":{"id":12149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12175,"src":"34863:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":12147,"name":"int8","nodeType":"ElementaryTypeName","src":"34863:4:48","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34862:6:48"},"scope":12204,"src":"34810:204:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12202,"nodeType":"Block","src":"35292:233:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12184,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12178,"src":"35409:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":12189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35431:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":12188,"name":"int256","nodeType":"ElementaryTypeName","src":"35431:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":12187,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"35426:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35426:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":12191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"35426:16:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35418:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12185,"name":"uint256","nodeType":"ElementaryTypeName","src":"35418:7:48","typeDescriptions":{}}},"id":12192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35418:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35409:34:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e74323536","id":12194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35445:42:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""},"value":"SafeCast: value doesn't fit in an int256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""}],"id":12183,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"35401:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35401:87:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12196,"nodeType":"ExpressionStatement","src":"35401:87:48"},{"expression":{"arguments":[{"id":12199,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12178,"src":"35512:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35505:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":12197,"name":"int256","nodeType":"ElementaryTypeName","src":"35505:6:48","typeDescriptions":{}}},"id":12200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35505:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":12182,"id":12201,"nodeType":"Return","src":"35498:20:48"}]},"documentation":{"id":12176,"nodeType":"StructuredDocumentation","src":"35020:203:48","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256.\n _Available since v3.0._"},"id":12203,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"35237:8:48","nodeType":"FunctionDefinition","parameters":{"id":12179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12178,"mutability":"mutable","name":"value","nameLocation":"35254:5:48","nodeType":"VariableDeclaration","scope":12203,"src":"35246:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12177,"name":"uint256","nodeType":"ElementaryTypeName","src":"35246:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35245:15:48"},"returnParameters":{"id":12182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12203,"src":"35284:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12180,"name":"int256","nodeType":"ElementaryTypeName","src":"35284:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"35283:8:48"},"scope":12204,"src":"35228:297:48","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12205,"src":"842:34685:48","usedErrors":[]}],"src":"107:35421:48"},"id":48},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","exportedSymbols":{"SafeMath":[12516]},"id":12517,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12206,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:49"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":12207,"nodeType":"StructuredDocumentation","src":"285:196:49","text":" @dev Wrappers over Solidity's arithmetic operations.\n NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n now has built in overflow checking."},"fullyImplemented":true,"id":12516,"linearizedBaseContracts":[12516],"name":"SafeMath","nameLocation":"490:8:49","nodeType":"ContractDefinition","nodes":[{"body":{"id":12238,"nodeType":"Block","src":"717:140:49","statements":[{"id":12237,"nodeType":"UncheckedBlock","src":"727:124:49","statements":[{"assignments":[12220],"declarations":[{"constant":false,"id":12220,"mutability":"mutable","name":"c","nameLocation":"759:1:49","nodeType":"VariableDeclaration","scope":12237,"src":"751:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12219,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12224,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12221,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12210,"src":"763:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12222,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12212,"src":"767:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"763:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"751:17:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12225,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"786:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12226,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12210,"src":"790:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"786:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12232,"nodeType":"IfStatement","src":"782:28:49","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"801:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"808:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12230,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"800:10:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12218,"id":12231,"nodeType":"Return","src":"793:17:49"}},{"expression":{"components":[{"hexValue":"74727565","id":12233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"832:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":12234,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12220,"src":"838:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"831:9:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12218,"id":12236,"nodeType":"Return","src":"824:16:49"}]}]},"documentation":{"id":12208,"nodeType":"StructuredDocumentation","src":"505:131:49","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":12239,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"650:6:49","nodeType":"FunctionDefinition","parameters":{"id":12213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12210,"mutability":"mutable","name":"a","nameLocation":"665:1:49","nodeType":"VariableDeclaration","scope":12239,"src":"657:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12209,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12212,"mutability":"mutable","name":"b","nameLocation":"676:1:49","nodeType":"VariableDeclaration","scope":12239,"src":"668:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12211,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"656:22:49"},"returnParameters":{"id":12218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12239,"src":"702:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12214,"name":"bool","nodeType":"ElementaryTypeName","src":"702:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12239,"src":"708:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12216,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"701:15:49"},"scope":12516,"src":"641:216:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12266,"nodeType":"Block","src":"1078:113:49","statements":[{"id":12265,"nodeType":"UncheckedBlock","src":"1088:97:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12251,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"1116:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12252,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"1120:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1116:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12258,"nodeType":"IfStatement","src":"1112:28:49","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1131:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12256,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1130:10:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12250,"id":12257,"nodeType":"Return","src":"1123:17:49"}},{"expression":{"components":[{"hexValue":"74727565","id":12259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1162:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12260,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"1168:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12261,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"1172:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1168:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1161:13:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12250,"id":12264,"nodeType":"Return","src":"1154:20:49"}]}]},"documentation":{"id":12240,"nodeType":"StructuredDocumentation","src":"863:134:49","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":12267,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"1011:6:49","nodeType":"FunctionDefinition","parameters":{"id":12245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12242,"mutability":"mutable","name":"a","nameLocation":"1026:1:49","nodeType":"VariableDeclaration","scope":12267,"src":"1018:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12241,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12244,"mutability":"mutable","name":"b","nameLocation":"1037:1:49","nodeType":"VariableDeclaration","scope":12267,"src":"1029:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1017:22:49"},"returnParameters":{"id":12250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12267,"src":"1063:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12246,"name":"bool","nodeType":"ElementaryTypeName","src":"1063:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12267,"src":"1069:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12248,"name":"uint256","nodeType":"ElementaryTypeName","src":"1069:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1062:15:49"},"scope":12516,"src":"1002:189:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12308,"nodeType":"Block","src":"1415:417:49","statements":[{"id":12307,"nodeType":"UncheckedBlock","src":"1425:401:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12279,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12270,"src":"1683:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1688:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1683:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12286,"nodeType":"IfStatement","src":"1679:28:49","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":12282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1699:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":12283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1705:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12284,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1698:9:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12278,"id":12285,"nodeType":"Return","src":"1691:16:49"}},{"assignments":[12288],"declarations":[{"constant":false,"id":12288,"mutability":"mutable","name":"c","nameLocation":"1729:1:49","nodeType":"VariableDeclaration","scope":12307,"src":"1721:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12287,"name":"uint256","nodeType":"ElementaryTypeName","src":"1721:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12292,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12289,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12270,"src":"1733:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12290,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"1737:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1733:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1721:17:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12293,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12288,"src":"1756:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12294,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12270,"src":"1760:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12296,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"1765:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1756:10:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12302,"nodeType":"IfStatement","src":"1752:33:49","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1776:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1783:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12300,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1775:10:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12278,"id":12301,"nodeType":"Return","src":"1768:17:49"}},{"expression":{"components":[{"hexValue":"74727565","id":12303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1807:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":12304,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12288,"src":"1813:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12305,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1806:9:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12278,"id":12306,"nodeType":"Return","src":"1799:16:49"}]}]},"documentation":{"id":12268,"nodeType":"StructuredDocumentation","src":"1197:137:49","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":12309,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1348:6:49","nodeType":"FunctionDefinition","parameters":{"id":12273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12270,"mutability":"mutable","name":"a","nameLocation":"1363:1:49","nodeType":"VariableDeclaration","scope":12309,"src":"1355:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12269,"name":"uint256","nodeType":"ElementaryTypeName","src":"1355:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12272,"mutability":"mutable","name":"b","nameLocation":"1374:1:49","nodeType":"VariableDeclaration","scope":12309,"src":"1366:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12271,"name":"uint256","nodeType":"ElementaryTypeName","src":"1366:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1354:22:49"},"returnParameters":{"id":12278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12309,"src":"1400:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12274,"name":"bool","nodeType":"ElementaryTypeName","src":"1400:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12309,"src":"1406:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12276,"name":"uint256","nodeType":"ElementaryTypeName","src":"1406:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1399:15:49"},"scope":12516,"src":"1339:493:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12336,"nodeType":"Block","src":"2057:114:49","statements":[{"id":12335,"nodeType":"UncheckedBlock","src":"2067:98:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12321,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12314,"src":"2095:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2095:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12328,"nodeType":"IfStatement","src":"2091:29:49","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2111:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12326,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2110:10:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12320,"id":12327,"nodeType":"Return","src":"2103:17:49"}},{"expression":{"components":[{"hexValue":"74727565","id":12329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2142:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12330,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12312,"src":"2148:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12331,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12314,"src":"2152:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2148:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12333,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2141:13:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12320,"id":12334,"nodeType":"Return","src":"2134:20:49"}]}]},"documentation":{"id":12310,"nodeType":"StructuredDocumentation","src":"1838:138:49","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":12337,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1990:6:49","nodeType":"FunctionDefinition","parameters":{"id":12315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12312,"mutability":"mutable","name":"a","nameLocation":"2005:1:49","nodeType":"VariableDeclaration","scope":12337,"src":"1997:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12311,"name":"uint256","nodeType":"ElementaryTypeName","src":"1997:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12314,"mutability":"mutable","name":"b","nameLocation":"2016:1:49","nodeType":"VariableDeclaration","scope":12337,"src":"2008:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12313,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:22:49"},"returnParameters":{"id":12320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12337,"src":"2042:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12316,"name":"bool","nodeType":"ElementaryTypeName","src":"2042:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12337,"src":"2048:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12318,"name":"uint256","nodeType":"ElementaryTypeName","src":"2048:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2041:15:49"},"scope":12516,"src":"1981:190:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12364,"nodeType":"Block","src":"2406:114:49","statements":[{"id":12363,"nodeType":"UncheckedBlock","src":"2416:98:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12349,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"2444:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2449:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2444:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12356,"nodeType":"IfStatement","src":"2440:29:49","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":12352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2460:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":12353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2467:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":12354,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2459:10:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":12348,"id":12355,"nodeType":"Return","src":"2452:17:49"}},{"expression":{"components":[{"hexValue":"74727565","id":12357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2491:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12358,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12340,"src":"2497:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":12359,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"2501:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2497:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12361,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2490:13:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":12348,"id":12362,"nodeType":"Return","src":"2483:20:49"}]}]},"documentation":{"id":12338,"nodeType":"StructuredDocumentation","src":"2177:148:49","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":12365,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2339:6:49","nodeType":"FunctionDefinition","parameters":{"id":12343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"mutability":"mutable","name":"a","nameLocation":"2354:1:49","nodeType":"VariableDeclaration","scope":12365,"src":"2346:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12339,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12342,"mutability":"mutable","name":"b","nameLocation":"2365:1:49","nodeType":"VariableDeclaration","scope":12365,"src":"2357:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12341,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2345:22:49"},"returnParameters":{"id":12348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12365,"src":"2391:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12344,"name":"bool","nodeType":"ElementaryTypeName","src":"2391:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12365,"src":"2397:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12346,"name":"uint256","nodeType":"ElementaryTypeName","src":"2397:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2390:15:49"},"scope":12516,"src":"2330:190:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12379,"nodeType":"Block","src":"2822:29:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12375,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"2839:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12376,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"2843:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2839:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12374,"id":12378,"nodeType":"Return","src":"2832:12:49"}]},"documentation":{"id":12366,"nodeType":"StructuredDocumentation","src":"2526:224:49","text":" @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."},"id":12380,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"2764:3:49","nodeType":"FunctionDefinition","parameters":{"id":12371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12368,"mutability":"mutable","name":"a","nameLocation":"2776:1:49","nodeType":"VariableDeclaration","scope":12380,"src":"2768:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12367,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12370,"mutability":"mutable","name":"b","nameLocation":"2787:1:49","nodeType":"VariableDeclaration","scope":12380,"src":"2779:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12369,"name":"uint256","nodeType":"ElementaryTypeName","src":"2779:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2767:22:49"},"returnParameters":{"id":12374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12380,"src":"2813:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12372,"name":"uint256","nodeType":"ElementaryTypeName","src":"2813:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2812:9:49"},"scope":12516,"src":"2755:96:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12394,"nodeType":"Block","src":"3189:29:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12390,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"3206:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12391,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"3210:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3206:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12389,"id":12393,"nodeType":"Return","src":"3199:12:49"}]},"documentation":{"id":12381,"nodeType":"StructuredDocumentation","src":"2857:260:49","text":" @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":12395,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"3131:3:49","nodeType":"FunctionDefinition","parameters":{"id":12386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12383,"mutability":"mutable","name":"a","nameLocation":"3143:1:49","nodeType":"VariableDeclaration","scope":12395,"src":"3135:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12382,"name":"uint256","nodeType":"ElementaryTypeName","src":"3135:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12385,"mutability":"mutable","name":"b","nameLocation":"3154:1:49","nodeType":"VariableDeclaration","scope":12395,"src":"3146:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12384,"name":"uint256","nodeType":"ElementaryTypeName","src":"3146:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3134:22:49"},"returnParameters":{"id":12389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12395,"src":"3180:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12387,"name":"uint256","nodeType":"ElementaryTypeName","src":"3180:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:9:49"},"scope":12516,"src":"3122:96:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12409,"nodeType":"Block","src":"3532:29:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12405,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"3549:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12406,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12400,"src":"3553:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3549:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12404,"id":12408,"nodeType":"Return","src":"3542:12:49"}]},"documentation":{"id":12396,"nodeType":"StructuredDocumentation","src":"3224:236:49","text":" @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."},"id":12410,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nameLocation":"3474:3:49","nodeType":"FunctionDefinition","parameters":{"id":12401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12398,"mutability":"mutable","name":"a","nameLocation":"3486:1:49","nodeType":"VariableDeclaration","scope":12410,"src":"3478:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12397,"name":"uint256","nodeType":"ElementaryTypeName","src":"3478:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12400,"mutability":"mutable","name":"b","nameLocation":"3497:1:49","nodeType":"VariableDeclaration","scope":12410,"src":"3489:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12399,"name":"uint256","nodeType":"ElementaryTypeName","src":"3489:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3477:22:49"},"returnParameters":{"id":12404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12410,"src":"3523:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12402,"name":"uint256","nodeType":"ElementaryTypeName","src":"3523:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3522:9:49"},"scope":12516,"src":"3465:96:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12424,"nodeType":"Block","src":"3917:29:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12420,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12413,"src":"3934:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12421,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"3938:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3934:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12419,"id":12423,"nodeType":"Return","src":"3927:12:49"}]},"documentation":{"id":12411,"nodeType":"StructuredDocumentation","src":"3567:278:49","text":" @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator.\n Requirements:\n - The divisor cannot be zero."},"id":12425,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"3859:3:49","nodeType":"FunctionDefinition","parameters":{"id":12416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12413,"mutability":"mutable","name":"a","nameLocation":"3871:1:49","nodeType":"VariableDeclaration","scope":12425,"src":"3863:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12412,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12415,"mutability":"mutable","name":"b","nameLocation":"3882:1:49","nodeType":"VariableDeclaration","scope":12425,"src":"3874:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12414,"name":"uint256","nodeType":"ElementaryTypeName","src":"3874:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3862:22:49"},"returnParameters":{"id":12419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12425,"src":"3908:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12417,"name":"uint256","nodeType":"ElementaryTypeName","src":"3908:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3907:9:49"},"scope":12516,"src":"3850:96:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12439,"nodeType":"Block","src":"4466:29:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12435,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12428,"src":"4483:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":12436,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"4487:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4483:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12434,"id":12438,"nodeType":"Return","src":"4476:12:49"}]},"documentation":{"id":12426,"nodeType":"StructuredDocumentation","src":"3952:442:49","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":12440,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"4408:3:49","nodeType":"FunctionDefinition","parameters":{"id":12431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12428,"mutability":"mutable","name":"a","nameLocation":"4420:1:49","nodeType":"VariableDeclaration","scope":12440,"src":"4412:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12427,"name":"uint256","nodeType":"ElementaryTypeName","src":"4412:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12430,"mutability":"mutable","name":"b","nameLocation":"4431:1:49","nodeType":"VariableDeclaration","scope":12440,"src":"4423:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12429,"name":"uint256","nodeType":"ElementaryTypeName","src":"4423:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4411:22:49"},"returnParameters":{"id":12434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12440,"src":"4457:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12432,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:9:49"},"scope":12516,"src":"4399:96:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12464,"nodeType":"Block","src":"5084:106:49","statements":[{"id":12463,"nodeType":"UncheckedBlock","src":"5094:90:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12453,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"5126:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":12454,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12443,"src":"5131:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5126:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12456,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"5134:12:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12452,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5118:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5118:29:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12458,"nodeType":"ExpressionStatement","src":"5118:29:49"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12459,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12443,"src":"5168:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12460,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"5172:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5168:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12451,"id":12462,"nodeType":"Return","src":"5161:12:49"}]}]},"documentation":{"id":12441,"nodeType":"StructuredDocumentation","src":"4501:453:49","text":" @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":12465,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"4968:3:49","nodeType":"FunctionDefinition","parameters":{"id":12448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12443,"mutability":"mutable","name":"a","nameLocation":"4989:1:49","nodeType":"VariableDeclaration","scope":12465,"src":"4981:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12442,"name":"uint256","nodeType":"ElementaryTypeName","src":"4981:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12445,"mutability":"mutable","name":"b","nameLocation":"5008:1:49","nodeType":"VariableDeclaration","scope":12465,"src":"5000:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12444,"name":"uint256","nodeType":"ElementaryTypeName","src":"5000:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12447,"mutability":"mutable","name":"errorMessage","nameLocation":"5033:12:49","nodeType":"VariableDeclaration","scope":12465,"src":"5019:26:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12446,"name":"string","nodeType":"ElementaryTypeName","src":"5019:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4971:80:49"},"returnParameters":{"id":12451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12465,"src":"5075:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12449,"name":"uint256","nodeType":"ElementaryTypeName","src":"5075:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5074:9:49"},"scope":12516,"src":"4959:231:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12489,"nodeType":"Block","src":"5799:105:49","statements":[{"id":12488,"nodeType":"UncheckedBlock","src":"5809:89:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12478,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"5841:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5845:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5841:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12481,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"5848:12:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5833:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5833:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12483,"nodeType":"ExpressionStatement","src":"5833:28:49"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12484,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12468,"src":"5882:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12485,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"5886:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5882:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12476,"id":12487,"nodeType":"Return","src":"5875:12:49"}]}]},"documentation":{"id":12466,"nodeType":"StructuredDocumentation","src":"5196:473:49","text":" @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":12490,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"5683:3:49","nodeType":"FunctionDefinition","parameters":{"id":12473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12468,"mutability":"mutable","name":"a","nameLocation":"5704:1:49","nodeType":"VariableDeclaration","scope":12490,"src":"5696:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12467,"name":"uint256","nodeType":"ElementaryTypeName","src":"5696:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12470,"mutability":"mutable","name":"b","nameLocation":"5723:1:49","nodeType":"VariableDeclaration","scope":12490,"src":"5715:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12469,"name":"uint256","nodeType":"ElementaryTypeName","src":"5715:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12472,"mutability":"mutable","name":"errorMessage","nameLocation":"5748:12:49","nodeType":"VariableDeclaration","scope":12490,"src":"5734:26:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12471,"name":"string","nodeType":"ElementaryTypeName","src":"5734:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5686:80:49"},"returnParameters":{"id":12476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12490,"src":"5790:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12474,"name":"uint256","nodeType":"ElementaryTypeName","src":"5790:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5789:9:49"},"scope":12516,"src":"5674:230:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12514,"nodeType":"Block","src":"6675:105:49","statements":[{"id":12513,"nodeType":"UncheckedBlock","src":"6685:89:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12495,"src":"6717:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6721:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6717:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12506,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12497,"src":"6724:12:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6709:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6709:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12508,"nodeType":"ExpressionStatement","src":"6709:28:49"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12509,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12493,"src":"6758:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":12510,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12495,"src":"6762:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6758:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12501,"id":12512,"nodeType":"Return","src":"6751:12:49"}]}]},"documentation":{"id":12491,"nodeType":"StructuredDocumentation","src":"5910:635:49","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":12515,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"6559:3:49","nodeType":"FunctionDefinition","parameters":{"id":12498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12493,"mutability":"mutable","name":"a","nameLocation":"6580:1:49","nodeType":"VariableDeclaration","scope":12515,"src":"6572:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12492,"name":"uint256","nodeType":"ElementaryTypeName","src":"6572:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12495,"mutability":"mutable","name":"b","nameLocation":"6599:1:49","nodeType":"VariableDeclaration","scope":12515,"src":"6591:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12494,"name":"uint256","nodeType":"ElementaryTypeName","src":"6591:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12497,"mutability":"mutable","name":"errorMessage","nameLocation":"6624:12:49","nodeType":"VariableDeclaration","scope":12515,"src":"6610:26:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12496,"name":"string","nodeType":"ElementaryTypeName","src":"6610:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6562:80:49"},"returnParameters":{"id":12501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12515,"src":"6666:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12499,"name":"uint256","nodeType":"ElementaryTypeName","src":"6666:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6665:9:49"},"scope":12516,"src":"6550:230:49","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12517,"src":"482:6300:49","usedErrors":[]}],"src":"107:6676:49"},"id":49},"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol","exportedSymbols":{"DoubleEndedQueue":[12857],"SafeCast":[12204]},"id":12858,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12518,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"117:23:50"},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../math/SafeCast.sol","id":12519,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12858,"sourceUnit":12205,"src":"142:30:50","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":12520,"nodeType":"StructuredDocumentation","src":"174:660:50","text":" @dev A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of\n the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and\n FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that\n the existing queue contents are left in storage.\n The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be\n used in storage, and not in memory.\n ```\n DoubleEndedQueue.Bytes32Deque queue;\n ```\n _Available since v4.6._"},"fullyImplemented":true,"id":12857,"linearizedBaseContracts":[12857],"name":"DoubleEndedQueue","nameLocation":"843:16:50","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12521,"nodeType":"StructuredDocumentation","src":"866:103:50","text":" @dev An operation (e.g. {front}) couldn't be completed due to the queue being empty."},"id":12523,"name":"Empty","nameLocation":"980:5:50","nodeType":"ErrorDefinition","parameters":{"id":12522,"nodeType":"ParameterList","parameters":[],"src":"985:2:50"},"src":"974:14:50"},{"documentation":{"id":12524,"nodeType":"StructuredDocumentation","src":"994:107:50","text":" @dev An operation (e.g. {at}) couldn't be completed due to an index being out of bounds."},"id":12526,"name":"OutOfBounds","nameLocation":"1112:11:50","nodeType":"ErrorDefinition","parameters":{"id":12525,"nodeType":"ParameterList","parameters":[],"src":"1123:2:50"},"src":"1106:20:50"},{"canonicalName":"DoubleEndedQueue.Bytes32Deque","id":12535,"members":[{"constant":false,"id":12528,"mutability":"mutable","name":"_begin","nameLocation":"1937:6:50","nodeType":"VariableDeclaration","scope":12535,"src":"1930:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12527,"name":"int128","nodeType":"ElementaryTypeName","src":"1930:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":12530,"mutability":"mutable","name":"_end","nameLocation":"1960:4:50","nodeType":"VariableDeclaration","scope":12535,"src":"1953:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12529,"name":"int128","nodeType":"ElementaryTypeName","src":"1953:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":12534,"mutability":"mutable","name":"_data","nameLocation":"2001:5:50","nodeType":"VariableDeclaration","scope":12535,"src":"1974:32:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"},"typeName":{"id":12533,"keyType":{"id":12531,"name":"int128","nodeType":"ElementaryTypeName","src":"1982:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Mapping","src":"1974:26:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"},"valueType":{"id":12532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1992:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"}],"name":"Bytes32Deque","nameLocation":"1907:12:50","nodeType":"StructDefinition","scope":12857,"src":"1900:113:50","visibility":"public"},{"body":{"id":12566,"nodeType":"Block","src":"2158:156:50","statements":[{"assignments":[12545],"declarations":[{"constant":false,"id":12545,"mutability":"mutable","name":"backIndex","nameLocation":"2175:9:50","nodeType":"VariableDeclaration","scope":12566,"src":"2168:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12544,"name":"int128","nodeType":"ElementaryTypeName","src":"2168:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":12548,"initialValue":{"expression":{"id":12546,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12539,"src":"2187:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"2187:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"2168:29:50"},{"expression":{"id":12555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":12549,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12539,"src":"2207:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"2207:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12553,"indexExpression":{"id":12551,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"2219:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2207:22:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12554,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"2232:5:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2207:30:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12556,"nodeType":"ExpressionStatement","src":"2207:30:50"},{"id":12565,"nodeType":"UncheckedBlock","src":"2247:61:50","statements":[{"expression":{"id":12563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12557,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12539,"src":"2271:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"2271:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":12562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12560,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"2284:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2296:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2284:13:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"2271:26:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12564,"nodeType":"ExpressionStatement","src":"2271:26:50"}]}]},"documentation":{"id":12536,"nodeType":"StructuredDocumentation","src":"2019:64:50","text":" @dev Inserts an item at the end of the queue."},"id":12567,"implemented":true,"kind":"function","modifiers":[],"name":"pushBack","nameLocation":"2097:8:50","nodeType":"FunctionDefinition","parameters":{"id":12542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12539,"mutability":"mutable","name":"deque","nameLocation":"2127:5:50","nodeType":"VariableDeclaration","scope":12567,"src":"2106:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12538,"nodeType":"UserDefinedTypeName","pathNode":{"id":12537,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"2106:12:50"},"referencedDeclaration":12535,"src":"2106:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"},{"constant":false,"id":12541,"mutability":"mutable","name":"value","nameLocation":"2142:5:50","nodeType":"VariableDeclaration","scope":12567,"src":"2134:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2134:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2105:43:50"},"returnParameters":{"id":12543,"nodeType":"ParameterList","parameters":[],"src":"2158:0:50"},"scope":12857,"src":"2088:226:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12613,"nodeType":"Block","src":"2541:256:50","statements":[{"condition":{"arguments":[{"id":12577,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"2561:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":12576,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12856,"src":"2555:5:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$12535_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":12578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2555:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12582,"nodeType":"IfStatement","src":"2551:32:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12579,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12523,"src":"2576:5:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2576:7:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12581,"nodeType":"RevertStatement","src":"2569:14:50"}},{"assignments":[12584],"declarations":[{"constant":false,"id":12584,"mutability":"mutable","name":"backIndex","nameLocation":"2600:9:50","nodeType":"VariableDeclaration","scope":12613,"src":"2593:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12583,"name":"int128","nodeType":"ElementaryTypeName","src":"2593:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":12585,"nodeType":"VariableDeclarationStatement","src":"2593:16:50"},{"id":12593,"nodeType":"UncheckedBlock","src":"2619:61:50","statements":[{"expression":{"id":12591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12586,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12584,"src":"2643:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":12590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12587,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"2655:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"2655:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2668:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2655:14:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"2643:26:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12592,"nodeType":"ExpressionStatement","src":"2643:26:50"}]},{"expression":{"id":12599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12594,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12574,"src":"2689:5:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":12595,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"2697:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"2697:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12598,"indexExpression":{"id":12597,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12584,"src":"2709:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2697:22:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2689:30:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12600,"nodeType":"ExpressionStatement","src":"2689:30:50"},{"expression":{"id":12605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2729:29:50","subExpression":{"baseExpression":{"expression":{"id":12601,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"2736:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"2736:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12604,"indexExpression":{"id":12603,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12584,"src":"2748:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2736:22:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12606,"nodeType":"ExpressionStatement","src":"2729:29:50"},{"expression":{"id":12611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12607,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"2768:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"2768:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12610,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12584,"src":"2781:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"2768:22:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12612,"nodeType":"ExpressionStatement","src":"2768:22:50"}]},"documentation":{"id":12568,"nodeType":"StructuredDocumentation","src":"2320:138:50","text":" @dev Removes the item at the end of the queue and returns it.\n Reverts with `Empty` if the queue is empty."},"id":12614,"implemented":true,"kind":"function","modifiers":[],"name":"popBack","nameLocation":"2472:7:50","nodeType":"FunctionDefinition","parameters":{"id":12572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12571,"mutability":"mutable","name":"deque","nameLocation":"2501:5:50","nodeType":"VariableDeclaration","scope":12614,"src":"2480:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12570,"nodeType":"UserDefinedTypeName","pathNode":{"id":12569,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"2480:12:50"},"referencedDeclaration":12535,"src":"2480:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"2479:28:50"},"returnParameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12574,"mutability":"mutable","name":"value","nameLocation":"2534:5:50","nodeType":"VariableDeclaration","scope":12614,"src":"2526:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2526:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2525:15:50"},"scope":12857,"src":"2463:334:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12648,"nodeType":"Block","src":"2949:183:50","statements":[{"assignments":[12624],"declarations":[{"constant":false,"id":12624,"mutability":"mutable","name":"frontIndex","nameLocation":"2966:10:50","nodeType":"VariableDeclaration","scope":12648,"src":"2959:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12623,"name":"int128","nodeType":"ElementaryTypeName","src":"2959:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":12625,"nodeType":"VariableDeclarationStatement","src":"2959:17:50"},{"id":12633,"nodeType":"UncheckedBlock","src":"2986:64:50","statements":[{"expression":{"id":12631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12626,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12624,"src":"3010:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":12630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12627,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12618,"src":"3023:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"3023:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3023:16:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3010:29:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12632,"nodeType":"ExpressionStatement","src":"3010:29:50"}]},{"expression":{"id":12640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":12634,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12618,"src":"3059:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"3059:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12638,"indexExpression":{"id":12636,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12624,"src":"3071:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3059:23:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12639,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12620,"src":"3085:5:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3059:31:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12641,"nodeType":"ExpressionStatement","src":"3059:31:50"},{"expression":{"id":12646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12642,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12618,"src":"3100:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"3100:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12645,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12624,"src":"3115:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3100:25:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12647,"nodeType":"ExpressionStatement","src":"3100:25:50"}]},"documentation":{"id":12615,"nodeType":"StructuredDocumentation","src":"2803:70:50","text":" @dev Inserts an item at the beginning of the queue."},"id":12649,"implemented":true,"kind":"function","modifiers":[],"name":"pushFront","nameLocation":"2887:9:50","nodeType":"FunctionDefinition","parameters":{"id":12621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12618,"mutability":"mutable","name":"deque","nameLocation":"2918:5:50","nodeType":"VariableDeclaration","scope":12649,"src":"2897:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12617,"nodeType":"UserDefinedTypeName","pathNode":{"id":12616,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"2897:12:50"},"referencedDeclaration":12535,"src":"2897:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"},{"constant":false,"id":12620,"mutability":"mutable","name":"value","nameLocation":"2933:5:50","nodeType":"VariableDeclaration","scope":12649,"src":"2925:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2925:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2896:43:50"},"returnParameters":{"id":12622,"nodeType":"ParameterList","parameters":[],"src":"2949:0:50"},"scope":12857,"src":"2878:254:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12692,"nodeType":"Block","src":"3366:245:50","statements":[{"condition":{"arguments":[{"id":12659,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"3386:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":12658,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12856,"src":"3380:5:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$12535_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":12660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3380:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12664,"nodeType":"IfStatement","src":"3376:32:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12661,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12523,"src":"3401:5:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3401:7:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12663,"nodeType":"RevertStatement","src":"3394:14:50"}},{"assignments":[12666],"declarations":[{"constant":false,"id":12666,"mutability":"mutable","name":"frontIndex","nameLocation":"3425:10:50","nodeType":"VariableDeclaration","scope":12692,"src":"3418:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12665,"name":"int128","nodeType":"ElementaryTypeName","src":"3418:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":12669,"initialValue":{"expression":{"id":12667,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"3438:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"3438:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"3418:32:50"},{"expression":{"id":12675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12670,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"3460:5:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":12671,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"3468:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"3468:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12674,"indexExpression":{"id":12673,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12666,"src":"3480:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3468:23:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3460:31:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12676,"nodeType":"ExpressionStatement","src":"3460:31:50"},{"expression":{"id":12681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3501:30:50","subExpression":{"baseExpression":{"expression":{"id":12677,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"3508:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"3508:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12680,"indexExpression":{"id":12679,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12666,"src":"3520:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3508:23:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12682,"nodeType":"ExpressionStatement","src":"3501:30:50"},{"id":12691,"nodeType":"UncheckedBlock","src":"3541:64:50","statements":[{"expression":{"id":12689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12683,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"3565:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"3565:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":12688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12686,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12666,"src":"3580:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3593:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3580:14:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3565:29:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12690,"nodeType":"ExpressionStatement","src":"3565:29:50"}]}]},"documentation":{"id":12650,"nodeType":"StructuredDocumentation","src":"3138:144:50","text":" @dev Removes the item at the beginning of the queue and returns it.\n Reverts with `Empty` if the queue is empty."},"id":12693,"implemented":true,"kind":"function","modifiers":[],"name":"popFront","nameLocation":"3296:8:50","nodeType":"FunctionDefinition","parameters":{"id":12654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12653,"mutability":"mutable","name":"deque","nameLocation":"3326:5:50","nodeType":"VariableDeclaration","scope":12693,"src":"3305:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12652,"nodeType":"UserDefinedTypeName","pathNode":{"id":12651,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"3305:12:50"},"referencedDeclaration":12535,"src":"3305:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"3304:28:50"},"returnParameters":{"id":12657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12656,"mutability":"mutable","name":"value","nameLocation":"3359:5:50","nodeType":"VariableDeclaration","scope":12693,"src":"3351:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3351:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3350:15:50"},"scope":12857,"src":"3287:324:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12719,"nodeType":"Block","src":"3832:131:50","statements":[{"condition":{"arguments":[{"id":12703,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12697,"src":"3852:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":12702,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12856,"src":"3846:5:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$12535_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":12704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3846:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12708,"nodeType":"IfStatement","src":"3842:32:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12705,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12523,"src":"3867:5:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3867:7:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12707,"nodeType":"RevertStatement","src":"3860:14:50"}},{"assignments":[12710],"declarations":[{"constant":false,"id":12710,"mutability":"mutable","name":"frontIndex","nameLocation":"3891:10:50","nodeType":"VariableDeclaration","scope":12719,"src":"3884:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12709,"name":"int128","nodeType":"ElementaryTypeName","src":"3884:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":12713,"initialValue":{"expression":{"id":12711,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12697,"src":"3904:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"3904:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"3884:32:50"},{"expression":{"baseExpression":{"expression":{"id":12714,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12697,"src":"3933:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"3933:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12717,"indexExpression":{"id":12716,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"3945:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3933:23:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12701,"id":12718,"nodeType":"Return","src":"3926:30:50"}]},"documentation":{"id":12694,"nodeType":"StructuredDocumentation","src":"3617:129:50","text":" @dev Returns the item at the beginning of the queue.\n Reverts with `Empty` if the queue is empty."},"id":12720,"implemented":true,"kind":"function","modifiers":[],"name":"front","nameLocation":"3760:5:50","nodeType":"FunctionDefinition","parameters":{"id":12698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12697,"mutability":"mutable","name":"deque","nameLocation":"3787:5:50","nodeType":"VariableDeclaration","scope":12720,"src":"3766:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12696,"nodeType":"UserDefinedTypeName","pathNode":{"id":12695,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"3766:12:50"},"referencedDeclaration":12535,"src":"3766:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"3765:28:50"},"returnParameters":{"id":12701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12700,"mutability":"mutable","name":"value","nameLocation":"3825:5:50","nodeType":"VariableDeclaration","scope":12720,"src":"3817:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3817:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3816:15:50"},"scope":12857,"src":"3751:212:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12752,"nodeType":"Block","src":"4177:184:50","statements":[{"condition":{"arguments":[{"id":12730,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"4197:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":12729,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12856,"src":"4191:5:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$12535_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":12731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4191:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12735,"nodeType":"IfStatement","src":"4187:32:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12732,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12523,"src":"4212:5:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4212:7:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12734,"nodeType":"RevertStatement","src":"4205:14:50"}},{"assignments":[12737],"declarations":[{"constant":false,"id":12737,"mutability":"mutable","name":"backIndex","nameLocation":"4236:9:50","nodeType":"VariableDeclaration","scope":12752,"src":"4229:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12736,"name":"int128","nodeType":"ElementaryTypeName","src":"4229:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":12738,"nodeType":"VariableDeclarationStatement","src":"4229:16:50"},{"id":12746,"nodeType":"UncheckedBlock","src":"4255:61:50","statements":[{"expression":{"id":12744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12739,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12737,"src":"4279:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":12743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12740,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"4291:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"4291:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4304:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4291:14:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"4279:26:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12745,"nodeType":"ExpressionStatement","src":"4279:26:50"}]},{"expression":{"baseExpression":{"expression":{"id":12747,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"4332:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"4332:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12750,"indexExpression":{"id":12749,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12737,"src":"4344:9:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4332:22:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12728,"id":12751,"nodeType":"Return","src":"4325:29:50"}]},"documentation":{"id":12721,"nodeType":"StructuredDocumentation","src":"3969:123:50","text":" @dev Returns the item at the end of the queue.\n Reverts with `Empty` if the queue is empty."},"id":12753,"implemented":true,"kind":"function","modifiers":[],"name":"back","nameLocation":"4106:4:50","nodeType":"FunctionDefinition","parameters":{"id":12725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12724,"mutability":"mutable","name":"deque","nameLocation":"4132:5:50","nodeType":"VariableDeclaration","scope":12753,"src":"4111:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12723,"nodeType":"UserDefinedTypeName","pathNode":{"id":12722,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"4111:12:50"},"referencedDeclaration":12535,"src":"4111:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"4110:28:50"},"returnParameters":{"id":12728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12727,"mutability":"mutable","name":"value","nameLocation":"4170:5:50","nodeType":"VariableDeclaration","scope":12753,"src":"4162:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4162:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:15:50"},"scope":12857,"src":"4097:264:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12793,"nodeType":"Block","src":"4691:231:50","statements":[{"assignments":[12765],"declarations":[{"constant":false,"id":12765,"mutability":"mutable","name":"idx","nameLocation":"4757:3:50","nodeType":"VariableDeclaration","scope":12793,"src":"4750:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":12764,"name":"int128","nodeType":"ElementaryTypeName","src":"4750:6:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":12779,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12770,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12757,"src":"4788:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"4788:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":12769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4781:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":12768,"name":"int256","nodeType":"ElementaryTypeName","src":"4781:6:50","typeDescriptions":{}}},"id":12772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4781:20:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":12775,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12759,"src":"4822:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12773,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"4804:8:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$12204_$","typeString":"type(library SafeCast)"}},"id":12774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toInt256","nodeType":"MemberAccess","referencedDeclaration":12203,"src":"4804:17:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256) pure returns (int256)"}},"id":12776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4804:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4781:47:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":12766,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"4763:8:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$12204_$","typeString":"type(library SafeCast)"}},"id":12767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toInt128","nodeType":"MemberAccess","referencedDeclaration":11680,"src":"4763:17:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int128_$","typeString":"function (int256) pure returns (int128)"}},"id":12778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4763:66:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"4750:79:50"},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":12783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12780,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12765,"src":"4843:3:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":12781,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12757,"src":"4850:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"4850:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"4843:17:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12787,"nodeType":"IfStatement","src":"4839:43:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12784,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12526,"src":"4869:11:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4869:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12786,"nodeType":"RevertStatement","src":"4862:20:50"}},{"expression":{"baseExpression":{"expression":{"id":12788,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12757,"src":"4899:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":12534,"src":"4899:11:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":12791,"indexExpression":{"id":12790,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12765,"src":"4911:3:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4899:16:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12763,"id":12792,"nodeType":"Return","src":"4892:23:50"}]},"documentation":{"id":12754,"nodeType":"StructuredDocumentation","src":"4367:226:50","text":" @dev Return the item at a position in the queue given by `index`, with the first item at 0 and last item at\n `length(deque) - 1`.\n Reverts with `OutOfBounds` if the index is out of bounds."},"id":12794,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"4607:2:50","nodeType":"FunctionDefinition","parameters":{"id":12760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12757,"mutability":"mutable","name":"deque","nameLocation":"4631:5:50","nodeType":"VariableDeclaration","scope":12794,"src":"4610:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12756,"nodeType":"UserDefinedTypeName","pathNode":{"id":12755,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"4610:12:50"},"referencedDeclaration":12535,"src":"4610:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"},{"constant":false,"id":12759,"mutability":"mutable","name":"index","nameLocation":"4646:5:50","nodeType":"VariableDeclaration","scope":12794,"src":"4638:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12758,"name":"uint256","nodeType":"ElementaryTypeName","src":"4638:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4609:43:50"},"returnParameters":{"id":12763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12762,"mutability":"mutable","name":"value","nameLocation":"4684:5:50","nodeType":"VariableDeclaration","scope":12794,"src":"4676:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4676:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4675:15:50"},"scope":12857,"src":"4598:324:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12813,"nodeType":"Block","src":"5211:57:50","statements":[{"expression":{"id":12805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12801,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12798,"src":"5221:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"5221:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5236:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5221:16:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12806,"nodeType":"ExpressionStatement","src":"5221:16:50"},{"expression":{"id":12811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12807,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12798,"src":"5247:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"5247:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5260:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5247:14:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":12812,"nodeType":"ExpressionStatement","src":"5247:14:50"}]},"documentation":{"id":12795,"nodeType":"StructuredDocumentation","src":"4928:226:50","text":" @dev Resets the queue back to being empty.\n NOTE: The current items are left behind in storage. This does not affect the functioning of the queue, but misses\n out on potential gas refunds."},"id":12814,"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"5168:5:50","nodeType":"FunctionDefinition","parameters":{"id":12799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12798,"mutability":"mutable","name":"deque","nameLocation":"5195:5:50","nodeType":"VariableDeclaration","scope":12814,"src":"5174:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12797,"nodeType":"UserDefinedTypeName","pathNode":{"id":12796,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"5174:12:50"},"referencedDeclaration":12535,"src":"5174:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"5173:28:50"},"returnParameters":{"id":12800,"nodeType":"ParameterList","parameters":[],"src":"5211:0:50"},"scope":12857,"src":"5159:109:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12839,"nodeType":"Block","src":"5420:287:50","statements":[{"id":12838,"nodeType":"UncheckedBlock","src":"5609:92:50","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12827,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12818,"src":"5655:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"5655:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":12826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5648:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":12825,"name":"int256","nodeType":"ElementaryTypeName","src":"5648:6:50","typeDescriptions":{}}},"id":12829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5648:18:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":12832,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12818,"src":"5676:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"5676:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":12831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5669:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":12830,"name":"int256","nodeType":"ElementaryTypeName","src":"5669:6:50","typeDescriptions":{}}},"id":12834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5669:20:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5648:41:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5640:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12823,"name":"uint256","nodeType":"ElementaryTypeName","src":"5640:7:50","typeDescriptions":{}}},"id":12836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5640:50:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12822,"id":12837,"nodeType":"Return","src":"5633:57:50"}]}]},"documentation":{"id":12815,"nodeType":"StructuredDocumentation","src":"5274:65:50","text":" @dev Returns the number of items in the queue."},"id":12840,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"5353:6:50","nodeType":"FunctionDefinition","parameters":{"id":12819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12818,"mutability":"mutable","name":"deque","nameLocation":"5381:5:50","nodeType":"VariableDeclaration","scope":12840,"src":"5360:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12817,"nodeType":"UserDefinedTypeName","pathNode":{"id":12816,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"5360:12:50"},"referencedDeclaration":12535,"src":"5360:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"5359:28:50"},"returnParameters":{"id":12822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12840,"src":"5411:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12820,"name":"uint256","nodeType":"ElementaryTypeName","src":"5411:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5410:9:50"},"scope":12857,"src":"5344:363:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12855,"nodeType":"Block","src":"5849:50:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":12853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12849,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12844,"src":"5866:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":12530,"src":"5866:10:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":12851,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12844,"src":"5880:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":12852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":12528,"src":"5880:12:50","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"5866:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12848,"id":12854,"nodeType":"Return","src":"5859:33:50"}]},"documentation":{"id":12841,"nodeType":"StructuredDocumentation","src":"5713:59:50","text":" @dev Returns true if the queue is empty."},"id":12856,"implemented":true,"kind":"function","modifiers":[],"name":"empty","nameLocation":"5786:5:50","nodeType":"FunctionDefinition","parameters":{"id":12845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12844,"mutability":"mutable","name":"deque","nameLocation":"5813:5:50","nodeType":"VariableDeclaration","scope":12856,"src":"5792:26:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":12843,"nodeType":"UserDefinedTypeName","pathNode":{"id":12842,"name":"Bytes32Deque","nodeType":"IdentifierPath","referencedDeclaration":12535,"src":"5792:12:50"},"referencedDeclaration":12535,"src":"5792:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$12535_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"5791:28:50"},"returnParameters":{"id":12848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12856,"src":"5843:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12846,"name":"bool","nodeType":"ElementaryTypeName","src":"5843:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5842:6:50"},"scope":12857,"src":"5777:122:50","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":12858,"src":"835:5066:50","usedErrors":[12523,12526]}],"src":"117:5785:50"},"id":50},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[13456]},"id":13457,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12859,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:51"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":12860,"nodeType":"StructuredDocumentation","src":"140:1087:51","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableSet for EnumerableSet.AddressSet;\n     // Declare a set state variable\n     EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n  Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.\n  See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n  In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":13456,"linearizedBaseContracts":[13456],"name":"EnumerableSet","nameLocation":"1236:13:51","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":12868,"members":[{"constant":false,"id":12863,"mutability":"mutable","name":"_values","nameLocation":"1760:7:51","nodeType":"VariableDeclaration","scope":12868,"src":"1750:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1750:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12862,"nodeType":"ArrayTypeName","src":"1750:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":12867,"mutability":"mutable","name":"_indexes","nameLocation":"1928:8:51","nodeType":"VariableDeclaration","scope":12868,"src":"1900:36:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":12866,"keyType":{"id":12864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1908:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1900:27:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":12865,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1703:3:51","nodeType":"StructDefinition","scope":13456,"src":"1696:247:51","visibility":"public"},{"body":{"id":12909,"nodeType":"Block","src":"2182:335:51","statements":[{"condition":{"id":12883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2196:22:51","subExpression":{"arguments":[{"id":12880,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"2207:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":12881,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"2212:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12879,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"2197:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":12882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2197:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12907,"nodeType":"Block","src":"2474:37:51","statements":[{"expression":{"hexValue":"66616c7365","id":12905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2495:5:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":12878,"id":12906,"nodeType":"Return","src":"2488:12:51"}]},"id":12908,"nodeType":"IfStatement","src":"2192:319:51","trueBody":{"id":12904,"nodeType":"Block","src":"2220:248:51","statements":[{"expression":{"arguments":[{"id":12889,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"2251:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":12884,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"2234:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"2234:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2234:16:51","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2234:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12891,"nodeType":"ExpressionStatement","src":"2234:23:51"},{"expression":{"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":12892,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"2392:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":12867,"src":"2392:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12896,"indexExpression":{"id":12894,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"2405:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2392:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":12897,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"2414:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"2414:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2414:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2392:40:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12901,"nodeType":"ExpressionStatement","src":"2392:40:51"},{"expression":{"hexValue":"74727565","id":12902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2453:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12878,"id":12903,"nodeType":"Return","src":"2446:11:51"}]}}]},"documentation":{"id":12869,"nodeType":"StructuredDocumentation","src":"1949:159:51","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":12910,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2122:4:51","nodeType":"FunctionDefinition","parameters":{"id":12875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12872,"mutability":"mutable","name":"set","nameLocation":"2139:3:51","nodeType":"VariableDeclaration","scope":12910,"src":"2127:15:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":12871,"nodeType":"UserDefinedTypeName","pathNode":{"id":12870,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"2127:3:51"},"referencedDeclaration":12868,"src":"2127:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":12874,"mutability":"mutable","name":"value","nameLocation":"2152:5:51","nodeType":"VariableDeclaration","scope":12910,"src":"2144:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2144:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2126:32:51"},"returnParameters":{"id":12878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12910,"src":"2176:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12876,"name":"bool","nodeType":"ElementaryTypeName","src":"2176:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2175:6:51"},"scope":13456,"src":"2113:404:51","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12993,"nodeType":"Block","src":"2757:1316:51","statements":[{"assignments":[12922],"declarations":[{"constant":false,"id":12922,"mutability":"mutable","name":"valueIndex","nameLocation":"2875:10:51","nodeType":"VariableDeclaration","scope":12993,"src":"2867:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12921,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12927,"initialValue":{"baseExpression":{"expression":{"id":12923,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"2888:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":12867,"src":"2888:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12926,"indexExpression":{"id":12925,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12916,"src":"2901:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2888:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:40:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12928,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12922,"src":"2922:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2936:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2922:15:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12991,"nodeType":"Block","src":"4030:37:51","statements":[{"expression":{"hexValue":"66616c7365","id":12989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4051:5:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":12920,"id":12990,"nodeType":"Return","src":"4044:12:51"}]},"id":12992,"nodeType":"IfStatement","src":"2918:1149:51","trueBody":{"id":12988,"nodeType":"Block","src":"2939:1085:51","statements":[{"assignments":[12932],"declarations":[{"constant":false,"id":12932,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3299:13:51","nodeType":"VariableDeclaration","scope":12988,"src":"3291:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12931,"name":"uint256","nodeType":"ElementaryTypeName","src":"3291:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12933,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12922,"src":"3315:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3328:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3315:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3291:38:51"},{"assignments":[12938],"declarations":[{"constant":false,"id":12938,"mutability":"mutable","name":"lastIndex","nameLocation":"3351:9:51","nodeType":"VariableDeclaration","scope":12988,"src":"3343:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12937,"name":"uint256","nodeType":"ElementaryTypeName","src":"3343:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12944,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":12939,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"3363:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"3363:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3363:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3384:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3363:22:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3343:42:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12945,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12938,"src":"3404:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12946,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12932,"src":"3417:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3404:26:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12972,"nodeType":"IfStatement","src":"3400:398:51","trueBody":{"id":12971,"nodeType":"Block","src":"3432:366:51","statements":[{"assignments":[12949],"declarations":[{"constant":false,"id":12949,"mutability":"mutable","name":"lastValue","nameLocation":"3458:9:51","nodeType":"VariableDeclaration","scope":12971,"src":"3450:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3450:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12954,"initialValue":{"baseExpression":{"expression":{"id":12950,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"3470:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"3470:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12953,"indexExpression":{"id":12952,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12938,"src":"3482:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3470:22:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3450:42:51"},{"expression":{"id":12961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":12955,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"3592:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"3592:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12959,"indexExpression":{"id":12957,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12932,"src":"3604:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3592:26:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12960,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12949,"src":"3621:9:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3592:38:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12962,"nodeType":"ExpressionStatement","src":"3592:38:51"},{"expression":{"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":12963,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"3704:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":12867,"src":"3704:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12967,"indexExpression":{"id":12965,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12949,"src":"3717:9:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3704:23:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12968,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12922,"src":"3730:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3704:36:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12970,"nodeType":"ExpressionStatement","src":"3704:36:51"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12973,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"3876:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"3876:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"3876:15:51","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":12978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3876:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12979,"nodeType":"ExpressionStatement","src":"3876:17:51"},{"expression":{"id":12984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3961:26:51","subExpression":{"baseExpression":{"expression":{"id":12980,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"3968:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":12981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":12867,"src":"3968:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12983,"indexExpression":{"id":12982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12916,"src":"3981:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3968:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12985,"nodeType":"ExpressionStatement","src":"3961:26:51"},{"expression":{"hexValue":"74727565","id":12986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4009:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12920,"id":12987,"nodeType":"Return","src":"4002:11:51"}]}}]},"documentation":{"id":12911,"nodeType":"StructuredDocumentation","src":"2523:157:51","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":12994,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2694:7:51","nodeType":"FunctionDefinition","parameters":{"id":12917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12914,"mutability":"mutable","name":"set","nameLocation":"2714:3:51","nodeType":"VariableDeclaration","scope":12994,"src":"2702:15:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":12913,"nodeType":"UserDefinedTypeName","pathNode":{"id":12912,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"2702:3:51"},"referencedDeclaration":12868,"src":"2702:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":12916,"mutability":"mutable","name":"value","nameLocation":"2727:5:51","nodeType":"VariableDeclaration","scope":12994,"src":"2719:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2719:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2701:32:51"},"returnParameters":{"id":12920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12994,"src":"2751:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12918,"name":"bool","nodeType":"ElementaryTypeName","src":"2751:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2750:6:51"},"scope":13456,"src":"2685:1388:51","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13012,"nodeType":"Block","src":"4233:48:51","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":13005,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12998,"src":"4250:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":13006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":12867,"src":"4250:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":13008,"indexExpression":{"id":13007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13000,"src":"4263:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4250:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4273:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4250:24:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13004,"id":13011,"nodeType":"Return","src":"4243:31:51"}]},"documentation":{"id":12995,"nodeType":"StructuredDocumentation","src":"4079:70:51","text":" @dev Returns true if the value is in the set. O(1)."},"id":13013,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4163:9:51","nodeType":"FunctionDefinition","parameters":{"id":13001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12998,"mutability":"mutable","name":"set","nameLocation":"4185:3:51","nodeType":"VariableDeclaration","scope":13013,"src":"4173:15:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":12997,"nodeType":"UserDefinedTypeName","pathNode":{"id":12996,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"4173:3:51"},"referencedDeclaration":12868,"src":"4173:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":13000,"mutability":"mutable","name":"value","nameLocation":"4198:5:51","nodeType":"VariableDeclaration","scope":13013,"src":"4190:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4190:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4172:32:51"},"returnParameters":{"id":13004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13013,"src":"4227:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13002,"name":"bool","nodeType":"ElementaryTypeName","src":"4227:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4226:6:51"},"scope":13456,"src":"4154:127:51","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13026,"nodeType":"Block","src":"4427:42:51","statements":[{"expression":{"expression":{"expression":{"id":13022,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13017,"src":"4444:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":13023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"4444:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4444:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13021,"id":13025,"nodeType":"Return","src":"4437:25:51"}]},"documentation":{"id":13014,"nodeType":"StructuredDocumentation","src":"4287:70:51","text":" @dev Returns the number of values on the set. O(1)."},"id":13027,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4371:7:51","nodeType":"FunctionDefinition","parameters":{"id":13018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13017,"mutability":"mutable","name":"set","nameLocation":"4391:3:51","nodeType":"VariableDeclaration","scope":13027,"src":"4379:15:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":13016,"nodeType":"UserDefinedTypeName","pathNode":{"id":13015,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"4379:3:51"},"referencedDeclaration":12868,"src":"4379:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4378:17:51"},"returnParameters":{"id":13021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13027,"src":"4418:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13019,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:9:51"},"scope":13456,"src":"4362:107:51","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13043,"nodeType":"Block","src":"4887:42:51","statements":[{"expression":{"baseExpression":{"expression":{"id":13038,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13031,"src":"4904:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":13039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"4904:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13041,"indexExpression":{"id":13040,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13033,"src":"4916:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4904:18:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13037,"id":13042,"nodeType":"Return","src":"4897:25:51"}]},"documentation":{"id":13028,"nodeType":"StructuredDocumentation","src":"4475:331:51","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":13044,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4820:3:51","nodeType":"FunctionDefinition","parameters":{"id":13034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13031,"mutability":"mutable","name":"set","nameLocation":"4836:3:51","nodeType":"VariableDeclaration","scope":13044,"src":"4824:15:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":13030,"nodeType":"UserDefinedTypeName","pathNode":{"id":13029,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"4824:3:51"},"referencedDeclaration":12868,"src":"4824:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":13033,"mutability":"mutable","name":"index","nameLocation":"4849:5:51","nodeType":"VariableDeclaration","scope":13044,"src":"4841:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13032,"name":"uint256","nodeType":"ElementaryTypeName","src":"4841:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4823:32:51"},"returnParameters":{"id":13037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13044,"src":"4878:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4878:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4877:9:51"},"scope":13456,"src":"4811:118:51","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13057,"nodeType":"Block","src":"5543:35:51","statements":[{"expression":{"expression":{"id":13054,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13048,"src":"5560:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":13055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":12863,"src":"5560:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":13053,"id":13056,"nodeType":"Return","src":"5553:18:51"}]},"documentation":{"id":13045,"nodeType":"StructuredDocumentation","src":"4935:529:51","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":13058,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5478:7:51","nodeType":"FunctionDefinition","parameters":{"id":13049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13048,"mutability":"mutable","name":"set","nameLocation":"5498:3:51","nodeType":"VariableDeclaration","scope":13058,"src":"5486:15:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":13047,"nodeType":"UserDefinedTypeName","pathNode":{"id":13046,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"5486:3:51"},"referencedDeclaration":12868,"src":"5486:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5485:17:51"},"returnParameters":{"id":13053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13058,"src":"5525:16:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5525:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13051,"nodeType":"ArrayTypeName","src":"5525:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5524:18:51"},"scope":13456,"src":"5469:109:51","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":13062,"members":[{"constant":false,"id":13061,"mutability":"mutable","name":"_inner","nameLocation":"5635:6:51","nodeType":"VariableDeclaration","scope":13062,"src":"5631:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":13060,"nodeType":"UserDefinedTypeName","pathNode":{"id":13059,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"5631:3:51"},"referencedDeclaration":12868,"src":"5631:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5610:10:51","nodeType":"StructDefinition","scope":13456,"src":"5603:45:51","visibility":"public"},{"body":{"id":13079,"nodeType":"Block","src":"5894:47:51","statements":[{"expression":{"arguments":[{"expression":{"id":13074,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13066,"src":"5916:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":13075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13061,"src":"5916:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":13076,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13068,"src":"5928:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13073,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12910,"src":"5911:4:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":13077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5911:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13072,"id":13078,"nodeType":"Return","src":"5904:30:51"}]},"documentation":{"id":13063,"nodeType":"StructuredDocumentation","src":"5654:159:51","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":13080,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5827:3:51","nodeType":"FunctionDefinition","parameters":{"id":13069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13066,"mutability":"mutable","name":"set","nameLocation":"5850:3:51","nodeType":"VariableDeclaration","scope":13080,"src":"5831:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":13065,"nodeType":"UserDefinedTypeName","pathNode":{"id":13064,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":13062,"src":"5831:10:51"},"referencedDeclaration":13062,"src":"5831:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":13068,"mutability":"mutable","name":"value","nameLocation":"5863:5:51","nodeType":"VariableDeclaration","scope":13080,"src":"5855:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5830:39:51"},"returnParameters":{"id":13072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13080,"src":"5888:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13070,"name":"bool","nodeType":"ElementaryTypeName","src":"5888:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5887:6:51"},"scope":13456,"src":"5818:123:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13097,"nodeType":"Block","src":"6188:50:51","statements":[{"expression":{"arguments":[{"expression":{"id":13092,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13084,"src":"6213:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":13093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13061,"src":"6213:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":13094,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13086,"src":"6225:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13091,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"6205:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":13095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6205:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13090,"id":13096,"nodeType":"Return","src":"6198:33:51"}]},"documentation":{"id":13081,"nodeType":"StructuredDocumentation","src":"5947:157:51","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":13098,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6118:6:51","nodeType":"FunctionDefinition","parameters":{"id":13087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13084,"mutability":"mutable","name":"set","nameLocation":"6144:3:51","nodeType":"VariableDeclaration","scope":13098,"src":"6125:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":13083,"nodeType":"UserDefinedTypeName","pathNode":{"id":13082,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":13062,"src":"6125:10:51"},"referencedDeclaration":13062,"src":"6125:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":13086,"mutability":"mutable","name":"value","nameLocation":"6157:5:51","nodeType":"VariableDeclaration","scope":13098,"src":"6149:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6149:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6124:39:51"},"returnParameters":{"id":13090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13098,"src":"6182:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13088,"name":"bool","nodeType":"ElementaryTypeName","src":"6182:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6181:6:51"},"scope":13456,"src":"6109:129:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13115,"nodeType":"Block","src":"6405:52:51","statements":[{"expression":{"arguments":[{"expression":{"id":13110,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13102,"src":"6432:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":13111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13061,"src":"6432:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":13112,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13104,"src":"6444:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13109,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"6422:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":13113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6422:28:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13108,"id":13114,"nodeType":"Return","src":"6415:35:51"}]},"documentation":{"id":13099,"nodeType":"StructuredDocumentation","src":"6244:70:51","text":" @dev Returns true if the value is in the set. O(1)."},"id":13116,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6328:8:51","nodeType":"FunctionDefinition","parameters":{"id":13105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13102,"mutability":"mutable","name":"set","nameLocation":"6356:3:51","nodeType":"VariableDeclaration","scope":13116,"src":"6337:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":13101,"nodeType":"UserDefinedTypeName","pathNode":{"id":13100,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":13062,"src":"6337:10:51"},"referencedDeclaration":13062,"src":"6337:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":13104,"mutability":"mutable","name":"value","nameLocation":"6369:5:51","nodeType":"VariableDeclaration","scope":13116,"src":"6361:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6361:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6336:39:51"},"returnParameters":{"id":13108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13116,"src":"6399:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13106,"name":"bool","nodeType":"ElementaryTypeName","src":"6399:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6398:6:51"},"scope":13456,"src":"6319:138:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13130,"nodeType":"Block","src":"6610:43:51","statements":[{"expression":{"arguments":[{"expression":{"id":13126,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13120,"src":"6635:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":13127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13061,"src":"6635:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":13125,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13027,"src":"6627:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":13128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6627:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13124,"id":13129,"nodeType":"Return","src":"6620:26:51"}]},"documentation":{"id":13117,"nodeType":"StructuredDocumentation","src":"6463:70:51","text":" @dev Returns the number of values in the set. O(1)."},"id":13131,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6547:6:51","nodeType":"FunctionDefinition","parameters":{"id":13121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13120,"mutability":"mutable","name":"set","nameLocation":"6573:3:51","nodeType":"VariableDeclaration","scope":13131,"src":"6554:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":13119,"nodeType":"UserDefinedTypeName","pathNode":{"id":13118,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":13062,"src":"6554:10:51"},"referencedDeclaration":13062,"src":"6554:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6553:24:51"},"returnParameters":{"id":13124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13131,"src":"6601:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13122,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6600:9:51"},"scope":13456,"src":"6538:115:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13148,"nodeType":"Block","src":"7078:46:51","statements":[{"expression":{"arguments":[{"expression":{"id":13143,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13135,"src":"7099:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":13144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13061,"src":"7099:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":13145,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13137,"src":"7111:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13142,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13044,"src":"7095:3:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":13146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7095:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13141,"id":13147,"nodeType":"Return","src":"7088:29:51"}]},"documentation":{"id":13132,"nodeType":"StructuredDocumentation","src":"6659:331:51","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":13149,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7004:2:51","nodeType":"FunctionDefinition","parameters":{"id":13138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13135,"mutability":"mutable","name":"set","nameLocation":"7026:3:51","nodeType":"VariableDeclaration","scope":13149,"src":"7007:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":13134,"nodeType":"UserDefinedTypeName","pathNode":{"id":13133,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":13062,"src":"7007:10:51"},"referencedDeclaration":13062,"src":"7007:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":13137,"mutability":"mutable","name":"index","nameLocation":"7039:5:51","nodeType":"VariableDeclaration","scope":13149,"src":"7031:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13136,"name":"uint256","nodeType":"ElementaryTypeName","src":"7031:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7006:39:51"},"returnParameters":{"id":13141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13149,"src":"7069:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7069:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7068:9:51"},"scope":13456,"src":"6995:129:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13164,"nodeType":"Block","src":"7745:43:51","statements":[{"expression":{"arguments":[{"expression":{"id":13160,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13153,"src":"7770:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":13161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13061,"src":"7770:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":13159,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"7762:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":13162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7762:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":13158,"id":13163,"nodeType":"Return","src":"7755:26:51"}]},"documentation":{"id":13150,"nodeType":"StructuredDocumentation","src":"7130:529:51","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":13165,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7673:6:51","nodeType":"FunctionDefinition","parameters":{"id":13154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13153,"mutability":"mutable","name":"set","nameLocation":"7699:3:51","nodeType":"VariableDeclaration","scope":13165,"src":"7680:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":13152,"nodeType":"UserDefinedTypeName","pathNode":{"id":13151,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":13062,"src":"7680:10:51"},"referencedDeclaration":13062,"src":"7680:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$13062_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7679:24:51"},"returnParameters":{"id":13158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13165,"src":"7727:16:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7727:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13156,"nodeType":"ArrayTypeName","src":"7727:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7726:18:51"},"scope":13456,"src":"7664:124:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":13169,"members":[{"constant":false,"id":13168,"mutability":"mutable","name":"_inner","nameLocation":"7845:6:51","nodeType":"VariableDeclaration","scope":13169,"src":"7841:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":13167,"nodeType":"UserDefinedTypeName","pathNode":{"id":13166,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"7841:3:51"},"referencedDeclaration":12868,"src":"7841:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"7820:10:51","nodeType":"StructDefinition","scope":13456,"src":"7813:45:51","visibility":"public"},{"body":{"id":13195,"nodeType":"Block","src":"8104:74:51","statements":[{"expression":{"arguments":[{"expression":{"id":13181,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13173,"src":"8126:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":13182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13168,"src":"8126:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":13189,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13175,"src":"8162:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8154:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":13187,"name":"uint160","nodeType":"ElementaryTypeName","src":"8154:7:51","typeDescriptions":{}}},"id":13190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8154:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":13186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8146:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13185,"name":"uint256","nodeType":"ElementaryTypeName","src":"8146:7:51","typeDescriptions":{}}},"id":13191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8146:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8138:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8138:7:51","typeDescriptions":{}}},"id":13192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8138:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13180,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12910,"src":"8121:4:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":13193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8121:50:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13179,"id":13194,"nodeType":"Return","src":"8114:57:51"}]},"documentation":{"id":13170,"nodeType":"StructuredDocumentation","src":"7864:159:51","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":13196,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8037:3:51","nodeType":"FunctionDefinition","parameters":{"id":13176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13173,"mutability":"mutable","name":"set","nameLocation":"8060:3:51","nodeType":"VariableDeclaration","scope":13196,"src":"8041:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13172,"nodeType":"UserDefinedTypeName","pathNode":{"id":13171,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"8041:10:51"},"referencedDeclaration":13169,"src":"8041:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":13175,"mutability":"mutable","name":"value","nameLocation":"8073:5:51","nodeType":"VariableDeclaration","scope":13196,"src":"8065:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13174,"name":"address","nodeType":"ElementaryTypeName","src":"8065:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8040:39:51"},"returnParameters":{"id":13179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13196,"src":"8098:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13177,"name":"bool","nodeType":"ElementaryTypeName","src":"8098:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8097:6:51"},"scope":13456,"src":"8028:150:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13222,"nodeType":"Block","src":"8425:77:51","statements":[{"expression":{"arguments":[{"expression":{"id":13208,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13200,"src":"8450:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":13209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13168,"src":"8450:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":13216,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13202,"src":"8486:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8478:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":13214,"name":"uint160","nodeType":"ElementaryTypeName","src":"8478:7:51","typeDescriptions":{}}},"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8478:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":13213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8470:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13212,"name":"uint256","nodeType":"ElementaryTypeName","src":"8470:7:51","typeDescriptions":{}}},"id":13218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8470:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8462:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8462:7:51","typeDescriptions":{}}},"id":13219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8462:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13207,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"8442:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":13220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8442:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13206,"id":13221,"nodeType":"Return","src":"8435:60:51"}]},"documentation":{"id":13197,"nodeType":"StructuredDocumentation","src":"8184:157:51","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":13223,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8355:6:51","nodeType":"FunctionDefinition","parameters":{"id":13203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13200,"mutability":"mutable","name":"set","nameLocation":"8381:3:51","nodeType":"VariableDeclaration","scope":13223,"src":"8362:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13199,"nodeType":"UserDefinedTypeName","pathNode":{"id":13198,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"8362:10:51"},"referencedDeclaration":13169,"src":"8362:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":13202,"mutability":"mutable","name":"value","nameLocation":"8394:5:51","nodeType":"VariableDeclaration","scope":13223,"src":"8386:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13201,"name":"address","nodeType":"ElementaryTypeName","src":"8386:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8361:39:51"},"returnParameters":{"id":13206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13223,"src":"8419:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13204,"name":"bool","nodeType":"ElementaryTypeName","src":"8419:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8418:6:51"},"scope":13456,"src":"8346:156:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13249,"nodeType":"Block","src":"8669:79:51","statements":[{"expression":{"arguments":[{"expression":{"id":13235,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13227,"src":"8696:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":13236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13168,"src":"8696:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":13243,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13229,"src":"8732:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8724:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":13241,"name":"uint160","nodeType":"ElementaryTypeName","src":"8724:7:51","typeDescriptions":{}}},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8724:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":13240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8716:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13239,"name":"uint256","nodeType":"ElementaryTypeName","src":"8716:7:51","typeDescriptions":{}}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8716:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8708:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8708:7:51","typeDescriptions":{}}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8708:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13234,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"8686:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":13247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8686:55:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13233,"id":13248,"nodeType":"Return","src":"8679:62:51"}]},"documentation":{"id":13224,"nodeType":"StructuredDocumentation","src":"8508:70:51","text":" @dev Returns true if the value is in the set. O(1)."},"id":13250,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8592:8:51","nodeType":"FunctionDefinition","parameters":{"id":13230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13227,"mutability":"mutable","name":"set","nameLocation":"8620:3:51","nodeType":"VariableDeclaration","scope":13250,"src":"8601:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13226,"nodeType":"UserDefinedTypeName","pathNode":{"id":13225,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"8601:10:51"},"referencedDeclaration":13169,"src":"8601:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":13229,"mutability":"mutable","name":"value","nameLocation":"8633:5:51","nodeType":"VariableDeclaration","scope":13250,"src":"8625:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13228,"name":"address","nodeType":"ElementaryTypeName","src":"8625:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8600:39:51"},"returnParameters":{"id":13233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13250,"src":"8663:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13231,"name":"bool","nodeType":"ElementaryTypeName","src":"8663:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8662:6:51"},"scope":13456,"src":"8583:165:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13264,"nodeType":"Block","src":"8901:43:51","statements":[{"expression":{"arguments":[{"expression":{"id":13260,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13254,"src":"8926:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":13261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13168,"src":"8926:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":13259,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13027,"src":"8918:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":13262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8918:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13258,"id":13263,"nodeType":"Return","src":"8911:26:51"}]},"documentation":{"id":13251,"nodeType":"StructuredDocumentation","src":"8754:70:51","text":" @dev Returns the number of values in the set. O(1)."},"id":13265,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"8838:6:51","nodeType":"FunctionDefinition","parameters":{"id":13255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13254,"mutability":"mutable","name":"set","nameLocation":"8864:3:51","nodeType":"VariableDeclaration","scope":13265,"src":"8845:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13253,"nodeType":"UserDefinedTypeName","pathNode":{"id":13252,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"8845:10:51"},"referencedDeclaration":13169,"src":"8845:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"8844:24:51"},"returnParameters":{"id":13258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13265,"src":"8892:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13256,"name":"uint256","nodeType":"ElementaryTypeName","src":"8892:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8891:9:51"},"scope":13456,"src":"8829:115:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13291,"nodeType":"Block","src":"9369:73:51","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":13283,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13269,"src":"9414:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":13284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13168,"src":"9414:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":13285,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13271,"src":"9426:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13282,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13044,"src":"9410:3:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":13286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9410:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9402:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13280,"name":"uint256","nodeType":"ElementaryTypeName","src":"9402:7:51","typeDescriptions":{}}},"id":13287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9402:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9394:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":13278,"name":"uint160","nodeType":"ElementaryTypeName","src":"9394:7:51","typeDescriptions":{}}},"id":13288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9394:40:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":13277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9386:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13276,"name":"address","nodeType":"ElementaryTypeName","src":"9386:7:51","typeDescriptions":{}}},"id":13289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9386:49:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13275,"id":13290,"nodeType":"Return","src":"9379:56:51"}]},"documentation":{"id":13266,"nodeType":"StructuredDocumentation","src":"8950:331:51","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":13292,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9295:2:51","nodeType":"FunctionDefinition","parameters":{"id":13272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13269,"mutability":"mutable","name":"set","nameLocation":"9317:3:51","nodeType":"VariableDeclaration","scope":13292,"src":"9298:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13268,"nodeType":"UserDefinedTypeName","pathNode":{"id":13267,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"9298:10:51"},"referencedDeclaration":13169,"src":"9298:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":13271,"mutability":"mutable","name":"index","nameLocation":"9330:5:51","nodeType":"VariableDeclaration","scope":13292,"src":"9322:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13270,"name":"uint256","nodeType":"ElementaryTypeName","src":"9322:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9297:39:51"},"returnParameters":{"id":13275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13292,"src":"9360:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13273,"name":"address","nodeType":"ElementaryTypeName","src":"9360:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9359:9:51"},"scope":13456,"src":"9286:156:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13321,"nodeType":"Block","src":"10063:219:51","statements":[{"assignments":[13306],"declarations":[{"constant":false,"id":13306,"mutability":"mutable","name":"store","nameLocation":"10090:5:51","nodeType":"VariableDeclaration","scope":13321,"src":"10073:22:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10073:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13305,"nodeType":"ArrayTypeName","src":"10073:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":13311,"initialValue":{"arguments":[{"expression":{"id":13308,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13296,"src":"10106:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":13309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13168,"src":"10106:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":13307,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"10098:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":13310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10098:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10073:44:51"},{"assignments":[13316],"declarations":[{"constant":false,"id":13316,"mutability":"mutable","name":"result","nameLocation":"10144:6:51","nodeType":"VariableDeclaration","scope":13321,"src":"10127:23:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13314,"name":"address","nodeType":"ElementaryTypeName","src":"10127:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13315,"nodeType":"ArrayTypeName","src":"10127:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":13317,"nodeType":"VariableDeclarationStatement","src":"10127:23:51"},{"AST":{"nodeType":"YulBlock","src":"10213:39:51","statements":[{"nodeType":"YulAssignment","src":"10227:15:51","value":{"name":"store","nodeType":"YulIdentifier","src":"10237:5:51"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10227:6:51"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":13316,"isOffset":false,"isSlot":false,"src":"10227:6:51","valueSize":1},{"declaration":13306,"isOffset":false,"isSlot":false,"src":"10237:5:51","valueSize":1}],"id":13318,"nodeType":"InlineAssembly","src":"10204:48:51"},{"expression":{"id":13319,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13316,"src":"10269:6:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":13301,"id":13320,"nodeType":"Return","src":"10262:13:51"}]},"documentation":{"id":13293,"nodeType":"StructuredDocumentation","src":"9448:529:51","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":13322,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"9991:6:51","nodeType":"FunctionDefinition","parameters":{"id":13297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13296,"mutability":"mutable","name":"set","nameLocation":"10017:3:51","nodeType":"VariableDeclaration","scope":13322,"src":"9998:22:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":13295,"nodeType":"UserDefinedTypeName","pathNode":{"id":13294,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":13169,"src":"9998:10:51"},"referencedDeclaration":13169,"src":"9998:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$13169_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9997:24:51"},"returnParameters":{"id":13301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13322,"src":"10045:16:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13298,"name":"address","nodeType":"ElementaryTypeName","src":"10045:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13299,"nodeType":"ArrayTypeName","src":"10045:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10044:18:51"},"scope":13456,"src":"9982:300:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":13326,"members":[{"constant":false,"id":13325,"mutability":"mutable","name":"_inner","nameLocation":"10333:6:51","nodeType":"VariableDeclaration","scope":13326,"src":"10329:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":13324,"nodeType":"UserDefinedTypeName","pathNode":{"id":13323,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":12868,"src":"10329:3:51"},"referencedDeclaration":12868,"src":"10329:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10311:7:51","nodeType":"StructDefinition","scope":13456,"src":"10304:42:51","visibility":"public"},{"body":{"id":13346,"nodeType":"Block","src":"10589:56:51","statements":[{"expression":{"arguments":[{"expression":{"id":13338,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13330,"src":"10611:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":13339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13325,"src":"10611:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":13342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13332,"src":"10631:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10623:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10623:7:51","typeDescriptions":{}}},"id":13343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10623:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13337,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12910,"src":"10606:4:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":13344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10606:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13336,"id":13345,"nodeType":"Return","src":"10599:39:51"}]},"documentation":{"id":13327,"nodeType":"StructuredDocumentation","src":"10352:159:51","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":13347,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10525:3:51","nodeType":"FunctionDefinition","parameters":{"id":13333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13330,"mutability":"mutable","name":"set","nameLocation":"10545:3:51","nodeType":"VariableDeclaration","scope":13347,"src":"10529:19:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":13329,"nodeType":"UserDefinedTypeName","pathNode":{"id":13328,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":13326,"src":"10529:7:51"},"referencedDeclaration":13326,"src":"10529:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":13332,"mutability":"mutable","name":"value","nameLocation":"10558:5:51","nodeType":"VariableDeclaration","scope":13347,"src":"10550:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13331,"name":"uint256","nodeType":"ElementaryTypeName","src":"10550:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10528:36:51"},"returnParameters":{"id":13336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13347,"src":"10583:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13334,"name":"bool","nodeType":"ElementaryTypeName","src":"10583:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10582:6:51"},"scope":13456,"src":"10516:129:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13367,"nodeType":"Block","src":"10889:59:51","statements":[{"expression":{"arguments":[{"expression":{"id":13359,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13351,"src":"10914:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":13360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13325,"src":"10914:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":13363,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"10934:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10926:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10926:7:51","typeDescriptions":{}}},"id":13364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10926:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13358,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"10906:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":13365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10906:35:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13357,"id":13366,"nodeType":"Return","src":"10899:42:51"}]},"documentation":{"id":13348,"nodeType":"StructuredDocumentation","src":"10651:157:51","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":13368,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"10822:6:51","nodeType":"FunctionDefinition","parameters":{"id":13354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13351,"mutability":"mutable","name":"set","nameLocation":"10845:3:51","nodeType":"VariableDeclaration","scope":13368,"src":"10829:19:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":13350,"nodeType":"UserDefinedTypeName","pathNode":{"id":13349,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":13326,"src":"10829:7:51"},"referencedDeclaration":13326,"src":"10829:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":13353,"mutability":"mutable","name":"value","nameLocation":"10858:5:51","nodeType":"VariableDeclaration","scope":13368,"src":"10850:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13352,"name":"uint256","nodeType":"ElementaryTypeName","src":"10850:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10828:36:51"},"returnParameters":{"id":13357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13368,"src":"10883:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13355,"name":"bool","nodeType":"ElementaryTypeName","src":"10883:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10882:6:51"},"scope":13456,"src":"10813:135:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13388,"nodeType":"Block","src":"11112:61:51","statements":[{"expression":{"arguments":[{"expression":{"id":13380,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13372,"src":"11139:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":13381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13325,"src":"11139:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":13384,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13374,"src":"11159:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11151:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11151:7:51","typeDescriptions":{}}},"id":13385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11151:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13379,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"11129:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":13386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11129:37:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13378,"id":13387,"nodeType":"Return","src":"11122:44:51"}]},"documentation":{"id":13369,"nodeType":"StructuredDocumentation","src":"10954:70:51","text":" @dev Returns true if the value is in the set. O(1)."},"id":13389,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11038:8:51","nodeType":"FunctionDefinition","parameters":{"id":13375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13372,"mutability":"mutable","name":"set","nameLocation":"11063:3:51","nodeType":"VariableDeclaration","scope":13389,"src":"11047:19:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":13371,"nodeType":"UserDefinedTypeName","pathNode":{"id":13370,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":13326,"src":"11047:7:51"},"referencedDeclaration":13326,"src":"11047:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":13374,"mutability":"mutable","name":"value","nameLocation":"11076:5:51","nodeType":"VariableDeclaration","scope":13389,"src":"11068:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13373,"name":"uint256","nodeType":"ElementaryTypeName","src":"11068:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11046:36:51"},"returnParameters":{"id":13378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13389,"src":"11106:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13376,"name":"bool","nodeType":"ElementaryTypeName","src":"11106:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11105:6:51"},"scope":13456,"src":"11029:144:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13403,"nodeType":"Block","src":"11323:43:51","statements":[{"expression":{"arguments":[{"expression":{"id":13399,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13393,"src":"11348:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":13400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13325,"src":"11348:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":13398,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13027,"src":"11340:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":13401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11340:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13397,"id":13402,"nodeType":"Return","src":"11333:26:51"}]},"documentation":{"id":13390,"nodeType":"StructuredDocumentation","src":"11179:70:51","text":" @dev Returns the number of values on the set. O(1)."},"id":13404,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11263:6:51","nodeType":"FunctionDefinition","parameters":{"id":13394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13393,"mutability":"mutable","name":"set","nameLocation":"11286:3:51","nodeType":"VariableDeclaration","scope":13404,"src":"11270:19:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":13392,"nodeType":"UserDefinedTypeName","pathNode":{"id":13391,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":13326,"src":"11270:7:51"},"referencedDeclaration":13326,"src":"11270:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11269:21:51"},"returnParameters":{"id":13397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13396,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13404,"src":"11314:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13395,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:9:51"},"scope":13456,"src":"11254:112:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13424,"nodeType":"Block","src":"11788:55:51","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":13418,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13408,"src":"11817:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":13419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13325,"src":"11817:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":13420,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13410,"src":"11829:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13417,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13044,"src":"11813:3:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":13421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11813:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11805:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13415,"name":"uint256","nodeType":"ElementaryTypeName","src":"11805:7:51","typeDescriptions":{}}},"id":13422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11805:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13414,"id":13423,"nodeType":"Return","src":"11798:38:51"}]},"documentation":{"id":13405,"nodeType":"StructuredDocumentation","src":"11372:331:51","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":13425,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11717:2:51","nodeType":"FunctionDefinition","parameters":{"id":13411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13408,"mutability":"mutable","name":"set","nameLocation":"11736:3:51","nodeType":"VariableDeclaration","scope":13425,"src":"11720:19:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":13407,"nodeType":"UserDefinedTypeName","pathNode":{"id":13406,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":13326,"src":"11720:7:51"},"referencedDeclaration":13326,"src":"11720:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":13410,"mutability":"mutable","name":"index","nameLocation":"11749:5:51","nodeType":"VariableDeclaration","scope":13425,"src":"11741:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13409,"name":"uint256","nodeType":"ElementaryTypeName","src":"11741:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11719:36:51"},"returnParameters":{"id":13414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13425,"src":"11779:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13412,"name":"uint256","nodeType":"ElementaryTypeName","src":"11779:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11778:9:51"},"scope":13456,"src":"11708:135:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13454,"nodeType":"Block","src":"12461:219:51","statements":[{"assignments":[13439],"declarations":[{"constant":false,"id":13439,"mutability":"mutable","name":"store","nameLocation":"12488:5:51","nodeType":"VariableDeclaration","scope":13454,"src":"12471:22:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12471:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13438,"nodeType":"ArrayTypeName","src":"12471:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":13444,"initialValue":{"arguments":[{"expression":{"id":13441,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13429,"src":"12504:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":13442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":13325,"src":"12504:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$12868_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":13440,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13058,"src":"12496:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$12868_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":13443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12496:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12471:44:51"},{"assignments":[13449],"declarations":[{"constant":false,"id":13449,"mutability":"mutable","name":"result","nameLocation":"12542:6:51","nodeType":"VariableDeclaration","scope":13454,"src":"12525:23:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13447,"name":"uint256","nodeType":"ElementaryTypeName","src":"12525:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13448,"nodeType":"ArrayTypeName","src":"12525:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":13450,"nodeType":"VariableDeclarationStatement","src":"12525:23:51"},{"AST":{"nodeType":"YulBlock","src":"12611:39:51","statements":[{"nodeType":"YulAssignment","src":"12625:15:51","value":{"name":"store","nodeType":"YulIdentifier","src":"12635:5:51"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12625:6:51"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":13449,"isOffset":false,"isSlot":false,"src":"12625:6:51","valueSize":1},{"declaration":13439,"isOffset":false,"isSlot":false,"src":"12635:5:51","valueSize":1}],"id":13451,"nodeType":"InlineAssembly","src":"12602:48:51"},{"expression":{"id":13452,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13449,"src":"12667:6:51","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":13434,"id":13453,"nodeType":"Return","src":"12660:13:51"}]},"documentation":{"id":13426,"nodeType":"StructuredDocumentation","src":"11849:529:51","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":13455,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12392:6:51","nodeType":"FunctionDefinition","parameters":{"id":13430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13429,"mutability":"mutable","name":"set","nameLocation":"12415:3:51","nodeType":"VariableDeclaration","scope":13455,"src":"12399:19:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":13428,"nodeType":"UserDefinedTypeName","pathNode":{"id":13427,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":13326,"src":"12399:7:51"},"referencedDeclaration":13326,"src":"12399:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$13326_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12398:21:51"},"returnParameters":{"id":13434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13455,"src":"12443:16:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13431,"name":"uint256","nodeType":"ElementaryTypeName","src":"12443:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13432,"nodeType":"ArrayTypeName","src":"12443:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12442:18:51"},"scope":13456,"src":"12383:297:51","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":13457,"src":"1228:11454:51","usedErrors":[]}],"src":"115:12568:51"},"id":51},"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","exportedSymbols":{"IUniswapV3Factory":[13539]},"id":13540,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13458,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:52"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13459,"nodeType":"StructuredDocumentation","src":"71:163:52","text":"@title The interface for the Uniswap V3 Factory\n @notice The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees"},"fullyImplemented":false,"id":13539,"linearizedBaseContracts":[13539],"name":"IUniswapV3Factory","nameLocation":"244:17:52","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":13460,"nodeType":"StructuredDocumentation","src":"268:185:52","text":"@notice Emitted when the owner of the factory is changed\n @param oldOwner The owner before the owner was changed\n @param newOwner The owner after the owner was changed"},"id":13466,"name":"OwnerChanged","nameLocation":"464:12:52","nodeType":"EventDefinition","parameters":{"id":13465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13462,"indexed":true,"mutability":"mutable","name":"oldOwner","nameLocation":"493:8:52","nodeType":"VariableDeclaration","scope":13466,"src":"477:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13461,"name":"address","nodeType":"ElementaryTypeName","src":"477:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13464,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"519:8:52","nodeType":"VariableDeclaration","scope":13466,"src":"503:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13463,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"476:52:52"},"src":"458:71:52"},{"anonymous":false,"documentation":{"id":13467,"nodeType":"StructuredDocumentation","src":"535:421:52","text":"@notice Emitted when a pool is created\n @param token0 The first token of the pool by address sort order\n @param token1 The second token of the pool by address sort order\n @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n @param tickSpacing The minimum number of ticks between initialized ticks\n @param pool The address of the created pool"},"id":13479,"name":"PoolCreated","nameLocation":"967:11:52","nodeType":"EventDefinition","parameters":{"id":13478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13469,"indexed":true,"mutability":"mutable","name":"token0","nameLocation":"1004:6:52","nodeType":"VariableDeclaration","scope":13479,"src":"988:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13468,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13471,"indexed":true,"mutability":"mutable","name":"token1","nameLocation":"1036:6:52","nodeType":"VariableDeclaration","scope":13479,"src":"1020:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13470,"name":"address","nodeType":"ElementaryTypeName","src":"1020:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13473,"indexed":true,"mutability":"mutable","name":"fee","nameLocation":"1067:3:52","nodeType":"VariableDeclaration","scope":13479,"src":"1052:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":13472,"name":"uint24","nodeType":"ElementaryTypeName","src":"1052:6:52","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":13475,"indexed":false,"mutability":"mutable","name":"tickSpacing","nameLocation":"1086:11:52","nodeType":"VariableDeclaration","scope":13479,"src":"1080:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13474,"name":"int24","nodeType":"ElementaryTypeName","src":"1080:5:52","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13477,"indexed":false,"mutability":"mutable","name":"pool","nameLocation":"1115:4:52","nodeType":"VariableDeclaration","scope":13479,"src":"1107:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13476,"name":"address","nodeType":"ElementaryTypeName","src":"1107:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"978:147:52"},"src":"961:165:52"},{"anonymous":false,"documentation":{"id":13480,"nodeType":"StructuredDocumentation","src":"1132:275:52","text":"@notice Emitted when a new fee amount is enabled for pool creation via the factory\n @param fee The enabled fee, denominated in hundredths of a bip\n @param tickSpacing The minimum number of ticks between initialized ticks for pools created with the given fee"},"id":13486,"name":"FeeAmountEnabled","nameLocation":"1418:16:52","nodeType":"EventDefinition","parameters":{"id":13485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13482,"indexed":true,"mutability":"mutable","name":"fee","nameLocation":"1450:3:52","nodeType":"VariableDeclaration","scope":13486,"src":"1435:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":13481,"name":"uint24","nodeType":"ElementaryTypeName","src":"1435:6:52","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":13484,"indexed":true,"mutability":"mutable","name":"tickSpacing","nameLocation":"1469:11:52","nodeType":"VariableDeclaration","scope":13486,"src":"1455:25:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13483,"name":"int24","nodeType":"ElementaryTypeName","src":"1455:5:52","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"1434:47:52"},"src":"1412:70:52"},{"documentation":{"id":13487,"nodeType":"StructuredDocumentation","src":"1488:163:52","text":"@notice Returns the current owner of the factory\n @dev Can be changed by the current owner via setOwner\n @return The address of the factory owner"},"functionSelector":"8da5cb5b","id":13492,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1665:5:52","nodeType":"FunctionDefinition","parameters":{"id":13488,"nodeType":"ParameterList","parameters":[],"src":"1670:2:52"},"returnParameters":{"id":13491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13492,"src":"1696:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13489,"name":"address","nodeType":"ElementaryTypeName","src":"1696:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1695:9:52"},"scope":13539,"src":"1656:49:52","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13493,"nodeType":"StructuredDocumentation","src":"1711:348:52","text":"@notice Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled\n @dev A fee amount can never be removed, so this value should be hard coded or cached in the calling context\n @param fee The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee\n @return The tick spacing"},"functionSelector":"22afcccb","id":13500,"implemented":false,"kind":"function","modifiers":[],"name":"feeAmountTickSpacing","nameLocation":"2073:20:52","nodeType":"FunctionDefinition","parameters":{"id":13496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13495,"mutability":"mutable","name":"fee","nameLocation":"2101:3:52","nodeType":"VariableDeclaration","scope":13500,"src":"2094:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":13494,"name":"uint24","nodeType":"ElementaryTypeName","src":"2094:6:52","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"2093:12:52"},"returnParameters":{"id":13499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13500,"src":"2129:5:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13497,"name":"int24","nodeType":"ElementaryTypeName","src":"2129:5:52","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"2128:7:52"},"scope":13539,"src":"2064:72:52","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13501,"nodeType":"StructuredDocumentation","src":"2142:471:52","text":"@notice Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist\n @dev tokenA and tokenB may be passed in either token0/token1 or token1/token0 order\n @param tokenA The contract address of either token0 or token1\n @param tokenB The contract address of the other token\n @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n @return pool The pool address"},"functionSelector":"1698ee82","id":13512,"implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"2627:7:52","nodeType":"FunctionDefinition","parameters":{"id":13508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13503,"mutability":"mutable","name":"tokenA","nameLocation":"2652:6:52","nodeType":"VariableDeclaration","scope":13512,"src":"2644:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13502,"name":"address","nodeType":"ElementaryTypeName","src":"2644:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13505,"mutability":"mutable","name":"tokenB","nameLocation":"2676:6:52","nodeType":"VariableDeclaration","scope":13512,"src":"2668:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13504,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13507,"mutability":"mutable","name":"fee","nameLocation":"2699:3:52","nodeType":"VariableDeclaration","scope":13512,"src":"2692:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":13506,"name":"uint24","nodeType":"ElementaryTypeName","src":"2692:6:52","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"2634:74:52"},"returnParameters":{"id":13511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13510,"mutability":"mutable","name":"pool","nameLocation":"2740:4:52","nodeType":"VariableDeclaration","scope":13512,"src":"2732:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13509,"name":"address","nodeType":"ElementaryTypeName","src":"2732:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2731:14:52"},"scope":13539,"src":"2618:128:52","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13513,"nodeType":"StructuredDocumentation","src":"2752:554:52","text":"@notice Creates a pool for the given two tokens and fee\n @param tokenA One of the two tokens in the desired pool\n @param tokenB The other of the two tokens in the desired pool\n @param fee The desired fee for the pool\n @dev tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved\n from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments\n are invalid.\n @return pool The address of the newly created pool"},"functionSelector":"a1671295","id":13524,"implemented":false,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"3320:10:52","nodeType":"FunctionDefinition","parameters":{"id":13520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13515,"mutability":"mutable","name":"tokenA","nameLocation":"3348:6:52","nodeType":"VariableDeclaration","scope":13524,"src":"3340:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13514,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13517,"mutability":"mutable","name":"tokenB","nameLocation":"3372:6:52","nodeType":"VariableDeclaration","scope":13524,"src":"3364:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13516,"name":"address","nodeType":"ElementaryTypeName","src":"3364:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13519,"mutability":"mutable","name":"fee","nameLocation":"3395:3:52","nodeType":"VariableDeclaration","scope":13524,"src":"3388:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":13518,"name":"uint24","nodeType":"ElementaryTypeName","src":"3388:6:52","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"3330:74:52"},"returnParameters":{"id":13523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13522,"mutability":"mutable","name":"pool","nameLocation":"3431:4:52","nodeType":"VariableDeclaration","scope":13524,"src":"3423:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13521,"name":"address","nodeType":"ElementaryTypeName","src":"3423:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3422:14:52"},"scope":13539,"src":"3311:126:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13525,"nodeType":"StructuredDocumentation","src":"3443:144:52","text":"@notice Updates the owner of the factory\n @dev Must be called by the current owner\n @param _owner The new owner of the factory"},"functionSelector":"13af4035","id":13530,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"3601:8:52","nodeType":"FunctionDefinition","parameters":{"id":13528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13527,"mutability":"mutable","name":"_owner","nameLocation":"3618:6:52","nodeType":"VariableDeclaration","scope":13530,"src":"3610:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13526,"name":"address","nodeType":"ElementaryTypeName","src":"3610:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3609:16:52"},"returnParameters":{"id":13529,"nodeType":"ParameterList","parameters":[],"src":"3634:0:52"},"scope":13539,"src":"3592:43:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13531,"nodeType":"StructuredDocumentation","src":"3641:326:52","text":"@notice Enables a fee amount with the given tickSpacing\n @dev Fee amounts may never be removed once enabled\n @param fee The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)\n @param tickSpacing The spacing between ticks to be enforced for all pools created with the given fee amount"},"functionSelector":"8a7c195f","id":13538,"implemented":false,"kind":"function","modifiers":[],"name":"enableFeeAmount","nameLocation":"3981:15:52","nodeType":"FunctionDefinition","parameters":{"id":13536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13533,"mutability":"mutable","name":"fee","nameLocation":"4004:3:52","nodeType":"VariableDeclaration","scope":13538,"src":"3997:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":13532,"name":"uint24","nodeType":"ElementaryTypeName","src":"3997:6:52","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":13535,"mutability":"mutable","name":"tickSpacing","nameLocation":"4015:11:52","nodeType":"VariableDeclaration","scope":13538,"src":"4009:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13534,"name":"int24","nodeType":"ElementaryTypeName","src":"4009:5:52","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"3996:31:52"},"returnParameters":{"id":13537,"nodeType":"ParameterList","parameters":[],"src":"4036:0:52"},"scope":13539,"src":"3972:65:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13540,"src":"234:3805:52","usedErrors":[]}],"src":"45:3995:52"},"id":52},"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","exportedSymbols":{"IUniswapV3Pool":[13561],"IUniswapV3PoolActions":[13657],"IUniswapV3PoolDerivedState":[13688],"IUniswapV3PoolEvents":[13807],"IUniswapV3PoolImmutables":[13847],"IUniswapV3PoolOwnerActions":[13873],"IUniswapV3PoolState":[13981]},"id":13562,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13541,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:53"},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","file":"./pool/IUniswapV3PoolImmutables.sol","id":13542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13562,"sourceUnit":13848,"src":"71:45:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","file":"./pool/IUniswapV3PoolState.sol","id":13543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13562,"sourceUnit":13982,"src":"117:40:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","file":"./pool/IUniswapV3PoolDerivedState.sol","id":13544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13562,"sourceUnit":13689,"src":"158:47:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","file":"./pool/IUniswapV3PoolActions.sol","id":13545,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13562,"sourceUnit":13658,"src":"206:42:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","file":"./pool/IUniswapV3PoolOwnerActions.sol","id":13546,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13562,"sourceUnit":13874,"src":"249:47:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","file":"./pool/IUniswapV3PoolEvents.sol","id":13547,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13562,"sourceUnit":13808,"src":"297:41:53","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13549,"name":"IUniswapV3PoolImmutables","nodeType":"IdentifierPath","referencedDeclaration":13847,"src":"637:24:53"},"id":13550,"nodeType":"InheritanceSpecifier","src":"637:24:53"},{"baseName":{"id":13551,"name":"IUniswapV3PoolState","nodeType":"IdentifierPath","referencedDeclaration":13981,"src":"667:19:53"},"id":13552,"nodeType":"InheritanceSpecifier","src":"667:19:53"},{"baseName":{"id":13553,"name":"IUniswapV3PoolDerivedState","nodeType":"IdentifierPath","referencedDeclaration":13688,"src":"692:26:53"},"id":13554,"nodeType":"InheritanceSpecifier","src":"692:26:53"},{"baseName":{"id":13555,"name":"IUniswapV3PoolActions","nodeType":"IdentifierPath","referencedDeclaration":13657,"src":"724:21:53"},"id":13556,"nodeType":"InheritanceSpecifier","src":"724:21:53"},{"baseName":{"id":13557,"name":"IUniswapV3PoolOwnerActions","nodeType":"IdentifierPath","referencedDeclaration":13873,"src":"751:26:53"},"id":13558,"nodeType":"InheritanceSpecifier","src":"751:26:53"},{"baseName":{"id":13559,"name":"IUniswapV3PoolEvents","nodeType":"IdentifierPath","referencedDeclaration":13807,"src":"783:20:53"},"id":13560,"nodeType":"InheritanceSpecifier","src":"783:20:53"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13548,"nodeType":"StructuredDocumentation","src":"340:265:53","text":"@title The interface for a Uniswap V3 Pool\n @notice A Uniswap pool facilitates swapping and automated market making between any two assets that strictly conform\n to the ERC20 specification\n @dev The pool interface is broken up into many smaller pieces"},"fullyImplemented":false,"id":13561,"linearizedBaseContracts":[13561,13807,13873,13657,13688,13981,13847],"name":"IUniswapV3Pool","nameLocation":"615:14:53","nodeType":"ContractDefinition","nodes":[],"scope":13562,"src":"605:203:53","usedErrors":[]}],"src":"45:764:53"},"id":53},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","exportedSymbols":{"IUniswapV3PoolActions":[13657]},"id":13658,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13563,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:54"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13564,"nodeType":"StructuredDocumentation","src":"71:102:54","text":"@title Permissionless pool actions\n @notice Contains pool methods that can be called by anyone"},"fullyImplemented":false,"id":13657,"linearizedBaseContracts":[13657],"name":"IUniswapV3PoolActions","nameLocation":"183:21:54","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13565,"nodeType":"StructuredDocumentation","src":"211:206:54","text":"@notice Sets the initial price for the pool\n @dev Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\n @param sqrtPriceX96 the initial sqrt price of the pool as a Q64.96"},"functionSelector":"f637731d","id":13570,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"431:10:54","nodeType":"FunctionDefinition","parameters":{"id":13568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13567,"mutability":"mutable","name":"sqrtPriceX96","nameLocation":"450:12:54","nodeType":"VariableDeclaration","scope":13570,"src":"442:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13566,"name":"uint160","nodeType":"ElementaryTypeName","src":"442:7:54","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"441:22:54"},"returnParameters":{"id":13569,"nodeType":"ParameterList","parameters":[],"src":"472:0:54"},"scope":13657,"src":"422:51:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13571,"nodeType":"StructuredDocumentation","src":"479:1029:54","text":"@notice Adds liquidity for the given recipient/tickLower/tickUpper position\n @dev The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback\n in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends\n on tickLower, tickUpper, the amount of liquidity, and the current price.\n @param recipient The address for which the liquidity will be created\n @param tickLower The lower tick of the position in which to add liquidity\n @param tickUpper The upper tick of the position in which to add liquidity\n @param amount The amount of liquidity to mint\n @param data Any data that should be passed through to the callback\n @return amount0 The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\n @return amount1 The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback"},"functionSelector":"3c8a7d8d","id":13588,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1522:4:54","nodeType":"FunctionDefinition","parameters":{"id":13582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13573,"mutability":"mutable","name":"recipient","nameLocation":"1544:9:54","nodeType":"VariableDeclaration","scope":13588,"src":"1536:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13572,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13575,"mutability":"mutable","name":"tickLower","nameLocation":"1569:9:54","nodeType":"VariableDeclaration","scope":13588,"src":"1563:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13574,"name":"int24","nodeType":"ElementaryTypeName","src":"1563:5:54","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13577,"mutability":"mutable","name":"tickUpper","nameLocation":"1594:9:54","nodeType":"VariableDeclaration","scope":13588,"src":"1588:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13576,"name":"int24","nodeType":"ElementaryTypeName","src":"1588:5:54","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13579,"mutability":"mutable","name":"amount","nameLocation":"1621:6:54","nodeType":"VariableDeclaration","scope":13588,"src":"1613:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13578,"name":"uint128","nodeType":"ElementaryTypeName","src":"1613:7:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13581,"mutability":"mutable","name":"data","nameLocation":"1652:4:54","nodeType":"VariableDeclaration","scope":13588,"src":"1637:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13580,"name":"bytes","nodeType":"ElementaryTypeName","src":"1637:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1526:136:54"},"returnParameters":{"id":13587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13584,"mutability":"mutable","name":"amount0","nameLocation":"1689:7:54","nodeType":"VariableDeclaration","scope":13588,"src":"1681:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13583,"name":"uint256","nodeType":"ElementaryTypeName","src":"1681:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13586,"mutability":"mutable","name":"amount1","nameLocation":"1706:7:54","nodeType":"VariableDeclaration","scope":13588,"src":"1698:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13585,"name":"uint256","nodeType":"ElementaryTypeName","src":"1698:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1680:34:54"},"scope":13657,"src":"1513:202:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13589,"nodeType":"StructuredDocumentation","src":"1721:1053:54","text":"@notice Collects tokens owed to a position\n @dev Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity.\n Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or\n amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the\n actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\n @param recipient The address which should receive the fees collected\n @param tickLower The lower tick of the position for which to collect fees\n @param tickUpper The upper tick of the position for which to collect fees\n @param amount0Requested How much token0 should be withdrawn from the fees owed\n @param amount1Requested How much token1 should be withdrawn from the fees owed\n @return amount0 The amount of fees collected in token0\n @return amount1 The amount of fees collected in token1"},"functionSelector":"4f1eb3d8","id":13606,"implemented":false,"kind":"function","modifiers":[],"name":"collect","nameLocation":"2788:7:54","nodeType":"FunctionDefinition","parameters":{"id":13600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13591,"mutability":"mutable","name":"recipient","nameLocation":"2813:9:54","nodeType":"VariableDeclaration","scope":13606,"src":"2805:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13590,"name":"address","nodeType":"ElementaryTypeName","src":"2805:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13593,"mutability":"mutable","name":"tickLower","nameLocation":"2838:9:54","nodeType":"VariableDeclaration","scope":13606,"src":"2832:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13592,"name":"int24","nodeType":"ElementaryTypeName","src":"2832:5:54","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13595,"mutability":"mutable","name":"tickUpper","nameLocation":"2863:9:54","nodeType":"VariableDeclaration","scope":13606,"src":"2857:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13594,"name":"int24","nodeType":"ElementaryTypeName","src":"2857:5:54","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13597,"mutability":"mutable","name":"amount0Requested","nameLocation":"2890:16:54","nodeType":"VariableDeclaration","scope":13606,"src":"2882:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13596,"name":"uint128","nodeType":"ElementaryTypeName","src":"2882:7:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13599,"mutability":"mutable","name":"amount1Requested","nameLocation":"2924:16:54","nodeType":"VariableDeclaration","scope":13606,"src":"2916:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13598,"name":"uint128","nodeType":"ElementaryTypeName","src":"2916:7:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2795:151:54"},"returnParameters":{"id":13605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13602,"mutability":"mutable","name":"amount0","nameLocation":"2973:7:54","nodeType":"VariableDeclaration","scope":13606,"src":"2965:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13601,"name":"uint128","nodeType":"ElementaryTypeName","src":"2965:7:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13604,"mutability":"mutable","name":"amount1","nameLocation":"2990:7:54","nodeType":"VariableDeclaration","scope":13606,"src":"2982:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13603,"name":"uint128","nodeType":"ElementaryTypeName","src":"2982:7:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2964:34:54"},"scope":13657,"src":"2779:220:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13607,"nodeType":"StructuredDocumentation","src":"3005:631:54","text":"@notice Burn liquidity from the sender and account tokens owed for the liquidity to the position\n @dev Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0\n @dev Fees must be collected separately via a call to #collect\n @param tickLower The lower tick of the position for which to burn liquidity\n @param tickUpper The upper tick of the position for which to burn liquidity\n @param amount How much liquidity to burn\n @return amount0 The amount of token0 sent to the recipient\n @return amount1 The amount of token1 sent to the recipient"},"functionSelector":"a34123a7","id":13620,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"3650:4:54","nodeType":"FunctionDefinition","parameters":{"id":13614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13609,"mutability":"mutable","name":"tickLower","nameLocation":"3670:9:54","nodeType":"VariableDeclaration","scope":13620,"src":"3664:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13608,"name":"int24","nodeType":"ElementaryTypeName","src":"3664:5:54","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13611,"mutability":"mutable","name":"tickUpper","nameLocation":"3695:9:54","nodeType":"VariableDeclaration","scope":13620,"src":"3689:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13610,"name":"int24","nodeType":"ElementaryTypeName","src":"3689:5:54","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13613,"mutability":"mutable","name":"amount","nameLocation":"3722:6:54","nodeType":"VariableDeclaration","scope":13620,"src":"3714:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13612,"name":"uint128","nodeType":"ElementaryTypeName","src":"3714:7:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3654:80:54"},"returnParameters":{"id":13619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13616,"mutability":"mutable","name":"amount0","nameLocation":"3761:7:54","nodeType":"VariableDeclaration","scope":13620,"src":"3753:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13615,"name":"uint256","nodeType":"ElementaryTypeName","src":"3753:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13618,"mutability":"mutable","name":"amount1","nameLocation":"3778:7:54","nodeType":"VariableDeclaration","scope":13620,"src":"3770:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3752:34:54"},"scope":13657,"src":"3641:146:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13621,"nodeType":"StructuredDocumentation","src":"3793:1015:54","text":"@notice Swap token0 for token1, or token1 for token0\n @dev The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback\n @param recipient The address to receive the output of the swap\n @param zeroForOne The direction of the swap, true for token0 to token1, false for token1 to token0\n @param amountSpecified The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\n @param sqrtPriceLimitX96 The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this\n value after the swap. If one for zero, the price cannot be greater than this value after the swap\n @param data Any data to be passed through to the callback\n @return amount0 The delta of the balance of token0 of the pool, exact when negative, minimum when positive\n @return amount1 The delta of the balance of token1 of the pool, exact when negative, minimum when positive"},"functionSelector":"128acb08","id":13638,"implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"4822:4:54","nodeType":"FunctionDefinition","parameters":{"id":13632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13623,"mutability":"mutable","name":"recipient","nameLocation":"4844:9:54","nodeType":"VariableDeclaration","scope":13638,"src":"4836:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13622,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13625,"mutability":"mutable","name":"zeroForOne","nameLocation":"4868:10:54","nodeType":"VariableDeclaration","scope":13638,"src":"4863:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13624,"name":"bool","nodeType":"ElementaryTypeName","src":"4863:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13627,"mutability":"mutable","name":"amountSpecified","nameLocation":"4895:15:54","nodeType":"VariableDeclaration","scope":13638,"src":"4888:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13626,"name":"int256","nodeType":"ElementaryTypeName","src":"4888:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13629,"mutability":"mutable","name":"sqrtPriceLimitX96","nameLocation":"4928:17:54","nodeType":"VariableDeclaration","scope":13638,"src":"4920:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13628,"name":"uint160","nodeType":"ElementaryTypeName","src":"4920:7:54","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13631,"mutability":"mutable","name":"data","nameLocation":"4970:4:54","nodeType":"VariableDeclaration","scope":13638,"src":"4955:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13630,"name":"bytes","nodeType":"ElementaryTypeName","src":"4955:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4826:154:54"},"returnParameters":{"id":13637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13634,"mutability":"mutable","name":"amount0","nameLocation":"5006:7:54","nodeType":"VariableDeclaration","scope":13638,"src":"4999:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13633,"name":"int256","nodeType":"ElementaryTypeName","src":"4999:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13636,"mutability":"mutable","name":"amount1","nameLocation":"5022:7:54","nodeType":"VariableDeclaration","scope":13638,"src":"5015:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13635,"name":"int256","nodeType":"ElementaryTypeName","src":"5015:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4998:32:54"},"scope":13657,"src":"4813:218:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13639,"nodeType":"StructuredDocumentation","src":"5037:657:54","text":"@notice Receive token0 and/or token1 and pay it back, plus a fee, in the callback\n @dev The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallback\n @dev Can be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling\n with 0 amount{0,1} and sending the donation amount(s) from the callback\n @param recipient The address which will receive the token0 and token1 amounts\n @param amount0 The amount of token0 to send\n @param amount1 The amount of token1 to send\n @param data Any data to be passed through to the callback"},"functionSelector":"490e6cbc","id":13650,"implemented":false,"kind":"function","modifiers":[],"name":"flash","nameLocation":"5708:5:54","nodeType":"FunctionDefinition","parameters":{"id":13648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13641,"mutability":"mutable","name":"recipient","nameLocation":"5731:9:54","nodeType":"VariableDeclaration","scope":13650,"src":"5723:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13640,"name":"address","nodeType":"ElementaryTypeName","src":"5723:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13643,"mutability":"mutable","name":"amount0","nameLocation":"5758:7:54","nodeType":"VariableDeclaration","scope":13650,"src":"5750:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13642,"name":"uint256","nodeType":"ElementaryTypeName","src":"5750:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13645,"mutability":"mutable","name":"amount1","nameLocation":"5783:7:54","nodeType":"VariableDeclaration","scope":13650,"src":"5775:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13644,"name":"uint256","nodeType":"ElementaryTypeName","src":"5775:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13647,"mutability":"mutable","name":"data","nameLocation":"5815:4:54","nodeType":"VariableDeclaration","scope":13650,"src":"5800:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13646,"name":"bytes","nodeType":"ElementaryTypeName","src":"5800:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5713:112:54"},"returnParameters":{"id":13649,"nodeType":"ParameterList","parameters":[],"src":"5834:0:54"},"scope":13657,"src":"5699:136:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13651,"nodeType":"StructuredDocumentation","src":"5841:367:54","text":"@notice Increase the maximum number of price and liquidity observations that this pool will store\n @dev This method is no-op if the pool already has an observationCardinalityNext greater than or equal to\n the input observationCardinalityNext.\n @param observationCardinalityNext The desired minimum number of observations for the pool to store"},"functionSelector":"32148f67","id":13656,"implemented":false,"kind":"function","modifiers":[],"name":"increaseObservationCardinalityNext","nameLocation":"6222:34:54","nodeType":"FunctionDefinition","parameters":{"id":13654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13653,"mutability":"mutable","name":"observationCardinalityNext","nameLocation":"6264:26:54","nodeType":"VariableDeclaration","scope":13656,"src":"6257:33:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13652,"name":"uint16","nodeType":"ElementaryTypeName","src":"6257:6:54","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"6256:35:54"},"returnParameters":{"id":13655,"nodeType":"ParameterList","parameters":[],"src":"6300:0:54"},"scope":13657,"src":"6213:88:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13658,"src":"173:6130:54","usedErrors":[]}],"src":"45:6259:54"},"id":54},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","exportedSymbols":{"IUniswapV3PoolDerivedState":[13688]},"id":13689,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13659,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:55"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13660,"nodeType":"StructuredDocumentation","src":"71:222:55","text":"@title Pool state that is not stored\n @notice Contains view functions to provide information about the pool that is computed rather than stored on the\n blockchain. The functions here may have variable gas costs."},"fullyImplemented":false,"id":13688,"linearizedBaseContracts":[13688],"name":"IUniswapV3PoolDerivedState","nameLocation":"303:26:55","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13661,"nodeType":"StructuredDocumentation","src":"336:1045:55","text":"@notice Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\n @dev To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing\n the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick,\n you must call it with secondsAgos = [3600, 0].\n @dev The time weighted average tick represents the geometric time weighted average price of the pool, in\n log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\n @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned\n @return tickCumulatives Cumulative tick values as of each `secondsAgos` from the current block timestamp\n @return secondsPerLiquidityCumulativeX128s Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block\n timestamp"},"functionSelector":"883bdbfd","id":13673,"implemented":false,"kind":"function","modifiers":[],"name":"observe","nameLocation":"1395:7:55","nodeType":"FunctionDefinition","parameters":{"id":13665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13664,"mutability":"mutable","name":"secondsAgos","nameLocation":"1421:11:55","nodeType":"VariableDeclaration","scope":13673,"src":"1403:29:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_calldata_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":13662,"name":"uint32","nodeType":"ElementaryTypeName","src":"1403:6:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":13663,"nodeType":"ArrayTypeName","src":"1403:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"src":"1402:31:55"},"returnParameters":{"id":13672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13668,"mutability":"mutable","name":"tickCumulatives","nameLocation":"1496:15:55","nodeType":"VariableDeclaration","scope":13673,"src":"1481:30:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int56_$dyn_memory_ptr","typeString":"int56[]"},"typeName":{"baseType":{"id":13666,"name":"int56","nodeType":"ElementaryTypeName","src":"1481:5:55","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":13667,"nodeType":"ArrayTypeName","src":"1481:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_int56_$dyn_storage_ptr","typeString":"int56[]"}},"visibility":"internal"},{"constant":false,"id":13671,"mutability":"mutable","name":"secondsPerLiquidityCumulativeX128s","nameLocation":"1530:34:55","nodeType":"VariableDeclaration","scope":13673,"src":"1513:51:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint160_$dyn_memory_ptr","typeString":"uint160[]"},"typeName":{"baseType":{"id":13669,"name":"uint160","nodeType":"ElementaryTypeName","src":"1513:7:55","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":13670,"nodeType":"ArrayTypeName","src":"1513:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint160_$dyn_storage_ptr","typeString":"uint160[]"}},"visibility":"internal"}],"src":"1480:85:55"},"scope":13688,"src":"1386:180:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13674,"nodeType":"StructuredDocumentation","src":"1572:771:55","text":"@notice Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\n @dev Snapshots must only be compared to other snapshots, taken over a period for which a position existed.\n I.e., snapshots cannot be compared if a position is not held for the entire period between when the first\n snapshot is taken and the second snapshot is taken.\n @param tickLower The lower tick of the range\n @param tickUpper The upper tick of the range\n @return tickCumulativeInside The snapshot of the tick accumulator for the range\n @return secondsPerLiquidityInsideX128 The snapshot of seconds per liquidity for the range\n @return secondsInside The snapshot of seconds per liquidity for the range"},"functionSelector":"a38807f2","id":13687,"implemented":false,"kind":"function","modifiers":[],"name":"snapshotCumulativesInside","nameLocation":"2357:25:55","nodeType":"FunctionDefinition","parameters":{"id":13679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13676,"mutability":"mutable","name":"tickLower","nameLocation":"2389:9:55","nodeType":"VariableDeclaration","scope":13687,"src":"2383:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13675,"name":"int24","nodeType":"ElementaryTypeName","src":"2383:5:55","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13678,"mutability":"mutable","name":"tickUpper","nameLocation":"2406:9:55","nodeType":"VariableDeclaration","scope":13687,"src":"2400:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13677,"name":"int24","nodeType":"ElementaryTypeName","src":"2400:5:55","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"2382:34:55"},"returnParameters":{"id":13686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13681,"mutability":"mutable","name":"tickCumulativeInside","nameLocation":"2483:20:55","nodeType":"VariableDeclaration","scope":13687,"src":"2477:26:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":13680,"name":"int56","nodeType":"ElementaryTypeName","src":"2477:5:55","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"},{"constant":false,"id":13683,"mutability":"mutable","name":"secondsPerLiquidityInsideX128","nameLocation":"2525:29:55","nodeType":"VariableDeclaration","scope":13687,"src":"2517:37:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13682,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:55","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13685,"mutability":"mutable","name":"secondsInside","nameLocation":"2575:13:55","nodeType":"VariableDeclaration","scope":13687,"src":"2568:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13684,"name":"uint32","nodeType":"ElementaryTypeName","src":"2568:6:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2463:135:55"},"scope":13688,"src":"2348:251:55","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":13689,"src":"293:2308:55","usedErrors":[]}],"src":"45:2557:55"},"id":55},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","exportedSymbols":{"IUniswapV3PoolEvents":[13807]},"id":13808,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13690,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:56"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13691,"nodeType":"StructuredDocumentation","src":"71:88:56","text":"@title Events emitted by a pool\n @notice Contains all events emitted by the pool"},"fullyImplemented":true,"id":13807,"linearizedBaseContracts":[13807],"name":"IUniswapV3PoolEvents","nameLocation":"169:20:56","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":13692,"nodeType":"StructuredDocumentation","src":"196:344:56","text":"@notice Emitted exactly once by a pool when #initialize is first called on the pool\n @dev Mint/Burn/Swap cannot be emitted by the pool before Initialize\n @param sqrtPriceX96 The initial sqrt price of the pool, as a Q64.96\n @param tick The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool"},"id":13698,"name":"Initialize","nameLocation":"551:10:56","nodeType":"EventDefinition","parameters":{"id":13697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13694,"indexed":false,"mutability":"mutable","name":"sqrtPriceX96","nameLocation":"570:12:56","nodeType":"VariableDeclaration","scope":13698,"src":"562:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13693,"name":"uint160","nodeType":"ElementaryTypeName","src":"562:7:56","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13696,"indexed":false,"mutability":"mutable","name":"tick","nameLocation":"590:4:56","nodeType":"VariableDeclaration","scope":13698,"src":"584:10:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13695,"name":"int24","nodeType":"ElementaryTypeName","src":"584:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"561:34:56"},"src":"545:51:56"},{"anonymous":false,"documentation":{"id":13699,"nodeType":"StructuredDocumentation","src":"602:551:56","text":"@notice Emitted when liquidity is minted for a given position\n @param sender The address that minted the liquidity\n @param owner The owner of the position and recipient of any minted liquidity\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount The amount of liquidity minted to the position range\n @param amount0 How much token0 was required for the minted liquidity\n @param amount1 How much token1 was required for the minted liquidity"},"id":13715,"name":"Mint","nameLocation":"1164:4:56","nodeType":"EventDefinition","parameters":{"id":13714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13701,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"1186:6:56","nodeType":"VariableDeclaration","scope":13715,"src":"1178:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13700,"name":"address","nodeType":"ElementaryTypeName","src":"1178:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13703,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1218:5:56","nodeType":"VariableDeclaration","scope":13715,"src":"1202:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13702,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13705,"indexed":true,"mutability":"mutable","name":"tickLower","nameLocation":"1247:9:56","nodeType":"VariableDeclaration","scope":13715,"src":"1233:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13704,"name":"int24","nodeType":"ElementaryTypeName","src":"1233:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13707,"indexed":true,"mutability":"mutable","name":"tickUpper","nameLocation":"1280:9:56","nodeType":"VariableDeclaration","scope":13715,"src":"1266:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13706,"name":"int24","nodeType":"ElementaryTypeName","src":"1266:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13709,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1307:6:56","nodeType":"VariableDeclaration","scope":13715,"src":"1299:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13708,"name":"uint128","nodeType":"ElementaryTypeName","src":"1299:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13711,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"1331:7:56","nodeType":"VariableDeclaration","scope":13715,"src":"1323:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13713,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"1356:7:56","nodeType":"VariableDeclaration","scope":13715,"src":"1348:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13712,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1168:201:56"},"src":"1158:212:56"},{"anonymous":false,"documentation":{"id":13716,"nodeType":"StructuredDocumentation","src":"1376:493:56","text":"@notice Emitted when fees are collected by the owner of a position\n @dev Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\n @param owner The owner of the position for which fees are collected\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount0 The amount of token0 fees collected\n @param amount1 The amount of token1 fees collected"},"id":13730,"name":"Collect","nameLocation":"1880:7:56","nodeType":"EventDefinition","parameters":{"id":13729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13718,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1913:5:56","nodeType":"VariableDeclaration","scope":13730,"src":"1897:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13717,"name":"address","nodeType":"ElementaryTypeName","src":"1897:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13720,"indexed":false,"mutability":"mutable","name":"recipient","nameLocation":"1936:9:56","nodeType":"VariableDeclaration","scope":13730,"src":"1928:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13719,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13722,"indexed":true,"mutability":"mutable","name":"tickLower","nameLocation":"1969:9:56","nodeType":"VariableDeclaration","scope":13730,"src":"1955:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13721,"name":"int24","nodeType":"ElementaryTypeName","src":"1955:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13724,"indexed":true,"mutability":"mutable","name":"tickUpper","nameLocation":"2002:9:56","nodeType":"VariableDeclaration","scope":13730,"src":"1988:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13723,"name":"int24","nodeType":"ElementaryTypeName","src":"1988:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13726,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"2029:7:56","nodeType":"VariableDeclaration","scope":13730,"src":"2021:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13725,"name":"uint128","nodeType":"ElementaryTypeName","src":"2021:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13728,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"2054:7:56","nodeType":"VariableDeclaration","scope":13730,"src":"2046:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13727,"name":"uint128","nodeType":"ElementaryTypeName","src":"2046:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1887:180:56"},"src":"1874:194:56"},{"anonymous":false,"documentation":{"id":13731,"nodeType":"StructuredDocumentation","src":"2074:523:56","text":"@notice Emitted when a position's liquidity is removed\n @dev Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\n @param owner The owner of the position for which liquidity is removed\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount The amount of liquidity to remove\n @param amount0 The amount of token0 withdrawn\n @param amount1 The amount of token1 withdrawn"},"id":13745,"name":"Burn","nameLocation":"2608:4:56","nodeType":"EventDefinition","parameters":{"id":13744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13733,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"2638:5:56","nodeType":"VariableDeclaration","scope":13745,"src":"2622:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13732,"name":"address","nodeType":"ElementaryTypeName","src":"2622:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13735,"indexed":true,"mutability":"mutable","name":"tickLower","nameLocation":"2667:9:56","nodeType":"VariableDeclaration","scope":13745,"src":"2653:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13734,"name":"int24","nodeType":"ElementaryTypeName","src":"2653:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13737,"indexed":true,"mutability":"mutable","name":"tickUpper","nameLocation":"2700:9:56","nodeType":"VariableDeclaration","scope":13745,"src":"2686:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13736,"name":"int24","nodeType":"ElementaryTypeName","src":"2686:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13739,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2727:6:56","nodeType":"VariableDeclaration","scope":13745,"src":"2719:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13738,"name":"uint128","nodeType":"ElementaryTypeName","src":"2719:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13741,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"2751:7:56","nodeType":"VariableDeclaration","scope":13745,"src":"2743:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13740,"name":"uint256","nodeType":"ElementaryTypeName","src":"2743:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13743,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"2776:7:56","nodeType":"VariableDeclaration","scope":13745,"src":"2768:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13742,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:177:56"},"src":"2602:188:56"},{"anonymous":false,"documentation":{"id":13746,"nodeType":"StructuredDocumentation","src":"2796:600:56","text":"@notice Emitted by the pool for any swaps between token0 and token1\n @param sender The address that initiated the swap call, and that received the callback\n @param recipient The address that received the output of the swap\n @param amount0 The delta of the token0 balance of the pool\n @param amount1 The delta of the token1 balance of the pool\n @param sqrtPriceX96 The sqrt(price) of the pool after the swap, as a Q64.96\n @param liquidity The liquidity of the pool after the swap\n @param tick The log base 1.0001 of price of the pool after the swap"},"id":13762,"name":"Swap","nameLocation":"3407:4:56","nodeType":"EventDefinition","parameters":{"id":13761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13748,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"3437:6:56","nodeType":"VariableDeclaration","scope":13762,"src":"3421:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13747,"name":"address","nodeType":"ElementaryTypeName","src":"3421:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13750,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"3469:9:56","nodeType":"VariableDeclaration","scope":13762,"src":"3453:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13749,"name":"address","nodeType":"ElementaryTypeName","src":"3453:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13752,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"3495:7:56","nodeType":"VariableDeclaration","scope":13762,"src":"3488:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13751,"name":"int256","nodeType":"ElementaryTypeName","src":"3488:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13754,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"3519:7:56","nodeType":"VariableDeclaration","scope":13762,"src":"3512:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13753,"name":"int256","nodeType":"ElementaryTypeName","src":"3512:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13756,"indexed":false,"mutability":"mutable","name":"sqrtPriceX96","nameLocation":"3544:12:56","nodeType":"VariableDeclaration","scope":13762,"src":"3536:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13755,"name":"uint160","nodeType":"ElementaryTypeName","src":"3536:7:56","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13758,"indexed":false,"mutability":"mutable","name":"liquidity","nameLocation":"3574:9:56","nodeType":"VariableDeclaration","scope":13762,"src":"3566:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13757,"name":"uint128","nodeType":"ElementaryTypeName","src":"3566:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13760,"indexed":false,"mutability":"mutable","name":"tick","nameLocation":"3599:4:56","nodeType":"VariableDeclaration","scope":13762,"src":"3593:10:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13759,"name":"int24","nodeType":"ElementaryTypeName","src":"3593:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"3411:198:56"},"src":"3401:209:56"},{"anonymous":false,"documentation":{"id":13763,"nodeType":"StructuredDocumentation","src":"3616:562:56","text":"@notice Emitted by the pool for any flashes of token0/token1\n @param sender The address that initiated the swap call, and that received the callback\n @param recipient The address that received the tokens from flash\n @param amount0 The amount of token0 that was flashed\n @param amount1 The amount of token1 that was flashed\n @param paid0 The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\n @param paid1 The amount of token1 paid for the flash, which can exceed the amount1 plus the fee"},"id":13777,"name":"Flash","nameLocation":"4189:5:56","nodeType":"EventDefinition","parameters":{"id":13776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13765,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"4220:6:56","nodeType":"VariableDeclaration","scope":13777,"src":"4204:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13764,"name":"address","nodeType":"ElementaryTypeName","src":"4204:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13767,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"4252:9:56","nodeType":"VariableDeclaration","scope":13777,"src":"4236:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13766,"name":"address","nodeType":"ElementaryTypeName","src":"4236:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13769,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"4279:7:56","nodeType":"VariableDeclaration","scope":13777,"src":"4271:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13768,"name":"uint256","nodeType":"ElementaryTypeName","src":"4271:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13771,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"4304:7:56","nodeType":"VariableDeclaration","scope":13777,"src":"4296:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13770,"name":"uint256","nodeType":"ElementaryTypeName","src":"4296:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13773,"indexed":false,"mutability":"mutable","name":"paid0","nameLocation":"4329:5:56","nodeType":"VariableDeclaration","scope":13777,"src":"4321:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13772,"name":"uint256","nodeType":"ElementaryTypeName","src":"4321:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13775,"indexed":false,"mutability":"mutable","name":"paid1","nameLocation":"4352:5:56","nodeType":"VariableDeclaration","scope":13777,"src":"4344:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13774,"name":"uint256","nodeType":"ElementaryTypeName","src":"4344:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4194:169:56"},"src":"4183:181:56"},{"anonymous":false,"documentation":{"id":13778,"nodeType":"StructuredDocumentation","src":"4370:451:56","text":"@notice Emitted by the pool for increases to the number of observations that can be stored\n @dev observationCardinalityNext is not the observation cardinality until an observation is written at the index\n just before a mint/swap/burn.\n @param observationCardinalityNextOld The previous value of the next observation cardinality\n @param observationCardinalityNextNew The updated value of the next observation cardinality"},"id":13784,"name":"IncreaseObservationCardinalityNext","nameLocation":"4832:34:56","nodeType":"EventDefinition","parameters":{"id":13783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13780,"indexed":false,"mutability":"mutable","name":"observationCardinalityNextOld","nameLocation":"4883:29:56","nodeType":"VariableDeclaration","scope":13784,"src":"4876:36:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13779,"name":"uint16","nodeType":"ElementaryTypeName","src":"4876:6:56","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13782,"indexed":false,"mutability":"mutable","name":"observationCardinalityNextNew","nameLocation":"4929:29:56","nodeType":"VariableDeclaration","scope":13784,"src":"4922:36:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13781,"name":"uint16","nodeType":"ElementaryTypeName","src":"4922:6:56","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4866:98:56"},"src":"4826:139:56"},{"anonymous":false,"documentation":{"id":13785,"nodeType":"StructuredDocumentation","src":"4971:370:56","text":"@notice Emitted when the protocol fee is changed by the pool\n @param feeProtocol0Old The previous value of the token0 protocol fee\n @param feeProtocol1Old The previous value of the token1 protocol fee\n @param feeProtocol0New The updated value of the token0 protocol fee\n @param feeProtocol1New The updated value of the token1 protocol fee"},"id":13795,"name":"SetFeeProtocol","nameLocation":"5352:14:56","nodeType":"EventDefinition","parameters":{"id":13794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13787,"indexed":false,"mutability":"mutable","name":"feeProtocol0Old","nameLocation":"5373:15:56","nodeType":"VariableDeclaration","scope":13795,"src":"5367:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13786,"name":"uint8","nodeType":"ElementaryTypeName","src":"5367:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13789,"indexed":false,"mutability":"mutable","name":"feeProtocol1Old","nameLocation":"5396:15:56","nodeType":"VariableDeclaration","scope":13795,"src":"5390:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13788,"name":"uint8","nodeType":"ElementaryTypeName","src":"5390:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13791,"indexed":false,"mutability":"mutable","name":"feeProtocol0New","nameLocation":"5419:15:56","nodeType":"VariableDeclaration","scope":13795,"src":"5413:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13790,"name":"uint8","nodeType":"ElementaryTypeName","src":"5413:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13793,"indexed":false,"mutability":"mutable","name":"feeProtocol1New","nameLocation":"5442:15:56","nodeType":"VariableDeclaration","scope":13795,"src":"5436:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13792,"name":"uint8","nodeType":"ElementaryTypeName","src":"5436:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5366:92:56"},"src":"5346:113:56"},{"anonymous":false,"documentation":{"id":13796,"nodeType":"StructuredDocumentation","src":"5465:384:56","text":"@notice Emitted when the collected protocol fees are withdrawn by the factory owner\n @param sender The address that collects the protocol fees\n @param recipient The address that receives the collected protocol fees\n @param amount0 The amount of token0 protocol fees that is withdrawn\n @param amount0 The amount of token1 protocol fees that is withdrawn"},"id":13806,"name":"CollectProtocol","nameLocation":"5860:15:56","nodeType":"EventDefinition","parameters":{"id":13805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13798,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"5892:6:56","nodeType":"VariableDeclaration","scope":13806,"src":"5876:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13797,"name":"address","nodeType":"ElementaryTypeName","src":"5876:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13800,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"5916:9:56","nodeType":"VariableDeclaration","scope":13806,"src":"5900:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13799,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13802,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"5935:7:56","nodeType":"VariableDeclaration","scope":13806,"src":"5927:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13801,"name":"uint128","nodeType":"ElementaryTypeName","src":"5927:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13804,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"5952:7:56","nodeType":"VariableDeclaration","scope":13806,"src":"5944:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13803,"name":"uint128","nodeType":"ElementaryTypeName","src":"5944:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5875:85:56"},"src":"5854:107:56"}],"scope":13808,"src":"159:5804:56","usedErrors":[]}],"src":"45:5919:56"},"id":56},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","exportedSymbols":{"IUniswapV3PoolImmutables":[13847]},"id":13848,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13809,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:57"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13810,"nodeType":"StructuredDocumentation","src":"71:153:57","text":"@title Pool state that never changes\n @notice These parameters are fixed for a pool forever, i.e., the methods will always return the same values"},"fullyImplemented":false,"id":13847,"linearizedBaseContracts":[13847],"name":"IUniswapV3PoolImmutables","nameLocation":"234:24:57","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13811,"nodeType":"StructuredDocumentation","src":"265:138:57","text":"@notice The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\n @return The contract address"},"functionSelector":"c45a0155","id":13816,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nameLocation":"417:7:57","nodeType":"FunctionDefinition","parameters":{"id":13812,"nodeType":"ParameterList","parameters":[],"src":"424:2:57"},"returnParameters":{"id":13815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13816,"src":"450:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13813,"name":"address","nodeType":"ElementaryTypeName","src":"450:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"449:9:57"},"scope":13847,"src":"408:51:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13817,"nodeType":"StructuredDocumentation","src":"465:113:57","text":"@notice The first of the two tokens of the pool, sorted by address\n @return The token contract address"},"functionSelector":"0dfe1681","id":13822,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nameLocation":"592:6:57","nodeType":"FunctionDefinition","parameters":{"id":13818,"nodeType":"ParameterList","parameters":[],"src":"598:2:57"},"returnParameters":{"id":13821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13822,"src":"624:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13819,"name":"address","nodeType":"ElementaryTypeName","src":"624:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"623:9:57"},"scope":13847,"src":"583:50:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13823,"nodeType":"StructuredDocumentation","src":"639:114:57","text":"@notice The second of the two tokens of the pool, sorted by address\n @return The token contract address"},"functionSelector":"d21220a7","id":13828,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nameLocation":"767:6:57","nodeType":"FunctionDefinition","parameters":{"id":13824,"nodeType":"ParameterList","parameters":[],"src":"773:2:57"},"returnParameters":{"id":13827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13828,"src":"799:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13825,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"798:9:57"},"scope":13847,"src":"758:50:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13829,"nodeType":"StructuredDocumentation","src":"814:84:57","text":"@notice The pool's fee in hundredths of a bip, i.e. 1e-6\n @return The fee"},"functionSelector":"ddca3f43","id":13834,"implemented":false,"kind":"function","modifiers":[],"name":"fee","nameLocation":"912:3:57","nodeType":"FunctionDefinition","parameters":{"id":13830,"nodeType":"ParameterList","parameters":[],"src":"915:2:57"},"returnParameters":{"id":13833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13834,"src":"941:6:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":13831,"name":"uint24","nodeType":"ElementaryTypeName","src":"941:6:57","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"940:8:57"},"scope":13847,"src":"903:46:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13835,"nodeType":"StructuredDocumentation","src":"955:358:57","text":"@notice The pool tick spacing\n @dev Ticks can only be used at multiples of this value, minimum of 1 and always positive\n e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ...\n This value is an int24 to avoid casting even though it is always positive.\n @return The tick spacing"},"functionSelector":"d0c93a7c","id":13840,"implemented":false,"kind":"function","modifiers":[],"name":"tickSpacing","nameLocation":"1327:11:57","nodeType":"FunctionDefinition","parameters":{"id":13836,"nodeType":"ParameterList","parameters":[],"src":"1338:2:57"},"returnParameters":{"id":13839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13840,"src":"1364:5:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13837,"name":"int24","nodeType":"ElementaryTypeName","src":"1364:5:57","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"1363:7:57"},"scope":13847,"src":"1318:53:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13841,"nodeType":"StructuredDocumentation","src":"1377:363:57","text":"@notice The maximum amount of position liquidity that can use any tick in the range\n @dev This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and\n also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\n @return The max amount of liquidity per tick"},"functionSelector":"70cf754a","id":13846,"implemented":false,"kind":"function","modifiers":[],"name":"maxLiquidityPerTick","nameLocation":"1754:19:57","nodeType":"FunctionDefinition","parameters":{"id":13842,"nodeType":"ParameterList","parameters":[],"src":"1773:2:57"},"returnParameters":{"id":13845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13846,"src":"1799:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13843,"name":"uint128","nodeType":"ElementaryTypeName","src":"1799:7:57","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1798:9:57"},"scope":13847,"src":"1745:63:57","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":13848,"src":"224:1586:57","usedErrors":[]}],"src":"45:1766:57"},"id":57},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","exportedSymbols":{"IUniswapV3PoolOwnerActions":[13873]},"id":13874,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13849,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:58"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13850,"nodeType":"StructuredDocumentation","src":"71:116:58","text":"@title Permissioned pool actions\n @notice Contains pool methods that may only be called by the factory owner"},"fullyImplemented":false,"id":13873,"linearizedBaseContracts":[13873],"name":"IUniswapV3PoolOwnerActions","nameLocation":"197:26:58","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13851,"nodeType":"StructuredDocumentation","src":"230:205:58","text":"@notice Set the denominator of the protocol's % share of the fees\n @param feeProtocol0 new protocol fee for token0 of the pool\n @param feeProtocol1 new protocol fee for token1 of the pool"},"functionSelector":"8206a4d1","id":13858,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeProtocol","nameLocation":"449:14:58","nodeType":"FunctionDefinition","parameters":{"id":13856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13853,"mutability":"mutable","name":"feeProtocol0","nameLocation":"470:12:58","nodeType":"VariableDeclaration","scope":13858,"src":"464:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13852,"name":"uint8","nodeType":"ElementaryTypeName","src":"464:5:58","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13855,"mutability":"mutable","name":"feeProtocol1","nameLocation":"490:12:58","nodeType":"VariableDeclaration","scope":13858,"src":"484:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13854,"name":"uint8","nodeType":"ElementaryTypeName","src":"484:5:58","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"463:40:58"},"returnParameters":{"id":13857,"nodeType":"ParameterList","parameters":[],"src":"512:0:58"},"scope":13873,"src":"440:73:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13859,"nodeType":"StructuredDocumentation","src":"519:483:58","text":"@notice Collect the protocol fee accrued to the pool\n @param recipient The address to which collected protocol fees should be sent\n @param amount0Requested The maximum amount of token0 to send, can be 0 to collect fees in only token1\n @param amount1Requested The maximum amount of token1 to send, can be 0 to collect fees in only token0\n @return amount0 The protocol fee collected in token0\n @return amount1 The protocol fee collected in token1"},"functionSelector":"85b66729","id":13872,"implemented":false,"kind":"function","modifiers":[],"name":"collectProtocol","nameLocation":"1016:15:58","nodeType":"FunctionDefinition","parameters":{"id":13866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13861,"mutability":"mutable","name":"recipient","nameLocation":"1049:9:58","nodeType":"VariableDeclaration","scope":13872,"src":"1041:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13860,"name":"address","nodeType":"ElementaryTypeName","src":"1041:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13863,"mutability":"mutable","name":"amount0Requested","nameLocation":"1076:16:58","nodeType":"VariableDeclaration","scope":13872,"src":"1068:24:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13862,"name":"uint128","nodeType":"ElementaryTypeName","src":"1068:7:58","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13865,"mutability":"mutable","name":"amount1Requested","nameLocation":"1110:16:58","nodeType":"VariableDeclaration","scope":13872,"src":"1102:24:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13864,"name":"uint128","nodeType":"ElementaryTypeName","src":"1102:7:58","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1031:101:58"},"returnParameters":{"id":13871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13868,"mutability":"mutable","name":"amount0","nameLocation":"1159:7:58","nodeType":"VariableDeclaration","scope":13872,"src":"1151:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13867,"name":"uint128","nodeType":"ElementaryTypeName","src":"1151:7:58","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13870,"mutability":"mutable","name":"amount1","nameLocation":"1176:7:58","nodeType":"VariableDeclaration","scope":13872,"src":"1168:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13869,"name":"uint128","nodeType":"ElementaryTypeName","src":"1168:7:58","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1150:34:58"},"scope":13873,"src":"1007:178:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13874,"src":"187:1000:58","usedErrors":[]}],"src":"45:1143:58"},"id":58},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"ast":{"absolutePath":"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","exportedSymbols":{"IUniswapV3PoolState":[13981]},"id":13982,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13875,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:59"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13876,"nodeType":"StructuredDocumentation","src":"71:169:59","text":"@title Pool state that can change\n @notice These methods compose the pool's state, and can change with any frequency including multiple times\n per transaction"},"fullyImplemented":false,"id":13981,"linearizedBaseContracts":[13981],"name":"IUniswapV3PoolState","nameLocation":"250:19:59","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13877,"nodeType":"StructuredDocumentation","src":"276:1140:59","text":"@notice The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas\n when accessed externally.\n @return sqrtPriceX96 The current price of the pool as a sqrt(token1/token0) Q64.96 value\n tick The current tick of the pool, i.e. according to the last tick transition that was run.\n This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick\n boundary.\n observationIndex The index of the last oracle observation that was written,\n observationCardinality The current maximum number of observations stored in the pool,\n observationCardinalityNext The next maximum number of observations, to be updated when the observation.\n feeProtocol The protocol fee for both tokens of the pool.\n Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0\n is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee.\n unlocked Whether the pool is currently locked to reentrancy"},"functionSelector":"3850c7bd","id":13894,"implemented":false,"kind":"function","modifiers":[],"name":"slot0","nameLocation":"1430:5:59","nodeType":"FunctionDefinition","parameters":{"id":13878,"nodeType":"ParameterList","parameters":[],"src":"1435:2:59"},"returnParameters":{"id":13893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13880,"mutability":"mutable","name":"sqrtPriceX96","nameLocation":"1506:12:59","nodeType":"VariableDeclaration","scope":13894,"src":"1498:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13879,"name":"uint160","nodeType":"ElementaryTypeName","src":"1498:7:59","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13882,"mutability":"mutable","name":"tick","nameLocation":"1538:4:59","nodeType":"VariableDeclaration","scope":13894,"src":"1532:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13881,"name":"int24","nodeType":"ElementaryTypeName","src":"1532:5:59","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":13884,"mutability":"mutable","name":"observationIndex","nameLocation":"1563:16:59","nodeType":"VariableDeclaration","scope":13894,"src":"1556:23:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13883,"name":"uint16","nodeType":"ElementaryTypeName","src":"1556:6:59","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13886,"mutability":"mutable","name":"observationCardinality","nameLocation":"1600:22:59","nodeType":"VariableDeclaration","scope":13894,"src":"1593:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13885,"name":"uint16","nodeType":"ElementaryTypeName","src":"1593:6:59","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13888,"mutability":"mutable","name":"observationCardinalityNext","nameLocation":"1643:26:59","nodeType":"VariableDeclaration","scope":13894,"src":"1636:33:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13887,"name":"uint16","nodeType":"ElementaryTypeName","src":"1636:6:59","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13890,"mutability":"mutable","name":"feeProtocol","nameLocation":"1689:11:59","nodeType":"VariableDeclaration","scope":13894,"src":"1683:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13889,"name":"uint8","nodeType":"ElementaryTypeName","src":"1683:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13892,"mutability":"mutable","name":"unlocked","nameLocation":"1719:8:59","nodeType":"VariableDeclaration","scope":13894,"src":"1714:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13891,"name":"bool","nodeType":"ElementaryTypeName","src":"1714:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1484:253:59"},"scope":13981,"src":"1421:317:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13895,"nodeType":"StructuredDocumentation","src":"1744:168:59","text":"@notice The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\n @dev This value can overflow the uint256"},"functionSelector":"f3058399","id":13900,"implemented":false,"kind":"function","modifiers":[],"name":"feeGrowthGlobal0X128","nameLocation":"1926:20:59","nodeType":"FunctionDefinition","parameters":{"id":13896,"nodeType":"ParameterList","parameters":[],"src":"1946:2:59"},"returnParameters":{"id":13899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13900,"src":"1972:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13897,"name":"uint256","nodeType":"ElementaryTypeName","src":"1972:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1971:9:59"},"scope":13981,"src":"1917:64:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13901,"nodeType":"StructuredDocumentation","src":"1987:168:59","text":"@notice The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\n @dev This value can overflow the uint256"},"functionSelector":"46141319","id":13906,"implemented":false,"kind":"function","modifiers":[],"name":"feeGrowthGlobal1X128","nameLocation":"2169:20:59","nodeType":"FunctionDefinition","parameters":{"id":13902,"nodeType":"ParameterList","parameters":[],"src":"2189:2:59"},"returnParameters":{"id":13905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13906,"src":"2215:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13903,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2214:9:59"},"scope":13981,"src":"2160:64:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13907,"nodeType":"StructuredDocumentation","src":"2230:147:59","text":"@notice The amounts of token0 and token1 that are owed to the protocol\n @dev Protocol fees will never exceed uint128 max in either token"},"functionSelector":"1ad8b03b","id":13914,"implemented":false,"kind":"function","modifiers":[],"name":"protocolFees","nameLocation":"2391:12:59","nodeType":"FunctionDefinition","parameters":{"id":13908,"nodeType":"ParameterList","parameters":[],"src":"2403:2:59"},"returnParameters":{"id":13913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13910,"mutability":"mutable","name":"token0","nameLocation":"2437:6:59","nodeType":"VariableDeclaration","scope":13914,"src":"2429:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13909,"name":"uint128","nodeType":"ElementaryTypeName","src":"2429:7:59","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13912,"mutability":"mutable","name":"token1","nameLocation":"2453:6:59","nodeType":"VariableDeclaration","scope":13914,"src":"2445:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13911,"name":"uint128","nodeType":"ElementaryTypeName","src":"2445:7:59","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2428:32:59"},"scope":13981,"src":"2382:79:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13915,"nodeType":"StructuredDocumentation","src":"2467:150:59","text":"@notice The currently in range liquidity available to the pool\n @dev This value has no relationship to the total liquidity across all ticks"},"functionSelector":"1a686502","id":13920,"implemented":false,"kind":"function","modifiers":[],"name":"liquidity","nameLocation":"2631:9:59","nodeType":"FunctionDefinition","parameters":{"id":13916,"nodeType":"ParameterList","parameters":[],"src":"2640:2:59"},"returnParameters":{"id":13919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13920,"src":"2666:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13917,"name":"uint128","nodeType":"ElementaryTypeName","src":"2666:7:59","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2665:9:59"},"scope":13981,"src":"2622:53:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13921,"nodeType":"StructuredDocumentation","src":"2681:1244:59","text":"@notice Look up information about a specific tick in the pool\n @param tick The tick to look up\n @return liquidityGross the total amount of position liquidity that uses the pool either as tick lower or\n tick upper,\n liquidityNet how much liquidity changes when the pool price crosses the tick,\n feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0,\n feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1,\n tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick\n secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick,\n secondsOutside the seconds spent on the other side of the tick from the current tick,\n initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false.\n Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0.\n In addition, these values are only relative and must be used only in comparison to previous snapshots for\n a specific position."},"functionSelector":"f30dba93","id":13942,"implemented":false,"kind":"function","modifiers":[],"name":"ticks","nameLocation":"3939:5:59","nodeType":"FunctionDefinition","parameters":{"id":13924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13923,"mutability":"mutable","name":"tick","nameLocation":"3951:4:59","nodeType":"VariableDeclaration","scope":13942,"src":"3945:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":13922,"name":"int24","nodeType":"ElementaryTypeName","src":"3945:5:59","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"3944:12:59"},"returnParameters":{"id":13941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13926,"mutability":"mutable","name":"liquidityGross","nameLocation":"4025:14:59","nodeType":"VariableDeclaration","scope":13942,"src":"4017:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13925,"name":"uint128","nodeType":"ElementaryTypeName","src":"4017:7:59","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13928,"mutability":"mutable","name":"liquidityNet","nameLocation":"4060:12:59","nodeType":"VariableDeclaration","scope":13942,"src":"4053:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":13927,"name":"int128","nodeType":"ElementaryTypeName","src":"4053:6:59","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":13930,"mutability":"mutable","name":"feeGrowthOutside0X128","nameLocation":"4094:21:59","nodeType":"VariableDeclaration","scope":13942,"src":"4086:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13929,"name":"uint256","nodeType":"ElementaryTypeName","src":"4086:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13932,"mutability":"mutable","name":"feeGrowthOutside1X128","nameLocation":"4137:21:59","nodeType":"VariableDeclaration","scope":13942,"src":"4129:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13931,"name":"uint256","nodeType":"ElementaryTypeName","src":"4129:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13934,"mutability":"mutable","name":"tickCumulativeOutside","nameLocation":"4178:21:59","nodeType":"VariableDeclaration","scope":13942,"src":"4172:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":13933,"name":"int56","nodeType":"ElementaryTypeName","src":"4172:5:59","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"},{"constant":false,"id":13936,"mutability":"mutable","name":"secondsPerLiquidityOutsideX128","nameLocation":"4221:30:59","nodeType":"VariableDeclaration","scope":13942,"src":"4213:38:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13935,"name":"uint160","nodeType":"ElementaryTypeName","src":"4213:7:59","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13938,"mutability":"mutable","name":"secondsOutside","nameLocation":"4272:14:59","nodeType":"VariableDeclaration","scope":13942,"src":"4265:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13937,"name":"uint32","nodeType":"ElementaryTypeName","src":"4265:6:59","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13940,"mutability":"mutable","name":"initialized","nameLocation":"4305:11:59","nodeType":"VariableDeclaration","scope":13942,"src":"4300:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13939,"name":"bool","nodeType":"ElementaryTypeName","src":"4300:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4003:323:59"},"scope":13981,"src":"3930:397:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13943,"nodeType":"StructuredDocumentation","src":"4333:99:59","text":"@notice Returns 256 packed tick initialized boolean values. See TickBitmap for more information"},"functionSelector":"5339c296","id":13950,"implemented":false,"kind":"function","modifiers":[],"name":"tickBitmap","nameLocation":"4446:10:59","nodeType":"FunctionDefinition","parameters":{"id":13946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13945,"mutability":"mutable","name":"wordPosition","nameLocation":"4463:12:59","nodeType":"VariableDeclaration","scope":13950,"src":"4457:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":13944,"name":"int16","nodeType":"ElementaryTypeName","src":"4457:5:59","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"4456:20:59"},"returnParameters":{"id":13949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13950,"src":"4500:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13947,"name":"uint256","nodeType":"ElementaryTypeName","src":"4500:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4499:9:59"},"scope":13981,"src":"4437:72:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13951,"nodeType":"StructuredDocumentation","src":"4515:700:59","text":"@notice Returns the information about a position by the position's key\n @param key The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\n @return _liquidity The amount of liquidity in the position,\n Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke,\n Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke,\n Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke,\n Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke"},"functionSelector":"514ea4bf","id":13966,"implemented":false,"kind":"function","modifiers":[],"name":"positions","nameLocation":"5229:9:59","nodeType":"FunctionDefinition","parameters":{"id":13954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13953,"mutability":"mutable","name":"key","nameLocation":"5247:3:59","nodeType":"VariableDeclaration","scope":13966,"src":"5239:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5239:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5238:13:59"},"returnParameters":{"id":13965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13956,"mutability":"mutable","name":"_liquidity","nameLocation":"5320:10:59","nodeType":"VariableDeclaration","scope":13966,"src":"5312:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13955,"name":"uint128","nodeType":"ElementaryTypeName","src":"5312:7:59","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13958,"mutability":"mutable","name":"feeGrowthInside0LastX128","nameLocation":"5352:24:59","nodeType":"VariableDeclaration","scope":13966,"src":"5344:32:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13957,"name":"uint256","nodeType":"ElementaryTypeName","src":"5344:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13960,"mutability":"mutable","name":"feeGrowthInside1LastX128","nameLocation":"5398:24:59","nodeType":"VariableDeclaration","scope":13966,"src":"5390:32:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13959,"name":"uint256","nodeType":"ElementaryTypeName","src":"5390:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13962,"mutability":"mutable","name":"tokensOwed0","nameLocation":"5444:11:59","nodeType":"VariableDeclaration","scope":13966,"src":"5436:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13961,"name":"uint128","nodeType":"ElementaryTypeName","src":"5436:7:59","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":13964,"mutability":"mutable","name":"tokensOwed1","nameLocation":"5477:11:59","nodeType":"VariableDeclaration","scope":13966,"src":"5469:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":13963,"name":"uint128","nodeType":"ElementaryTypeName","src":"5469:7:59","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5298:200:59"},"scope":13981,"src":"5220:279:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13967,"nodeType":"StructuredDocumentation","src":"5505:749:59","text":"@notice Returns data about a specific observation index\n @param index The element of the observations array to fetch\n @dev You most likely want to use #observe() instead of this method to get an observation as of some amount of time\n ago, rather than at a specific index in the array.\n @return blockTimestamp The timestamp of the observation,\n Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp,\n Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp,\n Returns initialized whether the observation has been initialized and the values are safe to use"},"functionSelector":"252c09d7","id":13980,"implemented":false,"kind":"function","modifiers":[],"name":"observations","nameLocation":"6268:12:59","nodeType":"FunctionDefinition","parameters":{"id":13970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13969,"mutability":"mutable","name":"index","nameLocation":"6289:5:59","nodeType":"VariableDeclaration","scope":13980,"src":"6281:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13968,"name":"uint256","nodeType":"ElementaryTypeName","src":"6281:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6280:15:59"},"returnParameters":{"id":13979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13972,"mutability":"mutable","name":"blockTimestamp","nameLocation":"6363:14:59","nodeType":"VariableDeclaration","scope":13980,"src":"6356:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13971,"name":"uint32","nodeType":"ElementaryTypeName","src":"6356:6:59","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13974,"mutability":"mutable","name":"tickCumulative","nameLocation":"6397:14:59","nodeType":"VariableDeclaration","scope":13980,"src":"6391:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":13973,"name":"int56","nodeType":"ElementaryTypeName","src":"6391:5:59","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"},{"constant":false,"id":13976,"mutability":"mutable","name":"secondsPerLiquidityCumulativeX128","nameLocation":"6433:33:59","nodeType":"VariableDeclaration","scope":13980,"src":"6425:41:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13975,"name":"uint160","nodeType":"ElementaryTypeName","src":"6425:7:59","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13978,"mutability":"mutable","name":"initialized","nameLocation":"6485:11:59","nodeType":"VariableDeclaration","scope":13980,"src":"6480:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13977,"name":"bool","nodeType":"ElementaryTypeName","src":"6480:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6342:164:59"},"scope":13981,"src":"6259:248:59","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":13982,"src":"240:6269:59","usedErrors":[]}],"src":"45:6465:59"},"id":59},"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"ast":{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol","exportedSymbols":{"IERC165":[9849],"IERC721":[7092],"IERC721Permit":[14016]},"id":14017,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13983,"literals":["solidity",">=","0.7",".5"],"nodeType":"PragmaDirective","src":"45:24:60"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":13984,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14017,"sourceUnit":7093,"src":"71:58:60","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13986,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":7092,"src":"282:7:60"},"id":13987,"nodeType":"InheritanceSpecifier","src":"282:7:60"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":13985,"nodeType":"StructuredDocumentation","src":"131:124:60","text":"@title ERC721 with permit\n @notice Extension to ERC721 that includes a permit function for signature based approvals"},"fullyImplemented":false,"id":14016,"linearizedBaseContracts":[14016,7092,9849],"name":"IERC721Permit","nameLocation":"265:13:60","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13988,"nodeType":"StructuredDocumentation","src":"296:104:60","text":"@notice The permit typehash used in the permit signature\n @return The typehash for the permit"},"functionSelector":"30adf81f","id":13993,"implemented":false,"kind":"function","modifiers":[],"name":"PERMIT_TYPEHASH","nameLocation":"414:15:60","nodeType":"FunctionDefinition","parameters":{"id":13989,"nodeType":"ParameterList","parameters":[],"src":"429:2:60"},"returnParameters":{"id":13992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13993,"src":"455:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"455:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"454:9:60"},"scope":14016,"src":"405:59:60","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":13994,"nodeType":"StructuredDocumentation","src":"470:135:60","text":"@notice The domain separator used in the permit signature\n @return The domain seperator used in encoding of permit signature"},"functionSelector":"3644e515","id":13999,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"619:16:60","nodeType":"FunctionDefinition","parameters":{"id":13995,"nodeType":"ParameterList","parameters":[],"src":"635:2:60"},"returnParameters":{"id":13998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13999,"src":"661:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"661:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"660:9:60"},"scope":14016,"src":"610:60:60","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":14000,"nodeType":"StructuredDocumentation","src":"676:605:60","text":"@notice Approve of a specific token ID for spending by spender via signature\n @param spender The account that is being approved\n @param tokenId The ID of the token that is being approved for spending\n @param deadline The deadline timestamp by which the call must be mined for the approve to work\n @param v Must produce valid secp256k1 signature from the holder along with `r` and `s`\n @param r Must produce valid secp256k1 signature from the holder along with `v` and `s`\n @param s Must produce valid secp256k1 signature from the holder along with `r` and `v`"},"functionSelector":"7ac2ff7b","id":14015,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1295:6:60","nodeType":"FunctionDefinition","parameters":{"id":14013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14002,"mutability":"mutable","name":"spender","nameLocation":"1319:7:60","nodeType":"VariableDeclaration","scope":14015,"src":"1311:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14001,"name":"address","nodeType":"ElementaryTypeName","src":"1311:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14004,"mutability":"mutable","name":"tokenId","nameLocation":"1344:7:60","nodeType":"VariableDeclaration","scope":14015,"src":"1336:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14006,"mutability":"mutable","name":"deadline","nameLocation":"1369:8:60","nodeType":"VariableDeclaration","scope":14015,"src":"1361:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14005,"name":"uint256","nodeType":"ElementaryTypeName","src":"1361:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14008,"mutability":"mutable","name":"v","nameLocation":"1393:1:60","nodeType":"VariableDeclaration","scope":14015,"src":"1387:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14007,"name":"uint8","nodeType":"ElementaryTypeName","src":"1387:5:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":14010,"mutability":"mutable","name":"r","nameLocation":"1412:1:60","nodeType":"VariableDeclaration","scope":14015,"src":"1404:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14009,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1404:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14012,"mutability":"mutable","name":"s","nameLocation":"1431:1:60","nodeType":"VariableDeclaration","scope":14015,"src":"1423:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1423:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1301:137:60"},"returnParameters":{"id":14014,"nodeType":"ParameterList","parameters":[],"src":"1455:0:60"},"scope":14016,"src":"1286:170:60","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":14017,"src":"255:1203:60","usedErrors":[]}],"src":"45:1414:60"},"id":60},"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"ast":{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","exportedSymbols":{"IPeripheryImmutableState":[14032]},"id":14033,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":14018,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:61"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":14019,"nodeType":"StructuredDocumentation","src":"71:91:61","text":"@title Immutable state\n @notice Functions that return immutable state of the router"},"fullyImplemented":false,"id":14032,"linearizedBaseContracts":[14032],"name":"IPeripheryImmutableState","nameLocation":"172:24:61","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":14020,"nodeType":"StructuredDocumentation","src":"203:57:61","text":"@return Returns the address of the Uniswap V3 factory"},"functionSelector":"c45a0155","id":14025,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nameLocation":"274:7:61","nodeType":"FunctionDefinition","parameters":{"id":14021,"nodeType":"ParameterList","parameters":[],"src":"281:2:61"},"returnParameters":{"id":14024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14025,"src":"307:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14022,"name":"address","nodeType":"ElementaryTypeName","src":"307:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"306:9:61"},"scope":14032,"src":"265:51:61","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":14026,"nodeType":"StructuredDocumentation","src":"322:40:61","text":"@return Returns the address of WETH9"},"functionSelector":"4aa4a4fc","id":14031,"implemented":false,"kind":"function","modifiers":[],"name":"WETH9","nameLocation":"376:5:61","nodeType":"FunctionDefinition","parameters":{"id":14027,"nodeType":"ParameterList","parameters":[],"src":"381:2:61"},"returnParameters":{"id":14030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14031,"src":"407:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14028,"name":"address","nodeType":"ElementaryTypeName","src":"407:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"406:9:61"},"scope":14032,"src":"367:49:61","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":14033,"src":"162:256:61","usedErrors":[]}],"src":"45:374:61"},"id":61},"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"ast":{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","exportedSymbols":{"IPeripheryPayments":[14058]},"id":14059,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":14034,"literals":["solidity",">=","0.7",".5"],"nodeType":"PragmaDirective","src":"45:24:62"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":14035,"nodeType":"StructuredDocumentation","src":"71:92:62","text":"@title Periphery Payments\n @notice Functions to ease deposits and withdrawals of ETH"},"fullyImplemented":false,"id":14058,"linearizedBaseContracts":[14058],"name":"IPeripheryPayments","nameLocation":"173:18:62","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":14036,"nodeType":"StructuredDocumentation","src":"198:302:62","text":"@notice Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\n @dev The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\n @param amountMinimum The minimum amount of WETH9 to unwrap\n @param recipient The address receiving ETH"},"functionSelector":"49404b7c","id":14043,"implemented":false,"kind":"function","modifiers":[],"name":"unwrapWETH9","nameLocation":"514:11:62","nodeType":"FunctionDefinition","parameters":{"id":14041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14038,"mutability":"mutable","name":"amountMinimum","nameLocation":"534:13:62","nodeType":"VariableDeclaration","scope":14043,"src":"526:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14037,"name":"uint256","nodeType":"ElementaryTypeName","src":"526:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14040,"mutability":"mutable","name":"recipient","nameLocation":"557:9:62","nodeType":"VariableDeclaration","scope":14043,"src":"549:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14039,"name":"address","nodeType":"ElementaryTypeName","src":"549:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"525:42:62"},"returnParameters":{"id":14042,"nodeType":"ParameterList","parameters":[],"src":"584:0:62"},"scope":14058,"src":"505:80:62","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":14044,"nodeType":"StructuredDocumentation","src":"591:225:62","text":"@notice Refunds any ETH balance held by this contract to the `msg.sender`\n @dev Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps\n that use ether for the input amount"},"functionSelector":"12210e8a","id":14047,"implemented":false,"kind":"function","modifiers":[],"name":"refundETH","nameLocation":"830:9:62","nodeType":"FunctionDefinition","parameters":{"id":14045,"nodeType":"ParameterList","parameters":[],"src":"839:2:62"},"returnParameters":{"id":14046,"nodeType":"ParameterList","parameters":[],"src":"858:0:62"},"scope":14058,"src":"821:38:62","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":14048,"nodeType":"StructuredDocumentation","src":"865:427:62","text":"@notice Transfers the full amount of a token held by this contract to recipient\n @dev The amountMinimum parameter prevents malicious contracts from stealing the token from users\n @param token The contract address of the token which will be transferred to `recipient`\n @param amountMinimum The minimum amount of token required for a transfer\n @param recipient The destination address of the token"},"functionSelector":"df2ab5bb","id":14057,"implemented":false,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1306:10:62","nodeType":"FunctionDefinition","parameters":{"id":14055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14050,"mutability":"mutable","name":"token","nameLocation":"1334:5:62","nodeType":"VariableDeclaration","scope":14057,"src":"1326:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14049,"name":"address","nodeType":"ElementaryTypeName","src":"1326:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14052,"mutability":"mutable","name":"amountMinimum","nameLocation":"1357:13:62","nodeType":"VariableDeclaration","scope":14057,"src":"1349:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14051,"name":"uint256","nodeType":"ElementaryTypeName","src":"1349:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14054,"mutability":"mutable","name":"recipient","nameLocation":"1388:9:62","nodeType":"VariableDeclaration","scope":14057,"src":"1380:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14053,"name":"address","nodeType":"ElementaryTypeName","src":"1380:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1316:87:62"},"returnParameters":{"id":14056,"nodeType":"ParameterList","parameters":[],"src":"1420:0:62"},"scope":14058,"src":"1297:124:62","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":14059,"src":"163:1260:62","usedErrors":[]}],"src":"45:1379:62"},"id":62},"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"ast":{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol","exportedSymbols":{"IPoolInitializer":[14077]},"id":14078,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":14060,"literals":["solidity",">=","0.7",".5"],"nodeType":"PragmaDirective","src":"45:24:63"},{"id":14061,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"70:19:63"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":14062,"nodeType":"StructuredDocumentation","src":"91:194:63","text":"@title Creates and initializes V3 Pools\n @notice Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that\n require the pool to exist."},"fullyImplemented":false,"id":14077,"linearizedBaseContracts":[14077],"name":"IPoolInitializer","nameLocation":"295:16:63","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":14063,"nodeType":"StructuredDocumentation","src":"318:648:63","text":"@notice Creates a new pool if it does not exist, then initializes if not initialized\n @dev This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\n @param token0 The contract address of token0 of the pool\n @param token1 The contract address of token1 of the pool\n @param fee The fee amount of the v3 pool for the specified token pair\n @param sqrtPriceX96 The initial square root price of the pool as a Q64.96 value\n @return pool Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary"},"functionSelector":"13ead562","id":14076,"implemented":false,"kind":"function","modifiers":[],"name":"createAndInitializePoolIfNecessary","nameLocation":"980:34:63","nodeType":"FunctionDefinition","parameters":{"id":14072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14065,"mutability":"mutable","name":"token0","nameLocation":"1032:6:63","nodeType":"VariableDeclaration","scope":14076,"src":"1024:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14064,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14067,"mutability":"mutable","name":"token1","nameLocation":"1056:6:63","nodeType":"VariableDeclaration","scope":14076,"src":"1048:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14066,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14069,"mutability":"mutable","name":"fee","nameLocation":"1079:3:63","nodeType":"VariableDeclaration","scope":14076,"src":"1072:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":14068,"name":"uint24","nodeType":"ElementaryTypeName","src":"1072:6:63","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":14071,"mutability":"mutable","name":"sqrtPriceX96","nameLocation":"1100:12:63","nodeType":"VariableDeclaration","scope":14076,"src":"1092:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":14070,"name":"uint160","nodeType":"ElementaryTypeName","src":"1092:7:63","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"1014:104:63"},"returnParameters":{"id":14075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14074,"mutability":"mutable","name":"pool","nameLocation":"1153:4:63","nodeType":"VariableDeclaration","scope":14076,"src":"1145:12:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14073,"name":"address","nodeType":"ElementaryTypeName","src":"1145:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1144:14:63"},"scope":14077,"src":"971:188:63","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":14078,"src":"285:876:63","usedErrors":[]}],"src":"45:1117:63"},"id":63},"contracts/Dependencies.sol":{"ast":{"absolutePath":"contracts/Dependencies.sol","exportedSymbols":{"Address":[7999],"Context":[8255],"IERC20":[5767],"IERC20Permit":[5828],"Pausable":[5022],"SafeERC20":[6109]},"id":14082,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14079,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:64"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":14080,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14082,"sourceUnit":6110,"src":"58:65:64","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":14081,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14082,"sourceUnit":5023,"src":"124:55:64","symbolAliases":[],"unitAlias":""}],"src":"33:178:64"},"id":64},"contracts/EmissionController.sol":{"ast":{"absolutePath":"contracts/EmissionController.sol","exportedSymbols":{"EmissionController":[14224],"Epoch":[36811],"IERC20":[5767],"IEmissionController":[33981],"IGaugeVoter":[34456],"IRegistry":[35522],"Math":[10353]},"id":14225,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14083,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:65"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":14085,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14225,"sourceUnit":4739,"src":"58:69:65","symbolAliases":[{"foreign":{"id":14084,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":14087,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14225,"sourceUnit":10354,"src":"128:65:65","symbolAliases":[{"foreign":{"id":14086,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"136:4:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/Epoch.sol","file":"./utils/Epoch.sol","id":14089,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14225,"sourceUnit":36812,"src":"195:40:65","symbolAliases":[{"foreign":{"id":14088,"name":"Epoch","nodeType":"Identifier","overloadedDeclarations":[],"src":"203:5:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoter.sol","file":"./interfaces/IGaugeVoter.sol","id":14091,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14225,"sourceUnit":34457,"src":"236:57:65","symbolAliases":[{"foreign":{"id":14090,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"src":"244:11:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","id":14093,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14225,"sourceUnit":35523,"src":"294:53:65","symbolAliases":[{"foreign":{"id":14092,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"302:9:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEmissionController.sol","file":"./interfaces/IEmissionController.sol","id":14095,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14225,"sourceUnit":33982,"src":"348:73:65","symbolAliases":[{"foreign":{"id":14094,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"src":"356:19:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14096,"name":"IEmissionController","nodeType":"IdentifierPath","referencedDeclaration":33981,"src":"454:19:65"},"id":14097,"nodeType":"InheritanceSpecifier","src":"454:19:65"},{"baseName":{"id":14098,"name":"Epoch","nodeType":"IdentifierPath","referencedDeclaration":36811,"src":"475:5:65"},"id":14099,"nodeType":"InheritanceSpecifier","src":"475:5:65"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":14224,"linearizedBaseContracts":[14224,36811,655,8255,33981,34019],"name":"EmissionController","nameLocation":"432:18:65","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":14102,"mutability":"mutable","name":"registry","nameLocation":"504:8:65","nodeType":"VariableDeclaration","scope":14224,"src":"487:25:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":14101,"nodeType":"UserDefinedTypeName","pathNode":{"id":14100,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"487:9:65"},"referencedDeclaration":35522,"src":"487:9:65","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":false,"functionSelector":"d8e2219c","id":14104,"mutability":"mutable","name":"ratePerEpoch","nameLocation":"534:12:65","nodeType":"VariableDeclaration","scope":14224,"src":"519:27:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14103,"name":"uint256","nodeType":"ElementaryTypeName","src":"519:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"c1ba630e","id":14108,"mutability":"mutable","name":"tokenStakingPool","nameLocation":"587:16:65","nodeType":"VariableDeclaration","scope":14224,"src":"552:51:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":14107,"keyType":{"id":14105,"name":"address","nodeType":"ElementaryTypeName","src":"560:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"552:27:65","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":14106,"name":"address","nodeType":"ElementaryTypeName","src":"571:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"anonymous":false,"id":14114,"name":"RateUpdated","nameLocation":"616:11:65","nodeType":"EventDefinition","parameters":{"id":14113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14110,"indexed":false,"mutability":"mutable","name":"old","nameLocation":"636:3:65","nodeType":"VariableDeclaration","scope":14114,"src":"628:11:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14109,"name":"uint256","nodeType":"ElementaryTypeName","src":"628:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14112,"indexed":false,"mutability":"mutable","name":"rate","nameLocation":"649:4:65","nodeType":"VariableDeclaration","scope":14114,"src":"641:12:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14111,"name":"uint256","nodeType":"ElementaryTypeName","src":"641:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"627:27:65"},"src":"610:45:65"},{"body":{"id":14137,"nodeType":"Block","src":"761:86:65","statements":[{"expression":{"id":14131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14127,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14102,"src":"771:8:65","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14129,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14116,"src":"792:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14128,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"782:9:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"782:20:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"771:31:65","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":14132,"nodeType":"ExpressionStatement","src":"771:31:65"},{"expression":{"id":14135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14133,"name":"ratePerEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"812:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14134,"name":"_ratePerEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14118,"src":"827:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"812:28:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14136,"nodeType":"ExpressionStatement","src":"812:28:65"}]},"id":14138,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"37","id":14121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:6:65","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},{"expression":{"id":14122,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"737:5:65","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"737:15:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":14124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"754:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":14125,"kind":"baseConstructorSpecifier","modifierName":{"id":14120,"name":"Epoch","nodeType":"IdentifierPath","referencedDeclaration":36811,"src":"723:5:65"},"nodeType":"ModifierInvocation","src":"723:33:65"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14116,"mutability":"mutable","name":"_registry","nameLocation":"681:9:65","nodeType":"VariableDeclaration","scope":14138,"src":"673:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14115,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14118,"mutability":"mutable","name":"_ratePerEpoch","nameLocation":"700:13:65","nodeType":"VariableDeclaration","scope":14138,"src":"692:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14117,"name":"uint256","nodeType":"ElementaryTypeName","src":"692:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"672:42:65"},"returnParameters":{"id":14126,"nodeType":"ParameterList","parameters":[],"src":"761:0:65"},"scope":14224,"src":"661:186:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[33980],"body":{"id":14205,"nodeType":"Block","src":"910:711:65","statements":[{"assignments":[14145],"declarations":[{"constant":false,"id":14145,"mutability":"mutable","name":"mahaBalance","nameLocation":"928:11:65","nodeType":"VariableDeclaration","scope":14205,"src":"920:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14144,"name":"uint256","nodeType":"ElementaryTypeName","src":"920:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14157,"initialValue":{"arguments":[{"arguments":[{"id":14154,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"984:4:65","typeDescriptions":{"typeIdentifier":"t_contract$_EmissionController_$14224","typeString":"contract EmissionController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EmissionController_$14224","typeString":"contract EmissionController"}],"id":14153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"976:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14152,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:65","typeDescriptions":{}}},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"976:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14147,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14102,"src":"949:8:65","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":14148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"949:13:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"949:15:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14146,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"942:6:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":14150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"942:23:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"942:33:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"942:48:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"920:70:65"},{"assignments":[14159],"declarations":[{"constant":false,"id":14159,"mutability":"mutable","name":"balanceToSend","nameLocation":"1055:13:65","nodeType":"VariableDeclaration","scope":14205,"src":"1047:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14158,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14160,"nodeType":"VariableDeclarationStatement","src":"1047:21:65"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14161,"name":"ratePerEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"1157:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1173:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1157:17:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":14174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14168,"name":"balanceToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14159,"src":"1296:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14171,"name":"mahaBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"1321:11:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14172,"name":"ratePerEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"1334:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14169,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"1312:4:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":14170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"1312:8:65","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1312:35:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1296:51:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14175,"nodeType":"ExpressionStatement","src":"1296:51:65"},"id":14176,"nodeType":"IfStatement","src":"1153:194:65","trueBody":{"expression":{"id":14166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14164,"name":"balanceToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14159,"src":"1188:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14165,"name":"mahaBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"1204:11:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1188:27:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14167,"nodeType":"ExpressionStatement","src":"1188:27:65"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14178,"name":"balanceToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14159,"src":"1366:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1366:17:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f206d61686120746f2073656e64","id":14181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1385:17:65","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bbc9cbdb95ff1740574fec89c84ee34beb1c5c2f7864112a75398058a78bfec","typeString":"literal_string \"no maha to send\""},"value":"no maha to send"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9bbc9cbdb95ff1740574fec89c84ee34beb1c5c2f7864112a75398058a78bfec","typeString":"literal_string \"no maha to send\""}],"id":14177,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1358:7:65","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1358:45:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14183,"nodeType":"ExpressionStatement","src":"1358:45:65"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14190,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14102,"src":"1499:8:65","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":14191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"1499:19:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:21:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14193,"name":"balanceToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14159,"src":"1522:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14185,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14102,"src":"1473:8:65","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":14186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"1473:13:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1473:15:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14184,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"1466:6:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":14188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1466:23:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"1466:32:65","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":14194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1466:70:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14195,"nodeType":"ExpressionStatement","src":"1466:70:65"},{"expression":{"arguments":[{"id":14202,"name":"balanceToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14159,"src":"1600:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14197,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14102,"src":"1558:8:65","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":14198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"1558:19:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1558:21:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14196,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34456,"src":"1546:11:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoter_$34456_$","typeString":"type(contract IGaugeVoter)"}},"id":14200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1546:34:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoter_$34456","typeString":"contract IGaugeVoter"}},"id":14201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"notifyRewardAmount","nodeType":"MemberAccess","referencedDeclaration":34371,"src":"1546:53:65","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":14203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1546:68:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14204,"nodeType":"ExpressionStatement","src":"1546:68:65"}]},"functionSelector":"161ad706","id":14206,"implemented":true,"kind":"function","modifiers":[{"id":14142,"kind":"modifierInvocation","modifierName":{"id":14141,"name":"checkEpoch","nodeType":"IdentifierPath","referencedDeclaration":36649,"src":"899:10:65"},"nodeType":"ModifierInvocation","src":"899:10:65"}],"name":"allocateEmission","nameLocation":"862:16:65","nodeType":"FunctionDefinition","overrides":{"id":14140,"nodeType":"OverrideSpecifier","overrides":[],"src":"890:8:65"},"parameters":{"id":14139,"nodeType":"ParameterList","parameters":[],"src":"878:2:65"},"returnParameters":{"id":14143,"nodeType":"ParameterList","parameters":[],"src":"910:0:65"},"scope":14224,"src":"853:768:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14222,"nodeType":"Block","src":"1685:92:65","statements":[{"eventCall":{"arguments":[{"id":14214,"name":"ratePerEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"1712:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14215,"name":"epochRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14208,"src":"1726:9:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14213,"name":"RateUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14114,"src":"1700:11:65","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":14216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1700:36:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14217,"nodeType":"EmitStatement","src":"1695:41:65"},{"expression":{"id":14220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14218,"name":"ratePerEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"1746:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14219,"name":"epochRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14208,"src":"1761:9:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1746:24:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14221,"nodeType":"ExpressionStatement","src":"1746:24:65"}]},"functionSelector":"69ea1771","id":14223,"implemented":true,"kind":"function","modifiers":[{"id":14211,"kind":"modifierInvocation","modifierName":{"id":14210,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"1675:9:65"},"nodeType":"ModifierInvocation","src":"1675:9:65"}],"name":"updateRate","nameLocation":"1636:10:65","nodeType":"FunctionDefinition","parameters":{"id":14209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14208,"mutability":"mutable","name":"epochRate","nameLocation":"1655:9:65","nodeType":"VariableDeclaration","scope":14223,"src":"1647:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14207,"name":"uint256","nodeType":"ElementaryTypeName","src":"1647:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1646:19:65"},"returnParameters":{"id":14212,"nodeType":"ParameterList","parameters":[],"src":"1685:0:65"},"scope":14224,"src":"1627:150:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":14225,"src":"423:1356:65","usedErrors":[]}],"src":"33:1747:65"},"id":65},"contracts/LockMigrator.sol":{"ast":{"absolutePath":"contracts/LockMigrator.sol","exportedSymbols":{"Context":[8255],"IERC20":[5767],"ILockMigrator":[34711],"INFTLocker":[34923],"LockMigrator":[14702],"MerkleProof":[9659],"Ownable":[655],"Pausable":[5022],"ReentrancyGuard":[5062]},"id":14703,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14226,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:66"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":14228,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14703,"sourceUnit":5768,"src":"58:70:66","symbolAliases":[{"foreign":{"id":14227,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":14231,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14703,"sourceUnit":656,"src":"129:76:66","symbolAliases":[{"foreign":{"id":14229,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"src":"137:7:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":14230,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"146:7:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","file":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","id":14233,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14703,"sourceUnit":9660,"src":"206:87:66","symbolAliases":[{"foreign":{"id":14232,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"src":"214:11:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":14235,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14703,"sourceUnit":5063,"src":"294:85:66","symbolAliases":[{"foreign":{"id":14234,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"302:15:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":14237,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14703,"sourceUnit":5023,"src":"380:71:66","symbolAliases":[{"foreign":{"id":14236,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"src":"388:8:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"./interfaces/INFTLocker.sol","id":14239,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14703,"sourceUnit":34924,"src":"453:55:66","symbolAliases":[{"foreign":{"id":14238,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"461:10:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ILockMigrator.sol","file":"./interfaces/ILockMigrator.sol","id":14241,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14703,"sourceUnit":34712,"src":"509:61:66","symbolAliases":[{"foreign":{"id":14240,"name":"ILockMigrator","nodeType":"Identifier","overloadedDeclarations":[],"src":"517:13:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14242,"name":"ILockMigrator","nodeType":"IdentifierPath","referencedDeclaration":34711,"src":"597:13:66"},"id":14243,"nodeType":"InheritanceSpecifier","src":"597:13:66"},{"baseName":{"id":14244,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"612:7:66"},"id":14245,"nodeType":"InheritanceSpecifier","src":"612:7:66"},{"baseName":{"id":14246,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":5022,"src":"621:8:66"},"id":14247,"nodeType":"InheritanceSpecifier","src":"621:8:66"},{"baseName":{"id":14248,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"631:15:66"},"id":14249,"nodeType":"InheritanceSpecifier","src":"631:15:66"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":14702,"linearizedBaseContracts":[14702,5062,5022,655,8255,34711],"name":"LockMigrator","nameLocation":"581:12:66","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"2eb4a7ab","id":14251,"mutability":"mutable","name":"merkleRoot","nameLocation":"668:10:66","nodeType":"VariableDeclaration","scope":14702,"src":"653:25:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"653:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"59bc0352","id":14256,"mutability":"mutable","name":"migrationReward","nameLocation":"699:15:66","nodeType":"VariableDeclaration","scope":14702,"src":"684:42:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14252,"name":"uint256","nodeType":"ElementaryTypeName","src":"684:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"id":14255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":14253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"717:2:66","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":14254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"722:4:66","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"717:9:66","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"}},"visibility":"public"},{"constant":false,"functionSelector":"3de00c36","id":14259,"mutability":"mutable","name":"maha","nameLocation":"747:4:66","nodeType":"VariableDeclaration","scope":14702,"src":"733:18:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":14258,"nodeType":"UserDefinedTypeName","pathNode":{"id":14257,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"733:6:66"},"referencedDeclaration":5767,"src":"733:6:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"6f03ec94","id":14262,"mutability":"mutable","name":"scallop","nameLocation":"771:7:66","nodeType":"VariableDeclaration","scope":14702,"src":"757:21:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":14261,"nodeType":"UserDefinedTypeName","pathNode":{"id":14260,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"757:6:66"},"referencedDeclaration":5767,"src":"757:6:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"ffc7d718","id":14265,"mutability":"mutable","name":"mahaxLocker","nameLocation":"802:11:66","nodeType":"VariableDeclaration","scope":14702,"src":"784:29:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":14264,"nodeType":"UserDefinedTypeName","pathNode":{"id":14263,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"784:10:66"},"referencedDeclaration":34923,"src":"784:10:66","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"public"},{"constant":true,"id":14268,"mutability":"constant","name":"WEEK","nameLocation":"846:4:66","nodeType":"VariableDeclaration","scope":14702,"src":"820:40:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14266,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":14267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"853:7:66","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"visibility":"internal"},{"constant":false,"functionSelector":"3a50433d","id":14272,"mutability":"mutable","name":"isTokenIdMigrated","nameLocation":"899:17:66","nodeType":"VariableDeclaration","scope":14702,"src":"867:49:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":14271,"keyType":{"id":14269,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"867:24:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueType":{"id":14270,"name":"bool","nodeType":"ElementaryTypeName","src":"886:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"0bfe6f5f","id":14276,"mutability":"mutable","name":"isTokenIdBanned","nameLocation":"954:15:66","nodeType":"VariableDeclaration","scope":14702,"src":"922:47:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":14275,"keyType":{"id":14273,"name":"uint256","nodeType":"ElementaryTypeName","src":"930:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"922:24:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueType":{"id":14274,"name":"bool","nodeType":"ElementaryTypeName","src":"941:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"58554b46","id":14280,"mutability":"mutable","name":"isAddressBanned","nameLocation":"1007:15:66","nodeType":"VariableDeclaration","scope":14702,"src":"975:47:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":14279,"keyType":{"id":14277,"name":"address","nodeType":"ElementaryTypeName","src":"983:7:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"975:24:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":14278,"name":"bool","nodeType":"ElementaryTypeName","src":"994:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":14310,"nodeType":"Block","src":"1156:127:66","statements":[{"expression":{"id":14296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14294,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14251,"src":"1166:10:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14295,"name":"_merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14282,"src":"1179:11:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1166:24:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14297,"nodeType":"ExpressionStatement","src":"1166:24:66"},{"expression":{"id":14300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14298,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14259,"src":"1200:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14299,"name":"_maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14285,"src":"1207:5:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"src":"1200:12:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14301,"nodeType":"ExpressionStatement","src":"1200:12:66"},{"expression":{"id":14304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14302,"name":"scallop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14262,"src":"1222:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14303,"name":"_scallop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14288,"src":"1232:8:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"src":"1222:18:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14305,"nodeType":"ExpressionStatement","src":"1222:18:66"},{"expression":{"id":14308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14306,"name":"mahaxLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14265,"src":"1250:11:66","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14307,"name":"_mahaxLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"1264:12:66","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"src":"1250:26:66","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":14309,"nodeType":"ExpressionStatement","src":"1250:26:66"}]},"id":14311,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14282,"mutability":"mutable","name":"_merkleRoot","nameLocation":"1058:11:66","nodeType":"VariableDeclaration","scope":14311,"src":"1050:19:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1050:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14285,"mutability":"mutable","name":"_maha","nameLocation":"1086:5:66","nodeType":"VariableDeclaration","scope":14311,"src":"1079:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":14284,"nodeType":"UserDefinedTypeName","pathNode":{"id":14283,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1079:6:66"},"referencedDeclaration":5767,"src":"1079:6:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":14288,"mutability":"mutable","name":"_scallop","nameLocation":"1108:8:66","nodeType":"VariableDeclaration","scope":14311,"src":"1101:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":14287,"nodeType":"UserDefinedTypeName","pathNode":{"id":14286,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1101:6:66"},"referencedDeclaration":5767,"src":"1101:6:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":14291,"mutability":"mutable","name":"_mahaxLocker","nameLocation":"1137:12:66","nodeType":"VariableDeclaration","scope":14311,"src":"1126:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":14290,"nodeType":"UserDefinedTypeName","pathNode":{"id":14289,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"1126:10:66"},"referencedDeclaration":34923,"src":"1126:10:66","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"internal"}],"src":"1040:115:66"},"returnParameters":{"id":14293,"nodeType":"ParameterList","parameters":[],"src":"1156:0:66"},"scope":14702,"src":"1029:254:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34656],"body":{"id":14328,"nodeType":"Block","src":"1361:103:66","statements":[{"eventCall":{"arguments":[{"id":14320,"name":"migrationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"1399:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14321,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14313,"src":"1416:6:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14319,"name":"MigrationRewardChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34702,"src":"1376:22:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":14322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1376:47:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14323,"nodeType":"EmitStatement","src":"1371:52:66"},{"expression":{"id":14326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14324,"name":"migrationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"1433:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14325,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14313,"src":"1451:6:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1433:24:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14327,"nodeType":"ExpressionStatement","src":"1433:24:66"}]},"functionSelector":"4c2d392a","id":14329,"implemented":true,"kind":"function","modifiers":[{"id":14317,"kind":"modifierInvocation","modifierName":{"id":14316,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"1351:9:66"},"nodeType":"ModifierInvocation","src":"1351:9:66"}],"name":"setMigrationReward","nameLocation":"1298:18:66","nodeType":"FunctionDefinition","overrides":{"id":14315,"nodeType":"OverrideSpecifier","overrides":[],"src":"1342:8:66"},"parameters":{"id":14314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14313,"mutability":"mutable","name":"reward","nameLocation":"1325:6:66","nodeType":"VariableDeclaration","scope":14329,"src":"1317:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14312,"name":"uint256","nodeType":"ElementaryTypeName","src":"1317:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1316:16:66"},"returnParameters":{"id":14318,"nodeType":"ParameterList","parameters":[],"src":"1361:0:66"},"scope":14702,"src":"1289:175:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14479,"nodeType":"Block","src":"1743:1135:66","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14354,"name":"_endDate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14333,"src":"1761:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14355,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1774:5:66","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"1774:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":14357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:66","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14358,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14268,"src":"1796:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1792:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1774:26:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14361,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1773:28:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1761:40:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656e6420646174652065787069726564","id":14363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1803:18:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cad2dc17e5a3249652b48bf5720b188adbcc8d771ce018abe0eaa901b684db7","typeString":"literal_string \"end date expired\""},"value":"end date expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cad2dc17e5a3249652b48bf5720b188adbcc8d771ce018abe0eaa901b684db7","typeString":"literal_string \"end date expired\""}],"id":14353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1753:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1753:69:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14365,"nodeType":"ExpressionStatement","src":"1753:69:66"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14367,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"1840:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1840:13:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f6b656e49642069732030","id":14370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1855:14:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ad500dbd4487b1c63c013ac0de76344eb20175ea7386865676b528d40d436e5","typeString":"literal_string \"tokenId is 0\""},"value":"tokenId is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ad500dbd4487b1c63c013ac0de76344eb20175ea7386865676b528d40d436e5","typeString":"literal_string \"tokenId is 0\""}],"id":14366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1832:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1832:38:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14372,"nodeType":"ExpressionStatement","src":"1832:38:66"},{"expression":{"arguments":[{"id":14377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1888:28:66","subExpression":{"baseExpression":{"id":14374,"name":"isTokenIdMigrated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14272,"src":"1889:17:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":14376,"indexExpression":{"id":14375,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"1907:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1889:27:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f6b656e496420616c7265616479206d69677261746564","id":14378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1918:26:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9da604f82bcb22669c6195901e63950a43c78df0f25a04813c8c9fcfef45ea7","typeString":"literal_string \"tokenId already migrated\""},"value":"tokenId already migrated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b9da604f82bcb22669c6195901e63950a43c78df0f25a04813c8c9fcfef45ea7","typeString":"literal_string \"tokenId already migrated\""}],"id":14373,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1880:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1880:65:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14380,"nodeType":"ExpressionStatement","src":"1880:65:66"},{"expression":{"arguments":[{"id":14385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1963:26:66","subExpression":{"baseExpression":{"id":14382,"name":"isTokenIdBanned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"1964:15:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":14384,"indexExpression":{"id":14383,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"1980:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1964:25:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f6b656e49642062616e6e6564","id":14386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1991:16:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b4e44c43bf7cabe9a53bdce425e2967ad555f312648787980d6ef56aee90c72","typeString":"literal_string \"tokenId banned\""},"value":"tokenId banned"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5b4e44c43bf7cabe9a53bdce425e2967ad555f312648787980d6ef56aee90c72","typeString":"literal_string \"tokenId banned\""}],"id":14381,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1955:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1955:53:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14388,"nodeType":"ExpressionStatement","src":"1955:53:66"},{"expression":{"arguments":[{"id":14393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2026:22:66","subExpression":{"baseExpression":{"id":14390,"name":"isAddressBanned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"2027:15:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14392,"indexExpression":{"id":14391,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14337,"src":"2043:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2027:21:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f776e65722062616e6e6564","id":14394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2050:14:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_fbc7f0f9b7bd3999b59e1c472f8b3d1d1db7f92db7ce5e3943a968610278b1a3","typeString":"literal_string \"owner banned\""},"value":"owner banned"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fbc7f0f9b7bd3999b59e1c472f8b3d1d1db7f92db7ce5e3943a968610278b1a3","typeString":"literal_string \"owner banned\""}],"id":14389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2018:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2018:47:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14396,"nodeType":"ExpressionStatement","src":"2018:47:66"},{"assignments":[14398],"declarations":[{"constant":false,"id":14398,"mutability":"mutable","name":"_isLockvalid","nameLocation":"2081:12:66","nodeType":"VariableDeclaration","scope":14479,"src":"2076:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14397,"name":"bool","nodeType":"ElementaryTypeName","src":"2076:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":14408,"initialValue":{"arguments":[{"id":14400,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14331,"src":"2121:6:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14401,"name":"_endDate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14333,"src":"2141:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14402,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14337,"src":"2163:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14403,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"2181:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14404,"name":"_mahaReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"2203:11:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14405,"name":"_scallopReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"2228:14:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14406,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14344,"src":"2256:5:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":14399,"name":"isLockValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14618,"src":"2096:11:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bool_$","typeString":"function (uint256,uint256,address,uint256,uint256,uint256,bytes32[] memory) view returns (bool)"}},"id":14407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2096:175:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2076:195:66"},{"expression":{"arguments":[{"id":14410,"name":"_isLockvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14398,"src":"2289:12:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d69677261746f723a20696e76616c6964206c6f636b","id":14411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2303:24:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae7bbbbc5f6f69f67fb114a889034c070c74c70115d6fbf37764faeac856e894","typeString":"literal_string \"Migrator: invalid lock\""},"value":"Migrator: invalid lock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae7bbbbc5f6f69f67fb114a889034c070c74c70115d6fbf37764faeac856e894","typeString":"literal_string \"Migrator: invalid lock\""}],"id":14409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2281:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2281:47:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14413,"nodeType":"ExpressionStatement","src":"2281:47:66"},{"assignments":[14415],"declarations":[{"constant":false,"id":14415,"mutability":"mutable","name":"_lockDuration","nameLocation":"2347:13:66","nodeType":"VariableDeclaration","scope":14479,"src":"2339:21:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14414,"name":"uint256","nodeType":"ElementaryTypeName","src":"2339:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14420,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14416,"name":"_endDate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14333,"src":"2363:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14417,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2374:5:66","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"2374:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2363:26:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2339:50:66"},{"assignments":[14422],"declarations":[{"constant":false,"id":14422,"mutability":"mutable","name":"newTokenId","nameLocation":"2407:10:66","nodeType":"VariableDeclaration","scope":14479,"src":"2399:18:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14421,"name":"uint256","nodeType":"ElementaryTypeName","src":"2399:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14429,"initialValue":{"arguments":[{"id":14425,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14331,"src":"2461:6:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14426,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14415,"src":"2481:13:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14427,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14337,"src":"2508:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14423,"name":"mahaxLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14265,"src":"2420:11:66","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":14424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"migrateTokenFor","nodeType":"MemberAccess","referencedDeclaration":34858,"src":"2420:27:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,uint256,address) external returns (uint256)"}},"id":14428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2420:102:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2399:123:66"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14431,"name":"newTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14422,"src":"2540:10:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2540:14:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d69677261746f723a206d6967726174696f6e206661696c6564","id":14434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2556:28:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_01f7b8020b2d6e8edde64630cb6f659ee201c57df8b430dc6cd9de85cd19a231","typeString":"literal_string \"Migrator: migration failed\""},"value":"Migrator: migration failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01f7b8020b2d6e8edde64630cb6f659ee201c57df8b430dc6cd9de85cd19a231","typeString":"literal_string \"Migrator: migration failed\""}],"id":14430,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2532:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2532:53:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14436,"nodeType":"ExpressionStatement","src":"2532:53:66"},{"expression":{"id":14441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14437,"name":"isTokenIdMigrated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14272,"src":"2596:17:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":14439,"indexExpression":{"id":14438,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"2614:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2596:27:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":14440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2626:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2596:34:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14442,"nodeType":"ExpressionStatement","src":"2596:34:66"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14443,"name":"_mahaReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"2645:11:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2659:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2645:15:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14453,"nodeType":"IfStatement","src":"2641:53:66","trueBody":{"expression":{"arguments":[{"id":14449,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14337,"src":"2676:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14450,"name":"_mahaReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"2682:11:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14446,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14259,"src":"2662:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"2662:13:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":14451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2662:32:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14452,"nodeType":"ExpressionStatement","src":"2662:32:66"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14454,"name":"_scallopReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"2708:14:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2725:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2708:18:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14464,"nodeType":"IfStatement","src":"2704:62:66","trueBody":{"expression":{"arguments":[{"id":14460,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14337,"src":"2745:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14461,"name":"_scallopReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"2751:14:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14457,"name":"scallop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14262,"src":"2728:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"2728:16:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":14462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2728:38:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14463,"nodeType":"ExpressionStatement","src":"2728:38:66"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14465,"name":"migrationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"2780:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2798:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2780:19:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14476,"nodeType":"IfStatement","src":"2776:67:66","trueBody":{"expression":{"arguments":[{"expression":{"id":14471,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2815:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2815:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14473,"name":"migrationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"2827:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14468,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14259,"src":"2801:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"2801:13:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":14474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2801:42:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14475,"nodeType":"ExpressionStatement","src":"2801:42:66"}},{"expression":{"id":14477,"name":"newTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14422,"src":"2861:10:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14352,"id":14478,"nodeType":"Return","src":"2854:17:66"}]},"id":14480,"implemented":true,"kind":"function","modifiers":[{"id":14347,"kind":"modifierInvocation","modifierName":{"id":14346,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"1698:12:66"},"nodeType":"ModifierInvocation","src":"1698:12:66"},{"id":14349,"kind":"modifierInvocation","modifierName":{"id":14348,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":4949,"src":"1711:13:66"},"nodeType":"ModifierInvocation","src":"1711:13:66"}],"name":"_migrateLock","nameLocation":"1479:12:66","nodeType":"FunctionDefinition","parameters":{"id":14345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14331,"mutability":"mutable","name":"_value","nameLocation":"1509:6:66","nodeType":"VariableDeclaration","scope":14480,"src":"1501:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14330,"name":"uint256","nodeType":"ElementaryTypeName","src":"1501:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14333,"mutability":"mutable","name":"_endDate","nameLocation":"1533:8:66","nodeType":"VariableDeclaration","scope":14480,"src":"1525:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14332,"name":"uint256","nodeType":"ElementaryTypeName","src":"1525:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14335,"mutability":"mutable","name":"_tokenId","nameLocation":"1559:8:66","nodeType":"VariableDeclaration","scope":14480,"src":"1551:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14334,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14337,"mutability":"mutable","name":"_who","nameLocation":"1585:4:66","nodeType":"VariableDeclaration","scope":14480,"src":"1577:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14336,"name":"address","nodeType":"ElementaryTypeName","src":"1577:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14339,"mutability":"mutable","name":"_mahaReward","nameLocation":"1607:11:66","nodeType":"VariableDeclaration","scope":14480,"src":"1599:19:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14338,"name":"uint256","nodeType":"ElementaryTypeName","src":"1599:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14341,"mutability":"mutable","name":"_scallopReward","nameLocation":"1636:14:66","nodeType":"VariableDeclaration","scope":14480,"src":"1628:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14340,"name":"uint256","nodeType":"ElementaryTypeName","src":"1628:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14344,"mutability":"mutable","name":"proof","nameLocation":"1677:5:66","nodeType":"VariableDeclaration","scope":14480,"src":"1660:22:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1660:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14343,"nodeType":"ArrayTypeName","src":"1660:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1491:197:66"},"returnParameters":{"id":14352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14480,"src":"1734:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14350,"name":"uint256","nodeType":"ElementaryTypeName","src":"1734:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1733:9:66"},"scope":14702,"src":"1470:1408:66","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34676],"body":{"id":14511,"nodeType":"Block","src":"3139:245:66","statements":[{"expression":{"arguments":[{"id":14502,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14482,"src":"3198:6:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14503,"name":"_endDate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14484,"src":"3222:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14504,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14486,"src":"3248:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14505,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14488,"src":"3274:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14506,"name":"_mahaReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14490,"src":"3296:11:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14507,"name":"_scallopReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14492,"src":"3325:14:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14508,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14495,"src":"3357:6:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":14501,"name":"_migrateLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14480,"src":"3168:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,address,uint256,uint256,bytes32[] memory) returns (uint256)"}},"id":14509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:209:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14500,"id":14510,"nodeType":"Return","src":"3149:228:66"}]},"functionSelector":"7302d43c","id":14512,"implemented":true,"kind":"function","modifiers":[],"name":"migrateLock","nameLocation":"2893:11:66","nodeType":"FunctionDefinition","overrides":{"id":14497,"nodeType":"OverrideSpecifier","overrides":[],"src":"3112:8:66"},"parameters":{"id":14496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14482,"mutability":"mutable","name":"_value","nameLocation":"2922:6:66","nodeType":"VariableDeclaration","scope":14512,"src":"2914:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14481,"name":"uint256","nodeType":"ElementaryTypeName","src":"2914:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14484,"mutability":"mutable","name":"_endDate","nameLocation":"2946:8:66","nodeType":"VariableDeclaration","scope":14512,"src":"2938:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14483,"name":"uint256","nodeType":"ElementaryTypeName","src":"2938:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14486,"mutability":"mutable","name":"_tokenId","nameLocation":"2972:8:66","nodeType":"VariableDeclaration","scope":14512,"src":"2964:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14485,"name":"uint256","nodeType":"ElementaryTypeName","src":"2964:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14488,"mutability":"mutable","name":"_who","nameLocation":"2998:4:66","nodeType":"VariableDeclaration","scope":14512,"src":"2990:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14487,"name":"address","nodeType":"ElementaryTypeName","src":"2990:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14490,"mutability":"mutable","name":"_mahaReward","nameLocation":"3020:11:66","nodeType":"VariableDeclaration","scope":14512,"src":"3012:19:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14489,"name":"uint256","nodeType":"ElementaryTypeName","src":"3012:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14492,"mutability":"mutable","name":"_scallopReward","nameLocation":"3049:14:66","nodeType":"VariableDeclaration","scope":14512,"src":"3041:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14491,"name":"uint256","nodeType":"ElementaryTypeName","src":"3041:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14495,"mutability":"mutable","name":"_proof","nameLocation":"3090:6:66","nodeType":"VariableDeclaration","scope":14512,"src":"3073:23:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3073:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14494,"nodeType":"ArrayTypeName","src":"3073:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"2904:198:66"},"returnParameters":{"id":14500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14512,"src":"3130:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14498,"name":"uint256","nodeType":"ElementaryTypeName","src":"3130:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3129:9:66"},"scope":14702,"src":"2884:500:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14574,"nodeType":"Block","src":"3674:354:66","statements":[{"body":{"id":14572,"nodeType":"Block","src":"3740:282:66","statements":[{"expression":{"arguments":[{"baseExpression":{"id":14549,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14515,"src":"3784:6:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14551,"indexExpression":{"id":14550,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3791:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3784:13:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":14552,"name":"_endDate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14518,"src":"3815:8:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14554,"indexExpression":{"id":14553,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3824:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3815:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":14555,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14521,"src":"3848:8:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14557,"indexExpression":{"id":14556,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3857:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3848:15:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":14558,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14524,"src":"3881:4:66","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14560,"indexExpression":{"id":14559,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3886:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3881:11:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":14561,"name":"_mahaReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14527,"src":"3910:11:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14563,"indexExpression":{"id":14562,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3922:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3910:18:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":14564,"name":"_scallopReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14530,"src":"3946:14:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14566,"indexExpression":{"id":14565,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3961:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3946:21:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":14567,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14534,"src":"3985:5:66","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":14569,"indexExpression":{"id":14568,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3991:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3985:12:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":14548,"name":"_migrateLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14480,"src":"3754:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,address,uint256,uint256,bytes32[] memory) returns (uint256)"}},"id":14570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3754:257:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14571,"nodeType":"ExpressionStatement","src":"3754:257:66"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14541,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3708:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14542,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14515,"src":"3716:6:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3716:13:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3708:21:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14573,"initializationExpression":{"assignments":[14538],"declarations":[{"constant":false,"id":14538,"mutability":"mutable","name":"index","nameLocation":"3697:5:66","nodeType":"VariableDeclaration","scope":14573,"src":"3689:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14537,"name":"uint256","nodeType":"ElementaryTypeName","src":"3689:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14540,"initialValue":{"hexValue":"30","id":14539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3705:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3689:17:66"},"loopExpression":{"expression":{"id":14546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3731:7:66","subExpression":{"id":14545,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14538,"src":"3731:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14547,"nodeType":"ExpressionStatement","src":"3731:7:66"},"nodeType":"ForStatement","src":"3684:338:66"}]},"functionSelector":"56946bbd","id":14575,"implemented":true,"kind":"function","modifiers":[],"name":"migrateLocks","nameLocation":"3399:12:66","nodeType":"FunctionDefinition","parameters":{"id":14535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14515,"mutability":"mutable","name":"_value","nameLocation":"3438:6:66","nodeType":"VariableDeclaration","scope":14575,"src":"3421:23:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14513,"name":"uint256","nodeType":"ElementaryTypeName","src":"3421:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14514,"nodeType":"ArrayTypeName","src":"3421:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14518,"mutability":"mutable","name":"_endDate","nameLocation":"3471:8:66","nodeType":"VariableDeclaration","scope":14575,"src":"3454:25:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14516,"name":"uint256","nodeType":"ElementaryTypeName","src":"3454:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14517,"nodeType":"ArrayTypeName","src":"3454:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14521,"mutability":"mutable","name":"_tokenId","nameLocation":"3506:8:66","nodeType":"VariableDeclaration","scope":14575,"src":"3489:25:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14519,"name":"uint256","nodeType":"ElementaryTypeName","src":"3489:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14520,"nodeType":"ArrayTypeName","src":"3489:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14524,"mutability":"mutable","name":"_who","nameLocation":"3541:4:66","nodeType":"VariableDeclaration","scope":14575,"src":"3524:21:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14522,"name":"address","nodeType":"ElementaryTypeName","src":"3524:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14523,"nodeType":"ArrayTypeName","src":"3524:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14527,"mutability":"mutable","name":"_mahaReward","nameLocation":"3572:11:66","nodeType":"VariableDeclaration","scope":14575,"src":"3555:28:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14525,"name":"uint256","nodeType":"ElementaryTypeName","src":"3555:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14526,"nodeType":"ArrayTypeName","src":"3555:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14530,"mutability":"mutable","name":"_scallopReward","nameLocation":"3610:14:66","nodeType":"VariableDeclaration","scope":14575,"src":"3593:31:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14528,"name":"uint256","nodeType":"ElementaryTypeName","src":"3593:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14529,"nodeType":"ArrayTypeName","src":"3593:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14534,"mutability":"mutable","name":"proof","nameLocation":"3653:5:66","nodeType":"VariableDeclaration","scope":14575,"src":"3634:24:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":14531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3634:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14532,"nodeType":"ArrayTypeName","src":"3634:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":14533,"nodeType":"ArrayTypeName","src":"3634:11:66","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"3411:253:66"},"returnParameters":{"id":14536,"nodeType":"ParameterList","parameters":[],"src":"3674:0:66"},"scope":14702,"src":"3390:638:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34696],"body":{"id":14617,"nodeType":"Block","src":"4290:310:66","statements":[{"assignments":[14597],"declarations":[{"constant":false,"id":14597,"mutability":"mutable","name":"leaf","nameLocation":"4308:4:66","nodeType":"VariableDeclaration","scope":14617,"src":"4300:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4300:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14609,"initialValue":{"arguments":[{"arguments":[{"id":14601,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14577,"src":"4366:6:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14602,"name":"_endDate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14579,"src":"4390:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14603,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14581,"src":"4416:6:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14604,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14583,"src":"4440:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14605,"name":"_mahaReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14585,"src":"4466:11:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14606,"name":"_scallopReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14587,"src":"4495:14:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4338:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4338:10:66","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4338:185:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14598,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4315:9:66","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4315:218:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4300:233:66"},{"expression":{"arguments":[{"id":14612,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14590,"src":"4569:5:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14613,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14251,"src":"4576:10:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14614,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14597,"src":"4588:4:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14610,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9659,"src":"4550:11:66","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$9659_$","typeString":"type(library MerkleProof)"}},"id":14611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":9181,"src":"4550:18:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":14615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4550:43:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14595,"id":14616,"nodeType":"Return","src":"4543:50:66"}]},"functionSelector":"e01a8b9f","id":14618,"implemented":true,"kind":"function","modifiers":[],"name":"isLockValid","nameLocation":"4043:11:66","nodeType":"FunctionDefinition","overrides":{"id":14592,"nodeType":"OverrideSpecifier","overrides":[],"src":"4266:8:66"},"parameters":{"id":14591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14577,"mutability":"mutable","name":"_value","nameLocation":"4072:6:66","nodeType":"VariableDeclaration","scope":14618,"src":"4064:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14576,"name":"uint256","nodeType":"ElementaryTypeName","src":"4064:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14579,"mutability":"mutable","name":"_endDate","nameLocation":"4096:8:66","nodeType":"VariableDeclaration","scope":14618,"src":"4088:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14578,"name":"uint256","nodeType":"ElementaryTypeName","src":"4088:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14581,"mutability":"mutable","name":"_owner","nameLocation":"4122:6:66","nodeType":"VariableDeclaration","scope":14618,"src":"4114:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14580,"name":"address","nodeType":"ElementaryTypeName","src":"4114:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14583,"mutability":"mutable","name":"_tokenId","nameLocation":"4146:8:66","nodeType":"VariableDeclaration","scope":14618,"src":"4138:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14582,"name":"uint256","nodeType":"ElementaryTypeName","src":"4138:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14585,"mutability":"mutable","name":"_mahaReward","nameLocation":"4172:11:66","nodeType":"VariableDeclaration","scope":14618,"src":"4164:19:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14584,"name":"uint256","nodeType":"ElementaryTypeName","src":"4164:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14587,"mutability":"mutable","name":"_scallopReward","nameLocation":"4201:14:66","nodeType":"VariableDeclaration","scope":14618,"src":"4193:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14586,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14590,"mutability":"mutable","name":"proof","nameLocation":"4242:5:66","nodeType":"VariableDeclaration","scope":14618,"src":"4225:22:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4225:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14589,"nodeType":"ArrayTypeName","src":"4225:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4054:199:66"},"returnParameters":{"id":14595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14618,"src":"4284:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14593,"name":"bool","nodeType":"ElementaryTypeName","src":"4284:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4283:6:66"},"scope":14702,"src":"4034:566:66","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":14651,"nodeType":"Block","src":"4643:145:66","statements":[{"expression":{"arguments":[{"expression":{"id":14626,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4667:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4667:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":14632,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4702:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_LockMigrator_$14702","typeString":"contract LockMigrator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LockMigrator_$14702","typeString":"contract LockMigrator"}],"id":14631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4694:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14630,"name":"address","nodeType":"ElementaryTypeName","src":"4694:7:66","typeDescriptions":{}}},"id":14633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4694:13:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14628,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14259,"src":"4679:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"4679:14:66","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4679:29:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14623,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14259,"src":"4653:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"4653:13:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":14635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4653:56:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14636,"nodeType":"ExpressionStatement","src":"4653:56:66"},{"expression":{"arguments":[{"expression":{"id":14640,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4736:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4736:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":14646,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4774:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_LockMigrator_$14702","typeString":"contract LockMigrator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LockMigrator_$14702","typeString":"contract LockMigrator"}],"id":14645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4766:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14644,"name":"address","nodeType":"ElementaryTypeName","src":"4766:7:66","typeDescriptions":{}}},"id":14647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4766:13:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14642,"name":"scallop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14262,"src":"4748:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"4748:17:66","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4748:32:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14637,"name":"scallop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14262,"src":"4719:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":14639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"4719:16:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":14649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4719:62:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14650,"nodeType":"ExpressionStatement","src":"4719:62:66"}]},"functionSelector":"590e1ae3","id":14652,"implemented":true,"kind":"function","modifiers":[{"id":14621,"kind":"modifierInvocation","modifierName":{"id":14620,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"4633:9:66"},"nodeType":"ModifierInvocation","src":"4633:9:66"}],"name":"refund","nameLocation":"4615:6:66","nodeType":"FunctionDefinition","parameters":{"id":14619,"nodeType":"ParameterList","parameters":[],"src":"4621:2:66"},"returnParameters":{"id":14622,"nodeType":"ParameterList","parameters":[],"src":"4643:0:66"},"scope":14702,"src":"4606:182:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14668,"nodeType":"Block","src":"4846:59:66","statements":[{"expression":{"id":14666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14659,"name":"isTokenIdBanned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"4856:15:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":14661,"indexExpression":{"id":14660,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14654,"src":"4872:2:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4856:19:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4878:20:66","subExpression":{"baseExpression":{"id":14662,"name":"isTokenIdBanned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"4879:15:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":14664,"indexExpression":{"id":14663,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14654,"src":"4895:2:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4879:19:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4856:42:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14667,"nodeType":"ExpressionStatement","src":"4856:42:66"}]},"functionSelector":"2ba97dfd","id":14669,"implemented":true,"kind":"function","modifiers":[{"id":14657,"kind":"modifierInvocation","modifierName":{"id":14656,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"4836:9:66"},"nodeType":"ModifierInvocation","src":"4836:9:66"}],"name":"toggleBanID","nameLocation":"4803:11:66","nodeType":"FunctionDefinition","parameters":{"id":14655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14654,"mutability":"mutable","name":"id","nameLocation":"4823:2:66","nodeType":"VariableDeclaration","scope":14669,"src":"4815:10:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14653,"name":"uint256","nodeType":"ElementaryTypeName","src":"4815:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4814:12:66"},"returnParameters":{"id":14658,"nodeType":"ParameterList","parameters":[],"src":"4846:0:66"},"scope":14702,"src":"4794:111:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14683,"nodeType":"Block","src":"4953:64:66","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":14674,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4966,"src":"4967:6:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":14675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4967:8:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14679,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"5002:6:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5002:8:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14681,"nodeType":"ExpressionStatement","src":"5002:8:66"},"id":14682,"nodeType":"IfStatement","src":"4963:47:66","trueBody":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14676,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5021,"src":"4977:8:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4977:10:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14678,"nodeType":"ExpressionStatement","src":"4977:10:66"}}]},"functionSelector":"c4ae3168","id":14684,"implemented":true,"kind":"function","modifiers":[{"id":14672,"kind":"modifierInvocation","modifierName":{"id":14671,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"4943:9:66"},"nodeType":"ModifierInvocation","src":"4943:9:66"}],"name":"togglePause","nameLocation":"4920:11:66","nodeType":"FunctionDefinition","parameters":{"id":14670,"nodeType":"ParameterList","parameters":[],"src":"4931:2:66"},"returnParameters":{"id":14673,"nodeType":"ParameterList","parameters":[],"src":"4953:0:66"},"scope":14702,"src":"4911:106:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14700,"nodeType":"Block","src":"5080:63:66","statements":[{"expression":{"id":14698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14691,"name":"isAddressBanned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"5090:15:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14693,"indexExpression":{"id":14692,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14686,"src":"5106:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5090:21:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5114:22:66","subExpression":{"baseExpression":{"id":14694,"name":"isAddressBanned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"5115:15:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14696,"indexExpression":{"id":14695,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14686,"src":"5131:4:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5115:21:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5090:46:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14699,"nodeType":"ExpressionStatement","src":"5090:46:66"}]},"functionSelector":"94cc3676","id":14701,"implemented":true,"kind":"function","modifiers":[{"id":14689,"kind":"modifierInvocation","modifierName":{"id":14688,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"5070:9:66"},"nodeType":"ModifierInvocation","src":"5070:9:66"}],"name":"toggleBanOwner","nameLocation":"5032:14:66","nodeType":"FunctionDefinition","parameters":{"id":14687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14686,"mutability":"mutable","name":"_who","nameLocation":"5055:4:66","nodeType":"VariableDeclaration","scope":14701,"src":"5047:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14685,"name":"address","nodeType":"ElementaryTypeName","src":"5047:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5046:14:66"},"returnParameters":{"id":14690,"nodeType":"ParameterList","parameters":[],"src":"5080:0:66"},"scope":14702,"src":"5023:120:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":14703,"src":"572:4573:66","usedErrors":[]}],"src":"33:5113:66"},"id":66},"contracts/MAHATimelockController.sol":{"ast":{"absolutePath":"contracts/MAHATimelockController.sol","exportedSymbols":{"AccessControl":[319],"AccessControlEnumerable":[444],"Address":[7999],"Context":[8255],"ERC165":[9837],"EnumerableSet":[13456],"IAccessControl":[517],"IAccessControlEnumerable":[542],"IERC1155Receiver":[5103],"IERC165":[9849],"IERC721Receiver":[7110],"MAHATimelockController":[15631],"Strings":[8555]},"id":15632,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14704,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"117:23:67"},{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","id":14705,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15632,"sourceUnit":445,"src":"142:68:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","id":14706,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15632,"sourceUnit":7111,"src":"211:66:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":14707,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15632,"sourceUnit":5104,"src":"278:68:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"@openzeppelin/contracts/utils/Address.sol","id":14708,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15632,"sourceUnit":8000,"src":"347:51:67","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14710,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":444,"src":"1163:23:67"},"id":14711,"nodeType":"InheritanceSpecifier","src":"1163:23:67"},{"baseName":{"id":14712,"name":"IERC721Receiver","nodeType":"IdentifierPath","referencedDeclaration":7110,"src":"1192:15:67"},"id":14713,"nodeType":"InheritanceSpecifier","src":"1192:15:67"},{"baseName":{"id":14714,"name":"IERC1155Receiver","nodeType":"IdentifierPath","referencedDeclaration":5103,"src":"1213:16:67"},"id":14715,"nodeType":"InheritanceSpecifier","src":"1213:16:67"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":14709,"nodeType":"StructuredDocumentation","src":"400:723:67","text":" @dev Contract module which acts as a timelocked controller. When set as the\n owner of an `Ownable` smart contract, it enforces a timelock on all\n `onlyOwner` maintenance operations. This gives time for users of the\n controlled contract to exit before a potentially dangerous maintenance\n operation is applied.\n By default, this contract is self administered, meaning administration tasks\n have to go through the timelock process. The proposer (resp executor) role\n is in charge of proposing (resp executing) operations. A common use case is\n to position this {TimelockController} as the owner of a smart contract, with\n a multisig or a DAO as the sole proposer.\n _Available since v3.3._"},"fullyImplemented":true,"id":15631,"linearizedBaseContracts":[15631,5103,7110,444,319,9837,9849,542,517,8255],"name":"MAHATimelockController","nameLocation":"1133:22:67","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"0d3cf6fc","id":14720,"mutability":"constant","name":"TIMELOCK_ADMIN_ROLE","nameLocation":"1260:19:67","nodeType":"VariableDeclaration","scope":15631,"src":"1236:86:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1236:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"54494d454c4f434b5f41444d494e5f524f4c45","id":14718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1300:21:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5","typeString":"literal_string \"TIMELOCK_ADMIN_ROLE\""},"value":"TIMELOCK_ADMIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5","typeString":"literal_string \"TIMELOCK_ADMIN_ROLE\""}],"id":14717,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1290:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1290:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"8f61f4f5","id":14725,"mutability":"constant","name":"PROPOSER_ROLE","nameLocation":"1352:13:67","nodeType":"VariableDeclaration","scope":15631,"src":"1328:66:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1328:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50524f504f5345525f524f4c45","id":14723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1378:15:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1","typeString":"literal_string \"PROPOSER_ROLE\""},"value":"PROPOSER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1","typeString":"literal_string \"PROPOSER_ROLE\""}],"id":14722,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1368:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1368:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"07bd0265","id":14730,"mutability":"constant","name":"EXECUTOR_ROLE","nameLocation":"1424:13:67","nodeType":"VariableDeclaration","scope":15631,"src":"1400:66:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1400:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4558454355544f525f524f4c45","id":14728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1450:15:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63","typeString":"literal_string \"EXECUTOR_ROLE\""},"value":"EXECUTOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63","typeString":"literal_string \"EXECUTOR_ROLE\""}],"id":14727,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1440:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1440:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"b08e51c0","id":14735,"mutability":"constant","name":"CANCELLER_ROLE","nameLocation":"1496:14:67","nodeType":"VariableDeclaration","scope":15631,"src":"1472:68:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1472:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"43414e43454c4c45525f524f4c45","id":14733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1523:16:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","typeString":"literal_string \"CANCELLER_ROLE\""},"value":"CANCELLER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","typeString":"literal_string \"CANCELLER_ROLE\""}],"id":14732,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1513:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1513:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":14741,"mutability":"constant","name":"_DONE_TIMESTAMP","nameLocation":"1572:15:67","nodeType":"VariableDeclaration","scope":15631,"src":"1546:54:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14736,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"31","id":14739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1598:1:67","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":14738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1590:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14737,"name":"uint256","nodeType":"ElementaryTypeName","src":"1590:7:67","typeDescriptions":{}}},"id":14740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14745,"mutability":"mutable","name":"_timestamps","nameLocation":"1643:11:67","nodeType":"VariableDeclaration","scope":15631,"src":"1607:47:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":14744,"keyType":{"id":14742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1615:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1607:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":14743,"name":"uint256","nodeType":"ElementaryTypeName","src":"1626:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":14747,"mutability":"mutable","name":"_minDelay","nameLocation":"1676:9:67","nodeType":"VariableDeclaration","scope":15631,"src":"1660:25:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14746,"name":"uint256","nodeType":"ElementaryTypeName","src":"1660:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":14748,"nodeType":"StructuredDocumentation","src":"1692:83:67","text":" @dev Emitted when a call is scheduled as part of operation `id`."},"id":14764,"name":"CallScheduled","nameLocation":"1786:13:67","nodeType":"EventDefinition","parameters":{"id":14763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14750,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1825:2:67","nodeType":"VariableDeclaration","scope":14764,"src":"1809:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1809:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14752,"indexed":true,"mutability":"mutable","name":"index","nameLocation":"1853:5:67","nodeType":"VariableDeclaration","scope":14764,"src":"1837:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14751,"name":"uint256","nodeType":"ElementaryTypeName","src":"1837:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14754,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"1876:6:67","nodeType":"VariableDeclaration","scope":14764,"src":"1868:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14753,"name":"address","nodeType":"ElementaryTypeName","src":"1868:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14756,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1900:5:67","nodeType":"VariableDeclaration","scope":14764,"src":"1892:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14755,"name":"uint256","nodeType":"ElementaryTypeName","src":"1892:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14758,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1921:4:67","nodeType":"VariableDeclaration","scope":14764,"src":"1915:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14757,"name":"bytes","nodeType":"ElementaryTypeName","src":"1915:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14760,"indexed":false,"mutability":"mutable","name":"predecessor","nameLocation":"1943:11:67","nodeType":"VariableDeclaration","scope":14764,"src":"1935:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1935:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14762,"indexed":false,"mutability":"mutable","name":"delay","nameLocation":"1972:5:67","nodeType":"VariableDeclaration","scope":14764,"src":"1964:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14761,"name":"uint256","nodeType":"ElementaryTypeName","src":"1964:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1799:184:67"},"src":"1780:204:67"},{"anonymous":false,"documentation":{"id":14765,"nodeType":"StructuredDocumentation","src":"1990:83:67","text":" @dev Emitted when a call is performed as part of operation `id`."},"id":14777,"name":"CallExecuted","nameLocation":"2084:12:67","nodeType":"EventDefinition","parameters":{"id":14776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14767,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"2122:2:67","nodeType":"VariableDeclaration","scope":14777,"src":"2106:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2106:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14769,"indexed":true,"mutability":"mutable","name":"index","nameLocation":"2150:5:67","nodeType":"VariableDeclaration","scope":14777,"src":"2134:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14768,"name":"uint256","nodeType":"ElementaryTypeName","src":"2134:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14771,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"2173:6:67","nodeType":"VariableDeclaration","scope":14777,"src":"2165:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14770,"name":"address","nodeType":"ElementaryTypeName","src":"2165:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14773,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2197:5:67","nodeType":"VariableDeclaration","scope":14777,"src":"2189:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14772,"name":"uint256","nodeType":"ElementaryTypeName","src":"2189:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14775,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2218:4:67","nodeType":"VariableDeclaration","scope":14777,"src":"2212:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14774,"name":"bytes","nodeType":"ElementaryTypeName","src":"2212:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2096:132:67"},"src":"2078:151:67"},{"anonymous":false,"documentation":{"id":14778,"nodeType":"StructuredDocumentation","src":"2235:65:67","text":" @dev Emitted when operation `id` is cancelled."},"id":14782,"name":"Cancelled","nameLocation":"2311:9:67","nodeType":"EventDefinition","parameters":{"id":14781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14780,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"2337:2:67","nodeType":"VariableDeclaration","scope":14782,"src":"2321:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2321:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2320:20:67"},"src":"2305:36:67"},{"anonymous":false,"documentation":{"id":14783,"nodeType":"StructuredDocumentation","src":"2347:89:67","text":" @dev Emitted when the minimum delay for future operations is modified."},"id":14789,"name":"MinDelayChange","nameLocation":"2447:14:67","nodeType":"EventDefinition","parameters":{"id":14788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14785,"indexed":false,"mutability":"mutable","name":"oldDuration","nameLocation":"2470:11:67","nodeType":"VariableDeclaration","scope":14789,"src":"2462:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14784,"name":"uint256","nodeType":"ElementaryTypeName","src":"2462:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14787,"indexed":false,"mutability":"mutable","name":"newDuration","nameLocation":"2491:11:67","nodeType":"VariableDeclaration","scope":14789,"src":"2483:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14786,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2461:42:67"},"src":"2441:63:67"},{"body":{"id":14915,"nodeType":"Block","src":"3320:995:67","statements":[{"expression":{"arguments":[{"id":14807,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"3344:19:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14808,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"3365:19:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14806,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3330:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":14809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3330:55:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14810,"nodeType":"ExpressionStatement","src":"3330:55:67"},{"expression":{"arguments":[{"id":14812,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14725,"src":"3409:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14813,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"3424:19:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14811,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3395:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":14814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3395:49:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14815,"nodeType":"ExpressionStatement","src":"3395:49:67"},{"expression":{"arguments":[{"id":14817,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"3468:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14818,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"3483:19:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14816,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3454:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":14819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3454:49:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14820,"nodeType":"ExpressionStatement","src":"3454:49:67"},{"expression":{"arguments":[{"id":14822,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14735,"src":"3527:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14823,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"3543:19:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14821,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":255,"src":"3513:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":14824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3513:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14825,"nodeType":"ExpressionStatement","src":"3513:50:67"},{"expression":{"arguments":[{"id":14827,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"3627:19:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14828,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14794,"src":"3648:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14826,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3616:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3616:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14830,"nodeType":"ExpressionStatement","src":"3616:38:67"},{"expression":{"arguments":[{"id":14832,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"3675:19:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":14835,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3704:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_MAHATimelockController_$15631","typeString":"contract MAHATimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MAHATimelockController_$15631","typeString":"contract MAHATimelockController"}],"id":14834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3696:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14833,"name":"address","nodeType":"ElementaryTypeName","src":"3696:7:67","typeDescriptions":{}}},"id":14836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3696:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14831,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3664:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3664:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14838,"nodeType":"ExpressionStatement","src":"3664:46:67"},{"body":{"id":14864,"nodeType":"Block","src":"3813:118:67","statements":[{"expression":{"arguments":[{"id":14851,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14725,"src":"3838:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":14852,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"3853:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14854,"indexExpression":{"id":14853,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14840,"src":"3863:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3853:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14850,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3827:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3827:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14856,"nodeType":"ExpressionStatement","src":"3827:39:67"},{"expression":{"arguments":[{"id":14858,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14735,"src":"3891:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":14859,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"3907:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14861,"indexExpression":{"id":14860,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14840,"src":"3917:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3907:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14857,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"3880:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3880:40:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14863,"nodeType":"ExpressionStatement","src":"3880:40:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14843,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14840,"src":"3786:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14844,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"3790:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3790:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3786:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14865,"initializationExpression":{"assignments":[14840],"declarations":[{"constant":false,"id":14840,"mutability":"mutable","name":"i","nameLocation":"3779:1:67","nodeType":"VariableDeclaration","scope":14865,"src":"3771:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14839,"name":"uint256","nodeType":"ElementaryTypeName","src":"3771:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14842,"initialValue":{"hexValue":"30","id":14841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3783:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3771:13:67"},"loopExpression":{"expression":{"id":14848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3808:3:67","subExpression":{"id":14847,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14840,"src":"3810:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14849,"nodeType":"ExpressionStatement","src":"3808:3:67"},"nodeType":"ForStatement","src":"3766:165:67"},{"body":{"id":14884,"nodeType":"Block","src":"4019:66:67","statements":[{"expression":{"arguments":[{"id":14878,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14735,"src":"4044:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":14879,"name":"cancellors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"4060:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14881,"indexExpression":{"id":14880,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14867,"src":"4071:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4060:13:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14877,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"4033:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4033:41:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14883,"nodeType":"ExpressionStatement","src":"4033:41:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14867,"src":"3991:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14871,"name":"cancellors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"3995:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3995:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3991:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14885,"initializationExpression":{"assignments":[14867],"declarations":[{"constant":false,"id":14867,"mutability":"mutable","name":"i","nameLocation":"3984:1:67","nodeType":"VariableDeclaration","scope":14885,"src":"3976:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14866,"name":"uint256","nodeType":"ElementaryTypeName","src":"3976:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14869,"initialValue":{"hexValue":"30","id":14868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3988:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3976:13:67"},"loopExpression":{"expression":{"id":14875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4014:3:67","subExpression":{"id":14874,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14867,"src":"4016:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14876,"nodeType":"ExpressionStatement","src":"4014:3:67"},"nodeType":"ForStatement","src":"3971:114:67"},{"body":{"id":14904,"nodeType":"Block","src":"4172:64:67","statements":[{"expression":{"arguments":[{"id":14898,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"4197:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":14899,"name":"executors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"4212:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14901,"indexExpression":{"id":14900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14887,"src":"4222:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4212:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14897,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"4186:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4186:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14903,"nodeType":"ExpressionStatement","src":"4186:39:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14890,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14887,"src":"4145:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14891,"name":"executors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"4149:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4149:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4145:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14905,"initializationExpression":{"assignments":[14887],"declarations":[{"constant":false,"id":14887,"mutability":"mutable","name":"i","nameLocation":"4138:1:67","nodeType":"VariableDeclaration","scope":14905,"src":"4130:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14886,"name":"uint256","nodeType":"ElementaryTypeName","src":"4130:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14889,"initialValue":{"hexValue":"30","id":14888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4142:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4130:13:67"},"loopExpression":{"expression":{"id":14895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4167:3:67","subExpression":{"id":14894,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14887,"src":"4169:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14896,"nodeType":"ExpressionStatement","src":"4167:3:67"},"nodeType":"ForStatement","src":"4125:111:67"},{"expression":{"id":14908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14906,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14747,"src":"4246:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14907,"name":"minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"4258:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4246:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14909,"nodeType":"ExpressionStatement","src":"4246:20:67"},{"eventCall":{"arguments":[{"hexValue":"30","id":14911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4296:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":14912,"name":"minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"4299:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14910,"name":"MinDelayChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14789,"src":"4281:14:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":14913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4281:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14914,"nodeType":"EmitStatement","src":"4276:32:67"}]},"documentation":{"id":14790,"nodeType":"StructuredDocumentation","src":"2510:629:67","text":" @dev Initializes the contract with a given `minDelay`, and a list of\n initial proposers and executors. The proposers receive both the\n proposer and the canceller role (for backward compatibility). The\n executors receive the executor role.\n NOTE: At construction, both the deployer and the timelock itself are\n administrators. This helps further configuration of the timelock by the\n deployer. After configuration is done, it is recommended that the\n deployer renounces its admin position and relies on timelocked\n operations to perform future maintenance."},"id":14916,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14792,"mutability":"mutable","name":"minDelay","nameLocation":"3173:8:67","nodeType":"VariableDeclaration","scope":14916,"src":"3165:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14794,"mutability":"mutable","name":"admin","nameLocation":"3199:5:67","nodeType":"VariableDeclaration","scope":14916,"src":"3191:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14793,"name":"address","nodeType":"ElementaryTypeName","src":"3191:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14797,"mutability":"mutable","name":"proposers","nameLocation":"3231:9:67","nodeType":"VariableDeclaration","scope":14916,"src":"3214:26:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14795,"name":"address","nodeType":"ElementaryTypeName","src":"3214:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14796,"nodeType":"ArrayTypeName","src":"3214:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14800,"mutability":"mutable","name":"cancellors","nameLocation":"3267:10:67","nodeType":"VariableDeclaration","scope":14916,"src":"3250:27:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14798,"name":"address","nodeType":"ElementaryTypeName","src":"3250:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14799,"nodeType":"ArrayTypeName","src":"3250:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14803,"mutability":"mutable","name":"executors","nameLocation":"3304:9:67","nodeType":"VariableDeclaration","scope":14916,"src":"3287:26:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14801,"name":"address","nodeType":"ElementaryTypeName","src":"3287:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14802,"nodeType":"ArrayTypeName","src":"3287:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3155:164:67"},"returnParameters":{"id":14805,"nodeType":"ParameterList","parameters":[],"src":"3320:0:67"},"scope":15631,"src":"3144:1171:67","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14938,"nodeType":"Block","src":"4639:114:67","statements":[{"condition":{"id":14928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4653:26:67","subExpression":{"arguments":[{"id":14922,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14919,"src":"4662:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":14925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4676:1:67","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":14924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4668:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14923,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:67","typeDescriptions":{}}},"id":14926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4668:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14921,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"4654:7:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":14927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4654:25:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14936,"nodeType":"IfStatement","src":"4649:87:67","trueBody":{"id":14935,"nodeType":"Block","src":"4681:55:67","statements":[{"expression":{"arguments":[{"id":14930,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14919,"src":"4706:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":14931,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"4712:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4712:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14929,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,135],"referencedDeclaration":135,"src":"4695:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":14933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4695:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14934,"nodeType":"ExpressionStatement","src":"4695:30:67"}]}},{"id":14937,"nodeType":"PlaceholderStatement","src":"4745:1:67"}]},"documentation":{"id":14917,"nodeType":"StructuredDocumentation","src":"4321:271:67","text":" @dev Modifier to make a function callable only by a certain role. In\n addition to checking the sender's role, `address(0)` 's role is also\n considered. Granting a role to `address(0)` is equivalent to enabling\n this role for everyone."},"id":14939,"name":"onlyRoleOrOpenRole","nameLocation":"4606:18:67","nodeType":"ModifierDefinition","parameters":{"id":14920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14919,"mutability":"mutable","name":"role","nameLocation":"4633:4:67","nodeType":"VariableDeclaration","scope":14939,"src":"4625:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14918,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4625:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4624:14:67"},"src":"4597:156:67","virtual":false,"visibility":"internal"},{"body":{"id":14943,"nodeType":"Block","src":"4882:2:67","statements":[]},"documentation":{"id":14940,"nodeType":"StructuredDocumentation","src":"4759:91:67","text":" @dev Contract might receive/hold ETH as part of the maintenance process."},"id":14944,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14941,"nodeType":"ParameterList","parameters":[],"src":"4862:2:67"},"returnParameters":{"id":14942,"nodeType":"ParameterList","parameters":[],"src":"4882:0:67"},"scope":15631,"src":"4855:29:67","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[360,9848],"body":{"id":14967,"nodeType":"Block","src":"5120:137:67","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14955,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14947,"src":"5149:11:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14957,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"5169:16:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$5103_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$5103_$","typeString":"type(contract IERC1155Receiver)"}],"id":14956,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5164:4:67","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5164:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$5103","typeString":"type(contract IERC1155Receiver)"}},"id":14959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"5164:34:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5149:49:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14963,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14947,"src":"5238:11:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14961,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5214:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHATimelockController_$15631_$","typeString":"type(contract super MAHATimelockController)"}},"id":14962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":360,"src":"5214:23:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5214:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5149:101:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14954,"id":14966,"nodeType":"Return","src":"5130:120:67"}]},"documentation":{"id":14945,"nodeType":"StructuredDocumentation","src":"4890:56:67","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":14968,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4960:17:67","nodeType":"FunctionDefinition","overrides":{"id":14951,"nodeType":"OverrideSpecifier","overrides":[{"id":14949,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"5059:7:67"},{"id":14950,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":444,"src":"5068:23:67"}],"src":"5050:42:67"},"parameters":{"id":14948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14947,"mutability":"mutable","name":"interfaceId","nameLocation":"4985:11:67","nodeType":"VariableDeclaration","scope":14968,"src":"4978:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14946,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4978:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4977:20:67"},"returnParameters":{"id":14954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14968,"src":"5110:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14952,"name":"bool","nodeType":"ElementaryTypeName","src":"5110:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5109:6:67"},"scope":15631,"src":"4951:306:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14982,"nodeType":"Block","src":"5528:44:67","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14977,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14971,"src":"5558:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14976,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15050,"src":"5545:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":14978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5545:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5564:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5545:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14975,"id":14981,"nodeType":"Return","src":"5538:27:67"}]},"documentation":{"id":14969,"nodeType":"StructuredDocumentation","src":"5263:145:67","text":" @dev Returns whether an id correspond to a registered operation. This\n includes both Pending, Ready and Done operations."},"functionSelector":"31d50750","id":14983,"implemented":true,"kind":"function","modifiers":[],"name":"isOperation","nameLocation":"5422:11:67","nodeType":"FunctionDefinition","parameters":{"id":14972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14971,"mutability":"mutable","name":"id","nameLocation":"5442:2:67","nodeType":"VariableDeclaration","scope":14983,"src":"5434:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5434:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5433:12:67"},"returnParameters":{"id":14975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14974,"mutability":"mutable","name":"registered","nameLocation":"5512:10:67","nodeType":"VariableDeclaration","scope":14983,"src":"5507:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14973,"name":"bool","nodeType":"ElementaryTypeName","src":"5507:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5506:17:67"},"scope":15631,"src":"5413:159:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14997,"nodeType":"Block","src":"5773:58:67","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14992,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"5803:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14991,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15050,"src":"5790:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":14993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5790:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14994,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14741,"src":"5809:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5790:34:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14990,"id":14996,"nodeType":"Return","src":"5783:41:67"}]},"documentation":{"id":14984,"nodeType":"StructuredDocumentation","src":"5578:71:67","text":" @dev Returns whether an operation is pending or not."},"functionSelector":"584b153e","id":14998,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationPending","nameLocation":"5663:18:67","nodeType":"FunctionDefinition","parameters":{"id":14987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14986,"mutability":"mutable","name":"id","nameLocation":"5690:2:67","nodeType":"VariableDeclaration","scope":14998,"src":"5682:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5682:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5681:12:67"},"returnParameters":{"id":14990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14989,"mutability":"mutable","name":"pending","nameLocation":"5760:7:67","nodeType":"VariableDeclaration","scope":14998,"src":"5755:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14988,"name":"bool","nodeType":"ElementaryTypeName","src":"5755:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5754:14:67"},"scope":15631,"src":"5654:177:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15021,"nodeType":"Block","src":"6026:129:67","statements":[{"assignments":[15007],"declarations":[{"constant":false,"id":15007,"mutability":"mutable","name":"timestamp","nameLocation":"6044:9:67","nodeType":"VariableDeclaration","scope":15021,"src":"6036:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15006,"name":"uint256","nodeType":"ElementaryTypeName","src":"6036:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15011,"initialValue":{"arguments":[{"id":15009,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15001,"src":"6069:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15008,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15050,"src":"6056:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":15010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6056:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6036:36:67"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15012,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6089:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":15013,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14741,"src":"6101:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6089:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15015,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6120:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":15016,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6133:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6133:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6120:28:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6089:59:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15005,"id":15020,"nodeType":"Return","src":"6082:66:67"}]},"documentation":{"id":14999,"nodeType":"StructuredDocumentation","src":"5837:69:67","text":" @dev Returns whether an operation is ready or not."},"functionSelector":"13bc9f20","id":15022,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationReady","nameLocation":"5920:16:67","nodeType":"FunctionDefinition","parameters":{"id":15002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15001,"mutability":"mutable","name":"id","nameLocation":"5945:2:67","nodeType":"VariableDeclaration","scope":15022,"src":"5937:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5937:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5936:12:67"},"returnParameters":{"id":15005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15004,"mutability":"mutable","name":"ready","nameLocation":"6015:5:67","nodeType":"VariableDeclaration","scope":15022,"src":"6010:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15003,"name":"bool","nodeType":"ElementaryTypeName","src":"6010:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6009:12:67"},"scope":15631,"src":"5911:244:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15036,"nodeType":"Block","src":"6347:59:67","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15031,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15025,"src":"6377:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15030,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15050,"src":"6364:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":15032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6364:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15033,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14741,"src":"6384:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6364:35:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15029,"id":15035,"nodeType":"Return","src":"6357:42:67"}]},"documentation":{"id":15023,"nodeType":"StructuredDocumentation","src":"6161:68:67","text":" @dev Returns whether an operation is done or not."},"functionSelector":"2ab0f529","id":15037,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationDone","nameLocation":"6243:15:67","nodeType":"FunctionDefinition","parameters":{"id":15026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15025,"mutability":"mutable","name":"id","nameLocation":"6267:2:67","nodeType":"VariableDeclaration","scope":15037,"src":"6259:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6259:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6258:12:67"},"returnParameters":{"id":15029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15028,"mutability":"mutable","name":"done","nameLocation":"6337:4:67","nodeType":"VariableDeclaration","scope":15037,"src":"6332:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15027,"name":"bool","nodeType":"ElementaryTypeName","src":"6332:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6331:11:67"},"scope":15631,"src":"6234:172:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15049,"nodeType":"Block","src":"6671:39:67","statements":[{"expression":{"baseExpression":{"id":15045,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14745,"src":"6688:11:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15047,"indexExpression":{"id":15046,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15040,"src":"6700:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6688:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15044,"id":15048,"nodeType":"Return","src":"6681:22:67"}]},"documentation":{"id":15038,"nodeType":"StructuredDocumentation","src":"6412:136:67","text":" @dev Returns the timestamp at with an operation becomes ready (0 for\n unset operations, 1 for done operations)."},"functionSelector":"d45c4435","id":15050,"implemented":true,"kind":"function","modifiers":[],"name":"getTimestamp","nameLocation":"6562:12:67","nodeType":"FunctionDefinition","parameters":{"id":15041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15040,"mutability":"mutable","name":"id","nameLocation":"6583:2:67","nodeType":"VariableDeclaration","scope":15050,"src":"6575:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6575:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6574:12:67"},"returnParameters":{"id":15044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15043,"mutability":"mutable","name":"timestamp","nameLocation":"6656:9:67","nodeType":"VariableDeclaration","scope":15050,"src":"6648:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15042,"name":"uint256","nodeType":"ElementaryTypeName","src":"6648:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6647:19:67"},"scope":15631,"src":"6553:157:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15058,"nodeType":"Block","src":"6966:33:67","statements":[{"expression":{"id":15056,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14747,"src":"6983:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15055,"id":15057,"nodeType":"Return","src":"6976:16:67"}]},"documentation":{"id":15051,"nodeType":"StructuredDocumentation","src":"6716:175:67","text":" @dev Returns the minimum delay for an operation to become valid.\n This value can be changed by executing an operation that calls `updateDelay`."},"functionSelector":"f27a0c92","id":15059,"implemented":true,"kind":"function","modifiers":[],"name":"getMinDelay","nameLocation":"6905:11:67","nodeType":"FunctionDefinition","parameters":{"id":15052,"nodeType":"ParameterList","parameters":[],"src":"6916:2:67"},"returnParameters":{"id":15055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15054,"mutability":"mutable","name":"duration","nameLocation":"6956:8:67","nodeType":"VariableDeclaration","scope":15059,"src":"6948:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15053,"name":"uint256","nodeType":"ElementaryTypeName","src":"6948:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6947:18:67"},"scope":15631,"src":"6896:103:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15086,"nodeType":"Block","src":"7311:85:67","statements":[{"expression":{"arguments":[{"arguments":[{"id":15078,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15062,"src":"7349:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15079,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"7357:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15080,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15066,"src":"7364:4:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":15081,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15068,"src":"7370:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15082,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15070,"src":"7383:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15076,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7338:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7338:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7338:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15075,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7328:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7328:61:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15074,"id":15085,"nodeType":"Return","src":"7321:68:67"}]},"documentation":{"id":15060,"nodeType":"StructuredDocumentation","src":"7005:102:67","text":" @dev Returns the identifier of an operation containing a single\n transaction."},"functionSelector":"8065657f","id":15087,"implemented":true,"kind":"function","modifiers":[],"name":"hashOperation","nameLocation":"7121:13:67","nodeType":"FunctionDefinition","parameters":{"id":15071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15062,"mutability":"mutable","name":"target","nameLocation":"7152:6:67","nodeType":"VariableDeclaration","scope":15087,"src":"7144:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15061,"name":"address","nodeType":"ElementaryTypeName","src":"7144:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15064,"mutability":"mutable","name":"value","nameLocation":"7176:5:67","nodeType":"VariableDeclaration","scope":15087,"src":"7168:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15063,"name":"uint256","nodeType":"ElementaryTypeName","src":"7168:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15066,"mutability":"mutable","name":"data","nameLocation":"7206:4:67","nodeType":"VariableDeclaration","scope":15087,"src":"7191:19:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15065,"name":"bytes","nodeType":"ElementaryTypeName","src":"7191:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15068,"mutability":"mutable","name":"predecessor","nameLocation":"7228:11:67","nodeType":"VariableDeclaration","scope":15087,"src":"7220:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7220:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15070,"mutability":"mutable","name":"salt","nameLocation":"7257:4:67","nodeType":"VariableDeclaration","scope":15087,"src":"7249:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7249:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7134:133:67"},"returnParameters":{"id":15074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15073,"mutability":"mutable","name":"hash","nameLocation":"7305:4:67","nodeType":"VariableDeclaration","scope":15087,"src":"7297:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15072,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7297:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7296:14:67"},"scope":15631,"src":"7112:284:67","stateMutability":"pure","virtual":true,"visibility":"public"},{"body":{"id":15117,"nodeType":"Block","src":"7746:103:67","statements":[{"expression":{"arguments":[{"arguments":[{"id":15109,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"7796:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":15110,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15094,"src":"7805:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":15111,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"7813:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":15112,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15099,"src":"7823:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15113,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15101,"src":"7836:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15107,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7785:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7785:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7785:56:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15106,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7775:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7775:67:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15105,"id":15116,"nodeType":"Return","src":"7756:86:67"}]},"documentation":{"id":15088,"nodeType":"StructuredDocumentation","src":"7402:105:67","text":" @dev Returns the identifier of an operation containing a batch of\n transactions."},"functionSelector":"b1c5f427","id":15118,"implemented":true,"kind":"function","modifiers":[],"name":"hashOperationBatch","nameLocation":"7521:18:67","nodeType":"FunctionDefinition","parameters":{"id":15102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15091,"mutability":"mutable","name":"targets","nameLocation":"7568:7:67","nodeType":"VariableDeclaration","scope":15118,"src":"7549:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15089,"name":"address","nodeType":"ElementaryTypeName","src":"7549:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15090,"nodeType":"ArrayTypeName","src":"7549:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15094,"mutability":"mutable","name":"values","nameLocation":"7604:6:67","nodeType":"VariableDeclaration","scope":15118,"src":"7585:25:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15092,"name":"uint256","nodeType":"ElementaryTypeName","src":"7585:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15093,"nodeType":"ArrayTypeName","src":"7585:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15097,"mutability":"mutable","name":"payloads","nameLocation":"7637:8:67","nodeType":"VariableDeclaration","scope":15118,"src":"7620:25:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15095,"name":"bytes","nodeType":"ElementaryTypeName","src":"7620:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15096,"nodeType":"ArrayTypeName","src":"7620:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":15099,"mutability":"mutable","name":"predecessor","nameLocation":"7663:11:67","nodeType":"VariableDeclaration","scope":15118,"src":"7655:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7655:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15101,"mutability":"mutable","name":"salt","nameLocation":"7692:4:67","nodeType":"VariableDeclaration","scope":15118,"src":"7684:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15100,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7684:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7539:163:67"},"returnParameters":{"id":15105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15104,"mutability":"mutable","name":"hash","nameLocation":"7740:4:67","nodeType":"VariableDeclaration","scope":15118,"src":"7732:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7732:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7731:14:67"},"scope":15631,"src":"7512:337:67","stateMutability":"pure","virtual":true,"visibility":"public"},{"body":{"id":15162,"nodeType":"Block","src":"8282:189:67","statements":[{"assignments":[15138],"declarations":[{"constant":false,"id":15138,"mutability":"mutable","name":"id","nameLocation":"8300:2:67","nodeType":"VariableDeclaration","scope":15162,"src":"8292:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8292:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15146,"initialValue":{"arguments":[{"id":15140,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15121,"src":"8319:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15141,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15123,"src":"8327:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15142,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15125,"src":"8334:4:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":15143,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"8340:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15144,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15129,"src":"8353:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15139,"name":"hashOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15087,"src":"8305:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":15145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8305:53:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8292:66:67"},{"expression":{"arguments":[{"id":15148,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"8378:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15149,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15131,"src":"8382:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15147,"name":"_schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15282,"src":"8368:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":15150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8368:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15151,"nodeType":"ExpressionStatement","src":"8368:20:67"},{"eventCall":{"arguments":[{"id":15153,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"8417:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":15154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8421:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":15155,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15121,"src":"8424:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15156,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15123,"src":"8432:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15157,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15125,"src":"8439:4:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":15158,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"8445:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15159,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15131,"src":"8458:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15152,"name":"CallScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"8403:13:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)"}},"id":15160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8403:61:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15161,"nodeType":"EmitStatement","src":"8398:66:67"}]},"documentation":{"id":15119,"nodeType":"StructuredDocumentation","src":"7855:209:67","text":" @dev Schedule an operation containing a single transaction.\n Emits a {CallScheduled} event.\n Requirements:\n - the caller must have the 'proposer' role."},"functionSelector":"01d5062a","id":15163,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15134,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14725,"src":"8267:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15135,"kind":"modifierInvocation","modifierName":{"id":15133,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"8258:8:67"},"nodeType":"ModifierInvocation","src":"8258:23:67"}],"name":"schedule","nameLocation":"8078:8:67","nodeType":"FunctionDefinition","parameters":{"id":15132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15121,"mutability":"mutable","name":"target","nameLocation":"8104:6:67","nodeType":"VariableDeclaration","scope":15163,"src":"8096:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15120,"name":"address","nodeType":"ElementaryTypeName","src":"8096:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15123,"mutability":"mutable","name":"value","nameLocation":"8128:5:67","nodeType":"VariableDeclaration","scope":15163,"src":"8120:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15122,"name":"uint256","nodeType":"ElementaryTypeName","src":"8120:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15125,"mutability":"mutable","name":"data","nameLocation":"8158:4:67","nodeType":"VariableDeclaration","scope":15163,"src":"8143:19:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15124,"name":"bytes","nodeType":"ElementaryTypeName","src":"8143:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15127,"mutability":"mutable","name":"predecessor","nameLocation":"8180:11:67","nodeType":"VariableDeclaration","scope":15163,"src":"8172:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8172:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15129,"mutability":"mutable","name":"salt","nameLocation":"8209:4:67","nodeType":"VariableDeclaration","scope":15163,"src":"8201:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8201:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15131,"mutability":"mutable","name":"delay","nameLocation":"8231:5:67","nodeType":"VariableDeclaration","scope":15163,"src":"8223:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15130,"name":"uint256","nodeType":"ElementaryTypeName","src":"8223:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8086:156:67"},"returnParameters":{"id":15136,"nodeType":"ParameterList","parameters":[],"src":"8282:0:67"},"scope":15631,"src":"8069:402:67","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":15247,"nodeType":"Block","src":"8973:729:67","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15186,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15167,"src":"9004:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9004:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15188,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15170,"src":"9022:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9022:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9004:31:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":15191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9049:37:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":15185,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8983:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8983:113:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15193,"nodeType":"ExpressionStatement","src":"8983:113:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15195,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15167,"src":"9127:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9127:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15197,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15173,"src":"9145:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9145:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9127:33:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":15200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9174:37:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":15194,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9106:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9106:115:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15202,"nodeType":"ExpressionStatement","src":"9106:115:67"},{"assignments":[15204],"declarations":[{"constant":false,"id":15204,"mutability":"mutable","name":"id","nameLocation":"9240:2:67","nodeType":"VariableDeclaration","scope":15247,"src":"9232:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9232:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15212,"initialValue":{"arguments":[{"id":15206,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15167,"src":"9277:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":15207,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15170,"src":"9298:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":15208,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15173,"src":"9318:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":15209,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"9340:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15210,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15177,"src":"9365:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15205,"name":"hashOperationBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15118,"src":"9245:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":15211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9245:134:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9232:147:67"},{"expression":{"arguments":[{"id":15214,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15204,"src":"9399:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15215,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15179,"src":"9403:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15213,"name":"_schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15282,"src":"9389:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":15216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9389:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15217,"nodeType":"ExpressionStatement","src":"9389:20:67"},{"body":{"id":15245,"nodeType":"Block","src":"9464:232:67","statements":[{"eventCall":{"arguments":[{"id":15230,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15204,"src":"9514:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15231,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"9534:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":15232,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15167,"src":"9553:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15234,"indexExpression":{"id":15233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"9561:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9553:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":15235,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15170,"src":"9581:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15237,"indexExpression":{"id":15236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"9588:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9581:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":15238,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15173,"src":"9608:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15240,"indexExpression":{"id":15239,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"9617:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9608:11:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":15241,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"9637:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15242,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15179,"src":"9666:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15229,"name":"CallScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"9483:13:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)"}},"id":15243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9483:202:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15244,"nodeType":"EmitStatement","src":"9478:207:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"9439:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15223,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15167,"src":"9443:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9443:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9439:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15246,"initializationExpression":{"assignments":[15219],"declarations":[{"constant":false,"id":15219,"mutability":"mutable","name":"i","nameLocation":"9432:1:67","nodeType":"VariableDeclaration","scope":15246,"src":"9424:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15218,"name":"uint256","nodeType":"ElementaryTypeName","src":"9424:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15221,"initialValue":{"hexValue":"30","id":15220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9436:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9424:13:67"},"loopExpression":{"expression":{"id":15227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9459:3:67","subExpression":{"id":15226,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"9461:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15228,"nodeType":"ExpressionStatement","src":"9459:3:67"},"nodeType":"ForStatement","src":"9419:277:67"}]},"documentation":{"id":15164,"nodeType":"StructuredDocumentation","src":"8477:243:67","text":" @dev Schedule an operation containing a batch of transactions.\n Emits one {CallScheduled} event per transaction in the batch.\n Requirements:\n - the caller must have the 'proposer' role."},"functionSelector":"8f2a0bb0","id":15248,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15182,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14725,"src":"8958:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15183,"kind":"modifierInvocation","modifierName":{"id":15181,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"8949:8:67"},"nodeType":"ModifierInvocation","src":"8949:23:67"}],"name":"scheduleBatch","nameLocation":"8734:13:67","nodeType":"FunctionDefinition","parameters":{"id":15180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15167,"mutability":"mutable","name":"targets","nameLocation":"8776:7:67","nodeType":"VariableDeclaration","scope":15248,"src":"8757:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15165,"name":"address","nodeType":"ElementaryTypeName","src":"8757:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15166,"nodeType":"ArrayTypeName","src":"8757:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15170,"mutability":"mutable","name":"values","nameLocation":"8812:6:67","nodeType":"VariableDeclaration","scope":15248,"src":"8793:25:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15168,"name":"uint256","nodeType":"ElementaryTypeName","src":"8793:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15169,"nodeType":"ArrayTypeName","src":"8793:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15173,"mutability":"mutable","name":"payloads","nameLocation":"8845:8:67","nodeType":"VariableDeclaration","scope":15248,"src":"8828:25:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15171,"name":"bytes","nodeType":"ElementaryTypeName","src":"8828:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15172,"nodeType":"ArrayTypeName","src":"8828:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":15175,"mutability":"mutable","name":"predecessor","nameLocation":"8871:11:67","nodeType":"VariableDeclaration","scope":15248,"src":"8863:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8863:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15177,"mutability":"mutable","name":"salt","nameLocation":"8900:4:67","nodeType":"VariableDeclaration","scope":15248,"src":"8892:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8892:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15179,"mutability":"mutable","name":"delay","nameLocation":"8922:5:67","nodeType":"VariableDeclaration","scope":15248,"src":"8914:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15178,"name":"uint256","nodeType":"ElementaryTypeName","src":"8914:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8747:186:67"},"returnParameters":{"id":15184,"nodeType":"ParameterList","parameters":[],"src":"8973:0:67"},"scope":15631,"src":"8725:977:67","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":15281,"nodeType":"Block","src":"9858:295:67","statements":[{"expression":{"arguments":[{"id":15260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9889:16:67","subExpression":{"arguments":[{"id":15258,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15251,"src":"9902:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15257,"name":"isOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14983,"src":"9890:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":15259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9890:15:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c7265616479207363686564756c6564","id":15261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9919:49:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe","typeString":"literal_string \"TimelockController: operation already scheduled\""},"value":"TimelockController: operation already scheduled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe","typeString":"literal_string \"TimelockController: operation already scheduled\""}],"id":15256,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9868:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9868:110:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15263,"nodeType":"ExpressionStatement","src":"9868:110:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15265,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15253,"src":"10009:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":15266,"name":"getMinDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"10018:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10018:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10009:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e742064656c6179","id":15269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10045:40:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca","typeString":"literal_string \"TimelockController: insufficient delay\""},"value":"TimelockController: insufficient delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca","typeString":"literal_string \"TimelockController: insufficient delay\""}],"id":15264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9988:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9988:107:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15271,"nodeType":"ExpressionStatement","src":"9988:107:67"},{"expression":{"id":15279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15272,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14745,"src":"10105:11:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15274,"indexExpression":{"id":15273,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15251,"src":"10117:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10105:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15275,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10123:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10123:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15277,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15253,"src":"10141:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10123:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10105:41:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15280,"nodeType":"ExpressionStatement","src":"10105:41:67"}]},"documentation":{"id":15249,"nodeType":"StructuredDocumentation","src":"9708:91:67","text":" @dev Schedule an operation that is to becomes valid after a given delay."},"id":15282,"implemented":true,"kind":"function","modifiers":[],"name":"_schedule","nameLocation":"9813:9:67","nodeType":"FunctionDefinition","parameters":{"id":15254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15251,"mutability":"mutable","name":"id","nameLocation":"9831:2:67","nodeType":"VariableDeclaration","scope":15282,"src":"9823:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9823:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15253,"mutability":"mutable","name":"delay","nameLocation":"9843:5:67","nodeType":"VariableDeclaration","scope":15282,"src":"9835:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15252,"name":"uint256","nodeType":"ElementaryTypeName","src":"9835:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9822:27:67"},"returnParameters":{"id":15255,"nodeType":"ParameterList","parameters":[],"src":"9858:0:67"},"scope":15631,"src":"9804:349:67","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":15307,"nodeType":"Block","src":"10363:196:67","statements":[{"expression":{"arguments":[{"arguments":[{"id":15293,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15285,"src":"10413:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15292,"name":"isOperationPending","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"10394:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":15294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10394:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616e6e6f742062652063616e63656c6c6564","id":15295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10430:51:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41","typeString":"literal_string \"TimelockController: operation cannot be cancelled\""},"value":"TimelockController: operation cannot be cancelled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41","typeString":"literal_string \"TimelockController: operation cannot be cancelled\""}],"id":15291,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10373:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10373:118:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15297,"nodeType":"ExpressionStatement","src":"10373:118:67"},{"expression":{"id":15301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10501:22:67","subExpression":{"baseExpression":{"id":15298,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14745,"src":"10508:11:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15300,"indexExpression":{"id":15299,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15285,"src":"10520:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10508:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15302,"nodeType":"ExpressionStatement","src":"10501:22:67"},{"eventCall":{"arguments":[{"id":15304,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15285,"src":"10549:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15303,"name":"Cancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14782,"src":"10539:9:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10539:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15306,"nodeType":"EmitStatement","src":"10534:18:67"}]},"documentation":{"id":15283,"nodeType":"StructuredDocumentation","src":"10159:131:67","text":" @dev Cancel an operation.\n Requirements:\n - the caller must have the 'canceller' role."},"functionSelector":"c4d252f5","id":15308,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15288,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14735,"src":"10347:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15289,"kind":"modifierInvocation","modifierName":{"id":15287,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"10338:8:67"},"nodeType":"ModifierInvocation","src":"10338:24:67"}],"name":"cancel","nameLocation":"10304:6:67","nodeType":"FunctionDefinition","parameters":{"id":15286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15285,"mutability":"mutable","name":"id","nameLocation":"10319:2:67","nodeType":"VariableDeclaration","scope":15308,"src":"10311:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10311:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10310:12:67"},"returnParameters":{"id":15290,"nodeType":"ParameterList","parameters":[],"src":"10363:0:67"},"scope":15631,"src":"10295:264:67","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":15358,"nodeType":"Block","src":"11243:249:67","statements":[{"assignments":[15326],"declarations":[{"constant":false,"id":15326,"mutability":"mutable","name":"id","nameLocation":"11261:2:67","nodeType":"VariableDeclaration","scope":15358,"src":"11253:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11253:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15334,"initialValue":{"arguments":[{"id":15328,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15311,"src":"11280:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"11288:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15330,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15315,"src":"11295:7:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":15331,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15317,"src":"11304:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15332,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15319,"src":"11317:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15327,"name":"hashOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15087,"src":"11266:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":15333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11266:56:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11253:69:67"},{"expression":{"arguments":[{"id":15336,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"11345:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15337,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15317,"src":"11349:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15335,"name":"_beforeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"11333:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) view"}},"id":15338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11333:28:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15339,"nodeType":"ExpressionStatement","src":"11333:28:67"},{"expression":{"arguments":[{"id":15341,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15311,"src":"11380:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"11388:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15343,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15315,"src":"11395:7:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15340,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15487,"src":"11371:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":15344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11371:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15345,"nodeType":"ExpressionStatement","src":"11371:32:67"},{"eventCall":{"arguments":[{"id":15347,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"11431:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":15348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11435:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":15349,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15311,"src":"11438:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15350,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"11446:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15351,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15315,"src":"11453:7:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15346,"name":"CallExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14777,"src":"11418:12:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory)"}},"id":15352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11418:43:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15353,"nodeType":"EmitStatement","src":"11413:48:67"},{"expression":{"arguments":[{"id":15355,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"11482:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15354,"name":"_afterCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15537,"src":"11471:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11471:14:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15357,"nodeType":"ExpressionStatement","src":"11471:14:67"}]},"documentation":{"id":15309,"nodeType":"StructuredDocumentation","src":"10565:215:67","text":" @dev Execute an (ready) operation containing a single transaction.\n Emits a {CallExecuted} event.\n Requirements:\n - the caller must have the 'executor' role."},"functionSelector":"134008d3","id":15359,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15322,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"11228:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15323,"kind":"modifierInvocation","modifierName":{"id":15321,"name":"onlyRoleOrOpenRole","nodeType":"IdentifierPath","referencedDeclaration":14939,"src":"11209:18:67"},"nodeType":"ModifierInvocation","src":"11209:33:67"}],"name":"execute","nameLocation":"11042:7:67","nodeType":"FunctionDefinition","parameters":{"id":15320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15311,"mutability":"mutable","name":"target","nameLocation":"11067:6:67","nodeType":"VariableDeclaration","scope":15359,"src":"11059:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15310,"name":"address","nodeType":"ElementaryTypeName","src":"11059:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15313,"mutability":"mutable","name":"value","nameLocation":"11091:5:67","nodeType":"VariableDeclaration","scope":15359,"src":"11083:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15312,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15315,"mutability":"mutable","name":"payload","nameLocation":"11121:7:67","nodeType":"VariableDeclaration","scope":15359,"src":"11106:22:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15314,"name":"bytes","nodeType":"ElementaryTypeName","src":"11106:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15317,"mutability":"mutable","name":"predecessor","nameLocation":"11146:11:67","nodeType":"VariableDeclaration","scope":15359,"src":"11138:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11138:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15319,"mutability":"mutable","name":"salt","nameLocation":"11175:4:67","nodeType":"VariableDeclaration","scope":15359,"src":"11167:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11167:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11049:136:67"},"returnParameters":{"id":15324,"nodeType":"ParameterList","parameters":[],"src":"11243:0:67"},"scope":15631,"src":"11033:459:67","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":15461,"nodeType":"Block","src":"11994:779:67","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15380,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"12025:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12025:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15382,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15366,"src":"12043:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12043:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12025:31:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":15385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12070:37:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":15379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12004:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12004:113:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15387,"nodeType":"ExpressionStatement","src":"12004:113:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15389,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"12148:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12148:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15391,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15369,"src":"12166:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12166:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12148:33:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":15394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12195:37:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":15388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12127:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12127:115:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15396,"nodeType":"ExpressionStatement","src":"12127:115:67"},{"assignments":[15398],"declarations":[{"constant":false,"id":15398,"mutability":"mutable","name":"id","nameLocation":"12261:2:67","nodeType":"VariableDeclaration","scope":15461,"src":"12253:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12253:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15406,"initialValue":{"arguments":[{"id":15400,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"12298:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":15401,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15366,"src":"12319:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":15402,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15369,"src":"12339:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":15403,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15371,"src":"12361:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15404,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15373,"src":"12386:4:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15399,"name":"hashOperationBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15118,"src":"12266:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":15405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12266:134:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12253:147:67"},{"expression":{"arguments":[{"id":15408,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15398,"src":"12423:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15409,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15371,"src":"12427:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15407,"name":"_beforeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"12411:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) view"}},"id":15410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12411:28:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15411,"nodeType":"ExpressionStatement","src":"12411:28:67"},{"body":{"id":15455,"nodeType":"Block","src":"12494:249:67","statements":[{"assignments":[15424],"declarations":[{"constant":false,"id":15424,"mutability":"mutable","name":"target","nameLocation":"12516:6:67","nodeType":"VariableDeclaration","scope":15455,"src":"12508:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15423,"name":"address","nodeType":"ElementaryTypeName","src":"12508:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":15428,"initialValue":{"baseExpression":{"id":15425,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"12525:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15427,"indexExpression":{"id":15426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"12533:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12525:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12508:27:67"},{"assignments":[15430],"declarations":[{"constant":false,"id":15430,"mutability":"mutable","name":"value","nameLocation":"12557:5:67","nodeType":"VariableDeclaration","scope":15455,"src":"12549:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15429,"name":"uint256","nodeType":"ElementaryTypeName","src":"12549:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15434,"initialValue":{"baseExpression":{"id":15431,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15366,"src":"12565:6:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15433,"indexExpression":{"id":15432,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"12572:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12565:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12549:25:67"},{"assignments":[15436],"declarations":[{"constant":false,"id":15436,"mutability":"mutable","name":"payload","nameLocation":"12603:7:67","nodeType":"VariableDeclaration","scope":15455,"src":"12588:22:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15435,"name":"bytes","nodeType":"ElementaryTypeName","src":"12588:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":15440,"initialValue":{"baseExpression":{"id":15437,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15369,"src":"12613:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15439,"indexExpression":{"id":15438,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"12622:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12613:11:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"12588:36:67"},{"expression":{"arguments":[{"id":15442,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15424,"src":"12647:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15443,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15430,"src":"12655:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15444,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"12662:7:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15441,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15487,"src":"12638:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":15445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12638:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15446,"nodeType":"ExpressionStatement","src":"12638:32:67"},{"eventCall":{"arguments":[{"id":15448,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15398,"src":"12702:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15449,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"12706:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15450,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15424,"src":"12709:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15451,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15430,"src":"12717:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15452,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"12724:7:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15447,"name":"CallExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14777,"src":"12689:12:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory)"}},"id":15453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12689:43:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15454,"nodeType":"EmitStatement","src":"12684:48:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15416,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"12469:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15417,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"12473:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12473:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12469:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15456,"initializationExpression":{"assignments":[15413],"declarations":[{"constant":false,"id":15413,"mutability":"mutable","name":"i","nameLocation":"12462:1:67","nodeType":"VariableDeclaration","scope":15456,"src":"12454:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15412,"name":"uint256","nodeType":"ElementaryTypeName","src":"12454:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15415,"initialValue":{"hexValue":"30","id":15414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12466:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12454:13:67"},"loopExpression":{"expression":{"id":15421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12489:3:67","subExpression":{"id":15420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"12491:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15422,"nodeType":"ExpressionStatement","src":"12489:3:67"},"nodeType":"ForStatement","src":"12449:294:67"},{"expression":{"arguments":[{"id":15458,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15398,"src":"12763:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15457,"name":"_afterCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15537,"src":"12752:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12752:14:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15460,"nodeType":"ExpressionStatement","src":"12752:14:67"}]},"documentation":{"id":15360,"nodeType":"StructuredDocumentation","src":"11498:249:67","text":" @dev Execute an (ready) operation containing a batch of transactions.\n Emits one {CallExecuted} event per transaction in the batch.\n Requirements:\n - the caller must have the 'executor' role."},"functionSelector":"e38335e5","id":15462,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15376,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"11979:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15377,"kind":"modifierInvocation","modifierName":{"id":15375,"name":"onlyRoleOrOpenRole","nodeType":"IdentifierPath","referencedDeclaration":14939,"src":"11960:18:67"},"nodeType":"ModifierInvocation","src":"11960:33:67"}],"name":"executeBatch","nameLocation":"11761:12:67","nodeType":"FunctionDefinition","parameters":{"id":15374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15363,"mutability":"mutable","name":"targets","nameLocation":"11802:7:67","nodeType":"VariableDeclaration","scope":15462,"src":"11783:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15361,"name":"address","nodeType":"ElementaryTypeName","src":"11783:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15362,"nodeType":"ArrayTypeName","src":"11783:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15366,"mutability":"mutable","name":"values","nameLocation":"11838:6:67","nodeType":"VariableDeclaration","scope":15462,"src":"11819:25:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15364,"name":"uint256","nodeType":"ElementaryTypeName","src":"11819:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15365,"nodeType":"ArrayTypeName","src":"11819:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15369,"mutability":"mutable","name":"payloads","nameLocation":"11871:8:67","nodeType":"VariableDeclaration","scope":15462,"src":"11854:25:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15367,"name":"bytes","nodeType":"ElementaryTypeName","src":"11854:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15368,"nodeType":"ArrayTypeName","src":"11854:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":15371,"mutability":"mutable","name":"predecessor","nameLocation":"11897:11:67","nodeType":"VariableDeclaration","scope":15462,"src":"11889:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11889:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15373,"mutability":"mutable","name":"salt","nameLocation":"11926:4:67","nodeType":"VariableDeclaration","scope":15462,"src":"11918:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11918:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11773:163:67"},"returnParameters":{"id":15378,"nodeType":"ParameterList","parameters":[],"src":"11994:0:67"},"scope":15631,"src":"11752:1021:67","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":15486,"nodeType":"Block","src":"12953:148:67","statements":[{"assignments":[15473,null],"declarations":[{"constant":false,"id":15473,"mutability":"mutable","name":"success","nameLocation":"12969:7:67","nodeType":"VariableDeclaration","scope":15486,"src":"12964:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15472,"name":"bool","nodeType":"ElementaryTypeName","src":"12964:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":15480,"initialValue":{"arguments":[{"id":15478,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15469,"src":"13008:4:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":15474,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"12982:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"12982:11:67","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":15477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":15476,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15467,"src":"13001:5:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"12982:25:67","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":15479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12982:31:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12963:50:67"},{"expression":{"arguments":[{"id":15482,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15473,"src":"13031:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e67207472616e73616374696f6e207265766572746564","id":15483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13040:53:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf","typeString":"literal_string \"TimelockController: underlying transaction reverted\""},"value":"TimelockController: underlying transaction reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf","typeString":"literal_string \"TimelockController: underlying transaction reverted\""}],"id":15481,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13023:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13023:71:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15485,"nodeType":"ExpressionStatement","src":"13023:71:67"}]},"documentation":{"id":15463,"nodeType":"StructuredDocumentation","src":"12779:52:67","text":" @dev Execute an operation's call."},"id":15487,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"12845:8:67","nodeType":"FunctionDefinition","parameters":{"id":15470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15465,"mutability":"mutable","name":"target","nameLocation":"12871:6:67","nodeType":"VariableDeclaration","scope":15487,"src":"12863:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15464,"name":"address","nodeType":"ElementaryTypeName","src":"12863:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15467,"mutability":"mutable","name":"value","nameLocation":"12895:5:67","nodeType":"VariableDeclaration","scope":15487,"src":"12887:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15466,"name":"uint256","nodeType":"ElementaryTypeName","src":"12887:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15469,"mutability":"mutable","name":"data","nameLocation":"12925:4:67","nodeType":"VariableDeclaration","scope":15487,"src":"12910:19:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15468,"name":"bytes","nodeType":"ElementaryTypeName","src":"12910:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12853:82:67"},"returnParameters":{"id":15471,"nodeType":"ParameterList","parameters":[],"src":"12953:0:67"},"scope":15631,"src":"12836:265:67","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":15516,"nodeType":"Block","src":"13251:278:67","statements":[{"expression":{"arguments":[{"arguments":[{"id":15497,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15490,"src":"13299:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15496,"name":"isOperationReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"13282:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":15498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13282:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973206e6f74207265616479","id":15499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13316:44:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""},"value":"TimelockController: operation is not ready"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""}],"id":15495,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13261:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13261:109:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15501,"nodeType":"ExpressionStatement","src":"13261:109:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15503,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15492,"src":"13401:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13424:1:67","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":15505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13416:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":15504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13416:7:67","typeDescriptions":{}}},"id":15507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13416:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13401:25:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":15510,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15492,"src":"13446:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15509,"name":"isOperationDone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15037,"src":"13430:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":15511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13430:28:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13401:57:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656e64656e6379","id":15513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13472:40:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111","typeString":"literal_string \"TimelockController: missing dependency\""},"value":"TimelockController: missing dependency"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111","typeString":"literal_string \"TimelockController: missing dependency\""}],"id":15502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13380:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13380:142:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15515,"nodeType":"ExpressionStatement","src":"13380:142:67"}]},"documentation":{"id":15488,"nodeType":"StructuredDocumentation","src":"13107:72:67","text":" @dev Checks before execution of an operation's calls."},"id":15517,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeCall","nameLocation":"13193:11:67","nodeType":"FunctionDefinition","parameters":{"id":15493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15490,"mutability":"mutable","name":"id","nameLocation":"13213:2:67","nodeType":"VariableDeclaration","scope":15517,"src":"13205:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13205:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15492,"mutability":"mutable","name":"predecessor","nameLocation":"13225:11:67","nodeType":"VariableDeclaration","scope":15517,"src":"13217:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13217:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13204:33:67"},"returnParameters":{"id":15494,"nodeType":"ParameterList","parameters":[],"src":"13251:0:67"},"scope":15631,"src":"13184:345:67","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":15536,"nodeType":"Block","src":"13651:169:67","statements":[{"expression":{"arguments":[{"arguments":[{"id":15525,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"13699:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15524,"name":"isOperationReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"13682:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":15526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13682:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973206e6f74207265616479","id":15527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13716:44:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""},"value":"TimelockController: operation is not ready"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""}],"id":15523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13661:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13661:109:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15529,"nodeType":"ExpressionStatement","src":"13661:109:67"},{"expression":{"id":15534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15530,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14745,"src":"13780:11:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15532,"indexExpression":{"id":15531,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"13792:2:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13780:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15533,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14741,"src":"13798:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13780:33:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15535,"nodeType":"ExpressionStatement","src":"13780:33:67"}]},"documentation":{"id":15518,"nodeType":"StructuredDocumentation","src":"13535:71:67","text":" @dev Checks after execution of an operation's calls."},"id":15537,"implemented":true,"kind":"function","modifiers":[],"name":"_afterCall","nameLocation":"13620:10:67","nodeType":"FunctionDefinition","parameters":{"id":15521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15520,"mutability":"mutable","name":"id","nameLocation":"13639:2:67","nodeType":"VariableDeclaration","scope":15537,"src":"13631:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13631:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13630:12:67"},"returnParameters":{"id":15522,"nodeType":"ParameterList","parameters":[],"src":"13651:0:67"},"scope":15631,"src":"13611:209:67","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":15563,"nodeType":"Block","src":"14269:214:67","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15544,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14300:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14300:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":15548,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14322:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_MAHATimelockController_$15631","typeString":"contract MAHATimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MAHATimelockController_$15631","typeString":"contract MAHATimelockController"}],"id":15547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14314:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15546,"name":"address","nodeType":"ElementaryTypeName","src":"14314:7:67","typeDescriptions":{}}},"id":15549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14314:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14300:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742062652074696d656c6f636b","id":15551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14341:45:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df","typeString":"literal_string \"TimelockController: caller must be timelock\""},"value":"TimelockController: caller must be timelock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df","typeString":"literal_string \"TimelockController: caller must be timelock\""}],"id":15543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14279:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14279:117:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15553,"nodeType":"ExpressionStatement","src":"14279:117:67"},{"eventCall":{"arguments":[{"id":15555,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14747,"src":"14426:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15556,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15540,"src":"14437:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15554,"name":"MinDelayChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14789,"src":"14411:14:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14411:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15558,"nodeType":"EmitStatement","src":"14406:40:67"},{"expression":{"id":15561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15559,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14747,"src":"14456:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15560,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15540,"src":"14468:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14456:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15562,"nodeType":"ExpressionStatement","src":"14456:20:67"}]},"documentation":{"id":15538,"nodeType":"StructuredDocumentation","src":"13826:382:67","text":" @dev Changes the minimum timelock duration for future operations.\n Emits a {MinDelayChange} event.\n Requirements:\n - the caller must be the timelock itself. This can only be achieved by scheduling and later executing\n an operation where the timelock is the target and the data is the ABI-encoded call to this function."},"functionSelector":"64d62353","id":15564,"implemented":true,"kind":"function","modifiers":[],"name":"updateDelay","nameLocation":"14222:11:67","nodeType":"FunctionDefinition","parameters":{"id":15541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15540,"mutability":"mutable","name":"newDelay","nameLocation":"14242:8:67","nodeType":"VariableDeclaration","scope":15564,"src":"14234:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15539,"name":"uint256","nodeType":"ElementaryTypeName","src":"14234:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14233:18:67"},"returnParameters":{"id":15542,"nodeType":"ParameterList","parameters":[],"src":"14269:0:67"},"scope":15631,"src":"14213:270:67","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[7109],"body":{"id":15583,"nodeType":"Block","src":"14703:54:67","statements":[{"expression":{"expression":{"expression":{"id":15579,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14720:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_MAHATimelockController_$15631","typeString":"contract MAHATimelockController"}},"id":15580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":15584,"src":"14720:21:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":15581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"14720:30:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":15578,"id":15582,"nodeType":"Return","src":"14713:37:67"}]},"documentation":{"id":15565,"nodeType":"StructuredDocumentation","src":"14489:63:67","text":" @dev See {IERC721Receiver-onERC721Received}."},"functionSelector":"150b7a02","id":15584,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"14566:16:67","nodeType":"FunctionDefinition","overrides":{"id":15575,"nodeType":"OverrideSpecifier","overrides":[],"src":"14677:8:67"},"parameters":{"id":15574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15584,"src":"14592:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15566,"name":"address","nodeType":"ElementaryTypeName","src":"14592:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15584,"src":"14609:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15568,"name":"address","nodeType":"ElementaryTypeName","src":"14609:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15584,"src":"14626:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15570,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15584,"src":"14643:12:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15572,"name":"bytes","nodeType":"ElementaryTypeName","src":"14643:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14582:79:67"},"returnParameters":{"id":15578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15584,"src":"14695:6:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15576,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14695:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14694:8:67"},"scope":15631,"src":"14557:200:67","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5084],"body":{"id":15605,"nodeType":"Block","src":"14997:55:67","statements":[{"expression":{"expression":{"expression":{"id":15601,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15014:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_MAHATimelockController_$15631","typeString":"contract MAHATimelockController"}},"id":15602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":15606,"src":"15014:22:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":15603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"15014:31:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":15600,"id":15604,"nodeType":"Return","src":"15007:38:67"}]},"documentation":{"id":15585,"nodeType":"StructuredDocumentation","src":"14763:65:67","text":" @dev See {IERC1155Receiver-onERC1155Received}."},"functionSelector":"f23a6e61","id":15606,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"14842:17:67","nodeType":"FunctionDefinition","overrides":{"id":15597,"nodeType":"OverrideSpecifier","overrides":[],"src":"14971:8:67"},"parameters":{"id":15596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15606,"src":"14869:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15586,"name":"address","nodeType":"ElementaryTypeName","src":"14869:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15606,"src":"14886:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15588,"name":"address","nodeType":"ElementaryTypeName","src":"14886:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15606,"src":"14903:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15590,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15606,"src":"14920:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15592,"name":"uint256","nodeType":"ElementaryTypeName","src":"14920:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15606,"src":"14937:12:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15594,"name":"bytes","nodeType":"ElementaryTypeName","src":"14937:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14859:96:67"},"returnParameters":{"id":15600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15606,"src":"14989:6:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15598,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14989:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14988:8:67"},"scope":15631,"src":"14833:219:67","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5102],"body":{"id":15629,"nodeType":"Block","src":"15320:60:67","statements":[{"expression":{"expression":{"expression":{"id":15625,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15337:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_MAHATimelockController_$15631","typeString":"contract MAHATimelockController"}},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":15630,"src":"15337:27:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":15627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"15337:36:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":15624,"id":15628,"nodeType":"Return","src":"15330:43:67"}]},"documentation":{"id":15607,"nodeType":"StructuredDocumentation","src":"15058:70:67","text":" @dev See {IERC1155Receiver-onERC1155BatchReceived}."},"functionSelector":"bc197c81","id":15630,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"15142:22:67","nodeType":"FunctionDefinition","overrides":{"id":15621,"nodeType":"OverrideSpecifier","overrides":[],"src":"15294:8:67"},"parameters":{"id":15620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15630,"src":"15174:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15608,"name":"address","nodeType":"ElementaryTypeName","src":"15174:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15630,"src":"15191:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15610,"name":"address","nodeType":"ElementaryTypeName","src":"15191:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15630,"src":"15208:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15612,"name":"uint256","nodeType":"ElementaryTypeName","src":"15208:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15613,"nodeType":"ArrayTypeName","src":"15208:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15630,"src":"15234:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15615,"name":"uint256","nodeType":"ElementaryTypeName","src":"15234:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15616,"nodeType":"ArrayTypeName","src":"15234:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15630,"src":"15260:12:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15618,"name":"bytes","nodeType":"ElementaryTypeName","src":"15260:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15164:114:67"},"returnParameters":{"id":15624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15630,"src":"15312:6:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15622,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15312:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"15311:8:67"},"scope":15631,"src":"15133:247:67","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":15632,"src":"1124:14258:67","usedErrors":[]}],"src":"117:15266:67"},"id":67},"contracts/MAHAXGovernor.sol":{"ast":{"absolutePath":"contracts/MAHAXGovernor.sol","exportedSymbols":{"Governor":[1952],"GovernorCountingSimple":[3380],"GovernorPreventLateQuorum":[3565],"GovernorSettings":[3743],"GovernorTimelockControl":[4120],"GovernorVotes":[4162],"IGovernor":[2249],"IRegistry":[35522],"IVotes":[4281],"MAHAXGovernor":[16001],"TimelockController":[3154]},"id":16002,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15633,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:68"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"@openzeppelin/contracts/governance/Governor.sol","id":15636,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":1953,"src":"57:84:68","symbolAliases":[{"foreign":{"id":15634,"name":"IGovernor","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:9:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":15635,"name":"Governor","nodeType":"Identifier","overloadedDeclarations":[],"src":"76:8:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","id":15638,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":3744,"src":"142:100:68","symbolAliases":[{"foreign":{"id":15637,"name":"GovernorSettings","nodeType":"Identifier","overloadedDeclarations":[],"src":"150:16:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","id":15640,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":3381,"src":"243:112:68","symbolAliases":[{"foreign":{"id":15639,"name":"GovernorCountingSimple","nodeType":"Identifier","overloadedDeclarations":[],"src":"251:22:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"@openzeppelin/contracts/governance/utils/IVotes.sol","id":15642,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":4282,"src":"356:75:68","symbolAliases":[{"foreign":{"id":15641,"name":"IVotes","nodeType":"Identifier","overloadedDeclarations":[],"src":"364:6:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol","id":15645,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":4121,"src":"432:134:68","symbolAliases":[{"foreign":{"id":15643,"name":"TimelockController","nodeType":"Identifier","overloadedDeclarations":[],"src":"440:18:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":15644,"name":"GovernorTimelockControl","nodeType":"Identifier","overloadedDeclarations":[],"src":"460:23:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol","id":15647,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":4163,"src":"567:94:68","symbolAliases":[{"foreign":{"id":15646,"name":"GovernorVotes","nodeType":"Identifier","overloadedDeclarations":[],"src":"575:13:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol","id":15649,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":3566,"src":"662:118:68","symbolAliases":[{"foreign":{"id":15648,"name":"GovernorPreventLateQuorum","nodeType":"Identifier","overloadedDeclarations":[],"src":"670:25:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","id":15651,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16002,"sourceUnit":35523,"src":"781:53:68","symbolAliases":[{"foreign":{"id":15650,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"789:9:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15653,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"916:8:68"},"id":15654,"nodeType":"InheritanceSpecifier","src":"916:8:68"},{"baseName":{"id":15655,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"930:16:68"},"id":15656,"nodeType":"InheritanceSpecifier","src":"930:16:68"},{"baseName":{"id":15657,"name":"GovernorPreventLateQuorum","nodeType":"IdentifierPath","referencedDeclaration":3565,"src":"952:25:68"},"id":15658,"nodeType":"InheritanceSpecifier","src":"952:25:68"},{"baseName":{"id":15659,"name":"GovernorCountingSimple","nodeType":"IdentifierPath","referencedDeclaration":3380,"src":"983:22:68"},"id":15660,"nodeType":"InheritanceSpecifier","src":"983:22:68"},{"baseName":{"id":15661,"name":"GovernorTimelockControl","nodeType":"IdentifierPath","referencedDeclaration":4120,"src":"1011:23:68"},"id":15662,"nodeType":"InheritanceSpecifier","src":"1011:23:68"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":15652,"nodeType":"StructuredDocumentation","src":"836:50:68","text":"@custom:security-contact security@mahadao.com"},"fullyImplemented":true,"id":16001,"linearizedBaseContracts":[16001,4120,3380,3565,3743,1952,5103,7110,4203,2249,9813,9837,9849,8255],"name":"MAHAXGovernor","nameLocation":"895:13:68","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":15665,"mutability":"immutable","name":"registry","nameLocation":"1068:8:68","nodeType":"VariableDeclaration","scope":16001,"src":"1041:35:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":15664,"nodeType":"UserDefinedTypeName","pathNode":{"id":15663,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"1041:9:68"},"referencedDeclaration":35522,"src":"1041:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":false,"id":15667,"mutability":"mutable","name":"_quorum","nameLocation":"1098:7:68","nodeType":"VariableDeclaration","scope":16001,"src":"1082:23:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"anonymous":false,"id":15673,"name":"QuorumUpdated","nameLocation":"1118:13:68","nodeType":"EventDefinition","parameters":{"id":15672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15669,"indexed":false,"mutability":"mutable","name":"oldQuorum","nameLocation":"1140:9:68","nodeType":"VariableDeclaration","scope":15673,"src":"1132:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1132:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15671,"indexed":false,"mutability":"mutable","name":"newQuorum","nameLocation":"1159:9:68","nodeType":"VariableDeclaration","scope":15673,"src":"1151:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15670,"name":"uint256","nodeType":"ElementaryTypeName","src":"1151:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1131:38:68"},"src":"1112:58:68"},{"body":{"id":15714,"nodeType":"Block","src":"1719:75:68","statements":[{"expression":{"id":15708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15706,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15665,"src":"1729:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15707,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15676,"src":"1740:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"1729:20:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":15709,"nodeType":"ExpressionStatement","src":"1729:20:68"},{"expression":{"arguments":[{"id":15711,"name":"initialQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15689,"src":"1773:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15710,"name":"_updateQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16000,"src":"1759:13:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1759:28:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15713,"nodeType":"ExpressionStatement","src":"1759:28:68"}]},"id":15715,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d41484158476f7665726e6f72","id":15692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1461:15:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_a9abb8b550936c8b908b9caf2fb701b1caaa67239bd3c3e61a07d4b3e655e1fb","typeString":"literal_string \"MAHAXGovernor\""},"value":"MAHAXGovernor"}],"id":15693,"kind":"baseConstructorSpecifier","modifierName":{"id":15691,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"1452:8:68"},"nodeType":"ModifierInvocation","src":"1452:25:68"},{"arguments":[{"id":15695,"name":"initialVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15683,"src":"1516:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15696,"name":"initialVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15685,"src":"1548:19:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15697,"name":"initialProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15687,"src":"1581:24:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15698,"kind":"baseConstructorSpecifier","modifierName":{"id":15694,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"1486:16:68"},"nodeType":"ModifierInvocation","src":"1486:129:68"},{"arguments":[{"id":15700,"name":"initialVoteExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"1650:20:68","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":15701,"kind":"baseConstructorSpecifier","modifierName":{"id":15699,"name":"GovernorPreventLateQuorum","nodeType":"IdentifierPath","referencedDeclaration":3565,"src":"1624:25:68"},"nodeType":"ModifierInvocation","src":"1624:47:68"},{"arguments":[{"id":15703,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15679,"src":"1704:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}}],"id":15704,"kind":"baseConstructorSpecifier","modifierName":{"id":15702,"name":"GovernorTimelockControl","nodeType":"IdentifierPath","referencedDeclaration":4120,"src":"1680:23:68"},"nodeType":"ModifierInvocation","src":"1680:34:68"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15676,"mutability":"mutable","name":"_registry","nameLocation":"1207:9:68","nodeType":"VariableDeclaration","scope":15715,"src":"1197:19:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":15675,"nodeType":"UserDefinedTypeName","pathNode":{"id":15674,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"1197:9:68"},"referencedDeclaration":35522,"src":"1197:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":15679,"mutability":"mutable","name":"_timelock","nameLocation":"1245:9:68","nodeType":"VariableDeclaration","scope":15715,"src":"1226:28:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"},"typeName":{"id":15678,"nodeType":"UserDefinedTypeName","pathNode":{"id":15677,"name":"TimelockController","nodeType":"IdentifierPath","referencedDeclaration":3154,"src":"1226:18:68"},"referencedDeclaration":3154,"src":"1226:18:68","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$3154","typeString":"contract TimelockController"}},"visibility":"internal"},{"constant":false,"id":15681,"mutability":"mutable","name":"initialVoteExtension","nameLocation":"1271:20:68","nodeType":"VariableDeclaration","scope":15715,"src":"1264:27:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15680,"name":"uint64","nodeType":"ElementaryTypeName","src":"1264:6:68","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15683,"mutability":"mutable","name":"initialVotingDelay","nameLocation":"1309:18:68","nodeType":"VariableDeclaration","scope":15715,"src":"1301:26:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15682,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15685,"mutability":"mutable","name":"initialVotingPeriod","nameLocation":"1345:19:68","nodeType":"VariableDeclaration","scope":15715,"src":"1337:27:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15684,"name":"uint256","nodeType":"ElementaryTypeName","src":"1337:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15687,"mutability":"mutable","name":"initialProposalThreshold","nameLocation":"1382:24:68","nodeType":"VariableDeclaration","scope":15715,"src":"1374:32:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15686,"name":"uint256","nodeType":"ElementaryTypeName","src":"1374:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15689,"mutability":"mutable","name":"initialQuorum","nameLocation":"1424:13:68","nodeType":"VariableDeclaration","scope":15715,"src":"1416:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15688,"name":"uint256","nodeType":"ElementaryTypeName","src":"1416:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1187:256:68"},"returnParameters":{"id":15705,"nodeType":"ParameterList","parameters":[],"src":"1719:0:68"},"scope":16001,"src":"1176:618:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1052],"body":{"id":15738,"nodeType":"Block","src":"2148:84:68","statements":[{"expression":{"arguments":[{"id":15734,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15718,"src":"2204:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15735,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15720,"src":"2213:11:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15729,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15665,"src":"2172:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":15730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"2172:15:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":15731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2172:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15728,"name":"IVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"2165:6:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotes_$4281_$","typeString":"type(contract IVotes)"}},"id":15732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2165:25:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"id":15733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPastVotes","nodeType":"MemberAccess","referencedDeclaration":4242,"src":"2165:38:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":15736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2165:60:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15727,"id":15737,"nodeType":"Return","src":"2158:67:68"}]},"documentation":{"id":15716,"nodeType":"StructuredDocumentation","src":"1868:114:68","text":" Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes})."},"id":15739,"implemented":true,"kind":"function","modifiers":[],"name":"_getVotes","nameLocation":"1996:9:68","nodeType":"FunctionDefinition","overrides":{"id":15724,"nodeType":"OverrideSpecifier","overrides":[],"src":"2121:8:68"},"parameters":{"id":15723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15718,"mutability":"mutable","name":"account","nameLocation":"2023:7:68","nodeType":"VariableDeclaration","scope":15739,"src":"2015:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15717,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15720,"mutability":"mutable","name":"blockNumber","nameLocation":"2048:11:68","nodeType":"VariableDeclaration","scope":15739,"src":"2040:19:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15719,"name":"uint256","nodeType":"ElementaryTypeName","src":"2040:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15739,"src":"2069:12:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15721,"name":"bytes","nodeType":"ElementaryTypeName","src":"2069:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2005:93:68"},"returnParameters":{"id":15727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15739,"src":"2139:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15725,"name":"uint256","nodeType":"ElementaryTypeName","src":"2139:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2138:9:68"},"scope":16001,"src":"1987:245:68","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2096,3628],"body":{"id":15751,"nodeType":"Block","src":"2365:43:68","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15747,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2382:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":3628,"src":"2382:17:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2382:19:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15746,"id":15750,"nodeType":"Return","src":"2375:26:68"}]},"functionSelector":"3932abb1","id":15752,"implemented":true,"kind":"function","modifiers":[],"name":"votingDelay","nameLocation":"2247:11:68","nodeType":"FunctionDefinition","overrides":{"id":15743,"nodeType":"OverrideSpecifier","overrides":[{"id":15741,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"2306:9:68"},{"id":15742,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"2317:16:68"}],"src":"2297:37:68"},"parameters":{"id":15740,"nodeType":"ParameterList","parameters":[],"src":"2258:2:68"},"returnParameters":{"id":15746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15752,"src":"2352:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15744,"name":"uint256","nodeType":"ElementaryTypeName","src":"2352:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2351:9:68"},"scope":16001,"src":"2238:170:68","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2102,3638],"body":{"id":15764,"nodeType":"Block","src":"2542:44:68","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15760,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2559:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":3638,"src":"2559:18:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2559:20:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15759,"id":15763,"nodeType":"Return","src":"2552:27:68"}]},"functionSelector":"02a251a3","id":15765,"implemented":true,"kind":"function","modifiers":[],"name":"votingPeriod","nameLocation":"2423:12:68","nodeType":"FunctionDefinition","overrides":{"id":15756,"nodeType":"OverrideSpecifier","overrides":[{"id":15754,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"2483:9:68"},{"id":15755,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"2494:16:68"}],"src":"2474:37:68"},"parameters":{"id":15753,"nodeType":"ParameterList","parameters":[],"src":"2435:2:68"},"returnParameters":{"id":15759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15765,"src":"2529:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2529:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2528:9:68"},"scope":16001,"src":"2414:172:68","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[1015,2090,3449],"body":{"id":15781,"nodeType":"Block","src":"2761:58:68","statements":[{"expression":{"arguments":[{"id":15778,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15767,"src":"2801:10:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15776,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2778:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalDeadline","nodeType":"MemberAccess","referencedDeclaration":3449,"src":"2778:22:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":15779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2778:34:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15775,"id":15780,"nodeType":"Return","src":"2771:41:68"}]},"functionSelector":"c01f9e37","id":15782,"implemented":true,"kind":"function","modifiers":[],"name":"proposalDeadline","nameLocation":"2601:16:68","nodeType":"FunctionDefinition","overrides":{"id":15772,"nodeType":"OverrideSpecifier","overrides":[{"id":15769,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"2683:9:68"},{"id":15770,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"2694:8:68"},{"id":15771,"name":"GovernorPreventLateQuorum","nodeType":"IdentifierPath","referencedDeclaration":3565,"src":"2704:25:68"}],"src":"2674:56:68"},"parameters":{"id":15768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15767,"mutability":"mutable","name":"proposalId","nameLocation":"2626:10:68","nodeType":"VariableDeclaration","scope":15782,"src":"2618:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15766,"name":"uint256","nodeType":"ElementaryTypeName","src":"2618:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2617:20:68"},"returnParameters":{"id":15775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15782,"src":"2748:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15773,"name":"uint256","nodeType":"ElementaryTypeName","src":"2748:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2747:9:68"},"scope":16001,"src":"2592:227:68","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[981,3870],"body":{"id":15798,"nodeType":"Block","src":"2976:47:68","statements":[{"expression":{"arguments":[{"id":15795,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15784,"src":"3005:10:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15793,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2993:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":3870,"src":"2993:11:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1967_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":15796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2993:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":15792,"id":15797,"nodeType":"Return","src":"2986:30:68"}]},"functionSelector":"3e4f49e6","id":15799,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"2834:5:68","nodeType":"FunctionDefinition","overrides":{"id":15788,"nodeType":"OverrideSpecifier","overrides":[{"id":15786,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"2905:8:68"},{"id":15787,"name":"GovernorTimelockControl","nodeType":"IdentifierPath","referencedDeclaration":4120,"src":"2915:23:68"}],"src":"2896:43:68"},"parameters":{"id":15785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15784,"mutability":"mutable","name":"proposalId","nameLocation":"2848:10:68","nodeType":"VariableDeclaration","scope":15799,"src":"2840:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2840:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2839:20:68"},"returnParameters":{"id":15792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15799,"src":"2957:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":15790,"nodeType":"UserDefinedTypeName","pathNode":{"id":15789,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"2957:13:68"},"referencedDeclaration":1967,"src":"2957:13:68","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1967","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"2956:15:68"},"scope":16001,"src":"2825:198:68","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[1221,2159],"body":{"id":15826,"nodeType":"Block","src":"3243:78:68","statements":[{"expression":{"arguments":[{"id":15820,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15802,"src":"3274:7:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15821,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15805,"src":"3283:6:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":15822,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15808,"src":"3291:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":15823,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15810,"src":"3302:11:68","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15818,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3260:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"3260:13:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,string memory) returns (uint256)"}},"id":15824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3260:54:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15817,"id":15825,"nodeType":"Return","src":"3253:61:68"}]},"functionSelector":"7d5e81e2","id":15827,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nameLocation":"3038:7:68","nodeType":"FunctionDefinition","overrides":{"id":15814,"nodeType":"OverrideSpecifier","overrides":[{"id":15812,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"3204:9:68"},{"id":15813,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"3215:8:68"}],"src":"3195:29:68"},"parameters":{"id":15811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15802,"mutability":"mutable","name":"targets","nameLocation":"3072:7:68","nodeType":"VariableDeclaration","scope":15827,"src":"3055:24:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15800,"name":"address","nodeType":"ElementaryTypeName","src":"3055:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15801,"nodeType":"ArrayTypeName","src":"3055:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15805,"mutability":"mutable","name":"values","nameLocation":"3106:6:68","nodeType":"VariableDeclaration","scope":15827,"src":"3089:23:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15803,"name":"uint256","nodeType":"ElementaryTypeName","src":"3089:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15804,"nodeType":"ArrayTypeName","src":"3089:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15808,"mutability":"mutable","name":"calldatas","nameLocation":"3137:9:68","nodeType":"VariableDeclaration","scope":15827,"src":"3122:24:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15806,"name":"bytes","nodeType":"ElementaryTypeName","src":"3122:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15807,"nodeType":"ArrayTypeName","src":"3122:7:68","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":15810,"mutability":"mutable","name":"description","nameLocation":"3170:11:68","nodeType":"VariableDeclaration","scope":15827,"src":"3156:25:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15809,"name":"string","nodeType":"ElementaryTypeName","src":"3156:6:68","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3045:142:68"},"returnParameters":{"id":15817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15827,"src":"3234:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15815,"name":"uint256","nodeType":"ElementaryTypeName","src":"3234:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3233:9:68"},"scope":16001,"src":"3029:292:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1024,3648],"body":{"id":15839,"nodeType":"Block","src":"3459:49:68","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15835,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3476:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"3476:23:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3476:25:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15834,"id":15838,"nodeType":"Return","src":"3469:32:68"}]},"functionSelector":"b58131b0","id":15840,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nameLocation":"3336:17:68","nodeType":"FunctionDefinition","overrides":{"id":15831,"nodeType":"OverrideSpecifier","overrides":[{"id":15829,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"3401:8:68"},{"id":15830,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"3411:16:68"}],"src":"3392:36:68"},"parameters":{"id":15828,"nodeType":"ParameterList","parameters":[],"src":"3353:2:68"},"returnParameters":{"id":15834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15840,"src":"3446:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15832,"name":"uint256","nodeType":"ElementaryTypeName","src":"3446:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3445:9:68"},"scope":16001,"src":"3327:181:68","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[1852,3526],"body":{"id":15867,"nodeType":"Block","src":"3791:85:68","statements":[{"expression":{"arguments":[{"id":15860,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15842,"src":"3824:10:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15861,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15844,"src":"3836:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15862,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15846,"src":"3845:7:68","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":15863,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"3854:6:68","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15864,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15850,"src":"3862:6:68","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":15858,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3808:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_castVote","nodeType":"MemberAccess","referencedDeclaration":3526,"src":"3808:15:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":15865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3808:61:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15857,"id":15866,"nodeType":"Return","src":"3801:68:68"}]},"id":15868,"implemented":true,"kind":"function","modifiers":[],"name":"_castVote","nameLocation":"3523:9:68","nodeType":"FunctionDefinition","overrides":{"id":15854,"nodeType":"OverrideSpecifier","overrides":[{"id":15852,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"3724:8:68"},{"id":15853,"name":"GovernorPreventLateQuorum","nodeType":"IdentifierPath","referencedDeclaration":3565,"src":"3734:25:68"}],"src":"3715:45:68"},"parameters":{"id":15851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15842,"mutability":"mutable","name":"proposalId","nameLocation":"3550:10:68","nodeType":"VariableDeclaration","scope":15868,"src":"3542:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15841,"name":"uint256","nodeType":"ElementaryTypeName","src":"3542:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15844,"mutability":"mutable","name":"account","nameLocation":"3578:7:68","nodeType":"VariableDeclaration","scope":15868,"src":"3570:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15843,"name":"address","nodeType":"ElementaryTypeName","src":"3570:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15846,"mutability":"mutable","name":"support","nameLocation":"3601:7:68","nodeType":"VariableDeclaration","scope":15868,"src":"3595:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":15845,"name":"uint8","nodeType":"ElementaryTypeName","src":"3595:5:68","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":15848,"mutability":"mutable","name":"reason","nameLocation":"3632:6:68","nodeType":"VariableDeclaration","scope":15868,"src":"3618:20:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15847,"name":"string","nodeType":"ElementaryTypeName","src":"3618:6:68","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15850,"mutability":"mutable","name":"params","nameLocation":"3661:6:68","nodeType":"VariableDeclaration","scope":15868,"src":"3648:19:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15849,"name":"bytes","nodeType":"ElementaryTypeName","src":"3648:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3532:141:68"},"returnParameters":{"id":15857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15868,"src":"3778:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15855,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3777:9:68"},"scope":16001,"src":"3514:362:68","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1366,4019],"body":{"id":15897,"nodeType":"Block","src":"4121:88:68","statements":[{"expression":{"arguments":[{"id":15890,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15870,"src":"4146:10:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15891,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15873,"src":"4158:7:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15892,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15876,"src":"4167:6:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":15893,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15879,"src":"4175:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":15894,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15881,"src":"4186:15:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15887,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4131:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_execute","nodeType":"MemberAccess","referencedDeclaration":4019,"src":"4131:14:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":15895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4131:71:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15896,"nodeType":"ExpressionStatement","src":"4131:71:68"}]},"id":15898,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"3891:8:68","nodeType":"FunctionDefinition","overrides":{"id":15885,"nodeType":"OverrideSpecifier","overrides":[{"id":15883,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"4086:8:68"},{"id":15884,"name":"GovernorTimelockControl","nodeType":"IdentifierPath","referencedDeclaration":4120,"src":"4096:23:68"}],"src":"4077:43:68"},"parameters":{"id":15882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15870,"mutability":"mutable","name":"proposalId","nameLocation":"3917:10:68","nodeType":"VariableDeclaration","scope":15898,"src":"3909:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15869,"name":"uint256","nodeType":"ElementaryTypeName","src":"3909:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15873,"mutability":"mutable","name":"targets","nameLocation":"3954:7:68","nodeType":"VariableDeclaration","scope":15898,"src":"3937:24:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15871,"name":"address","nodeType":"ElementaryTypeName","src":"3937:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15872,"nodeType":"ArrayTypeName","src":"3937:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15876,"mutability":"mutable","name":"values","nameLocation":"3988:6:68","nodeType":"VariableDeclaration","scope":15898,"src":"3971:23:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15874,"name":"uint256","nodeType":"ElementaryTypeName","src":"3971:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15875,"nodeType":"ArrayTypeName","src":"3971:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15879,"mutability":"mutable","name":"calldatas","nameLocation":"4019:9:68","nodeType":"VariableDeclaration","scope":15898,"src":"4004:24:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15877,"name":"bytes","nodeType":"ElementaryTypeName","src":"4004:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15878,"nodeType":"ArrayTypeName","src":"4004:7:68","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":15881,"mutability":"mutable","name":"descriptionHash","nameLocation":"4046:15:68","nodeType":"VariableDeclaration","scope":15898,"src":"4038:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4038:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3899:168:68"},"returnParameters":{"id":15886,"nodeType":"ParameterList","parameters":[],"src":"4121:0:68"},"scope":16001,"src":"3882:327:68","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1529,4070],"body":{"id":15925,"nodeType":"Block","src":"4443:82:68","statements":[{"expression":{"arguments":[{"id":15919,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15901,"src":"4474:7:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15920,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"4483:6:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":15921,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15907,"src":"4491:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":15922,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15909,"src":"4502:15:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15917,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4460:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_cancel","nodeType":"MemberAccess","referencedDeclaration":4070,"src":"4460:13:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) returns (uint256)"}},"id":15923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4460:58:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15916,"id":15924,"nodeType":"Return","src":"4453:65:68"}]},"id":15926,"implemented":true,"kind":"function","modifiers":[],"name":"_cancel","nameLocation":"4224:7:68","nodeType":"FunctionDefinition","overrides":{"id":15913,"nodeType":"OverrideSpecifier","overrides":[{"id":15911,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"4390:8:68"},{"id":15912,"name":"GovernorTimelockControl","nodeType":"IdentifierPath","referencedDeclaration":4120,"src":"4400:23:68"}],"src":"4381:43:68"},"parameters":{"id":15910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15901,"mutability":"mutable","name":"targets","nameLocation":"4258:7:68","nodeType":"VariableDeclaration","scope":15926,"src":"4241:24:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15899,"name":"address","nodeType":"ElementaryTypeName","src":"4241:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15900,"nodeType":"ArrayTypeName","src":"4241:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15904,"mutability":"mutable","name":"values","nameLocation":"4292:6:68","nodeType":"VariableDeclaration","scope":15926,"src":"4275:23:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15902,"name":"uint256","nodeType":"ElementaryTypeName","src":"4275:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15903,"nodeType":"ArrayTypeName","src":"4275:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15907,"mutability":"mutable","name":"calldatas","nameLocation":"4323:9:68","nodeType":"VariableDeclaration","scope":15926,"src":"4308:24:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15905,"name":"bytes","nodeType":"ElementaryTypeName","src":"4308:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15906,"nodeType":"ArrayTypeName","src":"4308:7:68","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":15909,"mutability":"mutable","name":"descriptionHash","nameLocation":"4350:15:68","nodeType":"VariableDeclaration","scope":15926,"src":"4342:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4342:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4231:140:68"},"returnParameters":{"id":15916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15926,"src":"4434:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15914,"name":"uint256","nodeType":"ElementaryTypeName","src":"4434:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4433:9:68"},"scope":16001,"src":"4215:310:68","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1885,4083],"body":{"id":15938,"nodeType":"Block","src":"4664:41:68","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15934,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4681:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_executor","nodeType":"MemberAccess","referencedDeclaration":4083,"src":"4681:15:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4681:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":15933,"id":15937,"nodeType":"Return","src":"4674:24:68"}]},"id":15939,"implemented":true,"kind":"function","modifiers":[],"name":"_executor","nameLocation":"4540:9:68","nodeType":"FunctionDefinition","overrides":{"id":15930,"nodeType":"OverrideSpecifier","overrides":[{"id":15928,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"4599:8:68"},{"id":15929,"name":"GovernorTimelockControl","nodeType":"IdentifierPath","referencedDeclaration":4120,"src":"4609:23:68"}],"src":"4590:43:68"},"parameters":{"id":15927,"nodeType":"ParameterList","parameters":[],"src":"4549:2:68"},"returnParameters":{"id":15933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15939,"src":"4651:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15931,"name":"address","nodeType":"ElementaryTypeName","src":"4651:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4650:9:68"},"scope":16001,"src":"4531:174:68","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[842,3803],"body":{"id":15954,"nodeType":"Block","src":"4865:60:68","statements":[{"expression":{"arguments":[{"id":15951,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"4906:11:68","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":15949,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4882:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXGovernor_$16001_$","typeString":"type(contract super MAHAXGovernor)"}},"id":15950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3803,"src":"4882:23:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":15952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4882:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15948,"id":15953,"nodeType":"Return","src":"4875:43:68"}]},"functionSelector":"01ffc9a7","id":15955,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4720:17:68","nodeType":"FunctionDefinition","overrides":{"id":15945,"nodeType":"OverrideSpecifier","overrides":[{"id":15943,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"4803:8:68"},{"id":15944,"name":"GovernorTimelockControl","nodeType":"IdentifierPath","referencedDeclaration":4120,"src":"4813:23:68"}],"src":"4794:43:68"},"parameters":{"id":15942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15941,"mutability":"mutable","name":"interfaceId","nameLocation":"4745:11:68","nodeType":"VariableDeclaration","scope":15955,"src":"4738:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15940,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4738:6:68","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4737:20:68"},"returnParameters":{"id":15948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15955,"src":"4855:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15946,"name":"bool","nodeType":"ElementaryTypeName","src":"4855:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4854:6:68"},"scope":16001,"src":"4711:214:68","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2110],"body":{"id":15966,"nodeType":"Block","src":"5175:31:68","statements":[{"expression":{"id":15964,"name":"_quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15667,"src":"5192:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15963,"id":15965,"nodeType":"Return","src":"5185:14:68"}]},"documentation":{"id":15956,"nodeType":"StructuredDocumentation","src":"4931:127:68","text":" @dev Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`."},"functionSelector":"f8ce560a","id":15967,"implemented":true,"kind":"function","modifiers":[],"name":"quorum","nameLocation":"5072:6:68","nodeType":"FunctionDefinition","overrides":{"id":15960,"nodeType":"OverrideSpecifier","overrides":[],"src":"5136:8:68"},"parameters":{"id":15959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15958,"mutability":"mutable","name":"blockNumber","nameLocation":"5087:11:68","nodeType":"VariableDeclaration","scope":15967,"src":"5079:19:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15957,"name":"uint256","nodeType":"ElementaryTypeName","src":"5079:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5078:21:68"},"returnParameters":{"id":15963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15967,"src":"5162:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15961,"name":"uint256","nodeType":"ElementaryTypeName","src":"5162:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5161:9:68"},"scope":16001,"src":"5063:143:68","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":15979,"nodeType":"Block","src":"5468:41:68","statements":[{"expression":{"arguments":[{"id":15976,"name":"newQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15970,"src":"5492:9:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15975,"name":"_updateQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16000,"src":"5478:13:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5478:24:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15978,"nodeType":"ExpressionStatement","src":"5478:24:68"}]},"documentation":{"id":15968,"nodeType":"StructuredDocumentation","src":"5212:178:68","text":" @dev Changes the quorum.\n Emits a {QuorumUpdated} event.\n Requirements:\n - Must be called through a governance proposal."},"functionSelector":"35680dc2","id":15980,"implemented":true,"kind":"function","modifiers":[{"id":15973,"kind":"modifierInvocation","modifierName":{"id":15972,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"5453:14:68"},"nodeType":"ModifierInvocation","src":"5453:14:68"}],"name":"updateQuorum","nameLocation":"5404:12:68","nodeType":"FunctionDefinition","parameters":{"id":15971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15970,"mutability":"mutable","name":"newQuorum","nameLocation":"5425:9:68","nodeType":"VariableDeclaration","scope":15980,"src":"5417:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15969,"name":"uint256","nodeType":"ElementaryTypeName","src":"5417:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5416:19:68"},"returnParameters":{"id":15974,"nodeType":"ParameterList","parameters":[],"src":"5468:0:68"},"scope":16001,"src":"5395:114:68","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":15999,"nodeType":"Block","src":"5677:123:68","statements":[{"assignments":[15987],"declarations":[{"constant":false,"id":15987,"mutability":"mutable","name":"oldQuorum","nameLocation":"5695:9:68","nodeType":"VariableDeclaration","scope":15999,"src":"5687:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15986,"name":"uint256","nodeType":"ElementaryTypeName","src":"5687:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15989,"initialValue":{"id":15988,"name":"_quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15667,"src":"5707:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5687:27:68"},{"expression":{"id":15992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15990,"name":"_quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15667,"src":"5724:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15991,"name":"newQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"5734:9:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5724:19:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15993,"nodeType":"ExpressionStatement","src":"5724:19:68"},{"eventCall":{"arguments":[{"id":15995,"name":"oldQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15987,"src":"5772:9:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15996,"name":"newQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"5783:9:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15994,"name":"QuorumUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"5758:13:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5758:35:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15998,"nodeType":"EmitStatement","src":"5753:40:68"}]},"documentation":{"id":15981,"nodeType":"StructuredDocumentation","src":"5515:98:68","text":" @dev Changes the quorum numerator.\n Emits a {QuorumUpdated} event."},"id":16000,"implemented":true,"kind":"function","modifiers":[],"name":"_updateQuorum","nameLocation":"5627:13:68","nodeType":"FunctionDefinition","parameters":{"id":15984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15983,"mutability":"mutable","name":"newQuorum","nameLocation":"5649:9:68","nodeType":"VariableDeclaration","scope":16000,"src":"5641:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15982,"name":"uint256","nodeType":"ElementaryTypeName","src":"5641:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5640:19:68"},"returnParameters":{"id":15985,"nodeType":"ParameterList","parameters":[],"src":"5677:0:68"},"scope":16001,"src":"5618:182:68","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":16002,"src":"886:4916:68","usedErrors":[12523]}],"src":"32:5771:68"},"id":68},"contracts/MAHAXLocker.sol":{"ast":{"absolutePath":"contracts/MAHAXLocker.sol","exportedSymbols":{"AccessControl":[319],"ERC2981":[7704],"ERC721Enumerable":[7448],"IERC165":[9849],"IERC20":[5767],"IERC721Receiver":[7110],"INFTLocker":[34923],"INFTStaker":[35022],"IRegistry":[35522],"ITokenURIGenerator":[35664],"MAHAXLocker":[19413],"ReentrancyGuard":[5062]},"id":19414,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16003,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:69"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":16005,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":4739,"src":"57:69:69","symbolAliases":[{"foreign":{"id":16004,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:6:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/common/ERC2981.sol","file":"@openzeppelin/contracts/token/common/ERC2981.sol","id":16008,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":7705,"src":"127:82:69","symbolAliases":[{"foreign":{"id":16006,"name":"ERC2981","nodeType":"Identifier","overloadedDeclarations":[],"src":"135:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16007,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"src":"144:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721Receiver.sol","file":"@openzeppelin/contracts/interfaces/IERC721Receiver.sol","id":16010,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":4764,"src":"210:87:69","symbolAliases":[{"foreign":{"id":16009,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"src":"218:15:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":16012,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":5063,"src":"298:85:69","symbolAliases":[{"foreign":{"id":16011,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"306:15:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":16014,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":320,"src":"384:79:69","symbolAliases":[{"foreign":{"id":16013,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"src":"392:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","id":16016,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":7449,"src":"464:102:69","symbolAliases":[{"foreign":{"id":16015,"name":"ERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"src":"472:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ITokenURIGenerator.sol","file":"./interfaces/ITokenURIGenerator.sol","id":16018,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":35665,"src":"568:71:69","symbolAliases":[{"foreign":{"id":16017,"name":"ITokenURIGenerator","nodeType":"Identifier","overloadedDeclarations":[],"src":"576:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","id":16020,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":35523,"src":"640:53:69","symbolAliases":[{"foreign":{"id":16019,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"648:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"./interfaces/INFTLocker.sol","id":16022,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":34924,"src":"694:55:69","symbolAliases":[{"foreign":{"id":16021,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"702:10:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTStaker.sol","file":"./interfaces/INFTStaker.sol","id":16024,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19414,"sourceUnit":35023,"src":"750:55:69","symbolAliases":[{"foreign":{"id":16023,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"src":"758:10:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16026,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"1495:15:69"},"id":16027,"nodeType":"InheritanceSpecifier","src":"1495:15:69"},{"baseName":{"id":16028,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"1512:10:69"},"id":16029,"nodeType":"InheritanceSpecifier","src":"1512:10:69"},{"baseName":{"id":16030,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"1524:13:69"},"id":16031,"nodeType":"InheritanceSpecifier","src":"1524:13:69"},{"baseName":{"id":16032,"name":"ERC2981","nodeType":"IdentifierPath","referencedDeclaration":7704,"src":"1539:7:69"},"id":16033,"nodeType":"InheritanceSpecifier","src":"1539:7:69"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":16025,"nodeType":"StructuredDocumentation","src":"807:662:69","text":"@title Voting Escrow\n@author Curve Finance\n@notice Votes have a weight depending on time, so that users are\ncommitted to the future of (whatever they are voting for)\n@dev Vote weight decays linearly over time. Lock time cannot be\nmore than `MAXTIME` (4 years).\n# Voting escrow to have time-weighted votes\n# Votes have a weight depending on time, so that users are committed\n# to the future of (whatever they are voting for).\n# The weight in this implementation is linear, and lock cannot be more than maxtime:\n# w ^\n# 1 +        /\n#   |      /\n#   |    /\n#   |  /\n#   |/\n# 0 +--------+------> time\n# maxtime (4 years?)"},"fullyImplemented":true,"id":19413,"linearizedBaseContracts":[19413,7704,319,9837,4757,34923,7092,9849,517,8255,5062],"name":"MAHAXLocker","nameLocation":"1480:11:69","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34742],"constant":false,"functionSelector":"7b103999","id":16037,"mutability":"mutable","name":"registry","nameLocation":"1579:8:69","nodeType":"VariableDeclaration","overrides":{"id":16036,"nodeType":"OverrideSpecifier","overrides":[],"src":"1570:8:69"},"scope":19413,"src":"1553:34:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":16035,"nodeType":"UserDefinedTypeName","pathNode":{"id":16034,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"1553:9:69"},"referencedDeclaration":35522,"src":"1553:9:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":true,"id":16040,"mutability":"constant","name":"WEEK","nameLocation":"1620:4:69","nodeType":"VariableDeclaration","scope":19413,"src":"1594:40:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16038,"name":"uint256","nodeType":"ElementaryTypeName","src":"1594:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":16039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1627:7:69","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"visibility":"internal"},{"constant":true,"id":16047,"mutability":"constant","name":"MAXTIME","nameLocation":"1666:7:69","nodeType":"VariableDeclaration","scope":19413,"src":"1640:51:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16041,"name":"uint256","nodeType":"ElementaryTypeName","src":"1640:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_126144000_by_1","typeString":"int_const 126144000"},"id":16046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_1460_by_1","typeString":"int_const 1460"},"id":16044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":16042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:1:69","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"333635","id":16043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1680:3:69","typeDescriptions":{"typeIdentifier":"t_rational_365_by_1","typeString":"int_const 365"},"value":"365"},"src":"1676:7:69","typeDescriptions":{"typeIdentifier":"t_rational_1460_by_1","typeString":"int_const 1460"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3836343030","id":16045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1686:5:69","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"86400"},"src":"1676:15:69","typeDescriptions":{"typeIdentifier":"t_rational_126144000_by_1","typeString":"int_const 126144000"}},"visibility":"internal"},{"constant":true,"id":16054,"mutability":"constant","name":"iMAXTIME","nameLocation":"1722:8:69","nodeType":"VariableDeclaration","scope":19413,"src":"1697:51:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":16048,"name":"int128","nodeType":"ElementaryTypeName","src":"1697:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"value":{"commonType":{"typeIdentifier":"t_rational_126144000_by_1","typeString":"int_const 126144000"},"id":16053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_1460_by_1","typeString":"int_const 1460"},"id":16051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":16049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1733:1:69","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"333635","id":16050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1737:3:69","typeDescriptions":{"typeIdentifier":"t_rational_365_by_1","typeString":"int_const 365"},"value":"365"},"src":"1733:7:69","typeDescriptions":{"typeIdentifier":"t_rational_1460_by_1","typeString":"int_const 1460"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3836343030","id":16052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1743:5:69","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"86400"},"src":"1733:15:69","typeDescriptions":{"typeIdentifier":"t_rational_126144000_by_1","typeString":"int_const 126144000"}},"visibility":"internal"},{"constant":true,"id":16057,"mutability":"constant","name":"MULTIPLIER","nameLocation":"1780:10:69","nodeType":"VariableDeclaration","scope":19413,"src":"1754:46:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16055,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":16056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1793:7:69","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"constant":false,"functionSelector":"4bd2d9b3","id":16060,"mutability":"mutable","name":"inBootstrapMode","nameLocation":"1819:15:69","nodeType":"VariableDeclaration","scope":19413,"src":"1807:34:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16058,"name":"bool","nodeType":"ElementaryTypeName","src":"1807:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":16059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1837:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"constant":false,"functionSelector":"c7fecbcc","id":16063,"mutability":"mutable","name":"renderingContract","nameLocation":"1874:17:69","nodeType":"VariableDeclaration","scope":19413,"src":"1848:43:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"},"typeName":{"id":16062,"nodeType":"UserDefinedTypeName","pathNode":{"id":16061,"name":"ITokenURIGenerator","nodeType":"IdentifierPath","referencedDeclaration":35664,"src":"1848:18:69"},"referencedDeclaration":35664,"src":"1848:18:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"visibility":"public"},{"constant":false,"functionSelector":"047fc9aa","id":16065,"mutability":"mutable","name":"supply","nameLocation":"1913:6:69","nodeType":"VariableDeclaration","scope":19413,"src":"1898:21:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16064,"name":"uint256","nodeType":"ElementaryTypeName","src":"1898:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"b45a3c0e","id":16070,"mutability":"mutable","name":"locked","nameLocation":"1966:6:69","nodeType":"VariableDeclaration","scope":19413,"src":"1925:47:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance)"},"typeName":{"id":16069,"keyType":{"id":16066,"name":"uint256","nodeType":"ElementaryTypeName","src":"1933:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1925:33:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance)"},"valueType":{"id":16068,"nodeType":"UserDefinedTypeName","pathNode":{"id":16067,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"1944:13:69"},"referencedDeclaration":34891,"src":"1944:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}}},"visibility":"public"},{"constant":false,"functionSelector":"23857d51","id":16074,"mutability":"mutable","name":"ownershipChange","nameLocation":"2014:15:69","nodeType":"VariableDeclaration","scope":19413,"src":"1979:50:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":16073,"keyType":{"id":16071,"name":"uint256","nodeType":"ElementaryTypeName","src":"1987:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1979:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":16072,"name":"uint256","nodeType":"ElementaryTypeName","src":"1998:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"baseFunctions":[34761],"constant":false,"functionSelector":"900cf0cf","id":16077,"mutability":"mutable","name":"epoch","nameLocation":"2060:5:69","nodeType":"VariableDeclaration","overrides":{"id":16076,"nodeType":"OverrideSpecifier","overrides":[],"src":"2051:8:69"},"scope":19413,"src":"2036:29:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16075,"name":"uint256","nodeType":"ElementaryTypeName","src":"2036:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"id":16082,"mutability":"mutable","name":"_pointHistory","nameLocation":"2106:13:69","nodeType":"VariableDeclaration","scope":19413,"src":"2071:48:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point)"},"typeName":{"id":16081,"keyType":{"id":16078,"name":"uint256","nodeType":"ElementaryTypeName","src":"2079:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2071:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point)"},"valueType":{"id":16080,"nodeType":"UserDefinedTypeName","pathNode":{"id":16079,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"2090:5:69"},"referencedDeclaration":34884,"src":"2090:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}}},"visibility":"internal"},{"constant":false,"id":16089,"mutability":"mutable","name":"_userPointHistory","nameLocation":"2199:17:69","nodeType":"VariableDeclaration","scope":19413,"src":"2152:64:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point[1000000000])"},"typeName":{"id":16088,"keyType":{"id":16083,"name":"uint256","nodeType":"ElementaryTypeName","src":"2160:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2152:37:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point[1000000000])"},"valueType":{"baseType":{"id":16085,"nodeType":"UserDefinedTypeName","pathNode":{"id":16084,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"2171:5:69"},"referencedDeclaration":34884,"src":"2171:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"id":16087,"length":{"hexValue":"31303030303030303030","id":16086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2177:10:69","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1000000000"},"nodeType":"ArrayTypeName","src":"2171:17:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_ptr","typeString":"struct INFTLocker.Point[1000000000]"}}},"visibility":"internal"},{"baseFunctions":[34768],"constant":false,"functionSelector":"e58f5947","id":16094,"mutability":"mutable","name":"userPointEpoch","nameLocation":"2295:14:69","nodeType":"VariableDeclaration","overrides":{"id":16093,"nodeType":"OverrideSpecifier","overrides":[],"src":"2286:8:69"},"scope":19413,"src":"2251:58:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":16092,"keyType":{"id":16090,"name":"uint256","nodeType":"ElementaryTypeName","src":"2259:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2251:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":16091,"name":"uint256","nodeType":"ElementaryTypeName","src":"2270:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"f52a36f7","id":16098,"mutability":"mutable","name":"slopeChanges","nameLocation":"2349:12:69","nodeType":"VariableDeclaration","scope":19413,"src":"2315:46:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"},"typeName":{"id":16097,"keyType":{"id":16095,"name":"uint256","nodeType":"ElementaryTypeName","src":"2323:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2315:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"},"valueType":{"id":16096,"name":"int128","nodeType":"ElementaryTypeName","src":"2334:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}},"visibility":"public"},{"constant":true,"functionSelector":"06fdde03","id":16101,"mutability":"constant","name":"name","nameLocation":"2422:4:69","nodeType":"VariableDeclaration","scope":19413,"src":"2399:47:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16099,"name":"string","nodeType":"ElementaryTypeName","src":"2399:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4c6f636b6564204d414841204e4654","id":16100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2429:17:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_83411e51cd1ba07183ea4c358e4a08156e595ed70cfd90223d8d0448709e0d40","typeString":"literal_string \"Locked MAHA NFT\""},"value":"Locked MAHA NFT"},"visibility":"public"},{"constant":true,"functionSelector":"95d89b41","id":16104,"mutability":"constant","name":"symbol","nameLocation":"2475:6:69","nodeType":"VariableDeclaration","scope":19413,"src":"2452:39:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16102,"name":"string","nodeType":"ElementaryTypeName","src":"2452:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d41484158","id":16103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2484:7:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_f06056653f7b86095454a77db9c9b96b352557a747dac3e23513058cac778c2b","typeString":"literal_string \"MAHAX\""},"value":"MAHAX"},"visibility":"public"},{"constant":true,"functionSelector":"54fd4d50","id":16107,"mutability":"constant","name":"version","nameLocation":"2520:7:69","nodeType":"VariableDeclaration","scope":19413,"src":"2497:40:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16105,"name":"string","nodeType":"ElementaryTypeName","src":"2497:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e302e30","id":16106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2530:7:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c","typeString":"literal_string \"1.0.0\""},"value":"1.0.0"},"visibility":"public"},{"constant":true,"functionSelector":"313ce567","id":16110,"mutability":"constant","name":"decimals","nameLocation":"2565:8:69","nodeType":"VariableDeclaration","scope":19413,"src":"2543:35:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16108,"name":"uint8","nodeType":"ElementaryTypeName","src":"2543:5:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3138","id":16109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2576:2:69","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"constant":false,"functionSelector":"08804275","id":16115,"mutability":"mutable","name":"minLockAmount","nameLocation":"2599:13:69","nodeType":"VariableDeclaration","scope":19413,"src":"2584:40:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16111,"name":"uint256","nodeType":"ElementaryTypeName","src":"2584:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_99000000000000000000_by_1","typeString":"int_const 99000000000000000000"},"id":16114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3939","id":16112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2615:2:69","typeDescriptions":{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"},"value":"99"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":16113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2620:4:69","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"2615:9:69","typeDescriptions":{"typeIdentifier":"t_rational_99000000000000000000_by_1","typeString":"int_const 99000000000000000000"}},"visibility":"public"},{"constant":false,"documentation":{"id":16116,"nodeType":"StructuredDocumentation","src":"2631:31:69","text":"@dev Current count of token"},"id":16118,"mutability":"mutable","name":"tokenId","nameLocation":"2684:7:69","nodeType":"VariableDeclaration","scope":19413,"src":"2667:24:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16117,"name":"uint256","nodeType":"ElementaryTypeName","src":"2667:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"documentation":{"id":16119,"nodeType":"StructuredDocumentation","src":"2698:57:69","text":"@dev Mapping from NFT ID to the address that owns it."},"id":16123,"mutability":"mutable","name":"idToOwner","nameLocation":"2797:9:69","nodeType":"VariableDeclaration","scope":19413,"src":"2760:46:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":16122,"keyType":{"id":16120,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2760:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":16121,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":16124,"nodeType":"StructuredDocumentation","src":"2813:49:69","text":"@dev Mapping from NFT ID to approved address."},"id":16128,"mutability":"mutable","name":"idToApprovals","nameLocation":"2904:13:69","nodeType":"VariableDeclaration","scope":19413,"src":"2867:50:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":16127,"keyType":{"id":16125,"name":"uint256","nodeType":"ElementaryTypeName","src":"2875:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2867:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":16126,"name":"address","nodeType":"ElementaryTypeName","src":"2886:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":16129,"nodeType":"StructuredDocumentation","src":"2924:59:69","text":"@dev Mapping from owner address to count of his tokens."},"id":16133,"mutability":"mutable","name":"ownerToNFTokenCount","nameLocation":"3025:19:69","nodeType":"VariableDeclaration","scope":19413,"src":"2988:56:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":16132,"keyType":{"id":16130,"name":"address","nodeType":"ElementaryTypeName","src":"2996:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2988:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":16131,"name":"uint256","nodeType":"ElementaryTypeName","src":"3007:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":16134,"nodeType":"StructuredDocumentation","src":"3051:67:69","text":"@dev Mapping from owner address to mapping of index to tokenIds"},"id":16140,"mutability":"mutable","name":"ownerToNFTokenIdList","nameLocation":"3188:20:69","nodeType":"VariableDeclaration","scope":19413,"src":"3123:85:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":16139,"keyType":{"id":16135,"name":"address","nodeType":"ElementaryTypeName","src":"3131:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3123:47:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":16138,"keyType":{"id":16136,"name":"uint256","nodeType":"ElementaryTypeName","src":"3150:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3142:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":16137,"name":"uint256","nodeType":"ElementaryTypeName","src":"3161:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"constant":false,"documentation":{"id":16141,"nodeType":"StructuredDocumentation","src":"3215:46:69","text":"@dev Mapping from NFT ID to index of owner"},"id":16145,"mutability":"mutable","name":"tokenToOwnerIndex","nameLocation":"3303:17:69","nodeType":"VariableDeclaration","scope":19413,"src":"3266:54:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":16144,"keyType":{"id":16142,"name":"uint256","nodeType":"ElementaryTypeName","src":"3274:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3266:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":16143,"name":"uint256","nodeType":"ElementaryTypeName","src":"3285:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":16146,"nodeType":"StructuredDocumentation","src":"3327:69:69","text":"@dev Mapping from owner address to mapping of operator addresses."},"id":16152,"mutability":"mutable","name":"ownerToOperators","nameLocation":"3455:16:69","nodeType":"VariableDeclaration","scope":19413,"src":"3401:70:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":16151,"keyType":{"id":16147,"name":"address","nodeType":"ElementaryTypeName","src":"3409:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3401:44:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":16150,"keyType":{"id":16148,"name":"address","nodeType":"ElementaryTypeName","src":"3428:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3420:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":16149,"name":"bool","nodeType":"ElementaryTypeName","src":"3439:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"constant":true,"functionSelector":"39c6d4cb","id":16157,"mutability":"constant","name":"MIGRATION_ROLE","nameLocation":"3502:14:69","nodeType":"VariableDeclaration","scope":19413,"src":"3478:68:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3478:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d4947524154494f4e5f524f4c45","id":16155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3529:16:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829e","typeString":"literal_string \"MIGRATION_ROLE\""},"value":"MIGRATION_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829e","typeString":"literal_string \"MIGRATION_ROLE\""}],"id":16154,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3519:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3519:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":16169,"nodeType":"Block","src":"3579:94:69","statements":[{"expression":{"arguments":[{"arguments":[{"id":16161,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"3605:18:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":16162,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3625:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3625:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16160,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"3597:7:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":16164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3597:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420676f7665726e616e6365","id":16165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3638:16:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180","typeString":"literal_string \"not governance\""},"value":"not governance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180","typeString":"literal_string \"not governance\""}],"id":16159,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3589:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3589:66:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16167,"nodeType":"ExpressionStatement","src":"3589:66:69"},{"id":16168,"nodeType":"PlaceholderStatement","src":"3665:1:69"}]},"id":16170,"name":"onlyGovernance","nameLocation":"3562:14:69","nodeType":"ModifierDefinition","parameters":{"id":16158,"nodeType":"ParameterList","parameters":[],"src":"3576:2:69"},"src":"3553:120:69","virtual":false,"visibility":"internal"},{"body":{"id":16182,"nodeType":"Block","src":"3703:88:69","statements":[{"expression":{"arguments":[{"arguments":[{"id":16174,"name":"MIGRATION_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16157,"src":"3729:14:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":16175,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3745:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3745:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16173,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"3721:7:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":16177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3721:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74206d69677261746f72","id":16178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3758:14:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_d446171ee7f95efe390a43478cb30c0775338aa36cae102e91df323bf3b643e0","typeString":"literal_string \"not migrator\""},"value":"not migrator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d446171ee7f95efe390a43478cb30c0775338aa36cae102e91df323bf3b643e0","typeString":"literal_string \"not migrator\""}],"id":16172,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3713:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3713:60:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16180,"nodeType":"ExpressionStatement","src":"3713:60:69"},{"id":16181,"nodeType":"PlaceholderStatement","src":"3783:1:69"}]},"id":16183,"name":"onlyMigrator","nameLocation":"3688:12:69","nodeType":"ModifierDefinition","parameters":{"id":16171,"nodeType":"ParameterList","parameters":[],"src":"3700:2:69"},"src":"3679:112:69","virtual":false,"visibility":"internal"},{"body":{"id":16239,"nodeType":"Block","src":"3944:374:69","statements":[{"expression":{"id":16198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16194,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"3954:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16196,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16185,"src":"3975:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16195,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"3965:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":16197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3965:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"3954:31:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":16199,"nodeType":"ExpressionStatement","src":"3954:31:69"},{"expression":{"id":16206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":16200,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"3996:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":16202,"indexExpression":{"hexValue":"30","id":16201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4010:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3996:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":16203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"3996:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16204,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4019:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"4019:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3996:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16207,"nodeType":"ExpressionStatement","src":"3996:35:69"},{"expression":{"id":16214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":16208,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"4041:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":16210,"indexExpression":{"hexValue":"30","id":16209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4055:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4041:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":16211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"4041:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16212,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4063:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4063:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4041:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16215,"nodeType":"ExpressionStatement","src":"4041:37:69"},{"expression":{"arguments":[{"id":16217,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"4100:18:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":16218,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4120:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4120:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16216,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"4089:10:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4089:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16221,"nodeType":"ExpressionStatement","src":"4089:42:69"},{"expression":{"arguments":[{"id":16223,"name":"MIGRATION_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16157,"src":"4152:14:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":16224,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4168:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4168:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16222,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"4141:10:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4141:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16227,"nodeType":"ExpressionStatement","src":"4141:38:69"},{"expression":{"arguments":[{"id":16229,"name":"_royaltyRcv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16187,"src":"4209:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16230,"name":"_royaltyFeeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16191,"src":"4222:20:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":16228,"name":"_setDefaultRoyalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"4190:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint96_$returns$__$","typeString":"function (address,uint96)"}},"id":16231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4190:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16232,"nodeType":"ExpressionStatement","src":"4190:53:69"},{"expression":{"id":16237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16233,"name":"renderingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16063,"src":"4253:17:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16235,"name":"_renderingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16189,"src":"4292:18:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16234,"name":"ITokenURIGenerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35664,"src":"4273:18:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITokenURIGenerator_$35664_$","typeString":"type(contract ITokenURIGenerator)"}},"id":16236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4273:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"src":"4253:58:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"id":16238,"nodeType":"ExpressionStatement","src":"4253:58:69"}]},"id":16240,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16185,"mutability":"mutable","name":"_registry","nameLocation":"3826:9:69","nodeType":"VariableDeclaration","scope":16240,"src":"3818:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16184,"name":"address","nodeType":"ElementaryTypeName","src":"3818:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16187,"mutability":"mutable","name":"_royaltyRcv","nameLocation":"3853:11:69","nodeType":"VariableDeclaration","scope":16240,"src":"3845:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16186,"name":"address","nodeType":"ElementaryTypeName","src":"3845:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16189,"mutability":"mutable","name":"_renderingContract","nameLocation":"3882:18:69","nodeType":"VariableDeclaration","scope":16240,"src":"3874:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16188,"name":"address","nodeType":"ElementaryTypeName","src":"3874:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16191,"mutability":"mutable","name":"_royaltyFeeNumerator","nameLocation":"3917:20:69","nodeType":"VariableDeclaration","scope":16240,"src":"3910:27:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":16190,"name":"uint96","nodeType":"ElementaryTypeName","src":"3910:6:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"3808:135:69"},"returnParameters":{"id":16193,"nodeType":"ParameterList","parameters":[],"src":"3944:0:69"},"scope":19413,"src":"3797:521:69","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[60,7552,9848],"body":{"id":16278,"nodeType":"Block","src":"4588:261:69","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30783031666663396137","id":16254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4624:10:69","typeDescriptions":{"typeIdentifier":"t_rational_33540519_by_1","typeString":"int_const 33540519"},"value":"0x01ffc9a7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_33540519_by_1","typeString":"int_const 33540519"}],"id":16253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4617:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":16252,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4617:6:69","typeDescriptions":{}}},"id":16255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4617:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16256,"name":"_interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16243,"src":"4639:12:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4617:34:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30783830616335386364","id":16260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4684:10:69","typeDescriptions":{"typeIdentifier":"t_rational_2158778573_by_1","typeString":"int_const 2158778573"},"value":"0x80ac58cd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2158778573_by_1","typeString":"int_const 2158778573"}],"id":16259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4677:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":16258,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4677:6:69","typeDescriptions":{}}},"id":16261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4677:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16262,"name":"_interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16243,"src":"4699:12:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4677:34:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4617:94:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30783562356531333966","id":16267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4744:10:69","typeDescriptions":{"typeIdentifier":"t_rational_1532892063_by_1","typeString":"int_const 1532892063"},"value":"0x5b5e139f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1532892063_by_1","typeString":"int_const 1532892063"}],"id":16266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4737:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":16265,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4737:6:69","typeDescriptions":{}}},"id":16268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4737:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16269,"name":"_interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16243,"src":"4759:12:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4737:34:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4617:154:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":16274,"name":"_interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16243,"src":"4829:12:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16272,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4805:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXLocker_$19413_$","typeString":"type(contract super MAHAXLocker)"}},"id":16273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7552,"src":"4805:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4805:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4617:225:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16251,"id":16277,"nodeType":"Return","src":"4598:244:69"}]},"documentation":{"id":16241,"nodeType":"StructuredDocumentation","src":"4324:106:69","text":"@dev Interface identification is specified in ERC-165.\n @param _interfaceID Id of the interface"},"functionSelector":"01ffc9a7","id":16279,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4444:17:69","nodeType":"FunctionDefinition","overrides":{"id":16248,"nodeType":"OverrideSpecifier","overrides":[{"id":16245,"name":"ERC2981","nodeType":"IdentifierPath","referencedDeclaration":7704,"src":"4528:7:69"},{"id":16246,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":9849,"src":"4537:7:69"},{"id":16247,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"4546:13:69"}],"src":"4519:41:69"},"parameters":{"id":16244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16243,"mutability":"mutable","name":"_interfaceID","nameLocation":"4469:12:69","nodeType":"VariableDeclaration","scope":16279,"src":"4462:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16242,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4462:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4461:21:69"},"returnParameters":{"id":16251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16279,"src":"4578:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16249,"name":"bool","nodeType":"ElementaryTypeName","src":"4578:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4577:6:69"},"scope":19413,"src":"4435:414:69","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[34791],"body":{"id":16287,"nodeType":"Block","src":"4967:30:69","statements":[{"expression":{"id":16285,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16065,"src":"4984:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16284,"id":16286,"nodeType":"Return","src":"4977:13:69"}]},"functionSelector":"d490dbca","id":16288,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupplyWithoutDecay","nameLocation":"4864:23:69","nodeType":"FunctionDefinition","overrides":{"id":16281,"nodeType":"OverrideSpecifier","overrides":[],"src":"4928:8:69"},"parameters":{"id":16280,"nodeType":"ParameterList","parameters":[],"src":"4887:2:69"},"returnParameters":{"id":16284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16288,"src":"4954:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16282,"name":"uint256","nodeType":"ElementaryTypeName","src":"4954:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4953:9:69"},"scope":19413,"src":"4855:142:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34786],"body":{"id":16301,"nodeType":"Block","src":"5120:42:69","statements":[{"expression":{"baseExpression":{"id":16297,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"5137:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":16299,"indexExpression":{"id":16298,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"5151:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5137:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"functionReturnParameters":16296,"id":16300,"nodeType":"Return","src":"5130:25:69"}]},"functionSelector":"8ad4c447","id":16302,"implemented":true,"kind":"function","modifiers":[],"name":"pointHistory","nameLocation":"5012:12:69","nodeType":"FunctionDefinition","overrides":{"id":16292,"nodeType":"OverrideSpecifier","overrides":[],"src":"5076:8:69"},"parameters":{"id":16291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16290,"mutability":"mutable","name":"val","nameLocation":"5033:3:69","nodeType":"VariableDeclaration","scope":16302,"src":"5025:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16289,"name":"uint256","nodeType":"ElementaryTypeName","src":"5025:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5024:13:69"},"returnParameters":{"id":16296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16302,"src":"5102:12:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":16294,"nodeType":"UserDefinedTypeName","pathNode":{"id":16293,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"5102:5:69"},"referencedDeclaration":34884,"src":"5102:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"src":"5101:14:69"},"scope":19413,"src":"5003:159:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34778],"body":{"id":16319,"nodeType":"Block","src":"5302:51:69","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":16313,"name":"_userPointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"5319:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref[1000000000] storage ref)"}},"id":16315,"indexExpression":{"id":16314,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16304,"src":"5337:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5319:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage","typeString":"struct INFTLocker.Point storage ref[1000000000] storage ref"}},"id":16317,"indexExpression":{"id":16316,"name":"loc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16306,"src":"5342:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5319:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"functionReturnParameters":16312,"id":16318,"nodeType":"Return","src":"5312:34:69"}]},"functionSelector":"44acb42a","id":16320,"implemented":true,"kind":"function","modifiers":[],"name":"userPointHistory","nameLocation":"5177:16:69","nodeType":"FunctionDefinition","overrides":{"id":16308,"nodeType":"OverrideSpecifier","overrides":[],"src":"5258:8:69"},"parameters":{"id":16307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16304,"mutability":"mutable","name":"val","nameLocation":"5202:3:69","nodeType":"VariableDeclaration","scope":16320,"src":"5194:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16303,"name":"uint256","nodeType":"ElementaryTypeName","src":"5194:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16306,"mutability":"mutable","name":"loc","nameLocation":"5215:3:69","nodeType":"VariableDeclaration","scope":16320,"src":"5207:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16305,"name":"uint256","nodeType":"ElementaryTypeName","src":"5207:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5193:26:69"},"returnParameters":{"id":16312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16320,"src":"5284:12:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":16310,"nodeType":"UserDefinedTypeName","pathNode":{"id":16309,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"5284:5:69"},"referencedDeclaration":34884,"src":"5284:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"src":"5283:14:69"},"scope":19413,"src":"5168:185:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16341,"nodeType":"Block","src":"5602:116:69","statements":[{"assignments":[16329],"declarations":[{"constant":false,"id":16329,"mutability":"mutable","name":"uepoch","nameLocation":"5620:6:69","nodeType":"VariableDeclaration","scope":16341,"src":"5612:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16328,"name":"uint256","nodeType":"ElementaryTypeName","src":"5612:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16333,"initialValue":{"baseExpression":{"id":16330,"name":"userPointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16094,"src":"5629:14:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16332,"indexExpression":{"id":16331,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16323,"src":"5644:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5629:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5612:41:69"},{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":16334,"name":"_userPointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"5670:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref[1000000000] storage ref)"}},"id":16336,"indexExpression":{"id":16335,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16323,"src":"5688:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5670:27:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage","typeString":"struct INFTLocker.Point storage ref[1000000000] storage ref"}},"id":16338,"indexExpression":{"id":16337,"name":"uepoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16329,"src":"5698:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5670:35:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":16339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"5670:41:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"functionReturnParameters":16327,"id":16340,"nodeType":"Return","src":"5663:48:69"}]},"documentation":{"id":16321,"nodeType":"StructuredDocumentation","src":"5359:163:69","text":"@notice Get the most recently recorded rate of voting power decrease for `_tokenId`\n @param _tokenId token of the NFT\n @return Value of the slope"},"functionSelector":"5633e0a6","id":16342,"implemented":true,"kind":"function","modifiers":[],"name":"getLastUserSlope","nameLocation":"5536:16:69","nodeType":"FunctionDefinition","parameters":{"id":16324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16323,"mutability":"mutable","name":"_tokenId","nameLocation":"5561:8:69","nodeType":"VariableDeclaration","scope":16342,"src":"5553:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16322,"name":"uint256","nodeType":"ElementaryTypeName","src":"5553:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5552:18:69"},"returnParameters":{"id":16327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16342,"src":"5594:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":16325,"name":"int128","nodeType":"ElementaryTypeName","src":"5594:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"5593:8:69"},"scope":19413,"src":"5527:191:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16359,"nodeType":"Block","src":"6039:60:69","statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":16352,"name":"_userPointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"6056:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref[1000000000] storage ref)"}},"id":16354,"indexExpression":{"id":16353,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16345,"src":"6074:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6056:27:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage","typeString":"struct INFTLocker.Point storage ref[1000000000] storage ref"}},"id":16356,"indexExpression":{"id":16355,"name":"_idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16347,"src":"6084:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6056:33:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":16357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"6056:36:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16351,"id":16358,"nodeType":"Return","src":"6049:43:69"}]},"documentation":{"id":16343,"nodeType":"StructuredDocumentation","src":"5724:190:69","text":"@notice Get the timestamp for checkpoint `_idx` for `_tokenId`\n @param _tokenId token of the NFT\n @param _idx User epoch number\n @return Epoch time of the checkpoint"},"functionSelector":"05ae4f8c","id":16360,"implemented":true,"kind":"function","modifiers":[],"name":"userPointHistoryTs","nameLocation":"5928:18:69","nodeType":"FunctionDefinition","parameters":{"id":16348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16345,"mutability":"mutable","name":"_tokenId","nameLocation":"5955:8:69","nodeType":"VariableDeclaration","scope":16360,"src":"5947:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5947:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16347,"mutability":"mutable","name":"_idx","nameLocation":"5973:4:69","nodeType":"VariableDeclaration","scope":16360,"src":"5965:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16346,"name":"uint256","nodeType":"ElementaryTypeName","src":"5965:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5946:32:69"},"returnParameters":{"id":16351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16360,"src":"6026:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16349,"name":"uint256","nodeType":"ElementaryTypeName","src":"6026:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6025:9:69"},"scope":19413,"src":"5919:180:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16373,"nodeType":"Block","src":"6312:44:69","statements":[{"expression":{"expression":{"baseExpression":{"id":16368,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"6329:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":16370,"indexExpression":{"id":16369,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16363,"src":"6336:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6329:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"id":16371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"6329:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16367,"id":16372,"nodeType":"Return","src":"6322:27:69"}]},"documentation":{"id":16361,"nodeType":"StructuredDocumentation","src":"6105:133:69","text":"@notice Get timestamp when `_tokenId`'s lock finishes\n @param _tokenId User NFT\n @return Epoch time of the lock end"},"functionSelector":"626944df","id":16374,"implemented":true,"kind":"function","modifiers":[],"name":"lockedEnd","nameLocation":"6252:9:69","nodeType":"FunctionDefinition","parameters":{"id":16364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16363,"mutability":"mutable","name":"_tokenId","nameLocation":"6270:8:69","nodeType":"VariableDeclaration","scope":16374,"src":"6262:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16362,"name":"uint256","nodeType":"ElementaryTypeName","src":"6262:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6261:18:69"},"returnParameters":{"id":16367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16374,"src":"6303:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16365,"name":"uint256","nodeType":"ElementaryTypeName","src":"6303:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6302:9:69"},"scope":19413,"src":"6243:113:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16386,"nodeType":"Block","src":"6659:51:69","statements":[{"expression":{"baseExpression":{"id":16382,"name":"ownerToNFTokenCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"6676:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16384,"indexExpression":{"id":16383,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16377,"src":"6696:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6676:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16381,"id":16385,"nodeType":"Return","src":"6669:34:69"}]},"documentation":{"id":16375,"nodeType":"StructuredDocumentation","src":"6362:226:69","text":"@dev Returns the number of NFTs owned by `_owner`.\n      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\n @param _owner Address for whom to query the balance."},"id":16387,"implemented":true,"kind":"function","modifiers":[],"name":"_balance","nameLocation":"6602:8:69","nodeType":"FunctionDefinition","parameters":{"id":16378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16377,"mutability":"mutable","name":"_owner","nameLocation":"6619:6:69","nodeType":"VariableDeclaration","scope":16387,"src":"6611:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16376,"name":"address","nodeType":"ElementaryTypeName","src":"6611:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6610:16:69"},"returnParameters":{"id":16381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16387,"src":"6650:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16379,"name":"uint256","nodeType":"ElementaryTypeName","src":"6650:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6649:9:69"},"scope":19413,"src":"6593:117:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[7017],"body":{"id":16400,"nodeType":"Block","src":"7059:40:69","statements":[{"expression":{"arguments":[{"id":16397,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"7085:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16396,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16387,"src":"7076:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":16398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7076:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16395,"id":16399,"nodeType":"Return","src":"7069:23:69"}]},"documentation":{"id":16388,"nodeType":"StructuredDocumentation","src":"6716:226:69","text":"@dev Returns the number of NFTs owned by `_owner`.\n      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\n @param _owner Address for whom to query the balance."},"functionSelector":"70a08231","id":16401,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"6956:9:69","nodeType":"FunctionDefinition","overrides":{"id":16392,"nodeType":"OverrideSpecifier","overrides":[],"src":"7020:8:69"},"parameters":{"id":16391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16390,"mutability":"mutable","name":"_owner","nameLocation":"6974:6:69","nodeType":"VariableDeclaration","scope":16401,"src":"6966:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16389,"name":"address","nodeType":"ElementaryTypeName","src":"6966:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6965:16:69"},"returnParameters":{"id":16395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16401,"src":"7046:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16393,"name":"uint256","nodeType":"ElementaryTypeName","src":"7046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7045:9:69"},"scope":19413,"src":"6947:152:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16413,"nodeType":"Block","src":"7282:43:69","statements":[{"expression":{"baseExpression":{"id":16409,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"7299:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16411,"indexExpression":{"id":16410,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16404,"src":"7309:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7299:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16408,"id":16412,"nodeType":"Return","src":"7292:26:69"}]},"documentation":{"id":16402,"nodeType":"StructuredDocumentation","src":"7105:104:69","text":"@dev Returns the address of the owner of the NFT.\n @param _tokenId The identifier for an NFT."},"id":16414,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"7223:8:69","nodeType":"FunctionDefinition","parameters":{"id":16405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16404,"mutability":"mutable","name":"_tokenId","nameLocation":"7240:8:69","nodeType":"VariableDeclaration","scope":16414,"src":"7232:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16403,"name":"uint256","nodeType":"ElementaryTypeName","src":"7232:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7231:18:69"},"returnParameters":{"id":16408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16414,"src":"7273:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16406,"name":"address","nodeType":"ElementaryTypeName","src":"7273:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7272:9:69"},"scope":19413,"src":"7214:111:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[7025],"body":{"id":16427,"nodeType":"Block","src":"7552:42:69","statements":[{"expression":{"arguments":[{"id":16424,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16417,"src":"7578:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16423,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16414,"src":"7569:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":16425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7569:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16422,"id":16426,"nodeType":"Return","src":"7562:25:69"}]},"documentation":{"id":16415,"nodeType":"StructuredDocumentation","src":"7331:104:69","text":"@dev Returns the address of the owner of the NFT.\n @param _tokenId The identifier for an NFT."},"functionSelector":"6352211e","id":16428,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"7449:7:69","nodeType":"FunctionDefinition","overrides":{"id":16419,"nodeType":"OverrideSpecifier","overrides":[],"src":"7513:8:69"},"parameters":{"id":16418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16417,"mutability":"mutable","name":"_tokenId","nameLocation":"7465:8:69","nodeType":"VariableDeclaration","scope":16428,"src":"7457:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16416,"name":"uint256","nodeType":"ElementaryTypeName","src":"7457:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7456:18:69"},"returnParameters":{"id":16422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16428,"src":"7539:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16420,"name":"address","nodeType":"ElementaryTypeName","src":"7539:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7538:9:69"},"scope":19413,"src":"7440:154:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16466,"nodeType":"Block","src":"7941:229:69","statements":[{"body":{"id":16464,"nodeType":"Block","src":"8021:143:69","statements":[{"assignments":[16449],"declarations":[{"constant":false,"id":16449,"mutability":"mutable","name":"_tokenId","nameLocation":"8043:8:69","nodeType":"VariableDeclaration","scope":16464,"src":"8035:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16448,"name":"uint256","nodeType":"ElementaryTypeName","src":"8035:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16455,"initialValue":{"baseExpression":{"baseExpression":{"id":16450,"name":"ownerToNFTokenIdList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"8054:20:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":16452,"indexExpression":{"id":16451,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16431,"src":"8075:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8054:28:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16454,"indexExpression":{"id":16453,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16437,"src":"8083:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8054:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8035:54:69"},{"expression":{"id":16462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16456,"name":"_power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16434,"src":"8103:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":16458,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16449,"src":"8127:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16459,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8137:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8137:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16457,"name":"_balanceOfNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18741,"src":"8113:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":16461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8113:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8103:50:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16463,"nodeType":"ExpressionStatement","src":"8103:50:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16440,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16437,"src":"7975:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":16441,"name":"ownerToNFTokenCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"7983:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16443,"indexExpression":{"id":16442,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16431,"src":"8003:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7983:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7975:35:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16465,"initializationExpression":{"assignments":[16437],"declarations":[{"constant":false,"id":16437,"mutability":"mutable","name":"index","nameLocation":"7964:5:69","nodeType":"VariableDeclaration","scope":16465,"src":"7956:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16436,"name":"uint256","nodeType":"ElementaryTypeName","src":"7956:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16439,"initialValue":{"hexValue":"30","id":16438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7972:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7956:17:69"},"loopExpression":{"expression":{"id":16446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8012:7:69","subExpression":{"id":16445,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16437,"src":"8012:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16447,"nodeType":"ExpressionStatement","src":"8012:7:69"},"nodeType":"ForStatement","src":"7951:213:69"}]},"documentation":{"id":16429,"nodeType":"StructuredDocumentation","src":"7600:230:69","text":"@dev Returns the voting power of the `_owner`.\n      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\n @param _owner Address for whom to query the voting power of."},"functionSelector":"bcc3f3bd","id":16467,"implemented":true,"kind":"function","modifiers":[],"name":"votingPowerOf","nameLocation":"7844:13:69","nodeType":"FunctionDefinition","parameters":{"id":16432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16431,"mutability":"mutable","name":"_owner","nameLocation":"7866:6:69","nodeType":"VariableDeclaration","scope":16467,"src":"7858:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16430,"name":"address","nodeType":"ElementaryTypeName","src":"7858:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7857:16:69"},"returnParameters":{"id":16435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16434,"mutability":"mutable","name":"_power","nameLocation":"7929:6:69","nodeType":"VariableDeclaration","scope":16467,"src":"7921:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16433,"name":"uint256","nodeType":"ElementaryTypeName","src":"7921:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7920:16:69"},"scope":19413,"src":"7835:335:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[7081],"body":{"id":16480,"nodeType":"Block","src":"8412:47:69","statements":[{"expression":{"baseExpression":{"id":16476,"name":"idToApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16128,"src":"8429:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16478,"indexExpression":{"id":16477,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16470,"src":"8443:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8429:23:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16475,"id":16479,"nodeType":"Return","src":"8422:30:69"}]},"documentation":{"id":16468,"nodeType":"StructuredDocumentation","src":"8176:115:69","text":"@dev Get the approved address for a single NFT.\n @param _tokenId ID of the NFT to query the approval of."},"functionSelector":"081812fc","id":16481,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"8305:11:69","nodeType":"FunctionDefinition","overrides":{"id":16472,"nodeType":"OverrideSpecifier","overrides":[],"src":"8373:8:69"},"parameters":{"id":16471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16470,"mutability":"mutable","name":"_tokenId","nameLocation":"8325:8:69","nodeType":"VariableDeclaration","scope":16481,"src":"8317:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16469,"name":"uint256","nodeType":"ElementaryTypeName","src":"8317:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8316:18:69"},"returnParameters":{"id":16475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16481,"src":"8399:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16473,"name":"address","nodeType":"ElementaryTypeName","src":"8399:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8398:9:69"},"scope":19413,"src":"8296:163:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[7091],"body":{"id":16499,"nodeType":"Block","src":"8798:61:69","statements":[{"expression":{"baseExpression":{"components":[{"baseExpression":{"id":16492,"name":"ownerToOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16152,"src":"8816:16:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":16494,"indexExpression":{"id":16493,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"8833:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8816:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}}],"id":16495,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8815:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16497,"indexExpression":{"id":16496,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"8842:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8815:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16491,"id":16498,"nodeType":"Return","src":"8808:44:69"}]},"documentation":{"id":16482,"nodeType":"StructuredDocumentation","src":"8465:193:69","text":"@dev Checks if `_operator` is an approved operator for `_owner`.\n @param _owner The address that owns the NFTs.\n @param _operator The address that acts on behalf of the owner."},"functionSelector":"e985e9c5","id":16500,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"8672:16:69","nodeType":"FunctionDefinition","overrides":{"id":16488,"nodeType":"OverrideSpecifier","overrides":[],"src":"8762:8:69"},"parameters":{"id":16487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16484,"mutability":"mutable","name":"_owner","nameLocation":"8697:6:69","nodeType":"VariableDeclaration","scope":16500,"src":"8689:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16483,"name":"address","nodeType":"ElementaryTypeName","src":"8689:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16486,"mutability":"mutable","name":"_operator","nameLocation":"8713:9:69","nodeType":"VariableDeclaration","scope":16500,"src":"8705:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16485,"name":"address","nodeType":"ElementaryTypeName","src":"8705:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8688:35:69"},"returnParameters":{"id":16491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16500,"src":"8788:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16489,"name":"bool","nodeType":"ElementaryTypeName","src":"8788:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8787:6:69"},"scope":19413,"src":"8663:196:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16516,"nodeType":"Block","src":"9024:65:69","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":16510,"name":"ownerToNFTokenIdList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"9041:20:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":16512,"indexExpression":{"id":16511,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16503,"src":"9062:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9041:28:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16514,"indexExpression":{"id":16513,"name":"_tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16505,"src":"9070:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9041:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16509,"id":16515,"nodeType":"Return","src":"9034:48:69"}]},"documentation":{"id":16501,"nodeType":"StructuredDocumentation","src":"8865:28:69","text":"@dev  Get token by index"},"functionSelector":"2f745c59","id":16517,"implemented":true,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"8907:19:69","nodeType":"FunctionDefinition","parameters":{"id":16506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16503,"mutability":"mutable","name":"_owner","nameLocation":"8935:6:69","nodeType":"VariableDeclaration","scope":16517,"src":"8927:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16502,"name":"address","nodeType":"ElementaryTypeName","src":"8927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16505,"mutability":"mutable","name":"_tokenIndex","nameLocation":"8951:11:69","nodeType":"VariableDeclaration","scope":16517,"src":"8943:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16504,"name":"uint256","nodeType":"ElementaryTypeName","src":"8943:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8926:37:69"},"returnParameters":{"id":16509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16517,"src":"9011:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16507,"name":"uint256","nodeType":"ElementaryTypeName","src":"9011:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9010:9:69"},"scope":19413,"src":"8898:191:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16562,"nodeType":"Block","src":"9550:326:69","statements":[{"assignments":[16528],"declarations":[{"constant":false,"id":16528,"mutability":"mutable","name":"owner","nameLocation":"9568:5:69","nodeType":"VariableDeclaration","scope":16562,"src":"9560:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16527,"name":"address","nodeType":"ElementaryTypeName","src":"9560:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16532,"initialValue":{"baseExpression":{"id":16529,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"9576:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16531,"indexExpression":{"id":16530,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"9586:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9576:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9560:35:69"},{"assignments":[16534],"declarations":[{"constant":false,"id":16534,"mutability":"mutable","name":"spenderIsOwner","nameLocation":"9610:14:69","nodeType":"VariableDeclaration","scope":16562,"src":"9605:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16533,"name":"bool","nodeType":"ElementaryTypeName","src":"9605:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":16538,"initialValue":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16535,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16528,"src":"9627:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16536,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16520,"src":"9636:8:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9627:17:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9605:39:69"},{"assignments":[16540],"declarations":[{"constant":false,"id":16540,"mutability":"mutable","name":"spenderIsApproved","nameLocation":"9659:17:69","nodeType":"VariableDeclaration","scope":16562,"src":"9654:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16539,"name":"bool","nodeType":"ElementaryTypeName","src":"9654:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":16546,"initialValue":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16541,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16520,"src":"9679:8:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":16542,"name":"idToApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16128,"src":"9691:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16544,"indexExpression":{"id":16543,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"9705:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9691:23:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9679:35:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9654:60:69"},{"assignments":[16548],"declarations":[{"constant":false,"id":16548,"mutability":"mutable","name":"spenderIsApprovedForAll","nameLocation":"9729:23:69","nodeType":"VariableDeclaration","scope":16562,"src":"9724:28:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16547,"name":"bool","nodeType":"ElementaryTypeName","src":"9724:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":16555,"initialValue":{"baseExpression":{"components":[{"baseExpression":{"id":16549,"name":"ownerToOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16152,"src":"9756:16:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":16551,"indexExpression":{"id":16550,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16528,"src":"9773:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9756:23:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}}],"id":16552,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9755:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16554,"indexExpression":{"id":16553,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16520,"src":"9781:8:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9755:35:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9724:66:69"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16556,"name":"spenderIsOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"9807:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":16557,"name":"spenderIsApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16540,"src":"9825:17:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9807:35:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":16559,"name":"spenderIsApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16548,"src":"9846:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9807:62:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16526,"id":16561,"nodeType":"Return","src":"9800:69:69"}]},"documentation":{"id":16518,"nodeType":"StructuredDocumentation","src":"9095:329:69","text":"@dev Returns whether the given spender can transfer a given token ID\n @param _spender address of the spender to query\n @param _tokenId uint ID of the token to be transferred\n @return bool whether the msg.sender is approved for the given token ID, is an operator of the owner, or is the owner of the token"},"id":16563,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"9438:18:69","nodeType":"FunctionDefinition","parameters":{"id":16523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16520,"mutability":"mutable","name":"_spender","nameLocation":"9465:8:69","nodeType":"VariableDeclaration","scope":16563,"src":"9457:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16519,"name":"address","nodeType":"ElementaryTypeName","src":"9457:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16522,"mutability":"mutable","name":"_tokenId","nameLocation":"9483:8:69","nodeType":"VariableDeclaration","scope":16563,"src":"9475:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16521,"name":"uint256","nodeType":"ElementaryTypeName","src":"9475:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9456:36:69"},"returnParameters":{"id":16526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16563,"src":"9540:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16524,"name":"bool","nodeType":"ElementaryTypeName","src":"9540:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9539:6:69"},"scope":19413,"src":"9429:447:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[34800],"body":{"id":16578,"nodeType":"Block","src":"10019:62:69","statements":[{"expression":{"arguments":[{"id":16574,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16565,"src":"10055:8:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16575,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"10065:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16573,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"10036:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":16576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10036:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16572,"id":16577,"nodeType":"Return","src":"10029:45:69"}]},"functionSelector":"430c2081","id":16579,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedOrOwner","nameLocation":"9891:17:69","nodeType":"FunctionDefinition","overrides":{"id":16569,"nodeType":"OverrideSpecifier","overrides":[],"src":"9983:8:69"},"parameters":{"id":16568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16565,"mutability":"mutable","name":"_spender","nameLocation":"9917:8:69","nodeType":"VariableDeclaration","scope":16579,"src":"9909:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16564,"name":"address","nodeType":"ElementaryTypeName","src":"9909:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16567,"mutability":"mutable","name":"_tokenId","nameLocation":"9935:8:69","nodeType":"VariableDeclaration","scope":16579,"src":"9927:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16566,"name":"uint256","nodeType":"ElementaryTypeName","src":"9927:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9908:36:69"},"returnParameters":{"id":16572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16579,"src":"10009:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16570,"name":"bool","nodeType":"ElementaryTypeName","src":"10009:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10008:6:69"},"scope":19413,"src":"9882:199:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16607,"nodeType":"Block","src":"10319:165:69","statements":[{"assignments":[16588],"declarations":[{"constant":false,"id":16588,"mutability":"mutable","name":"currentCount","nameLocation":"10337:12:69","nodeType":"VariableDeclaration","scope":16607,"src":"10329:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16587,"name":"uint256","nodeType":"ElementaryTypeName","src":"10329:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16592,"initialValue":{"arguments":[{"id":16590,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16582,"src":"10361:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16589,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16387,"src":"10352:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":16591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10352:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10329:36:69"},{"expression":{"id":16599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16593,"name":"ownerToNFTokenIdList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"10375:20:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":16596,"indexExpression":{"id":16594,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16582,"src":"10396:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10375:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16597,"indexExpression":{"id":16595,"name":"currentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16588,"src":"10401:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10375:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16598,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16584,"src":"10417:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10375:50:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16600,"nodeType":"ExpressionStatement","src":"10375:50:69"},{"expression":{"id":16605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16601,"name":"tokenToOwnerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16145,"src":"10435:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16603,"indexExpression":{"id":16602,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16584,"src":"10453:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10435:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16604,"name":"currentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16588,"src":"10465:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10435:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16606,"nodeType":"ExpressionStatement","src":"10435:42:69"}]},"documentation":{"id":16580,"nodeType":"StructuredDocumentation","src":"10087:157:69","text":"@dev Add a NFT to an index mapping to a given address\n @param _to address of the receiver\n @param _tokenId uint ID Of the token to be added"},"id":16608,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToOwnerList","nameLocation":"10258:20:69","nodeType":"FunctionDefinition","parameters":{"id":16585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16582,"mutability":"mutable","name":"_to","nameLocation":"10287:3:69","nodeType":"VariableDeclaration","scope":16608,"src":"10279:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16581,"name":"address","nodeType":"ElementaryTypeName","src":"10279:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16584,"mutability":"mutable","name":"_tokenId","nameLocation":"10300:8:69","nodeType":"VariableDeclaration","scope":16608,"src":"10292:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16583,"name":"uint256","nodeType":"ElementaryTypeName","src":"10292:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10278:31:69"},"returnParameters":{"id":16586,"nodeType":"ParameterList","parameters":[],"src":"10319:0:69"},"scope":19413,"src":"10249:235:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16686,"nodeType":"Block","src":"10748:914:69","statements":[{"assignments":[16617],"declarations":[{"constant":false,"id":16617,"mutability":"mutable","name":"currentCount","nameLocation":"10784:12:69","nodeType":"VariableDeclaration","scope":16686,"src":"10776:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16616,"name":"uint256","nodeType":"ElementaryTypeName","src":"10776:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16623,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16619,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16611,"src":"10808:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16618,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16387,"src":"10799:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":16620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10799:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":16621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10817:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10799:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10776:42:69"},{"assignments":[16625],"declarations":[{"constant":false,"id":16625,"mutability":"mutable","name":"currentIndex","nameLocation":"10836:12:69","nodeType":"VariableDeclaration","scope":16686,"src":"10828:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16624,"name":"uint256","nodeType":"ElementaryTypeName","src":"10828:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16629,"initialValue":{"baseExpression":{"id":16626,"name":"tokenToOwnerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16145,"src":"10851:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16628,"indexExpression":{"id":16627,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16613,"src":"10869:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10851:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10828:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16630,"name":"currentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"10893:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16631,"name":"currentIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16625,"src":"10909:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10893:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16684,"nodeType":"Block","src":"11127:529:69","statements":[{"assignments":[16649],"declarations":[{"constant":false,"id":16649,"mutability":"mutable","name":"lastTokenId","nameLocation":"11149:11:69","nodeType":"VariableDeclaration","scope":16684,"src":"11141:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16648,"name":"uint256","nodeType":"ElementaryTypeName","src":"11141:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16655,"initialValue":{"baseExpression":{"baseExpression":{"id":16650,"name":"ownerToNFTokenIdList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"11163:20:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":16652,"indexExpression":{"id":16651,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16611,"src":"11184:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11163:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16654,"indexExpression":{"id":16653,"name":"currentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"11191:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11163:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11141:63:69"},{"expression":{"id":16662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16656,"name":"ownerToNFTokenIdList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"11281:20:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":16659,"indexExpression":{"id":16657,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16611,"src":"11302:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11281:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16660,"indexExpression":{"id":16658,"name":"currentIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16625,"src":"11309:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11281:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16661,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16649,"src":"11325:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11281:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16663,"nodeType":"ExpressionStatement","src":"11281:55:69"},{"expression":{"id":16668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16664,"name":"tokenToOwnerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16145,"src":"11390:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16666,"indexExpression":{"id":16665,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16649,"src":"11408:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11390:30:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16667,"name":"currentIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16625,"src":"11423:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11390:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16669,"nodeType":"ExpressionStatement","src":"11390:45:69"},{"expression":{"id":16676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16670,"name":"ownerToNFTokenIdList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"11515:20:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":16673,"indexExpression":{"id":16671,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16611,"src":"11536:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11515:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16674,"indexExpression":{"id":16672,"name":"currentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"11543:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11515:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11559:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11515:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16677,"nodeType":"ExpressionStatement","src":"11515:45:69"},{"expression":{"id":16682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16678,"name":"tokenToOwnerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16145,"src":"11614:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16680,"indexExpression":{"id":16679,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16613,"src":"11632:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11614:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11644:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11614:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16683,"nodeType":"ExpressionStatement","src":"11614:31:69"}]},"id":16685,"nodeType":"IfStatement","src":"10889:767:69","trueBody":{"id":16647,"nodeType":"Block","src":"10923:198:69","statements":[{"expression":{"id":16639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16633,"name":"ownerToNFTokenIdList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"10980:20:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":16636,"indexExpression":{"id":16634,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16611,"src":"11001:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10980:27:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16637,"indexExpression":{"id":16635,"name":"currentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"11008:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10980:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11024:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10980:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16640,"nodeType":"ExpressionStatement","src":"10980:45:69"},{"expression":{"id":16645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16641,"name":"tokenToOwnerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16145,"src":"11079:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16643,"indexExpression":{"id":16642,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16613,"src":"11097:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11079:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11109:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11079:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16646,"nodeType":"ExpressionStatement","src":"11079:31:69"}]}}]},"documentation":{"id":16609,"nodeType":"StructuredDocumentation","src":"10490:164:69","text":"@dev Remove a NFT from an index mapping to a given address\n @param _from address of the sender\n @param _tokenId uint ID Of the token to be removed"},"id":16687,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromOwnerList","nameLocation":"10668:25:69","nodeType":"FunctionDefinition","parameters":{"id":16614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16611,"mutability":"mutable","name":"_from","nameLocation":"10702:5:69","nodeType":"VariableDeclaration","scope":16687,"src":"10694:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16610,"name":"address","nodeType":"ElementaryTypeName","src":"10694:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16613,"mutability":"mutable","name":"_tokenId","nameLocation":"10717:8:69","nodeType":"VariableDeclaration","scope":16687,"src":"10709:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16612,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10693:33:69"},"returnParameters":{"id":16615,"nodeType":"ParameterList","parameters":[],"src":"10748:0:69"},"scope":19413,"src":"10659:1003:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16723,"nodeType":"Block","src":"11826:335:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16696,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"11895:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16698,"indexExpression":{"id":16697,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"11905:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11895:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":16701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11926:1:69","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":16700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11918:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16699,"name":"address","nodeType":"ElementaryTypeName","src":"11918:7:69","typeDescriptions":{}}},"id":16702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11918:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11895:33:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16695,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"11888:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16705,"nodeType":"ExpressionStatement","src":"11888:41:69"},{"expression":{"id":16710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16706,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"11967:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16708,"indexExpression":{"id":16707,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"11977:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11967:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16709,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16690,"src":"11989:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11967:25:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16711,"nodeType":"ExpressionStatement","src":"11967:25:69"},{"expression":{"arguments":[{"id":16713,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16690,"src":"12068:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16714,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"12073:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16712,"name":"_addTokenToOwnerList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16608,"src":"12047:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":16715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12047:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16716,"nodeType":"ExpressionStatement","src":"12047:35:69"},{"expression":{"id":16721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16717,"name":"ownerToNFTokenCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"12125:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16719,"indexExpression":{"id":16718,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16690,"src":"12145:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12125:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":16720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12153:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12125:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16722,"nodeType":"ExpressionStatement","src":"12125:29:69"}]},"documentation":{"id":16688,"nodeType":"StructuredDocumentation","src":"11668:92:69","text":"@dev Add a NFT to a given address\n      Throws if `_tokenId` is owned by someone."},"id":16724,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenTo","nameLocation":"11774:11:69","nodeType":"FunctionDefinition","parameters":{"id":16693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16690,"mutability":"mutable","name":"_to","nameLocation":"11794:3:69","nodeType":"VariableDeclaration","scope":16724,"src":"11786:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16689,"name":"address","nodeType":"ElementaryTypeName","src":"11786:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16692,"mutability":"mutable","name":"_tokenId","nameLocation":"11807:8:69","nodeType":"VariableDeclaration","scope":16724,"src":"11799:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16691,"name":"uint256","nodeType":"ElementaryTypeName","src":"11799:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11785:31:69"},"returnParameters":{"id":16694,"nodeType":"ParameterList","parameters":[],"src":"11826:0:69"},"scope":19413,"src":"11765:396:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16760,"nodeType":"Block","src":"12339:348:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16733,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"12410:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16735,"indexExpression":{"id":16734,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16729,"src":"12420:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12410:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16736,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16727,"src":"12433:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12410:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16732,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"12403:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12403:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16739,"nodeType":"ExpressionStatement","src":"12403:36:69"},{"expression":{"id":16747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16740,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"12477:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16742,"indexExpression":{"id":16741,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16729,"src":"12487:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12477:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":16745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12507:1:69","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":16744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12499:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16743,"name":"address","nodeType":"ElementaryTypeName","src":"12499:7:69","typeDescriptions":{}}},"id":16746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12499:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12477:32:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16748,"nodeType":"ExpressionStatement","src":"12477:32:69"},{"expression":{"arguments":[{"id":16750,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16727,"src":"12590:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16751,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16729,"src":"12597:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16749,"name":"_removeTokenFromOwnerList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16687,"src":"12564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":16752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12564:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16753,"nodeType":"ExpressionStatement","src":"12564:42:69"},{"expression":{"id":16758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16754,"name":"ownerToNFTokenCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"12649:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16756,"indexExpression":{"id":16755,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16727,"src":"12669:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12649:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":16757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12679:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12649:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16759,"nodeType":"ExpressionStatement","src":"12649:31:69"}]},"documentation":{"id":16725,"nodeType":"StructuredDocumentation","src":"12167:99:69","text":"@dev Remove a NFT from a given address\n      Throws if `_from` is not the current owner."},"id":16761,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFrom","nameLocation":"12280:16:69","nodeType":"FunctionDefinition","parameters":{"id":16730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16727,"mutability":"mutable","name":"_from","nameLocation":"12305:5:69","nodeType":"VariableDeclaration","scope":16761,"src":"12297:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16726,"name":"address","nodeType":"ElementaryTypeName","src":"12297:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16729,"mutability":"mutable","name":"_tokenId","nameLocation":"12320:8:69","nodeType":"VariableDeclaration","scope":16761,"src":"12312:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16728,"name":"uint256","nodeType":"ElementaryTypeName","src":"12312:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12296:33:69"},"returnParameters":{"id":16731,"nodeType":"ParameterList","parameters":[],"src":"12339:0:69"},"scope":19413,"src":"12271:416:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16796,"nodeType":"Block","src":"12868:253:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16770,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"12940:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16772,"indexExpression":{"id":16771,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16766,"src":"12950:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12940:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16773,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16764,"src":"12963:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12940:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16769,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"12933:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12933:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16776,"nodeType":"ExpressionStatement","src":"12933:37:69"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16777,"name":"idToApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16128,"src":"12984:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16779,"indexExpression":{"id":16778,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16766,"src":"12998:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12984:23:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13019:1:69","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":16781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13011:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16780,"name":"address","nodeType":"ElementaryTypeName","src":"13011:7:69","typeDescriptions":{}}},"id":16783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13011:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12984:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16795,"nodeType":"IfStatement","src":"12980:135:69","trueBody":{"id":16794,"nodeType":"Block","src":"13023:92:69","statements":[{"expression":{"id":16792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16785,"name":"idToApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16128,"src":"13068:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16787,"indexExpression":{"id":16786,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16766,"src":"13082:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13068:23:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":16790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13102:1:69","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":16789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13094:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16788,"name":"address","nodeType":"ElementaryTypeName","src":"13094:7:69","typeDescriptions":{}}},"id":16791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13094:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13068:36:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16793,"nodeType":"ExpressionStatement","src":"13068:36:69"}]}}]},"documentation":{"id":16762,"nodeType":"StructuredDocumentation","src":"12693:103:69","text":"@dev Clear an approval of a given address\n      Throws if `_owner` is not the current owner."},"id":16797,"implemented":true,"kind":"function","modifiers":[],"name":"_clearApproval","nameLocation":"12810:14:69","nodeType":"FunctionDefinition","parameters":{"id":16767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16764,"mutability":"mutable","name":"_owner","nameLocation":"12833:6:69","nodeType":"VariableDeclaration","scope":16797,"src":"12825:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16763,"name":"address","nodeType":"ElementaryTypeName","src":"12825:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16766,"mutability":"mutable","name":"_tokenId","nameLocation":"12849:8:69","nodeType":"VariableDeclaration","scope":16797,"src":"12841:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16765,"name":"uint256","nodeType":"ElementaryTypeName","src":"12841:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12824:34:69"},"returnParameters":{"id":16768,"nodeType":"ParameterList","parameters":[],"src":"12868:0:69"},"scope":19413,"src":"12801:320:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16853,"nodeType":"Block","src":"13670:634:69","statements":[{"expression":{"arguments":[{"id":16813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13718:20:69","subExpression":{"arguments":[{"id":16811,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"13729:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16810,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"13719:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":16812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13719:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7374616b6564","id":16814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13740:8:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db","typeString":"literal_string \"staked\""},"value":"staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db","typeString":"literal_string \"staked\""}],"id":16809,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13710:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13710:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16816,"nodeType":"ExpressionStatement","src":"13710:39:69"},{"expression":{"arguments":[{"arguments":[{"id":16819,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16806,"src":"13786:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16820,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"13795:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16818,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"13767:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":16821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13767:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420617070726f7665642073656e646572","id":16822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13806:21:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d3f0f5990ed3a2cdc2a6bcc5d4731942076e9e813c5a0ff1f3a8b8b2fd993e","typeString":"literal_string \"not approved sender\""},"value":"not approved sender"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_42d3f0f5990ed3a2cdc2a6bcc5d4731942076e9e813c5a0ff1f3a8b8b2fd993e","typeString":"literal_string \"not approved sender\""}],"id":16817,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13759:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13759:69:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16824,"nodeType":"ExpressionStatement","src":"13759:69:69"},{"expression":{"arguments":[{"id":16826,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16800,"src":"13923:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16827,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"13930:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16825,"name":"_clearApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16797,"src":"13908:14:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":16828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13908:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16829,"nodeType":"ExpressionStatement","src":"13908:31:69"},{"expression":{"arguments":[{"id":16831,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16800,"src":"14029:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16832,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"14036:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16830,"name":"_removeTokenFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16761,"src":"14012:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":16833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14012:33:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16834,"nodeType":"ExpressionStatement","src":"14012:33:69"},{"expression":{"arguments":[{"id":16836,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16802,"src":"14086:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16837,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"14091:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16835,"name":"_addTokenTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16724,"src":"14074:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":16838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14074:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16839,"nodeType":"ExpressionStatement","src":"14074:26:69"},{"expression":{"id":16845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16840,"name":"ownershipChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"14184:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16842,"indexExpression":{"id":16841,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"14200:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14184:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16843,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14212:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"14212:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14184:40:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16846,"nodeType":"ExpressionStatement","src":"14184:40:69"},{"eventCall":{"arguments":[{"id":16848,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16800,"src":"14276:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16849,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16802,"src":"14283:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16850,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"14288:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16847,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6991,"src":"14267:8:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":16851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14267:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16852,"nodeType":"EmitStatement","src":"14262:35:69"}]},"documentation":{"id":16798,"nodeType":"StructuredDocumentation","src":"13127:405:69","text":"@dev Exeute transfer of a NFT.\n      Throws unless `msg.sender` is the current owner, an authorized operator, or the approved\n      address for this NFT. (NOTE: `msg.sender` not allowed in internal function so pass `_sender`.)\n      Throws if `_to` is the zero address.\n      Throws if `_from` is not the current owner.\n      Throws if `_tokenId` is not a valid NFT."},"id":16854,"implemented":true,"kind":"function","modifiers":[],"name":"_transferFrom","nameLocation":"13546:13:69","nodeType":"FunctionDefinition","parameters":{"id":16807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16800,"mutability":"mutable","name":"_from","nameLocation":"13577:5:69","nodeType":"VariableDeclaration","scope":16854,"src":"13569:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16799,"name":"address","nodeType":"ElementaryTypeName","src":"13569:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16802,"mutability":"mutable","name":"_to","nameLocation":"13600:3:69","nodeType":"VariableDeclaration","scope":16854,"src":"13592:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16801,"name":"address","nodeType":"ElementaryTypeName","src":"13592:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16804,"mutability":"mutable","name":"_tokenId","nameLocation":"13621:8:69","nodeType":"VariableDeclaration","scope":16854,"src":"13613:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16803,"name":"uint256","nodeType":"ElementaryTypeName","src":"13613:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16806,"mutability":"mutable","name":"_sender","nameLocation":"13647:7:69","nodeType":"VariableDeclaration","scope":16854,"src":"13639:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16805,"name":"address","nodeType":"ElementaryTypeName","src":"13639:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13559:101:69"},"returnParameters":{"id":16808,"nodeType":"ParameterList","parameters":[],"src":"13670:0:69"},"scope":19413,"src":"13537:767:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[7057],"body":{"id":16873,"nodeType":"Block","src":"15018:64:69","statements":[{"expression":{"arguments":[{"id":16866,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16857,"src":"15042:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16867,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"15049:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16868,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16861,"src":"15054:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16869,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15064:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"15064:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16865,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16854,"src":"15028:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":16871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15028:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16872,"nodeType":"ExpressionStatement","src":"15028:47:69"}]},"documentation":{"id":16855,"nodeType":"StructuredDocumentation","src":"14339:558:69","text":"@dev Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT.\n      Throws if `_from` is not the current owner.\n      Throws if `_to` is the zero address.\n      Throws if `_tokenId` is not a valid NFT.\n @notice The caller is responsible to confirm that `_to` is capable of receiving NFTs or else\n        they maybe be permanently lost.\n @param _from The current owner of the NFT.\n @param _to The new owner.\n @param _tokenId The NFT to transfer."},"functionSelector":"23b872dd","id":16874,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"14911:12:69","nodeType":"FunctionDefinition","overrides":{"id":16863,"nodeType":"OverrideSpecifier","overrides":[],"src":"15009:8:69"},"parameters":{"id":16862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16857,"mutability":"mutable","name":"_from","nameLocation":"14941:5:69","nodeType":"VariableDeclaration","scope":16874,"src":"14933:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16856,"name":"address","nodeType":"ElementaryTypeName","src":"14933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16859,"mutability":"mutable","name":"_to","nameLocation":"14964:3:69","nodeType":"VariableDeclaration","scope":16874,"src":"14956:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16858,"name":"address","nodeType":"ElementaryTypeName","src":"14956:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16861,"mutability":"mutable","name":"_tokenId","nameLocation":"14985:8:69","nodeType":"VariableDeclaration","scope":16874,"src":"14977:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16860,"name":"uint256","nodeType":"ElementaryTypeName","src":"14977:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14923:76:69"},"returnParameters":{"id":16864,"nodeType":"ParameterList","parameters":[],"src":"15018:0:69"},"scope":19413,"src":"14902:180:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16889,"nodeType":"Block","src":"15155:310:69","statements":[{"assignments":[16882],"declarations":[{"constant":false,"id":16882,"mutability":"mutable","name":"size","nameLocation":"15359:4:69","nodeType":"VariableDeclaration","scope":16889,"src":"15351:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16881,"name":"uint256","nodeType":"ElementaryTypeName","src":"15351:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16883,"nodeType":"VariableDeclarationStatement","src":"15351:12:69"},{"AST":{"nodeType":"YulBlock","src":"15382:52:69","statements":[{"nodeType":"YulAssignment","src":"15396:28:69","value":{"arguments":[{"name":"account","nodeType":"YulIdentifier","src":"15416:7:69"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"15404:11:69"},"nodeType":"YulFunctionCall","src":"15404:20:69"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"15396:4:69"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":16876,"isOffset":false,"isSlot":false,"src":"15416:7:69","valueSize":1},{"declaration":16882,"isOffset":false,"isSlot":false,"src":"15396:4:69","valueSize":1}],"id":16884,"nodeType":"InlineAssembly","src":"15373:61:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16885,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16882,"src":"15450:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15457:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15450:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16880,"id":16888,"nodeType":"Return","src":"15443:15:69"}]},"id":16890,"implemented":true,"kind":"function","modifiers":[],"name":"_isContract","nameLocation":"15097:11:69","nodeType":"FunctionDefinition","parameters":{"id":16877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16876,"mutability":"mutable","name":"account","nameLocation":"15117:7:69","nodeType":"VariableDeclaration","scope":16890,"src":"15109:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16875,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15108:17:69"},"returnParameters":{"id":16880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16890,"src":"15149:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16878,"name":"bool","nodeType":"ElementaryTypeName","src":"15149:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15148:6:69"},"scope":19413,"src":"15088:377:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[7037],"body":{"id":16949,"nodeType":"Block","src":"16415:820:69","statements":[{"expression":{"arguments":[{"id":16904,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16893,"src":"16439:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16905,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"16446:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16906,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16897,"src":"16451:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16907,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16461:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16461:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16903,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16854,"src":"16425:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":16909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16425:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16910,"nodeType":"ExpressionStatement","src":"16425:47:69"},{"condition":{"arguments":[{"id":16912,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"16499:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16911,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"16487:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16487:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16948,"nodeType":"IfStatement","src":"16483:746:69","trueBody":{"id":16947,"nodeType":"Block","src":"16505:724:69","statements":[{"clauses":[{"block":{"id":16927,"nodeType":"Block","src":"16844:2:69","statements":[]},"errorName":"","id":16928,"nodeType":"TryCatchClause","parameters":{"id":16926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16928,"src":"16836:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16924,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16836:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"16835:8:69"},"src":"16827:19:69"},{"block":{"id":16944,"nodeType":"Block","src":"16875:344:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16932,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"16897:6:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"16897:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16914:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16897:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16942,"nodeType":"Block","src":"17070:135:69","statements":[{"AST":{"nodeType":"YulBlock","src":"17101:86:69","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17138:2:69","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"17142:6:69"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17134:3:69"},"nodeType":"YulFunctionCall","src":"17134:15:69"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"17157:6:69"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17151:5:69"},"nodeType":"YulFunctionCall","src":"17151:13:69"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17127:6:69"},"nodeType":"YulFunctionCall","src":"17127:38:69"},"nodeType":"YulExpressionStatement","src":"17127:38:69"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":16930,"isOffset":false,"isSlot":false,"src":"17142:6:69","valueSize":1},{"declaration":16930,"isOffset":false,"isSlot":false,"src":"17157:6:69","valueSize":1}],"id":16941,"nodeType":"InlineAssembly","src":"17092:95:69"}]},"id":16943,"nodeType":"IfStatement","src":"16893:312:69","trueBody":{"id":16940,"nodeType":"Block","src":"16917:147:69","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":16937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16971:52:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":16936,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"16939:6:69","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16939:106:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16939,"nodeType":"ExpressionStatement","src":"16939:106:69"}]}}]},"errorName":"","id":16945,"nodeType":"TryCatchClause","parameters":{"id":16931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16930,"mutability":"mutable","name":"reason","nameLocation":"16867:6:69","nodeType":"VariableDeclaration","scope":16945,"src":"16854:19:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16929,"name":"bytes","nodeType":"ElementaryTypeName","src":"16854:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16853:21:69"},"src":"16847:372:69"}],"externalCall":{"arguments":[{"expression":{"id":16918,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16702:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16702:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16920,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16893,"src":"16734:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16921,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16897,"src":"16761:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16922,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16899,"src":"16791:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":16915,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"16659:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16914,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7110,"src":"16643:15:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$7110_$","typeString":"type(contract IERC721Receiver)"}},"id":16916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16643:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$7110","typeString":"contract IERC721Receiver"}},"id":16917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":7109,"src":"16643:37:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":16923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16643:171:69","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":16946,"nodeType":"TryStatement","src":"16623:596:69"}]}}]},"documentation":{"id":16891,"nodeType":"StructuredDocumentation","src":"15471:793:69","text":"@dev Transfers the ownership of an NFT from one address to another address.\n      Throws unless `msg.sender` is the current owner, an authorized operator, or the\n      approved address for this NFT.\n      Throws if `_from` is not the current owner.\n      Throws if `_to` is the zero address.\n      Throws if `_tokenId` is not a valid NFT.\n      If `_to` is a smart contract, it calls `onERC721Received` on `_to` and throws if\n      the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint,bytes)\"))`.\n @param _from The current owner of the NFT.\n @param _to The new owner.\n @param _tokenId The NFT to transfer.\n @param _data Additional data with no specified format, sent in call to `_to`."},"functionSelector":"b88d4fde","id":16950,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"16278:16:69","nodeType":"FunctionDefinition","overrides":{"id":16901,"nodeType":"OverrideSpecifier","overrides":[],"src":"16406:8:69"},"parameters":{"id":16900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16893,"mutability":"mutable","name":"_from","nameLocation":"16312:5:69","nodeType":"VariableDeclaration","scope":16950,"src":"16304:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16892,"name":"address","nodeType":"ElementaryTypeName","src":"16304:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16895,"mutability":"mutable","name":"_to","nameLocation":"16335:3:69","nodeType":"VariableDeclaration","scope":16950,"src":"16327:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16894,"name":"address","nodeType":"ElementaryTypeName","src":"16327:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16897,"mutability":"mutable","name":"_tokenId","nameLocation":"16356:8:69","nodeType":"VariableDeclaration","scope":16950,"src":"16348:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16896,"name":"uint256","nodeType":"ElementaryTypeName","src":"16348:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16899,"mutability":"mutable","name":"_data","nameLocation":"16387:5:69","nodeType":"VariableDeclaration","scope":16950,"src":"16374:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16898,"name":"bytes","nodeType":"ElementaryTypeName","src":"16374:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16294:104:69"},"returnParameters":{"id":16902,"nodeType":"ParameterList","parameters":[],"src":"16415:0:69"},"scope":19413,"src":"16269:966:69","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7047],"body":{"id":16968,"nodeType":"Block","src":"18073:59:69","statements":[{"expression":{"arguments":[{"id":16962,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16953,"src":"18100:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16963,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"18107:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16964,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16957,"src":"18112:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":16965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18122:2:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":16961,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16950,"src":"18083:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":16966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18083:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16967,"nodeType":"ExpressionStatement","src":"18083:42:69"}]},"documentation":{"id":16951,"nodeType":"StructuredDocumentation","src":"17241:707:69","text":"@dev Transfers the ownership of an NFT from one address to another address.\n      Throws unless `msg.sender` is the current owner, an authorized operator, or the\n      approved address for this NFT.\n      Throws if `_from` is not the current owner.\n      Throws if `_to` is the zero address.\n      Throws if `_tokenId` is not a valid NFT.\n      If `_to` is a smart contract, it calls `onERC721Received` on `_to` and throws if\n      the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint,bytes)\"))`.\n @param _from The current owner of the NFT.\n @param _to The new owner.\n @param _tokenId The NFT to transfer."},"functionSelector":"42842e0e","id":16969,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"17962:16:69","nodeType":"FunctionDefinition","overrides":{"id":16959,"nodeType":"OverrideSpecifier","overrides":[],"src":"18064:8:69"},"parameters":{"id":16958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16953,"mutability":"mutable","name":"_from","nameLocation":"17996:5:69","nodeType":"VariableDeclaration","scope":16969,"src":"17988:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16952,"name":"address","nodeType":"ElementaryTypeName","src":"17988:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16955,"mutability":"mutable","name":"_to","nameLocation":"18019:3:69","nodeType":"VariableDeclaration","scope":16969,"src":"18011:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16954,"name":"address","nodeType":"ElementaryTypeName","src":"18011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16957,"mutability":"mutable","name":"_tokenId","nameLocation":"18040:8:69","nodeType":"VariableDeclaration","scope":16969,"src":"18032:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16956,"name":"uint256","nodeType":"ElementaryTypeName","src":"18032:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17978:76:69"},"returnParameters":{"id":16960,"nodeType":"ParameterList","parameters":[],"src":"18073:0:69"},"scope":19413,"src":"17953:179:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17039,"nodeType":"Block","src":"18744:634:69","statements":[{"assignments":[16978],"declarations":[{"constant":false,"id":16978,"mutability":"mutable","name":"owner","nameLocation":"18762:5:69","nodeType":"VariableDeclaration","scope":17039,"src":"18754:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16977,"name":"address","nodeType":"ElementaryTypeName","src":"18754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16982,"initialValue":{"baseExpression":{"id":16979,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"18770:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":16981,"indexExpression":{"id":16980,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16974,"src":"18780:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18770:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18754:35:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16984,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16978,"src":"18858:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18875:1:69","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":16986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18867:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16985,"name":"address","nodeType":"ElementaryTypeName","src":"18867:7:69","typeDescriptions":{}}},"id":16988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18867:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18858:19:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f776e657220697320307830","id":16990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18879:14:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_bdea70ca58d45c47d88ee4f1bb4df5d8575d20650a8c655e8066379cdac05e60","typeString":"literal_string \"owner is 0x0\""},"value":"owner is 0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bdea70ca58d45c47d88ee4f1bb4df5d8575d20650a8c655e8066379cdac05e60","typeString":"literal_string \"owner is 0x0\""}],"id":16983,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18850:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18850:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16992,"nodeType":"ExpressionStatement","src":"18850:44:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16994,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16972,"src":"18966:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16995,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16978,"src":"18979:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18966:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74206f776e6572","id":16997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18986:11:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e","typeString":"literal_string \"not owner\""},"value":"not owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e","typeString":"literal_string \"not owner\""}],"id":16993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18958:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18958:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16999,"nodeType":"ExpressionStatement","src":"18958:40:69"},{"assignments":[17001],"declarations":[{"constant":false,"id":17001,"mutability":"mutable","name":"senderIsOwner","nameLocation":"19043:13:69","nodeType":"VariableDeclaration","scope":17039,"src":"19038:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17000,"name":"bool","nodeType":"ElementaryTypeName","src":"19038:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":17009,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17002,"name":"idToOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"19060:9:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":17004,"indexExpression":{"id":17003,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16974,"src":"19070:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19060:19:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17005,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19083:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19083:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19060:33:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17008,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19059:35:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"19038:56:69"},{"assignments":[17011],"declarations":[{"constant":false,"id":17011,"mutability":"mutable","name":"senderIsApprovedForAll","nameLocation":"19109:22:69","nodeType":"VariableDeclaration","scope":17039,"src":"19104:27:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17010,"name":"bool","nodeType":"ElementaryTypeName","src":"19104:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":17019,"initialValue":{"baseExpression":{"components":[{"baseExpression":{"id":17012,"name":"ownerToOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16152,"src":"19135:16:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":17014,"indexExpression":{"id":17013,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16978,"src":"19152:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19135:23:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}}],"id":17015,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19134:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17018,"indexExpression":{"expression":{"id":17016,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19160:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19160:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19134:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"19104:67:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17021,"name":"senderIsOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"19189:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":17022,"name":"senderIsApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17011,"src":"19206:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19189:39:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642073656e646572","id":17024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19230:16:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_175ad23f068aed3ab88ee19620d541e9ae3d91161407ed4bb90c97cce31b0783","typeString":"literal_string \"invalid sender\""},"value":"invalid sender"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_175ad23f068aed3ab88ee19620d541e9ae3d91161407ed4bb90c97cce31b0783","typeString":"literal_string \"invalid sender\""}],"id":17020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19181:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19181:66:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17026,"nodeType":"ExpressionStatement","src":"19181:66:69"},{"expression":{"id":17031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17027,"name":"idToApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16128,"src":"19285:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":17029,"indexExpression":{"id":17028,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16974,"src":"19299:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19285:23:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17030,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16972,"src":"19311:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19285:35:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17032,"nodeType":"ExpressionStatement","src":"19285:35:69"},{"eventCall":{"arguments":[{"id":17034,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16978,"src":"19344:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17035,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16972,"src":"19351:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17036,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16974,"src":"19362:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17033,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"19335:8:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":17037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19335:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17038,"nodeType":"EmitStatement","src":"19330:41:69"}]},"documentation":{"id":16970,"nodeType":"StructuredDocumentation","src":"18138:537:69","text":"@dev Set or reaffirm the approved address for an NFT. The zero address indicates there is no approved address.\n      Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\n      Throws if `_tokenId` is not a valid NFT. (NOTE: This is not written the EIP)\n      Throws if `_approved` is the current owner. (NOTE: This is not written the EIP)\n @param _approved Address to be approved for the given NFT ID.\n @param _tokenId ID of the token to be approved."},"id":17040,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"18689:8:69","nodeType":"FunctionDefinition","parameters":{"id":16975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16972,"mutability":"mutable","name":"_approved","nameLocation":"18706:9:69","nodeType":"VariableDeclaration","scope":17040,"src":"18698:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16971,"name":"address","nodeType":"ElementaryTypeName","src":"18698:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16974,"mutability":"mutable","name":"_tokenId","nameLocation":"18725:8:69","nodeType":"VariableDeclaration","scope":17040,"src":"18717:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16973,"name":"uint256","nodeType":"ElementaryTypeName","src":"18717:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18697:37:69"},"returnParameters":{"id":16976,"nodeType":"ParameterList","parameters":[],"src":"18744:0:69"},"scope":19413,"src":"18680:698:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[7065],"body":{"id":17054,"nodeType":"Block","src":"19998:46:69","statements":[{"expression":{"arguments":[{"id":17050,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17043,"src":"20017:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17051,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17045,"src":"20028:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17049,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17040,"src":"20008:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20008:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17053,"nodeType":"ExpressionStatement","src":"20008:29:69"}]},"documentation":{"id":17041,"nodeType":"StructuredDocumentation","src":"19384:537:69","text":"@dev Set or reaffirm the approved address for an NFT. The zero address indicates there is no approved address.\n      Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\n      Throws if `_tokenId` is not a valid NFT. (NOTE: This is not written the EIP)\n      Throws if `_approved` is the current owner. (NOTE: This is not written the EIP)\n @param _approved Address to be approved for the given NFT ID.\n @param _tokenId ID of the token to be approved."},"functionSelector":"095ea7b3","id":17055,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"19935:7:69","nodeType":"FunctionDefinition","overrides":{"id":17047,"nodeType":"OverrideSpecifier","overrides":[],"src":"19989:8:69"},"parameters":{"id":17046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17043,"mutability":"mutable","name":"_approved","nameLocation":"19951:9:69","nodeType":"VariableDeclaration","scope":17055,"src":"19943:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17042,"name":"address","nodeType":"ElementaryTypeName","src":"19943:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17045,"mutability":"mutable","name":"_tokenId","nameLocation":"19970:8:69","nodeType":"VariableDeclaration","scope":17055,"src":"19962:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17044,"name":"uint256","nodeType":"ElementaryTypeName","src":"19962:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19942:37:69"},"returnParameters":{"id":17048,"nodeType":"ParameterList","parameters":[],"src":"19998:0:69"},"scope":19413,"src":"19926:118:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7073],"body":{"id":17087,"nodeType":"Block","src":"20648:225:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17065,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17058,"src":"20718:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20731:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20731:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20718:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17064,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"20711:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20711:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17070,"nodeType":"ExpressionStatement","src":"20711:31:69"},{"expression":{"id":17078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":17071,"name":"ownerToOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16152,"src":"20752:16:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":17075,"indexExpression":{"expression":{"id":17072,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20769:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20769:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20752:28:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17076,"indexExpression":{"id":17074,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17058,"src":"20781:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20752:39:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17077,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17060,"src":"20794:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20752:51:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17079,"nodeType":"ExpressionStatement","src":"20752:51:69"},{"eventCall":{"arguments":[{"expression":{"id":17081,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20833:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20833:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17083,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17058,"src":"20845:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17084,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17060,"src":"20856:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17080,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"20818:14:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":17085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20818:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17086,"nodeType":"EmitStatement","src":"20813:53:69"}]},"documentation":{"id":17056,"nodeType":"StructuredDocumentation","src":"20050:493:69","text":"@dev Enables or disables approval for a third party (\"operator\") to manage all of\n      `msg.sender`'s assets. It also emits the ApprovalForAll event.\n      Throws if `_operator` is the `msg.sender`. (NOTE: This is not written the EIP)\n @notice This works even if sender doesn't own any tokens at the time.\n @param _operator Address to add to the set of authorized operators.\n @param _approved True if the operators is approved, false to revoke approval."},"functionSelector":"a22cb465","id":17088,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"20557:17:69","nodeType":"FunctionDefinition","overrides":{"id":17062,"nodeType":"OverrideSpecifier","overrides":[],"src":"20635:8:69"},"parameters":{"id":17061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17058,"mutability":"mutable","name":"_operator","nameLocation":"20583:9:69","nodeType":"VariableDeclaration","scope":17088,"src":"20575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17057,"name":"address","nodeType":"ElementaryTypeName","src":"20575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17060,"mutability":"mutable","name":"_approved","nameLocation":"20599:9:69","nodeType":"VariableDeclaration","scope":17088,"src":"20594:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17059,"name":"bool","nodeType":"ElementaryTypeName","src":"20594:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20574:35:69"},"returnParameters":{"id":17063,"nodeType":"ParameterList","parameters":[],"src":"20648:0:69"},"scope":19413,"src":"20548:325:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17123,"nodeType":"Block","src":"21275:253:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17099,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17091,"src":"21335:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21350:1:69","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":17101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21342:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17100,"name":"address","nodeType":"ElementaryTypeName","src":"21342:7:69","typeDescriptions":{}}},"id":17103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21342:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21335:17:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17098,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"21328:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21328:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17106,"nodeType":"ExpressionStatement","src":"21328:25:69"},{"expression":{"arguments":[{"id":17108,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17091,"src":"21436:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17109,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17093,"src":"21441:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17107,"name":"_addTokenTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16724,"src":"21424:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21424:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17111,"nodeType":"ExpressionStatement","src":"21424:26:69"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":17115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21482:1:69","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":17114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21474:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17113,"name":"address","nodeType":"ElementaryTypeName","src":"21474:7:69","typeDescriptions":{}}},"id":17116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21474:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17117,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17091,"src":"21486:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17118,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17093,"src":"21491:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17112,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6991,"src":"21465:8:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":17119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21465:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17120,"nodeType":"EmitStatement","src":"21460:40:69"},{"expression":{"hexValue":"74727565","id":17121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21517:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":17097,"id":17122,"nodeType":"Return","src":"21510:11:69"}]},"documentation":{"id":17089,"nodeType":"StructuredDocumentation","src":"20879:321:69","text":"@dev Function to mint tokens\n      Throws if `_to` is zero address.\n      Throws if `_tokenId` is owned by someone.\n @param _to The address that will receive the minted tokens.\n @param _tokenId The token id to mint.\n @return A boolean that indicates if the operation was successful."},"id":17124,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"21214:5:69","nodeType":"FunctionDefinition","parameters":{"id":17094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17091,"mutability":"mutable","name":"_to","nameLocation":"21228:3:69","nodeType":"VariableDeclaration","scope":17124,"src":"21220:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17090,"name":"address","nodeType":"ElementaryTypeName","src":"21220:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17093,"mutability":"mutable","name":"_tokenId","nameLocation":"21241:8:69","nodeType":"VariableDeclaration","scope":17124,"src":"21233:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17092,"name":"uint256","nodeType":"ElementaryTypeName","src":"21233:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21219:31:69"},"returnParameters":{"id":17097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17124,"src":"21269:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17095,"name":"bool","nodeType":"ElementaryTypeName","src":"21269:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21268:6:69"},"scope":19413,"src":"21205:323:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17643,"nodeType":"Block","src":"21948:5771:69","statements":[{"assignments":[17138],"declarations":[{"constant":false,"id":17138,"mutability":"mutable","name":"uOld","nameLocation":"21971:4:69","nodeType":"VariableDeclaration","scope":17643,"src":"21958:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":17137,"nodeType":"UserDefinedTypeName","pathNode":{"id":17136,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"21958:5:69"},"referencedDeclaration":34884,"src":"21958:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":17139,"nodeType":"VariableDeclarationStatement","src":"21958:17:69"},{"assignments":[17142],"declarations":[{"constant":false,"id":17142,"mutability":"mutable","name":"uNew","nameLocation":"21998:4:69","nodeType":"VariableDeclaration","scope":17643,"src":"21985:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":17141,"nodeType":"UserDefinedTypeName","pathNode":{"id":17140,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"21985:5:69"},"referencedDeclaration":34884,"src":"21985:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":17143,"nodeType":"VariableDeclarationStatement","src":"21985:17:69"},{"assignments":[17145],"declarations":[{"constant":false,"id":17145,"mutability":"mutable","name":"oldDslope","nameLocation":"22019:9:69","nodeType":"VariableDeclaration","scope":17643,"src":"22012:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17144,"name":"int128","nodeType":"ElementaryTypeName","src":"22012:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17147,"initialValue":{"hexValue":"30","id":17146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22031:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22012:20:69"},{"assignments":[17149],"declarations":[{"constant":false,"id":17149,"mutability":"mutable","name":"newDslope","nameLocation":"22049:9:69","nodeType":"VariableDeclaration","scope":17643,"src":"22042:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17148,"name":"int128","nodeType":"ElementaryTypeName","src":"22042:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17151,"initialValue":{"hexValue":"30","id":17150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22061:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22042:20:69"},{"assignments":[17153],"declarations":[{"constant":false,"id":17153,"mutability":"mutable","name":"_epoch","nameLocation":"22080:6:69","nodeType":"VariableDeclaration","scope":17643,"src":"22072:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17152,"name":"uint256","nodeType":"ElementaryTypeName","src":"22072:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17155,"initialValue":{"id":17154,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16077,"src":"22089:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22072:22:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17156,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17127,"src":"22109:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22121:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22109:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17272,"nodeType":"IfStatement","src":"22105:1200:69","trueBody":{"id":17271,"nodeType":"Block","src":"22124:1181:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17159,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"22231:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"22231:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17161,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22247:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22247:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22231:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17164,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"22266:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"22266:16:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22285:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22266:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22231:55:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17198,"nodeType":"IfStatement","src":"22227:264:69","trueBody":{"id":17197,"nodeType":"Block","src":"22288:203:69","statements":[{"expression":{"id":17176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17169,"name":"uOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17138,"src":"22306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"22306:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17172,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"22319:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"22319:16:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17174,"name":"iMAXTIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16054,"src":"22338:8:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22319:27:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22306:40:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17177,"nodeType":"ExpressionStatement","src":"22306:40:69"},{"expression":{"id":17195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17178,"name":"uOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17138,"src":"22364:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"22364:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17181,"name":"uOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17138,"src":"22396:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"22396:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17187,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"22443:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"22443:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17189,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22459:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22459:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22443:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22436:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17185,"name":"int256","nodeType":"ElementaryTypeName","src":"22436:6:69","typeDescriptions":{}}},"id":17192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22436:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22429:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":17183,"name":"int128","nodeType":"ElementaryTypeName","src":"22429:6:69","typeDescriptions":{}}},"id":17193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22429:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22396:80:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22364:112:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17196,"nodeType":"ExpressionStatement","src":"22364:112:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17199,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"22508:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"22508:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17201,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22524:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22524:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22508:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17204,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"22543:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"22543:16:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22562:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22543:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22508:55:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17238,"nodeType":"IfStatement","src":"22504:264:69","trueBody":{"id":17237,"nodeType":"Block","src":"22565:203:69","statements":[{"expression":{"id":17216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17209,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"22583:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"22583:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17212,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"22596:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"22596:16:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17214,"name":"iMAXTIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16054,"src":"22615:8:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22596:27:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22583:40:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17217,"nodeType":"ExpressionStatement","src":"22583:40:69"},{"expression":{"id":17235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17218,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"22641:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"22641:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17221,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"22673:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"22673:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17227,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"22720:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"22720:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17229,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22736:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22736:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22720:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22713:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17225,"name":"int256","nodeType":"ElementaryTypeName","src":"22713:6:69","typeDescriptions":{}}},"id":17232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22713:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22706:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":17223,"name":"int128","nodeType":"ElementaryTypeName","src":"22706:6:69","typeDescriptions":{}}},"id":17233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22706:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22673:80:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"22641:112:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17236,"nodeType":"ExpressionStatement","src":"22641:112:69"}]}},{"expression":{"id":17244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17239,"name":"oldDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17145,"src":"23002:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17240,"name":"slopeChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"23014:12:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"}},"id":17243,"indexExpression":{"expression":{"id":17241,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"23027:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"23027:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23014:27:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"23002:39:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17245,"nodeType":"ExpressionStatement","src":"23002:39:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17246,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"23059:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"23059:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23076:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23059:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17270,"nodeType":"IfStatement","src":"23055:240:69","trueBody":{"id":17269,"nodeType":"Block","src":"23079:216:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17250,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"23101:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"23101:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17252,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"23118:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"23118:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23101:30:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17267,"nodeType":"Block","src":"23201:80:69","statements":[{"expression":{"id":17265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17260,"name":"newDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17149,"src":"23223:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17261,"name":"slopeChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"23235:12:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"}},"id":17264,"indexExpression":{"expression":{"id":17262,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"23248:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"23248:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23235:27:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"23223:39:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17266,"nodeType":"ExpressionStatement","src":"23223:39:69"}]},"id":17268,"nodeType":"IfStatement","src":"23097:184:69","trueBody":{"id":17259,"nodeType":"Block","src":"23133:62:69","statements":[{"expression":{"id":17257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17255,"name":"newDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17149,"src":"23155:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17256,"name":"oldDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17145,"src":"23167:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"23155:21:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17258,"nodeType":"ExpressionStatement","src":"23155:21:69"}]}}]}}]}},{"assignments":[17275],"declarations":[{"constant":false,"id":17275,"mutability":"mutable","name":"lastPoint","nameLocation":"23328:9:69","nodeType":"VariableDeclaration","scope":17643,"src":"23315:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":17274,"nodeType":"UserDefinedTypeName","pathNode":{"id":17273,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"23315:5:69"},"referencedDeclaration":34884,"src":"23315:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":17284,"initialValue":{"arguments":[{"hexValue":"30","id":17277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23366:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23388:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":17279,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23407:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"23407:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17281,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23441:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"23441:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17276,"name":"Point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34884,"src":"23340:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$34884_storage_ptr_$","typeString":"type(struct INFTLocker.Point storage pointer)"}},"id":17283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["bias","slope","ts","blk"],"nodeType":"FunctionCall","src":"23340:124:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"23315:149:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17285,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"23478:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23487:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23478:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17295,"nodeType":"IfStatement","src":"23474:74:69","trueBody":{"id":17294,"nodeType":"Block","src":"23490:58:69","statements":[{"expression":{"id":17292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17288,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"23504:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17289,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"23516:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":17291,"indexExpression":{"id":17290,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"23530:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"src":"23504:33:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17293,"nodeType":"ExpressionStatement","src":"23504:33:69"}]}},{"assignments":[17297],"declarations":[{"constant":false,"id":17297,"mutability":"mutable","name":"lastCheckpoint","nameLocation":"23565:14:69","nodeType":"VariableDeclaration","scope":17643,"src":"23557:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17296,"name":"uint256","nodeType":"ElementaryTypeName","src":"23557:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17300,"initialValue":{"expression":{"id":17298,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"23582:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"23582:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23557:37:69"},{"assignments":[17303],"declarations":[{"constant":false,"id":17303,"mutability":"mutable","name":"initialLastPoint","nameLocation":"23828:16:69","nodeType":"VariableDeclaration","scope":17643,"src":"23815:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":17302,"nodeType":"UserDefinedTypeName","pathNode":{"id":17301,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"23815:5:69"},"referencedDeclaration":34884,"src":"23815:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":17305,"initialValue":{"id":17304,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"23847:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"23815:41:69"},{"assignments":[17307],"declarations":[{"constant":false,"id":17307,"mutability":"mutable","name":"blockSlope","nameLocation":"23874:10:69","nodeType":"VariableDeclaration","scope":17643,"src":"23866:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17306,"name":"uint256","nodeType":"ElementaryTypeName","src":"23866:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17309,"initialValue":{"hexValue":"30","id":17308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23887:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23866:22:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17310,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23915:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"23915:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17312,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"23933:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"23933:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23915:30:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17335,"nodeType":"IfStatement","src":"23911:186:69","trueBody":{"id":17334,"nodeType":"Block","src":"23947:150:69","statements":[{"expression":{"id":17332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17315,"name":"blockSlope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17307,"src":"23961:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17316,"name":"MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16057,"src":"23991:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17317,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24005:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"24005:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17319,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"24020:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"24020:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24005:28:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17322,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24004:30:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23991:43:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17324,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23990:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17325,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24055:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"24055:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17327,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"24073:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"24073:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24055:30:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24054:32:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23990:96:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23961:125:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17333,"nodeType":"ExpressionStatement","src":"23961:125:69"}]}},{"id":17483,"nodeType":"Block","src":"24316:1506:69","statements":[{"assignments":[17337],"declarations":[{"constant":false,"id":17337,"mutability":"mutable","name":"tI","nameLocation":"24338:2:69","nodeType":"VariableDeclaration","scope":17483,"src":"24330:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17336,"name":"uint256","nodeType":"ElementaryTypeName","src":"24330:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17344,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17338,"name":"lastCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"24344:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17339,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"24361:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24344:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17341,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24343:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17342,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"24369:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24343:30:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24330:43:69"},{"body":{"id":17481,"nodeType":"Block","src":"24421:1391:69","statements":[{"expression":{"id":17357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17355,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"24614:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":17356,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"24620:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24614:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17358,"nodeType":"ExpressionStatement","src":"24614:10:69"},{"assignments":[17360],"declarations":[{"constant":false,"id":17360,"mutability":"mutable","name":"dSlope","nameLocation":"24649:6:69","nodeType":"VariableDeclaration","scope":17481,"src":"24642:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17359,"name":"int128","nodeType":"ElementaryTypeName","src":"24642:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17362,"initialValue":{"hexValue":"30","id":17361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24658:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24642:17:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17363,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"24681:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17364,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24686:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"24686:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24681:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17379,"nodeType":"Block","src":"24770:66:69","statements":[{"expression":{"id":17377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17373,"name":"dSlope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17360,"src":"24792:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17374,"name":"slopeChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"24801:12:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"}},"id":17376,"indexExpression":{"id":17375,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"24814:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24801:16:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"24792:25:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17378,"nodeType":"ExpressionStatement","src":"24792:25:69"}]},"id":17380,"nodeType":"IfStatement","src":"24677:159:69","trueBody":{"id":17372,"nodeType":"Block","src":"24703:61:69","statements":[{"expression":{"id":17370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17367,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"24725:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17368,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24730:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"24730:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24725:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17371,"nodeType":"ExpressionStatement","src":"24725:20:69"}]}},{"expression":{"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17381,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"24853:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"24853:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17384,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"24891:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"24891:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17390,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"24943:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":17391,"name":"lastCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"24948:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24943:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24936:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17388,"name":"int256","nodeType":"ElementaryTypeName","src":"24936:6:69","typeDescriptions":{}}},"id":17393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24936:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24929:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":17386,"name":"int128","nodeType":"ElementaryTypeName","src":"24929:6:69","typeDescriptions":{}}},"id":17394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24929:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"24891:73:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"24853:111:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17397,"nodeType":"ExpressionStatement","src":"24853:111:69"},{"expression":{"id":17402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17398,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"24982:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"24982:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":17401,"name":"dSlope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17360,"src":"25001:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"24982:25:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17403,"nodeType":"ExpressionStatement","src":"24982:25:69"},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17404,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25029:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"25029:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":17406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25046:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25029:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17415,"nodeType":"IfStatement","src":"25025:122:69","trueBody":{"id":17414,"nodeType":"Block","src":"25049:98:69","statements":[{"expression":{"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17408,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25110:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"25110:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":17411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25127:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25110:18:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17413,"nodeType":"ExpressionStatement","src":"25110:18:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17416,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25168:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"25168:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":17418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25186:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25168:19:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17427,"nodeType":"IfStatement","src":"25164:142:69","trueBody":{"id":17426,"nodeType":"Block","src":"25189:117:69","statements":[{"expression":{"id":17424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17420,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25268:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"25268:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":17423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25286:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25268:19:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17425,"nodeType":"ExpressionStatement","src":"25268:19:69"}]}},{"expression":{"id":17430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17428,"name":"lastCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"25323:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17429,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"25340:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25323:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17431,"nodeType":"ExpressionStatement","src":"25323:19:69"},{"expression":{"id":17436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17432,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25360:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"25360:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17435,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"25375:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25360:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17437,"nodeType":"ExpressionStatement","src":"25360:17:69"},{"expression":{"id":17454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17438,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25395:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"25395:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17441,"name":"initialLastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17303,"src":"25431:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"25431:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17443,"name":"blockSlope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17307,"src":"25475:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17444,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"25489:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17445,"name":"initialLastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17303,"src":"25494:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"25494:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25489:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17448,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25488:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25475:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25474:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17451,"name":"MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16057,"src":"25538:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25474:74:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25431:117:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25395:153:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17455,"nodeType":"ExpressionStatement","src":"25395:153:69"},{"expression":{"id":17458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17456,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"25566:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":17457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25576:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25566:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17459,"nodeType":"ExpressionStatement","src":"25566:11:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17460,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"25599:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17461,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25605:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"25605:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25599:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17479,"nodeType":"Block","src":"25724:74:69","statements":[{"expression":{"id":17477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17473,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"25746:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":17475,"indexExpression":{"id":17474,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"25760:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25746:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17476,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25770:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"src":"25746:33:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":17478,"nodeType":"ExpressionStatement","src":"25746:33:69"}]},"id":17480,"nodeType":"IfStatement","src":"25595:203:69","trueBody":{"id":17472,"nodeType":"Block","src":"25622:96:69","statements":[{"expression":{"id":17469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17464,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"25644:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"25644:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17467,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25660:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"25660:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25644:28:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17470,"nodeType":"ExpressionStatement","src":"25644:28:69"},{"id":17471,"nodeType":"Break","src":"25694:5:69"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17346,"src":"24407:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323535","id":17350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24411:3:69","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"24407:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17482,"initializationExpression":{"assignments":[17346],"declarations":[{"constant":false,"id":17346,"mutability":"mutable","name":"i","nameLocation":"24400:1:69","nodeType":"VariableDeclaration","scope":17482,"src":"24392:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17345,"name":"uint256","nodeType":"ElementaryTypeName","src":"24392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17348,"initialValue":{"hexValue":"30","id":17347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24404:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24392:13:69"},"loopExpression":{"expression":{"id":17353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"24416:3:69","subExpression":{"id":17352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17346,"src":"24418:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17354,"nodeType":"ExpressionStatement","src":"24416:3:69"},"nodeType":"ForStatement","src":"24387:1425:69"}]},{"expression":{"id":17486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17484,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16077,"src":"25832:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17485,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"25840:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25832:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17487,"nodeType":"ExpressionStatement","src":"25832:14:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17488,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17127,"src":"25912:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25924:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25912:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17538,"nodeType":"IfStatement","src":"25908:462:69","trueBody":{"id":17537,"nodeType":"Block","src":"25927:443:69","statements":[{"expression":{"id":17500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17491,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"26082:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"26082:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17494,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"26102:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"26102:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17496,"name":"uOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17138,"src":"26115:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"26115:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26102:23:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"id":17499,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26101:25:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26082:44:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17501,"nodeType":"ExpressionStatement","src":"26082:44:69"},{"expression":{"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17502,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"26140:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"26140:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17505,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"26159:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"26159:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17507,"name":"uOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17138,"src":"26171:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"26171:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26159:21:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"id":17510,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26158:23:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26140:41:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17512,"nodeType":"ExpressionStatement","src":"26140:41:69"},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17513,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"26199:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"26199:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":17515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26217:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26199:19:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17524,"nodeType":"IfStatement","src":"26195:77:69","trueBody":{"id":17523,"nodeType":"Block","src":"26220:52:69","statements":[{"expression":{"id":17521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17517,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"26238:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"26238:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":17520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26256:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26238:19:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17522,"nodeType":"ExpressionStatement","src":"26238:19:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17525,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"26289:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"26289:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":17527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26306:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26289:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17536,"nodeType":"IfStatement","src":"26285:75:69","trueBody":{"id":17535,"nodeType":"Block","src":"26309:51:69","statements":[{"expression":{"id":17533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17529,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"26327:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"26327:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":17532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26344:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26327:18:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17534,"nodeType":"ExpressionStatement","src":"26327:18:69"}]}}]}},{"expression":{"id":17543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17539,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"26429:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":17541,"indexExpression":{"id":17540,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"26443:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26429:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17542,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17275,"src":"26453:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"src":"26429:33:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":17544,"nodeType":"ExpressionStatement","src":"26429:33:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17545,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17127,"src":"26477:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26477:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17642,"nodeType":"IfStatement","src":"26473:1240:69","trueBody":{"id":17641,"nodeType":"Block","src":"26492:1221:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17548,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"26694:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"26694:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17550,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26710:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"26710:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26694:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17578,"nodeType":"IfStatement","src":"26690:383:69","trueBody":{"id":17577,"nodeType":"Block","src":"26727:346:69","statements":[{"expression":{"id":17556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17553,"name":"oldDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17145,"src":"26822:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":17554,"name":"uOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17138,"src":"26835:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"26835:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26822:23:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17557,"nodeType":"ExpressionStatement","src":"26822:23:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17558,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"26867:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"26867:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17560,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"26884:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"26884:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26867:30:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17569,"nodeType":"IfStatement","src":"26863:139:69","trueBody":{"id":17568,"nodeType":"Block","src":"26899:103:69","statements":[{"expression":{"id":17566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17563,"name":"oldDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17145,"src":"26921:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":17564,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"26934:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"26934:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26921:23:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17567,"nodeType":"ExpressionStatement","src":"26921:23:69"}]}},{"expression":{"id":17575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17570,"name":"slopeChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"27019:12:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"}},"id":17573,"indexExpression":{"expression":{"id":17571,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"27032:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"27032:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27019:27:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17574,"name":"oldDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17145,"src":"27049:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"27019:39:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17576,"nodeType":"ExpressionStatement","src":"27019:39:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17579,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"27091:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"27091:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17581,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"27107:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"27107:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27091:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17604,"nodeType":"IfStatement","src":"27087:329:69","trueBody":{"id":17603,"nodeType":"Block","src":"27124:292:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17584,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"27146:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"27146:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17586,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"27162:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"27162:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27146:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17602,"nodeType":"IfStatement","src":"27142:199:69","trueBody":{"id":17601,"nodeType":"Block","src":"27177:164:69","statements":[{"expression":{"id":17592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17589,"name":"newDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17149,"src":"27199:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":17590,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"27212:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"27212:10:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"27199:23:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17593,"nodeType":"ExpressionStatement","src":"27199:23:69"},{"expression":{"id":17599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17594,"name":"slopeChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"27283:12:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"}},"id":17597,"indexExpression":{"expression":{"id":17595,"name":"newLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"27296:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"27296:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27283:27:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17598,"name":"newDslope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17149,"src":"27313:9:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"27283:39:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17600,"nodeType":"ExpressionStatement","src":"27283:39:69"}]}}]}},{"assignments":[17606],"declarations":[{"constant":false,"id":17606,"mutability":"mutable","name":"userEpoch","nameLocation":"27476:9:69","nodeType":"VariableDeclaration","scope":17641,"src":"27468:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17605,"name":"uint256","nodeType":"ElementaryTypeName","src":"27468:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17612,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17607,"name":"userPointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16094,"src":"27488:14:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17609,"indexExpression":{"id":17608,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17127,"src":"27503:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27488:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":17610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27515:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27488:28:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27468:48:69"},{"expression":{"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17613,"name":"userPointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16094,"src":"27531:14:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17615,"indexExpression":{"id":17614,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17127,"src":"27546:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27531:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17616,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17606,"src":"27558:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27531:36:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17618,"nodeType":"ExpressionStatement","src":"27531:36:69"},{"expression":{"id":17624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17619,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"27581:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"27581:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17622,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"27591:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"27591:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27581:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17625,"nodeType":"ExpressionStatement","src":"27581:25:69"},{"expression":{"id":17631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17626,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"27620:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":17628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"27620:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17629,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"27631:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"27631:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27620:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17632,"nodeType":"ExpressionStatement","src":"27620:23:69"},{"expression":{"id":17639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":17633,"name":"_userPointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"27657:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref[1000000000] storage ref)"}},"id":17636,"indexExpression":{"id":17634,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17127,"src":"27675:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27657:27:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage","typeString":"struct INFTLocker.Point storage ref[1000000000] storage ref"}},"id":17637,"indexExpression":{"id":17635,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17606,"src":"27685:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27657:38:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17638,"name":"uNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17142,"src":"27698:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"src":"27657:45:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":17640,"nodeType":"ExpressionStatement","src":"27657:45:69"}]}}]},"documentation":{"id":17125,"nodeType":"StructuredDocumentation","src":"21534:267:69","text":"@notice Record global and per-user data to checkpoint\n @param _tokenId NFT token ID. No user checkpoint if 0\n @param oldLocked Pevious locked amount / end lock time for the user\n @param newLocked New locked amount / end lock time for the user"},"id":17644,"implemented":true,"kind":"function","modifiers":[],"name":"_checkpoint","nameLocation":"21815:11:69","nodeType":"FunctionDefinition","parameters":{"id":17134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17127,"mutability":"mutable","name":"_tokenId","nameLocation":"21844:8:69","nodeType":"VariableDeclaration","scope":17644,"src":"21836:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17126,"name":"uint256","nodeType":"ElementaryTypeName","src":"21836:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17130,"mutability":"mutable","name":"oldLocked","nameLocation":"21883:9:69","nodeType":"VariableDeclaration","scope":17644,"src":"21862:30:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17129,"nodeType":"UserDefinedTypeName","pathNode":{"id":17128,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"21862:13:69"},"referencedDeclaration":34891,"src":"21862:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"},{"constant":false,"id":17133,"mutability":"mutable","name":"newLocked","nameLocation":"21923:9:69","nodeType":"VariableDeclaration","scope":17644,"src":"21902:30:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17132,"nodeType":"UserDefinedTypeName","pathNode":{"id":17131,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"21902:13:69"},"referencedDeclaration":34891,"src":"21902:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"src":"21826:112:69"},"returnParameters":{"id":17135,"nodeType":"ParameterList","parameters":[],"src":"21948:0:69"},"scope":19413,"src":"21806:5913:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17811,"nodeType":"Block","src":"28300:1629:69","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17664,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"28310:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":17666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"28310:24:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28310:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17668,"nodeType":"ExpressionStatement","src":"28310:26:69"},{"assignments":[17671],"declarations":[{"constant":false,"id":17671,"mutability":"mutable","name":"_locked","nameLocation":"28368:7:69","nodeType":"VariableDeclaration","scope":17811,"src":"28347:28:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17670,"nodeType":"UserDefinedTypeName","pathNode":{"id":17669,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"28347:13:69"},"referencedDeclaration":34891,"src":"28347:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":17673,"initialValue":{"id":17672,"name":"lockedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17654,"src":"28378:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"nodeType":"VariableDeclarationStatement","src":"28347:44:69"},{"assignments":[17675],"declarations":[{"constant":false,"id":17675,"mutability":"mutable","name":"supplyBefore","nameLocation":"28409:12:69","nodeType":"VariableDeclaration","scope":17811,"src":"28401:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17674,"name":"uint256","nodeType":"ElementaryTypeName","src":"28401:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17677,"initialValue":{"id":17676,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16065,"src":"28424:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28401:29:69"},{"expression":{"id":17682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17678,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16065,"src":"28441:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17679,"name":"supplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17675,"src":"28450:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":17680,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"28465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28450:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28441:30:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17683,"nodeType":"ExpressionStatement","src":"28441:30:69"},{"assignments":[17686],"declarations":[{"constant":false,"id":17686,"mutability":"mutable","name":"oldLocked","nameLocation":"28502:9:69","nodeType":"VariableDeclaration","scope":17811,"src":"28481:30:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17685,"nodeType":"UserDefinedTypeName","pathNode":{"id":17684,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"28481:13:69"},"referencedDeclaration":34891,"src":"28481:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":17687,"nodeType":"VariableDeclarationStatement","src":"28481:30:69"},{"expression":{"id":17699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":17688,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17686,"src":"28522:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"28522:16:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},{"expression":{"id":17691,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17686,"src":"28540:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"28540:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17693,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"28521:33:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int128_$_t_uint256_$","typeString":"tuple(int128,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"expression":{"id":17694,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"28558:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"28558:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},{"expression":{"id":17696,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"28574:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"28574:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17698,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28557:29:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int128_$_t_uint256_$","typeString":"tuple(int128,uint256)"}},"src":"28521:65:69","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17700,"nodeType":"ExpressionStatement","src":"28521:65:69"},{"expression":{"id":17711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17701,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"28678:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"28678:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"arguments":[{"id":17708,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"28710:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28703:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17706,"name":"int256","nodeType":"ElementaryTypeName","src":"28703:6:69","typeDescriptions":{}}},"id":17709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28703:14:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28696:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":17704,"name":"int128","nodeType":"ElementaryTypeName","src":"28696:6:69","typeDescriptions":{}}},"id":17710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28696:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"28678:40:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17712,"nodeType":"ExpressionStatement","src":"28678:40:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17713,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17651,"src":"28732:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28746:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28732:15:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17723,"nodeType":"IfStatement","src":"28728:70:69","trueBody":{"id":17722,"nodeType":"Block","src":"28749:49:69","statements":[{"expression":{"id":17720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17716,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"28763:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"28763:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17719,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17651,"src":"28777:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28763:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17721,"nodeType":"ExpressionStatement","src":"28763:24:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},"id":17727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17724,"name":"depositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17657,"src":"28811:11:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17725,"name":"DepositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34875,"src":"28826:11:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DepositType_$34875_$","typeString":"type(enum INFTLocker.DepositType)"}},"id":17726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CREATE_LOCK_TYPE","nodeType":"MemberAccess","referencedDeclaration":34871,"src":"28826:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},"src":"28811:43:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17736,"nodeType":"IfStatement","src":"28807:105:69","trueBody":{"id":17735,"nodeType":"Block","src":"28856:56:69","statements":[{"expression":{"id":17733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17728,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"28870:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"start","nodeType":"MemberAccess","referencedDeclaration":34890,"src":"28870:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17731,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28886:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"28886:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28870:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17734,"nodeType":"ExpressionStatement","src":"28870:31:69"}]}},{"expression":{"id":17741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17737,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"28922:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":17739,"indexExpression":{"id":17738,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17647,"src":"28929:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28922:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17740,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"28941:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"src":"28922:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"id":17742,"nodeType":"ExpressionStatement","src":"28922:26:69"},{"expression":{"arguments":[{"id":17744,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17647,"src":"29205:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17745,"name":"oldLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17686,"src":"29215:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"id":17746,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"29226:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}],"id":17743,"name":"_checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17644,"src":"29193:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_struct$_LockedBalance_$34891_memory_ptr_$returns$__$","typeString":"function (uint256,struct INFTLocker.LockedBalance memory,struct INFTLocker.LockedBalance memory)"}},"id":17747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29193:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17748,"nodeType":"ExpressionStatement","src":"29193:41:69"},{"assignments":[17750],"declarations":[{"constant":false,"id":17750,"mutability":"mutable","name":"from","nameLocation":"29253:4:69","nodeType":"VariableDeclaration","scope":17811,"src":"29245:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17749,"name":"address","nodeType":"ElementaryTypeName","src":"29245:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17753,"initialValue":{"expression":{"id":17751,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29260:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"29260:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"29245:25:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17754,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"29297:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29307:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29297:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},"id":17760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17757,"name":"depositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17657,"src":"29324:11:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17758,"name":"DepositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34875,"src":"29339:11:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DepositType_$34875_$","typeString":"type(enum INFTLocker.DepositType)"}},"id":17759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"MERGE_TYPE","nodeType":"MemberAccess","referencedDeclaration":34874,"src":"29339:22:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},"src":"29324:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29297:64:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":17762,"name":"_shouldPullUserMaha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17659,"src":"29377:19:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29297:99:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17781,"nodeType":"IfStatement","src":"29280:333:69","trueBody":{"id":17780,"nodeType":"Block","src":"29407:206:69","statements":[{"expression":{"arguments":[{"arguments":[{"id":17771,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17750,"src":"29503:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17774,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"29537:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_MAHAXLocker_$19413","typeString":"contract MAHAXLocker"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MAHAXLocker_$19413","typeString":"contract MAHAXLocker"}],"id":17773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29529:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17772,"name":"address","nodeType":"ElementaryTypeName","src":"29529:7:69","typeDescriptions":{}}},"id":17775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29529:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17776,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"29564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17766,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"29452:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":17767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"29452:13:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29452:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17765,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"29445:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":17769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29445:23:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":17770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"29445:36:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":17777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29445:143:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17764,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"29421:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29421:181:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17779,"nodeType":"ExpressionStatement","src":"29421:181:69"}]}},{"condition":{"id":17782,"name":"_stakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17661,"src":"29627:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17792,"nodeType":"IfStatement","src":"29623:69:69","trueBody":{"expression":{"arguments":[{"id":17789,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17647,"src":"29683:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17784,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"29649:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":17785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"29649:15:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29649:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17783,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"29638:10:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTStaker_$35022_$","typeString":"type(contract INFTStaker)"}},"id":17787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29638:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"id":17788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_stakeFromLock","nodeType":"MemberAccess","referencedDeclaration":34996,"src":"29638:44:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":17790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29638:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17791,"nodeType":"ExpressionStatement","src":"29638:54:69"}},{"eventCall":{"arguments":[{"id":17794,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17750,"src":"29729:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17795,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17647,"src":"29747:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17796,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"29769:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17797,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17671,"src":"29789:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"29789:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17799,"name":"depositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17657,"src":"29814:11:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},{"expression":{"id":17800,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29839:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"29839:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17793,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34906,"src":"29708:7:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_DepositType_$34875_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,enum INFTLocker.DepositType,uint256)"}},"id":17802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29708:156:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17803,"nodeType":"EmitStatement","src":"29703:161:69"},{"eventCall":{"arguments":[{"id":17805,"name":"supplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17675,"src":"29886:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17806,"name":"supplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17675,"src":"29900:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":17807,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"29915:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29900:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17804,"name":"Supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34922,"src":"29879:6:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":17809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29879:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17810,"nodeType":"EmitStatement","src":"29874:48:69"}]},"documentation":{"id":17645,"nodeType":"StructuredDocumentation","src":"27725:321:69","text":"@notice Deposit and lock tokens for a user\n @param _tokenId NFT that holds lock\n @param _value Amount to deposit\n @param unlockTime New time when to unlock the tokens, or 0 if unchanged\n @param lockedBalance Previous locked amount / timestamp\n @param depositType The type of deposit"},"id":17812,"implemented":true,"kind":"function","modifiers":[],"name":"_depositFor","nameLocation":"28060:11:69","nodeType":"FunctionDefinition","parameters":{"id":17662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17647,"mutability":"mutable","name":"_tokenId","nameLocation":"28089:8:69","nodeType":"VariableDeclaration","scope":17812,"src":"28081:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17646,"name":"uint256","nodeType":"ElementaryTypeName","src":"28081:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17649,"mutability":"mutable","name":"_value","nameLocation":"28115:6:69","nodeType":"VariableDeclaration","scope":17812,"src":"28107:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17648,"name":"uint256","nodeType":"ElementaryTypeName","src":"28107:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17651,"mutability":"mutable","name":"unlockTime","nameLocation":"28139:10:69","nodeType":"VariableDeclaration","scope":17812,"src":"28131:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17650,"name":"uint256","nodeType":"ElementaryTypeName","src":"28131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17654,"mutability":"mutable","name":"lockedBalance","nameLocation":"28180:13:69","nodeType":"VariableDeclaration","scope":17812,"src":"28159:34:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17653,"nodeType":"UserDefinedTypeName","pathNode":{"id":17652,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"28159:13:69"},"referencedDeclaration":34891,"src":"28159:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"},{"constant":false,"id":17657,"mutability":"mutable","name":"depositType","nameLocation":"28215:11:69","nodeType":"VariableDeclaration","scope":17812,"src":"28203:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},"typeName":{"id":17656,"nodeType":"UserDefinedTypeName","pathNode":{"id":17655,"name":"DepositType","nodeType":"IdentifierPath","referencedDeclaration":34875,"src":"28203:11:69"},"referencedDeclaration":34875,"src":"28203:11:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},"visibility":"internal"},{"constant":false,"id":17659,"mutability":"mutable","name":"_shouldPullUserMaha","nameLocation":"28241:19:69","nodeType":"VariableDeclaration","scope":17812,"src":"28236:24:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17658,"name":"bool","nodeType":"ElementaryTypeName","src":"28236:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17661,"mutability":"mutable","name":"_stakeNFT","nameLocation":"28275:9:69","nodeType":"VariableDeclaration","scope":17812,"src":"28270:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17660,"name":"bool","nodeType":"ElementaryTypeName","src":"28270:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28071:219:69"},"returnParameters":{"id":17663,"nodeType":"ParameterList","parameters":[],"src":"28300:0:69"},"scope":19413,"src":"28051:1878:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34819],"body":{"id":17934,"nodeType":"Block","src":"29996:886:69","statements":[{"expression":{"arguments":[{"id":17824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30014:17:69","subExpression":{"arguments":[{"id":17822,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"30025:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17821,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"30015:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30015:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"66726f6d207374616b6564","id":17825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30033:13:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4dbbb1ecdfd4d206737946fa769f0b57321dbc69ead975edb1109fceab4e63a","typeString":"literal_string \"from staked\""},"value":"from staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4dbbb1ecdfd4d206737946fa769f0b57321dbc69ead975edb1109fceab4e63a","typeString":"literal_string \"from staked\""}],"id":17820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30006:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30006:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17827,"nodeType":"ExpressionStatement","src":"30006:41:69"},{"expression":{"arguments":[{"id":17832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30065:15:69","subExpression":{"arguments":[{"id":17830,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17816,"src":"30076:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17829,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"30066:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30066:14:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f207374616b6564","id":17833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30082:11:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_40dc61cd9e9572b82bea40e63ead03a91c61be507c3d4ce513923bc1f13a7d53","typeString":"literal_string \"to staked\""},"value":"to staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_40dc61cd9e9572b82bea40e63ead03a91c61be507c3d4ce513923bc1f13a7d53","typeString":"literal_string \"to staked\""}],"id":17828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30057:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30057:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17835,"nodeType":"ExpressionStatement","src":"30057:37:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17837,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"30113:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17838,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17816,"src":"30122:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30113:12:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73616d65206e6674","id":17840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30127:10:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_b25bcc673a215e3a5bde352ef92ddbe03cbf317e969573af50a3f9bdce18e368","typeString":"literal_string \"same nft\""},"value":"same nft"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b25bcc673a215e3a5bde352ef92ddbe03cbf317e969573af50a3f9bdce18e368","typeString":"literal_string \"same nft\""}],"id":17836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30105:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30105:33:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17842,"nodeType":"ExpressionStatement","src":"30105:33:69"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":17845,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"30175:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"30175:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17847,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"30187:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17844,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"30156:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":17848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30156:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"66726f6d206e6f7420617070726f766564","id":17849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:19:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2a2fd435e7ecd614d2f7e78d15eda818a4e6b1586e14106486480d5130a0840","typeString":"literal_string \"from not approved\""},"value":"from not approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d2a2fd435e7ecd614d2f7e78d15eda818a4e6b1586e14106486480d5130a0840","typeString":"literal_string \"from not approved\""}],"id":17843,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30148:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30148:67:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17851,"nodeType":"ExpressionStatement","src":"30148:67:69"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":17854,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"30252:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"30252:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17856,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17816,"src":"30264:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17853,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"30233:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":17857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30233:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f206e6f7420617070726f766564","id":17858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30270:17:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_0830384f93797c3d64b307ea246e9d2dd60221bf54ff98eee2de1ffaffe73152","typeString":"literal_string \"to not approved\""},"value":"to not approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0830384f93797c3d64b307ea246e9d2dd60221bf54ff98eee2de1ffaffe73152","typeString":"literal_string \"to not approved\""}],"id":17852,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30225:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30225:63:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17860,"nodeType":"ExpressionStatement","src":"30225:63:69"},{"assignments":[17863],"declarations":[{"constant":false,"id":17863,"mutability":"mutable","name":"_locked0","nameLocation":"30320:8:69","nodeType":"VariableDeclaration","scope":17934,"src":"30299:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17862,"nodeType":"UserDefinedTypeName","pathNode":{"id":17861,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"30299:13:69"},"referencedDeclaration":34891,"src":"30299:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":17867,"initialValue":{"baseExpression":{"id":17864,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"30331:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":17866,"indexExpression":{"id":17865,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"30338:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30331:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"VariableDeclarationStatement","src":"30299:45:69"},{"assignments":[17870],"declarations":[{"constant":false,"id":17870,"mutability":"mutable","name":"_locked1","nameLocation":"30375:8:69","nodeType":"VariableDeclaration","scope":17934,"src":"30354:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17869,"nodeType":"UserDefinedTypeName","pathNode":{"id":17868,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"30354:13:69"},"referencedDeclaration":34891,"src":"30354:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":17874,"initialValue":{"baseExpression":{"id":17871,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"30386:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":17873,"indexExpression":{"id":17872,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17816,"src":"30393:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30386:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"VariableDeclarationStatement","src":"30354:43:69"},{"assignments":[17876],"declarations":[{"constant":false,"id":17876,"mutability":"mutable","name":"value0","nameLocation":"30415:6:69","nodeType":"VariableDeclaration","scope":17934,"src":"30407:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17875,"name":"uint256","nodeType":"ElementaryTypeName","src":"30407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17885,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":17881,"name":"_locked0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17863,"src":"30439:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"30439:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":17880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30432:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17879,"name":"int256","nodeType":"ElementaryTypeName","src":"30432:6:69","typeDescriptions":{}}},"id":17883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30432:23:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30424:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":17877,"name":"uint256","nodeType":"ElementaryTypeName","src":"30424:7:69","typeDescriptions":{}}},"id":17884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30424:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30407:49:69"},{"assignments":[17887],"declarations":[{"constant":false,"id":17887,"mutability":"mutable","name":"end","nameLocation":"30474:3:69","nodeType":"VariableDeclaration","scope":17934,"src":"30466:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17886,"name":"uint256","nodeType":"ElementaryTypeName","src":"30466:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17898,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17888,"name":"_locked0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17863,"src":"30480:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"30480:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":17890,"name":"_locked1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17870,"src":"30496:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"30496:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30480:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":17895,"name":"_locked1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17870,"src":"30550:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"30550:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"30480:82:69","trueExpression":{"expression":{"id":17893,"name":"_locked0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17863,"src":"30523:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":17894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"30523:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30466:96:69"},{"expression":{"id":17907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17899,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"30573:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":17901,"indexExpression":{"id":17900,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"30580:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30573:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":17903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30603:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30606:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30609:1:69","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17902,"name":"LockedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34891,"src":"30589:13:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LockedBalance_$34891_storage_ptr_$","typeString":"type(struct INFTLocker.LockedBalance storage pointer)"}},"id":17906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30589:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"src":"30573:38:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"id":17908,"nodeType":"ExpressionStatement","src":"30573:38:69"},{"expression":{"arguments":[{"id":17910,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"30633:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17911,"name":"_locked0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17863,"src":"30640:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"arguments":[{"hexValue":"30","id":17913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30664:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30667:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30670:1:69","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17912,"name":"LockedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34891,"src":"30650:13:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LockedBalance_$34891_storage_ptr_$","typeString":"type(struct INFTLocker.LockedBalance storage pointer)"}},"id":17916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30650:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}],"id":17909,"name":"_checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17644,"src":"30621:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_struct$_LockedBalance_$34891_memory_ptr_$returns$__$","typeString":"function (uint256,struct INFTLocker.LockedBalance memory,struct INFTLocker.LockedBalance memory)"}},"id":17917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30621:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17918,"nodeType":"ExpressionStatement","src":"30621:52:69"},{"expression":{"arguments":[{"id":17920,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"30689:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17919,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"30683:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30683:12:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17922,"nodeType":"ExpressionStatement","src":"30683:12:69"},{"expression":{"arguments":[{"id":17924,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17816,"src":"30730:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17925,"name":"value0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"30747:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17926,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17887,"src":"30767:3:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17927,"name":"_locked1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17870,"src":"30784:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"expression":{"id":17928,"name":"DepositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34875,"src":"30806:11:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DepositType_$34875_$","typeString":"type(enum INFTLocker.DepositType)"}},"id":17929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"MERGE_TYPE","nodeType":"MemberAccess","referencedDeclaration":34874,"src":"30806:22:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},{"hexValue":"74727565","id":17930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30842:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"66616c7365","id":17931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30860:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17923,"name":"_depositFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"30705:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_enum$_DepositType_$34875_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,uint256,uint256,struct INFTLocker.LockedBalance memory,enum INFTLocker.DepositType,bool,bool)"}},"id":17932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30705:170:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17933,"nodeType":"ExpressionStatement","src":"30705:170:69"}]},"functionSelector":"d1c2babb","id":17935,"implemented":true,"kind":"function","modifiers":[],"name":"merge","nameLocation":"29944:5:69","nodeType":"FunctionDefinition","overrides":{"id":17818,"nodeType":"OverrideSpecifier","overrides":[],"src":"29987:8:69"},"parameters":{"id":17817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17814,"mutability":"mutable","name":"_from","nameLocation":"29958:5:69","nodeType":"VariableDeclaration","scope":17935,"src":"29950:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17813,"name":"uint256","nodeType":"ElementaryTypeName","src":"29950:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17816,"mutability":"mutable","name":"_to","nameLocation":"29973:3:69","nodeType":"VariableDeclaration","scope":17935,"src":"29965:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17815,"name":"uint256","nodeType":"ElementaryTypeName","src":"29965:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29949:28:69"},"returnParameters":{"id":17819,"nodeType":"ParameterList","parameters":[],"src":"29996:0:69"},"scope":19413,"src":"29935:947:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34824],"body":{"id":17944,"nodeType":"Block","src":"30952:36:69","statements":[{"expression":{"expression":{"id":17941,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30969:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"30969:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17940,"id":17943,"nodeType":"Return","src":"30962:19:69"}]},"functionSelector":"57e871e7","id":17945,"implemented":true,"kind":"function","modifiers":[],"name":"blockNumber","nameLocation":"30897:11:69","nodeType":"FunctionDefinition","overrides":{"id":17937,"nodeType":"OverrideSpecifier","overrides":[],"src":"30925:8:69"},"parameters":{"id":17936,"nodeType":"ParameterList","parameters":[],"src":"30908:2:69"},"returnParameters":{"id":17940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17945,"src":"30943:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17938,"name":"uint256","nodeType":"ElementaryTypeName","src":"30943:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30942:9:69"},"scope":19413,"src":"30888:100:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34827],"body":{"id":17964,"nodeType":"Block","src":"31083:79:69","statements":[{"expression":{"arguments":[{"hexValue":"30","id":17951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31105:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":17953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31122:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31125:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31128:1:69","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17952,"name":"LockedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34891,"src":"31108:13:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LockedBalance_$34891_storage_ptr_$","typeString":"type(struct INFTLocker.LockedBalance storage pointer)"}},"id":17956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31108:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"arguments":[{"hexValue":"30","id":17958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31146:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31149:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":17960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31152:1:69","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17957,"name":"LockedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34891,"src":"31132:13:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LockedBalance_$34891_storage_ptr_$","typeString":"type(struct INFTLocker.LockedBalance storage pointer)"}},"id":17961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31132:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}],"id":17950,"name":"_checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17644,"src":"31093:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_struct$_LockedBalance_$34891_memory_ptr_$returns$__$","typeString":"function (uint256,struct INFTLocker.LockedBalance memory,struct INFTLocker.LockedBalance memory)"}},"id":17962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31093:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17963,"nodeType":"ExpressionStatement","src":"31093:62:69"}]},"documentation":{"id":17946,"nodeType":"StructuredDocumentation","src":"30994:44:69","text":"@notice Record global data to checkpoint"},"functionSelector":"c2c4c5c1","id":17965,"implemented":true,"kind":"function","modifiers":[],"name":"checkpoint","nameLocation":"31052:10:69","nodeType":"FunctionDefinition","overrides":{"id":17948,"nodeType":"OverrideSpecifier","overrides":[],"src":"31074:8:69"},"parameters":{"id":17947,"nodeType":"ParameterList","parameters":[],"src":"31062:2:69"},"returnParameters":{"id":17949,"nodeType":"ParameterList","parameters":[],"src":"31083:0:69"},"scope":19413,"src":"31043:119:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34834],"body":{"id":18026,"nodeType":"Block","src":"31593:514:69","statements":[{"assignments":[17978],"declarations":[{"constant":false,"id":17978,"mutability":"mutable","name":"_locked","nameLocation":"31624:7:69","nodeType":"VariableDeclaration","scope":18026,"src":"31603:28:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":17977,"nodeType":"UserDefinedTypeName","pathNode":{"id":17976,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"31603:13:69"},"referencedDeclaration":34891,"src":"31603:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":17982,"initialValue":{"baseExpression":{"id":17979,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"31634:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":17981,"indexExpression":{"id":17980,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"31641:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31634:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"VariableDeclarationStatement","src":"31603:47:69"},{"expression":{"arguments":[{"id":17987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31669:20:69","subExpression":{"arguments":[{"id":17985,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"31680:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17984,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"31670:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31670:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7374616b6564","id":17988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31691:8:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db","typeString":"literal_string \"staked\""},"value":"staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db","typeString":"literal_string \"staked\""}],"id":17983,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31661:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31661:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17990,"nodeType":"ExpressionStatement","src":"31661:39:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17992,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17970,"src":"31718:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31727:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31718:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76616c7565203d2030","id":17995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31730:11:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_6792364c76b84c5d56829f533e59e20448b466cf28642751aa61cd020c6822ee","typeString":"literal_string \"value = 0\""},"value":"value = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6792364c76b84c5d56829f533e59e20448b466cf28642751aa61cd020c6822ee","typeString":"literal_string \"value = 0\""}],"id":17991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31710:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31710:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17997,"nodeType":"ExpressionStatement","src":"31710:32:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17999,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17978,"src":"31788:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"31788:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31805:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31788:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f206578697374696e67206c6f636b20666f756e64","id":18003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31808:24:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba31947ee23d0ae2490516d3f699e2ca3cc97701b736b2a4df65fb6df8601a0f","typeString":"literal_string \"No existing lock found\""},"value":"No existing lock found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba31947ee23d0ae2490516d3f699e2ca3cc97701b736b2a4df65fb6df8601a0f","typeString":"literal_string \"No existing lock found\""}],"id":17998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31780:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31780:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18005,"nodeType":"ExpressionStatement","src":"31780:53:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18007,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17978,"src":"31851:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"31851:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":18009,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31865:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"31865:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31851:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f742061646420746f2065787069726564206c6f636b2e","id":18012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31882:29:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_01173bbfe002a8916184f8f7c88b55bac2bc68ac2fbd9efd2306289847e45408","typeString":"literal_string \"Cannot add to expired lock.\""},"value":"Cannot add to expired lock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01173bbfe002a8916184f8f7c88b55bac2bc68ac2fbd9efd2306289847e45408","typeString":"literal_string \"Cannot add to expired lock.\""}],"id":18006,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31843:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31843:69:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18014,"nodeType":"ExpressionStatement","src":"31843:69:69"},{"expression":{"arguments":[{"id":18016,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17968,"src":"31947:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18017,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17970,"src":"31969:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":18018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31989:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":18019,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17978,"src":"32004:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"expression":{"id":18020,"name":"DepositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34875,"src":"32025:11:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DepositType_$34875_$","typeString":"type(enum INFTLocker.DepositType)"}},"id":18021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DEPOSIT_FOR_TYPE","nodeType":"MemberAccess","referencedDeclaration":34870,"src":"32025:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},{"hexValue":"74727565","id":18022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32067:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"66616c7365","id":18023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32085:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18015,"name":"_depositFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"31922:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_enum$_DepositType_$34875_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,uint256,uint256,struct INFTLocker.LockedBalance memory,enum INFTLocker.DepositType,bool,bool)"}},"id":18024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31922:178:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18025,"nodeType":"ExpressionStatement","src":"31922:178:69"}]},"documentation":{"id":17966,"nodeType":"StructuredDocumentation","src":"31168:307:69","text":"@notice Deposit `_value` tokens for `_tokenId` and add to the lock\n @dev Anyone (even a smart contract) can deposit for someone else, but\n      cannot extend their locktime and deposit for a brand new user\n @param _tokenId lock NFT\n @param _value Amount to add to user's lock"},"functionSelector":"0ec84dda","id":18027,"implemented":true,"kind":"function","modifiers":[{"id":17974,"kind":"modifierInvocation","modifierName":{"id":17973,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"31576:12:69"},"nodeType":"ModifierInvocation","src":"31576:12:69"}],"name":"depositFor","nameLocation":"31489:10:69","nodeType":"FunctionDefinition","overrides":{"id":17972,"nodeType":"OverrideSpecifier","overrides":[],"src":"31559:8:69"},"parameters":{"id":17971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17968,"mutability":"mutable","name":"_tokenId","nameLocation":"31508:8:69","nodeType":"VariableDeclaration","scope":18027,"src":"31500:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17967,"name":"uint256","nodeType":"ElementaryTypeName","src":"31500:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17970,"mutability":"mutable","name":"_value","nameLocation":"31526:6:69","nodeType":"VariableDeclaration","scope":18027,"src":"31518:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17969,"name":"uint256","nodeType":"ElementaryTypeName","src":"31518:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31499:34:69"},"returnParameters":{"id":17975,"nodeType":"ParameterList","parameters":[],"src":"31593:0:69"},"scope":19413,"src":"31480:627:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18124,"nodeType":"Block","src":"32691:915:69","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18043,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"32701:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":18045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"32701:24:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":18046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32701:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18047,"nodeType":"ExpressionStatement","src":"32701:26:69"},{"assignments":[18049],"declarations":[{"constant":false,"id":18049,"mutability":"mutable","name":"unlockTime","nameLocation":"32746:10:69","nodeType":"VariableDeclaration","scope":18124,"src":"32738:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18048,"name":"uint256","nodeType":"ElementaryTypeName","src":"32738:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18060,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18050,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"32761:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"32761:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18052,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18032,"src":"32779:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32761:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18054,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32760:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":18055,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"32796:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32760:40:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18057,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32759:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18058,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"32804:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32759:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32738:70:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18062,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18030,"src":"32864:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32873:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32864:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76616c7565203d2030","id":18065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32876:11:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_6792364c76b84c5d56829f533e59e20448b466cf28642751aa61cd020c6822ee","typeString":"literal_string \"value = 0\""},"value":"value = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6792364c76b84c5d56829f533e59e20448b466cf28642751aa61cd020c6822ee","typeString":"literal_string \"value = 0\""}],"id":18061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32856:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32856:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18067,"nodeType":"ExpressionStatement","src":"32856:32:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18069,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18049,"src":"32934:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":18070,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"32947:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"32947:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32934:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e206f6e6c79206c6f636b20696e2074686520667574757265","id":18073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32964:29:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_d42d49df137fca74f731d619e6cd0b2b6bf7c7da1fcb6425e89873e4209ba1c6","typeString":"literal_string \"Can only lock in the future\""},"value":"Can only lock in the future"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d42d49df137fca74f731d619e6cd0b2b6bf7c7da1fcb6425e89873e4209ba1c6","typeString":"literal_string \"Can only lock in the future\""}],"id":18068,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32926:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32926:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18075,"nodeType":"ExpressionStatement","src":"32926:68:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18077,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18049,"src":"33025:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18078,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"33039:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"33039:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18080,"name":"MAXTIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"33057:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33039:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33025:39:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f74696e67206c6f636b2063616e2062652034207965617273206d6178","id":18083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33078:32:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c","typeString":"literal_string \"Voting lock can be 4 years max\""},"value":"Voting lock can be 4 years max"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c","typeString":"literal_string \"Voting lock can be 4 years max\""}],"id":18076,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33004:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33004:116:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18085,"nodeType":"ExpressionStatement","src":"33004:116:69"},{"expression":{"id":18087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"33131:9:69","subExpression":{"id":18086,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16118,"src":"33133:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18088,"nodeType":"ExpressionStatement","src":"33131:9:69"},{"assignments":[18090],"declarations":[{"constant":false,"id":18090,"mutability":"mutable","name":"_tokenId","nameLocation":"33158:8:69","nodeType":"VariableDeclaration","scope":18124,"src":"33150:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18089,"name":"uint256","nodeType":"ElementaryTypeName","src":"33150:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18092,"initialValue":{"id":18091,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16118,"src":"33169:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33150:26:69"},{"expression":{"arguments":[{"id":18094,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18034,"src":"33192:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18095,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"33197:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18093,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17124,"src":"33186:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":18096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33186:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18097,"nodeType":"ExpressionStatement","src":"33186:20:69"},{"expression":{"arguments":[{"id":18099,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"33242:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18100,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18030,"src":"33264:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18101,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18049,"src":"33284:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":18102,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"33308:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":18104,"indexExpression":{"id":18103,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"33315:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33308:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},{"expression":{"id":18105,"name":"DepositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34875,"src":"33338:11:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DepositType_$34875_$","typeString":"type(enum INFTLocker.DepositType)"}},"id":18106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CREATE_LOCK_TYPE","nodeType":"MemberAccess","referencedDeclaration":34871,"src":"33338:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},{"id":18107,"name":"_shouldPullUserMaha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18036,"src":"33380:19:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18108,"name":"_stakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18038,"src":"33413:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"},{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18098,"name":"_depositFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"33217:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_enum$_DepositType_$34875_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,uint256,uint256,struct INFTLocker.LockedBalance memory,enum INFTLocker.DepositType,bool,bool)"}},"id":18109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33217:215:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18110,"nodeType":"ExpressionStatement","src":"33217:215:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18113,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"33478:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18114,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"33488:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"33488:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18112,"name":"_balanceOfNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18741,"src":"33464:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":18116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33464:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":18117,"name":"minLockAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16115,"src":"33508:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33464:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6d696e20616d6f756e7420666f72206e6674206e6f74206d6574","id":18119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33535:28:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_c698d0407b72c92210ffcd4a7d9f5f135b1ab7423509eb34a8a0b6740e7f2092","typeString":"literal_string \"min amount for nft not met\""},"value":"min amount for nft not met"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c698d0407b72c92210ffcd4a7d9f5f135b1ab7423509eb34a8a0b6740e7f2092","typeString":"literal_string \"min amount for nft not met\""}],"id":18111,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33443:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33443:130:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18121,"nodeType":"ExpressionStatement","src":"33443:130:69"},{"expression":{"id":18122,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"33591:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18042,"id":18123,"nodeType":"Return","src":"33584:15:69"}]},"documentation":{"id":18028,"nodeType":"StructuredDocumentation","src":"32113:385:69","text":"@notice Deposit `_value` tokens for `_to` and lock for `_lockDuration`\n @param _value Amount to deposit\n @param _lockDuration Number of seconds to lock tokens for (rounded down to nearest week)\n @param _to Address to deposit\n @param _shouldPullUserMaha Should we pull maha with the lock\n @param _stakeNFT should we stake into the staking contract"},"id":18125,"implemented":true,"kind":"function","modifiers":[],"name":"_createLock","nameLocation":"32512:11:69","nodeType":"FunctionDefinition","parameters":{"id":18039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18030,"mutability":"mutable","name":"_value","nameLocation":"32541:6:69","nodeType":"VariableDeclaration","scope":18125,"src":"32533:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18029,"name":"uint256","nodeType":"ElementaryTypeName","src":"32533:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18032,"mutability":"mutable","name":"_lockDuration","nameLocation":"32565:13:69","nodeType":"VariableDeclaration","scope":18125,"src":"32557:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18031,"name":"uint256","nodeType":"ElementaryTypeName","src":"32557:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18034,"mutability":"mutable","name":"_to","nameLocation":"32596:3:69","nodeType":"VariableDeclaration","scope":18125,"src":"32588:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18033,"name":"address","nodeType":"ElementaryTypeName","src":"32588:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18036,"mutability":"mutable","name":"_shouldPullUserMaha","nameLocation":"32614:19:69","nodeType":"VariableDeclaration","scope":18125,"src":"32609:24:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18035,"name":"bool","nodeType":"ElementaryTypeName","src":"32609:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18038,"mutability":"mutable","name":"_stakeNFT","nameLocation":"32648:9:69","nodeType":"VariableDeclaration","scope":18125,"src":"32643:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18037,"name":"bool","nodeType":"ElementaryTypeName","src":"32643:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32523:140:69"},"returnParameters":{"id":18042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18125,"src":"32682:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18040,"name":"uint256","nodeType":"ElementaryTypeName","src":"32682:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32681:9:69"},"scope":19413,"src":"32503:1103:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34847],"body":{"id":18150,"nodeType":"Block","src":"34044:80:69","statements":[{"expression":{"arguments":[{"id":18143,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"34073:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18144,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18130,"src":"34081:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18145,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18132,"src":"34096:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":18146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34101:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":18147,"name":"_stakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18134,"src":"34107:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18142,"name":"_createLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"34061:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint256,uint256,address,bool,bool) returns (uint256)"}},"id":18148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34061:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18141,"id":18149,"nodeType":"Return","src":"34054:63:69"}]},"documentation":{"id":18126,"nodeType":"StructuredDocumentation","src":"33612:249:69","text":"@notice Deposit `_value` tokens for `_to` and lock for `_lockDuration`\n @param _value Amount to deposit\n @param _lockDuration Number of seconds to lock tokens for (rounded down to nearest week)\n @param _to Address to deposit"},"functionSelector":"0a2abdb3","id":18151,"implemented":true,"kind":"function","modifiers":[{"id":18138,"kind":"modifierInvocation","modifierName":{"id":18137,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"34013:12:69"},"nodeType":"ModifierInvocation","src":"34013:12:69"}],"name":"createLockFor","nameLocation":"33875:13:69","nodeType":"FunctionDefinition","overrides":{"id":18136,"nodeType":"OverrideSpecifier","overrides":[],"src":"34004:8:69"},"parameters":{"id":18135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18128,"mutability":"mutable","name":"_value","nameLocation":"33906:6:69","nodeType":"VariableDeclaration","scope":18151,"src":"33898:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18127,"name":"uint256","nodeType":"ElementaryTypeName","src":"33898:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18130,"mutability":"mutable","name":"_lockDuration","nameLocation":"33930:13:69","nodeType":"VariableDeclaration","scope":18151,"src":"33922:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18129,"name":"uint256","nodeType":"ElementaryTypeName","src":"33922:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18132,"mutability":"mutable","name":"_to","nameLocation":"33961:3:69","nodeType":"VariableDeclaration","scope":18151,"src":"33953:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18131,"name":"address","nodeType":"ElementaryTypeName","src":"33953:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18134,"mutability":"mutable","name":"_stakeNFT","nameLocation":"33979:9:69","nodeType":"VariableDeclaration","scope":18151,"src":"33974:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18133,"name":"bool","nodeType":"ElementaryTypeName","src":"33974:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33888:106:69"},"returnParameters":{"id":18141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18151,"src":"34035:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18139,"name":"uint256","nodeType":"ElementaryTypeName","src":"34035:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34034:9:69"},"scope":19413,"src":"33866:258:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34858],"body":{"id":18173,"nodeType":"Block","src":"34286:76:69","statements":[{"expression":{"arguments":[{"id":18166,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18153,"src":"34315:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18167,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18155,"src":"34323:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18168,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18157,"src":"34338:3:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":18169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34343:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"74727565","id":18170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34350:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18165,"name":"_createLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"34303:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint256,uint256,address,bool,bool) returns (uint256)"}},"id":18171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34303:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18164,"id":18172,"nodeType":"Return","src":"34296:59:69"}]},"functionSelector":"8df4b13b","id":18174,"implemented":true,"kind":"function","modifiers":[{"id":18161,"kind":"modifierInvocation","modifierName":{"id":18160,"name":"onlyMigrator","nodeType":"IdentifierPath","referencedDeclaration":16183,"src":"34255:12:69"},"nodeType":"ModifierInvocation","src":"34255:12:69"}],"name":"migrateTokenFor","nameLocation":"34139:15:69","nodeType":"FunctionDefinition","overrides":{"id":18159,"nodeType":"OverrideSpecifier","overrides":[],"src":"34246:8:69"},"parameters":{"id":18158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18153,"mutability":"mutable","name":"_value","nameLocation":"34172:6:69","nodeType":"VariableDeclaration","scope":18174,"src":"34164:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18152,"name":"uint256","nodeType":"ElementaryTypeName","src":"34164:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18155,"mutability":"mutable","name":"_lockDuration","nameLocation":"34196:13:69","nodeType":"VariableDeclaration","scope":18174,"src":"34188:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18154,"name":"uint256","nodeType":"ElementaryTypeName","src":"34188:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18157,"mutability":"mutable","name":"_to","nameLocation":"34227:3:69","nodeType":"VariableDeclaration","scope":18174,"src":"34219:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18156,"name":"address","nodeType":"ElementaryTypeName","src":"34219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34154:82:69"},"returnParameters":{"id":18164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18174,"src":"34277:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18162,"name":"uint256","nodeType":"ElementaryTypeName","src":"34277:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34276:9:69"},"scope":19413,"src":"34130:232:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34869],"body":{"id":18198,"nodeType":"Block","src":"34808:87:69","statements":[{"expression":{"arguments":[{"id":18190,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"34837:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18191,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"34845:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18192,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"34860:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"34860:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":18194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34872:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":18195,"name":"_stakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18181,"src":"34878:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18189,"name":"_createLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"34825:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint256,uint256,address,bool,bool) returns (uint256)"}},"id":18196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34825:63:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18188,"id":18197,"nodeType":"Return","src":"34818:70:69"}]},"documentation":{"id":18175,"nodeType":"StructuredDocumentation","src":"34368:281:69","text":"@notice Deposit `_value` tokens for `msg.sender` and lock for `_lockDuration`\n @param _value Amount to deposit\n @param _lockDuration Number of seconds to lock tokens for (rounded down to nearest week)\n @param _stakeNFT Should we also stake the NFT as well?"},"functionSelector":"d60371a7","id":18199,"implemented":true,"kind":"function","modifiers":[{"id":18185,"kind":"modifierInvocation","modifierName":{"id":18184,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"34777:12:69"},"nodeType":"ModifierInvocation","src":"34777:12:69"}],"name":"createLock","nameLocation":"34663:10:69","nodeType":"FunctionDefinition","overrides":{"id":18183,"nodeType":"OverrideSpecifier","overrides":[],"src":"34768:8:69"},"parameters":{"id":18182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18177,"mutability":"mutable","name":"_value","nameLocation":"34691:6:69","nodeType":"VariableDeclaration","scope":18199,"src":"34683:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18176,"name":"uint256","nodeType":"ElementaryTypeName","src":"34683:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18179,"mutability":"mutable","name":"_lockDuration","nameLocation":"34715:13:69","nodeType":"VariableDeclaration","scope":18199,"src":"34707:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18178,"name":"uint256","nodeType":"ElementaryTypeName","src":"34707:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18181,"mutability":"mutable","name":"_stakeNFT","nameLocation":"34743:9:69","nodeType":"VariableDeclaration","scope":18199,"src":"34738:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18180,"name":"bool","nodeType":"ElementaryTypeName","src":"34738:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34673:85:69"},"returnParameters":{"id":18188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18199,"src":"34799:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18186,"name":"uint256","nodeType":"ElementaryTypeName","src":"34799:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34798:9:69"},"scope":19413,"src":"34654:241:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18261,"nodeType":"Block","src":"35275:386:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18217,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18206,"src":"35293:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":18218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"35293:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18219,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18209,"src":"35310:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":18220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"35310:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35293:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642064617461","id":18222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35332:14:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_daa7483749cacd5db6e6dbf39797c99e92fae0480149c43b2eb0bdcda7a1bf59","typeString":"literal_string \"invalid data\""},"value":"invalid data"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daa7483749cacd5db6e6dbf39797c99e92fae0480149c43b2eb0bdcda7a1bf59","typeString":"literal_string \"invalid data\""}],"id":18216,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"35285:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35285:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18224,"nodeType":"ExpressionStatement","src":"35285:62:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18226,"name":"_users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18203,"src":"35365:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"35365:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18228,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18206,"src":"35382:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":18229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"35382:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35365:30:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642064617461","id":18231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35397:14:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_daa7483749cacd5db6e6dbf39797c99e92fae0480149c43b2eb0bdcda7a1bf59","typeString":"literal_string \"invalid data\""},"value":"invalid data"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daa7483749cacd5db6e6dbf39797c99e92fae0480149c43b2eb0bdcda7a1bf59","typeString":"literal_string \"invalid data\""}],"id":18225,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"35357:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35357:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18233,"nodeType":"ExpressionStatement","src":"35357:55:69"},{"body":{"id":18259,"nodeType":"Block","src":"35467:188:69","statements":[{"expression":{"arguments":[{"baseExpression":{"id":18246,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18206,"src":"35510:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":18248,"indexExpression":{"id":18247,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"35517:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35510:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":18249,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18209,"src":"35537:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":18251,"indexExpression":{"id":18250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"35551:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35537:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":18252,"name":"_users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18203,"src":"35571:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18254,"indexExpression":{"id":18253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"35578:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35571:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":18255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35598:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":18256,"name":"_stakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"35621:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18245,"name":"_createLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"35481:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint256,uint256,address,bool,bool) returns (uint256)"}},"id":18257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35481:163:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18258,"nodeType":"ExpressionStatement","src":"35481:163:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18238,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"35443:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":18239,"name":"_users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18203,"src":"35447:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"35447:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35443:17:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18260,"initializationExpression":{"assignments":[18235],"declarations":[{"constant":false,"id":18235,"mutability":"mutable","name":"i","nameLocation":"35436:1:69","nodeType":"VariableDeclaration","scope":18260,"src":"35428:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18234,"name":"uint256","nodeType":"ElementaryTypeName","src":"35428:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18237,"initialValue":{"hexValue":"30","id":18236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35440:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"35428:13:69"},"loopExpression":{"expression":{"id":18243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"35462:3:69","subExpression":{"id":18242,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"35462:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18244,"nodeType":"ExpressionStatement","src":"35462:3:69"},"nodeType":"ForStatement","src":"35423:232:69"}]},"documentation":{"id":18200,"nodeType":"StructuredDocumentation","src":"34901:190:69","text":"@notice Upload users.\n @param _users The users for whose lock is to be added.\n @param _value The values for users.\n @param _lockDuration The lock duration for users."},"functionSelector":"b128fd86","id":18262,"implemented":true,"kind":"function","modifiers":[{"id":18214,"kind":"modifierInvocation","modifierName":{"id":18213,"name":"onlyMigrator","nodeType":"IdentifierPath","referencedDeclaration":16183,"src":"35262:12:69"},"nodeType":"ModifierInvocation","src":"35262:12:69"}],"name":"uploadUsers","nameLocation":"35105:11:69","nodeType":"FunctionDefinition","parameters":{"id":18212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18203,"mutability":"mutable","name":"_users","nameLocation":"35143:6:69","nodeType":"VariableDeclaration","scope":18262,"src":"35126:23:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":18201,"name":"address","nodeType":"ElementaryTypeName","src":"35126:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18202,"nodeType":"ArrayTypeName","src":"35126:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":18206,"mutability":"mutable","name":"_value","nameLocation":"35176:6:69","nodeType":"VariableDeclaration","scope":18262,"src":"35159:23:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":18204,"name":"uint256","nodeType":"ElementaryTypeName","src":"35159:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18205,"nodeType":"ArrayTypeName","src":"35159:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":18209,"mutability":"mutable","name":"_lockDuration","nameLocation":"35209:13:69","nodeType":"VariableDeclaration","scope":18262,"src":"35192:30:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":18207,"name":"uint256","nodeType":"ElementaryTypeName","src":"35192:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18208,"nodeType":"ArrayTypeName","src":"35192:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":18211,"mutability":"mutable","name":"_stakeNFT","nameLocation":"35237:9:69","nodeType":"VariableDeclaration","scope":18262,"src":"35232:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18210,"name":"bool","nodeType":"ElementaryTypeName","src":"35232:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35116:136:69"},"returnParameters":{"id":18215,"nodeType":"ParameterList","parameters":[],"src":"35275:0:69"},"scope":19413,"src":"35096:565:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18277,"nodeType":"Block","src":"35977:70:69","statements":[{"expression":{"arguments":[{"id":18273,"name":"_royaltyRcv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18265,"src":"36006:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18274,"name":"_royaltyFeeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18267,"src":"36019:20:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":18272,"name":"_setDefaultRoyalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"35987:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint96_$returns$__$","typeString":"function (address,uint96)"}},"id":18275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35987:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18276,"nodeType":"ExpressionStatement","src":"35987:53:69"}]},"documentation":{"id":18263,"nodeType":"StructuredDocumentation","src":"35667:187:69","text":"@notice Sets the royalty info for all NFT marketplaces\n @param _royaltyRcv The address to recieve royalties\n @param _royaltyFeeNumerator The amount of royalty to recieve"},"functionSelector":"02fa7c47","id":18278,"implemented":true,"kind":"function","modifiers":[{"id":18270,"kind":"modifierInvocation","modifierName":{"id":18269,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":16170,"src":"35958:14:69"},"nodeType":"ModifierInvocation","src":"35958:14:69"}],"name":"setRoyaltyInfo","nameLocation":"35868:14:69","nodeType":"FunctionDefinition","parameters":{"id":18268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18265,"mutability":"mutable","name":"_royaltyRcv","nameLocation":"35891:11:69","nodeType":"VariableDeclaration","scope":18278,"src":"35883:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18264,"name":"address","nodeType":"ElementaryTypeName","src":"35883:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18267,"mutability":"mutable","name":"_royaltyFeeNumerator","nameLocation":"35911:20:69","nodeType":"VariableDeclaration","scope":18278,"src":"35904:27:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":18266,"name":"uint96","nodeType":"ElementaryTypeName","src":"35904:6:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"35882:50:69"},"returnParameters":{"id":18271,"nodeType":"ParameterList","parameters":[],"src":"35977:0:69"},"scope":19413,"src":"35859:188:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18290,"nodeType":"Block","src":"36224:47:69","statements":[{"expression":{"id":18288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18286,"name":"minLockAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16115,"src":"36234:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18287,"name":"_minLockAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18281,"src":"36250:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36234:30:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18289,"nodeType":"ExpressionStatement","src":"36234:30:69"}]},"documentation":{"id":18279,"nodeType":"StructuredDocumentation","src":"36053:92:69","text":"@notice Sets the min amount to lock\n @param _minLockAmount The min amount to lock"},"functionSelector":"0f68ae40","id":18291,"implemented":true,"kind":"function","modifiers":[{"id":18284,"kind":"modifierInvocation","modifierName":{"id":18283,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":16170,"src":"36209:14:69"},"nodeType":"ModifierInvocation","src":"36209:14:69"}],"name":"setMinLockAmount","nameLocation":"36159:16:69","nodeType":"FunctionDefinition","parameters":{"id":18282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18281,"mutability":"mutable","name":"_minLockAmount","nameLocation":"36184:14:69","nodeType":"VariableDeclaration","scope":18291,"src":"36176:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18280,"name":"uint256","nodeType":"ElementaryTypeName","src":"36176:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36175:24:69"},"returnParameters":{"id":18285,"nodeType":"ParameterList","parameters":[],"src":"36224:0:69"},"scope":19413,"src":"36150:121:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18353,"nodeType":"Block","src":"36547:599:69","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":18303,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36597:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"36597:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18305,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"36609:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18302,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"36578:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":18306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36578:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":18307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36632:34:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""},"value":"caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""}],"id":18301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36557:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36557:119:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18309,"nodeType":"ExpressionStatement","src":"36557:119:69"},{"assignments":[18312],"declarations":[{"constant":false,"id":18312,"mutability":"mutable","name":"_locked","nameLocation":"36707:7:69","nodeType":"VariableDeclaration","scope":18353,"src":"36686:28:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":18311,"nodeType":"UserDefinedTypeName","pathNode":{"id":18310,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"36686:13:69"},"referencedDeclaration":34891,"src":"36686:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":18316,"initialValue":{"baseExpression":{"id":18313,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"36717:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":18315,"indexExpression":{"id":18314,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"36724:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36717:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"VariableDeclarationStatement","src":"36686:47:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18318,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18296,"src":"36751:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36760:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36751:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18317,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"36744:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":18321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36744:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18322,"nodeType":"ExpressionStatement","src":"36744:18:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18324,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18312,"src":"36808:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"36808:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36825:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36808:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f206578697374696e67206c6f636b20666f756e64","id":18328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36828:24:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba31947ee23d0ae2490516d3f699e2ca3cc97701b736b2a4df65fb6df8601a0f","typeString":"literal_string \"No existing lock found\""},"value":"No existing lock found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba31947ee23d0ae2490516d3f699e2ca3cc97701b736b2a4df65fb6df8601a0f","typeString":"literal_string \"No existing lock found\""}],"id":18323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36800:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36800:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18330,"nodeType":"ExpressionStatement","src":"36800:53:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18332,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18312,"src":"36871:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"36871:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":18334,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"36885:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"36885:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36871:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f742061646420746f2065787069726564206c6f636b2e","id":18337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36902:29:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_01173bbfe002a8916184f8f7c88b55bac2bc68ac2fbd9efd2306289847e45408","typeString":"literal_string \"Cannot add to expired lock.\""},"value":"Cannot add to expired lock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01173bbfe002a8916184f8f7c88b55bac2bc68ac2fbd9efd2306289847e45408","typeString":"literal_string \"Cannot add to expired lock.\""}],"id":18331,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36863:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36863:69:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18339,"nodeType":"ExpressionStatement","src":"36863:69:69"},{"expression":{"arguments":[{"id":18341,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"36968:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18342,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18296,"src":"36990:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":18343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37010:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":18344,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18312,"src":"37025:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"expression":{"id":18345,"name":"DepositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34875,"src":"37046:11:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DepositType_$34875_$","typeString":"type(enum INFTLocker.DepositType)"}},"id":18346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"INCREASE_LOCK_AMOUNT","nodeType":"MemberAccess","referencedDeclaration":34872,"src":"37046:32:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},{"hexValue":"74727565","id":18347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"37092:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"arguments":[{"id":18349,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"37120:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18348,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"37110:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":18350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37110:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18340,"name":"_depositFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"36943:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_enum$_DepositType_$34875_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,uint256,uint256,struct INFTLocker.LockedBalance memory,enum INFTLocker.DepositType,bool,bool)"}},"id":18351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36943:196:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18352,"nodeType":"ExpressionStatement","src":"36943:196:69"}]},"documentation":{"id":18292,"nodeType":"StructuredDocumentation","src":"36277:165:69","text":"@notice Deposit `_value` additional tokens for `_tokenId` without modifying the unlock time\n @param _value Amount of tokens to deposit and add to the lock"},"functionSelector":"b2383e55","id":18354,"implemented":true,"kind":"function","modifiers":[{"id":18299,"kind":"modifierInvocation","modifierName":{"id":18298,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"36530:12:69"},"nodeType":"ModifierInvocation","src":"36530:12:69"}],"name":"increaseAmount","nameLocation":"36456:14:69","nodeType":"FunctionDefinition","parameters":{"id":18297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18294,"mutability":"mutable","name":"_tokenId","nameLocation":"36479:8:69","nodeType":"VariableDeclaration","scope":18354,"src":"36471:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18293,"name":"uint256","nodeType":"ElementaryTypeName","src":"36471:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18296,"mutability":"mutable","name":"_value","nameLocation":"36497:6:69","nodeType":"VariableDeclaration","scope":18354,"src":"36489:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18295,"name":"uint256","nodeType":"ElementaryTypeName","src":"36489:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36470:34:69"},"returnParameters":{"id":18300,"nodeType":"ParameterList","parameters":[],"src":"36547:0:69"},"scope":19413,"src":"36447:699:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18451,"nodeType":"Block","src":"37388:974:69","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":18366,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"37438:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"37438:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18368,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18357,"src":"37450:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18365,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"37419:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":18369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37419:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":18370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37473:34:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""},"value":"caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""}],"id":18364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"37398:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37398:119:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18372,"nodeType":"ExpressionStatement","src":"37398:119:69"},{"assignments":[18375],"declarations":[{"constant":false,"id":18375,"mutability":"mutable","name":"_locked","nameLocation":"37549:7:69","nodeType":"VariableDeclaration","scope":18451,"src":"37528:28:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":18374,"nodeType":"UserDefinedTypeName","pathNode":{"id":18373,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"37528:13:69"},"referencedDeclaration":34891,"src":"37528:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":18379,"initialValue":{"baseExpression":{"id":18376,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"37559:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":18378,"indexExpression":{"id":18377,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18357,"src":"37566:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37559:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"VariableDeclarationStatement","src":"37528:47:69"},{"assignments":[18381],"declarations":[{"constant":false,"id":18381,"mutability":"mutable","name":"unlockTime","nameLocation":"37593:10:69","nodeType":"VariableDeclaration","scope":18451,"src":"37585:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18380,"name":"uint256","nodeType":"ElementaryTypeName","src":"37585:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18392,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18382,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37608:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"37608:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18384,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18359,"src":"37626:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37608:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"37607:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":18387,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"37643:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37607:40:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18389,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"37606:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18390,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"37651:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37606:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"37585:70:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18394,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18375,"src":"37711:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"37711:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":18396,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37725:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"37725:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37711:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b2065787069726564","id":18399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37742:14:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7fe084aded7705802811ee701eb2a306a550b2e89cc56b1a5172f4f09d82aa9","typeString":"literal_string \"Lock expired\""},"value":"Lock expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b7fe084aded7705802811ee701eb2a306a550b2e89cc56b1a5172f4f09d82aa9","typeString":"literal_string \"Lock expired\""}],"id":18393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"37703:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37703:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18401,"nodeType":"ExpressionStatement","src":"37703:54:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18403,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18375,"src":"37775:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"37775:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37775:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7468696e67206973206c6f636b6564","id":18407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37795:19:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f2f0d45ca70854308f4586d0e5a6a00dd2cffcf3c63fac8bf45e216c4725cc7","typeString":"literal_string \"Nothing is locked\""},"value":"Nothing is locked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8f2f0d45ca70854308f4586d0e5a6a00dd2cffcf3c63fac8bf45e216c4725cc7","typeString":"literal_string \"Nothing is locked\""}],"id":18402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"37767:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37767:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18409,"nodeType":"ExpressionStatement","src":"37767:48:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18411,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18381,"src":"37833:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":18412,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18375,"src":"37846:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"37846:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37833:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e206f6e6c7920696e637265617365206c6f636b206475726174696f6e","id":18415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37859:33:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_49af1ad93488656fe0ec6138293fb681e49fb69c915cd81c5194d0d0d5b795c2","typeString":"literal_string \"Can only increase lock duration\""},"value":"Can only increase lock duration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_49af1ad93488656fe0ec6138293fb681e49fb69c915cd81c5194d0d0d5b795c2","typeString":"literal_string \"Can only increase lock duration\""}],"id":18410,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"37825:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37825:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18417,"nodeType":"ExpressionStatement","src":"37825:68:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18419,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18381,"src":"37924:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18420,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37938:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"37938:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18422,"name":"MAXTIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"37956:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37938:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37924:39:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f74696e67206c6f636b2063616e2062652034207965617273206d6178","id":18425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37977:32:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c","typeString":"literal_string \"Voting lock can be 4 years max\""},"value":"Voting lock can be 4 years max"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c","typeString":"literal_string \"Voting lock can be 4 years max\""}],"id":18418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"37903:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37903:116:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18427,"nodeType":"ExpressionStatement","src":"37903:116:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18429,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18381,"src":"38050:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18430,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18375,"src":"38064:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"start","nodeType":"MemberAccess","referencedDeclaration":34890,"src":"38064:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18432,"name":"MAXTIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"38080:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38064:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38050:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f74696e67206c6f636b2063616e2062652034207965617273206d6178","id":18435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38101:32:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c","typeString":"literal_string \"Voting lock can be 4 years max\""},"value":"Voting lock can be 4 years max"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c","typeString":"literal_string \"Voting lock can be 4 years max\""}],"id":18428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"38029:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38029:114:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18437,"nodeType":"ExpressionStatement","src":"38029:114:69"},{"expression":{"arguments":[{"id":18439,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18357,"src":"38179:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":18440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38201:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":18441,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18381,"src":"38216:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18442,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18375,"src":"38240:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"expression":{"id":18443,"name":"DepositType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34875,"src":"38261:11:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DepositType_$34875_$","typeString":"type(enum INFTLocker.DepositType)"}},"id":18444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"INCREASE_UNLOCK_TIME","nodeType":"MemberAccess","referencedDeclaration":34873,"src":"38261:32:69","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},{"hexValue":"66616c7365","id":18445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"38307:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"id":18447,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18357,"src":"38336:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18446,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"38326:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":18448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38326:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18438,"name":"_depositFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"38154:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_enum$_DepositType_$34875_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,uint256,uint256,struct INFTLocker.LockedBalance memory,enum INFTLocker.DepositType,bool,bool)"}},"id":18449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38154:201:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18450,"nodeType":"ExpressionStatement","src":"38154:201:69"}]},"documentation":{"id":18355,"nodeType":"StructuredDocumentation","src":"37152:120:69","text":"@notice Extend the unlock time for `_tokenId`\n @param _lockDuration New number of seconds until tokens unlock"},"functionSelector":"9d507b8b","id":18452,"implemented":true,"kind":"function","modifiers":[{"id":18362,"kind":"modifierInvocation","modifierName":{"id":18361,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"37371:12:69"},"nodeType":"ModifierInvocation","src":"37371:12:69"}],"name":"increaseUnlockTime","nameLocation":"37286:18:69","nodeType":"FunctionDefinition","parameters":{"id":18360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18357,"mutability":"mutable","name":"_tokenId","nameLocation":"37313:8:69","nodeType":"VariableDeclaration","scope":18452,"src":"37305:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18356,"name":"uint256","nodeType":"ElementaryTypeName","src":"37305:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18359,"mutability":"mutable","name":"_lockDuration","nameLocation":"37331:13:69","nodeType":"VariableDeclaration","scope":18452,"src":"37323:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18358,"name":"uint256","nodeType":"ElementaryTypeName","src":"37323:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37304:41:69"},"returnParameters":{"id":18363,"nodeType":"ParameterList","parameters":[],"src":"37388:0:69"},"scope":19413,"src":"37277:1085:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18567,"nodeType":"Block","src":"38528:958:69","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":18462,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"38578:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"38578:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18464,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"38590:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18461,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"38559:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":18465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38559:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":18466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38613:34:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""},"value":"caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""}],"id":18460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"38538:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38538:119:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18468,"nodeType":"ExpressionStatement","src":"38538:119:69"},{"expression":{"arguments":[{"id":18473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38675:20:69","subExpression":{"arguments":[{"id":18471,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"38686:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18470,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"38676:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":18472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38676:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7374616b6564","id":18474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38697:8:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db","typeString":"literal_string \"staked\""},"value":"staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db","typeString":"literal_string \"staked\""}],"id":18469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"38667:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38667:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18476,"nodeType":"ExpressionStatement","src":"38667:39:69"},{"assignments":[18479],"declarations":[{"constant":false,"id":18479,"mutability":"mutable","name":"_locked","nameLocation":"38738:7:69","nodeType":"VariableDeclaration","scope":18567,"src":"38717:28:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance"},"typeName":{"id":18478,"nodeType":"UserDefinedTypeName","pathNode":{"id":18477,"name":"LockedBalance","nodeType":"IdentifierPath","referencedDeclaration":34891,"src":"38717:13:69"},"referencedDeclaration":34891,"src":"38717:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage_ptr","typeString":"struct INFTLocker.LockedBalance"}},"visibility":"internal"}],"id":18483,"initialValue":{"baseExpression":{"id":18480,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"38748:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":18482,"indexExpression":{"id":18481,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"38755:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38748:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38717:47:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18485,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38782:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"38782:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":18487,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18479,"src":"38801:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"end","nodeType":"MemberAccess","referencedDeclaration":34888,"src":"38801:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38782:30:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546865206c6f636b206469646e277420657870697265","id":18490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38814:24:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd1d0bc28fa2c92449d40df20cd3a58eba7687f39f6e0f26d29f6bd7e450cebe","typeString":"literal_string \"The lock didn't expire\""},"value":"The lock didn't expire"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fd1d0bc28fa2c92449d40df20cd3a58eba7687f39f6e0f26d29f6bd7e450cebe","typeString":"literal_string \"The lock didn't expire\""}],"id":18484,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"38774:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38774:65:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18492,"nodeType":"ExpressionStatement","src":"38774:65:69"},{"assignments":[18494],"declarations":[{"constant":false,"id":18494,"mutability":"mutable","name":"value","nameLocation":"38857:5:69","nodeType":"VariableDeclaration","scope":18567,"src":"38849:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18493,"name":"uint256","nodeType":"ElementaryTypeName","src":"38849:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18503,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":18499,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18479,"src":"38880:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"id":18500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":34886,"src":"38880:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":18498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"38873:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18497,"name":"int256","nodeType":"ElementaryTypeName","src":"38873:6:69","typeDescriptions":{}}},"id":18501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38873:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"38865:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18495,"name":"uint256","nodeType":"ElementaryTypeName","src":"38865:7:69","typeDescriptions":{}}},"id":18502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38865:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"38849:47:69"},{"expression":{"id":18512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18504,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"38907:6:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_LockedBalance_$34891_storage_$","typeString":"mapping(uint256 => struct INFTLocker.LockedBalance storage ref)"}},"id":18506,"indexExpression":{"id":18505,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"38914:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"38907:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":18508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38940:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":18509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38943:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":18510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38946:1:69","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18507,"name":"LockedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34891,"src":"38926:13:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LockedBalance_$34891_storage_ptr_$","typeString":"type(struct INFTLocker.LockedBalance storage pointer)"}},"id":18511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38926:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},"src":"38907:41:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_storage","typeString":"struct INFTLocker.LockedBalance storage ref"}},"id":18513,"nodeType":"ExpressionStatement","src":"38907:41:69"},{"assignments":[18515],"declarations":[{"constant":false,"id":18515,"mutability":"mutable","name":"supplyBefore","nameLocation":"38966:12:69","nodeType":"VariableDeclaration","scope":18567,"src":"38958:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18514,"name":"uint256","nodeType":"ElementaryTypeName","src":"38958:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18517,"initialValue":{"id":18516,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16065,"src":"38981:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"38958:29:69"},{"expression":{"id":18522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18518,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16065,"src":"38997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18519,"name":"supplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18515,"src":"39006:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":18520,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"39021:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39006:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38997:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18523,"nodeType":"ExpressionStatement","src":"38997:29:69"},{"expression":{"arguments":[{"id":18525,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"39190:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18526,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18479,"src":"39200:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}},{"arguments":[{"hexValue":"30","id":18528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39223:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":18529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39226:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":18530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39229:1:69","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18527,"name":"LockedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34891,"src":"39209:13:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LockedBalance_$34891_storage_ptr_$","typeString":"type(struct INFTLocker.LockedBalance storage pointer)"}},"id":18531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39209:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"},{"typeIdentifier":"t_struct$_LockedBalance_$34891_memory_ptr","typeString":"struct INFTLocker.LockedBalance memory"}],"id":18524,"name":"_checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17644,"src":"39178:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_LockedBalance_$34891_memory_ptr_$_t_struct$_LockedBalance_$34891_memory_ptr_$returns$__$","typeString":"function (uint256,struct INFTLocker.LockedBalance memory,struct INFTLocker.LockedBalance memory)"}},"id":18532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39178:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18533,"nodeType":"ExpressionStatement","src":"39178:54:69"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":18541,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39283:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"39283:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18543,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"39295:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18536,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"39257:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":18537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"39257:13:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":18538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39257:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18535,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"39250:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":18539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39250:23:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":18540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"39250:32:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":18544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39250:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18534,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"39243:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":18545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39243:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18546,"nodeType":"ExpressionStatement","src":"39243:59:69"},{"expression":{"arguments":[{"id":18548,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"39343:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18547,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"39337:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":18549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39337:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18550,"nodeType":"ExpressionStatement","src":"39337:15:69"},{"eventCall":{"arguments":[{"expression":{"id":18552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39377:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"39377:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18554,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"39389:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18555,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"39399:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18556,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"39406:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"39406:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18551,"name":"Withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34916,"src":"39368:8:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":18558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39368:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18559,"nodeType":"EmitStatement","src":"39363:59:69"},{"eventCall":{"arguments":[{"id":18561,"name":"supplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18515,"src":"39444:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18562,"name":"supplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18515,"src":"39458:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":18563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"39473:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39458:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18560,"name":"Supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34922,"src":"39437:6:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":18565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39437:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18566,"nodeType":"EmitStatement","src":"39432:47:69"}]},"documentation":{"id":18453,"nodeType":"StructuredDocumentation","src":"38368:97:69","text":"@notice Withdraw all tokens for `_tokenId`\n @dev Only possible if the lock has expired"},"functionSelector":"2e1a7d4d","id":18568,"implemented":true,"kind":"function","modifiers":[{"id":18458,"kind":"modifierInvocation","modifierName":{"id":18457,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"38515:12:69"},"nodeType":"ModifierInvocation","src":"38515:12:69"}],"name":"withdraw","nameLocation":"38479:8:69","nodeType":"FunctionDefinition","parameters":{"id":18456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18455,"mutability":"mutable","name":"_tokenId","nameLocation":"38496:8:69","nodeType":"VariableDeclaration","scope":18568,"src":"38488:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18454,"name":"uint256","nodeType":"ElementaryTypeName","src":"38488:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38487:18:69"},"returnParameters":{"id":18459,"nodeType":"ParameterList","parameters":[],"src":"38528:0:69"},"scope":19413,"src":"38470:1016:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18581,"nodeType":"Block","src":"39658:46:69","statements":[{"expression":{"id":18579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18577,"name":"renderingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16063,"src":"39668:17:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18578,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18572,"src":"39688:9:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"src":"39668:29:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"id":18580,"nodeType":"ExpressionStatement","src":"39668:29:69"}]},"documentation":{"id":18569,"nodeType":"StructuredDocumentation","src":"39492:57:69","text":"@notice Sets the optional tokenURI override contract."},"functionSelector":"b7f1d072","id":18582,"implemented":true,"kind":"function","modifiers":[{"id":18575,"kind":"modifierInvocation","modifierName":{"id":18574,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":16170,"src":"39639:14:69"},"nodeType":"ModifierInvocation","src":"39639:14:69"}],"name":"setRenderingContract","nameLocation":"39563:20:69","nodeType":"FunctionDefinition","parameters":{"id":18573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18572,"mutability":"mutable","name":"_contract","nameLocation":"39603:9:69","nodeType":"VariableDeclaration","scope":18582,"src":"39584:28:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"},"typeName":{"id":18571,"nodeType":"UserDefinedTypeName","pathNode":{"id":18570,"name":"ITokenURIGenerator","nodeType":"IdentifierPath","referencedDeclaration":35664,"src":"39584:18:69"},"referencedDeclaration":35664,"src":"39584:18:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"visibility":"internal"}],"src":"39583:30:69"},"returnParameters":{"id":18576,"nodeType":"ParameterList","parameters":[],"src":"39658:0:69"},"scope":19413,"src":"39554:150:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18595,"nodeType":"Block","src":"39938:60:69","statements":[{"expression":{"arguments":[{"id":18592,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18585,"src":"39982:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18590,"name":"renderingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16063,"src":"39955:17:69","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIGenerator_$35664","typeString":"contract ITokenURIGenerator"}},"id":18591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":35663,"src":"39955:26:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view external returns (string memory)"}},"id":18593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39955:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":18589,"id":18594,"nodeType":"Return","src":"39948:43:69"}]},"documentation":{"id":18583,"nodeType":"StructuredDocumentation","src":"39710:151:69","text":"@notice If renderingContract is set then returns its tokenURI(tokenId)\n return value, otherwise returns the standard baseTokenURI + tokenId."},"functionSelector":"c87b56dd","id":18596,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"39875:8:69","nodeType":"FunctionDefinition","parameters":{"id":18586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18585,"mutability":"mutable","name":"_tokenId","nameLocation":"39892:8:69","nodeType":"VariableDeclaration","scope":18596,"src":"39884:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18584,"name":"uint256","nodeType":"ElementaryTypeName","src":"39884:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39883:18:69"},"returnParameters":{"id":18589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18596,"src":"39923:13:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18587,"name":"string","nodeType":"ElementaryTypeName","src":"39923:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39922:15:69"},"scope":19413,"src":"39866:132:69","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":18664,"nodeType":"Block","src":"40518:492:69","statements":[{"assignments":[18607],"declarations":[{"constant":false,"id":18607,"mutability":"mutable","name":"_min","nameLocation":"40561:4:69","nodeType":"VariableDeclaration","scope":18664,"src":"40553:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18606,"name":"uint256","nodeType":"ElementaryTypeName","src":"40553:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18609,"initialValue":{"hexValue":"30","id":18608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40568:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40553:16:69"},{"assignments":[18611],"declarations":[{"constant":false,"id":18611,"mutability":"mutable","name":"_max","nameLocation":"40587:4:69","nodeType":"VariableDeclaration","scope":18664,"src":"40579:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18610,"name":"uint256","nodeType":"ElementaryTypeName","src":"40579:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18613,"initialValue":{"id":18612,"name":"maxEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18601,"src":"40594:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40579:23:69"},{"body":{"id":18660,"nodeType":"Block","src":"40646:337:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18624,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18607,"src":"40721:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":18625,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18611,"src":"40729:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40721:12:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18629,"nodeType":"IfStatement","src":"40717:56:69","trueBody":{"id":18628,"nodeType":"Block","src":"40735:38:69","statements":[{"id":18627,"nodeType":"Break","src":"40753:5:69"}]}},{"assignments":[18631],"declarations":[{"constant":false,"id":18631,"mutability":"mutable","name":"_mid","nameLocation":"40794:4:69","nodeType":"VariableDeclaration","scope":18660,"src":"40786:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18630,"name":"uint256","nodeType":"ElementaryTypeName","src":"40786:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18640,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18632,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18607,"src":"40802:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18633,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18611,"src":"40809:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40802:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":18635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40816:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"40802:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18637,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"40801:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":18638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40821:1:69","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"40801:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40786:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":18641,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"40840:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":18643,"indexExpression":{"id":18642,"name":"_mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"40854:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40840:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":18644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"40840:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":18645,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18599,"src":"40867:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40840:33:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18658,"nodeType":"Block","src":"40925:48:69","statements":[{"expression":{"id":18656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18652,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18611,"src":"40943:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18653,"name":"_mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"40950:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":18654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40957:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"40950:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40943:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18657,"nodeType":"ExpressionStatement","src":"40943:15:69"}]},"id":18659,"nodeType":"IfStatement","src":"40836:137:69","trueBody":{"id":18651,"nodeType":"Block","src":"40875:44:69","statements":[{"expression":{"id":18649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18647,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18607,"src":"40893:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18648,"name":"_mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"40900:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40893:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18650,"nodeType":"ExpressionStatement","src":"40893:11:69"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18618,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18615,"src":"40632:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":18619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40636:3:69","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"40632:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18661,"initializationExpression":{"assignments":[18615],"declarations":[{"constant":false,"id":18615,"mutability":"mutable","name":"i","nameLocation":"40625:1:69","nodeType":"VariableDeclaration","scope":18661,"src":"40617:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18614,"name":"uint256","nodeType":"ElementaryTypeName","src":"40617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18617,"initialValue":{"hexValue":"30","id":18616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40629:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40617:13:69"},"loopExpression":{"expression":{"id":18622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"40641:3:69","subExpression":{"id":18621,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18615,"src":"40643:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18623,"nodeType":"ExpressionStatement","src":"40641:3:69"},"nodeType":"ForStatement","src":"40612:371:69"},{"expression":{"id":18662,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18607,"src":"40999:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18605,"id":18663,"nodeType":"Return","src":"40992:11:69"}]},"documentation":{"id":18597,"nodeType":"StructuredDocumentation","src":"40195:199:69","text":"@notice Binary search to estimate timestamp for block number\n @param _block Block to find\n @param maxEpoch Don't go beyond this epoch\n @return Approximate timestamp for block"},"id":18665,"implemented":true,"kind":"function","modifiers":[],"name":"_findBlockEpoch","nameLocation":"40408:15:69","nodeType":"FunctionDefinition","parameters":{"id":18602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18599,"mutability":"mutable","name":"_block","nameLocation":"40432:6:69","nodeType":"VariableDeclaration","scope":18665,"src":"40424:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18598,"name":"uint256","nodeType":"ElementaryTypeName","src":"40424:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18601,"mutability":"mutable","name":"maxEpoch","nameLocation":"40448:8:69","nodeType":"VariableDeclaration","scope":18665,"src":"40440:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18600,"name":"uint256","nodeType":"ElementaryTypeName","src":"40440:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40423:34:69"},"returnParameters":{"id":18605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18665,"src":"40505:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18603,"name":"uint256","nodeType":"ElementaryTypeName","src":"40505:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40504:9:69"},"scope":19413,"src":"40399:611:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18740,"nodeType":"Block","src":"41396:471:69","statements":[{"assignments":[18676],"declarations":[{"constant":false,"id":18676,"mutability":"mutable","name":"_epoch","nameLocation":"41414:6:69","nodeType":"VariableDeclaration","scope":18740,"src":"41406:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18675,"name":"uint256","nodeType":"ElementaryTypeName","src":"41406:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18680,"initialValue":{"baseExpression":{"id":18677,"name":"userPointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16094,"src":"41423:14:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18679,"indexExpression":{"id":18678,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18668,"src":"41438:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41423:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"41406:41:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18681,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18676,"src":"41461:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41471:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"41461:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18738,"nodeType":"Block","src":"41513:348:69","statements":[{"assignments":[18689],"declarations":[{"constant":false,"id":18689,"mutability":"mutable","name":"lastPoint","nameLocation":"41540:9:69","nodeType":"VariableDeclaration","scope":18738,"src":"41527:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":18688,"nodeType":"UserDefinedTypeName","pathNode":{"id":18687,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"41527:5:69"},"referencedDeclaration":34884,"src":"41527:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":18695,"initialValue":{"baseExpression":{"baseExpression":{"id":18690,"name":"_userPointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"41552:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref[1000000000] storage ref)"}},"id":18692,"indexExpression":{"id":18691,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18668,"src":"41570:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41552:27:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage","typeString":"struct INFTLocker.Point storage ref[1000000000] storage ref"}},"id":18694,"indexExpression":{"id":18693,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18676,"src":"41580:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41552:35:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"VariableDeclarationStatement","src":"41527:60:69"},{"expression":{"id":18715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18696,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"41601:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"41601:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18699,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"41635:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"41635:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18705,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"41683:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41676:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18703,"name":"int256","nodeType":"ElementaryTypeName","src":"41676:6:69","typeDescriptions":{}}},"id":18706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41676:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":18709,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"41696:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"41696:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41689:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18707,"name":"int256","nodeType":"ElementaryTypeName","src":"41689:6:69","typeDescriptions":{}}},"id":18711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41689:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"41676:33:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41669:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":18701,"name":"int128","nodeType":"ElementaryTypeName","src":"41669:6:69","typeDescriptions":{}}},"id":18713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41669:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"41635:75:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"41601:109:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":18716,"nodeType":"ExpressionStatement","src":"41601:109:69"},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18717,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"41728:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"41728:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":18719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41745:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"41728:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18728,"nodeType":"IfStatement","src":"41724:75:69","trueBody":{"id":18727,"nodeType":"Block","src":"41748:51:69","statements":[{"expression":{"id":18725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18721,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"41766:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"41766:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":18724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41783:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"41766:18:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":18726,"nodeType":"ExpressionStatement","src":"41766:18:69"}]}},{"expression":{"arguments":[{"arguments":[{"expression":{"id":18733,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"41834:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"41834:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":18732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41827:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18731,"name":"int256","nodeType":"ElementaryTypeName","src":"41827:6:69","typeDescriptions":{}}},"id":18735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41827:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41819:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18729,"name":"uint256","nodeType":"ElementaryTypeName","src":"41819:7:69","typeDescriptions":{}}},"id":18736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41819:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18674,"id":18737,"nodeType":"Return","src":"41812:38:69"}]},"id":18739,"nodeType":"IfStatement","src":"41457:404:69","trueBody":{"id":18686,"nodeType":"Block","src":"41474:33:69","statements":[{"expression":{"hexValue":"30","id":18684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41495:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":18674,"id":18685,"nodeType":"Return","src":"41488:8:69"}]}}]},"documentation":{"id":18666,"nodeType":"StructuredDocumentation","src":"41016:262:69","text":"@notice Get the current voting power for `_tokenId`\n @dev Adheres to the ERC20 `balanceOf` interface for Aragon compatibility\n @param _tokenId NFT for lock\n @param _t Epoch time to return voting power at\n @return User voting power"},"id":18741,"implemented":true,"kind":"function","modifiers":[],"name":"_balanceOfNFT","nameLocation":"41292:13:69","nodeType":"FunctionDefinition","parameters":{"id":18671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18668,"mutability":"mutable","name":"_tokenId","nameLocation":"41314:8:69","nodeType":"VariableDeclaration","scope":18741,"src":"41306:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18667,"name":"uint256","nodeType":"ElementaryTypeName","src":"41306:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18670,"mutability":"mutable","name":"_t","nameLocation":"41332:2:69","nodeType":"VariableDeclaration","scope":18741,"src":"41324:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18669,"name":"uint256","nodeType":"ElementaryTypeName","src":"41324:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41305:30:69"},"returnParameters":{"id":18674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18741,"src":"41383:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18672,"name":"uint256","nodeType":"ElementaryTypeName","src":"41383:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41382:9:69"},"scope":19413,"src":"41283:584:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[34749],"body":{"id":18764,"nodeType":"Block","src":"41990:129:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":18749,"name":"ownershipChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"42004:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18751,"indexExpression":{"id":18750,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18743,"src":"42020:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42004:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18752,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"42033:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"42033:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42004:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18757,"nodeType":"IfStatement","src":"42000:55:69","trueBody":{"expression":{"hexValue":"30","id":18755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42054:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":18748,"id":18756,"nodeType":"Return","src":"42047:8:69"}},{"expression":{"arguments":[{"id":18759,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18743,"src":"42086:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18760,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"42096:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"42096:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18758,"name":"_balanceOfNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18741,"src":"42072:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":18762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42072:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18748,"id":18763,"nodeType":"Return","src":"42065:47:69"}]},"functionSelector":"e7e242d4","id":18765,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfNFT","nameLocation":"41882:12:69","nodeType":"FunctionDefinition","overrides":{"id":18745,"nodeType":"OverrideSpecifier","overrides":[],"src":"41951:8:69"},"parameters":{"id":18744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18743,"mutability":"mutable","name":"_tokenId","nameLocation":"41903:8:69","nodeType":"VariableDeclaration","scope":18765,"src":"41895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18742,"name":"uint256","nodeType":"ElementaryTypeName","src":"41895:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41894:18:69"},"returnParameters":{"id":18748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18765,"src":"41977:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18746,"name":"uint256","nodeType":"ElementaryTypeName","src":"41977:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41976:9:69"},"scope":19413,"src":"41873:246:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18779,"nodeType":"Block","src":"42239:51:69","statements":[{"expression":{"arguments":[{"id":18775,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18767,"src":"42270:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18776,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18769,"src":"42280:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18774,"name":"_balanceOfNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18741,"src":"42256:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":18777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42256:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18773,"id":18778,"nodeType":"Return","src":"42249:34:69"}]},"functionSelector":"e0514aba","id":18780,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfNFTAt","nameLocation":"42134:14:69","nodeType":"FunctionDefinition","parameters":{"id":18770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18767,"mutability":"mutable","name":"_tokenId","nameLocation":"42157:8:69","nodeType":"VariableDeclaration","scope":18780,"src":"42149:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18766,"name":"uint256","nodeType":"ElementaryTypeName","src":"42149:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18769,"mutability":"mutable","name":"_t","nameLocation":"42175:2:69","nodeType":"VariableDeclaration","scope":18780,"src":"42167:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18768,"name":"uint256","nodeType":"ElementaryTypeName","src":"42167:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42148:30:69"},"returnParameters":{"id":18773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18780,"src":"42226:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18771,"name":"uint256","nodeType":"ElementaryTypeName","src":"42226:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42225:9:69"},"scope":19413,"src":"42125:165:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18998,"nodeType":"Block","src":"42712:1560:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18791,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18785,"src":"42831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":18792,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"42841:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"42841:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42831:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18790,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"42824:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":18795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42824:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18796,"nodeType":"ExpressionStatement","src":"42824:30:69"},{"assignments":[18798],"declarations":[{"constant":false,"id":18798,"mutability":"mutable","name":"_min","nameLocation":"42898:4:69","nodeType":"VariableDeclaration","scope":18998,"src":"42890:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18797,"name":"uint256","nodeType":"ElementaryTypeName","src":"42890:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18800,"initialValue":{"hexValue":"30","id":18799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42905:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"42890:16:69"},{"assignments":[18802],"declarations":[{"constant":false,"id":18802,"mutability":"mutable","name":"_max","nameLocation":"42924:4:69","nodeType":"VariableDeclaration","scope":18998,"src":"42916:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18801,"name":"uint256","nodeType":"ElementaryTypeName","src":"42916:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18806,"initialValue":{"baseExpression":{"id":18803,"name":"userPointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16094,"src":"42931:14:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18805,"indexExpression":{"id":18804,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18783,"src":"42946:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42931:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42916:39:69"},{"body":{"id":18855,"nodeType":"Block","src":"42999:351:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18817,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18798,"src":"43074:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":18818,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18802,"src":"43082:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43074:12:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18822,"nodeType":"IfStatement","src":"43070:56:69","trueBody":{"id":18821,"nodeType":"Block","src":"43088:38:69","statements":[{"id":18820,"nodeType":"Break","src":"43106:5:69"}]}},{"assignments":[18824],"declarations":[{"constant":false,"id":18824,"mutability":"mutable","name":"_mid","nameLocation":"43147:4:69","nodeType":"VariableDeclaration","scope":18855,"src":"43139:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18823,"name":"uint256","nodeType":"ElementaryTypeName","src":"43139:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18833,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18825,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18798,"src":"43155:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18826,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18802,"src":"43162:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43155:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":18828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43169:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43155:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18830,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"43154:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":18831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43174:1:69","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"43154:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"43139:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":18834,"name":"_userPointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"43193:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref[1000000000] storage ref)"}},"id":18836,"indexExpression":{"id":18835,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18783,"src":"43211:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43193:27:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage","typeString":"struct INFTLocker.Point storage ref[1000000000] storage ref"}},"id":18838,"indexExpression":{"id":18837,"name":"_mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18824,"src":"43221:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43193:33:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"id":18839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"43193:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":18840,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18785,"src":"43234:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43193:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18853,"nodeType":"Block","src":"43292:48:69","statements":[{"expression":{"id":18851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18847,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18802,"src":"43310:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18848,"name":"_mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18824,"src":"43317:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":18849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43324:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43317:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43310:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18852,"nodeType":"ExpressionStatement","src":"43310:15:69"}]},"id":18854,"nodeType":"IfStatement","src":"43189:151:69","trueBody":{"id":18846,"nodeType":"Block","src":"43242:44:69","statements":[{"expression":{"id":18844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18842,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18798,"src":"43260:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18843,"name":"_mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18824,"src":"43267:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43260:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18845,"nodeType":"ExpressionStatement","src":"43260:11:69"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18811,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18808,"src":"42985:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":18812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42989:3:69","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"42985:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18856,"initializationExpression":{"assignments":[18808],"declarations":[{"constant":false,"id":18808,"mutability":"mutable","name":"i","nameLocation":"42978:1:69","nodeType":"VariableDeclaration","scope":18856,"src":"42970:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18807,"name":"uint256","nodeType":"ElementaryTypeName","src":"42970:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18810,"initialValue":{"hexValue":"30","id":18809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42982:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"42970:13:69"},"loopExpression":{"expression":{"id":18815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"42994:3:69","subExpression":{"id":18814,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18808,"src":"42996:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18816,"nodeType":"ExpressionStatement","src":"42994:3:69"},"nodeType":"ForStatement","src":"42965:385:69"},{"assignments":[18859],"declarations":[{"constant":false,"id":18859,"mutability":"mutable","name":"upoint","nameLocation":"43373:6:69","nodeType":"VariableDeclaration","scope":18998,"src":"43360:19:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":18858,"nodeType":"UserDefinedTypeName","pathNode":{"id":18857,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"43360:5:69"},"referencedDeclaration":34884,"src":"43360:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":18865,"initialValue":{"baseExpression":{"baseExpression":{"id":18860,"name":"_userPointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"43382:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_struct$_Point_$34884_storage_$1000000000_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref[1000000000] storage ref)"}},"id":18862,"indexExpression":{"id":18861,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18783,"src":"43400:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43382:27:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Point_$34884_storage_$1000000000_storage","typeString":"struct INFTLocker.Point storage ref[1000000000] storage ref"}},"id":18864,"indexExpression":{"id":18863,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18798,"src":"43410:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43382:33:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"VariableDeclarationStatement","src":"43360:55:69"},{"assignments":[18867],"declarations":[{"constant":false,"id":18867,"mutability":"mutable","name":"maxEpoch","nameLocation":"43434:8:69","nodeType":"VariableDeclaration","scope":18998,"src":"43426:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18866,"name":"uint256","nodeType":"ElementaryTypeName","src":"43426:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18869,"initialValue":{"id":18868,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16077,"src":"43445:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"43426:24:69"},{"assignments":[18871],"declarations":[{"constant":false,"id":18871,"mutability":"mutable","name":"_epoch","nameLocation":"43468:6:69","nodeType":"VariableDeclaration","scope":18998,"src":"43460:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18870,"name":"uint256","nodeType":"ElementaryTypeName","src":"43460:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18876,"initialValue":{"arguments":[{"id":18873,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18785,"src":"43493:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18874,"name":"maxEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18867,"src":"43501:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18872,"name":"_findBlockEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18665,"src":"43477:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":18875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43477:33:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"43460:50:69"},{"assignments":[18879],"declarations":[{"constant":false,"id":18879,"mutability":"mutable","name":"point0","nameLocation":"43533:6:69","nodeType":"VariableDeclaration","scope":18998,"src":"43520:19:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":18878,"nodeType":"UserDefinedTypeName","pathNode":{"id":18877,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"43520:5:69"},"referencedDeclaration":34884,"src":"43520:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":18883,"initialValue":{"baseExpression":{"id":18880,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"43542:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":18882,"indexExpression":{"id":18881,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18871,"src":"43556:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43542:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"VariableDeclarationStatement","src":"43520:43:69"},{"assignments":[18885],"declarations":[{"constant":false,"id":18885,"mutability":"mutable","name":"dBlock","nameLocation":"43581:6:69","nodeType":"VariableDeclaration","scope":18998,"src":"43573:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18884,"name":"uint256","nodeType":"ElementaryTypeName","src":"43573:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18887,"initialValue":{"hexValue":"30","id":18886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43590:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"43573:18:69"},{"assignments":[18889],"declarations":[{"constant":false,"id":18889,"mutability":"mutable","name":"dT","nameLocation":"43609:2:69","nodeType":"VariableDeclaration","scope":18998,"src":"43601:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18888,"name":"uint256","nodeType":"ElementaryTypeName","src":"43601:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18891,"initialValue":{"hexValue":"30","id":18890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43614:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"43601:14:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18892,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18871,"src":"43629:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18893,"name":"maxEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18867,"src":"43638:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43629:17:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18937,"nodeType":"Block","src":"43812:105:69","statements":[{"expression":{"id":18927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18921,"name":"dBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"43826:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18922,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"43835:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"43835:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":18924,"name":"point0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18879,"src":"43850:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"43850:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43835:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43826:34:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18928,"nodeType":"ExpressionStatement","src":"43826:34:69"},{"expression":{"id":18935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18929,"name":"dT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18889,"src":"43874:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18930,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"43879:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"43879:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":18932,"name":"point0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18879,"src":"43897:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"43897:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43879:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43874:32:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18936,"nodeType":"ExpressionStatement","src":"43874:32:69"}]},"id":18938,"nodeType":"IfStatement","src":"43625:292:69","trueBody":{"id":18920,"nodeType":"Block","src":"43648:158:69","statements":[{"assignments":[18897],"declarations":[{"constant":false,"id":18897,"mutability":"mutable","name":"point1","nameLocation":"43675:6:69","nodeType":"VariableDeclaration","scope":18920,"src":"43662:19:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":18896,"nodeType":"UserDefinedTypeName","pathNode":{"id":18895,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"43662:5:69"},"referencedDeclaration":34884,"src":"43662:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":18903,"initialValue":{"baseExpression":{"id":18898,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"43684:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":18902,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18899,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18871,"src":"43698:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":18900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43707:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43698:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43684:25:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"VariableDeclarationStatement","src":"43662:47:69"},{"expression":{"id":18910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18904,"name":"dBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"43723:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18905,"name":"point1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18897,"src":"43732:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"43732:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":18907,"name":"point0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18879,"src":"43745:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"43745:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43732:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43723:32:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18911,"nodeType":"ExpressionStatement","src":"43723:32:69"},{"expression":{"id":18918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18912,"name":"dT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18889,"src":"43769:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18913,"name":"point1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18897,"src":"43774:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"43774:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":18915,"name":"point0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18879,"src":"43786:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"43786:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43774:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43769:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18919,"nodeType":"ExpressionStatement","src":"43769:26:69"}]}},{"assignments":[18940],"declarations":[{"constant":false,"id":18940,"mutability":"mutable","name":"blockTime","nameLocation":"43934:9:69","nodeType":"VariableDeclaration","scope":18998,"src":"43926:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18939,"name":"uint256","nodeType":"ElementaryTypeName","src":"43926:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18943,"initialValue":{"expression":{"id":18941,"name":"point0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18879,"src":"43946:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"43946:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"43926:29:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18944,"name":"dBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"43969:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43979:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43969:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18961,"nodeType":"IfStatement","src":"43965:92:69","trueBody":{"id":18960,"nodeType":"Block","src":"43982:75:69","statements":[{"expression":{"id":18958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18947,"name":"blockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18940,"src":"43996:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18948,"name":"dT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18889,"src":"44010:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18949,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18785,"src":"44016:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":18950,"name":"point0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18879,"src":"44025:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"44025:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44016:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18953,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44015:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44010:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18955,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44009:28:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":18956,"name":"dBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"44040:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44009:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43996:50:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18959,"nodeType":"ExpressionStatement","src":"43996:50:69"}]}},{"expression":{"id":18978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18962,"name":"upoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18859,"src":"44067:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"44067:11:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18965,"name":"upoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18859,"src":"44082:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"44082:12:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18971,"name":"blockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18940,"src":"44111:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":18972,"name":"upoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18859,"src":"44123:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"44123:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44111:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44104:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18969,"name":"int256","nodeType":"ElementaryTypeName","src":"44104:6:69","typeDescriptions":{}}},"id":18975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44104:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44097:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":18967,"name":"int128","nodeType":"ElementaryTypeName","src":"44097:6:69","typeDescriptions":{}}},"id":18976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44097:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"44082:52:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"44067:67:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":18979,"nodeType":"ExpressionStatement","src":"44067:67:69"},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18980,"name":"upoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18859,"src":"44148:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"44148:11:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":18982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44163:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44148:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18996,"nodeType":"Block","src":"44233:33:69","statements":[{"expression":{"hexValue":"30","id":18994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44254:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":18789,"id":18995,"nodeType":"Return","src":"44247:8:69"}]},"id":18997,"nodeType":"IfStatement","src":"44144:122:69","trueBody":{"id":18993,"nodeType":"Block","src":"44166:61:69","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":18988,"name":"upoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18859,"src":"44203:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":18989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"44203:11:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":18987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44195:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":18986,"name":"uint128","nodeType":"ElementaryTypeName","src":"44195:7:69","typeDescriptions":{}}},"id":18990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44195:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":18985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44187:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18984,"name":"uint256","nodeType":"ElementaryTypeName","src":"44187:7:69","typeDescriptions":{}}},"id":18991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44187:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18789,"id":18992,"nodeType":"Return","src":"44180:36:69"}]}}]},"documentation":{"id":18781,"nodeType":"StructuredDocumentation","src":"42296:292:69","text":"@notice Measure voting power of `_tokenId` at block height `_block`\n @dev Adheres to MiniMe `balanceOfAt` interface: https://github.com/Giveth/minime\n @param _tokenId User's wallet NFT\n @param _block Block to calculate the voting power at\n @return Voting power"},"id":18999,"implemented":true,"kind":"function","modifiers":[],"name":"_balanceOfAtNFT","nameLocation":"42602:15:69","nodeType":"FunctionDefinition","parameters":{"id":18786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18783,"mutability":"mutable","name":"_tokenId","nameLocation":"42626:8:69","nodeType":"VariableDeclaration","scope":18999,"src":"42618:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18782,"name":"uint256","nodeType":"ElementaryTypeName","src":"42618:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18785,"mutability":"mutable","name":"_block","nameLocation":"42644:6:69","nodeType":"VariableDeclaration","scope":18999,"src":"42636:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18784,"name":"uint256","nodeType":"ElementaryTypeName","src":"42636:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42617:34:69"},"returnParameters":{"id":18789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18999,"src":"42699:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18787,"name":"uint256","nodeType":"ElementaryTypeName","src":"42699:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42698:9:69"},"scope":19413,"src":"42593:1679:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19013,"nodeType":"Block","src":"44396:57:69","statements":[{"expression":{"arguments":[{"id":19009,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19001,"src":"44429:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19010,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19003,"src":"44439:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19008,"name":"_balanceOfAtNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18999,"src":"44413:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":19011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44413:33:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19007,"id":19012,"nodeType":"Return","src":"44406:40:69"}]},"functionSelector":"8c2c9baf","id":19014,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfAtNFT","nameLocation":"44287:14:69","nodeType":"FunctionDefinition","parameters":{"id":19004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19001,"mutability":"mutable","name":"_tokenId","nameLocation":"44310:8:69","nodeType":"VariableDeclaration","scope":19014,"src":"44302:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19000,"name":"uint256","nodeType":"ElementaryTypeName","src":"44302:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19003,"mutability":"mutable","name":"_block","nameLocation":"44328:6:69","nodeType":"VariableDeclaration","scope":19014,"src":"44320:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19002,"name":"uint256","nodeType":"ElementaryTypeName","src":"44320:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44301:34:69"},"returnParameters":{"id":19007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19014,"src":"44383:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19005,"name":"uint256","nodeType":"ElementaryTypeName","src":"44383:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44382:9:69"},"scope":19413,"src":"44278:175:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19133,"nodeType":"Block","src":"44814:710:69","statements":[{"assignments":[19027],"declarations":[{"constant":false,"id":19027,"mutability":"mutable","name":"lastPoint","nameLocation":"44837:9:69","nodeType":"VariableDeclaration","scope":19133,"src":"44824:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":19026,"nodeType":"UserDefinedTypeName","pathNode":{"id":19025,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"44824:5:69"},"referencedDeclaration":34884,"src":"44824:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":19029,"initialValue":{"id":19028,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19018,"src":"44849:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"44824:30:69"},{"assignments":[19031],"declarations":[{"constant":false,"id":19031,"mutability":"mutable","name":"tI","nameLocation":"44872:2:69","nodeType":"VariableDeclaration","scope":19133,"src":"44864:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19030,"name":"uint256","nodeType":"ElementaryTypeName","src":"44864:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19039,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19032,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"44878:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"44878:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":19034,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"44893:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44878:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19036,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44877:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":19037,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"44901:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44877:28:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44864:41:69"},{"body":{"id":19110,"nodeType":"Block","src":"44949:443:69","statements":[{"expression":{"id":19052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19050,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19031,"src":"44963:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":19051,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"44969:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44963:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19053,"nodeType":"ExpressionStatement","src":"44963:10:69"},{"assignments":[19055],"declarations":[{"constant":false,"id":19055,"mutability":"mutable","name":"dSlope","nameLocation":"44994:6:69","nodeType":"VariableDeclaration","scope":19110,"src":"44987:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":19054,"name":"int128","nodeType":"ElementaryTypeName","src":"44987:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":19057,"initialValue":{"hexValue":"30","id":19056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45003:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"44987:17:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19058,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19031,"src":"45022:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":19059,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19020,"src":"45027:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45022:6:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19072,"nodeType":"Block","src":"45075:58:69","statements":[{"expression":{"id":19070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19066,"name":"dSlope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19055,"src":"45093:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19067,"name":"slopeChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"45102:12:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int128_$","typeString":"mapping(uint256 => int128)"}},"id":19069,"indexExpression":{"id":19068,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19031,"src":"45115:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45102:16:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"45093:25:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":19071,"nodeType":"ExpressionStatement","src":"45093:25:69"}]},"id":19073,"nodeType":"IfStatement","src":"45018:115:69","trueBody":{"id":19065,"nodeType":"Block","src":"45030:39:69","statements":[{"expression":{"id":19063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19061,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19031,"src":"45048:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19062,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19020,"src":"45053:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45048:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19064,"nodeType":"ExpressionStatement","src":"45048:6:69"}]}},{"expression":{"id":19090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19074,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45146:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"45146:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":19089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19077,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45180:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"45180:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19083,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19031,"src":"45228:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19084,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45233:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"45233:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45228:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45221:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19081,"name":"int256","nodeType":"ElementaryTypeName","src":"45221:6:69","typeDescriptions":{}}},"id":19087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45221:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":19080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45214:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":19079,"name":"int128","nodeType":"ElementaryTypeName","src":"45214:6:69","typeDescriptions":{}}},"id":19088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45214:33:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"45180:67:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"45146:101:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":19091,"nodeType":"ExpressionStatement","src":"45146:101:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19092,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19031,"src":"45265:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":19093,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19020,"src":"45271:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45265:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19097,"nodeType":"IfStatement","src":"45261:51:69","trueBody":{"id":19096,"nodeType":"Block","src":"45274:38:69","statements":[{"id":19095,"nodeType":"Break","src":"45292:5:69"}]}},{"expression":{"id":19102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19098,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45325:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"45325:15:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":19101,"name":"dSlope","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19055,"src":"45344:6:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"45325:25:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":19103,"nodeType":"ExpressionStatement","src":"45325:25:69"},{"expression":{"id":19108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19104,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45364:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"45364:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19107,"name":"tI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19031,"src":"45379:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45364:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19109,"nodeType":"ExpressionStatement","src":"45364:17:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19044,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19041,"src":"44935:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323535","id":19045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44939:3:69","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"44935:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19111,"initializationExpression":{"assignments":[19041],"declarations":[{"constant":false,"id":19041,"mutability":"mutable","name":"i","nameLocation":"44928:1:69","nodeType":"VariableDeclaration","scope":19111,"src":"44920:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19040,"name":"uint256","nodeType":"ElementaryTypeName","src":"44920:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19043,"initialValue":{"hexValue":"30","id":19042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44932:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"44920:13:69"},"loopExpression":{"expression":{"id":19048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"44944:3:69","subExpression":{"id":19047,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19041,"src":"44946:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19049,"nodeType":"ExpressionStatement","src":"44944:3:69"},"nodeType":"ForStatement","src":"44915:477:69"},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":19115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19112,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45406:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"45406:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":19114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45423:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45406:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19123,"nodeType":"IfStatement","src":"45402:67:69","trueBody":{"id":19122,"nodeType":"Block","src":"45426:43:69","statements":[{"expression":{"id":19120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19116,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45440:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"45440:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":19119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45457:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45440:18:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":19121,"nodeType":"ExpressionStatement","src":"45440:18:69"}]}},{"expression":{"arguments":[{"arguments":[{"expression":{"id":19128,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"45501:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"45501:14:69","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":19127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45493:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":19126,"name":"uint128","nodeType":"ElementaryTypeName","src":"45493:7:69","typeDescriptions":{}}},"id":19130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45493:23:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":19125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45485:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19124,"name":"uint256","nodeType":"ElementaryTypeName","src":"45485:7:69","typeDescriptions":{}}},"id":19131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45485:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19024,"id":19132,"nodeType":"Return","src":"45478:39:69"}]},"documentation":{"id":19015,"nodeType":"StructuredDocumentation","src":"44459:240:69","text":"@notice Calculate total voting power at some point in the past\n @param point The point (bias/slope) to start search from\n @param t Time to calculate the total voting power at\n @return Total voting power at that time"},"id":19134,"implemented":true,"kind":"function","modifiers":[],"name":"_supplyAt","nameLocation":"44713:9:69","nodeType":"FunctionDefinition","parameters":{"id":19021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19018,"mutability":"mutable","name":"point","nameLocation":"44736:5:69","nodeType":"VariableDeclaration","scope":19134,"src":"44723:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":19017,"nodeType":"UserDefinedTypeName","pathNode":{"id":19016,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"44723:5:69"},"referencedDeclaration":34884,"src":"44723:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"},{"constant":false,"id":19020,"mutability":"mutable","name":"t","nameLocation":"44751:1:69","nodeType":"VariableDeclaration","scope":19134,"src":"44743:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19019,"name":"uint256","nodeType":"ElementaryTypeName","src":"44743:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44722:31:69"},"returnParameters":{"id":19024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19134,"src":"44801:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19022,"name":"uint256","nodeType":"ElementaryTypeName","src":"44801:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44800:9:69"},"scope":19413,"src":"44704:820:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19158,"nodeType":"Block","src":"45758:135:69","statements":[{"assignments":[19143],"declarations":[{"constant":false,"id":19143,"mutability":"mutable","name":"_epoch","nameLocation":"45776:6:69","nodeType":"VariableDeclaration","scope":19158,"src":"45768:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19142,"name":"uint256","nodeType":"ElementaryTypeName","src":"45768:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19145,"initialValue":{"id":19144,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16077,"src":"45785:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45768:22:69"},{"assignments":[19148],"declarations":[{"constant":false,"id":19148,"mutability":"mutable","name":"lastPoint","nameLocation":"45813:9:69","nodeType":"VariableDeclaration","scope":19158,"src":"45800:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":19147,"nodeType":"UserDefinedTypeName","pathNode":{"id":19146,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"45800:5:69"},"referencedDeclaration":34884,"src":"45800:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":19152,"initialValue":{"baseExpression":{"id":19149,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"45825:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":19151,"indexExpression":{"id":19150,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19143,"src":"45839:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45825:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"VariableDeclarationStatement","src":"45800:46:69"},{"expression":{"arguments":[{"id":19154,"name":"lastPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19148,"src":"45873:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},{"id":19155,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19137,"src":"45884:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19153,"name":"_supplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19134,"src":"45863:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$34884_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct INFTLocker.Point memory,uint256) view returns (uint256)"}},"id":19156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45863:23:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19141,"id":19157,"nodeType":"Return","src":"45856:30:69"}]},"documentation":{"id":19135,"nodeType":"StructuredDocumentation","src":"45530:158:69","text":"@notice Calculate total voting power\n @dev Adheres to the ERC20 `totalSupply` interface for Aragon compatibility\n @return Total voting power"},"functionSelector":"7116c60c","id":19159,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupplyAtT","nameLocation":"45702:14:69","nodeType":"FunctionDefinition","parameters":{"id":19138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19137,"mutability":"mutable","name":"t","nameLocation":"45725:1:69","nodeType":"VariableDeclaration","scope":19159,"src":"45717:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19136,"name":"uint256","nodeType":"ElementaryTypeName","src":"45717:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45716:11:69"},"returnParameters":{"id":19141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19159,"src":"45749:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19139,"name":"uint256","nodeType":"ElementaryTypeName","src":"45749:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45748:9:69"},"scope":19413,"src":"45693:200:69","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[34805],"body":{"id":19170,"nodeType":"Block","src":"45963:55:69","statements":[{"expression":{"arguments":[{"expression":{"id":19166,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45995:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"45995:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19165,"name":"totalSupplyAtT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19159,"src":"45980:14:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":19168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45980:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19164,"id":19169,"nodeType":"Return","src":"45973:38:69"}]},"functionSelector":"18160ddd","id":19171,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"45908:11:69","nodeType":"FunctionDefinition","overrides":{"id":19161,"nodeType":"OverrideSpecifier","overrides":[],"src":"45936:8:69"},"parameters":{"id":19160,"nodeType":"ParameterList","parameters":[],"src":"45919:2:69"},"returnParameters":{"id":19164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19171,"src":"45954:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19162,"name":"uint256","nodeType":"ElementaryTypeName","src":"45954:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45953:9:69"},"scope":19413,"src":"45899:119:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34812],"body":{"id":19292,"nodeType":"Block","src":"46325:874:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19181,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"46342:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":19182,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"46352:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"46352:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46342:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19180,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"46335:6:69","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":19185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46335:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19186,"nodeType":"ExpressionStatement","src":"46335:30:69"},{"assignments":[19188],"declarations":[{"constant":false,"id":19188,"mutability":"mutable","name":"_epoch","nameLocation":"46383:6:69","nodeType":"VariableDeclaration","scope":19292,"src":"46375:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19187,"name":"uint256","nodeType":"ElementaryTypeName","src":"46375:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19190,"initialValue":{"id":19189,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16077,"src":"46392:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46375:22:69"},{"assignments":[19192],"declarations":[{"constant":false,"id":19192,"mutability":"mutable","name":"targetEpoch","nameLocation":"46415:11:69","nodeType":"VariableDeclaration","scope":19292,"src":"46407:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19191,"name":"uint256","nodeType":"ElementaryTypeName","src":"46407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19197,"initialValue":{"arguments":[{"id":19194,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"46445:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19195,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19188,"src":"46453:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19193,"name":"_findBlockEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18665,"src":"46429:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":19196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46429:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46407:53:69"},{"assignments":[19200],"declarations":[{"constant":false,"id":19200,"mutability":"mutable","name":"point","nameLocation":"46484:5:69","nodeType":"VariableDeclaration","scope":19292,"src":"46471:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":19199,"nodeType":"UserDefinedTypeName","pathNode":{"id":19198,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"46471:5:69"},"referencedDeclaration":34884,"src":"46471:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":19204,"initialValue":{"baseExpression":{"id":19201,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"46492:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":19203,"indexExpression":{"id":19202,"name":"targetEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19192,"src":"46506:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46492:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"VariableDeclarationStatement","src":"46471:47:69"},{"assignments":[19206],"declarations":[{"constant":false,"id":19206,"mutability":"mutable","name":"dt","nameLocation":"46536:2:69","nodeType":"VariableDeclaration","scope":19292,"src":"46528:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19205,"name":"uint256","nodeType":"ElementaryTypeName","src":"46528:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19208,"initialValue":{"hexValue":"30","id":19207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46541:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46528:14:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19209,"name":"targetEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19192,"src":"46556:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19210,"name":"_epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19188,"src":"46570:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46556:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19282,"nodeType":"Block","src":"46867:215:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19252,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"46885:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"46885:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":19254,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"46898:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"46898:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46885:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19281,"nodeType":"IfStatement","src":"46881:191:69","trueBody":{"id":19280,"nodeType":"Block","src":"46912:160:69","statements":[{"expression":{"id":19278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19257,"name":"dt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"46930:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19258,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"46957:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19259,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"46966:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"46966:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46957:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19262,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46956:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19263,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"46980:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"46980:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19265,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"46998:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"46998:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46980:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19268,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46979:28:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46956:51:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19270,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46955:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19271,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"47032:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"47032:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19273,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"47047:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"47047:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47032:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19276,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"47031:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46955:102:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46930:127:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19279,"nodeType":"ExpressionStatement","src":"46930:127:69"}]}}]},"id":19283,"nodeType":"IfStatement","src":"46552:530:69","trueBody":{"id":19251,"nodeType":"Block","src":"46578:283:69","statements":[{"assignments":[19214],"declarations":[{"constant":false,"id":19214,"mutability":"mutable","name":"pointNext","nameLocation":"46605:9:69","nodeType":"VariableDeclaration","scope":19251,"src":"46592:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":19213,"nodeType":"UserDefinedTypeName","pathNode":{"id":19212,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"46592:5:69"},"referencedDeclaration":34884,"src":"46592:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":19220,"initialValue":{"baseExpression":{"id":19215,"name":"_pointHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16082,"src":"46617:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Point_$34884_storage_$","typeString":"mapping(uint256 => struct INFTLocker.Point storage ref)"}},"id":19219,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19216,"name":"targetEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19192,"src":"46631:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":19217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46645:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"46631:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46617:30:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage","typeString":"struct INFTLocker.Point storage ref"}},"nodeType":"VariableDeclarationStatement","src":"46592:55:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19221,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"46665:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"46665:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":19223,"name":"pointNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19214,"src":"46678:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"46678:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46665:26:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19250,"nodeType":"IfStatement","src":"46661:190:69","trueBody":{"id":19249,"nodeType":"Block","src":"46693:158:69","statements":[{"expression":{"id":19247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19226,"name":"dt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"46711:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19227,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"46738:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19228,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"46747:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"46747:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46738:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46737:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19232,"name":"pointNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19214,"src":"46761:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"46761:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19234,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"46776:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"46776:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46761:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19237,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46760:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46737:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46736:50:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19240,"name":"pointNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19214,"src":"46810:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"46810:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19242,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"46826:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blk","nodeType":"MemberAccess","referencedDeclaration":34883,"src":"46826:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46810:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19245,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46809:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46736:100:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46711:125:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19248,"nodeType":"ExpressionStatement","src":"46711:125:69"}]}}]}},{"expression":{"arguments":[{"id":19285,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"47171:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19286,"name":"point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"47178:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":19287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"47178:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19288,"name":"dt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"47189:2:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47178:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19284,"name":"_supplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19134,"src":"47161:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$34884_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct INFTLocker.Point memory,uint256) view returns (uint256)"}},"id":19290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47161:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19179,"id":19291,"nodeType":"Return","src":"47154:38:69"}]},"documentation":{"id":19172,"nodeType":"StructuredDocumentation","src":"46024:180:69","text":"@notice Calculate total voting power at some point in the past\n @param _block Block to calculate the total voting power at\n @return Total voting power at `_block`"},"functionSelector":"981b24d0","id":19293,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupplyAt","nameLocation":"46218:13:69","nodeType":"FunctionDefinition","overrides":{"id":19176,"nodeType":"OverrideSpecifier","overrides":[],"src":"46286:8:69"},"parameters":{"id":19175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19174,"mutability":"mutable","name":"_block","nameLocation":"46240:6:69","nodeType":"VariableDeclaration","scope":19293,"src":"46232:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19173,"name":"uint256","nodeType":"ElementaryTypeName","src":"46232:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46231:16:69"},"returnParameters":{"id":19179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19293,"src":"46312:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19177,"name":"uint256","nodeType":"ElementaryTypeName","src":"46312:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46311:9:69"},"scope":19413,"src":"46209:990:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19326,"nodeType":"Block","src":"47375:196:69","statements":[{"expression":{"arguments":[{"id":19302,"name":"inBootstrapMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16060,"src":"47393:15:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420696e20626f6f747374726170206d6f6465","id":19303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47410:23:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebc02eeff58ffa8f8de6abcdca4003e5fae11ac28f00f89c23c763b81a058e64","typeString":"literal_string \"not in bootstrap mode\""},"value":"not in bootstrap mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ebc02eeff58ffa8f8de6abcdca4003e5fae11ac28f00f89c23c763b81a058e64","typeString":"literal_string \"not in bootstrap mode\""}],"id":19301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"47385:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47385:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19305,"nodeType":"ExpressionStatement","src":"47385:49:69"},{"expression":{"arguments":[{"id":19312,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19296,"src":"47490:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":19321,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"47548:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_MAHAXLocker_$19413","typeString":"contract MAHAXLocker"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MAHAXLocker_$19413","typeString":"contract MAHAXLocker"}],"id":19320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"47540:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19319,"name":"address","nodeType":"ElementaryTypeName","src":"47540:7:69","typeDescriptions":{}}},"id":19322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47540:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19314,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"47513:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"47513:13:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47513:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19313,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"47506:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":19317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47506:23:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":19318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"47506:33:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":19323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47506:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19307,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"47451:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"47451:13:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47451:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19306,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"47444:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":19310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47444:23:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":19311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"47444:32:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":19324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47444:120:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19325,"nodeType":"ExpressionStatement","src":"47444:120:69"}]},"documentation":{"id":19294,"nodeType":"StructuredDocumentation","src":"47205:104:69","text":"@dev A refund code that triggers a refund of maha; only used for the bootstrapping period of the DAO"},"functionSelector":"045f7019","id":19327,"implemented":true,"kind":"function","modifiers":[{"id":19299,"kind":"modifierInvocation","modifierName":{"id":19298,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":16170,"src":"47360:14:69"},"nodeType":"ModifierInvocation","src":"47360:14:69"}],"name":"emergencyRefund","nameLocation":"47323:15:69","nodeType":"FunctionDefinition","parameters":{"id":19297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19296,"mutability":"mutable","name":"to","nameLocation":"47347:2:69","nodeType":"VariableDeclaration","scope":19327,"src":"47339:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19295,"name":"address","nodeType":"ElementaryTypeName","src":"47339:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47338:12:69"},"returnParameters":{"id":19300,"nodeType":"ParameterList","parameters":[],"src":"47375:0:69"},"scope":19413,"src":"47314:257:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19337,"nodeType":"Block","src":"47715:40:69","statements":[{"expression":{"id":19335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19333,"name":"inBootstrapMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16060,"src":"47725:15:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":19334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"47743:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47725:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19336,"nodeType":"ExpressionStatement","src":"47725:23:69"}]},"documentation":{"id":19328,"nodeType":"StructuredDocumentation","src":"47577:80:69","text":"@dev stop the bootstrap mode that allows governance to take all the maha out"},"functionSelector":"2277cdc2","id":19338,"implemented":true,"kind":"function","modifiers":[{"id":19331,"kind":"modifierInvocation","modifierName":{"id":19330,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":16170,"src":"47700:14:69"},"nodeType":"ModifierInvocation","src":"47700:14:69"}],"name":"stopBootstrapMode","nameLocation":"47671:17:69","nodeType":"FunctionDefinition","parameters":{"id":19329,"nodeType":"ParameterList","parameters":[],"src":"47688:2:69"},"returnParameters":{"id":19332,"nodeType":"ParameterList","parameters":[],"src":"47715:0:69"},"scope":19413,"src":"47662:93:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19381,"nodeType":"Block","src":"47803:372:69","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":19345,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"47853:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"47853:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19347,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"47865:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19344,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16563,"src":"47834:18:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":19348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47834:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":19349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47888:34:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""},"value":"caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad","typeString":"literal_string \"caller is not owner nor approved\""}],"id":19343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"47813:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47813:119:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19351,"nodeType":"ExpressionStatement","src":"47813:119:69"},{"assignments":[19353],"declarations":[{"constant":false,"id":19353,"mutability":"mutable","name":"owner","nameLocation":"47951:5:69","nodeType":"VariableDeclaration","scope":19381,"src":"47943:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19352,"name":"address","nodeType":"ElementaryTypeName","src":"47943:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":19357,"initialValue":{"arguments":[{"id":19355,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"47968:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19354,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16414,"src":"47959:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":19356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47959:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47943:34:69"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":19361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48031:1:69","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":19360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48023:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19359,"name":"address","nodeType":"ElementaryTypeName","src":"48023:7:69","typeDescriptions":{}}},"id":19362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48023:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19363,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"48035:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19358,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17040,"src":"48014:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":19364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48014:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19365,"nodeType":"ExpressionStatement","src":"48014:30:69"},{"expression":{"arguments":[{"expression":{"id":19367,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"48095:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"48095:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19369,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"48107:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19366,"name":"_removeTokenFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16761,"src":"48078:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":19370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48078:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19371,"nodeType":"ExpressionStatement","src":"48078:38:69"},{"eventCall":{"arguments":[{"id":19373,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19353,"src":"48140:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":19376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48155:1:69","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":19375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48147:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19374,"name":"address","nodeType":"ElementaryTypeName","src":"48147:7:69","typeDescriptions":{}}},"id":19377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48147:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19378,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"48159:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19372,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6991,"src":"48131:8:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":19379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48131:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19380,"nodeType":"EmitStatement","src":"48126:42:69"}]},"id":19382,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"47770:5:69","nodeType":"FunctionDefinition","parameters":{"id":19341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19340,"mutability":"mutable","name":"_tokenId","nameLocation":"47784:8:69","nodeType":"VariableDeclaration","scope":19382,"src":"47776:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19339,"name":"uint256","nodeType":"ElementaryTypeName","src":"47776:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47775:18:69"},"returnParameters":{"id":19342,"nodeType":"ParameterList","parameters":[],"src":"47803:0:69"},"scope":19413,"src":"47761:414:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34756],"body":{"id":19394,"nodeType":"Block","src":"48255:43:69","statements":[{"expression":{"arguments":[{"id":19391,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19384,"src":"48282:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19390,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19412,"src":"48272:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":19392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48272:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19389,"id":19393,"nodeType":"Return","src":"48265:26:69"}]},"functionSelector":"baa51f86","id":19395,"implemented":true,"kind":"function","modifiers":[],"name":"isStaked","nameLocation":"48190:8:69","nodeType":"FunctionDefinition","overrides":{"id":19386,"nodeType":"OverrideSpecifier","overrides":[],"src":"48231:8:69"},"parameters":{"id":19385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19384,"mutability":"mutable","name":"_tokenId","nameLocation":"48207:8:69","nodeType":"VariableDeclaration","scope":19395,"src":"48199:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19383,"name":"uint256","nodeType":"ElementaryTypeName","src":"48199:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48198:18:69"},"returnParameters":{"id":19389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19395,"src":"48249:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19387,"name":"bool","nodeType":"ElementaryTypeName","src":"48249:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48248:6:69"},"scope":19413,"src":"48181:117:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19411,"nodeType":"Block","src":"48370:72:69","statements":[{"expression":{"arguments":[{"id":19408,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19397,"src":"48426:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19403,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"48398:8:69","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"48398:15:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48398:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19402,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"48387:10:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTStaker_$35022_$","typeString":"type(contract INFTStaker)"}},"id":19406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48387:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"id":19407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isStaked","nodeType":"MemberAccess","referencedDeclaration":34991,"src":"48387:38:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":19409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48387:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19401,"id":19410,"nodeType":"Return","src":"48380:55:69"}]},"id":19412,"implemented":true,"kind":"function","modifiers":[],"name":"_isStaked","nameLocation":"48313:9:69","nodeType":"FunctionDefinition","parameters":{"id":19398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19397,"mutability":"mutable","name":"_tokenId","nameLocation":"48331:8:69","nodeType":"VariableDeclaration","scope":19412,"src":"48323:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19396,"name":"uint256","nodeType":"ElementaryTypeName","src":"48323:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48322:18:69"},"returnParameters":{"id":19401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19400,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19412,"src":"48364:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19399,"name":"bool","nodeType":"ElementaryTypeName","src":"48364:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48363:6:69"},"scope":19413,"src":"48304:138:69","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":19414,"src":"1471:46973:69","usedErrors":[]}],"src":"32:48413:69"},"id":69},"contracts/MAHAXStaker.sol":{"ast":{"absolutePath":"contracts/MAHAXStaker.sol","exportedSymbols":{"AccessControl":[319],"Checkpoints":[8233],"Counters":[8329],"ECDSA":[9157],"EIP712":[9813],"IERC20":[5767],"IGaugeVoterV2":[34597],"INFTLocker":[34923],"INFTStaker":[35022],"IRegistry":[35522],"MAHAXStaker":[20353],"Math":[10353],"ReentrancyGuard":[5062]},"id":20354,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19415,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:70"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":19417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":4739,"src":"58:69:70","symbolAliases":[{"foreign":{"id":19416,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":19419,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":10354,"src":"128:65:70","symbolAliases":[{"foreign":{"id":19418,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"136:4:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":19421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":320,"src":"194:79:70","symbolAliases":[{"foreign":{"id":19420,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"src":"202:13:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":19423,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":5063,"src":"274:85:70","symbolAliases":[{"foreign":{"id":19422,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"282:15:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","file":"@openzeppelin/contracts/utils/Counters.sol","id":19425,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":8330,"src":"360:68:70","symbolAliases":[{"foreign":{"id":19424,"name":"Counters","nodeType":"Identifier","overloadedDeclarations":[],"src":"368:8:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Checkpoints.sol","file":"@openzeppelin/contracts/utils/Checkpoints.sol","id":19427,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":8234,"src":"429:74:70","symbolAliases":[{"foreign":{"id":19426,"name":"Checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"src":"437:11:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","file":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","id":19430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":9814,"src":"504:90:70","symbolAliases":[{"foreign":{"id":19428,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"src":"512:5:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":19429,"name":"EIP712","nodeType":"Identifier","overloadedDeclarations":[],"src":"519:6:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoterV2.sol","file":"./interfaces/IGaugeVoterV2.sol","id":19432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":34598,"src":"596:61:70","symbolAliases":[{"foreign":{"id":19431,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"604:13:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"./interfaces/INFTLocker.sol","id":19434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":34924,"src":"658:55:70","symbolAliases":[{"foreign":{"id":19433,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"666:10:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTStaker.sol","file":"./interfaces/INFTStaker.sol","id":19437,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20354,"sourceUnit":35023,"src":"714:66:70","symbolAliases":[{"foreign":{"id":19435,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"722:9:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":19436,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"src":"733:10:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19439,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"1292:15:70"},"id":19440,"nodeType":"InheritanceSpecifier","src":"1292:15:70"},{"baseName":{"id":19441,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"1309:13:70"},"id":19442,"nodeType":"InheritanceSpecifier","src":"1309:13:70"},{"baseName":{"id":19443,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":9813,"src":"1324:6:70"},"id":19444,"nodeType":"InheritanceSpecifier","src":"1324:6:70"},{"baseName":{"id":19445,"name":"INFTStaker","nodeType":"IdentifierPath","referencedDeclaration":35022,"src":"1332:10:70"},"id":19446,"nodeType":"InheritanceSpecifier","src":"1332:10:70"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":19438,"nodeType":"StructuredDocumentation","src":"782:485:70","text":" This contract stakes an NFT and captures it's voting power. It is an extension\n of openzepplin's Votes contract that also allows delegration.\n All benefits such as voting, protocol fees, rewards, special access etc.. accure\n to NFT stakers.\n When you stake your NFT, your voting power is locked in and stops decreasing over time.\n TODO: Ensure we limit the amount of delegation power a wallet can have.\n @author Steven Enamakel <enamakel@mahadao.com>"},"fullyImplemented":true,"id":20353,"linearizedBaseContracts":[20353,35022,4281,9813,319,9837,9849,517,8255,5062],"name":"MAHAXStaker","nameLocation":"1277:11:70","nodeType":"ContractDefinition","nodes":[{"id":19450,"libraryName":{"id":19447,"name":"Checkpoints","nodeType":"IdentifierPath","referencedDeclaration":8233,"src":"1355:11:70"},"nodeType":"UsingForDirective","src":"1349:42:70","typeName":{"id":19449,"nodeType":"UserDefinedTypeName","pathNode":{"id":19448,"name":"Checkpoints.History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"1371:19:70"},"referencedDeclaration":8014,"src":"1371:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}}},{"id":19454,"libraryName":{"id":19451,"name":"Counters","nodeType":"IdentifierPath","referencedDeclaration":8329,"src":"1402:8:70"},"nodeType":"UsingForDirective","src":"1396:36:70","typeName":{"id":19453,"nodeType":"UserDefinedTypeName","pathNode":{"id":19452,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"1415:16:70"},"referencedDeclaration":8261,"src":"1415:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}}},{"baseFunctions":[34979],"constant":false,"functionSelector":"7b103999","id":19458,"mutability":"immutable","name":"registry","nameLocation":"1474:8:70","nodeType":"VariableDeclaration","overrides":{"id":19457,"nodeType":"OverrideSpecifier","overrides":[],"src":"1465:8:70"},"scope":20353,"src":"1438:44:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":19456,"nodeType":"UserDefinedTypeName","pathNode":{"id":19455,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"1438:9:70"},"referencedDeclaration":35522,"src":"1438:9:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":true,"functionSelector":"e7a324dc","id":19463,"mutability":"constant","name":"DELEGATION_TYPEHASH","nameLocation":"1513:19:70","nodeType":"VariableDeclaration","scope":20353,"src":"1489:125:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1489:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929","id":19461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1553:60:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf","typeString":"literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""},"value":"Delegation(address delegatee,uint256 nonce,uint256 expiry)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf","typeString":"literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""}],"id":19460,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1543:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1543:71:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"94aa08fb","id":19468,"mutability":"constant","name":"KICK_FROM_STAKE_ROLE","nameLocation":"1645:20:70","nodeType":"VariableDeclaration","scope":20353,"src":"1621:88:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1621:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4b49434b5f46524f4d5f5354414b455f524f4c45","id":19466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1686:22:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_cec4caaca6dc71dd44bec893d0eeda5d5a8d93f807f83245eabb2c24c25a43fe","typeString":"literal_string \"KICK_FROM_STAKE_ROLE\""},"value":"KICK_FROM_STAKE_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cec4caaca6dc71dd44bec893d0eeda5d5a8d93f807f83245eabb2c24c25a43fe","typeString":"literal_string \"KICK_FROM_STAKE_ROLE\""}],"id":19465,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1676:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1676:33:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":19472,"mutability":"mutable","name":"_delegation","nameLocation":"1752:11:70","nodeType":"VariableDeclaration","scope":20353,"src":"1716:47:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":19471,"keyType":{"id":19469,"name":"address","nodeType":"ElementaryTypeName","src":"1724:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1716:27:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":19470,"name":"address","nodeType":"ElementaryTypeName","src":"1735:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":19477,"mutability":"mutable","name":"_delegateCheckpoints","nameLocation":"1817:20:70","nodeType":"VariableDeclaration","scope":20353,"src":"1769:68:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History)"},"typeName":{"id":19476,"keyType":{"id":19473,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1769:39:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History)"},"valueType":{"id":19475,"nodeType":"UserDefinedTypeName","pathNode":{"id":19474,"name":"Checkpoints.History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"1788:19:70"},"referencedDeclaration":8014,"src":"1788:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}}},"visibility":"private"},{"constant":false,"id":19480,"mutability":"mutable","name":"_totalCheckpoints","nameLocation":"1871:17:70","nodeType":"VariableDeclaration","scope":20353,"src":"1843:45:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History"},"typeName":{"id":19479,"nodeType":"UserDefinedTypeName","pathNode":{"id":19478,"name":"Checkpoints.History","nodeType":"IdentifierPath","referencedDeclaration":8014,"src":"1843:19:70"},"referencedDeclaration":8014,"src":"1843:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"private"},{"constant":false,"id":19485,"mutability":"mutable","name":"_nonces","nameLocation":"1940:7:70","nodeType":"VariableDeclaration","scope":20353,"src":"1895:52:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"typeName":{"id":19484,"keyType":{"id":19481,"name":"address","nodeType":"ElementaryTypeName","src":"1903:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1895:36:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"valueType":{"id":19483,"nodeType":"UserDefinedTypeName","pathNode":{"id":19482,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"1914:16:70"},"referencedDeclaration":8261,"src":"1914:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}}},"visibility":"private"},{"constant":false,"functionSelector":"96c82e57","id":19487,"mutability":"mutable","name":"totalWeight","nameLocation":"1969:11:70","nodeType":"VariableDeclaration","scope":20353,"src":"1954:26:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19486,"name":"uint256","nodeType":"ElementaryTypeName","src":"1954:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"3ab958fc","id":19489,"mutability":"mutable","name":"disableAttachmentCheck","nameLocation":"2021:22:70","nodeType":"VariableDeclaration","scope":20353,"src":"2009:34:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19488,"name":"bool","nodeType":"ElementaryTypeName","src":"2009:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"79f250c9","id":19493,"mutability":"mutable","name":"stakedBalancesNFT","nameLocation":"2121:17:70","nodeType":"VariableDeclaration","scope":20353,"src":"2086:52:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":19492,"keyType":{"id":19490,"name":"uint256","nodeType":"ElementaryTypeName","src":"2094:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2086:27:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":19491,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"1460fa87","id":19497,"mutability":"mutable","name":"stakedBalances","nameLocation":"2203:14:70","nodeType":"VariableDeclaration","scope":20353,"src":"2168:49:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":19496,"keyType":{"id":19494,"name":"address","nodeType":"ElementaryTypeName","src":"2176:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2168:27:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":19495,"name":"uint256","nodeType":"ElementaryTypeName","src":"2187:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":19519,"nodeType":"Block","src":"2339:101:70","statements":[{"expression":{"id":19512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19508,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"2349:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19510,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19499,"src":"2370:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19509,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"2360:9:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":19511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2360:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"2349:31:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19513,"nodeType":"ExpressionStatement","src":"2349:31:70"},{"expression":{"arguments":[{"id":19515,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"2401:18:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19516,"name":"_governance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19501,"src":"2421:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19514,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"2390:10:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":19517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2390:43:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19518,"nodeType":"ExpressionStatement","src":"2390:43:70"}]},"id":19520,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d414841585374616b6572","id":19504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2315:13:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_06c23ec3eeb6f7b8d9f326ba4c5c1a85f869f3290d9d09c5addf9ad32ebc1770","typeString":"literal_string \"MAHAXStaker\""},"value":"MAHAXStaker"},{"hexValue":"31","id":19505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2330:3:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"id":19506,"kind":"baseConstructorSpecifier","modifierName":{"id":19503,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":9813,"src":"2308:6:70"},"nodeType":"ModifierInvocation","src":"2308:26:70"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":19502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19499,"mutability":"mutable","name":"_registry","nameLocation":"2268:9:70","nodeType":"VariableDeclaration","scope":19520,"src":"2260:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19498,"name":"address","nodeType":"ElementaryTypeName","src":"2260:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19501,"mutability":"mutable","name":"_governance","nameLocation":"2287:11:70","nodeType":"VariableDeclaration","scope":19520,"src":"2279:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19500,"name":"address","nodeType":"ElementaryTypeName","src":"2279:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2259:40:70"},"returnParameters":{"id":19507,"nodeType":"ParameterList","parameters":[],"src":"2339:0:70"},"scope":20353,"src":"2248:192:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34984],"body":{"id":19549,"nodeType":"Block","src":"2497:210:70","statements":[{"assignments":[19528],"declarations":[{"constant":false,"id":19528,"mutability":"mutable","name":"locker","nameLocation":"2518:6:70","nodeType":"VariableDeclaration","scope":19549,"src":"2507:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":19527,"nodeType":"UserDefinedTypeName","pathNode":{"id":19526,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"2507:10:70"},"referencedDeclaration":34923,"src":"2507:10:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"internal"}],"id":19534,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19530,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"2538:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"2538:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2538:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19529,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"2527:10:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":19533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2527:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"nodeType":"VariableDeclarationStatement","src":"2507:49:70"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":19538,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2612:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2612:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19540,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19522,"src":"2624:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19536,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19528,"src":"2587:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":19537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isApprovedOrOwner","nodeType":"MemberAccess","referencedDeclaration":34800,"src":"2587:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view external returns (bool)"}},"id":19541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2587:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420746f6b656e206f776e6572","id":19542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2647:17:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4","typeString":"literal_string \"not token owner\""},"value":"not token owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4","typeString":"literal_string \"not token owner\""}],"id":19535,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2566:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2566:108:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19544,"nodeType":"ExpressionStatement","src":"2566:108:70"},{"expression":{"arguments":[{"id":19546,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19522,"src":"2691:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19545,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19731,"src":"2684:6:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2684:16:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19548,"nodeType":"ExpressionStatement","src":"2684:16:70"}]},"functionSelector":"a694fc3a","id":19550,"implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"2455:5:70","nodeType":"FunctionDefinition","overrides":{"id":19524,"nodeType":"OverrideSpecifier","overrides":[],"src":"2488:8:70"},"parameters":{"id":19523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19522,"mutability":"mutable","name":"_tokenId","nameLocation":"2469:8:70","nodeType":"VariableDeclaration","scope":19550,"src":"2461:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19521,"name":"uint256","nodeType":"ElementaryTypeName","src":"2461:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2460:18:70"},"returnParameters":{"id":19525,"nodeType":"ParameterList","parameters":[],"src":"2497:0:70"},"scope":20353,"src":"2446:261:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35001],"body":{"id":19605,"nodeType":"Block","src":"2766:529:70","statements":[{"assignments":[19558],"declarations":[{"constant":false,"id":19558,"mutability":"mutable","name":"locker","nameLocation":"2787:6:70","nodeType":"VariableDeclaration","scope":19605,"src":"2776:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":19557,"nodeType":"UserDefinedTypeName","pathNode":{"id":19556,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"2776:10:70"},"referencedDeclaration":34923,"src":"2776:10:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"internal"}],"id":19564,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19560,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"2807:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"2807:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2807:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19559,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"2796:10:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":19563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2796:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"nodeType":"VariableDeclarationStatement","src":"2776:49:70"},{"condition":{"id":19566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2895:23:70","subExpression":{"id":19565,"name":"disableAttachmentCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"2896:22:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19590,"nodeType":"IfStatement","src":"2891:251:70","trueBody":{"id":19589,"nodeType":"Block","src":"2920:222:70","statements":[{"assignments":[19569],"declarations":[{"constant":false,"id":19569,"mutability":"mutable","name":"gaugeVoter","nameLocation":"2948:10:70","nodeType":"VariableDeclaration","scope":19589,"src":"2934:24:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"},"typeName":{"id":19568,"nodeType":"UserDefinedTypeName","pathNode":{"id":19567,"name":"IGaugeVoterV2","nodeType":"IdentifierPath","referencedDeclaration":34597,"src":"2934:13:70"},"referencedDeclaration":34597,"src":"2934:13:70","typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"visibility":"internal"}],"id":19575,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19571,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"2975:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"2975:19:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:21:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19570,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"2961:13:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoterV2_$34597_$","typeString":"type(contract IGaugeVoterV2)"}},"id":19574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2961:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"nodeType":"VariableDeclarationStatement","src":"2934:63:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":19581,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19552,"src":"3074:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19579,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19558,"src":"3059:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":19580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"3059:14:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":19582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3059:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19577,"name":"gaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19569,"src":"3036:10:70","typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"id":19578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"attachments","nodeType":"MemberAccess","referencedDeclaration":34510,"src":"3036:22:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":19583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3036:48:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3088:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3036:53:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6174746163686564","id":19586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3107:10:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_34d973a22471465a9c64a4222e0e7d8bed4617e72f1a613664553e7a7ba70bc6","typeString":"literal_string \"attached\""},"value":"attached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34d973a22471465a9c64a4222e0e7d8bed4617e72f1a613664553e7a7ba70bc6","typeString":"literal_string \"attached\""}],"id":19576,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3011:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3011:120:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19588,"nodeType":"ExpressionStatement","src":"3011:120:70"}]}},{"expression":{"arguments":[{"arguments":[{"expression":{"id":19594,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3198:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3198:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19596,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19552,"src":"3210:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19592,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19558,"src":"3173:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":19593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isApprovedOrOwner","nodeType":"MemberAccess","referencedDeclaration":34800,"src":"3173:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view external returns (bool)"}},"id":19597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3173:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420746f6b656e206f776e6572","id":19598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3233:17:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4","typeString":"literal_string \"not token owner\""},"value":"not token owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4","typeString":"literal_string \"not token owner\""}],"id":19591,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3152:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3152:108:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19600,"nodeType":"ExpressionStatement","src":"3152:108:70"},{"expression":{"arguments":[{"id":19602,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19552,"src":"3279:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19601,"name":"_unstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19810,"src":"3270:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3270:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19604,"nodeType":"ExpressionStatement","src":"3270:18:70"}]},"functionSelector":"2e17de78","id":19606,"implemented":true,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"2722:7:70","nodeType":"FunctionDefinition","overrides":{"id":19554,"nodeType":"OverrideSpecifier","overrides":[],"src":"2757:8:70"},"parameters":{"id":19553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19552,"mutability":"mutable","name":"_tokenId","nameLocation":"2738:8:70","nodeType":"VariableDeclaration","scope":19606,"src":"2730:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19551,"name":"uint256","nodeType":"ElementaryTypeName","src":"2730:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2729:18:70"},"returnParameters":{"id":19555,"nodeType":"ParameterList","parameters":[],"src":"2766:0:70"},"scope":20353,"src":"2713:582:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34996],"body":{"id":19640,"nodeType":"Block","src":"3361:210:70","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19613,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3379:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3379:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19615,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"3393:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"3393:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3393:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3379:31:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74206c6f636b6572","id":19619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3412:12:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_734825a39fbb7ac31bdc2cdfafda8d851d9d880f78ef2a131a023ecdbe007ee8","typeString":"literal_string \"not locker\""},"value":"not locker"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_734825a39fbb7ac31bdc2cdfafda8d851d9d880f78ef2a131a023ecdbe007ee8","typeString":"literal_string \"not locker\""}],"id":19612,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3371:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3371:54:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19621,"nodeType":"ExpressionStatement","src":"3371:54:70"},{"condition":{"id":19625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3439:20:70","subExpression":{"arguments":[{"id":19623,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19608,"src":"3450:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19622,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19920,"src":"3440:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":19624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3440:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19638,"nodeType":"Block","src":"3492:73:70","statements":[{"expression":{"arguments":[{"id":19631,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19608,"src":"3515:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19630,"name":"_unstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19810,"src":"3506:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3506:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19633,"nodeType":"ExpressionStatement","src":"3506:18:70"},{"expression":{"arguments":[{"id":19635,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19608,"src":"3545:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19634,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19731,"src":"3538:6:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3538:16:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19637,"nodeType":"ExpressionStatement","src":"3538:16:70"}]},"id":19639,"nodeType":"IfStatement","src":"3435:130:70","trueBody":{"expression":{"arguments":[{"id":19627,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19608,"src":"3468:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19626,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19731,"src":"3461:6:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3461:16:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19629,"nodeType":"ExpressionStatement","src":"3461:16:70"}}]},"functionSelector":"630b4b90","id":19641,"implemented":true,"kind":"function","modifiers":[],"name":"_stakeFromLock","nameLocation":"3310:14:70","nodeType":"FunctionDefinition","overrides":{"id":19610,"nodeType":"OverrideSpecifier","overrides":[],"src":"3352:8:70"},"parameters":{"id":19609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19608,"mutability":"mutable","name":"_tokenId","nameLocation":"3333:8:70","nodeType":"VariableDeclaration","scope":19641,"src":"3325:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19607,"name":"uint256","nodeType":"ElementaryTypeName","src":"3325:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3324:18:70"},"returnParameters":{"id":19611,"nodeType":"ParameterList","parameters":[],"src":"3361:0:70"},"scope":20353,"src":"3301:270:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19730,"nodeType":"Block","src":"3620:696:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19646,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"3630:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"3630:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":19649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3630:26:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19650,"nodeType":"ExpressionStatement","src":"3630:26:70"},{"assignments":[19653],"declarations":[{"constant":false,"id":19653,"mutability":"mutable","name":"locker","nameLocation":"3678:6:70","nodeType":"VariableDeclaration","scope":19730,"src":"3667:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":19652,"nodeType":"UserDefinedTypeName","pathNode":{"id":19651,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"3667:10:70"},"referencedDeclaration":34923,"src":"3667:10:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"internal"}],"id":19659,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19655,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"3698:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"3698:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3698:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19654,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"3687:10:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":19658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3687:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"nodeType":"VariableDeclarationStatement","src":"3667:49:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":19661,"name":"stakedBalancesNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"3734:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19663,"indexExpression":{"id":19662,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19643,"src":"3752:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3734:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3765:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3734:32:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c7265616479207374616b6564","id":19666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3768:16:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_f48e9ee35b4b58fa13482d62c181c78b90904a6bafe3530d970f9a6bf221977e","typeString":"literal_string \"already staked\""},"value":"already staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f48e9ee35b4b58fa13482d62c181c78b90904a6bafe3530d970f9a6bf221977e","typeString":"literal_string \"already staked\""}],"id":19660,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3726:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3726:59:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19668,"nodeType":"ExpressionStatement","src":"3726:59:70"},{"assignments":[19670],"declarations":[{"constant":false,"id":19670,"mutability":"mutable","name":"_owner","nameLocation":"3804:6:70","nodeType":"VariableDeclaration","scope":19730,"src":"3796:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19669,"name":"address","nodeType":"ElementaryTypeName","src":"3796:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":19675,"initialValue":{"arguments":[{"id":19673,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19643,"src":"3828:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19671,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19653,"src":"3813:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":19672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"3813:14:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3813:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3796:41:70"},{"assignments":[19677],"declarations":[{"constant":false,"id":19677,"mutability":"mutable","name":"_weight","nameLocation":"3856:7:70","nodeType":"VariableDeclaration","scope":19730,"src":"3848:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19676,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19682,"initialValue":{"arguments":[{"id":19680,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19643,"src":"3886:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19678,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19653,"src":"3866:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":19679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfNFT","nodeType":"MemberAccess","referencedDeclaration":34749,"src":"3866:19:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":19681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3866:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3848:47:70"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":19686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3934:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3926:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19684,"name":"address","nodeType":"ElementaryTypeName","src":"3926:7:70","typeDescriptions":{}}},"id":19687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3926:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19688,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19670,"src":"3938:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19689,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19677,"src":"3946:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19683,"name":"_transferVotingUnits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20165,"src":"3905:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":19690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3905:49:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19691,"nodeType":"ExpressionStatement","src":"3905:49:70"},{"expression":{"id":19696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19692,"name":"stakedBalancesNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"3965:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19694,"indexExpression":{"id":19693,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19643,"src":"3983:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3965:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19695,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19677,"src":"3995:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3965:37:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19697,"nodeType":"ExpressionStatement","src":"3965:37:70"},{"expression":{"id":19702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19698,"name":"stakedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"4012:14:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19700,"indexExpression":{"id":19699,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19670,"src":"4027:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4012:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":19701,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19677,"src":"4038:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4012:33:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19703,"nodeType":"ExpressionStatement","src":"4012:33:70"},{"expression":{"id":19706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19704,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19487,"src":"4055:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":19705,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19677,"src":"4070:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4055:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19707,"nodeType":"ExpressionStatement","src":"4055:22:70"},{"eventCall":{"arguments":[{"expression":{"id":19709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4102:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4102:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19711,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19670,"src":"4114:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19712,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19643,"src":"4122:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19713,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19677,"src":"4132:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19708,"name":"StakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35011,"src":"4093:8:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":19714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4093:47:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19715,"nodeType":"EmitStatement","src":"4088:52:70"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":19716,"name":"_delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19472,"src":"4249:11:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":19718,"indexExpression":{"id":19717,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19670,"src":"4261:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4249:19:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":19721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4280:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4272:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19719,"name":"address","nodeType":"ElementaryTypeName","src":"4272:7:70","typeDescriptions":{}}},"id":19722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4272:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4249:33:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19729,"nodeType":"IfStatement","src":"4245:64:70","trueBody":{"expression":{"arguments":[{"id":19725,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19670,"src":"4294:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19726,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19670,"src":"4302:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19724,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20116,"src":"4284:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":19727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4284:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19728,"nodeType":"ExpressionStatement","src":"4284:25:70"}}]},"id":19731,"implemented":true,"kind":"function","modifiers":[],"name":"_stake","nameLocation":"3586:6:70","nodeType":"FunctionDefinition","parameters":{"id":19644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19643,"mutability":"mutable","name":"_tokenId","nameLocation":"3601:8:70","nodeType":"VariableDeclaration","scope":19731,"src":"3593:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3593:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3592:18:70"},"returnParameters":{"id":19645,"nodeType":"ParameterList","parameters":[],"src":"3620:0:70"},"scope":20353,"src":"3577:739:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19809,"nodeType":"Block","src":"4367:542:70","statements":[{"assignments":[19738],"declarations":[{"constant":false,"id":19738,"mutability":"mutable","name":"locker","nameLocation":"4388:6:70","nodeType":"VariableDeclaration","scope":19809,"src":"4377:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":19737,"nodeType":"UserDefinedTypeName","pathNode":{"id":19736,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"4377:10:70"},"referencedDeclaration":34923,"src":"4377:10:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"internal"}],"id":19744,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19740,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"4408:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"4408:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4408:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19739,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"4397:10:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":19743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4397:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"nodeType":"VariableDeclarationStatement","src":"4377:49:70"},{"assignments":[19746],"declarations":[{"constant":false,"id":19746,"mutability":"mutable","name":"_owner","nameLocation":"4444:6:70","nodeType":"VariableDeclaration","scope":19809,"src":"4436:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19745,"name":"address","nodeType":"ElementaryTypeName","src":"4436:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":19751,"initialValue":{"arguments":[{"id":19749,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19733,"src":"4468:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19747,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19738,"src":"4453:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":19748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"4453:14:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":19750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4453:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4436:41:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":19753,"name":"stakedBalancesNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"4496:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19755,"indexExpression":{"id":19754,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19733,"src":"4514:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4496:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4526:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4496:31:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74207374616b6564","id":19758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4529:12:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d1fe892c4e34e50852d9473d3c9854eedeef3b324fbe99dc34a39c1c505db12","typeString":"literal_string \"not staked\""},"value":"not staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d1fe892c4e34e50852d9473d3c9854eedeef3b324fbe99dc34a39c1c505db12","typeString":"literal_string \"not staked\""}],"id":19752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4488:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4488:54:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19760,"nodeType":"ExpressionStatement","src":"4488:54:70"},{"expression":{"arguments":[{"id":19767,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19746,"src":"4598:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19762,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19458,"src":"4566:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":19763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"4566:19:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":19764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4566:21:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19761,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"4552:13:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoterV2_$34597_$","typeString":"type(contract IGaugeVoterV2)"}},"id":19765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4552:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"id":19766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resetFor","nodeType":"MemberAccess","referencedDeclaration":34492,"src":"4552:45:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":19768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4552:53:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19769,"nodeType":"ExpressionStatement","src":"4552:53:70"},{"assignments":[19771],"declarations":[{"constant":false,"id":19771,"mutability":"mutable","name":"_weight","nameLocation":"4624:7:70","nodeType":"VariableDeclaration","scope":19809,"src":"4616:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19770,"name":"uint256","nodeType":"ElementaryTypeName","src":"4616:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19775,"initialValue":{"baseExpression":{"id":19772,"name":"stakedBalancesNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"4634:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19774,"indexExpression":{"id":19773,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19733,"src":"4652:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4634:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4616:45:70"},{"expression":{"arguments":[{"id":19777,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19746,"src":"4692:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":19780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4708:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4700:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19778,"name":"address","nodeType":"ElementaryTypeName","src":"4700:7:70","typeDescriptions":{}}},"id":19781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4700:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19782,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19771,"src":"4712:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19776,"name":"_transferVotingUnits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20165,"src":"4671:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":19783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4671:49:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19784,"nodeType":"ExpressionStatement","src":"4671:49:70"},{"expression":{"id":19789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19785,"name":"stakedBalancesNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"4731:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19787,"indexExpression":{"id":19786,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19733,"src":"4749:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4731:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":19788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4761:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4731:31:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19790,"nodeType":"ExpressionStatement","src":"4731:31:70"},{"expression":{"id":19795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19791,"name":"stakedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"4772:14:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19793,"indexExpression":{"id":19792,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19746,"src":"4787:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4772:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":19794,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19771,"src":"4798:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4772:33:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19796,"nodeType":"ExpressionStatement","src":"4772:33:70"},{"expression":{"id":19799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19797,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19487,"src":"4815:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":19798,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19771,"src":"4830:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4815:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19800,"nodeType":"ExpressionStatement","src":"4815:22:70"},{"eventCall":{"arguments":[{"expression":{"id":19802,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4864:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4864:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19804,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19746,"src":"4876:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19805,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19733,"src":"4884:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19806,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19771,"src":"4894:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19801,"name":"UnstakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35021,"src":"4853:10:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":19807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4853:49:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19808,"nodeType":"EmitStatement","src":"4848:54:70"}]},"id":19810,"implemented":true,"kind":"function","modifiers":[],"name":"_unstake","nameLocation":"4331:8:70","nodeType":"FunctionDefinition","parameters":{"id":19734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19733,"mutability":"mutable","name":"_tokenId","nameLocation":"4348:8:70","nodeType":"VariableDeclaration","scope":19810,"src":"4340:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19732,"name":"uint256","nodeType":"ElementaryTypeName","src":"4340:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4339:18:70"},"returnParameters":{"id":19735,"nodeType":"ParameterList","parameters":[],"src":"4367:0:70"},"scope":20353,"src":"4322:587:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19826,"nodeType":"Block","src":"5118:89:70","statements":[{"expression":{"arguments":[{"id":19817,"name":"KICK_FROM_STAKE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19468,"src":"5139:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":19818,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5161:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5161:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19816,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,135],"referencedDeclaration":135,"src":"5128:10:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":19820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5128:44:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19821,"nodeType":"ExpressionStatement","src":"5128:44:70"},{"expression":{"arguments":[{"id":19823,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"5191:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19822,"name":"_unstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19810,"src":"5182:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5182:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19825,"nodeType":"ExpressionStatement","src":"5182:18:70"}]},"documentation":{"id":19811,"nodeType":"StructuredDocumentation","src":"4915:149:70","text":"@dev ban a NFT from stake; ideally should be used with NFTs that are staked but listed on opensea.\n Should be called from a smart contract"},"functionSelector":"487c8aa7","id":19827,"implemented":true,"kind":"function","modifiers":[],"name":"banFromStake","nameLocation":"5078:12:70","nodeType":"FunctionDefinition","parameters":{"id":19814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19813,"mutability":"mutable","name":"_tokenId","nameLocation":"5099:8:70","nodeType":"VariableDeclaration","scope":19827,"src":"5091:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19812,"name":"uint256","nodeType":"ElementaryTypeName","src":"5091:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5090:18:70"},"returnParameters":{"id":19815,"nodeType":"ParameterList","parameters":[],"src":"5118:0:70"},"scope":20353,"src":"5069:138:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19842,"nodeType":"Block","src":"5411:117:70","statements":[{"expression":{"arguments":[{"id":19832,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"5432:18:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":19833,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5452:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5452:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19831,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,135],"referencedDeclaration":135,"src":"5421:10:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":19835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5421:42:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19836,"nodeType":"ExpressionStatement","src":"5421:42:70"},{"expression":{"id":19840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19837,"name":"disableAttachmentCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"5473:22:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5498:23:70","subExpression":{"id":19838,"name":"disableAttachmentCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"5499:22:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5473:48:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19841,"nodeType":"ExpressionStatement","src":"5473:48:70"}]},"documentation":{"id":19828,"nodeType":"StructuredDocumentation","src":"5213:151:70","text":"@dev in the unlikely event of some kind of issue with the gauge voter, we\n disable the attachment check so that NFTs can safely by unstaked."},"functionSelector":"8dd6878b","id":19843,"implemented":true,"kind":"function","modifiers":[],"name":"toggleAttachmentCheck","nameLocation":"5378:21:70","nodeType":"FunctionDefinition","parameters":{"id":19829,"nodeType":"ParameterList","parameters":[],"src":"5399:2:70"},"returnParameters":{"id":19830,"nodeType":"ParameterList","parameters":[],"src":"5411:0:70"},"scope":20353,"src":"5369:159:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19854,"nodeType":"Block","src":"5648:43:70","statements":[{"expression":{"baseExpression":{"id":19850,"name":"stakedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"5665:14:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19852,"indexExpression":{"id":19851,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19845,"src":"5680:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5665:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19849,"id":19853,"nodeType":"Return","src":"5658:26:70"}]},"id":19855,"implemented":true,"kind":"function","modifiers":[],"name":"_getVotingUnits","nameLocation":"5543:15:70","nodeType":"FunctionDefinition","parameters":{"id":19846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19845,"mutability":"mutable","name":"who","nameLocation":"5567:3:70","nodeType":"VariableDeclaration","scope":19855,"src":"5559:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19844,"name":"address","nodeType":"ElementaryTypeName","src":"5559:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5558:13:70"},"returnParameters":{"id":19849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19855,"src":"5635:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19847,"name":"uint256","nodeType":"ElementaryTypeName","src":"5635:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5634:9:70"},"scope":20353,"src":"5534:157:70","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[34973],"body":{"id":19867,"nodeType":"Block","src":"5829:43:70","statements":[{"expression":{"baseExpression":{"id":19863,"name":"stakedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"5846:14:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19865,"indexExpression":{"id":19864,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19857,"src":"5861:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5846:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19862,"id":19866,"nodeType":"Return","src":"5839:26:70"}]},"functionSelector":"3a02a42d","id":19868,"implemented":true,"kind":"function","modifiers":[],"name":"getStakedBalance","nameLocation":"5706:16:70","nodeType":"FunctionDefinition","overrides":{"id":19859,"nodeType":"OverrideSpecifier","overrides":[],"src":"5790:8:70"},"parameters":{"id":19858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19857,"mutability":"mutable","name":"who","nameLocation":"5731:3:70","nodeType":"VariableDeclaration","scope":19868,"src":"5723:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19856,"name":"address","nodeType":"ElementaryTypeName","src":"5723:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5722:13:70"},"returnParameters":{"id":19862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19868,"src":"5816:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19860,"name":"uint256","nodeType":"ElementaryTypeName","src":"5816:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5815:9:70"},"scope":20353,"src":"5697:175:70","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[34966],"body":{"id":19882,"nodeType":"Block","src":"6003:58:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":19876,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19477,"src":"6020:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":19878,"indexExpression":{"id":19877,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"6041:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6020:25:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":19879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"latest","nodeType":"MemberAccess","referencedDeclaration":8043,"src":"6020:32:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint256)"}},"id":19880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6020:34:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19875,"id":19881,"nodeType":"Return","src":"6013:41:70"}]},"functionSelector":"70a08231","id":19883,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"5887:9:70","nodeType":"FunctionDefinition","overrides":{"id":19872,"nodeType":"OverrideSpecifier","overrides":[],"src":"5964:8:70"},"parameters":{"id":19871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19870,"mutability":"mutable","name":"who","nameLocation":"5905:3:70","nodeType":"VariableDeclaration","scope":19883,"src":"5897:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19869,"name":"address","nodeType":"ElementaryTypeName","src":"5897:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5896:13:70"},"returnParameters":{"id":19875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19883,"src":"5990:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19873,"name":"uint256","nodeType":"ElementaryTypeName","src":"5990:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5989:9:70"},"scope":20353,"src":"5878:183:70","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[34959],"body":{"id":19892,"nodeType":"Block","src":"6139:41:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19889,"name":"_getTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19989,"src":"6156:15:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":19890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6156:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19888,"id":19891,"nodeType":"Return","src":"6149:24:70"}]},"functionSelector":"18160ddd","id":19893,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"6076:11:70","nodeType":"FunctionDefinition","overrides":{"id":19885,"nodeType":"OverrideSpecifier","overrides":[],"src":"6112:8:70"},"parameters":{"id":19884,"nodeType":"ParameterList","parameters":[],"src":"6087:2:70"},"returnParameters":{"id":19888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19893,"src":"6130:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19886,"name":"uint256","nodeType":"ElementaryTypeName","src":"6130:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6129:9:70"},"scope":20353,"src":"6067:113:70","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[34991],"body":{"id":19905,"nodeType":"Block","src":"6311:42:70","statements":[{"expression":{"arguments":[{"id":19902,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19895,"src":"6338:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19901,"name":"_isStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19920,"src":"6328:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":19903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6328:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19900,"id":19904,"nodeType":"Return","src":"6321:25:70"}]},"functionSelector":"baa51f86","id":19906,"implemented":true,"kind":"function","modifiers":[],"name":"isStaked","nameLocation":"6195:8:70","nodeType":"FunctionDefinition","overrides":{"id":19897,"nodeType":"OverrideSpecifier","overrides":[],"src":"6275:8:70"},"parameters":{"id":19896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19895,"mutability":"mutable","name":"tokenId","nameLocation":"6212:7:70","nodeType":"VariableDeclaration","scope":19906,"src":"6204:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19894,"name":"uint256","nodeType":"ElementaryTypeName","src":"6204:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6203:17:70"},"returnParameters":{"id":19900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19906,"src":"6301:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19898,"name":"bool","nodeType":"ElementaryTypeName","src":"6301:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6300:6:70"},"scope":20353,"src":"6186:167:70","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":19919,"nodeType":"Block","src":"6432:54:70","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":19913,"name":"stakedBalancesNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"6449:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19915,"indexExpression":{"id":19914,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19908,"src":"6467:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6449:26:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6478:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6449:30:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19912,"id":19918,"nodeType":"Return","src":"6442:37:70"}]},"id":19920,"implemented":true,"kind":"function","modifiers":[],"name":"_isStaked","nameLocation":"6368:9:70","nodeType":"FunctionDefinition","parameters":{"id":19909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19908,"mutability":"mutable","name":"tokenId","nameLocation":"6386:7:70","nodeType":"VariableDeclaration","scope":19920,"src":"6378:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19907,"name":"uint256","nodeType":"ElementaryTypeName","src":"6378:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6377:17:70"},"returnParameters":{"id":19912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19920,"src":"6426:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19910,"name":"bool","nodeType":"ElementaryTypeName","src":"6426:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6425:6:70"},"scope":20353,"src":"6359:127:70","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[4232],"body":{"id":19935,"nodeType":"Block","src":"6702:62:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":19929,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19477,"src":"6719:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":19931,"indexExpression":{"id":19930,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19923,"src":"6740:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6719:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":19932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"latest","nodeType":"MemberAccess","referencedDeclaration":8043,"src":"6719:36:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint256)"}},"id":19933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6719:38:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19928,"id":19934,"nodeType":"Return","src":"6712:45:70"}]},"documentation":{"id":19921,"nodeType":"StructuredDocumentation","src":"6492:79:70","text":" @dev Returns the current amount of votes that `account` has."},"functionSelector":"9ab24eb0","id":19936,"implemented":true,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"6585:8:70","nodeType":"FunctionDefinition","overrides":{"id":19925,"nodeType":"OverrideSpecifier","overrides":[],"src":"6663:8:70"},"parameters":{"id":19924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19923,"mutability":"mutable","name":"account","nameLocation":"6602:7:70","nodeType":"VariableDeclaration","scope":19936,"src":"6594:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19922,"name":"address","nodeType":"ElementaryTypeName","src":"6594:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6593:17:70"},"returnParameters":{"id":19928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19936,"src":"6689:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19926,"name":"uint256","nodeType":"ElementaryTypeName","src":"6689:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6688:9:70"},"scope":20353,"src":"6576:188:70","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4242],"body":{"id":19954,"nodeType":"Block","src":"7127:77:70","statements":[{"expression":{"arguments":[{"id":19951,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19941,"src":"7185:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":19947,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19477,"src":"7144:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":19949,"indexExpression":{"id":19948,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19939,"src":"7165:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7144:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":19950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getAtBlock","nodeType":"MemberAccess","referencedDeclaration":8119,"src":"7144:40:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) view returns (uint256)"}},"id":19952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7144:53:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19946,"id":19953,"nodeType":"Return","src":"7137:60:70"}]},"documentation":{"id":19937,"nodeType":"StructuredDocumentation","src":"6770:201:70","text":" @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\n Requirements:\n - `blockNumber` must have been already mined"},"functionSelector":"3a46b1a8","id":19955,"implemented":true,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"6985:12:70","nodeType":"FunctionDefinition","overrides":{"id":19943,"nodeType":"OverrideSpecifier","overrides":[],"src":"7088:8:70"},"parameters":{"id":19942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19939,"mutability":"mutable","name":"account","nameLocation":"7006:7:70","nodeType":"VariableDeclaration","scope":19955,"src":"6998:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19938,"name":"address","nodeType":"ElementaryTypeName","src":"6998:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19941,"mutability":"mutable","name":"blockNumber","nameLocation":"7023:11:70","nodeType":"VariableDeclaration","scope":19955,"src":"7015:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19940,"name":"uint256","nodeType":"ElementaryTypeName","src":"7015:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6997:38:70"},"returnParameters":{"id":19946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19955,"src":"7114:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19944,"name":"uint256","nodeType":"ElementaryTypeName","src":"7114:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7113:9:70"},"scope":20353,"src":"6976:228:70","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4250],"body":{"id":19977,"nodeType":"Block","src":"7807:140:70","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19965,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19958,"src":"7825:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19966,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7839:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"7839:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7825:26:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f7465733a20626c6f636b206e6f7420796574206d696e6564","id":19969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7853:28:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_83c09804cf777c619c7ba082380b263866073c54e541883e3b7cb00a4aa7fe69","typeString":"literal_string \"Votes: block not yet mined\""},"value":"Votes: block not yet mined"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_83c09804cf777c619c7ba082380b263866073c54e541883e3b7cb00a4aa7fe69","typeString":"literal_string \"Votes: block not yet mined\""}],"id":19964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7817:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7817:65:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19971,"nodeType":"ExpressionStatement","src":"7817:65:70"},{"expression":{"arguments":[{"id":19974,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19958,"src":"7928:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19972,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19480,"src":"7899:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":19973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"getAtBlock","nodeType":"MemberAccess","referencedDeclaration":8119,"src":"7899:28:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) view returns (uint256)"}},"id":19975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7899:41:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19963,"id":19976,"nodeType":"Return","src":"7892:48:70"}]},"documentation":{"id":19956,"nodeType":"StructuredDocumentation","src":"7210:452:70","text":" @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n Votes that have not been delegated are still part of total supply, even though they would not participate in a\n vote.\n Requirements:\n - `blockNumber` must have been already mined"},"functionSelector":"8e539e8c","id":19978,"implemented":true,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"7676:18:70","nodeType":"FunctionDefinition","overrides":{"id":19960,"nodeType":"OverrideSpecifier","overrides":[],"src":"7768:8:70"},"parameters":{"id":19959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19958,"mutability":"mutable","name":"blockNumber","nameLocation":"7703:11:70","nodeType":"VariableDeclaration","scope":19978,"src":"7695:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19957,"name":"uint256","nodeType":"ElementaryTypeName","src":"7695:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7694:21:70"},"returnParameters":{"id":19963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19978,"src":"7794:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7794:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7793:9:70"},"scope":20353,"src":"7667:280:70","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":19988,"nodeType":"Block","src":"8091:50:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19984,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19480,"src":"8108:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":19985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"latest","nodeType":"MemberAccess","referencedDeclaration":8043,"src":"8108:24:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$8014_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint256)"}},"id":19986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8108:26:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19983,"id":19987,"nodeType":"Return","src":"8101:33:70"}]},"documentation":{"id":19979,"nodeType":"StructuredDocumentation","src":"7953:66:70","text":" @dev Returns the current total supply of votes."},"id":19989,"implemented":true,"kind":"function","modifiers":[],"name":"_getTotalSupply","nameLocation":"8033:15:70","nodeType":"FunctionDefinition","parameters":{"id":19980,"nodeType":"ParameterList","parameters":[],"src":"8048:2:70"},"returnParameters":{"id":19983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19989,"src":"8082:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19981,"name":"uint256","nodeType":"ElementaryTypeName","src":"8082:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8081:9:70"},"scope":20353,"src":"8024:117:70","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[4258],"body":{"id":20002,"nodeType":"Block","src":"8350:44:70","statements":[{"expression":{"baseExpression":{"id":19998,"name":"_delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19472,"src":"8367:11:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":20000,"indexExpression":{"id":19999,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19992,"src":"8379:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8367:20:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":19997,"id":20001,"nodeType":"Return","src":"8360:27:70"}]},"documentation":{"id":19990,"nodeType":"StructuredDocumentation","src":"8147:71:70","text":" @dev Returns the delegate that `account` has chosen."},"functionSelector":"587cde1e","id":20003,"implemented":true,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"8232:9:70","nodeType":"FunctionDefinition","overrides":{"id":19994,"nodeType":"OverrideSpecifier","overrides":[],"src":"8311:8:70"},"parameters":{"id":19993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19992,"mutability":"mutable","name":"account","nameLocation":"8250:7:70","nodeType":"VariableDeclaration","scope":20003,"src":"8242:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19991,"name":"address","nodeType":"ElementaryTypeName","src":"8242:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8241:17:70"},"returnParameters":{"id":19997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20003,"src":"8337:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19995,"name":"address","nodeType":"ElementaryTypeName","src":"8337:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8336:9:70"},"scope":20353,"src":"8223:171:70","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4264],"body":{"id":20020,"nodeType":"Block","src":"8537:86:70","statements":[{"assignments":[20011],"declarations":[{"constant":false,"id":20011,"mutability":"mutable","name":"account","nameLocation":"8555:7:70","nodeType":"VariableDeclaration","scope":20020,"src":"8547:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20010,"name":"address","nodeType":"ElementaryTypeName","src":"8547:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":20012,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"8565:10:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8565:12:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8547:30:70"},{"expression":{"arguments":[{"id":20016,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20011,"src":"8597:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20017,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20006,"src":"8606:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20015,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20116,"src":"8587:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8587:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20019,"nodeType":"ExpressionStatement","src":"8587:29:70"}]},"documentation":{"id":20004,"nodeType":"StructuredDocumentation","src":"8400:71:70","text":" @dev Delegates votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","id":20021,"implemented":true,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"8485:8:70","nodeType":"FunctionDefinition","overrides":{"id":20008,"nodeType":"OverrideSpecifier","overrides":[],"src":"8528:8:70"},"parameters":{"id":20007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20006,"mutability":"mutable","name":"delegatee","nameLocation":"8502:9:70","nodeType":"VariableDeclaration","scope":20021,"src":"8494:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20005,"name":"address","nodeType":"ElementaryTypeName","src":"8494:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8493:19:70"},"returnParameters":{"id":20009,"nodeType":"ParameterList","parameters":[],"src":"8537:0:70"},"scope":20353,"src":"8476:147:70","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4280],"body":{"id":20080,"nodeType":"Block","src":"8883:449:70","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20039,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8901:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8901:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20041,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"8920:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8901:25:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f7465733a207369676e61747572652065787069726564","id":20043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8928:26:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d5ff3f347872d51f9a2d63fc6e49268c6b2f830105a4897008d3883d68bc66f","typeString":"literal_string \"Votes: signature expired\""},"value":"Votes: signature expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d5ff3f347872d51f9a2d63fc6e49268c6b2f830105a4897008d3883d68bc66f","typeString":"literal_string \"Votes: signature expired\""}],"id":20038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8893:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8893:62:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20045,"nodeType":"ExpressionStatement","src":"8893:62:70"},{"assignments":[20047],"declarations":[{"constant":false,"id":20047,"mutability":"mutable","name":"signer","nameLocation":"8973:6:70","nodeType":"VariableDeclaration","scope":20080,"src":"8965:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20046,"name":"address","nodeType":"ElementaryTypeName","src":"8965:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20065,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":20054,"name":"DELEGATION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19463,"src":"9085:19:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20055,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20024,"src":"9106:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20056,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20026,"src":"9117:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20057,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"9124:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9074:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"9074:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9074:57:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20051,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9043:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":20059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9043:106:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":20050,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9812,"src":"9009:16:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":20060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9009:154:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20061,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20030,"src":"9177:1:70","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":20062,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20032,"src":"9192:1:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"9207:1:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20048,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"8982:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9157_$","typeString":"type(library ECDSA)"}},"id":20049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":9097,"src":"8982:13:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":20064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8982:236:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8965:253:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20067,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20026,"src":"9236:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":20069,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20047,"src":"9255:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20068,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20300,"src":"9245:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":20070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9245:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9236:26:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"566f7465733a20696e76616c6964206e6f6e6365","id":20072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9264:22:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_13ff7ccc79996334a065c9426876e6554e1ae6a3f574e0ced02fc6062a794b0c","typeString":"literal_string \"Votes: invalid nonce\""},"value":"Votes: invalid nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13ff7ccc79996334a065c9426876e6554e1ae6a3f574e0ced02fc6062a794b0c","typeString":"literal_string \"Votes: invalid nonce\""}],"id":20066,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9228:7:70","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9228:59:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20074,"nodeType":"ExpressionStatement","src":"9228:59:70"},{"expression":{"arguments":[{"id":20076,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20047,"src":"9307:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20077,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20024,"src":"9315:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20075,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20116,"src":"9297:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9297:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20079,"nodeType":"ExpressionStatement","src":"9297:28:70"}]},"documentation":{"id":20022,"nodeType":"StructuredDocumentation","src":"8629:67:70","text":" @dev Delegates votes from signer to `delegatee`."},"functionSelector":"c3cda520","id":20081,"implemented":true,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"8710:13:70","nodeType":"FunctionDefinition","overrides":{"id":20036,"nodeType":"OverrideSpecifier","overrides":[],"src":"8874:8:70"},"parameters":{"id":20035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20024,"mutability":"mutable","name":"delegatee","nameLocation":"8741:9:70","nodeType":"VariableDeclaration","scope":20081,"src":"8733:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20023,"name":"address","nodeType":"ElementaryTypeName","src":"8733:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20026,"mutability":"mutable","name":"nonce","nameLocation":"8768:5:70","nodeType":"VariableDeclaration","scope":20081,"src":"8760:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20025,"name":"uint256","nodeType":"ElementaryTypeName","src":"8760:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20028,"mutability":"mutable","name":"expiry","nameLocation":"8791:6:70","nodeType":"VariableDeclaration","scope":20081,"src":"8783:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20027,"name":"uint256","nodeType":"ElementaryTypeName","src":"8783:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20030,"mutability":"mutable","name":"v","nameLocation":"8813:1:70","nodeType":"VariableDeclaration","scope":20081,"src":"8807:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20029,"name":"uint8","nodeType":"ElementaryTypeName","src":"8807:5:70","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":20032,"mutability":"mutable","name":"r","nameLocation":"8832:1:70","nodeType":"VariableDeclaration","scope":20081,"src":"8824:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8824:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20034,"mutability":"mutable","name":"s","nameLocation":"8851:1:70","nodeType":"VariableDeclaration","scope":20081,"src":"8843:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8843:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8723:135:70"},"returnParameters":{"id":20037,"nodeType":"ParameterList","parameters":[],"src":"8883:0:70"},"scope":20353,"src":"8701:631:70","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":20115,"nodeType":"Block","src":"9568:241:70","statements":[{"assignments":[20090],"declarations":[{"constant":false,"id":20090,"mutability":"mutable","name":"oldDelegate","nameLocation":"9586:11:70","nodeType":"VariableDeclaration","scope":20115,"src":"9578:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20089,"name":"address","nodeType":"ElementaryTypeName","src":"9578:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20094,"initialValue":{"arguments":[{"id":20092,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"9610:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20091,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20003,"src":"9600:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9600:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9578:40:70"},{"expression":{"id":20099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20095,"name":"_delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19472,"src":"9628:11:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":20097,"indexExpression":{"id":20096,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"9640:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9628:20:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20098,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20086,"src":"9651:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9628:32:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20100,"nodeType":"ExpressionStatement","src":"9628:32:70"},{"eventCall":{"arguments":[{"id":20102,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"9692:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20103,"name":"oldDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20090,"src":"9701:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20104,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20086,"src":"9714:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20101,"name":"DelegateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"9676:15:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9676:48:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20106,"nodeType":"EmitStatement","src":"9671:53:70"},{"expression":{"arguments":[{"id":20108,"name":"oldDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20090,"src":"9753:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20109,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20086,"src":"9766:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":20111,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"9793:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20110,"name":"_getVotingUnits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"9777:15:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":20112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9777:24:70","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":20107,"name":"_moveDelegateVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20243,"src":"9734:18:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9734:68:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20114,"nodeType":"ExpressionStatement","src":"9734:68:70"}]},"documentation":{"id":20082,"nodeType":"StructuredDocumentation","src":"9338:153:70","text":" @dev Delegate all of `account`'s voting units to `delegatee`.\n Emits events {DelegateChanged} and {DelegateVotesChanged}."},"id":20116,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"9505:9:70","nodeType":"FunctionDefinition","parameters":{"id":20087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20084,"mutability":"mutable","name":"account","nameLocation":"9523:7:70","nodeType":"VariableDeclaration","scope":20116,"src":"9515:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20083,"name":"address","nodeType":"ElementaryTypeName","src":"9515:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20086,"mutability":"mutable","name":"delegatee","nameLocation":"9540:9:70","nodeType":"VariableDeclaration","scope":20116,"src":"9532:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20085,"name":"address","nodeType":"ElementaryTypeName","src":"9532:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9514:36:70"},"returnParameters":{"id":20088,"nodeType":"ParameterList","parameters":[],"src":"9568:0:70"},"scope":20353,"src":"9496:313:70","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":20164,"nodeType":"Block","src":"10162:219:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20126,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20119,"src":"10176:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":20129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10192:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10184:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20127,"name":"address","nodeType":"ElementaryTypeName","src":"10184:7:70","typeDescriptions":{}}},"id":20130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10184:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10176:18:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20139,"nodeType":"IfStatement","src":"10172:60:70","trueBody":{"expression":{"arguments":[{"id":20135,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20257,"src":"10219:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":20136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"10225:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20132,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19480,"src":"10196:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":20134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"10196:22:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":20137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10196:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":20138,"nodeType":"ExpressionStatement","src":"10196:36:70"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20140,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20121,"src":"10246:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":20143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10260:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10252:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20141,"name":"address","nodeType":"ElementaryTypeName","src":"10252:7:70","typeDescriptions":{}}},"id":20144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10252:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10246:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20153,"nodeType":"IfStatement","src":"10242:63:70","trueBody":{"expression":{"arguments":[{"id":20149,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20271,"src":"10287:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":20150,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"10298:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20146,"name":"_totalCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19480,"src":"10264:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":20148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"10264:22:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":20151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10264:41:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":20152,"nodeType":"ExpressionStatement","src":"10264:41:70"}},{"expression":{"arguments":[{"arguments":[{"id":20156,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20119,"src":"10345:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20155,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20003,"src":"10335:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10335:15:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":20159,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20121,"src":"10362:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20158,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20003,"src":"10352:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":20160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10352:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20161,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"10367:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20154,"name":"_moveDelegateVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20243,"src":"10316:18:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10316:58:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20163,"nodeType":"ExpressionStatement","src":"10316:58:70"}]},"documentation":{"id":20117,"nodeType":"StructuredDocumentation","src":"9815:223:70","text":" @dev Transfers, mints, or burns voting units. To register a mint, `from` should be zero. To register a burn, `to`\n should be zero. Total supply of voting units will be adjusted with mints and burns."},"id":20165,"implemented":true,"kind":"function","modifiers":[],"name":"_transferVotingUnits","nameLocation":"10052:20:70","nodeType":"FunctionDefinition","parameters":{"id":20124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20119,"mutability":"mutable","name":"from","nameLocation":"10090:4:70","nodeType":"VariableDeclaration","scope":20165,"src":"10082:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20118,"name":"address","nodeType":"ElementaryTypeName","src":"10082:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20121,"mutability":"mutable","name":"to","nameLocation":"10112:2:70","nodeType":"VariableDeclaration","scope":20165,"src":"10104:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20120,"name":"address","nodeType":"ElementaryTypeName","src":"10104:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20123,"mutability":"mutable","name":"amount","nameLocation":"10132:6:70","nodeType":"VariableDeclaration","scope":20165,"src":"10124:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20122,"name":"uint256","nodeType":"ElementaryTypeName","src":"10124:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10072:72:70"},"returnParameters":{"id":20125,"nodeType":"ParameterList","parameters":[],"src":"10162:0:70"},"scope":20353,"src":"10043:338:70","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":20242,"nodeType":"Block","src":"10575:606:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20175,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20168,"src":"10589:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":20176,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20170,"src":"10597:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10589:10:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20178,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"10603:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10612:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10603:10:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10589:24:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20241,"nodeType":"IfStatement","src":"10585:590:70","trueBody":{"id":20240,"nodeType":"Block","src":"10615:560:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20182,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20168,"src":"10633:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":20185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10649:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10641:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20183,"name":"address","nodeType":"ElementaryTypeName","src":"10641:7:70","typeDescriptions":{}}},"id":20186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10641:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10633:18:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20207,"nodeType":"IfStatement","src":"10629:253:70","trueBody":{"id":20206,"nodeType":"Block","src":"10653:229:70","statements":[{"assignments":[20189,20191],"declarations":[{"constant":false,"id":20189,"mutability":"mutable","name":"oldValue","nameLocation":"10680:8:70","nodeType":"VariableDeclaration","scope":20206,"src":"10672:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20188,"name":"uint256","nodeType":"ElementaryTypeName","src":"10672:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20191,"mutability":"mutable","name":"newValue","nameLocation":"10698:8:70","nodeType":"VariableDeclaration","scope":20206,"src":"10690:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20190,"name":"uint256","nodeType":"ElementaryTypeName","src":"10690:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20199,"initialValue":{"arguments":[{"id":20196,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20271,"src":"10780:9:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":20197,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"10791:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":20192,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19477,"src":"10710:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":20194,"indexExpression":{"id":20193,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20168,"src":"10752:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10710:64:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":20195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"10710:69:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":20198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10710:88:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10671:127:70"},{"eventCall":{"arguments":[{"id":20201,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20168,"src":"10842:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20202,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20189,"src":"10848:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20203,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20191,"src":"10858:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20200,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"10821:20:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10821:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20205,"nodeType":"EmitStatement","src":"10816:51:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20208,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20170,"src":"10899:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":20211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10913:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10905:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20209,"name":"address","nodeType":"ElementaryTypeName","src":"10905:7:70","typeDescriptions":{}}},"id":20212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10905:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10899:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20233,"nodeType":"IfStatement","src":"10895:225:70","trueBody":{"id":20232,"nodeType":"Block","src":"10917:203:70","statements":[{"assignments":[20215,20217],"declarations":[{"constant":false,"id":20215,"mutability":"mutable","name":"oldValue","nameLocation":"10944:8:70","nodeType":"VariableDeclaration","scope":20232,"src":"10936:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20214,"name":"uint256","nodeType":"ElementaryTypeName","src":"10936:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20217,"mutability":"mutable","name":"newValue","nameLocation":"10962:8:70","nodeType":"VariableDeclaration","scope":20232,"src":"10954:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20216,"name":"uint256","nodeType":"ElementaryTypeName","src":"10954:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20225,"initialValue":{"arguments":[{"id":20222,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20257,"src":"11025:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":20223,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"11031:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":20218,"name":"_delegateCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19477,"src":"10974:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_History_$8014_storage_$","typeString":"mapping(address => struct Checkpoints.History storage ref)"}},"id":20220,"indexExpression":{"id":20219,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20170,"src":"10995:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10974:24:70","typeDescriptions":{"typeIdentifier":"t_struct$_History_$8014_storage","typeString":"struct Checkpoints.History storage ref"}},"id":20221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":8232,"src":"10974:50:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$8014_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$8014_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":20224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10974:64:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10935:103:70"},{"eventCall":{"arguments":[{"id":20227,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20170,"src":"11082:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20228,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20215,"src":"11086:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20229,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20217,"src":"11096:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20226,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"11061:20:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11061:44:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20231,"nodeType":"EmitStatement","src":"11056:49:70"}]}},{"eventCall":{"arguments":[{"id":20235,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20168,"src":"11147:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20236,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20170,"src":"11153:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20237,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"11157:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20234,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34939,"src":"11138:8:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11138:26:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20239,"nodeType":"EmitStatement","src":"11133:31:70"}]}}]},"documentation":{"id":20166,"nodeType":"StructuredDocumentation","src":"10387:75:70","text":" @dev Moves delegated votes from one delegate to another."},"id":20243,"implemented":true,"kind":"function","modifiers":[],"name":"_moveDelegateVotes","nameLocation":"10476:18:70","nodeType":"FunctionDefinition","parameters":{"id":20173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20168,"mutability":"mutable","name":"from","nameLocation":"10512:4:70","nodeType":"VariableDeclaration","scope":20243,"src":"10504:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20167,"name":"address","nodeType":"ElementaryTypeName","src":"10504:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20170,"mutability":"mutable","name":"to","nameLocation":"10534:2:70","nodeType":"VariableDeclaration","scope":20243,"src":"10526:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20169,"name":"address","nodeType":"ElementaryTypeName","src":"10526:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20172,"mutability":"mutable","name":"amount","nameLocation":"10554:6:70","nodeType":"VariableDeclaration","scope":20243,"src":"10546:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20171,"name":"uint256","nodeType":"ElementaryTypeName","src":"10546:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10494:72:70"},"returnParameters":{"id":20174,"nodeType":"ParameterList","parameters":[],"src":"10575:0:70"},"scope":20353,"src":"10467:714:70","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":20256,"nodeType":"Block","src":"11254:29:70","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20252,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20245,"src":"11271:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":20253,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20247,"src":"11275:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11271:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20251,"id":20255,"nodeType":"Return","src":"11264:12:70"}]},"id":20257,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"11196:4:70","nodeType":"FunctionDefinition","parameters":{"id":20248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20245,"mutability":"mutable","name":"a","nameLocation":"11209:1:70","nodeType":"VariableDeclaration","scope":20257,"src":"11201:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20244,"name":"uint256","nodeType":"ElementaryTypeName","src":"11201:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20247,"mutability":"mutable","name":"b","nameLocation":"11220:1:70","nodeType":"VariableDeclaration","scope":20257,"src":"11212:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20246,"name":"uint256","nodeType":"ElementaryTypeName","src":"11212:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11200:22:70"},"returnParameters":{"id":20251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20257,"src":"11245:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20249,"name":"uint256","nodeType":"ElementaryTypeName","src":"11245:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11244:9:70"},"scope":20353,"src":"11187:96:70","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":20270,"nodeType":"Block","src":"11361:29:70","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20266,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20259,"src":"11378:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":20267,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20261,"src":"11382:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11378:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20265,"id":20269,"nodeType":"Return","src":"11371:12:70"}]},"id":20271,"implemented":true,"kind":"function","modifiers":[],"name":"_subtract","nameLocation":"11298:9:70","nodeType":"FunctionDefinition","parameters":{"id":20262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20259,"mutability":"mutable","name":"a","nameLocation":"11316:1:70","nodeType":"VariableDeclaration","scope":20271,"src":"11308:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20258,"name":"uint256","nodeType":"ElementaryTypeName","src":"11308:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20261,"mutability":"mutable","name":"b","nameLocation":"11327:1:70","nodeType":"VariableDeclaration","scope":20271,"src":"11319:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20260,"name":"uint256","nodeType":"ElementaryTypeName","src":"11319:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11307:22:70"},"returnParameters":{"id":20265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20271,"src":"11352:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20263,"name":"uint256","nodeType":"ElementaryTypeName","src":"11352:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11351:9:70"},"scope":20353,"src":"11289:101:70","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":20299,"nodeType":"Block","src":"11609:126:70","statements":[{"assignments":[20283],"declarations":[{"constant":false,"id":20283,"mutability":"mutable","name":"nonce","nameLocation":"11644:5:70","nodeType":"VariableDeclaration","scope":20299,"src":"11619:30:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":20282,"nodeType":"UserDefinedTypeName","pathNode":{"id":20281,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":8261,"src":"11619:16:70"},"referencedDeclaration":8261,"src":"11619:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"id":20287,"initialValue":{"baseExpression":{"id":20284,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19485,"src":"11652:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":20286,"indexExpression":{"id":20285,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20274,"src":"11660:5:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11652:14:70","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage","typeString":"struct Counters.Counter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11619:47:70"},{"expression":{"id":20292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20288,"name":"current","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20277,"src":"11676:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20289,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20283,"src":"11686:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":20290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"current","nodeType":"MemberAccess","referencedDeclaration":8273,"src":"11686:13:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$8261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$8261_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":20291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11686:15:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11676:25:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20293,"nodeType":"ExpressionStatement","src":"11676:25:70"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20294,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20283,"src":"11711:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":20296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":8287,"src":"11711:15:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Counter_$8261_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$8261_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer)"}},"id":20297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11711:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20298,"nodeType":"ExpressionStatement","src":"11711:17:70"}]},"documentation":{"id":20272,"nodeType":"StructuredDocumentation","src":"11396:103:70","text":" @dev Consumes a nonce.\n Returns the current value and increments nonce."},"id":20300,"implemented":true,"kind":"function","modifiers":[],"name":"_useNonce","nameLocation":"11513:9:70","nodeType":"FunctionDefinition","parameters":{"id":20275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20274,"mutability":"mutable","name":"owner","nameLocation":"11531:5:70","nodeType":"VariableDeclaration","scope":20300,"src":"11523:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20273,"name":"address","nodeType":"ElementaryTypeName","src":"11523:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11522:15:70"},"returnParameters":{"id":20278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20277,"mutability":"mutable","name":"current","nameLocation":"11596:7:70","nodeType":"VariableDeclaration","scope":20300,"src":"11588:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20276,"name":"uint256","nodeType":"ElementaryTypeName","src":"11588:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11587:17:70"},"scope":20353,"src":"11504:231:70","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":20314,"nodeType":"Block","src":"11864:48:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":20308,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19485,"src":"11881:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$8261_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":20310,"indexExpression":{"id":20309,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20303,"src":"11889:5:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11881:14:70","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8261_storage","typeString":"struct Counters.Counter storage ref"}},"id":20311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"current","nodeType":"MemberAccess","referencedDeclaration":8273,"src":"11881:22:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$8261_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$8261_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":20312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11881:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20307,"id":20313,"nodeType":"Return","src":"11874:31:70"}]},"documentation":{"id":20301,"nodeType":"StructuredDocumentation","src":"11741:49:70","text":" @dev Returns an address nonce."},"functionSelector":"7ecebe00","id":20315,"implemented":true,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"11804:6:70","nodeType":"FunctionDefinition","parameters":{"id":20304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20303,"mutability":"mutable","name":"owner","nameLocation":"11819:5:70","nodeType":"VariableDeclaration","scope":20315,"src":"11811:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20302,"name":"address","nodeType":"ElementaryTypeName","src":"11811:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11810:15:70"},"returnParameters":{"id":20307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20315,"src":"11855:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20305,"name":"uint256","nodeType":"ElementaryTypeName","src":"11855:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11854:9:70"},"scope":20353,"src":"11795:117:70","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":20324,"nodeType":"Block","src":"12109:44:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20321,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9769,"src":"12126:18:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":20322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12126:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":20320,"id":20323,"nodeType":"Return","src":"12119:27:70"}]},"documentation":{"id":20316,"nodeType":"StructuredDocumentation","src":"11918:73:70","text":" @dev Returns the contract's {EIP712} domain separator."},"functionSelector":"3644e515","id":20325,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"12058:16:70","nodeType":"FunctionDefinition","parameters":{"id":20317,"nodeType":"ParameterList","parameters":[],"src":"12074:2:70"},"returnParameters":{"id":20320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20325,"src":"12100:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12100:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12099:9:70"},"scope":20353,"src":"12049:104:70","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34944],"body":{"id":20333,"nodeType":"Block","src":"12230:51:70","statements":[{"expression":{"hexValue":"4d41484158205374616b656420566f74696e6720506f776572","id":20331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12247:27:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_b217fc09a875e2b8c97ee2e735c100e1a1cb98c0ecc725e9a6800db2f265e109","typeString":"literal_string \"MAHAX Staked Voting Power\""},"value":"MAHAX Staked Voting Power"},"functionReturnParameters":20330,"id":20332,"nodeType":"Return","src":"12240:34:70"}]},"functionSelector":"06fdde03","id":20334,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"12168:4:70","nodeType":"FunctionDefinition","overrides":{"id":20327,"nodeType":"OverrideSpecifier","overrides":[],"src":"12197:8:70"},"parameters":{"id":20326,"nodeType":"ParameterList","parameters":[],"src":"12172:2:70"},"returnParameters":{"id":20330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20334,"src":"12215:13:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20328,"name":"string","nodeType":"ElementaryTypeName","src":"12215:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12214:15:70"},"scope":20353,"src":"12159:122:70","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[34949],"body":{"id":20342,"nodeType":"Block","src":"12360:33:70","statements":[{"expression":{"hexValue":"4d414841587670","id":20340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12377:9:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a6ac0109f7bc3639bb74a5f744028e613eb3ebccc2633b82da253a57ecc3e85","typeString":"literal_string \"MAHAXvp\""},"value":"MAHAXvp"},"functionReturnParameters":20339,"id":20341,"nodeType":"Return","src":"12370:16:70"}]},"functionSelector":"95d89b41","id":20343,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"12296:6:70","nodeType":"FunctionDefinition","overrides":{"id":20336,"nodeType":"OverrideSpecifier","overrides":[],"src":"12327:8:70"},"parameters":{"id":20335,"nodeType":"ParameterList","parameters":[],"src":"12302:2:70"},"returnParameters":{"id":20339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20343,"src":"12345:13:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20337,"name":"string","nodeType":"ElementaryTypeName","src":"12345:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12344:15:70"},"scope":20353,"src":"12287:106:70","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[34954],"body":{"id":20351,"nodeType":"Block","src":"12466:26:70","statements":[{"expression":{"hexValue":"3138","id":20349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12483:2:70","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":20348,"id":20350,"nodeType":"Return","src":"12476:9:70"}]},"functionSelector":"313ce567","id":20352,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"12408:8:70","nodeType":"FunctionDefinition","overrides":{"id":20345,"nodeType":"OverrideSpecifier","overrides":[],"src":"12441:8:70"},"parameters":{"id":20344,"nodeType":"ParameterList","parameters":[],"src":"12416:2:70"},"returnParameters":{"id":20348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20352,"src":"12459:5:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20346,"name":"uint8","nodeType":"ElementaryTypeName","src":"12459:5:70","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12458:7:70"},"scope":20353,"src":"12399:93:70","stateMutability":"view","virtual":true,"visibility":"external"}],"scope":20354,"src":"1268:11226:70","usedErrors":[]}],"src":"33:12462:70"},"id":70},"contracts/MAHAXVetoGovernor.sol":{"ast":{"absolutePath":"contracts/MAHAXVetoGovernor.sol","exportedSymbols":{"Governor":[1952],"GovernorCountingSimple":[3380],"GovernorSettings":[3743],"IGovernor":[2249],"IRegistry":[35522],"IVotes":[4281],"MAHAXVetoGovernor":[20524]},"id":20525,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":20355,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:71"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"@openzeppelin/contracts/governance/Governor.sol","id":20358,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20525,"sourceUnit":1953,"src":"57:84:71","symbolAliases":[{"foreign":{"id":20356,"name":"IGovernor","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:9:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20357,"name":"Governor","nodeType":"Identifier","overloadedDeclarations":[],"src":"76:8:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","id":20360,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20525,"sourceUnit":3744,"src":"142:100:71","symbolAliases":[{"foreign":{"id":20359,"name":"GovernorSettings","nodeType":"Identifier","overloadedDeclarations":[],"src":"150:16:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","id":20362,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20525,"sourceUnit":3381,"src":"243:112:71","symbolAliases":[{"foreign":{"id":20361,"name":"GovernorCountingSimple","nodeType":"Identifier","overloadedDeclarations":[],"src":"251:22:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"@openzeppelin/contracts/governance/utils/IVotes.sol","id":20364,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20525,"sourceUnit":4282,"src":"356:75:71","symbolAliases":[{"foreign":{"id":20363,"name":"IVotes","nodeType":"Identifier","overloadedDeclarations":[],"src":"364:6:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","id":20366,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20525,"sourceUnit":35523,"src":"432:53:71","symbolAliases":[{"foreign":{"id":20365,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"440:9:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20368,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"571:8:71"},"id":20369,"nodeType":"InheritanceSpecifier","src":"571:8:71"},{"baseName":{"id":20370,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"585:16:71"},"id":20371,"nodeType":"InheritanceSpecifier","src":"585:16:71"},{"baseName":{"id":20372,"name":"GovernorCountingSimple","nodeType":"IdentifierPath","referencedDeclaration":3380,"src":"607:22:71"},"id":20373,"nodeType":"InheritanceSpecifier","src":"607:22:71"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":20367,"nodeType":"StructuredDocumentation","src":"487:50:71","text":"@custom:security-contact security@mahadao.com"},"fullyImplemented":true,"id":20524,"linearizedBaseContracts":[20524,3380,3743,1952,5103,7110,2249,9813,9837,9849,8255],"name":"MAHAXVetoGovernor","nameLocation":"546:17:71","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":20376,"mutability":"immutable","name":"registry","nameLocation":"663:8:71","nodeType":"VariableDeclaration","scope":20524,"src":"636:35:71","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":20375,"nodeType":"UserDefinedTypeName","pathNode":{"id":20374,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"636:9:71"},"referencedDeclaration":35522,"src":"636:9:71","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":false,"id":20378,"mutability":"mutable","name":"_quorum","nameLocation":"693:7:71","nodeType":"VariableDeclaration","scope":20524,"src":"677:23:71","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20377,"name":"uint256","nodeType":"ElementaryTypeName","src":"677:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"anonymous":false,"id":20384,"name":"QuorumUpdated","nameLocation":"713:13:71","nodeType":"EventDefinition","parameters":{"id":20383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20380,"indexed":false,"mutability":"mutable","name":"oldQuorum","nameLocation":"735:9:71","nodeType":"VariableDeclaration","scope":20384,"src":"727:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20379,"name":"uint256","nodeType":"ElementaryTypeName","src":"727:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20382,"indexed":false,"mutability":"mutable","name":"newQuorum","nameLocation":"754:9:71","nodeType":"VariableDeclaration","scope":20384,"src":"746:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20381,"name":"uint256","nodeType":"ElementaryTypeName","src":"746:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"726:38:71"},"src":"707:58:71"},{"body":{"id":20414,"nodeType":"Block","src":"1145:70:71","statements":[{"expression":{"id":20408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20406,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20376,"src":"1155:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20407,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20387,"src":"1166:9:71","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"1155:20:71","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":20409,"nodeType":"ExpressionStatement","src":"1155:20:71"},{"expression":{"arguments":[{"id":20411,"name":"__quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20395,"src":"1199:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20410,"name":"_updateQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20523,"src":"1185:13:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":20412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1185:23:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20413,"nodeType":"ExpressionStatement","src":"1185:23:71"}]},"id":20415,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d414841585665746f476f7665726e6f72","id":20398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"979:19:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_953e6e5a3ffb9da042b521b4986a5f3daa63030347af1753e565965678420c9e","typeString":"literal_string \"MAHAXVetoGovernor\""},"value":"MAHAXVetoGovernor"}],"id":20399,"kind":"baseConstructorSpecifier","modifierName":{"id":20397,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"970:8:71"},"nodeType":"ModifierInvocation","src":"970:29:71"},{"arguments":[{"id":20401,"name":"_initialVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20389,"src":"1038:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20402,"name":"_initialVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20391,"src":"1071:20:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20403,"name":"_initialProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20393,"src":"1105:25:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20404,"kind":"baseConstructorSpecifier","modifierName":{"id":20400,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"1008:16:71"},"nodeType":"ModifierInvocation","src":"1008:132:71"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":20396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20387,"mutability":"mutable","name":"_registry","nameLocation":"802:9:71","nodeType":"VariableDeclaration","scope":20415,"src":"792:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":20386,"nodeType":"UserDefinedTypeName","pathNode":{"id":20385,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"792:9:71"},"referencedDeclaration":35522,"src":"792:9:71","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":20389,"mutability":"mutable","name":"_initialVotingDelay","nameLocation":"829:19:71","nodeType":"VariableDeclaration","scope":20415,"src":"821:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20388,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20391,"mutability":"mutable","name":"_initialVotingPeriod","nameLocation":"866:20:71","nodeType":"VariableDeclaration","scope":20415,"src":"858:28:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20390,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20393,"mutability":"mutable","name":"_initialProposalThreshold","nameLocation":"904:25:71","nodeType":"VariableDeclaration","scope":20415,"src":"896:33:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20392,"name":"uint256","nodeType":"ElementaryTypeName","src":"896:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20395,"mutability":"mutable","name":"__quorum","nameLocation":"947:8:71","nodeType":"VariableDeclaration","scope":20415,"src":"939:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20394,"name":"uint256","nodeType":"ElementaryTypeName","src":"939:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"782:179:71"},"returnParameters":{"id":20405,"nodeType":"ParameterList","parameters":[],"src":"1145:0:71"},"scope":20524,"src":"771:444:71","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1052],"body":{"id":20438,"nodeType":"Block","src":"1501:84:71","statements":[{"expression":{"arguments":[{"id":20434,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20418,"src":"1557:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20435,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20420,"src":"1566:11:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20429,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20376,"src":"1525:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":20430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"1525:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":20431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1525:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20428,"name":"IVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"1518:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotes_$4281_$","typeString":"type(contract IVotes)"}},"id":20432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1518:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$4281","typeString":"contract IVotes"}},"id":20433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPastVotes","nodeType":"MemberAccess","referencedDeclaration":4242,"src":"1518:38:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":20436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1518:60:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20427,"id":20437,"nodeType":"Return","src":"1511:67:71"}]},"documentation":{"id":20416,"nodeType":"StructuredDocumentation","src":"1221:114:71","text":" Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes})."},"id":20439,"implemented":true,"kind":"function","modifiers":[],"name":"_getVotes","nameLocation":"1349:9:71","nodeType":"FunctionDefinition","overrides":{"id":20424,"nodeType":"OverrideSpecifier","overrides":[],"src":"1474:8:71"},"parameters":{"id":20423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20418,"mutability":"mutable","name":"account","nameLocation":"1376:7:71","nodeType":"VariableDeclaration","scope":20439,"src":"1368:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20417,"name":"address","nodeType":"ElementaryTypeName","src":"1368:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20420,"mutability":"mutable","name":"blockNumber","nameLocation":"1401:11:71","nodeType":"VariableDeclaration","scope":20439,"src":"1393:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20419,"name":"uint256","nodeType":"ElementaryTypeName","src":"1393:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20439,"src":"1422:12:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20421,"name":"bytes","nodeType":"ElementaryTypeName","src":"1422:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1358:93:71"},"returnParameters":{"id":20427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20439,"src":"1492:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20425,"name":"uint256","nodeType":"ElementaryTypeName","src":"1492:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1491:9:71"},"scope":20524,"src":"1340:245:71","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2096,3628],"body":{"id":20451,"nodeType":"Block","src":"1718:43:71","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20447,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1735:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXVetoGovernor_$20524_$","typeString":"type(contract super MAHAXVetoGovernor)"}},"id":20448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":3628,"src":"1735:17:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":20449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1735:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20446,"id":20450,"nodeType":"Return","src":"1728:26:71"}]},"functionSelector":"3932abb1","id":20452,"implemented":true,"kind":"function","modifiers":[],"name":"votingDelay","nameLocation":"1600:11:71","nodeType":"FunctionDefinition","overrides":{"id":20443,"nodeType":"OverrideSpecifier","overrides":[{"id":20441,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"1659:9:71"},{"id":20442,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"1670:16:71"}],"src":"1650:37:71"},"parameters":{"id":20440,"nodeType":"ParameterList","parameters":[],"src":"1611:2:71"},"returnParameters":{"id":20446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20452,"src":"1705:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20444,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1704:9:71"},"scope":20524,"src":"1591:170:71","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2102,3638],"body":{"id":20464,"nodeType":"Block","src":"1895:44:71","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20460,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXVetoGovernor_$20524_$","typeString":"type(contract super MAHAXVetoGovernor)"}},"id":20461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":3638,"src":"1912:18:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":20462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1912:20:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20459,"id":20463,"nodeType":"Return","src":"1905:27:71"}]},"functionSelector":"02a251a3","id":20465,"implemented":true,"kind":"function","modifiers":[],"name":"votingPeriod","nameLocation":"1776:12:71","nodeType":"FunctionDefinition","overrides":{"id":20456,"nodeType":"OverrideSpecifier","overrides":[{"id":20454,"name":"IGovernor","nodeType":"IdentifierPath","referencedDeclaration":2249,"src":"1836:9:71"},{"id":20455,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"1847:16:71"}],"src":"1827:37:71"},"parameters":{"id":20453,"nodeType":"ParameterList","parameters":[],"src":"1788:2:71"},"returnParameters":{"id":20459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20465,"src":"1882:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20457,"name":"uint256","nodeType":"ElementaryTypeName","src":"1882:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1881:9:71"},"scope":20524,"src":"1767:172:71","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[1024,3648],"body":{"id":20477,"nodeType":"Block","src":"2077:49:71","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20473,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2094:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MAHAXVetoGovernor_$20524_$","typeString":"type(contract super MAHAXVetoGovernor)"}},"id":20474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"2094:23:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":20475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2094:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20472,"id":20476,"nodeType":"Return","src":"2087:32:71"}]},"functionSelector":"b58131b0","id":20478,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nameLocation":"1954:17:71","nodeType":"FunctionDefinition","overrides":{"id":20469,"nodeType":"OverrideSpecifier","overrides":[{"id":20467,"name":"Governor","nodeType":"IdentifierPath","referencedDeclaration":1952,"src":"2019:8:71"},{"id":20468,"name":"GovernorSettings","nodeType":"IdentifierPath","referencedDeclaration":3743,"src":"2029:16:71"}],"src":"2010:36:71"},"parameters":{"id":20466,"nodeType":"ParameterList","parameters":[],"src":"1971:2:71"},"returnParameters":{"id":20472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20478,"src":"2064:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20470,"name":"uint256","nodeType":"ElementaryTypeName","src":"2064:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2063:9:71"},"scope":20524,"src":"1945:181:71","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2110],"body":{"id":20489,"nodeType":"Block","src":"2376:31:71","statements":[{"expression":{"id":20487,"name":"_quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20378,"src":"2393:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20486,"id":20488,"nodeType":"Return","src":"2386:14:71"}]},"documentation":{"id":20479,"nodeType":"StructuredDocumentation","src":"2132:127:71","text":" @dev Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`."},"functionSelector":"f8ce560a","id":20490,"implemented":true,"kind":"function","modifiers":[],"name":"quorum","nameLocation":"2273:6:71","nodeType":"FunctionDefinition","overrides":{"id":20483,"nodeType":"OverrideSpecifier","overrides":[],"src":"2337:8:71"},"parameters":{"id":20482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20481,"mutability":"mutable","name":"blockNumber","nameLocation":"2288:11:71","nodeType":"VariableDeclaration","scope":20490,"src":"2280:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20480,"name":"uint256","nodeType":"ElementaryTypeName","src":"2280:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2279:21:71"},"returnParameters":{"id":20486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20490,"src":"2363:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20484,"name":"uint256","nodeType":"ElementaryTypeName","src":"2363:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2362:9:71"},"scope":20524,"src":"2264:143:71","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":20502,"nodeType":"Block","src":"2669:41:71","statements":[{"expression":{"arguments":[{"id":20499,"name":"newQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20493,"src":"2693:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20498,"name":"_updateQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20523,"src":"2679:13:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":20500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2679:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20501,"nodeType":"ExpressionStatement","src":"2679:24:71"}]},"documentation":{"id":20491,"nodeType":"StructuredDocumentation","src":"2413:178:71","text":" @dev Changes the quorum.\n Emits a {QuorumUpdated} event.\n Requirements:\n - Must be called through a governance proposal."},"functionSelector":"35680dc2","id":20503,"implemented":true,"kind":"function","modifiers":[{"id":20496,"kind":"modifierInvocation","modifierName":{"id":20495,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":760,"src":"2654:14:71"},"nodeType":"ModifierInvocation","src":"2654:14:71"}],"name":"updateQuorum","nameLocation":"2605:12:71","nodeType":"FunctionDefinition","parameters":{"id":20494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20493,"mutability":"mutable","name":"newQuorum","nameLocation":"2626:9:71","nodeType":"VariableDeclaration","scope":20503,"src":"2618:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20492,"name":"uint256","nodeType":"ElementaryTypeName","src":"2618:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2617:19:71"},"returnParameters":{"id":20497,"nodeType":"ParameterList","parameters":[],"src":"2669:0:71"},"scope":20524,"src":"2596:114:71","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":20522,"nodeType":"Block","src":"2878:123:71","statements":[{"assignments":[20510],"declarations":[{"constant":false,"id":20510,"mutability":"mutable","name":"oldQuorum","nameLocation":"2896:9:71","nodeType":"VariableDeclaration","scope":20522,"src":"2888:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20509,"name":"uint256","nodeType":"ElementaryTypeName","src":"2888:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20512,"initialValue":{"id":20511,"name":"_quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20378,"src":"2908:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2888:27:71"},{"expression":{"id":20515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20513,"name":"_quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20378,"src":"2925:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20514,"name":"newQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20506,"src":"2935:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2925:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20516,"nodeType":"ExpressionStatement","src":"2925:19:71"},{"eventCall":{"arguments":[{"id":20518,"name":"oldQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20510,"src":"2973:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20519,"name":"newQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20506,"src":"2984:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20517,"name":"QuorumUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20384,"src":"2959:13:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":20520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2959:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20521,"nodeType":"EmitStatement","src":"2954:40:71"}]},"documentation":{"id":20504,"nodeType":"StructuredDocumentation","src":"2716:98:71","text":" @dev Changes the quorum numerator.\n Emits a {QuorumUpdated} event."},"id":20523,"implemented":true,"kind":"function","modifiers":[],"name":"_updateQuorum","nameLocation":"2828:13:71","nodeType":"FunctionDefinition","parameters":{"id":20507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20506,"mutability":"mutable","name":"newQuorum","nameLocation":"2850:9:71","nodeType":"VariableDeclaration","scope":20523,"src":"2842:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20505,"name":"uint256","nodeType":"ElementaryTypeName","src":"2842:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:19:71"},"returnParameters":{"id":20508,"nodeType":"ParameterList","parameters":[],"src":"2878:0:71"},"scope":20524,"src":"2819:182:71","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":20525,"src":"537:2466:71","usedErrors":[12523]}],"src":"32:2972:71"},"id":71},"contracts/Regsitry.sol":{"ast":{"absolutePath":"contracts/Regsitry.sol","exportedSymbols":{"AccessControl":[319],"IRegistry":[35522],"Registry":[20814]},"id":20815,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":20526,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:72"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":20528,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20815,"sourceUnit":320,"src":"58:79:72","symbolAliases":[{"foreign":{"id":20527,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","id":20530,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20815,"sourceUnit":35523,"src":"138:53:72","symbolAliases":[{"foreign":{"id":20529,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"146:9:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20531,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"214:13:72"},"id":20532,"nodeType":"InheritanceSpecifier","src":"214:13:72"},{"baseName":{"id":20533,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"229:9:72"},"id":20534,"nodeType":"InheritanceSpecifier","src":"229:9:72"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":20814,"linearizedBaseContracts":[20814,35522,319,9837,9849,517,8255],"name":"Registry","nameLocation":"202:8:72","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[35450],"constant":false,"functionSelector":"3de00c36","id":20537,"mutability":"mutable","name":"maha","nameLocation":"269:4:72","nodeType":"VariableDeclaration","overrides":{"id":20536,"nodeType":"OverrideSpecifier","overrides":[],"src":"260:8:72"},"scope":20814,"src":"245:28:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20535,"name":"address","nodeType":"ElementaryTypeName","src":"245:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"baseFunctions":[35460],"constant":false,"functionSelector":"d7b96d4e","id":20540,"mutability":"mutable","name":"locker","nameLocation":"303:6:72","nodeType":"VariableDeclaration","overrides":{"id":20539,"nodeType":"OverrideSpecifier","overrides":[],"src":"294:8:72"},"scope":20814,"src":"279:30:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20538,"name":"address","nodeType":"ElementaryTypeName","src":"279:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"baseFunctions":[35455],"constant":false,"functionSelector":"81ca29a1","id":20543,"mutability":"mutable","name":"gaugeVoter","nameLocation":"339:10:72","nodeType":"VariableDeclaration","overrides":{"id":20542,"nodeType":"OverrideSpecifier","overrides":[],"src":"330:8:72"},"scope":20814,"src":"315:34:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20541,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"baseFunctions":[35475],"constant":false,"functionSelector":"0c340a24","id":20546,"mutability":"mutable","name":"governor","nameLocation":"379:8:72","nodeType":"VariableDeclaration","overrides":{"id":20545,"nodeType":"OverrideSpecifier","overrides":[],"src":"370:8:72"},"scope":20814,"src":"355:32:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20544,"name":"address","nodeType":"ElementaryTypeName","src":"355:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"baseFunctions":[35465],"constant":false,"functionSelector":"5ebaf1db","id":20549,"mutability":"mutable","name":"staker","nameLocation":"417:6:72","nodeType":"VariableDeclaration","overrides":{"id":20548,"nodeType":"OverrideSpecifier","overrides":[],"src":"408:8:72"},"scope":20814,"src":"393:30:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20547,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"baseFunctions":[35470],"constant":false,"functionSelector":"6dee2012","id":20552,"mutability":"mutable","name":"emissionController","nameLocation":"453:18:72","nodeType":"VariableDeclaration","overrides":{"id":20551,"nodeType":"OverrideSpecifier","overrides":[],"src":"444:8:72"},"scope":20814,"src":"429:42:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20550,"name":"address","nodeType":"ElementaryTypeName","src":"429:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"5c975abb","id":20554,"mutability":"mutable","name":"paused","nameLocation":"489:6:72","nodeType":"VariableDeclaration","scope":20814,"src":"477:18:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20553,"name":"bool","nodeType":"ElementaryTypeName","src":"477:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"id":20556,"mutability":"mutable","name":"initialized","nameLocation":"516:11:72","nodeType":"VariableDeclaration","scope":20814,"src":"502:25:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20555,"name":"bool","nodeType":"ElementaryTypeName","src":"502:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":true,"functionSelector":"1bc10541","id":20561,"mutability":"constant","name":"EMERGENCY_STOP_ROLE","nameLocation":"558:19:72","nodeType":"VariableDeclaration","scope":20814,"src":"534:86:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"534:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454d455247454e43595f53544f505f524f4c45","id":20559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"598:21:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_06cefb154850384cb30eee1ae7140a3a258768948e755679865172f7ed51edfa","typeString":"literal_string \"EMERGENCY_STOP_ROLE\""},"value":"EMERGENCY_STOP_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_06cefb154850384cb30eee1ae7140a3a258768948e755679865172f7ed51edfa","typeString":"literal_string \"EMERGENCY_STOP_ROLE\""}],"id":20558,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"588:9:72","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":20560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"588:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":20622,"nodeType":"Block","src":"857:387:72","statements":[{"expression":{"arguments":[{"id":20580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"875:12:72","subExpression":{"id":20579,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20556,"src":"876:11:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c726561647920696e697469616c697a6564","id":20581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:21:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc","typeString":"literal_string \"already initialized\""},"value":"already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc","typeString":"literal_string \"already initialized\""}],"id":20578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"867:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"867:44:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20583,"nodeType":"ExpressionStatement","src":"867:44:72"},{"expression":{"id":20586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20584,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20537,"src":"922:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20585,"name":"_maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20563,"src":"929:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"922:12:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20587,"nodeType":"ExpressionStatement","src":"922:12:72"},{"expression":{"id":20590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20588,"name":"gaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20543,"src":"944:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20589,"name":"_gaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20565,"src":"957:11:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"944:24:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20591,"nodeType":"ExpressionStatement","src":"944:24:72"},{"expression":{"id":20594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20592,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20540,"src":"978:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20593,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20567,"src":"987:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"978:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20595,"nodeType":"ExpressionStatement","src":"978:16:72"},{"expression":{"id":20598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20596,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20546,"src":"1004:8:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20597,"name":"_governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20569,"src":"1015:9:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1004:20:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20599,"nodeType":"ExpressionStatement","src":"1004:20:72"},{"expression":{"id":20602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20600,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"1034:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20601,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20571,"src":"1043:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1034:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20603,"nodeType":"ExpressionStatement","src":"1034:16:72"},{"expression":{"id":20606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20604,"name":"emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20552,"src":"1060:18:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20605,"name":"_emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20573,"src":"1081:19:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1060:40:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20607,"nodeType":"ExpressionStatement","src":"1060:40:72"},{"expression":{"arguments":[{"id":20609,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1122:18:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20610,"name":"_governance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"1142:11:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20608,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"1111:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":20611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1111:43:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20612,"nodeType":"ExpressionStatement","src":"1111:43:72"},{"expression":{"arguments":[{"id":20614,"name":"EMERGENCY_STOP_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20561,"src":"1175:19:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20615,"name":"_governance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"1196:11:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20613,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"1164:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":20616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1164:44:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20617,"nodeType":"ExpressionStatement","src":"1164:44:72"},{"expression":{"id":20620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20618,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20556,"src":"1219:11:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":20619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1233:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1219:18:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20621,"nodeType":"ExpressionStatement","src":"1219:18:72"}]},"functionSelector":"35876476","id":20623,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"636:10:72","nodeType":"FunctionDefinition","parameters":{"id":20576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20563,"mutability":"mutable","name":"_maha","nameLocation":"664:5:72","nodeType":"VariableDeclaration","scope":20623,"src":"656:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20562,"name":"address","nodeType":"ElementaryTypeName","src":"656:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20565,"mutability":"mutable","name":"_gaugeVoter","nameLocation":"687:11:72","nodeType":"VariableDeclaration","scope":20623,"src":"679:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20564,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20567,"mutability":"mutable","name":"_locker","nameLocation":"716:7:72","nodeType":"VariableDeclaration","scope":20623,"src":"708:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20566,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20569,"mutability":"mutable","name":"_governor","nameLocation":"741:9:72","nodeType":"VariableDeclaration","scope":20623,"src":"733:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20568,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20571,"mutability":"mutable","name":"_staker","nameLocation":"768:7:72","nodeType":"VariableDeclaration","scope":20623,"src":"760:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20570,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20573,"mutability":"mutable","name":"_emissionController","nameLocation":"793:19:72","nodeType":"VariableDeclaration","scope":20623,"src":"785:27:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20572,"name":"address","nodeType":"ElementaryTypeName","src":"785:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20575,"mutability":"mutable","name":"_governance","nameLocation":"830:11:72","nodeType":"VariableDeclaration","scope":20623,"src":"822:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20574,"name":"address","nodeType":"ElementaryTypeName","src":"822:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"646:201:72"},"returnParameters":{"id":20577,"nodeType":"ParameterList","parameters":[],"src":"857:0:72"},"scope":20814,"src":"627:617:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20635,"nodeType":"Block","src":"1276:94:72","statements":[{"expression":{"arguments":[{"arguments":[{"id":20627,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1302:18:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":20628,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1322:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1322:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20626,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"1294:7:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":20630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1294:39:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420676f7665726e616e6365","id":20631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1335:16:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180","typeString":"literal_string \"not governance\""},"value":"not governance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180","typeString":"literal_string \"not governance\""}],"id":20625,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1286:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1286:66:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20633,"nodeType":"ExpressionStatement","src":"1286:66:72"},{"id":20634,"nodeType":"PlaceholderStatement","src":"1362:1:72"}]},"id":20636,"name":"onlyGovernance","nameLocation":"1259:14:72","nodeType":"ModifierDefinition","parameters":{"id":20624,"nodeType":"ParameterList","parameters":[],"src":"1273:2:72"},"src":"1250:120:72","virtual":false,"visibility":"internal"},{"body":{"id":20659,"nodeType":"Block","src":"1411:216:72","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20641,"name":"EMERGENCY_STOP_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20561,"src":"1450:19:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":20642,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1471:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1471:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20640,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"1442:7:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":20644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1442:40:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":20646,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1510:18:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":20647,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1530:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1530:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20645,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"1502:7:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":20649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1502:39:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1442:99:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420676f7665726e616e6365206f7220656d657267656e6379","id":20651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1555:29:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_db2d489ced6ed56a09a369d9bcb101d8a1db6cd5a54e6be59f06f473c55ed904","typeString":"literal_string \"not governance or emergency\""},"value":"not governance or emergency"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_db2d489ced6ed56a09a369d9bcb101d8a1db6cd5a54e6be59f06f473c55ed904","typeString":"literal_string \"not governance or emergency\""}],"id":20639,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1421:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1421:173:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20653,"nodeType":"ExpressionStatement","src":"1421:173:72"},{"expression":{"id":20657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20654,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20554,"src":"1604:6:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1613:7:72","subExpression":{"id":20655,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20554,"src":"1614:6:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1604:16:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20658,"nodeType":"ExpressionStatement","src":"1604:16:72"}]},"functionSelector":"72233e69","id":20660,"implemented":true,"kind":"function","modifiers":[],"name":"toggleProtocol","nameLocation":"1385:14:72","nodeType":"FunctionDefinition","parameters":{"id":20637,"nodeType":"ParameterList","parameters":[],"src":"1399:2:72"},"returnParameters":{"id":20638,"nodeType":"ParameterList","parameters":[],"src":"1411:0:72"},"scope":20814,"src":"1376:251:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35491],"body":{"id":20670,"nodeType":"Block","src":"1683:55:72","statements":[{"expression":{"arguments":[{"id":20666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1701:7:72","subExpression":{"id":20665,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20554,"src":"1702:6:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f746f636f6c20697320706175736564","id":20667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1710:20:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cfcb6b9da730cc246682aafeddd8cdd8d228e8c8ae891bb53dc77280239b687","typeString":"literal_string \"protocol is paused\""},"value":"protocol is paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2cfcb6b9da730cc246682aafeddd8cdd8d228e8c8ae891bb53dc77280239b687","typeString":"literal_string \"protocol is paused\""}],"id":20664,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1693:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1693:38:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20669,"nodeType":"ExpressionStatement","src":"1693:38:72"}]},"functionSelector":"f9fa2123","id":20671,"implemented":true,"kind":"function","modifiers":[],"name":"ensureNotPaused","nameLocation":"1642:15:72","nodeType":"FunctionDefinition","overrides":{"id":20662,"nodeType":"OverrideSpecifier","overrides":[],"src":"1674:8:72"},"parameters":{"id":20661,"nodeType":"ParameterList","parameters":[],"src":"1657:2:72"},"returnParameters":{"id":20663,"nodeType":"ParameterList","parameters":[],"src":"1683:0:72"},"scope":20814,"src":"1633:105:72","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[35488],"body":{"id":20692,"nodeType":"Block","src":"1954:68:72","statements":[{"expression":{"components":[{"id":20685,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20537,"src":"1972:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20686,"name":"gaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20543,"src":"1978:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20687,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20540,"src":"1990:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20688,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20546,"src":"1998:8:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20689,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"2008:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":20690,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1971:44:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$","typeString":"tuple(address,address,address,address,address)"}},"functionReturnParameters":20684,"id":20691,"nodeType":"Return","src":"1964:51:72"}]},"functionSelector":"9516a104","id":20693,"implemented":true,"kind":"function","modifiers":[],"name":"getAllAddresses","nameLocation":"1753:15:72","nodeType":"FunctionDefinition","overrides":{"id":20673,"nodeType":"OverrideSpecifier","overrides":[],"src":"1809:8:72"},"parameters":{"id":20672,"nodeType":"ParameterList","parameters":[],"src":"1768:2:72"},"returnParameters":{"id":20684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20675,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20693,"src":"1848:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20674,"name":"address","nodeType":"ElementaryTypeName","src":"1848:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20693,"src":"1869:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20676,"name":"address","nodeType":"ElementaryTypeName","src":"1869:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20693,"src":"1890:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20678,"name":"address","nodeType":"ElementaryTypeName","src":"1890:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20681,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20693,"src":"1911:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20680,"name":"address","nodeType":"ElementaryTypeName","src":"1911:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20693,"src":"1932:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20682,"name":"address","nodeType":"ElementaryTypeName","src":"1932:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1834:115:72"},"scope":20814,"src":"1744:278:72","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[35496],"body":{"id":20712,"nodeType":"Block","src":"2092:78:72","statements":[{"eventCall":{"arguments":[{"expression":{"id":20702,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2119:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2119:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20704,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20537,"src":"2131:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20705,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20695,"src":"2137:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20701,"name":"MahaChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35405,"src":"2107:11:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2107:35:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20707,"nodeType":"EmitStatement","src":"2102:40:72"},{"expression":{"id":20710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20708,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20537,"src":"2152:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20709,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20695,"src":"2159:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2152:11:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20711,"nodeType":"ExpressionStatement","src":"2152:11:72"}]},"functionSelector":"be21c026","id":20713,"implemented":true,"kind":"function","modifiers":[{"id":20699,"kind":"modifierInvocation","modifierName":{"id":20698,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":20636,"src":"2077:14:72"},"nodeType":"ModifierInvocation","src":"2077:14:72"}],"name":"setMAHA","nameLocation":"2037:7:72","nodeType":"FunctionDefinition","overrides":{"id":20697,"nodeType":"OverrideSpecifier","overrides":[],"src":"2068:8:72"},"parameters":{"id":20696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20695,"mutability":"mutable","name":"_new","nameLocation":"2053:4:72","nodeType":"VariableDeclaration","scope":20713,"src":"2045:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20694,"name":"address","nodeType":"ElementaryTypeName","src":"2045:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2044:14:72"},"returnParameters":{"id":20700,"nodeType":"ParameterList","parameters":[],"src":"2092:0:72"},"scope":20814,"src":"2028:142:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35511],"body":{"id":20732,"nodeType":"Block","src":"2241:91:72","statements":[{"eventCall":{"arguments":[{"expression":{"id":20722,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2269:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2269:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20724,"name":"gaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20543,"src":"2281:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20725,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20715,"src":"2293:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20721,"name":"VoterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35413,"src":"2256:12:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2256:42:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20727,"nodeType":"EmitStatement","src":"2251:47:72"},{"expression":{"id":20730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20728,"name":"gaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20543,"src":"2308:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20729,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20715,"src":"2321:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2308:17:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20731,"nodeType":"ExpressionStatement","src":"2308:17:72"}]},"functionSelector":"4bc2a657","id":20733,"implemented":true,"kind":"function","modifiers":[{"id":20719,"kind":"modifierInvocation","modifierName":{"id":20718,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":20636,"src":"2226:14:72"},"nodeType":"ModifierInvocation","src":"2226:14:72"}],"name":"setVoter","nameLocation":"2185:8:72","nodeType":"FunctionDefinition","overrides":{"id":20717,"nodeType":"OverrideSpecifier","overrides":[],"src":"2217:8:72"},"parameters":{"id":20716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20715,"mutability":"mutable","name":"_new","nameLocation":"2202:4:72","nodeType":"VariableDeclaration","scope":20733,"src":"2194:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20714,"name":"address","nodeType":"ElementaryTypeName","src":"2194:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2193:14:72"},"returnParameters":{"id":20720,"nodeType":"ParameterList","parameters":[],"src":"2241:0:72"},"scope":20814,"src":"2176:156:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35516],"body":{"id":20752,"nodeType":"Block","src":"2404:84:72","statements":[{"eventCall":{"arguments":[{"expression":{"id":20742,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2433:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2433:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20744,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20540,"src":"2445:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20745,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20735,"src":"2453:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20741,"name":"LockerChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35421,"src":"2419:13:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2419:39:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20747,"nodeType":"EmitStatement","src":"2414:44:72"},{"expression":{"id":20750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20748,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20540,"src":"2468:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20749,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20735,"src":"2477:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2468:13:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20751,"nodeType":"ExpressionStatement","src":"2468:13:72"}]},"functionSelector":"171060ec","id":20753,"implemented":true,"kind":"function","modifiers":[{"id":20739,"kind":"modifierInvocation","modifierName":{"id":20738,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":20636,"src":"2389:14:72"},"nodeType":"ModifierInvocation","src":"2389:14:72"}],"name":"setLocker","nameLocation":"2347:9:72","nodeType":"FunctionDefinition","overrides":{"id":20737,"nodeType":"OverrideSpecifier","overrides":[],"src":"2380:8:72"},"parameters":{"id":20736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20735,"mutability":"mutable","name":"_new","nameLocation":"2365:4:72","nodeType":"VariableDeclaration","scope":20753,"src":"2357:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20734,"name":"address","nodeType":"ElementaryTypeName","src":"2357:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2356:14:72"},"returnParameters":{"id":20740,"nodeType":"ParameterList","parameters":[],"src":"2404:0:72"},"scope":20814,"src":"2338:150:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35521],"body":{"id":20772,"nodeType":"Block","src":"2562:90:72","statements":[{"eventCall":{"arguments":[{"expression":{"id":20762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2593:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2593:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20764,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20546,"src":"2605:8:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20765,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20755,"src":"2615:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20761,"name":"GovernorChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35429,"src":"2577:15:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2577:43:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20767,"nodeType":"EmitStatement","src":"2572:48:72"},{"expression":{"id":20770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20768,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20546,"src":"2630:8:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20769,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20755,"src":"2641:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2630:15:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20771,"nodeType":"ExpressionStatement","src":"2630:15:72"}]},"functionSelector":"c42cf535","id":20773,"implemented":true,"kind":"function","modifiers":[{"id":20759,"kind":"modifierInvocation","modifierName":{"id":20758,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":20636,"src":"2547:14:72"},"nodeType":"ModifierInvocation","src":"2547:14:72"}],"name":"setGovernor","nameLocation":"2503:11:72","nodeType":"FunctionDefinition","overrides":{"id":20757,"nodeType":"OverrideSpecifier","overrides":[],"src":"2538:8:72"},"parameters":{"id":20756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20755,"mutability":"mutable","name":"_new","nameLocation":"2523:4:72","nodeType":"VariableDeclaration","scope":20773,"src":"2515:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20754,"name":"address","nodeType":"ElementaryTypeName","src":"2515:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2514:14:72"},"returnParameters":{"id":20760,"nodeType":"ParameterList","parameters":[],"src":"2562:0:72"},"scope":20814,"src":"2494:158:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35501],"body":{"id":20792,"nodeType":"Block","src":"2764:120:72","statements":[{"eventCall":{"arguments":[{"expression":{"id":20782,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2805:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2805:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20784,"name":"emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20552,"src":"2817:18:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20785,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20775,"src":"2837:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20781,"name":"EmissionControllerChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35445,"src":"2779:25:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:63:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20787,"nodeType":"EmitStatement","src":"2774:68:72"},{"expression":{"id":20790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20788,"name":"emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20552,"src":"2852:18:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20789,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20775,"src":"2873:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2852:25:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20791,"nodeType":"ExpressionStatement","src":"2852:25:72"}]},"functionSelector":"b641522e","id":20793,"implemented":true,"kind":"function","modifiers":[{"id":20779,"kind":"modifierInvocation","modifierName":{"id":20778,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":20636,"src":"2745:14:72"},"nodeType":"ModifierInvocation","src":"2745:14:72"}],"name":"setEmissionController","nameLocation":"2667:21:72","nodeType":"FunctionDefinition","overrides":{"id":20777,"nodeType":"OverrideSpecifier","overrides":[],"src":"2728:8:72"},"parameters":{"id":20776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20775,"mutability":"mutable","name":"_new","nameLocation":"2697:4:72","nodeType":"VariableDeclaration","scope":20793,"src":"2689:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20774,"name":"address","nodeType":"ElementaryTypeName","src":"2689:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2688:14:72"},"returnParameters":{"id":20780,"nodeType":"ParameterList","parameters":[],"src":"2764:0:72"},"scope":20814,"src":"2658:226:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35506],"body":{"id":20812,"nodeType":"Block","src":"2956:88:72","statements":[{"eventCall":{"arguments":[{"expression":{"id":20802,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2987:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2987:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20804,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20546,"src":"2999:8:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20805,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20795,"src":"3009:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20801,"name":"GovernorChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35429,"src":"2971:15:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":20806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2971:43:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20807,"nodeType":"EmitStatement","src":"2966:48:72"},{"expression":{"id":20810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20808,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"3024:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20809,"name":"_new","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20795,"src":"3033:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3024:13:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20811,"nodeType":"ExpressionStatement","src":"3024:13:72"}]},"functionSelector":"a29a43bb","id":20813,"implemented":true,"kind":"function","modifiers":[{"id":20799,"kind":"modifierInvocation","modifierName":{"id":20798,"name":"onlyGovernance","nodeType":"IdentifierPath","referencedDeclaration":20636,"src":"2941:14:72"},"nodeType":"ModifierInvocation","src":"2941:14:72"}],"name":"setStaker","nameLocation":"2899:9:72","nodeType":"FunctionDefinition","overrides":{"id":20797,"nodeType":"OverrideSpecifier","overrides":[],"src":"2932:8:72"},"parameters":{"id":20796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20795,"mutability":"mutable","name":"_new","nameLocation":"2917:4:72","nodeType":"VariableDeclaration","scope":20813,"src":"2909:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20794,"name":"address","nodeType":"ElementaryTypeName","src":"2909:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2908:14:72"},"returnParameters":{"id":20800,"nodeType":"ParameterList","parameters":[],"src":"2956:0:72"},"scope":20814,"src":"2890:154:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20815,"src":"193:2853:72","usedErrors":[]}],"src":"33:3014:72"},"id":72},"contracts/RenderingContract.sol":{"ast":{"absolutePath":"contracts/RenderingContract.sol","exportedSymbols":{"ITokenURIGenerator":[35664],"RenderingContract":[20921]},"id":20922,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":20816,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:73"},{"absolutePath":"contracts/interfaces/ITokenURIGenerator.sol","file":"./interfaces/ITokenURIGenerator.sol","id":20818,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20922,"sourceUnit":35665,"src":"57:71:73","symbolAliases":[{"foreign":{"id":20817,"name":"ITokenURIGenerator","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:18:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20819,"name":"ITokenURIGenerator","nodeType":"IdentifierPath","referencedDeclaration":35664,"src":"160:18:73"},"id":20820,"nodeType":"InheritanceSpecifier","src":"160:18:73"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":20921,"linearizedBaseContracts":[20921,35664],"name":"RenderingContract","nameLocation":"139:17:73","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[35663],"body":{"id":20841,"nodeType":"Block","src":"403:231:73","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"68747470733a2f2f696d616765732e6d61686170656f706c652e636f6d2f","id":20833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"494:32:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_238e7c570a85fcdb12e3621c9854c40a954398e3863a3dfcfec20148bfa4c22d","typeString":"literal_string \"https://images.mahapeople.com/\""},"value":"https://images.mahapeople.com/"},{"arguments":[{"id":20835,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20823,"src":"557:8:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20834,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20920,"src":"548:8:73","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":20836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"548:18:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6a736f6e","id":20837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"588:7:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_238e7c570a85fcdb12e3621c9854c40a954398e3863a3dfcfec20148bfa4c22d","typeString":"literal_string \"https://images.mahapeople.com/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""}],"expression":{"id":20831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"456:3:73","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"456:16:73","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"456:157:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"432:6:73","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":20829,"name":"string","nodeType":"ElementaryTypeName","src":"432:6:73","typeDescriptions":{}}},"id":20839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"432:195:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":20828,"id":20840,"nodeType":"Return","src":"413:214:73"}]},"documentation":{"id":20821,"nodeType":"StructuredDocumentation","src":"185:94:73","text":"@dev Returns current token URI metadata\n @param _tokenId Token ID to fetch URI for."},"functionSelector":"c87b56dd","id":20842,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"293:8:73","nodeType":"FunctionDefinition","overrides":{"id":20825,"nodeType":"OverrideSpecifier","overrides":[],"src":"358:8:73"},"parameters":{"id":20824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20823,"mutability":"mutable","name":"_tokenId","nameLocation":"310:8:73","nodeType":"VariableDeclaration","scope":20842,"src":"302:16:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20822,"name":"uint256","nodeType":"ElementaryTypeName","src":"302:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"301:18:73"},"returnParameters":{"id":20828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20842,"src":"384:13:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20826,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"383:15:73"},"scope":20921,"src":"284:350:73","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":20919,"nodeType":"Block","src":"711:632:73","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20849,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"913:5:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"922:1:73","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"913:10:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20855,"nodeType":"IfStatement","src":"909:51:73","trueBody":{"id":20854,"nodeType":"Block","src":"925:35:73","statements":[{"expression":{"hexValue":"30","id":20852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"946:3:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":20848,"id":20853,"nodeType":"Return","src":"939:10:73"}]}},{"assignments":[20857],"declarations":[{"constant":false,"id":20857,"mutability":"mutable","name":"temp","nameLocation":"977:4:73","nodeType":"VariableDeclaration","scope":20919,"src":"969:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20856,"name":"uint256","nodeType":"ElementaryTypeName","src":"969:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20859,"initialValue":{"id":20858,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"984:5:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"969:20:73"},{"assignments":[20861],"declarations":[{"constant":false,"id":20861,"mutability":"mutable","name":"digits","nameLocation":"1007:6:73","nodeType":"VariableDeclaration","scope":20919,"src":"999:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20860,"name":"uint256","nodeType":"ElementaryTypeName","src":"999:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20862,"nodeType":"VariableDeclarationStatement","src":"999:14:73"},{"body":{"id":20873,"nodeType":"Block","src":"1041:57:73","statements":[{"expression":{"id":20867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1055:8:73","subExpression":{"id":20866,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20861,"src":"1055:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20868,"nodeType":"ExpressionStatement","src":"1055:8:73"},{"expression":{"id":20871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20869,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20857,"src":"1077:4:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":20870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1085:2:73","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1077:10:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20872,"nodeType":"ExpressionStatement","src":"1077:10:73"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20863,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20857,"src":"1030:4:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":20864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1038:1:73","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1030:9:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20874,"nodeType":"WhileStatement","src":"1023:75:73"},{"assignments":[20876],"declarations":[{"constant":false,"id":20876,"mutability":"mutable","name":"buffer","nameLocation":"1120:6:73","nodeType":"VariableDeclaration","scope":20919,"src":"1107:19:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20875,"name":"bytes","nodeType":"ElementaryTypeName","src":"1107:5:73","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":20881,"initialValue":{"arguments":[{"id":20879,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20861,"src":"1139:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1129:9:73","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":20877,"name":"bytes","nodeType":"ElementaryTypeName","src":"1133:5:73","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":20880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1129:17:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1107:39:73"},{"body":{"id":20912,"nodeType":"Block","src":"1175:131:73","statements":[{"expression":{"id":20887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20885,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20861,"src":"1189:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":20886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1199:1:73","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1189:11:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20888,"nodeType":"ExpressionStatement","src":"1189:11:73"},{"expression":{"id":20906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20889,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20876,"src":"1214:6:73","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":20891,"indexExpression":{"id":20890,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20861,"src":"1221:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1214:14:73","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":20896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1244:2:73","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20899,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"1257:5:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":20900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1265:2:73","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1257:10:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1249:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20897,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:73","typeDescriptions":{}}},"id":20902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1249:19:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1244:24:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1238:5:73","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":20894,"name":"uint8","nodeType":"ElementaryTypeName","src":"1238:5:73","typeDescriptions":{}}},"id":20904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1238:31:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":20893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1231:6:73","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":20892,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1231:6:73","typeDescriptions":{}}},"id":20905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1231:39:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1214:56:73","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":20907,"nodeType":"ExpressionStatement","src":"1214:56:73"},{"expression":{"id":20910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20908,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"1284:5:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":20909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1293:2:73","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1284:11:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20911,"nodeType":"ExpressionStatement","src":"1284:11:73"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20882,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"1163:5:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":20883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1172:1:73","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1163:10:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20913,"nodeType":"WhileStatement","src":"1156:150:73"},{"expression":{"arguments":[{"id":20916,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20876,"src":"1329:6:73","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1322:6:73","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":20914,"name":"string","nodeType":"ElementaryTypeName","src":"1322:6:73","typeDescriptions":{}}},"id":20917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1322:14:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":20848,"id":20918,"nodeType":"Return","src":"1315:21:73"}]},"id":20920,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"649:8:73","nodeType":"FunctionDefinition","parameters":{"id":20845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20844,"mutability":"mutable","name":"value","nameLocation":"666:5:73","nodeType":"VariableDeclaration","scope":20920,"src":"658:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20843,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"657:15:73"},"returnParameters":{"id":20848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20920,"src":"696:13:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20846,"name":"string","nodeType":"ElementaryTypeName","src":"696:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"695:15:73"},"scope":20921,"src":"640:703:73","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":20922,"src":"130:1215:73","usedErrors":[]}],"src":"32:1314:73"},"id":73},"contracts/bribes/BaseV1Bribes.sol":{"ast":{"absolutePath":"contracts/bribes/BaseV1Bribes.sol","exportedSymbols":{"BaseV1Bribes":[22890],"IBribe":[33878],"IERC20":[5767],"IGaugeVoter":[34456],"INFTLocker":[34923],"IRegistry":[35522],"Math":[10353],"ReentrancyGuard":[5062]},"id":22891,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":20923,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:74"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":20925,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22891,"sourceUnit":4739,"src":"57:69:74","symbolAliases":[{"foreign":{"id":20924,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:6:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":20927,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22891,"sourceUnit":10354,"src":"127:65:74","symbolAliases":[{"foreign":{"id":20926,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"135:4:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":20929,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22891,"sourceUnit":5063,"src":"193:85:74","symbolAliases":[{"foreign":{"id":20928,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"201:15:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoter.sol","file":"../interfaces/IGaugeVoter.sol","id":20931,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22891,"sourceUnit":34457,"src":"280:58:74","symbolAliases":[{"foreign":{"id":20930,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"src":"288:11:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../interfaces/IRegistry.sol","id":20933,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22891,"sourceUnit":35523,"src":"339:54:74","symbolAliases":[{"foreign":{"id":20932,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"347:9:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"../interfaces/INFTLocker.sol","id":20935,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22891,"sourceUnit":34924,"src":"394:56:74","symbolAliases":[{"foreign":{"id":20934,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"402:10:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribe.sol","file":"../interfaces/IBribe.sol","id":20937,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22891,"sourceUnit":33879,"src":"451:48:74","symbolAliases":[{"foreign":{"id":20936,"name":"IBribe","nodeType":"Identifier","overloadedDeclarations":[],"src":"459:6:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20938,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"666:15:74"},"id":20939,"nodeType":"InheritanceSpecifier","src":"666:15:74"},{"baseName":{"id":20940,"name":"IBribe","nodeType":"IdentifierPath","referencedDeclaration":33878,"src":"683:6:74"},"id":20941,"nodeType":"InheritanceSpecifier","src":"683:6:74"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":22890,"linearizedBaseContracts":[22890,33878,5062],"name":"BaseV1Bribes","nameLocation":"650:12:74","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[33809],"constant":false,"functionSelector":"7b103999","id":20945,"mutability":"immutable","name":"registry","nameLocation":"732:8:74","nodeType":"VariableDeclaration","overrides":{"id":20944,"nodeType":"OverrideSpecifier","overrides":[],"src":"723:8:74"},"scope":22890,"src":"696:44:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":20943,"nodeType":"UserDefinedTypeName","pathNode":{"id":20942,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"696:9:74"},"referencedDeclaration":35522,"src":"696:9:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":true,"functionSelector":"1be05289","id":20948,"mutability":"constant","name":"DURATION","nameLocation":"771:8:74","nodeType":"VariableDeclaration","scope":22890,"src":"747:41:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20946,"name":"uint256","nodeType":"ElementaryTypeName","src":"747:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":20947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"782:6:74","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"public"},{"constant":true,"functionSelector":"aaf5eb68","id":20953,"mutability":"constant","name":"PRECISION","nameLocation":"854:9:74","nodeType":"VariableDeclaration","scope":22890,"src":"830:42:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20949,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":20952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":20950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"866:2:74","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":20951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"870:2:74","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"866:6:74","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":false,"functionSelector":"221ca18c","id":20957,"mutability":"mutable","name":"rewardRate","nameLocation":"965:10:74","nodeType":"VariableDeclaration","scope":22890,"src":"930:45:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20956,"keyType":{"id":20954,"name":"address","nodeType":"ElementaryTypeName","src":"938:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"930:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20955,"name":"uint256","nodeType":"ElementaryTypeName","src":"949:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"da09d19d","id":20961,"mutability":"mutable","name":"periodFinish","nameLocation":"1016:12:74","nodeType":"VariableDeclaration","scope":22890,"src":"981:47:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20960,"keyType":{"id":20958,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"981:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1000:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"2ce9aead","id":20965,"mutability":"mutable","name":"lastUpdateTime","nameLocation":"1069:14:74","nodeType":"VariableDeclaration","scope":22890,"src":"1034:49:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20964,"keyType":{"id":20962,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1034:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20963,"name":"uint256","nodeType":"ElementaryTypeName","src":"1053:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"9ce43f90","id":20969,"mutability":"mutable","name":"rewardPerTokenStored","nameLocation":"1124:20:74","nodeType":"VariableDeclaration","scope":22890,"src":"1089:55:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20968,"keyType":{"id":20966,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1089:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20967,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"f25e55a5","id":20975,"mutability":"mutable","name":"lastEarn","nameLocation":"1206:8:74","nodeType":"VariableDeclaration","scope":22890,"src":"1151:63:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":20974,"keyType":{"id":20970,"name":"address","nodeType":"ElementaryTypeName","src":"1159:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1151:47:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":20973,"keyType":{"id":20971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1178:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1170:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":20972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1189:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"3b881999","id":20981,"mutability":"mutable","name":"userRewardPerTokenStored","nameLocation":"1283:24:74","nodeType":"VariableDeclaration","scope":22890,"src":"1220:87:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":20980,"keyType":{"id":20976,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1220:47:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":20979,"keyType":{"id":20977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1247:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1239:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":20978,"name":"uint256","nodeType":"ElementaryTypeName","src":"1258:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"f301af42","id":20984,"mutability":"mutable","name":"rewards","nameLocation":"1331:7:74","nodeType":"VariableDeclaration","scope":22890,"src":"1314:24:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":20982,"name":"address","nodeType":"ElementaryTypeName","src":"1314:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20983,"nodeType":"ArrayTypeName","src":"1314:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"constant":false,"functionSelector":"4d5ce038","id":20988,"mutability":"mutable","name":"isReward","nameLocation":"1376:8:74","nodeType":"VariableDeclaration","scope":22890,"src":"1344:40:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":20987,"keyType":{"id":20985,"name":"address","nodeType":"ElementaryTypeName","src":"1352:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1344:24:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":20986,"name":"bool","nodeType":"ElementaryTypeName","src":"1363:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":20990,"mutability":"mutable","name":"totalSupply","nameLocation":"1406:11:74","nodeType":"VariableDeclaration","scope":22890,"src":"1391:26:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20989,"name":"uint256","nodeType":"ElementaryTypeName","src":"1391:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"9cc7f708","id":20994,"mutability":"mutable","name":"balanceOf","nameLocation":"1458:9:74","nodeType":"VariableDeclaration","scope":22890,"src":"1423:44:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":20993,"keyType":{"id":20991,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1423:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":20992,"name":"uint256","nodeType":"ElementaryTypeName","src":"1442:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"canonicalName":"BaseV1Bribes.Checkpoint","id":20999,"members":[{"constant":false,"id":20996,"mutability":"mutable","name":"timestamp","nameLocation":"1559:9:74","nodeType":"VariableDeclaration","scope":20999,"src":"1551:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20995,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20998,"mutability":"mutable","name":"balanceOf","nameLocation":"1586:9:74","nodeType":"VariableDeclaration","scope":20999,"src":"1578:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20997,"name":"uint256","nodeType":"ElementaryTypeName","src":"1578:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"1530:10:74","nodeType":"StructDefinition","scope":22890,"src":"1523:79:74","visibility":"public"},{"canonicalName":"BaseV1Bribes.RewardPerTokenCheckpoint","id":21004,"members":[{"constant":false,"id":21001,"mutability":"mutable","name":"timestamp","nameLocation":"1711:9:74","nodeType":"VariableDeclaration","scope":21004,"src":"1703:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21000,"name":"uint256","nodeType":"ElementaryTypeName","src":"1703:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21003,"mutability":"mutable","name":"rewardPerToken","nameLocation":"1738:14:74","nodeType":"VariableDeclaration","scope":21004,"src":"1730:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardPerTokenCheckpoint","nameLocation":"1668:24:74","nodeType":"StructDefinition","scope":22890,"src":"1661:98:74","visibility":"public"},{"canonicalName":"BaseV1Bribes.SupplyCheckpoint","id":21009,"members":[{"constant":false,"id":21006,"mutability":"mutable","name":"timestamp","nameLocation":"1855:9:74","nodeType":"VariableDeclaration","scope":21009,"src":"1847:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21005,"name":"uint256","nodeType":"ElementaryTypeName","src":"1847:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21008,"mutability":"mutable","name":"supply","nameLocation":"1882:6:74","nodeType":"VariableDeclaration","scope":21009,"src":"1874:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1874:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SupplyCheckpoint","nameLocation":"1820:16:74","nodeType":"StructDefinition","scope":22890,"src":"1813:82:74","visibility":"public"},{"constant":false,"documentation":{"id":21010,"nodeType":"StructuredDocumentation","src":"1901:70:74","text":"@notice A record of balance checkpoints for each account, by index"},"functionSelector":"49dcc204","id":21017,"mutability":"mutable","name":"checkpoints","nameLocation":"2034:11:74","nodeType":"VariableDeclaration","scope":22890,"src":"1976:69:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint))"},"typeName":{"id":21016,"keyType":{"id":21011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1984:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1976:50:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint))"},"valueType":{"id":21015,"keyType":{"id":21012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2003:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1995:30:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint)"},"valueType":{"id":21014,"nodeType":"UserDefinedTypeName","pathNode":{"id":21013,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":20999,"src":"2014:10:74"},"referencedDeclaration":20999,"src":"2014:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage_ptr","typeString":"struct BaseV1Bribes.Checkpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":21018,"nodeType":"StructuredDocumentation","src":"2052:54:74","text":"@notice The number of checkpoints for each account"},"functionSelector":"50589793","id":21022,"mutability":"mutable","name":"numCheckpoints","nameLocation":"2146:14:74","nodeType":"VariableDeclaration","scope":22890,"src":"2111:49:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":21021,"keyType":{"id":21019,"name":"uint256","nodeType":"ElementaryTypeName","src":"2119:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2111:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":21020,"name":"uint256","nodeType":"ElementaryTypeName","src":"2130:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":21023,"nodeType":"StructuredDocumentation","src":"2167:68:74","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"f7412baf","id":21028,"mutability":"mutable","name":"supplyCheckpoints","nameLocation":"2284:17:74","nodeType":"VariableDeclaration","scope":22890,"src":"2240:61:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint)"},"typeName":{"id":21027,"keyType":{"id":21024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2240:36:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint)"},"valueType":{"id":21026,"nodeType":"UserDefinedTypeName","pathNode":{"id":21025,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21009,"src":"2259:16:74"},"referencedDeclaration":21009,"src":"2259:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"}}},"visibility":"public"},{"constant":false,"documentation":{"id":21029,"nodeType":"StructuredDocumentation","src":"2308:37:74","text":"@notice The number of checkpoints"},"functionSelector":"e8111a12","id":21031,"mutability":"mutable","name":"supplyNumCheckpoints","nameLocation":"2365:20:74","nodeType":"VariableDeclaration","scope":22890,"src":"2350:35:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21030,"name":"uint256","nodeType":"ElementaryTypeName","src":"2350:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":21032,"nodeType":"StructuredDocumentation","src":"2392:68:74","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"01316ddf","id":21039,"mutability":"mutable","name":"rewardPerTokenCheckpoints","nameLocation":"2545:25:74","nodeType":"VariableDeclaration","scope":22890,"src":"2465:105:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint))"},"typeName":{"id":21038,"keyType":{"id":21033,"name":"address","nodeType":"ElementaryTypeName","src":"2473:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2465:64:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint))"},"valueType":{"id":21037,"keyType":{"id":21034,"name":"uint256","nodeType":"ElementaryTypeName","src":"2492:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2484:44:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint)"},"valueType":{"id":21036,"nodeType":"UserDefinedTypeName","pathNode":{"id":21035,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21004,"src":"2503:24:74"},"referencedDeclaration":21004,"src":"2503:24:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":21040,"nodeType":"StructuredDocumentation","src":"2577:52:74","text":"@notice The number of checkpoints for each token"},"functionSelector":"aa479652","id":21044,"mutability":"mutable","name":"rewardPerTokenNumCheckpoints","nameLocation":"2669:28:74","nodeType":"VariableDeclaration","scope":22890,"src":"2634:63:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":21043,"keyType":{"id":21041,"name":"address","nodeType":"ElementaryTypeName","src":"2642:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2634:27:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":21042,"name":"uint256","nodeType":"ElementaryTypeName","src":"2653:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":21055,"nodeType":"Block","src":"2735:48:74","statements":[{"expression":{"id":21053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21049,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"2745:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21051,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21046,"src":"2766:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21050,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"2756:9:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":21052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2756:20:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"2745:31:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":21054,"nodeType":"ExpressionStatement","src":"2745:31:74"}]},"id":21056,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21046,"mutability":"mutable","name":"_registry","nameLocation":"2724:9:74","nodeType":"VariableDeclaration","scope":21056,"src":"2716:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21045,"name":"address","nodeType":"ElementaryTypeName","src":"2716:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2715:19:74"},"returnParameters":{"id":21048,"nodeType":"ParameterList","parameters":[],"src":"2735:0:74"},"scope":22890,"src":"2704:79:74","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21170,"nodeType":"Block","src":"3297:950:74","statements":[{"assignments":[21067],"declarations":[{"constant":false,"id":21067,"mutability":"mutable","name":"nCheckpoints","nameLocation":"3315:12:74","nodeType":"VariableDeclaration","scope":21170,"src":"3307:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21066,"name":"uint256","nodeType":"ElementaryTypeName","src":"3307:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21071,"initialValue":{"baseExpression":{"id":21068,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21022,"src":"3330:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21070,"indexExpression":{"id":21069,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21059,"src":"3345:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3330:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3307:46:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21072,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21067,"src":"3367:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3383:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3367:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21078,"nodeType":"IfStatement","src":"3363:56:74","trueBody":{"id":21077,"nodeType":"Block","src":"3386:33:74","statements":[{"expression":{"hexValue":"30","id":21075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3407:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":21065,"id":21076,"nodeType":"Return","src":"3400:8:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":21079,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"3476:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":21081,"indexExpression":{"id":21080,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21059,"src":"3488:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3476:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":21085,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21082,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21067,"src":"3497:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3512:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3497:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3476:38:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"id":21086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"3476:48:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":21087,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"3528:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3476:61:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21095,"nodeType":"IfStatement","src":"3472:117:74","trueBody":{"id":21094,"nodeType":"Block","src":"3539:50:74","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21089,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21067,"src":"3561:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3576:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3561:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3560:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21065,"id":21093,"nodeType":"Return","src":"3553:25:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":21096,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"3647:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":21098,"indexExpression":{"id":21097,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21059,"src":"3659:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3647:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":21100,"indexExpression":{"hexValue":"30","id":21099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3668:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3647:23:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"id":21101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"3647:33:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":21102,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"3683:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3647:45:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21107,"nodeType":"IfStatement","src":"3643:84:74","trueBody":{"id":21106,"nodeType":"Block","src":"3694:33:74","statements":[{"expression":{"hexValue":"30","id":21104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3715:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":21065,"id":21105,"nodeType":"Return","src":"3708:8:74"}]}},{"assignments":[21109],"declarations":[{"constant":false,"id":21109,"mutability":"mutable","name":"lower","nameLocation":"3745:5:74","nodeType":"VariableDeclaration","scope":21170,"src":"3737:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21108,"name":"uint256","nodeType":"ElementaryTypeName","src":"3737:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21111,"initialValue":{"hexValue":"30","id":21110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3737:17:74"},{"assignments":[21113],"declarations":[{"constant":false,"id":21113,"mutability":"mutable","name":"upper","nameLocation":"3772:5:74","nodeType":"VariableDeclaration","scope":21170,"src":"3764:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21112,"name":"uint256","nodeType":"ElementaryTypeName","src":"3764:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21117,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21114,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21067,"src":"3780:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3795:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3780:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3764:32:74"},{"body":{"id":21166,"nodeType":"Block","src":"3828:391:74","statements":[{"assignments":[21122],"declarations":[{"constant":false,"id":21122,"mutability":"mutable","name":"center","nameLocation":"3850:6:74","nodeType":"VariableDeclaration","scope":21166,"src":"3842:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21121,"name":"uint256","nodeType":"ElementaryTypeName","src":"3842:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21131,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21123,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21113,"src":"3859:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21124,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21113,"src":"3868:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":21125,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3876:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3868:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21127,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3867:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":21128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3885:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3867:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3859:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3842:44:74"},{"assignments":[21134],"declarations":[{"constant":false,"id":21134,"mutability":"mutable","name":"cp","nameLocation":"3945:2:74","nodeType":"VariableDeclaration","scope":21166,"src":"3927:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint"},"typeName":{"id":21133,"nodeType":"UserDefinedTypeName","pathNode":{"id":21132,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":20999,"src":"3927:10:74"},"referencedDeclaration":20999,"src":"3927:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage_ptr","typeString":"struct BaseV1Bribes.Checkpoint"}},"visibility":"internal"}],"id":21140,"initialValue":{"baseExpression":{"baseExpression":{"id":21135,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"3950:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":21137,"indexExpression":{"id":21136,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21059,"src":"3962:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3950:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":21139,"indexExpression":{"id":21138,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21122,"src":"3971:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3950:28:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3927:51:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21141,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21134,"src":"3996:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"id":21142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"3996:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21143,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"4012:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3996:25:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21148,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21134,"src":"4079:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"id":21149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"4079:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21150,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"4094:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4079:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21163,"nodeType":"Block","src":"4158:51:74","statements":[{"expression":{"id":21161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21157,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21113,"src":"4176:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21158,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21122,"src":"4184:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4193:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4184:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4176:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21162,"nodeType":"ExpressionStatement","src":"4176:18:74"}]},"id":21164,"nodeType":"IfStatement","src":"4075:134:74","trueBody":{"id":21156,"nodeType":"Block","src":"4105:47:74","statements":[{"expression":{"id":21154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21152,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"4123:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21153,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21122,"src":"4131:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4123:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21155,"nodeType":"ExpressionStatement","src":"4123:14:74"}]}},"id":21165,"nodeType":"IfStatement","src":"3992:217:74","trueBody":{"id":21147,"nodeType":"Block","src":"4023:46:74","statements":[{"expression":{"id":21145,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21122,"src":"4048:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21065,"id":21146,"nodeType":"Return","src":"4041:13:74"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21118,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21113,"src":"3813:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":21119,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3821:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3813:13:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21167,"nodeType":"WhileStatement","src":"3806:413:74"},{"expression":{"id":21168,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"4235:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21065,"id":21169,"nodeType":"Return","src":"4228:12:74"}]},"documentation":{"id":21057,"nodeType":"StructuredDocumentation","src":"2789:379:74","text":" @notice Determine the prior balance for an account as of a block number\n @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n @param tokenId The token of the NFT to check\n @param timestamp The timestamp to get the balance at\n @return The balance the account had as of the given block"},"functionSelector":"a28d4c9c","id":21171,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorBalanceIndex","nameLocation":"3182:20:74","nodeType":"FunctionDefinition","parameters":{"id":21062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21059,"mutability":"mutable","name":"tokenId","nameLocation":"3211:7:74","nodeType":"VariableDeclaration","scope":21171,"src":"3203:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21058,"name":"uint256","nodeType":"ElementaryTypeName","src":"3203:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21061,"mutability":"mutable","name":"timestamp","nameLocation":"3228:9:74","nodeType":"VariableDeclaration","scope":21171,"src":"3220:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21060,"name":"uint256","nodeType":"ElementaryTypeName","src":"3220:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3202:36:74"},"returnParameters":{"id":21065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21171,"src":"3284:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3284:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3283:9:74"},"scope":22890,"src":"3173:1074:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21274,"nodeType":"Block","src":"4359:944:74","statements":[{"assignments":[21179],"declarations":[{"constant":false,"id":21179,"mutability":"mutable","name":"nCheckpoints","nameLocation":"4377:12:74","nodeType":"VariableDeclaration","scope":21274,"src":"4369:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21178,"name":"uint256","nodeType":"ElementaryTypeName","src":"4369:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21181,"initialValue":{"id":21180,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"4392:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4369:43:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21182,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21179,"src":"4426:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4442:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4426:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21188,"nodeType":"IfStatement","src":"4422:56:74","trueBody":{"id":21187,"nodeType":"Block","src":"4445:33:74","statements":[{"expression":{"hexValue":"30","id":21185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4466:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":21177,"id":21186,"nodeType":"Return","src":"4459:8:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":21189,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"4535:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":21193,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21190,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21179,"src":"4553:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4568:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4553:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4535:35:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"id":21194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"4535:45:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":21195,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"4584:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4535:58:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21203,"nodeType":"IfStatement","src":"4531:114:74","trueBody":{"id":21202,"nodeType":"Block","src":"4595:50:74","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21197,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21179,"src":"4617:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4632:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4617:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21200,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4616:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21177,"id":21201,"nodeType":"Return","src":"4609:25:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":21204,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"4703:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":21206,"indexExpression":{"hexValue":"30","id":21205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4721:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4703:20:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"id":21207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"4703:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":21208,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"4736:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4703:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21213,"nodeType":"IfStatement","src":"4699:81:74","trueBody":{"id":21212,"nodeType":"Block","src":"4747:33:74","statements":[{"expression":{"hexValue":"30","id":21210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4768:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":21177,"id":21211,"nodeType":"Return","src":"4761:8:74"}]}},{"assignments":[21215],"declarations":[{"constant":false,"id":21215,"mutability":"mutable","name":"lower","nameLocation":"4798:5:74","nodeType":"VariableDeclaration","scope":21274,"src":"4790:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21214,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21217,"initialValue":{"hexValue":"30","id":21216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4806:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4790:17:74"},{"assignments":[21219],"declarations":[{"constant":false,"id":21219,"mutability":"mutable","name":"upper","nameLocation":"4825:5:74","nodeType":"VariableDeclaration","scope":21274,"src":"4817:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21218,"name":"uint256","nodeType":"ElementaryTypeName","src":"4817:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21223,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21220,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21179,"src":"4833:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4848:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4833:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4817:32:74"},{"body":{"id":21270,"nodeType":"Block","src":"4881:394:74","statements":[{"assignments":[21228],"declarations":[{"constant":false,"id":21228,"mutability":"mutable","name":"center","nameLocation":"4903:6:74","nodeType":"VariableDeclaration","scope":21270,"src":"4895:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21227,"name":"uint256","nodeType":"ElementaryTypeName","src":"4895:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21237,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21229,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21219,"src":"4912:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21230,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21219,"src":"4921:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":21231,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"4929:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4921:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21233,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4920:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":21234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4938:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4920:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4912:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4895:44:74"},{"assignments":[21240],"declarations":[{"constant":false,"id":21240,"mutability":"mutable","name":"cp","nameLocation":"5004:2:74","nodeType":"VariableDeclaration","scope":21270,"src":"4980:26:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"},"typeName":{"id":21239,"nodeType":"UserDefinedTypeName","pathNode":{"id":21238,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21009,"src":"4980:16:74"},"referencedDeclaration":21009,"src":"4980:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":21244,"initialValue":{"baseExpression":{"id":21241,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"5009:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":21243,"indexExpression":{"id":21242,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21228,"src":"5027:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5009:25:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4980:54:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21245,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21240,"src":"5052:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":21246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"5052:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21247,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"5068:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5052:25:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21252,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21240,"src":"5135:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":21253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"5135:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21254,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"5150:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5135:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21267,"nodeType":"Block","src":"5214:51:74","statements":[{"expression":{"id":21265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21261,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21219,"src":"5232:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21262,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21228,"src":"5240:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5249:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5240:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5232:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21266,"nodeType":"ExpressionStatement","src":"5232:18:74"}]},"id":21268,"nodeType":"IfStatement","src":"5131:134:74","trueBody":{"id":21260,"nodeType":"Block","src":"5161:47:74","statements":[{"expression":{"id":21258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21256,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"5179:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21257,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21228,"src":"5187:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5179:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21259,"nodeType":"ExpressionStatement","src":"5179:14:74"}]}},"id":21269,"nodeType":"IfStatement","src":"5048:217:74","trueBody":{"id":21251,"nodeType":"Block","src":"5079:46:74","statements":[{"expression":{"id":21249,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21228,"src":"5104:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21177,"id":21250,"nodeType":"Return","src":"5097:13:74"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21224,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21219,"src":"4866:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":21225,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"4874:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4866:13:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21271,"nodeType":"WhileStatement","src":"4859:416:74"},{"expression":{"id":21272,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"5291:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21177,"id":21273,"nodeType":"Return","src":"5284:12:74"}]},"functionSelector":"76f4be36","id":21275,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorSupplyIndex","nameLocation":"4262:19:74","nodeType":"FunctionDefinition","parameters":{"id":21174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21173,"mutability":"mutable","name":"timestamp","nameLocation":"4290:9:74","nodeType":"VariableDeclaration","scope":21275,"src":"4282:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21172,"name":"uint256","nodeType":"ElementaryTypeName","src":"4282:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4281:19:74"},"returnParameters":{"id":21177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21275,"src":"4346:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21175,"name":"uint256","nodeType":"ElementaryTypeName","src":"4346:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4345:9:74"},"scope":22890,"src":"4253:1050:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21423,"nodeType":"Block","src":"5442:1427:74","statements":[{"assignments":[21287],"declarations":[{"constant":false,"id":21287,"mutability":"mutable","name":"nCheckpoints","nameLocation":"5460:12:74","nodeType":"VariableDeclaration","scope":21423,"src":"5452:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21286,"name":"uint256","nodeType":"ElementaryTypeName","src":"5452:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21291,"initialValue":{"baseExpression":{"id":21288,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21044,"src":"5475:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21290,"indexExpression":{"id":21289,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"5504:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5475:35:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5452:58:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21292,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21287,"src":"5524:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5540:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5524:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21300,"nodeType":"IfStatement","src":"5520:61:74","trueBody":{"id":21299,"nodeType":"Block","src":"5543:38:74","statements":[{"expression":{"components":[{"hexValue":"30","id":21295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5565:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":21296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5568:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":21297,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5564:6:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":21285,"id":21298,"nodeType":"Return","src":"5557:13:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":21301,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"5651:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21303,"indexExpression":{"id":21302,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"5677:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5651:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21307,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21304,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21287,"src":"5684:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5699:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5684:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5651:50:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"5651:60:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":21309,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21279,"src":"5727:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5651:85:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21330,"nodeType":"IfStatement","src":"5634:341:74","trueBody":{"id":21329,"nodeType":"Block","src":"5747:228:74","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":21311,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"5786:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21313,"indexExpression":{"id":21312,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"5812:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5786:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21317,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21314,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21287,"src":"5819:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5819:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5786:50:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":21003,"src":"5786:86:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":21319,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"5890:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21321,"indexExpression":{"id":21320,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"5916:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5890:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21325,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21322,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21287,"src":"5923:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5938:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5923:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5890:50:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"5890:60:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21327,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5768:196:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":21285,"id":21328,"nodeType":"Return","src":"5761:203:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":21331,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"6033:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21333,"indexExpression":{"id":21332,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"6059:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6033:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21335,"indexExpression":{"hexValue":"30","id":21334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6066:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6033:35:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"6033:45:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":21337,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21279,"src":"6081:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6033:57:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21344,"nodeType":"IfStatement","src":"6029:101:74","trueBody":{"id":21343,"nodeType":"Block","src":"6092:38:74","statements":[{"expression":{"components":[{"hexValue":"30","id":21339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6114:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":21340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6117:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":21341,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6113:6:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":21285,"id":21342,"nodeType":"Return","src":"6106:13:74"}]}},{"assignments":[21346],"declarations":[{"constant":false,"id":21346,"mutability":"mutable","name":"lower","nameLocation":"6148:5:74","nodeType":"VariableDeclaration","scope":21423,"src":"6140:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21345,"name":"uint256","nodeType":"ElementaryTypeName","src":"6140:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21348,"initialValue":{"hexValue":"30","id":21347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6156:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6140:17:74"},{"assignments":[21350],"declarations":[{"constant":false,"id":21350,"mutability":"mutable","name":"upper","nameLocation":"6175:5:74","nodeType":"VariableDeclaration","scope":21423,"src":"6167:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21349,"name":"uint256","nodeType":"ElementaryTypeName","src":"6167:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21354,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21351,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21287,"src":"6183:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6198:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6183:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6167:32:74"},{"body":{"id":21407,"nodeType":"Block","src":"6231:474:74","statements":[{"assignments":[21359],"declarations":[{"constant":false,"id":21359,"mutability":"mutable","name":"center","nameLocation":"6253:6:74","nodeType":"VariableDeclaration","scope":21407,"src":"6245:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21358,"name":"uint256","nodeType":"ElementaryTypeName","src":"6245:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21368,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21360,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21350,"src":"6262:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21361,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21350,"src":"6271:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":21362,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"6279:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6271:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6270:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":21365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6288:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6270:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6262:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6245:44:74"},{"assignments":[21371],"declarations":[{"constant":false,"id":21371,"mutability":"mutable","name":"cp","nameLocation":"6362:2:74","nodeType":"VariableDeclaration","scope":21407,"src":"6330:34:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_memory_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint"},"typeName":{"id":21370,"nodeType":"UserDefinedTypeName","pathNode":{"id":21369,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21004,"src":"6330:24:74"},"referencedDeclaration":21004,"src":"6330:24:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint"}},"visibility":"internal"}],"id":21377,"initialValue":{"baseExpression":{"baseExpression":{"id":21372,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"6367:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21374,"indexExpression":{"id":21373,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"6410:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6367:62:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21376,"indexExpression":{"id":21375,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21359,"src":"6430:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6367:70:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6330:107:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21378,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21371,"src":"6455:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_memory_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint memory"}},"id":21379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"6455:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21380,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21279,"src":"6471:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6455:25:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21389,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21371,"src":"6565:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_memory_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint memory"}},"id":21390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"6565:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21391,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21279,"src":"6580:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6565:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21404,"nodeType":"Block","src":"6644:51:74","statements":[{"expression":{"id":21402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21398,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21350,"src":"6662:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21399,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21359,"src":"6670:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6679:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6670:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6662:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21403,"nodeType":"ExpressionStatement","src":"6662:18:74"}]},"id":21405,"nodeType":"IfStatement","src":"6561:134:74","trueBody":{"id":21397,"nodeType":"Block","src":"6591:47:74","statements":[{"expression":{"id":21395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21393,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"6609:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21394,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21359,"src":"6617:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6609:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21396,"nodeType":"ExpressionStatement","src":"6609:14:74"}]}},"id":21406,"nodeType":"IfStatement","src":"6451:244:74","trueBody":{"id":21388,"nodeType":"Block","src":"6482:73:74","statements":[{"expression":{"components":[{"expression":{"id":21382,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21371,"src":"6508:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_memory_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint memory"}},"id":21383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":21003,"src":"6508:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":21384,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21371,"src":"6527:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_memory_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint memory"}},"id":21385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"6527:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6507:33:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":21285,"id":21387,"nodeType":"Return","src":"6500:40:74"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21355,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21350,"src":"6216:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":21356,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"6224:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6216:13:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21408,"nodeType":"WhileStatement","src":"6209:496:74"},{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":21409,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"6735:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21411,"indexExpression":{"id":21410,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"6761:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6735:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21413,"indexExpression":{"id":21412,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"6768:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6735:39:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":21003,"src":"6735:54:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":21415,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"6803:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21417,"indexExpression":{"id":21416,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"6829:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6803:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21419,"indexExpression":{"id":21418,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"6836:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6803:39:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"6803:49:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6721:141:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":21285,"id":21422,"nodeType":"Return","src":"6714:148:74"}]},"functionSelector":"fd314098","id":21424,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorRewardPerToken","nameLocation":"5318:22:74","nodeType":"FunctionDefinition","parameters":{"id":21280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21277,"mutability":"mutable","name":"token","nameLocation":"5349:5:74","nodeType":"VariableDeclaration","scope":21424,"src":"5341:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21276,"name":"address","nodeType":"ElementaryTypeName","src":"5341:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21279,"mutability":"mutable","name":"timestamp","nameLocation":"5364:9:74","nodeType":"VariableDeclaration","scope":21424,"src":"5356:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21278,"name":"uint256","nodeType":"ElementaryTypeName","src":"5356:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5340:34:74"},"returnParameters":{"id":21285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21424,"src":"5420:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21281,"name":"uint256","nodeType":"ElementaryTypeName","src":"5420:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21424,"src":"5429:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21283,"name":"uint256","nodeType":"ElementaryTypeName","src":"5429:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5419:18:74"},"scope":22890,"src":"5309:1560:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21489,"nodeType":"Block","src":"6944:531:74","statements":[{"assignments":[21432],"declarations":[{"constant":false,"id":21432,"mutability":"mutable","name":"_timestamp","nameLocation":"6962:10:74","nodeType":"VariableDeclaration","scope":21489,"src":"6954:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21431,"name":"uint256","nodeType":"ElementaryTypeName","src":"6954:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21435,"initialValue":{"expression":{"id":21433,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6975:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6975:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6954:36:74"},{"assignments":[21437],"declarations":[{"constant":false,"id":21437,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"7008:13:74","nodeType":"VariableDeclaration","scope":21489,"src":"7000:21:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21436,"name":"uint256","nodeType":"ElementaryTypeName","src":"7000:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21441,"initialValue":{"baseExpression":{"id":21438,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21022,"src":"7024:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21440,"indexExpression":{"id":21439,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21426,"src":"7039:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7024:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7000:47:74"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21442,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"7075:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7091:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7075:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":21445,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"7108:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":21447,"indexExpression":{"id":21446,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21426,"src":"7120:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7108:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":21451,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21448,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"7129:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7145:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7129:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7108:39:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"id":21452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"7108:49:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21453,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21432,"src":"7161:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7108:63:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7075:96:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21487,"nodeType":"Block","src":"7272:197:74","statements":[{"expression":{"id":21477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21468,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"7286:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":21471,"indexExpression":{"id":21469,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21426,"src":"7298:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7286:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":21472,"indexExpression":{"id":21470,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"7307:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7286:35:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21474,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21432,"src":"7352:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21475,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21428,"src":"7380:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21473,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20999,"src":"7324:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$20999_storage_ptr_$","typeString":"type(struct BaseV1Bribes.Checkpoint storage pointer)"}},"id":21476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7324:77:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"src":"7286:115:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"id":21478,"nodeType":"ExpressionStatement","src":"7286:115:74"},{"expression":{"id":21485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21479,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21022,"src":"7415:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21481,"indexExpression":{"id":21480,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21426,"src":"7430:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7415:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21482,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"7441:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":21483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7457:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7441:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7415:43:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21486,"nodeType":"ExpressionStatement","src":"7415:43:74"}]},"id":21488,"nodeType":"IfStatement","src":"7058:411:74","trueBody":{"id":21467,"nodeType":"Block","src":"7182:84:74","statements":[{"expression":{"id":21465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":21456,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"7196:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":21461,"indexExpression":{"id":21457,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21426,"src":"7208:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7196:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":21462,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21458,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"7217:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7233:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7217:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7196:39:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"id":21463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20998,"src":"7196:49:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21464,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21428,"src":"7248:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7196:59:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21466,"nodeType":"ExpressionStatement","src":"7196:59:74"}]}}]},"id":21490,"implemented":true,"kind":"function","modifiers":[],"name":"_writeCheckpoint","nameLocation":"6884:16:74","nodeType":"FunctionDefinition","parameters":{"id":21429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21426,"mutability":"mutable","name":"tokenId","nameLocation":"6909:7:74","nodeType":"VariableDeclaration","scope":21490,"src":"6901:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21425,"name":"uint256","nodeType":"ElementaryTypeName","src":"6901:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21428,"mutability":"mutable","name":"balance","nameLocation":"6926:7:74","nodeType":"VariableDeclaration","scope":21490,"src":"6918:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21427,"name":"uint256","nodeType":"ElementaryTypeName","src":"6918:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6900:34:74"},"returnParameters":{"id":21430,"nodeType":"ParameterList","parameters":[],"src":"6944:0:74"},"scope":22890,"src":"6875:600:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21552,"nodeType":"Block","src":"7610:573:74","statements":[{"assignments":[21500],"declarations":[{"constant":false,"id":21500,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"7628:13:74","nodeType":"VariableDeclaration","scope":21552,"src":"7620:21:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21499,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21504,"initialValue":{"baseExpression":{"id":21501,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21044,"src":"7644:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21503,"indexExpression":{"id":21502,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21492,"src":"7673:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7644:35:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7620:59:74"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21505,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21500,"src":"7707:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7723:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7707:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":21508,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"7740:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21510,"indexExpression":{"id":21509,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21492,"src":"7766:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7740:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21514,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21511,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21500,"src":"7773:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7789:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7773:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7740:51:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"7740:61:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21516,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21496,"src":"7817:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7740:86:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7707:119:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21550,"nodeType":"Block","src":"7960:217:74","statements":[{"expression":{"id":21540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21531,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"7974:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21534,"indexExpression":{"id":21532,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21492,"src":"8000:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7974:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21535,"indexExpression":{"id":21533,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21500,"src":"8024:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7974:77:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21537,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21496,"src":"8079:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21538,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21494,"src":"8090:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21536,"name":"RewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21004,"src":"8054:24:74","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_ptr_$","typeString":"type(struct BaseV1Bribes.RewardPerTokenCheckpoint storage pointer)"}},"id":21539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8054:43:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_memory_ptr","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint memory"}},"src":"7974:123:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21541,"nodeType":"ExpressionStatement","src":"7974:123:74"},{"expression":{"id":21548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21542,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21044,"src":"8111:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21544,"indexExpression":{"id":21543,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21492,"src":"8140:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8111:35:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21545,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21500,"src":"8149:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":21546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8165:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8149:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8111:55:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21549,"nodeType":"ExpressionStatement","src":"8111:55:74"}]},"id":21551,"nodeType":"IfStatement","src":"7690:487:74","trueBody":{"id":21530,"nodeType":"Block","src":"7837:117:74","statements":[{"expression":{"id":21528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":21519,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"7851:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":21524,"indexExpression":{"id":21520,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21492,"src":"7877:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7851:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":21525,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21521,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21500,"src":"7884:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7900:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7884:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7851:51:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":21526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":21003,"src":"7851:83:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21527,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21494,"src":"7937:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7851:92:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21529,"nodeType":"ExpressionStatement","src":"7851:92:74"}]}}]},"id":21553,"implemented":true,"kind":"function","modifiers":[],"name":"_writeRewardPerTokenCheckpoint","nameLocation":"7490:30:74","nodeType":"FunctionDefinition","parameters":{"id":21497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21492,"mutability":"mutable","name":"token","nameLocation":"7538:5:74","nodeType":"VariableDeclaration","scope":21553,"src":"7530:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21491,"name":"address","nodeType":"ElementaryTypeName","src":"7530:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21494,"mutability":"mutable","name":"reward","nameLocation":"7561:6:74","nodeType":"VariableDeclaration","scope":21553,"src":"7553:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21493,"name":"uint256","nodeType":"ElementaryTypeName","src":"7553:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21496,"mutability":"mutable","name":"timestamp","nameLocation":"7585:9:74","nodeType":"VariableDeclaration","scope":21553,"src":"7577:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21495,"name":"uint256","nodeType":"ElementaryTypeName","src":"7577:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7520:80:74"},"returnParameters":{"id":21498,"nodeType":"ParameterList","parameters":[],"src":"7610:0:74"},"scope":22890,"src":"7481:702:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21604,"nodeType":"Block","src":"8232:527:74","statements":[{"assignments":[21557],"declarations":[{"constant":false,"id":21557,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"8250:13:74","nodeType":"VariableDeclaration","scope":21604,"src":"8242:21:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21556,"name":"uint256","nodeType":"ElementaryTypeName","src":"8242:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21559,"initialValue":{"id":21558,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"8266:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8242:44:74"},{"assignments":[21561],"declarations":[{"constant":false,"id":21561,"mutability":"mutable","name":"_timestamp","nameLocation":"8304:10:74","nodeType":"VariableDeclaration","scope":21604,"src":"8296:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21560,"name":"uint256","nodeType":"ElementaryTypeName","src":"8296:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21564,"initialValue":{"expression":{"id":21562,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8317:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8317:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8296:36:74"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21565,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21557,"src":"8360:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8376:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8360:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":21568,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"8393:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":21572,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21569,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21557,"src":"8411:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8427:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8411:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8393:36:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"id":21573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"8393:46:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21574,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21561,"src":"8443:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8393:60:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8360:93:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21602,"nodeType":"Block","src":"8552:201:74","statements":[{"expression":{"id":21594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21587,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"8566:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":21589,"indexExpression":{"id":21588,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21557,"src":"8584:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8566:32:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21591,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21561,"src":"8635:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21592,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20990,"src":"8663:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21590,"name":"SupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21009,"src":"8601:16:74","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SupplyCheckpoint_$21009_storage_ptr_$","typeString":"type(struct BaseV1Bribes.SupplyCheckpoint storage pointer)"}},"id":21593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8601:87:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"src":"8566:122:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"id":21595,"nodeType":"ExpressionStatement","src":"8566:122:74"},{"expression":{"id":21600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21596,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"8702:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21597,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21557,"src":"8725:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":21598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8741:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8725:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8702:40:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21601,"nodeType":"ExpressionStatement","src":"8702:40:74"}]},"id":21603,"nodeType":"IfStatement","src":"8343:410:74","trueBody":{"id":21586,"nodeType":"Block","src":"8464:82:74","statements":[{"expression":{"id":21584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":21577,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"8478:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":21581,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21578,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21557,"src":"8496:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8512:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8496:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8478:36:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"id":21582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":21008,"src":"8478:43:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21583,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20990,"src":"8524:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8478:57:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21585,"nodeType":"ExpressionStatement","src":"8478:57:74"}]}}]},"id":21605,"implemented":true,"kind":"function","modifiers":[],"name":"_writeSupplyCheckpoint","nameLocation":"8198:22:74","nodeType":"FunctionDefinition","parameters":{"id":21554,"nodeType":"ParameterList","parameters":[],"src":"8220:2:74"},"returnParameters":{"id":21555,"nodeType":"ParameterList","parameters":[],"src":"8232:0:74"},"scope":22890,"src":"8189:570:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21613,"nodeType":"Block","src":"8826:38:74","statements":[{"expression":{"expression":{"id":21610,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20984,"src":"8843:7:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":21611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8843:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21609,"id":21612,"nodeType":"Return","src":"8836:21:74"}]},"functionSelector":"e6886396","id":21614,"implemented":true,"kind":"function","modifiers":[],"name":"rewardsListLength","nameLocation":"8774:17:74","nodeType":"FunctionDefinition","parameters":{"id":21606,"nodeType":"ParameterList","parameters":[],"src":"8791:2:74"},"returnParameters":{"id":21609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21614,"src":"8817:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21607,"name":"uint256","nodeType":"ElementaryTypeName","src":"8817:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8816:9:74"},"scope":22890,"src":"8765:99:74","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21630,"nodeType":"Block","src":"9070:70:74","statements":[{"expression":{"arguments":[{"expression":{"id":21623,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9096:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9096:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":21625,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"9113:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21627,"indexExpression":{"id":21626,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21616,"src":"9126:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9113:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21621,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"9087:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":21622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"9087:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":21628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9087:46:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21620,"id":21629,"nodeType":"Return","src":"9080:53:74"}]},"functionSelector":"638634ee","id":21631,"implemented":true,"kind":"function","modifiers":[],"name":"lastTimeRewardApplicable","nameLocation":"8972:24:74","nodeType":"FunctionDefinition","parameters":{"id":21617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21616,"mutability":"mutable","name":"token","nameLocation":"9005:5:74","nodeType":"VariableDeclaration","scope":21631,"src":"8997:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21615,"name":"address","nodeType":"ElementaryTypeName","src":"8997:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8996:15:74"},"returnParameters":{"id":21620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21631,"src":"9057:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21618,"name":"uint256","nodeType":"ElementaryTypeName","src":"9057:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9056:9:74"},"scope":22890,"src":"8963:177:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21742,"nodeType":"Block","src":"9305:799:74","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":21648,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9401:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9401:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21650,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21633,"src":"9429:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21643,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"9347:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":21644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"9347:15:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":21645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9347:17:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21642,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"9336:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":21646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9336:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":21647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isApprovedOrOwner","nodeType":"MemberAccess","referencedDeclaration":34800,"src":"9336:47:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view external returns (bool)"}},"id":21651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9336:114:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420766520617070726f766564206f776e6572","id":21652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9464:23:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_70c9179e1ee681f9739862498a1f804b5e460fb0bd86bf2b2fd229fa563cb29f","typeString":"literal_string \"not ve approved owner\""},"value":"not ve approved owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_70c9179e1ee681f9739862498a1f804b5e460fb0bd86bf2b2fd229fa563cb29f","typeString":"literal_string \"not ve approved owner\""}],"id":21641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9315:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9315:182:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21654,"nodeType":"ExpressionStatement","src":"9315:182:74"},{"body":{"id":21740,"nodeType":"Block","src":"9551:547:74","statements":[{"expression":{"id":21682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":21666,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"9583:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21670,"indexExpression":{"baseExpression":{"id":21667,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9604:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21669,"indexExpression":{"id":21668,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9611:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9604:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9583:31:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":21671,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"9632:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21675,"indexExpression":{"baseExpression":{"id":21672,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9647:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21674,"indexExpression":{"id":21673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9654:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9647:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9632:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21676,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9565:106:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":21678,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9696:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21680,"indexExpression":{"id":21679,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9703:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9696:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21677,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22293,"src":"9674:21:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":21681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9674:32:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"9565:141:74","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21683,"nodeType":"ExpressionStatement","src":"9565:141:74"},{"assignments":[21685],"declarations":[{"constant":false,"id":21685,"mutability":"mutable","name":"_reward","nameLocation":"9729:7:74","nodeType":"VariableDeclaration","scope":21740,"src":"9721:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21684,"name":"uint256","nodeType":"ElementaryTypeName","src":"9721:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21692,"initialValue":{"arguments":[{"baseExpression":{"id":21687,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9746:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21689,"indexExpression":{"id":21688,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9753:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9746:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21690,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21633,"src":"9757:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21686,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22460,"src":"9739:6:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":21691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9739:26:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9721:44:74"},{"expression":{"id":21702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21693,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20975,"src":"9779:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":21698,"indexExpression":{"baseExpression":{"id":21694,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9788:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21696,"indexExpression":{"id":21695,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9795:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9788:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9779:19:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21699,"indexExpression":{"id":21697,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21633,"src":"9799:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9779:28:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21700,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9810:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9810:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9779:46:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21703,"nodeType":"ExpressionStatement","src":"9779:46:74"},{"expression":{"id":21716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21704,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20981,"src":"9839:24:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":21709,"indexExpression":{"baseExpression":{"id":21705,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9864:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21707,"indexExpression":{"id":21706,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9871:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9864:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9839:35:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21710,"indexExpression":{"id":21708,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21633,"src":"9875:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9839:44:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":21711,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"9886:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21715,"indexExpression":{"baseExpression":{"id":21712,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9924:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21714,"indexExpression":{"id":21713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9931:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9924:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9886:61:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9839:108:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21717,"nodeType":"ExpressionStatement","src":"9839:108:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21718,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21685,"src":"9965:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9975:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9965:11:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21730,"nodeType":"IfStatement","src":"9961:62:74","trueBody":{"expression":{"arguments":[{"baseExpression":{"id":21722,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9992:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21724,"indexExpression":{"id":21723,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9999:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9992:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":21725,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10003:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10003:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21727,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21685,"src":"10015:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21721,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22832,"src":"9978:13:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":21728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9978:45:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21729,"nodeType":"ExpressionStatement","src":"9978:45:74"}},{"eventCall":{"arguments":[{"expression":{"id":21732,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10056:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10056:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":21734,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"10068:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21736,"indexExpression":{"id":21735,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"10075:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10068:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21737,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21685,"src":"10079:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21731,"name":"ClaimRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33877,"src":"10043:12:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":21738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10043:44:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21739,"nodeType":"EmitStatement","src":"10038:49:74"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9527:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":21660,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21636,"src":"9531:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9531:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9527:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21741,"initializationExpression":{"assignments":[21656],"declarations":[{"constant":false,"id":21656,"mutability":"mutable","name":"i","nameLocation":"9520:1:74","nodeType":"VariableDeclaration","scope":21741,"src":"9512:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21655,"name":"uint256","nodeType":"ElementaryTypeName","src":"9512:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21658,"initialValue":{"hexValue":"30","id":21657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9512:13:74"},"loopExpression":{"expression":{"id":21664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9546:3:74","subExpression":{"id":21663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"9546:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21665,"nodeType":"ExpressionStatement","src":"9546:3:74"},"nodeType":"ForStatement","src":"9507:591:74"}]},"functionSelector":"f5f8d365","id":21743,"implemented":true,"kind":"function","modifiers":[{"id":21639,"kind":"modifierInvocation","modifierName":{"id":21638,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"9288:12:74"},"nodeType":"ModifierInvocation","src":"9288:12:74"}],"name":"getReward","nameLocation":"9211:9:74","nodeType":"FunctionDefinition","parameters":{"id":21637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21633,"mutability":"mutable","name":"tokenId","nameLocation":"9229:7:74","nodeType":"VariableDeclaration","scope":21743,"src":"9221:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21632,"name":"uint256","nodeType":"ElementaryTypeName","src":"9221:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21636,"mutability":"mutable","name":"tokens","nameLocation":"9255:6:74","nodeType":"VariableDeclaration","scope":21743,"src":"9238:23:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":21634,"name":"address","nodeType":"ElementaryTypeName","src":"9238:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21635,"nodeType":"ArrayTypeName","src":"9238:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9220:42:74"},"returnParameters":{"id":21640,"nodeType":"ParameterList","parameters":[],"src":"9305:0:74"},"scope":22890,"src":"9202:902:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[33845],"body":{"id":21860,"nodeType":"Block","src":"10296:739:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21755,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10314:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10314:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21757,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"10328:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":21758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"10328:19:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":21759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10328:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10314:35:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420766f746572","id":21761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10351:11:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""},"value":"not voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""}],"id":21754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10306:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10306:57:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21763,"nodeType":"ExpressionStatement","src":"10306:57:74"},{"assignments":[21765],"declarations":[{"constant":false,"id":21765,"mutability":"mutable","name":"_owner","nameLocation":"10381:6:74","nodeType":"VariableDeclaration","scope":21860,"src":"10373:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21764,"name":"address","nodeType":"ElementaryTypeName","src":"10373:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":21774,"initialValue":{"arguments":[{"id":21772,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21745,"src":"10428:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21767,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"10401:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":21768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"10401:15:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":21769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10401:17:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21766,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"10390:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":21770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10390:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":21771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"10390:37:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":21773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10390:46:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10373:63:74"},{"body":{"id":21858,"nodeType":"Block","src":"10490:539:74","statements":[{"expression":{"id":21802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":21786,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"10522:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21790,"indexExpression":{"baseExpression":{"id":21787,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10543:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21789,"indexExpression":{"id":21788,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10550:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10543:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10522:31:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":21791,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"10571:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21795,"indexExpression":{"baseExpression":{"id":21792,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10586:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21794,"indexExpression":{"id":21793,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10593:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10586:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10571:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21796,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10504:106:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":21798,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10635:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21800,"indexExpression":{"id":21799,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10642:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10635:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21797,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22293,"src":"10613:21:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":21801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10613:32:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"10504:141:74","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21803,"nodeType":"ExpressionStatement","src":"10504:141:74"},{"assignments":[21805],"declarations":[{"constant":false,"id":21805,"mutability":"mutable","name":"_reward","nameLocation":"10668:7:74","nodeType":"VariableDeclaration","scope":21858,"src":"10660:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21804,"name":"uint256","nodeType":"ElementaryTypeName","src":"10660:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21812,"initialValue":{"arguments":[{"baseExpression":{"id":21807,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10685:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21809,"indexExpression":{"id":21808,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10692:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10685:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21810,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21745,"src":"10696:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21806,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22460,"src":"10678:6:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":21811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10678:26:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10660:44:74"},{"expression":{"id":21822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21813,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20975,"src":"10718:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":21818,"indexExpression":{"baseExpression":{"id":21814,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10727:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21816,"indexExpression":{"id":21815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10734:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10727:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10718:19:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21819,"indexExpression":{"id":21817,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21745,"src":"10738:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10718:28:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21820,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10749:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10749:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10718:46:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21823,"nodeType":"ExpressionStatement","src":"10718:46:74"},{"expression":{"id":21836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21824,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20981,"src":"10778:24:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":21829,"indexExpression":{"baseExpression":{"id":21825,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10803:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21827,"indexExpression":{"id":21826,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10810:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10803:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10778:35:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21830,"indexExpression":{"id":21828,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21745,"src":"10814:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10778:44:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":21831,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"10825:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21835,"indexExpression":{"baseExpression":{"id":21832,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10863:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21834,"indexExpression":{"id":21833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10870:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10863:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10825:61:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10778:108:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21837,"nodeType":"ExpressionStatement","src":"10778:108:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21838,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21805,"src":"10904:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10914:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10904:11:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21849,"nodeType":"IfStatement","src":"10900:58:74","trueBody":{"expression":{"arguments":[{"baseExpression":{"id":21842,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10931:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21844,"indexExpression":{"id":21843,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10938:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10931:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21845,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21765,"src":"10942:6:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21846,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21805,"src":"10950:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21841,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22832,"src":"10917:13:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":21847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10917:41:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21848,"nodeType":"ExpressionStatement","src":"10917:41:74"}},{"eventCall":{"arguments":[{"id":21851,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21765,"src":"10991:6:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":21852,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10999:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21854,"indexExpression":{"id":21853,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"11006:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10999:9:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21855,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21805,"src":"11010:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21850,"name":"ClaimRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33877,"src":"10978:12:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":21856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10978:40:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21857,"nodeType":"EmitStatement","src":"10973:45:74"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21779,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10466:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":21780,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"10470:6:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":21781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10470:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10466:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21859,"initializationExpression":{"assignments":[21776],"declarations":[{"constant":false,"id":21776,"mutability":"mutable","name":"i","nameLocation":"10459:1:74","nodeType":"VariableDeclaration","scope":21859,"src":"10451:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21775,"name":"uint256","nodeType":"ElementaryTypeName","src":"10451:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21778,"initialValue":{"hexValue":"30","id":21777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10463:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10451:13:74"},"loopExpression":{"expression":{"id":21784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10485:3:74","subExpression":{"id":21783,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21776,"src":"10485:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21785,"nodeType":"ExpressionStatement","src":"10485:3:74"},"nodeType":"ForStatement","src":"10446:583:74"}]},"functionSelector":"a7852afa","id":21861,"implemented":true,"kind":"function","modifiers":[{"id":21752,"kind":"modifierInvocation","modifierName":{"id":21751,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"10279:12:74"},"nodeType":"ModifierInvocation","src":"10279:12:74"}],"name":"getRewardForOwner","nameLocation":"10177:17:74","nodeType":"FunctionDefinition","overrides":{"id":21750,"nodeType":"OverrideSpecifier","overrides":[],"src":"10262:8:74"},"parameters":{"id":21749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21745,"mutability":"mutable","name":"tokenId","nameLocation":"10203:7:74","nodeType":"VariableDeclaration","scope":21861,"src":"10195:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21744,"name":"uint256","nodeType":"ElementaryTypeName","src":"10195:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21748,"mutability":"mutable","name":"tokens","nameLocation":"10229:6:74","nodeType":"VariableDeclaration","scope":21861,"src":"10212:23:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":21746,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21747,"nodeType":"ArrayTypeName","src":"10212:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10194:42:74"},"returnParameters":{"id":21753,"nodeType":"ParameterList","parameters":[],"src":"10296:0:74"},"scope":22890,"src":"10168:867:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21906,"nodeType":"Block","src":"11110:354:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21868,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20990,"src":"11124:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11139:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11124:16:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21876,"nodeType":"IfStatement","src":"11120:81:74","trueBody":{"id":21875,"nodeType":"Block","src":"11142:59:74","statements":[{"expression":{"baseExpression":{"id":21871,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"11163:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21873,"indexExpression":{"id":21872,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"11184:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11163:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21867,"id":21874,"nodeType":"Return","src":"11156:34:74"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":21877,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"11229:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21879,"indexExpression":{"id":21878,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"11250:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11229:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21881,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"11299:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21880,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21631,"src":"11274:24:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":21882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11274:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"baseExpression":{"id":21885,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"11333:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21887,"indexExpression":{"id":21886,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"11348:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11333:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":21888,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"11356:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21890,"indexExpression":{"id":21889,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"11369:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11356:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21883,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"11324:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":21884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"11324:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":21891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11324:52:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11274:102:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21893,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11273:104:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":21894,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"11396:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21896,"indexExpression":{"id":21895,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"11407:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11396:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11273:140:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":21898,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"11432:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11273:168:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11272:170:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":21901,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20990,"src":"11445:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11272:184:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21903,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11271:186:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11229:228:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21867,"id":21905,"nodeType":"Return","src":"11210:247:74"}]},"functionSelector":"f1229777","id":21907,"implemented":true,"kind":"function","modifiers":[],"name":"rewardPerToken","nameLocation":"11050:14:74","nodeType":"FunctionDefinition","parameters":{"id":21864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21863,"mutability":"mutable","name":"token","nameLocation":"11073:5:74","nodeType":"VariableDeclaration","scope":21907,"src":"11065:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21862,"name":"address","nodeType":"ElementaryTypeName","src":"11065:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11064:15:74"},"returnParameters":{"id":21867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21907,"src":"11101:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21865,"name":"uint256","nodeType":"ElementaryTypeName","src":"11101:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11100:9:74"},"scope":22890,"src":"11041:423:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21927,"nodeType":"Block","src":"11540:142:74","statements":[{"expression":{"id":21925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":21914,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"11564:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21916,"indexExpression":{"id":21915,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21909,"src":"11585:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11564:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":21917,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"11605:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21919,"indexExpression":{"id":21918,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21909,"src":"11620:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11605:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21920,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11550:86:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21922,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21909,"src":"11660:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21923,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21911,"src":"11667:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21921,"name":"_batchRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22056,"src":"11639:20:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) returns (uint256,uint256)"}},"id":21924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11639:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11550:125:74","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21926,"nodeType":"ExpressionStatement","src":"11550:125:74"}]},"functionSelector":"5a45d052","id":21928,"implemented":true,"kind":"function","modifiers":[],"name":"batchRewardPerToken","nameLocation":"11479:19:74","nodeType":"FunctionDefinition","parameters":{"id":21912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21909,"mutability":"mutable","name":"token","nameLocation":"11507:5:74","nodeType":"VariableDeclaration","scope":21928,"src":"11499:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21908,"name":"address","nodeType":"ElementaryTypeName","src":"11499:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21911,"mutability":"mutable","name":"maxRuns","nameLocation":"11522:7:74","nodeType":"VariableDeclaration","scope":21928,"src":"11514:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21910,"name":"uint256","nodeType":"ElementaryTypeName","src":"11514:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11498:32:74"},"returnParameters":{"id":21913,"nodeType":"ParameterList","parameters":[],"src":"11540:0:74"},"scope":22890,"src":"11470:212:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22055,"nodeType":"Block","src":"11806:1159:74","statements":[{"assignments":[21940],"declarations":[{"constant":false,"id":21940,"mutability":"mutable","name":"_startTimestamp","nameLocation":"11824:15:74","nodeType":"VariableDeclaration","scope":22055,"src":"11816:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21939,"name":"uint256","nodeType":"ElementaryTypeName","src":"11816:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21944,"initialValue":{"baseExpression":{"id":21941,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"11842:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21943,"indexExpression":{"id":21942,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21930,"src":"11857:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11842:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11816:47:74"},{"assignments":[21946],"declarations":[{"constant":false,"id":21946,"mutability":"mutable","name":"reward","nameLocation":"11881:6:74","nodeType":"VariableDeclaration","scope":22055,"src":"11873:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21945,"name":"uint256","nodeType":"ElementaryTypeName","src":"11873:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21950,"initialValue":{"baseExpression":{"id":21947,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"11890:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21949,"indexExpression":{"id":21948,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21930,"src":"11911:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11890:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11873:44:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21951,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"11932:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11956:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11932:25:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21959,"nodeType":"IfStatement","src":"11928:88:74","trueBody":{"id":21958,"nodeType":"Block","src":"11959:57:74","statements":[{"expression":{"components":[{"id":21954,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21946,"src":"11981:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21955,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21940,"src":"11989:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21956,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11980:25:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":21938,"id":21957,"nodeType":"Return","src":"11973:32:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":21960,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"12030:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21962,"indexExpression":{"id":21961,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21930,"src":"12041:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12030:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12051:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12030:22:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21971,"nodeType":"IfStatement","src":"12026:85:74","trueBody":{"id":21970,"nodeType":"Block","src":"12054:57:74","statements":[{"expression":{"components":[{"id":21965,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21946,"src":"12076:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":21966,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12084:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12084:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21968,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12075:25:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":21938,"id":21969,"nodeType":"Return","src":"12068:32:74"}]}},{"assignments":[21973],"declarations":[{"constant":false,"id":21973,"mutability":"mutable","name":"_startIndex","nameLocation":"12129:11:74","nodeType":"VariableDeclaration","scope":22055,"src":"12121:19:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21972,"name":"uint256","nodeType":"ElementaryTypeName","src":"12121:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21977,"initialValue":{"arguments":[{"id":21975,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21940,"src":"12163:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21974,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21275,"src":"12143:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":21976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12143:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12121:58:74"},{"assignments":[21979],"declarations":[{"constant":false,"id":21979,"mutability":"mutable","name":"_endIndex","nameLocation":"12197:9:74","nodeType":"VariableDeclaration","scope":22055,"src":"12189:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21978,"name":"uint256","nodeType":"ElementaryTypeName","src":"12189:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21987,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21982,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"12218:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12241:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12218:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21985,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21932,"src":"12244:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21980,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"12209:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":21981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"12209:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":21986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12209:43:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12189:63:74"},{"body":{"id":22049,"nodeType":"Block","src":"12313:603:74","statements":[{"assignments":[22000],"declarations":[{"constant":false,"id":22000,"mutability":"mutable","name":"sp0","nameLocation":"12351:3:74","nodeType":"VariableDeclaration","scope":22049,"src":"12327:27:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"},"typeName":{"id":21999,"nodeType":"UserDefinedTypeName","pathNode":{"id":21998,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21009,"src":"12327:16:74"},"referencedDeclaration":21009,"src":"12327:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":22004,"initialValue":{"baseExpression":{"id":22001,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"12357:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":22003,"indexExpression":{"id":22002,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21989,"src":"12375:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12357:20:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12327:50:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22005,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22000,"src":"12395:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":21008,"src":"12395:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12408:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12395:14:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22048,"nodeType":"IfStatement","src":"12391:515:74","trueBody":{"id":22047,"nodeType":"Block","src":"12411:495:74","statements":[{"assignments":[22011],"declarations":[{"constant":false,"id":22011,"mutability":"mutable","name":"sp1","nameLocation":"12453:3:74","nodeType":"VariableDeclaration","scope":22047,"src":"12429:27:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"},"typeName":{"id":22010,"nodeType":"UserDefinedTypeName","pathNode":{"id":22009,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21009,"src":"12429:16:74"},"referencedDeclaration":21009,"src":"12429:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":22017,"initialValue":{"baseExpression":{"id":22012,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"12459:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":22016,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22013,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21989,"src":"12477:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":22014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12481:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12477:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12459:24:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12429:54:74"},{"assignments":[22019,22021],"declarations":[{"constant":false,"id":22019,"mutability":"mutable","name":"_reward","nameLocation":"12510:7:74","nodeType":"VariableDeclaration","scope":22047,"src":"12502:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22018,"name":"uint256","nodeType":"ElementaryTypeName","src":"12502:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22021,"mutability":"mutable","name":"endTime","nameLocation":"12527:7:74","nodeType":"VariableDeclaration","scope":22047,"src":"12519:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22020,"name":"uint256","nodeType":"ElementaryTypeName","src":"12519:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22032,"initialValue":{"arguments":[{"id":22023,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21930,"src":"12579:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":22024,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22011,"src":"12606:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"12606:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22026,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22000,"src":"12641:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"12641:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22028,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22000,"src":"12676:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":21008,"src":"12676:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22030,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21940,"src":"12708:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22022,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22115,"src":"12538:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":22031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12538:203:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12501:240:74"},{"expression":{"id":22035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22033,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21946,"src":"12759:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":22034,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22019,"src":"12769:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12759:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22036,"nodeType":"ExpressionStatement","src":"12759:17:74"},{"expression":{"arguments":[{"id":22038,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21930,"src":"12825:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22039,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21946,"src":"12832:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22040,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22021,"src":"12840:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22037,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21553,"src":"12794:30:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":22041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12794:54:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22042,"nodeType":"ExpressionStatement","src":"12794:54:74"},{"expression":{"id":22045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22043,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21940,"src":"12866:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22044,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22021,"src":"12884:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12866:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22046,"nodeType":"ExpressionStatement","src":"12866:25:74"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21992,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21989,"src":"12293:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21993,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21979,"src":"12297:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12293:13:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22050,"initializationExpression":{"assignments":[21989],"declarations":[{"constant":false,"id":21989,"mutability":"mutable","name":"i","nameLocation":"12276:1:74","nodeType":"VariableDeclaration","scope":22050,"src":"12268:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21988,"name":"uint256","nodeType":"ElementaryTypeName","src":"12268:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21991,"initialValue":{"id":21990,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21973,"src":"12280:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12268:23:74"},"loopExpression":{"expression":{"id":21996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12308:3:74","subExpression":{"id":21995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21989,"src":"12308:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21997,"nodeType":"ExpressionStatement","src":"12308:3:74"},"nodeType":"ForStatement","src":"12263:653:74"},{"expression":{"components":[{"id":22051,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21946,"src":"12934:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22052,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21940,"src":"12942:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22053,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12933:25:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":21938,"id":22054,"nodeType":"Return","src":"12926:32:74"}]},"id":22056,"implemented":true,"kind":"function","modifiers":[],"name":"_batchRewardPerToken","nameLocation":"11697:20:74","nodeType":"FunctionDefinition","parameters":{"id":21933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21930,"mutability":"mutable","name":"token","nameLocation":"11726:5:74","nodeType":"VariableDeclaration","scope":22056,"src":"11718:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21929,"name":"address","nodeType":"ElementaryTypeName","src":"11718:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21932,"mutability":"mutable","name":"maxRuns","nameLocation":"11741:7:74","nodeType":"VariableDeclaration","scope":22056,"src":"11733:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21931,"name":"uint256","nodeType":"ElementaryTypeName","src":"11733:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11717:32:74"},"returnParameters":{"id":21938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22056,"src":"11784:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21934,"name":"uint256","nodeType":"ElementaryTypeName","src":"11784:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22056,"src":"11793:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21936,"name":"uint256","nodeType":"ElementaryTypeName","src":"11793:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11783:18:74"},"scope":22890,"src":"11688:1277:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22114,"nodeType":"Block","src":"13182:394:74","statements":[{"assignments":[22074],"declarations":[{"constant":false,"id":22074,"mutability":"mutable","name":"endTime","nameLocation":"13200:7:74","nodeType":"VariableDeclaration","scope":22114,"src":"13192:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22073,"name":"uint256","nodeType":"ElementaryTypeName","src":"13192:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22080,"initialValue":{"arguments":[{"id":22077,"name":"timestamp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22060,"src":"13219:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22078,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22066,"src":"13231:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22075,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13210:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":22076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"13210:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13210:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13192:54:74"},{"expression":{"components":[{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":22083,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22074,"src":"13289:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":22084,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"13298:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22086,"indexExpression":{"id":22085,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22058,"src":"13311:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13298:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22081,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13280:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":22082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"13280:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13280:38:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"id":22092,"name":"timestamp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22062,"src":"13376:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22093,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22066,"src":"13388:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22090,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13367:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":22091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"13367:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13367:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":22095,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"13425:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22097,"indexExpression":{"id":22096,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22058,"src":"13438:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13425:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22088,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13337:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":22089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"13337:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13337:125:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13280:182:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13279:184:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":22101,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"13482:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22103,"indexExpression":{"id":22102,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22058,"src":"13493:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13482:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13279:220:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":22105,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"13518:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13279:248:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22107,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13278:250:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":22108,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22064,"src":"13531:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13278:259:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22110,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13277:261:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22111,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22074,"src":"13552:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22112,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13263:306:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":22072,"id":22113,"nodeType":"Return","src":"13256:313:74"}]},"id":22115,"implemented":true,"kind":"function","modifiers":[],"name":"_calcRewardPerToken","nameLocation":"12980:19:74","nodeType":"FunctionDefinition","parameters":{"id":22067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22058,"mutability":"mutable","name":"token","nameLocation":"13017:5:74","nodeType":"VariableDeclaration","scope":22115,"src":"13009:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22057,"name":"address","nodeType":"ElementaryTypeName","src":"13009:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22060,"mutability":"mutable","name":"timestamp1","nameLocation":"13040:10:74","nodeType":"VariableDeclaration","scope":22115,"src":"13032:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22059,"name":"uint256","nodeType":"ElementaryTypeName","src":"13032:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22062,"mutability":"mutable","name":"timestamp0","nameLocation":"13068:10:74","nodeType":"VariableDeclaration","scope":22115,"src":"13060:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22061,"name":"uint256","nodeType":"ElementaryTypeName","src":"13060:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22064,"mutability":"mutable","name":"supply","nameLocation":"13096:6:74","nodeType":"VariableDeclaration","scope":22115,"src":"13088:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22063,"name":"uint256","nodeType":"ElementaryTypeName","src":"13088:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22066,"mutability":"mutable","name":"startTimestamp","nameLocation":"13120:14:74","nodeType":"VariableDeclaration","scope":22115,"src":"13112:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22065,"name":"uint256","nodeType":"ElementaryTypeName","src":"13112:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12999:141:74"},"returnParameters":{"id":22072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22115,"src":"13164:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22068,"name":"uint256","nodeType":"ElementaryTypeName","src":"13164:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22115,"src":"13173:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22070,"name":"uint256","nodeType":"ElementaryTypeName","src":"13173:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13163:18:74"},"scope":22890,"src":"12971:605:74","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22292,"nodeType":"Block","src":"13684:1783:74","statements":[{"assignments":[22125],"declarations":[{"constant":false,"id":22125,"mutability":"mutable","name":"_startTimestamp","nameLocation":"13702:15:74","nodeType":"VariableDeclaration","scope":22292,"src":"13694:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22124,"name":"uint256","nodeType":"ElementaryTypeName","src":"13694:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22129,"initialValue":{"baseExpression":{"id":22126,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"13720:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22128,"indexExpression":{"id":22127,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"13735:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13720:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13694:47:74"},{"assignments":[22131],"declarations":[{"constant":false,"id":22131,"mutability":"mutable","name":"reward","nameLocation":"13759:6:74","nodeType":"VariableDeclaration","scope":22292,"src":"13751:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22130,"name":"uint256","nodeType":"ElementaryTypeName","src":"13751:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22135,"initialValue":{"baseExpression":{"id":22132,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"13768:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22134,"indexExpression":{"id":22133,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"13789:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13768:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13751:44:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22136,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"13810:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13834:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13810:25:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22144,"nodeType":"IfStatement","src":"13806:88:74","trueBody":{"id":22143,"nodeType":"Block","src":"13837:57:74","statements":[{"expression":{"components":[{"id":22139,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22131,"src":"13859:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22140,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"13867:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22141,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13858:25:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":22123,"id":22142,"nodeType":"Return","src":"13851:32:74"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22145,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"13908:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22147,"indexExpression":{"id":22146,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"13919:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13908:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13929:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13908:22:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22156,"nodeType":"IfStatement","src":"13904:85:74","trueBody":{"id":22155,"nodeType":"Block","src":"13932:57:74","statements":[{"expression":{"components":[{"id":22150,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22131,"src":"13954:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22151,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13962:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13962:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22153,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13953:25:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":22123,"id":22154,"nodeType":"Return","src":"13946:32:74"}]}},{"assignments":[22158],"declarations":[{"constant":false,"id":22158,"mutability":"mutable","name":"_startIndex","nameLocation":"14007:11:74","nodeType":"VariableDeclaration","scope":22292,"src":"13999:19:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22157,"name":"uint256","nodeType":"ElementaryTypeName","src":"13999:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22162,"initialValue":{"arguments":[{"id":22160,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"14041:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22159,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21275,"src":"14021:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":22161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14021:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13999:58:74"},{"assignments":[22164],"declarations":[{"constant":false,"id":22164,"mutability":"mutable","name":"_endIndex","nameLocation":"14075:9:74","nodeType":"VariableDeclaration","scope":22292,"src":"14067:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22163,"name":"uint256","nodeType":"ElementaryTypeName","src":"14067:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22168,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22165,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"14087:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14110:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14087:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14067:44:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22169,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22164,"src":"14126:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":22170,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22158,"src":"14138:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14126:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":22172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14152:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14126:27:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22240,"nodeType":"IfStatement","src":"14122:777:74","trueBody":{"id":22239,"nodeType":"Block","src":"14155:744:74","statements":[{"body":{"id":22237,"nodeType":"Block","src":"14223:666:74","statements":[{"assignments":[22188],"declarations":[{"constant":false,"id":22188,"mutability":"mutable","name":"sp0","nameLocation":"14265:3:74","nodeType":"VariableDeclaration","scope":22237,"src":"14241:27:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"},"typeName":{"id":22187,"nodeType":"UserDefinedTypeName","pathNode":{"id":22186,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21009,"src":"14241:16:74"},"referencedDeclaration":21009,"src":"14241:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":22192,"initialValue":{"baseExpression":{"id":22189,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"14271:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":22191,"indexExpression":{"id":22190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22175,"src":"14289:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14271:20:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14241:50:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22193,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22188,"src":"14313:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":21008,"src":"14313:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14326:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14313:14:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22236,"nodeType":"IfStatement","src":"14309:566:74","trueBody":{"id":22235,"nodeType":"Block","src":"14329:546:74","statements":[{"assignments":[22199],"declarations":[{"constant":false,"id":22199,"mutability":"mutable","name":"sp1","nameLocation":"14375:3:74","nodeType":"VariableDeclaration","scope":22235,"src":"14351:27:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"},"typeName":{"id":22198,"nodeType":"UserDefinedTypeName","pathNode":{"id":22197,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21009,"src":"14351:16:74"},"referencedDeclaration":21009,"src":"14351:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":22205,"initialValue":{"baseExpression":{"id":22200,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"14381:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":22204,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22201,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22175,"src":"14399:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":22202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14403:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14399:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14381:24:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14351:54:74"},{"assignments":[22207,22209],"declarations":[{"constant":false,"id":22207,"mutability":"mutable","name":"_reward","nameLocation":"14436:7:74","nodeType":"VariableDeclaration","scope":22235,"src":"14428:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22206,"name":"uint256","nodeType":"ElementaryTypeName","src":"14428:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22209,"mutability":"mutable","name":"_endTime","nameLocation":"14453:8:74","nodeType":"VariableDeclaration","scope":22235,"src":"14445:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22208,"name":"uint256","nodeType":"ElementaryTypeName","src":"14445:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22220,"initialValue":{"arguments":[{"id":22211,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"14510:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":22212,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22199,"src":"14541:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"14541:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22214,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22188,"src":"14580:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"14580:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22216,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22188,"src":"14619:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":21008,"src":"14619:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22218,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"14655:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22210,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22115,"src":"14465:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":22219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14465:227:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14427:265:74"},{"expression":{"id":22223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22221,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22131,"src":"14714:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":22222,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22207,"src":"14724:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14714:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22224,"nodeType":"ExpressionStatement","src":"14714:17:74"},{"expression":{"arguments":[{"id":22226,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"14784:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22227,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22131,"src":"14791:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22228,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22209,"src":"14799:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22225,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21553,"src":"14753:30:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":22229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14753:55:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22230,"nodeType":"ExpressionStatement","src":"14753:55:74"},{"expression":{"id":22233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22231,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"14830:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22232,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22209,"src":"14848:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14830:26:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22234,"nodeType":"ExpressionStatement","src":"14830:26:74"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22178,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22175,"src":"14199:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22179,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22164,"src":"14203:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14215:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14203:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14199:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22238,"initializationExpression":{"assignments":[22175],"declarations":[{"constant":false,"id":22175,"mutability":"mutable","name":"i","nameLocation":"14182:1:74","nodeType":"VariableDeclaration","scope":22238,"src":"14174:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22174,"name":"uint256","nodeType":"ElementaryTypeName","src":"14174:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22177,"initialValue":{"id":22176,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22158,"src":"14186:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14174:23:74"},"loopExpression":{"expression":{"id":22184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14218:3:74","subExpression":{"id":22183,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22175,"src":"14218:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22185,"nodeType":"ExpressionStatement","src":"14218:3:74"},"nodeType":"ForStatement","src":"14169:720:74"}]}},{"assignments":[22243],"declarations":[{"constant":false,"id":22243,"mutability":"mutable","name":"sp","nameLocation":"14933:2:74","nodeType":"VariableDeclaration","scope":22292,"src":"14909:26:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"},"typeName":{"id":22242,"nodeType":"UserDefinedTypeName","pathNode":{"id":22241,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":21009,"src":"14909:16:74"},"referencedDeclaration":21009,"src":"14909:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":22247,"initialValue":{"baseExpression":{"id":22244,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"14938:17:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$21009_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.SupplyCheckpoint storage ref)"}},"id":22246,"indexExpression":{"id":22245,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22164,"src":"14956:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14938:28:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_storage","typeString":"struct BaseV1Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14909:57:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22248,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22243,"src":"14980:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":21008,"src":"14980:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14992:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14980:13:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22287,"nodeType":"IfStatement","src":"14976:442:74","trueBody":{"id":22286,"nodeType":"Block","src":"14995:423:74","statements":[{"assignments":[22253,null],"declarations":[{"constant":false,"id":22253,"mutability":"mutable","name":"_reward","nameLocation":"15018:7:74","nodeType":"VariableDeclaration","scope":22286,"src":"15010:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22252,"name":"uint256","nodeType":"ElementaryTypeName","src":"15010:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":22269,"initialValue":{"arguments":[{"id":22255,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"15068:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":22257,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"15116:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22256,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21631,"src":"15091:24:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":22258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15091:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":22261,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22243,"src":"15149:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21006,"src":"15149:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22263,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"15163:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22259,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"15140:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":22260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"15140:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15140:39:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22265,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22243,"src":"15197:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$21009_memory_ptr","typeString":"struct BaseV1Bribes.SupplyCheckpoint memory"}},"id":22266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":21008,"src":"15197:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22267,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"15224:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22254,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22115,"src":"15031:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":22268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15031:222:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"15009:244:74"},{"expression":{"id":22272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22270,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22131,"src":"15267:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":22271,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22253,"src":"15277:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15267:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22273,"nodeType":"ExpressionStatement","src":"15267:17:74"},{"expression":{"arguments":[{"id":22275,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22117,"src":"15329:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22276,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22131,"src":"15336:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22277,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15344:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15344:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22274,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21553,"src":"15298:30:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":22279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15298:62:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22280,"nodeType":"ExpressionStatement","src":"15298:62:74"},{"expression":{"id":22284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22281,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"15374:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":22282,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15392:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15392:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15374:33:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22285,"nodeType":"ExpressionStatement","src":"15374:33:74"}]}},{"expression":{"components":[{"id":22288,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22131,"src":"15436:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22289,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22125,"src":"15444:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22290,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15435:25:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":22123,"id":22291,"nodeType":"Return","src":"15428:32:74"}]},"id":22293,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardPerToken","nameLocation":"13591:21:74","nodeType":"FunctionDefinition","parameters":{"id":22118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22117,"mutability":"mutable","name":"token","nameLocation":"13621:5:74","nodeType":"VariableDeclaration","scope":22293,"src":"13613:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22116,"name":"address","nodeType":"ElementaryTypeName","src":"13613:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13612:15:74"},"returnParameters":{"id":22123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22293,"src":"13662:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22119,"name":"uint256","nodeType":"ElementaryTypeName","src":"13662:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22293,"src":"13671:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22121,"name":"uint256","nodeType":"ElementaryTypeName","src":"13671:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13661:18:74"},"scope":22890,"src":"13582:1885:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22459,"nodeType":"Block","src":"15579:1644:74","statements":[{"assignments":[22303],"declarations":[{"constant":false,"id":22303,"mutability":"mutable","name":"_startTimestamp","nameLocation":"15597:15:74","nodeType":"VariableDeclaration","scope":22459,"src":"15589:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22302,"name":"uint256","nodeType":"ElementaryTypeName","src":"15589:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22318,"initialValue":{"arguments":[{"baseExpression":{"baseExpression":{"id":22306,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20975,"src":"15637:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":22308,"indexExpression":{"id":22307,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"15646:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15637:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22310,"indexExpression":{"id":22309,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"15653:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15637:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":22311,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21039,"src":"15675:25:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":22313,"indexExpression":{"id":22312,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"15701:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15675:32:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$21004_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":22315,"indexExpression":{"hexValue":"30","id":22314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15708:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15675:35:74","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$21004_storage","typeString":"struct BaseV1Bribes.RewardPerTokenCheckpoint storage ref"}},"id":22316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":21001,"src":"15675:45:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22304,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"15615:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":22305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"15615:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15615:115:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15589:141:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22319,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21022,"src":"15744:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22321,"indexExpression":{"id":22320,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"15759:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15744:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15771:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15744:28:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22327,"nodeType":"IfStatement","src":"15740:67:74","trueBody":{"id":22326,"nodeType":"Block","src":"15774:33:74","statements":[{"expression":{"hexValue":"30","id":22324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15795:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":22301,"id":22325,"nodeType":"Return","src":"15788:8:74"}]}},{"assignments":[22329],"declarations":[{"constant":false,"id":22329,"mutability":"mutable","name":"_startIndex","nameLocation":"15825:11:74","nodeType":"VariableDeclaration","scope":22459,"src":"15817:19:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22328,"name":"uint256","nodeType":"ElementaryTypeName","src":"15817:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22334,"initialValue":{"arguments":[{"id":22331,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"15860:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22332,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22303,"src":"15869:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22330,"name":"getPriorBalanceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21171,"src":"15839:20:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":22333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15839:46:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15817:68:74"},{"assignments":[22336],"declarations":[{"constant":false,"id":22336,"mutability":"mutable","name":"_endIndex","nameLocation":"15903:9:74","nodeType":"VariableDeclaration","scope":22459,"src":"15895:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22335,"name":"uint256","nodeType":"ElementaryTypeName","src":"15895:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22342,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22337,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21022,"src":"15915:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22339,"indexExpression":{"id":22338,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"15930:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15915:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15941:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15915:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15895:47:74"},{"assignments":[22344],"declarations":[{"constant":false,"id":22344,"mutability":"mutable","name":"reward","nameLocation":"15961:6:74","nodeType":"VariableDeclaration","scope":22459,"src":"15953:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22343,"name":"uint256","nodeType":"ElementaryTypeName","src":"15953:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22346,"initialValue":{"hexValue":"30","id":22345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15970:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15953:18:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22347,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22336,"src":"15986:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":22348,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22329,"src":"15998:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15986:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":22350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16012:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15986:27:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22416,"nodeType":"IfStatement","src":"15982:745:74","trueBody":{"id":22415,"nodeType":"Block","src":"16015:712:74","statements":[{"body":{"id":22413,"nodeType":"Block","src":"16083:634:74","statements":[{"assignments":[22366],"declarations":[{"constant":false,"id":22366,"mutability":"mutable","name":"cp0","nameLocation":"16119:3:74","nodeType":"VariableDeclaration","scope":22413,"src":"16101:21:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint"},"typeName":{"id":22365,"nodeType":"UserDefinedTypeName","pathNode":{"id":22364,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":20999,"src":"16101:10:74"},"referencedDeclaration":20999,"src":"16101:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage_ptr","typeString":"struct BaseV1Bribes.Checkpoint"}},"visibility":"internal"}],"id":22372,"initialValue":{"baseExpression":{"baseExpression":{"id":22367,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"16125:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":22369,"indexExpression":{"id":22368,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"16137:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16125:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":22371,"indexExpression":{"id":22370,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22353,"src":"16146:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16125:23:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16101:47:74"},{"assignments":[22375],"declarations":[{"constant":false,"id":22375,"mutability":"mutable","name":"cp1","nameLocation":"16184:3:74","nodeType":"VariableDeclaration","scope":22413,"src":"16166:21:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint"},"typeName":{"id":22374,"nodeType":"UserDefinedTypeName","pathNode":{"id":22373,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":20999,"src":"16166:10:74"},"referencedDeclaration":20999,"src":"16166:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage_ptr","typeString":"struct BaseV1Bribes.Checkpoint"}},"visibility":"internal"}],"id":22383,"initialValue":{"baseExpression":{"baseExpression":{"id":22376,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"16190:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":22378,"indexExpression":{"id":22377,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"16202:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16190:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":22382,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22353,"src":"16211:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":22380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16215:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16211:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16190:27:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16166:51:74"},{"assignments":[22385,null],"declarations":[{"constant":false,"id":22385,"mutability":"mutable","name":"_rewardPerTokenStored0","nameLocation":"16244:22:74","nodeType":"VariableDeclaration","scope":22413,"src":"16236:30:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22384,"name":"uint256","nodeType":"ElementaryTypeName","src":"16236:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":22391,"initialValue":{"arguments":[{"id":22387,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"16316:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":22388,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22366,"src":"16343:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"id":22389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"16343:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22386,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21424,"src":"16272:22:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":22390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16272:102:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16235:139:74"},{"assignments":[22393,null],"declarations":[{"constant":false,"id":22393,"mutability":"mutable","name":"_rewardPerTokenStored1","nameLocation":"16401:22:74","nodeType":"VariableDeclaration","scope":22413,"src":"16393:30:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22392,"name":"uint256","nodeType":"ElementaryTypeName","src":"16393:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":22399,"initialValue":{"arguments":[{"id":22395,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"16473:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":22396,"name":"cp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22375,"src":"16500:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"id":22397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"16500:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22394,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21424,"src":"16429:22:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":22398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16429:102:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16392:139:74"},{"expression":{"id":22411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22400,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22344,"src":"16549:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22401,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22366,"src":"16580:3:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"id":22402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20998,"src":"16580:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22403,"name":"_rewardPerTokenStored1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22393,"src":"16621:22:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":22404,"name":"_rewardPerTokenStored0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22385,"src":"16646:22:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16621:47:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22406,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16620:49:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16580:89:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16579:91:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":22409,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"16693:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16579:123:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16549:153:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22412,"nodeType":"ExpressionStatement","src":"16549:153:74"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22356,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22353,"src":"16059:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22357,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22336,"src":"16063:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16075:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16063:13:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16059:17:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22414,"initializationExpression":{"assignments":[22353],"declarations":[{"constant":false,"id":22353,"mutability":"mutable","name":"i","nameLocation":"16042:1:74","nodeType":"VariableDeclaration","scope":22414,"src":"16034:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22352,"name":"uint256","nodeType":"ElementaryTypeName","src":"16034:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22355,"initialValue":{"id":22354,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22329,"src":"16046:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16034:23:74"},"loopExpression":{"expression":{"id":22362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16078:3:74","subExpression":{"id":22361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22353,"src":"16078:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22363,"nodeType":"ExpressionStatement","src":"16078:3:74"},"nodeType":"ForStatement","src":"16029:688:74"}]}},{"assignments":[22419],"declarations":[{"constant":false,"id":22419,"mutability":"mutable","name":"cp","nameLocation":"16755:2:74","nodeType":"VariableDeclaration","scope":22459,"src":"16737:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint"},"typeName":{"id":22418,"nodeType":"UserDefinedTypeName","pathNode":{"id":22417,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":20999,"src":"16737:10:74"},"referencedDeclaration":20999,"src":"16737:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage_ptr","typeString":"struct BaseV1Bribes.Checkpoint"}},"visibility":"internal"}],"id":22425,"initialValue":{"baseExpression":{"baseExpression":{"id":22420,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"16760:11:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$_$","typeString":"mapping(uint256 => mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref))"}},"id":22422,"indexExpression":{"id":22421,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"16772:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16760:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$20999_storage_$","typeString":"mapping(uint256 => struct BaseV1Bribes.Checkpoint storage ref)"}},"id":22424,"indexExpression":{"id":22423,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22336,"src":"16781:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16760:31:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_storage","typeString":"struct BaseV1Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16737:54:74"},{"assignments":[22427,null],"declarations":[{"constant":false,"id":22427,"mutability":"mutable","name":"_rewardPerTokenStored","nameLocation":"16810:21:74","nodeType":"VariableDeclaration","scope":22459,"src":"16802:29:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22426,"name":"uint256","nodeType":"ElementaryTypeName","src":"16802:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":22433,"initialValue":{"arguments":[{"id":22429,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"16873:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":22430,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22419,"src":"16892:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"id":22431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":20996,"src":"16892:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22428,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21424,"src":"16837:22:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":22432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16837:77:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16801:113:74"},{"expression":{"id":22455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22434,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22344,"src":"16924:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22435,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22419,"src":"16947:2:74","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$20999_memory_ptr","typeString":"struct BaseV1Bribes.Checkpoint memory"}},"id":22436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20998,"src":"16947:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":22438,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"16994:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22437,"name":"rewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21907,"src":"16979:14:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":22439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16979:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":22442,"name":"_rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22427,"src":"17057:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"baseExpression":{"id":22443,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20981,"src":"17104:24:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":22445,"indexExpression":{"id":22444,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"17129:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17104:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22447,"indexExpression":{"id":22446,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"17136:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17104:40:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22440,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"17023:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":22441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"17023:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17023:143:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16979:187:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16978:189:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16947:220:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22452,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16946:222:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":22453,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"17183:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16946:246:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16924:268:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22456,"nodeType":"ExpressionStatement","src":"16924:268:74"},{"expression":{"id":22457,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22344,"src":"17210:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22301,"id":22458,"nodeType":"Return","src":"17203:13:74"}]},"functionSelector":"3e491d47","id":22460,"implemented":true,"kind":"function","modifiers":[],"name":"earned","nameLocation":"15482:6:74","nodeType":"FunctionDefinition","parameters":{"id":22298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22295,"mutability":"mutable","name":"token","nameLocation":"15497:5:74","nodeType":"VariableDeclaration","scope":22460,"src":"15489:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22294,"name":"address","nodeType":"ElementaryTypeName","src":"15489:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22297,"mutability":"mutable","name":"tokenId","nameLocation":"15512:7:74","nodeType":"VariableDeclaration","scope":22460,"src":"15504:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22296,"name":"uint256","nodeType":"ElementaryTypeName","src":"15504:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15488:32:74"},"returnParameters":{"id":22301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22460,"src":"15566:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22299,"name":"uint256","nodeType":"ElementaryTypeName","src":"15566:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15565:9:74"},"scope":22890,"src":"15473:1750:74","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[33830],"body":{"id":22510,"nodeType":"Block","src":"17424:322:74","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22468,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"17434:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":22470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"17434:24:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":22471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17434:26:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22472,"nodeType":"ExpressionStatement","src":"17434:26:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22474,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17479:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17479:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22476,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"17493:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":22477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"17493:19:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":22478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17493:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17479:35:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420766f746572","id":22480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17516:11:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""},"value":"not voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""}],"id":22473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17471:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17471:57:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22482,"nodeType":"ExpressionStatement","src":"17471:57:74"},{"expression":{"id":22485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22483,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20990,"src":"17538:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":22484,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22462,"src":"17553:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17538:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22486,"nodeType":"ExpressionStatement","src":"17538:21:74"},{"expression":{"id":22491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22487,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20994,"src":"17569:9:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22489,"indexExpression":{"id":22488,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22464,"src":"17579:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17569:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":22490,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22462,"src":"17591:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17569:28:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22492,"nodeType":"ExpressionStatement","src":"17569:28:74"},{"expression":{"arguments":[{"id":22494,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22464,"src":"17625:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":22495,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20994,"src":"17634:9:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22497,"indexExpression":{"id":22496,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22464,"src":"17644:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17634:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22493,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21490,"src":"17608:16:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":22498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17608:45:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22499,"nodeType":"ExpressionStatement","src":"17608:45:74"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22500,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21605,"src":"17663:22:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17663:24:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22502,"nodeType":"ExpressionStatement","src":"17663:24:74"},{"eventCall":{"arguments":[{"expression":{"id":22504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17711:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17711:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22506,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22464,"src":"17723:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22507,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22462,"src":"17732:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22503,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33853,"src":"17703:7:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":22508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17703:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22509,"nodeType":"EmitStatement","src":"17698:41:74"}]},"functionSelector":"f3207723","id":22511,"implemented":true,"kind":"function","modifiers":[],"name":"_deposit","nameLocation":"17364:8:74","nodeType":"FunctionDefinition","overrides":{"id":22466,"nodeType":"OverrideSpecifier","overrides":[],"src":"17415:8:74"},"parameters":{"id":22465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22462,"mutability":"mutable","name":"amount","nameLocation":"17381:6:74","nodeType":"VariableDeclaration","scope":22511,"src":"17373:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22461,"name":"uint256","nodeType":"ElementaryTypeName","src":"17373:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22464,"mutability":"mutable","name":"tokenId","nameLocation":"17397:7:74","nodeType":"VariableDeclaration","scope":22511,"src":"17389:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22463,"name":"uint256","nodeType":"ElementaryTypeName","src":"17389:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17372:33:74"},"returnParameters":{"id":22467,"nodeType":"ParameterList","parameters":[],"src":"17424:0:74"},"scope":22890,"src":"17355:391:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[33837],"body":{"id":22561,"nodeType":"Block","src":"17822:323:74","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22519,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"17832:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":22521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"17832:24:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":22522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17832:26:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22523,"nodeType":"ExpressionStatement","src":"17832:26:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22525,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17877:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17877:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22527,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20945,"src":"17891:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":22528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"17891:19:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":22529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17891:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17877:35:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420766f746572","id":22531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17914:11:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""},"value":"not voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""}],"id":22524,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17869:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17869:57:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22533,"nodeType":"ExpressionStatement","src":"17869:57:74"},{"expression":{"id":22536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22534,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20990,"src":"17936:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":22535,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22513,"src":"17951:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17936:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22537,"nodeType":"ExpressionStatement","src":"17936:21:74"},{"expression":{"id":22542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22538,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20994,"src":"17967:9:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22540,"indexExpression":{"id":22539,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22515,"src":"17977:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17967:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":22541,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22513,"src":"17989:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17967:28:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22543,"nodeType":"ExpressionStatement","src":"17967:28:74"},{"expression":{"arguments":[{"id":22545,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22515,"src":"18023:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":22546,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20994,"src":"18032:9:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":22548,"indexExpression":{"id":22547,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22515,"src":"18042:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18032:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22544,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21490,"src":"18006:16:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":22549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18006:45:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22550,"nodeType":"ExpressionStatement","src":"18006:45:74"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22551,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21605,"src":"18061:22:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18061:24:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22553,"nodeType":"ExpressionStatement","src":"18061:24:74"},{"eventCall":{"arguments":[{"expression":{"id":22555,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18110:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18110:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22557,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22515,"src":"18122:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22558,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22513,"src":"18131:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22554,"name":"Withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33861,"src":"18101:8:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":22559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18101:37:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22560,"nodeType":"EmitStatement","src":"18096:42:74"}]},"functionSelector":"9e2bf22c","id":22562,"implemented":true,"kind":"function","modifiers":[],"name":"_withdraw","nameLocation":"17761:9:74","nodeType":"FunctionDefinition","overrides":{"id":22517,"nodeType":"OverrideSpecifier","overrides":[],"src":"17813:8:74"},"parameters":{"id":22516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22513,"mutability":"mutable","name":"amount","nameLocation":"17779:6:74","nodeType":"VariableDeclaration","scope":22562,"src":"17771:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22512,"name":"uint256","nodeType":"ElementaryTypeName","src":"17771:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22515,"mutability":"mutable","name":"tokenId","nameLocation":"17795:7:74","nodeType":"VariableDeclaration","scope":22562,"src":"17787:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22514,"name":"uint256","nodeType":"ElementaryTypeName","src":"17787:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17770:33:74"},"returnParameters":{"id":22518,"nodeType":"ParameterList","parameters":[],"src":"17822:0:74"},"scope":22890,"src":"17752:393:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[33823],"body":{"id":22594,"nodeType":"Block","src":"18221:184:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22570,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18235:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18235:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":22572,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"18254:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22574,"indexExpression":{"id":22573,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22564,"src":"18267:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18254:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18235:38:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22578,"nodeType":"IfStatement","src":"18231:52:74","trueBody":{"expression":{"hexValue":"30","id":22576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18282:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":22569,"id":22577,"nodeType":"Return","src":"18275:8:74"}},{"assignments":[22580],"declarations":[{"constant":false,"id":22580,"mutability":"mutable","name":"_remaining","nameLocation":"18301:10:74","nodeType":"VariableDeclaration","scope":22594,"src":"18293:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22579,"name":"uint256","nodeType":"ElementaryTypeName","src":"18293:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22581,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"18314:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22583,"indexExpression":{"id":22582,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22564,"src":"18327:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18314:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":22584,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18336:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18336:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18314:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18293:58:74"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22588,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22580,"src":"18368:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":22589,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"18381:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22591,"indexExpression":{"id":22590,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22564,"src":"18392:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18381:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18368:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22569,"id":22593,"nodeType":"Return","src":"18361:37:74"}]},"functionSelector":"99bcc052","id":22595,"implemented":true,"kind":"function","modifiers":[],"name":"left","nameLocation":"18160:4:74","nodeType":"FunctionDefinition","overrides":{"id":22566,"nodeType":"OverrideSpecifier","overrides":[],"src":"18194:8:74"},"parameters":{"id":22565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22564,"mutability":"mutable","name":"token","nameLocation":"18173:5:74","nodeType":"VariableDeclaration","scope":22595,"src":"18165:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22563,"name":"address","nodeType":"ElementaryTypeName","src":"18165:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18164:15:74"},"returnParameters":{"id":22569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22595,"src":"18212:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22567,"name":"uint256","nodeType":"ElementaryTypeName","src":"18212:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18211:9:74"},"scope":22890,"src":"18151:254:74","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[33816],"body":{"id":22777,"nodeType":"Block","src":"18638:1278:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22606,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"18656:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18665:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18656:10:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203d2030","id":22609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18668:12:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""},"value":"amount = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""}],"id":22605,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18648:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18648:33:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22611,"nodeType":"ExpressionStatement","src":"18648:33:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22612,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"18695:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22614,"indexExpression":{"id":22613,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"18706:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18695:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18716:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18695:22:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22624,"nodeType":"IfStatement","src":"18691:97:74","trueBody":{"expression":{"arguments":[{"id":22618,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"18762:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":22619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18769:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":22620,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18772:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18772:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22617,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21553,"src":"18731:30:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":22622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18731:57:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22623,"nodeType":"ExpressionStatement","src":"18731:57:74"}},{"expression":{"id":22635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":22625,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20969,"src":"18812:20:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22627,"indexExpression":{"id":22626,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"18833:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18812:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":22628,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"18853:14:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22630,"indexExpression":{"id":22629,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"18868:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18853:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22631,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"18798:86:74","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22633,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"18909:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22632,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22293,"src":"18887:21:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":22634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18887:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"18798:117:74","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22636,"nodeType":"ExpressionStatement","src":"18798:117:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22637,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18930:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18930:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":22639,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"18949:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22641,"indexExpression":{"id":22640,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"18962:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18949:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18930:38:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":22709,"nodeType":"Block","src":"19111:331:74","statements":[{"assignments":[22664],"declarations":[{"constant":false,"id":22664,"mutability":"mutable","name":"_remaining","nameLocation":"19133:10:74","nodeType":"VariableDeclaration","scope":22709,"src":"19125:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22663,"name":"uint256","nodeType":"ElementaryTypeName","src":"19125:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22671,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22665,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"19146:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22667,"indexExpression":{"id":22666,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19159:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19146:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":22668,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"19168:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19168:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19146:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19125:58:74"},{"assignments":[22673],"declarations":[{"constant":false,"id":22673,"mutability":"mutable","name":"_left","nameLocation":"19205:5:74","nodeType":"VariableDeclaration","scope":22709,"src":"19197:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22672,"name":"uint256","nodeType":"ElementaryTypeName","src":"19197:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22679,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22674,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22664,"src":"19213:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":22675,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"19226:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22677,"indexExpression":{"id":22676,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19237:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19226:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19213:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19197:46:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22681,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"19265:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":22682,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22673,"src":"19274:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19265:14:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203c206c656674","id":22684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19281:15:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431","typeString":"literal_string \"amount < left\""},"value":"amount < left"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431","typeString":"literal_string \"amount < left\""}],"id":22680,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19257:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19257:40:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22686,"nodeType":"ExpressionStatement","src":"19257:40:74"},{"expression":{"arguments":[{"id":22688,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19329:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":22689,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19336:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19336:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":22693,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19356:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}],"id":22692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19348:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22691,"name":"address","nodeType":"ElementaryTypeName","src":"19348:7:74","typeDescriptions":{}}},"id":22694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19348:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22695,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"19363:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22687,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22889,"src":"19311:17:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":22696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19311:59:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22697,"nodeType":"ExpressionStatement","src":"19311:59:74"},{"expression":{"id":22707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22698,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"19384:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22700,"indexExpression":{"id":22699,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19395:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19384:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22701,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"19405:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":22702,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22673,"src":"19414:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19405:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22704,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19404:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":22705,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"19423:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19404:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19384:47:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22708,"nodeType":"ExpressionStatement","src":"19384:47:74"}]},"id":22710,"nodeType":"IfStatement","src":"18926:516:74","trueBody":{"id":22662,"nodeType":"Block","src":"18970:135:74","statements":[{"expression":{"arguments":[{"id":22644,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19002:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":22645,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19009:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19009:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":22649,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19029:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}],"id":22648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19021:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22647,"name":"address","nodeType":"ElementaryTypeName","src":"19021:7:74","typeDescriptions":{}}},"id":22650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19021:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22651,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"19036:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22643,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22889,"src":"18984:17:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":22652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18984:59:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22653,"nodeType":"ExpressionStatement","src":"18984:59:74"},{"expression":{"id":22660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22654,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"19057:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22656,"indexExpression":{"id":22655,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19068:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19057:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22657,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"19077:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":22658,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"19086:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19077:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19057:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22661,"nodeType":"ExpressionStatement","src":"19057:37:74"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22712,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"19459:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22714,"indexExpression":{"id":22713,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19470:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19459:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19479:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19459:21:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"72657761726452617465203d2030","id":22717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19482:16:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5","typeString":"literal_string \"rewardRate = 0\""},"value":"rewardRate = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5","typeString":"literal_string \"rewardRate = 0\""}],"id":22711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19451:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19451:48:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22719,"nodeType":"ExpressionStatement","src":"19451:48:74"},{"assignments":[22721],"declarations":[{"constant":false,"id":22721,"mutability":"mutable","name":"balance","nameLocation":"19517:7:74","nodeType":"VariableDeclaration","scope":22777,"src":"19509:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22720,"name":"uint256","nodeType":"ElementaryTypeName","src":"19509:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22731,"initialValue":{"arguments":[{"arguments":[{"id":22728,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19559:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}],"id":22727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19551:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22726,"name":"address","nodeType":"ElementaryTypeName","src":"19551:7:74","typeDescriptions":{}}},"id":22729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19551:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":22723,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19534:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22722,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"19527:6:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":22724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19527:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":22725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"19527:23:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":22730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19527:38:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19509:56:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22733,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"19596:10:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22735,"indexExpression":{"id":22734,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19607:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19596:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22736,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22721,"src":"19617:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":22737,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"19627:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19617:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19596:39:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f76696465642072657761726420746f6f2068696768","id":22740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19649:26:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""},"value":"Provided reward too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""}],"id":22732,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19575:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19575:110:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22742,"nodeType":"ExpressionStatement","src":"19575:110:74"},{"expression":{"id":22750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22743,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"19695:12:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":22745,"indexExpression":{"id":22744,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19708:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19695:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22746,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"19717:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19717:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":22748,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"19735:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19717:26:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19695:48:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22751,"nodeType":"ExpressionStatement","src":"19695:48:74"},{"condition":{"id":22755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19757:16:74","subExpression":{"baseExpression":{"id":22752,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20988,"src":"19758:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":22754,"indexExpression":{"id":22753,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19767:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19758:15:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22769,"nodeType":"IfStatement","src":"19753:102:74","trueBody":{"id":22768,"nodeType":"Block","src":"19775:80:74","statements":[{"expression":{"id":22760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22756,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20988,"src":"19789:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":22758,"indexExpression":{"id":22757,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19798:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19789:15:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":22759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19807:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19789:22:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22761,"nodeType":"ExpressionStatement","src":"19789:22:74"},{"expression":{"arguments":[{"id":22765,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19838:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22762,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20984,"src":"19825:7:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":22764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"19825:12:74","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":22766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19825:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22767,"nodeType":"ExpressionStatement","src":"19825:19:74"}]}},{"eventCall":{"arguments":[{"expression":{"id":22771,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19883:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19883:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22773,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"19895:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"19902:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22770,"name":"NotifyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33869,"src":"19870:12:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":22775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19870:39:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22776,"nodeType":"EmitStatement","src":"19865:44:74"}]},"functionSelector":"b66503cf","id":22778,"implemented":true,"kind":"function","modifiers":[{"id":22603,"kind":"modifierInvocation","modifierName":{"id":22602,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"18621:12:74"},"nodeType":"ModifierInvocation","src":"18621:12:74"}],"name":"notifyRewardAmount","nameLocation":"18529:18:74","nodeType":"FunctionDefinition","overrides":{"id":22601,"nodeType":"OverrideSpecifier","overrides":[],"src":"18604:8:74"},"parameters":{"id":22600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22597,"mutability":"mutable","name":"token","nameLocation":"18556:5:74","nodeType":"VariableDeclaration","scope":22778,"src":"18548:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22596,"name":"address","nodeType":"ElementaryTypeName","src":"18548:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22599,"mutability":"mutable","name":"amount","nameLocation":"18571:6:74","nodeType":"VariableDeclaration","scope":22778,"src":"18563:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22598,"name":"uint256","nodeType":"ElementaryTypeName","src":"18563:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18547:31:74"},"returnParameters":{"id":22604,"nodeType":"ParameterList","parameters":[],"src":"18638:0:74"},"scope":22890,"src":"18520:1396:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22831,"nodeType":"Block","src":"20026:337:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":22788,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22780,"src":"20044:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"20044:10:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20044:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20064:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20044:21:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e20636f6465","id":22793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20067:20:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""},"value":"invalid token code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""}],"id":22787,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20036:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20036:52:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22795,"nodeType":"ExpressionStatement","src":"20036:52:74"},{"assignments":[22797,22799],"declarations":[{"constant":false,"id":22797,"mutability":"mutable","name":"success","nameLocation":"20104:7:74","nodeType":"VariableDeclaration","scope":22831,"src":"20099:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22796,"name":"bool","nodeType":"ElementaryTypeName","src":"20099:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22799,"mutability":"mutable","name":"data","nameLocation":"20126:4:74","nodeType":"VariableDeclaration","scope":22831,"src":"20113:17:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22798,"name":"bytes","nodeType":"ElementaryTypeName","src":"20113:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":22811,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":22804,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"20181:6:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":22805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"20181:15:74","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transfer(address,uint256) returns (bool)"}},"id":22806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"20181:24:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":22807,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22782,"src":"20207:2:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22784,"src":"20211:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20158:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"20158:22:74","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":22809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20158:59:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":22800,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22780,"src":"20134:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"20134:10:74","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":22810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20134:93:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"20098:129:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22813,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22797,"src":"20258:7:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22814,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22799,"src":"20270:4:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20270:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20285:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20270:16:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":22820,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22799,"src":"20301:4:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":22822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20308:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":22821,"name":"bool","nodeType":"ElementaryTypeName","src":"20308:4:74","typeDescriptions":{}}}],"id":22823,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20307:6:74","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":22818,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20290:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"20290:10:74","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":22824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20290:24:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20270:44:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":22826,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20269:46:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20258:57:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":22828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20329:17:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":22812,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20237:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20237:119:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22830,"nodeType":"ExpressionStatement","src":"20237:119:74"}]},"id":22832,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"19931:13:74","nodeType":"FunctionDefinition","parameters":{"id":22785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22780,"mutability":"mutable","name":"token","nameLocation":"19962:5:74","nodeType":"VariableDeclaration","scope":22832,"src":"19954:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22779,"name":"address","nodeType":"ElementaryTypeName","src":"19954:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22782,"mutability":"mutable","name":"to","nameLocation":"19985:2:74","nodeType":"VariableDeclaration","scope":22832,"src":"19977:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22781,"name":"address","nodeType":"ElementaryTypeName","src":"19977:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22784,"mutability":"mutable","name":"value","nameLocation":"20005:5:74","nodeType":"VariableDeclaration","scope":22832,"src":"19997:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22783,"name":"uint256","nodeType":"ElementaryTypeName","src":"19997:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19944:72:74"},"returnParameters":{"id":22786,"nodeType":"ParameterList","parameters":[],"src":"20026:0:74"},"scope":22890,"src":"19922:441:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22888,"nodeType":"Block","src":"20499:429:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":22844,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22834,"src":"20517:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"20517:10:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20517:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20537:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20517:21:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e20636f6465","id":22849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20540:20:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""},"value":"invalid token code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""}],"id":22843,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20509:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20509:52:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22851,"nodeType":"ExpressionStatement","src":"20509:52:74"},{"assignments":[22853,22855],"declarations":[{"constant":false,"id":22853,"mutability":"mutable","name":"success","nameLocation":"20577:7:74","nodeType":"VariableDeclaration","scope":22888,"src":"20572:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22852,"name":"bool","nodeType":"ElementaryTypeName","src":"20572:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22855,"mutability":"mutable","name":"data","nameLocation":"20599:4:74","nodeType":"VariableDeclaration","scope":22888,"src":"20586:17:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22854,"name":"bytes","nodeType":"ElementaryTypeName","src":"20586:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":22868,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":22860,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"20671:6:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":22861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"20671:19:74","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transferFrom(address,address,uint256) returns (bool)"}},"id":22862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"20671:28:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":22863,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22836,"src":"20717:4:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22864,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22838,"src":"20739:2:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22840,"src":"20759:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20631:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"20631:22:74","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":22866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20631:147:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":22856,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22834,"src":"20607:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"20607:10:74","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":22867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20607:181:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"20571:217:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22870,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22853,"src":"20819:7:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22871,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22855,"src":"20831:4:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20831:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20846:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20831:16:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":22877,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22855,"src":"20862:4:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":22879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20869:4:74","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":22878,"name":"bool","nodeType":"ElementaryTypeName","src":"20869:4:74","typeDescriptions":{}}}],"id":22880,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20868:6:74","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":22875,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20851:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"20851:10:74","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":22881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20851:24:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20831:44:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":22883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20830:46:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20819:57:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e7366657246726f6d206661696c6564","id":22885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20890:21:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""},"value":"transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""}],"id":22869,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20798:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20798:123:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22887,"nodeType":"ExpressionStatement","src":"20798:123:74"}]},"id":22889,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"20378:17:74","nodeType":"FunctionDefinition","parameters":{"id":22841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22834,"mutability":"mutable","name":"token","nameLocation":"20413:5:74","nodeType":"VariableDeclaration","scope":22889,"src":"20405:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22833,"name":"address","nodeType":"ElementaryTypeName","src":"20405:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22836,"mutability":"mutable","name":"from","nameLocation":"20436:4:74","nodeType":"VariableDeclaration","scope":22889,"src":"20428:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22835,"name":"address","nodeType":"ElementaryTypeName","src":"20428:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22838,"mutability":"mutable","name":"to","nameLocation":"20458:2:74","nodeType":"VariableDeclaration","scope":22889,"src":"20450:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22837,"name":"address","nodeType":"ElementaryTypeName","src":"20450:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22840,"mutability":"mutable","name":"value","nameLocation":"20478:5:74","nodeType":"VariableDeclaration","scope":22889,"src":"20470:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22839,"name":"uint256","nodeType":"ElementaryTypeName","src":"20470:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20395:94:74"},"returnParameters":{"id":22842,"nodeType":"ParameterList","parameters":[],"src":"20499:0:74"},"scope":22890,"src":"20369:559:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":22891,"src":"641:20289:74","usedErrors":[]}],"src":"32:20899:74"},"id":74},"contracts/bribes/BaseV1BribesFactory.sol":{"ast":{"absolutePath":"contracts/bribes/BaseV1BribesFactory.sol","exportedSymbols":{"BaseV1BribeFactory":[22925],"BaseV1Bribes":[22890],"IBribeFactory":[33892]},"id":22926,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22892,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:75"},{"absolutePath":"contracts/bribes/BaseV1Bribes.sol","file":"./BaseV1Bribes.sol","id":22894,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22926,"sourceUnit":22891,"src":"57:48:75","symbolAliases":[{"foreign":{"id":22893,"name":"BaseV1Bribes","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:12:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribeFactory.sol","file":"../interfaces/IBribeFactory.sol","id":22896,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22926,"sourceUnit":33893,"src":"106:62:75","symbolAliases":[{"foreign":{"id":22895,"name":"IBribeFactory","nodeType":"Identifier","overloadedDeclarations":[],"src":"114:13:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22897,"name":"IBribeFactory","nodeType":"IdentifierPath","referencedDeclaration":33892,"src":"201:13:75"},"id":22898,"nodeType":"InheritanceSpecifier","src":"201:13:75"}],"contractDependencies":[22890],"contractKind":"contract","fullyImplemented":true,"id":22925,"linearizedBaseContracts":[22925,33892],"name":"BaseV1BribeFactory","nameLocation":"179:18:75","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[33887],"body":{"id":22923,"nodeType":"Block","src":"325:125:75","statements":[{"assignments":[22907],"declarations":[{"constant":false,"id":22907,"mutability":"mutable","name":"bribe","nameLocation":"343:5:75","nodeType":"VariableDeclaration","scope":22923,"src":"335:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22906,"name":"address","nodeType":"ElementaryTypeName","src":"335:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":22916,"initialValue":{"arguments":[{"arguments":[{"id":22913,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22900,"src":"376:9:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"359:16:75","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_BaseV1Bribes_$22890_$","typeString":"function (address) returns (contract BaseV1Bribes)"},"typeName":{"id":22911,"nodeType":"UserDefinedTypeName","pathNode":{"id":22910,"name":"BaseV1Bribes","nodeType":"IdentifierPath","referencedDeclaration":22890,"src":"363:12:75"},"referencedDeclaration":22890,"src":"363:12:75","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}}},"id":22914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"359:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV1Bribes_$22890","typeString":"contract BaseV1Bribes"}],"id":22909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"351:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22908,"name":"address","nodeType":"ElementaryTypeName","src":"351:7:75","typeDescriptions":{}}},"id":22915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"351:36:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"335:52:75"},{"eventCall":{"arguments":[{"id":22918,"name":"bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22907,"src":"415:5:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22917,"name":"BribeCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"402:12:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":22919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"402:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22920,"nodeType":"EmitStatement","src":"397:24:75"},{"expression":{"id":22921,"name":"bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22907,"src":"438:5:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":22905,"id":22922,"nodeType":"Return","src":"431:12:75"}]},"functionSelector":"6bd1a72c","id":22924,"implemented":true,"kind":"function","modifiers":[],"name":"createBribe","nameLocation":"230:11:75","nodeType":"FunctionDefinition","overrides":{"id":22902,"nodeType":"OverrideSpecifier","overrides":[],"src":"286:8:75"},"parameters":{"id":22901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22900,"mutability":"mutable","name":"_registry","nameLocation":"250:9:75","nodeType":"VariableDeclaration","scope":22924,"src":"242:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22899,"name":"address","nodeType":"ElementaryTypeName","src":"242:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"241:19:75"},"returnParameters":{"id":22905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22924,"src":"312:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22903,"name":"address","nodeType":"ElementaryTypeName","src":"312:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"311:9:75"},"scope":22925,"src":"221:229:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":22926,"src":"170:282:75","usedErrors":[]}],"src":"32:421:75"},"id":75},"contracts/bribes/BaseV2Bribes.sol":{"ast":{"absolutePath":"contracts/bribes/BaseV2Bribes.sol","exportedSymbols":{"BaseV2Bribes":[24870],"IBribeV2":[33971],"IERC20":[5767],"IGaugeVoter":[34456],"INFTLocker":[34923],"IRegistry":[35522],"Math":[10353],"ReentrancyGuard":[5062]},"id":24871,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22927,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:76"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":22929,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24871,"sourceUnit":4739,"src":"57:69:76","symbolAliases":[{"foreign":{"id":22928,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:6:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":22931,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24871,"sourceUnit":10354,"src":"127:65:76","symbolAliases":[{"foreign":{"id":22930,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"135:4:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":22933,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24871,"sourceUnit":5063,"src":"193:85:76","symbolAliases":[{"foreign":{"id":22932,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"201:15:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoter.sol","file":"../interfaces/IGaugeVoter.sol","id":22935,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24871,"sourceUnit":34457,"src":"280:58:76","symbolAliases":[{"foreign":{"id":22934,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"src":"288:11:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../interfaces/IRegistry.sol","id":22937,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24871,"sourceUnit":35523,"src":"339:54:76","symbolAliases":[{"foreign":{"id":22936,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"347:9:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"../interfaces/INFTLocker.sol","id":22939,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24871,"sourceUnit":34924,"src":"394:56:76","symbolAliases":[{"foreign":{"id":22938,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"402:10:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribeV2.sol","file":"../interfaces/IBribeV2.sol","id":22941,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24871,"sourceUnit":33972,"src":"451:52:76","symbolAliases":[{"foreign":{"id":22940,"name":"IBribeV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"459:8:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22942,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"670:15:76"},"id":22943,"nodeType":"InheritanceSpecifier","src":"670:15:76"},{"baseName":{"id":22944,"name":"IBribeV2","nodeType":"IdentifierPath","referencedDeclaration":33971,"src":"687:8:76"},"id":22945,"nodeType":"InheritanceSpecifier","src":"687:8:76"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":24870,"linearizedBaseContracts":[24870,33971,5062],"name":"BaseV2Bribes","nameLocation":"654:12:76","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[33902],"constant":false,"functionSelector":"7b103999","id":22949,"mutability":"immutable","name":"registry","nameLocation":"738:8:76","nodeType":"VariableDeclaration","overrides":{"id":22948,"nodeType":"OverrideSpecifier","overrides":[],"src":"729:8:76"},"scope":24870,"src":"702:44:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":22947,"nodeType":"UserDefinedTypeName","pathNode":{"id":22946,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"702:9:76"},"referencedDeclaration":35522,"src":"702:9:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":true,"functionSelector":"1be05289","id":22952,"mutability":"constant","name":"DURATION","nameLocation":"777:8:76","nodeType":"VariableDeclaration","scope":24870,"src":"753:41:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22950,"name":"uint256","nodeType":"ElementaryTypeName","src":"753:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":22951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"788:6:76","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"public"},{"constant":true,"functionSelector":"aaf5eb68","id":22957,"mutability":"constant","name":"PRECISION","nameLocation":"860:9:76","nodeType":"VariableDeclaration","scope":24870,"src":"836:42:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22953,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":22956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":22954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"872:2:76","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":22955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"876:2:76","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"872:6:76","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":false,"functionSelector":"221ca18c","id":22961,"mutability":"mutable","name":"rewardRate","nameLocation":"971:10:76","nodeType":"VariableDeclaration","scope":24870,"src":"936:45:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":22960,"keyType":{"id":22958,"name":"address","nodeType":"ElementaryTypeName","src":"944:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"936:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":22959,"name":"uint256","nodeType":"ElementaryTypeName","src":"955:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"da09d19d","id":22965,"mutability":"mutable","name":"periodFinish","nameLocation":"1022:12:76","nodeType":"VariableDeclaration","scope":24870,"src":"987:47:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":22964,"keyType":{"id":22962,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"987:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":22963,"name":"uint256","nodeType":"ElementaryTypeName","src":"1006:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"2ce9aead","id":22969,"mutability":"mutable","name":"lastUpdateTime","nameLocation":"1075:14:76","nodeType":"VariableDeclaration","scope":24870,"src":"1040:49:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":22968,"keyType":{"id":22966,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1040:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":22967,"name":"uint256","nodeType":"ElementaryTypeName","src":"1059:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"9ce43f90","id":22973,"mutability":"mutable","name":"rewardPerTokenStored","nameLocation":"1130:20:76","nodeType":"VariableDeclaration","scope":24870,"src":"1095:55:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":22972,"keyType":{"id":22970,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1095:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":22971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"a495e5b5","id":22979,"mutability":"mutable","name":"lastEarn","nameLocation":"1212:8:76","nodeType":"VariableDeclaration","scope":24870,"src":"1157:63:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":22978,"keyType":{"id":22974,"name":"address","nodeType":"ElementaryTypeName","src":"1165:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1157:47:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":22977,"keyType":{"id":22975,"name":"address","nodeType":"ElementaryTypeName","src":"1184:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1176:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":22976,"name":"uint256","nodeType":"ElementaryTypeName","src":"1195:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"3ca068b6","id":22985,"mutability":"mutable","name":"userRewardPerTokenStored","nameLocation":"1289:24:76","nodeType":"VariableDeclaration","scope":24870,"src":"1226:87:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":22984,"keyType":{"id":22980,"name":"address","nodeType":"ElementaryTypeName","src":"1234:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1226:47:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":22983,"keyType":{"id":22981,"name":"address","nodeType":"ElementaryTypeName","src":"1253:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1245:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":22982,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"f301af42","id":22988,"mutability":"mutable","name":"rewards","nameLocation":"1337:7:76","nodeType":"VariableDeclaration","scope":24870,"src":"1320:24:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":22986,"name":"address","nodeType":"ElementaryTypeName","src":"1320:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22987,"nodeType":"ArrayTypeName","src":"1320:9:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"constant":false,"functionSelector":"4d5ce038","id":22992,"mutability":"mutable","name":"isReward","nameLocation":"1382:8:76","nodeType":"VariableDeclaration","scope":24870,"src":"1350:40:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":22991,"keyType":{"id":22989,"name":"address","nodeType":"ElementaryTypeName","src":"1358:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1350:24:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":22990,"name":"bool","nodeType":"ElementaryTypeName","src":"1369:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":22994,"mutability":"mutable","name":"totalSupply","nameLocation":"1412:11:76","nodeType":"VariableDeclaration","scope":24870,"src":"1397:26:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22993,"name":"uint256","nodeType":"ElementaryTypeName","src":"1397:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"70a08231","id":22998,"mutability":"mutable","name":"balanceOf","nameLocation":"1464:9:76","nodeType":"VariableDeclaration","scope":24870,"src":"1429:44:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":22997,"keyType":{"id":22995,"name":"address","nodeType":"ElementaryTypeName","src":"1437:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1429:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":22996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1448:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"canonicalName":"BaseV2Bribes.Checkpoint","id":23003,"members":[{"constant":false,"id":23000,"mutability":"mutable","name":"timestamp","nameLocation":"1565:9:76","nodeType":"VariableDeclaration","scope":23003,"src":"1557:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1557:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23002,"mutability":"mutable","name":"balanceOf","nameLocation":"1592:9:76","nodeType":"VariableDeclaration","scope":23003,"src":"1584:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23001,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"1536:10:76","nodeType":"StructDefinition","scope":24870,"src":"1529:79:76","visibility":"public"},{"canonicalName":"BaseV2Bribes.RewardPerTokenCheckpoint","id":23008,"members":[{"constant":false,"id":23005,"mutability":"mutable","name":"timestamp","nameLocation":"1717:9:76","nodeType":"VariableDeclaration","scope":23008,"src":"1709:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23007,"mutability":"mutable","name":"rewardPerToken","nameLocation":"1744:14:76","nodeType":"VariableDeclaration","scope":23008,"src":"1736:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23006,"name":"uint256","nodeType":"ElementaryTypeName","src":"1736:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardPerTokenCheckpoint","nameLocation":"1674:24:76","nodeType":"StructDefinition","scope":24870,"src":"1667:98:76","visibility":"public"},{"canonicalName":"BaseV2Bribes.SupplyCheckpoint","id":23013,"members":[{"constant":false,"id":23010,"mutability":"mutable","name":"timestamp","nameLocation":"1861:9:76","nodeType":"VariableDeclaration","scope":23013,"src":"1853:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23009,"name":"uint256","nodeType":"ElementaryTypeName","src":"1853:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23012,"mutability":"mutable","name":"supply","nameLocation":"1888:6:76","nodeType":"VariableDeclaration","scope":23013,"src":"1880:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1880:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SupplyCheckpoint","nameLocation":"1826:16:76","nodeType":"StructDefinition","scope":24870,"src":"1819:82:76","visibility":"public"},{"constant":false,"documentation":{"id":23014,"nodeType":"StructuredDocumentation","src":"1907:70:76","text":"@notice A record of balance checkpoints for each account, by index"},"functionSelector":"0cdfebfa","id":23021,"mutability":"mutable","name":"checkpoints","nameLocation":"2040:11:76","nodeType":"VariableDeclaration","scope":24870,"src":"1982:69:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint))"},"typeName":{"id":23020,"keyType":{"id":23015,"name":"address","nodeType":"ElementaryTypeName","src":"1990:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1982:50:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint))"},"valueType":{"id":23019,"keyType":{"id":23016,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2001:30:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint)"},"valueType":{"id":23018,"nodeType":"UserDefinedTypeName","pathNode":{"id":23017,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":23003,"src":"2020:10:76"},"referencedDeclaration":23003,"src":"2020:10:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage_ptr","typeString":"struct BaseV2Bribes.Checkpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":23022,"nodeType":"StructuredDocumentation","src":"2058:54:76","text":"@notice The number of checkpoints for each account"},"functionSelector":"6fcfff45","id":23026,"mutability":"mutable","name":"numCheckpoints","nameLocation":"2152:14:76","nodeType":"VariableDeclaration","scope":24870,"src":"2117:49:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":23025,"keyType":{"id":23023,"name":"address","nodeType":"ElementaryTypeName","src":"2125:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2117:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":23024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":23027,"nodeType":"StructuredDocumentation","src":"2173:68:76","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"f7412baf","id":23032,"mutability":"mutable","name":"supplyCheckpoints","nameLocation":"2290:17:76","nodeType":"VariableDeclaration","scope":24870,"src":"2246:61:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint)"},"typeName":{"id":23031,"keyType":{"id":23028,"name":"uint256","nodeType":"ElementaryTypeName","src":"2254:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2246:36:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint)"},"valueType":{"id":23030,"nodeType":"UserDefinedTypeName","pathNode":{"id":23029,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23013,"src":"2265:16:76"},"referencedDeclaration":23013,"src":"2265:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"}}},"visibility":"public"},{"constant":false,"documentation":{"id":23033,"nodeType":"StructuredDocumentation","src":"2314:37:76","text":"@notice The number of checkpoints"},"functionSelector":"e8111a12","id":23035,"mutability":"mutable","name":"supplyNumCheckpoints","nameLocation":"2371:20:76","nodeType":"VariableDeclaration","scope":24870,"src":"2356:35:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23034,"name":"uint256","nodeType":"ElementaryTypeName","src":"2356:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":23036,"nodeType":"StructuredDocumentation","src":"2398:68:76","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"01316ddf","id":23043,"mutability":"mutable","name":"rewardPerTokenCheckpoints","nameLocation":"2551:25:76","nodeType":"VariableDeclaration","scope":24870,"src":"2471:105:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint))"},"typeName":{"id":23042,"keyType":{"id":23037,"name":"address","nodeType":"ElementaryTypeName","src":"2479:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2471:64:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint))"},"valueType":{"id":23041,"keyType":{"id":23038,"name":"uint256","nodeType":"ElementaryTypeName","src":"2498:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2490:44:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint)"},"valueType":{"id":23040,"nodeType":"UserDefinedTypeName","pathNode":{"id":23039,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23008,"src":"2509:24:76"},"referencedDeclaration":23008,"src":"2509:24:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":23044,"nodeType":"StructuredDocumentation","src":"2583:52:76","text":"@notice The number of checkpoints for each token"},"functionSelector":"aa479652","id":23048,"mutability":"mutable","name":"rewardPerTokenNumCheckpoints","nameLocation":"2675:28:76","nodeType":"VariableDeclaration","scope":24870,"src":"2640:63:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":23047,"keyType":{"id":23045,"name":"address","nodeType":"ElementaryTypeName","src":"2648:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2640:27:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":23046,"name":"uint256","nodeType":"ElementaryTypeName","src":"2659:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":23059,"nodeType":"Block","src":"2741:48:76","statements":[{"expression":{"id":23057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23053,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22949,"src":"2751:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23055,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23050,"src":"2772:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23054,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"2762:9:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":23056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2762:20:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"2751:31:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":23058,"nodeType":"ExpressionStatement","src":"2751:31:76"}]},"id":23060,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":23051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23050,"mutability":"mutable","name":"_registry","nameLocation":"2730:9:76","nodeType":"VariableDeclaration","scope":23060,"src":"2722:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23049,"name":"address","nodeType":"ElementaryTypeName","src":"2722:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2721:19:76"},"returnParameters":{"id":23052,"nodeType":"ParameterList","parameters":[],"src":"2741:0:76"},"scope":24870,"src":"2710:79:76","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":23174,"nodeType":"Block","src":"3295:934:76","statements":[{"assignments":[23071],"declarations":[{"constant":false,"id":23071,"mutability":"mutable","name":"nCheckpoints","nameLocation":"3313:12:76","nodeType":"VariableDeclaration","scope":23174,"src":"3305:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23070,"name":"uint256","nodeType":"ElementaryTypeName","src":"3305:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23075,"initialValue":{"baseExpression":{"id":23072,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23026,"src":"3328:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23074,"indexExpression":{"id":23073,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23063,"src":"3343:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3328:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3305:42:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23076,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23071,"src":"3361:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3377:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3361:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23082,"nodeType":"IfStatement","src":"3357:56:76","trueBody":{"id":23081,"nodeType":"Block","src":"3380:33:76","statements":[{"expression":{"hexValue":"30","id":23079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3401:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":23069,"id":23080,"nodeType":"Return","src":"3394:8:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":23083,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"3470:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":23085,"indexExpression":{"id":23084,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23063,"src":"3482:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3470:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":23089,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23086,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23071,"src":"3487:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3502:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3487:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3470:34:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"id":23090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"3470:44:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":23091,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23065,"src":"3518:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3470:57:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23099,"nodeType":"IfStatement","src":"3466:113:76","trueBody":{"id":23098,"nodeType":"Block","src":"3529:50:76","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23093,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23071,"src":"3551:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3566:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3551:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23096,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3550:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23069,"id":23097,"nodeType":"Return","src":"3543:25:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":23100,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"3637:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":23102,"indexExpression":{"id":23101,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23063,"src":"3649:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3637:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":23104,"indexExpression":{"hexValue":"30","id":23103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3654:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3637:19:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"id":23105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"3637:29:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":23106,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23065,"src":"3669:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3637:41:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23111,"nodeType":"IfStatement","src":"3633:80:76","trueBody":{"id":23110,"nodeType":"Block","src":"3680:33:76","statements":[{"expression":{"hexValue":"30","id":23108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3701:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":23069,"id":23109,"nodeType":"Return","src":"3694:8:76"}]}},{"assignments":[23113],"declarations":[{"constant":false,"id":23113,"mutability":"mutable","name":"lower","nameLocation":"3731:5:76","nodeType":"VariableDeclaration","scope":23174,"src":"3723:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23112,"name":"uint256","nodeType":"ElementaryTypeName","src":"3723:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23115,"initialValue":{"hexValue":"30","id":23114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3739:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3723:17:76"},{"assignments":[23117],"declarations":[{"constant":false,"id":23117,"mutability":"mutable","name":"upper","nameLocation":"3758:5:76","nodeType":"VariableDeclaration","scope":23174,"src":"3750:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23116,"name":"uint256","nodeType":"ElementaryTypeName","src":"3750:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23121,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23118,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23071,"src":"3766:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3781:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3766:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3750:32:76"},{"body":{"id":23170,"nodeType":"Block","src":"3814:387:76","statements":[{"assignments":[23126],"declarations":[{"constant":false,"id":23126,"mutability":"mutable","name":"center","nameLocation":"3836:6:76","nodeType":"VariableDeclaration","scope":23170,"src":"3828:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23125,"name":"uint256","nodeType":"ElementaryTypeName","src":"3828:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23135,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23127,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23117,"src":"3845:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23128,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23117,"src":"3854:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":23129,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23113,"src":"3862:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3854:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3853:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":23132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3871:1:76","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3853:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3845:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3828:44:76"},{"assignments":[23138],"declarations":[{"constant":false,"id":23138,"mutability":"mutable","name":"cp","nameLocation":"3931:2:76","nodeType":"VariableDeclaration","scope":23170,"src":"3913:20:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint"},"typeName":{"id":23137,"nodeType":"UserDefinedTypeName","pathNode":{"id":23136,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":23003,"src":"3913:10:76"},"referencedDeclaration":23003,"src":"3913:10:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage_ptr","typeString":"struct BaseV2Bribes.Checkpoint"}},"visibility":"internal"}],"id":23144,"initialValue":{"baseExpression":{"baseExpression":{"id":23139,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"3936:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":23141,"indexExpression":{"id":23140,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23063,"src":"3948:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3936:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":23143,"indexExpression":{"id":23142,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23126,"src":"3953:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3936:24:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3913:47:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23145,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23138,"src":"3978:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"id":23146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"3978:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23147,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23065,"src":"3994:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3978:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23152,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23138,"src":"4061:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"id":23153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"4061:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":23154,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23065,"src":"4076:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4061:24:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":23167,"nodeType":"Block","src":"4140:51:76","statements":[{"expression":{"id":23165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23161,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23117,"src":"4158:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23162,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23126,"src":"4166:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4175:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4166:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4158:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23166,"nodeType":"ExpressionStatement","src":"4158:18:76"}]},"id":23168,"nodeType":"IfStatement","src":"4057:134:76","trueBody":{"id":23160,"nodeType":"Block","src":"4087:47:76","statements":[{"expression":{"id":23158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23156,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23113,"src":"4105:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23157,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23126,"src":"4113:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4105:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23159,"nodeType":"ExpressionStatement","src":"4105:14:76"}]}},"id":23169,"nodeType":"IfStatement","src":"3974:217:76","trueBody":{"id":23151,"nodeType":"Block","src":"4005:46:76","statements":[{"expression":{"id":23149,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23126,"src":"4030:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23069,"id":23150,"nodeType":"Return","src":"4023:13:76"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23122,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23117,"src":"3799:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":23123,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23113,"src":"3807:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3799:13:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23171,"nodeType":"WhileStatement","src":"3792:409:76"},{"expression":{"id":23172,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23113,"src":"4217:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23069,"id":23173,"nodeType":"Return","src":"4210:12:76"}]},"documentation":{"id":23061,"nodeType":"StructuredDocumentation","src":"2795:375:76","text":" @notice Determine the prior balance for an account as of a block number\n @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n @param who The token of the NFT to check\n @param timestamp The timestamp to get the balance at\n @return The balance the account had as of the given block"},"functionSelector":"115c6f39","id":23175,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorBalanceIndex","nameLocation":"3184:20:76","nodeType":"FunctionDefinition","parameters":{"id":23066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23063,"mutability":"mutable","name":"who","nameLocation":"3213:3:76","nodeType":"VariableDeclaration","scope":23175,"src":"3205:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23062,"name":"address","nodeType":"ElementaryTypeName","src":"3205:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23065,"mutability":"mutable","name":"timestamp","nameLocation":"3226:9:76","nodeType":"VariableDeclaration","scope":23175,"src":"3218:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23064,"name":"uint256","nodeType":"ElementaryTypeName","src":"3218:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3204:32:76"},"returnParameters":{"id":23069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23175,"src":"3282:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23067,"name":"uint256","nodeType":"ElementaryTypeName","src":"3282:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3281:9:76"},"scope":24870,"src":"3175:1054:76","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":23278,"nodeType":"Block","src":"4341:944:76","statements":[{"assignments":[23183],"declarations":[{"constant":false,"id":23183,"mutability":"mutable","name":"nCheckpoints","nameLocation":"4359:12:76","nodeType":"VariableDeclaration","scope":23278,"src":"4351:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23182,"name":"uint256","nodeType":"ElementaryTypeName","src":"4351:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23185,"initialValue":{"id":23184,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"4374:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4351:43:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23186,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23183,"src":"4408:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4424:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4408:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23192,"nodeType":"IfStatement","src":"4404:56:76","trueBody":{"id":23191,"nodeType":"Block","src":"4427:33:76","statements":[{"expression":{"hexValue":"30","id":23189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4448:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":23181,"id":23190,"nodeType":"Return","src":"4441:8:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":23193,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"4517:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23197,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23194,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23183,"src":"4535:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4550:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4535:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4517:35:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"id":23198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"4517:45:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":23199,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23177,"src":"4566:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4517:58:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23207,"nodeType":"IfStatement","src":"4513:114:76","trueBody":{"id":23206,"nodeType":"Block","src":"4577:50:76","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23201,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23183,"src":"4599:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4614:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4599:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23204,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4598:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23181,"id":23205,"nodeType":"Return","src":"4591:25:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":23208,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"4685:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23210,"indexExpression":{"hexValue":"30","id":23209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4703:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4685:20:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"id":23211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"4685:30:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":23212,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23177,"src":"4718:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4685:42:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23217,"nodeType":"IfStatement","src":"4681:81:76","trueBody":{"id":23216,"nodeType":"Block","src":"4729:33:76","statements":[{"expression":{"hexValue":"30","id":23214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4750:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":23181,"id":23215,"nodeType":"Return","src":"4743:8:76"}]}},{"assignments":[23219],"declarations":[{"constant":false,"id":23219,"mutability":"mutable","name":"lower","nameLocation":"4780:5:76","nodeType":"VariableDeclaration","scope":23278,"src":"4772:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23218,"name":"uint256","nodeType":"ElementaryTypeName","src":"4772:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23221,"initialValue":{"hexValue":"30","id":23220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4788:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4772:17:76"},{"assignments":[23223],"declarations":[{"constant":false,"id":23223,"mutability":"mutable","name":"upper","nameLocation":"4807:5:76","nodeType":"VariableDeclaration","scope":23278,"src":"4799:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23222,"name":"uint256","nodeType":"ElementaryTypeName","src":"4799:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23227,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23224,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23183,"src":"4815:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4830:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4815:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4799:32:76"},{"body":{"id":23274,"nodeType":"Block","src":"4863:394:76","statements":[{"assignments":[23232],"declarations":[{"constant":false,"id":23232,"mutability":"mutable","name":"center","nameLocation":"4885:6:76","nodeType":"VariableDeclaration","scope":23274,"src":"4877:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23231,"name":"uint256","nodeType":"ElementaryTypeName","src":"4877:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23241,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23233,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23223,"src":"4894:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23234,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23223,"src":"4903:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":23235,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23219,"src":"4911:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4903:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23237,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4902:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":23238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4920:1:76","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4902:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4894:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4877:44:76"},{"assignments":[23244],"declarations":[{"constant":false,"id":23244,"mutability":"mutable","name":"cp","nameLocation":"4986:2:76","nodeType":"VariableDeclaration","scope":23274,"src":"4962:26:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"},"typeName":{"id":23243,"nodeType":"UserDefinedTypeName","pathNode":{"id":23242,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23013,"src":"4962:16:76"},"referencedDeclaration":23013,"src":"4962:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":23248,"initialValue":{"baseExpression":{"id":23245,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"4991:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23247,"indexExpression":{"id":23246,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23232,"src":"5009:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4991:25:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4962:54:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23249,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23244,"src":"5034:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":23250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"5034:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23251,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23177,"src":"5050:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5034:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23256,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23244,"src":"5117:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":23257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"5117:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":23258,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23177,"src":"5132:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5117:24:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":23271,"nodeType":"Block","src":"5196:51:76","statements":[{"expression":{"id":23269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23265,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23223,"src":"5214:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23266,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23232,"src":"5222:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5231:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5222:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5214:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23270,"nodeType":"ExpressionStatement","src":"5214:18:76"}]},"id":23272,"nodeType":"IfStatement","src":"5113:134:76","trueBody":{"id":23264,"nodeType":"Block","src":"5143:47:76","statements":[{"expression":{"id":23262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23260,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23219,"src":"5161:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23261,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23232,"src":"5169:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5161:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23263,"nodeType":"ExpressionStatement","src":"5161:14:76"}]}},"id":23273,"nodeType":"IfStatement","src":"5030:217:76","trueBody":{"id":23255,"nodeType":"Block","src":"5061:46:76","statements":[{"expression":{"id":23253,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23232,"src":"5086:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23181,"id":23254,"nodeType":"Return","src":"5079:13:76"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23228,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23223,"src":"4848:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":23229,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23219,"src":"4856:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4848:13:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23275,"nodeType":"WhileStatement","src":"4841:416:76"},{"expression":{"id":23276,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23219,"src":"5273:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23181,"id":23277,"nodeType":"Return","src":"5266:12:76"}]},"functionSelector":"76f4be36","id":23279,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorSupplyIndex","nameLocation":"4244:19:76","nodeType":"FunctionDefinition","parameters":{"id":23178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23177,"mutability":"mutable","name":"timestamp","nameLocation":"4272:9:76","nodeType":"VariableDeclaration","scope":23279,"src":"4264:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23176,"name":"uint256","nodeType":"ElementaryTypeName","src":"4264:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4263:19:76"},"returnParameters":{"id":23181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23279,"src":"4328:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23179,"name":"uint256","nodeType":"ElementaryTypeName","src":"4328:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4327:9:76"},"scope":24870,"src":"4235:1050:76","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":23427,"nodeType":"Block","src":"5424:1427:76","statements":[{"assignments":[23291],"declarations":[{"constant":false,"id":23291,"mutability":"mutable","name":"nCheckpoints","nameLocation":"5442:12:76","nodeType":"VariableDeclaration","scope":23427,"src":"5434:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23290,"name":"uint256","nodeType":"ElementaryTypeName","src":"5434:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23295,"initialValue":{"baseExpression":{"id":23292,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23048,"src":"5457:28:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23294,"indexExpression":{"id":23293,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"5486:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5457:35:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5434:58:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23296,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23291,"src":"5506:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5522:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5506:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23304,"nodeType":"IfStatement","src":"5502:61:76","trueBody":{"id":23303,"nodeType":"Block","src":"5525:38:76","statements":[{"expression":{"components":[{"hexValue":"30","id":23299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5547:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":23300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5550:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":23301,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5546:6:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":23289,"id":23302,"nodeType":"Return","src":"5539:13:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":23305,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"5633:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23307,"indexExpression":{"id":23306,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"5659:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5633:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23311,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23308,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23291,"src":"5666:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5681:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5666:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5633:50:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"5633:60:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":23313,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23283,"src":"5709:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5633:85:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23334,"nodeType":"IfStatement","src":"5616:341:76","trueBody":{"id":23333,"nodeType":"Block","src":"5729:228:76","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":23315,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"5768:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23317,"indexExpression":{"id":23316,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"5794:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5768:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23321,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23318,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23291,"src":"5801:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5816:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5801:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5768:50:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":23007,"src":"5768:86:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":23323,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"5872:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23325,"indexExpression":{"id":23324,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"5898:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5872:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23329,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23326,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23291,"src":"5905:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5905:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5872:50:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"5872:60:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23331,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5750:196:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":23289,"id":23332,"nodeType":"Return","src":"5743:203:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":23335,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"6015:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23337,"indexExpression":{"id":23336,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"6041:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6015:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23339,"indexExpression":{"hexValue":"30","id":23338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6048:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6015:35:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"6015:45:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":23341,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23283,"src":"6063:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6015:57:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23348,"nodeType":"IfStatement","src":"6011:101:76","trueBody":{"id":23347,"nodeType":"Block","src":"6074:38:76","statements":[{"expression":{"components":[{"hexValue":"30","id":23343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6096:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":23344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6099:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":23345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6095:6:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":23289,"id":23346,"nodeType":"Return","src":"6088:13:76"}]}},{"assignments":[23350],"declarations":[{"constant":false,"id":23350,"mutability":"mutable","name":"lower","nameLocation":"6130:5:76","nodeType":"VariableDeclaration","scope":23427,"src":"6122:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23349,"name":"uint256","nodeType":"ElementaryTypeName","src":"6122:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23352,"initialValue":{"hexValue":"30","id":23351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6138:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6122:17:76"},{"assignments":[23354],"declarations":[{"constant":false,"id":23354,"mutability":"mutable","name":"upper","nameLocation":"6157:5:76","nodeType":"VariableDeclaration","scope":23427,"src":"6149:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23353,"name":"uint256","nodeType":"ElementaryTypeName","src":"6149:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23358,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23355,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23291,"src":"6165:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6180:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6165:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6149:32:76"},{"body":{"id":23411,"nodeType":"Block","src":"6213:474:76","statements":[{"assignments":[23363],"declarations":[{"constant":false,"id":23363,"mutability":"mutable","name":"center","nameLocation":"6235:6:76","nodeType":"VariableDeclaration","scope":23411,"src":"6227:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23362,"name":"uint256","nodeType":"ElementaryTypeName","src":"6227:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23372,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23364,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23354,"src":"6244:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23365,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23354,"src":"6253:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":23366,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23350,"src":"6261:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6253:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6252:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":23369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:76","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6252:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6244:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6227:44:76"},{"assignments":[23375],"declarations":[{"constant":false,"id":23375,"mutability":"mutable","name":"cp","nameLocation":"6344:2:76","nodeType":"VariableDeclaration","scope":23411,"src":"6312:34:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_memory_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint"},"typeName":{"id":23374,"nodeType":"UserDefinedTypeName","pathNode":{"id":23373,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23008,"src":"6312:24:76"},"referencedDeclaration":23008,"src":"6312:24:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint"}},"visibility":"internal"}],"id":23381,"initialValue":{"baseExpression":{"baseExpression":{"id":23376,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"6349:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23378,"indexExpression":{"id":23377,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"6392:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6349:62:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23380,"indexExpression":{"id":23379,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23363,"src":"6412:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6349:70:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6312:107:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23382,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23375,"src":"6437:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_memory_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint memory"}},"id":23383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"6437:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23384,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23283,"src":"6453:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6437:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23393,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23375,"src":"6547:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_memory_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint memory"}},"id":23394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"6547:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":23395,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23283,"src":"6562:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6547:24:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":23408,"nodeType":"Block","src":"6626:51:76","statements":[{"expression":{"id":23406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23402,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23354,"src":"6644:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23403,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23363,"src":"6652:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6661:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6652:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6644:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23407,"nodeType":"ExpressionStatement","src":"6644:18:76"}]},"id":23409,"nodeType":"IfStatement","src":"6543:134:76","trueBody":{"id":23401,"nodeType":"Block","src":"6573:47:76","statements":[{"expression":{"id":23399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23397,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23350,"src":"6591:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23398,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23363,"src":"6599:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6591:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23400,"nodeType":"ExpressionStatement","src":"6591:14:76"}]}},"id":23410,"nodeType":"IfStatement","src":"6433:244:76","trueBody":{"id":23392,"nodeType":"Block","src":"6464:73:76","statements":[{"expression":{"components":[{"expression":{"id":23386,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23375,"src":"6490:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_memory_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint memory"}},"id":23387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":23007,"src":"6490:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":23388,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23375,"src":"6509:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_memory_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint memory"}},"id":23389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"6509:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23390,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6489:33:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":23289,"id":23391,"nodeType":"Return","src":"6482:40:76"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23359,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23354,"src":"6198:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":23360,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23350,"src":"6206:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6198:13:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23412,"nodeType":"WhileStatement","src":"6191:496:76"},{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":23413,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"6717:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23415,"indexExpression":{"id":23414,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"6743:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6717:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23417,"indexExpression":{"id":23416,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23350,"src":"6750:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6717:39:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":23007,"src":"6717:54:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":23419,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"6785:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23421,"indexExpression":{"id":23420,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23281,"src":"6811:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6785:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23423,"indexExpression":{"id":23422,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23350,"src":"6818:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6785:39:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"6785:49:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6703:141:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":23289,"id":23426,"nodeType":"Return","src":"6696:148:76"}]},"functionSelector":"fd314098","id":23428,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorRewardPerToken","nameLocation":"5300:22:76","nodeType":"FunctionDefinition","parameters":{"id":23284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23281,"mutability":"mutable","name":"token","nameLocation":"5331:5:76","nodeType":"VariableDeclaration","scope":23428,"src":"5323:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23280,"name":"address","nodeType":"ElementaryTypeName","src":"5323:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23283,"mutability":"mutable","name":"timestamp","nameLocation":"5346:9:76","nodeType":"VariableDeclaration","scope":23428,"src":"5338:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23282,"name":"uint256","nodeType":"ElementaryTypeName","src":"5338:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5322:34:76"},"returnParameters":{"id":23289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23428,"src":"5402:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23285,"name":"uint256","nodeType":"ElementaryTypeName","src":"5402:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23428,"src":"5411:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23287,"name":"uint256","nodeType":"ElementaryTypeName","src":"5411:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5401:18:76"},"scope":24870,"src":"5291:1560:76","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":23493,"nodeType":"Block","src":"6922:465:76","statements":[{"assignments":[23436],"declarations":[{"constant":false,"id":23436,"mutability":"mutable","name":"_timestamp","nameLocation":"6940:10:76","nodeType":"VariableDeclaration","scope":23493,"src":"6932:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23435,"name":"uint256","nodeType":"ElementaryTypeName","src":"6932:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23439,"initialValue":{"expression":{"id":23437,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6953:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":23438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6953:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6932:36:76"},{"assignments":[23441],"declarations":[{"constant":false,"id":23441,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"6986:13:76","nodeType":"VariableDeclaration","scope":23493,"src":"6978:21:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23440,"name":"uint256","nodeType":"ElementaryTypeName","src":"6978:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23445,"initialValue":{"baseExpression":{"id":23442,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23026,"src":"7002:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23444,"indexExpression":{"id":23443,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23430,"src":"7017:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7002:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6978:43:76"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23446,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23441,"src":"7049:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7065:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7049:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":23449,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"7082:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":23451,"indexExpression":{"id":23450,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23430,"src":"7094:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7082:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":23455,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23452,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23441,"src":"7099:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7115:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7099:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7082:35:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"id":23456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"7082:45:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23457,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23436,"src":"7131:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7082:59:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7049:92:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":23491,"nodeType":"Block","src":"7238:143:76","statements":[{"expression":{"id":23481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":23472,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"7252:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":23475,"indexExpression":{"id":23473,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23430,"src":"7264:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7252:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":23476,"indexExpression":{"id":23474,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23441,"src":"7269:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7252:31:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23478,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23436,"src":"7297:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23479,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23432,"src":"7309:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23477,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23003,"src":"7286:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$23003_storage_ptr_$","typeString":"type(struct BaseV2Bribes.Checkpoint storage pointer)"}},"id":23480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7286:31:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"src":"7252:65:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"id":23482,"nodeType":"ExpressionStatement","src":"7252:65:76"},{"expression":{"id":23489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":23483,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23026,"src":"7331:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23485,"indexExpression":{"id":23484,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23430,"src":"7346:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7331:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23486,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23441,"src":"7353:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":23487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7369:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7353:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7331:39:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23490,"nodeType":"ExpressionStatement","src":"7331:39:76"}]},"id":23492,"nodeType":"IfStatement","src":"7032:349:76","trueBody":{"id":23471,"nodeType":"Block","src":"7152:80:76","statements":[{"expression":{"id":23469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":23460,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"7166:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":23465,"indexExpression":{"id":23461,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23430,"src":"7178:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7166:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":23466,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23462,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23441,"src":"7183:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7199:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7183:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7166:35:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"id":23467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":23002,"src":"7166:45:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23468,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23432,"src":"7214:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7166:55:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23470,"nodeType":"ExpressionStatement","src":"7166:55:76"}]}}]},"id":23494,"implemented":true,"kind":"function","modifiers":[],"name":"_writeCheckpoint","nameLocation":"6866:16:76","nodeType":"FunctionDefinition","parameters":{"id":23433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23430,"mutability":"mutable","name":"who","nameLocation":"6891:3:76","nodeType":"VariableDeclaration","scope":23494,"src":"6883:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23429,"name":"address","nodeType":"ElementaryTypeName","src":"6883:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23432,"mutability":"mutable","name":"balance","nameLocation":"6904:7:76","nodeType":"VariableDeclaration","scope":23494,"src":"6896:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23431,"name":"uint256","nodeType":"ElementaryTypeName","src":"6896:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6882:30:76"},"returnParameters":{"id":23434,"nodeType":"ParameterList","parameters":[],"src":"6922:0:76"},"scope":24870,"src":"6857:530:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":23556,"nodeType":"Block","src":"7522:573:76","statements":[{"assignments":[23504],"declarations":[{"constant":false,"id":23504,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"7540:13:76","nodeType":"VariableDeclaration","scope":23556,"src":"7532:21:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23503,"name":"uint256","nodeType":"ElementaryTypeName","src":"7532:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23508,"initialValue":{"baseExpression":{"id":23505,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23048,"src":"7556:28:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23507,"indexExpression":{"id":23506,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23496,"src":"7585:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7556:35:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7532:59:76"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23509,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23504,"src":"7619:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7635:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7619:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":23512,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"7652:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23514,"indexExpression":{"id":23513,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23496,"src":"7678:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7652:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23518,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23515,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23504,"src":"7685:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7701:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7685:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7652:51:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"7652:61:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23520,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23500,"src":"7729:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7652:86:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7619:119:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":23554,"nodeType":"Block","src":"7872:217:76","statements":[{"expression":{"id":23544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":23535,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"7886:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23538,"indexExpression":{"id":23536,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23496,"src":"7912:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7886:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23539,"indexExpression":{"id":23537,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23504,"src":"7936:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7886:77:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23541,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23500,"src":"7991:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23542,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23498,"src":"8002:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23540,"name":"RewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23008,"src":"7966:24:76","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_ptr_$","typeString":"type(struct BaseV2Bribes.RewardPerTokenCheckpoint storage pointer)"}},"id":23543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7966:43:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_memory_ptr","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint memory"}},"src":"7886:123:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23545,"nodeType":"ExpressionStatement","src":"7886:123:76"},{"expression":{"id":23552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":23546,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23048,"src":"8023:28:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23548,"indexExpression":{"id":23547,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23496,"src":"8052:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8023:35:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23549,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23504,"src":"8061:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":23550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8077:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8061:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8023:55:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23553,"nodeType":"ExpressionStatement","src":"8023:55:76"}]},"id":23555,"nodeType":"IfStatement","src":"7602:487:76","trueBody":{"id":23534,"nodeType":"Block","src":"7749:117:76","statements":[{"expression":{"id":23532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":23523,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"7763:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":23528,"indexExpression":{"id":23524,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23496,"src":"7789:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7763:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":23529,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23525,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23504,"src":"7796:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7812:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7796:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7763:51:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":23530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":23007,"src":"7763:83:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23531,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23498,"src":"7849:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7763:92:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23533,"nodeType":"ExpressionStatement","src":"7763:92:76"}]}}]},"id":23557,"implemented":true,"kind":"function","modifiers":[],"name":"_writeRewardPerTokenCheckpoint","nameLocation":"7402:30:76","nodeType":"FunctionDefinition","parameters":{"id":23501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23496,"mutability":"mutable","name":"token","nameLocation":"7450:5:76","nodeType":"VariableDeclaration","scope":23557,"src":"7442:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23495,"name":"address","nodeType":"ElementaryTypeName","src":"7442:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23498,"mutability":"mutable","name":"reward","nameLocation":"7473:6:76","nodeType":"VariableDeclaration","scope":23557,"src":"7465:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23497,"name":"uint256","nodeType":"ElementaryTypeName","src":"7465:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23500,"mutability":"mutable","name":"timestamp","nameLocation":"7497:9:76","nodeType":"VariableDeclaration","scope":23557,"src":"7489:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23499,"name":"uint256","nodeType":"ElementaryTypeName","src":"7489:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7432:80:76"},"returnParameters":{"id":23502,"nodeType":"ParameterList","parameters":[],"src":"7522:0:76"},"scope":24870,"src":"7393:702:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":23608,"nodeType":"Block","src":"8144:527:76","statements":[{"assignments":[23561],"declarations":[{"constant":false,"id":23561,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"8162:13:76","nodeType":"VariableDeclaration","scope":23608,"src":"8154:21:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23560,"name":"uint256","nodeType":"ElementaryTypeName","src":"8154:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23563,"initialValue":{"id":23562,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"8178:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8154:44:76"},{"assignments":[23565],"declarations":[{"constant":false,"id":23565,"mutability":"mutable","name":"_timestamp","nameLocation":"8216:10:76","nodeType":"VariableDeclaration","scope":23608,"src":"8208:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23564,"name":"uint256","nodeType":"ElementaryTypeName","src":"8208:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23568,"initialValue":{"expression":{"id":23566,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8229:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":23567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8229:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8208:36:76"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23569,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23561,"src":"8272:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8288:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8272:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":23572,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"8305:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23576,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23573,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23561,"src":"8323:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8339:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8323:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8305:36:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"id":23577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"8305:46:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23578,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23565,"src":"8355:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8305:60:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8272:93:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":23606,"nodeType":"Block","src":"8464:201:76","statements":[{"expression":{"id":23598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":23591,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"8478:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23593,"indexExpression":{"id":23592,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23561,"src":"8496:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8478:32:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23595,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23565,"src":"8547:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23596,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22994,"src":"8575:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23594,"name":"SupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23013,"src":"8513:16:76","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SupplyCheckpoint_$23013_storage_ptr_$","typeString":"type(struct BaseV2Bribes.SupplyCheckpoint storage pointer)"}},"id":23597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8513:87:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"src":"8478:122:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"id":23599,"nodeType":"ExpressionStatement","src":"8478:122:76"},{"expression":{"id":23604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23600,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"8614:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23601,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23561,"src":"8637:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":23602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8653:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8637:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8614:40:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23605,"nodeType":"ExpressionStatement","src":"8614:40:76"}]},"id":23607,"nodeType":"IfStatement","src":"8255:410:76","trueBody":{"id":23590,"nodeType":"Block","src":"8376:82:76","statements":[{"expression":{"id":23588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":23581,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"8390:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23585,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23582,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23561,"src":"8408:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8424:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8408:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8390:36:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"id":23586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":23012,"src":"8390:43:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23587,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22994,"src":"8436:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8390:57:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23589,"nodeType":"ExpressionStatement","src":"8390:57:76"}]}}]},"id":23609,"implemented":true,"kind":"function","modifiers":[],"name":"_writeSupplyCheckpoint","nameLocation":"8110:22:76","nodeType":"FunctionDefinition","parameters":{"id":23558,"nodeType":"ParameterList","parameters":[],"src":"8132:2:76"},"returnParameters":{"id":23559,"nodeType":"ParameterList","parameters":[],"src":"8144:0:76"},"scope":24870,"src":"8101:570:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":23617,"nodeType":"Block","src":"8738:38:76","statements":[{"expression":{"expression":{"id":23614,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22988,"src":"8755:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":23615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8755:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23613,"id":23616,"nodeType":"Return","src":"8748:21:76"}]},"functionSelector":"e6886396","id":23618,"implemented":true,"kind":"function","modifiers":[],"name":"rewardsListLength","nameLocation":"8686:17:76","nodeType":"FunctionDefinition","parameters":{"id":23610,"nodeType":"ParameterList","parameters":[],"src":"8703:2:76"},"returnParameters":{"id":23613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23618,"src":"8729:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23611,"name":"uint256","nodeType":"ElementaryTypeName","src":"8729:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8728:9:76"},"scope":24870,"src":"8677:99:76","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":23634,"nodeType":"Block","src":"8982:70:76","statements":[{"expression":{"arguments":[{"expression":{"id":23627,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9008:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":23628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9008:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":23629,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"9025:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23631,"indexExpression":{"id":23630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23620,"src":"9038:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9025:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23625,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"8999:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":23626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"8999:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":23632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8999:46:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23624,"id":23633,"nodeType":"Return","src":"8992:53:76"}]},"functionSelector":"638634ee","id":23635,"implemented":true,"kind":"function","modifiers":[],"name":"lastTimeRewardApplicable","nameLocation":"8884:24:76","nodeType":"FunctionDefinition","parameters":{"id":23621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23620,"mutability":"mutable","name":"token","nameLocation":"8917:5:76","nodeType":"VariableDeclaration","scope":23635,"src":"8909:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23619,"name":"address","nodeType":"ElementaryTypeName","src":"8909:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8908:15:76"},"returnParameters":{"id":23624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23635,"src":"8969:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23622,"name":"uint256","nodeType":"ElementaryTypeName","src":"8969:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8968:9:76"},"scope":24870,"src":"8875:177:76","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":23733,"nodeType":"Block","src":"9180:616:76","statements":[{"body":{"id":23731,"nodeType":"Block","src":"9234:556:76","statements":[{"expression":{"id":23670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":23654,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"9266:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23658,"indexExpression":{"baseExpression":{"id":23655,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9287:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23657,"indexExpression":{"id":23656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9294:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9287:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9266:31:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":23659,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22969,"src":"9315:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23663,"indexExpression":{"baseExpression":{"id":23660,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9330:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23662,"indexExpression":{"id":23661,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9337:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9330:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9315:25:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23664,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9248:106:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":23666,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9379:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23668,"indexExpression":{"id":23667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9386:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9379:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23665,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24273,"src":"9357:21:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":23669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9357:32:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"9248:141:76","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23671,"nodeType":"ExpressionStatement","src":"9248:141:76"},{"assignments":[23673],"declarations":[{"constant":false,"id":23673,"mutability":"mutable","name":"_reward","nameLocation":"9412:7:76","nodeType":"VariableDeclaration","scope":23731,"src":"9404:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23672,"name":"uint256","nodeType":"ElementaryTypeName","src":"9404:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23681,"initialValue":{"arguments":[{"baseExpression":{"id":23675,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9429:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23677,"indexExpression":{"id":23676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9436:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9429:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23678,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9440:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":23679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9440:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":23674,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24440,"src":"9422:6:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":23680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9422:29:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9404:47:76"},{"expression":{"id":23692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":23682,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22979,"src":"9465:8:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":23688,"indexExpression":{"baseExpression":{"id":23683,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9474:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23685,"indexExpression":{"id":23684,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9481:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9474:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:19:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23689,"indexExpression":{"expression":{"id":23686,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9485:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":23687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9485:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9465:31:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23690,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9499:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":23691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9499:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9465:49:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23693,"nodeType":"ExpressionStatement","src":"9465:49:76"},{"expression":{"id":23707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":23694,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22985,"src":"9528:24:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":23700,"indexExpression":{"baseExpression":{"id":23695,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9553:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23697,"indexExpression":{"id":23696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9560:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9553:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9528:35:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23701,"indexExpression":{"expression":{"id":23698,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9581:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":23699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9581:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9528:77:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":23702,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"9608:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23706,"indexExpression":{"baseExpression":{"id":23703,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9629:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23705,"indexExpression":{"id":23704,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9636:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9629:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9608:31:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9528:111:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23708,"nodeType":"ExpressionStatement","src":"9528:111:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23709,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"9657:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9667:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9657:11:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23721,"nodeType":"IfStatement","src":"9653:62:76","trueBody":{"expression":{"arguments":[{"baseExpression":{"id":23713,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9684:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23715,"indexExpression":{"id":23714,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9691:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9684:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23716,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9695:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":23717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9695:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23718,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"9707:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23712,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24812,"src":"9670:13:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9670:45:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23720,"nodeType":"ExpressionStatement","src":"9670:45:76"}},{"eventCall":{"arguments":[{"expression":{"id":23723,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9748:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":23724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9748:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":23725,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9760:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23727,"indexExpression":{"id":23726,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9767:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9760:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23728,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"9771:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23722,"name":"ClaimRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33970,"src":"9735:12:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9735:44:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23730,"nodeType":"EmitStatement","src":"9730:49:76"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23647,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9210:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":23648,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23638,"src":"9214:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9214:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9210:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23732,"initializationExpression":{"assignments":[23644],"declarations":[{"constant":false,"id":23644,"mutability":"mutable","name":"i","nameLocation":"9203:1:76","nodeType":"VariableDeclaration","scope":23732,"src":"9195:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23643,"name":"uint256","nodeType":"ElementaryTypeName","src":"9195:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23646,"initialValue":{"hexValue":"30","id":23645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9207:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9195:13:76"},"loopExpression":{"expression":{"id":23652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9229:3:76","subExpression":{"id":23651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23644,"src":"9229:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23653,"nodeType":"ExpressionStatement","src":"9229:3:76"},"nodeType":"ForStatement","src":"9190:600:76"}]},"functionSelector":"7fd7d062","id":23734,"implemented":true,"kind":"function","modifiers":[{"id":23641,"kind":"modifierInvocation","modifierName":{"id":23640,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"9167:12:76"},"nodeType":"ModifierInvocation","src":"9167:12:76"}],"name":"getReward","nameLocation":"9123:9:76","nodeType":"FunctionDefinition","parameters":{"id":23639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23638,"mutability":"mutable","name":"tokens","nameLocation":"9150:6:76","nodeType":"VariableDeclaration","scope":23734,"src":"9133:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":23636,"name":"address","nodeType":"ElementaryTypeName","src":"9133:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":23637,"nodeType":"ArrayTypeName","src":"9133:9:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9132:25:76"},"returnParameters":{"id":23642,"nodeType":"ParameterList","parameters":[],"src":"9180:0:76"},"scope":24870,"src":"9114:682:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[33938],"body":{"id":23840,"nodeType":"Block","src":"9987:663:76","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23746,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10005:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":23747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10005:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23748,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22949,"src":"10019:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":23749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"10019:19:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":23750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10019:21:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10005:35:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420766f746572","id":23752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10042:11:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""},"value":"not voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""}],"id":23745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9997:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9997:57:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23754,"nodeType":"ExpressionStatement","src":"9997:57:76"},{"body":{"id":23838,"nodeType":"Block","src":"10108:536:76","statements":[{"expression":{"id":23782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":23766,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"10140:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23770,"indexExpression":{"baseExpression":{"id":23767,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10161:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23769,"indexExpression":{"id":23768,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10168:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10161:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10140:31:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":23771,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22969,"src":"10189:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23775,"indexExpression":{"baseExpression":{"id":23772,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10204:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23774,"indexExpression":{"id":23773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10211:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10204:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10189:25:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23776,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10122:106:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":23778,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10253:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23780,"indexExpression":{"id":23779,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10260:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10253:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23777,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24273,"src":"10231:21:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":23781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10231:32:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"10122:141:76","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23783,"nodeType":"ExpressionStatement","src":"10122:141:76"},{"assignments":[23785],"declarations":[{"constant":false,"id":23785,"mutability":"mutable","name":"_reward","nameLocation":"10286:7:76","nodeType":"VariableDeclaration","scope":23838,"src":"10278:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23784,"name":"uint256","nodeType":"ElementaryTypeName","src":"10278:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23792,"initialValue":{"arguments":[{"baseExpression":{"id":23787,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10303:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23789,"indexExpression":{"id":23788,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10310:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10303:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23790,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"10314:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":23786,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24440,"src":"10296:6:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":23791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10296:25:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10278:43:76"},{"expression":{"id":23802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":23793,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22979,"src":"10335:8:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":23798,"indexExpression":{"baseExpression":{"id":23794,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10344:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23796,"indexExpression":{"id":23795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10351:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10344:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10335:19:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23799,"indexExpression":{"id":23797,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"10355:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10335:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23800,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10365:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":23801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10365:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10335:45:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23803,"nodeType":"ExpressionStatement","src":"10335:45:76"},{"expression":{"id":23816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":23804,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22985,"src":"10394:24:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":23809,"indexExpression":{"baseExpression":{"id":23805,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10419:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23807,"indexExpression":{"id":23806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10426:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10419:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10394:35:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23810,"indexExpression":{"id":23808,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"10430:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10394:43:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":23811,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"10440:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23815,"indexExpression":{"baseExpression":{"id":23812,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10478:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23814,"indexExpression":{"id":23813,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10485:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10478:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10440:61:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10394:107:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23817,"nodeType":"ExpressionStatement","src":"10394:107:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23818,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23785,"src":"10519:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10529:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10519:11:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23829,"nodeType":"IfStatement","src":"10515:58:76","trueBody":{"expression":{"arguments":[{"baseExpression":{"id":23822,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10546:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23824,"indexExpression":{"id":23823,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10553:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10546:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23825,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"10557:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23826,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23785,"src":"10565:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23821,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24812,"src":"10532:13:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10532:41:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23828,"nodeType":"ExpressionStatement","src":"10532:41:76"}},{"eventCall":{"arguments":[{"id":23831,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"10606:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":23832,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10614:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23834,"indexExpression":{"id":23833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10621:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10614:9:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23835,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23785,"src":"10625:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23830,"name":"ClaimRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33970,"src":"10593:12:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10593:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23837,"nodeType":"EmitStatement","src":"10588:45:76"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10084:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":23760,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23739,"src":"10088:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":23761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10088:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23839,"initializationExpression":{"assignments":[23756],"declarations":[{"constant":false,"id":23756,"mutability":"mutable","name":"i","nameLocation":"10077:1:76","nodeType":"VariableDeclaration","scope":23839,"src":"10069:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23755,"name":"uint256","nodeType":"ElementaryTypeName","src":"10069:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23758,"initialValue":{"hexValue":"30","id":23757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10081:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10069:13:76"},"loopExpression":{"expression":{"id":23764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10103:3:76","subExpression":{"id":23763,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23756,"src":"10103:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23765,"nodeType":"ExpressionStatement","src":"10103:3:76"},"nodeType":"ForStatement","src":"10064:580:76"}]},"functionSelector":"e943da8a","id":23841,"implemented":true,"kind":"function","modifiers":[{"id":23743,"kind":"modifierInvocation","modifierName":{"id":23742,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"9970:12:76"},"nodeType":"ModifierInvocation","src":"9970:12:76"}],"name":"getRewardForOwner","nameLocation":"9869:17:76","nodeType":"FunctionDefinition","overrides":{"id":23741,"nodeType":"OverrideSpecifier","overrides":[],"src":"9953:8:76"},"parameters":{"id":23740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23736,"mutability":"mutable","name":"_owner","nameLocation":"9895:6:76","nodeType":"VariableDeclaration","scope":23841,"src":"9887:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23735,"name":"address","nodeType":"ElementaryTypeName","src":"9887:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23739,"mutability":"mutable","name":"tokens","nameLocation":"9920:6:76","nodeType":"VariableDeclaration","scope":23841,"src":"9903:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":23737,"name":"address","nodeType":"ElementaryTypeName","src":"9903:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":23738,"nodeType":"ArrayTypeName","src":"9903:9:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9886:41:76"},"returnParameters":{"id":23744,"nodeType":"ParameterList","parameters":[],"src":"9987:0:76"},"scope":24870,"src":"9860:790:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":23886,"nodeType":"Block","src":"10725:354:76","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23848,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22994,"src":"10739:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10754:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10739:16:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23856,"nodeType":"IfStatement","src":"10735:81:76","trueBody":{"id":23855,"nodeType":"Block","src":"10757:59:76","statements":[{"expression":{"baseExpression":{"id":23851,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"10778:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23853,"indexExpression":{"id":23852,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23843,"src":"10799:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10778:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23847,"id":23854,"nodeType":"Return","src":"10771:34:76"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":23857,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"10844:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23859,"indexExpression":{"id":23858,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23843,"src":"10865:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10844:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23861,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23843,"src":"10914:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23860,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23635,"src":"10889:24:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":23862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10889:31:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"baseExpression":{"id":23865,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22969,"src":"10948:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23867,"indexExpression":{"id":23866,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23843,"src":"10963:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10948:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":23868,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"10971:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23870,"indexExpression":{"id":23869,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23843,"src":"10984:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10971:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23863,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"10939:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":23864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"10939:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":23871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10939:52:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10889:102:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10888:104:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":23874,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"11011:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23876,"indexExpression":{"id":23875,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23843,"src":"11022:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11011:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10888:140:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":23878,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22957,"src":"11047:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10888:168:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23880,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10887:170:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":23881,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22994,"src":"11060:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10887:184:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10886:186:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10844:228:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23847,"id":23885,"nodeType":"Return","src":"10825:247:76"}]},"functionSelector":"f1229777","id":23887,"implemented":true,"kind":"function","modifiers":[],"name":"rewardPerToken","nameLocation":"10665:14:76","nodeType":"FunctionDefinition","parameters":{"id":23844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23843,"mutability":"mutable","name":"token","nameLocation":"10688:5:76","nodeType":"VariableDeclaration","scope":23887,"src":"10680:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23842,"name":"address","nodeType":"ElementaryTypeName","src":"10680:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10679:15:76"},"returnParameters":{"id":23847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23887,"src":"10716:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23845,"name":"uint256","nodeType":"ElementaryTypeName","src":"10716:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10715:9:76"},"scope":24870,"src":"10656:423:76","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":23907,"nodeType":"Block","src":"11155:142:76","statements":[{"expression":{"id":23905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":23894,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"11179:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23896,"indexExpression":{"id":23895,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23889,"src":"11200:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11179:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":23897,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22969,"src":"11220:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23899,"indexExpression":{"id":23898,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23889,"src":"11235:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11220:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23900,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11165:86:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23902,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23889,"src":"11275:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23903,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23891,"src":"11282:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23901,"name":"_batchRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24036,"src":"11254:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) returns (uint256,uint256)"}},"id":23904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11254:36:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11165:125:76","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23906,"nodeType":"ExpressionStatement","src":"11165:125:76"}]},"functionSelector":"5a45d052","id":23908,"implemented":true,"kind":"function","modifiers":[],"name":"batchRewardPerToken","nameLocation":"11094:19:76","nodeType":"FunctionDefinition","parameters":{"id":23892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23889,"mutability":"mutable","name":"token","nameLocation":"11122:5:76","nodeType":"VariableDeclaration","scope":23908,"src":"11114:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23888,"name":"address","nodeType":"ElementaryTypeName","src":"11114:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23891,"mutability":"mutable","name":"maxRuns","nameLocation":"11137:7:76","nodeType":"VariableDeclaration","scope":23908,"src":"11129:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23890,"name":"uint256","nodeType":"ElementaryTypeName","src":"11129:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11113:32:76"},"returnParameters":{"id":23893,"nodeType":"ParameterList","parameters":[],"src":"11155:0:76"},"scope":24870,"src":"11085:212:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24035,"nodeType":"Block","src":"11421:1159:76","statements":[{"assignments":[23920],"declarations":[{"constant":false,"id":23920,"mutability":"mutable","name":"_startTimestamp","nameLocation":"11439:15:76","nodeType":"VariableDeclaration","scope":24035,"src":"11431:23:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23919,"name":"uint256","nodeType":"ElementaryTypeName","src":"11431:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23924,"initialValue":{"baseExpression":{"id":23921,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22969,"src":"11457:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23923,"indexExpression":{"id":23922,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23910,"src":"11472:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11457:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11431:47:76"},{"assignments":[23926],"declarations":[{"constant":false,"id":23926,"mutability":"mutable","name":"reward","nameLocation":"11496:6:76","nodeType":"VariableDeclaration","scope":24035,"src":"11488:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23925,"name":"uint256","nodeType":"ElementaryTypeName","src":"11488:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23930,"initialValue":{"baseExpression":{"id":23927,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"11505:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23929,"indexExpression":{"id":23928,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23910,"src":"11526:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11505:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11488:44:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23931,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"11547:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11571:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11547:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23939,"nodeType":"IfStatement","src":"11543:88:76","trueBody":{"id":23938,"nodeType":"Block","src":"11574:57:76","statements":[{"expression":{"components":[{"id":23934,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23926,"src":"11596:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23935,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23920,"src":"11604:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11595:25:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":23918,"id":23937,"nodeType":"Return","src":"11588:32:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":23940,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"11645:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":23942,"indexExpression":{"id":23941,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23910,"src":"11656:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11645:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11666:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11645:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23951,"nodeType":"IfStatement","src":"11641:85:76","trueBody":{"id":23950,"nodeType":"Block","src":"11669:57:76","statements":[{"expression":{"components":[{"id":23945,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23926,"src":"11691:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":23946,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11699:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":23947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11699:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23948,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11690:25:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":23918,"id":23949,"nodeType":"Return","src":"11683:32:76"}]}},{"assignments":[23953],"declarations":[{"constant":false,"id":23953,"mutability":"mutable","name":"_startIndex","nameLocation":"11744:11:76","nodeType":"VariableDeclaration","scope":24035,"src":"11736:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23952,"name":"uint256","nodeType":"ElementaryTypeName","src":"11736:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23957,"initialValue":{"arguments":[{"id":23955,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23920,"src":"11778:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23954,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23279,"src":"11758:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":23956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11758:36:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11736:58:76"},{"assignments":[23959],"declarations":[{"constant":false,"id":23959,"mutability":"mutable","name":"_endIndex","nameLocation":"11812:9:76","nodeType":"VariableDeclaration","scope":24035,"src":"11804:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23958,"name":"uint256","nodeType":"ElementaryTypeName","src":"11804:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23967,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23962,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"11833:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":23963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11856:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11833:24:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23965,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23912,"src":"11859:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23960,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"11824:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":23961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"11824:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":23966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11824:43:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11804:63:76"},{"body":{"id":24029,"nodeType":"Block","src":"11928:603:76","statements":[{"assignments":[23980],"declarations":[{"constant":false,"id":23980,"mutability":"mutable","name":"sp0","nameLocation":"11966:3:76","nodeType":"VariableDeclaration","scope":24029,"src":"11942:27:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"},"typeName":{"id":23979,"nodeType":"UserDefinedTypeName","pathNode":{"id":23978,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23013,"src":"11942:16:76"},"referencedDeclaration":23013,"src":"11942:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":23984,"initialValue":{"baseExpression":{"id":23981,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"11972:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23983,"indexExpression":{"id":23982,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23969,"src":"11990:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11972:20:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11942:50:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23985,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23980,"src":"12010:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":23986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":23012,"src":"12010:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12010:14:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24028,"nodeType":"IfStatement","src":"12006:515:76","trueBody":{"id":24027,"nodeType":"Block","src":"12026:495:76","statements":[{"assignments":[23991],"declarations":[{"constant":false,"id":23991,"mutability":"mutable","name":"sp1","nameLocation":"12068:3:76","nodeType":"VariableDeclaration","scope":24027,"src":"12044:27:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"},"typeName":{"id":23990,"nodeType":"UserDefinedTypeName","pathNode":{"id":23989,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23013,"src":"12044:16:76"},"referencedDeclaration":23013,"src":"12044:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":23997,"initialValue":{"baseExpression":{"id":23992,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"12074:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":23996,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23993,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23969,"src":"12092:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":23994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12096:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12092:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12074:24:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12044:54:76"},{"assignments":[23999,24001],"declarations":[{"constant":false,"id":23999,"mutability":"mutable","name":"_reward","nameLocation":"12125:7:76","nodeType":"VariableDeclaration","scope":24027,"src":"12117:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23998,"name":"uint256","nodeType":"ElementaryTypeName","src":"12117:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24001,"mutability":"mutable","name":"endTime","nameLocation":"12142:7:76","nodeType":"VariableDeclaration","scope":24027,"src":"12134:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24000,"name":"uint256","nodeType":"ElementaryTypeName","src":"12134:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24012,"initialValue":{"arguments":[{"id":24003,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23910,"src":"12194:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":24004,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23991,"src":"12221:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"12221:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":24006,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23980,"src":"12256:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"12256:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":24008,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23980,"src":"12291:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":23012,"src":"12291:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24010,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23920,"src":"12323:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24002,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24095,"src":"12153:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":24011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12153:203:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12116:240:76"},{"expression":{"id":24015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24013,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23926,"src":"12374:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24014,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23999,"src":"12384:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12374:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24016,"nodeType":"ExpressionStatement","src":"12374:17:76"},{"expression":{"arguments":[{"id":24018,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23910,"src":"12440:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24019,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23926,"src":"12447:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24020,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24001,"src":"12455:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24017,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23557,"src":"12409:30:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":24021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12409:54:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24022,"nodeType":"ExpressionStatement","src":"12409:54:76"},{"expression":{"id":24025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24023,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23920,"src":"12481:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24024,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24001,"src":"12499:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12481:25:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24026,"nodeType":"ExpressionStatement","src":"12481:25:76"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23972,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23969,"src":"11908:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":23973,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23959,"src":"11912:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11908:13:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24030,"initializationExpression":{"assignments":[23969],"declarations":[{"constant":false,"id":23969,"mutability":"mutable","name":"i","nameLocation":"11891:1:76","nodeType":"VariableDeclaration","scope":24030,"src":"11883:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23968,"name":"uint256","nodeType":"ElementaryTypeName","src":"11883:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23971,"initialValue":{"id":23970,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23953,"src":"11895:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11883:23:76"},"loopExpression":{"expression":{"id":23976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11923:3:76","subExpression":{"id":23975,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23969,"src":"11923:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23977,"nodeType":"ExpressionStatement","src":"11923:3:76"},"nodeType":"ForStatement","src":"11878:653:76"},{"expression":{"components":[{"id":24031,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23926,"src":"12549:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24032,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23920,"src":"12557:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12548:25:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":23918,"id":24034,"nodeType":"Return","src":"12541:32:76"}]},"id":24036,"implemented":true,"kind":"function","modifiers":[],"name":"_batchRewardPerToken","nameLocation":"11312:20:76","nodeType":"FunctionDefinition","parameters":{"id":23913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23910,"mutability":"mutable","name":"token","nameLocation":"11341:5:76","nodeType":"VariableDeclaration","scope":24036,"src":"11333:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23909,"name":"address","nodeType":"ElementaryTypeName","src":"11333:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23912,"mutability":"mutable","name":"maxRuns","nameLocation":"11356:7:76","nodeType":"VariableDeclaration","scope":24036,"src":"11348:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23911,"name":"uint256","nodeType":"ElementaryTypeName","src":"11348:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11332:32:76"},"returnParameters":{"id":23918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24036,"src":"11399:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23914,"name":"uint256","nodeType":"ElementaryTypeName","src":"11399:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24036,"src":"11408:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23916,"name":"uint256","nodeType":"ElementaryTypeName","src":"11408:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11398:18:76"},"scope":24870,"src":"11303:1277:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":24094,"nodeType":"Block","src":"12797:394:76","statements":[{"assignments":[24054],"declarations":[{"constant":false,"id":24054,"mutability":"mutable","name":"endTime","nameLocation":"12815:7:76","nodeType":"VariableDeclaration","scope":24094,"src":"12807:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24053,"name":"uint256","nodeType":"ElementaryTypeName","src":"12807:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24060,"initialValue":{"arguments":[{"id":24057,"name":"timestamp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24040,"src":"12834:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24058,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24046,"src":"12846:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24055,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"12825:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":24056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"12825:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":24059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12825:36:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12807:54:76"},{"expression":{"components":[{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":24063,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24054,"src":"12904:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":24064,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"12913:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24066,"indexExpression":{"id":24065,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24038,"src":"12926:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12913:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24061,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"12895:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":24062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"12895:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":24067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12895:38:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"id":24072,"name":"timestamp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24042,"src":"12991:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24073,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24046,"src":"13003:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24070,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"12982:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":24071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"12982:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":24074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12982:36:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":24075,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"13040:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24077,"indexExpression":{"id":24076,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24038,"src":"13053:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13040:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24068,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"12952:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":24069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"12952:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":24078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12952:125:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12895:182:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24080,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12894:184:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":24081,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"13097:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24083,"indexExpression":{"id":24082,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24038,"src":"13108:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13097:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12894:220:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":24085,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22957,"src":"13133:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12894:248:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24087,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12893:250:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":24088,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24044,"src":"13146:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12893:259:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24090,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12892:261:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24091,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24054,"src":"13167:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12878:306:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":24052,"id":24093,"nodeType":"Return","src":"12871:313:76"}]},"id":24095,"implemented":true,"kind":"function","modifiers":[],"name":"_calcRewardPerToken","nameLocation":"12595:19:76","nodeType":"FunctionDefinition","parameters":{"id":24047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24038,"mutability":"mutable","name":"token","nameLocation":"12632:5:76","nodeType":"VariableDeclaration","scope":24095,"src":"12624:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24037,"name":"address","nodeType":"ElementaryTypeName","src":"12624:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24040,"mutability":"mutable","name":"timestamp1","nameLocation":"12655:10:76","nodeType":"VariableDeclaration","scope":24095,"src":"12647:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24039,"name":"uint256","nodeType":"ElementaryTypeName","src":"12647:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24042,"mutability":"mutable","name":"timestamp0","nameLocation":"12683:10:76","nodeType":"VariableDeclaration","scope":24095,"src":"12675:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24041,"name":"uint256","nodeType":"ElementaryTypeName","src":"12675:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24044,"mutability":"mutable","name":"supply","nameLocation":"12711:6:76","nodeType":"VariableDeclaration","scope":24095,"src":"12703:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24043,"name":"uint256","nodeType":"ElementaryTypeName","src":"12703:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24046,"mutability":"mutable","name":"startTimestamp","nameLocation":"12735:14:76","nodeType":"VariableDeclaration","scope":24095,"src":"12727:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24045,"name":"uint256","nodeType":"ElementaryTypeName","src":"12727:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12614:141:76"},"returnParameters":{"id":24052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24095,"src":"12779:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24048,"name":"uint256","nodeType":"ElementaryTypeName","src":"12779:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24095,"src":"12788:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24050,"name":"uint256","nodeType":"ElementaryTypeName","src":"12788:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12778:18:76"},"scope":24870,"src":"12586:605:76","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":24272,"nodeType":"Block","src":"13299:1783:76","statements":[{"assignments":[24105],"declarations":[{"constant":false,"id":24105,"mutability":"mutable","name":"_startTimestamp","nameLocation":"13317:15:76","nodeType":"VariableDeclaration","scope":24272,"src":"13309:23:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24104,"name":"uint256","nodeType":"ElementaryTypeName","src":"13309:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24109,"initialValue":{"baseExpression":{"id":24106,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22969,"src":"13335:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24108,"indexExpression":{"id":24107,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"13350:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13335:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13309:47:76"},{"assignments":[24111],"declarations":[{"constant":false,"id":24111,"mutability":"mutable","name":"reward","nameLocation":"13374:6:76","nodeType":"VariableDeclaration","scope":24272,"src":"13366:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24110,"name":"uint256","nodeType":"ElementaryTypeName","src":"13366:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24115,"initialValue":{"baseExpression":{"id":24112,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"13383:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24114,"indexExpression":{"id":24113,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"13404:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13383:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13366:44:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24116,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"13425:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":24117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13449:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13425:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24124,"nodeType":"IfStatement","src":"13421:88:76","trueBody":{"id":24123,"nodeType":"Block","src":"13452:57:76","statements":[{"expression":{"components":[{"id":24119,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"13474:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24120,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"13482:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13473:25:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":24103,"id":24122,"nodeType":"Return","src":"13466:32:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24125,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"13523:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24127,"indexExpression":{"id":24126,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"13534:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13523:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":24128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13544:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13523:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24136,"nodeType":"IfStatement","src":"13519:85:76","trueBody":{"id":24135,"nodeType":"Block","src":"13547:57:76","statements":[{"expression":{"components":[{"id":24130,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"13569:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":24131,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13577:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13577:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24133,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13568:25:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":24103,"id":24134,"nodeType":"Return","src":"13561:32:76"}]}},{"assignments":[24138],"declarations":[{"constant":false,"id":24138,"mutability":"mutable","name":"_startIndex","nameLocation":"13622:11:76","nodeType":"VariableDeclaration","scope":24272,"src":"13614:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24137,"name":"uint256","nodeType":"ElementaryTypeName","src":"13614:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24142,"initialValue":{"arguments":[{"id":24140,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"13656:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24139,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23279,"src":"13636:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":24141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13636:36:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13614:58:76"},{"assignments":[24144],"declarations":[{"constant":false,"id":24144,"mutability":"mutable","name":"_endIndex","nameLocation":"13690:9:76","nodeType":"VariableDeclaration","scope":24272,"src":"13682:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24143,"name":"uint256","nodeType":"ElementaryTypeName","src":"13682:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24148,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24145,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"13702:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":24146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13725:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13702:24:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13682:44:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24149,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24144,"src":"13741:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":24150,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24138,"src":"13753:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13741:23:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":24152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13767:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13741:27:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24220,"nodeType":"IfStatement","src":"13737:777:76","trueBody":{"id":24219,"nodeType":"Block","src":"13770:744:76","statements":[{"body":{"id":24217,"nodeType":"Block","src":"13838:666:76","statements":[{"assignments":[24168],"declarations":[{"constant":false,"id":24168,"mutability":"mutable","name":"sp0","nameLocation":"13880:3:76","nodeType":"VariableDeclaration","scope":24217,"src":"13856:27:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"},"typeName":{"id":24167,"nodeType":"UserDefinedTypeName","pathNode":{"id":24166,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23013,"src":"13856:16:76"},"referencedDeclaration":23013,"src":"13856:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":24172,"initialValue":{"baseExpression":{"id":24169,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"13886:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":24171,"indexExpression":{"id":24170,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24155,"src":"13904:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13886:20:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13856:50:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24173,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24168,"src":"13928:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":23012,"src":"13928:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13941:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13928:14:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24216,"nodeType":"IfStatement","src":"13924:566:76","trueBody":{"id":24215,"nodeType":"Block","src":"13944:546:76","statements":[{"assignments":[24179],"declarations":[{"constant":false,"id":24179,"mutability":"mutable","name":"sp1","nameLocation":"13990:3:76","nodeType":"VariableDeclaration","scope":24215,"src":"13966:27:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"},"typeName":{"id":24178,"nodeType":"UserDefinedTypeName","pathNode":{"id":24177,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23013,"src":"13966:16:76"},"referencedDeclaration":23013,"src":"13966:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":24185,"initialValue":{"baseExpression":{"id":24180,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"13996:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":24184,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24181,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24155,"src":"14014:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":24182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14018:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14014:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13996:24:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13966:54:76"},{"assignments":[24187,24189],"declarations":[{"constant":false,"id":24187,"mutability":"mutable","name":"_reward","nameLocation":"14051:7:76","nodeType":"VariableDeclaration","scope":24215,"src":"14043:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24186,"name":"uint256","nodeType":"ElementaryTypeName","src":"14043:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24189,"mutability":"mutable","name":"_endTime","nameLocation":"14068:8:76","nodeType":"VariableDeclaration","scope":24215,"src":"14060:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24188,"name":"uint256","nodeType":"ElementaryTypeName","src":"14060:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24200,"initialValue":{"arguments":[{"id":24191,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"14125:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":24192,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24179,"src":"14156:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"14156:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":24194,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24168,"src":"14195:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"14195:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":24196,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24168,"src":"14234:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":23012,"src":"14234:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24198,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"14270:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24190,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24095,"src":"14080:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":24199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14080:227:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14042:265:76"},{"expression":{"id":24203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24201,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"14329:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24202,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24187,"src":"14339:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14329:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24204,"nodeType":"ExpressionStatement","src":"14329:17:76"},{"expression":{"arguments":[{"id":24206,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"14399:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24207,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"14406:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24208,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24189,"src":"14414:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24205,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23557,"src":"14368:30:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":24209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14368:55:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24210,"nodeType":"ExpressionStatement","src":"14368:55:76"},{"expression":{"id":24213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24211,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"14445:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24212,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24189,"src":"14463:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14445:26:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24214,"nodeType":"ExpressionStatement","src":"14445:26:76"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24155,"src":"13814:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24159,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24144,"src":"13818:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":24160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13830:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13818:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13814:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24218,"initializationExpression":{"assignments":[24155],"declarations":[{"constant":false,"id":24155,"mutability":"mutable","name":"i","nameLocation":"13797:1:76","nodeType":"VariableDeclaration","scope":24218,"src":"13789:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24154,"name":"uint256","nodeType":"ElementaryTypeName","src":"13789:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24157,"initialValue":{"id":24156,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24138,"src":"13801:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13789:23:76"},"loopExpression":{"expression":{"id":24164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13833:3:76","subExpression":{"id":24163,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24155,"src":"13833:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24165,"nodeType":"ExpressionStatement","src":"13833:3:76"},"nodeType":"ForStatement","src":"13784:720:76"}]}},{"assignments":[24223],"declarations":[{"constant":false,"id":24223,"mutability":"mutable","name":"sp","nameLocation":"14548:2:76","nodeType":"VariableDeclaration","scope":24272,"src":"14524:26:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"},"typeName":{"id":24222,"nodeType":"UserDefinedTypeName","pathNode":{"id":24221,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":23013,"src":"14524:16:76"},"referencedDeclaration":23013,"src":"14524:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint"}},"visibility":"internal"}],"id":24227,"initialValue":{"baseExpression":{"id":24224,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23032,"src":"14553:17:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$23013_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.SupplyCheckpoint storage ref)"}},"id":24226,"indexExpression":{"id":24225,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24144,"src":"14571:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14553:28:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_storage","typeString":"struct BaseV2Bribes.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14524:57:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24228,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24223,"src":"14595:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":23012,"src":"14595:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14607:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14595:13:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24267,"nodeType":"IfStatement","src":"14591:442:76","trueBody":{"id":24266,"nodeType":"Block","src":"14610:423:76","statements":[{"assignments":[24233,null],"declarations":[{"constant":false,"id":24233,"mutability":"mutable","name":"_reward","nameLocation":"14633:7:76","nodeType":"VariableDeclaration","scope":24266,"src":"14625:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24232,"name":"uint256","nodeType":"ElementaryTypeName","src":"14625:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":24249,"initialValue":{"arguments":[{"id":24235,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"14683:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":24237,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"14731:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24236,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23635,"src":"14706:24:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":24238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14706:31:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":24241,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24223,"src":"14764:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23010,"src":"14764:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24243,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"14778:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24239,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"14755:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":24240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"14755:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":24244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14755:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":24245,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24223,"src":"14812:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$23013_memory_ptr","typeString":"struct BaseV2Bribes.SupplyCheckpoint memory"}},"id":24246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":23012,"src":"14812:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24247,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"14839:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24234,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24095,"src":"14646:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":24248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14646:222:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14624:244:76"},{"expression":{"id":24252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24250,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"14882:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24251,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24233,"src":"14892:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14882:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24253,"nodeType":"ExpressionStatement","src":"14882:17:76"},{"expression":{"arguments":[{"id":24255,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24097,"src":"14944:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24256,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"14951:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":24257,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14959:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14959:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24254,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23557,"src":"14913:30:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":24259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14913:62:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24260,"nodeType":"ExpressionStatement","src":"14913:62:76"},{"expression":{"id":24264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24261,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"14989:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":24262,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15007:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15007:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14989:33:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24265,"nodeType":"ExpressionStatement","src":"14989:33:76"}]}},{"expression":{"components":[{"id":24268,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"15051:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24269,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24105,"src":"15059:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24270,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15050:25:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":24103,"id":24271,"nodeType":"Return","src":"15043:32:76"}]},"id":24273,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardPerToken","nameLocation":"13206:21:76","nodeType":"FunctionDefinition","parameters":{"id":24098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24097,"mutability":"mutable","name":"token","nameLocation":"13236:5:76","nodeType":"VariableDeclaration","scope":24273,"src":"13228:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24096,"name":"address","nodeType":"ElementaryTypeName","src":"13228:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13227:15:76"},"returnParameters":{"id":24103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24273,"src":"13277:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24099,"name":"uint256","nodeType":"ElementaryTypeName","src":"13277:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24102,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24273,"src":"13286:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24101,"name":"uint256","nodeType":"ElementaryTypeName","src":"13286:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13276:18:76"},"scope":24870,"src":"13197:1885:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":24439,"nodeType":"Block","src":"15162:1612:76","statements":[{"assignments":[24283],"declarations":[{"constant":false,"id":24283,"mutability":"mutable","name":"_startTimestamp","nameLocation":"15180:15:76","nodeType":"VariableDeclaration","scope":24439,"src":"15172:23:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24282,"name":"uint256","nodeType":"ElementaryTypeName","src":"15172:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24298,"initialValue":{"arguments":[{"baseExpression":{"baseExpression":{"id":24286,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22979,"src":"15220:8:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":24288,"indexExpression":{"id":24287,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"15229:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15220:15:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24290,"indexExpression":{"id":24289,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"15236:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15220:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":24291,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"15254:25:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref))"}},"id":24293,"indexExpression":{"id":24292,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"15280:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15254:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$23008_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref)"}},"id":24295,"indexExpression":{"hexValue":"30","id":24294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15287:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15254:35:76","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$23008_storage","typeString":"struct BaseV2Bribes.RewardPerTokenCheckpoint storage ref"}},"id":24296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23005,"src":"15254:45:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24284,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"15198:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":24285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"15198:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":24297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15198:111:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15172:137:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24299,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23026,"src":"15323:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24301,"indexExpression":{"id":24300,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"15338:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15323:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":24302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15346:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15323:24:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24307,"nodeType":"IfStatement","src":"15319:63:76","trueBody":{"id":24306,"nodeType":"Block","src":"15349:33:76","statements":[{"expression":{"hexValue":"30","id":24304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15370:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":24281,"id":24305,"nodeType":"Return","src":"15363:8:76"}]}},{"assignments":[24309],"declarations":[{"constant":false,"id":24309,"mutability":"mutable","name":"_startIndex","nameLocation":"15400:11:76","nodeType":"VariableDeclaration","scope":24439,"src":"15392:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24308,"name":"uint256","nodeType":"ElementaryTypeName","src":"15392:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24314,"initialValue":{"arguments":[{"id":24311,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"15435:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24312,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24283,"src":"15440:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24310,"name":"getPriorBalanceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23175,"src":"15414:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":24313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15414:42:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15392:64:76"},{"assignments":[24316],"declarations":[{"constant":false,"id":24316,"mutability":"mutable","name":"_endIndex","nameLocation":"15474:9:76","nodeType":"VariableDeclaration","scope":24439,"src":"15466:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24315,"name":"uint256","nodeType":"ElementaryTypeName","src":"15466:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24322,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24317,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23026,"src":"15486:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24319,"indexExpression":{"id":24318,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"15501:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15486:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":24320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15508:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15486:23:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15466:43:76"},{"assignments":[24324],"declarations":[{"constant":false,"id":24324,"mutability":"mutable","name":"reward","nameLocation":"15528:6:76","nodeType":"VariableDeclaration","scope":24439,"src":"15520:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24323,"name":"uint256","nodeType":"ElementaryTypeName","src":"15520:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24326,"initialValue":{"hexValue":"30","id":24325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15537:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15520:18:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24327,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24316,"src":"15553:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":24328,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24309,"src":"15565:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15553:23:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":24330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15579:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15553:27:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24396,"nodeType":"IfStatement","src":"15549:737:76","trueBody":{"id":24395,"nodeType":"Block","src":"15582:704:76","statements":[{"body":{"id":24393,"nodeType":"Block","src":"15650:626:76","statements":[{"assignments":[24346],"declarations":[{"constant":false,"id":24346,"mutability":"mutable","name":"cp0","nameLocation":"15686:3:76","nodeType":"VariableDeclaration","scope":24393,"src":"15668:21:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint"},"typeName":{"id":24345,"nodeType":"UserDefinedTypeName","pathNode":{"id":24344,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":23003,"src":"15668:10:76"},"referencedDeclaration":23003,"src":"15668:10:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage_ptr","typeString":"struct BaseV2Bribes.Checkpoint"}},"visibility":"internal"}],"id":24352,"initialValue":{"baseExpression":{"baseExpression":{"id":24347,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"15692:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":24349,"indexExpression":{"id":24348,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"15704:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15692:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":24351,"indexExpression":{"id":24350,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24333,"src":"15709:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15692:19:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15668:43:76"},{"assignments":[24355],"declarations":[{"constant":false,"id":24355,"mutability":"mutable","name":"cp1","nameLocation":"15747:3:76","nodeType":"VariableDeclaration","scope":24393,"src":"15729:21:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint"},"typeName":{"id":24354,"nodeType":"UserDefinedTypeName","pathNode":{"id":24353,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":23003,"src":"15729:10:76"},"referencedDeclaration":23003,"src":"15729:10:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage_ptr","typeString":"struct BaseV2Bribes.Checkpoint"}},"visibility":"internal"}],"id":24363,"initialValue":{"baseExpression":{"baseExpression":{"id":24356,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"15753:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":24358,"indexExpression":{"id":24357,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"15765:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15753:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":24362,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24359,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24333,"src":"15770:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":24360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15774:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15770:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15753:23:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15729:47:76"},{"assignments":[24365,null],"declarations":[{"constant":false,"id":24365,"mutability":"mutable","name":"_rewardPerTokenStored0","nameLocation":"15803:22:76","nodeType":"VariableDeclaration","scope":24393,"src":"15795:30:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24364,"name":"uint256","nodeType":"ElementaryTypeName","src":"15795:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":24371,"initialValue":{"arguments":[{"id":24367,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"15875:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":24368,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24346,"src":"15902:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"id":24369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"15902:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24366,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23428,"src":"15831:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":24370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15831:102:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"15794:139:76"},{"assignments":[24373,null],"declarations":[{"constant":false,"id":24373,"mutability":"mutable","name":"_rewardPerTokenStored1","nameLocation":"15960:22:76","nodeType":"VariableDeclaration","scope":24393,"src":"15952:30:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24372,"name":"uint256","nodeType":"ElementaryTypeName","src":"15952:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":24379,"initialValue":{"arguments":[{"id":24375,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"16032:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":24376,"name":"cp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24355,"src":"16059:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"id":24377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"16059:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24374,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23428,"src":"15988:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":24378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15988:102:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"15951:139:76"},{"expression":{"id":24391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24380,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24324,"src":"16108:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24381,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24346,"src":"16139:3:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"id":24382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":23002,"src":"16139:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24383,"name":"_rewardPerTokenStored1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24373,"src":"16180:22:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":24384,"name":"_rewardPerTokenStored0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24365,"src":"16205:22:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16180:47:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16179:49:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16139:89:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24388,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16138:91:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":24389,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22957,"src":"16252:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16138:123:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16108:153:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24392,"nodeType":"ExpressionStatement","src":"16108:153:76"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24336,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24333,"src":"15626:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24337,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24316,"src":"15630:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":24338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15642:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15630:13:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15626:17:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24394,"initializationExpression":{"assignments":[24333],"declarations":[{"constant":false,"id":24333,"mutability":"mutable","name":"i","nameLocation":"15609:1:76","nodeType":"VariableDeclaration","scope":24394,"src":"15601:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24332,"name":"uint256","nodeType":"ElementaryTypeName","src":"15601:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24335,"initialValue":{"id":24334,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24309,"src":"15613:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15601:23:76"},"loopExpression":{"expression":{"id":24342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15645:3:76","subExpression":{"id":24341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24333,"src":"15645:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24343,"nodeType":"ExpressionStatement","src":"15645:3:76"},"nodeType":"ForStatement","src":"15596:680:76"}]}},{"assignments":[24399],"declarations":[{"constant":false,"id":24399,"mutability":"mutable","name":"cp","nameLocation":"16314:2:76","nodeType":"VariableDeclaration","scope":24439,"src":"16296:20:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint"},"typeName":{"id":24398,"nodeType":"UserDefinedTypeName","pathNode":{"id":24397,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":23003,"src":"16296:10:76"},"referencedDeclaration":23003,"src":"16296:10:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage_ptr","typeString":"struct BaseV2Bribes.Checkpoint"}},"visibility":"internal"}],"id":24405,"initialValue":{"baseExpression":{"baseExpression":{"id":24400,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"16319:11:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref))"}},"id":24402,"indexExpression":{"id":24401,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"16331:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16319:16:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$23003_storage_$","typeString":"mapping(uint256 => struct BaseV2Bribes.Checkpoint storage ref)"}},"id":24404,"indexExpression":{"id":24403,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24316,"src":"16336:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16319:27:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_storage","typeString":"struct BaseV2Bribes.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16296:50:76"},{"assignments":[24407,null],"declarations":[{"constant":false,"id":24407,"mutability":"mutable","name":"_rewardPerTokenStored","nameLocation":"16365:21:76","nodeType":"VariableDeclaration","scope":24439,"src":"16357:29:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24406,"name":"uint256","nodeType":"ElementaryTypeName","src":"16357:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":24413,"initialValue":{"arguments":[{"id":24409,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"16428:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":24410,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24399,"src":"16447:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"id":24411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":23000,"src":"16447:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24408,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23428,"src":"16392:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":24412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16392:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16356:113:76"},{"expression":{"id":24435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24414,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24324,"src":"16479:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24415,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24399,"src":"16502:2:76","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$23003_memory_ptr","typeString":"struct BaseV2Bribes.Checkpoint memory"}},"id":24416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":23002,"src":"16502:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":24418,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"16549:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24417,"name":"rewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23887,"src":"16534:14:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":24419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16534:21:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":24422,"name":"_rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24407,"src":"16612:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"baseExpression":{"id":24423,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22985,"src":"16659:24:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":24425,"indexExpression":{"id":24424,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"16684:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16659:31:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24427,"indexExpression":{"id":24426,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"16691:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16659:36:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24420,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"16578:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":24421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"16578:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":24428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16578:139:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16534:183:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24430,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16533:185:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16502:216:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16501:218:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":24433,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22957,"src":"16734:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16501:242:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16479:264:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24436,"nodeType":"ExpressionStatement","src":"16479:264:76"},{"expression":{"id":24437,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24324,"src":"16761:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24281,"id":24438,"nodeType":"Return","src":"16754:13:76"}]},"functionSelector":"211dc32d","id":24440,"implemented":true,"kind":"function","modifiers":[],"name":"earned","nameLocation":"15097:6:76","nodeType":"FunctionDefinition","parameters":{"id":24278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24275,"mutability":"mutable","name":"token","nameLocation":"15112:5:76","nodeType":"VariableDeclaration","scope":24440,"src":"15104:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24274,"name":"address","nodeType":"ElementaryTypeName","src":"15104:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24277,"mutability":"mutable","name":"who","nameLocation":"15127:3:76","nodeType":"VariableDeclaration","scope":24440,"src":"15119:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24276,"name":"address","nodeType":"ElementaryTypeName","src":"15119:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15103:28:76"},"returnParameters":{"id":24281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24440,"src":"15153:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24279,"name":"uint256","nodeType":"ElementaryTypeName","src":"15153:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15152:9:76"},"scope":24870,"src":"15088:1686:76","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[33923],"body":{"id":24490,"nodeType":"Block","src":"16971:306:76","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24448,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22949,"src":"16981:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":24450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"16981:24:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":24451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16981:26:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24452,"nodeType":"ExpressionStatement","src":"16981:26:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":24459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24454,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17026:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17026:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24456,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22949,"src":"17040:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":24457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"17040:19:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":24458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17040:21:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17026:35:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420766f746572","id":24460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17063:11:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""},"value":"not voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""}],"id":24453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17018:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17018:57:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24462,"nodeType":"ExpressionStatement","src":"17018:57:76"},{"expression":{"id":24465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24463,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22994,"src":"17085:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24464,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"17100:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17085:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24466,"nodeType":"ExpressionStatement","src":"17085:21:76"},{"expression":{"id":24471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24467,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22998,"src":"17116:9:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24469,"indexExpression":{"id":24468,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24444,"src":"17126:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17116:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24470,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"17134:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17116:24:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24472,"nodeType":"ExpressionStatement","src":"17116:24:76"},{"expression":{"arguments":[{"id":24474,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24444,"src":"17168:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":24475,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22998,"src":"17173:9:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24477,"indexExpression":{"id":24476,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24444,"src":"17183:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17173:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24473,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"17151:16:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":24478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17151:37:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24479,"nodeType":"ExpressionStatement","src":"17151:37:76"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24480,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23609,"src":"17198:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17198:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24482,"nodeType":"ExpressionStatement","src":"17198:24:76"},{"eventCall":{"arguments":[{"expression":{"id":24484,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17246:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17246:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24486,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24444,"src":"17258:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24487,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"17263:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24483,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33946,"src":"17238:7:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":24488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17238:32:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24489,"nodeType":"EmitStatement","src":"17233:37:76"}]},"functionSelector":"463cd970","id":24491,"implemented":true,"kind":"function","modifiers":[],"name":"_deposit","nameLocation":"16915:8:76","nodeType":"FunctionDefinition","overrides":{"id":24446,"nodeType":"OverrideSpecifier","overrides":[],"src":"16962:8:76"},"parameters":{"id":24445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24442,"mutability":"mutable","name":"amount","nameLocation":"16932:6:76","nodeType":"VariableDeclaration","scope":24491,"src":"16924:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24441,"name":"uint256","nodeType":"ElementaryTypeName","src":"16924:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24444,"mutability":"mutable","name":"who","nameLocation":"16948:3:76","nodeType":"VariableDeclaration","scope":24491,"src":"16940:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24443,"name":"address","nodeType":"ElementaryTypeName","src":"16940:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16923:29:76"},"returnParameters":{"id":24447,"nodeType":"ParameterList","parameters":[],"src":"16971:0:76"},"scope":24870,"src":"16906:371:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[33930],"body":{"id":24541,"nodeType":"Block","src":"17349:307:76","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24499,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22949,"src":"17359:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":24501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"17359:24:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":24502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17359:26:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24503,"nodeType":"ExpressionStatement","src":"17359:26:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":24510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17404:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17404:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24507,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22949,"src":"17418:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":24508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"17418:19:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":24509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17418:21:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17404:35:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420766f746572","id":24511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17441:11:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""},"value":"not voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912","typeString":"literal_string \"not voter\""}],"id":24504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17396:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17396:57:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24513,"nodeType":"ExpressionStatement","src":"17396:57:76"},{"expression":{"id":24516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24514,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22994,"src":"17463:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":24515,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24493,"src":"17478:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17463:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24517,"nodeType":"ExpressionStatement","src":"17463:21:76"},{"expression":{"id":24522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24518,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22998,"src":"17494:9:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24520,"indexExpression":{"id":24519,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24495,"src":"17504:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17494:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":24521,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24493,"src":"17512:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17494:24:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24523,"nodeType":"ExpressionStatement","src":"17494:24:76"},{"expression":{"arguments":[{"id":24525,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24495,"src":"17546:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":24526,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22998,"src":"17551:9:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24528,"indexExpression":{"id":24527,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24495,"src":"17561:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17551:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24524,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"17529:16:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":24529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17529:37:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24530,"nodeType":"ExpressionStatement","src":"17529:37:76"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24531,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23609,"src":"17576:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17576:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24533,"nodeType":"ExpressionStatement","src":"17576:24:76"},{"eventCall":{"arguments":[{"expression":{"id":24535,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17625:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17625:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24537,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24495,"src":"17637:3:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24538,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24493,"src":"17642:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24534,"name":"Withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33954,"src":"17616:8:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":24539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17616:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24540,"nodeType":"EmitStatement","src":"17611:38:76"}]},"functionSelector":"293311ab","id":24542,"implemented":true,"kind":"function","modifiers":[],"name":"_withdraw","nameLocation":"17292:9:76","nodeType":"FunctionDefinition","overrides":{"id":24497,"nodeType":"OverrideSpecifier","overrides":[],"src":"17340:8:76"},"parameters":{"id":24496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24493,"mutability":"mutable","name":"amount","nameLocation":"17310:6:76","nodeType":"VariableDeclaration","scope":24542,"src":"17302:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24492,"name":"uint256","nodeType":"ElementaryTypeName","src":"17302:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24495,"mutability":"mutable","name":"who","nameLocation":"17326:3:76","nodeType":"VariableDeclaration","scope":24542,"src":"17318:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24494,"name":"address","nodeType":"ElementaryTypeName","src":"17318:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17301:29:76"},"returnParameters":{"id":24498,"nodeType":"ParameterList","parameters":[],"src":"17349:0:76"},"scope":24870,"src":"17283:373:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[33916],"body":{"id":24574,"nodeType":"Block","src":"17732:184:76","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24550,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17746:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"17746:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":24552,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"17765:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24554,"indexExpression":{"id":24553,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24544,"src":"17778:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17765:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17746:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24558,"nodeType":"IfStatement","src":"17742:52:76","trueBody":{"expression":{"hexValue":"30","id":24556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17793:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":24549,"id":24557,"nodeType":"Return","src":"17786:8:76"}},{"assignments":[24560],"declarations":[{"constant":false,"id":24560,"mutability":"mutable","name":"_remaining","nameLocation":"17812:10:76","nodeType":"VariableDeclaration","scope":24574,"src":"17804:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24559,"name":"uint256","nodeType":"ElementaryTypeName","src":"17804:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24567,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24561,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"17825:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24563,"indexExpression":{"id":24562,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24544,"src":"17838:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17825:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":24564,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17847:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"17847:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17825:37:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17804:58:76"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24568,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24560,"src":"17879:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":24569,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"17892:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24571,"indexExpression":{"id":24570,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24544,"src":"17903:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17892:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17879:30:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24549,"id":24573,"nodeType":"Return","src":"17872:37:76"}]},"functionSelector":"99bcc052","id":24575,"implemented":true,"kind":"function","modifiers":[],"name":"left","nameLocation":"17671:4:76","nodeType":"FunctionDefinition","overrides":{"id":24546,"nodeType":"OverrideSpecifier","overrides":[],"src":"17705:8:76"},"parameters":{"id":24545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24544,"mutability":"mutable","name":"token","nameLocation":"17684:5:76","nodeType":"VariableDeclaration","scope":24575,"src":"17676:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24543,"name":"address","nodeType":"ElementaryTypeName","src":"17676:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17675:15:76"},"returnParameters":{"id":24549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24575,"src":"17723:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24547,"name":"uint256","nodeType":"ElementaryTypeName","src":"17723:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17722:9:76"},"scope":24870,"src":"17662:254:76","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[33909],"body":{"id":24757,"nodeType":"Block","src":"18149:1278:76","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24586,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24579,"src":"18167:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18176:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18167:10:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203d2030","id":24589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18179:12:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""},"value":"amount = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""}],"id":24585,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18159:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18159:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24591,"nodeType":"ExpressionStatement","src":"18159:33:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24592,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"18206:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24594,"indexExpression":{"id":24593,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18217:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18206:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":24595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18227:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18206:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24604,"nodeType":"IfStatement","src":"18202:97:76","trueBody":{"expression":{"arguments":[{"id":24598,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18273:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":24599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18280:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":24600,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18283:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18283:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24597,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23557,"src":"18242:30:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":24602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18242:57:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24603,"nodeType":"ExpressionStatement","src":"18242:57:76"}},{"expression":{"id":24615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":24605,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22973,"src":"18323:20:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24607,"indexExpression":{"id":24606,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18344:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18323:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":24608,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22969,"src":"18364:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24610,"indexExpression":{"id":24609,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18379:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18364:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24611,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"18309:86:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":24613,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18420:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24612,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24273,"src":"18398:21:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":24614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18398:28:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"18309:117:76","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24616,"nodeType":"ExpressionStatement","src":"18309:117:76"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24617,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18441:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18441:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":24619,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"18460:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24621,"indexExpression":{"id":24620,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18473:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18460:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18441:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":24689,"nodeType":"Block","src":"18622:331:76","statements":[{"assignments":[24644],"declarations":[{"constant":false,"id":24644,"mutability":"mutable","name":"_remaining","nameLocation":"18644:10:76","nodeType":"VariableDeclaration","scope":24689,"src":"18636:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24643,"name":"uint256","nodeType":"ElementaryTypeName","src":"18636:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24651,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24645,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"18657:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24647,"indexExpression":{"id":24646,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18670:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18657:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":24648,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18679:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18679:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18657:37:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18636:58:76"},{"assignments":[24653],"declarations":[{"constant":false,"id":24653,"mutability":"mutable","name":"_left","nameLocation":"18716:5:76","nodeType":"VariableDeclaration","scope":24689,"src":"18708:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24652,"name":"uint256","nodeType":"ElementaryTypeName","src":"18708:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24659,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24654,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24644,"src":"18724:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":24655,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"18737:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24657,"indexExpression":{"id":24656,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18748:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18737:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18724:30:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18708:46:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24661,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24579,"src":"18776:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":24662,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24653,"src":"18785:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18776:14:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203c206c656674","id":24664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18792:15:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431","typeString":"literal_string \"amount < left\""},"value":"amount < left"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431","typeString":"literal_string \"amount < left\""}],"id":24660,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18768:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18768:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24666,"nodeType":"ExpressionStatement","src":"18768:40:76"},{"expression":{"arguments":[{"id":24668,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18840:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":24669,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18847:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18847:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":24673,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18867:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}],"id":24672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18859:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24671,"name":"address","nodeType":"ElementaryTypeName","src":"18859:7:76","typeDescriptions":{}}},"id":24674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18859:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24675,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24579,"src":"18874:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24667,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24869,"src":"18822:17:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":24676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18822:59:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24677,"nodeType":"ExpressionStatement","src":"18822:59:76"},{"expression":{"id":24687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24678,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"18895:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24680,"indexExpression":{"id":24679,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18906:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18895:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24681,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24579,"src":"18916:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":24682,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24653,"src":"18925:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18916:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24684,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18915:16:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":24685,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22952,"src":"18934:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18915:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18895:47:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24688,"nodeType":"ExpressionStatement","src":"18895:47:76"}]},"id":24690,"nodeType":"IfStatement","src":"18437:516:76","trueBody":{"id":24642,"nodeType":"Block","src":"18481:135:76","statements":[{"expression":{"arguments":[{"id":24624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18513:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":24625,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18520:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18520:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":24629,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18540:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}],"id":24628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18532:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24627,"name":"address","nodeType":"ElementaryTypeName","src":"18532:7:76","typeDescriptions":{}}},"id":24630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18532:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24631,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24579,"src":"18547:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24623,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24869,"src":"18495:17:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":24632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18495:59:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24633,"nodeType":"ExpressionStatement","src":"18495:59:76"},{"expression":{"id":24640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24634,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"18568:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24636,"indexExpression":{"id":24635,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18579:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18568:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24637,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24579,"src":"18588:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":24638,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22952,"src":"18597:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18588:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18568:37:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24641,"nodeType":"ExpressionStatement","src":"18568:37:76"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24692,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"18970:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24694,"indexExpression":{"id":24693,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"18981:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18970:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18990:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18970:21:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"72657761726452617465203d2030","id":24697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18993:16:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5","typeString":"literal_string \"rewardRate = 0\""},"value":"rewardRate = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5","typeString":"literal_string \"rewardRate = 0\""}],"id":24691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18962:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18962:48:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24699,"nodeType":"ExpressionStatement","src":"18962:48:76"},{"assignments":[24701],"declarations":[{"constant":false,"id":24701,"mutability":"mutable","name":"balance","nameLocation":"19028:7:76","nodeType":"VariableDeclaration","scope":24757,"src":"19020:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24700,"name":"uint256","nodeType":"ElementaryTypeName","src":"19020:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24711,"initialValue":{"arguments":[{"arguments":[{"id":24708,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19070:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}],"id":24707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19062:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24706,"name":"address","nodeType":"ElementaryTypeName","src":"19062:7:76","typeDescriptions":{}}},"id":24709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19062:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":24703,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"19045:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24702,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"19038:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":24704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19038:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":24705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"19038:23:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":24710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19038:38:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19020:56:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24713,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"19107:10:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24715,"indexExpression":{"id":24714,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"19118:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19107:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24716,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24701,"src":"19128:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":24717,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22952,"src":"19138:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19128:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19107:39:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f76696465642072657761726420746f6f2068696768","id":24720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19160:26:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""},"value":"Provided reward too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""}],"id":24712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19086:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19086:110:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24722,"nodeType":"ExpressionStatement","src":"19086:110:76"},{"expression":{"id":24730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24723,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22965,"src":"19206:12:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24725,"indexExpression":{"id":24724,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"19219:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19206:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24726,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"19228:5:76","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19228:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":24728,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22952,"src":"19246:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19228:26:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19206:48:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24731,"nodeType":"ExpressionStatement","src":"19206:48:76"},{"condition":{"id":24735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19268:16:76","subExpression":{"baseExpression":{"id":24732,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22992,"src":"19269:8:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":24734,"indexExpression":{"id":24733,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"19278:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19269:15:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24749,"nodeType":"IfStatement","src":"19264:102:76","trueBody":{"id":24748,"nodeType":"Block","src":"19286:80:76","statements":[{"expression":{"id":24740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24736,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22992,"src":"19300:8:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":24738,"indexExpression":{"id":24737,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"19309:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19300:15:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":24739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19318:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19300:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24741,"nodeType":"ExpressionStatement","src":"19300:22:76"},{"expression":{"arguments":[{"id":24745,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"19349:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24742,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22988,"src":"19336:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":24744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"19336:12:76","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":24746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19336:19:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24747,"nodeType":"ExpressionStatement","src":"19336:19:76"}]}},{"eventCall":{"arguments":[{"expression":{"id":24751,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19394:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19394:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24753,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24577,"src":"19406:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24754,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24579,"src":"19413:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24750,"name":"NotifyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33962,"src":"19381:12:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":24755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19381:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24756,"nodeType":"EmitStatement","src":"19376:44:76"}]},"functionSelector":"b66503cf","id":24758,"implemented":true,"kind":"function","modifiers":[{"id":24583,"kind":"modifierInvocation","modifierName":{"id":24582,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"18132:12:76"},"nodeType":"ModifierInvocation","src":"18132:12:76"}],"name":"notifyRewardAmount","nameLocation":"18040:18:76","nodeType":"FunctionDefinition","overrides":{"id":24581,"nodeType":"OverrideSpecifier","overrides":[],"src":"18115:8:76"},"parameters":{"id":24580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24577,"mutability":"mutable","name":"token","nameLocation":"18067:5:76","nodeType":"VariableDeclaration","scope":24758,"src":"18059:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24576,"name":"address","nodeType":"ElementaryTypeName","src":"18059:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24579,"mutability":"mutable","name":"amount","nameLocation":"18082:6:76","nodeType":"VariableDeclaration","scope":24758,"src":"18074:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24578,"name":"uint256","nodeType":"ElementaryTypeName","src":"18074:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18058:31:76"},"returnParameters":{"id":24584,"nodeType":"ParameterList","parameters":[],"src":"18149:0:76"},"scope":24870,"src":"18031:1396:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24811,"nodeType":"Block","src":"19537:337:76","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":24768,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24760,"src":"19555:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":24769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"19555:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":24770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"19555:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19575:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19555:21:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e20636f6465","id":24773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19578:20:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""},"value":"invalid token code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""}],"id":24767,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19547:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19547:52:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24775,"nodeType":"ExpressionStatement","src":"19547:52:76"},{"assignments":[24777,24779],"declarations":[{"constant":false,"id":24777,"mutability":"mutable","name":"success","nameLocation":"19615:7:76","nodeType":"VariableDeclaration","scope":24811,"src":"19610:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24776,"name":"bool","nodeType":"ElementaryTypeName","src":"19610:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24779,"mutability":"mutable","name":"data","nameLocation":"19637:4:76","nodeType":"VariableDeclaration","scope":24811,"src":"19624:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":24778,"name":"bytes","nodeType":"ElementaryTypeName","src":"19624:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":24791,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":24784,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"19692:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":24785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"19692:15:76","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transfer(address,uint256) returns (bool)"}},"id":24786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"19692:24:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":24787,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24762,"src":"19718:2:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24764,"src":"19722:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24782,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19669:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"19669:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":24789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19669:59:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":24780,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24760,"src":"19645:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":24781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"19645:10:76","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":24790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19645:93:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"19609:129:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24793,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24777,"src":"19769:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24794,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24779,"src":"19781:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":24795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"19781:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":24796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19796:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19781:16:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":24800,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24779,"src":"19812:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":24802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19819:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":24801,"name":"bool","nodeType":"ElementaryTypeName","src":"19819:4:76","typeDescriptions":{}}}],"id":24803,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19818:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":24798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19801:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"19801:10:76","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":24804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19801:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19781:44:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":24806,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19780:46:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19769:57:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":24808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19840:17:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":24792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19748:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19748:119:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24810,"nodeType":"ExpressionStatement","src":"19748:119:76"}]},"id":24812,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"19442:13:76","nodeType":"FunctionDefinition","parameters":{"id":24765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24760,"mutability":"mutable","name":"token","nameLocation":"19473:5:76","nodeType":"VariableDeclaration","scope":24812,"src":"19465:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24759,"name":"address","nodeType":"ElementaryTypeName","src":"19465:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24762,"mutability":"mutable","name":"to","nameLocation":"19496:2:76","nodeType":"VariableDeclaration","scope":24812,"src":"19488:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24761,"name":"address","nodeType":"ElementaryTypeName","src":"19488:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24764,"mutability":"mutable","name":"value","nameLocation":"19516:5:76","nodeType":"VariableDeclaration","scope":24812,"src":"19508:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24763,"name":"uint256","nodeType":"ElementaryTypeName","src":"19508:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19455:72:76"},"returnParameters":{"id":24766,"nodeType":"ParameterList","parameters":[],"src":"19537:0:76"},"scope":24870,"src":"19433:441:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":24868,"nodeType":"Block","src":"20010:429:76","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":24824,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24814,"src":"20028:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":24825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"20028:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":24826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20028:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20048:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20028:21:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e20636f6465","id":24829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20051:20:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""},"value":"invalid token code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""}],"id":24823,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20020:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20020:52:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24831,"nodeType":"ExpressionStatement","src":"20020:52:76"},{"assignments":[24833,24835],"declarations":[{"constant":false,"id":24833,"mutability":"mutable","name":"success","nameLocation":"20088:7:76","nodeType":"VariableDeclaration","scope":24868,"src":"20083:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24832,"name":"bool","nodeType":"ElementaryTypeName","src":"20083:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24835,"mutability":"mutable","name":"data","nameLocation":"20110:4:76","nodeType":"VariableDeclaration","scope":24868,"src":"20097:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":24834,"name":"bytes","nodeType":"ElementaryTypeName","src":"20097:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":24848,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":24840,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"20182:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":24841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"20182:19:76","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transferFrom(address,address,uint256) returns (bool)"}},"id":24842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"20182:28:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":24843,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24816,"src":"20228:4:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24844,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24818,"src":"20250:2:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24845,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24820,"src":"20270:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20142:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"20142:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":24846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20142:147:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":24836,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24814,"src":"20118:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":24837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"20118:10:76","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":24847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20118:181:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"20082:217:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24850,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24833,"src":"20330:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24851,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24835,"src":"20342:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":24852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20342:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":24853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20357:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20342:16:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":24857,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24835,"src":"20373:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":24859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20380:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":24858,"name":"bool","nodeType":"ElementaryTypeName","src":"20380:4:76","typeDescriptions":{}}}],"id":24860,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20379:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":24855,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20362:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"20362:10:76","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":24861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20362:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20342:44:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":24863,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20341:46:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20330:57:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e7366657246726f6d206661696c6564","id":24865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20401:21:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""},"value":"transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""}],"id":24849,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20309:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20309:123:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24867,"nodeType":"ExpressionStatement","src":"20309:123:76"}]},"id":24869,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"19889:17:76","nodeType":"FunctionDefinition","parameters":{"id":24821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24814,"mutability":"mutable","name":"token","nameLocation":"19924:5:76","nodeType":"VariableDeclaration","scope":24869,"src":"19916:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24813,"name":"address","nodeType":"ElementaryTypeName","src":"19916:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24816,"mutability":"mutable","name":"from","nameLocation":"19947:4:76","nodeType":"VariableDeclaration","scope":24869,"src":"19939:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24815,"name":"address","nodeType":"ElementaryTypeName","src":"19939:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24818,"mutability":"mutable","name":"to","nameLocation":"19969:2:76","nodeType":"VariableDeclaration","scope":24869,"src":"19961:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24817,"name":"address","nodeType":"ElementaryTypeName","src":"19961:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24820,"mutability":"mutable","name":"value","nameLocation":"19989:5:76","nodeType":"VariableDeclaration","scope":24869,"src":"19981:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24819,"name":"uint256","nodeType":"ElementaryTypeName","src":"19981:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19906:94:76"},"returnParameters":{"id":24822,"nodeType":"ParameterList","parameters":[],"src":"20010:0:76"},"scope":24870,"src":"19880:559:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":24871,"src":"645:19796:76","usedErrors":[]}],"src":"32:20410:76"},"id":76},"contracts/bribes/BaseV2BribesFactory.sol":{"ast":{"absolutePath":"contracts/bribes/BaseV2BribesFactory.sol","exportedSymbols":{"BaseV2Bribes":[24870],"BaseV2BribesFactory":[24905],"IBribeFactory":[33892]},"id":24906,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":24872,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:77"},{"absolutePath":"contracts/bribes/BaseV2Bribes.sol","file":"./BaseV2Bribes.sol","id":24874,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24906,"sourceUnit":24871,"src":"57:48:77","symbolAliases":[{"foreign":{"id":24873,"name":"BaseV2Bribes","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:12:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribeFactory.sol","file":"../interfaces/IBribeFactory.sol","id":24876,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24906,"sourceUnit":33893,"src":"106:62:77","symbolAliases":[{"foreign":{"id":24875,"name":"IBribeFactory","nodeType":"Identifier","overloadedDeclarations":[],"src":"114:13:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24877,"name":"IBribeFactory","nodeType":"IdentifierPath","referencedDeclaration":33892,"src":"202:13:77"},"id":24878,"nodeType":"InheritanceSpecifier","src":"202:13:77"}],"contractDependencies":[24870],"contractKind":"contract","fullyImplemented":true,"id":24905,"linearizedBaseContracts":[24905,33892],"name":"BaseV2BribesFactory","nameLocation":"179:19:77","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[33887],"body":{"id":24903,"nodeType":"Block","src":"326:125:77","statements":[{"assignments":[24887],"declarations":[{"constant":false,"id":24887,"mutability":"mutable","name":"bribe","nameLocation":"344:5:77","nodeType":"VariableDeclaration","scope":24903,"src":"336:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24886,"name":"address","nodeType":"ElementaryTypeName","src":"336:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":24896,"initialValue":{"arguments":[{"arguments":[{"id":24893,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24880,"src":"377:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"360:16:77","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_BaseV2Bribes_$24870_$","typeString":"function (address) returns (contract BaseV2Bribes)"},"typeName":{"id":24891,"nodeType":"UserDefinedTypeName","pathNode":{"id":24890,"name":"BaseV2Bribes","nodeType":"IdentifierPath","referencedDeclaration":24870,"src":"364:12:77"},"referencedDeclaration":24870,"src":"364:12:77","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}}},"id":24894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"360:27:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV2Bribes_$24870","typeString":"contract BaseV2Bribes"}],"id":24889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"352:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24888,"name":"address","nodeType":"ElementaryTypeName","src":"352:7:77","typeDescriptions":{}}},"id":24895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"352:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"336:52:77"},{"eventCall":{"arguments":[{"id":24898,"name":"bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24887,"src":"416:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24897,"name":"BribeCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"403:12:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":24899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"403:19:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24900,"nodeType":"EmitStatement","src":"398:24:77"},{"expression":{"id":24901,"name":"bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24887,"src":"439:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":24885,"id":24902,"nodeType":"Return","src":"432:12:77"}]},"functionSelector":"6bd1a72c","id":24904,"implemented":true,"kind":"function","modifiers":[],"name":"createBribe","nameLocation":"231:11:77","nodeType":"FunctionDefinition","overrides":{"id":24882,"nodeType":"OverrideSpecifier","overrides":[],"src":"287:8:77"},"parameters":{"id":24881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24880,"mutability":"mutable","name":"_registry","nameLocation":"251:9:77","nodeType":"VariableDeclaration","scope":24904,"src":"243:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24879,"name":"address","nodeType":"ElementaryTypeName","src":"243:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"242:19:77"},"returnParameters":{"id":24885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24904,"src":"313:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24883,"name":"address","nodeType":"ElementaryTypeName","src":"313:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"312:9:77"},"scope":24905,"src":"222:229:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":24906,"src":"170:283:77","usedErrors":[]}],"src":"32:422:77"},"id":77},"contracts/fees/FeeDistributor.sol":{"ast":{"absolutePath":"contracts/fees/FeeDistributor.sol","exportedSymbols":{"FeeDistributor":[26100],"IERC20":[5767],"IFeeDistributor":[34077],"INFTLocker":[34923],"IPendingFeeDistributor":[35391],"Initializable":[4914],"Math":[10353],"Operator":[37253],"Ownable":[655],"ReentrancyGuard":[5062],"console":[48415]},"id":26101,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":24907,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:78"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":24909,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":5768,"src":"58:70:78","symbolAliases":[{"foreign":{"id":24908,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":24911,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":4915,"src":"129:84:78","symbolAliases":[{"foreign":{"id":24910,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"src":"137:13:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":24913,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":10354,"src":"214:65:78","symbolAliases":[{"foreign":{"id":24912,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"222:4:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":24915,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":656,"src":"280:67:78","symbolAliases":[{"foreign":{"id":24914,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"288:7:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":24917,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":5063,"src":"348:85:78","symbolAliases":[{"foreign":{"id":24916,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"356:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/Operator.sol","file":"../utils/Operator.sol","id":24919,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":37254,"src":"435:47:78","symbolAliases":[{"foreign":{"id":24918,"name":"Operator","nodeType":"Identifier","overloadedDeclarations":[],"src":"443:8:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IFeeDistributor.sol","file":"../interfaces/IFeeDistributor.sol","id":24921,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":34078,"src":"483:66:78","symbolAliases":[{"foreign":{"id":24920,"name":"IFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"src":"491:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"../interfaces/INFTLocker.sol","id":24923,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":34924,"src":"550:56:78","symbolAliases":[{"foreign":{"id":24922,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"558:10:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":24925,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":48416,"src":"608:44:78","symbolAliases":[{"foreign":{"id":24924,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"src":"616:7:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPendingFeeDistributor.sol","file":"../interfaces/IPendingFeeDistributor.sol","id":24927,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26101,"sourceUnit":35392,"src":"653:80:78","symbolAliases":[{"foreign":{"id":24926,"name":"IPendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"src":"661:22:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24928,"name":"Operator","nodeType":"IdentifierPath","referencedDeclaration":37253,"src":"766:8:78"},"id":24929,"nodeType":"InheritanceSpecifier","src":"766:8:78"},{"baseName":{"id":24930,"name":"IFeeDistributor","nodeType":"IdentifierPath","referencedDeclaration":34077,"src":"780:15:78"},"id":24931,"nodeType":"InheritanceSpecifier","src":"780:15:78"},{"baseName":{"id":24932,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"801:15:78"},"id":24933,"nodeType":"InheritanceSpecifier","src":"801:15:78"},{"baseName":{"id":24934,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"822:13:78"},"id":24935,"nodeType":"InheritanceSpecifier","src":"822:13:78"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":26100,"linearizedBaseContracts":[26100,4914,5062,34077,37253,655,8255],"name":"FeeDistributor","nameLocation":"744:14:78","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"f4359ce5","id":24940,"mutability":"constant","name":"WEEK","nameLocation":"866:4:78","nodeType":"VariableDeclaration","scope":26100,"src":"842:40:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24936,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"id":24939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"37","id":24937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"873:1:78","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3836343030","id":24938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:5:78","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"86400"},"src":"873:9:78","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"}},"visibility":"public"},{"constant":true,"functionSelector":"a5420e98","id":24943,"mutability":"constant","name":"TOKEN_CHECKPOINT_DEADLINE","nameLocation":"912:25:78","nodeType":"VariableDeclaration","scope":26100,"src":"888:57:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24941,"name":"uint256","nodeType":"ElementaryTypeName","src":"888:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3836343030","id":24942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"940:5:78","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"86400"},"visibility":"public"},{"constant":false,"functionSelector":"78e97925","id":24945,"mutability":"mutable","name":"startTime","nameLocation":"967:9:78","nodeType":"VariableDeclaration","scope":26100,"src":"952:24:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24944,"name":"uint256","nodeType":"ElementaryTypeName","src":"952:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"8736659b","id":24947,"mutability":"mutable","name":"timeCursor","nameLocation":"997:10:78","nodeType":"VariableDeclaration","scope":26100,"src":"982:25:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24946,"name":"uint256","nodeType":"ElementaryTypeName","src":"982:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"4607bf60","id":24951,"mutability":"mutable","name":"timeCursorOf","nameLocation":"1048:12:78","nodeType":"VariableDeclaration","scope":26100,"src":"1013:47:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":24950,"keyType":{"id":24948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1013:27:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":24949,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"e32890c4","id":24955,"mutability":"mutable","name":"userEpochOf","nameLocation":"1101:11:78","nodeType":"VariableDeclaration","scope":26100,"src":"1066:46:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":24954,"keyType":{"id":24952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1074:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1066:27:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":24953,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"939ea66b","id":24957,"mutability":"mutable","name":"lastTokenTime","nameLocation":"1134:13:78","nodeType":"VariableDeclaration","scope":26100,"src":"1119:28:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24956,"name":"uint256","nodeType":"ElementaryTypeName","src":"1119:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"899519be","id":24961,"mutability":"mutable","name":"tokensPerWeek","nameLocation":"1186:13:78","nodeType":"VariableDeclaration","scope":26100,"src":"1153:46:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000]"},"typeName":{"baseType":{"id":24958,"name":"uint256","nodeType":"ElementaryTypeName","src":"1153:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24960,"length":{"hexValue":"31303030303030303030303030303030","id":24959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1161:16:78","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"1000000000000000"},"nodeType":"ArrayTypeName","src":"1153:25:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage_ptr","typeString":"uint256[1000000000000000]"}},"visibility":"public"},{"constant":false,"functionSelector":"d7b96d4e","id":24964,"mutability":"mutable","name":"locker","nameLocation":"1224:6:78","nodeType":"VariableDeclaration","scope":26100,"src":"1206:24:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":24963,"nodeType":"UserDefinedTypeName","pathNode":{"id":24962,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"1206:10:78"},"referencedDeclaration":34923,"src":"1206:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"public"},{"constant":false,"functionSelector":"fc0c546a","id":24967,"mutability":"mutable","name":"token","nameLocation":"1250:5:78","nodeType":"VariableDeclaration","scope":26100,"src":"1236:19:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":24966,"nodeType":"UserDefinedTypeName","pathNode":{"id":24965,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1236:6:78"},"referencedDeclaration":5767,"src":"1236:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"8ec8468a","id":24969,"mutability":"mutable","name":"tokenLastBalance","nameLocation":"1276:16:78","nodeType":"VariableDeclaration","scope":26100,"src":"1261:31:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1261:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"0f6592ef","id":24973,"mutability":"mutable","name":"veSupply","nameLocation":"1332:8:78","nodeType":"VariableDeclaration","scope":26100,"src":"1299:41:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000]"},"typeName":{"baseType":{"id":24970,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24972,"length":{"hexValue":"31303030303030303030303030303030","id":24971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1307:16:78","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"1000000000000000"},"nodeType":"ArrayTypeName","src":"1299:25:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage_ptr","typeString":"uint256[1000000000000000]"}},"visibility":"public"},{"constant":false,"functionSelector":"8fe8a101","id":24975,"mutability":"mutable","name":"isKilled","nameLocation":"1393:8:78","nodeType":"VariableDeclaration","scope":26100,"src":"1381:20:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24974,"name":"bool","nodeType":"ElementaryTypeName","src":"1381:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"0cc672e4","id":24978,"mutability":"mutable","name":"canCheckpointToken","nameLocation":"1419:18:78","nodeType":"VariableDeclaration","scope":26100,"src":"1407:37:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24976,"name":"bool","nodeType":"ElementaryTypeName","src":"1407:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":24977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1440:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"constant":false,"functionSelector":"7d2294d0","id":24981,"mutability":"mutable","name":"pendingFeeDistributor","nameLocation":"1480:21:78","nodeType":"VariableDeclaration","scope":26100,"src":"1450:51:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"},"typeName":{"id":24980,"nodeType":"UserDefinedTypeName","pathNode":{"id":24979,"name":"IPendingFeeDistributor","nodeType":"IdentifierPath","referencedDeclaration":35391,"src":"1450:22:78"},"referencedDeclaration":35391,"src":"1450:22:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"visibility":"public"},{"body":{"id":25030,"nodeType":"Block","src":"1621:290:78","statements":[{"assignments":[24991],"declarations":[{"constant":false,"id":24991,"mutability":"mutable","name":"t","nameLocation":"1639:1:78","nodeType":"VariableDeclaration","scope":25030,"src":"1631:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1631:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24999,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":24992,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1644:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"1644:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":24994,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"1662:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1644:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24996,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1643:24:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":24997,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"1670:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1643:31:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1631:43:78"},{"expression":{"id":25002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25000,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24945,"src":"1684:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25001,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24991,"src":"1696:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1684:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25003,"nodeType":"ExpressionStatement","src":"1684:13:78"},{"expression":{"id":25006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25004,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"1707:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25005,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24991,"src":"1723:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1707:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25007,"nodeType":"ExpressionStatement","src":"1707:17:78"},{"expression":{"id":25010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25008,"name":"timeCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24947,"src":"1734:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25009,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24991,"src":"1747:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1734:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25011,"nodeType":"ExpressionStatement","src":"1734:14:78"},{"expression":{"id":25016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25012,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24967,"src":"1758:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25014,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24985,"src":"1773:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25013,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"1766:6:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":25015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1766:14:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"src":"1758:22:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":25017,"nodeType":"ExpressionStatement","src":"1758:22:78"},{"expression":{"id":25022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25018,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"1790:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25020,"name":"_votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24983,"src":"1810:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25019,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"1799:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":25021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1799:25:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"src":"1790:34:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25023,"nodeType":"ExpressionStatement","src":"1790:34:78"},{"expression":{"id":25028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25024,"name":"pendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24981,"src":"1834:21:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25026,"name":"_pendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24987,"src":"1881:22:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25025,"name":"IPendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35391,"src":"1858:22:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPendingFeeDistributor_$35391_$","typeString":"type(contract IPendingFeeDistributor)"}},"id":25027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1858:46:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"src":"1834:70:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"id":25029,"nodeType":"ExpressionStatement","src":"1834:70:78"}]},"id":25031,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":24988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24983,"mutability":"mutable","name":"_votingEscrow","nameLocation":"1537:13:78","nodeType":"VariableDeclaration","scope":25031,"src":"1529:21:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24982,"name":"address","nodeType":"ElementaryTypeName","src":"1529:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24985,"mutability":"mutable","name":"_token","nameLocation":"1568:6:78","nodeType":"VariableDeclaration","scope":25031,"src":"1560:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24984,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24987,"mutability":"mutable","name":"_pendingFeeDistributor","nameLocation":"1592:22:78","nodeType":"VariableDeclaration","scope":25031,"src":"1584:30:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24986,"name":"address","nodeType":"ElementaryTypeName","src":"1584:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1519:101:78"},"returnParameters":{"id":24989,"nodeType":"ParameterList","parameters":[],"src":"1621:0:78"},"scope":26100,"src":"1508:403:78","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":25177,"nodeType":"Block","src":"1971:1286:78","statements":[{"assignments":[25037],"declarations":[{"constant":false,"id":25037,"mutability":"mutable","name":"tokenBalance","nameLocation":"2038:12:78","nodeType":"VariableDeclaration","scope":25177,"src":"2030:20:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25036,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25045,"initialValue":{"arguments":[{"arguments":[{"id":25042,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2077:4:78","typeDescriptions":{"typeIdentifier":"t_contract$_FeeDistributor_$26100","typeString":"contract FeeDistributor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeDistributor_$26100","typeString":"contract FeeDistributor"}],"id":25041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2069:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25040,"name":"address","nodeType":"ElementaryTypeName","src":"2069:7:78","typeDescriptions":{}}},"id":25043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2069:13:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25038,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24967,"src":"2053:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":25039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"2053:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2053:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:53:78"},{"assignments":[25047],"declarations":[{"constant":false,"id":25047,"mutability":"mutable","name":"toDistribute","nameLocation":"2101:12:78","nodeType":"VariableDeclaration","scope":25177,"src":"2093:20:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25046,"name":"uint256","nodeType":"ElementaryTypeName","src":"2093:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25051,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25048,"name":"tokenBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25037,"src":"2116:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":25049,"name":"tokenLastBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24969,"src":"2131:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2116:31:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2093:54:78"},{"expression":{"id":25054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25052,"name":"tokenLastBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24969,"src":"2157:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25053,"name":"tokenBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25037,"src":"2176:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2157:31:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25055,"nodeType":"ExpressionStatement","src":"2157:31:78"},{"assignments":[25057],"declarations":[{"constant":false,"id":25057,"mutability":"mutable","name":"t","nameLocation":"2207:1:78","nodeType":"VariableDeclaration","scope":25177,"src":"2199:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25056,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25059,"initialValue":{"id":25058,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"2211:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2199:25:78"},{"assignments":[25061],"declarations":[{"constant":false,"id":25061,"mutability":"mutable","name":"sinceLast","nameLocation":"2242:9:78","nodeType":"VariableDeclaration","scope":25177,"src":"2234:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25060,"name":"uint256","nodeType":"ElementaryTypeName","src":"2234:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25065,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25062,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25033,"src":"2254:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":25063,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"2266:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2254:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2234:33:78"},{"expression":{"id":25068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25066,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"2277:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25067,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25033,"src":"2293:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2277:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25069,"nodeType":"ExpressionStatement","src":"2277:25:78"},{"assignments":[25071],"declarations":[{"constant":false,"id":25071,"mutability":"mutable","name":"thisWeek","nameLocation":"2321:8:78","nodeType":"VariableDeclaration","scope":25177,"src":"2313:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25070,"name":"uint256","nodeType":"ElementaryTypeName","src":"2313:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25078,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25072,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"2333:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":25073,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"2337:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2333:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2332:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":25076,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"2345:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2332:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2313:36:78"},{"assignments":[25080],"declarations":[{"constant":false,"id":25080,"mutability":"mutable","name":"nextWeek","nameLocation":"2367:8:78","nodeType":"VariableDeclaration","scope":25177,"src":"2359:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25079,"name":"uint256","nodeType":"ElementaryTypeName","src":"2359:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25082,"initialValue":{"hexValue":"30","id":25081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2378:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2359:20:78"},{"body":{"id":25170,"nodeType":"Block","src":"2435:760:78","statements":[{"expression":{"id":25097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25093,"name":"nextWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"2449:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25094,"name":"thisWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"2460:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25095,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"2471:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2460:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2449:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25098,"nodeType":"ExpressionStatement","src":"2449:26:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25099,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25033,"src":"2493:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":25100,"name":"nextWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"2505:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2493:20:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":25160,"nodeType":"Block","src":"2836:290:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25132,"name":"sinceLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25061,"src":"2858:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2871:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2858:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25135,"name":"nextWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"2876:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25136,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"2888:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2876:13:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2858:31:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":25157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25145,"name":"tokensPerWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24961,"src":"2993:13:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000] storage ref"}},"id":25147,"indexExpression":{"id":25146,"name":"thisWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"3007:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2993:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25148,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25047,"src":"3045:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25149,"name":"nextWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"3061:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":25150,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"3072:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3061:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3060:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3045:29:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25154,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3044:31:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":25155,"name":"sinceLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25061,"src":"3102:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3044:67:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2993:118:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25158,"nodeType":"ExpressionStatement","src":"2993:118:78"},"id":25159,"nodeType":"IfStatement","src":"2854:257:78","trueBody":{"expression":{"id":25143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25139,"name":"tokensPerWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24961,"src":"2911:13:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000] storage ref"}},"id":25141,"indexExpression":{"id":25140,"name":"thisWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"2925:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2911:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25142,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25047,"src":"2938:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:39:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25144,"nodeType":"ExpressionStatement","src":"2911:39:78"}}]},"id":25161,"nodeType":"IfStatement","src":"2489:637:78","trueBody":{"id":25131,"nodeType":"Block","src":"2515:315:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25102,"name":"sinceLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25061,"src":"2537:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2550:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2537:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25105,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25033,"src":"2555:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25106,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"2568:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2537:32:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":25127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25115,"name":"tokensPerWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24961,"src":"2673:13:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000] storage ref"}},"id":25117,"indexExpression":{"id":25116,"name":"thisWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"2687:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2673:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25118,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25047,"src":"2725:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25119,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25033,"src":"2741:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":25120,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"2753:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2741:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25122,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2740:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2725:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25124,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2724:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":25125,"name":"sinceLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25061,"src":"2783:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2724:68:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2673:119:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25128,"nodeType":"ExpressionStatement","src":"2673:119:78"},"id":25129,"nodeType":"IfStatement","src":"2533:259:78","trueBody":{"expression":{"id":25113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25109,"name":"tokensPerWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24961,"src":"2591:13:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000] storage ref"}},"id":25111,"indexExpression":{"id":25110,"name":"thisWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"2605:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2591:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25112,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25047,"src":"2618:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2591:39:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25114,"nodeType":"ExpressionStatement","src":"2591:39:78"}},{"id":25130,"nodeType":"Break","src":"2810:5:78"}]}},{"expression":{"id":25164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25162,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"3139:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25163,"name":"nextWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"3143:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3139:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25165,"nodeType":"ExpressionStatement","src":"3139:12:78"},{"expression":{"id":25168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25166,"name":"thisWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"3165:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25167,"name":"nextWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"3176:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3165:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25169,"nodeType":"ExpressionStatement","src":"3165:19:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25087,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25084,"src":"2414:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3230","id":25088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2422:2:78","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"2414:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25171,"initializationExpression":{"assignments":[25084],"declarations":[{"constant":false,"id":25084,"mutability":"mutable","name":"index","nameLocation":"2403:5:78","nodeType":"VariableDeclaration","scope":25171,"src":"2395:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25083,"name":"uint256","nodeType":"ElementaryTypeName","src":"2395:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25086,"initialValue":{"hexValue":"30","id":25085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2411:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2395:17:78"},"loopExpression":{"expression":{"id":25091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2426:7:78","subExpression":{"id":25090,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25084,"src":"2426:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25092,"nodeType":"ExpressionStatement","src":"2426:7:78"},"nodeType":"ForStatement","src":"2390:805:78"},{"eventCall":{"arguments":[{"id":25173,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25033,"src":"3226:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25174,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25047,"src":"3237:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25172,"name":"CheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34031,"src":"3210:15:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":25175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3210:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25176,"nodeType":"EmitStatement","src":"3205:45:78"}]},"id":25178,"implemented":true,"kind":"function","modifiers":[],"name":"_checkpointToken","nameLocation":"1926:16:78","nodeType":"FunctionDefinition","parameters":{"id":25034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25033,"mutability":"mutable","name":"timestamp","nameLocation":"1951:9:78","nodeType":"VariableDeclaration","scope":25178,"src":"1943:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1943:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1942:19:78"},"returnParameters":{"id":25035,"nodeType":"ParameterList","parameters":[],"src":"1971:0:78"},"scope":26100,"src":"1917:1340:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34044],"body":{"id":25207,"nodeType":"Block","src":"3308:307:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":25187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25183,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3339:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3339:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":25185,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37189,"src":"3353:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3353:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3339:24:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25188,"name":"canCheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24978,"src":"3384:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25189,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3427:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3427:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25191,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"3469:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25192,"name":"TOKEN_CHECKPOINT_DEADLINE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24943,"src":"3485:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3469:41:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3427:83:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":25195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3426:85:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3384:127:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":25197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3383:129:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3339:173:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74206f70657261746f72206f72206e6f7420616c6c6f776564","id":25199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3526:29:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_a552d007bdf84b1176e7e3f80a4df813ab53be2ec5b2ac060b79207ce8ef548a","typeString":"literal_string \"not operator or not allowed\""},"value":"not operator or not allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a552d007bdf84b1176e7e3f80a4df813ab53be2ec5b2ac060b79207ce8ef548a","typeString":"literal_string \"not operator or not allowed\""}],"id":25182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3318:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3318:247:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25201,"nodeType":"ExpressionStatement","src":"3318:247:78"},{"expression":{"arguments":[{"expression":{"id":25203,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3592:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3592:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25202,"name":"_checkpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25178,"src":"3575:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":25205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3575:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25206,"nodeType":"ExpressionStatement","src":"3575:33:78"}]},"functionSelector":"bee5dc32","id":25208,"implemented":true,"kind":"function","modifiers":[],"name":"checkpointToken","nameLocation":"3272:15:78","nodeType":"FunctionDefinition","overrides":{"id":25180,"nodeType":"OverrideSpecifier","overrides":[],"src":"3299:8:78"},"parameters":{"id":25179,"nodeType":"ParameterList","parameters":[],"src":"3287:2:78"},"returnParameters":{"id":25181,"nodeType":"ParameterList","parameters":[],"src":"3308:0:78"},"scope":26100,"src":"3263:352:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25281,"nodeType":"Block","src":"3730:420:78","statements":[{"assignments":[25216],"declarations":[{"constant":false,"id":25216,"mutability":"mutable","name":"min","nameLocation":"3748:3:78","nodeType":"VariableDeclaration","scope":25281,"src":"3740:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25215,"name":"uint256","nodeType":"ElementaryTypeName","src":"3740:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25218,"initialValue":{"hexValue":"30","id":25217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3754:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3740:15:78"},{"assignments":[25220],"declarations":[{"constant":false,"id":25220,"mutability":"mutable","name":"max","nameLocation":"3773:3:78","nodeType":"VariableDeclaration","scope":25281,"src":"3765:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25219,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25224,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25221,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"3779:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":34761,"src":"3779:12:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":25223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3779:14:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3765:28:78"},{"body":{"id":25277,"nodeType":"Block","src":"3850:273:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25235,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"3868:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":25236,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25220,"src":"3875:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3868:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25240,"nodeType":"IfStatement","src":"3864:54:78","trueBody":{"id":25239,"nodeType":"Block","src":"3880:38:78","statements":[{"id":25238,"nodeType":"Break","src":"3898:5:78"}]}},{"assignments":[25242],"declarations":[{"constant":false,"id":25242,"mutability":"mutable","name":"mid","nameLocation":"3939:3:78","nodeType":"VariableDeclaration","scope":25277,"src":"3931:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25241,"name":"uint256","nodeType":"ElementaryTypeName","src":"3931:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25251,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25243,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"3946:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25244,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25220,"src":"3952:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3946:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":25246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3958:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3946:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25248,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3945:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":25249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3963:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3945:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3931:33:78"},{"assignments":[25256],"declarations":[{"constant":false,"id":25256,"mutability":"mutable","name":"pt","nameLocation":"4002:2:78","nodeType":"VariableDeclaration","scope":25277,"src":"3978:26:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":25255,"nodeType":"UserDefinedTypeName","pathNode":{"id":25254,"name":"INFTLocker.Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"3978:16:78"},"referencedDeclaration":34884,"src":"3978:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":25261,"initialValue":{"arguments":[{"id":25259,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25242,"src":"4027:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25257,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"4007:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pointHistory","nodeType":"MemberAccess","referencedDeclaration":34786,"src":"4007:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Point_$34884_memory_ptr_$","typeString":"function (uint256) view external returns (struct INFTLocker.Point memory)"}},"id":25260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4007:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"3978:53:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25262,"name":"pt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25256,"src":"4050:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"4050:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":25264,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25210,"src":"4059:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4050:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":25274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25270,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25220,"src":"4099:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25271,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25242,"src":"4105:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":25272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4111:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4105:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4099:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25275,"nodeType":"ExpressionStatement","src":"4099:13:78"},"id":25276,"nodeType":"IfStatement","src":"4046:66:78","trueBody":{"expression":{"id":25268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25266,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"4071:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25267,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25242,"src":"4077:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4071:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25269,"nodeType":"ExpressionStatement","src":"4071:9:78"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25229,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25226,"src":"3828:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":25230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3836:3:78","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3828:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25278,"initializationExpression":{"assignments":[25226],"declarations":[{"constant":false,"id":25226,"mutability":"mutable","name":"index","nameLocation":"3817:5:78","nodeType":"VariableDeclaration","scope":25278,"src":"3809:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3809:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25228,"initialValue":{"hexValue":"30","id":25227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3825:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3809:17:78"},"loopExpression":{"expression":{"id":25233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3841:7:78","subExpression":{"id":25232,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25226,"src":"3841:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25234,"nodeType":"ExpressionStatement","src":"3841:7:78"},"nodeType":"ForStatement","src":"3804:319:78"},{"expression":{"id":25279,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"4140:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25214,"id":25280,"nodeType":"Return","src":"4133:10:78"}]},"id":25282,"implemented":true,"kind":"function","modifiers":[],"name":"_findTimestampEpoch","nameLocation":"3630:19:78","nodeType":"FunctionDefinition","parameters":{"id":25211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25210,"mutability":"mutable","name":"_timestamp","nameLocation":"3658:10:78","nodeType":"VariableDeclaration","scope":25282,"src":"3650:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25209,"name":"uint256","nodeType":"ElementaryTypeName","src":"3650:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3649:20:78"},"returnParameters":{"id":25214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25213,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25282,"src":"3717:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25212,"name":"uint256","nodeType":"ElementaryTypeName","src":"3717:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3716:9:78"},"scope":26100,"src":"3621:529:78","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":25358,"nodeType":"Block","src":"4308:429:78","statements":[{"assignments":[25294],"declarations":[{"constant":false,"id":25294,"mutability":"mutable","name":"min","nameLocation":"4326:3:78","nodeType":"VariableDeclaration","scope":25358,"src":"4318:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25293,"name":"uint256","nodeType":"ElementaryTypeName","src":"4318:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25296,"initialValue":{"hexValue":"30","id":25295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4332:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4318:15:78"},{"assignments":[25298],"declarations":[{"constant":false,"id":25298,"mutability":"mutable","name":"max","nameLocation":"4351:3:78","nodeType":"VariableDeclaration","scope":25358,"src":"4343:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25297,"name":"uint256","nodeType":"ElementaryTypeName","src":"4343:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25300,"initialValue":{"id":25299,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25288,"src":"4357:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4343:26:78"},{"body":{"id":25354,"nodeType":"Block","src":"4426:284:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25311,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25294,"src":"4444:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":25312,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25298,"src":"4451:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4444:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25316,"nodeType":"IfStatement","src":"4440:54:78","trueBody":{"id":25315,"nodeType":"Block","src":"4456:38:78","statements":[{"id":25314,"nodeType":"Break","src":"4474:5:78"}]}},{"assignments":[25318],"declarations":[{"constant":false,"id":25318,"mutability":"mutable","name":"mid","nameLocation":"4515:3:78","nodeType":"VariableDeclaration","scope":25354,"src":"4507:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25317,"name":"uint256","nodeType":"ElementaryTypeName","src":"4507:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25327,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25319,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25294,"src":"4522:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25320,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25298,"src":"4528:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4522:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":25322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4534:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4522:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25324,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4521:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":25325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4539:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4521:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4507:33:78"},{"assignments":[25332],"declarations":[{"constant":false,"id":25332,"mutability":"mutable","name":"pt","nameLocation":"4578:2:78","nodeType":"VariableDeclaration","scope":25354,"src":"4554:26:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":25331,"nodeType":"UserDefinedTypeName","pathNode":{"id":25330,"name":"INFTLocker.Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"4554:16:78"},"referencedDeclaration":34884,"src":"4554:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":25338,"initialValue":{"arguments":[{"id":25335,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25284,"src":"4607:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25336,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25318,"src":"4614:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25333,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"4583:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userPointHistory","nodeType":"MemberAccess","referencedDeclaration":34778,"src":"4583:23:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_struct$_Point_$34884_memory_ptr_$","typeString":"function (uint256,uint256) view external returns (struct INFTLocker.Point memory)"}},"id":25337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4583:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"4554:64:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25339,"name":"pt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25332,"src":"4637:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"4637:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":25341,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25286,"src":"4646:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4637:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":25351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25347,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25298,"src":"4686:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25348,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25318,"src":"4692:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":25349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4698:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4692:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4686:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25352,"nodeType":"ExpressionStatement","src":"4686:13:78"},"id":25353,"nodeType":"IfStatement","src":"4633:66:78","trueBody":{"expression":{"id":25345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25343,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25294,"src":"4658:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25344,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25318,"src":"4664:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4658:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25346,"nodeType":"ExpressionStatement","src":"4658:9:78"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25305,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25302,"src":"4404:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":25306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4412:3:78","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"4404:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25355,"initializationExpression":{"assignments":[25302],"declarations":[{"constant":false,"id":25302,"mutability":"mutable","name":"index","nameLocation":"4393:5:78","nodeType":"VariableDeclaration","scope":25355,"src":"4385:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25301,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25304,"initialValue":{"hexValue":"30","id":25303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4401:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4385:17:78"},"loopExpression":{"expression":{"id":25309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4417:7:78","subExpression":{"id":25308,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25302,"src":"4417:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25310,"nodeType":"ExpressionStatement","src":"4417:7:78"},"nodeType":"ForStatement","src":"4380:330:78"},{"expression":{"id":25356,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25294,"src":"4727:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25292,"id":25357,"nodeType":"Return","src":"4720:10:78"}]},"id":25359,"implemented":true,"kind":"function","modifiers":[],"name":"_findTimestampUserEpoch","nameLocation":"4165:23:78","nodeType":"FunctionDefinition","parameters":{"id":25289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25284,"mutability":"mutable","name":"nftId","nameLocation":"4206:5:78","nodeType":"VariableDeclaration","scope":25359,"src":"4198:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25283,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25286,"mutability":"mutable","name":"_timestamp","nameLocation":"4229:10:78","nodeType":"VariableDeclaration","scope":25359,"src":"4221:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4221:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25288,"mutability":"mutable","name":"maxUserEpoch","nameLocation":"4257:12:78","nodeType":"VariableDeclaration","scope":25359,"src":"4249:20:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25287,"name":"uint256","nodeType":"ElementaryTypeName","src":"4249:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4188:87:78"},"returnParameters":{"id":25292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25359,"src":"4299:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25290,"name":"uint256","nodeType":"ElementaryTypeName","src":"4299:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4298:9:78"},"scope":26100,"src":"4156:581:78","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":25465,"nodeType":"Block","src":"4803:905:78","statements":[{"assignments":[25365],"declarations":[{"constant":false,"id":25365,"mutability":"mutable","name":"t","nameLocation":"4876:1:78","nodeType":"VariableDeclaration","scope":25465,"src":"4868:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25364,"name":"uint256","nodeType":"ElementaryTypeName","src":"4868:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25367,"initialValue":{"id":25366,"name":"timeCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24947,"src":"4880:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4868:22:78"},{"assignments":[25369],"declarations":[{"constant":false,"id":25369,"mutability":"mutable","name":"roundedTimestamp","nameLocation":"4908:16:78","nodeType":"VariableDeclaration","scope":25465,"src":"4900:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25368,"name":"uint256","nodeType":"ElementaryTypeName","src":"4900:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25376,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25370,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25361,"src":"4928:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":25371,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"4940:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4928:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25373,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4927:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":25374,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"4948:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4927:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4900:52:78"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25377,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"4963:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"checkpoint","nodeType":"MemberAccess","referencedDeclaration":34827,"src":"4963:17:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":25380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4963:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25381,"nodeType":"ExpressionStatement","src":"4963:19:78"},{"body":{"id":25459,"nodeType":"Block","src":"5038:639:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25392,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25365,"src":"5056:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":25393,"name":"roundedTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25369,"src":"5060:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5056:20:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":25453,"nodeType":"Block","src":"5102:541:78","statements":[{"assignments":[25397],"declarations":[{"constant":false,"id":25397,"mutability":"mutable","name":"epoch","nameLocation":"5128:5:78","nodeType":"VariableDeclaration","scope":25453,"src":"5120:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25396,"name":"uint256","nodeType":"ElementaryTypeName","src":"5120:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25401,"initialValue":{"arguments":[{"id":25399,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25365,"src":"5156:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25398,"name":"_findTimestampEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25282,"src":"5136:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":25400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5136:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5120:38:78"},{"assignments":[25406],"declarations":[{"constant":false,"id":25406,"mutability":"mutable","name":"pt","nameLocation":"5200:2:78","nodeType":"VariableDeclaration","scope":25453,"src":"5176:26:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":25405,"nodeType":"UserDefinedTypeName","pathNode":{"id":25404,"name":"INFTLocker.Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"5176:16:78"},"referencedDeclaration":34884,"src":"5176:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":25411,"initialValue":{"arguments":[{"id":25409,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25397,"src":"5225:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25407,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"5205:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pointHistory","nodeType":"MemberAccess","referencedDeclaration":34786,"src":"5205:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Point_$34884_memory_ptr_$","typeString":"function (uint256) view external returns (struct INFTLocker.Point memory)"}},"id":25410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5205:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"5176:55:78"},{"assignments":[25413],"declarations":[{"constant":false,"id":25413,"mutability":"mutable","name":"dt","nameLocation":"5257:2:78","nodeType":"VariableDeclaration","scope":25453,"src":"5250:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":25412,"name":"int128","nodeType":"ElementaryTypeName","src":"5250:6:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":25415,"initialValue":{"hexValue":"30","id":25414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5262:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5250:13:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25416,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25365,"src":"5286:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":25417,"name":"pt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25406,"src":"5290:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"5290:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:9:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25433,"nodeType":"IfStatement","src":"5282:46:78","trueBody":{"expression":{"id":25431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25420,"name":"dt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25413,"src":"5297:2:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25425,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25365,"src":"5317:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":25426,"name":"pt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25406,"src":"5321:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"5321:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5317:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5309:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":25423,"name":"uint128","nodeType":"ElementaryTypeName","src":"5309:7:78","typeDescriptions":{}}},"id":25429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5309:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":25422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5302:6:78","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":25421,"name":"int128","nodeType":"ElementaryTypeName","src":"5302:6:78","typeDescriptions":{}}},"id":25430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5302:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"5297:31:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":25432,"nodeType":"ExpressionStatement","src":"5297:31:78"}},{"expression":{"id":25451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25434,"name":"veSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24973,"src":"5346:8:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000] storage ref"}},"id":25436,"indexExpression":{"id":25435,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25365,"src":"5355:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5346:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":25447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25441,"name":"pt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25406,"src":"5377:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"5377:7:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":25446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25443,"name":"pt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25406,"src":"5387:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"5387:8:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":25445,"name":"dt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25413,"src":"5398:2:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"5387:13:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"5377:23:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":25440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5369:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":25439,"name":"uint128","nodeType":"ElementaryTypeName","src":"5369:7:78","typeDescriptions":{}}},"id":25448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5369:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"hexValue":"30","id":25449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5403:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":25437,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"5360:4:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":25438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"5360:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":25450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5360:45:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5346:59:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25452,"nodeType":"ExpressionStatement","src":"5346:59:78"}]},"id":25454,"nodeType":"IfStatement","src":"5052:591:78","trueBody":{"id":25395,"nodeType":"Break","src":"5078:5:78"}},{"expression":{"id":25457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25455,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25365,"src":"5657:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25456,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"5662:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5657:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25458,"nodeType":"ExpressionStatement","src":"5657:9:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25386,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25383,"src":"5017:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3230","id":25387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5025:2:78","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"5017:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25460,"initializationExpression":{"assignments":[25383],"declarations":[{"constant":false,"id":25383,"mutability":"mutable","name":"index","nameLocation":"5006:5:78","nodeType":"VariableDeclaration","scope":25460,"src":"4998:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25382,"name":"uint256","nodeType":"ElementaryTypeName","src":"4998:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25385,"initialValue":{"hexValue":"30","id":25384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5014:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4998:17:78"},"loopExpression":{"expression":{"id":25390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5029:7:78","subExpression":{"id":25389,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25383,"src":"5029:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25391,"nodeType":"ExpressionStatement","src":"5029:7:78"},"nodeType":"ForStatement","src":"4993:684:78"},{"expression":{"id":25463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25461,"name":"timeCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24947,"src":"5687:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25462,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25365,"src":"5700:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5687:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25464,"nodeType":"ExpressionStatement","src":"5687:14:78"}]},"id":25466,"implemented":true,"kind":"function","modifiers":[],"name":"_checkpointTotalSupply","nameLocation":"4752:22:78","nodeType":"FunctionDefinition","parameters":{"id":25362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25361,"mutability":"mutable","name":"timestamp","nameLocation":"4783:9:78","nodeType":"VariableDeclaration","scope":25466,"src":"4775:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25360,"name":"uint256","nodeType":"ElementaryTypeName","src":"4775:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4774:19:78"},"returnParameters":{"id":25363,"nodeType":"ParameterList","parameters":[],"src":"4803:0:78"},"scope":26100,"src":"4743:965:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34047],"body":{"id":25475,"nodeType":"Block","src":"5765:56:78","statements":[{"expression":{"arguments":[{"expression":{"id":25471,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5798:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5798:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25470,"name":"_checkpointTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25466,"src":"5775:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":25473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5775:39:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25474,"nodeType":"ExpressionStatement","src":"5775:39:78"}]},"functionSelector":"326a9407","id":25476,"implemented":true,"kind":"function","modifiers":[],"name":"checkpointTotalSupply","nameLocation":"5723:21:78","nodeType":"FunctionDefinition","overrides":{"id":25468,"nodeType":"OverrideSpecifier","overrides":[],"src":"5756:8:78"},"parameters":{"id":25467,"nodeType":"ParameterList","parameters":[],"src":"5744:2:78"},"returnParameters":{"id":25469,"nodeType":"ParameterList","parameters":[],"src":"5765:0:78"},"scope":26100,"src":"5714:107:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25756,"nodeType":"Block","src":"5929:2970:78","statements":[{"expression":{"arguments":[{"arguments":[{"id":25488,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"5963:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25486,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"5947:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isStaked","nodeType":"MemberAccess","referencedDeclaration":34756,"src":"5947:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":25489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5947:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6674206e6f74207374616b6564","id":25490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5971:16:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_933eda08efc046ad0742d73acd2de3be0a5db02fb49fab1396b2b64b8ea18a61","typeString":"literal_string \"nft not staked\""},"value":"nft not staked"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_933eda08efc046ad0742d73acd2de3be0a5db02fb49fab1396b2b64b8ea18a61","typeString":"literal_string \"nft not staked\""}],"id":25485,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5939:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5939:49:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25492,"nodeType":"ExpressionStatement","src":"5939:49:78"},{"assignments":[25494],"declarations":[{"constant":false,"id":25494,"mutability":"mutable","name":"userEpoch","nameLocation":"6048:9:78","nodeType":"VariableDeclaration","scope":25756,"src":"6040:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25493,"name":"uint256","nodeType":"ElementaryTypeName","src":"6040:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25496,"initialValue":{"hexValue":"30","id":25495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6060:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6040:21:78"},{"assignments":[25498],"declarations":[{"constant":false,"id":25498,"mutability":"mutable","name":"toDistribute","nameLocation":"6079:12:78","nodeType":"VariableDeclaration","scope":25756,"src":"6071:20:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25497,"name":"uint256","nodeType":"ElementaryTypeName","src":"6071:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25500,"initialValue":{"hexValue":"30","id":25499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6094:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6071:24:78"},{"assignments":[25502],"declarations":[{"constant":false,"id":25502,"mutability":"mutable","name":"maxUserEpoch","nameLocation":"6114:12:78","nodeType":"VariableDeclaration","scope":25756,"src":"6106:20:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25501,"name":"uint256","nodeType":"ElementaryTypeName","src":"6106:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25507,"initialValue":{"arguments":[{"id":25505,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"6151:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25503,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"6129:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userPointEpoch","nodeType":"MemberAccess","referencedDeclaration":34768,"src":"6129:21:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":25506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6129:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6106:51:78"},{"assignments":[25509],"declarations":[{"constant":false,"id":25509,"mutability":"mutable","name":"_startTime","nameLocation":"6175:10:78","nodeType":"VariableDeclaration","scope":25756,"src":"6167:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25508,"name":"uint256","nodeType":"ElementaryTypeName","src":"6167:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25511,"initialValue":{"id":25510,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24945,"src":"6188:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6167:30:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25512,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"6273:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6289:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6273:17:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25517,"nodeType":"IfStatement","src":"6269:31:78","trueBody":{"expression":{"hexValue":"30","id":25515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":25484,"id":25516,"nodeType":"Return","src":"6292:8:78"}},{"assignments":[25519],"declarations":[{"constant":false,"id":25519,"mutability":"mutable","name":"weekCursor","nameLocation":"6319:10:78","nodeType":"VariableDeclaration","scope":25756,"src":"6311:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25518,"name":"uint256","nodeType":"ElementaryTypeName","src":"6311:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25523,"initialValue":{"baseExpression":{"id":25520,"name":"timeCursorOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24951,"src":"6332:12:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25522,"indexExpression":{"id":25521,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"6345:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6332:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6311:40:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25524,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"6422:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6436:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6422:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":25539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25535,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"6596:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":25536,"name":"userEpochOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24955,"src":"6608:11:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25538,"indexExpression":{"id":25537,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"6620:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6608:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6596:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25540,"nodeType":"ExpressionStatement","src":"6596:30:78"},"id":25541,"nodeType":"IfStatement","src":"6418:208:78","trueBody":{"expression":{"id":25533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25527,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"6451:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25529,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"6504:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25530,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25509,"src":"6527:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25531,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"6555:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25528,"name":"_findTimestampUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25359,"src":"6463:23:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":25532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6463:118:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6451:130:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25534,"nodeType":"ExpressionStatement","src":"6451:130:78"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25542,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"6641:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6654:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6641:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25549,"nodeType":"IfStatement","src":"6637:33:78","trueBody":{"expression":{"id":25547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25545,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"6657:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":25546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6669:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6657:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25548,"nodeType":"ExpressionStatement","src":"6657:13:78"}},{"assignments":[25554],"declarations":[{"constant":false,"id":25554,"mutability":"mutable","name":"userPoint","nameLocation":"6705:9:78","nodeType":"VariableDeclaration","scope":25756,"src":"6681:33:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":25553,"nodeType":"UserDefinedTypeName","pathNode":{"id":25552,"name":"INFTLocker.Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"6681:16:78"},"referencedDeclaration":34884,"src":"6681:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":25560,"initialValue":{"arguments":[{"id":25557,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"6754:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25558,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"6773:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25555,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"6717:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userPointHistory","nodeType":"MemberAccess","referencedDeclaration":34778,"src":"6717:23:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_struct$_Point_$34884_memory_ptr_$","typeString":"function (uint256,uint256) view external returns (struct INFTLocker.Point memory)"}},"id":25559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6717:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"6681:111:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25561,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"6919:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6933:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6919:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25579,"nodeType":"IfStatement","src":"6915:87:78","trueBody":{"expression":{"id":25577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25564,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"6948:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25565,"name":"userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25554,"src":"6963:9:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"6963:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25567,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"6978:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6963:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":25569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6985:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6963:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25571,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6962:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":25572,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"6990:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6962:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25574,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6961:34:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":25575,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"6998:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6961:41:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6948:54:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25578,"nodeType":"ExpressionStatement","src":"6948:54:78"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25580,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"7319:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":25581,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25480,"src":"7333:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7319:28:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25585,"nodeType":"IfStatement","src":"7315:42:78","trueBody":{"expression":{"hexValue":"30","id":25583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7356:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":25484,"id":25584,"nodeType":"Return","src":"7349:8:78"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25586,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"7372:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":25587,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25509,"src":"7385:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7372:23:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25593,"nodeType":"IfStatement","src":"7368:52:78","trueBody":{"expression":{"id":25591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25589,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"7397:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25590,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25509,"src":"7410:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7397:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25592,"nodeType":"ExpressionStatement","src":"7397:23:78"}},{"assignments":[25598],"declarations":[{"constant":false,"id":25598,"mutability":"mutable","name":"oldUserPoint","nameLocation":"7455:12:78","nodeType":"VariableDeclaration","scope":25756,"src":"7431:36:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":25597,"nodeType":"UserDefinedTypeName","pathNode":{"id":25596,"name":"INFTLocker.Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"7431:16:78"},"referencedDeclaration":34884,"src":"7431:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"id":25606,"initialValue":{"arguments":[{"hexValue":"30","id":25601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7487:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":25602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7490:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":25603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7493:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":25604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7496:1:78","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":25599,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"7470:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":25600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":34884,"src":"7470:16:78","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$34884_storage_ptr_$","typeString":"type(struct INFTLocker.Point storage pointer)"}},"id":25605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7470:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"7431:67:78"},{"body":{"id":25723,"nodeType":"Block","src":"7554:1099:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25617,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"7572:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":25618,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25480,"src":"7586:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7572:28:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25621,"nodeType":"IfStatement","src":"7568:39:78","trueBody":{"id":25620,"nodeType":"Break","src":"7602:5:78"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25622,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"7626:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":25623,"name":"userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25554,"src":"7640:9:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"7640:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7626:26:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25626,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"7656:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":25627,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"7669:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7656:25:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7626:55:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":25721,"nodeType":"Block","src":"7963:680:78","statements":[{"assignments":[25662],"declarations":[{"constant":false,"id":25662,"mutability":"mutable","name":"dt","nameLocation":"7988:2:78","nodeType":"VariableDeclaration","scope":25721,"src":"7981:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":25661,"name":"int128","nodeType":"ElementaryTypeName","src":"7981:6:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":25673,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25667,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"8008:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":25668,"name":"oldUserPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25598,"src":"8021:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":34881,"src":"8021:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8008:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8000:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":25665,"name":"uint128","nodeType":"ElementaryTypeName","src":"8000:7:78","typeDescriptions":{}}},"id":25671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8000:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":25664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7993:6:78","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":25663,"name":"int128","nodeType":"ElementaryTypeName","src":"7993:6:78","typeDescriptions":{}}},"id":25672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7993:45:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"7981:57:78"},{"assignments":[25675],"declarations":[{"constant":false,"id":25675,"mutability":"mutable","name":"balanceOf","nameLocation":"8064:9:78","nodeType":"VariableDeclaration","scope":25721,"src":"8056:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25674,"name":"uint256","nodeType":"ElementaryTypeName","src":"8056:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25690,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":25686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25680,"name":"oldUserPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25598,"src":"8114:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":34877,"src":"8114:17:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":25685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25682,"name":"dt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25662,"src":"8134:2:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":25683,"name":"oldUserPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25598,"src":"8139:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":34879,"src":"8139:18:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"8134:23:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"8114:43:78","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":25679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8106:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":25678,"name":"uint128","nodeType":"ElementaryTypeName","src":"8106:7:78","typeDescriptions":{}}},"id":25687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8106:52:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"hexValue":"30","id":25688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8180:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":25676,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"8076:4:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":25677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"8076:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":25689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8076:123:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8056:143:78"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25691,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"8359:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8372:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8359:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25694,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"8377:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":25695,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"8389:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8377:24:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8359:42:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25699,"nodeType":"IfStatement","src":"8355:53:78","trueBody":{"id":25698,"nodeType":"Break","src":"8403:5:78"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25700,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"8430:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":25701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8442:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8430:13:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25716,"nodeType":"IfStatement","src":"8426:165:78","trueBody":{"expression":{"id":25714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25703,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25498,"src":"8465:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25704,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"8506:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":25705,"name":"tokensPerWeek","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24961,"src":"8518:13:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000] storage ref"}},"id":25707,"indexExpression":{"id":25706,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"8532:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8518:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8506:37:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8505:39:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"baseExpression":{"id":25710,"name":"veSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24973,"src":"8571:8:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1000000000000000_storage","typeString":"uint256[1000000000000000] storage ref"}},"id":25712,"indexExpression":{"id":25711,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"8580:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8571:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8505:86:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8465:126:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25715,"nodeType":"ExpressionStatement","src":"8465:126:78"}},{"expression":{"id":25719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25717,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"8610:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25718,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"8624:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8610:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25720,"nodeType":"ExpressionStatement","src":"8610:18:78"}]},"id":25722,"nodeType":"IfStatement","src":"7622:1021:78","trueBody":{"id":25660,"nodeType":"Block","src":"7683:274:78","statements":[{"expression":{"id":25632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25630,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"7701:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":25631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7714:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7701:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25633,"nodeType":"ExpressionStatement","src":"7701:14:78"},{"expression":{"id":25636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25634,"name":"oldUserPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25598,"src":"7733:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25635,"name":"userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25554,"src":"7748:9:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"src":"7733:24:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25637,"nodeType":"ExpressionStatement","src":"7733:24:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25638,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"7780:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":25639,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"7792:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7780:24:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":25657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25651,"name":"userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25554,"src":"7889:9:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25654,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"7925:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25655,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"7932:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25652,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"7901:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userPointHistory","nodeType":"MemberAccess","referencedDeclaration":34778,"src":"7901:23:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_struct$_Point_$34884_memory_ptr_$","typeString":"function (uint256,uint256) view external returns (struct INFTLocker.Point memory)"}},"id":25656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7901:41:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"src":"7889:53:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25658,"nodeType":"ExpressionStatement","src":"7889:53:78"},"id":25659,"nodeType":"IfStatement","src":"7776:166:78","trueBody":{"expression":{"id":25649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25641,"name":"userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25554,"src":"7826:9:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":25644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7855:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":25645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7858:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":25646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7861:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":25647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7864:1:78","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":25642,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"7838:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":25643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":34884,"src":"7838:16:78","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$34884_storage_ptr_$","typeString":"type(struct INFTLocker.Point storage pointer)"}},"id":25648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7838:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"src":"7826:40:78","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point memory"}},"id":25650,"nodeType":"ExpressionStatement","src":"7826:40:78"}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25611,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25608,"src":"7533:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3530","id":25612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7541:2:78","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"7533:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25724,"initializationExpression":{"assignments":[25608],"declarations":[{"constant":false,"id":25608,"mutability":"mutable","name":"index","nameLocation":"7522:5:78","nodeType":"VariableDeclaration","scope":25724,"src":"7514:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25607,"name":"uint256","nodeType":"ElementaryTypeName","src":"7514:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25610,"initialValue":{"hexValue":"30","id":25609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7530:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7514:17:78"},"loopExpression":{"expression":{"id":25615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7545:7:78","subExpression":{"id":25614,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25608,"src":"7545:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25616,"nodeType":"ExpressionStatement","src":"7545:7:78"},"nodeType":"ForStatement","src":"7509:1144:78"},{"expression":{"id":25733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25725,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"8663:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25728,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"8684:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25729,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"8698:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":25730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8710:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8698:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25726,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"8675:4:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":25727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"8675:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":25732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8675:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8663:49:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25734,"nodeType":"ExpressionStatement","src":"8663:49:78"},{"expression":{"id":25739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25735,"name":"userEpochOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24955,"src":"8722:11:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25737,"indexExpression":{"id":25736,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"8734:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8722:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25738,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"8743:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8722:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25740,"nodeType":"ExpressionStatement","src":"8722:30:78"},{"expression":{"id":25745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25741,"name":"timeCursorOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24951,"src":"8762:12:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25743,"indexExpression":{"id":25742,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"8775:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8762:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25744,"name":"weekCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"8784:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8762:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25746,"nodeType":"ExpressionStatement","src":"8762:32:78"},{"eventCall":{"arguments":[{"id":25748,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25478,"src":"8818:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25749,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25498,"src":"8825:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25750,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"8839:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25751,"name":"maxUserEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"8850:12:78","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":25747,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34041,"src":"8810:7:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":25752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8810:53:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25753,"nodeType":"EmitStatement","src":"8805:58:78"},{"expression":{"id":25754,"name":"toDistribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25498,"src":"8880:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25484,"id":25755,"nodeType":"Return","src":"8873:19:78"}]},"id":25757,"implemented":true,"kind":"function","modifiers":[],"name":"_claim","nameLocation":"5836:6:78","nodeType":"FunctionDefinition","parameters":{"id":25481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25478,"mutability":"mutable","name":"nftId","nameLocation":"5851:5:78","nodeType":"VariableDeclaration","scope":25757,"src":"5843:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25477,"name":"uint256","nodeType":"ElementaryTypeName","src":"5843:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25480,"mutability":"mutable","name":"_lastTokenTime","nameLocation":"5866:14:78","nodeType":"VariableDeclaration","scope":25757,"src":"5858:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25479,"name":"uint256","nodeType":"ElementaryTypeName","src":"5858:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5842:39:78"},"returnParameters":{"id":25484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25757,"src":"5916:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25482,"name":"uint256","nodeType":"ElementaryTypeName","src":"5916:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5915:9:78"},"scope":26100,"src":"5827:3072:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":25846,"nodeType":"Block","src":"8973:731:78","statements":[{"expression":{"arguments":[{"id":25766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8991:9:78","subExpression":{"id":25765,"name":"isKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24975,"src":"8992:8:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6b696c6c6564","id":25767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9002:8:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fb65e971d6578b6e960dc635ad47d96b3607ad493bd55450cb8b6e5ba72fef","typeString":"literal_string \"killed\""},"value":"killed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19fb65e971d6578b6e960dc635ad47d96b3607ad493bd55450cb8b6e5ba72fef","typeString":"literal_string \"killed\""}],"id":25764,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8983:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8983:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25769,"nodeType":"ExpressionStatement","src":"8983:28:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25770,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9026:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9026:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":25772,"name":"timeCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24947,"src":"9045:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9026:29:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25779,"nodeType":"IfStatement","src":"9022:86:78","trueBody":{"expression":{"arguments":[{"expression":{"id":25775,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9092:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9092:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25774,"name":"_checkpointTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25466,"src":"9069:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":25777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9069:39:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25778,"nodeType":"ExpressionStatement","src":"9069:39:78"}},{"assignments":[25781],"declarations":[{"constant":false,"id":25781,"mutability":"mutable","name":"_lastTokenTime","nameLocation":"9127:14:78","nodeType":"VariableDeclaration","scope":25846,"src":"9119:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25780,"name":"uint256","nodeType":"ElementaryTypeName","src":"9119:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25783,"initialValue":{"id":25782,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"9144:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9119:38:78"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25784,"name":"canCheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24978,"src":"9185:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25785,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9220:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9220:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25787,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"9238:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25788,"name":"TOKEN_CHECKPOINT_DEADLINE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24943,"src":"9254:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9238:41:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9220:59:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":25791,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9219:61:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9185:95:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25804,"nodeType":"IfStatement","src":"9168:227:78","trueBody":{"id":25803,"nodeType":"Block","src":"9291:104:78","statements":[{"expression":{"arguments":[{"expression":{"id":25794,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9322:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9322:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25793,"name":"_checkpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25178,"src":"9305:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":25796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9305:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25797,"nodeType":"ExpressionStatement","src":"9305:33:78"},{"expression":{"id":25801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25798,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25781,"src":"9352:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":25799,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9369:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9369:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9352:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25802,"nodeType":"ExpressionStatement","src":"9352:32:78"}]}},{"expression":{"id":25812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25805,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25781,"src":"9405:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25806,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25781,"src":"9423:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":25807,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"9440:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9423:21:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25809,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9422:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":25810,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"9448:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9422:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9405:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25813,"nodeType":"ExpressionStatement","src":"9405:47:78"},{"assignments":[25815],"declarations":[{"constant":false,"id":25815,"mutability":"mutable","name":"amount","nameLocation":"9471:6:78","nodeType":"VariableDeclaration","scope":25846,"src":"9463:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9463:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25820,"initialValue":{"arguments":[{"id":25817,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25759,"src":"9487:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25818,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25781,"src":"9494:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25816,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25757,"src":"9480:6:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) returns (uint256)"}},"id":25819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9480:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9463:46:78"},{"assignments":[25822],"declarations":[{"constant":false,"id":25822,"mutability":"mutable","name":"who","nameLocation":"9527:3:78","nodeType":"VariableDeclaration","scope":25846,"src":"9519:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25821,"name":"address","nodeType":"ElementaryTypeName","src":"9519:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":25827,"initialValue":{"arguments":[{"id":25825,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25759,"src":"9548:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25823,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"9533:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"9533:14:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":25826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9533:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9519:35:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25828,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25815,"src":"9569:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":25829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9579:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9569:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25843,"nodeType":"IfStatement","src":"9565:109:78","trueBody":{"id":25842,"nodeType":"Block","src":"9582:92:78","statements":[{"expression":{"id":25833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25831,"name":"tokenLastBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24969,"src":"9596:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":25832,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25815,"src":"9616:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9596:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25834,"nodeType":"ExpressionStatement","src":"9596:26:78"},{"expression":{"arguments":[{"id":25838,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25822,"src":"9651:3:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25839,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25815,"src":"9656:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25835,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24967,"src":"9636:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":25837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"9636:14:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":25840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9636:27:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25841,"nodeType":"ExpressionStatement","src":"9636:27:78"}]}},{"expression":{"id":25844,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25815,"src":"9691:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25763,"id":25845,"nodeType":"Return","src":"9684:13:78"}]},"id":25847,"implemented":true,"kind":"function","modifiers":[],"name":"_claimWithChecks","nameLocation":"8914:16:78","nodeType":"FunctionDefinition","parameters":{"id":25760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25759,"mutability":"mutable","name":"nftId","nameLocation":"8939:5:78","nodeType":"VariableDeclaration","scope":25847,"src":"8931:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25758,"name":"uint256","nodeType":"ElementaryTypeName","src":"8931:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8930:15:78"},"returnParameters":{"id":25763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25847,"src":"8964:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25761,"name":"uint256","nodeType":"ElementaryTypeName","src":"8964:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8963:9:78"},"scope":26100,"src":"8905:799:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34054],"body":{"id":25861,"nodeType":"Block","src":"9822:44:78","statements":[{"expression":{"arguments":[{"id":25858,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25849,"src":"9856:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25857,"name":"_claimWithChecks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25847,"src":"9839:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":25859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9839:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25856,"id":25860,"nodeType":"Return","src":"9832:27:78"}]},"functionSelector":"379607f5","id":25862,"implemented":true,"kind":"function","modifiers":[{"id":25853,"kind":"modifierInvocation","modifierName":{"id":25852,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"9779:12:78"},"nodeType":"ModifierInvocation","src":"9779:12:78"}],"name":"claim","nameLocation":"9719:5:78","nodeType":"FunctionDefinition","overrides":{"id":25851,"nodeType":"OverrideSpecifier","overrides":[],"src":"9762:8:78"},"parameters":{"id":25850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25849,"mutability":"mutable","name":"id","nameLocation":"9733:2:78","nodeType":"VariableDeclaration","scope":25862,"src":"9725:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25848,"name":"uint256","nodeType":"ElementaryTypeName","src":"9725:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9724:12:78"},"returnParameters":{"id":25856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25862,"src":"9809:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25854,"name":"uint256","nodeType":"ElementaryTypeName","src":"9809:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9808:9:78"},"scope":26100,"src":"9710:156:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34076],"body":{"id":25911,"nodeType":"Block","src":"10060:295:78","statements":[{"assignments":[25880],"declarations":[{"constant":false,"id":25880,"mutability":"mutable","name":"amt1","nameLocation":"10078:4:78","nodeType":"VariableDeclaration","scope":25911,"src":"10070:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25879,"name":"uint256","nodeType":"ElementaryTypeName","src":"10070:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25884,"initialValue":{"arguments":[{"id":25882,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25864,"src":"10102:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25881,"name":"_claimWithChecks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25847,"src":"10085:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":25883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10085:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10070:35:78"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":25893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25887,"name":"pendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24981,"src":"10128:21:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}],"id":25886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10120:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25885,"name":"address","nodeType":"ElementaryTypeName","src":"10120:7:78","typeDescriptions":{}}},"id":25888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10120:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":25891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10162:1:78","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":25890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10154:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25889,"name":"address","nodeType":"ElementaryTypeName","src":"10154:7:78","typeDescriptions":{}}},"id":25892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10154:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10120:44:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25896,"nodeType":"IfStatement","src":"10116:61:78","trueBody":{"expression":{"id":25894,"name":"amt1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25880,"src":"10173:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25878,"id":25895,"nodeType":"Return","src":"10166:11:78"}},{"assignments":[25898],"declarations":[{"constant":false,"id":25898,"mutability":"mutable","name":"amt2","nameLocation":"10195:4:78","nodeType":"VariableDeclaration","scope":25911,"src":"10187:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25897,"name":"uint256","nodeType":"ElementaryTypeName","src":"10187:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25906,"initialValue":{"arguments":[{"id":25901,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25864,"src":"10248:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25902,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25866,"src":"10264:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25903,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25868,"src":"10282:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25904,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25871,"src":"10303:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":25899,"name":"pendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24981,"src":"10202:21:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"id":25900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"distribute","nodeType":"MemberAccess","referencedDeclaration":35368,"src":"10202:32:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint256,bytes32[] memory) external returns (uint256)"}},"id":25905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10202:117:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10187:132:78"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25907,"name":"amt1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25880,"src":"10337:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25908,"name":"amt2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25898,"src":"10344:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10337:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25878,"id":25910,"nodeType":"Return","src":"10330:18:78"}]},"functionSelector":"2971aa8e","id":25912,"implemented":true,"kind":"function","modifiers":[{"id":25875,"kind":"modifierInvocation","modifierName":{"id":25874,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"10029:12:78"},"nodeType":"ModifierInvocation","src":"10029:12:78"}],"name":"claimWithPendingRewards","nameLocation":"9881:23:78","nodeType":"FunctionDefinition","overrides":{"id":25873,"nodeType":"OverrideSpecifier","overrides":[],"src":"10020:8:78"},"parameters":{"id":25872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25864,"mutability":"mutable","name":"id","nameLocation":"9922:2:78","nodeType":"VariableDeclaration","scope":25912,"src":"9914:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25863,"name":"uint256","nodeType":"ElementaryTypeName","src":"9914:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25866,"mutability":"mutable","name":"_who","nameLocation":"9942:4:78","nodeType":"VariableDeclaration","scope":25912,"src":"9934:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25865,"name":"address","nodeType":"ElementaryTypeName","src":"9934:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25868,"mutability":"mutable","name":"_reward","nameLocation":"9964:7:78","nodeType":"VariableDeclaration","scope":25912,"src":"9956:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25867,"name":"uint256","nodeType":"ElementaryTypeName","src":"9956:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25871,"mutability":"mutable","name":"_proof","nameLocation":"9998:6:78","nodeType":"VariableDeclaration","scope":25912,"src":"9981:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":25869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9981:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":25870,"nodeType":"ArrayTypeName","src":"9981:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9904:106:78"},"returnParameters":{"id":25878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25912,"src":"10051:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25876,"name":"uint256","nodeType":"ElementaryTypeName","src":"10051:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10050:9:78"},"scope":26100,"src":"9872:483:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34062],"body":{"id":26022,"nodeType":"Block","src":"10487:844:78","statements":[{"expression":{"arguments":[{"id":25925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10505:9:78","subExpression":{"id":25924,"name":"isKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24975,"src":"10506:8:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6b696c6c6564","id":25926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10516:8:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fb65e971d6578b6e960dc635ad47d96b3607ad493bd55450cb8b6e5ba72fef","typeString":"literal_string \"killed\""},"value":"killed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19fb65e971d6578b6e960dc635ad47d96b3607ad493bd55450cb8b6e5ba72fef","typeString":"literal_string \"killed\""}],"id":25923,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10497:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10497:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25928,"nodeType":"ExpressionStatement","src":"10497:28:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25929,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10539:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10539:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":25931,"name":"timeCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24947,"src":"10558:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10539:29:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25938,"nodeType":"IfStatement","src":"10535:86:78","trueBody":{"expression":{"arguments":[{"expression":{"id":25934,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10605:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10605:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25933,"name":"_checkpointTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25466,"src":"10582:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":25936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10582:39:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25937,"nodeType":"ExpressionStatement","src":"10582:39:78"}},{"assignments":[25940],"declarations":[{"constant":false,"id":25940,"mutability":"mutable","name":"_lastTokenTime","nameLocation":"10640:14:78","nodeType":"VariableDeclaration","scope":26022,"src":"10632:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25939,"name":"uint256","nodeType":"ElementaryTypeName","src":"10632:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25942,"initialValue":{"id":25941,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"10657:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10632:38:78"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25943,"name":"canCheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24978,"src":"10698:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25944,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10733:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10733:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25946,"name":"lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"10751:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25947,"name":"TOKEN_CHECKPOINT_DEADLINE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24943,"src":"10767:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10751:41:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10733:59:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":25950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10732:61:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10698:95:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25963,"nodeType":"IfStatement","src":"10681:227:78","trueBody":{"id":25962,"nodeType":"Block","src":"10804:104:78","statements":[{"expression":{"arguments":[{"expression":{"id":25953,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10835:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10835:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25952,"name":"_checkpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25178,"src":"10818:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":25955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10818:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25956,"nodeType":"ExpressionStatement","src":"10818:33:78"},{"expression":{"id":25960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25957,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25940,"src":"10865:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":25958,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10882:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10882:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10865:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25961,"nodeType":"ExpressionStatement","src":"10865:32:78"}]}},{"expression":{"id":25971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25964,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25940,"src":"10918:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25965,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25940,"src":"10936:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":25966,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"10953:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10936:21:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25968,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10935:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":25969,"name":"WEEK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"10961:4:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10935:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10918:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25972,"nodeType":"ExpressionStatement","src":"10918:47:78"},{"body":{"id":26018,"nodeType":"Block","src":"11032:271:78","statements":[{"assignments":[25985],"declarations":[{"constant":false,"id":25985,"mutability":"mutable","name":"amount","nameLocation":"11054:6:78","nodeType":"VariableDeclaration","scope":26018,"src":"11046:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25984,"name":"uint256","nodeType":"ElementaryTypeName","src":"11046:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25992,"initialValue":{"arguments":[{"baseExpression":{"id":25987,"name":"nftIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25915,"src":"11070:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":25989,"indexExpression":{"id":25988,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25974,"src":"11077:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11070:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25990,"name":"_lastTokenTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25940,"src":"11085:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25986,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25757,"src":"11063:6:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) returns (uint256)"}},"id":25991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11063:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11046:54:78"},{"assignments":[25994],"declarations":[{"constant":false,"id":25994,"mutability":"mutable","name":"who","nameLocation":"11122:3:78","nodeType":"VariableDeclaration","scope":26018,"src":"11114:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25993,"name":"address","nodeType":"ElementaryTypeName","src":"11114:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":26001,"initialValue":{"arguments":[{"baseExpression":{"id":25997,"name":"nftIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25915,"src":"11143:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":25999,"indexExpression":{"id":25998,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25974,"src":"11150:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11143:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25995,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24964,"src":"11128:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":25996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"11128:14:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":26000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11128:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11114:43:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26002,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25985,"src":"11176:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":26003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11186:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11176:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26017,"nodeType":"IfStatement","src":"11172:121:78","trueBody":{"id":26016,"nodeType":"Block","src":"11189:104:78","statements":[{"expression":{"id":26007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26005,"name":"tokenLastBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24969,"src":"11207:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":26006,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25985,"src":"11227:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11207:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26008,"nodeType":"ExpressionStatement","src":"11207:26:78"},{"expression":{"arguments":[{"id":26012,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25994,"src":"11266:3:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26013,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25985,"src":"11271:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26009,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24967,"src":"11251:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"11251:14:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":26014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11251:27:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26015,"nodeType":"ExpressionStatement","src":"11251:27:78"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25977,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25974,"src":"11000:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":25978,"name":"nftIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25915,"src":"11008:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":25979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11008:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11000:21:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26019,"initializationExpression":{"assignments":[25974],"declarations":[{"constant":false,"id":25974,"mutability":"mutable","name":"index","nameLocation":"10989:5:78","nodeType":"VariableDeclaration","scope":26019,"src":"10981:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25973,"name":"uint256","nodeType":"ElementaryTypeName","src":"10981:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25976,"initialValue":{"hexValue":"30","id":25975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10997:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10981:17:78"},"loopExpression":{"expression":{"id":25982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11023:7:78","subExpression":{"id":25981,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25974,"src":"11023:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25983,"nodeType":"ExpressionStatement","src":"11023:7:78"},"nodeType":"ForStatement","src":"10976:327:78"},{"expression":{"hexValue":"74727565","id":26020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11320:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":25922,"id":26021,"nodeType":"Return","src":"11313:11:78"}]},"functionSelector":"925489a8","id":26023,"implemented":true,"kind":"function","modifiers":[{"id":25919,"kind":"modifierInvocation","modifierName":{"id":25918,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"10447:12:78"},"nodeType":"ModifierInvocation","src":"10447:12:78"}],"name":"claimMany","nameLocation":"10370:9:78","nodeType":"FunctionDefinition","overrides":{"id":25917,"nodeType":"OverrideSpecifier","overrides":[],"src":"10430:8:78"},"parameters":{"id":25916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25915,"mutability":"mutable","name":"nftIds","nameLocation":"10397:6:78","nodeType":"VariableDeclaration","scope":26023,"src":"10380:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":25913,"name":"uint256","nodeType":"ElementaryTypeName","src":"10380:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25914,"nodeType":"ArrayTypeName","src":"10380:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10379:25:78"},"returnParameters":{"id":25922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25921,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26023,"src":"10477:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25920,"name":"bool","nodeType":"ElementaryTypeName","src":"10477:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10476:6:78"},"scope":26100,"src":"10361:970:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":26037,"nodeType":"Block","src":"12083:118:78","statements":[{"expression":{"id":26031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26028,"name":"canCheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24978,"src":"12093:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":26030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12114:19:78","subExpression":{"id":26029,"name":"canCheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24978,"src":"12115:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12093:40:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26032,"nodeType":"ExpressionStatement","src":"12093:40:78"},{"eventCall":{"arguments":[{"id":26034,"name":"canCheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24978,"src":"12175:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":26033,"name":"ToggleAllowCheckpointToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34025,"src":"12148:26:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":26035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12148:46:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26036,"nodeType":"EmitStatement","src":"12143:51:78"}]},"functionSelector":"8721b785","id":26038,"implemented":true,"kind":"function","modifiers":[{"id":26026,"kind":"modifierInvocation","modifierName":{"id":26025,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"12073:9:78"},"nodeType":"ModifierInvocation","src":"12073:9:78"}],"name":"toggleAllowCheckpointToken","nameLocation":"12035:26:78","nodeType":"FunctionDefinition","parameters":{"id":26024,"nodeType":"ParameterList","parameters":[],"src":"12061:2:78"},"returnParameters":{"id":26027,"nodeType":"ParameterList","parameters":[],"src":"12083:0:78"},"scope":26100,"src":"12026:175:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":26061,"nodeType":"Block","src":"12244:100:78","statements":[{"expression":{"id":26045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26043,"name":"isKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24975,"src":"12254:8:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":26044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12265:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12254:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26046,"nodeType":"ExpressionStatement","src":"12254:15:78"},{"expression":{"arguments":[{"expression":{"id":26050,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12294:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12294:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":26056,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12330:4:78","typeDescriptions":{"typeIdentifier":"t_contract$_FeeDistributor_$26100","typeString":"contract FeeDistributor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeDistributor_$26100","typeString":"contract FeeDistributor"}],"id":26055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12322:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26054,"name":"address","nodeType":"ElementaryTypeName","src":"12322:7:78","typeDescriptions":{}}},"id":26057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12322:13:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26052,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24967,"src":"12306:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"12306:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12306:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26047,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24967,"src":"12279:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"12279:14:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":26059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12279:58:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26060,"nodeType":"ExpressionStatement","src":"12279:58:78"}]},"functionSelector":"b603cd80","id":26062,"implemented":true,"kind":"function","modifiers":[{"id":26041,"kind":"modifierInvocation","modifierName":{"id":26040,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"12234:9:78"},"nodeType":"ModifierInvocation","src":"12234:9:78"}],"name":"killMe","nameLocation":"12216:6:78","nodeType":"FunctionDefinition","parameters":{"id":26039,"nodeType":"ParameterList","parameters":[],"src":"12222:2:78"},"returnParameters":{"id":26042,"nodeType":"ParameterList","parameters":[],"src":"12244:0:78"},"scope":26100,"src":"12207:137:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":26075,"nodeType":"Block","src":"12418:70:78","statements":[{"expression":{"id":26073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26069,"name":"pendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24981,"src":"12428:21:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26071,"name":"_what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26064,"src":"12475:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26070,"name":"IPendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35391,"src":"12452:22:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPendingFeeDistributor_$35391_$","typeString":"type(contract IPendingFeeDistributor)"}},"id":26072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12452:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"src":"12428:53:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPendingFeeDistributor_$35391","typeString":"contract IPendingFeeDistributor"}},"id":26074,"nodeType":"ExpressionStatement","src":"12428:53:78"}]},"functionSelector":"ed0f65aa","id":26076,"implemented":true,"kind":"function","modifiers":[{"id":26067,"kind":"modifierInvocation","modifierName":{"id":26066,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"12408:9:78"},"nodeType":"ModifierInvocation","src":"12408:9:78"}],"name":"setPendingFeeDistributor","nameLocation":"12359:24:78","nodeType":"FunctionDefinition","parameters":{"id":26065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26064,"mutability":"mutable","name":"_what","nameLocation":"12392:5:78","nodeType":"VariableDeclaration","scope":26076,"src":"12384:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26063,"name":"address","nodeType":"ElementaryTypeName","src":"12384:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12383:15:78"},"returnParameters":{"id":26068,"nodeType":"ParameterList","parameters":[],"src":"12418:0:78"},"scope":26100,"src":"12350:138:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":26098,"nodeType":"Block","src":"12551:75:78","statements":[{"expression":{"arguments":[{"expression":{"id":26087,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12576:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12576:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":26093,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12612:4:78","typeDescriptions":{"typeIdentifier":"t_contract$_FeeDistributor_$26100","typeString":"contract FeeDistributor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeDistributor_$26100","typeString":"contract FeeDistributor"}],"id":26092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12604:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26091,"name":"address","nodeType":"ElementaryTypeName","src":"12604:7:78","typeDescriptions":{}}},"id":26094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12604:13:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26089,"name":"_coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26079,"src":"12588:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"12588:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12588:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26084,"name":"_coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26079,"src":"12561:5:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"12561:14:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":26096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12561:58:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26097,"nodeType":"ExpressionStatement","src":"12561:58:78"}]},"functionSelector":"68662ea0","id":26099,"implemented":true,"kind":"function","modifiers":[{"id":26082,"kind":"modifierInvocation","modifierName":{"id":26081,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"12541:9:78"},"nodeType":"ModifierInvocation","src":"12541:9:78"}],"name":"recoverBalance","nameLocation":"12503:14:78","nodeType":"FunctionDefinition","parameters":{"id":26080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26079,"mutability":"mutable","name":"_coin","nameLocation":"12525:5:78","nodeType":"VariableDeclaration","scope":26099,"src":"12518:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":26078,"nodeType":"UserDefinedTypeName","pathNode":{"id":26077,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"12518:6:78"},"referencedDeclaration":5767,"src":"12518:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"12517:14:78"},"returnParameters":{"id":26083,"nodeType":"ParameterList","parameters":[],"src":"12551:0:78"},"scope":26100,"src":"12494:132:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":26101,"src":"735:11893:78","usedErrors":[]}],"src":"33:12596:78"},"id":78},"contracts/fees/MultiFeeDistributor.sol":{"ast":{"absolutePath":"contracts/fees/MultiFeeDistributor.sol","exportedSymbols":{"IFeeDistributor":[34077],"MultiFeeDistributor":[26240]},"id":26241,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":26102,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:79"},{"absolutePath":"contracts/interfaces/IFeeDistributor.sol","file":"../interfaces/IFeeDistributor.sol","id":26104,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26241,"sourceUnit":34078,"src":"58:66:79","symbolAliases":[{"foreign":{"id":26103,"name":"IFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:15:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":26240,"linearizedBaseContracts":[26240],"name":"MultiFeeDistributor","nameLocation":"135:19:79","nodeType":"ContractDefinition","nodes":[{"body":{"id":26157,"nodeType":"Block","src":"302:233:79","statements":[{"assignments":[26121],"declarations":[{"constant":false,"id":26121,"mutability":"mutable","name":"ret","nameLocation":"329:3:79","nodeType":"VariableDeclaration","scope":26157,"src":"312:20:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":26119,"name":"uint256","nodeType":"ElementaryTypeName","src":"312:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26120,"nodeType":"ArrayTypeName","src":"312:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":26128,"initialValue":{"arguments":[{"expression":{"id":26125,"name":"nftIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26107,"src":"349:6:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":26126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"349:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"335:13:79","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":26122,"name":"uint256","nodeType":"ElementaryTypeName","src":"339:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26123,"nodeType":"ArrayTypeName","src":"339:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":26127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"335:28:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"312:51:79"},{"body":{"id":26153,"nodeType":"Block","src":"430:78:79","statements":[{"expression":{"id":26151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":26140,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26121,"src":"444:3:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":26142,"indexExpression":{"id":26141,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26130,"src":"448:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"444:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":26147,"name":"nftIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26107,"src":"483:6:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":26149,"indexExpression":{"id":26148,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26130,"src":"490:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"483:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":26143,"name":"distributors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26111,"src":"457:12:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr","typeString":"contract IFeeDistributor[] memory"}},"id":26145,"indexExpression":{"id":26144,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26130,"src":"470:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"457:19:79","typeDescriptions":{"typeIdentifier":"t_contract$_IFeeDistributor_$34077","typeString":"contract IFeeDistributor"}},"id":26146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":34054,"src":"457:25:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) external returns (uint256)"}},"id":26150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"457:40:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"444:53:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26152,"nodeType":"ExpressionStatement","src":"444:53:79"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26133,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26130,"src":"398:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":26134,"name":"nftIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26107,"src":"406:6:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":26135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"406:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"398:21:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26154,"initializationExpression":{"assignments":[26130],"declarations":[{"constant":false,"id":26130,"mutability":"mutable","name":"index","nameLocation":"387:5:79","nodeType":"VariableDeclaration","scope":26154,"src":"379:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26129,"name":"uint256","nodeType":"ElementaryTypeName","src":"379:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26132,"initialValue":{"hexValue":"30","id":26131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"395:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"379:17:79"},"loopExpression":{"expression":{"id":26138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"421:7:79","subExpression":{"id":26137,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26130,"src":"421:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26139,"nodeType":"ExpressionStatement","src":"421:7:79"},"nodeType":"ForStatement","src":"374:134:79"},{"expression":{"id":26155,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26121,"src":"525:3:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":26116,"id":26156,"nodeType":"Return","src":"518:10:79"}]},"functionSelector":"c55d05f2","id":26158,"implemented":true,"kind":"function","modifiers":[],"name":"claimMany","nameLocation":"170:9:79","nodeType":"FunctionDefinition","parameters":{"id":26112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26107,"mutability":"mutable","name":"nftIds","nameLocation":"206:6:79","nodeType":"VariableDeclaration","scope":26158,"src":"189:23:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":26105,"name":"uint256","nodeType":"ElementaryTypeName","src":"189:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26106,"nodeType":"ArrayTypeName","src":"189:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":26111,"mutability":"mutable","name":"distributors","nameLocation":"247:12:79","nodeType":"VariableDeclaration","scope":26158,"src":"222:37:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr","typeString":"contract IFeeDistributor[]"},"typeName":{"baseType":{"id":26109,"nodeType":"UserDefinedTypeName","pathNode":{"id":26108,"name":"IFeeDistributor","nodeType":"IdentifierPath","referencedDeclaration":34077,"src":"222:15:79"},"referencedDeclaration":34077,"src":"222:15:79","typeDescriptions":{"typeIdentifier":"t_contract$_IFeeDistributor_$34077","typeString":"contract IFeeDistributor"}},"id":26110,"nodeType":"ArrayTypeName","src":"222:17:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IFeeDistributor_$34077_$dyn_storage_ptr","typeString":"contract IFeeDistributor[]"}},"visibility":"internal"}],"src":"179:86:79"},"returnParameters":{"id":26116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26158,"src":"284:16:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":26113,"name":"uint256","nodeType":"ElementaryTypeName","src":"284:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26114,"nodeType":"ArrayTypeName","src":"284:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"283:18:79"},"scope":26240,"src":"161:374:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":26238,"nodeType":"Block","src":"688:569:79","statements":[{"assignments":[26175],"declarations":[{"constant":false,"id":26175,"mutability":"mutable","name":"ret","nameLocation":"715:3:79","nodeType":"VariableDeclaration","scope":26238,"src":"698:20:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":26173,"name":"uint256","nodeType":"ElementaryTypeName","src":"698:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26174,"nodeType":"ArrayTypeName","src":"698:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":26182,"initialValue":{"arguments":[{"expression":{"id":26179,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26161,"src":"735:4:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":26180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"735:11:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"721:13:79","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":26176,"name":"uint256","nodeType":"ElementaryTypeName","src":"725:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26177,"nodeType":"ArrayTypeName","src":"725:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":26181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"721:26:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"698:49:79"},{"body":{"id":26234,"nodeType":"Block","src":"812:418:79","statements":[{"assignments":[26195,26197,26199,26202],"declarations":[{"constant":false,"id":26195,"mutability":"mutable","name":"nftId","nameLocation":"852:5:79","nodeType":"VariableDeclaration","scope":26234,"src":"844:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26194,"name":"uint256","nodeType":"ElementaryTypeName","src":"844:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26197,"mutability":"mutable","name":"_who","nameLocation":"883:4:79","nodeType":"VariableDeclaration","scope":26234,"src":"875:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26196,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26199,"mutability":"mutable","name":"_reward","nameLocation":"913:7:79","nodeType":"VariableDeclaration","scope":26234,"src":"905:15:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26198,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26202,"mutability":"mutable","name":"_proof","nameLocation":"955:6:79","nodeType":"VariableDeclaration","scope":26234,"src":"938:23:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":26200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"938:7:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":26201,"nodeType":"ArrayTypeName","src":"938:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":26219,"initialValue":{"arguments":[{"baseExpression":{"id":26205,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26161,"src":"989:4:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":26207,"indexExpression":{"id":26206,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26184,"src":"994:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"989:11:79","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":26209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1003:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":26208,"name":"uint256","nodeType":"ElementaryTypeName","src":"1003:7:79","typeDescriptions":{}}},{"id":26211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1012:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26210,"name":"address","nodeType":"ElementaryTypeName","src":"1012:7:79","typeDescriptions":{}}},{"id":26213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1021:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":26212,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:79","typeDescriptions":{}}},{"baseExpression":{"id":26215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1030:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":26214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1030:7:79","typeDescriptions":{}}},"id":26216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1030:9:79","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"type(bytes32[] memory)"}}],"id":26217,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1002:38:79","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$","typeString":"tuple(type(uint256),type(address),type(uint256),type(bytes32[] memory))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$","typeString":"tuple(type(uint256),type(address),type(uint256),type(bytes32[] memory))"}],"expression":{"id":26203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"978:3:79","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"978:10:79","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":26218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"978:63:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(uint256,address payable,uint256,bytes32[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"826:215:79"},{"expression":{"id":26232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":26220,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26175,"src":"1055:3:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":26222,"indexExpression":{"id":26221,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26184,"src":"1059:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1055:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26227,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26195,"src":"1129:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26228,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26197,"src":"1152:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26229,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26199,"src":"1174:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26230,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26202,"src":"1199:6:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"baseExpression":{"id":26223,"name":"distributors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26165,"src":"1068:12:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr","typeString":"contract IFeeDistributor[] memory"}},"id":26225,"indexExpression":{"id":26224,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26184,"src":"1081:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1068:19:79","typeDescriptions":{"typeIdentifier":"t_contract$_IFeeDistributor_$34077","typeString":"contract IFeeDistributor"}},"id":26226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"claimWithPendingRewards","nodeType":"MemberAccess","referencedDeclaration":34076,"src":"1068:43:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint256,bytes32[] memory) external returns (uint256)"}},"id":26231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1068:151:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1055:164:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26233,"nodeType":"ExpressionStatement","src":"1055:164:79"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26187,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26184,"src":"782:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":26188,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26161,"src":"790:4:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":26189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"790:11:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"782:19:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26235,"initializationExpression":{"assignments":[26184],"declarations":[{"constant":false,"id":26184,"mutability":"mutable","name":"index","nameLocation":"771:5:79","nodeType":"VariableDeclaration","scope":26235,"src":"763:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26183,"name":"uint256","nodeType":"ElementaryTypeName","src":"763:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26186,"initialValue":{"hexValue":"30","id":26185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"763:17:79"},"loopExpression":{"expression":{"id":26192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"803:7:79","subExpression":{"id":26191,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26184,"src":"803:5:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26193,"nodeType":"ExpressionStatement","src":"803:7:79"},"nodeType":"ForStatement","src":"758:472:79"},{"expression":{"id":26236,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26175,"src":"1247:3:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":26170,"id":26237,"nodeType":"Return","src":"1240:10:79"}]},"functionSelector":"711232c3","id":26239,"implemented":true,"kind":"function","modifiers":[],"name":"claimManyWithProofs","nameLocation":"550:19:79","nodeType":"FunctionDefinition","parameters":{"id":26166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26161,"mutability":"mutable","name":"data","nameLocation":"594:4:79","nodeType":"VariableDeclaration","scope":26239,"src":"579:19:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":26159,"name":"bytes","nodeType":"ElementaryTypeName","src":"579:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":26160,"nodeType":"ArrayTypeName","src":"579:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":26165,"mutability":"mutable","name":"distributors","nameLocation":"633:12:79","nodeType":"VariableDeclaration","scope":26239,"src":"608:37:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr","typeString":"contract IFeeDistributor[]"},"typeName":{"baseType":{"id":26163,"nodeType":"UserDefinedTypeName","pathNode":{"id":26162,"name":"IFeeDistributor","nodeType":"IdentifierPath","referencedDeclaration":34077,"src":"608:15:79"},"referencedDeclaration":34077,"src":"608:15:79","typeDescriptions":{"typeIdentifier":"t_contract$_IFeeDistributor_$34077","typeString":"contract IFeeDistributor"}},"id":26164,"nodeType":"ArrayTypeName","src":"608:17:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IFeeDistributor_$34077_$dyn_storage_ptr","typeString":"contract IFeeDistributor[]"}},"visibility":"internal"}],"src":"569:82:79"},"returnParameters":{"id":26170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26239,"src":"670:16:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":26167,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26168,"nodeType":"ArrayTypeName","src":"670:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"669:18:79"},"scope":26240,"src":"541:716:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":26241,"src":"126:1133:79","usedErrors":[]}],"src":"33:1227:79"},"id":79},"contracts/fees/PendingFeeDistributor.sol":{"ast":{"absolutePath":"contracts/fees/PendingFeeDistributor.sol","exportedSymbols":{"Context":[8255],"IERC20":[5767],"IPendingFeeDistributor":[35391],"MerkleProof":[9659],"Ownable":[655],"PendingFeeDistributor":[26406],"ReentrancyGuard":[5062]},"id":26407,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":26242,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:80"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":26244,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26407,"sourceUnit":5768,"src":"58:70:80","symbolAliases":[{"foreign":{"id":26243,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":26247,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26407,"sourceUnit":656,"src":"129:76:80","symbolAliases":[{"foreign":{"id":26245,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"src":"137:7:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":26246,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"146:7:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":26249,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26407,"sourceUnit":5063,"src":"206:85:80","symbolAliases":[{"foreign":{"id":26248,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"214:15:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","file":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","id":26251,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26407,"sourceUnit":9660,"src":"292:87:80","symbolAliases":[{"foreign":{"id":26250,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"src":"300:11:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPendingFeeDistributor.sol","file":"../interfaces/IPendingFeeDistributor.sol","id":26253,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26407,"sourceUnit":35392,"src":"380:80:80","symbolAliases":[{"foreign":{"id":26252,"name":"IPendingFeeDistributor","nodeType":"Identifier","overloadedDeclarations":[],"src":"388:22:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26254,"name":"IPendingFeeDistributor","nodeType":"IdentifierPath","referencedDeclaration":35391,"src":"500:22:80"},"id":26255,"nodeType":"InheritanceSpecifier","src":"500:22:80"},{"baseName":{"id":26256,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"528:7:80"},"id":26257,"nodeType":"InheritanceSpecifier","src":"528:7:80"},{"baseName":{"id":26258,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"541:15:80"},"id":26259,"nodeType":"InheritanceSpecifier","src":"541:15:80"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":26406,"linearizedBaseContracts":[26406,5062,655,8255,35391],"name":"PendingFeeDistributor","nameLocation":"471:21:80","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"2eb4a7ab","id":26261,"mutability":"mutable","name":"merkleRoot","nameLocation":"578:10:80","nodeType":"VariableDeclaration","scope":26406,"src":"563:25:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"563:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"f7c618c1","id":26264,"mutability":"mutable","name":"rewardToken","nameLocation":"609:11:80","nodeType":"VariableDeclaration","scope":26406,"src":"595:25:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":26263,"nodeType":"UserDefinedTypeName","pathNode":{"id":26262,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"595:6:80"},"referencedDeclaration":5767,"src":"595:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"ce516507","id":26268,"mutability":"mutable","name":"hasClaimed","nameLocation":"658:10:80","nodeType":"VariableDeclaration","scope":26406,"src":"626:42:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":26267,"keyType":{"id":26265,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"626:24:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueType":{"id":26266,"name":"bool","nodeType":"ElementaryTypeName","src":"645:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":26285,"nodeType":"Block","src":"730:85:80","statements":[{"expression":{"id":26277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26275,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26261,"src":"740:10:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":26276,"name":"_merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26270,"src":"753:11:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"740:24:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":26278,"nodeType":"ExpressionStatement","src":"740:24:80"},{"expression":{"id":26283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26279,"name":"rewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26264,"src":"774:11:80","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26281,"name":"_rewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26272,"src":"795:12:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26280,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"788:6:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":26282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"788:20:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"src":"774:34:80","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26284,"nodeType":"ExpressionStatement","src":"774:34:80"}]},"id":26286,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26270,"mutability":"mutable","name":"_merkleRoot","nameLocation":"695:11:80","nodeType":"VariableDeclaration","scope":26286,"src":"687:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"687:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26272,"mutability":"mutable","name":"_rewardToken","nameLocation":"716:12:80","nodeType":"VariableDeclaration","scope":26286,"src":"708:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26271,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"686:43:80"},"returnParameters":{"id":26274,"nodeType":"ParameterList","parameters":[],"src":"730:0:80"},"scope":26406,"src":"675:140:80","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[35368],"body":{"id":26347,"nodeType":"Block","src":"1003:348:80","statements":[{"expression":{"arguments":[{"arguments":[{"id":26305,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26288,"src":"1032:8:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26306,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"1042:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26307,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26292,"src":"1050:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26308,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26295,"src":"1059:5:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":26304,"name":"validProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26382,"src":"1021:10:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bool_$","typeString":"function (uint256,address,uint256,bytes32[] memory) view returns (bool)"}},"id":26309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1021:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726f6f66","id":26310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1067:15:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""},"value":"invalid proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""}],"id":26303,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1013:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1013:70:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26312,"nodeType":"ExpressionStatement","src":"1013:70:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26314,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26288,"src":"1101:8:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":26315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1112:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1101:12:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546f6b656e206964203d2030","id":26317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1115:14:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_71927a88ae096a37908887123174c499bd2892c6da27b2a31f05b9fb2d54a1d5","typeString":"literal_string \"Token id = 0\""},"value":"Token id = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71927a88ae096a37908887123174c499bd2892c6da27b2a31f05b9fb2d54a1d5","typeString":"literal_string \"Token id = 0\""}],"id":26313,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1093:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1093:37:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26319,"nodeType":"ExpressionStatement","src":"1093:37:80"},{"condition":{"baseExpression":{"id":26320,"name":"hasClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26268,"src":"1145:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":26322,"indexExpression":{"id":26321,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26288,"src":"1156:8:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1145:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26325,"nodeType":"IfStatement","src":"1141:34:80","trueBody":{"expression":{"hexValue":"30","id":26323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1174:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":26302,"id":26324,"nodeType":"Return","src":"1167:8:80"}},{"expression":{"id":26330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":26326,"name":"hasClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26268,"src":"1185:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":26328,"indexExpression":{"id":26327,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26288,"src":"1196:8:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1185:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":26329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1208:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1185:27:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26331,"nodeType":"ExpressionStatement","src":"1185:27:80"},{"expression":{"arguments":[{"id":26335,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"1244:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26336,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26292,"src":"1252:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26332,"name":"rewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26264,"src":"1223:11:80","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"1223:20:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":26337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1223:37:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26338,"nodeType":"ExpressionStatement","src":"1223:37:80"},{"eventCall":{"arguments":[{"id":26340,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"1294:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26341,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26288,"src":"1302:8:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26342,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26292,"src":"1312:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26339,"name":"HistoricRewardPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35390,"src":"1275:18:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":26343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1275:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26344,"nodeType":"EmitStatement","src":"1270:50:80"},{"expression":{"id":26345,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26292,"src":"1337:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26302,"id":26346,"nodeType":"Return","src":"1330:14:80"}]},"functionSelector":"4b32102a","id":26348,"implemented":true,"kind":"function","modifiers":[{"id":26299,"kind":"modifierInvocation","modifierName":{"id":26298,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"972:12:80"},"nodeType":"ModifierInvocation","src":"972:12:80"}],"name":"distribute","nameLocation":"830:10:80","nodeType":"FunctionDefinition","overrides":{"id":26297,"nodeType":"OverrideSpecifier","overrides":[],"src":"963:8:80"},"parameters":{"id":26296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26288,"mutability":"mutable","name":"_tokenId","nameLocation":"858:8:80","nodeType":"VariableDeclaration","scope":26348,"src":"850:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26287,"name":"uint256","nodeType":"ElementaryTypeName","src":"850:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26290,"mutability":"mutable","name":"_owner","nameLocation":"884:6:80","nodeType":"VariableDeclaration","scope":26348,"src":"876:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26289,"name":"address","nodeType":"ElementaryTypeName","src":"876:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26292,"mutability":"mutable","name":"_reward","nameLocation":"908:7:80","nodeType":"VariableDeclaration","scope":26348,"src":"900:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26291,"name":"uint256","nodeType":"ElementaryTypeName","src":"900:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26295,"mutability":"mutable","name":"proof","nameLocation":"942:5:80","nodeType":"VariableDeclaration","scope":26348,"src":"925:22:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":26293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"925:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":26294,"nodeType":"ArrayTypeName","src":"925:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"840:113:80"},"returnParameters":{"id":26302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26348,"src":"994:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26300,"name":"uint256","nodeType":"ElementaryTypeName","src":"994:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"993:9:80"},"scope":26406,"src":"821:530:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35382],"body":{"id":26381,"nodeType":"Block","src":"1526:140:80","statements":[{"assignments":[26364],"declarations":[{"constant":false,"id":26364,"mutability":"mutable","name":"leaf","nameLocation":"1544:4:80","nodeType":"VariableDeclaration","scope":26381,"src":"1536:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1536:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":26373,"initialValue":{"arguments":[{"arguments":[{"id":26368,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26352,"src":"1572:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26369,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26354,"src":"1580:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26370,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26350,"src":"1589:8:80","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":26366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1561:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1561:10:80","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":26371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1561:37:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26365,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1551:9:80","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":26372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1551:48:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1536:63:80"},{"expression":{"arguments":[{"id":26376,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26357,"src":"1635:5:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":26377,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26261,"src":"1642:10:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26378,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26364,"src":"1654:4:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26374,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9659,"src":"1616:11:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$9659_$","typeString":"type(library MerkleProof)"}},"id":26375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":9181,"src":"1616:18:80","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":26379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1616:43:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":26362,"id":26380,"nodeType":"Return","src":"1609:50:80"}]},"functionSelector":"ded42d00","id":26382,"implemented":true,"kind":"function","modifiers":[],"name":"validProof","nameLocation":"1366:10:80","nodeType":"FunctionDefinition","overrides":{"id":26359,"nodeType":"OverrideSpecifier","overrides":[],"src":"1502:8:80"},"parameters":{"id":26358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26350,"mutability":"mutable","name":"_tokenId","nameLocation":"1394:8:80","nodeType":"VariableDeclaration","scope":26382,"src":"1386:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26349,"name":"uint256","nodeType":"ElementaryTypeName","src":"1386:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26352,"mutability":"mutable","name":"_owner","nameLocation":"1420:6:80","nodeType":"VariableDeclaration","scope":26382,"src":"1412:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26351,"name":"address","nodeType":"ElementaryTypeName","src":"1412:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26354,"mutability":"mutable","name":"_reward","nameLocation":"1444:7:80","nodeType":"VariableDeclaration","scope":26382,"src":"1436:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26353,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26357,"mutability":"mutable","name":"proof","nameLocation":"1478:5:80","nodeType":"VariableDeclaration","scope":26382,"src":"1461:22:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":26355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1461:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":26356,"nodeType":"ArrayTypeName","src":"1461:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1376:113:80"},"returnParameters":{"id":26362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26382,"src":"1520:4:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26360,"name":"bool","nodeType":"ElementaryTypeName","src":"1520:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1519:6:80"},"scope":26406,"src":"1357:309:80","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":26404,"nodeType":"Block","src":"1721:75:80","statements":[{"expression":{"arguments":[{"expression":{"id":26393,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1746:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1746:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":26399,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1782:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_PendingFeeDistributor_$26406","typeString":"contract PendingFeeDistributor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PendingFeeDistributor_$26406","typeString":"contract PendingFeeDistributor"}],"id":26398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1774:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26397,"name":"address","nodeType":"ElementaryTypeName","src":"1774:7:80","typeDescriptions":{}}},"id":26400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26395,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26385,"src":"1758:5:80","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"1758:15:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1758:30:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26390,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26385,"src":"1731:5:80","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":26392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"1731:14:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":26402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1731:58:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26403,"nodeType":"ExpressionStatement","src":"1731:58:80"}]},"functionSelector":"fa89401a","id":26405,"implemented":true,"kind":"function","modifiers":[{"id":26388,"kind":"modifierInvocation","modifierName":{"id":26387,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"1711:9:80"},"nodeType":"ModifierInvocation","src":"1711:9:80"}],"name":"refund","nameLocation":"1681:6:80","nodeType":"FunctionDefinition","parameters":{"id":26386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26385,"mutability":"mutable","name":"token","nameLocation":"1695:5:80","nodeType":"VariableDeclaration","scope":26405,"src":"1688:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":26384,"nodeType":"UserDefinedTypeName","pathNode":{"id":26383,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1688:6:80"},"referencedDeclaration":5767,"src":"1688:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1687:14:80"},"returnParameters":{"id":26389,"nodeType":"ParameterList","parameters":[],"src":"1721:0:80"},"scope":26406,"src":"1672:124:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":26407,"src":"462:1336:80","usedErrors":[]}],"src":"33:1766:80"},"id":80},"contracts/gauges/BaseGaugeV1.sol":{"ast":{"absolutePath":"contracts/gauges/BaseGaugeV1.sol","exportedSymbols":{"BaseGaugeV1":[28747],"IBribe":[33878],"IERC20":[5767],"IGaugeV1":[34194],"IGaugeVoter":[34456],"INFTLocker":[34923],"IRegistry":[35522],"Math":[10353]},"id":28748,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":26408,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:81"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":26410,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28748,"sourceUnit":4739,"src":"57:69:81","symbolAliases":[{"foreign":{"id":26409,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":26412,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28748,"sourceUnit":10354,"src":"127:65:81","symbolAliases":[{"foreign":{"id":26411,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"135:4:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../interfaces/IRegistry.sol","id":26414,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28748,"sourceUnit":35523,"src":"194:54:81","symbolAliases":[{"foreign":{"id":26413,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"202:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoter.sol","file":"../interfaces/IGaugeVoter.sol","id":26416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28748,"sourceUnit":34457,"src":"249:58:81","symbolAliases":[{"foreign":{"id":26415,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"src":"257:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"../interfaces/INFTLocker.sol","id":26418,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28748,"sourceUnit":34924,"src":"308:56:81","symbolAliases":[{"foreign":{"id":26417,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"316:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribe.sol","file":"../interfaces/IBribe.sol","id":26420,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28748,"sourceUnit":33879,"src":"365:48:81","symbolAliases":[{"foreign":{"id":26419,"name":"IBribe","nodeType":"Identifier","overloadedDeclarations":[],"src":"373:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeV1.sol","file":"../interfaces/IGaugeV1.sol","id":26422,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28748,"sourceUnit":34195,"src":"414:52:81","symbolAliases":[{"foreign":{"id":26421,"name":"IGaugeV1","nodeType":"Identifier","overloadedDeclarations":[],"src":"422:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26423,"name":"IGaugeV1","nodeType":"IdentifierPath","referencedDeclaration":34194,"src":"590:8:81"},"id":26424,"nodeType":"InheritanceSpecifier","src":"590:8:81"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":28747,"linearizedBaseContracts":[28747,34194,34110],"name":"BaseGaugeV1","nameLocation":"575:11:81","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34102],"constant":false,"functionSelector":"7b103999","id":26428,"mutability":"immutable","name":"registry","nameLocation":"641:8:81","nodeType":"VariableDeclaration","overrides":{"id":26427,"nodeType":"OverrideSpecifier","overrides":[],"src":"632:8:81"},"scope":28747,"src":"605:44:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":26426,"nodeType":"UserDefinedTypeName","pathNode":{"id":26425,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"605:9:81"},"referencedDeclaration":35522,"src":"605:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":false,"functionSelector":"3a4b66f1","id":26430,"mutability":"immutable","name":"stake","nameLocation":"680:5:81","nodeType":"VariableDeclaration","scope":28747,"src":"655:30:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26429,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"d7da4bb0","id":26432,"mutability":"mutable","name":"derivedSupply","nameLocation":"759:13:81","nodeType":"VariableDeclaration","scope":28747,"src":"744:28:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26431,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"63fb415b","id":26436,"mutability":"mutable","name":"derivedBalances","nameLocation":"813:15:81","nodeType":"VariableDeclaration","scope":28747,"src":"778:50:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26435,"keyType":{"id":26433,"name":"address","nodeType":"ElementaryTypeName","src":"786:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"778:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26434,"name":"uint256","nodeType":"ElementaryTypeName","src":"797:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":true,"id":26439,"mutability":"constant","name":"DURATION","nameLocation":"861:8:81","nodeType":"VariableDeclaration","scope":28747,"src":"835:43:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26437,"name":"uint256","nodeType":"ElementaryTypeName","src":"835:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":26438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"872:6:81","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"internal"},{"constant":true,"id":26444,"mutability":"constant","name":"PRECISION","nameLocation":"946:9:81","nodeType":"VariableDeclaration","scope":28747,"src":"920:44:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26440,"name":"uint256","nodeType":"ElementaryTypeName","src":"920:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":26443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":26441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"958:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":26442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"962:2:81","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"958:6:81","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":false,"functionSelector":"221ca18c","id":26448,"mutability":"mutable","name":"rewardRate","nameLocation":"1057:10:81","nodeType":"VariableDeclaration","scope":28747,"src":"1022:45:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26447,"keyType":{"id":26445,"name":"address","nodeType":"ElementaryTypeName","src":"1030:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1022:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26446,"name":"uint256","nodeType":"ElementaryTypeName","src":"1041:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"da09d19d","id":26452,"mutability":"mutable","name":"periodFinish","nameLocation":"1108:12:81","nodeType":"VariableDeclaration","scope":28747,"src":"1073:47:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26451,"keyType":{"id":26449,"name":"address","nodeType":"ElementaryTypeName","src":"1081:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1073:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26450,"name":"uint256","nodeType":"ElementaryTypeName","src":"1092:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"2ce9aead","id":26456,"mutability":"mutable","name":"lastUpdateTime","nameLocation":"1161:14:81","nodeType":"VariableDeclaration","scope":28747,"src":"1126:49:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26455,"keyType":{"id":26453,"name":"address","nodeType":"ElementaryTypeName","src":"1134:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1126:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26454,"name":"uint256","nodeType":"ElementaryTypeName","src":"1145:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"9ce43f90","id":26460,"mutability":"mutable","name":"rewardPerTokenStored","nameLocation":"1216:20:81","nodeType":"VariableDeclaration","scope":28747,"src":"1181:55:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26459,"keyType":{"id":26457,"name":"address","nodeType":"ElementaryTypeName","src":"1189:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1181:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1200:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"a495e5b5","id":26466,"mutability":"mutable","name":"lastEarn","nameLocation":"1298:8:81","nodeType":"VariableDeclaration","scope":28747,"src":"1243:63:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":26465,"keyType":{"id":26461,"name":"address","nodeType":"ElementaryTypeName","src":"1251:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1243:47:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":26464,"keyType":{"id":26462,"name":"address","nodeType":"ElementaryTypeName","src":"1270:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1262:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26463,"name":"uint256","nodeType":"ElementaryTypeName","src":"1281:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"3ca068b6","id":26472,"mutability":"mutable","name":"userRewardPerTokenStored","nameLocation":"1375:24:81","nodeType":"VariableDeclaration","scope":28747,"src":"1312:87:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":26471,"keyType":{"id":26467,"name":"address","nodeType":"ElementaryTypeName","src":"1320:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1312:47:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":26470,"keyType":{"id":26468,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1331:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26469,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"fc97a303","id":26476,"mutability":"mutable","name":"tokenIds","nameLocation":"1441:8:81","nodeType":"VariableDeclaration","scope":28747,"src":"1406:43:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26475,"keyType":{"id":26473,"name":"address","nodeType":"ElementaryTypeName","src":"1414:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1406:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26474,"name":"uint256","nodeType":"ElementaryTypeName","src":"1425:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":26478,"mutability":"mutable","name":"totalSupply","nameLocation":"1471:11:81","nodeType":"VariableDeclaration","scope":28747,"src":"1456:26:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26477,"name":"uint256","nodeType":"ElementaryTypeName","src":"1456:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"70a08231","id":26482,"mutability":"mutable","name":"balanceOf","nameLocation":"1523:9:81","nodeType":"VariableDeclaration","scope":28747,"src":"1488:44:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26481,"keyType":{"id":26479,"name":"address","nodeType":"ElementaryTypeName","src":"1496:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1488:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1507:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"f301af42","id":26485,"mutability":"mutable","name":"rewards","nameLocation":"1556:7:81","nodeType":"VariableDeclaration","scope":28747,"src":"1539:24:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":26483,"name":"address","nodeType":"ElementaryTypeName","src":"1539:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26484,"nodeType":"ArrayTypeName","src":"1539:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"constant":false,"functionSelector":"4d5ce038","id":26489,"mutability":"mutable","name":"isReward","nameLocation":"1601:8:81","nodeType":"VariableDeclaration","scope":28747,"src":"1569:40:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":26488,"keyType":{"id":26486,"name":"address","nodeType":"ElementaryTypeName","src":"1577:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1569:24:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":26487,"name":"bool","nodeType":"ElementaryTypeName","src":"1588:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":26490,"nodeType":"StructuredDocumentation","src":"1616:70:81","text":"@notice A record of balance checkpoints for each account, by index"},"functionSelector":"0cdfebfa","id":26497,"mutability":"mutable","name":"checkpoints","nameLocation":"1749:11:81","nodeType":"VariableDeclaration","scope":28747,"src":"1691:69:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint))"},"typeName":{"id":26496,"keyType":{"id":26491,"name":"address","nodeType":"ElementaryTypeName","src":"1699:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1691:50:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint))"},"valueType":{"id":26495,"keyType":{"id":26492,"name":"uint256","nodeType":"ElementaryTypeName","src":"1718:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1710:30:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint)"},"valueType":{"id":26494,"nodeType":"UserDefinedTypeName","pathNode":{"id":26493,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34143,"src":"1729:10:81"},"referencedDeclaration":34143,"src":"1729:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage_ptr","typeString":"struct IGaugeV1.Checkpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":26498,"nodeType":"StructuredDocumentation","src":"1767:54:81","text":"@notice The number of checkpoints for each account"},"functionSelector":"6fcfff45","id":26502,"mutability":"mutable","name":"numCheckpoints","nameLocation":"1861:14:81","nodeType":"VariableDeclaration","scope":28747,"src":"1826:49:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26501,"keyType":{"id":26499,"name":"address","nodeType":"ElementaryTypeName","src":"1834:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1826:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26500,"name":"uint256","nodeType":"ElementaryTypeName","src":"1845:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":26503,"nodeType":"StructuredDocumentation","src":"1882:68:81","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"f7412baf","id":26508,"mutability":"mutable","name":"supplyCheckpoints","nameLocation":"1999:17:81","nodeType":"VariableDeclaration","scope":28747,"src":"1955:61:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint)"},"typeName":{"id":26507,"keyType":{"id":26504,"name":"uint256","nodeType":"ElementaryTypeName","src":"1963:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1955:36:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint)"},"valueType":{"id":26506,"nodeType":"UserDefinedTypeName","pathNode":{"id":26505,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34153,"src":"1974:16:81"},"referencedDeclaration":34153,"src":"1974:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"}}},"visibility":"public"},{"constant":false,"documentation":{"id":26509,"nodeType":"StructuredDocumentation","src":"2023:37:81","text":"@notice The number of checkpoints"},"functionSelector":"e8111a12","id":26511,"mutability":"mutable","name":"supplyNumCheckpoints","nameLocation":"2080:20:81","nodeType":"VariableDeclaration","scope":28747,"src":"2065:35:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26510,"name":"uint256","nodeType":"ElementaryTypeName","src":"2065:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":26512,"nodeType":"StructuredDocumentation","src":"2107:68:81","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"01316ddf","id":26519,"mutability":"mutable","name":"rewardPerTokenCheckpoints","nameLocation":"2260:25:81","nodeType":"VariableDeclaration","scope":28747,"src":"2180:105:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint))"},"typeName":{"id":26518,"keyType":{"id":26513,"name":"address","nodeType":"ElementaryTypeName","src":"2188:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2180:64:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint))"},"valueType":{"id":26517,"keyType":{"id":26514,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2199:44:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint)"},"valueType":{"id":26516,"nodeType":"UserDefinedTypeName","pathNode":{"id":26515,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34148,"src":"2218:24:81"},"referencedDeclaration":34148,"src":"2218:24:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":26520,"nodeType":"StructuredDocumentation","src":"2292:52:81","text":"@notice The number of checkpoints for each token"},"functionSelector":"aa479652","id":26524,"mutability":"mutable","name":"rewardPerTokenNumCheckpoints","nameLocation":"2384:28:81","nodeType":"VariableDeclaration","scope":28747,"src":"2349:63:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":26523,"keyType":{"id":26521,"name":"address","nodeType":"ElementaryTypeName","src":"2357:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2349:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":26522,"name":"uint256","nodeType":"ElementaryTypeName","src":"2368:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":26527,"mutability":"mutable","name":"_unlocked","nameLocation":"2468:9:81","nodeType":"VariableDeclaration","scope":28747,"src":"2451:30:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26525,"name":"uint256","nodeType":"ElementaryTypeName","src":"2451:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":26526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2480:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"body":{"id":26545,"nodeType":"Block","src":"2503:111:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26530,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"2521:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":26531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2534:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2521:14:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7265656e7472616e6379","id":26533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2537:12:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187","typeString":"literal_string \"reentrancy\""},"value":"reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187","typeString":"literal_string \"reentrancy\""}],"id":26529,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2513:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2513:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26535,"nodeType":"ExpressionStatement","src":"2513:37:81"},{"expression":{"id":26538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26536,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"2560:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":26537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2572:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2560:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26539,"nodeType":"ExpressionStatement","src":"2560:13:81"},{"id":26540,"nodeType":"PlaceholderStatement","src":"2583:1:81"},{"expression":{"id":26543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26541,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"2594:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":26542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2594:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26544,"nodeType":"ExpressionStatement","src":"2594:13:81"}]},"id":26546,"name":"lock","nameLocation":"2496:4:81","nodeType":"ModifierDefinition","parameters":{"id":26528,"nodeType":"ParameterList","parameters":[],"src":"2500:2:81"},"src":"2487:127:81","virtual":false,"visibility":"internal"},{"body":{"id":26563,"nodeType":"Block","src":"2667:72:81","statements":[{"expression":{"id":26555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26553,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26430,"src":"2677:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":26554,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26548,"src":"2685:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2677:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26556,"nodeType":"ExpressionStatement","src":"2677:14:81"},{"expression":{"id":26561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26557,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"2701:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26559,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26550,"src":"2722:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26558,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"2712:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":26560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2712:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"2701:31:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":26562,"nodeType":"ExpressionStatement","src":"2701:31:81"}]},"id":26564,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26548,"mutability":"mutable","name":"_stake","nameLocation":"2640:6:81","nodeType":"VariableDeclaration","scope":26564,"src":"2632:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26547,"name":"address","nodeType":"ElementaryTypeName","src":"2632:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26550,"mutability":"mutable","name":"_registry","nameLocation":"2656:9:81","nodeType":"VariableDeclaration","scope":26564,"src":"2648:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26549,"name":"address","nodeType":"ElementaryTypeName","src":"2648:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2631:35:81"},"returnParameters":{"id":26552,"nodeType":"ParameterList","parameters":[],"src":"2667:0:81"},"scope":28747,"src":"2620:119:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26678,"nodeType":"Block","src":"3259:950:81","statements":[{"assignments":[26575],"declarations":[{"constant":false,"id":26575,"mutability":"mutable","name":"nCheckpoints","nameLocation":"3277:12:81","nodeType":"VariableDeclaration","scope":26678,"src":"3269:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26574,"name":"uint256","nodeType":"ElementaryTypeName","src":"3269:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26579,"initialValue":{"baseExpression":{"id":26576,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26502,"src":"3292:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":26578,"indexExpression":{"id":26577,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26567,"src":"3307:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3292:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3269:46:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26580,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26575,"src":"3329:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":26581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3345:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3329:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26586,"nodeType":"IfStatement","src":"3325:56:81","trueBody":{"id":26585,"nodeType":"Block","src":"3348:33:81","statements":[{"expression":{"hexValue":"30","id":26583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3369:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":26573,"id":26584,"nodeType":"Return","src":"3362:8:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":26587,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"3438:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":26589,"indexExpression":{"id":26588,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26567,"src":"3450:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3438:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":26593,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26590,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26575,"src":"3459:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3474:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3459:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3438:38:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"id":26594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"3438:48:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":26595,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"3490:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3438:61:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26603,"nodeType":"IfStatement","src":"3434:117:81","trueBody":{"id":26602,"nodeType":"Block","src":"3501:50:81","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26597,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26575,"src":"3523:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3538:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3523:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3522:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26573,"id":26601,"nodeType":"Return","src":"3515:25:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":26604,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"3609:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":26606,"indexExpression":{"id":26605,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26567,"src":"3621:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3609:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":26608,"indexExpression":{"hexValue":"30","id":26607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3630:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3609:23:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"id":26609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"3609:33:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":26610,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"3645:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:45:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26615,"nodeType":"IfStatement","src":"3605:84:81","trueBody":{"id":26614,"nodeType":"Block","src":"3656:33:81","statements":[{"expression":{"hexValue":"30","id":26612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3677:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":26573,"id":26613,"nodeType":"Return","src":"3670:8:81"}]}},{"assignments":[26617],"declarations":[{"constant":false,"id":26617,"mutability":"mutable","name":"lower","nameLocation":"3707:5:81","nodeType":"VariableDeclaration","scope":26678,"src":"3699:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26616,"name":"uint256","nodeType":"ElementaryTypeName","src":"3699:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26619,"initialValue":{"hexValue":"30","id":26618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3715:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3699:17:81"},{"assignments":[26621],"declarations":[{"constant":false,"id":26621,"mutability":"mutable","name":"upper","nameLocation":"3734:5:81","nodeType":"VariableDeclaration","scope":26678,"src":"3726:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26620,"name":"uint256","nodeType":"ElementaryTypeName","src":"3726:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26625,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26622,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26575,"src":"3742:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3742:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3726:32:81"},{"body":{"id":26674,"nodeType":"Block","src":"3790:391:81","statements":[{"assignments":[26630],"declarations":[{"constant":false,"id":26630,"mutability":"mutable","name":"center","nameLocation":"3812:6:81","nodeType":"VariableDeclaration","scope":26674,"src":"3804:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26629,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26639,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26631,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26621,"src":"3821:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26632,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26621,"src":"3830:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":26633,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26617,"src":"3838:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3830:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26635,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3829:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":26636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3847:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3829:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3821:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3804:44:81"},{"assignments":[26642],"declarations":[{"constant":false,"id":26642,"mutability":"mutable","name":"cp","nameLocation":"3907:2:81","nodeType":"VariableDeclaration","scope":26674,"src":"3889:20:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint"},"typeName":{"id":26641,"nodeType":"UserDefinedTypeName","pathNode":{"id":26640,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34143,"src":"3889:10:81"},"referencedDeclaration":34143,"src":"3889:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage_ptr","typeString":"struct IGaugeV1.Checkpoint"}},"visibility":"internal"}],"id":26648,"initialValue":{"baseExpression":{"baseExpression":{"id":26643,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"3912:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":26645,"indexExpression":{"id":26644,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26567,"src":"3924:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3912:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":26647,"indexExpression":{"id":26646,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26630,"src":"3933:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3912:28:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3889:51:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26649,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26642,"src":"3958:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"id":26650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"3958:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":26651,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"3974:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3958:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26656,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26642,"src":"4041:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"id":26657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"4041:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":26658,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"4056:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4041:24:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":26671,"nodeType":"Block","src":"4120:51:81","statements":[{"expression":{"id":26669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26665,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26621,"src":"4138:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26666,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26630,"src":"4146:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4155:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4146:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4138:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26670,"nodeType":"ExpressionStatement","src":"4138:18:81"}]},"id":26672,"nodeType":"IfStatement","src":"4037:134:81","trueBody":{"id":26664,"nodeType":"Block","src":"4067:47:81","statements":[{"expression":{"id":26662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26660,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26617,"src":"4085:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":26661,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26630,"src":"4093:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4085:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26663,"nodeType":"ExpressionStatement","src":"4085:14:81"}]}},"id":26673,"nodeType":"IfStatement","src":"3954:217:81","trueBody":{"id":26655,"nodeType":"Block","src":"3985:46:81","statements":[{"expression":{"id":26653,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26630,"src":"4010:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26573,"id":26654,"nodeType":"Return","src":"4003:13:81"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26626,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26621,"src":"3775:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":26627,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26617,"src":"3783:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3775:13:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26675,"nodeType":"WhileStatement","src":"3768:413:81"},{"expression":{"id":26676,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26617,"src":"4197:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26573,"id":26677,"nodeType":"Return","src":"4190:12:81"}]},"documentation":{"id":26565,"nodeType":"StructuredDocumentation","src":"2745:385:81","text":" @notice Determine the prior balance for an account as of a block number\n @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n @param account The address of the account to check\n @param timestamp The timestamp to get the balance at\n @return The balance the account had as of the given block"},"functionSelector":"115c6f39","id":26679,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorBalanceIndex","nameLocation":"3144:20:81","nodeType":"FunctionDefinition","parameters":{"id":26570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26567,"mutability":"mutable","name":"account","nameLocation":"3173:7:81","nodeType":"VariableDeclaration","scope":26679,"src":"3165:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26566,"name":"address","nodeType":"ElementaryTypeName","src":"3165:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26569,"mutability":"mutable","name":"timestamp","nameLocation":"3190:9:81","nodeType":"VariableDeclaration","scope":26679,"src":"3182:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26568,"name":"uint256","nodeType":"ElementaryTypeName","src":"3182:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3164:36:81"},"returnParameters":{"id":26573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26572,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26679,"src":"3246:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26571,"name":"uint256","nodeType":"ElementaryTypeName","src":"3246:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3245:9:81"},"scope":28747,"src":"3135:1074:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":26782,"nodeType":"Block","src":"4321:944:81","statements":[{"assignments":[26687],"declarations":[{"constant":false,"id":26687,"mutability":"mutable","name":"nCheckpoints","nameLocation":"4339:12:81","nodeType":"VariableDeclaration","scope":26782,"src":"4331:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26686,"name":"uint256","nodeType":"ElementaryTypeName","src":"4331:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26689,"initialValue":{"id":26688,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26511,"src":"4354:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4331:43:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26690,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26687,"src":"4388:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":26691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4404:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4388:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26696,"nodeType":"IfStatement","src":"4384:56:81","trueBody":{"id":26695,"nodeType":"Block","src":"4407:33:81","statements":[{"expression":{"hexValue":"30","id":26693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4428:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":26685,"id":26694,"nodeType":"Return","src":"4421:8:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":26697,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"4497:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":26701,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26698,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26687,"src":"4515:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4530:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4515:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4497:35:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"id":26702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"4497:45:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":26703,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26681,"src":"4546:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4497:58:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26711,"nodeType":"IfStatement","src":"4493:114:81","trueBody":{"id":26710,"nodeType":"Block","src":"4557:50:81","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26705,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26687,"src":"4579:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4594:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4579:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26708,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4578:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26685,"id":26709,"nodeType":"Return","src":"4571:25:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":26712,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"4665:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":26714,"indexExpression":{"hexValue":"30","id":26713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4683:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4665:20:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"id":26715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"4665:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":26716,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26681,"src":"4698:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4665:42:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26721,"nodeType":"IfStatement","src":"4661:81:81","trueBody":{"id":26720,"nodeType":"Block","src":"4709:33:81","statements":[{"expression":{"hexValue":"30","id":26718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4730:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":26685,"id":26719,"nodeType":"Return","src":"4723:8:81"}]}},{"assignments":[26723],"declarations":[{"constant":false,"id":26723,"mutability":"mutable","name":"lower","nameLocation":"4760:5:81","nodeType":"VariableDeclaration","scope":26782,"src":"4752:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26722,"name":"uint256","nodeType":"ElementaryTypeName","src":"4752:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26725,"initialValue":{"hexValue":"30","id":26724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4768:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4752:17:81"},{"assignments":[26727],"declarations":[{"constant":false,"id":26727,"mutability":"mutable","name":"upper","nameLocation":"4787:5:81","nodeType":"VariableDeclaration","scope":26782,"src":"4779:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26726,"name":"uint256","nodeType":"ElementaryTypeName","src":"4779:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26731,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26728,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26687,"src":"4795:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4810:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4795:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4779:32:81"},{"body":{"id":26778,"nodeType":"Block","src":"4843:394:81","statements":[{"assignments":[26736],"declarations":[{"constant":false,"id":26736,"mutability":"mutable","name":"center","nameLocation":"4865:6:81","nodeType":"VariableDeclaration","scope":26778,"src":"4857:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26735,"name":"uint256","nodeType":"ElementaryTypeName","src":"4857:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26745,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26737,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26727,"src":"4874:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26738,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26727,"src":"4883:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":26739,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26723,"src":"4891:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4883:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26741,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4882:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":26742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4900:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4882:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4874:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4857:44:81"},{"assignments":[26748],"declarations":[{"constant":false,"id":26748,"mutability":"mutable","name":"cp","nameLocation":"4966:2:81","nodeType":"VariableDeclaration","scope":26778,"src":"4942:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"},"typeName":{"id":26747,"nodeType":"UserDefinedTypeName","pathNode":{"id":26746,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34153,"src":"4942:16:81"},"referencedDeclaration":34153,"src":"4942:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"}},"visibility":"internal"}],"id":26752,"initialValue":{"baseExpression":{"id":26749,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"4971:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":26751,"indexExpression":{"id":26750,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26736,"src":"4989:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4971:25:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4942:54:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26753,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"5014:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":26754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"5014:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":26755,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26681,"src":"5030:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5014:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26760,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"5097:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":26761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"5097:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":26762,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26681,"src":"5112:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5097:24:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":26775,"nodeType":"Block","src":"5176:51:81","statements":[{"expression":{"id":26773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26769,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26727,"src":"5194:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26770,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26736,"src":"5202:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5211:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5202:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5194:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26774,"nodeType":"ExpressionStatement","src":"5194:18:81"}]},"id":26776,"nodeType":"IfStatement","src":"5093:134:81","trueBody":{"id":26768,"nodeType":"Block","src":"5123:47:81","statements":[{"expression":{"id":26766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26764,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26723,"src":"5141:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":26765,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26736,"src":"5149:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5141:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26767,"nodeType":"ExpressionStatement","src":"5141:14:81"}]}},"id":26777,"nodeType":"IfStatement","src":"5010:217:81","trueBody":{"id":26759,"nodeType":"Block","src":"5041:46:81","statements":[{"expression":{"id":26757,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26736,"src":"5066:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26685,"id":26758,"nodeType":"Return","src":"5059:13:81"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26732,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26727,"src":"4828:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":26733,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26723,"src":"4836:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4828:13:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26779,"nodeType":"WhileStatement","src":"4821:416:81"},{"expression":{"id":26780,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26723,"src":"5253:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26685,"id":26781,"nodeType":"Return","src":"5246:12:81"}]},"functionSelector":"76f4be36","id":26783,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorSupplyIndex","nameLocation":"4224:19:81","nodeType":"FunctionDefinition","parameters":{"id":26682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26681,"mutability":"mutable","name":"timestamp","nameLocation":"4252:9:81","nodeType":"VariableDeclaration","scope":26783,"src":"4244:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26680,"name":"uint256","nodeType":"ElementaryTypeName","src":"4244:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:19:81"},"returnParameters":{"id":26685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26783,"src":"4308:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26683,"name":"uint256","nodeType":"ElementaryTypeName","src":"4308:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4307:9:81"},"scope":28747,"src":"4215:1050:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":26931,"nodeType":"Block","src":"5404:1427:81","statements":[{"assignments":[26795],"declarations":[{"constant":false,"id":26795,"mutability":"mutable","name":"nCheckpoints","nameLocation":"5422:12:81","nodeType":"VariableDeclaration","scope":26931,"src":"5414:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26794,"name":"uint256","nodeType":"ElementaryTypeName","src":"5414:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26799,"initialValue":{"baseExpression":{"id":26796,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26524,"src":"5437:28:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":26798,"indexExpression":{"id":26797,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"5466:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5437:35:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5414:58:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26800,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26795,"src":"5486:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":26801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5502:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5486:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26808,"nodeType":"IfStatement","src":"5482:61:81","trueBody":{"id":26807,"nodeType":"Block","src":"5505:38:81","statements":[{"expression":{"components":[{"hexValue":"30","id":26803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5527:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":26804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5530:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":26805,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5526:6:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":26793,"id":26806,"nodeType":"Return","src":"5519:13:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":26809,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"5613:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":26811,"indexExpression":{"id":26810,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"5639:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":26815,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26812,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26795,"src":"5646:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5661:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5646:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:50:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":26816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"5613:60:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":26817,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26787,"src":"5689:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5613:85:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26838,"nodeType":"IfStatement","src":"5596:341:81","trueBody":{"id":26837,"nodeType":"Block","src":"5709:228:81","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":26819,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"5748:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":26821,"indexExpression":{"id":26820,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"5774:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5748:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":26825,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26822,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26795,"src":"5781:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5796:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5781:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5748:50:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":26826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34147,"src":"5748:86:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":26827,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"5852:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":26829,"indexExpression":{"id":26828,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"5878:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5852:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":26833,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26830,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26795,"src":"5885:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5900:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5885:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5852:50:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":26834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"5852:60:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26835,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5730:196:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":26793,"id":26836,"nodeType":"Return","src":"5723:203:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":26839,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"5995:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":26841,"indexExpression":{"id":26840,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"6021:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5995:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":26843,"indexExpression":{"hexValue":"30","id":26842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6028:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5995:35:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":26844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"5995:45:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":26845,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26787,"src":"6043:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5995:57:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26852,"nodeType":"IfStatement","src":"5991:101:81","trueBody":{"id":26851,"nodeType":"Block","src":"6054:38:81","statements":[{"expression":{"components":[{"hexValue":"30","id":26847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6076:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":26848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6079:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":26849,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6075:6:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":26793,"id":26850,"nodeType":"Return","src":"6068:13:81"}]}},{"assignments":[26854],"declarations":[{"constant":false,"id":26854,"mutability":"mutable","name":"lower","nameLocation":"6110:5:81","nodeType":"VariableDeclaration","scope":26931,"src":"6102:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26853,"name":"uint256","nodeType":"ElementaryTypeName","src":"6102:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26856,"initialValue":{"hexValue":"30","id":26855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6118:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6102:17:81"},{"assignments":[26858],"declarations":[{"constant":false,"id":26858,"mutability":"mutable","name":"upper","nameLocation":"6137:5:81","nodeType":"VariableDeclaration","scope":26931,"src":"6129:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26857,"name":"uint256","nodeType":"ElementaryTypeName","src":"6129:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26862,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26859,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26795,"src":"6145:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6160:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6145:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6129:32:81"},{"body":{"id":26915,"nodeType":"Block","src":"6193:474:81","statements":[{"assignments":[26867],"declarations":[{"constant":false,"id":26867,"mutability":"mutable","name":"center","nameLocation":"6215:6:81","nodeType":"VariableDeclaration","scope":26915,"src":"6207:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26866,"name":"uint256","nodeType":"ElementaryTypeName","src":"6207:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26876,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26868,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26858,"src":"6224:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26869,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26858,"src":"6233:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":26870,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26854,"src":"6241:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6233:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26872,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6232:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":26873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6250:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6232:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6224:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6207:44:81"},{"assignments":[26879],"declarations":[{"constant":false,"id":26879,"mutability":"mutable","name":"cp","nameLocation":"6324:2:81","nodeType":"VariableDeclaration","scope":26915,"src":"6292:34:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_memory_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint"},"typeName":{"id":26878,"nodeType":"UserDefinedTypeName","pathNode":{"id":26877,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34148,"src":"6292:24:81"},"referencedDeclaration":34148,"src":"6292:24:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint"}},"visibility":"internal"}],"id":26885,"initialValue":{"baseExpression":{"baseExpression":{"id":26880,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"6329:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":26882,"indexExpression":{"id":26881,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"6372:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6329:62:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":26884,"indexExpression":{"id":26883,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26867,"src":"6392:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6329:70:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6292:107:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26886,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26879,"src":"6417:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_memory_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint memory"}},"id":26887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"6417:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":26888,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26787,"src":"6433:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6417:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26897,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26879,"src":"6527:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_memory_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint memory"}},"id":26898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"6527:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":26899,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26787,"src":"6542:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6527:24:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":26912,"nodeType":"Block","src":"6606:51:81","statements":[{"expression":{"id":26910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26906,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26858,"src":"6624:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26907,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26867,"src":"6632:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6641:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6632:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6624:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26911,"nodeType":"ExpressionStatement","src":"6624:18:81"}]},"id":26913,"nodeType":"IfStatement","src":"6523:134:81","trueBody":{"id":26905,"nodeType":"Block","src":"6553:47:81","statements":[{"expression":{"id":26903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26901,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26854,"src":"6571:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":26902,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26867,"src":"6579:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6571:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26904,"nodeType":"ExpressionStatement","src":"6571:14:81"}]}},"id":26914,"nodeType":"IfStatement","src":"6413:244:81","trueBody":{"id":26896,"nodeType":"Block","src":"6444:73:81","statements":[{"expression":{"components":[{"expression":{"id":26890,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26879,"src":"6470:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_memory_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint memory"}},"id":26891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34147,"src":"6470:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":26892,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26879,"src":"6489:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_memory_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint memory"}},"id":26893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"6489:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26894,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6469:33:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":26793,"id":26895,"nodeType":"Return","src":"6462:40:81"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26863,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26858,"src":"6178:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":26864,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26854,"src":"6186:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6178:13:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26916,"nodeType":"WhileStatement","src":"6171:496:81"},{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":26917,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"6697:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":26919,"indexExpression":{"id":26918,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"6723:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6697:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":26921,"indexExpression":{"id":26920,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26854,"src":"6730:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6697:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":26922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34147,"src":"6697:54:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":26923,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"6765:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":26925,"indexExpression":{"id":26924,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26785,"src":"6791:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6765:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":26927,"indexExpression":{"id":26926,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26854,"src":"6798:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6765:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":26928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"6765:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26929,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6683:141:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":26793,"id":26930,"nodeType":"Return","src":"6676:148:81"}]},"functionSelector":"fd314098","id":26932,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorRewardPerToken","nameLocation":"5280:22:81","nodeType":"FunctionDefinition","parameters":{"id":26788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26785,"mutability":"mutable","name":"token","nameLocation":"5311:5:81","nodeType":"VariableDeclaration","scope":26932,"src":"5303:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26784,"name":"address","nodeType":"ElementaryTypeName","src":"5303:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26787,"mutability":"mutable","name":"timestamp","nameLocation":"5326:9:81","nodeType":"VariableDeclaration","scope":26932,"src":"5318:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26786,"name":"uint256","nodeType":"ElementaryTypeName","src":"5318:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5302:34:81"},"returnParameters":{"id":26793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26932,"src":"5382:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26789,"name":"uint256","nodeType":"ElementaryTypeName","src":"5382:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26932,"src":"5391:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26791,"name":"uint256","nodeType":"ElementaryTypeName","src":"5391:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5381:18:81"},"scope":28747,"src":"5271:1560:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":26997,"nodeType":"Block","src":"6906:531:81","statements":[{"assignments":[26940],"declarations":[{"constant":false,"id":26940,"mutability":"mutable","name":"_timestamp","nameLocation":"6924:10:81","nodeType":"VariableDeclaration","scope":26997,"src":"6916:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26939,"name":"uint256","nodeType":"ElementaryTypeName","src":"6916:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26943,"initialValue":{"expression":{"id":26941,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6937:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":26942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6937:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6916:36:81"},{"assignments":[26945],"declarations":[{"constant":false,"id":26945,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"6970:13:81","nodeType":"VariableDeclaration","scope":26997,"src":"6962:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26944,"name":"uint256","nodeType":"ElementaryTypeName","src":"6962:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26949,"initialValue":{"baseExpression":{"id":26946,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26502,"src":"6986:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":26948,"indexExpression":{"id":26947,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26934,"src":"7001:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6986:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6962:47:81"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26950,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26945,"src":"7037:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":26951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7053:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7037:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":26953,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"7070:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":26955,"indexExpression":{"id":26954,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26934,"src":"7082:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7070:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":26959,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26956,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26945,"src":"7091:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7107:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7091:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7070:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"id":26960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"7070:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":26961,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26940,"src":"7123:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7070:63:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7037:96:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":26995,"nodeType":"Block","src":"7234:197:81","statements":[{"expression":{"id":26985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":26976,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"7248:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":26979,"indexExpression":{"id":26977,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26934,"src":"7260:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7248:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":26980,"indexExpression":{"id":26978,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26945,"src":"7269:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7248:35:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26982,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26940,"src":"7314:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26983,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26936,"src":"7342:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26981,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34143,"src":"7286:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$34143_storage_ptr_$","typeString":"type(struct IGaugeV1.Checkpoint storage pointer)"}},"id":26984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7286:77:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"src":"7248:115:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"id":26986,"nodeType":"ExpressionStatement","src":"7248:115:81"},{"expression":{"id":26993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":26987,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26502,"src":"7377:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":26989,"indexExpression":{"id":26988,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26934,"src":"7392:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7377:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26990,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26945,"src":"7403:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":26991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7419:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7403:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7377:43:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26994,"nodeType":"ExpressionStatement","src":"7377:43:81"}]},"id":26996,"nodeType":"IfStatement","src":"7020:411:81","trueBody":{"id":26975,"nodeType":"Block","src":"7144:84:81","statements":[{"expression":{"id":26973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":26964,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"7158:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":26969,"indexExpression":{"id":26965,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26934,"src":"7170:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7158:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":26970,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26966,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26945,"src":"7179:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":26967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7195:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7179:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7158:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"id":26971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34142,"src":"7158:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":26972,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26936,"src":"7210:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7158:59:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26974,"nodeType":"ExpressionStatement","src":"7158:59:81"}]}}]},"id":26998,"implemented":true,"kind":"function","modifiers":[],"name":"_writeCheckpoint","nameLocation":"6846:16:81","nodeType":"FunctionDefinition","parameters":{"id":26937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26934,"mutability":"mutable","name":"account","nameLocation":"6871:7:81","nodeType":"VariableDeclaration","scope":26998,"src":"6863:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26933,"name":"address","nodeType":"ElementaryTypeName","src":"6863:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26936,"mutability":"mutable","name":"balance","nameLocation":"6888:7:81","nodeType":"VariableDeclaration","scope":26998,"src":"6880:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26935,"name":"uint256","nodeType":"ElementaryTypeName","src":"6880:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6862:34:81"},"returnParameters":{"id":26938,"nodeType":"ParameterList","parameters":[],"src":"6906:0:81"},"scope":28747,"src":"6837:600:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":27060,"nodeType":"Block","src":"7572:573:81","statements":[{"assignments":[27008],"declarations":[{"constant":false,"id":27008,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"7590:13:81","nodeType":"VariableDeclaration","scope":27060,"src":"7582:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27007,"name":"uint256","nodeType":"ElementaryTypeName","src":"7582:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27012,"initialValue":{"baseExpression":{"id":27009,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26524,"src":"7606:28:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27011,"indexExpression":{"id":27010,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27000,"src":"7635:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7606:35:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7582:59:81"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":27026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27013,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27008,"src":"7669:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":27014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7685:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7669:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":27016,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"7702:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":27018,"indexExpression":{"id":27017,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27000,"src":"7728:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7702:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":27022,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27019,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27008,"src":"7735:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7751:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7735:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7702:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":27023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"7702:61:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":27024,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27004,"src":"7779:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7702:86:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7669:119:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":27058,"nodeType":"Block","src":"7922:217:81","statements":[{"expression":{"id":27048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":27039,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"7936:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":27042,"indexExpression":{"id":27040,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27000,"src":"7962:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7936:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":27043,"indexExpression":{"id":27041,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27008,"src":"7986:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7936:77:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27045,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27004,"src":"8041:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27046,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27002,"src":"8052:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27044,"name":"RewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34148,"src":"8016:24:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_ptr_$","typeString":"type(struct IGaugeV1.RewardPerTokenCheckpoint storage pointer)"}},"id":27047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8016:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_memory_ptr","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint memory"}},"src":"7936:123:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":27049,"nodeType":"ExpressionStatement","src":"7936:123:81"},{"expression":{"id":27056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":27050,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26524,"src":"8073:28:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27052,"indexExpression":{"id":27051,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27000,"src":"8102:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8073:35:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27053,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27008,"src":"8111:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":27054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8127:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8111:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8073:55:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27057,"nodeType":"ExpressionStatement","src":"8073:55:81"}]},"id":27059,"nodeType":"IfStatement","src":"7652:487:81","trueBody":{"id":27038,"nodeType":"Block","src":"7799:117:81","statements":[{"expression":{"id":27036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":27027,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"7813:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":27032,"indexExpression":{"id":27028,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27000,"src":"7839:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7813:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":27033,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27029,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27008,"src":"7846:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7862:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7846:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7813:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":27034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34147,"src":"7813:83:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27035,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27002,"src":"7899:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7813:92:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27037,"nodeType":"ExpressionStatement","src":"7813:92:81"}]}}]},"id":27061,"implemented":true,"kind":"function","modifiers":[],"name":"_writeRewardPerTokenCheckpoint","nameLocation":"7452:30:81","nodeType":"FunctionDefinition","parameters":{"id":27005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27000,"mutability":"mutable","name":"token","nameLocation":"7500:5:81","nodeType":"VariableDeclaration","scope":27061,"src":"7492:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26999,"name":"address","nodeType":"ElementaryTypeName","src":"7492:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27002,"mutability":"mutable","name":"reward","nameLocation":"7523:6:81","nodeType":"VariableDeclaration","scope":27061,"src":"7515:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27001,"name":"uint256","nodeType":"ElementaryTypeName","src":"7515:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27004,"mutability":"mutable","name":"timestamp","nameLocation":"7547:9:81","nodeType":"VariableDeclaration","scope":27061,"src":"7539:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27003,"name":"uint256","nodeType":"ElementaryTypeName","src":"7539:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7482:80:81"},"returnParameters":{"id":27006,"nodeType":"ParameterList","parameters":[],"src":"7572:0:81"},"scope":28747,"src":"7443:702:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":27112,"nodeType":"Block","src":"8194:531:81","statements":[{"assignments":[27065],"declarations":[{"constant":false,"id":27065,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"8212:13:81","nodeType":"VariableDeclaration","scope":27112,"src":"8204:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27064,"name":"uint256","nodeType":"ElementaryTypeName","src":"8204:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27067,"initialValue":{"id":27066,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26511,"src":"8228:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8204:44:81"},{"assignments":[27069],"declarations":[{"constant":false,"id":27069,"mutability":"mutable","name":"_timestamp","nameLocation":"8266:10:81","nodeType":"VariableDeclaration","scope":27112,"src":"8258:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27068,"name":"uint256","nodeType":"ElementaryTypeName","src":"8258:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27072,"initialValue":{"expression":{"id":27070,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8279:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":27071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8279:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8258:36:81"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":27084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27073,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27065,"src":"8322:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":27074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8338:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8322:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":27076,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"8355:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27080,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27077,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27065,"src":"8373:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8389:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8373:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8355:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"id":27081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"8355:46:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":27082,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27069,"src":"8405:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8355:60:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8322:93:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":27110,"nodeType":"Block","src":"8516:203:81","statements":[{"expression":{"id":27102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":27095,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"8530:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27097,"indexExpression":{"id":27096,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27065,"src":"8548:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8530:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27099,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27069,"src":"8599:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27100,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"8627:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27098,"name":"SupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34153,"src":"8565:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SupplyCheckpoint_$34153_storage_ptr_$","typeString":"type(struct IGaugeV1.SupplyCheckpoint storage pointer)"}},"id":27101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8565:89:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"src":"8530:124:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"id":27103,"nodeType":"ExpressionStatement","src":"8530:124:81"},{"expression":{"id":27108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27104,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26511,"src":"8668:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27105,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27065,"src":"8691:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":27106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8707:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8691:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8668:40:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27109,"nodeType":"ExpressionStatement","src":"8668:40:81"}]},"id":27111,"nodeType":"IfStatement","src":"8305:414:81","trueBody":{"id":27094,"nodeType":"Block","src":"8426:84:81","statements":[{"expression":{"id":27092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":27085,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"8440:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27089,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27086,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27065,"src":"8458:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8474:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8458:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8440:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"id":27090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34152,"src":"8440:43:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27091,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"8486:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8440:59:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27093,"nodeType":"ExpressionStatement","src":"8440:59:81"}]}}]},"id":27113,"implemented":true,"kind":"function","modifiers":[],"name":"_writeSupplyCheckpoint","nameLocation":"8160:22:81","nodeType":"FunctionDefinition","parameters":{"id":27062,"nodeType":"ParameterList","parameters":[],"src":"8182:2:81"},"returnParameters":{"id":27063,"nodeType":"ParameterList","parameters":[],"src":"8194:0:81"},"scope":28747,"src":"8151:574:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":27121,"nodeType":"Block","src":"8792:38:81","statements":[{"expression":{"expression":{"id":27118,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26485,"src":"8809:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":27119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8809:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27117,"id":27120,"nodeType":"Return","src":"8802:21:81"}]},"functionSelector":"e6886396","id":27122,"implemented":true,"kind":"function","modifiers":[],"name":"rewardsListLength","nameLocation":"8740:17:81","nodeType":"FunctionDefinition","parameters":{"id":27114,"nodeType":"ParameterList","parameters":[],"src":"8757:2:81"},"returnParameters":{"id":27117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27122,"src":"8783:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27115,"name":"uint256","nodeType":"ElementaryTypeName","src":"8783:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8782:9:81"},"scope":28747,"src":"8731:99:81","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":27138,"nodeType":"Block","src":"9036:70:81","statements":[{"expression":{"arguments":[{"expression":{"id":27131,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9062:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":27132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9062:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":27133,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"9079:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27135,"indexExpression":{"id":27134,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27124,"src":"9092:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9079:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27129,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"9053:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"9053:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9053:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27128,"id":27137,"nodeType":"Return","src":"9046:53:81"}]},"functionSelector":"638634ee","id":27139,"implemented":true,"kind":"function","modifiers":[],"name":"lastTimeRewardApplicable","nameLocation":"8938:24:81","nodeType":"FunctionDefinition","parameters":{"id":27125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27124,"mutability":"mutable","name":"token","nameLocation":"8971:5:81","nodeType":"VariableDeclaration","scope":27139,"src":"8963:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27123,"name":"address","nodeType":"ElementaryTypeName","src":"8963:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8962:15:81"},"returnParameters":{"id":27128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27139,"src":"9023:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27126,"name":"uint256","nodeType":"ElementaryTypeName","src":"9023:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9022:9:81"},"scope":28747,"src":"8929:177:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[34096],"body":{"id":27312,"nodeType":"Block","src":"9224:1246:81","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27150,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"9234:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":27152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"9234:24:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":27153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9234:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27154,"nodeType":"ExpressionStatement","src":"9234:26:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":27166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27156,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9291:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":27157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9291:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":27158,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"9305:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9291:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9316:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":27161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9316:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27162,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"9330:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":27163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"9330:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":27164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9330:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9316:35:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9291:60:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73656e646572206e6f74206163636f756e74206f7220766f746572","id":27167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9365:29:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d","typeString":"literal_string \"sender not account or voter\""},"value":"sender not account or voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d","typeString":"literal_string \"sender not account or voter\""}],"id":27155,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9270:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":27168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9270:134:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27169,"nodeType":"ExpressionStatement","src":"9270:134:81"},{"expression":{"id":27172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27170,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"9415:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":27171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9427:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9415:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27173,"nodeType":"ExpressionStatement","src":"9415:13:81"},{"expression":{"arguments":[{"arguments":[{"id":27182,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9492:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}],"id":27181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9484:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":27180,"name":"address","nodeType":"ElementaryTypeName","src":"9484:7:81","typeDescriptions":{}}},"id":27183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9484:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27175,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"9450:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":27176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"9450:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":27177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9450:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27174,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34456,"src":"9438:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoter_$34456_$","typeString":"type(contract IGaugeVoter)"}},"id":27178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9438:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoter_$34456","typeString":"contract IGaugeVoter"}},"id":27179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"distribute","nodeType":"MemberAccess","referencedDeclaration":34360,"src":"9438:45:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":27184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9438:60:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27185,"nodeType":"ExpressionStatement","src":"9438:60:81"},{"expression":{"id":27188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27186,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"9508:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":27187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9520:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9508:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27189,"nodeType":"ExpressionStatement","src":"9508:13:81"},{"body":{"id":27274,"nodeType":"Block","src":"9576:544:81","statements":[{"expression":{"id":27217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":27201,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"9608:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27205,"indexExpression":{"baseExpression":{"id":27202,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9629:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27204,"indexExpression":{"id":27203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9636:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9629:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9608:31:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":27206,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26456,"src":"9657:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27210,"indexExpression":{"baseExpression":{"id":27207,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9672:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27209,"indexExpression":{"id":27208,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9679:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9672:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9657:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27211,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9590:106:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":27213,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9721:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27215,"indexExpression":{"id":27214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9728:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9721:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27212,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27839,"src":"9699:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":27216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9699:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"9590:141:81","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27218,"nodeType":"ExpressionStatement","src":"9590:141:81"},{"assignments":[27220],"declarations":[{"constant":false,"id":27220,"mutability":"mutable","name":"_reward","nameLocation":"9754:7:81","nodeType":"VariableDeclaration","scope":27274,"src":"9746:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27219,"name":"uint256","nodeType":"ElementaryTypeName","src":"9746:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27227,"initialValue":{"arguments":[{"baseExpression":{"id":27222,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9771:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27224,"indexExpression":{"id":27223,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9778:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9771:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27225,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"9782:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":27221,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28006,"src":"9764:6:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":27226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9746:44:81"},{"expression":{"id":27237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":27228,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26466,"src":"9804:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":27233,"indexExpression":{"baseExpression":{"id":27229,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9813:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27231,"indexExpression":{"id":27230,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9820:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9813:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9804:19:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27234,"indexExpression":{"id":27232,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"9824:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9804:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":27235,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9835:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":27236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9835:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9804:46:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27238,"nodeType":"ExpressionStatement","src":"9804:46:81"},{"expression":{"id":27251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":27239,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26472,"src":"9864:24:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":27244,"indexExpression":{"baseExpression":{"id":27240,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9889:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27242,"indexExpression":{"id":27241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9896:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9889:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9864:35:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27245,"indexExpression":{"id":27243,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"9900:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9864:44:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":27246,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"9911:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27250,"indexExpression":{"baseExpression":{"id":27247,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9949:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27249,"indexExpression":{"id":27248,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9956:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9949:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9911:61:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9864:108:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27252,"nodeType":"ExpressionStatement","src":"9864:108:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27253,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27220,"src":"9990:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":27254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10000:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9990:11:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27264,"nodeType":"IfStatement","src":"9986:59:81","trueBody":{"expression":{"arguments":[{"baseExpression":{"id":27257,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"10017:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27259,"indexExpression":{"id":27258,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"10024:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10017:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27260,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"10028:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27261,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27220,"src":"10037:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27256,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28635,"src":"10003:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":27262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10003:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27263,"nodeType":"ExpressionStatement","src":"10003:42:81"}},{"eventCall":{"arguments":[{"expression":{"id":27266,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10078:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":27267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10078:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":27268,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"10090:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27270,"indexExpression":{"id":27269,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"10097:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10090:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27271,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27220,"src":"10101:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27265,"name":"ClaimRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34193,"src":"10065:12:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":27272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10065:44:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27273,"nodeType":"EmitStatement","src":"10060:49:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27194,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9552:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":27195,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27144,"src":"9556:6:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":27196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9556:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9552:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27275,"initializationExpression":{"assignments":[27191],"declarations":[{"constant":false,"id":27191,"mutability":"mutable","name":"i","nameLocation":"9545:1:81","nodeType":"VariableDeclaration","scope":27275,"src":"9537:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27190,"name":"uint256","nodeType":"ElementaryTypeName","src":"9537:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27193,"initialValue":{"hexValue":"30","id":27192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9549:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9537:13:81"},"loopExpression":{"expression":{"id":27199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9571:3:81","subExpression":{"id":27198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27191,"src":"9571:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27200,"nodeType":"ExpressionStatement","src":"9571:3:81"},"nodeType":"ForStatement","src":"9532:588:81"},{"assignments":[27277],"declarations":[{"constant":false,"id":27277,"mutability":"mutable","name":"_derivedBalance","nameLocation":"10138:15:81","nodeType":"VariableDeclaration","scope":27312,"src":"10130:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27276,"name":"uint256","nodeType":"ElementaryTypeName","src":"10130:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27281,"initialValue":{"baseExpression":{"id":27278,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"10156:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27280,"indexExpression":{"id":27279,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"10172:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10156:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10130:50:81"},{"expression":{"id":27284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27282,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"10190:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":27283,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27277,"src":"10207:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10190:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27285,"nodeType":"ExpressionStatement","src":"10190:32:81"},{"expression":{"id":27290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27286,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27277,"src":"10232:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27288,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"10265:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27287,"name":"derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"10250:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":27289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10250:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10232:41:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27291,"nodeType":"ExpressionStatement","src":"10232:41:81"},{"expression":{"id":27296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":27292,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"10283:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27294,"indexExpression":{"id":27293,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"10299:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10283:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27295,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27277,"src":"10310:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10283:42:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27297,"nodeType":"ExpressionStatement","src":"10283:42:81"},{"expression":{"id":27300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27298,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"10335:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":27299,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27277,"src":"10352:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10335:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27301,"nodeType":"ExpressionStatement","src":"10335:32:81"},{"expression":{"arguments":[{"id":27303,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"10395:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":27304,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"10404:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27306,"indexExpression":{"id":27305,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27141,"src":"10420:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10404:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27302,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26998,"src":"10378:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":27307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10378:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27308,"nodeType":"ExpressionStatement","src":"10378:51:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":27309,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27113,"src":"10439:22:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":27310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10439:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27311,"nodeType":"ExpressionStatement","src":"10439:24:81"}]},"functionSelector":"31279d3d","id":27313,"implemented":true,"kind":"function","modifiers":[{"id":27148,"kind":"modifierInvocation","modifierName":{"id":27147,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":26546,"src":"9215:4:81"},"nodeType":"ModifierInvocation","src":"9215:4:81"}],"name":"getReward","nameLocation":"9121:9:81","nodeType":"FunctionDefinition","overrides":{"id":27146,"nodeType":"OverrideSpecifier","overrides":[],"src":"9198:8:81"},"parameters":{"id":27145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27141,"mutability":"mutable","name":"account","nameLocation":"9139:7:81","nodeType":"VariableDeclaration","scope":27313,"src":"9131:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27140,"name":"address","nodeType":"ElementaryTypeName","src":"9131:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27144,"mutability":"mutable","name":"tokens","nameLocation":"9165:6:81","nodeType":"VariableDeclaration","scope":27313,"src":"9148:23:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":27142,"name":"address","nodeType":"ElementaryTypeName","src":"9148:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27143,"nodeType":"ArrayTypeName","src":"9148:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9130:42:81"},"returnParameters":{"id":27149,"nodeType":"ParameterList","parameters":[],"src":"9224:0:81"},"scope":28747,"src":"9112:1358:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27358,"nodeType":"Block","src":"10545:358:81","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27320,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"10559:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10576:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10559:18:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27328,"nodeType":"IfStatement","src":"10555:83:81","trueBody":{"id":27327,"nodeType":"Block","src":"10579:59:81","statements":[{"expression":{"baseExpression":{"id":27323,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"10600:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27325,"indexExpression":{"id":27324,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27315,"src":"10621:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10600:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27319,"id":27326,"nodeType":"Return","src":"10593:34:81"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":27329,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"10666:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27331,"indexExpression":{"id":27330,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27315,"src":"10687:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10666:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27333,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27315,"src":"10736:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27332,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27139,"src":"10711:24:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":27334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10711:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"baseExpression":{"id":27337,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26456,"src":"10770:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27339,"indexExpression":{"id":27338,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27315,"src":"10785:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10770:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":27340,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"10793:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27342,"indexExpression":{"id":27341,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27315,"src":"10806:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10793:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27335,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"10761:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"10761:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10761:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10711:102:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10710:104:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":27346,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"10833:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27348,"indexExpression":{"id":27347,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27315,"src":"10844:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10833:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10710:140:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27350,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26444,"src":"10869:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10710:168:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27352,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10709:170:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27353,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"10882:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10709:186:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27355,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10708:188:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10666:230:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27319,"id":27357,"nodeType":"Return","src":"10647:249:81"}]},"functionSelector":"f1229777","id":27359,"implemented":true,"kind":"function","modifiers":[],"name":"rewardPerToken","nameLocation":"10485:14:81","nodeType":"FunctionDefinition","parameters":{"id":27316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27315,"mutability":"mutable","name":"token","nameLocation":"10508:5:81","nodeType":"VariableDeclaration","scope":27359,"src":"10500:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27314,"name":"address","nodeType":"ElementaryTypeName","src":"10500:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10499:15:81"},"returnParameters":{"id":27319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27359,"src":"10536:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27317,"name":"uint256","nodeType":"ElementaryTypeName","src":"10536:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10535:9:81"},"scope":28747,"src":"10476:427:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":27452,"nodeType":"Block","src":"10980:594:81","statements":[{"assignments":[27367],"declarations":[{"constant":false,"id":27367,"mutability":"mutable","name":"_tokenId","nameLocation":"10998:8:81","nodeType":"VariableDeclaration","scope":27452,"src":"10990:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27366,"name":"uint256","nodeType":"ElementaryTypeName","src":"10990:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27371,"initialValue":{"baseExpression":{"id":27368,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"11009:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27370,"indexExpression":{"id":27369,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27361,"src":"11018:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11009:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10990:36:81"},{"assignments":[27373],"declarations":[{"constant":false,"id":27373,"mutability":"mutable","name":"_balance","nameLocation":"11044:8:81","nodeType":"VariableDeclaration","scope":27452,"src":"11036:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27372,"name":"uint256","nodeType":"ElementaryTypeName","src":"11036:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27377,"initialValue":{"baseExpression":{"id":27374,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26482,"src":"11055:9:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27376,"indexExpression":{"id":27375,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27361,"src":"11065:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11055:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11036:37:81"},{"assignments":[27379],"declarations":[{"constant":false,"id":27379,"mutability":"mutable","name":"_derived","nameLocation":"11091:8:81","nodeType":"VariableDeclaration","scope":27452,"src":"11083:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27378,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27386,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27380,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27373,"src":"11103:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3230","id":27381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11114:2:81","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"11103:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11102:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":27384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11120:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11102:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11083:40:81"},{"assignments":[27388],"declarations":[{"constant":false,"id":27388,"mutability":"mutable","name":"_adjusted","nameLocation":"11141:9:81","nodeType":"VariableDeclaration","scope":27452,"src":"11133:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27387,"name":"uint256","nodeType":"ElementaryTypeName","src":"11133:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27390,"initialValue":{"hexValue":"30","id":27389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11153:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11133:21:81"},{"assignments":[27392],"declarations":[{"constant":false,"id":27392,"mutability":"mutable","name":"_supply","nameLocation":"11172:7:81","nodeType":"VariableDeclaration","scope":27452,"src":"11164:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27391,"name":"uint256","nodeType":"ElementaryTypeName","src":"11164:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27400,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27394,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"11189:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":27395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"11189:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":27396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11189:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27393,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"11182:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":27397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11182:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":27398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":5716,"src":"11182:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":27399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11182:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11164:57:81"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":27414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27401,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27361,"src":"11248:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":27408,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27367,"src":"11297:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27403,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"11270:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":27404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"11270:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":27405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11270:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27402,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"11259:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":27406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11259:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":27407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"11259:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":27409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11259:47:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11248:58:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27411,"name":"_supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27392,"src":"11322:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":27412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11332:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11322:11:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11248:85:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27442,"nodeType":"IfStatement","src":"11231:278:81","trueBody":{"id":27441,"nodeType":"Block","src":"11344:165:81","statements":[{"expression":{"id":27424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27415,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27388,"src":"11358:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27422,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27367,"src":"11413:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27417,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"11381:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":27418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"11381:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":27419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11381:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27416,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"11370:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":27420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11370:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":27421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfNFT","nodeType":"MemberAccess","referencedDeclaration":34749,"src":"11370:42:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":27423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11370:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11358:64:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27425,"nodeType":"ExpressionStatement","src":"11358:64:81"},{"expression":{"id":27439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27426,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27388,"src":"11436:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27427,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26478,"src":"11451:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27428,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27388,"src":"11465:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11451:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27430,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11450:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27431,"name":"_supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27392,"src":"11478:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11450:35:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27433,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11449:37:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3830","id":27434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11489:2:81","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},"src":"11449:42:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:44:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":27437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11495:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11448:50:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11436:62:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27440,"nodeType":"ExpressionStatement","src":"11436:62:81"}]}},{"expression":{"arguments":[{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27445,"name":"_derived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27379,"src":"11535:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":27446,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27388,"src":"11546:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11535:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27448,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11534:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27449,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27373,"src":"11558:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27443,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"11525:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"11525:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11525:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27365,"id":27451,"nodeType":"Return","src":"11518:49:81"}]},"functionSelector":"d35e2544","id":27453,"implemented":true,"kind":"function","modifiers":[],"name":"derivedBalance","nameLocation":"10918:14:81","nodeType":"FunctionDefinition","parameters":{"id":27362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27361,"mutability":"mutable","name":"account","nameLocation":"10941:7:81","nodeType":"VariableDeclaration","scope":27453,"src":"10933:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27360,"name":"address","nodeType":"ElementaryTypeName","src":"10933:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10932:17:81"},"returnParameters":{"id":27365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27453,"src":"10971:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27363,"name":"uint256","nodeType":"ElementaryTypeName","src":"10971:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10970:9:81"},"scope":28747,"src":"10909:665:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":27473,"nodeType":"Block","src":"11650:142:81","statements":[{"expression":{"id":27471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":27460,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"11674:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27462,"indexExpression":{"id":27461,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27455,"src":"11695:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11674:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":27463,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26456,"src":"11715:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27465,"indexExpression":{"id":27464,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27455,"src":"11730:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11715:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27466,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11660:86:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27468,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27455,"src":"11770:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27469,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27457,"src":"11777:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27467,"name":"_batchRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27602,"src":"11749:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) returns (uint256,uint256)"}},"id":27470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11749:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11660:125:81","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27472,"nodeType":"ExpressionStatement","src":"11660:125:81"}]},"functionSelector":"5a45d052","id":27474,"implemented":true,"kind":"function","modifiers":[],"name":"batchRewardPerToken","nameLocation":"11589:19:81","nodeType":"FunctionDefinition","parameters":{"id":27458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27455,"mutability":"mutable","name":"token","nameLocation":"11617:5:81","nodeType":"VariableDeclaration","scope":27474,"src":"11609:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27454,"name":"address","nodeType":"ElementaryTypeName","src":"11609:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27457,"mutability":"mutable","name":"maxRuns","nameLocation":"11632:7:81","nodeType":"VariableDeclaration","scope":27474,"src":"11624:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27456,"name":"uint256","nodeType":"ElementaryTypeName","src":"11624:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11608:32:81"},"returnParameters":{"id":27459,"nodeType":"ParameterList","parameters":[],"src":"11650:0:81"},"scope":28747,"src":"11580:212:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27601,"nodeType":"Block","src":"11916:1162:81","statements":[{"assignments":[27486],"declarations":[{"constant":false,"id":27486,"mutability":"mutable","name":"_startTimestamp","nameLocation":"11934:15:81","nodeType":"VariableDeclaration","scope":27601,"src":"11926:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27485,"name":"uint256","nodeType":"ElementaryTypeName","src":"11926:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27490,"initialValue":{"baseExpression":{"id":27487,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26456,"src":"11952:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27489,"indexExpression":{"id":27488,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27476,"src":"11967:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11952:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11926:47:81"},{"assignments":[27492],"declarations":[{"constant":false,"id":27492,"mutability":"mutable","name":"reward","nameLocation":"11991:6:81","nodeType":"VariableDeclaration","scope":27601,"src":"11983:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27491,"name":"uint256","nodeType":"ElementaryTypeName","src":"11983:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27496,"initialValue":{"baseExpression":{"id":27493,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"12000:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27495,"indexExpression":{"id":27494,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27476,"src":"12021:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12000:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11983:44:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27497,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26511,"src":"12042:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12066:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12042:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27505,"nodeType":"IfStatement","src":"12038:88:81","trueBody":{"id":27504,"nodeType":"Block","src":"12069:57:81","statements":[{"expression":{"components":[{"id":27500,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27492,"src":"12091:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27501,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27486,"src":"12099:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27502,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12090:25:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":27484,"id":27503,"nodeType":"Return","src":"12083:32:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":27506,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"12140:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27508,"indexExpression":{"id":27507,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27476,"src":"12151:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12140:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12161:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12140:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27517,"nodeType":"IfStatement","src":"12136:85:81","trueBody":{"id":27516,"nodeType":"Block","src":"12164:57:81","statements":[{"expression":{"components":[{"id":27511,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27492,"src":"12186:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27512,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12194:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":27513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12194:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27514,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12185:25:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":27484,"id":27515,"nodeType":"Return","src":"12178:32:81"}]}},{"assignments":[27519],"declarations":[{"constant":false,"id":27519,"mutability":"mutable","name":"_startIndex","nameLocation":"12239:11:81","nodeType":"VariableDeclaration","scope":27601,"src":"12231:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27518,"name":"uint256","nodeType":"ElementaryTypeName","src":"12231:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27523,"initialValue":{"arguments":[{"id":27521,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27486,"src":"12273:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27520,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26783,"src":"12253:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":27522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12253:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12231:58:81"},{"assignments":[27525],"declarations":[{"constant":false,"id":27525,"mutability":"mutable","name":"_endIndex","nameLocation":"12307:9:81","nodeType":"VariableDeclaration","scope":27601,"src":"12299:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27524,"name":"uint256","nodeType":"ElementaryTypeName","src":"12299:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27533,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27528,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26511,"src":"12328:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12351:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12328:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27531,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27478,"src":"12354:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27526,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"12319:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"12319:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12319:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12299:63:81"},{"body":{"id":27595,"nodeType":"Block","src":"12423:606:81","statements":[{"assignments":[27546],"declarations":[{"constant":false,"id":27546,"mutability":"mutable","name":"sp0","nameLocation":"12461:3:81","nodeType":"VariableDeclaration","scope":27595,"src":"12437:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"},"typeName":{"id":27545,"nodeType":"UserDefinedTypeName","pathNode":{"id":27544,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34153,"src":"12437:16:81"},"referencedDeclaration":34153,"src":"12437:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"}},"visibility":"internal"}],"id":27550,"initialValue":{"baseExpression":{"id":27547,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"12467:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27549,"indexExpression":{"id":27548,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27535,"src":"12485:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12467:20:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12437:50:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27551,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27546,"src":"12505:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34152,"src":"12505:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":27553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12518:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12505:14:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27594,"nodeType":"IfStatement","src":"12501:518:81","trueBody":{"id":27593,"nodeType":"Block","src":"12521:498:81","statements":[{"assignments":[27557],"declarations":[{"constant":false,"id":27557,"mutability":"mutable","name":"sp1","nameLocation":"12563:3:81","nodeType":"VariableDeclaration","scope":27593,"src":"12539:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"},"typeName":{"id":27556,"nodeType":"UserDefinedTypeName","pathNode":{"id":27555,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34153,"src":"12539:16:81"},"referencedDeclaration":34153,"src":"12539:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"}},"visibility":"internal"}],"id":27563,"initialValue":{"baseExpression":{"id":27558,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"12569:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27562,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27559,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27535,"src":"12587:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":27560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12591:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12587:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12569:24:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12539:54:81"},{"assignments":[27565,27567],"declarations":[{"constant":false,"id":27565,"mutability":"mutable","name":"_reward","nameLocation":"12620:7:81","nodeType":"VariableDeclaration","scope":27593,"src":"12612:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27564,"name":"uint256","nodeType":"ElementaryTypeName","src":"12612:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27567,"mutability":"mutable","name":"_endTime","nameLocation":"12637:8:81","nodeType":"VariableDeclaration","scope":27593,"src":"12629:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27566,"name":"uint256","nodeType":"ElementaryTypeName","src":"12629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27578,"initialValue":{"arguments":[{"id":27569,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27476,"src":"12690:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27570,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27557,"src":"12717:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"12717:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27572,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27546,"src":"12752:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"12752:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27574,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27546,"src":"12787:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34152,"src":"12787:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27576,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27486,"src":"12819:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27568,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27661,"src":"12649:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":27577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12649:203:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12611:241:81"},{"expression":{"id":27581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27579,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27492,"src":"12870:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":27580,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27565,"src":"12880:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12870:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27582,"nodeType":"ExpressionStatement","src":"12870:17:81"},{"expression":{"arguments":[{"id":27584,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27476,"src":"12936:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27585,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27492,"src":"12943:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27586,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27567,"src":"12951:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27583,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27061,"src":"12905:30:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":27587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12905:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27588,"nodeType":"ExpressionStatement","src":"12905:55:81"},{"expression":{"id":27591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27589,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27486,"src":"12978:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27590,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27567,"src":"12996:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12978:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27592,"nodeType":"ExpressionStatement","src":"12978:26:81"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27538,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27535,"src":"12403:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":27539,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27525,"src":"12407:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12403:13:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27596,"initializationExpression":{"assignments":[27535],"declarations":[{"constant":false,"id":27535,"mutability":"mutable","name":"i","nameLocation":"12386:1:81","nodeType":"VariableDeclaration","scope":27596,"src":"12378:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27534,"name":"uint256","nodeType":"ElementaryTypeName","src":"12378:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27537,"initialValue":{"id":27536,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27519,"src":"12390:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12378:23:81"},"loopExpression":{"expression":{"id":27542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12418:3:81","subExpression":{"id":27541,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27535,"src":"12418:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27543,"nodeType":"ExpressionStatement","src":"12418:3:81"},"nodeType":"ForStatement","src":"12373:656:81"},{"expression":{"components":[{"id":27597,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27492,"src":"13047:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27598,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27486,"src":"13055:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27599,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13046:25:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":27484,"id":27600,"nodeType":"Return","src":"13039:32:81"}]},"id":27602,"implemented":true,"kind":"function","modifiers":[],"name":"_batchRewardPerToken","nameLocation":"11807:20:81","nodeType":"FunctionDefinition","parameters":{"id":27479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27476,"mutability":"mutable","name":"token","nameLocation":"11836:5:81","nodeType":"VariableDeclaration","scope":27602,"src":"11828:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27475,"name":"address","nodeType":"ElementaryTypeName","src":"11828:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27478,"mutability":"mutable","name":"maxRuns","nameLocation":"11851:7:81","nodeType":"VariableDeclaration","scope":27602,"src":"11843:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27477,"name":"uint256","nodeType":"ElementaryTypeName","src":"11843:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11827:32:81"},"returnParameters":{"id":27484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27602,"src":"11894:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27480,"name":"uint256","nodeType":"ElementaryTypeName","src":"11894:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27602,"src":"11903:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27482,"name":"uint256","nodeType":"ElementaryTypeName","src":"11903:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11893:18:81"},"scope":28747,"src":"11798:1280:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":27660,"nodeType":"Block","src":"13295:394:81","statements":[{"assignments":[27620],"declarations":[{"constant":false,"id":27620,"mutability":"mutable","name":"endTime","nameLocation":"13313:7:81","nodeType":"VariableDeclaration","scope":27660,"src":"13305:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27619,"name":"uint256","nodeType":"ElementaryTypeName","src":"13305:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27626,"initialValue":{"arguments":[{"id":27623,"name":"timestamp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27606,"src":"13332:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27624,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27612,"src":"13344:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27621,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13323:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"13323:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13323:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13305:54:81"},{"expression":{"components":[{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27629,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27620,"src":"13402:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":27630,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"13411:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27632,"indexExpression":{"id":27631,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27604,"src":"13424:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13411:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27627,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13393:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"13393:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13393:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"id":27638,"name":"timestamp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27608,"src":"13489:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27639,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27612,"src":"13501:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27636,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13480:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"13480:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13480:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":27641,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"13538:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27643,"indexExpression":{"id":27642,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27604,"src":"13551:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13538:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27634,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13450:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"13450:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13450:125:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13393:182:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27646,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13392:184:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":27647,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"13595:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27649,"indexExpression":{"id":27648,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27604,"src":"13606:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13595:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13392:220:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27651,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26444,"src":"13631:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13392:248:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27653,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13391:250:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27654,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27610,"src":"13644:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13391:259:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27656,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13390:261:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27657,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27620,"src":"13665:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13376:306:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":27618,"id":27659,"nodeType":"Return","src":"13369:313:81"}]},"id":27661,"implemented":true,"kind":"function","modifiers":[],"name":"_calcRewardPerToken","nameLocation":"13093:19:81","nodeType":"FunctionDefinition","parameters":{"id":27613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27604,"mutability":"mutable","name":"token","nameLocation":"13130:5:81","nodeType":"VariableDeclaration","scope":27661,"src":"13122:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27603,"name":"address","nodeType":"ElementaryTypeName","src":"13122:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27606,"mutability":"mutable","name":"timestamp1","nameLocation":"13153:10:81","nodeType":"VariableDeclaration","scope":27661,"src":"13145:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27605,"name":"uint256","nodeType":"ElementaryTypeName","src":"13145:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27608,"mutability":"mutable","name":"timestamp0","nameLocation":"13181:10:81","nodeType":"VariableDeclaration","scope":27661,"src":"13173:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27607,"name":"uint256","nodeType":"ElementaryTypeName","src":"13173:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27610,"mutability":"mutable","name":"supply","nameLocation":"13209:6:81","nodeType":"VariableDeclaration","scope":27661,"src":"13201:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27609,"name":"uint256","nodeType":"ElementaryTypeName","src":"13201:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27612,"mutability":"mutable","name":"startTimestamp","nameLocation":"13233:14:81","nodeType":"VariableDeclaration","scope":27661,"src":"13225:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27611,"name":"uint256","nodeType":"ElementaryTypeName","src":"13225:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13112:141:81"},"returnParameters":{"id":27618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27661,"src":"13277:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27614,"name":"uint256","nodeType":"ElementaryTypeName","src":"13277:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27661,"src":"13286:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27616,"name":"uint256","nodeType":"ElementaryTypeName","src":"13286:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13276:18:81"},"scope":28747,"src":"13084:605:81","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":27838,"nodeType":"Block","src":"13797:1783:81","statements":[{"assignments":[27671],"declarations":[{"constant":false,"id":27671,"mutability":"mutable","name":"_startTimestamp","nameLocation":"13815:15:81","nodeType":"VariableDeclaration","scope":27838,"src":"13807:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27670,"name":"uint256","nodeType":"ElementaryTypeName","src":"13807:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27675,"initialValue":{"baseExpression":{"id":27672,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26456,"src":"13833:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27674,"indexExpression":{"id":27673,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"13848:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13833:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13807:47:81"},{"assignments":[27677],"declarations":[{"constant":false,"id":27677,"mutability":"mutable","name":"reward","nameLocation":"13872:6:81","nodeType":"VariableDeclaration","scope":27838,"src":"13864:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27676,"name":"uint256","nodeType":"ElementaryTypeName","src":"13864:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27681,"initialValue":{"baseExpression":{"id":27678,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"13881:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27680,"indexExpression":{"id":27679,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"13902:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13881:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13864:44:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27682,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26511,"src":"13923:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13947:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13923:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27690,"nodeType":"IfStatement","src":"13919:88:81","trueBody":{"id":27689,"nodeType":"Block","src":"13950:57:81","statements":[{"expression":{"components":[{"id":27685,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"13972:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27686,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"13980:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13971:25:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":27669,"id":27688,"nodeType":"Return","src":"13964:32:81"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":27691,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"14021:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27693,"indexExpression":{"id":27692,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"14032:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14021:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14042:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14021:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27702,"nodeType":"IfStatement","src":"14017:85:81","trueBody":{"id":27701,"nodeType":"Block","src":"14045:57:81","statements":[{"expression":{"components":[{"id":27696,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"14067:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27697,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14075:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":27698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14075:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27699,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14066:25:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":27669,"id":27700,"nodeType":"Return","src":"14059:32:81"}]}},{"assignments":[27704],"declarations":[{"constant":false,"id":27704,"mutability":"mutable","name":"_startIndex","nameLocation":"14120:11:81","nodeType":"VariableDeclaration","scope":27838,"src":"14112:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27703,"name":"uint256","nodeType":"ElementaryTypeName","src":"14112:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27708,"initialValue":{"arguments":[{"id":27706,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"14154:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27705,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26783,"src":"14134:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":27707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14134:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14112:58:81"},{"assignments":[27710],"declarations":[{"constant":false,"id":27710,"mutability":"mutable","name":"_endIndex","nameLocation":"14188:9:81","nodeType":"VariableDeclaration","scope":27838,"src":"14180:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27709,"name":"uint256","nodeType":"ElementaryTypeName","src":"14180:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27714,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27711,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26511,"src":"14200:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14223:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14200:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14180:44:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27715,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27710,"src":"14239:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27716,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27704,"src":"14251:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14239:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":27718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14265:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14239:27:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27786,"nodeType":"IfStatement","src":"14235:777:81","trueBody":{"id":27785,"nodeType":"Block","src":"14268:744:81","statements":[{"body":{"id":27783,"nodeType":"Block","src":"14336:666:81","statements":[{"assignments":[27734],"declarations":[{"constant":false,"id":27734,"mutability":"mutable","name":"sp0","nameLocation":"14378:3:81","nodeType":"VariableDeclaration","scope":27783,"src":"14354:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"},"typeName":{"id":27733,"nodeType":"UserDefinedTypeName","pathNode":{"id":27732,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34153,"src":"14354:16:81"},"referencedDeclaration":34153,"src":"14354:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"}},"visibility":"internal"}],"id":27738,"initialValue":{"baseExpression":{"id":27735,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"14384:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27737,"indexExpression":{"id":27736,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27721,"src":"14402:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14384:20:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14354:50:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27739,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27734,"src":"14426:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34152,"src":"14426:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":27741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14439:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14426:14:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27782,"nodeType":"IfStatement","src":"14422:566:81","trueBody":{"id":27781,"nodeType":"Block","src":"14442:546:81","statements":[{"assignments":[27745],"declarations":[{"constant":false,"id":27745,"mutability":"mutable","name":"sp1","nameLocation":"14488:3:81","nodeType":"VariableDeclaration","scope":27781,"src":"14464:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"},"typeName":{"id":27744,"nodeType":"UserDefinedTypeName","pathNode":{"id":27743,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34153,"src":"14464:16:81"},"referencedDeclaration":34153,"src":"14464:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"}},"visibility":"internal"}],"id":27751,"initialValue":{"baseExpression":{"id":27746,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"14494:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27750,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27747,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27721,"src":"14512:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":27748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14516:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14512:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14494:24:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14464:54:81"},{"assignments":[27753,27755],"declarations":[{"constant":false,"id":27753,"mutability":"mutable","name":"_reward","nameLocation":"14549:7:81","nodeType":"VariableDeclaration","scope":27781,"src":"14541:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27752,"name":"uint256","nodeType":"ElementaryTypeName","src":"14541:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27755,"mutability":"mutable","name":"_endTime","nameLocation":"14566:8:81","nodeType":"VariableDeclaration","scope":27781,"src":"14558:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27754,"name":"uint256","nodeType":"ElementaryTypeName","src":"14558:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27766,"initialValue":{"arguments":[{"id":27757,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"14623:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27758,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27745,"src":"14654:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"14654:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27760,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27734,"src":"14693:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"14693:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27762,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27734,"src":"14732:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34152,"src":"14732:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27764,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"14768:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27756,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27661,"src":"14578:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":27765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14578:227:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14540:265:81"},{"expression":{"id":27769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27767,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"14827:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":27768,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27753,"src":"14837:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14827:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27770,"nodeType":"ExpressionStatement","src":"14827:17:81"},{"expression":{"arguments":[{"id":27772,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"14897:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27773,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"14904:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27774,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27755,"src":"14912:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27771,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27061,"src":"14866:30:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":27775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14866:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27776,"nodeType":"ExpressionStatement","src":"14866:55:81"},{"expression":{"id":27779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27777,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"14943:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27778,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27755,"src":"14961:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14943:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27780,"nodeType":"ExpressionStatement","src":"14943:26:81"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27724,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27721,"src":"14312:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27725,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27710,"src":"14316:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14328:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14316:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14312:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27784,"initializationExpression":{"assignments":[27721],"declarations":[{"constant":false,"id":27721,"mutability":"mutable","name":"i","nameLocation":"14295:1:81","nodeType":"VariableDeclaration","scope":27784,"src":"14287:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27720,"name":"uint256","nodeType":"ElementaryTypeName","src":"14287:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27723,"initialValue":{"id":27722,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27704,"src":"14299:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14287:23:81"},"loopExpression":{"expression":{"id":27730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14331:3:81","subExpression":{"id":27729,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27721,"src":"14331:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27731,"nodeType":"ExpressionStatement","src":"14331:3:81"},"nodeType":"ForStatement","src":"14282:720:81"}]}},{"assignments":[27789],"declarations":[{"constant":false,"id":27789,"mutability":"mutable","name":"sp","nameLocation":"15046:2:81","nodeType":"VariableDeclaration","scope":27838,"src":"15022:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"},"typeName":{"id":27788,"nodeType":"UserDefinedTypeName","pathNode":{"id":27787,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34153,"src":"15022:16:81"},"referencedDeclaration":34153,"src":"15022:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint"}},"visibility":"internal"}],"id":27793,"initialValue":{"baseExpression":{"id":27790,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"15051:17:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34153_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.SupplyCheckpoint storage ref)"}},"id":27792,"indexExpression":{"id":27791,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27710,"src":"15069:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15051:28:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_storage","typeString":"struct IGaugeV1.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15022:57:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27794,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27789,"src":"15093:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34152,"src":"15093:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":27796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15105:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15093:13:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27833,"nodeType":"IfStatement","src":"15089:442:81","trueBody":{"id":27832,"nodeType":"Block","src":"15108:423:81","statements":[{"assignments":[27799,null],"declarations":[{"constant":false,"id":27799,"mutability":"mutable","name":"_reward","nameLocation":"15131:7:81","nodeType":"VariableDeclaration","scope":27832,"src":"15123:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27798,"name":"uint256","nodeType":"ElementaryTypeName","src":"15123:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":27815,"initialValue":{"arguments":[{"id":27801,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"15181:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":27803,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"15229:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27802,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27139,"src":"15204:24:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":27804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15204:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":27807,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27789,"src":"15262:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34150,"src":"15262:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27809,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"15276:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27805,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"15253:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"15253:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15253:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27811,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27789,"src":"15310:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34153_memory_ptr","typeString":"struct IGaugeV1.SupplyCheckpoint memory"}},"id":27812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34152,"src":"15310:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27813,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"15337:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27800,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27661,"src":"15144:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":27814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15144:222:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"15122:244:81"},{"expression":{"id":27818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27816,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"15380:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":27817,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27799,"src":"15390:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15380:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27819,"nodeType":"ExpressionStatement","src":"15380:17:81"},{"expression":{"arguments":[{"id":27821,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27663,"src":"15442:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27822,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"15449:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27823,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15457:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":27824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15457:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27820,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27061,"src":"15411:30:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":27825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15411:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27826,"nodeType":"ExpressionStatement","src":"15411:62:81"},{"expression":{"id":27830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27827,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"15487:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":27828,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15505:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":27829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15505:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15487:33:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27831,"nodeType":"ExpressionStatement","src":"15487:33:81"}]}},{"expression":{"components":[{"id":27834,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"15549:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27835,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27671,"src":"15557:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27836,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15548:25:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":27669,"id":27837,"nodeType":"Return","src":"15541:32:81"}]},"id":27839,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardPerToken","nameLocation":"13704:21:81","nodeType":"FunctionDefinition","parameters":{"id":27664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27663,"mutability":"mutable","name":"token","nameLocation":"13734:5:81","nodeType":"VariableDeclaration","scope":27839,"src":"13726:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27662,"name":"address","nodeType":"ElementaryTypeName","src":"13726:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13725:15:81"},"returnParameters":{"id":27669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27839,"src":"13775:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27665,"name":"uint256","nodeType":"ElementaryTypeName","src":"13775:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27839,"src":"13784:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27667,"name":"uint256","nodeType":"ElementaryTypeName","src":"13784:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13774:18:81"},"scope":28747,"src":"13695:1885:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":28005,"nodeType":"Block","src":"15797:1644:81","statements":[{"assignments":[27849],"declarations":[{"constant":false,"id":27849,"mutability":"mutable","name":"_startTimestamp","nameLocation":"15815:15:81","nodeType":"VariableDeclaration","scope":28005,"src":"15807:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27848,"name":"uint256","nodeType":"ElementaryTypeName","src":"15807:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27864,"initialValue":{"arguments":[{"baseExpression":{"baseExpression":{"id":27852,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26466,"src":"15855:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":27854,"indexExpression":{"id":27853,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27841,"src":"15864:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15855:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27856,"indexExpression":{"id":27855,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"15871:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15855:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":27857,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"15893:25:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref))"}},"id":27859,"indexExpression":{"id":27858,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27841,"src":"15919:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15893:32:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34148_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.RewardPerTokenCheckpoint storage ref)"}},"id":27861,"indexExpression":{"hexValue":"30","id":27860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15926:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15893:35:81","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34148_storage","typeString":"struct IGaugeV1.RewardPerTokenCheckpoint storage ref"}},"id":27862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34145,"src":"15893:45:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27850,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"15833:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"15833:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15833:115:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15807:141:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":27865,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26502,"src":"15962:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27867,"indexExpression":{"id":27866,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"15977:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15962:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15989:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15962:28:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27873,"nodeType":"IfStatement","src":"15958:67:81","trueBody":{"id":27872,"nodeType":"Block","src":"15992:33:81","statements":[{"expression":{"hexValue":"30","id":27870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16013:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":27847,"id":27871,"nodeType":"Return","src":"16006:8:81"}]}},{"assignments":[27875],"declarations":[{"constant":false,"id":27875,"mutability":"mutable","name":"_startIndex","nameLocation":"16043:11:81","nodeType":"VariableDeclaration","scope":28005,"src":"16035:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27874,"name":"uint256","nodeType":"ElementaryTypeName","src":"16035:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27880,"initialValue":{"arguments":[{"id":27877,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"16078:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27878,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27849,"src":"16087:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27876,"name":"getPriorBalanceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26679,"src":"16057:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":27879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16057:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16035:68:81"},{"assignments":[27882],"declarations":[{"constant":false,"id":27882,"mutability":"mutable","name":"_endIndex","nameLocation":"16121:9:81","nodeType":"VariableDeclaration","scope":28005,"src":"16113:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27881,"name":"uint256","nodeType":"ElementaryTypeName","src":"16113:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27888,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":27883,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26502,"src":"16133:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27885,"indexExpression":{"id":27884,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"16148:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16133:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16159:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16133:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16113:47:81"},{"assignments":[27890],"declarations":[{"constant":false,"id":27890,"mutability":"mutable","name":"reward","nameLocation":"16179:6:81","nodeType":"VariableDeclaration","scope":28005,"src":"16171:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27889,"name":"uint256","nodeType":"ElementaryTypeName","src":"16171:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27892,"initialValue":{"hexValue":"30","id":27891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16188:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16171:18:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27893,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27882,"src":"16204:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27894,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27875,"src":"16216:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16204:23:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":27896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16230:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16204:27:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27962,"nodeType":"IfStatement","src":"16200:745:81","trueBody":{"id":27961,"nodeType":"Block","src":"16233:712:81","statements":[{"body":{"id":27959,"nodeType":"Block","src":"16301:634:81","statements":[{"assignments":[27912],"declarations":[{"constant":false,"id":27912,"mutability":"mutable","name":"cp0","nameLocation":"16337:3:81","nodeType":"VariableDeclaration","scope":27959,"src":"16319:21:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint"},"typeName":{"id":27911,"nodeType":"UserDefinedTypeName","pathNode":{"id":27910,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34143,"src":"16319:10:81"},"referencedDeclaration":34143,"src":"16319:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage_ptr","typeString":"struct IGaugeV1.Checkpoint"}},"visibility":"internal"}],"id":27918,"initialValue":{"baseExpression":{"baseExpression":{"id":27913,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"16343:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":27915,"indexExpression":{"id":27914,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"16355:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16343:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":27917,"indexExpression":{"id":27916,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27899,"src":"16364:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16343:23:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16319:47:81"},{"assignments":[27921],"declarations":[{"constant":false,"id":27921,"mutability":"mutable","name":"cp1","nameLocation":"16402:3:81","nodeType":"VariableDeclaration","scope":27959,"src":"16384:21:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint"},"typeName":{"id":27920,"nodeType":"UserDefinedTypeName","pathNode":{"id":27919,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34143,"src":"16384:10:81"},"referencedDeclaration":34143,"src":"16384:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage_ptr","typeString":"struct IGaugeV1.Checkpoint"}},"visibility":"internal"}],"id":27929,"initialValue":{"baseExpression":{"baseExpression":{"id":27922,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"16408:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":27924,"indexExpression":{"id":27923,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"16420:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16408:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":27928,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27925,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27899,"src":"16429:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":27926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16433:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16429:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16408:27:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16384:51:81"},{"assignments":[27931,null],"declarations":[{"constant":false,"id":27931,"mutability":"mutable","name":"_rewardPerTokenStored0","nameLocation":"16462:22:81","nodeType":"VariableDeclaration","scope":27959,"src":"16454:30:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27930,"name":"uint256","nodeType":"ElementaryTypeName","src":"16454:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":27937,"initialValue":{"arguments":[{"id":27933,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27841,"src":"16534:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27934,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27912,"src":"16561:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"id":27935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"16561:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27932,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26932,"src":"16490:22:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":27936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16490:102:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16453:139:81"},{"assignments":[27939,null],"declarations":[{"constant":false,"id":27939,"mutability":"mutable","name":"_rewardPerTokenStored1","nameLocation":"16619:22:81","nodeType":"VariableDeclaration","scope":27959,"src":"16611:30:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27938,"name":"uint256","nodeType":"ElementaryTypeName","src":"16611:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":27945,"initialValue":{"arguments":[{"id":27941,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27841,"src":"16691:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27942,"name":"cp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27921,"src":"16718:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"id":27943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"16718:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27940,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26932,"src":"16647:22:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":27944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16647:102:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16610:139:81"},{"expression":{"id":27957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27946,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27890,"src":"16767:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27947,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27912,"src":"16798:3:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"id":27948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34142,"src":"16798:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27949,"name":"_rewardPerTokenStored1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27939,"src":"16839:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27950,"name":"_rewardPerTokenStored0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27931,"src":"16864:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16839:47:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16838:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16798:89:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16797:91:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27955,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26444,"src":"16911:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16797:123:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16767:153:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27958,"nodeType":"ExpressionStatement","src":"16767:153:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27902,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27899,"src":"16277:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27903,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27882,"src":"16281:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":27904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16293:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16281:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16277:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27960,"initializationExpression":{"assignments":[27899],"declarations":[{"constant":false,"id":27899,"mutability":"mutable","name":"i","nameLocation":"16260:1:81","nodeType":"VariableDeclaration","scope":27960,"src":"16252:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27898,"name":"uint256","nodeType":"ElementaryTypeName","src":"16252:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27901,"initialValue":{"id":27900,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27875,"src":"16264:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16252:23:81"},"loopExpression":{"expression":{"id":27908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16296:3:81","subExpression":{"id":27907,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27899,"src":"16296:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27909,"nodeType":"ExpressionStatement","src":"16296:3:81"},"nodeType":"ForStatement","src":"16247:688:81"}]}},{"assignments":[27965],"declarations":[{"constant":false,"id":27965,"mutability":"mutable","name":"cp","nameLocation":"16973:2:81","nodeType":"VariableDeclaration","scope":28005,"src":"16955:20:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint"},"typeName":{"id":27964,"nodeType":"UserDefinedTypeName","pathNode":{"id":27963,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34143,"src":"16955:10:81"},"referencedDeclaration":34143,"src":"16955:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage_ptr","typeString":"struct IGaugeV1.Checkpoint"}},"visibility":"internal"}],"id":27971,"initialValue":{"baseExpression":{"baseExpression":{"id":27966,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26497,"src":"16978:11:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV1.Checkpoint storage ref))"}},"id":27968,"indexExpression":{"id":27967,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"16990:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16978:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34143_storage_$","typeString":"mapping(uint256 => struct IGaugeV1.Checkpoint storage ref)"}},"id":27970,"indexExpression":{"id":27969,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27882,"src":"16999:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16978:31:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_storage","typeString":"struct IGaugeV1.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16955:54:81"},{"assignments":[27973,null],"declarations":[{"constant":false,"id":27973,"mutability":"mutable","name":"_rewardPerTokenStored","nameLocation":"17028:21:81","nodeType":"VariableDeclaration","scope":28005,"src":"17020:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27972,"name":"uint256","nodeType":"ElementaryTypeName","src":"17020:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":27979,"initialValue":{"arguments":[{"id":27975,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27841,"src":"17091:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27976,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27965,"src":"17110:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"id":27977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34140,"src":"17110:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27974,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26932,"src":"17055:22:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":27978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17055:77:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"17019:113:81"},{"expression":{"id":28001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27980,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27890,"src":"17142:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27981,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27965,"src":"17165:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34143_memory_ptr","typeString":"struct IGaugeV1.Checkpoint memory"}},"id":27982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34142,"src":"17165:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27984,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27841,"src":"17212:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27983,"name":"rewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27359,"src":"17197:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":27985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17197:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":27988,"name":"_rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27973,"src":"17275:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"baseExpression":{"id":27989,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26472,"src":"17322:24:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":27991,"indexExpression":{"id":27990,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27841,"src":"17347:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17322:31:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":27993,"indexExpression":{"id":27992,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27843,"src":"17354:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17322:40:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27986,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"17241:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":27987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"17241:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17241:143:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17197:187:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27996,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17196:189:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17165:220:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27998,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17164:222:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27999,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26444,"src":"17401:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17164:246:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17142:268:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28002,"nodeType":"ExpressionStatement","src":"17142:268:81"},{"expression":{"id":28003,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27890,"src":"17428:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27847,"id":28004,"nodeType":"Return","src":"17421:13:81"}]},"functionSelector":"211dc32d","id":28006,"implemented":true,"kind":"function","modifiers":[],"name":"earned","nameLocation":"15700:6:81","nodeType":"FunctionDefinition","parameters":{"id":27844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27841,"mutability":"mutable","name":"token","nameLocation":"15715:5:81","nodeType":"VariableDeclaration","scope":28006,"src":"15707:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27840,"name":"address","nodeType":"ElementaryTypeName","src":"15707:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27843,"mutability":"mutable","name":"account","nameLocation":"15730:7:81","nodeType":"VariableDeclaration","scope":28006,"src":"15722:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27842,"name":"address","nodeType":"ElementaryTypeName","src":"15722:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15706:32:81"},"returnParameters":{"id":27847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28006,"src":"15784:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27845,"name":"uint256","nodeType":"ElementaryTypeName","src":"15784:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15783:9:81"},"scope":28747,"src":"15691:1750:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":28022,"nodeType":"Block","src":"17493:70:81","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":28016,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17535:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17535:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":28013,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26430,"src":"17518:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28012,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"17511:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":28014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17511:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":28015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"17511:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":28018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17511:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28019,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28008,"src":"17548:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28011,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28188,"src":"17503:7:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":28020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17503:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28021,"nodeType":"ExpressionStatement","src":"17503:53:81"}]},"functionSelector":"c6f678bd","id":28023,"implemented":true,"kind":"function","modifiers":[],"name":"depositAll","nameLocation":"17456:10:81","nodeType":"FunctionDefinition","parameters":{"id":28009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28008,"mutability":"mutable","name":"tokenId","nameLocation":"17475:7:81","nodeType":"VariableDeclaration","scope":28023,"src":"17467:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28007,"name":"uint256","nodeType":"ElementaryTypeName","src":"17467:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17466:17:81"},"returnParameters":{"id":28010,"nodeType":"ParameterList","parameters":[],"src":"17493:0:81"},"scope":28747,"src":"17447:116:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28187,"nodeType":"Block","src":"17631:1325:81","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":28032,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"17641:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":28034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"17641:24:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":28035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17641:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28036,"nodeType":"ExpressionStatement","src":"17641:26:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28038,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28025,"src":"17685:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17694:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17685:10:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203d2030","id":28041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17697:12:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""},"value":"amount = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""}],"id":28037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17677:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17677:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28043,"nodeType":"ExpressionStatement","src":"17677:33:81"},{"expression":{"arguments":[{"id":28045,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26430,"src":"17739:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28046,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17746:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17746:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":28050,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17766:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}],"id":28049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17758:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28048,"name":"address","nodeType":"ElementaryTypeName","src":"17758:7:81","typeDescriptions":{}}},"id":28051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17758:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28052,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28025,"src":"17773:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28044,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28692,"src":"17721:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":28053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17721:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28054,"nodeType":"ExpressionStatement","src":"17721:59:81"},{"expression":{"id":28057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28055,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26478,"src":"17790:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":28056,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28025,"src":"17805:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17790:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28058,"nodeType":"ExpressionStatement","src":"17790:21:81"},{"expression":{"id":28064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28059,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26482,"src":"17821:9:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28062,"indexExpression":{"expression":{"id":28060,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17831:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17831:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17821:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":28063,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28025,"src":"17846:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17821:31:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28065,"nodeType":"ExpressionStatement","src":"17821:31:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28066,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"17867:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17877:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17867:11:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28128,"nodeType":"Block","src":"18365:55:81","statements":[{"expression":{"id":28126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28121,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"18379:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":28122,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"18389:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28125,"indexExpression":{"expression":{"id":28123,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18398:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18398:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18389:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18379:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28127,"nodeType":"ExpressionStatement","src":"18379:30:81"}]},"id":28129,"nodeType":"IfStatement","src":"17863:557:81","trueBody":{"id":28120,"nodeType":"Block","src":"17880:479:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":28076,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"17957:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":28071,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"17930:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":28072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"17930:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":28073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17930:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28070,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"17919:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTLocker_$34923_$","typeString":"type(contract INFTLocker)"}},"id":28074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17919:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":28075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":7025,"src":"17919:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":28077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17919:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":28078,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17969:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17969:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17919:60:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626164206f776e6572","id":28081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17997:11:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_efa2986b14de2cfdcdebf8be2f936cfaa7acf92839bbd239a5589c89fd644348","typeString":"literal_string \"bad owner\""},"value":"bad owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_efa2986b14de2cfdcdebf8be2f936cfaa7acf92839bbd239a5589c89fd644348","typeString":"literal_string \"bad owner\""}],"id":28069,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17894:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17894:128:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28083,"nodeType":"ExpressionStatement","src":"17894:128:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":28084,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"18040:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28087,"indexExpression":{"expression":{"id":28085,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18049:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18049:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18040:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":28088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18064:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18040:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28109,"nodeType":"IfStatement","src":"18036:244:81","trueBody":{"id":28108,"nodeType":"Block","src":"18067:213:81","statements":[{"expression":{"id":28095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28090,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"18085:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28093,"indexExpression":{"expression":{"id":28091,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18094:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18094:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18085:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28094,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"18108:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18085:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28096,"nodeType":"ExpressionStatement","src":"18085:30:81"},{"expression":{"arguments":[{"id":28103,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"18208:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":28104,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18237:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18237:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":28098,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"18145:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":28099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"18145:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":28100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18145:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28097,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34456,"src":"18133:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoter_$34456_$","typeString":"type(contract IGaugeVoter)"}},"id":28101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18133:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoter_$34456","typeString":"contract IGaugeVoter"}},"id":28102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"attachTokenToGauge","nodeType":"MemberAccess","referencedDeclaration":34330,"src":"18133:53:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":28106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18133:132:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28107,"nodeType":"ExpressionStatement","src":"18133:132:81"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":28111,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"18301:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28114,"indexExpression":{"expression":{"id":28112,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18310:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18310:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18301:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":28115,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"18325:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18301:31:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"62616420746f6b656e4964","id":28117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18334:13:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_322cd4748f8d47b807f6942d44df1b77c47bc96126d45bcdc234ef858b5d8f5c","typeString":"literal_string \"bad tokenId\""},"value":"bad tokenId"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_322cd4748f8d47b807f6942d44df1b77c47bc96126d45bcdc234ef858b5d8f5c","typeString":"literal_string \"bad tokenId\""}],"id":28110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18293:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18293:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28119,"nodeType":"ExpressionStatement","src":"18293:55:81"}]}},{"assignments":[28131],"declarations":[{"constant":false,"id":28131,"mutability":"mutable","name":"_derivedBalance","nameLocation":"18438:15:81","nodeType":"VariableDeclaration","scope":28187,"src":"18430:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28130,"name":"uint256","nodeType":"ElementaryTypeName","src":"18430:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28136,"initialValue":{"baseExpression":{"id":28132,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"18456:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28135,"indexExpression":{"expression":{"id":28133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18472:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18472:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18456:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18430:53:81"},{"expression":{"id":28139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28137,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"18493:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":28138,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28131,"src":"18510:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18493:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28140,"nodeType":"ExpressionStatement","src":"18493:32:81"},{"expression":{"id":28146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28141,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28131,"src":"18535:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":28143,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18568:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18568:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28142,"name":"derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"18553:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":28145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18553:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18535:44:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28147,"nodeType":"ExpressionStatement","src":"18535:44:81"},{"expression":{"id":28153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28148,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"18589:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28151,"indexExpression":{"expression":{"id":28149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18605:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18605:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18589:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28152,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28131,"src":"18619:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18589:45:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28154,"nodeType":"ExpressionStatement","src":"18589:45:81"},{"expression":{"id":28157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28155,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"18644:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":28156,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28131,"src":"18661:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18644:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28158,"nodeType":"ExpressionStatement","src":"18644:32:81"},{"expression":{"arguments":[{"expression":{"id":28160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18704:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18704:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28162,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28131,"src":"18716:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28159,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26998,"src":"18687:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18687:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28164,"nodeType":"ExpressionStatement","src":"18687:45:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":28165,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27113,"src":"18742:22:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":28166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18742:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28167,"nodeType":"ExpressionStatement","src":"18742:24:81"},{"expression":{"arguments":[{"id":28174,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"18837:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":28175,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18858:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18858:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28025,"src":"18882:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":28169,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"18789:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":28170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"18789:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":28171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18789:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28168,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34456,"src":"18777:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoter_$34456_$","typeString":"type(contract IGaugeVoter)"}},"id":28172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18777:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoter_$34456","typeString":"contract IGaugeVoter"}},"id":28173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"emitDeposit","nodeType":"MemberAccess","referencedDeclaration":34346,"src":"18777:46:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256) external"}},"id":28178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18777:121:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28179,"nodeType":"ExpressionStatement","src":"18777:121:81"},{"eventCall":{"arguments":[{"expression":{"id":28181,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18921:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18921:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28183,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28027,"src":"18933:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28184,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28025,"src":"18942:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28180,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34161,"src":"18913:7:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":28185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18913:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28186,"nodeType":"EmitStatement","src":"18908:41:81"}]},"functionSelector":"e2bbb158","id":28188,"implemented":true,"kind":"function","modifiers":[{"id":28030,"kind":"modifierInvocation","modifierName":{"id":28029,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":26546,"src":"17626:4:81"},"nodeType":"ModifierInvocation","src":"17626:4:81"}],"name":"deposit","nameLocation":"17578:7:81","nodeType":"FunctionDefinition","parameters":{"id":28028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28025,"mutability":"mutable","name":"amount","nameLocation":"17594:6:81","nodeType":"VariableDeclaration","scope":28188,"src":"17586:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28024,"name":"uint256","nodeType":"ElementaryTypeName","src":"17586:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28027,"mutability":"mutable","name":"tokenId","nameLocation":"17610:7:81","nodeType":"VariableDeclaration","scope":28188,"src":"17602:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28026,"name":"uint256","nodeType":"ElementaryTypeName","src":"17602:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17585:33:81"},"returnParameters":{"id":28031,"nodeType":"ParameterList","parameters":[],"src":"17631:0:81"},"scope":28747,"src":"17569:1387:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":28198,"nodeType":"Block","src":"18994:48:81","statements":[{"expression":{"arguments":[{"baseExpression":{"id":28192,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26482,"src":"19013:9:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28195,"indexExpression":{"expression":{"id":28193,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19023:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19023:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19013:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28191,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28229,"src":"19004:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":28196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19004:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28197,"nodeType":"ExpressionStatement","src":"19004:31:81"}]},"functionSelector":"853828b6","id":28199,"implemented":true,"kind":"function","modifiers":[],"name":"withdrawAll","nameLocation":"18971:11:81","nodeType":"FunctionDefinition","parameters":{"id":28189,"nodeType":"ParameterList","parameters":[],"src":"18982:2:81"},"returnParameters":{"id":28190,"nodeType":"ParameterList","parameters":[],"src":"18994:0:81"},"scope":28747,"src":"18962:80:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28228,"nodeType":"Block","src":"19089:177:81","statements":[{"assignments":[28205],"declarations":[{"constant":false,"id":28205,"mutability":"mutable","name":"tokenId","nameLocation":"19107:7:81","nodeType":"VariableDeclaration","scope":28228,"src":"19099:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28204,"name":"uint256","nodeType":"ElementaryTypeName","src":"19099:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28207,"initialValue":{"hexValue":"30","id":28206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19117:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19099:19:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28201,"src":"19132:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":28209,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26482,"src":"19142:9:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28212,"indexExpression":{"expression":{"id":28210,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19152:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19152:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19142:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19132:31:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28222,"nodeType":"IfStatement","src":"19128:92:81","trueBody":{"id":28221,"nodeType":"Block","src":"19165:55:81","statements":[{"expression":{"id":28219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28214,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28205,"src":"19179:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":28215,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"19189:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28218,"indexExpression":{"expression":{"id":28216,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19198:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19198:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19189:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19179:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28220,"nodeType":"ExpressionStatement","src":"19179:30:81"}]}},{"expression":{"arguments":[{"id":28224,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28201,"src":"19243:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28225,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28205,"src":"19251:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28223,"name":"withdrawToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28358,"src":"19229:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":28226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19229:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28227,"nodeType":"ExpressionStatement","src":"19229:30:81"}]},"functionSelector":"2e1a7d4d","id":28229,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"19057:8:81","nodeType":"FunctionDefinition","parameters":{"id":28202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28201,"mutability":"mutable","name":"amount","nameLocation":"19074:6:81","nodeType":"VariableDeclaration","scope":28229,"src":"19066:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28200,"name":"uint256","nodeType":"ElementaryTypeName","src":"19066:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19065:16:81"},"returnParameters":{"id":28203,"nodeType":"ParameterList","parameters":[],"src":"19089:0:81"},"scope":28747,"src":"19048:218:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":28357,"nodeType":"Block","src":"19340:1015:81","statements":[{"expression":{"id":28240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28238,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26478,"src":"19350:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":28239,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28231,"src":"19365:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19350:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28241,"nodeType":"ExpressionStatement","src":"19350:21:81"},{"expression":{"id":28247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28242,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26482,"src":"19381:9:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28245,"indexExpression":{"expression":{"id":28243,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19391:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19391:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19381:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":28246,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28231,"src":"19406:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19381:31:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28248,"nodeType":"ExpressionStatement","src":"19381:31:81"},{"expression":{"arguments":[{"id":28250,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26430,"src":"19436:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19443:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19443:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28253,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28231,"src":"19455:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28249,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28635,"src":"19422:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":28254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19422:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28255,"nodeType":"ExpressionStatement","src":"19422:40:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28256,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28233,"src":"19477:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19487:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19477:11:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28295,"nodeType":"Block","src":"19750:55:81","statements":[{"expression":{"id":28293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28288,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28233,"src":"19764:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":28289,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"19774:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28292,"indexExpression":{"expression":{"id":28290,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19783:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19783:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19774:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19764:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28294,"nodeType":"ExpressionStatement","src":"19764:30:81"}]},"id":28296,"nodeType":"IfStatement","src":"19473:332:81","trueBody":{"id":28287,"nodeType":"Block","src":"19490:254:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28260,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28233,"src":"19512:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":28261,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"19523:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28264,"indexExpression":{"expression":{"id":28262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19532:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19532:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19523:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19512:31:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"62616420746f6b656e4964","id":28266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19545:13:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_322cd4748f8d47b807f6942d44df1b77c47bc96126d45bcdc234ef858b5d8f5c","typeString":"literal_string \"bad tokenId\""},"value":"bad tokenId"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_322cd4748f8d47b807f6942d44df1b77c47bc96126d45bcdc234ef858b5d8f5c","typeString":"literal_string \"bad tokenId\""}],"id":28259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19504:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19504:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28268,"nodeType":"ExpressionStatement","src":"19504:55:81"},{"expression":{"id":28274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28269,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26476,"src":"19573:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28272,"indexExpression":{"expression":{"id":28270,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19582:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19582:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19573:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":28273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19596:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19573:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28275,"nodeType":"ExpressionStatement","src":"19573:24:81"},{"expression":{"arguments":[{"id":28282,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28233,"src":"19684:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":28283,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19709:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19709:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":28277,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"19623:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":28278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"19623:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":28279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19623:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28276,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34456,"src":"19611:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoter_$34456_$","typeString":"type(contract IGaugeVoter)"}},"id":28280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19611:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoter_$34456","typeString":"contract IGaugeVoter"}},"id":28281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"detachTokenFromGauge","nodeType":"MemberAccess","referencedDeclaration":34337,"src":"19611:55:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":28285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19611:122:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28286,"nodeType":"ExpressionStatement","src":"19611:122:81"}]}},{"assignments":[28298],"declarations":[{"constant":false,"id":28298,"mutability":"mutable","name":"_derivedBalance","nameLocation":"19823:15:81","nodeType":"VariableDeclaration","scope":28357,"src":"19815:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28297,"name":"uint256","nodeType":"ElementaryTypeName","src":"19815:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28303,"initialValue":{"baseExpression":{"id":28299,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"19841:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28302,"indexExpression":{"expression":{"id":28300,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19857:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19857:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19841:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19815:53:81"},{"expression":{"id":28306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28304,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"19878:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":28305,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28298,"src":"19895:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19878:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28307,"nodeType":"ExpressionStatement","src":"19878:32:81"},{"expression":{"id":28313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28308,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28298,"src":"19920:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":28310,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19953:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19953:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28309,"name":"derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"19938:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":28312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19938:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19920:44:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28314,"nodeType":"ExpressionStatement","src":"19920:44:81"},{"expression":{"id":28320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28315,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"19974:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28318,"indexExpression":{"expression":{"id":28316,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19990:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19990:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19974:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28319,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28298,"src":"20004:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19974:45:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28321,"nodeType":"ExpressionStatement","src":"19974:45:81"},{"expression":{"id":28324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28322,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26432,"src":"20029:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":28323,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28298,"src":"20046:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20029:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28325,"nodeType":"ExpressionStatement","src":"20029:32:81"},{"expression":{"arguments":[{"expression":{"id":28327,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20089:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20089:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":28329,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"20101:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28332,"indexExpression":{"expression":{"id":28330,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20117:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20117:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20101:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28326,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26998,"src":"20072:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20072:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28334,"nodeType":"ExpressionStatement","src":"20072:57:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":28335,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27113,"src":"20139:22:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":28336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20139:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28337,"nodeType":"ExpressionStatement","src":"20139:24:81"},{"expression":{"arguments":[{"id":28344,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28233,"src":"20235:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":28345,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20256:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20256:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28347,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28231,"src":"20280:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":28339,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26428,"src":"20186:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":28340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"20186:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":28341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20186:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28338,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34456,"src":"20174:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoter_$34456_$","typeString":"type(contract IGaugeVoter)"}},"id":28342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20174:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoter_$34456","typeString":"contract IGaugeVoter"}},"id":28343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"emitWithdraw","nodeType":"MemberAccess","referencedDeclaration":34355,"src":"20174:47:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256) external"}},"id":28348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20174:122:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28349,"nodeType":"ExpressionStatement","src":"20174:122:81"},{"eventCall":{"arguments":[{"expression":{"id":28351,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20320:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20320:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28353,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28233,"src":"20332:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28354,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28231,"src":"20341:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28350,"name":"Withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34169,"src":"20311:8:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":28355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20311:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28356,"nodeType":"EmitStatement","src":"20306:42:81"}]},"functionSelector":"fdb483c7","id":28358,"implemented":true,"kind":"function","modifiers":[{"id":28236,"kind":"modifierInvocation","modifierName":{"id":28235,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":26546,"src":"19335:4:81"},"nodeType":"ModifierInvocation","src":"19335:4:81"}],"name":"withdrawToken","nameLocation":"19281:13:81","nodeType":"FunctionDefinition","parameters":{"id":28234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28231,"mutability":"mutable","name":"amount","nameLocation":"19303:6:81","nodeType":"VariableDeclaration","scope":28358,"src":"19295:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28230,"name":"uint256","nodeType":"ElementaryTypeName","src":"19295:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28233,"mutability":"mutable","name":"tokenId","nameLocation":"19319:7:81","nodeType":"VariableDeclaration","scope":28358,"src":"19311:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28232,"name":"uint256","nodeType":"ElementaryTypeName","src":"19311:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19294:33:81"},"returnParameters":{"id":28237,"nodeType":"ParameterList","parameters":[],"src":"19340:0:81"},"scope":28747,"src":"19272:1083:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34109],"body":{"id":28390,"nodeType":"Block","src":"20431:184:81","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28366,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20445:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":28367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20445:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":28368,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"20464:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28370,"indexExpression":{"id":28369,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28360,"src":"20477:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20464:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20445:38:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28374,"nodeType":"IfStatement","src":"20441:52:81","trueBody":{"expression":{"hexValue":"30","id":28372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20492:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":28365,"id":28373,"nodeType":"Return","src":"20485:8:81"}},{"assignments":[28376],"declarations":[{"constant":false,"id":28376,"mutability":"mutable","name":"_remaining","nameLocation":"20511:10:81","nodeType":"VariableDeclaration","scope":28390,"src":"20503:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28375,"name":"uint256","nodeType":"ElementaryTypeName","src":"20503:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28383,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":28377,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"20524:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28379,"indexExpression":{"id":28378,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28360,"src":"20537:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20524:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":28380,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20546:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":28381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20546:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20524:37:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20503:58:81"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28384,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28376,"src":"20578:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":28385,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"20591:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28387,"indexExpression":{"id":28386,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28360,"src":"20602:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20591:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20578:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28365,"id":28389,"nodeType":"Return","src":"20571:37:81"}]},"functionSelector":"99bcc052","id":28391,"implemented":true,"kind":"function","modifiers":[],"name":"left","nameLocation":"20370:4:81","nodeType":"FunctionDefinition","overrides":{"id":28362,"nodeType":"OverrideSpecifier","overrides":[],"src":"20404:8:81"},"parameters":{"id":28361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28360,"mutability":"mutable","name":"token","nameLocation":"20383:5:81","nodeType":"VariableDeclaration","scope":28391,"src":"20375:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28359,"name":"address","nodeType":"ElementaryTypeName","src":"20375:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20374:15:81"},"returnParameters":{"id":28365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28391,"src":"20422:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28363,"name":"uint256","nodeType":"ElementaryTypeName","src":"20422:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20421:9:81"},"scope":28747,"src":"20361:254:81","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34088],"body":{"id":28580,"nodeType":"Block","src":"20731:1328:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28402,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"20749:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":28403,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26430,"src":"20758:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20749:14:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f6b656e203d207374616b65","id":28405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20765:15:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b","typeString":"literal_string \"token = stake\""},"value":"token = stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b","typeString":"literal_string \"token = stake\""}],"id":28401,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20741:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20741:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28407,"nodeType":"ExpressionStatement","src":"20741:40:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28409,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"20799:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20808:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20799:10:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203d2030","id":28412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20811:12:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""},"value":"amount = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""}],"id":28408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20791:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20791:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28414,"nodeType":"ExpressionStatement","src":"20791:33:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":28415,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"20838:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28417,"indexExpression":{"id":28416,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"20849:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20838:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":28418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20859:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20838:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28427,"nodeType":"IfStatement","src":"20834:97:81","trueBody":{"expression":{"arguments":[{"id":28421,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"20905:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":28422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20912:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":28423,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20915:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":28424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20915:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28420,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27061,"src":"20874:30:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":28425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20874:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28426,"nodeType":"ExpressionStatement","src":"20874:57:81"}},{"expression":{"id":28438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":28428,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"20955:20:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28430,"indexExpression":{"id":28429,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"20976:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20955:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":28431,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26456,"src":"20996:14:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28433,"indexExpression":{"id":28432,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21011:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20996:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28434,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"20941:86:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28436,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21052:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28435,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27839,"src":"21030:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":28437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21030:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"20941:117:81","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28439,"nodeType":"ExpressionStatement","src":"20941:117:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21073:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":28441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"21073:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":28442,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"21092:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28444,"indexExpression":{"id":28443,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21105:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21092:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21073:38:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28512,"nodeType":"Block","src":"21254:331:81","statements":[{"assignments":[28467],"declarations":[{"constant":false,"id":28467,"mutability":"mutable","name":"_remaining","nameLocation":"21276:10:81","nodeType":"VariableDeclaration","scope":28512,"src":"21268:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28466,"name":"uint256","nodeType":"ElementaryTypeName","src":"21268:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28474,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":28468,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"21289:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28470,"indexExpression":{"id":28469,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21302:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21289:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":28471,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21311:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":28472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"21311:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21289:37:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21268:58:81"},{"assignments":[28476],"declarations":[{"constant":false,"id":28476,"mutability":"mutable","name":"_left","nameLocation":"21348:5:81","nodeType":"VariableDeclaration","scope":28512,"src":"21340:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28475,"name":"uint256","nodeType":"ElementaryTypeName","src":"21340:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28482,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28477,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28467,"src":"21356:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":28478,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"21369:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28480,"indexExpression":{"id":28479,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21380:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21369:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21356:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21340:46:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28484,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"21408:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":28485,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28476,"src":"21417:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21408:14:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203e206c656674","id":28487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21424:15:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb","typeString":"literal_string \"amount > left\""},"value":"amount > left"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb","typeString":"literal_string \"amount > left\""}],"id":28483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21400:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21400:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28489,"nodeType":"ExpressionStatement","src":"21400:40:81"},{"expression":{"arguments":[{"id":28491,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21472:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28492,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21479:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"21479:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":28496,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21499:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}],"id":28495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21491:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28494,"name":"address","nodeType":"ElementaryTypeName","src":"21491:7:81","typeDescriptions":{}}},"id":28497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21491:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28498,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"21506:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28490,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28692,"src":"21454:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":28499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21454:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28500,"nodeType":"ExpressionStatement","src":"21454:59:81"},{"expression":{"id":28510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28501,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"21527:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28503,"indexExpression":{"id":28502,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21538:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21527:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28504,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"21548:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":28505,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28476,"src":"21557:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21548:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28507,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21547:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":28508,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26439,"src":"21566:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21547:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21527:47:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28511,"nodeType":"ExpressionStatement","src":"21527:47:81"}]},"id":28513,"nodeType":"IfStatement","src":"21069:516:81","trueBody":{"id":28465,"nodeType":"Block","src":"21113:135:81","statements":[{"expression":{"arguments":[{"id":28447,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21145:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28448,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21152:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"21152:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":28452,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21172:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}],"id":28451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21164:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28450,"name":"address","nodeType":"ElementaryTypeName","src":"21164:7:81","typeDescriptions":{}}},"id":28453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21164:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28454,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"21179:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28446,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28692,"src":"21127:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":28455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21127:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28456,"nodeType":"ExpressionStatement","src":"21127:59:81"},{"expression":{"id":28463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28457,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"21200:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28459,"indexExpression":{"id":28458,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21211:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21200:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28460,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"21220:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":28461,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26439,"src":"21229:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21220:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21200:37:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28464,"nodeType":"ExpressionStatement","src":"21200:37:81"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":28515,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"21602:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28517,"indexExpression":{"id":28516,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21613:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21602:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21622:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21602:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"72657761726472617465203d2030","id":28520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21625:16:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86","typeString":"literal_string \"rewardrate = 0\""},"value":"rewardrate = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86","typeString":"literal_string \"rewardrate = 0\""}],"id":28514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21594:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21594:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28522,"nodeType":"ExpressionStatement","src":"21594:48:81"},{"assignments":[28524],"declarations":[{"constant":false,"id":28524,"mutability":"mutable","name":"balance","nameLocation":"21660:7:81","nodeType":"VariableDeclaration","scope":28580,"src":"21652:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28523,"name":"uint256","nodeType":"ElementaryTypeName","src":"21652:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28534,"initialValue":{"arguments":[{"arguments":[{"id":28531,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21702:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV1_$28747","typeString":"contract BaseGaugeV1"}],"id":28530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21694:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28529,"name":"address","nodeType":"ElementaryTypeName","src":"21694:7:81","typeDescriptions":{}}},"id":28532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21694:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":28526,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21677:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28525,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"21670:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":28527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21670:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":28528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"21670:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":28533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21670:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21652:56:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":28536,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26448,"src":"21739:10:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28538,"indexExpression":{"id":28537,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21750:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21739:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28539,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28524,"src":"21760:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":28540,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26439,"src":"21770:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21760:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21739:39:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f76696465642072657761726420746f6f2068696768","id":28543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21792:26:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""},"value":"Provided reward too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""}],"id":28535,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21718:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21718:110:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28545,"nodeType":"ExpressionStatement","src":"21718:110:81"},{"expression":{"id":28553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28546,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26452,"src":"21838:12:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28548,"indexExpression":{"id":28547,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21851:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21838:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28549,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21860:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":28550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"21860:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":28551,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26439,"src":"21878:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21860:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21838:48:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28554,"nodeType":"ExpressionStatement","src":"21838:48:81"},{"condition":{"id":28558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21900:16:81","subExpression":{"baseExpression":{"id":28555,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26489,"src":"21901:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":28557,"indexExpression":{"id":28556,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21910:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21901:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28572,"nodeType":"IfStatement","src":"21896:102:81","trueBody":{"id":28571,"nodeType":"Block","src":"21918:80:81","statements":[{"expression":{"id":28563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28559,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26489,"src":"21932:8:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":28561,"indexExpression":{"id":28560,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21941:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21932:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":28562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21950:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"21932:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28564,"nodeType":"ExpressionStatement","src":"21932:22:81"},{"expression":{"arguments":[{"id":28568,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"21981:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28565,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26485,"src":"21968:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":28567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"21968:12:81","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":28569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21968:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28570,"nodeType":"ExpressionStatement","src":"21968:19:81"}]}},{"eventCall":{"arguments":[{"expression":{"id":28574,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22026:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"22026:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28576,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"22038:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28577,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"22045:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28573,"name":"NotifyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34177,"src":"22013:12:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":28578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22013:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28579,"nodeType":"EmitStatement","src":"22008:44:81"}]},"functionSelector":"b66503cf","id":28581,"implemented":true,"kind":"function","modifiers":[{"id":28399,"kind":"modifierInvocation","modifierName":{"id":28398,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":26546,"src":"20722:4:81"},"nodeType":"ModifierInvocation","src":"20722:4:81"}],"name":"notifyRewardAmount","nameLocation":"20630:18:81","nodeType":"FunctionDefinition","overrides":{"id":28397,"nodeType":"OverrideSpecifier","overrides":[],"src":"20705:8:81"},"parameters":{"id":28396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28393,"mutability":"mutable","name":"token","nameLocation":"20657:5:81","nodeType":"VariableDeclaration","scope":28581,"src":"20649:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28392,"name":"address","nodeType":"ElementaryTypeName","src":"20649:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28395,"mutability":"mutable","name":"amount","nameLocation":"20672:6:81","nodeType":"VariableDeclaration","scope":28581,"src":"20664:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28394,"name":"uint256","nodeType":"ElementaryTypeName","src":"20664:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20648:31:81"},"returnParameters":{"id":28400,"nodeType":"ParameterList","parameters":[],"src":"20731:0:81"},"scope":28747,"src":"20621:1438:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28634,"nodeType":"Block","src":"22169:338:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":28591,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28583,"src":"22187:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"22187:10:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":28593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22187:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22207:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22187:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420636f6465206c656e677468","id":28596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22210:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""},"value":"invalid code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""}],"id":28590,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22179:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22179:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28598,"nodeType":"ExpressionStatement","src":"22179:53:81"},{"assignments":[28600,28602],"declarations":[{"constant":false,"id":28600,"mutability":"mutable","name":"success","nameLocation":"22248:7:81","nodeType":"VariableDeclaration","scope":28634,"src":"22243:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28599,"name":"bool","nodeType":"ElementaryTypeName","src":"22243:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28602,"mutability":"mutable","name":"data","nameLocation":"22270:4:81","nodeType":"VariableDeclaration","scope":28634,"src":"22257:17:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28601,"name":"bytes","nodeType":"ElementaryTypeName","src":"22257:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":28614,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":28607,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"22325:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":28608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"22325:15:81","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transfer(address,uint256) returns (bool)"}},"id":28609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"22325:24:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":28610,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28585,"src":"22351:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28611,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28587,"src":"22355:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28605,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22302:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"22302:22:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":28612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22302:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":28603,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28583,"src":"22278:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"22278:10:81","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":28613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22278:93:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"22242:129:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28616,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28600,"src":"22402:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28617,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28602,"src":"22414:4:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":28618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22414:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":28619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22429:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22414:16:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":28623,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28602,"src":"22445:4:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":28625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22452:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":28624,"name":"bool","nodeType":"ElementaryTypeName","src":"22452:4:81","typeDescriptions":{}}}],"id":28626,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22451:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":28621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22434:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"22434:10:81","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":28627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22434:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22414:44:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":28629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22413:46:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22402:57:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":28631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22473:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":28615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22381:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22381:119:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28633,"nodeType":"ExpressionStatement","src":"22381:119:81"}]},"id":28635,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"22074:13:81","nodeType":"FunctionDefinition","parameters":{"id":28588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28583,"mutability":"mutable","name":"token","nameLocation":"22105:5:81","nodeType":"VariableDeclaration","scope":28635,"src":"22097:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28582,"name":"address","nodeType":"ElementaryTypeName","src":"22097:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28585,"mutability":"mutable","name":"to","nameLocation":"22128:2:81","nodeType":"VariableDeclaration","scope":28635,"src":"22120:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28584,"name":"address","nodeType":"ElementaryTypeName","src":"22120:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28587,"mutability":"mutable","name":"value","nameLocation":"22148:5:81","nodeType":"VariableDeclaration","scope":28635,"src":"22140:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28586,"name":"uint256","nodeType":"ElementaryTypeName","src":"22140:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22087:72:81"},"returnParameters":{"id":28589,"nodeType":"ParameterList","parameters":[],"src":"22169:0:81"},"scope":28747,"src":"22065:442:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":28691,"nodeType":"Block","src":"22643:430:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":28647,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28637,"src":"22661:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"22661:10:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":28649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22661:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22681:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22661:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420636f6465206c656e677468","id":28652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22684:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""},"value":"invalid code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""}],"id":28646,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22653:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22653:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28654,"nodeType":"ExpressionStatement","src":"22653:53:81"},{"assignments":[28656,28658],"declarations":[{"constant":false,"id":28656,"mutability":"mutable","name":"success","nameLocation":"22722:7:81","nodeType":"VariableDeclaration","scope":28691,"src":"22717:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28655,"name":"bool","nodeType":"ElementaryTypeName","src":"22717:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28658,"mutability":"mutable","name":"data","nameLocation":"22744:4:81","nodeType":"VariableDeclaration","scope":28691,"src":"22731:17:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28657,"name":"bytes","nodeType":"ElementaryTypeName","src":"22731:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":28671,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":28663,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"22816:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":28664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"22816:19:81","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transferFrom(address,address,uint256) returns (bool)"}},"id":28665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"22816:28:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":28666,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28639,"src":"22862:4:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28667,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28641,"src":"22884:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28643,"src":"22904:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28661,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22776:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"22776:22:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":28669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22776:147:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":28659,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28637,"src":"22752:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"22752:10:81","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":28670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22752:181:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"22716:217:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28673,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28656,"src":"22964:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28674,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28658,"src":"22976:4:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":28675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22976:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":28676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22991:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22976:16:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":28680,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28658,"src":"23007:4:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":28682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23014:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":28681,"name":"bool","nodeType":"ElementaryTypeName","src":"23014:4:81","typeDescriptions":{}}}],"id":28683,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23013:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":28678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22996:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"22996:10:81","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":28684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22996:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22976:44:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":28686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22975:46:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22964:57:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e7366657246726f6d206661696c6564","id":28688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23035:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""},"value":"transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""}],"id":28672,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22943:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22943:123:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28690,"nodeType":"ExpressionStatement","src":"22943:123:81"}]},"id":28692,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"22522:17:81","nodeType":"FunctionDefinition","parameters":{"id":28644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28637,"mutability":"mutable","name":"token","nameLocation":"22557:5:81","nodeType":"VariableDeclaration","scope":28692,"src":"22549:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28636,"name":"address","nodeType":"ElementaryTypeName","src":"22549:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28639,"mutability":"mutable","name":"from","nameLocation":"22580:4:81","nodeType":"VariableDeclaration","scope":28692,"src":"22572:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28638,"name":"address","nodeType":"ElementaryTypeName","src":"22572:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28641,"mutability":"mutable","name":"to","nameLocation":"22602:2:81","nodeType":"VariableDeclaration","scope":28692,"src":"22594:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28640,"name":"address","nodeType":"ElementaryTypeName","src":"22594:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28643,"mutability":"mutable","name":"value","nameLocation":"22622:5:81","nodeType":"VariableDeclaration","scope":28692,"src":"22614:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28642,"name":"uint256","nodeType":"ElementaryTypeName","src":"22614:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22539:94:81"},"returnParameters":{"id":28645,"nodeType":"ParameterList","parameters":[],"src":"22643:0:81"},"scope":28747,"src":"22513:560:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":28745,"nodeType":"Block","src":"23187:341:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":28702,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28694,"src":"23205:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"23205:10:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":28704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"23205:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23225:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23205:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420636f6465206c656e677468","id":28707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23228:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""},"value":"invalid code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""}],"id":28701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23197:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23197:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28709,"nodeType":"ExpressionStatement","src":"23197:53:81"},{"assignments":[28711,28713],"declarations":[{"constant":false,"id":28711,"mutability":"mutable","name":"success","nameLocation":"23266:7:81","nodeType":"VariableDeclaration","scope":28745,"src":"23261:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28710,"name":"bool","nodeType":"ElementaryTypeName","src":"23261:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28713,"mutability":"mutable","name":"data","nameLocation":"23288:4:81","nodeType":"VariableDeclaration","scope":28745,"src":"23275:17:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28712,"name":"bytes","nodeType":"ElementaryTypeName","src":"23275:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":28725,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":28718,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"23343:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":28719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"23343:14:81","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.approve(address,uint256) returns (bool)"}},"id":28720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"23343:23:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":28721,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28696,"src":"23368:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28722,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28698,"src":"23377:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28716,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23320:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"23320:22:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":28723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23320:63:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":28714,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28694,"src":"23296:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"23296:10:81","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":28724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23296:97:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23260:133:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28727,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28711,"src":"23424:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28728,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28713,"src":"23436:4:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":28729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"23436:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":28730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23451:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23436:16:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":28734,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28713,"src":"23467:4:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":28736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23474:4:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":28735,"name":"bool","nodeType":"ElementaryTypeName","src":"23474:4:81","typeDescriptions":{}}}],"id":28737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23473:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":28732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23456:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"23456:10:81","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":28738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23456:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23436:44:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":28740,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23435:46:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23424:57:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"617070726f7665206661696c6564","id":28742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23495:16:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_69ab7f66ce454a3f8b5143239ba623f1d94f81bb9bd3a1f7a83880ee53504f33","typeString":"literal_string \"approve failed\""},"value":"approve failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69ab7f66ce454a3f8b5143239ba623f1d94f81bb9bd3a1f7a83880ee53504f33","typeString":"literal_string \"approve failed\""}],"id":28726,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23403:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23403:118:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28744,"nodeType":"ExpressionStatement","src":"23403:118:81"}]},"id":28746,"implemented":true,"kind":"function","modifiers":[],"name":"_safeApprove","nameLocation":"23088:12:81","nodeType":"FunctionDefinition","parameters":{"id":28699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28694,"mutability":"mutable","name":"token","nameLocation":"23118:5:81","nodeType":"VariableDeclaration","scope":28746,"src":"23110:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28693,"name":"address","nodeType":"ElementaryTypeName","src":"23110:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28696,"mutability":"mutable","name":"spender","nameLocation":"23141:7:81","nodeType":"VariableDeclaration","scope":28746,"src":"23133:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28695,"name":"address","nodeType":"ElementaryTypeName","src":"23133:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28698,"mutability":"mutable","name":"value","nameLocation":"23166:5:81","nodeType":"VariableDeclaration","scope":28746,"src":"23158:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28697,"name":"uint256","nodeType":"ElementaryTypeName","src":"23158:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23100:77:81"},"returnParameters":{"id":28700,"nodeType":"ParameterList","parameters":[],"src":"23187:0:81"},"scope":28747,"src":"23079:449:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":28748,"src":"566:22964:81","usedErrors":[]}],"src":"32:23499:81"},"id":81},"contracts/gauges/BaseGaugeV1Factory.sol":{"ast":{"absolutePath":"contracts/gauges/BaseGaugeV1Factory.sol","exportedSymbols":{"BaseGaugeV2":[31058],"BaseV1GaugeFactory":[28789],"IGaugeFactory":[34132]},"id":28790,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":28749,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:82"},{"absolutePath":"contracts/gauges/BaseGaugeV2.sol","file":"./BaseGaugeV2.sol","id":28751,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28790,"sourceUnit":31059,"src":"57:46:82","symbolAliases":[{"foreign":{"id":28750,"name":"BaseGaugeV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:11:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeFactory.sol","file":"../interfaces/IGaugeFactory.sol","id":28753,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28790,"sourceUnit":34133,"src":"104:62:82","symbolAliases":[{"foreign":{"id":28752,"name":"IGaugeFactory","nodeType":"Identifier","overloadedDeclarations":[],"src":"112:13:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28754,"name":"IGaugeFactory","nodeType":"IdentifierPath","referencedDeclaration":34132,"src":"199:13:82"},"id":28755,"nodeType":"InheritanceSpecifier","src":"199:13:82"}],"contractDependencies":[31058],"contractKind":"contract","fullyImplemented":true,"id":28789,"linearizedBaseContracts":[28789,34132],"name":"BaseV1GaugeFactory","nameLocation":"177:18:82","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34123],"body":{"id":28787,"nodeType":"Block","src":"356:146:82","statements":[{"assignments":[28768],"declarations":[{"constant":false,"id":28768,"mutability":"mutable","name":"guage","nameLocation":"374:5:82","nodeType":"VariableDeclaration","scope":28787,"src":"366:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28767,"name":"address","nodeType":"ElementaryTypeName","src":"366:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":28778,"initialValue":{"arguments":[{"arguments":[{"id":28774,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28757,"src":"406:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28775,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28761,"src":"413:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":28773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"390:15:82","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_BaseGaugeV2_$31058_$","typeString":"function (address,address) returns (contract BaseGaugeV2)"},"typeName":{"id":28772,"nodeType":"UserDefinedTypeName","pathNode":{"id":28771,"name":"BaseGaugeV2","nodeType":"IdentifierPath","referencedDeclaration":31058,"src":"394:11:82"},"referencedDeclaration":31058,"src":"394:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}},"id":28776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"390:33:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}],"id":28770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"382:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28769,"name":"address","nodeType":"ElementaryTypeName","src":"382:7:82","typeDescriptions":{}}},"id":28777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"382:42:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"366:58:82"},{"eventCall":{"arguments":[{"id":28780,"name":"guage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28768,"src":"452:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28781,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28757,"src":"459:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28782,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28759,"src":"466:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":28779,"name":"GaugeCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34131,"src":"439:12:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":28783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"439:34:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28784,"nodeType":"EmitStatement","src":"434:39:82"},{"expression":{"id":28785,"name":"guage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28768,"src":"490:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":28766,"id":28786,"nodeType":"Return","src":"483:12:82"}]},"functionSelector":"1c48e0fa","id":28788,"implemented":true,"kind":"function","modifiers":[],"name":"createGauge","nameLocation":"228:11:82","nodeType":"FunctionDefinition","overrides":{"id":28763,"nodeType":"OverrideSpecifier","overrides":[],"src":"329:8:82"},"parameters":{"id":28762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28757,"mutability":"mutable","name":"_pool","nameLocation":"257:5:82","nodeType":"VariableDeclaration","scope":28788,"src":"249:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28756,"name":"address","nodeType":"ElementaryTypeName","src":"249:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28759,"mutability":"mutable","name":"_bribe","nameLocation":"280:6:82","nodeType":"VariableDeclaration","scope":28788,"src":"272:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28758,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28761,"mutability":"mutable","name":"_registry","nameLocation":"304:9:82","nodeType":"VariableDeclaration","scope":28788,"src":"296:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28760,"name":"address","nodeType":"ElementaryTypeName","src":"296:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"239:80:82"},"returnParameters":{"id":28766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28765,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28788,"src":"347:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28764,"name":"address","nodeType":"ElementaryTypeName","src":"347:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"346:9:82"},"scope":28789,"src":"219:283:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":28790,"src":"168:336:82","usedErrors":[]}],"src":"32:473:82"},"id":82},"contracts/gauges/BaseGaugeV2.sol":{"ast":{"absolutePath":"contracts/gauges/BaseGaugeV2.sol","exportedSymbols":{"BaseGaugeV2":[31058],"IBribe":[33878],"IERC20":[5767],"IGaugeV2":[34258],"IGaugeVoterV2":[34597],"IGovernorTimelock":[4203],"INFTLocker":[34923],"INFTStaker":[35022],"IRegistry":[35522],"Math":[10353]},"id":31059,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":28791,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:83"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":28793,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":4739,"src":"57:69:83","symbolAliases":[{"foreign":{"id":28792,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:6:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":28795,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":10354,"src":"127:65:83","symbolAliases":[{"foreign":{"id":28794,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"135:4:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","file":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","id":28797,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":4204,"src":"193:102:83","symbolAliases":[{"foreign":{"id":28796,"name":"IGovernorTimelock","nodeType":"Identifier","overloadedDeclarations":[],"src":"201:17:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../interfaces/IRegistry.sol","id":28799,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":35523,"src":"298:54:83","symbolAliases":[{"foreign":{"id":28798,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"306:9:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoterV2.sol","file":"../interfaces/IGaugeVoterV2.sol","id":28801,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":34598,"src":"353:62:83","symbolAliases":[{"foreign":{"id":28800,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"361:13:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"../interfaces/INFTLocker.sol","id":28803,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":34924,"src":"416:56:83","symbolAliases":[{"foreign":{"id":28802,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"424:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribe.sol","file":"../interfaces/IBribe.sol","id":28805,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":33879,"src":"473:48:83","symbolAliases":[{"foreign":{"id":28804,"name":"IBribe","nodeType":"Identifier","overloadedDeclarations":[],"src":"481:6:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeV2.sol","file":"../interfaces/IGaugeV2.sol","id":28807,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":34259,"src":"522:52:83","symbolAliases":[{"foreign":{"id":28806,"name":"IGaugeV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"530:8:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTStaker.sol","file":"../interfaces/INFTStaker.sol","id":28809,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":31059,"sourceUnit":35023,"src":"575:56:83","symbolAliases":[{"foreign":{"id":28808,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"src":"583:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28810,"name":"IGaugeV2","nodeType":"IdentifierPath","referencedDeclaration":34258,"src":"755:8:83"},"id":28811,"nodeType":"InheritanceSpecifier","src":"755:8:83"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":31058,"linearizedBaseContracts":[31058,34258,34110],"name":"BaseGaugeV2","nameLocation":"740:11:83","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34102],"constant":false,"functionSelector":"7b103999","id":28815,"mutability":"immutable","name":"registry","nameLocation":"806:8:83","nodeType":"VariableDeclaration","overrides":{"id":28814,"nodeType":"OverrideSpecifier","overrides":[],"src":"797:8:83"},"scope":31058,"src":"770:44:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":28813,"nodeType":"UserDefinedTypeName","pathNode":{"id":28812,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"770:9:83"},"referencedDeclaration":35522,"src":"770:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":false,"functionSelector":"3a4b66f1","id":28817,"mutability":"immutable","name":"stake","nameLocation":"845:5:83","nodeType":"VariableDeclaration","scope":31058,"src":"820:30:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28816,"name":"address","nodeType":"ElementaryTypeName","src":"820:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"d7da4bb0","id":28819,"mutability":"mutable","name":"derivedSupply","nameLocation":"924:13:83","nodeType":"VariableDeclaration","scope":31058,"src":"909:28:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28818,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"63fb415b","id":28823,"mutability":"mutable","name":"derivedBalances","nameLocation":"978:15:83","nodeType":"VariableDeclaration","scope":31058,"src":"943:50:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28822,"keyType":{"id":28820,"name":"address","nodeType":"ElementaryTypeName","src":"951:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"943:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28821,"name":"uint256","nodeType":"ElementaryTypeName","src":"962:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":true,"id":28826,"mutability":"constant","name":"DURATION","nameLocation":"1026:8:83","nodeType":"VariableDeclaration","scope":31058,"src":"1000:43:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28824,"name":"uint256","nodeType":"ElementaryTypeName","src":"1000:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":28825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1037:6:83","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"internal"},{"constant":true,"id":28831,"mutability":"constant","name":"PRECISION","nameLocation":"1111:9:83","nodeType":"VariableDeclaration","scope":31058,"src":"1085:44:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28827,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":28830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":28828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1123:2:83","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":28829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1127:2:83","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1123:6:83","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":false,"functionSelector":"36703461","id":28835,"mutability":"mutable","name":"attached","nameLocation":"1168:8:83","nodeType":"VariableDeclaration","scope":31058,"src":"1136:40:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":28834,"keyType":{"id":28832,"name":"address","nodeType":"ElementaryTypeName","src":"1144:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1136:24:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":28833,"name":"bool","nodeType":"ElementaryTypeName","src":"1155:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"221ca18c","id":28839,"mutability":"mutable","name":"rewardRate","nameLocation":"1269:10:83","nodeType":"VariableDeclaration","scope":31058,"src":"1234:45:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28838,"keyType":{"id":28836,"name":"address","nodeType":"ElementaryTypeName","src":"1242:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1234:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28837,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"da09d19d","id":28843,"mutability":"mutable","name":"periodFinish","nameLocation":"1320:12:83","nodeType":"VariableDeclaration","scope":31058,"src":"1285:47:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28842,"keyType":{"id":28840,"name":"address","nodeType":"ElementaryTypeName","src":"1293:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1285:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1304:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"2ce9aead","id":28847,"mutability":"mutable","name":"lastUpdateTime","nameLocation":"1373:14:83","nodeType":"VariableDeclaration","scope":31058,"src":"1338:49:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28846,"keyType":{"id":28844,"name":"address","nodeType":"ElementaryTypeName","src":"1346:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1338:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28845,"name":"uint256","nodeType":"ElementaryTypeName","src":"1357:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"9ce43f90","id":28851,"mutability":"mutable","name":"rewardPerTokenStored","nameLocation":"1428:20:83","nodeType":"VariableDeclaration","scope":31058,"src":"1393:55:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28850,"keyType":{"id":28848,"name":"address","nodeType":"ElementaryTypeName","src":"1401:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1393:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28849,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"69db8b27","id":28854,"mutability":"mutable","name":"maxBoostRequirement","nameLocation":"1470:19:83","nodeType":"VariableDeclaration","scope":31058,"src":"1455:44:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28852,"name":"uint256","nodeType":"ElementaryTypeName","src":"1455:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35303030653138","id":28853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1492:7:83","typeDescriptions":{"typeIdentifier":"t_rational_5000000000000000000000_by_1","typeString":"int_const 5000000000000000000000"},"value":"5000e18"},"visibility":"public"},{"constant":false,"functionSelector":"a495e5b5","id":28860,"mutability":"mutable","name":"lastEarn","nameLocation":"1561:8:83","nodeType":"VariableDeclaration","scope":31058,"src":"1506:63:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":28859,"keyType":{"id":28855,"name":"address","nodeType":"ElementaryTypeName","src":"1514:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1506:47:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":28858,"keyType":{"id":28856,"name":"address","nodeType":"ElementaryTypeName","src":"1533:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1525:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28857,"name":"uint256","nodeType":"ElementaryTypeName","src":"1544:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"3ca068b6","id":28866,"mutability":"mutable","name":"userRewardPerTokenStored","nameLocation":"1638:24:83","nodeType":"VariableDeclaration","scope":31058,"src":"1575:87:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":28865,"keyType":{"id":28861,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1575:47:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":28864,"keyType":{"id":28862,"name":"address","nodeType":"ElementaryTypeName","src":"1602:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1594:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28863,"name":"uint256","nodeType":"ElementaryTypeName","src":"1613:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":28868,"mutability":"mutable","name":"totalSupply","nameLocation":"1684:11:83","nodeType":"VariableDeclaration","scope":31058,"src":"1669:26:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28867,"name":"uint256","nodeType":"ElementaryTypeName","src":"1669:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"70a08231","id":28872,"mutability":"mutable","name":"balanceOf","nameLocation":"1736:9:83","nodeType":"VariableDeclaration","scope":31058,"src":"1701:44:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28871,"keyType":{"id":28869,"name":"address","nodeType":"ElementaryTypeName","src":"1709:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1701:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28870,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"f301af42","id":28875,"mutability":"mutable","name":"rewards","nameLocation":"1769:7:83","nodeType":"VariableDeclaration","scope":31058,"src":"1752:24:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":28873,"name":"address","nodeType":"ElementaryTypeName","src":"1752:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28874,"nodeType":"ArrayTypeName","src":"1752:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"constant":false,"functionSelector":"4d5ce038","id":28879,"mutability":"mutable","name":"isReward","nameLocation":"1814:8:83","nodeType":"VariableDeclaration","scope":31058,"src":"1782:40:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":28878,"keyType":{"id":28876,"name":"address","nodeType":"ElementaryTypeName","src":"1790:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1782:24:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":28877,"name":"bool","nodeType":"ElementaryTypeName","src":"1801:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":28880,"nodeType":"StructuredDocumentation","src":"1829:70:83","text":"@notice A record of balance checkpoints for each account, by index"},"functionSelector":"0cdfebfa","id":28887,"mutability":"mutable","name":"checkpoints","nameLocation":"1962:11:83","nodeType":"VariableDeclaration","scope":31058,"src":"1904:69:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint))"},"typeName":{"id":28886,"keyType":{"id":28881,"name":"address","nodeType":"ElementaryTypeName","src":"1912:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1904:50:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint))"},"valueType":{"id":28885,"keyType":{"id":28882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1931:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1923:30:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint)"},"valueType":{"id":28884,"nodeType":"UserDefinedTypeName","pathNode":{"id":28883,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34205,"src":"1942:10:83"},"referencedDeclaration":34205,"src":"1942:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage_ptr","typeString":"struct IGaugeV2.Checkpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":28888,"nodeType":"StructuredDocumentation","src":"1980:54:83","text":"@notice The number of checkpoints for each account"},"functionSelector":"6fcfff45","id":28892,"mutability":"mutable","name":"numCheckpoints","nameLocation":"2074:14:83","nodeType":"VariableDeclaration","scope":31058,"src":"2039:49:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28891,"keyType":{"id":28889,"name":"address","nodeType":"ElementaryTypeName","src":"2047:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2039:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28890,"name":"uint256","nodeType":"ElementaryTypeName","src":"2058:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":28893,"nodeType":"StructuredDocumentation","src":"2095:68:83","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"f7412baf","id":28898,"mutability":"mutable","name":"supplyCheckpoints","nameLocation":"2212:17:83","nodeType":"VariableDeclaration","scope":31058,"src":"2168:61:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint)"},"typeName":{"id":28897,"keyType":{"id":28894,"name":"uint256","nodeType":"ElementaryTypeName","src":"2176:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2168:36:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint)"},"valueType":{"id":28896,"nodeType":"UserDefinedTypeName","pathNode":{"id":28895,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34215,"src":"2187:16:83"},"referencedDeclaration":34215,"src":"2187:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"}}},"visibility":"public"},{"constant":false,"documentation":{"id":28899,"nodeType":"StructuredDocumentation","src":"2236:37:83","text":"@notice The number of checkpoints"},"functionSelector":"e8111a12","id":28901,"mutability":"mutable","name":"supplyNumCheckpoints","nameLocation":"2293:20:83","nodeType":"VariableDeclaration","scope":31058,"src":"2278:35:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28900,"name":"uint256","nodeType":"ElementaryTypeName","src":"2278:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":28902,"nodeType":"StructuredDocumentation","src":"2320:68:83","text":"@notice A record of balance checkpoints for each token, by index"},"functionSelector":"01316ddf","id":28909,"mutability":"mutable","name":"rewardPerTokenCheckpoints","nameLocation":"2473:25:83","nodeType":"VariableDeclaration","scope":31058,"src":"2393:105:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint))"},"typeName":{"id":28908,"keyType":{"id":28903,"name":"address","nodeType":"ElementaryTypeName","src":"2401:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2393:64:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint))"},"valueType":{"id":28907,"keyType":{"id":28904,"name":"uint256","nodeType":"ElementaryTypeName","src":"2420:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2412:44:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint)"},"valueType":{"id":28906,"nodeType":"UserDefinedTypeName","pathNode":{"id":28905,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34210,"src":"2431:24:83"},"referencedDeclaration":34210,"src":"2431:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":28910,"nodeType":"StructuredDocumentation","src":"2505:52:83","text":"@notice The number of checkpoints for each token"},"functionSelector":"aa479652","id":28914,"mutability":"mutable","name":"rewardPerTokenNumCheckpoints","nameLocation":"2597:28:83","nodeType":"VariableDeclaration","scope":31058,"src":"2562:63:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":28913,"keyType":{"id":28911,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2562:27:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28912,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":28917,"mutability":"mutable","name":"_unlocked","nameLocation":"2681:9:83","nodeType":"VariableDeclaration","scope":31058,"src":"2664:30:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28915,"name":"uint256","nodeType":"ElementaryTypeName","src":"2664:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":28916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"body":{"id":28935,"nodeType":"Block","src":"2716:111:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28920,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28917,"src":"2734:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":28921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2734:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7265656e7472616e6379","id":28923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2750:12:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187","typeString":"literal_string \"reentrancy\""},"value":"reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187","typeString":"literal_string \"reentrancy\""}],"id":28919,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2726:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2726:37:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28925,"nodeType":"ExpressionStatement","src":"2726:37:83"},{"expression":{"id":28928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28926,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28917,"src":"2773:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":28927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2785:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2773:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28929,"nodeType":"ExpressionStatement","src":"2773:13:83"},{"id":28930,"nodeType":"PlaceholderStatement","src":"2796:1:83"},{"expression":{"id":28933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28931,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28917,"src":"2807:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":28932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2819:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2807:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28934,"nodeType":"ExpressionStatement","src":"2807:13:83"}]},"id":28936,"name":"lock","nameLocation":"2709:4:83","nodeType":"ModifierDefinition","parameters":{"id":28918,"nodeType":"ParameterList","parameters":[],"src":"2713:2:83"},"src":"2700:127:83","virtual":false,"visibility":"internal"},{"body":{"id":28953,"nodeType":"Block","src":"2880:72:83","statements":[{"expression":{"id":28945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28943,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28817,"src":"2890:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28944,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28938,"src":"2898:6:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2890:14:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28946,"nodeType":"ExpressionStatement","src":"2890:14:83"},{"expression":{"id":28951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28947,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"2914:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28949,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28940,"src":"2935:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28948,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"2925:9:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":28950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2925:20:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"2914:31:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":28952,"nodeType":"ExpressionStatement","src":"2914:31:83"}]},"id":28954,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28938,"mutability":"mutable","name":"_stake","nameLocation":"2853:6:83","nodeType":"VariableDeclaration","scope":28954,"src":"2845:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28937,"name":"address","nodeType":"ElementaryTypeName","src":"2845:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28940,"mutability":"mutable","name":"_registry","nameLocation":"2869:9:83","nodeType":"VariableDeclaration","scope":28954,"src":"2861:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28939,"name":"address","nodeType":"ElementaryTypeName","src":"2861:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2844:35:83"},"returnParameters":{"id":28942,"nodeType":"ParameterList","parameters":[],"src":"2880:0:83"},"scope":31058,"src":"2833:119:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":29068,"nodeType":"Block","src":"3472:950:83","statements":[{"assignments":[28965],"declarations":[{"constant":false,"id":28965,"mutability":"mutable","name":"nCheckpoints","nameLocation":"3490:12:83","nodeType":"VariableDeclaration","scope":29068,"src":"3482:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28964,"name":"uint256","nodeType":"ElementaryTypeName","src":"3482:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28969,"initialValue":{"baseExpression":{"id":28966,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28892,"src":"3505:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":28968,"indexExpression":{"id":28967,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28957,"src":"3520:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3505:23:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3482:46:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28970,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28965,"src":"3542:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":28971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3558:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3542:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28976,"nodeType":"IfStatement","src":"3538:56:83","trueBody":{"id":28975,"nodeType":"Block","src":"3561:33:83","statements":[{"expression":{"hexValue":"30","id":28973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3582:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":28963,"id":28974,"nodeType":"Return","src":"3575:8:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":28977,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"3651:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":28979,"indexExpression":{"id":28978,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28957,"src":"3663:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3651:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":28983,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28980,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28965,"src":"3672:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":28981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3687:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3672:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3651:38:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"id":28984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"3651:48:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":28985,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28959,"src":"3703:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3651:61:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28993,"nodeType":"IfStatement","src":"3647:117:83","trueBody":{"id":28992,"nodeType":"Block","src":"3714:50:83","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28987,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28965,"src":"3736:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":28988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3751:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3736:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28990,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3735:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28963,"id":28991,"nodeType":"Return","src":"3728:25:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":28994,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"3822:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":28996,"indexExpression":{"id":28995,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28957,"src":"3834:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3822:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":28998,"indexExpression":{"hexValue":"30","id":28997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3822:23:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"id":28999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"3822:33:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":29000,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28959,"src":"3858:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3822:45:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29005,"nodeType":"IfStatement","src":"3818:84:83","trueBody":{"id":29004,"nodeType":"Block","src":"3869:33:83","statements":[{"expression":{"hexValue":"30","id":29002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3890:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":28963,"id":29003,"nodeType":"Return","src":"3883:8:83"}]}},{"assignments":[29007],"declarations":[{"constant":false,"id":29007,"mutability":"mutable","name":"lower","nameLocation":"3920:5:83","nodeType":"VariableDeclaration","scope":29068,"src":"3912:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29006,"name":"uint256","nodeType":"ElementaryTypeName","src":"3912:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29009,"initialValue":{"hexValue":"30","id":29008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3928:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3912:17:83"},{"assignments":[29011],"declarations":[{"constant":false,"id":29011,"mutability":"mutable","name":"upper","nameLocation":"3947:5:83","nodeType":"VariableDeclaration","scope":29068,"src":"3939:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29010,"name":"uint256","nodeType":"ElementaryTypeName","src":"3939:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29015,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29012,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28965,"src":"3955:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3970:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3955:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3939:32:83"},{"body":{"id":29064,"nodeType":"Block","src":"4003:391:83","statements":[{"assignments":[29020],"declarations":[{"constant":false,"id":29020,"mutability":"mutable","name":"center","nameLocation":"4025:6:83","nodeType":"VariableDeclaration","scope":29064,"src":"4017:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29019,"name":"uint256","nodeType":"ElementaryTypeName","src":"4017:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29029,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29021,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29011,"src":"4034:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29022,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29011,"src":"4043:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":29023,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29007,"src":"4051:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4043:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29025,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4042:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":29026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4060:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4042:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4034:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4017:44:83"},{"assignments":[29032],"declarations":[{"constant":false,"id":29032,"mutability":"mutable","name":"cp","nameLocation":"4120:2:83","nodeType":"VariableDeclaration","scope":29064,"src":"4102:20:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint"},"typeName":{"id":29031,"nodeType":"UserDefinedTypeName","pathNode":{"id":29030,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34205,"src":"4102:10:83"},"referencedDeclaration":34205,"src":"4102:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage_ptr","typeString":"struct IGaugeV2.Checkpoint"}},"visibility":"internal"}],"id":29038,"initialValue":{"baseExpression":{"baseExpression":{"id":29033,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"4125:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":29035,"indexExpression":{"id":29034,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28957,"src":"4137:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4125:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":29037,"indexExpression":{"id":29036,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29020,"src":"4146:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4125:28:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4102:51:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29039,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29032,"src":"4171:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"id":29040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"4171:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29041,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28959,"src":"4187:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4171:25:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29046,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29032,"src":"4254:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"id":29047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"4254:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":29048,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28959,"src":"4269:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4254:24:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":29061,"nodeType":"Block","src":"4333:51:83","statements":[{"expression":{"id":29059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29055,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29011,"src":"4351:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29056,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29020,"src":"4359:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4368:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4359:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4351:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29060,"nodeType":"ExpressionStatement","src":"4351:18:83"}]},"id":29062,"nodeType":"IfStatement","src":"4250:134:83","trueBody":{"id":29054,"nodeType":"Block","src":"4280:47:83","statements":[{"expression":{"id":29052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29050,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29007,"src":"4298:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29051,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29020,"src":"4306:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4298:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29053,"nodeType":"ExpressionStatement","src":"4298:14:83"}]}},"id":29063,"nodeType":"IfStatement","src":"4167:217:83","trueBody":{"id":29045,"nodeType":"Block","src":"4198:46:83","statements":[{"expression":{"id":29043,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29020,"src":"4223:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28963,"id":29044,"nodeType":"Return","src":"4216:13:83"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29016,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29011,"src":"3988:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":29017,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29007,"src":"3996:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3988:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29065,"nodeType":"WhileStatement","src":"3981:413:83"},{"expression":{"id":29066,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29007,"src":"4410:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28963,"id":29067,"nodeType":"Return","src":"4403:12:83"}]},"documentation":{"id":28955,"nodeType":"StructuredDocumentation","src":"2958:385:83","text":" @notice Determine the prior balance for an account as of a block number\n @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n @param account The address of the account to check\n @param timestamp The timestamp to get the balance at\n @return The balance the account had as of the given block"},"functionSelector":"115c6f39","id":29069,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorBalanceIndex","nameLocation":"3357:20:83","nodeType":"FunctionDefinition","parameters":{"id":28960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28957,"mutability":"mutable","name":"account","nameLocation":"3386:7:83","nodeType":"VariableDeclaration","scope":29069,"src":"3378:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28956,"name":"address","nodeType":"ElementaryTypeName","src":"3378:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28959,"mutability":"mutable","name":"timestamp","nameLocation":"3403:9:83","nodeType":"VariableDeclaration","scope":29069,"src":"3395:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28958,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3377:36:83"},"returnParameters":{"id":28963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29069,"src":"3459:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28961,"name":"uint256","nodeType":"ElementaryTypeName","src":"3459:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3458:9:83"},"scope":31058,"src":"3348:1074:83","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":29172,"nodeType":"Block","src":"4534:944:83","statements":[{"assignments":[29077],"declarations":[{"constant":false,"id":29077,"mutability":"mutable","name":"nCheckpoints","nameLocation":"4552:12:83","nodeType":"VariableDeclaration","scope":29172,"src":"4544:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29076,"name":"uint256","nodeType":"ElementaryTypeName","src":"4544:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29079,"initialValue":{"id":29078,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"4567:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4544:43:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29080,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"4601:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":29081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4617:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4601:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29086,"nodeType":"IfStatement","src":"4597:56:83","trueBody":{"id":29085,"nodeType":"Block","src":"4620:33:83","statements":[{"expression":{"hexValue":"30","id":29083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4641:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":29075,"id":29084,"nodeType":"Return","src":"4634:8:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":29087,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"4710:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29091,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29088,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"4728:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4743:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4728:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4710:35:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"id":29092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"4710:45:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":29093,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29071,"src":"4759:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4710:58:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29101,"nodeType":"IfStatement","src":"4706:114:83","trueBody":{"id":29100,"nodeType":"Block","src":"4770:50:83","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29095,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"4792:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4807:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4792:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4791:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29075,"id":29099,"nodeType":"Return","src":"4784:25:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":29102,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"4878:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29104,"indexExpression":{"hexValue":"30","id":29103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4896:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4878:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"id":29105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"4878:30:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":29106,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29071,"src":"4911:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4878:42:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29111,"nodeType":"IfStatement","src":"4874:81:83","trueBody":{"id":29110,"nodeType":"Block","src":"4922:33:83","statements":[{"expression":{"hexValue":"30","id":29108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4943:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":29075,"id":29109,"nodeType":"Return","src":"4936:8:83"}]}},{"assignments":[29113],"declarations":[{"constant":false,"id":29113,"mutability":"mutable","name":"lower","nameLocation":"4973:5:83","nodeType":"VariableDeclaration","scope":29172,"src":"4965:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29112,"name":"uint256","nodeType":"ElementaryTypeName","src":"4965:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29115,"initialValue":{"hexValue":"30","id":29114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4981:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4965:17:83"},{"assignments":[29117],"declarations":[{"constant":false,"id":29117,"mutability":"mutable","name":"upper","nameLocation":"5000:5:83","nodeType":"VariableDeclaration","scope":29172,"src":"4992:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29116,"name":"uint256","nodeType":"ElementaryTypeName","src":"4992:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29121,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29118,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"5008:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5023:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5008:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4992:32:83"},{"body":{"id":29168,"nodeType":"Block","src":"5056:394:83","statements":[{"assignments":[29126],"declarations":[{"constant":false,"id":29126,"mutability":"mutable","name":"center","nameLocation":"5078:6:83","nodeType":"VariableDeclaration","scope":29168,"src":"5070:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29125,"name":"uint256","nodeType":"ElementaryTypeName","src":"5070:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29135,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29127,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29117,"src":"5087:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29128,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29117,"src":"5096:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":29129,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29113,"src":"5104:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5096:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5095:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":29132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5113:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5095:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5087:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5070:44:83"},{"assignments":[29138],"declarations":[{"constant":false,"id":29138,"mutability":"mutable","name":"cp","nameLocation":"5179:2:83","nodeType":"VariableDeclaration","scope":29168,"src":"5155:26:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"},"typeName":{"id":29137,"nodeType":"UserDefinedTypeName","pathNode":{"id":29136,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34215,"src":"5155:16:83"},"referencedDeclaration":34215,"src":"5155:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"}},"visibility":"internal"}],"id":29142,"initialValue":{"baseExpression":{"id":29139,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"5184:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29141,"indexExpression":{"id":29140,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29126,"src":"5202:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5184:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5155:54:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29143,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29138,"src":"5227:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":29144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"5227:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29145,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29071,"src":"5243:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5227:25:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29150,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29138,"src":"5310:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":29151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"5310:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":29152,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29071,"src":"5325:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5310:24:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":29165,"nodeType":"Block","src":"5389:51:83","statements":[{"expression":{"id":29163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29159,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29117,"src":"5407:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29160,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29126,"src":"5415:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5424:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5415:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5407:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29164,"nodeType":"ExpressionStatement","src":"5407:18:83"}]},"id":29166,"nodeType":"IfStatement","src":"5306:134:83","trueBody":{"id":29158,"nodeType":"Block","src":"5336:47:83","statements":[{"expression":{"id":29156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29154,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29113,"src":"5354:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29155,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29126,"src":"5362:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5354:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29157,"nodeType":"ExpressionStatement","src":"5354:14:83"}]}},"id":29167,"nodeType":"IfStatement","src":"5223:217:83","trueBody":{"id":29149,"nodeType":"Block","src":"5254:46:83","statements":[{"expression":{"id":29147,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29126,"src":"5279:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29075,"id":29148,"nodeType":"Return","src":"5272:13:83"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29122,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29117,"src":"5041:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":29123,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29113,"src":"5049:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5041:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29169,"nodeType":"WhileStatement","src":"5034:416:83"},{"expression":{"id":29170,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29113,"src":"5466:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29075,"id":29171,"nodeType":"Return","src":"5459:12:83"}]},"functionSelector":"76f4be36","id":29173,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorSupplyIndex","nameLocation":"4437:19:83","nodeType":"FunctionDefinition","parameters":{"id":29072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29071,"mutability":"mutable","name":"timestamp","nameLocation":"4465:9:83","nodeType":"VariableDeclaration","scope":29173,"src":"4457:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29070,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:19:83"},"returnParameters":{"id":29075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29173,"src":"4521:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29073,"name":"uint256","nodeType":"ElementaryTypeName","src":"4521:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4520:9:83"},"scope":31058,"src":"4428:1050:83","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":29321,"nodeType":"Block","src":"5617:1427:83","statements":[{"assignments":[29185],"declarations":[{"constant":false,"id":29185,"mutability":"mutable","name":"nCheckpoints","nameLocation":"5635:12:83","nodeType":"VariableDeclaration","scope":29321,"src":"5627:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29184,"name":"uint256","nodeType":"ElementaryTypeName","src":"5627:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29189,"initialValue":{"baseExpression":{"id":29186,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28914,"src":"5650:28:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29188,"indexExpression":{"id":29187,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"5679:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5650:35:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5627:58:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29190,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29185,"src":"5699:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":29191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5715:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5699:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29198,"nodeType":"IfStatement","src":"5695:61:83","trueBody":{"id":29197,"nodeType":"Block","src":"5718:38:83","statements":[{"expression":{"components":[{"hexValue":"30","id":29193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5740:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":29194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5743:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":29195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5739:6:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":29183,"id":29196,"nodeType":"Return","src":"5732:13:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":29199,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"5826:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29201,"indexExpression":{"id":29200,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"5852:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5826:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29205,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29202,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29185,"src":"5859:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5874:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5859:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5826:50:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"5826:60:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":29207,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29177,"src":"5902:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5826:85:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29228,"nodeType":"IfStatement","src":"5809:341:83","trueBody":{"id":29227,"nodeType":"Block","src":"5922:228:83","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":29209,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"5961:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29211,"indexExpression":{"id":29210,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"5987:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5961:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29215,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29212,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29185,"src":"5994:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6009:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5994:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5961:50:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34209,"src":"5961:86:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":29217,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"6065:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29219,"indexExpression":{"id":29218,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"6091:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6065:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29223,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29220,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29185,"src":"6098:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6113:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6098:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6065:50:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"6065:60:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29225,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5943:196:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":29183,"id":29226,"nodeType":"Return","src":"5936:203:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":29229,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"6208:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29231,"indexExpression":{"id":29230,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"6234:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6208:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29233,"indexExpression":{"hexValue":"30","id":29232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6241:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6208:35:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"6208:45:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":29235,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29177,"src":"6256:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6208:57:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29242,"nodeType":"IfStatement","src":"6204:101:83","trueBody":{"id":29241,"nodeType":"Block","src":"6267:38:83","statements":[{"expression":{"components":[{"hexValue":"30","id":29237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6289:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":29238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6292:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":29239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6288:6:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":29183,"id":29240,"nodeType":"Return","src":"6281:13:83"}]}},{"assignments":[29244],"declarations":[{"constant":false,"id":29244,"mutability":"mutable","name":"lower","nameLocation":"6323:5:83","nodeType":"VariableDeclaration","scope":29321,"src":"6315:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29243,"name":"uint256","nodeType":"ElementaryTypeName","src":"6315:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29246,"initialValue":{"hexValue":"30","id":29245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6331:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6315:17:83"},{"assignments":[29248],"declarations":[{"constant":false,"id":29248,"mutability":"mutable","name":"upper","nameLocation":"6350:5:83","nodeType":"VariableDeclaration","scope":29321,"src":"6342:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29247,"name":"uint256","nodeType":"ElementaryTypeName","src":"6342:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29252,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29249,"name":"nCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29185,"src":"6358:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6373:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6358:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6342:32:83"},{"body":{"id":29305,"nodeType":"Block","src":"6406:474:83","statements":[{"assignments":[29257],"declarations":[{"constant":false,"id":29257,"mutability":"mutable","name":"center","nameLocation":"6428:6:83","nodeType":"VariableDeclaration","scope":29305,"src":"6420:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29256,"name":"uint256","nodeType":"ElementaryTypeName","src":"6420:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29266,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29258,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29248,"src":"6437:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29259,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29248,"src":"6446:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":29260,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29244,"src":"6454:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6446:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29262,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6445:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":29263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6463:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6445:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6437:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6420:44:83"},{"assignments":[29269],"declarations":[{"constant":false,"id":29269,"mutability":"mutable","name":"cp","nameLocation":"6537:2:83","nodeType":"VariableDeclaration","scope":29305,"src":"6505:34:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_memory_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint"},"typeName":{"id":29268,"nodeType":"UserDefinedTypeName","pathNode":{"id":29267,"name":"RewardPerTokenCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34210,"src":"6505:24:83"},"referencedDeclaration":34210,"src":"6505:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint"}},"visibility":"internal"}],"id":29275,"initialValue":{"baseExpression":{"baseExpression":{"id":29270,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"6542:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29272,"indexExpression":{"id":29271,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"6585:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6542:62:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29274,"indexExpression":{"id":29273,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29257,"src":"6605:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6542:70:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6505:107:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29276,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29269,"src":"6630:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_memory_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint memory"}},"id":29277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"6630:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29278,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29177,"src":"6646:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6630:25:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29287,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29269,"src":"6740:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_memory_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint memory"}},"id":29288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"6740:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":29289,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29177,"src":"6755:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6740:24:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":29302,"nodeType":"Block","src":"6819:51:83","statements":[{"expression":{"id":29300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29296,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29248,"src":"6837:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29297,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29257,"src":"6845:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6854:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6845:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6837:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29301,"nodeType":"ExpressionStatement","src":"6837:18:83"}]},"id":29303,"nodeType":"IfStatement","src":"6736:134:83","trueBody":{"id":29295,"nodeType":"Block","src":"6766:47:83","statements":[{"expression":{"id":29293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29291,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29244,"src":"6784:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29292,"name":"center","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29257,"src":"6792:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6784:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29294,"nodeType":"ExpressionStatement","src":"6784:14:83"}]}},"id":29304,"nodeType":"IfStatement","src":"6626:244:83","trueBody":{"id":29286,"nodeType":"Block","src":"6657:73:83","statements":[{"expression":{"components":[{"expression":{"id":29280,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29269,"src":"6683:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_memory_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint memory"}},"id":29281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34209,"src":"6683:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":29282,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29269,"src":"6702:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_memory_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint memory"}},"id":29283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"6702:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29284,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6682:33:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":29183,"id":29285,"nodeType":"Return","src":"6675:40:83"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29253,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29248,"src":"6391:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":29254,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29244,"src":"6399:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6391:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29306,"nodeType":"WhileStatement","src":"6384:496:83"},{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":29307,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"6910:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29309,"indexExpression":{"id":29308,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"6936:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6910:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29311,"indexExpression":{"id":29310,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29244,"src":"6943:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6910:39:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34209,"src":"6910:54:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":29313,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"6978:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29315,"indexExpression":{"id":29314,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29175,"src":"7004:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6978:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29317,"indexExpression":{"id":29316,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29244,"src":"7011:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6978:39:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"6978:49:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29319,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6896:141:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":29183,"id":29320,"nodeType":"Return","src":"6889:148:83"}]},"functionSelector":"fd314098","id":29322,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorRewardPerToken","nameLocation":"5493:22:83","nodeType":"FunctionDefinition","parameters":{"id":29178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29175,"mutability":"mutable","name":"token","nameLocation":"5524:5:83","nodeType":"VariableDeclaration","scope":29322,"src":"5516:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29174,"name":"address","nodeType":"ElementaryTypeName","src":"5516:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29177,"mutability":"mutable","name":"timestamp","nameLocation":"5539:9:83","nodeType":"VariableDeclaration","scope":29322,"src":"5531:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29176,"name":"uint256","nodeType":"ElementaryTypeName","src":"5531:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5515:34:83"},"returnParameters":{"id":29183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29322,"src":"5595:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29179,"name":"uint256","nodeType":"ElementaryTypeName","src":"5595:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29322,"src":"5604:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29181,"name":"uint256","nodeType":"ElementaryTypeName","src":"5604:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5594:18:83"},"scope":31058,"src":"5484:1560:83","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":29387,"nodeType":"Block","src":"7119:531:83","statements":[{"assignments":[29330],"declarations":[{"constant":false,"id":29330,"mutability":"mutable","name":"_timestamp","nameLocation":"7137:10:83","nodeType":"VariableDeclaration","scope":29387,"src":"7129:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29329,"name":"uint256","nodeType":"ElementaryTypeName","src":"7129:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29333,"initialValue":{"expression":{"id":29331,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7150:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7150:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7129:36:83"},{"assignments":[29335],"declarations":[{"constant":false,"id":29335,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"7183:13:83","nodeType":"VariableDeclaration","scope":29387,"src":"7175:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29334,"name":"uint256","nodeType":"ElementaryTypeName","src":"7175:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29339,"initialValue":{"baseExpression":{"id":29336,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28892,"src":"7199:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29338,"indexExpression":{"id":29337,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29324,"src":"7214:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:23:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7175:47:83"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":29353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29340,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"7250:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":29341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7266:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7250:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":29343,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"7283:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":29345,"indexExpression":{"id":29344,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29324,"src":"7295:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7283:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":29349,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29346,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"7304:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7320:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7304:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7283:39:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"id":29350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"7283:49:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29351,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29330,"src":"7336:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7283:63:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7250:96:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":29385,"nodeType":"Block","src":"7447:197:83","statements":[{"expression":{"id":29375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":29366,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"7461:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":29369,"indexExpression":{"id":29367,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29324,"src":"7473:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7461:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":29370,"indexExpression":{"id":29368,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"7482:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7461:35:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":29372,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29330,"src":"7527:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29373,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29326,"src":"7555:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29371,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34205,"src":"7499:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$34205_storage_ptr_$","typeString":"type(struct IGaugeV2.Checkpoint storage pointer)"}},"id":29374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7499:77:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"src":"7461:115:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"id":29376,"nodeType":"ExpressionStatement","src":"7461:115:83"},{"expression":{"id":29383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29377,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28892,"src":"7590:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29379,"indexExpression":{"id":29378,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29324,"src":"7605:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7590:23:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29380,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"7616:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":29381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7632:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7616:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7590:43:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29384,"nodeType":"ExpressionStatement","src":"7590:43:83"}]},"id":29386,"nodeType":"IfStatement","src":"7233:411:83","trueBody":{"id":29365,"nodeType":"Block","src":"7357:84:83","statements":[{"expression":{"id":29363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":29354,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"7371:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":29359,"indexExpression":{"id":29355,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29324,"src":"7383:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7371:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":29360,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29356,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"7392:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7408:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7392:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7371:39:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"id":29361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34204,"src":"7371:49:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29362,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29326,"src":"7423:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7371:59:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29364,"nodeType":"ExpressionStatement","src":"7371:59:83"}]}}]},"id":29388,"implemented":true,"kind":"function","modifiers":[],"name":"_writeCheckpoint","nameLocation":"7059:16:83","nodeType":"FunctionDefinition","parameters":{"id":29327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29324,"mutability":"mutable","name":"account","nameLocation":"7084:7:83","nodeType":"VariableDeclaration","scope":29388,"src":"7076:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29323,"name":"address","nodeType":"ElementaryTypeName","src":"7076:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29326,"mutability":"mutable","name":"balance","nameLocation":"7101:7:83","nodeType":"VariableDeclaration","scope":29388,"src":"7093:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29325,"name":"uint256","nodeType":"ElementaryTypeName","src":"7093:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7075:34:83"},"returnParameters":{"id":29328,"nodeType":"ParameterList","parameters":[],"src":"7119:0:83"},"scope":31058,"src":"7050:600:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":29450,"nodeType":"Block","src":"7785:573:83","statements":[{"assignments":[29398],"declarations":[{"constant":false,"id":29398,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"7803:13:83","nodeType":"VariableDeclaration","scope":29450,"src":"7795:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29397,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29402,"initialValue":{"baseExpression":{"id":29399,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28914,"src":"7819:28:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29401,"indexExpression":{"id":29400,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29390,"src":"7848:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7819:35:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:59:83"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":29416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29403,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29398,"src":"7882:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":29404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7898:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7882:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":29406,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"7915:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29408,"indexExpression":{"id":29407,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29390,"src":"7941:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7915:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29412,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29409,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29398,"src":"7948:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7964:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7948:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7915:51:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"7915:61:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29414,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29394,"src":"7992:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7915:86:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7882:119:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":29448,"nodeType":"Block","src":"8135:217:83","statements":[{"expression":{"id":29438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":29429,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"8149:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29432,"indexExpression":{"id":29430,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29390,"src":"8175:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8149:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29433,"indexExpression":{"id":29431,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29398,"src":"8199:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8149:77:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":29435,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29394,"src":"8254:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29436,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29392,"src":"8265:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29434,"name":"RewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34210,"src":"8229:24:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_ptr_$","typeString":"type(struct IGaugeV2.RewardPerTokenCheckpoint storage pointer)"}},"id":29437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8229:43:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_memory_ptr","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint memory"}},"src":"8149:123:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29439,"nodeType":"ExpressionStatement","src":"8149:123:83"},{"expression":{"id":29446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29440,"name":"rewardPerTokenNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28914,"src":"8286:28:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29442,"indexExpression":{"id":29441,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29390,"src":"8315:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8286:35:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29443,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29398,"src":"8324:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":29444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8340:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8324:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8286:55:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29447,"nodeType":"ExpressionStatement","src":"8286:55:83"}]},"id":29449,"nodeType":"IfStatement","src":"7865:487:83","trueBody":{"id":29428,"nodeType":"Block","src":"8012:117:83","statements":[{"expression":{"id":29426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":29417,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"8026:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":29422,"indexExpression":{"id":29418,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29390,"src":"8052:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8026:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":29423,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29419,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29398,"src":"8059:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8075:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8059:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8026:51:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":29424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPerToken","nodeType":"MemberAccess","referencedDeclaration":34209,"src":"8026:83:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29425,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29392,"src":"8112:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8026:92:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29427,"nodeType":"ExpressionStatement","src":"8026:92:83"}]}}]},"id":29451,"implemented":true,"kind":"function","modifiers":[],"name":"_writeRewardPerTokenCheckpoint","nameLocation":"7665:30:83","nodeType":"FunctionDefinition","parameters":{"id":29395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29390,"mutability":"mutable","name":"token","nameLocation":"7713:5:83","nodeType":"VariableDeclaration","scope":29451,"src":"7705:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29389,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29392,"mutability":"mutable","name":"reward","nameLocation":"7736:6:83","nodeType":"VariableDeclaration","scope":29451,"src":"7728:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29391,"name":"uint256","nodeType":"ElementaryTypeName","src":"7728:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29394,"mutability":"mutable","name":"timestamp","nameLocation":"7760:9:83","nodeType":"VariableDeclaration","scope":29451,"src":"7752:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29393,"name":"uint256","nodeType":"ElementaryTypeName","src":"7752:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7695:80:83"},"returnParameters":{"id":29396,"nodeType":"ParameterList","parameters":[],"src":"7785:0:83"},"scope":31058,"src":"7656:702:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":29502,"nodeType":"Block","src":"8407:531:83","statements":[{"assignments":[29455],"declarations":[{"constant":false,"id":29455,"mutability":"mutable","name":"_nCheckPoints","nameLocation":"8425:13:83","nodeType":"VariableDeclaration","scope":29502,"src":"8417:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29454,"name":"uint256","nodeType":"ElementaryTypeName","src":"8417:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29457,"initialValue":{"id":29456,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"8441:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8417:44:83"},{"assignments":[29459],"declarations":[{"constant":false,"id":29459,"mutability":"mutable","name":"_timestamp","nameLocation":"8479:10:83","nodeType":"VariableDeclaration","scope":29502,"src":"8471:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29458,"name":"uint256","nodeType":"ElementaryTypeName","src":"8471:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29462,"initialValue":{"expression":{"id":29460,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8492:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8492:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8471:36:83"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":29474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29463,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29455,"src":"8535:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":29464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8551:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8535:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":29466,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"8568:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29470,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29467,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29455,"src":"8586:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8602:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8586:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8568:36:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"id":29471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"8568:46:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29472,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29459,"src":"8618:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8568:60:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8535:93:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":29500,"nodeType":"Block","src":"8729:203:83","statements":[{"expression":{"id":29492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29485,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"8743:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29487,"indexExpression":{"id":29486,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29455,"src":"8761:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8743:32:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":29489,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29459,"src":"8812:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29490,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"8840:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29488,"name":"SupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34215,"src":"8778:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SupplyCheckpoint_$34215_storage_ptr_$","typeString":"type(struct IGaugeV2.SupplyCheckpoint storage pointer)"}},"id":29491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8778:89:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"src":"8743:124:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"id":29493,"nodeType":"ExpressionStatement","src":"8743:124:83"},{"expression":{"id":29498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29494,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"8881:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29495,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29455,"src":"8904:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":29496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8920:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8904:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8881:40:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29499,"nodeType":"ExpressionStatement","src":"8881:40:83"}]},"id":29501,"nodeType":"IfStatement","src":"8518:414:83","trueBody":{"id":29484,"nodeType":"Block","src":"8639:84:83","statements":[{"expression":{"id":29482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":29475,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"8653:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29479,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29476,"name":"_nCheckPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29455,"src":"8671:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8671:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8653:36:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"id":29480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34214,"src":"8653:43:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29481,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"8699:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8653:59:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29483,"nodeType":"ExpressionStatement","src":"8653:59:83"}]}}]},"id":29503,"implemented":true,"kind":"function","modifiers":[],"name":"_writeSupplyCheckpoint","nameLocation":"8373:22:83","nodeType":"FunctionDefinition","parameters":{"id":29452,"nodeType":"ParameterList","parameters":[],"src":"8395:2:83"},"returnParameters":{"id":29453,"nodeType":"ParameterList","parameters":[],"src":"8407:0:83"},"scope":31058,"src":"8364:574:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":29511,"nodeType":"Block","src":"9005:38:83","statements":[{"expression":{"expression":{"id":29508,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28875,"src":"9022:7:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":29509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9022:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29507,"id":29510,"nodeType":"Return","src":"9015:21:83"}]},"functionSelector":"e6886396","id":29512,"implemented":true,"kind":"function","modifiers":[],"name":"rewardsListLength","nameLocation":"8953:17:83","nodeType":"FunctionDefinition","parameters":{"id":29504,"nodeType":"ParameterList","parameters":[],"src":"8970:2:83"},"returnParameters":{"id":29507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29512,"src":"8996:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29505,"name":"uint256","nodeType":"ElementaryTypeName","src":"8996:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8995:9:83"},"scope":31058,"src":"8944:99:83","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":29528,"nodeType":"Block","src":"9249:70:83","statements":[{"expression":{"arguments":[{"expression":{"id":29521,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9275:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9275:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":29523,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"9292:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29525,"indexExpression":{"id":29524,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29514,"src":"9305:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9292:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29519,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"9266:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"9266:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9266:46:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29518,"id":29527,"nodeType":"Return","src":"9259:53:83"}]},"functionSelector":"638634ee","id":29529,"implemented":true,"kind":"function","modifiers":[],"name":"lastTimeRewardApplicable","nameLocation":"9151:24:83","nodeType":"FunctionDefinition","parameters":{"id":29515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29514,"mutability":"mutable","name":"token","nameLocation":"9184:5:83","nodeType":"VariableDeclaration","scope":29529,"src":"9176:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29513,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9175:15:83"},"returnParameters":{"id":29518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29529,"src":"9236:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29516,"name":"uint256","nodeType":"ElementaryTypeName","src":"9236:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9235:9:83"},"scope":31058,"src":"9142:177:83","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[34096],"body":{"id":29702,"nodeType":"Block","src":"9437:1248:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":29540,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"9447:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":29542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"9447:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":29543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9447:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29544,"nodeType":"ExpressionStatement","src":"9447:26:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":29556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":29549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29546,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9504:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9504:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29548,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"9518:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9504:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":29555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29550,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9529:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9529:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":29552,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"9543:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":29553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"9543:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":29554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9543:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9529:35:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9504:60:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73656e646572206e6f74206163636f756e74206f7220766f746572","id":29557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9578:29:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d","typeString":"literal_string \"sender not account or voter\""},"value":"sender not account or voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d","typeString":"literal_string \"sender not account or voter\""}],"id":29545,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9483:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":29558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9483:134:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29559,"nodeType":"ExpressionStatement","src":"9483:134:83"},{"expression":{"id":29562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29560,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28917,"src":"9628:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":29561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9640:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9628:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29563,"nodeType":"ExpressionStatement","src":"9628:13:83"},{"expression":{"arguments":[{"arguments":[{"id":29572,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9707:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}],"id":29571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9699:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29570,"name":"address","nodeType":"ElementaryTypeName","src":"9699:7:83","typeDescriptions":{}}},"id":29573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9699:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":29565,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"9665:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":29566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"9665:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":29567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9665:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":29564,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"9651:13:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoterV2_$34597_$","typeString":"type(contract IGaugeVoterV2)"}},"id":29568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9651:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"id":29569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"distribute","nodeType":"MemberAccess","referencedDeclaration":34475,"src":"9651:47:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":29574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9651:62:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29575,"nodeType":"ExpressionStatement","src":"9651:62:83"},{"expression":{"id":29578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29576,"name":"_unlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28917,"src":"9723:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":29577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9735:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9723:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29579,"nodeType":"ExpressionStatement","src":"9723:13:83"},{"body":{"id":29664,"nodeType":"Block","src":"9791:544:83","statements":[{"expression":{"id":29607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":29591,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"9823:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29595,"indexExpression":{"baseExpression":{"id":29592,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"9844:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29594,"indexExpression":{"id":29593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"9851:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9844:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9823:31:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":29596,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28847,"src":"9872:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29600,"indexExpression":{"baseExpression":{"id":29597,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"9887:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29599,"indexExpression":{"id":29598,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"9894:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9887:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9872:25:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29601,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9805:106:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":29603,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"9936:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29605,"indexExpression":{"id":29604,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"9943:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9936:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":29602,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30191,"src":"9914:21:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":29606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9914:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"9805:141:83","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29608,"nodeType":"ExpressionStatement","src":"9805:141:83"},{"assignments":[29610],"declarations":[{"constant":false,"id":29610,"mutability":"mutable","name":"_reward","nameLocation":"9969:7:83","nodeType":"VariableDeclaration","scope":29664,"src":"9961:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29609,"name":"uint256","nodeType":"ElementaryTypeName","src":"9961:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29617,"initialValue":{"arguments":[{"baseExpression":{"id":29612,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"9986:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29614,"indexExpression":{"id":29613,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"9993:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9986:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29615,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"9997:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":29611,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30358,"src":"9979:6:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":29616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9979:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9961:44:83"},{"expression":{"id":29627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":29618,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28860,"src":"10019:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":29623,"indexExpression":{"baseExpression":{"id":29619,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"10028:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29621,"indexExpression":{"id":29620,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"10035:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10028:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10019:19:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29624,"indexExpression":{"id":29622,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10039:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10019:28:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":29625,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10050:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10050:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10019:46:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29628,"nodeType":"ExpressionStatement","src":"10019:46:83"},{"expression":{"id":29641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":29629,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28866,"src":"10079:24:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":29634,"indexExpression":{"baseExpression":{"id":29630,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"10104:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29632,"indexExpression":{"id":29631,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"10111:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10104:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10079:35:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29635,"indexExpression":{"id":29633,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10115:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10079:44:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":29636,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"10126:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29640,"indexExpression":{"baseExpression":{"id":29637,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"10164:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29639,"indexExpression":{"id":29638,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"10171:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10164:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10126:61:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10079:108:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29642,"nodeType":"ExpressionStatement","src":"10079:108:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29643,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29610,"src":"10205:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":29644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10215:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10205:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29654,"nodeType":"IfStatement","src":"10201:59:83","trueBody":{"expression":{"arguments":[{"baseExpression":{"id":29647,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"10232:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29649,"indexExpression":{"id":29648,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"10239:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10232:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29650,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10243:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29651,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29610,"src":"10252:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29646,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30928,"src":"10218:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10218:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29653,"nodeType":"ExpressionStatement","src":"10218:42:83"}},{"eventCall":{"arguments":[{"expression":{"id":29656,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10293:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10293:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":29658,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"10305:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29660,"indexExpression":{"id":29659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"10312:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10305:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29661,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29610,"src":"10316:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29655,"name":"ClaimRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34251,"src":"10280:12:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10280:44:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29663,"nodeType":"EmitStatement","src":"10275:49:83"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29584,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"9767:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":29585,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"9771:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":29586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9771:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9767:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29665,"initializationExpression":{"assignments":[29581],"declarations":[{"constant":false,"id":29581,"mutability":"mutable","name":"i","nameLocation":"9760:1:83","nodeType":"VariableDeclaration","scope":29665,"src":"9752:9:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29580,"name":"uint256","nodeType":"ElementaryTypeName","src":"9752:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29583,"initialValue":{"hexValue":"30","id":29582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9764:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9752:13:83"},"loopExpression":{"expression":{"id":29589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9786:3:83","subExpression":{"id":29588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29581,"src":"9786:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29590,"nodeType":"ExpressionStatement","src":"9786:3:83"},"nodeType":"ForStatement","src":"9747:588:83"},{"assignments":[29667],"declarations":[{"constant":false,"id":29667,"mutability":"mutable","name":"_derivedBalance","nameLocation":"10353:15:83","nodeType":"VariableDeclaration","scope":29702,"src":"10345:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29666,"name":"uint256","nodeType":"ElementaryTypeName","src":"10345:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29671,"initialValue":{"baseExpression":{"id":29668,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"10371:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29670,"indexExpression":{"id":29669,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10387:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10371:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10345:50:83"},{"expression":{"id":29674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29672,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"10405:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":29673,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29667,"src":"10422:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10405:32:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29675,"nodeType":"ExpressionStatement","src":"10405:32:83"},{"expression":{"id":29680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29676,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29667,"src":"10447:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":29678,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10480:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":29677,"name":"derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29805,"src":"10465:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":29679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10465:23:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10447:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29681,"nodeType":"ExpressionStatement","src":"10447:41:83"},{"expression":{"id":29686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29682,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"10498:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29684,"indexExpression":{"id":29683,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10514:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10498:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29685,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29667,"src":"10525:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10498:42:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29687,"nodeType":"ExpressionStatement","src":"10498:42:83"},{"expression":{"id":29690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29688,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"10550:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":29689,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29667,"src":"10567:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10550:32:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29691,"nodeType":"ExpressionStatement","src":"10550:32:83"},{"expression":{"arguments":[{"id":29693,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10610:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":29694,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"10619:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29696,"indexExpression":{"id":29695,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29531,"src":"10635:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10619:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29692,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29388,"src":"10593:16:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":29697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10593:51:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29698,"nodeType":"ExpressionStatement","src":"10593:51:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":29699,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29503,"src":"10654:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":29700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10654:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29701,"nodeType":"ExpressionStatement","src":"10654:24:83"}]},"functionSelector":"31279d3d","id":29703,"implemented":true,"kind":"function","modifiers":[{"id":29538,"kind":"modifierInvocation","modifierName":{"id":29537,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":28936,"src":"9428:4:83"},"nodeType":"ModifierInvocation","src":"9428:4:83"}],"name":"getReward","nameLocation":"9334:9:83","nodeType":"FunctionDefinition","overrides":{"id":29536,"nodeType":"OverrideSpecifier","overrides":[],"src":"9411:8:83"},"parameters":{"id":29535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29531,"mutability":"mutable","name":"account","nameLocation":"9352:7:83","nodeType":"VariableDeclaration","scope":29703,"src":"9344:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29530,"name":"address","nodeType":"ElementaryTypeName","src":"9344:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29534,"mutability":"mutable","name":"tokens","nameLocation":"9378:6:83","nodeType":"VariableDeclaration","scope":29703,"src":"9361:23:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":29532,"name":"address","nodeType":"ElementaryTypeName","src":"9361:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":29533,"nodeType":"ArrayTypeName","src":"9361:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9343:42:83"},"returnParameters":{"id":29539,"nodeType":"ParameterList","parameters":[],"src":"9437:0:83"},"scope":31058,"src":"9325:1360:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":29748,"nodeType":"Block","src":"10760:358:83","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29710,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"10774:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":29711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10791:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10774:18:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29718,"nodeType":"IfStatement","src":"10770:83:83","trueBody":{"id":29717,"nodeType":"Block","src":"10794:59:83","statements":[{"expression":{"baseExpression":{"id":29713,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"10815:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29715,"indexExpression":{"id":29714,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29705,"src":"10836:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10815:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29709,"id":29716,"nodeType":"Return","src":"10808:34:83"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":29719,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"10881:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29721,"indexExpression":{"id":29720,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29705,"src":"10902:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10881:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":29723,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29705,"src":"10951:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":29722,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29529,"src":"10926:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":29724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10926:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"baseExpression":{"id":29727,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28847,"src":"10985:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29729,"indexExpression":{"id":29728,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29705,"src":"11000:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10985:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":29730,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"11008:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29732,"indexExpression":{"id":29731,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29705,"src":"11021:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11008:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29725,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"10976:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"10976:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10976:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10926:102:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29735,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10925:104:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":29736,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"11048:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29738,"indexExpression":{"id":29737,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29705,"src":"11059:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11048:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10925:140:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":29740,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28831,"src":"11084:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10925:168:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29742,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10924:170:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":29743,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"11097:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10924:186:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10923:188:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10881:230:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29709,"id":29747,"nodeType":"Return","src":"10862:249:83"}]},"functionSelector":"f1229777","id":29749,"implemented":true,"kind":"function","modifiers":[],"name":"rewardPerToken","nameLocation":"10700:14:83","nodeType":"FunctionDefinition","parameters":{"id":29706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29705,"mutability":"mutable","name":"token","nameLocation":"10723:5:83","nodeType":"VariableDeclaration","scope":29749,"src":"10715:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29704,"name":"address","nodeType":"ElementaryTypeName","src":"10715:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10714:15:83"},"returnParameters":{"id":29709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29749,"src":"10751:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29707,"name":"uint256","nodeType":"ElementaryTypeName","src":"10751:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10750:9:83"},"scope":31058,"src":"10691:427:83","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":29804,"nodeType":"Block","src":"11224:401:83","statements":[{"assignments":[29757],"declarations":[{"constant":false,"id":29757,"mutability":"mutable","name":"_balance","nameLocation":"11242:8:83","nodeType":"VariableDeclaration","scope":29804,"src":"11234:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29756,"name":"uint256","nodeType":"ElementaryTypeName","src":"11234:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29761,"initialValue":{"baseExpression":{"id":29758,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28872,"src":"11253:9:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29760,"indexExpression":{"id":29759,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29751,"src":"11263:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11253:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11234:37:83"},{"assignments":[29763],"declarations":[{"constant":false,"id":29763,"mutability":"mutable","name":"_derived","nameLocation":"11290:8:83","nodeType":"VariableDeclaration","scope":29804,"src":"11282:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29762,"name":"uint256","nodeType":"ElementaryTypeName","src":"11282:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29770,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29764,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29757,"src":"11302:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3230","id":29765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11313:2:83","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"11302:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11301:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":29768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11319:3:83","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11301:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11282:40:83"},{"assignments":[29772],"declarations":[{"constant":false,"id":29772,"mutability":"mutable","name":"_stake","nameLocation":"11340:6:83","nodeType":"VariableDeclaration","scope":29804,"src":"11332:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29771,"name":"uint256","nodeType":"ElementaryTypeName","src":"11332:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29781,"initialValue":{"arguments":[{"id":29779,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29751,"src":"11389:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":29774,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"11360:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":29775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"11360:15:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":29776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11360:17:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":29773,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"11349:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTStaker_$35022_$","typeString":"type(contract INFTStaker)"}},"id":29777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11349:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"id":29778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34966,"src":"11349:39:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11349:48:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11332:65:83"},{"assignments":[29783],"declarations":[{"constant":false,"id":29783,"mutability":"mutable","name":"_adjusted","nameLocation":"11416:9:83","nodeType":"VariableDeclaration","scope":29804,"src":"11408:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29782,"name":"uint256","nodeType":"ElementaryTypeName","src":"11408:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29795,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29784,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29757,"src":"11430:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":29785,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29772,"src":"11441:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11430:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3830","id":29787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11450:2:83","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},"src":"11430:22:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29789,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11429:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":29790,"name":"maxBoostRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28854,"src":"11468:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11429:58:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11428:60:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":29793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11491:3:83","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11428:66:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11408:86:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29798,"name":"_derived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29763,"src":"11587:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":29799,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29783,"src":"11598:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11587:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29801,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29757,"src":"11609:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29796,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"11578:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"11578:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11578:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29755,"id":29803,"nodeType":"Return","src":"11571:47:83"}]},"functionSelector":"d35e2544","id":29805,"implemented":true,"kind":"function","modifiers":[],"name":"derivedBalance","nameLocation":"11134:14:83","nodeType":"FunctionDefinition","parameters":{"id":29752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29751,"mutability":"mutable","name":"account","nameLocation":"11157:7:83","nodeType":"VariableDeclaration","scope":29805,"src":"11149:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29750,"name":"address","nodeType":"ElementaryTypeName","src":"11149:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11148:17:83"},"returnParameters":{"id":29755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29805,"src":"11211:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29753,"name":"uint256","nodeType":"ElementaryTypeName","src":"11211:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11210:9:83"},"scope":31058,"src":"11125:500:83","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":29825,"nodeType":"Block","src":"11701:142:83","statements":[{"expression":{"id":29823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":29812,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"11725:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29814,"indexExpression":{"id":29813,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29807,"src":"11746:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11725:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":29815,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28847,"src":"11766:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29817,"indexExpression":{"id":29816,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29807,"src":"11781:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11766:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29818,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11711:86:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":29820,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29807,"src":"11821:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29821,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29809,"src":"11828:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29819,"name":"_batchRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29954,"src":"11800:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) returns (uint256,uint256)"}},"id":29822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11800:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11711:125:83","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29824,"nodeType":"ExpressionStatement","src":"11711:125:83"}]},"functionSelector":"5a45d052","id":29826,"implemented":true,"kind":"function","modifiers":[],"name":"batchRewardPerToken","nameLocation":"11640:19:83","nodeType":"FunctionDefinition","parameters":{"id":29810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29807,"mutability":"mutable","name":"token","nameLocation":"11668:5:83","nodeType":"VariableDeclaration","scope":29826,"src":"11660:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29806,"name":"address","nodeType":"ElementaryTypeName","src":"11660:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29809,"mutability":"mutable","name":"maxRuns","nameLocation":"11683:7:83","nodeType":"VariableDeclaration","scope":29826,"src":"11675:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29808,"name":"uint256","nodeType":"ElementaryTypeName","src":"11675:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11659:32:83"},"returnParameters":{"id":29811,"nodeType":"ParameterList","parameters":[],"src":"11701:0:83"},"scope":31058,"src":"11631:212:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":29953,"nodeType":"Block","src":"11967:1162:83","statements":[{"assignments":[29838],"declarations":[{"constant":false,"id":29838,"mutability":"mutable","name":"_startTimestamp","nameLocation":"11985:15:83","nodeType":"VariableDeclaration","scope":29953,"src":"11977:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29837,"name":"uint256","nodeType":"ElementaryTypeName","src":"11977:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29842,"initialValue":{"baseExpression":{"id":29839,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28847,"src":"12003:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29841,"indexExpression":{"id":29840,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29828,"src":"12018:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12003:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11977:47:83"},{"assignments":[29844],"declarations":[{"constant":false,"id":29844,"mutability":"mutable","name":"reward","nameLocation":"12042:6:83","nodeType":"VariableDeclaration","scope":29953,"src":"12034:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29843,"name":"uint256","nodeType":"ElementaryTypeName","src":"12034:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29848,"initialValue":{"baseExpression":{"id":29845,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"12051:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29847,"indexExpression":{"id":29846,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29828,"src":"12072:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12051:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12034:44:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29849,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"12093:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":29850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12117:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12093:25:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29857,"nodeType":"IfStatement","src":"12089:88:83","trueBody":{"id":29856,"nodeType":"Block","src":"12120:57:83","statements":[{"expression":{"components":[{"id":29852,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29844,"src":"12142:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29853,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29838,"src":"12150:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29854,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12141:25:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":29836,"id":29855,"nodeType":"Return","src":"12134:32:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":29858,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"12191:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29860,"indexExpression":{"id":29859,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29828,"src":"12202:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12191:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":29861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12212:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12191:22:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29869,"nodeType":"IfStatement","src":"12187:85:83","trueBody":{"id":29868,"nodeType":"Block","src":"12215:57:83","statements":[{"expression":{"components":[{"id":29863,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29844,"src":"12237:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":29864,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12245:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12245:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29866,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12236:25:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":29836,"id":29867,"nodeType":"Return","src":"12229:32:83"}]}},{"assignments":[29871],"declarations":[{"constant":false,"id":29871,"mutability":"mutable","name":"_startIndex","nameLocation":"12290:11:83","nodeType":"VariableDeclaration","scope":29953,"src":"12282:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29870,"name":"uint256","nodeType":"ElementaryTypeName","src":"12282:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29875,"initialValue":{"arguments":[{"id":29873,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29838,"src":"12324:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29872,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29173,"src":"12304:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":29874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12304:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12282:58:83"},{"assignments":[29877],"declarations":[{"constant":false,"id":29877,"mutability":"mutable","name":"_endIndex","nameLocation":"12358:9:83","nodeType":"VariableDeclaration","scope":29953,"src":"12350:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29876,"name":"uint256","nodeType":"ElementaryTypeName","src":"12350:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29885,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29880,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"12379:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":29881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12402:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12379:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29883,"name":"maxRuns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29830,"src":"12405:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29878,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"12370:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"12370:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12370:43:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12350:63:83"},{"body":{"id":29947,"nodeType":"Block","src":"12474:606:83","statements":[{"assignments":[29898],"declarations":[{"constant":false,"id":29898,"mutability":"mutable","name":"sp0","nameLocation":"12512:3:83","nodeType":"VariableDeclaration","scope":29947,"src":"12488:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"},"typeName":{"id":29897,"nodeType":"UserDefinedTypeName","pathNode":{"id":29896,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34215,"src":"12488:16:83"},"referencedDeclaration":34215,"src":"12488:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"}},"visibility":"internal"}],"id":29902,"initialValue":{"baseExpression":{"id":29899,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"12518:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29901,"indexExpression":{"id":29900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29887,"src":"12536:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12518:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12488:50:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29903,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29898,"src":"12556:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":29904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34214,"src":"12556:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":29905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12569:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12556:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29946,"nodeType":"IfStatement","src":"12552:518:83","trueBody":{"id":29945,"nodeType":"Block","src":"12572:498:83","statements":[{"assignments":[29909],"declarations":[{"constant":false,"id":29909,"mutability":"mutable","name":"sp1","nameLocation":"12614:3:83","nodeType":"VariableDeclaration","scope":29945,"src":"12590:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"},"typeName":{"id":29908,"nodeType":"UserDefinedTypeName","pathNode":{"id":29907,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34215,"src":"12590:16:83"},"referencedDeclaration":34215,"src":"12590:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"}},"visibility":"internal"}],"id":29915,"initialValue":{"baseExpression":{"id":29910,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"12620:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":29914,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29911,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29887,"src":"12638:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":29912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12642:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12638:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12620:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12590:54:83"},{"assignments":[29917,29919],"declarations":[{"constant":false,"id":29917,"mutability":"mutable","name":"_reward","nameLocation":"12671:7:83","nodeType":"VariableDeclaration","scope":29945,"src":"12663:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29916,"name":"uint256","nodeType":"ElementaryTypeName","src":"12663:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29919,"mutability":"mutable","name":"_endTime","nameLocation":"12688:8:83","nodeType":"VariableDeclaration","scope":29945,"src":"12680:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29918,"name":"uint256","nodeType":"ElementaryTypeName","src":"12680:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29930,"initialValue":{"arguments":[{"id":29921,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29828,"src":"12741:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":29922,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29909,"src":"12768:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":29923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"12768:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":29924,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29898,"src":"12803:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":29925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"12803:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":29926,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29898,"src":"12838:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":29927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34214,"src":"12838:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29928,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29838,"src":"12870:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29920,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30013,"src":"12700:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":29929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12700:203:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12662:241:83"},{"expression":{"id":29933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29931,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29844,"src":"12921:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":29932,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29917,"src":"12931:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12921:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29934,"nodeType":"ExpressionStatement","src":"12921:17:83"},{"expression":{"arguments":[{"id":29936,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29828,"src":"12987:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29937,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29844,"src":"12994:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29938,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29919,"src":"13002:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29935,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29451,"src":"12956:30:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":29939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12956:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29940,"nodeType":"ExpressionStatement","src":"12956:55:83"},{"expression":{"id":29943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29941,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29838,"src":"13029:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29942,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29919,"src":"13047:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13029:26:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29944,"nodeType":"ExpressionStatement","src":"13029:26:83"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29890,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29887,"src":"12454:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":29891,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29877,"src":"12458:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12454:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29948,"initializationExpression":{"assignments":[29887],"declarations":[{"constant":false,"id":29887,"mutability":"mutable","name":"i","nameLocation":"12437:1:83","nodeType":"VariableDeclaration","scope":29948,"src":"12429:9:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29886,"name":"uint256","nodeType":"ElementaryTypeName","src":"12429:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29889,"initialValue":{"id":29888,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29871,"src":"12441:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12429:23:83"},"loopExpression":{"expression":{"id":29894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12469:3:83","subExpression":{"id":29893,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29887,"src":"12469:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29895,"nodeType":"ExpressionStatement","src":"12469:3:83"},"nodeType":"ForStatement","src":"12424:656:83"},{"expression":{"components":[{"id":29949,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29844,"src":"13098:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29950,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29838,"src":"13106:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29951,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13097:25:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":29836,"id":29952,"nodeType":"Return","src":"13090:32:83"}]},"id":29954,"implemented":true,"kind":"function","modifiers":[],"name":"_batchRewardPerToken","nameLocation":"11858:20:83","nodeType":"FunctionDefinition","parameters":{"id":29831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29828,"mutability":"mutable","name":"token","nameLocation":"11887:5:83","nodeType":"VariableDeclaration","scope":29954,"src":"11879:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29827,"name":"address","nodeType":"ElementaryTypeName","src":"11879:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29830,"mutability":"mutable","name":"maxRuns","nameLocation":"11902:7:83","nodeType":"VariableDeclaration","scope":29954,"src":"11894:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29829,"name":"uint256","nodeType":"ElementaryTypeName","src":"11894:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11878:32:83"},"returnParameters":{"id":29836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29954,"src":"11945:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29832,"name":"uint256","nodeType":"ElementaryTypeName","src":"11945:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29954,"src":"11954:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29834,"name":"uint256","nodeType":"ElementaryTypeName","src":"11954:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11944:18:83"},"scope":31058,"src":"11849:1280:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":30012,"nodeType":"Block","src":"13346:394:83","statements":[{"assignments":[29972],"declarations":[{"constant":false,"id":29972,"mutability":"mutable","name":"endTime","nameLocation":"13364:7:83","nodeType":"VariableDeclaration","scope":30012,"src":"13356:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29971,"name":"uint256","nodeType":"ElementaryTypeName","src":"13356:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29978,"initialValue":{"arguments":[{"id":29975,"name":"timestamp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29958,"src":"13383:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29976,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29964,"src":"13395:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29973,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13374:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"13374:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13374:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13356:54:83"},{"expression":{"components":[{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":29981,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29972,"src":"13453:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":29982,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"13462:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29984,"indexExpression":{"id":29983,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29956,"src":"13475:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13462:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29979,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13444:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"13444:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13444:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"id":29990,"name":"timestamp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29960,"src":"13540:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29991,"name":"startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29964,"src":"13552:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29988,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13531:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"13531:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13531:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":29993,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"13589:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29995,"indexExpression":{"id":29994,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29956,"src":"13602:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13589:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29986,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"13501:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":29987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"13501:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13501:125:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13444:182:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29998,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13443:184:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":29999,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"13646:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30001,"indexExpression":{"id":30000,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29956,"src":"13657:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13646:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13443:220:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30003,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28831,"src":"13682:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13443:248:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30005,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13442:250:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":30006,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29962,"src":"13695:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13442:259:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30008,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13441:261:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30009,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29972,"src":"13716:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30010,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13427:306:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":29970,"id":30011,"nodeType":"Return","src":"13420:313:83"}]},"id":30013,"implemented":true,"kind":"function","modifiers":[],"name":"_calcRewardPerToken","nameLocation":"13144:19:83","nodeType":"FunctionDefinition","parameters":{"id":29965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29956,"mutability":"mutable","name":"token","nameLocation":"13181:5:83","nodeType":"VariableDeclaration","scope":30013,"src":"13173:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29955,"name":"address","nodeType":"ElementaryTypeName","src":"13173:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29958,"mutability":"mutable","name":"timestamp1","nameLocation":"13204:10:83","nodeType":"VariableDeclaration","scope":30013,"src":"13196:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29957,"name":"uint256","nodeType":"ElementaryTypeName","src":"13196:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29960,"mutability":"mutable","name":"timestamp0","nameLocation":"13232:10:83","nodeType":"VariableDeclaration","scope":30013,"src":"13224:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29959,"name":"uint256","nodeType":"ElementaryTypeName","src":"13224:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29962,"mutability":"mutable","name":"supply","nameLocation":"13260:6:83","nodeType":"VariableDeclaration","scope":30013,"src":"13252:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29961,"name":"uint256","nodeType":"ElementaryTypeName","src":"13252:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29964,"mutability":"mutable","name":"startTimestamp","nameLocation":"13284:14:83","nodeType":"VariableDeclaration","scope":30013,"src":"13276:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29963,"name":"uint256","nodeType":"ElementaryTypeName","src":"13276:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13163:141:83"},"returnParameters":{"id":29970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30013,"src":"13328:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29966,"name":"uint256","nodeType":"ElementaryTypeName","src":"13328:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30013,"src":"13337:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29968,"name":"uint256","nodeType":"ElementaryTypeName","src":"13337:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13327:18:83"},"scope":31058,"src":"13135:605:83","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":30190,"nodeType":"Block","src":"13848:1783:83","statements":[{"assignments":[30023],"declarations":[{"constant":false,"id":30023,"mutability":"mutable","name":"_startTimestamp","nameLocation":"13866:15:83","nodeType":"VariableDeclaration","scope":30190,"src":"13858:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30022,"name":"uint256","nodeType":"ElementaryTypeName","src":"13858:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30027,"initialValue":{"baseExpression":{"id":30024,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28847,"src":"13884:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30026,"indexExpression":{"id":30025,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"13899:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13884:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13858:47:83"},{"assignments":[30029],"declarations":[{"constant":false,"id":30029,"mutability":"mutable","name":"reward","nameLocation":"13923:6:83","nodeType":"VariableDeclaration","scope":30190,"src":"13915:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30028,"name":"uint256","nodeType":"ElementaryTypeName","src":"13915:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30033,"initialValue":{"baseExpression":{"id":30030,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"13932:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30032,"indexExpression":{"id":30031,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"13953:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13932:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13915:44:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30034,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"13974:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":30035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13998:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13974:25:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30042,"nodeType":"IfStatement","src":"13970:88:83","trueBody":{"id":30041,"nodeType":"Block","src":"14001:57:83","statements":[{"expression":{"components":[{"id":30037,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"14023:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30038,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"14031:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30039,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14022:25:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":30021,"id":30040,"nodeType":"Return","src":"14015:32:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30043,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"14072:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30045,"indexExpression":{"id":30044,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"14083:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14072:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":30046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14093:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14072:22:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30054,"nodeType":"IfStatement","src":"14068:85:83","trueBody":{"id":30053,"nodeType":"Block","src":"14096:57:83","statements":[{"expression":{"components":[{"id":30048,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"14118:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":30049,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14126:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14126:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30051,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14117:25:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":30021,"id":30052,"nodeType":"Return","src":"14110:32:83"}]}},{"assignments":[30056],"declarations":[{"constant":false,"id":30056,"mutability":"mutable","name":"_startIndex","nameLocation":"14171:11:83","nodeType":"VariableDeclaration","scope":30190,"src":"14163:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30055,"name":"uint256","nodeType":"ElementaryTypeName","src":"14163:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30060,"initialValue":{"arguments":[{"id":30058,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"14205:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30057,"name":"getPriorSupplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29173,"src":"14185:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":30059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14185:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14163:58:83"},{"assignments":[30062],"declarations":[{"constant":false,"id":30062,"mutability":"mutable","name":"_endIndex","nameLocation":"14239:9:83","nodeType":"VariableDeclaration","scope":30190,"src":"14231:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30061,"name":"uint256","nodeType":"ElementaryTypeName","src":"14231:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30066,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30063,"name":"supplyNumCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"14251:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":30064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14274:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14251:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14231:44:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30067,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30062,"src":"14290:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30068,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30056,"src":"14302:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14290:23:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":30070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14316:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14290:27:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30138,"nodeType":"IfStatement","src":"14286:777:83","trueBody":{"id":30137,"nodeType":"Block","src":"14319:744:83","statements":[{"body":{"id":30135,"nodeType":"Block","src":"14387:666:83","statements":[{"assignments":[30086],"declarations":[{"constant":false,"id":30086,"mutability":"mutable","name":"sp0","nameLocation":"14429:3:83","nodeType":"VariableDeclaration","scope":30135,"src":"14405:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"},"typeName":{"id":30085,"nodeType":"UserDefinedTypeName","pathNode":{"id":30084,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34215,"src":"14405:16:83"},"referencedDeclaration":34215,"src":"14405:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"}},"visibility":"internal"}],"id":30090,"initialValue":{"baseExpression":{"id":30087,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"14435:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":30089,"indexExpression":{"id":30088,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30073,"src":"14453:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14435:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14405:50:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30091,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30086,"src":"14477:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":30092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34214,"src":"14477:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14490:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14477:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30134,"nodeType":"IfStatement","src":"14473:566:83","trueBody":{"id":30133,"nodeType":"Block","src":"14493:546:83","statements":[{"assignments":[30097],"declarations":[{"constant":false,"id":30097,"mutability":"mutable","name":"sp1","nameLocation":"14539:3:83","nodeType":"VariableDeclaration","scope":30133,"src":"14515:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"},"typeName":{"id":30096,"nodeType":"UserDefinedTypeName","pathNode":{"id":30095,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34215,"src":"14515:16:83"},"referencedDeclaration":34215,"src":"14515:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"}},"visibility":"internal"}],"id":30103,"initialValue":{"baseExpression":{"id":30098,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"14545:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":30102,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30099,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30073,"src":"14563:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":30100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14567:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14563:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14545:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14515:54:83"},{"assignments":[30105,30107],"declarations":[{"constant":false,"id":30105,"mutability":"mutable","name":"_reward","nameLocation":"14600:7:83","nodeType":"VariableDeclaration","scope":30133,"src":"14592:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30104,"name":"uint256","nodeType":"ElementaryTypeName","src":"14592:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30107,"mutability":"mutable","name":"_endTime","nameLocation":"14617:8:83","nodeType":"VariableDeclaration","scope":30133,"src":"14609:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30106,"name":"uint256","nodeType":"ElementaryTypeName","src":"14609:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30118,"initialValue":{"arguments":[{"id":30109,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"14674:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30110,"name":"sp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30097,"src":"14705:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":30111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"14705:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":30112,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30086,"src":"14744:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":30113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"14744:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":30114,"name":"sp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30086,"src":"14783:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":30115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34214,"src":"14783:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30116,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"14819:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30108,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30013,"src":"14629:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":30117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14629:227:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14591:265:83"},{"expression":{"id":30121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30119,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"14878:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":30120,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30105,"src":"14888:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14878:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30122,"nodeType":"ExpressionStatement","src":"14878:17:83"},{"expression":{"arguments":[{"id":30124,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"14948:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30125,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"14955:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30126,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30107,"src":"14963:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30123,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29451,"src":"14917:30:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":30127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14917:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30128,"nodeType":"ExpressionStatement","src":"14917:55:83"},{"expression":{"id":30131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30129,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"14994:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":30130,"name":"_endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30107,"src":"15012:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14994:26:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30132,"nodeType":"ExpressionStatement","src":"14994:26:83"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30073,"src":"14363:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30077,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30062,"src":"14367:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":30078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14379:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14367:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14363:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30136,"initializationExpression":{"assignments":[30073],"declarations":[{"constant":false,"id":30073,"mutability":"mutable","name":"i","nameLocation":"14346:1:83","nodeType":"VariableDeclaration","scope":30136,"src":"14338:9:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30072,"name":"uint256","nodeType":"ElementaryTypeName","src":"14338:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30075,"initialValue":{"id":30074,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30056,"src":"14350:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14338:23:83"},"loopExpression":{"expression":{"id":30082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14382:3:83","subExpression":{"id":30081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30073,"src":"14382:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30083,"nodeType":"ExpressionStatement","src":"14382:3:83"},"nodeType":"ForStatement","src":"14333:720:83"}]}},{"assignments":[30141],"declarations":[{"constant":false,"id":30141,"mutability":"mutable","name":"sp","nameLocation":"15097:2:83","nodeType":"VariableDeclaration","scope":30190,"src":"15073:26:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"},"typeName":{"id":30140,"nodeType":"UserDefinedTypeName","pathNode":{"id":30139,"name":"SupplyCheckpoint","nodeType":"IdentifierPath","referencedDeclaration":34215,"src":"15073:16:83"},"referencedDeclaration":34215,"src":"15073:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint"}},"visibility":"internal"}],"id":30145,"initialValue":{"baseExpression":{"id":30142,"name":"supplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"15102:17:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_SupplyCheckpoint_$34215_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.SupplyCheckpoint storage ref)"}},"id":30144,"indexExpression":{"id":30143,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30062,"src":"15120:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15102:28:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_storage","typeString":"struct IGaugeV2.SupplyCheckpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15073:57:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30146,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30141,"src":"15144:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":30147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34214,"src":"15144:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15156:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15144:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30185,"nodeType":"IfStatement","src":"15140:442:83","trueBody":{"id":30184,"nodeType":"Block","src":"15159:423:83","statements":[{"assignments":[30151,null],"declarations":[{"constant":false,"id":30151,"mutability":"mutable","name":"_reward","nameLocation":"15182:7:83","nodeType":"VariableDeclaration","scope":30184,"src":"15174:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30150,"name":"uint256","nodeType":"ElementaryTypeName","src":"15174:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":30167,"initialValue":{"arguments":[{"id":30153,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"15232:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":30155,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"15280:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30154,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29529,"src":"15255:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":30156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15255:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":30159,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30141,"src":"15313:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":30160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34212,"src":"15313:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30161,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"15327:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30157,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"15304:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":30158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"15304:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15304:39:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":30163,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30141,"src":"15361:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_SupplyCheckpoint_$34215_memory_ptr","typeString":"struct IGaugeV2.SupplyCheckpoint memory"}},"id":30164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"supply","nodeType":"MemberAccess","referencedDeclaration":34214,"src":"15361:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30165,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"15388:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30152,"name":"_calcRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30013,"src":"15195:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,uint256) view returns (uint256,uint256)"}},"id":30166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15195:222:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"15173:244:83"},{"expression":{"id":30170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30168,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"15431:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":30169,"name":"_reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30151,"src":"15441:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15431:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30171,"nodeType":"ExpressionStatement","src":"15431:17:83"},{"expression":{"arguments":[{"id":30173,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30015,"src":"15493:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30174,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"15500:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":30175,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15508:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15508:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30172,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29451,"src":"15462:30:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":30177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15462:62:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30178,"nodeType":"ExpressionStatement","src":"15462:62:83"},{"expression":{"id":30182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30179,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"15538:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":30180,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15556:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15556:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15538:33:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30183,"nodeType":"ExpressionStatement","src":"15538:33:83"}]}},{"expression":{"components":[{"id":30186,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"15600:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30187,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"15608:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30188,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15599:25:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":30021,"id":30189,"nodeType":"Return","src":"15592:32:83"}]},"id":30191,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardPerToken","nameLocation":"13755:21:83","nodeType":"FunctionDefinition","parameters":{"id":30016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30015,"mutability":"mutable","name":"token","nameLocation":"13785:5:83","nodeType":"VariableDeclaration","scope":30191,"src":"13777:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30014,"name":"address","nodeType":"ElementaryTypeName","src":"13777:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13776:15:83"},"returnParameters":{"id":30021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30191,"src":"13826:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30017,"name":"uint256","nodeType":"ElementaryTypeName","src":"13826:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30191,"src":"13835:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30019,"name":"uint256","nodeType":"ElementaryTypeName","src":"13835:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13825:18:83"},"scope":31058,"src":"13746:1885:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":30357,"nodeType":"Block","src":"15848:1644:83","statements":[{"assignments":[30201],"declarations":[{"constant":false,"id":30201,"mutability":"mutable","name":"_startTimestamp","nameLocation":"15866:15:83","nodeType":"VariableDeclaration","scope":30357,"src":"15858:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30200,"name":"uint256","nodeType":"ElementaryTypeName","src":"15858:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30216,"initialValue":{"arguments":[{"baseExpression":{"baseExpression":{"id":30204,"name":"lastEarn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28860,"src":"15906:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":30206,"indexExpression":{"id":30205,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30193,"src":"15915:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15906:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30208,"indexExpression":{"id":30207,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"15922:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15906:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"id":30209,"name":"rewardPerTokenCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28909,"src":"15944:25:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref))"}},"id":30211,"indexExpression":{"id":30210,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30193,"src":"15970:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15944:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RewardPerTokenCheckpoint_$34210_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.RewardPerTokenCheckpoint storage ref)"}},"id":30213,"indexExpression":{"hexValue":"30","id":30212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15977:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15944:35:83","typeDescriptions":{"typeIdentifier":"t_struct$_RewardPerTokenCheckpoint_$34210_storage","typeString":"struct IGaugeV2.RewardPerTokenCheckpoint storage ref"}},"id":30214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34207,"src":"15944:45:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30202,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"15884:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":30203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"15884:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15884:115:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15858:141:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30217,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28892,"src":"16013:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30219,"indexExpression":{"id":30218,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"16028:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16013:23:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":30220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16040:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16013:28:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30225,"nodeType":"IfStatement","src":"16009:67:83","trueBody":{"id":30224,"nodeType":"Block","src":"16043:33:83","statements":[{"expression":{"hexValue":"30","id":30222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16064:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":30199,"id":30223,"nodeType":"Return","src":"16057:8:83"}]}},{"assignments":[30227],"declarations":[{"constant":false,"id":30227,"mutability":"mutable","name":"_startIndex","nameLocation":"16094:11:83","nodeType":"VariableDeclaration","scope":30357,"src":"16086:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30226,"name":"uint256","nodeType":"ElementaryTypeName","src":"16086:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30232,"initialValue":{"arguments":[{"id":30229,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"16129:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30230,"name":"_startTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30201,"src":"16138:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30228,"name":"getPriorBalanceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29069,"src":"16108:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":30231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16108:46:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16086:68:83"},{"assignments":[30234],"declarations":[{"constant":false,"id":30234,"mutability":"mutable","name":"_endIndex","nameLocation":"16172:9:83","nodeType":"VariableDeclaration","scope":30357,"src":"16164:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30233,"name":"uint256","nodeType":"ElementaryTypeName","src":"16164:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30240,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30235,"name":"numCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28892,"src":"16184:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30237,"indexExpression":{"id":30236,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"16199:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16184:23:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":30238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16210:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16184:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16164:47:83"},{"assignments":[30242],"declarations":[{"constant":false,"id":30242,"mutability":"mutable","name":"reward","nameLocation":"16230:6:83","nodeType":"VariableDeclaration","scope":30357,"src":"16222:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30241,"name":"uint256","nodeType":"ElementaryTypeName","src":"16222:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30244,"initialValue":{"hexValue":"30","id":30243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16239:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16222:18:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30245,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30234,"src":"16255:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30246,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30227,"src":"16267:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16255:23:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":30248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16281:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16255:27:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30314,"nodeType":"IfStatement","src":"16251:745:83","trueBody":{"id":30313,"nodeType":"Block","src":"16284:712:83","statements":[{"body":{"id":30311,"nodeType":"Block","src":"16352:634:83","statements":[{"assignments":[30264],"declarations":[{"constant":false,"id":30264,"mutability":"mutable","name":"cp0","nameLocation":"16388:3:83","nodeType":"VariableDeclaration","scope":30311,"src":"16370:21:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint"},"typeName":{"id":30263,"nodeType":"UserDefinedTypeName","pathNode":{"id":30262,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34205,"src":"16370:10:83"},"referencedDeclaration":34205,"src":"16370:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage_ptr","typeString":"struct IGaugeV2.Checkpoint"}},"visibility":"internal"}],"id":30270,"initialValue":{"baseExpression":{"baseExpression":{"id":30265,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"16394:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":30267,"indexExpression":{"id":30266,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"16406:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16394:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":30269,"indexExpression":{"id":30268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30251,"src":"16415:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16394:23:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16370:47:83"},{"assignments":[30273],"declarations":[{"constant":false,"id":30273,"mutability":"mutable","name":"cp1","nameLocation":"16453:3:83","nodeType":"VariableDeclaration","scope":30311,"src":"16435:21:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint"},"typeName":{"id":30272,"nodeType":"UserDefinedTypeName","pathNode":{"id":30271,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34205,"src":"16435:10:83"},"referencedDeclaration":34205,"src":"16435:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage_ptr","typeString":"struct IGaugeV2.Checkpoint"}},"visibility":"internal"}],"id":30281,"initialValue":{"baseExpression":{"baseExpression":{"id":30274,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"16459:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":30276,"indexExpression":{"id":30275,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"16471:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16459:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":30280,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30277,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30251,"src":"16480:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":30278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16484:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16480:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16459:27:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16435:51:83"},{"assignments":[30283,null],"declarations":[{"constant":false,"id":30283,"mutability":"mutable","name":"_rewardPerTokenStored0","nameLocation":"16513:22:83","nodeType":"VariableDeclaration","scope":30311,"src":"16505:30:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30282,"name":"uint256","nodeType":"ElementaryTypeName","src":"16505:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":30289,"initialValue":{"arguments":[{"id":30285,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30193,"src":"16585:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30286,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30264,"src":"16612:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"id":30287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"16612:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30284,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29322,"src":"16541:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":30288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16541:102:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16504:139:83"},{"assignments":[30291,null],"declarations":[{"constant":false,"id":30291,"mutability":"mutable","name":"_rewardPerTokenStored1","nameLocation":"16670:22:83","nodeType":"VariableDeclaration","scope":30311,"src":"16662:30:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30290,"name":"uint256","nodeType":"ElementaryTypeName","src":"16662:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":30297,"initialValue":{"arguments":[{"id":30293,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30193,"src":"16742:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30294,"name":"cp1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30273,"src":"16769:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"id":30295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"16769:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30292,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29322,"src":"16698:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":30296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16698:102:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16661:139:83"},{"expression":{"id":30309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30298,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30242,"src":"16818:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30299,"name":"cp0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30264,"src":"16849:3:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"id":30300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34204,"src":"16849:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30301,"name":"_rewardPerTokenStored1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30291,"src":"16890:22:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30302,"name":"_rewardPerTokenStored0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30283,"src":"16915:22:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16890:47:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30304,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16889:49:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16849:89:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30306,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16848:91:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":30307,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28831,"src":"16962:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16848:123:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16818:153:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30310,"nodeType":"ExpressionStatement","src":"16818:153:83"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30251,"src":"16328:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30255,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30234,"src":"16332:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":30256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16344:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16332:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16328:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30312,"initializationExpression":{"assignments":[30251],"declarations":[{"constant":false,"id":30251,"mutability":"mutable","name":"i","nameLocation":"16311:1:83","nodeType":"VariableDeclaration","scope":30312,"src":"16303:9:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30250,"name":"uint256","nodeType":"ElementaryTypeName","src":"16303:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30253,"initialValue":{"id":30252,"name":"_startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30227,"src":"16315:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16303:23:83"},"loopExpression":{"expression":{"id":30260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16347:3:83","subExpression":{"id":30259,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30251,"src":"16347:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30261,"nodeType":"ExpressionStatement","src":"16347:3:83"},"nodeType":"ForStatement","src":"16298:688:83"}]}},{"assignments":[30317],"declarations":[{"constant":false,"id":30317,"mutability":"mutable","name":"cp","nameLocation":"17024:2:83","nodeType":"VariableDeclaration","scope":30357,"src":"17006:20:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint"},"typeName":{"id":30316,"nodeType":"UserDefinedTypeName","pathNode":{"id":30315,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":34205,"src":"17006:10:83"},"referencedDeclaration":34205,"src":"17006:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage_ptr","typeString":"struct IGaugeV2.Checkpoint"}},"visibility":"internal"}],"id":30323,"initialValue":{"baseExpression":{"baseExpression":{"id":30318,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"17029:11:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct IGaugeV2.Checkpoint storage ref))"}},"id":30320,"indexExpression":{"id":30319,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"17041:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17029:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Checkpoint_$34205_storage_$","typeString":"mapping(uint256 => struct IGaugeV2.Checkpoint storage ref)"}},"id":30322,"indexExpression":{"id":30321,"name":"_endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30234,"src":"17050:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17029:31:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_storage","typeString":"struct IGaugeV2.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17006:54:83"},{"assignments":[30325,null],"declarations":[{"constant":false,"id":30325,"mutability":"mutable","name":"_rewardPerTokenStored","nameLocation":"17079:21:83","nodeType":"VariableDeclaration","scope":30357,"src":"17071:29:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30324,"name":"uint256","nodeType":"ElementaryTypeName","src":"17071:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":30331,"initialValue":{"arguments":[{"id":30327,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30193,"src":"17142:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30328,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30317,"src":"17161:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"id":30329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":34202,"src":"17161:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30326,"name":"getPriorRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29322,"src":"17106:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256,uint256)"}},"id":30330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17106:77:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"17070:113:83"},{"expression":{"id":30353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30332,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30242,"src":"17193:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30333,"name":"cp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30317,"src":"17216:2:83","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$34205_memory_ptr","typeString":"struct IGaugeV2.Checkpoint memory"}},"id":30334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34204,"src":"17216:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":30336,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30193,"src":"17263:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30335,"name":"rewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29749,"src":"17248:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":30337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17248:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":30340,"name":"_rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30325,"src":"17326:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"baseExpression":{"id":30341,"name":"userRewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28866,"src":"17373:24:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":30343,"indexExpression":{"id":30342,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30193,"src":"17398:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17373:31:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30345,"indexExpression":{"id":30344,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30195,"src":"17405:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17373:40:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30338,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"17292:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":30339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"17292:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17292:143:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17248:187:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17247:189:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17216:220:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17215:222:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":30351,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28831,"src":"17452:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17215:246:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17193:268:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30354,"nodeType":"ExpressionStatement","src":"17193:268:83"},{"expression":{"id":30355,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30242,"src":"17479:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":30199,"id":30356,"nodeType":"Return","src":"17472:13:83"}]},"functionSelector":"211dc32d","id":30358,"implemented":true,"kind":"function","modifiers":[],"name":"earned","nameLocation":"15751:6:83","nodeType":"FunctionDefinition","parameters":{"id":30196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30193,"mutability":"mutable","name":"token","nameLocation":"15766:5:83","nodeType":"VariableDeclaration","scope":30358,"src":"15758:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30192,"name":"address","nodeType":"ElementaryTypeName","src":"15758:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30195,"mutability":"mutable","name":"account","nameLocation":"15781:7:83","nodeType":"VariableDeclaration","scope":30358,"src":"15773:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30194,"name":"address","nodeType":"ElementaryTypeName","src":"15773:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15757:32:83"},"returnParameters":{"id":30199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30358,"src":"15835:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30197,"name":"uint256","nodeType":"ElementaryTypeName","src":"15835:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15834:9:83"},"scope":31058,"src":"15742:1750:83","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":30371,"nodeType":"Block","src":"17529:61:83","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":30366,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17571:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17571:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":30363,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28817,"src":"17554:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30362,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"17547:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":30364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17547:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":30365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"17547:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":30368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17547:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30361,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30482,"src":"17539:7:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":30369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17539:44:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30370,"nodeType":"ExpressionStatement","src":"17539:44:83"}]},"functionSelector":"de5f6268","id":30372,"implemented":true,"kind":"function","modifiers":[],"name":"depositAll","nameLocation":"17507:10:83","nodeType":"FunctionDefinition","parameters":{"id":30359,"nodeType":"ParameterList","parameters":[],"src":"17517:2:83"},"returnParameters":{"id":30360,"nodeType":"ParameterList","parameters":[],"src":"17529:0:83"},"scope":31058,"src":"17498:92:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":30481,"nodeType":"Block","src":"17641:819:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":30379,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"17651:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":30381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"17651:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":30382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17651:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30383,"nodeType":"ExpressionStatement","src":"17651:26:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30385,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30374,"src":"17695:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17704:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17695:10:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203d2030","id":30388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17707:12:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""},"value":"amount = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""}],"id":30384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17687:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17687:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30390,"nodeType":"ExpressionStatement","src":"17687:33:83"},{"expression":{"arguments":[{"id":30392,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28817,"src":"17749:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30393,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17756:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17756:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":30397,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17776:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}],"id":30396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17768:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30395,"name":"address","nodeType":"ElementaryTypeName","src":"17768:7:83","typeDescriptions":{}}},"id":30398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17768:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30399,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30374,"src":"17783:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30391,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30985,"src":"17731:17:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":30400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17731:59:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30401,"nodeType":"ExpressionStatement","src":"17731:59:83"},{"expression":{"id":30404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30402,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28868,"src":"17800:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":30403,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30374,"src":"17815:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17800:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30405,"nodeType":"ExpressionStatement","src":"17800:21:83"},{"expression":{"id":30411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30406,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28872,"src":"17831:9:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30409,"indexExpression":{"expression":{"id":30407,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17841:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17841:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17831:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":30410,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30374,"src":"17856:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17831:31:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30412,"nodeType":"ExpressionStatement","src":"17831:31:83"},{"assignments":[30414],"declarations":[{"constant":false,"id":30414,"mutability":"mutable","name":"_derivedBalance","nameLocation":"17881:15:83","nodeType":"VariableDeclaration","scope":30481,"src":"17873:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30413,"name":"uint256","nodeType":"ElementaryTypeName","src":"17873:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30419,"initialValue":{"baseExpression":{"id":30415,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"17899:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30418,"indexExpression":{"expression":{"id":30416,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17915:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17915:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17899:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17873:53:83"},{"expression":{"id":30422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30420,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"17936:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":30421,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30414,"src":"17953:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17936:32:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30423,"nodeType":"ExpressionStatement","src":"17936:32:83"},{"expression":{"id":30429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30424,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30414,"src":"17978:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":30426,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18011:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18011:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30425,"name":"derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29805,"src":"17996:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":30428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17996:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17978:44:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30430,"nodeType":"ExpressionStatement","src":"17978:44:83"},{"expression":{"id":30436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30431,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"18032:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30434,"indexExpression":{"expression":{"id":30432,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18048:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18048:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18032:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":30435,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30414,"src":"18062:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18032:45:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30437,"nodeType":"ExpressionStatement","src":"18032:45:83"},{"expression":{"id":30440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30438,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"18087:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":30439,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30414,"src":"18104:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18087:32:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30441,"nodeType":"ExpressionStatement","src":"18087:32:83"},{"condition":{"id":30446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18134:21:83","subExpression":{"baseExpression":{"id":30442,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28835,"src":"18135:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":30445,"indexExpression":{"expression":{"id":30443,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18144:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18144:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18135:20:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30465,"nodeType":"IfStatement","src":"18130:191:83","trueBody":{"id":30464,"nodeType":"Block","src":"18157:164:83","statements":[{"expression":{"id":30452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30447,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28835,"src":"18171:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":30450,"indexExpression":{"expression":{"id":30448,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18180:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18180:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18171:20:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":30451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18194:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18171:27:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30453,"nodeType":"ExpressionStatement","src":"18171:27:83"},{"expression":{"arguments":[{"expression":{"id":30460,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18286:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18286:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":30455,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"18226:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":30456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"18226:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":30457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18226:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30454,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"18212:13:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoterV2_$34597_$","typeString":"type(contract IGaugeVoterV2)"}},"id":30458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18212:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"id":30459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"attachStakerToGauge","nodeType":"MemberAccess","referencedDeclaration":34465,"src":"18212:56:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":30462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18212:98:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30463,"nodeType":"ExpressionStatement","src":"18212:98:83"}]}},{"expression":{"arguments":[{"expression":{"id":30467,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18348:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18348:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30469,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30414,"src":"18360:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30466,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29388,"src":"18331:16:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":30470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18331:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30471,"nodeType":"ExpressionStatement","src":"18331:45:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":30472,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29503,"src":"18386:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":30473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18386:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30474,"nodeType":"ExpressionStatement","src":"18386:24:83"},{"eventCall":{"arguments":[{"expression":{"id":30476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18434:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18434:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30374,"src":"18446:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30475,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34221,"src":"18426:7:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":30479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18426:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30480,"nodeType":"EmitStatement","src":"18421:32:83"}]},"functionSelector":"b6b55f25","id":30482,"implemented":true,"kind":"function","modifiers":[{"id":30377,"kind":"modifierInvocation","modifierName":{"id":30376,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":28936,"src":"17636:4:83"},"nodeType":"ModifierInvocation","src":"17636:4:83"}],"name":"deposit","nameLocation":"17605:7:83","nodeType":"FunctionDefinition","parameters":{"id":30375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30374,"mutability":"mutable","name":"amount","nameLocation":"17621:6:83","nodeType":"VariableDeclaration","scope":30482,"src":"17613:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30373,"name":"uint256","nodeType":"ElementaryTypeName","src":"17613:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17612:16:83"},"returnParameters":{"id":30378,"nodeType":"ParameterList","parameters":[],"src":"17641:0:83"},"scope":31058,"src":"17596:864:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":30492,"nodeType":"Block","src":"18498:48:83","statements":[{"expression":{"arguments":[{"baseExpression":{"id":30486,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28872,"src":"18517:9:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30489,"indexExpression":{"expression":{"id":30487,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18527:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18527:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18517:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30485,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30503,"src":"18508:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":30490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18508:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30491,"nodeType":"ExpressionStatement","src":"18508:31:83"}]},"functionSelector":"853828b6","id":30493,"implemented":true,"kind":"function","modifiers":[],"name":"withdrawAll","nameLocation":"18475:11:83","nodeType":"FunctionDefinition","parameters":{"id":30483,"nodeType":"ParameterList","parameters":[],"src":"18486:2:83"},"returnParameters":{"id":30484,"nodeType":"ParameterList","parameters":[],"src":"18498:0:83"},"scope":31058,"src":"18466:80:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":30502,"nodeType":"Block","src":"18593:38:83","statements":[{"expression":{"arguments":[{"id":30499,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30495,"src":"18617:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30498,"name":"withdrawToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30606,"src":"18603:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":30500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18603:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30501,"nodeType":"ExpressionStatement","src":"18603:21:83"}]},"functionSelector":"2e1a7d4d","id":30503,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"18561:8:83","nodeType":"FunctionDefinition","parameters":{"id":30496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30495,"mutability":"mutable","name":"amount","nameLocation":"18578:6:83","nodeType":"VariableDeclaration","scope":30503,"src":"18570:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30494,"name":"uint256","nodeType":"ElementaryTypeName","src":"18570:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18569:16:83"},"returnParameters":{"id":30497,"nodeType":"ParameterList","parameters":[],"src":"18593:0:83"},"scope":31058,"src":"18552:79:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":30605,"nodeType":"Block","src":"18688:770:83","statements":[{"expression":{"id":30512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30510,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28868,"src":"18698:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":30511,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30505,"src":"18713:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18698:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30513,"nodeType":"ExpressionStatement","src":"18698:21:83"},{"expression":{"id":30519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30514,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28872,"src":"18729:9:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30517,"indexExpression":{"expression":{"id":30515,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18739:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18739:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18729:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":30518,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30505,"src":"18754:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18729:31:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30520,"nodeType":"ExpressionStatement","src":"18729:31:83"},{"expression":{"arguments":[{"id":30522,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28817,"src":"18784:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30523,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18791:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18791:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30525,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30505,"src":"18803:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30521,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30928,"src":"18770:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":30526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18770:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30527,"nodeType":"ExpressionStatement","src":"18770:40:83"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":30538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30528,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30505,"src":"18825:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":30529,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28872,"src":"18835:9:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30532,"indexExpression":{"expression":{"id":30530,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18845:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18845:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18835:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18825:31:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"baseExpression":{"id":30534,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28835,"src":"18860:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":30537,"indexExpression":{"expression":{"id":30535,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18869:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18869:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18860:20:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18825:55:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30557,"nodeType":"IfStatement","src":"18821:228:83","trueBody":{"id":30556,"nodeType":"Block","src":"18882:167:83","statements":[{"expression":{"id":30544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30539,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28835,"src":"18896:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":30542,"indexExpression":{"expression":{"id":30540,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18905:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18905:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18896:20:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":30543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18919:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"18896:28:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30545,"nodeType":"ExpressionStatement","src":"18896:28:83"},{"expression":{"arguments":[{"expression":{"id":30552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19014:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19014:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":30547,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"18952:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":30548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"18952:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":30549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18952:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30546,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"18938:13:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoterV2_$34597_$","typeString":"type(contract IGaugeVoterV2)"}},"id":30550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18938:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"id":30551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"detachStakerFromGauge","nodeType":"MemberAccess","referencedDeclaration":34470,"src":"18938:58:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":30554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18938:100:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30555,"nodeType":"ExpressionStatement","src":"18938:100:83"}]}},{"assignments":[30559],"declarations":[{"constant":false,"id":30559,"mutability":"mutable","name":"_derivedBalance","nameLocation":"19067:15:83","nodeType":"VariableDeclaration","scope":30605,"src":"19059:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30558,"name":"uint256","nodeType":"ElementaryTypeName","src":"19059:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30564,"initialValue":{"baseExpression":{"id":30560,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"19085:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30563,"indexExpression":{"expression":{"id":30561,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19101:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19101:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19085:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19059:53:83"},{"expression":{"id":30567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30565,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"19122:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":30566,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30559,"src":"19139:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19122:32:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30568,"nodeType":"ExpressionStatement","src":"19122:32:83"},{"expression":{"id":30574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30569,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30559,"src":"19164:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":30571,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19197:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19197:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30570,"name":"derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29805,"src":"19182:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":30573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19182:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19164:44:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30575,"nodeType":"ExpressionStatement","src":"19164:44:83"},{"expression":{"id":30581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30576,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"19218:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30579,"indexExpression":{"expression":{"id":30577,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19234:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19234:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19218:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":30580,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30559,"src":"19248:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19218:45:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30582,"nodeType":"ExpressionStatement","src":"19218:45:83"},{"expression":{"id":30585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30583,"name":"derivedSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28819,"src":"19273:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":30584,"name":"_derivedBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30559,"src":"19290:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19273:32:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30586,"nodeType":"ExpressionStatement","src":"19273:32:83"},{"expression":{"arguments":[{"expression":{"id":30588,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19333:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19333:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":30590,"name":"derivedBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28823,"src":"19345:15:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30593,"indexExpression":{"expression":{"id":30591,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19361:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19361:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19345:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30587,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29388,"src":"19316:16:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":30594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19316:57:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30595,"nodeType":"ExpressionStatement","src":"19316:57:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":30596,"name":"_writeSupplyCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29503,"src":"19383:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":30597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19383:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30598,"nodeType":"ExpressionStatement","src":"19383:24:83"},{"eventCall":{"arguments":[{"expression":{"id":30600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19432:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19432:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30602,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30505,"src":"19444:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30599,"name":"Withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34227,"src":"19423:8:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":30603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19423:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30604,"nodeType":"EmitStatement","src":"19418:33:83"}]},"functionSelector":"50baa622","id":30606,"implemented":true,"kind":"function","modifiers":[{"id":30508,"kind":"modifierInvocation","modifierName":{"id":30507,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":28936,"src":"18683:4:83"},"nodeType":"ModifierInvocation","src":"18683:4:83"}],"name":"withdrawToken","nameLocation":"18646:13:83","nodeType":"FunctionDefinition","parameters":{"id":30506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30505,"mutability":"mutable","name":"amount","nameLocation":"18668:6:83","nodeType":"VariableDeclaration","scope":30606,"src":"18660:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30504,"name":"uint256","nodeType":"ElementaryTypeName","src":"18660:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18659:16:83"},"returnParameters":{"id":30509,"nodeType":"ParameterList","parameters":[],"src":"18688:0:83"},"scope":31058,"src":"18637:821:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34109],"body":{"id":30638,"nodeType":"Block","src":"19534:184:83","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30614,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"19548:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19548:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":30616,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"19567:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30618,"indexExpression":{"id":30617,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30608,"src":"19580:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19567:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19548:38:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30622,"nodeType":"IfStatement","src":"19544:52:83","trueBody":{"expression":{"hexValue":"30","id":30620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19595:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":30613,"id":30621,"nodeType":"Return","src":"19588:8:83"}},{"assignments":[30624],"declarations":[{"constant":false,"id":30624,"mutability":"mutable","name":"_remaining","nameLocation":"19614:10:83","nodeType":"VariableDeclaration","scope":30638,"src":"19606:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30623,"name":"uint256","nodeType":"ElementaryTypeName","src":"19606:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30631,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30625,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"19627:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30627,"indexExpression":{"id":30626,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30608,"src":"19640:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19627:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":30628,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"19649:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19649:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19627:37:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19606:58:83"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30632,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30624,"src":"19681:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":30633,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"19694:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30635,"indexExpression":{"id":30634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30608,"src":"19705:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19694:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19681:30:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":30613,"id":30637,"nodeType":"Return","src":"19674:37:83"}]},"functionSelector":"99bcc052","id":30639,"implemented":true,"kind":"function","modifiers":[],"name":"left","nameLocation":"19473:4:83","nodeType":"FunctionDefinition","overrides":{"id":30610,"nodeType":"OverrideSpecifier","overrides":[],"src":"19507:8:83"},"parameters":{"id":30609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30608,"mutability":"mutable","name":"token","nameLocation":"19486:5:83","nodeType":"VariableDeclaration","scope":30639,"src":"19478:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30607,"name":"address","nodeType":"ElementaryTypeName","src":"19478:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19477:15:83"},"returnParameters":{"id":30613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30639,"src":"19525:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30611,"name":"uint256","nodeType":"ElementaryTypeName","src":"19525:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19524:9:83"},"scope":31058,"src":"19464:254:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34088],"body":{"id":30828,"nodeType":"Block","src":"19834:1330:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":30652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30650,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"19852:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":30651,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28817,"src":"19861:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19852:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f6b656e203d207374616b65","id":30653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19868:15:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b","typeString":"literal_string \"token = stake\""},"value":"token = stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b","typeString":"literal_string \"token = stake\""}],"id":30649,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19844:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19844:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30655,"nodeType":"ExpressionStatement","src":"19844:40:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30657,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30643,"src":"19902:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19911:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19902:10:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203d2030","id":30660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19914:12:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""},"value":"amount = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258","typeString":"literal_string \"amount = 0\""}],"id":30656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19894:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19894:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30662,"nodeType":"ExpressionStatement","src":"19894:33:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30663,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"19941:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30665,"indexExpression":{"id":30664,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"19952:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19941:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":30666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19962:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19941:22:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30675,"nodeType":"IfStatement","src":"19937:97:83","trueBody":{"expression":{"arguments":[{"id":30669,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20008:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":30670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20015:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":30671,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20018:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20018:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30668,"name":"_writeRewardPerTokenCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29451,"src":"19977:30:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":30673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19977:57:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30674,"nodeType":"ExpressionStatement","src":"19977:57:83"}},{"expression":{"id":30686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":30676,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28851,"src":"20058:20:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30678,"indexExpression":{"id":30677,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20079:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20058:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":30679,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28847,"src":"20099:14:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30681,"indexExpression":{"id":30680,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20114:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20099:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30682,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"20044:86:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":30684,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20155:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30683,"name":"_updateRewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30191,"src":"20133:21:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (uint256,uint256)"}},"id":30685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20133:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"20044:117:83","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30687,"nodeType":"ExpressionStatement","src":"20044:117:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30688,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20176:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20176:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":30690,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"20195:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30692,"indexExpression":{"id":30691,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20208:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20195:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20176:38:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":30760,"nodeType":"Block","src":"20357:331:83","statements":[{"assignments":[30715],"declarations":[{"constant":false,"id":30715,"mutability":"mutable","name":"_remaining","nameLocation":"20379:10:83","nodeType":"VariableDeclaration","scope":30760,"src":"20371:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30714,"name":"uint256","nodeType":"ElementaryTypeName","src":"20371:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30722,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30716,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"20392:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30718,"indexExpression":{"id":30717,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20405:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20392:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":30719,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20414:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20414:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20392:37:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20371:58:83"},{"assignments":[30724],"declarations":[{"constant":false,"id":30724,"mutability":"mutable","name":"_left","nameLocation":"20451:5:83","nodeType":"VariableDeclaration","scope":30760,"src":"20443:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30723,"name":"uint256","nodeType":"ElementaryTypeName","src":"20443:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30730,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30725,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30715,"src":"20459:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":30726,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"20472:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30728,"indexExpression":{"id":30727,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20483:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20472:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20459:30:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20443:46:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30732,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30643,"src":"20511:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":30733,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30724,"src":"20520:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20511:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203e206c656674","id":30735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20527:15:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb","typeString":"literal_string \"amount > left\""},"value":"amount > left"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb","typeString":"literal_string \"amount > left\""}],"id":30731,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20503:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20503:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30737,"nodeType":"ExpressionStatement","src":"20503:40:83"},{"expression":{"arguments":[{"id":30739,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20575:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30740,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20582:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20582:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":30744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20602:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}],"id":30743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20594:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30742,"name":"address","nodeType":"ElementaryTypeName","src":"20594:7:83","typeDescriptions":{}}},"id":30745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20594:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30746,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30643,"src":"20609:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30738,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30985,"src":"20557:17:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":30747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20557:59:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30748,"nodeType":"ExpressionStatement","src":"20557:59:83"},{"expression":{"id":30758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30749,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"20630:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30751,"indexExpression":{"id":30750,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20641:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20630:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30752,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30643,"src":"20651:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":30753,"name":"_left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30724,"src":"20660:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20651:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30755,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20650:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":30756,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28826,"src":"20669:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20650:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20630:47:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30759,"nodeType":"ExpressionStatement","src":"20630:47:83"}]},"id":30761,"nodeType":"IfStatement","src":"20172:516:83","trueBody":{"id":30713,"nodeType":"Block","src":"20216:135:83","statements":[{"expression":{"arguments":[{"id":30695,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20248:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":30696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20255:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20255:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":30700,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20275:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}],"id":30699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20267:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30698,"name":"address","nodeType":"ElementaryTypeName","src":"20267:7:83","typeDescriptions":{}}},"id":30701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20267:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30702,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30643,"src":"20282:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30694,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30985,"src":"20230:17:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":30703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20230:59:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30704,"nodeType":"ExpressionStatement","src":"20230:59:83"},{"expression":{"id":30711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30705,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"20303:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30707,"indexExpression":{"id":30706,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20314:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20303:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30708,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30643,"src":"20323:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":30709,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28826,"src":"20332:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20323:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20303:37:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30712,"nodeType":"ExpressionStatement","src":"20303:37:83"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30763,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"20706:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30765,"indexExpression":{"id":30764,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20717:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20706:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20726:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20706:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"72657761726472617465203d2030","id":30768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20729:16:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86","typeString":"literal_string \"rewardrate = 0\""},"value":"rewardrate = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86","typeString":"literal_string \"rewardrate = 0\""}],"id":30762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20698:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20698:48:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30770,"nodeType":"ExpressionStatement","src":"20698:48:83"},{"assignments":[30772],"declarations":[{"constant":false,"id":30772,"mutability":"mutable","name":"balance","nameLocation":"20764:7:83","nodeType":"VariableDeclaration","scope":30828,"src":"20756:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30771,"name":"uint256","nodeType":"ElementaryTypeName","src":"20756:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30782,"initialValue":{"arguments":[{"arguments":[{"id":30779,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20806:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}],"id":30778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20798:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30777,"name":"address","nodeType":"ElementaryTypeName","src":"20798:7:83","typeDescriptions":{}}},"id":30780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20798:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":30774,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20781:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30773,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"20774:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":30775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20774:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":30776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"20774:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":30781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20774:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20756:56:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":30784,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28839,"src":"20843:10:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30786,"indexExpression":{"id":30785,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20854:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20843:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30787,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30772,"src":"20864:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":30788,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28826,"src":"20874:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20864:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20843:39:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f76696465642072657761726420746f6f2068696768","id":30791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20896:26:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""},"value":"Provided reward too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""}],"id":30783,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20822:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20822:110:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30793,"nodeType":"ExpressionStatement","src":"20822:110:83"},{"expression":{"id":30801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30794,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28843,"src":"20942:12:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":30796,"indexExpression":{"id":30795,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"20955:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20942:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30797,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20964:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":30798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20964:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":30799,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28826,"src":"20982:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20964:26:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20942:48:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30802,"nodeType":"ExpressionStatement","src":"20942:48:83"},{"condition":{"id":30806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21005:16:83","subExpression":{"baseExpression":{"id":30803,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28879,"src":"21006:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":30805,"indexExpression":{"id":30804,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"21015:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21006:15:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30820,"nodeType":"IfStatement","src":"21001:102:83","trueBody":{"id":30819,"nodeType":"Block","src":"21023:80:83","statements":[{"expression":{"id":30811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":30807,"name":"isReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28879,"src":"21037:8:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":30809,"indexExpression":{"id":30808,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"21046:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21037:15:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":30810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21055:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"21037:22:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30812,"nodeType":"ExpressionStatement","src":"21037:22:83"},{"expression":{"arguments":[{"id":30816,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"21086:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30813,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28875,"src":"21073:7:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":30815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"21073:12:83","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":30817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21073:19:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30818,"nodeType":"ExpressionStatement","src":"21073:19:83"}]}},{"eventCall":{"arguments":[{"expression":{"id":30822,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21131:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":30823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"21131:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30824,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30641,"src":"21143:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30643,"src":"21150:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30821,"name":"NotifyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34235,"src":"21118:12:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":30826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21118:39:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30827,"nodeType":"EmitStatement","src":"21113:44:83"}]},"functionSelector":"b66503cf","id":30829,"implemented":true,"kind":"function","modifiers":[{"id":30647,"kind":"modifierInvocation","modifierName":{"id":30646,"name":"lock","nodeType":"IdentifierPath","referencedDeclaration":28936,"src":"19825:4:83"},"nodeType":"ModifierInvocation","src":"19825:4:83"}],"name":"notifyRewardAmount","nameLocation":"19733:18:83","nodeType":"FunctionDefinition","overrides":{"id":30645,"nodeType":"OverrideSpecifier","overrides":[],"src":"19808:8:83"},"parameters":{"id":30644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30641,"mutability":"mutable","name":"token","nameLocation":"19760:5:83","nodeType":"VariableDeclaration","scope":30829,"src":"19752:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30640,"name":"address","nodeType":"ElementaryTypeName","src":"19752:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30643,"mutability":"mutable","name":"amount","nameLocation":"19775:6:83","nodeType":"VariableDeclaration","scope":30829,"src":"19767:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30642,"name":"uint256","nodeType":"ElementaryTypeName","src":"19767:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19751:31:83"},"returnParameters":{"id":30648,"nodeType":"ParameterList","parameters":[],"src":"19834:0:83"},"scope":31058,"src":"19724:1440:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":30856,"nodeType":"Block","src":"21339:123:83","statements":[{"assignments":[30840,30842],"declarations":[{"constant":false,"id":30840,"mutability":"mutable","name":"success","nameLocation":"21355:7:83","nodeType":"VariableDeclaration","scope":30856,"src":"21350:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30839,"name":"bool","nodeType":"ElementaryTypeName","src":"21350:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30842,"mutability":"mutable","name":"response","nameLocation":"21377:8:83","nodeType":"VariableDeclaration","scope":30856,"src":"21364:21:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":30841,"name":"bytes","nodeType":"ElementaryTypeName","src":"21364:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":30847,"initialValue":{"arguments":[{"id":30845,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30834,"src":"21401:9:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":30843,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30832,"src":"21389:6:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":30844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"21389:11:83","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":30846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21389:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"21349:62:83"},{"expression":{"arguments":[{"id":30849,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30840,"src":"21429:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":30852,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30842,"src":"21445:8:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21438:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":30850,"name":"string","nodeType":"ElementaryTypeName","src":"21438:6:83","typeDescriptions":{}}},"id":30853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21438:16:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":30848,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21421:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21421:34:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30855,"nodeType":"ExpressionStatement","src":"21421:34:83"}]},"documentation":{"id":30830,"nodeType":"StructuredDocumentation","src":"21170:59:83","text":"@dev in case admin needs to execute some calls directly"},"functionSelector":"c4bf0220","id":30857,"implemented":true,"kind":"function","modifiers":[{"id":30837,"kind":"modifierInvocation","modifierName":{"id":30836,"name":"onlyTimelock","nodeType":"IdentifierPath","referencedDeclaration":31057,"src":"21322:12:83"},"nodeType":"ModifierInvocation","src":"21322:12:83"}],"name":"emergencyCall","nameLocation":"21243:13:83","nodeType":"FunctionDefinition","parameters":{"id":30835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30832,"mutability":"mutable","name":"target","nameLocation":"21265:6:83","nodeType":"VariableDeclaration","scope":30857,"src":"21257:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30831,"name":"address","nodeType":"ElementaryTypeName","src":"21257:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30834,"mutability":"mutable","name":"signature","nameLocation":"21286:9:83","nodeType":"VariableDeclaration","scope":30857,"src":"21273:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":30833,"name":"bytes","nodeType":"ElementaryTypeName","src":"21273:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21256:40:83"},"returnParameters":{"id":30838,"nodeType":"ParameterList","parameters":[],"src":"21339:0:83"},"scope":31058,"src":"21234:228:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":30873,"nodeType":"Block","src":"21541:177:83","statements":[{"eventCall":{"arguments":[{"id":30865,"name":"maxBoostRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28854,"src":"21596:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30866,"name":"_maxBoostRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30859,"src":"21629:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30864,"name":"MaxBoostRequirementChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34257,"src":"21556:26:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":30867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21556:103:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30868,"nodeType":"EmitStatement","src":"21551:108:83"},{"expression":{"id":30871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30869,"name":"maxBoostRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28854,"src":"21669:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":30870,"name":"_maxBoostRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30859,"src":"21691:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21669:42:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30872,"nodeType":"ExpressionStatement","src":"21669:42:83"}]},"functionSelector":"b2e0df96","id":30874,"implemented":true,"kind":"function","modifiers":[{"id":30862,"kind":"modifierInvocation","modifierName":{"id":30861,"name":"onlyTimelock","nodeType":"IdentifierPath","referencedDeclaration":31057,"src":"21528:12:83"},"nodeType":"ModifierInvocation","src":"21528:12:83"}],"name":"setMaxBoost","nameLocation":"21477:11:83","nodeType":"FunctionDefinition","parameters":{"id":30860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30859,"mutability":"mutable","name":"_maxBoostRequirement","nameLocation":"21497:20:83","nodeType":"VariableDeclaration","scope":30874,"src":"21489:28:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30858,"name":"uint256","nodeType":"ElementaryTypeName","src":"21489:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21488:30:83"},"returnParameters":{"id":30863,"nodeType":"ParameterList","parameters":[],"src":"21541:0:83"},"scope":31058,"src":"21468:250:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":30927,"nodeType":"Block","src":"21828:338:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":30884,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30876,"src":"21846:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":30885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"21846:10:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":30886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"21846:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21866:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21846:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420636f6465206c656e677468","id":30889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21869:21:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""},"value":"invalid code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""}],"id":30883,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21838:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21838:53:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30891,"nodeType":"ExpressionStatement","src":"21838:53:83"},{"assignments":[30893,30895],"declarations":[{"constant":false,"id":30893,"mutability":"mutable","name":"success","nameLocation":"21907:7:83","nodeType":"VariableDeclaration","scope":30927,"src":"21902:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30892,"name":"bool","nodeType":"ElementaryTypeName","src":"21902:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30895,"mutability":"mutable","name":"data","nameLocation":"21929:4:83","nodeType":"VariableDeclaration","scope":30927,"src":"21916:17:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":30894,"name":"bytes","nodeType":"ElementaryTypeName","src":"21916:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":30907,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":30900,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"21984:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":30901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"21984:15:83","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transfer(address,uint256) returns (bool)"}},"id":30902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"21984:24:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":30903,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30878,"src":"22010:2:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30904,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30880,"src":"22014:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21961:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"21961:22:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":30905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21961:59:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":30896,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30876,"src":"21937:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":30897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"21937:10:83","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":30906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21937:93:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"21901:129:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":30923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30909,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30893,"src":"22061:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":30921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30910,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30895,"src":"22073:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":30911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22073:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":30912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22088:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22073:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":30916,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30895,"src":"22104:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":30918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22111:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":30917,"name":"bool","nodeType":"ElementaryTypeName","src":"22111:4:83","typeDescriptions":{}}}],"id":30919,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22110:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":30914,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22093:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"22093:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":30920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22093:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22073:44:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":30922,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22072:46:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22061:57:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":30924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22132:17:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":30908,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22040:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22040:119:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30926,"nodeType":"ExpressionStatement","src":"22040:119:83"}]},"id":30928,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"21733:13:83","nodeType":"FunctionDefinition","parameters":{"id":30881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30876,"mutability":"mutable","name":"token","nameLocation":"21764:5:83","nodeType":"VariableDeclaration","scope":30928,"src":"21756:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30875,"name":"address","nodeType":"ElementaryTypeName","src":"21756:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30878,"mutability":"mutable","name":"to","nameLocation":"21787:2:83","nodeType":"VariableDeclaration","scope":30928,"src":"21779:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30877,"name":"address","nodeType":"ElementaryTypeName","src":"21779:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30880,"mutability":"mutable","name":"value","nameLocation":"21807:5:83","nodeType":"VariableDeclaration","scope":30928,"src":"21799:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30879,"name":"uint256","nodeType":"ElementaryTypeName","src":"21799:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21746:72:83"},"returnParameters":{"id":30882,"nodeType":"ParameterList","parameters":[],"src":"21828:0:83"},"scope":31058,"src":"21724:442:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":30984,"nodeType":"Block","src":"22302:430:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":30940,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30930,"src":"22320:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":30941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"22320:10:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":30942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22320:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22340:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22320:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420636f6465206c656e677468","id":30945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22343:21:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""},"value":"invalid code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""}],"id":30939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22312:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22312:53:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30947,"nodeType":"ExpressionStatement","src":"22312:53:83"},{"assignments":[30949,30951],"declarations":[{"constant":false,"id":30949,"mutability":"mutable","name":"success","nameLocation":"22381:7:83","nodeType":"VariableDeclaration","scope":30984,"src":"22376:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30948,"name":"bool","nodeType":"ElementaryTypeName","src":"22376:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30951,"mutability":"mutable","name":"data","nameLocation":"22403:4:83","nodeType":"VariableDeclaration","scope":30984,"src":"22390:17:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":30950,"name":"bytes","nodeType":"ElementaryTypeName","src":"22390:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":30964,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":30956,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"22475:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":30957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"22475:19:83","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transferFrom(address,address,uint256) returns (bool)"}},"id":30958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"22475:28:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":30959,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30932,"src":"22521:4:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30960,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30934,"src":"22543:2:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30961,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30936,"src":"22563:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22435:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"22435:22:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":30962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22435:147:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":30952,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30930,"src":"22411:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":30953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"22411:10:83","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":30963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22411:181:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"22375:217:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":30980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30966,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30949,"src":"22623:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":30978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30967,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30951,"src":"22635:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":30968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22635:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":30969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22635:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":30973,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30951,"src":"22666:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":30975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22673:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":30974,"name":"bool","nodeType":"ElementaryTypeName","src":"22673:4:83","typeDescriptions":{}}}],"id":30976,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22672:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":30971,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22655:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"22655:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":30977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22655:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22635:44:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":30979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22634:46:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22623:57:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e7366657246726f6d206661696c6564","id":30981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22694:21:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""},"value":"transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""}],"id":30965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22602:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22602:123:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30983,"nodeType":"ExpressionStatement","src":"22602:123:83"}]},"id":30985,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"22181:17:83","nodeType":"FunctionDefinition","parameters":{"id":30937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30930,"mutability":"mutable","name":"token","nameLocation":"22216:5:83","nodeType":"VariableDeclaration","scope":30985,"src":"22208:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30929,"name":"address","nodeType":"ElementaryTypeName","src":"22208:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30932,"mutability":"mutable","name":"from","nameLocation":"22239:4:83","nodeType":"VariableDeclaration","scope":30985,"src":"22231:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30931,"name":"address","nodeType":"ElementaryTypeName","src":"22231:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30934,"mutability":"mutable","name":"to","nameLocation":"22261:2:83","nodeType":"VariableDeclaration","scope":30985,"src":"22253:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30933,"name":"address","nodeType":"ElementaryTypeName","src":"22253:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30936,"mutability":"mutable","name":"value","nameLocation":"22281:5:83","nodeType":"VariableDeclaration","scope":30985,"src":"22273:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30935,"name":"uint256","nodeType":"ElementaryTypeName","src":"22273:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:94:83"},"returnParameters":{"id":30938,"nodeType":"ParameterList","parameters":[],"src":"22302:0:83"},"scope":31058,"src":"22172:560:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":31038,"nodeType":"Block","src":"22846:341:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":30995,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30987,"src":"22864:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":30996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"22864:10:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":30997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22864:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22884:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22864:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420636f6465206c656e677468","id":31000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22887:21:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""},"value":"invalid code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601","typeString":"literal_string \"invalid code length\""}],"id":30994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22856:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22856:53:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31002,"nodeType":"ExpressionStatement","src":"22856:53:83"},{"assignments":[31004,31006],"declarations":[{"constant":false,"id":31004,"mutability":"mutable","name":"success","nameLocation":"22925:7:83","nodeType":"VariableDeclaration","scope":31038,"src":"22920:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31003,"name":"bool","nodeType":"ElementaryTypeName","src":"22920:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31006,"mutability":"mutable","name":"data","nameLocation":"22947:4:83","nodeType":"VariableDeclaration","scope":31038,"src":"22934:17:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31005,"name":"bytes","nodeType":"ElementaryTypeName","src":"22934:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":31018,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":31011,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"23002:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":31012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"23002:14:83","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.approve(address,uint256) returns (bool)"}},"id":31013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"23002:23:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":31014,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30989,"src":"23027:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31015,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30991,"src":"23036:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22979:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"22979:22:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":31016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22979:63:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":31007,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30987,"src":"22955:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":31008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"22955:10:83","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":31017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22955:97:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"22919:133:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":31034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31020,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31004,"src":"23083:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":31032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31021,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31006,"src":"23095:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":31022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"23095:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":31023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23110:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23095:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":31027,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31006,"src":"23126:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":31029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23133:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":31028,"name":"bool","nodeType":"ElementaryTypeName","src":"23133:4:83","typeDescriptions":{}}}],"id":31030,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23132:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":31025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23115:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"23115:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":31031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23115:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23095:44:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":31033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23094:46:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23083:57:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"617070726f7665206661696c6564","id":31035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23154:16:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_69ab7f66ce454a3f8b5143239ba623f1d94f81bb9bd3a1f7a83880ee53504f33","typeString":"literal_string \"approve failed\""},"value":"approve failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69ab7f66ce454a3f8b5143239ba623f1d94f81bb9bd3a1f7a83880ee53504f33","typeString":"literal_string \"approve failed\""}],"id":31019,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23062:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23062:118:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31037,"nodeType":"ExpressionStatement","src":"23062:118:83"}]},"id":31039,"implemented":true,"kind":"function","modifiers":[],"name":"_safeApprove","nameLocation":"22747:12:83","nodeType":"FunctionDefinition","parameters":{"id":30992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30987,"mutability":"mutable","name":"token","nameLocation":"22777:5:83","nodeType":"VariableDeclaration","scope":31039,"src":"22769:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30986,"name":"address","nodeType":"ElementaryTypeName","src":"22769:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30989,"mutability":"mutable","name":"spender","nameLocation":"22800:7:83","nodeType":"VariableDeclaration","scope":31039,"src":"22792:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30988,"name":"address","nodeType":"ElementaryTypeName","src":"22792:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30991,"mutability":"mutable","name":"value","nameLocation":"22825:5:83","nodeType":"VariableDeclaration","scope":31039,"src":"22817:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30990,"name":"uint256","nodeType":"ElementaryTypeName","src":"22817:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22759:77:83"},"returnParameters":{"id":30993,"nodeType":"ParameterList","parameters":[],"src":"22846:0:83"},"scope":31058,"src":"22738:449:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":31056,"nodeType":"Block","src":"23217:150:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23248:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"23248:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":31045,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28815,"src":"23280:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":31046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"governor","nodeType":"MemberAccess","referencedDeclaration":35475,"src":"23280:17:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23280:19:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31044,"name":"IGovernorTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4203,"src":"23262:17:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernorTimelock_$4203_$","typeString":"type(contract IGovernorTimelock)"}},"id":31048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23262:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGovernorTimelock_$4203","typeString":"contract IGovernorTimelock"}},"id":31049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timelock","nodeType":"MemberAccess","referencedDeclaration":4179,"src":"23262:47:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23262:49:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23248:63:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f742074696d656c6f636b","id":31052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23325:14:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468","typeString":"literal_string \"not timelock\""},"value":"not timelock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468","typeString":"literal_string \"not timelock\""}],"id":31041,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23227:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23227:122:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31054,"nodeType":"ExpressionStatement","src":"23227:122:83"},{"id":31055,"nodeType":"PlaceholderStatement","src":"23359:1:83"}]},"id":31057,"name":"onlyTimelock","nameLocation":"23202:12:83","nodeType":"ModifierDefinition","parameters":{"id":31040,"nodeType":"ParameterList","parameters":[],"src":"23214:2:83"},"src":"23193:174:83","virtual":false,"visibility":"internal"}],"scope":31059,"src":"731:22638:83","usedErrors":[]}],"src":"32:23338:83"},"id":83},"contracts/gauges/BaseGaugeV2UniV3.sol":{"ast":{"absolutePath":"contracts/gauges/BaseGaugeV2UniV3.sol","exportedSymbols":{"BaseGaugeV2UniV3":[32326],"IERC20":[5767],"IGaugeV2UniV3":[34269],"INFTStaker":[35022],"INonfungiblePositionManager":[35221],"IRegistry":[35522],"IUniswapV3Factory":[13539],"IUniswapV3Pool":[13561],"IUniswapV3Staker":[35864],"Math":[10353],"Multicall":[37082],"NFTPositionInfo":[37147],"PoolAddress":[37347],"ReentrancyGuard":[5062],"RewardMath":[37418],"TransferHelperExtended":[37652]},"id":32327,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":31060,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:84"},{"id":31061,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"56:19:84"},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","id":31063,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":13540,"src":"77:94:84","symbolAliases":[{"foreign":{"id":31062,"name":"IUniswapV3Factory","nodeType":"Identifier","overloadedDeclarations":[],"src":"85:17:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","id":31065,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":13562,"src":"172:88:84","symbolAliases":[{"foreign":{"id":31064,"name":"IUniswapV3Pool","nodeType":"Identifier","overloadedDeclarations":[],"src":"180:14:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":31067,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":4739,"src":"261:69:84","symbolAliases":[{"foreign":{"id":31066,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"269:6:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":31069,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":5063,"src":"331:85:84","symbolAliases":[{"foreign":{"id":31068,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"339:15:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":31071,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":10354,"src":"417:65:84","symbolAliases":[{"foreign":{"id":31070,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"425:4:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/RewardMath.sol","file":"../utils/RewardMath.sol","id":31073,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":37419,"src":"484:51:84","symbolAliases":[{"foreign":{"id":31072,"name":"RewardMath","nodeType":"Identifier","overloadedDeclarations":[],"src":"492:10:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INonfungiblePositionManager.sol","file":"../interfaces/INonfungiblePositionManager.sol","id":31075,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":35222,"src":"536:90:84","symbolAliases":[{"foreign":{"id":31074,"name":"INonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"src":"544:27:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeV2UniV3.sol","file":"../interfaces/IGaugeV2UniV3.sol","id":31077,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":34270,"src":"627:62:84","symbolAliases":[{"foreign":{"id":31076,"name":"IGaugeV2UniV3","nodeType":"Identifier","overloadedDeclarations":[],"src":"635:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../interfaces/IRegistry.sol","id":31079,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":35523,"src":"690:54:84","symbolAliases":[{"foreign":{"id":31078,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"698:9:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/NFTPositionInfo.sol","file":"../utils/NFTPositionInfo.sol","id":31081,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":37148,"src":"745:61:84","symbolAliases":[{"foreign":{"id":31080,"name":"NFTPositionInfo","nodeType":"Identifier","overloadedDeclarations":[],"src":"753:15:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/Multicall.sol","file":"../utils/Multicall.sol","id":31083,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":37083,"src":"807:49:84","symbolAliases":[{"foreign":{"id":31082,"name":"Multicall","nodeType":"Identifier","overloadedDeclarations":[],"src":"815:9:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/TransferHelperExtended.sol","file":"../utils/TransferHelperExtended.sol","id":31085,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":37653,"src":"857:75:84","symbolAliases":[{"foreign":{"id":31084,"name":"TransferHelperExtended","nodeType":"Identifier","overloadedDeclarations":[],"src":"865:22:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/PoolAddress.sol","file":"../utils/PoolAddress.sol","id":31087,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":37348,"src":"933:53:84","symbolAliases":[{"foreign":{"id":31086,"name":"PoolAddress","nodeType":"Identifier","overloadedDeclarations":[],"src":"941:11:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IUniswapV3Staker.sol","file":"../interfaces/IUniswapV3Staker.sol","id":31089,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":35865,"src":"987:68:84","symbolAliases":[{"foreign":{"id":31088,"name":"IUniswapV3Staker","nodeType":"Identifier","overloadedDeclarations":[],"src":"995:16:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTStaker.sol","file":"../interfaces/INFTStaker.sol","id":31091,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32327,"sourceUnit":35023,"src":"1056:56:84","symbolAliases":[{"foreign":{"id":31090,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"src":"1064:10:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":31093,"name":"IGaugeV2UniV3","nodeType":"IdentifierPath","referencedDeclaration":34269,"src":"1197:13:84"},"id":31094,"nodeType":"InheritanceSpecifier","src":"1197:13:84"},{"baseName":{"id":31095,"name":"IUniswapV3Staker","nodeType":"IdentifierPath","referencedDeclaration":35864,"src":"1216:16:84"},"id":31096,"nodeType":"InheritanceSpecifier","src":"1216:16:84"},{"baseName":{"id":31097,"name":"Multicall","nodeType":"IdentifierPath","referencedDeclaration":37082,"src":"1238:9:84"},"id":31098,"nodeType":"InheritanceSpecifier","src":"1238:9:84"},{"baseName":{"id":31099,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"1253:15:84"},"id":31100,"nodeType":"InheritanceSpecifier","src":"1253:15:84"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":31092,"nodeType":"StructuredDocumentation","src":"1114:50:84","text":"@title Uniswap V3 canonical staking interface"},"fullyImplemented":true,"id":32326,"linearizedBaseContracts":[32326,5062,37082,35864,34726,7110,34269],"name":"BaseGaugeV2UniV3","nameLocation":"1173:16:84","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34268],"constant":false,"functionSelector":"7b103999","id":31104,"mutability":"immutable","name":"registry","nameLocation":"1311:8:84","nodeType":"VariableDeclaration","overrides":{"id":31103,"nodeType":"OverrideSpecifier","overrides":[],"src":"1302:8:84"},"scope":32326,"src":"1275:44:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":31102,"nodeType":"UserDefinedTypeName","pathNode":{"id":31101,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"1275:9:84"},"referencedDeclaration":35522,"src":"1275:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":false,"functionSelector":"16f0115b","id":31107,"mutability":"immutable","name":"pool","nameLocation":"1357:4:84","nodeType":"VariableDeclaration","scope":32326,"src":"1325:36:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":31106,"nodeType":"UserDefinedTypeName","pathNode":{"id":31105,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"1325:14:84"},"referencedDeclaration":13561,"src":"1325:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"public"},{"constant":false,"functionSelector":"bf7989b9","id":31109,"mutability":"mutable","name":"totalRewardUnclaimed","nameLocation":"1383:20:84","nodeType":"VariableDeclaration","scope":32326,"src":"1368:35:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31108,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"a65b781e","id":31111,"mutability":"mutable","name":"totalSecondsClaimedX128","nameLocation":"1424:23:84","nodeType":"VariableDeclaration","scope":32326,"src":"1409:38:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":31110,"name":"uint160","nodeType":"ElementaryTypeName","src":"1409:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"public"},{"constant":false,"functionSelector":"78e97925","id":31113,"mutability":"mutable","name":"startTime","nameLocation":"1468:9:84","nodeType":"VariableDeclaration","scope":32326,"src":"1453:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31112,"name":"uint256","nodeType":"ElementaryTypeName","src":"1453:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"3197cbb6","id":31115,"mutability":"mutable","name":"endTime","nameLocation":"1498:7:84","nodeType":"VariableDeclaration","scope":32326,"src":"1483:22:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31114,"name":"uint256","nodeType":"ElementaryTypeName","src":"1483:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"69db8b27","id":31117,"mutability":"mutable","name":"maxBoostRequirement","nameLocation":"1526:19:84","nodeType":"VariableDeclaration","scope":32326,"src":"1511:34:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31116,"name":"uint256","nodeType":"ElementaryTypeName","src":"1511:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"9be54945","id":31119,"mutability":"mutable","name":"inEmergency","nameLocation":"1563:11:84","nodeType":"VariableDeclaration","scope":32326,"src":"1551:23:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31118,"name":"bool","nodeType":"ElementaryTypeName","src":"1551:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"d33219b4","id":31121,"mutability":"mutable","name":"timelock","nameLocation":"1595:8:84","nodeType":"VariableDeclaration","scope":32326,"src":"1580:23:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31120,"name":"address","nodeType":"ElementaryTypeName","src":"1580:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"functionSelector":"1be05289","id":31124,"mutability":"constant","name":"DURATION","nameLocation":"1633:8:84","nodeType":"VariableDeclaration","scope":32326,"src":"1609:41:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1609:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":31123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1644:6:84","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"public"},{"canonicalName":"BaseGaugeV2UniV3.Deposit","id":31131,"members":[{"constant":false,"id":31126,"mutability":"mutable","name":"owner","nameLocation":"1784:5:84","nodeType":"VariableDeclaration","scope":31131,"src":"1776:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31125,"name":"address","nodeType":"ElementaryTypeName","src":"1776:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31128,"mutability":"mutable","name":"tickLower","nameLocation":"1805:9:84","nodeType":"VariableDeclaration","scope":31131,"src":"1799:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":31127,"name":"int24","nodeType":"ElementaryTypeName","src":"1799:5:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":31130,"mutability":"mutable","name":"tickUpper","nameLocation":"1830:9:84","nodeType":"VariableDeclaration","scope":31131,"src":"1824:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":31129,"name":"int24","nodeType":"ElementaryTypeName","src":"1824:5:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"name":"Deposit","nameLocation":"1758:7:84","nodeType":"StructDefinition","scope":32326,"src":"1751:95:84","visibility":"public"},{"canonicalName":"BaseGaugeV2UniV3.Stake","id":31140,"members":[{"constant":false,"id":31133,"mutability":"mutable","name":"secondsPerLiquidityInsideInitialX128","nameLocation":"1933:36:84","nodeType":"VariableDeclaration","scope":31140,"src":"1925:44:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":31132,"name":"uint160","nodeType":"ElementaryTypeName","src":"1925:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":31135,"mutability":"mutable","name":"liquidityNoOverflow","nameLocation":"1986:19:84","nodeType":"VariableDeclaration","scope":31140,"src":"1979:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":31134,"name":"uint96","nodeType":"ElementaryTypeName","src":"1979:6:84","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":31137,"mutability":"mutable","name":"liquidityIfOverflow","nameLocation":"2023:19:84","nodeType":"VariableDeclaration","scope":31140,"src":"2015:27:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31136,"name":"uint128","nodeType":"ElementaryTypeName","src":"2015:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":31139,"mutability":"mutable","name":"nonDerivedLiquidity","nameLocation":"2060:19:84","nodeType":"VariableDeclaration","scope":31140,"src":"2052:27:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31138,"name":"uint128","nodeType":"ElementaryTypeName","src":"2052:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"Stake","nameLocation":"1909:5:84","nodeType":"StructDefinition","scope":32326,"src":"1902:184:84","visibility":"public"},{"baseFunctions":[35703],"constant":false,"documentation":{"id":31141,"nodeType":"StructuredDocumentation","src":"2092:32:84","text":"@inheritdoc IUniswapV3Staker"},"functionSelector":"c45a0155","id":31145,"mutability":"mutable","name":"factory","nameLocation":"2163:7:84","nodeType":"VariableDeclaration","overrides":{"id":31144,"nodeType":"OverrideSpecifier","overrides":[],"src":"2154:8:84"},"scope":32326,"src":"2129:41:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},"typeName":{"id":31143,"nodeType":"UserDefinedTypeName","pathNode":{"id":31142,"name":"IUniswapV3Factory","nodeType":"IdentifierPath","referencedDeclaration":13539,"src":"2129:17:84"},"referencedDeclaration":13539,"src":"2129:17:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"visibility":"public"},{"baseFunctions":[35734],"constant":false,"documentation":{"id":31146,"nodeType":"StructuredDocumentation","src":"2177:32:84","text":"@inheritdoc IUniswapV3Staker"},"functionSelector":"b44a2722","id":31150,"mutability":"mutable","name":"nonfungiblePositionManager","nameLocation":"2258:26:84","nodeType":"VariableDeclaration","overrides":{"id":31149,"nodeType":"OverrideSpecifier","overrides":[],"src":"2249:8:84"},"scope":32326,"src":"2214:70:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},"typeName":{"id":31148,"nodeType":"UserDefinedTypeName","pathNode":{"id":31147,"name":"INonfungiblePositionManager","nodeType":"IdentifierPath","referencedDeclaration":35221,"src":"2214:27:84"},"referencedDeclaration":35221,"src":"2214:27:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"visibility":"public"},{"baseFunctions":[35754],"constant":false,"documentation":{"id":31151,"nodeType":"StructuredDocumentation","src":"2291:37:84","text":"@dev deposits[tokenId] => Deposit"},"functionSelector":"b02c43d0","id":31157,"mutability":"mutable","name":"deposits","nameLocation":"2377:8:84","nodeType":"VariableDeclaration","overrides":{"id":31156,"nodeType":"OverrideSpecifier","overrides":[],"src":"2368:8:84"},"scope":32326,"src":"2333:52:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit)"},"typeName":{"id":31155,"keyType":{"id":31152,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2333:27:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit)"},"valueType":{"id":31154,"nodeType":"UserDefinedTypeName","pathNode":{"id":31153,"name":"Deposit","nodeType":"IdentifierPath","referencedDeclaration":31131,"src":"2352:7:84"},"referencedDeclaration":31131,"src":"2352:7:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Deposit"}}},"visibility":"public"},{"constant":false,"documentation":{"id":31158,"nodeType":"StructuredDocumentation","src":"2392:33:84","text":"@dev stakes[tokenId] => Stake"},"id":31163,"mutability":"mutable","name":"_stakes","nameLocation":"2464:7:84","nodeType":"VariableDeclaration","scope":32326,"src":"2430:41:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake)"},"typeName":{"id":31162,"keyType":{"id":31159,"name":"uint256","nodeType":"ElementaryTypeName","src":"2438:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2430:25:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake)"},"valueType":{"id":31161,"nodeType":"UserDefinedTypeName","pathNode":{"id":31160,"name":"Stake","nodeType":"IdentifierPath","referencedDeclaration":31140,"src":"2449:5:84"},"referencedDeclaration":31140,"src":"2449:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Stake"}}},"visibility":"private"},{"constant":false,"functionSelector":"79aa9db5","id":31165,"mutability":"mutable","name":"totalLiquiditySupply","nameLocation":"2493:20:84","nodeType":"VariableDeclaration","scope":32326,"src":"2478:35:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31164,"name":"uint256","nodeType":"ElementaryTypeName","src":"2478:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"baseFunctions":[35780],"constant":false,"documentation":{"id":31166,"nodeType":"StructuredDocumentation","src":"2520:71:84","text":"@dev rewards[owner] => uint256\n @inheritdoc IUniswapV3Staker"},"functionSelector":"0700037d","id":31171,"mutability":"mutable","name":"rewards","nameLocation":"2640:7:84","nodeType":"VariableDeclaration","overrides":{"id":31170,"nodeType":"OverrideSpecifier","overrides":[],"src":"2631:8:84"},"scope":32326,"src":"2596:51:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":31169,"keyType":{"id":31167,"name":"address","nodeType":"ElementaryTypeName","src":"2604:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2596:27:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":31168,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"baseFunctions":[35762],"constant":false,"functionSelector":"70a08231","id":31176,"mutability":"mutable","name":"balanceOf","nameLocation":"2698:9:84","nodeType":"VariableDeclaration","overrides":{"id":31175,"nodeType":"OverrideSpecifier","overrides":[],"src":"2689:8:84"},"scope":32326,"src":"2654:53:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":31174,"keyType":{"id":31172,"name":"address","nodeType":"ElementaryTypeName","src":"2662:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2654:27:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":31173,"name":"uint256","nodeType":"ElementaryTypeName","src":"2673:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":31177,"nodeType":"StructuredDocumentation","src":"2714:54:84","text":"@dev Mapping from owner to list of owned token IDs"},"id":31183,"mutability":"mutable","name":"_ownedTokens","nameLocation":"2829:12:84","nodeType":"VariableDeclaration","scope":32326,"src":"2773:68:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":31182,"keyType":{"id":31178,"name":"address","nodeType":"ElementaryTypeName","src":"2781:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2773:47:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":31181,"keyType":{"id":31179,"name":"uint256","nodeType":"ElementaryTypeName","src":"2800:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2792:27:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":31180,"name":"uint256","nodeType":"ElementaryTypeName","src":"2811:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"documentation":{"id":31184,"nodeType":"StructuredDocumentation","src":"2848:64:84","text":"@dev Mapping from token ID to index of the owner tokens list"},"id":31188,"mutability":"mutable","name":"_ownedTokensIndex","nameLocation":"2953:17:84","nodeType":"VariableDeclaration","scope":32326,"src":"2917:53:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":31187,"keyType":{"id":31185,"name":"uint256","nodeType":"ElementaryTypeName","src":"2925:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2917:27:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":31186,"name":"uint256","nodeType":"ElementaryTypeName","src":"2936:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"documentation":{"id":31189,"nodeType":"StructuredDocumentation","src":"2977:55:84","text":"@dev Array with all token ids, used for enumeration"},"id":31192,"mutability":"mutable","name":"_allTokens","nameLocation":"3055:10:84","nodeType":"VariableDeclaration","scope":32326,"src":"3037:28:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":31190,"name":"uint256","nodeType":"ElementaryTypeName","src":"3037:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31191,"nodeType":"ArrayTypeName","src":"3037:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"private"},{"constant":false,"documentation":{"id":31193,"nodeType":"StructuredDocumentation","src":"3072:65:84","text":"@dev Mapping from token id to position in the allTokens array"},"id":31197,"mutability":"mutable","name":"_allTokensIndex","nameLocation":"3178:15:84","nodeType":"VariableDeclaration","scope":32326,"src":"3142:51:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":31196,"keyType":{"id":31194,"name":"uint256","nodeType":"ElementaryTypeName","src":"3150:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3142:27:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":31195,"name":"uint256","nodeType":"ElementaryTypeName","src":"3161:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"body":{"id":31266,"nodeType":"Block","src":"3490:419:84","statements":[{"expression":{"id":31218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31214,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"3500:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31216,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31206,"src":"3521:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31215,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"3511:9:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":31217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3511:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"3500:31:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":31219,"nodeType":"ExpressionStatement","src":"3500:31:84"},{"expression":{"id":31222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31220,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"3541:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31221,"name":"_nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31211,"src":"3570:27:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"src":"3541:56:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":31223,"nodeType":"ExpressionStatement","src":"3541:56:84"},{"expression":{"id":31230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31224,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31145,"src":"3608:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":31226,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"3636:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":31227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"factory","nodeType":"MemberAccess","referencedDeclaration":14025,"src":"3636:34:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3636:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31225,"name":"IUniswapV3Factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13539,"src":"3618:17:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUniswapV3Factory_$13539_$","typeString":"type(contract IUniswapV3Factory)"}},"id":31229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3618:55:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"src":"3608:65:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"id":31231,"nodeType":"ExpressionStatement","src":"3608:65:84"},{"assignments":[31233],"declarations":[{"constant":false,"id":31233,"mutability":"mutable","name":"_pool","nameLocation":"3691:5:84","nodeType":"VariableDeclaration","scope":31266,"src":"3683:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31232,"name":"address","nodeType":"ElementaryTypeName","src":"3683:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31240,"initialValue":{"arguments":[{"id":31236,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"3715:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31237,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31202,"src":"3723:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31238,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"3731:3:84","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"expression":{"id":31234,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31145,"src":"3699:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"id":31235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":13512,"src":"3699:15:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$_t_uint24_$returns$_t_address_$","typeString":"function (address,address,uint24) view external returns (address)"}},"id":31239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3699:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3683:52:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31242,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31233,"src":"3753:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":31245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3770:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3762:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31243,"name":"address","nodeType":"ElementaryTypeName","src":"3762:7:84","typeDescriptions":{}}},"id":31246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3762:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3753:19:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f6f6c20646f65736e2774206578697374","id":31248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3774:20:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a","typeString":"literal_string \"pool doesn't exist\""},"value":"pool doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a","typeString":"literal_string \"pool doesn't exist\""}],"id":31241,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3745:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3745:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31250,"nodeType":"ExpressionStatement","src":"3745:50:84"},{"expression":{"id":31255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31251,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31107,"src":"3806:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31253,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31233,"src":"3828:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31252,"name":"IUniswapV3Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13561,"src":"3813:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUniswapV3Pool_$13561_$","typeString":"type(contract IUniswapV3Pool)"}},"id":31254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3813:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"src":"3806:28:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":31256,"nodeType":"ExpressionStatement","src":"3806:28:84"},{"expression":{"id":31259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31257,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31121,"src":"3844:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31258,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31208,"src":"3855:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3844:20:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":31260,"nodeType":"ExpressionStatement","src":"3844:20:84"},{"expression":{"id":31264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31261,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31113,"src":"3875:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":31262,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3887:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":31263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3887:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3875:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31265,"nodeType":"ExpressionStatement","src":"3875:27:84"}]},"documentation":{"id":31198,"nodeType":"StructuredDocumentation","src":"3200:80:84","text":"@param _nonfungiblePositionManager the NFT position manager contract address"},"id":31267,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":31212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31200,"mutability":"mutable","name":"token0","nameLocation":"3314:6:84","nodeType":"VariableDeclaration","scope":31267,"src":"3306:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31199,"name":"address","nodeType":"ElementaryTypeName","src":"3306:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31202,"mutability":"mutable","name":"token1","nameLocation":"3338:6:84","nodeType":"VariableDeclaration","scope":31267,"src":"3330:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31201,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31204,"mutability":"mutable","name":"fee","nameLocation":"3361:3:84","nodeType":"VariableDeclaration","scope":31267,"src":"3354:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":31203,"name":"uint24","nodeType":"ElementaryTypeName","src":"3354:6:84","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":31206,"mutability":"mutable","name":"_registry","nameLocation":"3382:9:84","nodeType":"VariableDeclaration","scope":31267,"src":"3374:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31205,"name":"address","nodeType":"ElementaryTypeName","src":"3374:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31208,"mutability":"mutable","name":"_timelock","nameLocation":"3409:9:84","nodeType":"VariableDeclaration","scope":31267,"src":"3401:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31207,"name":"address","nodeType":"ElementaryTypeName","src":"3401:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31211,"mutability":"mutable","name":"_nonfungiblePositionManager","nameLocation":"3456:27:84","nodeType":"VariableDeclaration","scope":31267,"src":"3428:55:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},"typeName":{"id":31210,"nodeType":"UserDefinedTypeName","pathNode":{"id":31209,"name":"INonfungiblePositionManager","nodeType":"IdentifierPath","referencedDeclaration":35221,"src":"3428:27:84"},"referencedDeclaration":35221,"src":"3428:27:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"visibility":"internal"}],"src":"3296:193:84"},"returnParameters":{"id":31213,"nodeType":"ParameterList","parameters":[],"src":"3490:0:84"},"scope":32326,"src":"3285:624:84","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[35772],"body":{"id":31308,"nodeType":"Block","src":"4150:300:84","statements":[{"assignments":[31280],"declarations":[{"constant":false,"id":31280,"mutability":"mutable","name":"stake","nameLocation":"4174:5:84","nodeType":"VariableDeclaration","scope":31308,"src":"4160:19:84","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Stake"},"typeName":{"id":31279,"nodeType":"UserDefinedTypeName","pathNode":{"id":31278,"name":"Stake","nodeType":"IdentifierPath","referencedDeclaration":31140,"src":"4160:5:84"},"referencedDeclaration":31140,"src":"4160:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Stake"}},"visibility":"internal"}],"id":31284,"initialValue":{"baseExpression":{"id":31281,"name":"_stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31163,"src":"4182:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake storage ref)"}},"id":31283,"indexExpression":{"id":31282,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31270,"src":"4190:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4182:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4160:38:84"},{"expression":{"id":31288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31285,"name":"secondsPerLiquidityInsideInitialX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31274,"src":"4208:36:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":31286,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31280,"src":"4247:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Stake storage pointer"}},"id":31287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"secondsPerLiquidityInsideInitialX128","nodeType":"MemberAccess","referencedDeclaration":31133,"src":"4247:55:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"4208:94:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":31289,"nodeType":"ExpressionStatement","src":"4208:94:84"},{"expression":{"id":31293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31290,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31276,"src":"4312:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":31291,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31280,"src":"4324:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Stake storage pointer"}},"id":31292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityNoOverflow","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"4324:25:84","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"4312:37:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":31294,"nodeType":"ExpressionStatement","src":"4312:37:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":31301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31295,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31276,"src":"4363:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":31298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4381:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":31297,"name":"uint96","nodeType":"ElementaryTypeName","src":"4381:6:84","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":31296,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4376:4:84","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":31299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4376:12:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":31300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"4376:16:84","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"4363:29:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31307,"nodeType":"IfStatement","src":"4359:84:84","trueBody":{"expression":{"id":31305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31302,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31276,"src":"4406:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":31303,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31280,"src":"4418:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Stake storage pointer"}},"id":31304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityIfOverflow","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"4418:25:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"4406:37:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":31306,"nodeType":"ExpressionStatement","src":"4406:37:84"}}]},"documentation":{"id":31268,"nodeType":"StructuredDocumentation","src":"3915:32:84","text":"@inheritdoc IUniswapV3Staker"},"functionSelector":"d5a44f86","id":31309,"implemented":true,"kind":"function","modifiers":[],"name":"stakes","nameLocation":"3961:6:84","nodeType":"FunctionDefinition","overrides":{"id":31272,"nodeType":"OverrideSpecifier","overrides":[],"src":"4021:8:84"},"parameters":{"id":31271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31270,"mutability":"mutable","name":"tokenId","nameLocation":"3976:7:84","nodeType":"VariableDeclaration","scope":31309,"src":"3968:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31269,"name":"uint256","nodeType":"ElementaryTypeName","src":"3968:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3967:17:84"},"returnParameters":{"id":31277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31274,"mutability":"mutable","name":"secondsPerLiquidityInsideInitialX128","nameLocation":"4068:36:84","nodeType":"VariableDeclaration","scope":31309,"src":"4060:44:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":31273,"name":"uint160","nodeType":"ElementaryTypeName","src":"4060:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":31276,"mutability":"mutable","name":"liquidity","nameLocation":"4126:9:84","nodeType":"VariableDeclaration","scope":31309,"src":"4118:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31275,"name":"uint128","nodeType":"ElementaryTypeName","src":"4118:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4046:99:84"},"scope":32326,"src":"3952:498:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[7109],"body":{"id":31469,"nodeType":"Block","src":"4813:2038:84","statements":[{"expression":{"arguments":[{"id":31326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4831:12:84","subExpression":{"id":31325,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31119,"src":"4832:11:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e20656d657267656e6379206d6f6465","id":31327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4845:19:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08","typeString":"literal_string \"in emergency mode\""},"value":"in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08","typeString":"literal_string \"in emergency mode\""}],"id":31324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4823:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4823:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31329,"nodeType":"ExpressionStatement","src":"4823:42:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31331,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4896:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4896:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":31335,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"4918:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}],"id":31334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4910:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31333,"name":"address","nodeType":"ElementaryTypeName","src":"4910:7:84","typeDescriptions":{}}},"id":31336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4910:35:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4896:49:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a6f6e45524337323152656365697665643a206e6f74206120756e697633206e6674","id":31338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4959:52:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9bf96e75e94ea4a0908da69299e92f34467aea16295aa11950ca12d63a88d91","typeString":"literal_string \"UniswapV3Staker::onERC721Received: not a univ3 nft\""},"value":"UniswapV3Staker::onERC721Received: not a univ3 nft"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9bf96e75e94ea4a0908da69299e92f34467aea16295aa11950ca12d63a88d91","typeString":"literal_string \"UniswapV3Staker::onERC721Received: not a univ3 nft\""}],"id":31330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4875:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4875:146:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31340,"nodeType":"ExpressionStatement","src":"4875:146:84"},{"assignments":[31343,31345,31347,31349],"declarations":[{"constant":false,"id":31343,"mutability":"mutable","name":"_pool","nameLocation":"5061:5:84","nodeType":"VariableDeclaration","scope":31469,"src":"5046:20:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":31342,"nodeType":"UserDefinedTypeName","pathNode":{"id":31341,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"5046:14:84"},"referencedDeclaration":13561,"src":"5046:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"internal"},{"constant":false,"id":31345,"mutability":"mutable","name":"tickLower","nameLocation":"5086:9:84","nodeType":"VariableDeclaration","scope":31469,"src":"5080:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":31344,"name":"int24","nodeType":"ElementaryTypeName","src":"5080:5:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":31347,"mutability":"mutable","name":"tickUpper","nameLocation":"5115:9:84","nodeType":"VariableDeclaration","scope":31469,"src":"5109:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":31346,"name":"int24","nodeType":"ElementaryTypeName","src":"5109:5:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":31349,"mutability":"mutable","name":"_liquidity","nameLocation":"5146:10:84","nodeType":"VariableDeclaration","scope":31469,"src":"5138:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31348,"name":"uint128","nodeType":"ElementaryTypeName","src":"5138:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":31356,"initialValue":{"arguments":[{"id":31352,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31145,"src":"5218:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},{"id":31353,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"5243:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},{"id":31354,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31316,"src":"5287:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31350,"name":"NFTPositionInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"5169:15:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTPositionInfo_$37147_$","typeString":"type(library NFTPositionInfo)"}},"id":31351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPositionInfo","nodeType":"MemberAccess","referencedDeclaration":37146,"src":"5169:31:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IUniswapV3Factory_$13539_$_t_contract$_INonfungiblePositionManager_$35221_$_t_uint256_$returns$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"function (contract IUniswapV3Factory,contract INonfungiblePositionManager,uint256) view returns (contract IUniswapV3Pool,int24,int24,uint128)"}},"id":31355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5169:139:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"tuple(contract IUniswapV3Pool,int24,int24,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"5032:276:84"},{"expression":{"id":31365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31357,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31157,"src":"5319:8:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit storage ref)"}},"id":31359,"indexExpression":{"id":31358,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31316,"src":"5328:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5319:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage","typeString":"struct BaseGaugeV2UniV3.Deposit storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31361,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31314,"src":"5368:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31362,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31345,"src":"5397:9:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":31363,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31347,"src":"5431:9:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"id":31360,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31131,"src":"5339:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Deposit_$31131_storage_ptr_$","typeString":"type(struct BaseGaugeV2UniV3.Deposit storage pointer)"}},"id":31364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["owner","tickLower","tickUpper"],"nodeType":"FunctionCall","src":"5339:112:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_memory_ptr","typeString":"struct BaseGaugeV2UniV3.Deposit memory"}},"src":"5319:132:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage","typeString":"struct BaseGaugeV2UniV3.Deposit storage ref"}},"id":31366,"nodeType":"ExpressionStatement","src":"5319:132:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"id":31370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31368,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31343,"src":"5483:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":31369,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31107,"src":"5492:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"src":"5483:13:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a7374616b65546f6b656e3a20746f6b656e20706f6f6c206973206e6f742074686520726967687420706f6f6c","id":31371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5510:63:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_8454be56f07645e4e235c6e498360f1e8ecc9e3d655ed53b8bcdaadbd61ac225","typeString":"literal_string \"UniswapV3Staker::stakeToken: token pool is not the right pool\""},"value":"UniswapV3Staker::stakeToken: token pool is not the right pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8454be56f07645e4e235c6e498360f1e8ecc9e3d655ed53b8bcdaadbd61ac225","typeString":"literal_string \"UniswapV3Staker::stakeToken: token pool is not the right pool\""}],"id":31367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5462:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5462:121:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31373,"nodeType":"ExpressionStatement","src":"5462:121:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":31377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31375,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31349,"src":"5614:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":31376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5627:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5614:14:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a7374616b65546f6b656e3a2063616e6e6f74207374616b6520746f6b656e20776974682030206c6971756964697479","id":31378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5642:66:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fc639dce1cc957a25e6c3f243500805fc10a686148519f00de9b728122a78dd","typeString":"literal_string \"UniswapV3Staker::stakeToken: cannot stake token with 0 liquidity\""},"value":"UniswapV3Staker::stakeToken: cannot stake token with 0 liquidity"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fc639dce1cc957a25e6c3f243500805fc10a686148519f00de9b728122a78dd","typeString":"literal_string \"UniswapV3Staker::stakeToken: cannot stake token with 0 liquidity\""}],"id":31374,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5593:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5593:125:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31380,"nodeType":"ExpressionStatement","src":"5593:125:84"},{"expression":{"id":31386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31381,"name":"totalLiquiditySupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31165,"src":"5729:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":31384,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31349,"src":"5761:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":31383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5753:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31382,"name":"uint256","nodeType":"ElementaryTypeName","src":"5753:7:84","typeDescriptions":{}}},"id":31385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5753:19:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5729:43:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31387,"nodeType":"ExpressionStatement","src":"5729:43:84"},{"assignments":[31389],"declarations":[{"constant":false,"id":31389,"mutability":"mutable","name":"liquidity","nameLocation":"5790:9:84","nodeType":"VariableDeclaration","scope":31469,"src":"5782:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31388,"name":"uint128","nodeType":"ElementaryTypeName","src":"5782:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":31397,"initialValue":{"arguments":[{"arguments":[{"id":31393,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31349,"src":"5827:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":31394,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31314,"src":"5839:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31392,"name":"derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31902,"src":"5810:16:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":31395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5810:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5802:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":31390,"name":"uint128","nodeType":"ElementaryTypeName","src":"5802:7:84","typeDescriptions":{}}},"id":31396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5802:43:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"5782:63:84"},{"assignments":[null,31399,null],"declarations":[null,{"constant":false,"id":31399,"mutability":"mutable","name":"secondsPerLiquidityInsideX128","nameLocation":"5867:29:84","nodeType":"VariableDeclaration","scope":31469,"src":"5859:37:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":31398,"name":"uint160","nodeType":"ElementaryTypeName","src":"5859:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},null],"id":31405,"initialValue":{"arguments":[{"id":31402,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31345,"src":"5947:9:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":31403,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31347,"src":"5958:9:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"expression":{"id":31400,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31343,"src":"5902:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":31401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"snapshotCumulativesInside","nodeType":"MemberAccess","referencedDeclaration":13687,"src":"5902:44:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_int24_$_t_int24_$returns$_t_int56_$_t_uint160_$_t_uint32_$","typeString":"function (int24,int24) view external returns (int56,uint160,uint32)"}},"id":31404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5902:66:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_int56_$_t_uint160_$_t_uint32_$","typeString":"tuple(int56,uint160,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"5856:112:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":31412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31406,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31389,"src":"5983:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"arguments":[{"id":31409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6001:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":31408,"name":"uint96","nodeType":"ElementaryTypeName","src":"6001:6:84","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":31407,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5996:4:84","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":31410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5996:12:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":31411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5996:16:84","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"5983:29:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31443,"nodeType":"Block","src":"6322:295:84","statements":[{"expression":{"id":31441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31429,"name":"_stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31163,"src":"6336:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake storage ref)"}},"id":31431,"indexExpression":{"id":31430,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31316,"src":"6344:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6336:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31433,"name":"secondsPerLiquidityInsideX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31399,"src":"6417:29:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"arguments":[{"id":31436,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31389,"src":"6492:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":31435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6485:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":31434,"name":"uint96","nodeType":"ElementaryTypeName","src":"6485:6:84","typeDescriptions":{}}},"id":31437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6485:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"hexValue":"30","id":31438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6541:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":31439,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31349,"src":"6581:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":31432,"name":"Stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31140,"src":"6355:5:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Stake_$31140_storage_ptr_$","typeString":"type(struct BaseGaugeV2UniV3.Stake storage pointer)"}},"id":31440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["secondsPerLiquidityInsideInitialX128","liquidityNoOverflow","liquidityIfOverflow","nonDerivedLiquidity"],"nodeType":"FunctionCall","src":"6355:251:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_memory_ptr","typeString":"struct BaseGaugeV2UniV3.Stake memory"}},"src":"6336:270:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"id":31442,"nodeType":"ExpressionStatement","src":"6336:270:84"}]},"id":31444,"nodeType":"IfStatement","src":"5979:638:84","trueBody":{"id":31428,"nodeType":"Block","src":"6014:302:84","statements":[{"expression":{"id":31426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31413,"name":"_stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31163,"src":"6028:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake storage ref)"}},"id":31415,"indexExpression":{"id":31414,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31316,"src":"6036:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6028:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31417,"name":"secondsPerLiquidityInsideX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31399,"src":"6109:29:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"expression":{"arguments":[{"id":31420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6182:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":31419,"name":"uint96","nodeType":"ElementaryTypeName","src":"6182:6:84","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":31418,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6177:4:84","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":31421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6177:12:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":31422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6177:16:84","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":31423,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31389,"src":"6232:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":31424,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31349,"src":"6280:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":31416,"name":"Stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31140,"src":"6047:5:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Stake_$31140_storage_ptr_$","typeString":"type(struct BaseGaugeV2UniV3.Stake storage pointer)"}},"id":31425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["secondsPerLiquidityInsideInitialX128","liquidityNoOverflow","liquidityIfOverflow","nonDerivedLiquidity"],"nodeType":"FunctionCall","src":"6047:258:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_memory_ptr","typeString":"struct BaseGaugeV2UniV3.Stake memory"}},"src":"6028:277:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"id":31427,"nodeType":"ExpressionStatement","src":"6028:277:84"}]}},{"expression":{"arguments":[{"id":31446,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31316,"src":"6659:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31445,"name":"_addTokenToAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32217,"src":"6627:31:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":31447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6627:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31448,"nodeType":"ExpressionStatement","src":"6627:40:84"},{"expression":{"arguments":[{"id":31450,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31314,"src":"6705:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31451,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31316,"src":"6711:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31449,"name":"_addTokenToOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32197,"src":"6677:27:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":31452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6677:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31453,"nodeType":"ExpressionStatement","src":"6677:42:84"},{"expression":{"id":31458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31454,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31176,"src":"6729:9:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31456,"indexExpression":{"id":31455,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31314,"src":"6739:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6729:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":31457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6748:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6729:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31459,"nodeType":"ExpressionStatement","src":"6729:20:84"},{"eventCall":{"arguments":[{"id":31461,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31316,"src":"6777:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31462,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31349,"src":"6786:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":31460,"name":"TokenStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35851,"src":"6765:11:84","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint128_$returns$__$","typeString":"function (uint256,uint128)"}},"id":31463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6765:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31464,"nodeType":"EmitStatement","src":"6760:37:84"},{"expression":{"expression":{"expression":{"id":31465,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6814:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}},"id":31466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":31470,"src":"6814:21:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":31467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"6814:30:84","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":31323,"id":31468,"nodeType":"Return","src":"6807:37:84"}]},"documentation":{"id":31310,"nodeType":"StructuredDocumentation","src":"4456:197:84","text":"@notice Upon receiving a Uniswap V3 ERC721, creates the token deposit setting owner to `from`. Also stakes token\n in one or more incentives if properly formatted `data` has a length > 0."},"functionSelector":"150b7a02","id":31470,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"4667:16:84","nodeType":"FunctionDefinition","overrides":{"id":31320,"nodeType":"OverrideSpecifier","overrides":[],"src":"4787:8:84"},"parameters":{"id":31319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31470,"src":"4693:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31311,"name":"address","nodeType":"ElementaryTypeName","src":"4693:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31314,"mutability":"mutable","name":"from","nameLocation":"4718:4:84","nodeType":"VariableDeclaration","scope":31470,"src":"4710:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31313,"name":"address","nodeType":"ElementaryTypeName","src":"4710:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31316,"mutability":"mutable","name":"tokenId","nameLocation":"4740:7:84","nodeType":"VariableDeclaration","scope":31470,"src":"4732:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31315,"name":"uint256","nodeType":"ElementaryTypeName","src":"4732:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31470,"src":"4757:14:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":31317,"name":"bytes","nodeType":"ElementaryTypeName","src":"4757:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4683:94:84"},"returnParameters":{"id":31323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31470,"src":"4805:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":31321,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4805:6:84","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4804:8:84"},"scope":32326,"src":"4658:2193:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35811],"body":{"id":31551,"nodeType":"Block","src":"6952:758:84","statements":[{"expression":{"arguments":[{"id":31479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6970:12:84","subExpression":{"id":31478,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31119,"src":"6971:11:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e20656d657267656e6379206d6f6465","id":31480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6984:19:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08","typeString":"literal_string \"in emergency mode\""},"value":"in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08","typeString":"literal_string \"in emergency mode\""}],"id":31477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6962:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6962:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31482,"nodeType":"ExpressionStatement","src":"6962:42:84"},{"expression":{"arguments":[{"id":31484,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7062:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31483,"name":"_updateReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31743,"src":"7048:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":31485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7048:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31486,"nodeType":"ExpressionStatement","src":"7048:22:84"},{"expression":{"id":31495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31487,"name":"totalLiquiditySupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31165,"src":"7081:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":31490,"name":"_stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31163,"src":"7113:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake storage ref)"}},"id":31492,"indexExpression":{"id":31491,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7121:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7113:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"id":31493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonDerivedLiquidity","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"7113:36:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":31489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7105:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31488,"name":"uint256","nodeType":"ElementaryTypeName","src":"7105:7:84","typeDescriptions":{}}},"id":31494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7105:45:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7081:69:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31496,"nodeType":"ExpressionStatement","src":"7081:69:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":31498,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31157,"src":"7182:8:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit storage ref)"}},"id":31500,"indexExpression":{"id":31499,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7191:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7182:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage","typeString":"struct BaseGaugeV2UniV3.Deposit storage ref"}},"id":31501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":31126,"src":"7182:23:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":31502,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7209:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7209:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7182:37:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a7769746864726177546f6b656e3a206f6e6c79206f776e65722063616e20776974686472617720746f6b656e","id":31505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7233:63:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8202f3ed8fef68502cdb85899324e7bff182d4c4d923be1941b47f8c4ca81db","typeString":"literal_string \"UniswapV3Staker::withdrawToken: only owner can withdraw token\""},"value":"UniswapV3Staker::withdrawToken: only owner can withdraw token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8202f3ed8fef68502cdb85899324e7bff182d4c4d923be1941b47f8c4ca81db","typeString":"literal_string \"UniswapV3Staker::withdrawToken: only owner can withdraw token\""}],"id":31497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7161:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7161:145:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31507,"nodeType":"ExpressionStatement","src":"7161:145:84"},{"expression":{"id":31511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7317:24:84","subExpression":{"baseExpression":{"id":31508,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31157,"src":"7324:8:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit storage ref)"}},"id":31510,"indexExpression":{"id":31509,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7333:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7324:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage","typeString":"struct BaseGaugeV2UniV3.Deposit storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31512,"nodeType":"ExpressionStatement","src":"7317:24:84"},{"expression":{"id":31516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7351:23:84","subExpression":{"baseExpression":{"id":31513,"name":"_stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31163,"src":"7358:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake storage ref)"}},"id":31515,"indexExpression":{"id":31514,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7366:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7358:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31517,"nodeType":"ExpressionStatement","src":"7351:23:84"},{"expression":{"arguments":[{"expression":{"id":31519,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7418:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7418:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31521,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7430:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31518,"name":"_removeTokenFromOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32277,"src":"7385:32:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":31522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7385:53:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31523,"nodeType":"ExpressionStatement","src":"7385:53:84"},{"expression":{"arguments":[{"id":31525,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7485:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31524,"name":"_removeTokenFromAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32325,"src":"7448:36:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":31526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7448:45:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31527,"nodeType":"ExpressionStatement","src":"7448:45:84"},{"expression":{"id":31533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31528,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31176,"src":"7503:9:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31531,"indexExpression":{"expression":{"id":31529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7513:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7513:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7503:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":31532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7528:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7503:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31534,"nodeType":"ExpressionStatement","src":"7503:26:84"},{"eventCall":{"arguments":[{"id":31536,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7559:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31535,"name":"TokenUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35856,"src":"7545:13:84","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":31537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7545:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31538,"nodeType":"EmitStatement","src":"7540:27:84"},{"expression":{"arguments":[{"arguments":[{"id":31544,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7643:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}],"id":31543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7635:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31542,"name":"address","nodeType":"ElementaryTypeName","src":"7635:7:84","typeDescriptions":{}}},"id":31545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7635:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":31546,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7662:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7662:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31548,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31473,"src":"7686:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31539,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"7578:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":31541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":7047,"src":"7578:43:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":31549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7578:125:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31550,"nodeType":"ExpressionStatement","src":"7578:125:84"}]},"documentation":{"id":31471,"nodeType":"StructuredDocumentation","src":"6857:32:84","text":"@inheritdoc IUniswapV3Staker"},"functionSelector":"50baa622","id":31552,"implemented":true,"kind":"function","modifiers":[],"name":"withdrawToken","nameLocation":"6903:13:84","nodeType":"FunctionDefinition","overrides":{"id":31475,"nodeType":"OverrideSpecifier","overrides":[],"src":"6943:8:84"},"parameters":{"id":31474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31473,"mutability":"mutable","name":"tokenId","nameLocation":"6925:7:84","nodeType":"VariableDeclaration","scope":31552,"src":"6917:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31472,"name":"uint256","nodeType":"ElementaryTypeName","src":"6917:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6916:17:84"},"returnParameters":{"id":31476,"nodeType":"ParameterList","parameters":[],"src":"6952:0:84"},"scope":32326,"src":"6894:816:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":31629,"nodeType":"Block","src":"7772:786:84","statements":[{"expression":{"arguments":[{"id":31558,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31119,"src":"7790:11:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420696e20656d657267656e6379206d6f6465","id":31559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7803:23:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""},"value":"not in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""}],"id":31557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7782:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7782:45:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31561,"nodeType":"ExpressionStatement","src":"7782:45:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":31563,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31157,"src":"7858:8:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit storage ref)"}},"id":31565,"indexExpression":{"id":31564,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"7867:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7858:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage","typeString":"struct BaseGaugeV2UniV3.Deposit storage ref"}},"id":31566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":31126,"src":"7858:23:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":31567,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7885:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7885:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7858:37:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a7769746864726177546f6b656e3a206f6e6c79206f776e65722063616e20776974686472617720746f6b656e","id":31570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7909:63:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8202f3ed8fef68502cdb85899324e7bff182d4c4d923be1941b47f8c4ca81db","typeString":"literal_string \"UniswapV3Staker::withdrawToken: only owner can withdraw token\""},"value":"UniswapV3Staker::withdrawToken: only owner can withdraw token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8202f3ed8fef68502cdb85899324e7bff182d4c4d923be1941b47f8c4ca81db","typeString":"literal_string \"UniswapV3Staker::withdrawToken: only owner can withdraw token\""}],"id":31562,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7837:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7837:145:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31572,"nodeType":"ExpressionStatement","src":"7837:145:84"},{"assignments":[null,31574],"declarations":[null,{"constant":false,"id":31574,"mutability":"mutable","name":"liquidity","nameLocation":"8004:9:84","nodeType":"VariableDeclaration","scope":31629,"src":"7996:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31573,"name":"uint128","nodeType":"ElementaryTypeName","src":"7996:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":31578,"initialValue":{"arguments":[{"id":31576,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"8024:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31575,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31309,"src":"8017:6:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint160_$_t_uint128_$","typeString":"function (uint256) view returns (uint160,uint128)"}},"id":31577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8017:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint160_$_t_uint128_$","typeString":"tuple(uint160,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7993:39:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":31582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31580,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31574,"src":"8063:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":31581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8076:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8063:14:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a756e7374616b65546f6b656e3a207374616b6520646f6573206e6f74206578697374","id":31583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8091:53:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_4aa6be96f3947efce39d4719c93b6331965baca69492a001463b59edc3edf4cd","typeString":"literal_string \"UniswapV3Staker::unstakeToken: stake does not exist\""},"value":"UniswapV3Staker::unstakeToken: stake does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4aa6be96f3947efce39d4719c93b6331965baca69492a001463b59edc3edf4cd","typeString":"literal_string \"UniswapV3Staker::unstakeToken: stake does not exist\""}],"id":31579,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8042:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8042:112:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31585,"nodeType":"ExpressionStatement","src":"8042:112:84"},{"expression":{"id":31589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8165:24:84","subExpression":{"baseExpression":{"id":31586,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31157,"src":"8172:8:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit storage ref)"}},"id":31588,"indexExpression":{"id":31587,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"8181:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8172:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage","typeString":"struct BaseGaugeV2UniV3.Deposit storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31590,"nodeType":"ExpressionStatement","src":"8165:24:84"},{"expression":{"id":31594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8199:23:84","subExpression":{"baseExpression":{"id":31591,"name":"_stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31163,"src":"8206:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Stake_$31140_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Stake storage ref)"}},"id":31593,"indexExpression":{"id":31592,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"8214:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8206:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Stake_$31140_storage","typeString":"struct BaseGaugeV2UniV3.Stake storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31595,"nodeType":"ExpressionStatement","src":"8199:23:84"},{"expression":{"arguments":[{"expression":{"id":31597,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8266:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8266:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31599,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"8278:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31596,"name":"_removeTokenFromOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32277,"src":"8233:32:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":31600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8233:53:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31601,"nodeType":"ExpressionStatement","src":"8233:53:84"},{"expression":{"arguments":[{"id":31603,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"8333:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31602,"name":"_removeTokenFromAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32325,"src":"8296:36:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":31604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8296:45:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31605,"nodeType":"ExpressionStatement","src":"8296:45:84"},{"expression":{"id":31611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31606,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31176,"src":"8351:9:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31609,"indexExpression":{"expression":{"id":31607,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8361:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8361:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8351:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":31610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8376:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8351:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31612,"nodeType":"ExpressionStatement","src":"8351:26:84"},{"eventCall":{"arguments":[{"id":31614,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"8407:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31613,"name":"TokenUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35856,"src":"8393:13:84","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":31615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8393:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31616,"nodeType":"EmitStatement","src":"8388:27:84"},{"expression":{"arguments":[{"arguments":[{"id":31622,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8491:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}],"id":31621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8483:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31620,"name":"address","nodeType":"ElementaryTypeName","src":"8483:7:84","typeDescriptions":{}}},"id":31623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8483:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":31624,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8510:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8510:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31626,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31554,"src":"8534:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31617,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"8426:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":31619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":7047,"src":"8426:43:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":31627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8426:125:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31628,"nodeType":"ExpressionStatement","src":"8426:125:84"}]},"functionSelector":"8a16a30b","id":31630,"implemented":true,"kind":"function","modifiers":[],"name":"withdrawViaEmergency","nameLocation":"7725:20:84","nodeType":"FunctionDefinition","parameters":{"id":31555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31554,"mutability":"mutable","name":"tokenId","nameLocation":"7754:7:84","nodeType":"VariableDeclaration","scope":31630,"src":"7746:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31553,"name":"uint256","nodeType":"ElementaryTypeName","src":"7746:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7745:17:84"},"returnParameters":{"id":31556,"nodeType":"ParameterList","parameters":[],"src":"7772:0:84"},"scope":32326,"src":"7716:842:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":31672,"nodeType":"Block","src":"8604:323:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31634,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8622:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8622:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":31636,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31121,"src":"8636:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8622:22:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f742074696d656c6f636b","id":31638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8646:14:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468","typeString":"literal_string \"not timelock\""},"value":"not timelock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468","typeString":"literal_string \"not timelock\""}],"id":31633,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8614:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8614:47:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31640,"nodeType":"ExpressionStatement","src":"8614:47:84"},{"expression":{"arguments":[{"id":31643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8679:12:84","subExpression":{"id":31642,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31119,"src":"8680:11:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c726561647920696e20656d657267656e6379206d6f6465","id":31644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8693:27:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d","typeString":"literal_string \"already in emergency mode\""},"value":"already in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d","typeString":"literal_string \"already in emergency mode\""}],"id":31641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8671:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8671:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31646,"nodeType":"ExpressionStatement","src":"8671:50:84"},{"expression":{"id":31649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31647,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31119,"src":"8732:11:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":31648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8746:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8732:18:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31650,"nodeType":"ExpressionStatement","src":"8732:18:84"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":31654,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"8809:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":31655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"8809:13:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8809:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":31657,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8838:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8838:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":31667,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8904:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}],"id":31666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8896:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31665,"name":"address","nodeType":"ElementaryTypeName","src":"8896:7:84","typeDescriptions":{}}},"id":31668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8896:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":31660,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"8869:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":31661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"8869:13:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8869:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31659,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"8862:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":31663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8862:23:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":31664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"8862:33:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":31669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8862:48:84","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"}],"expression":{"id":31651,"name":"TransferHelperExtended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37652,"src":"8760:22:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelperExtended_$37652_$","typeString":"type(library TransferHelperExtended)"}},"id":31653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"8760:35:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8760:160:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31671,"nodeType":"ExpressionStatement","src":"8760:160:84"}]},"functionSelector":"c5b1c7d0","id":31673,"implemented":true,"kind":"function","modifiers":[],"name":"enableEmergencyMode","nameLocation":"8573:19:84","nodeType":"FunctionDefinition","parameters":{"id":31631,"nodeType":"ParameterList","parameters":[],"src":"8592:2:84"},"returnParameters":{"id":31632,"nodeType":"ParameterList","parameters":[],"src":"8604:0:84"},"scope":32326,"src":"8564:363:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":31742,"nodeType":"Block","src":"8982:1294:84","statements":[{"assignments":[31680],"declarations":[{"constant":false,"id":31680,"mutability":"mutable","name":"deposit","nameLocation":"9007:7:84","nodeType":"VariableDeclaration","scope":31742,"src":"8992:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_memory_ptr","typeString":"struct BaseGaugeV2UniV3.Deposit"},"typeName":{"id":31679,"nodeType":"UserDefinedTypeName","pathNode":{"id":31678,"name":"Deposit","nodeType":"IdentifierPath","referencedDeclaration":31131,"src":"8992:7:84"},"referencedDeclaration":31131,"src":"8992:7:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage_ptr","typeString":"struct BaseGaugeV2UniV3.Deposit"}},"visibility":"internal"}],"id":31684,"initialValue":{"baseExpression":{"id":31681,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31157,"src":"9017:8:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$31131_storage_$","typeString":"mapping(uint256 => struct BaseGaugeV2UniV3.Deposit storage ref)"}},"id":31683,"indexExpression":{"id":31682,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31675,"src":"9026:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9017:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_storage","typeString":"struct BaseGaugeV2UniV3.Deposit storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8992:42:84"},{"assignments":[31686,31688],"declarations":[{"constant":false,"id":31686,"mutability":"mutable","name":"secondsPerLiquidityInsideInitialX128","nameLocation":"9067:36:84","nodeType":"VariableDeclaration","scope":31742,"src":"9059:44:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":31685,"name":"uint160","nodeType":"ElementaryTypeName","src":"9059:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":31688,"mutability":"mutable","name":"liquidity","nameLocation":"9125:9:84","nodeType":"VariableDeclaration","scope":31742,"src":"9117:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31687,"name":"uint128","nodeType":"ElementaryTypeName","src":"9117:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":31692,"initialValue":{"arguments":[{"id":31690,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31675,"src":"9154:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31689,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31309,"src":"9147:6:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint160_$_t_uint128_$","typeString":"function (uint256) view returns (uint160,uint128)"}},"id":31691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9147:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint160_$_t_uint128_$","typeString":"tuple(uint160,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"9045:117:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":31696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31694,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31688,"src":"9194:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":31695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9207:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9194:14:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a756e7374616b65546f6b656e3a207374616b6520646f6573206e6f74206578697374","id":31697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9222:53:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_4aa6be96f3947efce39d4719c93b6331965baca69492a001463b59edc3edf4cd","typeString":"literal_string \"UniswapV3Staker::unstakeToken: stake does not exist\""},"value":"UniswapV3Staker::unstakeToken: stake does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4aa6be96f3947efce39d4719c93b6331965baca69492a001463b59edc3edf4cd","typeString":"literal_string \"UniswapV3Staker::unstakeToken: stake does not exist\""}],"id":31693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9173:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9173:112:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31699,"nodeType":"ExpressionStatement","src":"9173:112:84"},{"assignments":[null,31701,null],"declarations":[null,{"constant":false,"id":31701,"mutability":"mutable","name":"secondsPerLiquidityInsideX128","nameLocation":"9307:29:84","nodeType":"VariableDeclaration","scope":31742,"src":"9299:37:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":31700,"name":"uint160","nodeType":"ElementaryTypeName","src":"9299:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},null],"id":31709,"initialValue":{"arguments":[{"expression":{"id":31704,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"9386:7:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_memory_ptr","typeString":"struct BaseGaugeV2UniV3.Deposit memory"}},"id":31705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickLower","nodeType":"MemberAccess","referencedDeclaration":31128,"src":"9386:17:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":31706,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"9405:7:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_memory_ptr","typeString":"struct BaseGaugeV2UniV3.Deposit memory"}},"id":31707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickUpper","nodeType":"MemberAccess","referencedDeclaration":31130,"src":"9405:17:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"expression":{"id":31702,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31107,"src":"9342:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":31703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"snapshotCumulativesInside","nodeType":"MemberAccess","referencedDeclaration":13687,"src":"9342:43:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_int24_$_t_int24_$returns$_t_int56_$_t_uint160_$_t_uint32_$","typeString":"function (int24,int24) view external returns (int56,uint160,uint32)"}},"id":31708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9342:81:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_int56_$_t_uint160_$_t_uint32_$","typeString":"tuple(int56,uint160,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"9296:127:84"},{"assignments":[31711,31713],"declarations":[{"constant":false,"id":31711,"mutability":"mutable","name":"reward","nameLocation":"9443:6:84","nodeType":"VariableDeclaration","scope":31742,"src":"9435:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31710,"name":"uint256","nodeType":"ElementaryTypeName","src":"9435:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31713,"mutability":"mutable","name":"secondsInsideX128","nameLocation":"9459:17:84","nodeType":"VariableDeclaration","scope":31742,"src":"9451:25:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":31712,"name":"uint160","nodeType":"ElementaryTypeName","src":"9451:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"id":31726,"initialValue":{"arguments":[{"id":31716,"name":"totalRewardUnclaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31109,"src":"9541:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31717,"name":"totalSecondsClaimedX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31111,"src":"9579:23:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"id":31718,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31113,"src":"9620:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31719,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31115,"src":"9647:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31720,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31688,"src":"9672:9:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":31721,"name":"secondsPerLiquidityInsideInitialX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31686,"src":"9699:36:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"id":31722,"name":"secondsPerLiquidityInsideX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31701,"src":"9753:29:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"expression":{"id":31723,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9800:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":31724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9800:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31714,"name":"RewardMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"9480:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RewardMath_$37418_$","typeString":"type(library RewardMath)"}},"id":31715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"computeRewardAmount","nodeType":"MemberAccess","referencedDeclaration":37417,"src":"9480:43:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint160_$_t_uint256_$_t_uint256_$_t_uint128_$_t_uint160_$_t_uint160_$_t_uint256_$returns$_t_uint256_$_t_uint160_$","typeString":"function (uint256,uint160,uint256,uint256,uint128,uint160,uint160,uint256) pure returns (uint256,uint160)"}},"id":31725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9480:349:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint160_$","typeString":"tuple(uint256,uint160)"}},"nodeType":"VariableDeclarationStatement","src":"9434:395:84"},{"expression":{"id":31729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31727,"name":"totalSecondsClaimedX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31111,"src":"9988:23:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":31728,"name":"secondsInsideX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31713,"src":"10015:17:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"9988:44:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":31730,"nodeType":"ExpressionStatement","src":"9988:44:84"},{"expression":{"id":31733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31731,"name":"totalRewardUnclaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31109,"src":"10105:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":31732,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31711,"src":"10129:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10105:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31734,"nodeType":"ExpressionStatement","src":"10105:30:84"},{"expression":{"id":31740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31735,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31171,"src":"10237:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31738,"indexExpression":{"expression":{"id":31736,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"10245:7:84","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$31131_memory_ptr","typeString":"struct BaseGaugeV2UniV3.Deposit memory"}},"id":31737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":31126,"src":"10245:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10237:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":31739,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31711,"src":"10263:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10237:32:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31741,"nodeType":"ExpressionStatement","src":"10237:32:84"}]},"id":31743,"implemented":true,"kind":"function","modifiers":[],"name":"_updateReward","nameLocation":"8942:13:84","nodeType":"FunctionDefinition","parameters":{"id":31676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31675,"mutability":"mutable","name":"tokenId","nameLocation":"8964:7:84","nodeType":"VariableDeclaration","scope":31743,"src":"8956:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31674,"name":"uint256","nodeType":"ElementaryTypeName","src":"8956:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8955:17:84"},"returnParameters":{"id":31677,"nodeType":"ParameterList","parameters":[],"src":"8982:0:84"},"scope":32326,"src":"8933:1343:84","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":31793,"nodeType":"Block","src":"10380:314:84","statements":[{"expression":{"arguments":[{"id":31754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10398:12:84","subExpression":{"id":31753,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31119,"src":"10399:11:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e20656d657267656e6379206d6f6465","id":31755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10412:19:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08","typeString":"literal_string \"in emergency mode\""},"value":"in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08","typeString":"literal_string \"in emergency mode\""}],"id":31752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10390:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":31756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10390:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31757,"nodeType":"ExpressionStatement","src":"10390:42:84"},{"expression":{"arguments":[{"id":31759,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31745,"src":"10457:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31758,"name":"_updateReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31743,"src":"10443:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":31760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10443:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31761,"nodeType":"ExpressionStatement","src":"10443:22:84"},{"assignments":[31763],"declarations":[{"constant":false,"id":31763,"mutability":"mutable","name":"reward","nameLocation":"10483:6:84","nodeType":"VariableDeclaration","scope":31793,"src":"10475:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31762,"name":"uint256","nodeType":"ElementaryTypeName","src":"10475:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31768,"initialValue":{"baseExpression":{"id":31764,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31171,"src":"10492:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31767,"indexExpression":{"expression":{"id":31765,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10500:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10500:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10492:19:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10475:36:84"},{"expression":{"id":31774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31769,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31171,"src":"10521:7:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31772,"indexExpression":{"expression":{"id":31770,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10529:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":31771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10529:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10521:19:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":31773,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31763,"src":"10544:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10521:29:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31775,"nodeType":"ExpressionStatement","src":"10521:29:84"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":31779,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"10596:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":31780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"10596:13:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10596:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31782,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31747,"src":"10613:2:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31783,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31763,"src":"10617:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31776,"name":"TransferHelperExtended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37652,"src":"10560:22:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelperExtended_$37652_$","typeString":"type(library TransferHelperExtended)"}},"id":31778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"10560:35:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10560:64:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31785,"nodeType":"ExpressionStatement","src":"10560:64:84"},{"eventCall":{"arguments":[{"id":31787,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31747,"src":"10653:2:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31788,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31763,"src":"10657:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31786,"name":"RewardClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35863,"src":"10639:13:84","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":31789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10639:25:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31790,"nodeType":"EmitStatement","src":"10634:30:84"},{"expression":{"id":31791,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31763,"src":"10681:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31751,"id":31792,"nodeType":"Return","src":"10674:13:84"}]},"id":31794,"implemented":true,"kind":"function","modifiers":[],"name":"_claimReward","nameLocation":"10291:12:84","nodeType":"FunctionDefinition","parameters":{"id":31748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31745,"mutability":"mutable","name":"tokenId","nameLocation":"10312:7:84","nodeType":"VariableDeclaration","scope":31794,"src":"10304:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31744,"name":"uint256","nodeType":"ElementaryTypeName","src":"10304:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31747,"mutability":"mutable","name":"to","nameLocation":"10329:2:84","nodeType":"VariableDeclaration","scope":31794,"src":"10321:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31746,"name":"address","nodeType":"ElementaryTypeName","src":"10321:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10303:29:84"},"returnParameters":{"id":31751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31794,"src":"10367:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31749,"name":"uint256","nodeType":"ElementaryTypeName","src":"10367:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10366:9:84"},"scope":32326,"src":"10282:412:84","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[35832],"body":{"id":31833,"nodeType":"Block","src":"10862:189:84","statements":[{"assignments":[31807],"declarations":[{"constant":false,"id":31807,"mutability":"mutable","name":"reward","nameLocation":"10880:6:84","nodeType":"VariableDeclaration","scope":31833,"src":"10872:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31806,"name":"uint256","nodeType":"ElementaryTypeName","src":"10872:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31808,"nodeType":"VariableDeclarationStatement","src":"10872:14:84"},{"body":{"id":31829,"nodeType":"Block","src":"10954:68:84","statements":[{"expression":{"id":31827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31820,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31807,"src":"10968:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"baseExpression":{"id":31822,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31798,"src":"10991:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":31824,"indexExpression":{"id":31823,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31810,"src":"11000:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10991:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31825,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31800,"src":"11008:2:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31821,"name":"_claimReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31794,"src":"10978:12:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) returns (uint256)"}},"id":31826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10978:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10968:43:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31828,"nodeType":"ExpressionStatement","src":"10968:43:84"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31813,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31810,"src":"10920:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":31814,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31798,"src":"10928:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":31815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10928:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10920:23:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31830,"initializationExpression":{"assignments":[31810],"declarations":[{"constant":false,"id":31810,"mutability":"mutable","name":"index","nameLocation":"10909:5:84","nodeType":"VariableDeclaration","scope":31830,"src":"10901:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31809,"name":"uint256","nodeType":"ElementaryTypeName","src":"10901:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31812,"initialValue":{"hexValue":"30","id":31811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10917:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10901:17:84"},"loopExpression":{"expression":{"id":31818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10945:7:84","subExpression":{"id":31817,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31810,"src":"10945:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31819,"nodeType":"ExpressionStatement","src":"10945:7:84"},"nodeType":"ForStatement","src":"10896:126:84"},{"expression":{"id":31831,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31807,"src":"11038:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31805,"id":31832,"nodeType":"Return","src":"11031:13:84"}]},"documentation":{"id":31795,"nodeType":"StructuredDocumentation","src":"10700:32:84","text":"@inheritdoc IUniswapV3Staker"},"functionSelector":"0520537f","id":31834,"implemented":true,"kind":"function","modifiers":[],"name":"claimRewards","nameLocation":"10746:12:84","nodeType":"FunctionDefinition","overrides":{"id":31802,"nodeType":"OverrideSpecifier","overrides":[],"src":"10823:8:84"},"parameters":{"id":31801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31798,"mutability":"mutable","name":"tokenIds","nameLocation":"10776:8:84","nodeType":"VariableDeclaration","scope":31834,"src":"10759:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":31796,"name":"uint256","nodeType":"ElementaryTypeName","src":"10759:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31797,"nodeType":"ArrayTypeName","src":"10759:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":31800,"mutability":"mutable","name":"to","nameLocation":"10794:2:84","nodeType":"VariableDeclaration","scope":31834,"src":"10786:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31799,"name":"address","nodeType":"ElementaryTypeName","src":"10786:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10758:39:84"},"returnParameters":{"id":31805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31834,"src":"10849:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31803,"name":"uint256","nodeType":"ElementaryTypeName","src":"10849:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10848:9:84"},"scope":32326,"src":"10737:314:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35821],"body":{"id":31849,"nodeType":"Block","src":"11171:49:84","statements":[{"expression":{"arguments":[{"id":31845,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31836,"src":"11201:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31846,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31838,"src":"11210:2:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31844,"name":"_claimReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31794,"src":"11188:12:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) returns (uint256)"}},"id":31847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11188:25:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31843,"id":31848,"nodeType":"Return","src":"11181:32:84"}]},"functionSelector":"e70eb392","id":31850,"implemented":true,"kind":"function","modifiers":[],"name":"claimReward","nameLocation":"11066:11:84","nodeType":"FunctionDefinition","overrides":{"id":31840,"nodeType":"OverrideSpecifier","overrides":[],"src":"11132:8:84"},"parameters":{"id":31839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31836,"mutability":"mutable","name":"tokenId","nameLocation":"11086:7:84","nodeType":"VariableDeclaration","scope":31850,"src":"11078:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31835,"name":"uint256","nodeType":"ElementaryTypeName","src":"11078:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31838,"mutability":"mutable","name":"to","nameLocation":"11103:2:84","nodeType":"VariableDeclaration","scope":31850,"src":"11095:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31837,"name":"address","nodeType":"ElementaryTypeName","src":"11095:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11077:29:84"},"returnParameters":{"id":31843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31850,"src":"11158:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31841,"name":"uint256","nodeType":"ElementaryTypeName","src":"11158:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11157:9:84"},"scope":32326,"src":"11057:163:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":31901,"nodeType":"Block","src":"11346:354:84","statements":[{"assignments":[31860],"declarations":[{"constant":false,"id":31860,"mutability":"mutable","name":"_derived","nameLocation":"11364:8:84","nodeType":"VariableDeclaration","scope":31901,"src":"11356:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31859,"name":"uint256","nodeType":"ElementaryTypeName","src":"11356:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31867,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31861,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31852,"src":"11376:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3230","id":31862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11388:2:84","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"11376:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31864,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11375:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":31865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11394:3:84","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11375:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11356:41:84"},{"assignments":[31869],"declarations":[{"constant":false,"id":31869,"mutability":"mutable","name":"stake","nameLocation":"11415:5:84","nodeType":"VariableDeclaration","scope":31901,"src":"11407:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31868,"name":"uint256","nodeType":"ElementaryTypeName","src":"11407:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31878,"initialValue":{"arguments":[{"id":31876,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31854,"src":"11463:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":31871,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"11434:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":31872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"11434:15:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11434:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31870,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"11423:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTStaker_$35022_$","typeString":"type(contract INFTStaker)"}},"id":31874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11423:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"id":31875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34966,"src":"11423:39:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":31877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11423:48:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11407:64:84"},{"assignments":[31880],"declarations":[{"constant":false,"id":31880,"mutability":"mutable","name":"_adjusted","nameLocation":"11490:9:84","nodeType":"VariableDeclaration","scope":31901,"src":"11482:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31879,"name":"uint256","nodeType":"ElementaryTypeName","src":"11482:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31892,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31881,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31852,"src":"11504:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":31882,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31869,"src":"11516:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11504:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3830","id":31884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11524:2:84","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},"src":"11504:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11503:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":31887,"name":"maxBoostRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31117,"src":"11530:19:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11503:46:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31889,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11502:48:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":31890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11565:3:84","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11502:66:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11482:86:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31895,"name":"_derived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31860,"src":"11661:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31896,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31880,"src":"11672:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11661:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31898,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31852,"src":"11683:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31893,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"11652:4:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":31894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":9892,"src":"11652:8:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11652:41:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31858,"id":31900,"nodeType":"Return","src":"11645:48:84"}]},"functionSelector":"ea9f5517","id":31902,"implemented":true,"kind":"function","modifiers":[],"name":"derivedLiquidity","nameLocation":"11235:16:84","nodeType":"FunctionDefinition","parameters":{"id":31855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31852,"mutability":"mutable","name":"liquidity","nameLocation":"11260:9:84","nodeType":"VariableDeclaration","scope":31902,"src":"11252:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31851,"name":"uint256","nodeType":"ElementaryTypeName","src":"11252:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31854,"mutability":"mutable","name":"account","nameLocation":"11279:7:84","nodeType":"VariableDeclaration","scope":31902,"src":"11271:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31853,"name":"address","nodeType":"ElementaryTypeName","src":"11271:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11251:36:84"},"returnParameters":{"id":31858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31857,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31902,"src":"11333:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31856,"name":"uint256","nodeType":"ElementaryTypeName","src":"11333:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11332:9:84"},"scope":32326,"src":"11226:474:84","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":31949,"nodeType":"Block","src":"11905:313:84","statements":[{"assignments":[null,null,null,31916],"declarations":[null,null,null,{"constant":false,"id":31916,"mutability":"mutable","name":"_liquidity","nameLocation":"11930:10:84","nodeType":"VariableDeclaration","scope":31949,"src":"11922:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":31915,"name":"uint128","nodeType":"ElementaryTypeName","src":"11922:7:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":31923,"initialValue":{"arguments":[{"id":31919,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31145,"src":"11989:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},{"id":31920,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"12010:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},{"id":31921,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31904,"src":"12050:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31917,"name":"NFTPositionInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"11944:15:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTPositionInfo_$37147_$","typeString":"type(library NFTPositionInfo)"}},"id":31918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPositionInfo","nodeType":"MemberAccess","referencedDeclaration":37146,"src":"11944:31:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IUniswapV3Factory_$13539_$_t_contract$_INonfungiblePositionManager_$35221_$_t_uint256_$returns$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"function (contract IUniswapV3Factory,contract INonfungiblePositionManager,uint256) view returns (contract IUniswapV3Pool,int24,int24,uint128)"}},"id":31922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11944:123:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"tuple(contract IUniswapV3Pool,int24,int24,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"11915:152:84"},{"expression":{"id":31931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31924,"name":"original","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31909,"src":"12078:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":31930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":31927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31925,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31916,"src":"12090:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3230","id":31926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12103:2:84","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"12090:15:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":31928,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12089:17:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":31929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12109:3:84","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"12089:23:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"12078:34:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31932,"nodeType":"ExpressionStatement","src":"12078:34:84"},{"expression":{"id":31938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31933,"name":"boosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31911,"src":"12122:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31935,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31916,"src":"12149:10:84","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":31936,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"12161:3:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31934,"name":"derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31902,"src":"12132:16:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":31937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12132:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12122:43:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31939,"nodeType":"ExpressionStatement","src":"12122:43:84"},{"expression":{"id":31947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31940,"name":"factor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31913,"src":"12175:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31941,"name":"original","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31909,"src":"12185:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":31942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12196:4:84","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"12185:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31944,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12184:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":31945,"name":"boosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31911,"src":"12204:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12184:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12175:36:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31948,"nodeType":"ExpressionStatement","src":"12175:36:84"}]},"functionSelector":"403017ca","id":31950,"implemented":true,"kind":"function","modifiers":[],"name":"boostedFactor","nameLocation":"11715:13:84","nodeType":"FunctionDefinition","parameters":{"id":31907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31904,"mutability":"mutable","name":"tokenId","nameLocation":"11737:7:84","nodeType":"VariableDeclaration","scope":31950,"src":"11729:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31903,"name":"uint256","nodeType":"ElementaryTypeName","src":"11729:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31906,"mutability":"mutable","name":"who","nameLocation":"11754:3:84","nodeType":"VariableDeclaration","scope":31950,"src":"11746:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31905,"name":"address","nodeType":"ElementaryTypeName","src":"11746:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11728:30:84"},"returnParameters":{"id":31914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31909,"mutability":"mutable","name":"original","nameLocation":"11825:8:84","nodeType":"VariableDeclaration","scope":31950,"src":"11817:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31908,"name":"uint256","nodeType":"ElementaryTypeName","src":"11817:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31911,"mutability":"mutable","name":"boosted","nameLocation":"11855:7:84","nodeType":"VariableDeclaration","scope":31950,"src":"11847:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31910,"name":"uint256","nodeType":"ElementaryTypeName","src":"11847:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31913,"mutability":"mutable","name":"factor","nameLocation":"11884:6:84","nodeType":"VariableDeclaration","scope":31950,"src":"11876:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31912,"name":"uint256","nodeType":"ElementaryTypeName","src":"11876:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11803:97:84"},"scope":32326,"src":"11706:512:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[35797],"body":{"id":31960,"nodeType":"Block","src":"12294:44:84","statements":[{"expression":{"id":31958,"name":"totalRewardUnclaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31109,"src":"12311:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31957,"id":31959,"nodeType":"Return","src":"12304:27:84"}]},"functionSelector":"99bcc052","id":31961,"implemented":true,"kind":"function","modifiers":[],"name":"left","nameLocation":"12233:4:84","nodeType":"FunctionDefinition","overrides":{"id":31954,"nodeType":"OverrideSpecifier","overrides":[],"src":"12267:8:84"},"parameters":{"id":31953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31952,"mutability":"mutable","name":"token","nameLocation":"12246:5:84","nodeType":"VariableDeclaration","scope":31961,"src":"12238:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31951,"name":"address","nodeType":"ElementaryTypeName","src":"12238:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12237:15:84"},"returnParameters":{"id":31957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31956,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31961,"src":"12285:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31955,"name":"uint256","nodeType":"ElementaryTypeName","src":"12285:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12284:9:84"},"scope":32326,"src":"12224:114:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[35790],"body":{"id":32037,"nodeType":"Block","src":"12517:621:84","statements":[{"assignments":[31976],"declarations":[{"constant":false,"id":31976,"mutability":"mutable","name":"ret","nameLocation":"12541:3:84","nodeType":"VariableDeclaration","scope":32037,"src":"12527:17:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":31974,"name":"bool","nodeType":"ElementaryTypeName","src":"12527:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31975,"nodeType":"ArrayTypeName","src":"12527:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":31983,"initialValue":{"arguments":[{"expression":{"id":31980,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31965,"src":"12558:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":31981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12558:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12547:10:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":31977,"name":"bool","nodeType":"ElementaryTypeName","src":"12551:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31978,"nodeType":"ArrayTypeName","src":"12551:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":31982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12547:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12527:47:84"},{"body":{"id":32033,"nodeType":"Block","src":"12643:468:84","statements":[{"assignments":[31996],"declarations":[{"constant":false,"id":31996,"mutability":"mutable","name":"tokenId","nameLocation":"12665:7:84","nodeType":"VariableDeclaration","scope":32033,"src":"12657:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31995,"name":"uint256","nodeType":"ElementaryTypeName","src":"12657:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32000,"initialValue":{"baseExpression":{"id":31997,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31965,"src":"12675:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":31999,"indexExpression":{"id":31998,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31985,"src":"12684:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12675:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12657:33:84"},{"assignments":[32003,32005,32007,null],"declarations":[{"constant":false,"id":32003,"mutability":"mutable","name":"_pool","nameLocation":"12737:5:84","nodeType":"VariableDeclaration","scope":32033,"src":"12722:20:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":32002,"nodeType":"UserDefinedTypeName","pathNode":{"id":32001,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"12722:14:84"},"referencedDeclaration":13561,"src":"12722:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"internal"},{"constant":false,"id":32005,"mutability":"mutable","name":"tickLower","nameLocation":"12766:9:84","nodeType":"VariableDeclaration","scope":32033,"src":"12760:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":32004,"name":"int24","nodeType":"ElementaryTypeName","src":"12760:5:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":32007,"mutability":"mutable","name":"tickUpper","nameLocation":"12799:9:84","nodeType":"VariableDeclaration","scope":32033,"src":"12793:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":32006,"name":"int24","nodeType":"ElementaryTypeName","src":"12793:5:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},null],"id":32014,"initialValue":{"arguments":[{"id":32010,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31145,"src":"12880:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},{"id":32011,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"12909:26:84","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},{"id":32012,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31996,"src":"12957:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32008,"name":"NFTPositionInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"12827:15:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTPositionInfo_$37147_$","typeString":"type(library NFTPositionInfo)"}},"id":32009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPositionInfo","nodeType":"MemberAccess","referencedDeclaration":37146,"src":"12827:31:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IUniswapV3Factory_$13539_$_t_contract$_INonfungiblePositionManager_$35221_$_t_uint256_$returns$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"function (contract IUniswapV3Factory,contract INonfungiblePositionManager,uint256) view returns (contract IUniswapV3Pool,int24,int24,uint128)"}},"id":32013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12827:155:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"tuple(contract IUniswapV3Pool,int24,int24,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"12704:278:84"},{"assignments":[null,32016,null,null,null,null,null],"declarations":[null,{"constant":false,"id":32016,"mutability":"mutable","name":"tick","nameLocation":"13006:4:84","nodeType":"VariableDeclaration","scope":32033,"src":"13000:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":32015,"name":"int24","nodeType":"ElementaryTypeName","src":"13000:5:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},null,null,null,null,null],"id":32020,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32017,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32003,"src":"13024:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":32018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"slot0","nodeType":"MemberAccess","referencedDeclaration":13894,"src":"13024:11:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$","typeString":"function () view external returns (uint160,int24,uint16,uint16,uint16,uint8,bool)"}},"id":32019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13024:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$","typeString":"tuple(uint160,int24,uint16,uint16,uint16,uint8,bool)"}},"nodeType":"VariableDeclarationStatement","src":"12997:40:84"},{"expression":{"id":32031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32021,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31976,"src":"13051:3:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":32023,"indexExpression":{"id":32022,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31985,"src":"13055:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13051:10:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":32026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32024,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32005,"src":"13064:9:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32025,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32016,"src":"13076:4:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"13064:16:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":32029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32027,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32016,"src":"13084:4:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32028,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32007,"src":"13091:9:84","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"13084:16:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13064:36:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13051:49:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32032,"nodeType":"ExpressionStatement","src":"13051:49:84"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31988,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31985,"src":"12609:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":31989,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31965,"src":"12617:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":31990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12617:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12609:23:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32034,"initializationExpression":{"assignments":[31985],"declarations":[{"constant":false,"id":31985,"mutability":"mutable","name":"index","nameLocation":"12598:5:84","nodeType":"VariableDeclaration","scope":32034,"src":"12590:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31984,"name":"uint256","nodeType":"ElementaryTypeName","src":"12590:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31987,"initialValue":{"hexValue":"30","id":31986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12606:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12590:17:84"},"loopExpression":{"expression":{"id":31993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12634:7:84","subExpression":{"id":31992,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31985,"src":"12634:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31994,"nodeType":"ExpressionStatement","src":"12634:7:84"},"nodeType":"ForStatement","src":"12585:526:84"},{"expression":{"id":32035,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31976,"src":"13128:3:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"functionReturnParameters":31971,"id":32036,"nodeType":"Return","src":"13121:10:84"}]},"documentation":{"id":31962,"nodeType":"StructuredDocumentation","src":"12344:32:84","text":"@inheritdoc IUniswapV3Staker"},"functionSelector":"0b9cc5fd","id":32038,"implemented":true,"kind":"function","modifiers":[],"name":"isIdsWithinRange","nameLocation":"12390:16:84","nodeType":"FunctionDefinition","overrides":{"id":31967,"nodeType":"OverrideSpecifier","overrides":[],"src":"12472:8:84"},"parameters":{"id":31966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31965,"mutability":"mutable","name":"tokenIds","nameLocation":"12424:8:84","nodeType":"VariableDeclaration","scope":32038,"src":"12407:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":31963,"name":"uint256","nodeType":"ElementaryTypeName","src":"12407:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31964,"nodeType":"ArrayTypeName","src":"12407:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12406:27:84"},"returnParameters":{"id":31971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32038,"src":"12498:13:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":31968,"name":"bool","nodeType":"ElementaryTypeName","src":"12498:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31969,"nodeType":"ArrayTypeName","src":"12498:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"12497:15:84"},"scope":32326,"src":"12381:757:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[35742],"body":{"id":32050,"nodeType":"Block","src":"13216:71:84","statements":[{"expression":{"components":[{"id":32046,"name":"totalRewardUnclaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31109,"src":"13234:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32047,"name":"totalSecondsClaimedX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31111,"src":"13256:23:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"id":32048,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13233:47:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint160_$","typeString":"tuple(uint256,uint160)"}},"functionReturnParameters":32045,"id":32049,"nodeType":"Return","src":"13226:54:84"}]},"functionSelector":"0d5df7ba","id":32051,"implemented":true,"kind":"function","modifiers":[],"name":"incentives","nameLocation":"13153:10:84","nodeType":"FunctionDefinition","overrides":{"id":32040,"nodeType":"OverrideSpecifier","overrides":[],"src":"13180:8:84"},"parameters":{"id":32039,"nodeType":"ParameterList","parameters":[],"src":"13163:2:84"},"returnParameters":{"id":32045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32051,"src":"13198:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13198:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32051,"src":"13207:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":32043,"name":"uint160","nodeType":"ElementaryTypeName","src":"13207:7:84","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"13197:18:84"},"scope":32326,"src":"13144:143:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[35805],"body":{"id":32110,"nodeType":"Block","src":"13411:576:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32062,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32053,"src":"13442:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32063,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"13451:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":32064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"13451:13:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13451:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13442:24:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a637265617465496e63656e746976653a206f6e6c79206d61686120616c6c6f776564","id":32067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13480:53:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_800b3f694a860e5f8f00047581d04345c98a69f77bdcf8baa897a647ad75008a","typeString":"literal_string \"UniswapV3Staker::createIncentive: only maha allowed\""},"value":"UniswapV3Staker::createIncentive: only maha allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_800b3f694a860e5f8f00047581d04345c98a69f77bdcf8baa897a647ad75008a","typeString":"literal_string \"UniswapV3Staker::createIncentive: only maha allowed\""}],"id":32061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13421:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13421:122:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32069,"nodeType":"ExpressionStatement","src":"13421:122:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32071,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32055,"src":"13574:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13583:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13574:10:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e697377617056335374616b65723a3a637265617465496e63656e746976653a20726577617264206d75737420626520706f736974697665","id":32074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13598:59:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_cea066c4c041d6e54db5f455321d55e1bd2de8a904aa2471e645306393091fdd","typeString":"literal_string \"UniswapV3Staker::createIncentive: reward must be positive\""},"value":"UniswapV3Staker::createIncentive: reward must be positive"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cea066c4c041d6e54db5f455321d55e1bd2de8a904aa2471e645306393091fdd","typeString":"literal_string \"UniswapV3Staker::createIncentive: reward must be positive\""}],"id":32070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13553:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13553:114:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32076,"nodeType":"ExpressionStatement","src":"13553:114:84"},{"expression":{"id":32079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32077,"name":"totalRewardUnclaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31109,"src":"13678:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":32078,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32055,"src":"13702:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13678:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32080,"nodeType":"ExpressionStatement","src":"13678:30:84"},{"expression":{"id":32086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32081,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31115,"src":"13718:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32082,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13728:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":32083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13728:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32084,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31124,"src":"13746:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13728:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13718:36:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32087,"nodeType":"ExpressionStatement","src":"13718:36:84"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32091,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"13818:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":32092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"13818:13:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13818:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":32094,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13847:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13847:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":32098,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13879:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2UniV3_$32326","typeString":"contract BaseGaugeV2UniV3"}],"id":32097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13871:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32096,"name":"address","nodeType":"ElementaryTypeName","src":"13871:7:84","typeDescriptions":{}}},"id":32099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13871:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32100,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32055,"src":"13898:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32088,"name":"TransferHelperExtended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37652,"src":"13765:22:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelperExtended_$37652_$","typeString":"type(library TransferHelperExtended)"}},"id":32090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":37625,"src":"13765:39:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":32101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13765:149:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32102,"nodeType":"ExpressionStatement","src":"13765:149:84"},{"eventCall":{"arguments":[{"id":32104,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31107,"src":"13947:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},{"id":32105,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31113,"src":"13953:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32106,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31115,"src":"13964:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32107,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32055,"src":"13973:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32103,"name":"IncentiveCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35844,"src":"13930:16:84","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IUniswapV3Pool_$13561_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (contract IUniswapV3Pool,uint256,uint256,uint256)"}},"id":32108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13930:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32109,"nodeType":"EmitStatement","src":"13925:55:84"}]},"functionSelector":"b66503cf","id":32111,"implemented":true,"kind":"function","modifiers":[{"id":32059,"kind":"modifierInvocation","modifierName":{"id":32058,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"13394:12:84"},"nodeType":"ModifierInvocation","src":"13394:12:84"}],"name":"notifyRewardAmount","nameLocation":"13302:18:84","nodeType":"FunctionDefinition","overrides":{"id":32057,"nodeType":"OverrideSpecifier","overrides":[],"src":"13377:8:84"},"parameters":{"id":32056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32053,"mutability":"mutable","name":"token","nameLocation":"13329:5:84","nodeType":"VariableDeclaration","scope":32111,"src":"13321:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32052,"name":"address","nodeType":"ElementaryTypeName","src":"13321:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32055,"mutability":"mutable","name":"amount","nameLocation":"13344:6:84","nodeType":"VariableDeclaration","scope":32111,"src":"13336:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32054,"name":"uint256","nodeType":"ElementaryTypeName","src":"13336:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13320:31:84"},"returnParameters":{"id":32060,"nodeType":"ParameterList","parameters":[],"src":"13411:0:84"},"scope":32326,"src":"13293:694:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[35719],"body":{"id":32136,"nodeType":"Block","src":"14143:174:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32122,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32115,"src":"14174:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":32123,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31176,"src":"14182:9:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32125,"indexExpression":{"id":32124,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32113,"src":"14192:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14182:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14174:24:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473","id":32127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14212:45:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c","typeString":"literal_string \"ERC721Enumerable: owner index out of bounds\""},"value":"ERC721Enumerable: owner index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c","typeString":"literal_string \"ERC721Enumerable: owner index out of bounds\""}],"id":32121,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14153:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14153:114:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32129,"nodeType":"ExpressionStatement","src":"14153:114:84"},{"expression":{"baseExpression":{"baseExpression":{"id":32130,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31183,"src":"14284:12:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":32132,"indexExpression":{"id":32131,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32113,"src":"14297:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14284:19:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32134,"indexExpression":{"id":32133,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32115,"src":"14304:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14284:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32120,"id":32135,"nodeType":"Return","src":"14277:33:84"}]},"functionSelector":"2f745c59","id":32137,"implemented":true,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"14002:19:84","nodeType":"FunctionDefinition","overrides":{"id":32117,"nodeType":"OverrideSpecifier","overrides":[],"src":"14104:8:84"},"parameters":{"id":32116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32113,"mutability":"mutable","name":"owner","nameLocation":"14030:5:84","nodeType":"VariableDeclaration","scope":32137,"src":"14022:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32112,"name":"address","nodeType":"ElementaryTypeName","src":"14022:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32115,"mutability":"mutable","name":"index","nameLocation":"14045:5:84","nodeType":"VariableDeclaration","scope":32137,"src":"14037:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32114,"name":"uint256","nodeType":"ElementaryTypeName","src":"14037:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14021:30:84"},"returnParameters":{"id":32120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32137,"src":"14130:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32118,"name":"uint256","nodeType":"ElementaryTypeName","src":"14130:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14129:9:84"},"scope":32326,"src":"13993:324:84","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[35709],"body":{"id":32146,"nodeType":"Block","src":"14393:41:84","statements":[{"expression":{"expression":{"id":32143,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"14410:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14410:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32142,"id":32145,"nodeType":"Return","src":"14403:24:84"}]},"functionSelector":"18160ddd","id":32147,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"14332:11:84","nodeType":"FunctionDefinition","overrides":{"id":32139,"nodeType":"OverrideSpecifier","overrides":[],"src":"14366:8:84"},"parameters":{"id":32138,"nodeType":"ParameterList","parameters":[],"src":"14343:2:84"},"returnParameters":{"id":32142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32147,"src":"14384:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32140,"name":"uint256","nodeType":"ElementaryTypeName","src":"14384:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14383:9:84"},"scope":32326,"src":"14323:111:84","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[35727],"body":{"id":32167,"nodeType":"Block","src":"14568:163:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32156,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32149,"src":"14599:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":32157,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32147,"src":"14607:11:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":32158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14607:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14599:21:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473","id":32160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14634:46:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc","typeString":"literal_string \"ERC721Enumerable: global index out of bounds\""},"value":"ERC721Enumerable: global index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc","typeString":"literal_string \"ERC721Enumerable: global index out of bounds\""}],"id":32155,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14578:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14578:112:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32162,"nodeType":"ExpressionStatement","src":"14578:112:84"},{"expression":{"baseExpression":{"id":32163,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"14707:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32165,"indexExpression":{"id":32164,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32149,"src":"14718:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14707:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32154,"id":32166,"nodeType":"Return","src":"14700:24:84"}]},"functionSelector":"4f6ccce7","id":32168,"implemented":true,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"14449:12:84","nodeType":"FunctionDefinition","overrides":{"id":32151,"nodeType":"OverrideSpecifier","overrides":[],"src":"14529:8:84"},"parameters":{"id":32150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32149,"mutability":"mutable","name":"index","nameLocation":"14470:5:84","nodeType":"VariableDeclaration","scope":32168,"src":"14462:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32148,"name":"uint256","nodeType":"ElementaryTypeName","src":"14462:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14461:15:84"},"returnParameters":{"id":32154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32168,"src":"14555:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32152,"name":"uint256","nodeType":"ElementaryTypeName","src":"14555:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14554:9:84"},"scope":32326,"src":"14440:291:84","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":32196,"nodeType":"Block","src":"15099:136:84","statements":[{"assignments":[32177],"declarations":[{"constant":false,"id":32177,"mutability":"mutable","name":"length","nameLocation":"15117:6:84","nodeType":"VariableDeclaration","scope":32196,"src":"15109:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32176,"name":"uint256","nodeType":"ElementaryTypeName","src":"15109:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32181,"initialValue":{"baseExpression":{"id":32178,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31176,"src":"15126:9:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32180,"indexExpression":{"id":32179,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32171,"src":"15136:2:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15126:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15109:30:84"},{"expression":{"id":32188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":32182,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31183,"src":"15149:12:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":32185,"indexExpression":{"id":32183,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32171,"src":"15162:2:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15149:16:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32186,"indexExpression":{"id":32184,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32177,"src":"15166:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15149:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32187,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32173,"src":"15176:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15149:34:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32189,"nodeType":"ExpressionStatement","src":"15149:34:84"},{"expression":{"id":32194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32190,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31188,"src":"15193:17:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32192,"indexExpression":{"id":32191,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32173,"src":"15211:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15193:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32193,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32177,"src":"15222:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15193:35:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32195,"nodeType":"ExpressionStatement","src":"15193:35:84"}]},"documentation":{"id":32169,"nodeType":"StructuredDocumentation","src":"14737:283:84","text":" @dev Private function to add a token to this extension's ownership-tracking data structures.\n @param to address representing the new owner of the given token ID\n @param tokenId uint256 ID of the token to be added to the tokens list of the given address"},"id":32197,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToOwnerEnumeration","nameLocation":"15034:27:84","nodeType":"FunctionDefinition","parameters":{"id":32174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32171,"mutability":"mutable","name":"to","nameLocation":"15070:2:84","nodeType":"VariableDeclaration","scope":32197,"src":"15062:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32170,"name":"address","nodeType":"ElementaryTypeName","src":"15062:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32173,"mutability":"mutable","name":"tokenId","nameLocation":"15082:7:84","nodeType":"VariableDeclaration","scope":32197,"src":"15074:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32172,"name":"uint256","nodeType":"ElementaryTypeName","src":"15074:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15061:29:84"},"returnParameters":{"id":32175,"nodeType":"ParameterList","parameters":[],"src":"15099:0:84"},"scope":32326,"src":"15025:210:84","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":32216,"nodeType":"Block","src":"15496:95:84","statements":[{"expression":{"id":32208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32203,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31197,"src":"15506:15:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32205,"indexExpression":{"id":32204,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32200,"src":"15522:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15506:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":32206,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"15533:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"15533:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15506:44:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32209,"nodeType":"ExpressionStatement","src":"15506:44:84"},{"expression":{"arguments":[{"id":32213,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32200,"src":"15576:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32210,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"15560:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"15560:15:84","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":32214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15560:24:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32215,"nodeType":"ExpressionStatement","src":"15560:24:84"}]},"documentation":{"id":32198,"nodeType":"StructuredDocumentation","src":"15241:184:84","text":" @dev Private function to add a token to this extension's token tracking data structures.\n @param tokenId uint256 ID of the token to be added to the tokens list"},"id":32217,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToAllTokensEnumeration","nameLocation":"15439:31:84","nodeType":"FunctionDefinition","parameters":{"id":32201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32200,"mutability":"mutable","name":"tokenId","nameLocation":"15479:7:84","nodeType":"VariableDeclaration","scope":32217,"src":"15471:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32199,"name":"uint256","nodeType":"ElementaryTypeName","src":"15471:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15470:17:84"},"returnParameters":{"id":32202,"nodeType":"ParameterList","parameters":[],"src":"15496:0:84"},"scope":32326,"src":"15430:161:84","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":32276,"nodeType":"Block","src":"16301:878:84","statements":[{"assignments":[32226],"declarations":[{"constant":false,"id":32226,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"16490:14:84","nodeType":"VariableDeclaration","scope":32276,"src":"16482:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32225,"name":"uint256","nodeType":"ElementaryTypeName","src":"16482:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32230,"initialValue":{"baseExpression":{"id":32227,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31176,"src":"16507:9:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32229,"indexExpression":{"id":32228,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32220,"src":"16517:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16507:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16482:40:84"},{"assignments":[32232],"declarations":[{"constant":false,"id":32232,"mutability":"mutable","name":"tokenIndex","nameLocation":"16540:10:84","nodeType":"VariableDeclaration","scope":32276,"src":"16532:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32231,"name":"uint256","nodeType":"ElementaryTypeName","src":"16532:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32236,"initialValue":{"baseExpression":{"id":32233,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31188,"src":"16553:17:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32235,"indexExpression":{"id":32234,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32222,"src":"16571:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16553:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16532:47:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32237,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32232,"src":"16683:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":32238,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32226,"src":"16697:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16683:28:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32263,"nodeType":"IfStatement","src":"16679:323:84","trueBody":{"id":32262,"nodeType":"Block","src":"16713:289:84","statements":[{"assignments":[32241],"declarations":[{"constant":false,"id":32241,"mutability":"mutable","name":"lastTokenId","nameLocation":"16735:11:84","nodeType":"VariableDeclaration","scope":32262,"src":"16727:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32240,"name":"uint256","nodeType":"ElementaryTypeName","src":"16727:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32247,"initialValue":{"baseExpression":{"baseExpression":{"id":32242,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31183,"src":"16749:12:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":32244,"indexExpression":{"id":32243,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32220,"src":"16762:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16749:18:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32246,"indexExpression":{"id":32245,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32226,"src":"16768:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16749:34:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16727:56:84"},{"expression":{"id":32254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":32248,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31183,"src":"16798:12:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":32251,"indexExpression":{"id":32249,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32220,"src":"16811:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16798:18:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32252,"indexExpression":{"id":32250,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32232,"src":"16817:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16798:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32253,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32241,"src":"16831:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16798:44:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32255,"nodeType":"ExpressionStatement","src":"16798:44:84"},{"expression":{"id":32260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32256,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31188,"src":"16914:17:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32258,"indexExpression":{"id":32257,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32241,"src":"16932:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16914:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32259,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32232,"src":"16947:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16914:43:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32261,"nodeType":"ExpressionStatement","src":"16914:43:84"}]}},{"expression":{"id":32267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17088:33:84","subExpression":{"baseExpression":{"id":32264,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31188,"src":"17095:17:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32266,"indexExpression":{"id":32265,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32222,"src":"17113:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17095:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32268,"nodeType":"ExpressionStatement","src":"17088:33:84"},{"expression":{"id":32274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17131:41:84","subExpression":{"baseExpression":{"baseExpression":{"id":32269,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31183,"src":"17138:12:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":32271,"indexExpression":{"id":32270,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32220,"src":"17151:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17138:18:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32273,"indexExpression":{"id":32272,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32226,"src":"17157:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17138:34:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32275,"nodeType":"ExpressionStatement","src":"17131:41:84"}]},"documentation":{"id":32218,"nodeType":"StructuredDocumentation","src":"15597:606:84","text":" @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n This has O(1) time complexity, but alters the order of the _ownedTokens array.\n @param from address representing the previous owner of the given token ID\n @param tokenId uint256 ID of the token to be removed from the tokens list of the given address"},"id":32277,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromOwnerEnumeration","nameLocation":"16217:32:84","nodeType":"FunctionDefinition","parameters":{"id":32223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32220,"mutability":"mutable","name":"from","nameLocation":"16258:4:84","nodeType":"VariableDeclaration","scope":32277,"src":"16250:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32219,"name":"address","nodeType":"ElementaryTypeName","src":"16250:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32222,"mutability":"mutable","name":"tokenId","nameLocation":"16272:7:84","nodeType":"VariableDeclaration","scope":32277,"src":"16264:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32221,"name":"uint256","nodeType":"ElementaryTypeName","src":"16264:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16249:31:84"},"returnParameters":{"id":32224,"nodeType":"ParameterList","parameters":[],"src":"16301:0:84"},"scope":32326,"src":"16208:971:84","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":32324,"nodeType":"Block","src":"17538:990:84","statements":[{"assignments":[32284],"declarations":[{"constant":false,"id":32284,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"17724:14:84","nodeType":"VariableDeclaration","scope":32324,"src":"17716:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32283,"name":"uint256","nodeType":"ElementaryTypeName","src":"17716:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32289,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32285,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"17741:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"17741:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":32287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17761:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17741:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17716:46:84"},{"assignments":[32291],"declarations":[{"constant":false,"id":32291,"mutability":"mutable","name":"tokenIndex","nameLocation":"17780:10:84","nodeType":"VariableDeclaration","scope":32324,"src":"17772:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32290,"name":"uint256","nodeType":"ElementaryTypeName","src":"17772:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32295,"initialValue":{"baseExpression":{"id":32292,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31197,"src":"17793:15:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32294,"indexExpression":{"id":32293,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32280,"src":"17809:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17793:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17772:45:84"},{"assignments":[32297],"declarations":[{"constant":false,"id":32297,"mutability":"mutable","name":"lastTokenId","nameLocation":"18147:11:84","nodeType":"VariableDeclaration","scope":32324,"src":"18139:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32296,"name":"uint256","nodeType":"ElementaryTypeName","src":"18139:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32301,"initialValue":{"baseExpression":{"id":32298,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"18161:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32300,"indexExpression":{"id":32299,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32284,"src":"18172:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18161:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18139:48:84"},{"expression":{"id":32306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32302,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"18198:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32304,"indexExpression":{"id":32303,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32291,"src":"18209:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18198:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32305,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32297,"src":"18223:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18198:36:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32307,"nodeType":"ExpressionStatement","src":"18198:36:84"},{"expression":{"id":32312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32308,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31197,"src":"18302:15:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32310,"indexExpression":{"id":32309,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32297,"src":"18318:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18302:28:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32311,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32291,"src":"18333:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18302:41:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32313,"nodeType":"ExpressionStatement","src":"18302:41:84"},{"expression":{"id":32317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18464:31:84","subExpression":{"baseExpression":{"id":32314,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31197,"src":"18471:15:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32316,"indexExpression":{"id":32315,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32280,"src":"18487:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18471:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32318,"nodeType":"ExpressionStatement","src":"18464:31:84"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32319,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31192,"src":"18505:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":32321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"18505:14:84","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer)"}},"id":32322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18505:16:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32323,"nodeType":"ExpressionStatement","src":"18505:16:84"}]},"documentation":{"id":32278,"nodeType":"StructuredDocumentation","src":"17185:277:84","text":" @dev Private function to remove a token from this extension's token tracking data structures.\n This has O(1) time complexity, but alters the order of the _allTokens array.\n @param tokenId uint256 ID of the token to be removed from the tokens list"},"id":32325,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromAllTokensEnumeration","nameLocation":"17476:36:84","nodeType":"FunctionDefinition","parameters":{"id":32281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32280,"mutability":"mutable","name":"tokenId","nameLocation":"17521:7:84","nodeType":"VariableDeclaration","scope":32325,"src":"17513:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32279,"name":"uint256","nodeType":"ElementaryTypeName","src":"17513:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17512:17:84"},"returnParameters":{"id":32282,"nodeType":"ParameterList","parameters":[],"src":"17538:0:84"},"scope":32326,"src":"17467:1061:84","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":32327,"src":"1164:17366:84","usedErrors":[]}],"src":"32:18499:84"},"id":84},"contracts/gauges/BaseV2GaugeFactory.sol":{"ast":{"absolutePath":"contracts/gauges/BaseV2GaugeFactory.sol","exportedSymbols":{"BaseGaugeV2":[31058],"BaseV2GaugeFactory":[32368],"IGaugeFactory":[34132]},"id":32369,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":32328,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:85"},{"absolutePath":"contracts/gauges/BaseGaugeV2.sol","file":"./BaseGaugeV2.sol","id":32330,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32369,"sourceUnit":31059,"src":"57:46:85","symbolAliases":[{"foreign":{"id":32329,"name":"BaseGaugeV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:11:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeFactory.sol","file":"../interfaces/IGaugeFactory.sol","id":32332,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32369,"sourceUnit":34133,"src":"104:62:85","symbolAliases":[{"foreign":{"id":32331,"name":"IGaugeFactory","nodeType":"Identifier","overloadedDeclarations":[],"src":"112:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":32333,"name":"IGaugeFactory","nodeType":"IdentifierPath","referencedDeclaration":34132,"src":"199:13:85"},"id":32334,"nodeType":"InheritanceSpecifier","src":"199:13:85"}],"contractDependencies":[31058],"contractKind":"contract","fullyImplemented":true,"id":32368,"linearizedBaseContracts":[32368,34132],"name":"BaseV2GaugeFactory","nameLocation":"177:18:85","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34123],"body":{"id":32366,"nodeType":"Block","src":"356:146:85","statements":[{"assignments":[32347],"declarations":[{"constant":false,"id":32347,"mutability":"mutable","name":"guage","nameLocation":"374:5:85","nodeType":"VariableDeclaration","scope":32366,"src":"366:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32346,"name":"address","nodeType":"ElementaryTypeName","src":"366:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":32357,"initialValue":{"arguments":[{"arguments":[{"id":32353,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32336,"src":"406:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32354,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32340,"src":"413:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":32352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"390:15:85","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_BaseGaugeV2_$31058_$","typeString":"function (address,address) returns (contract BaseGaugeV2)"},"typeName":{"id":32351,"nodeType":"UserDefinedTypeName","pathNode":{"id":32350,"name":"BaseGaugeV2","nodeType":"IdentifierPath","referencedDeclaration":31058,"src":"394:11:85"},"referencedDeclaration":31058,"src":"394:11:85","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}},"id":32355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"390:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV2_$31058","typeString":"contract BaseGaugeV2"}],"id":32349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"382:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32348,"name":"address","nodeType":"ElementaryTypeName","src":"382:7:85","typeDescriptions":{}}},"id":32356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"382:42:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"366:58:85"},{"eventCall":{"arguments":[{"id":32359,"name":"guage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32347,"src":"452:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32360,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32336,"src":"459:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32361,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32338,"src":"466:6:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":32358,"name":"GaugeCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34131,"src":"439:12:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":32362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"439:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32363,"nodeType":"EmitStatement","src":"434:39:85"},{"expression":{"id":32364,"name":"guage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32347,"src":"490:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":32345,"id":32365,"nodeType":"Return","src":"483:12:85"}]},"functionSelector":"1c48e0fa","id":32367,"implemented":true,"kind":"function","modifiers":[],"name":"createGauge","nameLocation":"228:11:85","nodeType":"FunctionDefinition","overrides":{"id":32342,"nodeType":"OverrideSpecifier","overrides":[],"src":"329:8:85"},"parameters":{"id":32341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32336,"mutability":"mutable","name":"_pool","nameLocation":"257:5:85","nodeType":"VariableDeclaration","scope":32367,"src":"249:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32335,"name":"address","nodeType":"ElementaryTypeName","src":"249:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32338,"mutability":"mutable","name":"_bribe","nameLocation":"280:6:85","nodeType":"VariableDeclaration","scope":32367,"src":"272:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32337,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32340,"mutability":"mutable","name":"_registry","nameLocation":"304:9:85","nodeType":"VariableDeclaration","scope":32367,"src":"296:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32339,"name":"address","nodeType":"ElementaryTypeName","src":"296:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"239:80:85"},"returnParameters":{"id":32345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32367,"src":"347:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32343,"name":"address","nodeType":"ElementaryTypeName","src":"347:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"346:9:85"},"scope":32368,"src":"219:283:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":32369,"src":"168:336:85","usedErrors":[]}],"src":"32:473:85"},"id":85},"contracts/gauges/uniswapv3/BaseGaugeV3UniV3.sol":{"ast":{"absolutePath":"contracts/gauges/uniswapv3/BaseGaugeV3UniV3.sol","exportedSymbols":{"BaseGaugeV3UniV3":[32544],"IGovernorTimelock":[4203],"INonfungiblePositionManager":[35221],"StakingRewardsV3":[33248],"UniswapV3Base":[33789]},"id":32545,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":32370,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:86"},{"absolutePath":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","file":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","id":32372,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32545,"sourceUnit":4204,"src":"57:102:86","symbolAliases":[{"foreign":{"id":32371,"name":"IGovernorTimelock","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:17:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INonfungiblePositionManager.sol","file":"../../interfaces/INonfungiblePositionManager.sol","id":32374,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32545,"sourceUnit":35222,"src":"160:93:86","symbolAliases":[{"foreign":{"id":32373,"name":"INonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"src":"168:27:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gauges/uniswapv3/StakingRewardsV3.sol","file":"./StakingRewardsV3.sol","id":32377,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":32545,"sourceUnit":33249,"src":"254:71:86","symbolAliases":[{"foreign":{"id":32375,"name":"UniswapV3Base","nodeType":"Identifier","overloadedDeclarations":[],"src":"262:13:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":32376,"name":"StakingRewardsV3","nodeType":"Identifier","overloadedDeclarations":[],"src":"277:16:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":32378,"name":"StakingRewardsV3","nodeType":"IdentifierPath","referencedDeclaration":33248,"src":"356:16:86"},"id":32379,"nodeType":"InheritanceSpecifier","src":"356:16:86"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":32544,"linearizedBaseContracts":[32544,33248,33789,34110,5062,4914],"name":"BaseGaugeV3UniV3","nameLocation":"336:16:86","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":32380,"nodeType":"StructuredDocumentation","src":"379:106:86","text":"@dev is the contract in emergency mode? if so then allow for NFTs to be withdrawn without much checks."},"functionSelector":"9be54945","id":32382,"mutability":"mutable","name":"inEmergency","nameLocation":"502:11:86","nodeType":"VariableDeclaration","scope":32544,"src":"490:23:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32381,"name":"bool","nodeType":"ElementaryTypeName","src":"490:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"body":{"id":32409,"nodeType":"Block","src":"1062:153:86","statements":[{"expression":{"arguments":[{"id":32396,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32382,"src":"1080:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420696e20656d657267656e6379206d6f6465","id":32397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1093:23:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""},"value":"not in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""}],"id":32395,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1072:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1072:45:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32399,"nodeType":"ExpressionStatement","src":"1072:45:86"},{"expression":{"arguments":[{"id":32401,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32386,"src":"1145:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32402,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32388,"src":"1152:8:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32400,"name":"_onERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32964,"src":"1127:17:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":32403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1127:34:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32404,"nodeType":"ExpressionStatement","src":"1127:34:86"},{"expression":{"expression":{"expression":{"id":32405,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1178:4:86","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV3UniV3_$32544","typeString":"contract BaseGaugeV3UniV3"}},"id":32406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":32410,"src":"1178:21:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":32407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1178:30:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":32394,"id":32408,"nodeType":"Return","src":"1171:37:86"}]},"functionSelector":"150b7a02","id":32410,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"923:16:86","nodeType":"FunctionDefinition","parameters":{"id":32391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32410,"src":"949:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32383,"name":"address","nodeType":"ElementaryTypeName","src":"949:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32386,"mutability":"mutable","name":"_from","nameLocation":"974:5:86","nodeType":"VariableDeclaration","scope":32410,"src":"966:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32385,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32388,"mutability":"mutable","name":"_tokenId","nameLocation":"997:8:86","nodeType":"VariableDeclaration","scope":32410,"src":"989:16:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32387,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32410,"src":"1015:14:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32389,"name":"bytes","nodeType":"ElementaryTypeName","src":"1015:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"939:96:86"},"returnParameters":{"id":32394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32410,"src":"1054:6:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32392,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1054:6:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1053:8:86"},"scope":32544,"src":"914:301:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":32458,"nodeType":"Block","src":"1342:353:86","statements":[{"expression":{"arguments":[{"id":32421,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32382,"src":"1360:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420696e20656d657267656e6379206d6f6465","id":32422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1373:23:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""},"value":"not in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""}],"id":32420,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1352:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1352:45:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32424,"nodeType":"ExpressionStatement","src":"1352:45:86"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":32426,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"1415:8:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32428,"indexExpression":{"id":32427,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32412,"src":"1424:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1415:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":32429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidity","nodeType":"MemberAccess","referencedDeclaration":33284,"src":"1415:27:86","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":32430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1415:32:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7374616b6520646f6573206e6f74206578697374","id":32432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1449:22:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_b053777096494c68d763d5980fe57eef5a024316a3cb689ed805fab926222805","typeString":"literal_string \"stake does not exist\""},"value":"stake does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b053777096494c68d763d5980fe57eef5a024316a3cb689ed805fab926222805","typeString":"literal_string \"stake does not exist\""}],"id":32425,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1407:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1407:65:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32434,"nodeType":"ExpressionStatement","src":"1407:65:86"},{"expression":{"id":32438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1483:24:86","subExpression":{"baseExpression":{"id":32435,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"1490:8:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32437,"indexExpression":{"id":32436,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32412,"src":"1499:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1490:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32439,"nodeType":"ExpressionStatement","src":"1483:24:86"},{"eventCall":{"arguments":[{"expression":{"id":32441,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1532:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1532:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32443,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32412,"src":"1544:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32440,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33772,"src":"1522:9:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":32444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1522:30:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32445,"nodeType":"EmitStatement","src":"1517:35:86"},{"expression":{"arguments":[{"arguments":[{"id":32451,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1628:4:86","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV3UniV3_$32544","typeString":"contract BaseGaugeV3UniV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV3UniV3_$32544","typeString":"contract BaseGaugeV3UniV3"}],"id":32450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1620:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32449,"name":"address","nodeType":"ElementaryTypeName","src":"1620:7:86","typeDescriptions":{}}},"id":32452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1620:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":32453,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1647:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1647:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32455,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32412,"src":"1671:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32446,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33335,"src":"1563:26:86","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":32448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":7047,"src":"1563:43:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":32456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1563:125:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32457,"nodeType":"ExpressionStatement","src":"1563:125:86"}]},"functionSelector":"8a16a30b","id":32459,"implemented":true,"kind":"function","modifiers":[{"id":32415,"kind":"modifierInvocation","modifierName":{"id":32414,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"1293:12:86"},"nodeType":"ModifierInvocation","src":"1293:12:86"},{"arguments":[{"id":32417,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32412,"src":"1329:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32418,"kind":"modifierInvocation","modifierName":{"id":32416,"name":"onlyTokenOwner","nodeType":"IdentifierPath","referencedDeclaration":33752,"src":"1314:14:86"},"nodeType":"ModifierInvocation","src":"1314:23:86"}],"name":"withdrawViaEmergency","nameLocation":"1230:20:86","nodeType":"FunctionDefinition","parameters":{"id":32413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32412,"mutability":"mutable","name":"tokenId","nameLocation":"1259:7:86","nodeType":"VariableDeclaration","scope":32459,"src":"1251:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1251:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1250:17:86"},"returnParameters":{"id":32419,"nodeType":"ParameterList","parameters":[],"src":"1342:0:86"},"scope":32544,"src":"1221:474:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":32491,"nodeType":"Block","src":"1754:249:86","statements":[{"expression":{"arguments":[{"id":32466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1772:12:86","subExpression":{"id":32465,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32382,"src":"1773:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c726561647920696e20656d657267656e6379206d6f6465","id":32467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1786:27:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d","typeString":"literal_string \"already in emergency mode\""},"value":"already in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d","typeString":"literal_string \"already in emergency mode\""}],"id":32464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1764:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1764:50:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32469,"nodeType":"ExpressionStatement","src":"1764:50:86"},{"expression":{"id":32472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32470,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32382,"src":"1824:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":32471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1838:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1824:18:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32473,"nodeType":"ExpressionStatement","src":"1824:18:86"},{"expression":{"arguments":[{"expression":{"id":32477,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1887:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1887:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":32483,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1942:4:86","typeDescriptions":{"typeIdentifier":"t_contract$_BaseGaugeV3UniV3_$32544","typeString":"contract BaseGaugeV3UniV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseGaugeV3UniV3_$32544","typeString":"contract BaseGaugeV3UniV3"}],"id":32482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1934:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32481,"name":"address","nodeType":"ElementaryTypeName","src":"1934:7:86","typeDescriptions":{}}},"id":32484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1934:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":32479,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33294,"src":"1911:12:86","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":32480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"1911:22:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":32485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1911:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32474,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33294,"src":"1852:12:86","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":32476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"1852:21:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":32486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1852:106:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32487,"nodeType":"ExpressionStatement","src":"1852:106:86"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32488,"name":"EmergencyModeEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33788,"src":"1974:20:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":32489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1974:22:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32490,"nodeType":"EmitStatement","src":"1969:27:86"}]},"functionSelector":"c5b1c7d0","id":32492,"implemented":true,"kind":"function","modifiers":[{"id":32462,"kind":"modifierInvocation","modifierName":{"id":32461,"name":"onlyTimelock","nodeType":"IdentifierPath","referencedDeclaration":32543,"src":"1741:12:86"},"nodeType":"ModifierInvocation","src":"1741:12:86"}],"name":"enableEmergencyMode","nameLocation":"1710:19:86","nodeType":"FunctionDefinition","parameters":{"id":32460,"nodeType":"ParameterList","parameters":[],"src":"1729:2:86"},"returnParameters":{"id":32463,"nodeType":"ParameterList","parameters":[],"src":"1754:0:86"},"scope":32544,"src":"1701:302:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":32524,"nodeType":"Block","src":"2178:178:86","statements":[{"expression":{"arguments":[{"id":32503,"name":"inEmergency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32382,"src":"2196:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420696e20656d657267656e6379206d6f6465","id":32504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2209:23:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""},"value":"not in emergency mode"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae","typeString":"literal_string \"not in emergency mode\""}],"id":32502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2188:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2188:45:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32506,"nodeType":"ExpressionStatement","src":"2188:45:86"},{"assignments":[32508,32510],"declarations":[{"constant":false,"id":32508,"mutability":"mutable","name":"success","nameLocation":"2249:7:86","nodeType":"VariableDeclaration","scope":32524,"src":"2244:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32507,"name":"bool","nodeType":"ElementaryTypeName","src":"2244:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32510,"mutability":"mutable","name":"response","nameLocation":"2271:8:86","nodeType":"VariableDeclaration","scope":32524,"src":"2258:21:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32509,"name":"bytes","nodeType":"ElementaryTypeName","src":"2258:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32515,"initialValue":{"arguments":[{"id":32513,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32497,"src":"2295:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":32511,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32495,"src":"2283:6:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2283:11:86","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":32514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2283:22:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2243:62:86"},{"expression":{"arguments":[{"id":32517,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32508,"src":"2323:7:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":32520,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32510,"src":"2339:8:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2332:6:86","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":32518,"name":"string","nodeType":"ElementaryTypeName","src":"2332:6:86","typeDescriptions":{}}},"id":32521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2332:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":32516,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2315:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2315:34:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32523,"nodeType":"ExpressionStatement","src":"2315:34:86"}]},"documentation":{"id":32493,"nodeType":"StructuredDocumentation","src":"2009:59:86","text":"@dev in case admin needs to execute some calls directly"},"functionSelector":"c4bf0220","id":32525,"implemented":true,"kind":"function","modifiers":[{"id":32500,"kind":"modifierInvocation","modifierName":{"id":32499,"name":"onlyTimelock","nodeType":"IdentifierPath","referencedDeclaration":32543,"src":"2161:12:86"},"nodeType":"ModifierInvocation","src":"2161:12:86"}],"name":"emergencyCall","nameLocation":"2082:13:86","nodeType":"FunctionDefinition","parameters":{"id":32498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32495,"mutability":"mutable","name":"target","nameLocation":"2104:6:86","nodeType":"VariableDeclaration","scope":32525,"src":"2096:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32494,"name":"address","nodeType":"ElementaryTypeName","src":"2096:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32497,"mutability":"mutable","name":"signature","nameLocation":"2125:9:86","nodeType":"VariableDeclaration","scope":32525,"src":"2112:22:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32496,"name":"bytes","nodeType":"ElementaryTypeName","src":"2112:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2095:40:86"},"returnParameters":{"id":32501,"nodeType":"ParameterList","parameters":[],"src":"2178:0:86"},"scope":32544,"src":"2073:283:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":32542,"nodeType":"Block","src":"2386:150:86","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32528,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2417:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2417:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32531,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33291,"src":"2449:8:86","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":32532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"governor","nodeType":"MemberAccess","referencedDeclaration":35475,"src":"2449:17:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2449:19:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32530,"name":"IGovernorTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4203,"src":"2431:17:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernorTimelock_$4203_$","typeString":"type(contract IGovernorTimelock)"}},"id":32534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2431:38:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGovernorTimelock_$4203","typeString":"contract IGovernorTimelock"}},"id":32535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timelock","nodeType":"MemberAccess","referencedDeclaration":4179,"src":"2431:47:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2431:49:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2417:63:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f742074696d656c6f636b","id":32538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2494:14:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468","typeString":"literal_string \"not timelock\""},"value":"not timelock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468","typeString":"literal_string \"not timelock\""}],"id":32527,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2396:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2396:122:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32540,"nodeType":"ExpressionStatement","src":"2396:122:86"},{"id":32541,"nodeType":"PlaceholderStatement","src":"2528:1:86"}]},"id":32543,"name":"onlyTimelock","nameLocation":"2371:12:86","nodeType":"ModifierDefinition","parameters":{"id":32526,"nodeType":"ParameterList","parameters":[],"src":"2383:2:86"},"src":"2362:174:86","virtual":false,"visibility":"internal"}],"scope":32545,"src":"327:2211:86","usedErrors":[]}],"src":"32:2507:86"},"id":86},"contracts/gauges/uniswapv3/StakingRewardsV3.sol":{"ast":{"absolutePath":"contracts/gauges/uniswapv3/StakingRewardsV3.sol","exportedSymbols":{"IGauge":[34110],"IGaugeVoterV2":[34597],"INFTStaker":[35022],"IUniswapV3Pool":[13561],"NFTPositionInfo":[37147],"ReentrancyGuard":[5062],"SafeMath":[12516],"StakingRewardsV3":[33248],"UniswapV3Base":[33789]},"id":33249,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":32546,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:87"},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","id":32548,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":13562,"src":"57:88:87","symbolAliases":[{"foreign":{"id":32547,"name":"IUniswapV3Pool","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:14:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":32550,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":5063,"src":"146:85:87","symbolAliases":[{"foreign":{"id":32549,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"154:15:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":32552,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":12517,"src":"232:73:87","symbolAliases":[{"foreign":{"id":32551,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"src":"240:8:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/NFTPositionInfo.sol","file":"../../utils/NFTPositionInfo.sol","id":32554,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":37148,"src":"307:64:87","symbolAliases":[{"foreign":{"id":32553,"name":"NFTPositionInfo","nodeType":"Identifier","overloadedDeclarations":[],"src":"315:15:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoterV2.sol","file":"../../interfaces/IGaugeVoterV2.sol","id":32556,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":34598,"src":"372:65:87","symbolAliases":[{"foreign":{"id":32555,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"380:13:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGauge.sol","file":"../../interfaces/IGauge.sol","id":32558,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":34111,"src":"438:51:87","symbolAliases":[{"foreign":{"id":32557,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"src":"446:6:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gauges/uniswapv3/UniswapV3Base.sol","file":"./UniswapV3Base.sol","id":32560,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":33790,"src":"490:50:87","symbolAliases":[{"foreign":{"id":32559,"name":"UniswapV3Base","nodeType":"Identifier","overloadedDeclarations":[],"src":"498:13:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTStaker.sol","file":"../../interfaces/INFTStaker.sol","id":32562,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33249,"sourceUnit":35023,"src":"541:59:87","symbolAliases":[{"foreign":{"id":32561,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"src":"549:10:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":32563,"name":"UniswapV3Base","nodeType":"IdentifierPath","referencedDeclaration":33789,"src":"640:13:87"},"id":32564,"nodeType":"InheritanceSpecifier","src":"640:13:87"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":33248,"linearizedBaseContracts":[33248,33789,34110,5062,4914],"name":"StakingRewardsV3","nameLocation":"620:16:87","nodeType":"ContractDefinition","nodes":[{"id":32567,"libraryName":{"id":32565,"name":"SafeMath","nodeType":"IdentifierPath","referencedDeclaration":12516,"src":"666:8:87"},"nodeType":"UsingForDirective","src":"660:27:87","typeName":{"id":32566,"name":"uint256","nodeType":"ElementaryTypeName","src":"679:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":32570,"libraryName":{"id":32568,"name":"SafeMath","nodeType":"IdentifierPath","referencedDeclaration":12516,"src":"698:8:87"},"nodeType":"UsingForDirective","src":"692:27:87","typeName":{"id":32569,"name":"uint128","nodeType":"ElementaryTypeName","src":"711:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"body":{"id":32630,"nodeType":"Block","src":"846:446:87","statements":[{"assignments":[32580],"declarations":[{"constant":false,"id":32580,"mutability":"mutable","name":"_derived","nameLocation":"864:8:87","nodeType":"VariableDeclaration","scope":32630,"src":"856:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":32579,"name":"uint128","nodeType":"ElementaryTypeName","src":"856:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":32587,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32581,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32572,"src":"876:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3230","id":32582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"889:2:87","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"876:15:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":32584,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"875:17:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":32585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"895:3:87","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"875:23:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"856:42:87"},{"assignments":[32589],"declarations":[{"constant":false,"id":32589,"mutability":"mutable","name":"stake","nameLocation":"916:5:87","nodeType":"VariableDeclaration","scope":32630,"src":"908:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32588,"name":"uint256","nodeType":"ElementaryTypeName","src":"908:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32598,"initialValue":{"arguments":[{"id":32596,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32574,"src":"964:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32591,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33291,"src":"935:8:87","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":32592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"935:15:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"935:17:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32590,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"924:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTStaker_$35022_$","typeString":"type(contract INFTStaker)"}},"id":32594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"924:29:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"id":32595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":34966,"src":"924:39:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":32597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"924:48:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"908:64:87"},{"assignments":[32600],"declarations":[{"constant":false,"id":32600,"mutability":"mutable","name":"_adjusted","nameLocation":"991:9:87","nodeType":"VariableDeclaration","scope":32630,"src":"983:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":32599,"name":"uint128","nodeType":"ElementaryTypeName","src":"983:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":32618,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32601,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32572,"src":"1005:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":32604,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32589,"src":"1026:5:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1018:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":32602,"name":"uint128","nodeType":"ElementaryTypeName","src":"1018:7:87","typeDescriptions":{}}},"id":32605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1018:14:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1005:27:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3830","id":32607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:2:87","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},"src":"1005:32:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":32609,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1004:34:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":32612,"name":"maxBoostRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33310,"src":"1061:19:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1053:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":32610,"name":"uint128","nodeType":"ElementaryTypeName","src":"1053:7:87","typeDescriptions":{}}},"id":32613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1053:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1004:77:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":32615,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1003:79:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":32616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1085:3:87","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1003:85:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"983:105:87"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32619,"name":"_derived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32580,"src":"1184:8:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32620,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32600,"src":"1195:9:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1184:20:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32622,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32572,"src":"1207:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1184:33:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":32627,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32572,"src":"1275:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":32628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1184:101:87","trueExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32624,"name":"_derived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32580,"src":"1236:8:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32625,"name":"_adjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32600,"src":"1247:9:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1236:20:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":32578,"id":32629,"nodeType":"Return","src":"1165:120:87"}]},"functionSelector":"c4cfbf06","id":32631,"implemented":true,"kind":"function","modifiers":[],"name":"derivedLiquidity","nameLocation":"734:16:87","nodeType":"FunctionDefinition","parameters":{"id":32575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32572,"mutability":"mutable","name":"_liquidity","nameLocation":"759:10:87","nodeType":"VariableDeclaration","scope":32631,"src":"751:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":32571,"name":"uint128","nodeType":"ElementaryTypeName","src":"751:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":32574,"mutability":"mutable","name":"account","nameLocation":"779:7:87","nodeType":"VariableDeclaration","scope":32631,"src":"771:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32573,"name":"address","nodeType":"ElementaryTypeName","src":"771:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"750:37:87"},"returnParameters":{"id":32578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32631,"src":"833:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":32576,"name":"uint128","nodeType":"ElementaryTypeName","src":"833:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"832:9:87"},"scope":33248,"src":"725:567:87","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":32734,"nodeType":"Block","src":"1487:799:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":32645,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"1505:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32647,"indexExpression":{"id":32646,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1514:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1505:17:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":32648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidity","nodeType":"MemberAccess","referencedDeclaration":33284,"src":"1505:27:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1535:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1505:31:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f742077697468647261772030","id":32651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1538:19:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d85b8e7f4404d04d93e8d532ad219ceeba0becfbc18622bad46b31e08b1f0b0","typeString":"literal_string \"Cannot withdraw 0\""},"value":"Cannot withdraw 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d85b8e7f4404d04d93e8d532ad219ceeba0becfbc18622bad46b31e08b1f0b0","typeString":"literal_string \"Cannot withdraw 0\""}],"id":32644,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1497:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1497:61:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32653,"nodeType":"ExpressionStatement","src":"1497:61:87"},{"expression":{"id":32662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32654,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"1569:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":32657,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"1599:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32659,"indexExpression":{"id":32658,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1608:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1599:17:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":32660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"derivedLiquidity","nodeType":"MemberAccess","referencedDeclaration":33286,"src":"1599:34:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":32655,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"1583:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"1583:15:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1583:51:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1569:65:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32663,"nodeType":"ExpressionStatement","src":"1569:65:87"},{"expression":{"id":32667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1644:24:87","subExpression":{"baseExpression":{"id":32664,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"1651:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32666,"indexExpression":{"id":32665,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1660:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1651:17:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32668,"nodeType":"ExpressionStatement","src":"1644:24:87"},{"expression":{"arguments":[{"expression":{"id":32670,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1753:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1753:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32672,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1765:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32669,"name":"_removeTokenFromOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33687,"src":"1720:32:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":32673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1720:53:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32674,"nodeType":"ExpressionStatement","src":"1720:53:87"},{"expression":{"arguments":[{"id":32676,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1820:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32675,"name":"_removeTokenFromAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33735,"src":"1783:36:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":32677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1783:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32678,"nodeType":"ExpressionStatement","src":"1783:45:87"},{"expression":{"id":32684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32679,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33344,"src":"1838:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32682,"indexExpression":{"expression":{"id":32680,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1848:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1848:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1838:21:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":32683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:87","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1838:26:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32685,"nodeType":"ExpressionStatement","src":"1838:26:87"},{"expression":{"arguments":[{"arguments":[{"id":32691,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1940:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_StakingRewardsV3_$33248","typeString":"contract StakingRewardsV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StakingRewardsV3_$33248","typeString":"contract StakingRewardsV3"}],"id":32690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1932:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32689,"name":"address","nodeType":"ElementaryTypeName","src":"1932:7:87","typeDescriptions":{}}},"id":32692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1932:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":32693,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1959:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1959:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32695,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1983:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32686,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33335,"src":"1875:26:87","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":32688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":7047,"src":"1875:43:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":32696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1875:125:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32697,"nodeType":"ExpressionStatement","src":"1875:125:87"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":32698,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33344,"src":"2015:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32701,"indexExpression":{"expression":{"id":32699,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2025:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2025:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2015:21:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2040:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2015:26:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"baseExpression":{"id":32704,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33370,"src":"2045:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":32707,"indexExpression":{"expression":{"id":32705,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2054:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2054:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2045:20:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2015:50:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32727,"nodeType":"IfStatement","src":"2011:223:87","trueBody":{"id":32726,"nodeType":"Block","src":"2067:167:87","statements":[{"expression":{"id":32714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32709,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33370,"src":"2081:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":32712,"indexExpression":{"expression":{"id":32710,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2090:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2090:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2081:20:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":32713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2104:5:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2081:28:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32715,"nodeType":"ExpressionStatement","src":"2081:28:87"},{"expression":{"arguments":[{"expression":{"id":32722,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2199:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2199:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32717,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33291,"src":"2137:8:87","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":32718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"2137:19:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2137:21:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32716,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"2123:13:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoterV2_$34597_$","typeString":"type(contract IGaugeVoterV2)"}},"id":32720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2123:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"id":32721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"detachStakerFromGauge","nodeType":"MemberAccess","referencedDeclaration":34470,"src":"2123:58:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":32724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2123:100:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32725,"nodeType":"ExpressionStatement","src":"2123:100:87"}]}},{"eventCall":{"arguments":[{"expression":{"id":32729,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2259:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2259:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32731,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"2271:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32728,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33772,"src":"2249:9:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":32732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:30:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32733,"nodeType":"EmitStatement","src":"2244:35:87"}]},"functionSelector":"2e1a7d4d","id":32735,"implemented":true,"kind":"function","modifiers":[{"id":32636,"kind":"modifierInvocation","modifierName":{"id":32635,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"1408:12:87"},"nodeType":"ModifierInvocation","src":"1408:12:87"},{"arguments":[{"id":32638,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1442:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32639,"kind":"modifierInvocation","modifierName":{"id":32637,"name":"updateReward","nodeType":"IdentifierPath","referencedDeclaration":33227,"src":"1429:12:87"},"nodeType":"ModifierInvocation","src":"1429:21:87"},{"arguments":[{"id":32641,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32633,"src":"1474:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32642,"kind":"modifierInvocation","modifierName":{"id":32640,"name":"onlyTokenOwner","nodeType":"IdentifierPath","referencedDeclaration":33752,"src":"1459:14:87"},"nodeType":"ModifierInvocation","src":"1459:23:87"}],"name":"withdraw","nameLocation":"1359:8:87","nodeType":"FunctionDefinition","parameters":{"id":32634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32633,"mutability":"mutable","name":"tokenId","nameLocation":"1376:7:87","nodeType":"VariableDeclaration","scope":32735,"src":"1368:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32632,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1367:17:87"},"returnParameters":{"id":32643,"nodeType":"ParameterList","parameters":[],"src":"1487:0:87"},"scope":33248,"src":"1350:936:87","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":32784,"nodeType":"Block","src":"2433:264:87","statements":[{"assignments":[32749],"declarations":[{"constant":false,"id":32749,"mutability":"mutable","name":"reward","nameLocation":"2451:6:87","nodeType":"VariableDeclaration","scope":32784,"src":"2443:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32748,"name":"uint256","nodeType":"ElementaryTypeName","src":"2443:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32753,"initialValue":{"baseExpression":{"id":32750,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33327,"src":"2460:7:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32752,"indexExpression":{"id":32751,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2468:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2460:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2443:34:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32754,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32749,"src":"2491:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2500:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2491:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32783,"nodeType":"IfStatement","src":"2487:204:87","trueBody":{"id":32782,"nodeType":"Block","src":"2503:188:87","statements":[{"expression":{"id":32761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32757,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33327,"src":"2517:7:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32759,"indexExpression":{"id":32758,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2525:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2517:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":32760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2537:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2517:21:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32762,"nodeType":"ExpressionStatement","src":"2517:21:87"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":32766,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"2574:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32768,"indexExpression":{"id":32767,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2583:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2574:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":32769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":33282,"src":"2574:24:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32770,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32749,"src":"2600:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32763,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33294,"src":"2552:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":32765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"2552:21:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":32771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2552:55:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32772,"nodeType":"ExpressionStatement","src":"2552:55:87"},{"eventCall":{"arguments":[{"expression":{"baseExpression":{"id":32774,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"2637:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32776,"indexExpression":{"id":32775,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2646:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2637:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":32777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":33282,"src":"2637:24:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32778,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2663:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32779,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32749,"src":"2673:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32773,"name":"RewardPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33780,"src":"2626:10:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":32780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2626:54:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32781,"nodeType":"EmitStatement","src":"2621:59:87"}]}}]},"functionSelector":"1c4b774b","id":32785,"implemented":true,"kind":"function","modifiers":[{"id":32740,"kind":"modifierInvocation","modifierName":{"id":32739,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"2352:12:87"},"nodeType":"ModifierInvocation","src":"2352:12:87"},{"arguments":[{"id":32742,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2386:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32743,"kind":"modifierInvocation","modifierName":{"id":32741,"name":"updateReward","nodeType":"IdentifierPath","referencedDeclaration":33227,"src":"2373:12:87"},"nodeType":"ModifierInvocation","src":"2373:22:87"},{"arguments":[{"id":32745,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2419:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32746,"kind":"modifierInvocation","modifierName":{"id":32744,"name":"onlyTokenOwner","nodeType":"IdentifierPath","referencedDeclaration":33752,"src":"2404:14:87"},"nodeType":"ModifierInvocation","src":"2404:24:87"}],"name":"getReward","nameLocation":"2301:9:87","nodeType":"FunctionDefinition","parameters":{"id":32738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32737,"mutability":"mutable","name":"_tokenId","nameLocation":"2319:8:87","nodeType":"VariableDeclaration","scope":32785,"src":"2311:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32736,"name":"uint256","nodeType":"ElementaryTypeName","src":"2311:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2310:18:87"},"returnParameters":{"id":32747,"nodeType":"ParameterList","parameters":[],"src":"2433:0:87"},"scope":33248,"src":"2292:405:87","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34096],"body":{"id":32822,"nodeType":"Block","src":"2816:180:87","statements":[{"body":{"id":32820,"nodeType":"Block","src":"2887:103:87","statements":[{"assignments":[32809],"declarations":[{"constant":false,"id":32809,"mutability":"mutable","name":"tokenId","nameLocation":"2909:7:87","nodeType":"VariableDeclaration","scope":32820,"src":"2901:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32808,"name":"uint256","nodeType":"ElementaryTypeName","src":"2901:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32815,"initialValue":{"baseExpression":{"baseExpression":{"id":32810,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"2919:12:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":32812,"indexExpression":{"id":32811,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32787,"src":"2932:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2919:21:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":32814,"indexExpression":{"id":32813,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32797,"src":"2941:5:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2919:28:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2901:46:87"},{"expression":{"arguments":[{"id":32817,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32809,"src":"2971:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32816,"name":"getReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32785,"src":"2961:9:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":32818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2961:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32819,"nodeType":"ExpressionStatement","src":"2961:18:87"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32800,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32797,"src":"2850:5:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":32801,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33344,"src":"2858:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32803,"indexExpression":{"id":32802,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32787,"src":"2868:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2858:18:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2850:26:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32821,"initializationExpression":{"assignments":[32797],"declarations":[{"constant":false,"id":32797,"mutability":"mutable","name":"index","nameLocation":"2839:5:87","nodeType":"VariableDeclaration","scope":32821,"src":"2831:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32796,"name":"uint256","nodeType":"ElementaryTypeName","src":"2831:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32799,"initialValue":{"hexValue":"30","id":32798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2831:17:87"},"loopExpression":{"expression":{"id":32806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2878:7:87","subExpression":{"id":32805,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32797,"src":"2878:5:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32807,"nodeType":"ExpressionStatement","src":"2878:7:87"},"nodeType":"ForStatement","src":"2826:164:87"}]},"functionSelector":"31279d3d","id":32823,"implemented":true,"kind":"function","modifiers":[{"id":32794,"kind":"modifierInvocation","modifierName":{"id":32793,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"2799:12:87"},"nodeType":"ModifierInvocation","src":"2799:12:87"}],"name":"getReward","nameLocation":"2712:9:87","nodeType":"FunctionDefinition","overrides":{"id":32792,"nodeType":"OverrideSpecifier","overrides":[],"src":"2782:8:87"},"parameters":{"id":32791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32787,"mutability":"mutable","name":"account","nameLocation":"2730:7:87","nodeType":"VariableDeclaration","scope":32823,"src":"2722:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32786,"name":"address","nodeType":"ElementaryTypeName","src":"2722:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32823,"src":"2739:16:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":32788,"name":"address","nodeType":"ElementaryTypeName","src":"2739:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32789,"nodeType":"ArrayTypeName","src":"2739:9:87","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2721:35:87"},"returnParameters":{"id":32795,"nodeType":"ParameterList","parameters":[],"src":"2816:0:87"},"scope":33248,"src":"2703:293:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":32836,"nodeType":"Block","src":"3043:64:87","statements":[{"expression":{"arguments":[{"id":32829,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32825,"src":"3062:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32828,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32735,"src":"3053:8:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":32830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3053:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32831,"nodeType":"ExpressionStatement","src":"3053:18:87"},{"expression":{"arguments":[{"id":32833,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32825,"src":"3091:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32832,"name":"getReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32785,"src":"3081:9:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":32834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3081:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32835,"nodeType":"ExpressionStatement","src":"3081:19:87"}]},"functionSelector":"7f8661a1","id":32837,"implemented":true,"kind":"function","modifiers":[],"name":"exit","nameLocation":"3011:4:87","nodeType":"FunctionDefinition","parameters":{"id":32826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32825,"mutability":"mutable","name":"_tokenId","nameLocation":"3024:8:87","nodeType":"VariableDeclaration","scope":32837,"src":"3016:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3016:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3015:18:87"},"returnParameters":{"id":32827,"nodeType":"ParameterList","parameters":[],"src":"3043:0:87"},"scope":33248,"src":"3002:105:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":32963,"nodeType":"Block","src":"3427:1178:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32849,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3458:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3458:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":32853,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33335,"src":"3480:26:87","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}],"id":32852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3472:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32851,"name":"address","nodeType":"ElementaryTypeName","src":"3472:7:87","typeDescriptions":{}}},"id":32854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3472:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3458:49:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f742063616c6c65642066726f6d206e6674206d616e61676572","id":32856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3521:29:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e13bccce6b8496a226c03eda750fa8184bb0407e6d5afc9a4faf8b40fdd2150","typeString":"literal_string \"not called from nft manager\""},"value":"not called from nft manager"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3e13bccce6b8496a226c03eda750fa8184bb0407e6d5afc9a4faf8b40fdd2150","typeString":"literal_string \"not called from nft manager\""}],"id":32848,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3437:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3437:123:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32858,"nodeType":"ExpressionStatement","src":"3437:123:87"},{"assignments":[32861,32863,32865],"declarations":[{"constant":false,"id":32861,"mutability":"mutable","name":"_pool","nameLocation":"3599:5:87","nodeType":"VariableDeclaration","scope":32963,"src":"3584:20:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":32860,"nodeType":"UserDefinedTypeName","pathNode":{"id":32859,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"3584:14:87"},"referencedDeclaration":13561,"src":"3584:14:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"internal"},{"constant":false,"id":32863,"mutability":"mutable","name":"inRange","nameLocation":"3623:7:87","nodeType":"VariableDeclaration","scope":32963,"src":"3618:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32862,"name":"bool","nodeType":"ElementaryTypeName","src":"3618:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32865,"mutability":"mutable","name":"liquidity","nameLocation":"3652:9:87","nodeType":"VariableDeclaration","scope":32963,"src":"3644:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":32864,"name":"uint128","nodeType":"ElementaryTypeName","src":"3644:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":32869,"initialValue":{"arguments":[{"id":32867,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32842,"src":"3698:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32866,"name":"_getLiquidityAndInRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33178,"src":"3674:23:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IUniswapV3Pool_$13561_$_t_bool_$_t_uint128_$","typeString":"function (uint256) view returns (contract IUniswapV3Pool,bool,uint128)"}},"id":32868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3674:33:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IUniswapV3Pool_$13561_$_t_bool_$_t_uint128_$","typeString":"tuple(contract IUniswapV3Pool,bool,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"3570:137:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32873,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32861,"src":"3747:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}],"id":32872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3739:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32871,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:87","typeDescriptions":{}}},"id":32874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3739:14:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":32877,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33339,"src":"3765:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}],"id":32876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3757:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32875,"name":"address","nodeType":"ElementaryTypeName","src":"3757:7:87","typeDescriptions":{}}},"id":32878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3757:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3739:31:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f6b656e20706f6f6c206973206e6f742074686520726967687420706f6f6c","id":32880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3784:34:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c6fdad9528ba94a432ea0119e61556a6886bc009e245446573b9ddd893623b8","typeString":"literal_string \"token pool is not the right pool\""},"value":"token pool is not the right pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6c6fdad9528ba94a432ea0119e61556a6886bc009e245446573b9ddd893623b8","typeString":"literal_string \"token pool is not the right pool\""}],"id":32870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3718:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3718:110:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32882,"nodeType":"ExpressionStatement","src":"3718:110:87"},{"expression":{"arguments":[{"id":32884,"name":"inRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32863,"src":"3846:7:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6c69717569647479206e6f7420696e2072616e6765","id":32885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3855:23:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_64a1256a522864251d2b98ba0d8b2204db04a4d66b9d6078787508f543e6e57a","typeString":"literal_string \"liquidty not in range\""},"value":"liquidty not in range"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64a1256a522864251d2b98ba0d8b2204db04a4d66b9d6078787508f543e6e57a","typeString":"literal_string \"liquidty not in range\""}],"id":32883,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3838:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32887,"nodeType":"ExpressionStatement","src":"3838:41:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":32891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32889,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32865,"src":"3897:9:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3897:13:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616e6e6f74207374616b652030206c6971756964697479","id":32892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3912:26:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_7163d19ed0e499d5d9dbc4995b32af0873a5d59f79a456bb47421efa2460860f","typeString":"literal_string \"cannot stake 0 liquidity\""},"value":"cannot stake 0 liquidity"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7163d19ed0e499d5d9dbc4995b32af0873a5d59f79a456bb47421efa2460860f","typeString":"literal_string \"cannot stake 0 liquidity\""}],"id":32888,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3889:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3889:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32894,"nodeType":"ExpressionStatement","src":"3889:50:87"},{"assignments":[32896],"declarations":[{"constant":false,"id":32896,"mutability":"mutable","name":"_derivedLiquidity","nameLocation":"3958:17:87","nodeType":"VariableDeclaration","scope":32963,"src":"3950:25:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":32895,"name":"uint128","nodeType":"ElementaryTypeName","src":"3950:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":32901,"initialValue":{"arguments":[{"id":32898,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32865,"src":"3995:9:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":32899,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4006:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_address","typeString":"address"}],"id":32897,"name":"derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32631,"src":"3978:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint128_$_t_address_$returns$_t_uint128_$","typeString":"function (uint128,address) view returns (uint128)"}},"id":32900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3978:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"3950:62:87"},{"expression":{"id":32910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32902,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"4023:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":32904,"indexExpression":{"id":32903,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32842,"src":"4032:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4023:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32906,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4073:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32907,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32865,"src":"4103:9:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":32908,"name":"_derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32896,"src":"4144:17:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":32905,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33287,"src":"4044:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Deposit_$33287_storage_ptr_$","typeString":"type(struct UniswapV3Base.Deposit storage pointer)"}},"id":32909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["owner","liquidity","derivedLiquidity"],"nodeType":"FunctionCall","src":"4044:128:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_memory_ptr","typeString":"struct UniswapV3Base.Deposit memory"}},"src":"4023:149:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":32911,"nodeType":"ExpressionStatement","src":"4023:149:87"},{"expression":{"arguments":[{"id":32913,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32842,"src":"4215:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32912,"name":"_addTokenToAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33627,"src":"4183:31:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":32914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4183:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32915,"nodeType":"ExpressionStatement","src":"4183:41:87"},{"expression":{"arguments":[{"id":32917,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4262:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32918,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32842,"src":"4269:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32916,"name":"_addTokenToOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33607,"src":"4234:27:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":32919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4234:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32920,"nodeType":"ExpressionStatement","src":"4234:44:87"},{"expression":{"id":32925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32921,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33344,"src":"4289:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32923,"indexExpression":{"id":32922,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4299:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4289:16:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":32924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4309:1:87","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4289:21:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32926,"nodeType":"ExpressionStatement","src":"4289:21:87"},{"expression":{"id":32932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32927,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"4320:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32930,"name":"_derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32896,"src":"4350:17:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":32928,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"4334:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"4334:15:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4334:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4320:48:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32933,"nodeType":"ExpressionStatement","src":"4320:48:87"},{"condition":{"id":32937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4383:16:87","subExpression":{"baseExpression":{"id":32934,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33370,"src":"4384:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":32936,"indexExpression":{"id":32935,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4393:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4384:15:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32954,"nodeType":"IfStatement","src":"4379:146:87","trueBody":{"id":32953,"nodeType":"Block","src":"4401:124:87","statements":[{"expression":{"id":32942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32938,"name":"attached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33370,"src":"4415:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":32940,"indexExpression":{"id":32939,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4424:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4415:15:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":32941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4433:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4415:22:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32943,"nodeType":"ExpressionStatement","src":"4415:22:87"},{"expression":{"arguments":[{"id":32950,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4508:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32945,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33291,"src":"4465:8:87","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":32946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"4465:19:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4465:21:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32944,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"4451:13:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeVoterV2_$34597_$","typeString":"type(contract IGaugeVoterV2)"}},"id":32948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4451:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeVoterV2_$34597","typeString":"contract IGaugeVoterV2"}},"id":32949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"attachStakerToGauge","nodeType":"MemberAccess","referencedDeclaration":34465,"src":"4451:56:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":32951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4451:63:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32952,"nodeType":"ExpressionStatement","src":"4451:63:87"}]}},{"eventCall":{"arguments":[{"expression":{"id":32956,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4547:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4547:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32958,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32842,"src":"4559:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32959,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32865,"src":"4569:9:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":32960,"name":"_derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32896,"src":"4580:17:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":32955,"name":"Staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33766,"src":"4540:6:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,uint256,uint128,uint128)"}},"id":32961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4540:58:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32962,"nodeType":"EmitStatement","src":"4535:63:87"}]},"documentation":{"id":32838,"nodeType":"StructuredDocumentation","src":"3113:197:87","text":"@notice Upon receiving a Uniswap V3 ERC721, creates the token deposit setting owner to `from`. Also stakes token\n in one or more incentives if properly formatted `data` has a length > 0."},"id":32964,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":32845,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32842,"src":"3413:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32846,"kind":"modifierInvocation","modifierName":{"id":32844,"name":"updateReward","nodeType":"IdentifierPath","referencedDeclaration":33227,"src":"3400:12:87"},"nodeType":"ModifierInvocation","src":"3400:22:87"}],"name":"_onERC721Received","nameLocation":"3324:17:87","nodeType":"FunctionDefinition","parameters":{"id":32843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32840,"mutability":"mutable","name":"_from","nameLocation":"3350:5:87","nodeType":"VariableDeclaration","scope":32964,"src":"3342:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32839,"name":"address","nodeType":"ElementaryTypeName","src":"3342:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32842,"mutability":"mutable","name":"_tokenId","nameLocation":"3365:8:87","nodeType":"VariableDeclaration","scope":32964,"src":"3357:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32841,"name":"uint256","nodeType":"ElementaryTypeName","src":"3357:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3341:33:87"},"returnParameters":{"id":32847,"nodeType":"ParameterList","parameters":[],"src":"3427:0:87"},"scope":33248,"src":"3315:1290:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34088],"body":{"id":33060,"nodeType":"Block","src":"4780:1069:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32976,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4798:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4798:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":32978,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33291,"src":"4812:8:87","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":32979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gaugeVoter","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"4812:19:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":32980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4812:21:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4798:35:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420676175676520766f746572","id":32982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4835:17:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_25d3b055c11d0967ef8bb6b71cf1c4fc04b1e509ce03ce6dc51f45e899291e19","typeString":"literal_string \"not gauge voter\""},"value":"not gauge voter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25d3b055c11d0967ef8bb6b71cf1c4fc04b1e509ce03ce6dc51f45e899291e19","typeString":"literal_string \"not gauge voter\""}],"id":32975,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4790:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4790:63:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32984,"nodeType":"ExpressionStatement","src":"4790:63:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32985,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4868:5:87","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":32986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4868:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":32987,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"4887:12:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4868:31:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":33021,"nodeType":"Block","src":"4968:204:87","statements":[{"assignments":[32997],"declarations":[{"constant":false,"id":32997,"mutability":"mutable","name":"remaining","nameLocation":"4990:9:87","nodeType":"VariableDeclaration","scope":33021,"src":"4982:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32996,"name":"uint256","nodeType":"ElementaryTypeName","src":"4982:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33003,"initialValue":{"arguments":[{"expression":{"id":33000,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5019:5:87","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":33001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5019:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32998,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"5002:12:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"5002:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5002:33:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4982:53:87"},{"assignments":[33005],"declarations":[{"constant":false,"id":33005,"mutability":"mutable","name":"leftover","nameLocation":"5057:8:87","nodeType":"VariableDeclaration","scope":33021,"src":"5049:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33004,"name":"uint256","nodeType":"ElementaryTypeName","src":"5049:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33010,"initialValue":{"arguments":[{"id":33008,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33300,"src":"5082:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33006,"name":"remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32997,"src":"5068:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":12410,"src":"5068:13:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5068:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5049:44:87"},{"expression":{"id":33019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33011,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33300,"src":"5107:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33017,"name":"rewardsDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33303,"src":"5145:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":33014,"name":"leftover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33005,"src":"5131:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33012,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32968,"src":"5120:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"5120:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5120:20:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"5120:24:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5120:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5107:54:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33020,"nodeType":"ExpressionStatement","src":"5107:54:87"}]},"id":33022,"nodeType":"IfStatement","src":"4864:308:87","trueBody":{"expression":{"id":32994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32989,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33300,"src":"4913:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32992,"name":"rewardsDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33303,"src":"4937:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32990,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32968,"src":"4926:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"4926:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4926:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4913:40:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32995,"nodeType":"ExpressionStatement","src":"4913:40:87"}},{"assignments":[33024],"declarations":[{"constant":false,"id":33024,"mutability":"mutable","name":"balance","nameLocation":"5534:7:87","nodeType":"VariableDeclaration","scope":33060,"src":"5526:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33023,"name":"uint256","nodeType":"ElementaryTypeName","src":"5526:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33032,"initialValue":{"arguments":[{"arguments":[{"id":33029,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5575:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_StakingRewardsV3_$33248","typeString":"contract StakingRewardsV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StakingRewardsV3_$33248","typeString":"contract StakingRewardsV3"}],"id":33028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5567:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33027,"name":"address","nodeType":"ElementaryTypeName","src":"5567:7:87","typeDescriptions":{}}},"id":33030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5567:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":33025,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33294,"src":"5544:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":33026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"5544:22:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":33031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5544:37:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5526:55:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33034,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33300,"src":"5612:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":33037,"name":"rewardsDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33303,"src":"5638:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33035,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33024,"src":"5626:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"5626:11:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5626:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5612:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f76696465642072657761726420746f6f2068696768","id":33040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5668:26:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""},"value":"Provided reward too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810","typeString":"literal_string \"Provided reward too high\""}],"id":33033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5591:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5591:113:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33042,"nodeType":"ExpressionStatement","src":"5591:113:87"},{"expression":{"id":33046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33043,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33305,"src":"5715:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":33044,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5732:5:87","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":33045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5732:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5715:32:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33047,"nodeType":"ExpressionStatement","src":"5715:32:87"},{"expression":{"id":33054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33048,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"5757:12:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33052,"name":"rewardsDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33303,"src":"5792:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":33049,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5772:5:87","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":33050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5772:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"5772:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5772:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5757:51:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33055,"nodeType":"ExpressionStatement","src":"5757:51:87"},{"eventCall":{"arguments":[{"id":33057,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32968,"src":"5835:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33056,"name":"RewardAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33756,"src":"5823:11:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":33058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5823:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33059,"nodeType":"EmitStatement","src":"5818:24:87"}]},"functionSelector":"b66503cf","id":33061,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"30","id":32972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4773:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":32973,"kind":"modifierInvocation","modifierName":{"id":32971,"name":"updateReward","nodeType":"IdentifierPath","referencedDeclaration":33227,"src":"4760:12:87"},"nodeType":"ModifierInvocation","src":"4760:15:87"}],"name":"notifyRewardAmount","nameLocation":"4674:18:87","nodeType":"FunctionDefinition","overrides":{"id":32970,"nodeType":"OverrideSpecifier","overrides":[],"src":"4743:8:87"},"parameters":{"id":32969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33061,"src":"4693:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32965,"name":"address","nodeType":"ElementaryTypeName","src":"4693:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32968,"mutability":"mutable","name":"reward","nameLocation":"4710:6:87","nodeType":"VariableDeclaration","scope":33061,"src":"4702:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32967,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4692:25:87"},"returnParameters":{"id":32974,"nodeType":"ParameterList","parameters":[],"src":"4780:0:87"},"scope":33248,"src":"4665:1184:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":33124,"nodeType":"Block","src":"5907:645:87","statements":[{"assignments":[null,null,null,33067],"declarations":[null,null,null,{"constant":false,"id":33067,"mutability":"mutable","name":"_liquidity","nameLocation":"5932:10:87","nodeType":"VariableDeclaration","scope":33124,"src":"5924:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33066,"name":"uint128","nodeType":"ElementaryTypeName","src":"5924:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":33074,"initialValue":{"arguments":[{"id":33070,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33331,"src":"5991:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},{"id":33071,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33335,"src":"6012:26:87","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},{"id":33072,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33063,"src":"6052:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33068,"name":"NFTPositionInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"5946:15:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTPositionInfo_$37147_$","typeString":"type(library NFTPositionInfo)"}},"id":33069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPositionInfo","nodeType":"MemberAccess","referencedDeclaration":37146,"src":"5946:31:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IUniswapV3Factory_$13539_$_t_contract$_INonfungiblePositionManager_$35221_$_t_uint256_$returns$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"function (contract IUniswapV3Factory,contract INonfungiblePositionManager,uint256) view returns (contract IUniswapV3Pool,int24,int24,uint128)"}},"id":33073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5946:124:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"tuple(contract IUniswapV3Pool,int24,int24,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"5917:153:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":33080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33075,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33067,"src":"6085:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"baseExpression":{"id":33076,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6099:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33078,"indexExpression":{"id":33077,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33063,"src":"6108:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6099:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidity","nodeType":"MemberAccess","referencedDeclaration":33284,"src":"6099:28:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6085:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33082,"nodeType":"IfStatement","src":"6081:55:87","trueBody":{"functionReturnParameters":33065,"id":33081,"nodeType":"Return","src":"6129:7:87"}},{"assignments":[33084],"declarations":[{"constant":false,"id":33084,"mutability":"mutable","name":"_who","nameLocation":"6154:4:87","nodeType":"VariableDeclaration","scope":33124,"src":"6146:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33083,"name":"address","nodeType":"ElementaryTypeName","src":"6146:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33089,"initialValue":{"expression":{"baseExpression":{"id":33085,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6161:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33087,"indexExpression":{"id":33086,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33063,"src":"6170:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6161:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":33282,"src":"6161:24:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6146:39:87"},{"assignments":[33091],"declarations":[{"constant":false,"id":33091,"mutability":"mutable","name":"_derivedLiquidity","nameLocation":"6203:17:87","nodeType":"VariableDeclaration","scope":33124,"src":"6195:25:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33090,"name":"uint128","nodeType":"ElementaryTypeName","src":"6195:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":33096,"initialValue":{"arguments":[{"id":33093,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33067,"src":"6240:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":33094,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33084,"src":"6252:4:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_address","typeString":"address"}],"id":33092,"name":"derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32631,"src":"6223:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint128_$_t_address_$returns$_t_uint128_$","typeString":"function (uint128,address) view returns (uint128)"}},"id":33095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6223:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"6195:62:87"},{"expression":{"id":33108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33097,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"6317:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":33103,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6383:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33105,"indexExpression":{"id":33104,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33063,"src":"6392:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6383:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"derivedLiquidity","nodeType":"MemberAccess","referencedDeclaration":33286,"src":"6383:35:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":33100,"name":"_derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33091,"src":"6347:17:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":33098,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"6331:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"6331:15:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6331:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"6331:38:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6331:97:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6317:111:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33109,"nodeType":"ExpressionStatement","src":"6317:111:87"},{"expression":{"id":33115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":33110,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6439:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33112,"indexExpression":{"id":33111,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33063,"src":"6448:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6439:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"liquidity","nodeType":"MemberAccess","referencedDeclaration":33284,"src":"6439:28:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33114,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33067,"src":"6470:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6439:41:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":33116,"nodeType":"ExpressionStatement","src":"6439:41:87"},{"expression":{"id":33122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":33117,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6490:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33119,"indexExpression":{"id":33118,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33063,"src":"6499:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6490:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"derivedLiquidity","nodeType":"MemberAccess","referencedDeclaration":33286,"src":"6490:35:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33121,"name":"_derivedLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33091,"src":"6528:17:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6490:55:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":33123,"nodeType":"ExpressionStatement","src":"6490:55:87"}]},"id":33125,"implemented":true,"kind":"function","modifiers":[],"name":"_updateLiquidity","nameLocation":"5864:16:87","nodeType":"FunctionDefinition","parameters":{"id":33064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33063,"mutability":"mutable","name":"_tokenId","nameLocation":"5889:8:87","nodeType":"VariableDeclaration","scope":33125,"src":"5881:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33062,"name":"uint256","nodeType":"ElementaryTypeName","src":"5881:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5880:18:87"},"returnParameters":{"id":33065,"nodeType":"ParameterList","parameters":[],"src":"5907:0:87"},"scope":33248,"src":"5855:697:87","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":33177,"nodeType":"Block","src":"6759:462:87","statements":[{"assignments":[33139,33141,33143,33145],"declarations":[{"constant":false,"id":33139,"mutability":"mutable","name":"_pool","nameLocation":"6798:5:87","nodeType":"VariableDeclaration","scope":33177,"src":"6783:20:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":33138,"nodeType":"UserDefinedTypeName","pathNode":{"id":33137,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"6783:14:87"},"referencedDeclaration":13561,"src":"6783:14:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"internal"},{"constant":false,"id":33141,"mutability":"mutable","name":"_tickLower","nameLocation":"6823:10:87","nodeType":"VariableDeclaration","scope":33177,"src":"6817:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":33140,"name":"int24","nodeType":"ElementaryTypeName","src":"6817:5:87","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":33143,"mutability":"mutable","name":"_tickUpper","nameLocation":"6853:10:87","nodeType":"VariableDeclaration","scope":33177,"src":"6847:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":33142,"name":"int24","nodeType":"ElementaryTypeName","src":"6847:5:87","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":33145,"mutability":"mutable","name":"_liquidity","nameLocation":"6885:10:87","nodeType":"VariableDeclaration","scope":33177,"src":"6877:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33144,"name":"uint128","nodeType":"ElementaryTypeName","src":"6877:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":33152,"initialValue":{"arguments":[{"id":33148,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33331,"src":"6957:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},{"id":33149,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33335,"src":"6982:26:87","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},{"id":33150,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"7026:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33146,"name":"NFTPositionInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"6908:15:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTPositionInfo_$37147_$","typeString":"type(library NFTPositionInfo)"}},"id":33147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPositionInfo","nodeType":"MemberAccess","referencedDeclaration":37146,"src":"6908:31:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IUniswapV3Factory_$13539_$_t_contract$_INonfungiblePositionManager_$35221_$_t_uint256_$returns$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"function (contract IUniswapV3Factory,contract INonfungiblePositionManager,uint256) view returns (contract IUniswapV3Pool,int24,int24,uint128)"}},"id":33151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6908:140:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IUniswapV3Pool_$13561_$_t_int24_$_t_int24_$_t_uint128_$","typeString":"tuple(contract IUniswapV3Pool,int24,int24,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"6769:279:87"},{"assignments":[null,33154,null,null,null,null,null],"declarations":[null,{"constant":false,"id":33154,"mutability":"mutable","name":"tick","nameLocation":"7068:4:87","nodeType":"VariableDeclaration","scope":33177,"src":"7062:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":33153,"name":"int24","nodeType":"ElementaryTypeName","src":"7062:5:87","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},null,null,null,null,null],"id":33158,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":33155,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33139,"src":"7086:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":33156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"slot0","nodeType":"MemberAccess","referencedDeclaration":13894,"src":"7086:11:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$","typeString":"function () view external returns (uint160,int24,uint16,uint16,uint16,uint8,bool)"}},"id":33157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7086:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$","typeString":"tuple(uint160,int24,uint16,uint16,uint16,uint8,bool)"}},"nodeType":"VariableDeclarationStatement","src":"7059:40:87"},{"expression":{"id":33161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33159,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33131,"src":"7110:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33160,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33139,"src":"7117:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"src":"7110:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":33162,"nodeType":"ExpressionStatement","src":"7110:12:87"},{"expression":{"id":33171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33163,"name":"inRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33133,"src":"7132:7:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":33166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33164,"name":"_tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33141,"src":"7142:10:87","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":33165,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33154,"src":"7156:4:87","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"7142:18:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":33169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33167,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33154,"src":"7164:4:87","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":33168,"name":"_tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33143,"src":"7172:10:87","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"7164:18:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7142:40:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7132:50:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33172,"nodeType":"ExpressionStatement","src":"7132:50:87"},{"expression":{"id":33175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33173,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33135,"src":"7192:9:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33174,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33145,"src":"7204:10:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7192:22:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":33176,"nodeType":"ExpressionStatement","src":"7192:22:87"}]},"id":33178,"implemented":true,"kind":"function","modifiers":[],"name":"_getLiquidityAndInRange","nameLocation":"6567:23:87","nodeType":"FunctionDefinition","parameters":{"id":33128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33127,"mutability":"mutable","name":"_tokenId","nameLocation":"6599:8:87","nodeType":"VariableDeclaration","scope":33178,"src":"6591:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33126,"name":"uint256","nodeType":"ElementaryTypeName","src":"6591:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6590:18:87"},"returnParameters":{"id":33136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33131,"mutability":"mutable","name":"pool","nameLocation":"6683:4:87","nodeType":"VariableDeclaration","scope":33178,"src":"6668:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":33130,"nodeType":"UserDefinedTypeName","pathNode":{"id":33129,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"6668:14:87"},"referencedDeclaration":13561,"src":"6668:14:87","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"internal"},{"constant":false,"id":33133,"mutability":"mutable","name":"inRange","nameLocation":"6706:7:87","nodeType":"VariableDeclaration","scope":33178,"src":"6701:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33132,"name":"bool","nodeType":"ElementaryTypeName","src":"6701:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33135,"mutability":"mutable","name":"liquidity","nameLocation":"6735:9:87","nodeType":"VariableDeclaration","scope":33178,"src":"6727:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33134,"name":"uint128","nodeType":"ElementaryTypeName","src":"6727:7:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6654:100:87"},"scope":33248,"src":"6558:663:87","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":33216,"nodeType":"Block","src":"7319:307:87","statements":[{"expression":{"id":33186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33183,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"7329:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":33184,"name":"rewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33537,"src":"7352:14:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":33185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7352:16:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7329:39:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33187,"nodeType":"ExpressionStatement","src":"7329:39:87"},{"expression":{"id":33191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33188,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33305,"src":"7378:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":33189,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33507,"src":"7395:24:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":33190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7395:26:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7378:43:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33192,"nodeType":"ExpressionStatement","src":"7378:43:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33193,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33180,"src":"7435:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":33194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7447:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7435:13:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33215,"nodeType":"IfStatement","src":"7431:189:87","trueBody":{"id":33214,"nodeType":"Block","src":"7450:170:87","statements":[{"expression":{"id":33202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33196,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33327,"src":"7464:7:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33198,"indexExpression":{"id":33197,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33180,"src":"7472:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7464:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33200,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33180,"src":"7491:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33199,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33567,"src":"7484:6:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":33201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7484:16:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7464:36:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33203,"nodeType":"ExpressionStatement","src":"7464:36:87"},{"expression":{"id":33208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33204,"name":"userRewardPerTokenPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33314,"src":"7514:22:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33206,"indexExpression":{"id":33205,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33180,"src":"7537:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7514:32:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33207,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"7549:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7514:55:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33209,"nodeType":"ExpressionStatement","src":"7514:55:87"},{"expression":{"arguments":[{"id":33211,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33180,"src":"7600:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33210,"name":"_updateLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"7583:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":33212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7583:26:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33213,"nodeType":"ExpressionStatement","src":"7583:26:87"}]}}]},"id":33217,"implemented":true,"kind":"function","modifiers":[],"name":"_updateReward","nameLocation":"7279:13:87","nodeType":"FunctionDefinition","parameters":{"id":33181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33180,"mutability":"mutable","name":"_tokenId","nameLocation":"7301:8:87","nodeType":"VariableDeclaration","scope":33217,"src":"7293:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33179,"name":"uint256","nodeType":"ElementaryTypeName","src":"7293:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7292:18:87"},"returnParameters":{"id":33182,"nodeType":"ParameterList","parameters":[],"src":"7319:0:87"},"scope":33248,"src":"7270:356:87","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":33226,"nodeType":"Block","src":"7672:51:87","statements":[{"expression":{"arguments":[{"id":33222,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33219,"src":"7696:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33221,"name":"_updateReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33217,"src":"7682:13:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":33223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7682:23:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33224,"nodeType":"ExpressionStatement","src":"7682:23:87"},{"id":33225,"nodeType":"PlaceholderStatement","src":"7715:1:87"}]},"id":33227,"name":"updateReward","nameLocation":"7641:12:87","nodeType":"ModifierDefinition","parameters":{"id":33220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33219,"mutability":"mutable","name":"_tokenId","nameLocation":"7662:8:87","nodeType":"VariableDeclaration","scope":33227,"src":"7654:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33218,"name":"uint256","nodeType":"ElementaryTypeName","src":"7654:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7653:18:87"},"src":"7632:91:87","virtual":false,"visibility":"internal"},{"body":{"id":33246,"nodeType":"Block","src":"7781:109:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":33238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":33233,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"7799:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33235,"indexExpression":{"id":33234,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33229,"src":"7808:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7799:18:87","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidity","nodeType":"MemberAccess","referencedDeclaration":33284,"src":"7799:28:87","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7830:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7799:32:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6c69717569646974792069732030","id":33239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7833:16:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_696ff4afb8f94b9e0615b62dd4c79972c046448a8e5683291d4d2bbc3e2e7b4a","typeString":"literal_string \"liquidity is 0\""},"value":"liquidity is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_696ff4afb8f94b9e0615b62dd4c79972c046448a8e5683291d4d2bbc3e2e7b4a","typeString":"literal_string \"liquidity is 0\""}],"id":33232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7791:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7791:59:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33241,"nodeType":"ExpressionStatement","src":"7791:59:87"},{"expression":{"arguments":[{"id":33243,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33229,"src":"7874:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33242,"name":"_updateReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33217,"src":"7860:13:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":33244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7860:23:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33245,"nodeType":"ExpressionStatement","src":"7860:23:87"}]},"functionSelector":"d7e79f02","id":33247,"implemented":true,"kind":"function","modifiers":[],"name":"updateRewardFor","nameLocation":"7738:15:87","nodeType":"FunctionDefinition","parameters":{"id":33230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33229,"mutability":"mutable","name":"_tokenId","nameLocation":"7762:8:87","nodeType":"VariableDeclaration","scope":33247,"src":"7754:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33228,"name":"uint256","nodeType":"ElementaryTypeName","src":"7754:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7753:18:87"},"returnParameters":{"id":33231,"nodeType":"ParameterList","parameters":[],"src":"7781:0:87"},"scope":33248,"src":"7729:161:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":33249,"src":"602:7290:87","usedErrors":[]}],"src":"32:7861:87"},"id":87},"contracts/gauges/uniswapv3/UniswapV3Base.sol":{"ast":{"absolutePath":"contracts/gauges/uniswapv3/UniswapV3Base.sol","exportedSymbols":{"IERC20":[5767],"IGauge":[34110],"INonfungiblePositionManager":[35221],"IRegistry":[35522],"IUniswapV3Factory":[13539],"IUniswapV3Pool":[13561],"Initializable":[4914],"ReentrancyGuard":[5062],"SafeMath":[12516],"UniswapV3Base":[33789]},"id":33790,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":33250,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:88"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":33252,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":4739,"src":"57:69:88","symbolAliases":[{"foreign":{"id":33251,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":33254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":4915,"src":"127:84:88","symbolAliases":[{"foreign":{"id":33253,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"src":"135:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","id":33256,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":13540,"src":"212:94:88","symbolAliases":[{"foreign":{"id":33255,"name":"IUniswapV3Factory","nodeType":"Identifier","overloadedDeclarations":[],"src":"220:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","id":33258,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":13562,"src":"307:88:88","symbolAliases":[{"foreign":{"id":33257,"name":"IUniswapV3Pool","nodeType":"Identifier","overloadedDeclarations":[],"src":"315:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":33260,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":5063,"src":"396:85:88","symbolAliases":[{"foreign":{"id":33259,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"404:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":33262,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":12517,"src":"482:73:88","symbolAliases":[{"foreign":{"id":33261,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"src":"490:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../../interfaces/IRegistry.sol","id":33264,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":35523,"src":"557:57:88","symbolAliases":[{"foreign":{"id":33263,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"565:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INonfungiblePositionManager.sol","file":"../../interfaces/INonfungiblePositionManager.sol","id":33266,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":35222,"src":"615:93:88","symbolAliases":[{"foreign":{"id":33265,"name":"INonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"src":"623:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGauge.sol","file":"../../interfaces/IGauge.sol","id":33268,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33790,"sourceUnit":34111,"src":"709:51:88","symbolAliases":[{"foreign":{"id":33267,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"src":"717:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":33269,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"797:13:88"},"id":33270,"nodeType":"InheritanceSpecifier","src":"797:13:88"},{"baseName":{"id":33271,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"812:15:88"},"id":33272,"nodeType":"InheritanceSpecifier","src":"812:15:88"},{"baseName":{"id":33273,"name":"IGauge","nodeType":"IdentifierPath","referencedDeclaration":34110,"src":"829:6:88"},"id":33274,"nodeType":"InheritanceSpecifier","src":"829:6:88"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":33789,"linearizedBaseContracts":[33789,34110,5062,4914],"name":"UniswapV3Base","nameLocation":"780:13:88","nodeType":"ContractDefinition","nodes":[{"id":33277,"libraryName":{"id":33275,"name":"SafeMath","nodeType":"IdentifierPath","referencedDeclaration":12516,"src":"848:8:88"},"nodeType":"UsingForDirective","src":"842:27:88","typeName":{"id":33276,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":33280,"libraryName":{"id":33278,"name":"SafeMath","nodeType":"IdentifierPath","referencedDeclaration":12516,"src":"880:8:88"},"nodeType":"UsingForDirective","src":"874:27:88","typeName":{"id":33279,"name":"uint128","nodeType":"ElementaryTypeName","src":"893:7:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"canonicalName":"UniswapV3Base.Deposit","id":33287,"members":[{"constant":false,"id":33282,"mutability":"mutable","name":"owner","nameLocation":"998:5:88","nodeType":"VariableDeclaration","scope":33287,"src":"990:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33281,"name":"address","nodeType":"ElementaryTypeName","src":"990:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33284,"mutability":"mutable","name":"liquidity","nameLocation":"1021:9:88","nodeType":"VariableDeclaration","scope":33287,"src":"1013:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33283,"name":"uint128","nodeType":"ElementaryTypeName","src":"1013:7:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":33286,"mutability":"mutable","name":"derivedLiquidity","nameLocation":"1048:16:88","nodeType":"VariableDeclaration","scope":33287,"src":"1040:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33285,"name":"uint128","nodeType":"ElementaryTypeName","src":"1040:7:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"Deposit","nameLocation":"972:7:88","nodeType":"StructDefinition","scope":33789,"src":"965:106:88","visibility":"public"},{"baseFunctions":[34102],"constant":false,"functionSelector":"7b103999","id":33291,"mutability":"mutable","name":"registry","nameLocation":"1151:8:88","nodeType":"VariableDeclaration","overrides":{"id":33290,"nodeType":"OverrideSpecifier","overrides":[],"src":"1142:8:88"},"scope":33789,"src":"1125:34:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":33289,"nodeType":"UserDefinedTypeName","pathNode":{"id":33288,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"1125:9:88"},"referencedDeclaration":35522,"src":"1125:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":false,"functionSelector":"d1af0c7d","id":33294,"mutability":"mutable","name":"rewardsToken","nameLocation":"1179:12:88","nodeType":"VariableDeclaration","scope":33789,"src":"1165:26:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":33293,"nodeType":"UserDefinedTypeName","pathNode":{"id":33292,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1165:6:88"},"referencedDeclaration":5767,"src":"1165:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"ebe2b12b","id":33297,"mutability":"mutable","name":"periodFinish","nameLocation":"1212:12:88","nodeType":"VariableDeclaration","scope":33789,"src":"1197:31:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33295,"name":"uint256","nodeType":"ElementaryTypeName","src":"1197:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":33296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1227:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":false,"functionSelector":"7b0a47ee","id":33300,"mutability":"mutable","name":"rewardRate","nameLocation":"1249:10:88","nodeType":"VariableDeclaration","scope":33789,"src":"1234:29:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":33299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1262:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":false,"functionSelector":"386a9525","id":33303,"mutability":"mutable","name":"rewardsDuration","nameLocation":"1284:15:88","nodeType":"VariableDeclaration","scope":33789,"src":"1269:39:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33301,"name":"uint256","nodeType":"ElementaryTypeName","src":"1269:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":33302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1302:6:88","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"public"},{"constant":false,"functionSelector":"c8f33c91","id":33305,"mutability":"mutable","name":"lastUpdateTime","nameLocation":"1329:14:88","nodeType":"VariableDeclaration","scope":33789,"src":"1314:29:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1314:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"df136d65","id":33307,"mutability":"mutable","name":"rewardPerTokenStored","nameLocation":"1364:20:88","nodeType":"VariableDeclaration","scope":33789,"src":"1349:35:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33306,"name":"uint256","nodeType":"ElementaryTypeName","src":"1349:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"69db8b27","id":33310,"mutability":"mutable","name":"maxBoostRequirement","nameLocation":"1405:19:88","nodeType":"VariableDeclaration","scope":33789,"src":"1390:44:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33308,"name":"uint256","nodeType":"ElementaryTypeName","src":"1390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35303030653138","id":33309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:7:88","typeDescriptions":{"typeIdentifier":"t_rational_5000000000000000000000_by_1","typeString":"int_const 5000000000000000000000"},"value":"5000e18"},"visibility":"public"},{"constant":false,"functionSelector":"6c6f858b","id":33314,"mutability":"mutable","name":"userRewardPerTokenPaid","nameLocation":"1475:22:88","nodeType":"VariableDeclaration","scope":33789,"src":"1440:57:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":33313,"keyType":{"id":33311,"name":"uint256","nodeType":"ElementaryTypeName","src":"1448:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1440:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":33312,"name":"uint256","nodeType":"ElementaryTypeName","src":"1459:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":33316,"mutability":"mutable","name":"totalSupply","nameLocation":"1519:11:88","nodeType":"VariableDeclaration","scope":33789,"src":"1504:26:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33315,"name":"uint256","nodeType":"ElementaryTypeName","src":"1504:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":33317,"nodeType":"StructuredDocumentation","src":"1537:29:88","text":"@dev all the NFT deposits"},"functionSelector":"b02c43d0","id":33322,"mutability":"mutable","name":"deposits","nameLocation":"1606:8:88","nodeType":"VariableDeclaration","scope":33789,"src":"1571:43:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit)"},"typeName":{"id":33321,"keyType":{"id":33318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1579:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1571:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit)"},"valueType":{"id":33320,"nodeType":"UserDefinedTypeName","pathNode":{"id":33319,"name":"Deposit","nodeType":"IdentifierPath","referencedDeclaration":33287,"src":"1590:7:88"},"referencedDeclaration":33287,"src":"1590:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage_ptr","typeString":"struct UniswapV3Base.Deposit"}}},"visibility":"public"},{"constant":false,"documentation":{"id":33323,"nodeType":"StructuredDocumentation","src":"1621:47:88","text":"@dev [nft token id => reward count] rewards"},"functionSelector":"f301af42","id":33327,"mutability":"mutable","name":"rewards","nameLocation":"1708:7:88","nodeType":"VariableDeclaration","scope":33789,"src":"1673:42:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":33326,"keyType":{"id":33324,"name":"uint256","nodeType":"ElementaryTypeName","src":"1681:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1673:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":33325,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":33328,"nodeType":"StructuredDocumentation","src":"1722:31:88","text":"@dev the uniswap v3 factory"},"functionSelector":"c45a0155","id":33331,"mutability":"mutable","name":"factory","nameLocation":"1783:7:88","nodeType":"VariableDeclaration","scope":33789,"src":"1758:32:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},"typeName":{"id":33330,"nodeType":"UserDefinedTypeName","pathNode":{"id":33329,"name":"IUniswapV3Factory","nodeType":"IdentifierPath","referencedDeclaration":13539,"src":"1758:17:88"},"referencedDeclaration":13539,"src":"1758:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"visibility":"public"},{"constant":false,"documentation":{"id":33332,"nodeType":"StructuredDocumentation","src":"1797:44:88","text":"@dev the uniswap v3 nft position manager"},"functionSelector":"b44a2722","id":33335,"mutability":"mutable","name":"nonfungiblePositionManager","nameLocation":"1881:26:88","nodeType":"VariableDeclaration","scope":33789,"src":"1846:61:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},"typeName":{"id":33334,"nodeType":"UserDefinedTypeName","pathNode":{"id":33333,"name":"INonfungiblePositionManager","nodeType":"IdentifierPath","referencedDeclaration":35221,"src":"1846:27:88"},"referencedDeclaration":35221,"src":"1846:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"visibility":"public"},{"constant":false,"documentation":{"id":33336,"nodeType":"StructuredDocumentation","src":"1914:54:88","text":"@dev the pool for which we are staking the rewards"},"functionSelector":"16f0115b","id":33339,"mutability":"mutable","name":"pool","nameLocation":"1995:4:88","nodeType":"VariableDeclaration","scope":33789,"src":"1973:26:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":33338,"nodeType":"UserDefinedTypeName","pathNode":{"id":33337,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"1973:14:88"},"referencedDeclaration":13561,"src":"1973:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"public"},{"constant":false,"documentation":{"id":33340,"nodeType":"StructuredDocumentation","src":"2006:53:88","text":"@dev the number of NFTs staked by the given user."},"functionSelector":"70a08231","id":33344,"mutability":"mutable","name":"balanceOf","nameLocation":"2099:9:88","nodeType":"VariableDeclaration","scope":33789,"src":"2064:44:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":33343,"keyType":{"id":33341,"name":"address","nodeType":"ElementaryTypeName","src":"2072:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2064:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":33342,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":33345,"nodeType":"StructuredDocumentation","src":"2115:54:88","text":"@dev Mapping from owner to list of owned token IDs"},"id":33351,"mutability":"mutable","name":"_ownedTokens","nameLocation":"2231:12:88","nodeType":"VariableDeclaration","scope":33789,"src":"2174:69:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":33350,"keyType":{"id":33346,"name":"address","nodeType":"ElementaryTypeName","src":"2182:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2174:47:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":33349,"keyType":{"id":33347,"name":"uint256","nodeType":"ElementaryTypeName","src":"2201:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2193:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":33348,"name":"uint256","nodeType":"ElementaryTypeName","src":"2212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"constant":false,"documentation":{"id":33352,"nodeType":"StructuredDocumentation","src":"2250:64:88","text":"@dev Mapping from token ID to index of the owner tokens list"},"id":33356,"mutability":"mutable","name":"_ownedTokensIndex","nameLocation":"2356:17:88","nodeType":"VariableDeclaration","scope":33789,"src":"2319:54:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":33355,"keyType":{"id":33353,"name":"uint256","nodeType":"ElementaryTypeName","src":"2327:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2319:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":33354,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":33357,"nodeType":"StructuredDocumentation","src":"2380:55:88","text":"@dev Array with all token ids, used for enumeration"},"id":33360,"mutability":"mutable","name":"_allTokens","nameLocation":"2459:10:88","nodeType":"VariableDeclaration","scope":33789,"src":"2440:29:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":33358,"name":"uint256","nodeType":"ElementaryTypeName","src":"2440:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33359,"nodeType":"ArrayTypeName","src":"2440:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"documentation":{"id":33361,"nodeType":"StructuredDocumentation","src":"2476:65:88","text":"@dev Mapping from token id to position in the allTokens array"},"id":33365,"mutability":"mutable","name":"_allTokensIndex","nameLocation":"2583:15:88","nodeType":"VariableDeclaration","scope":33789,"src":"2546:52:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":33364,"keyType":{"id":33362,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2546:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":33363,"name":"uint256","nodeType":"ElementaryTypeName","src":"2565:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":33366,"nodeType":"StructuredDocumentation","src":"2605:43:88","text":"@dev is the user attached to this gauge"},"functionSelector":"36703461","id":33370,"mutability":"mutable","name":"attached","nameLocation":"2685:8:88","nodeType":"VariableDeclaration","scope":33789,"src":"2653:40:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":33369,"keyType":{"id":33367,"name":"address","nodeType":"ElementaryTypeName","src":"2661:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2653:24:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":33368,"name":"bool","nodeType":"ElementaryTypeName","src":"2672:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":33438,"nodeType":"Block","src":"2961:448:88","statements":[{"expression":{"id":33391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33387,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33335,"src":"2971:26:88","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33389,"name":"_nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33382,"src":"3041:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33388,"name":"INonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35221,"src":"3000:27:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INonfungiblePositionManager_$35221_$","typeString":"type(contract INonfungiblePositionManager)"}},"id":33390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3000:78:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"src":"2971:107:88","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":33392,"nodeType":"ExpressionStatement","src":"2971:107:88"},{"expression":{"id":33397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33393,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33291,"src":"3089:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33395,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33372,"src":"3110:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33394,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"3100:9:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":33396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3100:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"3089:31:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":33398,"nodeType":"ExpressionStatement","src":"3089:31:88"},{"expression":{"id":33405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33399,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33331,"src":"3130:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":33401,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33335,"src":"3158:26:88","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":33402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"factory","nodeType":"MemberAccess","referencedDeclaration":14025,"src":"3158:34:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":33403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3158:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33400,"name":"IUniswapV3Factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13539,"src":"3140:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUniswapV3Factory_$13539_$","typeString":"type(contract IUniswapV3Factory)"}},"id":33404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3140:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"src":"3130:65:88","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"id":33406,"nodeType":"ExpressionStatement","src":"3130:65:88"},{"expression":{"id":33411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33407,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33294,"src":"3205:12:88","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33409,"name":"_rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33380,"src":"3227:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33408,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"3220:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":33410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3220:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"src":"3205:36:88","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":33412,"nodeType":"ExpressionStatement","src":"3205:36:88"},{"assignments":[33414],"declarations":[{"constant":false,"id":33414,"mutability":"mutable","name":"_pool","nameLocation":"3260:5:88","nodeType":"VariableDeclaration","scope":33438,"src":"3252:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33413,"name":"address","nodeType":"ElementaryTypeName","src":"3252:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33421,"initialValue":{"arguments":[{"id":33417,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33374,"src":"3284:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33418,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33376,"src":"3292:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33419,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33378,"src":"3300:3:88","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"expression":{"id":33415,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33331,"src":"3268:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"id":33416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":13512,"src":"3268:15:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$_t_uint24_$returns$_t_address_$","typeString":"function (address,address,uint24) view external returns (address)"}},"id":33420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3268:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3252:52:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33423,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33414,"src":"3322:5:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3339:1:88","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":33425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3331:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33424,"name":"address","nodeType":"ElementaryTypeName","src":"3331:7:88","typeDescriptions":{}}},"id":33427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3331:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3322:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f6f6c20646f65736e2774206578697374","id":33429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3343:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a","typeString":"literal_string \"pool doesn't exist\""},"value":"pool doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a","typeString":"literal_string \"pool doesn't exist\""}],"id":33422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3314:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3314:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33431,"nodeType":"ExpressionStatement","src":"3314:50:88"},{"expression":{"id":33436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33432,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33339,"src":"3374:4:88","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33434,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33414,"src":"3396:5:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33433,"name":"IUniswapV3Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13561,"src":"3381:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUniswapV3Pool_$13561_$","typeString":"type(contract IUniswapV3Pool)"}},"id":33435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3381:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"src":"3374:28:88","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":33437,"nodeType":"ExpressionStatement","src":"3374:28:88"}]},"functionSelector":"b93c9a1d","id":33439,"implemented":true,"kind":"function","modifiers":[{"id":33385,"kind":"modifierInvocation","modifierName":{"id":33384,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":4834,"src":"2949:11:88"},"nodeType":"ModifierInvocation","src":"2949:11:88"}],"name":"initialize","nameLocation":"2754:10:88","nodeType":"FunctionDefinition","parameters":{"id":33383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33372,"mutability":"mutable","name":"_registry","nameLocation":"2782:9:88","nodeType":"VariableDeclaration","scope":33439,"src":"2774:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33371,"name":"address","nodeType":"ElementaryTypeName","src":"2774:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33374,"mutability":"mutable","name":"token0","nameLocation":"2809:6:88","nodeType":"VariableDeclaration","scope":33439,"src":"2801:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33373,"name":"address","nodeType":"ElementaryTypeName","src":"2801:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33376,"mutability":"mutable","name":"token1","nameLocation":"2833:6:88","nodeType":"VariableDeclaration","scope":33439,"src":"2825:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33375,"name":"address","nodeType":"ElementaryTypeName","src":"2825:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33378,"mutability":"mutable","name":"fee","nameLocation":"2856:3:88","nodeType":"VariableDeclaration","scope":33439,"src":"2849:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":33377,"name":"uint24","nodeType":"ElementaryTypeName","src":"2849:6:88","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":33380,"mutability":"mutable","name":"_rewardsToken","nameLocation":"2877:13:88","nodeType":"VariableDeclaration","scope":33439,"src":"2869:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33379,"name":"address","nodeType":"ElementaryTypeName","src":"2869:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33382,"mutability":"mutable","name":"_nonfungiblePositionManager","nameLocation":"2908:27:88","nodeType":"VariableDeclaration","scope":33439,"src":"2900:35:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33381,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2764:177:88"},"returnParameters":{"id":33386,"nodeType":"ParameterList","parameters":[],"src":"2961:0:88"},"scope":33789,"src":"2745:664:88","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34109],"body":{"id":33465,"nodeType":"Block","src":"3518:163:88","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33447,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3532:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":33448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3532:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":33449,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"3551:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3532:31:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33453,"nodeType":"IfStatement","src":"3528:45:88","trueBody":{"expression":{"hexValue":"30","id":33451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3572:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":33446,"id":33452,"nodeType":"Return","src":"3565:8:88"}},{"assignments":[33455],"declarations":[{"constant":false,"id":33455,"mutability":"mutable","name":"_remaining","nameLocation":"3591:10:88","nodeType":"VariableDeclaration","scope":33465,"src":"3583:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33454,"name":"uint256","nodeType":"ElementaryTypeName","src":"3583:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33460,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33456,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"3604:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":33457,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3619:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":33458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3619:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3604:30:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3583:51:88"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33461,"name":"_remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33455,"src":"3651:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33462,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33300,"src":"3664:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3651:23:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33446,"id":33464,"nodeType":"Return","src":"3644:30:88"}]},"functionSelector":"99bcc052","id":33466,"implemented":true,"kind":"function","modifiers":[],"name":"left","nameLocation":"3463:4:88","nodeType":"FunctionDefinition","overrides":{"id":33443,"nodeType":"OverrideSpecifier","overrides":[],"src":"3491:8:88"},"parameters":{"id":33442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33466,"src":"3468:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33440,"name":"address","nodeType":"ElementaryTypeName","src":"3468:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3467:9:88"},"returnParameters":{"id":33446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33466,"src":"3509:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33444,"name":"uint256","nodeType":"ElementaryTypeName","src":"3509:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3508:9:88"},"scope":33789,"src":"3454:227:88","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":33478,"nodeType":"Block","src":"3756:52:88","statements":[{"expression":{"expression":{"baseExpression":{"id":33473,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"3773:8:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33475,"indexExpression":{"id":33474,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33468,"src":"3782:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3773:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidity","nodeType":"MemberAccess","referencedDeclaration":33284,"src":"3773:28:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":33472,"id":33477,"nodeType":"Return","src":"3766:35:88"}]},"functionSelector":"c8f1c3af","id":33479,"implemented":true,"kind":"function","modifiers":[],"name":"liquidity","nameLocation":"3696:9:88","nodeType":"FunctionDefinition","parameters":{"id":33469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33468,"mutability":"mutable","name":"_tokenId","nameLocation":"3714:8:88","nodeType":"VariableDeclaration","scope":33479,"src":"3706:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33467,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3705:18:88"},"returnParameters":{"id":33472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33479,"src":"3747:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3746:9:88"},"scope":33789,"src":"3687:121:88","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":33491,"nodeType":"Block","src":"3918:59:88","statements":[{"expression":{"expression":{"baseExpression":{"id":33486,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"3935:8:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33488,"indexExpression":{"id":33487,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33481,"src":"3944:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3935:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"derivedLiquidity","nodeType":"MemberAccess","referencedDeclaration":33286,"src":"3935:35:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":33485,"id":33490,"nodeType":"Return","src":"3928:42:88"}]},"functionSelector":"03f3e30e","id":33492,"implemented":true,"kind":"function","modifiers":[],"name":"derivedLiquidity","nameLocation":"3823:16:88","nodeType":"FunctionDefinition","parameters":{"id":33482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33481,"mutability":"mutable","name":"_tokenId","nameLocation":"3848:8:88","nodeType":"VariableDeclaration","scope":33492,"src":"3840:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33480,"name":"uint256","nodeType":"ElementaryTypeName","src":"3840:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3839:18:88"},"returnParameters":{"id":33485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33492,"src":"3905:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3905:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3904:9:88"},"scope":33789,"src":"3814:163:88","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":33506,"nodeType":"Block","src":"4049:87:88","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33497,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4066:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":33498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4066:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33499,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"4084:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4066:30:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":33503,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"4117:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4066:63:88","trueExpression":{"expression":{"id":33501,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4099:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":33502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4099:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33496,"id":33505,"nodeType":"Return","src":"4059:70:88"}]},"functionSelector":"80faa57d","id":33507,"implemented":true,"kind":"function","modifiers":[],"name":"lastTimeRewardApplicable","nameLocation":"3992:24:88","nodeType":"FunctionDefinition","parameters":{"id":33493,"nodeType":"ParameterList","parameters":[],"src":"4016:2:88"},"returnParameters":{"id":33496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33507,"src":"4040:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33494,"name":"uint256","nodeType":"ElementaryTypeName","src":"4040:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4039:9:88"},"scope":33789,"src":"3983:153:88","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":33536,"nodeType":"Block","src":"4198:324:88","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33512,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"4212:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":33513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4227:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4212:16:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33517,"nodeType":"IfStatement","src":"4208:49:88","trueBody":{"expression":{"id":33515,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"4237:20:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33511,"id":33516,"nodeType":"Return","src":"4230:27:88"}},{"expression":{"arguments":[{"arguments":[{"id":33532,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33316,"src":"4489:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"31653138","id":33529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4458:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"expression":{"arguments":[{"id":33526,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33300,"src":"4421:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":33523,"name":"lastUpdateTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33305,"src":"4380:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":33520,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33507,"src":"4328:24:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":33521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4328:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"4328:51:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4328:67:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":12410,"src":"4328:92:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4328:104:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":12410,"src":"4328:129:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4328:135:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"4328:160:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4328:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33518,"name":"rewardPerTokenStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"4286:20:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"4286:24:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4286:229:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33511,"id":33535,"nodeType":"Return","src":"4267:248:88"}]},"functionSelector":"cd3daf9d","id":33537,"implemented":true,"kind":"function","modifiers":[],"name":"rewardPerToken","nameLocation":"4151:14:88","nodeType":"FunctionDefinition","parameters":{"id":33508,"nodeType":"ParameterList","parameters":[],"src":"4165:2:88"},"returnParameters":{"id":33511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33537,"src":"4189:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33509,"name":"uint256","nodeType":"ElementaryTypeName","src":"4189:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4188:9:88"},"scope":33789,"src":"4142:380:88","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":33566,"nodeType":"Block","src":"4592:232:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":33561,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33327,"src":"4799:7:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33563,"indexExpression":{"id":33562,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33539,"src":"4807:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4799:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"31653138","id":33558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4772:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":33552,"name":"userRewardPerTokenPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33314,"src":"4716:22:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33554,"indexExpression":{"id":33553,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33539,"src":"4739:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4716:32:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":33549,"name":"rewardPerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33537,"src":"4695:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":33550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4695:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"4695:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4695:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":33544,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"4621:8:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33546,"indexExpression":{"id":33545,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33539,"src":"4630:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4621:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"derivedLiquidity","nodeType":"MemberAccess","referencedDeclaration":33286,"src":"4621:52:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":33548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":12410,"src":"4621:73:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4621:129:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"4621:150:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4621:156:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"4621:177:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4621:196:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33543,"id":33565,"nodeType":"Return","src":"4602:215:88"}]},"functionSelector":"4d6ed8c4","id":33567,"implemented":true,"kind":"function","modifiers":[],"name":"earned","nameLocation":"4537:6:88","nodeType":"FunctionDefinition","parameters":{"id":33540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33539,"mutability":"mutable","name":"_tokenId","nameLocation":"4552:8:88","nodeType":"VariableDeclaration","scope":33567,"src":"4544:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33538,"name":"uint256","nodeType":"ElementaryTypeName","src":"4544:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4543:18:88"},"returnParameters":{"id":33543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33567,"src":"4583:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33541,"name":"uint256","nodeType":"ElementaryTypeName","src":"4583:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4582:9:88"},"scope":33789,"src":"4528:296:88","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":33577,"nodeType":"Block","src":"4894:55:88","statements":[{"expression":{"arguments":[{"id":33574,"name":"rewardsDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33303,"src":"4926:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33572,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33300,"src":"4911:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":12410,"src":"4911:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4911:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33571,"id":33576,"nodeType":"Return","src":"4904:38:88"}]},"functionSelector":"1c1f78eb","id":33578,"implemented":true,"kind":"function","modifiers":[],"name":"getRewardForDuration","nameLocation":"4839:20:88","nodeType":"FunctionDefinition","parameters":{"id":33568,"nodeType":"ParameterList","parameters":[],"src":"4859:2:88"},"returnParameters":{"id":33571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33578,"src":"4885:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33569,"name":"uint256","nodeType":"ElementaryTypeName","src":"4885:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4884:9:88"},"scope":33789,"src":"4830:119:88","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":33606,"nodeType":"Block","src":"5318:136:88","statements":[{"assignments":[33587],"declarations":[{"constant":false,"id":33587,"mutability":"mutable","name":"length","nameLocation":"5336:6:88","nodeType":"VariableDeclaration","scope":33606,"src":"5328:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33586,"name":"uint256","nodeType":"ElementaryTypeName","src":"5328:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33591,"initialValue":{"baseExpression":{"id":33588,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33344,"src":"5345:9:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33590,"indexExpression":{"id":33589,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33581,"src":"5355:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5345:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5328:30:88"},{"expression":{"id":33598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":33592,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"5368:12:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":33595,"indexExpression":{"id":33593,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33581,"src":"5381:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5368:16:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33596,"indexExpression":{"id":33594,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33587,"src":"5385:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5368:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33597,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33583,"src":"5395:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5368:34:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33599,"nodeType":"ExpressionStatement","src":"5368:34:88"},{"expression":{"id":33604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33600,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33356,"src":"5412:17:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33602,"indexExpression":{"id":33601,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33583,"src":"5430:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5412:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33603,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33587,"src":"5441:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5412:35:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33605,"nodeType":"ExpressionStatement","src":"5412:35:88"}]},"documentation":{"id":33579,"nodeType":"StructuredDocumentation","src":"4955:283:88","text":" @dev Private function to add a token to this extension's ownership-tracking data structures.\n @param to address representing the new owner of the given token ID\n @param tokenId uint256 ID of the token to be added to the tokens list of the given address"},"id":33607,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToOwnerEnumeration","nameLocation":"5252:27:88","nodeType":"FunctionDefinition","parameters":{"id":33584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33581,"mutability":"mutable","name":"to","nameLocation":"5288:2:88","nodeType":"VariableDeclaration","scope":33607,"src":"5280:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33580,"name":"address","nodeType":"ElementaryTypeName","src":"5280:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33583,"mutability":"mutable","name":"tokenId","nameLocation":"5300:7:88","nodeType":"VariableDeclaration","scope":33607,"src":"5292:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33582,"name":"uint256","nodeType":"ElementaryTypeName","src":"5292:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5279:29:88"},"returnParameters":{"id":33585,"nodeType":"ParameterList","parameters":[],"src":"5318:0:88"},"scope":33789,"src":"5243:211:88","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":33626,"nodeType":"Block","src":"5716:95:88","statements":[{"expression":{"id":33618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33613,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33365,"src":"5726:15:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33615,"indexExpression":{"id":33614,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33610,"src":"5742:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5726:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":33616,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33360,"src":"5753:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":33617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5753:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5726:44:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33619,"nodeType":"ExpressionStatement","src":"5726:44:88"},{"expression":{"arguments":[{"id":33623,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33610,"src":"5796:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33620,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33360,"src":"5780:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":33622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5780:15:88","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":33624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5780:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33625,"nodeType":"ExpressionStatement","src":"5780:24:88"}]},"documentation":{"id":33608,"nodeType":"StructuredDocumentation","src":"5460:184:88","text":" @dev Private function to add a token to this extension's token tracking data structures.\n @param tokenId uint256 ID of the token to be added to the tokens list"},"id":33627,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToAllTokensEnumeration","nameLocation":"5658:31:88","nodeType":"FunctionDefinition","parameters":{"id":33611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33610,"mutability":"mutable","name":"tokenId","nameLocation":"5698:7:88","nodeType":"VariableDeclaration","scope":33627,"src":"5690:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33609,"name":"uint256","nodeType":"ElementaryTypeName","src":"5690:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5689:17:88"},"returnParameters":{"id":33612,"nodeType":"ParameterList","parameters":[],"src":"5716:0:88"},"scope":33789,"src":"5649:162:88","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":33686,"nodeType":"Block","src":"6522:878:88","statements":[{"assignments":[33636],"declarations":[{"constant":false,"id":33636,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"6711:14:88","nodeType":"VariableDeclaration","scope":33686,"src":"6703:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33635,"name":"uint256","nodeType":"ElementaryTypeName","src":"6703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33640,"initialValue":{"baseExpression":{"id":33637,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33344,"src":"6728:9:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33639,"indexExpression":{"id":33638,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33630,"src":"6738:4:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6728:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6703:40:88"},{"assignments":[33642],"declarations":[{"constant":false,"id":33642,"mutability":"mutable","name":"tokenIndex","nameLocation":"6761:10:88","nodeType":"VariableDeclaration","scope":33686,"src":"6753:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33641,"name":"uint256","nodeType":"ElementaryTypeName","src":"6753:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33646,"initialValue":{"baseExpression":{"id":33643,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33356,"src":"6774:17:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33645,"indexExpression":{"id":33644,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33632,"src":"6792:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6774:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6753:47:88"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33647,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33642,"src":"6904:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33648,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33636,"src":"6918:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6904:28:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33673,"nodeType":"IfStatement","src":"6900:323:88","trueBody":{"id":33672,"nodeType":"Block","src":"6934:289:88","statements":[{"assignments":[33651],"declarations":[{"constant":false,"id":33651,"mutability":"mutable","name":"lastTokenId","nameLocation":"6956:11:88","nodeType":"VariableDeclaration","scope":33672,"src":"6948:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33650,"name":"uint256","nodeType":"ElementaryTypeName","src":"6948:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33657,"initialValue":{"baseExpression":{"baseExpression":{"id":33652,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"6970:12:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":33654,"indexExpression":{"id":33653,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33630,"src":"6983:4:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6970:18:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33656,"indexExpression":{"id":33655,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33636,"src":"6989:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6970:34:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6948:56:88"},{"expression":{"id":33664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":33658,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"7019:12:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":33661,"indexExpression":{"id":33659,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33630,"src":"7032:4:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7019:18:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33662,"indexExpression":{"id":33660,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33642,"src":"7038:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7019:30:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33663,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33651,"src":"7052:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7019:44:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33665,"nodeType":"ExpressionStatement","src":"7019:44:88"},{"expression":{"id":33670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33666,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33356,"src":"7135:17:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33668,"indexExpression":{"id":33667,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33651,"src":"7153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7135:30:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33669,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33642,"src":"7168:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7135:43:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33671,"nodeType":"ExpressionStatement","src":"7135:43:88"}]}},{"expression":{"id":33677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7309:33:88","subExpression":{"baseExpression":{"id":33674,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33356,"src":"7316:17:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33676,"indexExpression":{"id":33675,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33632,"src":"7334:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7316:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33678,"nodeType":"ExpressionStatement","src":"7309:33:88"},{"expression":{"id":33684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7352:41:88","subExpression":{"baseExpression":{"baseExpression":{"id":33679,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"7359:12:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":33681,"indexExpression":{"id":33680,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33630,"src":"7372:4:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7359:18:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33683,"indexExpression":{"id":33682,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33636,"src":"7378:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7359:34:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33685,"nodeType":"ExpressionStatement","src":"7352:41:88"}]},"documentation":{"id":33628,"nodeType":"StructuredDocumentation","src":"5817:606:88","text":" @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n This has O(1) time complexity, but alters the order of the _ownedTokens array.\n @param from address representing the previous owner of the given token ID\n @param tokenId uint256 ID of the token to be removed from the tokens list of the given address"},"id":33687,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromOwnerEnumeration","nameLocation":"6437:32:88","nodeType":"FunctionDefinition","parameters":{"id":33633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33630,"mutability":"mutable","name":"from","nameLocation":"6478:4:88","nodeType":"VariableDeclaration","scope":33687,"src":"6470:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33629,"name":"address","nodeType":"ElementaryTypeName","src":"6470:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33632,"mutability":"mutable","name":"tokenId","nameLocation":"6492:7:88","nodeType":"VariableDeclaration","scope":33687,"src":"6484:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33631,"name":"uint256","nodeType":"ElementaryTypeName","src":"6484:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6469:31:88"},"returnParameters":{"id":33634,"nodeType":"ParameterList","parameters":[],"src":"6522:0:88"},"scope":33789,"src":"6428:972:88","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":33734,"nodeType":"Block","src":"7760:990:88","statements":[{"assignments":[33694],"declarations":[{"constant":false,"id":33694,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"7946:14:88","nodeType":"VariableDeclaration","scope":33734,"src":"7938:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33693,"name":"uint256","nodeType":"ElementaryTypeName","src":"7938:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33699,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33695,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33360,"src":"7963:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":33696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7963:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7983:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7963:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7938:46:88"},{"assignments":[33701],"declarations":[{"constant":false,"id":33701,"mutability":"mutable","name":"tokenIndex","nameLocation":"8002:10:88","nodeType":"VariableDeclaration","scope":33734,"src":"7994:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33700,"name":"uint256","nodeType":"ElementaryTypeName","src":"7994:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33705,"initialValue":{"baseExpression":{"id":33702,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33365,"src":"8015:15:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33704,"indexExpression":{"id":33703,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33690,"src":"8031:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8015:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7994:45:88"},{"assignments":[33707],"declarations":[{"constant":false,"id":33707,"mutability":"mutable","name":"lastTokenId","nameLocation":"8369:11:88","nodeType":"VariableDeclaration","scope":33734,"src":"8361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33706,"name":"uint256","nodeType":"ElementaryTypeName","src":"8361:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33711,"initialValue":{"baseExpression":{"id":33708,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33360,"src":"8383:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":33710,"indexExpression":{"id":33709,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33694,"src":"8394:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8383:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8361:48:88"},{"expression":{"id":33716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33712,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33360,"src":"8420:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":33714,"indexExpression":{"id":33713,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33701,"src":"8431:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8420:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33715,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33707,"src":"8445:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8420:36:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33717,"nodeType":"ExpressionStatement","src":"8420:36:88"},{"expression":{"id":33722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33718,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33365,"src":"8524:15:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33720,"indexExpression":{"id":33719,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33707,"src":"8540:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8524:28:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33721,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33701,"src":"8555:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8524:41:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33723,"nodeType":"ExpressionStatement","src":"8524:41:88"},{"expression":{"id":33727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8686:31:88","subExpression":{"baseExpression":{"id":33724,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33365,"src":"8693:15:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":33726,"indexExpression":{"id":33725,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33690,"src":"8709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8693:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33728,"nodeType":"ExpressionStatement","src":"8686:31:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":33729,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33360,"src":"8727:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":33731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"8727:14:88","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer)"}},"id":33732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8727:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33733,"nodeType":"ExpressionStatement","src":"8727:16:88"}]},"documentation":{"id":33688,"nodeType":"StructuredDocumentation","src":"7406:277:88","text":" @dev Private function to remove a token from this extension's token tracking data structures.\n This has O(1) time complexity, but alters the order of the _allTokens array.\n @param tokenId uint256 ID of the token to be removed from the tokens list"},"id":33735,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromAllTokensEnumeration","nameLocation":"7697:36:88","nodeType":"FunctionDefinition","parameters":{"id":33691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33690,"mutability":"mutable","name":"tokenId","nameLocation":"7742:7:88","nodeType":"VariableDeclaration","scope":33735,"src":"7734:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33689,"name":"uint256","nodeType":"ElementaryTypeName","src":"7734:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7733:17:88"},"returnParameters":{"id":33692,"nodeType":"ParameterList","parameters":[],"src":"7760:0:88"},"scope":33789,"src":"7688:1062:88","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":33751,"nodeType":"Block","src":"8798:97:88","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":33740,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"8816:8:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Deposit_$33287_storage_$","typeString":"mapping(uint256 => struct UniswapV3Base.Deposit storage ref)"}},"id":33742,"indexExpression":{"id":33741,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33737,"src":"8825:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8816:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_Deposit_$33287_storage","typeString":"struct UniswapV3Base.Deposit storage ref"}},"id":33743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":33282,"src":"8816:24:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":33744,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8844:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8844:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8816:38:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f6e6c7920746f6b656e6964206f776e6572","id":33747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8856:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c4669339db1b9128f87a0e23d1b39c4647e9f6c39f951c47e41f9dced5e33fc","typeString":"literal_string \"only tokenid owner\""},"value":"only tokenid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c4669339db1b9128f87a0e23d1b39c4647e9f6c39f951c47e41f9dced5e33fc","typeString":"literal_string \"only tokenid owner\""}],"id":33739,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8808:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8808:69:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33749,"nodeType":"ExpressionStatement","src":"8808:69:88"},{"id":33750,"nodeType":"PlaceholderStatement","src":"8887:1:88"}]},"id":33752,"name":"onlyTokenOwner","nameLocation":"8765:14:88","nodeType":"ModifierDefinition","parameters":{"id":33738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33737,"mutability":"mutable","name":"_tokenId","nameLocation":"8788:8:88","nodeType":"VariableDeclaration","scope":33752,"src":"8780:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33736,"name":"uint256","nodeType":"ElementaryTypeName","src":"8780:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8779:18:88"},"src":"8756:139:88","virtual":false,"visibility":"internal"},{"anonymous":false,"id":33756,"name":"RewardAdded","nameLocation":"8946:11:88","nodeType":"EventDefinition","parameters":{"id":33755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33754,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"8966:6:88","nodeType":"VariableDeclaration","scope":33756,"src":"8958:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33753,"name":"uint256","nodeType":"ElementaryTypeName","src":"8958:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8957:16:88"},"src":"8940:34:88"},{"anonymous":false,"id":33766,"name":"Staked","nameLocation":"8985:6:88","nodeType":"EventDefinition","parameters":{"id":33765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33758,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"9017:4:88","nodeType":"VariableDeclaration","scope":33766,"src":"9001:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33757,"name":"address","nodeType":"ElementaryTypeName","src":"9001:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33760,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"9039:7:88","nodeType":"VariableDeclaration","scope":33766,"src":"9031:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33759,"name":"uint256","nodeType":"ElementaryTypeName","src":"9031:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33762,"indexed":false,"mutability":"mutable","name":"liquidty","nameLocation":"9064:8:88","nodeType":"VariableDeclaration","scope":33766,"src":"9056:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33761,"name":"uint128","nodeType":"ElementaryTypeName","src":"9056:7:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":33764,"indexed":false,"mutability":"mutable","name":"derivedLiquidity","nameLocation":"9090:16:88","nodeType":"VariableDeclaration","scope":33766,"src":"9082:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":33763,"name":"uint128","nodeType":"ElementaryTypeName","src":"9082:7:88","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8991:121:88"},"src":"8979:134:88"},{"anonymous":false,"id":33772,"name":"Withdrawn","nameLocation":"9124:9:88","nodeType":"EventDefinition","parameters":{"id":33771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33768,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"9150:4:88","nodeType":"VariableDeclaration","scope":33772,"src":"9134:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33767,"name":"address","nodeType":"ElementaryTypeName","src":"9134:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33770,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"9164:7:88","nodeType":"VariableDeclaration","scope":33772,"src":"9156:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33769,"name":"uint256","nodeType":"ElementaryTypeName","src":"9156:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9133:39:88"},"src":"9118:55:88"},{"anonymous":false,"id":33780,"name":"RewardPaid","nameLocation":"9184:10:88","nodeType":"EventDefinition","parameters":{"id":33779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33774,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"9211:4:88","nodeType":"VariableDeclaration","scope":33780,"src":"9195:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33773,"name":"address","nodeType":"ElementaryTypeName","src":"9195:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33776,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"9225:7:88","nodeType":"VariableDeclaration","scope":33780,"src":"9217:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33775,"name":"uint256","nodeType":"ElementaryTypeName","src":"9217:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33778,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"9242:6:88","nodeType":"VariableDeclaration","scope":33780,"src":"9234:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33777,"name":"uint256","nodeType":"ElementaryTypeName","src":"9234:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9194:55:88"},"src":"9178:72:88"},{"anonymous":false,"id":33786,"name":"MaxBoostRequirementChanged","nameLocation":"9261:26:88","nodeType":"EventDefinition","parameters":{"id":33785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33782,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"9296:4:88","nodeType":"VariableDeclaration","scope":33786,"src":"9288:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33781,"name":"uint256","nodeType":"ElementaryTypeName","src":"9288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33784,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"9310:4:88","nodeType":"VariableDeclaration","scope":33786,"src":"9302:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33783,"name":"uint256","nodeType":"ElementaryTypeName","src":"9302:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9287:28:88"},"src":"9255:61:88"},{"anonymous":false,"id":33788,"name":"EmergencyModeEnabled","nameLocation":"9327:20:88","nodeType":"EventDefinition","parameters":{"id":33787,"nodeType":"ParameterList","parameters":[],"src":"9347:2:88"},"src":"9321:29:88"}],"scope":33790,"src":"762:8590:88","usedErrors":[]}],"src":"32:9321:88"},"id":88},"contracts/interfaces/IBeacon.sol":{"ast":{"absolutePath":"contracts/interfaces/IBeacon.sol","exportedSymbols":{"IBeacon":[33799]},"id":33800,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":33791,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:89"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":33792,"nodeType":"StructuredDocumentation","src":"58:79:89","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":33799,"linearizedBaseContracts":[33799],"name":"IBeacon","nameLocation":"148:7:89","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":33793,"nodeType":"StructuredDocumentation","src":"160:154:89","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":33798,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"326:14:89","nodeType":"FunctionDefinition","parameters":{"id":33794,"nodeType":"ParameterList","parameters":[],"src":"340:2:89"},"returnParameters":{"id":33797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33798,"src":"366:7:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33795,"name":"address","nodeType":"ElementaryTypeName","src":"366:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"365:9:89"},"scope":33799,"src":"317:58:89","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":33800,"src":"138:239:89","usedErrors":[]}],"src":"33:345:89"},"id":89},"contracts/interfaces/IBribe.sol":{"ast":{"absolutePath":"contracts/interfaces/IBribe.sol","exportedSymbols":{"IBribe":[33878],"IRegistry":[35522]},"id":33879,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":33801,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:90"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":33803,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33879,"sourceUnit":35523,"src":"58:42:90","symbolAliases":[{"foreign":{"id":33802,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:90","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":33878,"linearizedBaseContracts":[33878],"name":"IBribe","nameLocation":"112:6:90","nodeType":"ContractDefinition","nodes":[{"functionSelector":"7b103999","id":33809,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"132:8:90","nodeType":"FunctionDefinition","parameters":{"id":33804,"nodeType":"ParameterList","parameters":[],"src":"140:2:90"},"returnParameters":{"id":33808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33809,"src":"166:9:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":33806,"nodeType":"UserDefinedTypeName","pathNode":{"id":33805,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"166:9:90"},"referencedDeclaration":35522,"src":"166:9:90","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"165:11:90"},"scope":33878,"src":"123:54:90","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b66503cf","id":33816,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"190:18:90","nodeType":"FunctionDefinition","parameters":{"id":33814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33811,"mutability":"mutable","name":"token","nameLocation":"217:5:90","nodeType":"VariableDeclaration","scope":33816,"src":"209:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33810,"name":"address","nodeType":"ElementaryTypeName","src":"209:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33813,"mutability":"mutable","name":"amount","nameLocation":"232:6:90","nodeType":"VariableDeclaration","scope":33816,"src":"224:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33812,"name":"uint256","nodeType":"ElementaryTypeName","src":"224:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"208:31:90"},"returnParameters":{"id":33815,"nodeType":"ParameterList","parameters":[],"src":"248:0:90"},"scope":33878,"src":"181:68:90","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"99bcc052","id":33823,"implemented":false,"kind":"function","modifiers":[],"name":"left","nameLocation":"262:4:90","nodeType":"FunctionDefinition","parameters":{"id":33819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33818,"mutability":"mutable","name":"token","nameLocation":"275:5:90","nodeType":"VariableDeclaration","scope":33823,"src":"267:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33817,"name":"address","nodeType":"ElementaryTypeName","src":"267:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"266:15:90"},"returnParameters":{"id":33822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33823,"src":"305:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33820,"name":"uint256","nodeType":"ElementaryTypeName","src":"305:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"304:9:90"},"scope":33878,"src":"253:61:90","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3207723","id":33830,"implemented":false,"kind":"function","modifiers":[],"name":"_deposit","nameLocation":"327:8:90","nodeType":"FunctionDefinition","parameters":{"id":33828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33825,"mutability":"mutable","name":"amount","nameLocation":"344:6:90","nodeType":"VariableDeclaration","scope":33830,"src":"336:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33824,"name":"uint256","nodeType":"ElementaryTypeName","src":"336:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33827,"mutability":"mutable","name":"tokenId","nameLocation":"360:7:90","nodeType":"VariableDeclaration","scope":33830,"src":"352:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33826,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"335:33:90"},"returnParameters":{"id":33829,"nodeType":"ParameterList","parameters":[],"src":"377:0:90"},"scope":33878,"src":"318:60:90","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9e2bf22c","id":33837,"implemented":false,"kind":"function","modifiers":[],"name":"_withdraw","nameLocation":"391:9:90","nodeType":"FunctionDefinition","parameters":{"id":33835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33832,"mutability":"mutable","name":"amount","nameLocation":"409:6:90","nodeType":"VariableDeclaration","scope":33837,"src":"401:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33831,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33834,"mutability":"mutable","name":"tokenId","nameLocation":"425:7:90","nodeType":"VariableDeclaration","scope":33837,"src":"417:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33833,"name":"uint256","nodeType":"ElementaryTypeName","src":"417:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"400:33:90"},"returnParameters":{"id":33836,"nodeType":"ParameterList","parameters":[],"src":"442:0:90"},"scope":33878,"src":"382:61:90","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a7852afa","id":33845,"implemented":false,"kind":"function","modifiers":[],"name":"getRewardForOwner","nameLocation":"456:17:90","nodeType":"FunctionDefinition","parameters":{"id":33843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33839,"mutability":"mutable","name":"tokenId","nameLocation":"482:7:90","nodeType":"VariableDeclaration","scope":33845,"src":"474:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33838,"name":"uint256","nodeType":"ElementaryTypeName","src":"474:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33842,"mutability":"mutable","name":"tokens","nameLocation":"508:6:90","nodeType":"VariableDeclaration","scope":33845,"src":"491:23:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":33840,"name":"address","nodeType":"ElementaryTypeName","src":"491:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33841,"nodeType":"ArrayTypeName","src":"491:9:90","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"473:42:90"},"returnParameters":{"id":33844,"nodeType":"ParameterList","parameters":[],"src":"524:0:90"},"scope":33878,"src":"447:78:90","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":33853,"name":"Deposit","nameLocation":"535:7:90","nodeType":"EventDefinition","parameters":{"id":33852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33847,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"559:4:90","nodeType":"VariableDeclaration","scope":33853,"src":"543:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33846,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33849,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"573:7:90","nodeType":"VariableDeclaration","scope":33853,"src":"565:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33848,"name":"uint256","nodeType":"ElementaryTypeName","src":"565:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33851,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"590:6:90","nodeType":"VariableDeclaration","scope":33853,"src":"582:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33850,"name":"uint256","nodeType":"ElementaryTypeName","src":"582:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"542:55:90"},"src":"529:69:90"},{"anonymous":false,"id":33861,"name":"Withdraw","nameLocation":"607:8:90","nodeType":"EventDefinition","parameters":{"id":33860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33855,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"632:4:90","nodeType":"VariableDeclaration","scope":33861,"src":"616:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33854,"name":"address","nodeType":"ElementaryTypeName","src":"616:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33857,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"646:7:90","nodeType":"VariableDeclaration","scope":33861,"src":"638:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33856,"name":"uint256","nodeType":"ElementaryTypeName","src":"638:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33859,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"663:6:90","nodeType":"VariableDeclaration","scope":33861,"src":"655:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33858,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"615:55:90"},"src":"601:70:90"},{"anonymous":false,"id":33869,"name":"NotifyReward","nameLocation":"680:12:90","nodeType":"EventDefinition","parameters":{"id":33868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33863,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"714:4:90","nodeType":"VariableDeclaration","scope":33869,"src":"698:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33862,"name":"address","nodeType":"ElementaryTypeName","src":"698:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33865,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"740:6:90","nodeType":"VariableDeclaration","scope":33869,"src":"724:22:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33864,"name":"address","nodeType":"ElementaryTypeName","src":"724:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33867,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"760:6:90","nodeType":"VariableDeclaration","scope":33869,"src":"752:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33866,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"692:78:90"},"src":"674:97:90"},{"anonymous":false,"id":33877,"name":"ClaimRewards","nameLocation":"780:12:90","nodeType":"EventDefinition","parameters":{"id":33876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33871,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"814:4:90","nodeType":"VariableDeclaration","scope":33877,"src":"798:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33870,"name":"address","nodeType":"ElementaryTypeName","src":"798:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33873,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"840:6:90","nodeType":"VariableDeclaration","scope":33877,"src":"824:22:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33872,"name":"address","nodeType":"ElementaryTypeName","src":"824:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33875,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"860:6:90","nodeType":"VariableDeclaration","scope":33877,"src":"852:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33874,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:78:90"},"src":"774:97:90"}],"scope":33879,"src":"102:771:90","usedErrors":[]}],"src":"33:841:90"},"id":90},"contracts/interfaces/IBribeFactory.sol":{"ast":{"absolutePath":"contracts/interfaces/IBribeFactory.sol","exportedSymbols":{"IBribeFactory":[33892]},"id":33893,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":33880,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:91"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":33892,"linearizedBaseContracts":[33892],"name":"IBribeFactory","nameLocation":"68:13:91","nodeType":"ContractDefinition","nodes":[{"functionSelector":"6bd1a72c","id":33887,"implemented":false,"kind":"function","modifiers":[],"name":"createBribe","nameLocation":"95:11:91","nodeType":"FunctionDefinition","parameters":{"id":33883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33882,"mutability":"mutable","name":"_registry","nameLocation":"115:9:91","nodeType":"VariableDeclaration","scope":33887,"src":"107:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33881,"name":"address","nodeType":"ElementaryTypeName","src":"107:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"106:19:91"},"returnParameters":{"id":33886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33885,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33887,"src":"144:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33884,"name":"address","nodeType":"ElementaryTypeName","src":"144:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"143:9:91"},"scope":33892,"src":"86:67:91","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":33891,"name":"BribeCreated","nameLocation":"163:12:91","nodeType":"EventDefinition","parameters":{"id":33890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33889,"indexed":false,"mutability":"mutable","name":"_bribe","nameLocation":"184:6:91","nodeType":"VariableDeclaration","scope":33891,"src":"176:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33888,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"175:16:91"},"src":"157:35:91"}],"scope":33893,"src":"58:136:91","usedErrors":[]}],"src":"33:162:91"},"id":91},"contracts/interfaces/IBribeV2.sol":{"ast":{"absolutePath":"contracts/interfaces/IBribeV2.sol","exportedSymbols":{"IBribeV2":[33971],"IRegistry":[35522]},"id":33972,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":33894,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:92"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":33896,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33972,"sourceUnit":35523,"src":"58:42:92","symbolAliases":[{"foreign":{"id":33895,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":33971,"linearizedBaseContracts":[33971],"name":"IBribeV2","nameLocation":"112:8:92","nodeType":"ContractDefinition","nodes":[{"functionSelector":"7b103999","id":33902,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"136:8:92","nodeType":"FunctionDefinition","parameters":{"id":33897,"nodeType":"ParameterList","parameters":[],"src":"144:2:92"},"returnParameters":{"id":33901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33902,"src":"170:9:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":33899,"nodeType":"UserDefinedTypeName","pathNode":{"id":33898,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"170:9:92"},"referencedDeclaration":35522,"src":"170:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"169:11:92"},"scope":33971,"src":"127:54:92","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b66503cf","id":33909,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"196:18:92","nodeType":"FunctionDefinition","parameters":{"id":33907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33904,"mutability":"mutable","name":"token","nameLocation":"223:5:92","nodeType":"VariableDeclaration","scope":33909,"src":"215:13:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33903,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33906,"mutability":"mutable","name":"amount","nameLocation":"238:6:92","nodeType":"VariableDeclaration","scope":33909,"src":"230:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33905,"name":"uint256","nodeType":"ElementaryTypeName","src":"230:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"214:31:92"},"returnParameters":{"id":33908,"nodeType":"ParameterList","parameters":[],"src":"254:0:92"},"scope":33971,"src":"187:68:92","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"99bcc052","id":33916,"implemented":false,"kind":"function","modifiers":[],"name":"left","nameLocation":"270:4:92","nodeType":"FunctionDefinition","parameters":{"id":33912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33911,"mutability":"mutable","name":"token","nameLocation":"283:5:92","nodeType":"VariableDeclaration","scope":33916,"src":"275:13:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33910,"name":"address","nodeType":"ElementaryTypeName","src":"275:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"274:15:92"},"returnParameters":{"id":33915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33916,"src":"313:7:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33913,"name":"uint256","nodeType":"ElementaryTypeName","src":"313:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"312:9:92"},"scope":33971,"src":"261:61:92","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"463cd970","id":33923,"implemented":false,"kind":"function","modifiers":[],"name":"_deposit","nameLocation":"337:8:92","nodeType":"FunctionDefinition","parameters":{"id":33921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33918,"mutability":"mutable","name":"amount","nameLocation":"354:6:92","nodeType":"VariableDeclaration","scope":33923,"src":"346:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33917,"name":"uint256","nodeType":"ElementaryTypeName","src":"346:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33920,"mutability":"mutable","name":"tokenId","nameLocation":"370:7:92","nodeType":"VariableDeclaration","scope":33923,"src":"362:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33919,"name":"address","nodeType":"ElementaryTypeName","src":"362:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"345:33:92"},"returnParameters":{"id":33922,"nodeType":"ParameterList","parameters":[],"src":"387:0:92"},"scope":33971,"src":"328:60:92","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"293311ab","id":33930,"implemented":false,"kind":"function","modifiers":[],"name":"_withdraw","nameLocation":"403:9:92","nodeType":"FunctionDefinition","parameters":{"id":33928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33925,"mutability":"mutable","name":"amount","nameLocation":"421:6:92","nodeType":"VariableDeclaration","scope":33930,"src":"413:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33924,"name":"uint256","nodeType":"ElementaryTypeName","src":"413:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33927,"mutability":"mutable","name":"tokenId","nameLocation":"437:7:92","nodeType":"VariableDeclaration","scope":33930,"src":"429:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33926,"name":"address","nodeType":"ElementaryTypeName","src":"429:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"412:33:92"},"returnParameters":{"id":33929,"nodeType":"ParameterList","parameters":[],"src":"454:0:92"},"scope":33971,"src":"394:61:92","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e943da8a","id":33938,"implemented":false,"kind":"function","modifiers":[],"name":"getRewardForOwner","nameLocation":"470:17:92","nodeType":"FunctionDefinition","parameters":{"id":33936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33932,"mutability":"mutable","name":"tokenId","nameLocation":"496:7:92","nodeType":"VariableDeclaration","scope":33938,"src":"488:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33931,"name":"address","nodeType":"ElementaryTypeName","src":"488:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33935,"mutability":"mutable","name":"tokens","nameLocation":"522:6:92","nodeType":"VariableDeclaration","scope":33938,"src":"505:23:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":33933,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33934,"nodeType":"ArrayTypeName","src":"505:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"487:42:92"},"returnParameters":{"id":33937,"nodeType":"ParameterList","parameters":[],"src":"546:0:92"},"scope":33971,"src":"461:86:92","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":33946,"name":"Deposit","nameLocation":"559:7:92","nodeType":"EventDefinition","parameters":{"id":33945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33940,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"583:4:92","nodeType":"VariableDeclaration","scope":33946,"src":"567:20:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33939,"name":"address","nodeType":"ElementaryTypeName","src":"567:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33942,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"597:7:92","nodeType":"VariableDeclaration","scope":33946,"src":"589:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33941,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33944,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"614:6:92","nodeType":"VariableDeclaration","scope":33946,"src":"606:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33943,"name":"uint256","nodeType":"ElementaryTypeName","src":"606:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"566:55:92"},"src":"553:69:92"},{"anonymous":false,"id":33954,"name":"Withdraw","nameLocation":"633:8:92","nodeType":"EventDefinition","parameters":{"id":33953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33948,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"658:4:92","nodeType":"VariableDeclaration","scope":33954,"src":"642:20:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33947,"name":"address","nodeType":"ElementaryTypeName","src":"642:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33950,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"672:7:92","nodeType":"VariableDeclaration","scope":33954,"src":"664:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33949,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33952,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"689:6:92","nodeType":"VariableDeclaration","scope":33954,"src":"681:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33951,"name":"uint256","nodeType":"ElementaryTypeName","src":"681:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"641:55:92"},"src":"627:70:92"},{"anonymous":false,"id":33962,"name":"NotifyReward","nameLocation":"708:12:92","nodeType":"EventDefinition","parameters":{"id":33961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33956,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"746:4:92","nodeType":"VariableDeclaration","scope":33962,"src":"730:20:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33955,"name":"address","nodeType":"ElementaryTypeName","src":"730:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33958,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"776:6:92","nodeType":"VariableDeclaration","scope":33962,"src":"760:22:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33957,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33960,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"800:6:92","nodeType":"VariableDeclaration","scope":33962,"src":"792:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33959,"name":"uint256","nodeType":"ElementaryTypeName","src":"792:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"720:92:92"},"src":"702:111:92"},{"anonymous":false,"id":33970,"name":"ClaimRewards","nameLocation":"824:12:92","nodeType":"EventDefinition","parameters":{"id":33969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33964,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"862:4:92","nodeType":"VariableDeclaration","scope":33970,"src":"846:20:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33963,"name":"address","nodeType":"ElementaryTypeName","src":"846:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33966,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"892:6:92","nodeType":"VariableDeclaration","scope":33970,"src":"876:22:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33965,"name":"address","nodeType":"ElementaryTypeName","src":"876:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33968,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"916:6:92","nodeType":"VariableDeclaration","scope":33970,"src":"908:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33967,"name":"uint256","nodeType":"ElementaryTypeName","src":"908:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"836:92:92"},"src":"818:111:92"}],"scope":33972,"src":"102:829:92","usedErrors":[]}],"src":"33:899:92"},"id":92},"contracts/interfaces/IEmissionController.sol":{"ast":{"absolutePath":"contracts/interfaces/IEmissionController.sol","exportedSymbols":{"IEmissionController":[33981],"IEpoch":[34019]},"id":33982,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":33973,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:93"},{"absolutePath":"contracts/interfaces/IEpoch.sol","file":"./IEpoch.sol","id":33975,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":33982,"sourceUnit":34020,"src":"58:36:93","symbolAliases":[{"foreign":{"id":33974,"name":"IEpoch","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:93","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":33976,"name":"IEpoch","nodeType":"IdentifierPath","referencedDeclaration":34019,"src":"129:6:93"},"id":33977,"nodeType":"InheritanceSpecifier","src":"129:6:93"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":33981,"linearizedBaseContracts":[33981,34019],"name":"IEmissionController","nameLocation":"106:19:93","nodeType":"ContractDefinition","nodes":[{"functionSelector":"161ad706","id":33980,"implemented":false,"kind":"function","modifiers":[],"name":"allocateEmission","nameLocation":"151:16:93","nodeType":"FunctionDefinition","parameters":{"id":33978,"nodeType":"ParameterList","parameters":[],"src":"167:2:93"},"returnParameters":{"id":33979,"nodeType":"ParameterList","parameters":[],"src":"178:0:93"},"scope":33981,"src":"142:37:93","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":33982,"src":"96:85:93","usedErrors":[]}],"src":"33:149:93"},"id":93},"contracts/interfaces/IEpoch.sol":{"ast":{"absolutePath":"contracts/interfaces/IEpoch.sol","exportedSymbols":{"IEpoch":[34019]},"id":34020,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":33983,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:94"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34019,"linearizedBaseContracts":[34019],"name":"IEpoch","nameLocation":"68:6:94","nodeType":"ContractDefinition","nodes":[{"functionSelector":"6a2ab602","id":33988,"implemented":false,"kind":"function","modifiers":[],"name":"callable","nameLocation":"88:8:94","nodeType":"FunctionDefinition","parameters":{"id":33984,"nodeType":"ParameterList","parameters":[],"src":"96:2:94"},"returnParameters":{"id":33987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33988,"src":"122:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33985,"name":"bool","nodeType":"ElementaryTypeName","src":"122:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"121:6:94"},"scope":34019,"src":"79:49:94","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"398bac63","id":33993,"implemented":false,"kind":"function","modifiers":[],"name":"getLastEpoch","nameLocation":"141:12:94","nodeType":"FunctionDefinition","parameters":{"id":33989,"nodeType":"ParameterList","parameters":[],"src":"153:2:94"},"returnParameters":{"id":33992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33993,"src":"179:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33990,"name":"uint256","nodeType":"ElementaryTypeName","src":"179:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"178:9:94"},"scope":34019,"src":"132:56:94","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b97dd9e2","id":33998,"implemented":false,"kind":"function","modifiers":[],"name":"getCurrentEpoch","nameLocation":"201:15:94","nodeType":"FunctionDefinition","parameters":{"id":33994,"nodeType":"ParameterList","parameters":[],"src":"216:2:94"},"returnParameters":{"id":33997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33998,"src":"242:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33995,"name":"uint256","nodeType":"ElementaryTypeName","src":"242:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"241:9:94"},"scope":34019,"src":"192:59:94","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"efe97d05","id":34003,"implemented":false,"kind":"function","modifiers":[],"name":"getNextEpoch","nameLocation":"264:12:94","nodeType":"FunctionDefinition","parameters":{"id":33999,"nodeType":"ParameterList","parameters":[],"src":"276:2:94"},"returnParameters":{"id":34002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34003,"src":"302:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34000,"name":"uint256","nodeType":"ElementaryTypeName","src":"302:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"301:9:94"},"scope":34019,"src":"255:56:94","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c5967c26","id":34008,"implemented":false,"kind":"function","modifiers":[],"name":"nextEpochPoint","nameLocation":"324:14:94","nodeType":"FunctionDefinition","parameters":{"id":34004,"nodeType":"ParameterList","parameters":[],"src":"338:2:94"},"returnParameters":{"id":34007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34008,"src":"364:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34005,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"363:9:94"},"scope":34019,"src":"315:58:94","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1ed24195","id":34013,"implemented":false,"kind":"function","modifiers":[],"name":"getPeriod","nameLocation":"386:9:94","nodeType":"FunctionDefinition","parameters":{"id":34009,"nodeType":"ParameterList","parameters":[],"src":"395:2:94"},"returnParameters":{"id":34012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34013,"src":"421:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34010,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"420:9:94"},"scope":34019,"src":"377:53:94","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c828371e","id":34018,"implemented":false,"kind":"function","modifiers":[],"name":"getStartTime","nameLocation":"443:12:94","nodeType":"FunctionDefinition","parameters":{"id":34014,"nodeType":"ParameterList","parameters":[],"src":"455:2:94"},"returnParameters":{"id":34017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34018,"src":"481:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34015,"name":"uint256","nodeType":"ElementaryTypeName","src":"481:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:9:94"},"scope":34019,"src":"434:56:94","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":34020,"src":"58:434:94","usedErrors":[]}],"src":"33:460:94"},"id":94},"contracts/interfaces/IFeeDistributor.sol":{"ast":{"absolutePath":"contracts/interfaces/IFeeDistributor.sol","exportedSymbols":{"IFeeDistributor":[34077]},"id":34078,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34021,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:95"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34077,"linearizedBaseContracts":[34077],"name":"IFeeDistributor","nameLocation":"68:15:95","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":34025,"name":"ToggleAllowCheckpointToken","nameLocation":"96:26:95","nodeType":"EventDefinition","parameters":{"id":34024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34023,"indexed":false,"mutability":"mutable","name":"toggleFlag","nameLocation":"128:10:95","nodeType":"VariableDeclaration","scope":34025,"src":"123:15:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34022,"name":"bool","nodeType":"ElementaryTypeName","src":"123:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"122:17:95"},"src":"90:50:95"},{"anonymous":false,"id":34031,"name":"CheckpointToken","nameLocation":"151:15:95","nodeType":"EventDefinition","parameters":{"id":34030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34027,"indexed":false,"mutability":"mutable","name":"time","nameLocation":"175:4:95","nodeType":"VariableDeclaration","scope":34031,"src":"167:12:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34026,"name":"uint256","nodeType":"ElementaryTypeName","src":"167:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34029,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"189:6:95","nodeType":"VariableDeclaration","scope":34031,"src":"181:14:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34028,"name":"uint256","nodeType":"ElementaryTypeName","src":"181:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"166:30:95"},"src":"145:52:95"},{"anonymous":false,"id":34041,"name":"Claimed","nameLocation":"208:7:95","nodeType":"EventDefinition","parameters":{"id":34040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34033,"indexed":false,"mutability":"mutable","name":"nftId","nameLocation":"233:5:95","nodeType":"VariableDeclaration","scope":34041,"src":"225:13:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34032,"name":"uint256","nodeType":"ElementaryTypeName","src":"225:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34035,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"256:6:95","nodeType":"VariableDeclaration","scope":34041,"src":"248:14:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34034,"name":"uint256","nodeType":"ElementaryTypeName","src":"248:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34037,"indexed":false,"mutability":"mutable","name":"claimEpoch","nameLocation":"280:10:95","nodeType":"VariableDeclaration","scope":34041,"src":"272:18:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34036,"name":"uint256","nodeType":"ElementaryTypeName","src":"272:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34039,"indexed":false,"mutability":"mutable","name":"maxEpoch","nameLocation":"308:8:95","nodeType":"VariableDeclaration","scope":34041,"src":"300:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34038,"name":"uint256","nodeType":"ElementaryTypeName","src":"300:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"215:107:95"},"src":"202:121:95"},{"functionSelector":"bee5dc32","id":34044,"implemented":false,"kind":"function","modifiers":[],"name":"checkpointToken","nameLocation":"338:15:95","nodeType":"FunctionDefinition","parameters":{"id":34042,"nodeType":"ParameterList","parameters":[],"src":"353:2:95"},"returnParameters":{"id":34043,"nodeType":"ParameterList","parameters":[],"src":"364:0:95"},"scope":34077,"src":"329:36:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"326a9407","id":34047,"implemented":false,"kind":"function","modifiers":[],"name":"checkpointTotalSupply","nameLocation":"380:21:95","nodeType":"FunctionDefinition","parameters":{"id":34045,"nodeType":"ParameterList","parameters":[],"src":"401:2:95"},"returnParameters":{"id":34046,"nodeType":"ParameterList","parameters":[],"src":"412:0:95"},"scope":34077,"src":"371:42:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"379607f5","id":34054,"implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"428:5:95","nodeType":"FunctionDefinition","parameters":{"id":34050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34049,"mutability":"mutable","name":"nftId","nameLocation":"442:5:95","nodeType":"VariableDeclaration","scope":34054,"src":"434:13:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34048,"name":"uint256","nodeType":"ElementaryTypeName","src":"434:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"433:15:95"},"returnParameters":{"id":34053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34054,"src":"467:7:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34051,"name":"uint256","nodeType":"ElementaryTypeName","src":"467:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"466:9:95"},"scope":34077,"src":"419:57:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"925489a8","id":34062,"implemented":false,"kind":"function","modifiers":[],"name":"claimMany","nameLocation":"491:9:95","nodeType":"FunctionDefinition","parameters":{"id":34058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34057,"mutability":"mutable","name":"nftIds","nameLocation":"518:6:95","nodeType":"VariableDeclaration","scope":34062,"src":"501:23:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":34055,"name":"uint256","nodeType":"ElementaryTypeName","src":"501:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34056,"nodeType":"ArrayTypeName","src":"501:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"500:25:95"},"returnParameters":{"id":34061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34060,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34062,"src":"544:4:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34059,"name":"bool","nodeType":"ElementaryTypeName","src":"544:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"543:6:95"},"scope":34077,"src":"482:68:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2971aa8e","id":34076,"implemented":false,"kind":"function","modifiers":[],"name":"claimWithPendingRewards","nameLocation":"565:23:95","nodeType":"FunctionDefinition","parameters":{"id":34072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34064,"mutability":"mutable","name":"id","nameLocation":"606:2:95","nodeType":"VariableDeclaration","scope":34076,"src":"598:10:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34063,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34066,"mutability":"mutable","name":"_who","nameLocation":"626:4:95","nodeType":"VariableDeclaration","scope":34076,"src":"618:12:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34065,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34068,"mutability":"mutable","name":"_reward","nameLocation":"648:7:95","nodeType":"VariableDeclaration","scope":34076,"src":"640:15:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34067,"name":"uint256","nodeType":"ElementaryTypeName","src":"640:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34071,"mutability":"mutable","name":"_proof","nameLocation":"682:6:95","nodeType":"VariableDeclaration","scope":34076,"src":"665:23:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":34069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"665:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":34070,"nodeType":"ArrayTypeName","src":"665:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"588:106:95"},"returnParameters":{"id":34075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34076,"src":"713:7:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34073,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"712:9:95"},"scope":34077,"src":"556:166:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":34078,"src":"58:666:95","usedErrors":[]}],"src":"33:692:95"},"id":95},"contracts/interfaces/IGauge.sol":{"ast":{"absolutePath":"contracts/interfaces/IGauge.sol","exportedSymbols":{"IGauge":[34110],"IRegistry":[35522]},"id":34111,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34079,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:96"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":34081,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34111,"sourceUnit":35523,"src":"58:42:96","symbolAliases":[{"foreign":{"id":34080,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:96","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34110,"linearizedBaseContracts":[34110],"name":"IGauge","nameLocation":"112:6:96","nodeType":"ContractDefinition","nodes":[{"functionSelector":"b66503cf","id":34088,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"134:18:96","nodeType":"FunctionDefinition","parameters":{"id":34086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34083,"mutability":"mutable","name":"token","nameLocation":"161:5:96","nodeType":"VariableDeclaration","scope":34088,"src":"153:13:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34082,"name":"address","nodeType":"ElementaryTypeName","src":"153:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34085,"mutability":"mutable","name":"amount","nameLocation":"176:6:96","nodeType":"VariableDeclaration","scope":34088,"src":"168:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34084,"name":"uint256","nodeType":"ElementaryTypeName","src":"168:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"152:31:96"},"returnParameters":{"id":34087,"nodeType":"ParameterList","parameters":[],"src":"192:0:96"},"scope":34110,"src":"125:68:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"31279d3d","id":34096,"implemented":false,"kind":"function","modifiers":[],"name":"getReward","nameLocation":"208:9:96","nodeType":"FunctionDefinition","parameters":{"id":34094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34090,"mutability":"mutable","name":"account","nameLocation":"226:7:96","nodeType":"VariableDeclaration","scope":34096,"src":"218:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34089,"name":"address","nodeType":"ElementaryTypeName","src":"218:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34093,"mutability":"mutable","name":"tokens","nameLocation":"252:6:96","nodeType":"VariableDeclaration","scope":34096,"src":"235:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":34091,"name":"address","nodeType":"ElementaryTypeName","src":"235:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":34092,"nodeType":"ArrayTypeName","src":"235:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"217:42:96"},"returnParameters":{"id":34095,"nodeType":"ParameterList","parameters":[],"src":"268:0:96"},"scope":34110,"src":"199:70:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7b103999","id":34102,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"284:8:96","nodeType":"FunctionDefinition","parameters":{"id":34097,"nodeType":"ParameterList","parameters":[],"src":"292:2:96"},"returnParameters":{"id":34101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34102,"src":"318:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":34099,"nodeType":"UserDefinedTypeName","pathNode":{"id":34098,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"318:9:96"},"referencedDeclaration":35522,"src":"318:9:96","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"317:11:96"},"scope":34110,"src":"275:54:96","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"99bcc052","id":34109,"implemented":false,"kind":"function","modifiers":[],"name":"left","nameLocation":"344:4:96","nodeType":"FunctionDefinition","parameters":{"id":34105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34104,"mutability":"mutable","name":"token","nameLocation":"357:5:96","nodeType":"VariableDeclaration","scope":34109,"src":"349:13:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34103,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:15:96"},"returnParameters":{"id":34108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34109,"src":"387:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34106,"name":"uint256","nodeType":"ElementaryTypeName","src":"387:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"386:9:96"},"scope":34110,"src":"335:61:96","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":34111,"src":"102:296:96","usedErrors":[]}],"src":"33:366:96"},"id":96},"contracts/interfaces/IGaugeFactory.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeFactory.sol","exportedSymbols":{"IGaugeFactory":[34132]},"id":34133,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34112,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:97"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34132,"linearizedBaseContracts":[34132],"name":"IGaugeFactory","nameLocation":"68:13:97","nodeType":"ContractDefinition","nodes":[{"functionSelector":"1c48e0fa","id":34123,"implemented":false,"kind":"function","modifiers":[],"name":"createGauge","nameLocation":"95:11:97","nodeType":"FunctionDefinition","parameters":{"id":34119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34114,"mutability":"mutable","name":"_registry","nameLocation":"120:9:97","nodeType":"VariableDeclaration","scope":34123,"src":"112:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34113,"name":"address","nodeType":"ElementaryTypeName","src":"112:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34116,"mutability":"mutable","name":"_pool","nameLocation":"143:5:97","nodeType":"VariableDeclaration","scope":34123,"src":"135:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34115,"name":"address","nodeType":"ElementaryTypeName","src":"135:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34118,"mutability":"mutable","name":"_bribe","nameLocation":"162:6:97","nodeType":"VariableDeclaration","scope":34123,"src":"154:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34117,"name":"address","nodeType":"ElementaryTypeName","src":"154:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"106:66:97"},"returnParameters":{"id":34122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34123,"src":"191:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34120,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"190:9:97"},"scope":34132,"src":"86:114:97","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":34131,"name":"GaugeCreated","nameLocation":"210:12:97","nodeType":"EventDefinition","parameters":{"id":34130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34125,"indexed":false,"mutability":"mutable","name":"_gauge","nameLocation":"231:6:97","nodeType":"VariableDeclaration","scope":34131,"src":"223:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34124,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34127,"indexed":false,"mutability":"mutable","name":"_pool","nameLocation":"247:5:97","nodeType":"VariableDeclaration","scope":34131,"src":"239:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34126,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34129,"indexed":false,"mutability":"mutable","name":"_bribe","nameLocation":"262:6:97","nodeType":"VariableDeclaration","scope":34131,"src":"254:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34128,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"222:47:97"},"src":"204:66:97"}],"scope":34133,"src":"58:214:97","usedErrors":[]}],"src":"33:240:97"},"id":97},"contracts/interfaces/IGaugeV1.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeV1.sol","exportedSymbols":{"IGauge":[34110],"IGaugeV1":[34194]},"id":34195,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34134,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:98"},{"absolutePath":"contracts/interfaces/IGauge.sol","file":"./IGauge.sol","id":34136,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34195,"sourceUnit":34111,"src":"58:36:98","symbolAliases":[{"foreign":{"id":34135,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":34137,"name":"IGauge","nodeType":"IdentifierPath","referencedDeclaration":34110,"src":"118:6:98"},"id":34138,"nodeType":"InheritanceSpecifier","src":"118:6:98"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34194,"linearizedBaseContracts":[34194,34110],"name":"IGaugeV1","nameLocation":"106:8:98","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IGaugeV1.Checkpoint","id":34143,"members":[{"constant":false,"id":34140,"mutability":"mutable","name":"timestamp","nameLocation":"216:9:98","nodeType":"VariableDeclaration","scope":34143,"src":"208:17:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34139,"name":"uint256","nodeType":"ElementaryTypeName","src":"208:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34142,"mutability":"mutable","name":"balanceOf","nameLocation":"243:9:98","nodeType":"VariableDeclaration","scope":34143,"src":"235:17:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34141,"name":"uint256","nodeType":"ElementaryTypeName","src":"235:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"187:10:98","nodeType":"StructDefinition","scope":34194,"src":"180:79:98","visibility":"public"},{"canonicalName":"IGaugeV1.RewardPerTokenCheckpoint","id":34148,"members":[{"constant":false,"id":34145,"mutability":"mutable","name":"timestamp","nameLocation":"368:9:98","nodeType":"VariableDeclaration","scope":34148,"src":"360:17:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34144,"name":"uint256","nodeType":"ElementaryTypeName","src":"360:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34147,"mutability":"mutable","name":"rewardPerToken","nameLocation":"395:14:98","nodeType":"VariableDeclaration","scope":34148,"src":"387:22:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34146,"name":"uint256","nodeType":"ElementaryTypeName","src":"387:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardPerTokenCheckpoint","nameLocation":"325:24:98","nodeType":"StructDefinition","scope":34194,"src":"318:98:98","visibility":"public"},{"canonicalName":"IGaugeV1.SupplyCheckpoint","id":34153,"members":[{"constant":false,"id":34150,"mutability":"mutable","name":"timestamp","nameLocation":"512:9:98","nodeType":"VariableDeclaration","scope":34153,"src":"504:17:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34149,"name":"uint256","nodeType":"ElementaryTypeName","src":"504:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34152,"mutability":"mutable","name":"supply","nameLocation":"539:6:98","nodeType":"VariableDeclaration","scope":34153,"src":"531:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34151,"name":"uint256","nodeType":"ElementaryTypeName","src":"531:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SupplyCheckpoint","nameLocation":"477:16:98","nodeType":"StructDefinition","scope":34194,"src":"470:82:98","visibility":"public"},{"anonymous":false,"id":34161,"name":"Deposit","nameLocation":"564:7:98","nodeType":"EventDefinition","parameters":{"id":34160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34155,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"588:4:98","nodeType":"VariableDeclaration","scope":34161,"src":"572:20:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34154,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34157,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"602:7:98","nodeType":"VariableDeclaration","scope":34161,"src":"594:15:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34156,"name":"uint256","nodeType":"ElementaryTypeName","src":"594:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34159,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"619:6:98","nodeType":"VariableDeclaration","scope":34161,"src":"611:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34158,"name":"uint256","nodeType":"ElementaryTypeName","src":"611:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"571:55:98"},"src":"558:69:98"},{"anonymous":false,"id":34169,"name":"Withdraw","nameLocation":"638:8:98","nodeType":"EventDefinition","parameters":{"id":34168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34163,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"663:4:98","nodeType":"VariableDeclaration","scope":34169,"src":"647:20:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34162,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34165,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"677:7:98","nodeType":"VariableDeclaration","scope":34169,"src":"669:15:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34164,"name":"uint256","nodeType":"ElementaryTypeName","src":"669:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34167,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"694:6:98","nodeType":"VariableDeclaration","scope":34169,"src":"686:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34166,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:55:98"},"src":"632:70:98"},{"anonymous":false,"id":34177,"name":"NotifyReward","nameLocation":"713:12:98","nodeType":"EventDefinition","parameters":{"id":34176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34171,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"751:4:98","nodeType":"VariableDeclaration","scope":34177,"src":"735:20:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34170,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34173,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"781:6:98","nodeType":"VariableDeclaration","scope":34177,"src":"765:22:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34172,"name":"address","nodeType":"ElementaryTypeName","src":"765:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34175,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"805:6:98","nodeType":"VariableDeclaration","scope":34177,"src":"797:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34174,"name":"uint256","nodeType":"ElementaryTypeName","src":"797:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"725:92:98"},"src":"707:111:98"},{"anonymous":false,"id":34185,"name":"ClaimFees","nameLocation":"829:9:98","nodeType":"EventDefinition","parameters":{"id":34184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34179,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"855:4:98","nodeType":"VariableDeclaration","scope":34185,"src":"839:20:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34178,"name":"address","nodeType":"ElementaryTypeName","src":"839:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34181,"indexed":false,"mutability":"mutable","name":"claimed0","nameLocation":"869:8:98","nodeType":"VariableDeclaration","scope":34185,"src":"861:16:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34180,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34183,"indexed":false,"mutability":"mutable","name":"claimed1","nameLocation":"887:8:98","nodeType":"VariableDeclaration","scope":34185,"src":"879:16:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34182,"name":"uint256","nodeType":"ElementaryTypeName","src":"879:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"838:58:98"},"src":"823:74:98"},{"anonymous":false,"id":34193,"name":"ClaimRewards","nameLocation":"908:12:98","nodeType":"EventDefinition","parameters":{"id":34192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34187,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"946:4:98","nodeType":"VariableDeclaration","scope":34193,"src":"930:20:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34186,"name":"address","nodeType":"ElementaryTypeName","src":"930:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34189,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"976:6:98","nodeType":"VariableDeclaration","scope":34193,"src":"960:22:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34188,"name":"address","nodeType":"ElementaryTypeName","src":"960:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34191,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1000:6:98","nodeType":"VariableDeclaration","scope":34193,"src":"992:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34190,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"920:92:98"},"src":"902:111:98"}],"scope":34195,"src":"96:919:98","usedErrors":[]}],"src":"33:983:98"},"id":98},"contracts/interfaces/IGaugeV2.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeV2.sol","exportedSymbols":{"IGauge":[34110],"IGaugeV2":[34258]},"id":34259,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34196,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:99"},{"absolutePath":"contracts/interfaces/IGauge.sol","file":"./IGauge.sol","id":34198,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34259,"sourceUnit":34111,"src":"58:36:99","symbolAliases":[{"foreign":{"id":34197,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:99","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":34199,"name":"IGauge","nodeType":"IdentifierPath","referencedDeclaration":34110,"src":"118:6:99"},"id":34200,"nodeType":"InheritanceSpecifier","src":"118:6:99"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34258,"linearizedBaseContracts":[34258,34110],"name":"IGaugeV2","nameLocation":"106:8:99","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IGaugeV2.Checkpoint","id":34205,"members":[{"constant":false,"id":34202,"mutability":"mutable","name":"timestamp","nameLocation":"216:9:99","nodeType":"VariableDeclaration","scope":34205,"src":"208:17:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34201,"name":"uint256","nodeType":"ElementaryTypeName","src":"208:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34204,"mutability":"mutable","name":"balanceOf","nameLocation":"243:9:99","nodeType":"VariableDeclaration","scope":34205,"src":"235:17:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34203,"name":"uint256","nodeType":"ElementaryTypeName","src":"235:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"187:10:99","nodeType":"StructDefinition","scope":34258,"src":"180:79:99","visibility":"public"},{"canonicalName":"IGaugeV2.RewardPerTokenCheckpoint","id":34210,"members":[{"constant":false,"id":34207,"mutability":"mutable","name":"timestamp","nameLocation":"368:9:99","nodeType":"VariableDeclaration","scope":34210,"src":"360:17:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34206,"name":"uint256","nodeType":"ElementaryTypeName","src":"360:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34209,"mutability":"mutable","name":"rewardPerToken","nameLocation":"395:14:99","nodeType":"VariableDeclaration","scope":34210,"src":"387:22:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34208,"name":"uint256","nodeType":"ElementaryTypeName","src":"387:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardPerTokenCheckpoint","nameLocation":"325:24:99","nodeType":"StructDefinition","scope":34258,"src":"318:98:99","visibility":"public"},{"canonicalName":"IGaugeV2.SupplyCheckpoint","id":34215,"members":[{"constant":false,"id":34212,"mutability":"mutable","name":"timestamp","nameLocation":"512:9:99","nodeType":"VariableDeclaration","scope":34215,"src":"504:17:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34211,"name":"uint256","nodeType":"ElementaryTypeName","src":"504:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34214,"mutability":"mutable","name":"supply","nameLocation":"539:6:99","nodeType":"VariableDeclaration","scope":34215,"src":"531:14:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34213,"name":"uint256","nodeType":"ElementaryTypeName","src":"531:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SupplyCheckpoint","nameLocation":"477:16:99","nodeType":"StructDefinition","scope":34258,"src":"470:82:99","visibility":"public"},{"anonymous":false,"id":34221,"name":"Deposit","nameLocation":"564:7:99","nodeType":"EventDefinition","parameters":{"id":34220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34217,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"588:4:99","nodeType":"VariableDeclaration","scope":34221,"src":"572:20:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34216,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34219,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"602:6:99","nodeType":"VariableDeclaration","scope":34221,"src":"594:14:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34218,"name":"uint256","nodeType":"ElementaryTypeName","src":"594:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"571:38:99"},"src":"558:52:99"},{"anonymous":false,"id":34227,"name":"Withdraw","nameLocation":"621:8:99","nodeType":"EventDefinition","parameters":{"id":34226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34223,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"646:4:99","nodeType":"VariableDeclaration","scope":34227,"src":"630:20:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34222,"name":"address","nodeType":"ElementaryTypeName","src":"630:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34225,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"660:6:99","nodeType":"VariableDeclaration","scope":34227,"src":"652:14:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34224,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"629:38:99"},"src":"615:53:99"},{"anonymous":false,"id":34235,"name":"NotifyReward","nameLocation":"679:12:99","nodeType":"EventDefinition","parameters":{"id":34234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34229,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"717:4:99","nodeType":"VariableDeclaration","scope":34235,"src":"701:20:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34228,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34231,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"747:6:99","nodeType":"VariableDeclaration","scope":34235,"src":"731:22:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34230,"name":"address","nodeType":"ElementaryTypeName","src":"731:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34233,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"771:6:99","nodeType":"VariableDeclaration","scope":34235,"src":"763:14:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34232,"name":"uint256","nodeType":"ElementaryTypeName","src":"763:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"691:92:99"},"src":"673:111:99"},{"anonymous":false,"id":34243,"name":"ClaimFees","nameLocation":"795:9:99","nodeType":"EventDefinition","parameters":{"id":34242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34237,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"821:4:99","nodeType":"VariableDeclaration","scope":34243,"src":"805:20:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34236,"name":"address","nodeType":"ElementaryTypeName","src":"805:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34239,"indexed":false,"mutability":"mutable","name":"claimed0","nameLocation":"835:8:99","nodeType":"VariableDeclaration","scope":34243,"src":"827:16:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34238,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34241,"indexed":false,"mutability":"mutable","name":"claimed1","nameLocation":"853:8:99","nodeType":"VariableDeclaration","scope":34243,"src":"845:16:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34240,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"804:58:99"},"src":"789:74:99"},{"anonymous":false,"id":34251,"name":"ClaimRewards","nameLocation":"874:12:99","nodeType":"EventDefinition","parameters":{"id":34250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34245,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"912:4:99","nodeType":"VariableDeclaration","scope":34251,"src":"896:20:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34244,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34247,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"942:6:99","nodeType":"VariableDeclaration","scope":34251,"src":"926:22:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34246,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34249,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"966:6:99","nodeType":"VariableDeclaration","scope":34251,"src":"958:14:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34248,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"886:92:99"},"src":"868:111:99"},{"anonymous":false,"id":34257,"name":"MaxBoostRequirementChanged","nameLocation":"990:26:99","nodeType":"EventDefinition","parameters":{"id":34256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34253,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"1025:4:99","nodeType":"VariableDeclaration","scope":34257,"src":"1017:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34252,"name":"uint256","nodeType":"ElementaryTypeName","src":"1017:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34255,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"1039:4:99","nodeType":"VariableDeclaration","scope":34257,"src":"1031:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34254,"name":"uint256","nodeType":"ElementaryTypeName","src":"1031:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1016:28:99"},"src":"984:61:99"}],"scope":34259,"src":"96:951:99","usedErrors":[]}],"src":"33:1015:99"},"id":99},"contracts/interfaces/IGaugeV2UniV3.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeV2UniV3.sol","exportedSymbols":{"IGaugeV2UniV3":[34269],"IRegistry":[35522]},"id":34270,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34260,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:100"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":34262,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34270,"sourceUnit":35523,"src":"58:42:100","symbolAliases":[{"foreign":{"id":34261,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:100","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34269,"linearizedBaseContracts":[34269],"name":"IGaugeV2UniV3","nameLocation":"112:13:100","nodeType":"ContractDefinition","nodes":[{"functionSelector":"7b103999","id":34268,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"141:8:100","nodeType":"FunctionDefinition","parameters":{"id":34263,"nodeType":"ParameterList","parameters":[],"src":"149:2:100"},"returnParameters":{"id":34267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34268,"src":"175:9:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":34265,"nodeType":"UserDefinedTypeName","pathNode":{"id":34264,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"175:9:100"},"referencedDeclaration":35522,"src":"175:9:100","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"174:11:100"},"scope":34269,"src":"132:54:100","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":34270,"src":"102:86:100","usedErrors":[]}],"src":"33:156:100"},"id":100},"contracts/interfaces/IGaugeV2UniV3Factory.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeV2UniV3Factory.sol","exportedSymbols":{"IGaugeV2UniV3Factory":[34319],"INonfungiblePositionManager":[35221],"IUniswapV3Factory":[13539]},"id":34320,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34271,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:101"},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","id":34273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34320,"sourceUnit":13540,"src":"58:94:101","symbolAliases":[{"foreign":{"id":34272,"name":"IUniswapV3Factory","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:17:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INonfungiblePositionManager.sol","file":"../interfaces/INonfungiblePositionManager.sol","id":34275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34320,"sourceUnit":35222,"src":"154:90:101","symbolAliases":[{"foreign":{"id":34274,"name":"INonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"src":"162:27:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34319,"linearizedBaseContracts":[34319],"name":"IGaugeV2UniV3Factory","nameLocation":"256:20:101","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3d54ff8b","id":34298,"implemented":false,"kind":"function","modifiers":[],"name":"createGauge","nameLocation":"292:11:101","nodeType":"FunctionDefinition","parameters":{"id":34294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34277,"mutability":"mutable","name":"_pool","nameLocation":"321:5:101","nodeType":"VariableDeclaration","scope":34298,"src":"313:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34276,"name":"address","nodeType":"ElementaryTypeName","src":"313:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34279,"mutability":"mutable","name":"_bribe","nameLocation":"344:6:101","nodeType":"VariableDeclaration","scope":34298,"src":"336:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34278,"name":"address","nodeType":"ElementaryTypeName","src":"336:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34281,"mutability":"mutable","name":"_registry","nameLocation":"368:9:101","nodeType":"VariableDeclaration","scope":34298,"src":"360:17:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34280,"name":"address","nodeType":"ElementaryTypeName","src":"360:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34283,"mutability":"mutable","name":"_refundee","nameLocation":"395:9:101","nodeType":"VariableDeclaration","scope":34298,"src":"387:17:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34282,"name":"address","nodeType":"ElementaryTypeName","src":"387:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34286,"mutability":"mutable","name":"_uniswapV3factory","nameLocation":"432:17:101","nodeType":"VariableDeclaration","scope":34298,"src":"414:35:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},"typeName":{"id":34285,"nodeType":"UserDefinedTypeName","pathNode":{"id":34284,"name":"IUniswapV3Factory","nodeType":"IdentifierPath","referencedDeclaration":13539,"src":"414:17:101"},"referencedDeclaration":13539,"src":"414:17:101","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"visibility":"internal"},{"constant":false,"id":34289,"mutability":"mutable","name":"_nonfungiblePositionManager","nameLocation":"487:27:101","nodeType":"VariableDeclaration","scope":34298,"src":"459:55:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},"typeName":{"id":34288,"nodeType":"UserDefinedTypeName","pathNode":{"id":34287,"name":"INonfungiblePositionManager","nodeType":"IdentifierPath","referencedDeclaration":35221,"src":"459:27:101"},"referencedDeclaration":35221,"src":"459:27:101","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"visibility":"internal"},{"constant":false,"id":34291,"mutability":"mutable","name":"_maxIncentiveStartLeadTime","nameLocation":"532:26:101","nodeType":"VariableDeclaration","scope":34298,"src":"524:34:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34290,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34293,"mutability":"mutable","name":"_maxIncentiveDuration","nameLocation":"576:21:101","nodeType":"VariableDeclaration","scope":34298,"src":"568:29:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34292,"name":"uint256","nodeType":"ElementaryTypeName","src":"568:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"303:300:101"},"returnParameters":{"id":34297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34298,"src":"622:7:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34295,"name":"address","nodeType":"ElementaryTypeName","src":"622:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"621:9:101"},"scope":34319,"src":"283:348:101","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":34318,"name":"GaugeCreated","nameLocation":"643:12:101","nodeType":"EventDefinition","parameters":{"id":34317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34300,"indexed":false,"mutability":"mutable","name":"_gauge","nameLocation":"673:6:101","nodeType":"VariableDeclaration","scope":34318,"src":"665:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34299,"name":"address","nodeType":"ElementaryTypeName","src":"665:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34302,"indexed":false,"mutability":"mutable","name":"_pool","nameLocation":"697:5:101","nodeType":"VariableDeclaration","scope":34318,"src":"689:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34301,"name":"address","nodeType":"ElementaryTypeName","src":"689:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34304,"indexed":false,"mutability":"mutable","name":"_bribe","nameLocation":"720:6:101","nodeType":"VariableDeclaration","scope":34318,"src":"712:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34303,"name":"address","nodeType":"ElementaryTypeName","src":"712:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34306,"indexed":false,"mutability":"mutable","name":"_registry","nameLocation":"744:9:101","nodeType":"VariableDeclaration","scope":34318,"src":"736:17:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34305,"name":"address","nodeType":"ElementaryTypeName","src":"736:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34308,"indexed":false,"mutability":"mutable","name":"_refundee","nameLocation":"771:9:101","nodeType":"VariableDeclaration","scope":34318,"src":"763:17:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34307,"name":"address","nodeType":"ElementaryTypeName","src":"763:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34310,"indexed":false,"mutability":"mutable","name":"_uniswapV3factory","nameLocation":"798:17:101","nodeType":"VariableDeclaration","scope":34318,"src":"790:25:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34309,"name":"address","nodeType":"ElementaryTypeName","src":"790:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34312,"indexed":false,"mutability":"mutable","name":"_nonfungiblePositionManager","nameLocation":"833:27:101","nodeType":"VariableDeclaration","scope":34318,"src":"825:35:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34311,"name":"address","nodeType":"ElementaryTypeName","src":"825:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34314,"indexed":false,"mutability":"mutable","name":"_maxIncentiveStartLeadTime","nameLocation":"878:26:101","nodeType":"VariableDeclaration","scope":34318,"src":"870:34:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34313,"name":"uint256","nodeType":"ElementaryTypeName","src":"870:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34316,"indexed":false,"mutability":"mutable","name":"_maxIncentiveDuration","nameLocation":"922:21:101","nodeType":"VariableDeclaration","scope":34318,"src":"914:29:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34315,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"655:294:101"},"src":"637:313:101"}],"scope":34320,"src":"246:706:101","usedErrors":[]}],"src":"33:920:101"},"id":101},"contracts/interfaces/IGaugeVoter.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeVoter.sol","exportedSymbols":{"IGaugeVoter":[34456],"IRegistry":[35522]},"id":34457,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34321,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:102"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":34323,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34457,"sourceUnit":35523,"src":"58:42:102","symbolAliases":[{"foreign":{"id":34322,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34456,"linearizedBaseContracts":[34456],"name":"IGaugeVoter","nameLocation":"112:11:102","nodeType":"ContractDefinition","nodes":[{"functionSelector":"698473e3","id":34330,"implemented":false,"kind":"function","modifiers":[],"name":"attachTokenToGauge","nameLocation":"139:18:102","nodeType":"FunctionDefinition","parameters":{"id":34328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34325,"mutability":"mutable","name":"_tokenId","nameLocation":"166:8:102","nodeType":"VariableDeclaration","scope":34330,"src":"158:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34324,"name":"uint256","nodeType":"ElementaryTypeName","src":"158:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34327,"mutability":"mutable","name":"account","nameLocation":"184:7:102","nodeType":"VariableDeclaration","scope":34330,"src":"176:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34326,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"157:35:102"},"returnParameters":{"id":34329,"nodeType":"ParameterList","parameters":[],"src":"201:0:102"},"scope":34456,"src":"130:72:102","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"411b1f77","id":34337,"implemented":false,"kind":"function","modifiers":[],"name":"detachTokenFromGauge","nameLocation":"217:20:102","nodeType":"FunctionDefinition","parameters":{"id":34335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34332,"mutability":"mutable","name":"_tokenId","nameLocation":"246:8:102","nodeType":"VariableDeclaration","scope":34337,"src":"238:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34331,"name":"uint256","nodeType":"ElementaryTypeName","src":"238:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34334,"mutability":"mutable","name":"account","nameLocation":"264:7:102","nodeType":"VariableDeclaration","scope":34337,"src":"256:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34333,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"237:35:102"},"returnParameters":{"id":34336,"nodeType":"ParameterList","parameters":[],"src":"281:0:102"},"scope":34456,"src":"208:74:102","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a61c713a","id":34346,"implemented":false,"kind":"function","modifiers":[],"name":"emitDeposit","nameLocation":"297:11:102","nodeType":"FunctionDefinition","parameters":{"id":34344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34339,"mutability":"mutable","name":"_tokenId","nameLocation":"326:8:102","nodeType":"VariableDeclaration","scope":34346,"src":"318:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34338,"name":"uint256","nodeType":"ElementaryTypeName","src":"318:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34341,"mutability":"mutable","name":"account","nameLocation":"352:7:102","nodeType":"VariableDeclaration","scope":34346,"src":"344:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34340,"name":"address","nodeType":"ElementaryTypeName","src":"344:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34343,"mutability":"mutable","name":"amount","nameLocation":"377:6:102","nodeType":"VariableDeclaration","scope":34346,"src":"369:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34342,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"308:81:102"},"returnParameters":{"id":34345,"nodeType":"ParameterList","parameters":[],"src":"398:0:102"},"scope":34456,"src":"288:111:102","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ea94ee44","id":34355,"implemented":false,"kind":"function","modifiers":[],"name":"emitWithdraw","nameLocation":"414:12:102","nodeType":"FunctionDefinition","parameters":{"id":34353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34348,"mutability":"mutable","name":"_tokenId","nameLocation":"444:8:102","nodeType":"VariableDeclaration","scope":34355,"src":"436:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34347,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34350,"mutability":"mutable","name":"account","nameLocation":"470:7:102","nodeType":"VariableDeclaration","scope":34355,"src":"462:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34349,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34352,"mutability":"mutable","name":"amount","nameLocation":"495:6:102","nodeType":"VariableDeclaration","scope":34355,"src":"487:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34351,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"426:81:102"},"returnParameters":{"id":34354,"nodeType":"ParameterList","parameters":[],"src":"516:0:102"},"scope":34456,"src":"405:112:102","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"63453ae1","id":34360,"implemented":false,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"532:10:102","nodeType":"FunctionDefinition","parameters":{"id":34358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34357,"mutability":"mutable","name":"_gauge","nameLocation":"551:6:102","nodeType":"VariableDeclaration","scope":34360,"src":"543:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34356,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"542:16:102"},"returnParameters":{"id":34359,"nodeType":"ParameterList","parameters":[],"src":"567:0:102"},"scope":34456,"src":"523:45:102","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7b103999","id":34366,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"583:8:102","nodeType":"FunctionDefinition","parameters":{"id":34361,"nodeType":"ParameterList","parameters":[],"src":"591:2:102"},"returnParameters":{"id":34365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34366,"src":"617:9:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":34363,"nodeType":"UserDefinedTypeName","pathNode":{"id":34362,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"617:9:102"},"referencedDeclaration":35522,"src":"617:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"616:11:102"},"scope":34456,"src":"574:54:102","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3c6b16ab","id":34371,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"643:18:102","nodeType":"FunctionDefinition","parameters":{"id":34369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34368,"mutability":"mutable","name":"amount","nameLocation":"670:6:102","nodeType":"VariableDeclaration","scope":34371,"src":"662:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34367,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"661:16:102"},"returnParameters":{"id":34370,"nodeType":"ParameterList","parameters":[],"src":"686:0:102"},"scope":34456,"src":"634:53:102","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":34381,"name":"GaugeCreated","nameLocation":"699:12:102","nodeType":"EventDefinition","parameters":{"id":34380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34373,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"737:5:102","nodeType":"VariableDeclaration","scope":34381,"src":"721:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34372,"name":"address","nodeType":"ElementaryTypeName","src":"721:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34375,"indexed":false,"mutability":"mutable","name":"creator","nameLocation":"760:7:102","nodeType":"VariableDeclaration","scope":34381,"src":"752:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34374,"name":"address","nodeType":"ElementaryTypeName","src":"752:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34377,"indexed":true,"mutability":"mutable","name":"bribe","nameLocation":"793:5:102","nodeType":"VariableDeclaration","scope":34381,"src":"777:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34376,"name":"address","nodeType":"ElementaryTypeName","src":"777:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34379,"indexed":true,"mutability":"mutable","name":"pool","nameLocation":"824:4:102","nodeType":"VariableDeclaration","scope":34381,"src":"808:20:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34378,"name":"address","nodeType":"ElementaryTypeName","src":"808:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"711:123:102"},"src":"693:142:102"},{"anonymous":false,"id":34389,"name":"Voted","nameLocation":"846:5:102","nodeType":"EventDefinition","parameters":{"id":34388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34383,"indexed":true,"mutability":"mutable","name":"voter","nameLocation":"868:5:102","nodeType":"VariableDeclaration","scope":34389,"src":"852:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34382,"name":"address","nodeType":"ElementaryTypeName","src":"852:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34385,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"883:7:102","nodeType":"VariableDeclaration","scope":34389,"src":"875:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34384,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34387,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"899:6:102","nodeType":"VariableDeclaration","scope":34389,"src":"892:13:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34386,"name":"int256","nodeType":"ElementaryTypeName","src":"892:6:102","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"851:55:102"},"src":"840:67:102"},{"anonymous":false,"id":34395,"name":"Abstained","nameLocation":"918:9:102","nodeType":"EventDefinition","parameters":{"id":34394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34391,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"936:7:102","nodeType":"VariableDeclaration","scope":34395,"src":"928:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34390,"name":"uint256","nodeType":"ElementaryTypeName","src":"928:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34393,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"952:6:102","nodeType":"VariableDeclaration","scope":34395,"src":"945:13:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34392,"name":"int256","nodeType":"ElementaryTypeName","src":"945:6:102","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"927:32:102"},"src":"912:48:102"},{"anonymous":false,"id":34405,"name":"Deposit","nameLocation":"971:7:102","nodeType":"EventDefinition","parameters":{"id":34404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34397,"indexed":true,"mutability":"mutable","name":"lp","nameLocation":"1004:2:102","nodeType":"VariableDeclaration","scope":34405,"src":"988:18:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34396,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34399,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1032:5:102","nodeType":"VariableDeclaration","scope":34405,"src":"1016:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34398,"name":"address","nodeType":"ElementaryTypeName","src":"1016:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34401,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1055:7:102","nodeType":"VariableDeclaration","scope":34405,"src":"1047:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34400,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34403,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1080:6:102","nodeType":"VariableDeclaration","scope":34405,"src":"1072:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34402,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"978:114:102"},"src":"965:128:102"},{"anonymous":false,"id":34415,"name":"Withdraw","nameLocation":"1104:8:102","nodeType":"EventDefinition","parameters":{"id":34414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34407,"indexed":true,"mutability":"mutable","name":"lp","nameLocation":"1138:2:102","nodeType":"VariableDeclaration","scope":34415,"src":"1122:18:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34406,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34409,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1166:5:102","nodeType":"VariableDeclaration","scope":34415,"src":"1150:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34408,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34411,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1189:7:102","nodeType":"VariableDeclaration","scope":34415,"src":"1181:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34410,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34413,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1214:6:102","nodeType":"VariableDeclaration","scope":34415,"src":"1206:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34412,"name":"uint256","nodeType":"ElementaryTypeName","src":"1206:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1112:114:102"},"src":"1098:129:102"},{"anonymous":false,"id":34423,"name":"NotifyReward","nameLocation":"1238:12:102","nodeType":"EventDefinition","parameters":{"id":34422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34417,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1276:6:102","nodeType":"VariableDeclaration","scope":34423,"src":"1260:22:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34416,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34419,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"1308:6:102","nodeType":"VariableDeclaration","scope":34423,"src":"1292:22:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34418,"name":"address","nodeType":"ElementaryTypeName","src":"1292:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34421,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1332:6:102","nodeType":"VariableDeclaration","scope":34423,"src":"1324:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34420,"name":"uint256","nodeType":"ElementaryTypeName","src":"1324:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1250:94:102"},"src":"1232:113:102"},{"anonymous":false,"id":34431,"name":"DistributeReward","nameLocation":"1356:16:102","nodeType":"EventDefinition","parameters":{"id":34430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34425,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1398:6:102","nodeType":"VariableDeclaration","scope":34431,"src":"1382:22:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34424,"name":"address","nodeType":"ElementaryTypeName","src":"1382:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34427,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1430:5:102","nodeType":"VariableDeclaration","scope":34431,"src":"1414:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34426,"name":"address","nodeType":"ElementaryTypeName","src":"1414:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34429,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1453:6:102","nodeType":"VariableDeclaration","scope":34431,"src":"1445:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34428,"name":"uint256","nodeType":"ElementaryTypeName","src":"1445:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1372:93:102"},"src":"1350:116:102"},{"anonymous":false,"id":34439,"name":"Attach","nameLocation":"1477:6:102","nodeType":"EventDefinition","parameters":{"id":34438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34433,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1500:5:102","nodeType":"VariableDeclaration","scope":34439,"src":"1484:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34432,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34435,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1523:5:102","nodeType":"VariableDeclaration","scope":34439,"src":"1507:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34434,"name":"address","nodeType":"ElementaryTypeName","src":"1507:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34437,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1538:7:102","nodeType":"VariableDeclaration","scope":34439,"src":"1530:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34436,"name":"uint256","nodeType":"ElementaryTypeName","src":"1530:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:63:102"},"src":"1471:76:102"},{"anonymous":false,"id":34447,"name":"Detach","nameLocation":"1558:6:102","nodeType":"EventDefinition","parameters":{"id":34446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34441,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1581:5:102","nodeType":"VariableDeclaration","scope":34447,"src":"1565:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34440,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34443,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1604:5:102","nodeType":"VariableDeclaration","scope":34447,"src":"1588:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34442,"name":"address","nodeType":"ElementaryTypeName","src":"1588:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34445,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1619:7:102","nodeType":"VariableDeclaration","scope":34447,"src":"1611:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34444,"name":"uint256","nodeType":"ElementaryTypeName","src":"1611:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1564:63:102"},"src":"1552:76:102"},{"anonymous":false,"id":34455,"name":"Whitelisted","nameLocation":"1639:11:102","nodeType":"EventDefinition","parameters":{"id":34454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34449,"indexed":true,"mutability":"mutable","name":"whitelister","nameLocation":"1676:11:102","nodeType":"VariableDeclaration","scope":34455,"src":"1660:27:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34448,"name":"address","nodeType":"ElementaryTypeName","src":"1660:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34451,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"1713:5:102","nodeType":"VariableDeclaration","scope":34455,"src":"1697:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34450,"name":"address","nodeType":"ElementaryTypeName","src":"1697:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34453,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1733:5:102","nodeType":"VariableDeclaration","scope":34455,"src":"1728:10:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34452,"name":"bool","nodeType":"ElementaryTypeName","src":"1728:4:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1650:94:102"},"src":"1633:112:102"}],"scope":34457,"src":"102:1645:102","usedErrors":[]}],"src":"33:1715:102"},"id":102},"contracts/interfaces/IGaugeVoterV2.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeVoterV2.sol","exportedSymbols":{"IGaugeVoterV2":[34597],"IRegistry":[35522]},"id":34598,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34458,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:103"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":34460,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34598,"sourceUnit":35523,"src":"58:42:103","symbolAliases":[{"foreign":{"id":34459,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:103","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34597,"linearizedBaseContracts":[34597],"name":"IGaugeVoterV2","nameLocation":"112:13:103","nodeType":"ContractDefinition","nodes":[{"functionSelector":"97a302f7","id":34465,"implemented":false,"kind":"function","modifiers":[],"name":"attachStakerToGauge","nameLocation":"141:19:103","nodeType":"FunctionDefinition","parameters":{"id":34463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34462,"mutability":"mutable","name":"account","nameLocation":"169:7:103","nodeType":"VariableDeclaration","scope":34465,"src":"161:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34461,"name":"address","nodeType":"ElementaryTypeName","src":"161:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"160:17:103"},"returnParameters":{"id":34464,"nodeType":"ParameterList","parameters":[],"src":"186:0:103"},"scope":34597,"src":"132:55:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e32e4e88","id":34470,"implemented":false,"kind":"function","modifiers":[],"name":"detachStakerFromGauge","nameLocation":"202:21:103","nodeType":"FunctionDefinition","parameters":{"id":34468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34467,"mutability":"mutable","name":"account","nameLocation":"232:7:103","nodeType":"VariableDeclaration","scope":34470,"src":"224:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34466,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"223:17:103"},"returnParameters":{"id":34469,"nodeType":"ParameterList","parameters":[],"src":"249:0:103"},"scope":34597,"src":"193:57:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"63453ae1","id":34475,"implemented":false,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"265:10:103","nodeType":"FunctionDefinition","parameters":{"id":34473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34472,"mutability":"mutable","name":"_gauge","nameLocation":"284:6:103","nodeType":"VariableDeclaration","scope":34475,"src":"276:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34471,"name":"address","nodeType":"ElementaryTypeName","src":"276:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"275:16:103"},"returnParameters":{"id":34474,"nodeType":"ParameterList","parameters":[],"src":"300:0:103"},"scope":34597,"src":"256:45:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e4fc6b6d","id":34478,"implemented":false,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"316:10:103","nodeType":"FunctionDefinition","parameters":{"id":34476,"nodeType":"ParameterList","parameters":[],"src":"326:2:103"},"returnParameters":{"id":34477,"nodeType":"ParameterList","parameters":[],"src":"337:0:103"},"scope":34597,"src":"307:31:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6138889b","id":34484,"implemented":false,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"353:10:103","nodeType":"FunctionDefinition","parameters":{"id":34482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34481,"mutability":"mutable","name":"_gauges","nameLocation":"381:7:103","nodeType":"VariableDeclaration","scope":34484,"src":"364:24:103","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":34479,"name":"address","nodeType":"ElementaryTypeName","src":"364:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":34480,"nodeType":"ArrayTypeName","src":"364:9:103","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"363:26:103"},"returnParameters":{"id":34483,"nodeType":"ParameterList","parameters":[],"src":"398:0:103"},"scope":34597,"src":"344:55:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d826f88f","id":34487,"implemented":false,"kind":"function","modifiers":[],"name":"reset","nameLocation":"414:5:103","nodeType":"FunctionDefinition","parameters":{"id":34485,"nodeType":"ParameterList","parameters":[],"src":"419:2:103"},"returnParameters":{"id":34486,"nodeType":"ParameterList","parameters":[],"src":"430:0:103"},"scope":34597,"src":"405:26:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"20217176","id":34492,"implemented":false,"kind":"function","modifiers":[],"name":"resetFor","nameLocation":"446:8:103","nodeType":"FunctionDefinition","parameters":{"id":34490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34489,"mutability":"mutable","name":"_who","nameLocation":"463:4:103","nodeType":"VariableDeclaration","scope":34492,"src":"455:12:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34488,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"454:14:103"},"returnParameters":{"id":34491,"nodeType":"ParameterList","parameters":[],"src":"477:0:103"},"scope":34597,"src":"437:41:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7b103999","id":34498,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"493:8:103","nodeType":"FunctionDefinition","parameters":{"id":34493,"nodeType":"ParameterList","parameters":[],"src":"501:2:103"},"returnParameters":{"id":34497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34498,"src":"527:9:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":34495,"nodeType":"UserDefinedTypeName","pathNode":{"id":34494,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"527:9:103"},"referencedDeclaration":35522,"src":"527:9:103","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"526:11:103"},"scope":34597,"src":"484:54:103","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3c6b16ab","id":34503,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"553:18:103","nodeType":"FunctionDefinition","parameters":{"id":34501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34500,"mutability":"mutable","name":"amount","nameLocation":"580:6:103","nodeType":"VariableDeclaration","scope":34503,"src":"572:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34499,"name":"uint256","nodeType":"ElementaryTypeName","src":"572:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"571:16:103"},"returnParameters":{"id":34502,"nodeType":"ParameterList","parameters":[],"src":"596:0:103"},"scope":34597,"src":"544:53:103","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6405eacd","id":34510,"implemented":false,"kind":"function","modifiers":[],"name":"attachments","nameLocation":"612:11:103","nodeType":"FunctionDefinition","parameters":{"id":34506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34505,"mutability":"mutable","name":"who","nameLocation":"632:3:103","nodeType":"VariableDeclaration","scope":34510,"src":"624:11:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34504,"name":"address","nodeType":"ElementaryTypeName","src":"624:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"623:13:103"},"returnParameters":{"id":34509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34510,"src":"660:7:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34507,"name":"uint256","nodeType":"ElementaryTypeName","src":"660:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"659:9:103"},"scope":34597,"src":"603:66:103","stateMutability":"view","virtual":false,"visibility":"external"},{"anonymous":false,"id":34520,"name":"GaugeCreated","nameLocation":"681:12:103","nodeType":"EventDefinition","parameters":{"id":34519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34512,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"719:5:103","nodeType":"VariableDeclaration","scope":34520,"src":"703:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34511,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34514,"indexed":false,"mutability":"mutable","name":"creator","nameLocation":"742:7:103","nodeType":"VariableDeclaration","scope":34520,"src":"734:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34513,"name":"address","nodeType":"ElementaryTypeName","src":"734:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34516,"indexed":true,"mutability":"mutable","name":"bribe","nameLocation":"775:5:103","nodeType":"VariableDeclaration","scope":34520,"src":"759:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34515,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34518,"indexed":true,"mutability":"mutable","name":"pool","nameLocation":"806:4:103","nodeType":"VariableDeclaration","scope":34520,"src":"790:20:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34517,"name":"address","nodeType":"ElementaryTypeName","src":"790:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"693:123:103"},"src":"675:142:103"},{"anonymous":false,"id":34530,"name":"GaugeUpdated","nameLocation":"828:12:103","nodeType":"EventDefinition","parameters":{"id":34529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34522,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"866:5:103","nodeType":"VariableDeclaration","scope":34530,"src":"850:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34521,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34524,"indexed":false,"mutability":"mutable","name":"creator","nameLocation":"889:7:103","nodeType":"VariableDeclaration","scope":34530,"src":"881:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34523,"name":"address","nodeType":"ElementaryTypeName","src":"881:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34526,"indexed":true,"mutability":"mutable","name":"bribe","nameLocation":"922:5:103","nodeType":"VariableDeclaration","scope":34530,"src":"906:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34525,"name":"address","nodeType":"ElementaryTypeName","src":"906:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34528,"indexed":true,"mutability":"mutable","name":"pool","nameLocation":"953:4:103","nodeType":"VariableDeclaration","scope":34530,"src":"937:20:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34527,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"840:123:103"},"src":"822:142:103"},{"anonymous":false,"id":34538,"name":"Voted","nameLocation":"975:5:103","nodeType":"EventDefinition","parameters":{"id":34537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34532,"indexed":true,"mutability":"mutable","name":"voter","nameLocation":"997:5:103","nodeType":"VariableDeclaration","scope":34538,"src":"981:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34531,"name":"address","nodeType":"ElementaryTypeName","src":"981:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34534,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1012:7:103","nodeType":"VariableDeclaration","scope":34538,"src":"1004:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34533,"name":"address","nodeType":"ElementaryTypeName","src":"1004:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34536,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"1028:6:103","nodeType":"VariableDeclaration","scope":34538,"src":"1021:13:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34535,"name":"int256","nodeType":"ElementaryTypeName","src":"1021:6:103","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"980:55:103"},"src":"969:67:103"},{"anonymous":false,"id":34544,"name":"Abstained","nameLocation":"1047:9:103","nodeType":"EventDefinition","parameters":{"id":34543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34540,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1065:7:103","nodeType":"VariableDeclaration","scope":34544,"src":"1057:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34539,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34542,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"1081:6:103","nodeType":"VariableDeclaration","scope":34544,"src":"1074:13:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34541,"name":"int256","nodeType":"ElementaryTypeName","src":"1074:6:103","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1056:32:103"},"src":"1041:48:103"},{"anonymous":false,"id":34552,"name":"Deposit","nameLocation":"1100:7:103","nodeType":"EventDefinition","parameters":{"id":34551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34546,"indexed":true,"mutability":"mutable","name":"lp","nameLocation":"1124:2:103","nodeType":"VariableDeclaration","scope":34552,"src":"1108:18:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34545,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34548,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1144:5:103","nodeType":"VariableDeclaration","scope":34552,"src":"1128:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34547,"name":"address","nodeType":"ElementaryTypeName","src":"1128:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34550,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1159:6:103","nodeType":"VariableDeclaration","scope":34552,"src":"1151:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34549,"name":"uint256","nodeType":"ElementaryTypeName","src":"1151:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1107:59:103"},"src":"1094:73:103"},{"anonymous":false,"id":34560,"name":"Withdraw","nameLocation":"1178:8:103","nodeType":"EventDefinition","parameters":{"id":34559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34554,"indexed":true,"mutability":"mutable","name":"lp","nameLocation":"1203:2:103","nodeType":"VariableDeclaration","scope":34560,"src":"1187:18:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34553,"name":"address","nodeType":"ElementaryTypeName","src":"1187:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34556,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1223:5:103","nodeType":"VariableDeclaration","scope":34560,"src":"1207:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34555,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34558,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1238:6:103","nodeType":"VariableDeclaration","scope":34560,"src":"1230:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34557,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:59:103"},"src":"1172:74:103"},{"anonymous":false,"id":34568,"name":"NotifyReward","nameLocation":"1257:12:103","nodeType":"EventDefinition","parameters":{"id":34567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34562,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1295:6:103","nodeType":"VariableDeclaration","scope":34568,"src":"1279:22:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34561,"name":"address","nodeType":"ElementaryTypeName","src":"1279:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34564,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"1327:6:103","nodeType":"VariableDeclaration","scope":34568,"src":"1311:22:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34563,"name":"address","nodeType":"ElementaryTypeName","src":"1311:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34566,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1351:6:103","nodeType":"VariableDeclaration","scope":34568,"src":"1343:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34565,"name":"uint256","nodeType":"ElementaryTypeName","src":"1343:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1269:94:103"},"src":"1251:113:103"},{"anonymous":false,"id":34576,"name":"DistributeReward","nameLocation":"1375:16:103","nodeType":"EventDefinition","parameters":{"id":34575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34570,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1417:6:103","nodeType":"VariableDeclaration","scope":34576,"src":"1401:22:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34569,"name":"address","nodeType":"ElementaryTypeName","src":"1401:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34572,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1449:5:103","nodeType":"VariableDeclaration","scope":34576,"src":"1433:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34571,"name":"address","nodeType":"ElementaryTypeName","src":"1433:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34574,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1472:6:103","nodeType":"VariableDeclaration","scope":34576,"src":"1464:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34573,"name":"uint256","nodeType":"ElementaryTypeName","src":"1464:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1391:93:103"},"src":"1369:116:103"},{"anonymous":false,"id":34582,"name":"Attach","nameLocation":"1496:6:103","nodeType":"EventDefinition","parameters":{"id":34581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34578,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1519:5:103","nodeType":"VariableDeclaration","scope":34582,"src":"1503:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34577,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34580,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1542:5:103","nodeType":"VariableDeclaration","scope":34582,"src":"1526:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34579,"name":"address","nodeType":"ElementaryTypeName","src":"1526:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1502:46:103"},"src":"1490:59:103"},{"anonymous":false,"id":34588,"name":"Detach","nameLocation":"1560:6:103","nodeType":"EventDefinition","parameters":{"id":34587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34584,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1583:5:103","nodeType":"VariableDeclaration","scope":34588,"src":"1567:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34583,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34586,"indexed":true,"mutability":"mutable","name":"gauge","nameLocation":"1606:5:103","nodeType":"VariableDeclaration","scope":34588,"src":"1590:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34585,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1566:46:103"},"src":"1554:59:103"},{"anonymous":false,"id":34596,"name":"Whitelisted","nameLocation":"1624:11:103","nodeType":"EventDefinition","parameters":{"id":34595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34590,"indexed":true,"mutability":"mutable","name":"whitelister","nameLocation":"1661:11:103","nodeType":"VariableDeclaration","scope":34596,"src":"1645:27:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34589,"name":"address","nodeType":"ElementaryTypeName","src":"1645:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34592,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"1698:5:103","nodeType":"VariableDeclaration","scope":34596,"src":"1682:21:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34591,"name":"address","nodeType":"ElementaryTypeName","src":"1682:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34594,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1718:5:103","nodeType":"VariableDeclaration","scope":34596,"src":"1713:10:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34593,"name":"bool","nodeType":"ElementaryTypeName","src":"1713:4:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1635:94:103"},"src":"1618:112:103"}],"scope":34598,"src":"102:1630:103","usedErrors":[]}],"src":"33:1700:103"},"id":103},"contracts/interfaces/IGaugeWrapper.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeWrapper.sol","exportedSymbols":{"IGaugeWrapper":[34623],"IRegistry":[35522],"IUniswapV3Staker":[35864]},"id":34624,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34599,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:104"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":34601,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34624,"sourceUnit":35523,"src":"58:42:104","symbolAliases":[{"foreign":{"id":34600,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IUniswapV3Staker.sol","file":"./IUniswapV3Staker.sol","id":34603,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34624,"sourceUnit":35865,"src":"101:56:104","symbolAliases":[{"foreign":{"id":34602,"name":"IUniswapV3Staker","nodeType":"Identifier","overloadedDeclarations":[],"src":"109:16:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34623,"linearizedBaseContracts":[34623],"name":"IGaugeWrapper","nameLocation":"169:13:104","nodeType":"ContractDefinition","nodes":[{"functionSelector":"b66503cf","id":34610,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"198:18:104","nodeType":"FunctionDefinition","parameters":{"id":34608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34605,"mutability":"mutable","name":"token","nameLocation":"225:5:104","nodeType":"VariableDeclaration","scope":34610,"src":"217:13:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34604,"name":"address","nodeType":"ElementaryTypeName","src":"217:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34607,"mutability":"mutable","name":"amount","nameLocation":"240:6:104","nodeType":"VariableDeclaration","scope":34610,"src":"232:14:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34606,"name":"uint256","nodeType":"ElementaryTypeName","src":"232:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"216:31:104"},"returnParameters":{"id":34609,"nodeType":"ParameterList","parameters":[],"src":"256:0:104"},"scope":34623,"src":"189:68:104","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7b103999","id":34616,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"272:8:104","nodeType":"FunctionDefinition","parameters":{"id":34611,"nodeType":"ParameterList","parameters":[],"src":"280:2:104"},"returnParameters":{"id":34615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34616,"src":"306:9:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":34613,"nodeType":"UserDefinedTypeName","pathNode":{"id":34612,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"306:9:104"},"referencedDeclaration":35522,"src":"306:9:104","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"305:11:104"},"scope":34623,"src":"263:54:104","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5ebaf1db","id":34622,"implemented":false,"kind":"function","modifiers":[],"name":"staker","nameLocation":"332:6:104","nodeType":"FunctionDefinition","parameters":{"id":34617,"nodeType":"ParameterList","parameters":[],"src":"338:2:104"},"returnParameters":{"id":34621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34622,"src":"364:16:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Staker_$35864","typeString":"contract IUniswapV3Staker"},"typeName":{"id":34619,"nodeType":"UserDefinedTypeName","pathNode":{"id":34618,"name":"IUniswapV3Staker","nodeType":"IdentifierPath","referencedDeclaration":35864,"src":"364:16:104"},"referencedDeclaration":35864,"src":"364:16:104","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Staker_$35864","typeString":"contract IUniswapV3Staker"}},"visibility":"internal"}],"src":"363:18:104"},"scope":34623,"src":"323:59:104","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":34624,"src":"159:225:104","usedErrors":[]}],"src":"33:352:104"},"id":104},"contracts/interfaces/IGaugeWrapperFactory.sol":{"ast":{"absolutePath":"contracts/interfaces/IGaugeWrapperFactory.sol","exportedSymbols":{"IGaugeWrapperFactory":[34649]},"id":34650,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34625,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:105"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34649,"linearizedBaseContracts":[34649],"name":"IGaugeWrapperFactory","nameLocation":"68:20:105","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ba9225f7","id":34638,"implemented":false,"kind":"function","modifiers":[],"name":"createGauge","nameLocation":"102:11:105","nodeType":"FunctionDefinition","parameters":{"id":34634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34627,"mutability":"mutable","name":"_registry","nameLocation":"127:9:105","nodeType":"VariableDeclaration","scope":34638,"src":"119:17:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34626,"name":"address","nodeType":"ElementaryTypeName","src":"119:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34629,"mutability":"mutable","name":"_pool","nameLocation":"150:5:105","nodeType":"VariableDeclaration","scope":34638,"src":"142:13:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34628,"name":"address","nodeType":"ElementaryTypeName","src":"142:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34631,"mutability":"mutable","name":"_bribe","nameLocation":"169:6:105","nodeType":"VariableDeclaration","scope":34638,"src":"161:14:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34630,"name":"address","nodeType":"ElementaryTypeName","src":"161:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34633,"mutability":"mutable","name":"_uniV3Staker","nameLocation":"189:12:105","nodeType":"VariableDeclaration","scope":34638,"src":"181:20:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34632,"name":"address","nodeType":"ElementaryTypeName","src":"181:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"113:92:105"},"returnParameters":{"id":34637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34638,"src":"224:7:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34635,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"223:9:105"},"scope":34649,"src":"93:140:105","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":34648,"name":"GaugeCreated","nameLocation":"243:12:105","nodeType":"EventDefinition","parameters":{"id":34647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34640,"indexed":false,"mutability":"mutable","name":"_gauge","nameLocation":"264:6:105","nodeType":"VariableDeclaration","scope":34648,"src":"256:14:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34639,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34642,"indexed":false,"mutability":"mutable","name":"_pool","nameLocation":"280:5:105","nodeType":"VariableDeclaration","scope":34648,"src":"272:13:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34641,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34644,"indexed":false,"mutability":"mutable","name":"_bribe","nameLocation":"295:6:105","nodeType":"VariableDeclaration","scope":34648,"src":"287:14:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34643,"name":"address","nodeType":"ElementaryTypeName","src":"287:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34646,"indexed":false,"mutability":"mutable","name":"_uniV3Staker","nameLocation":"311:12:105","nodeType":"VariableDeclaration","scope":34648,"src":"303:20:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34645,"name":"address","nodeType":"ElementaryTypeName","src":"303:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"255:69:105"},"src":"237:88:105"}],"scope":34650,"src":"58:269:105","usedErrors":[]}],"src":"33:295:105"},"id":105},"contracts/interfaces/ILockMigrator.sol":{"ast":{"absolutePath":"contracts/interfaces/ILockMigrator.sol","exportedSymbols":{"ILockMigrator":[34711]},"id":34712,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34651,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:106"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34711,"linearizedBaseContracts":[34711],"name":"ILockMigrator","nameLocation":"68:13:106","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4c2d392a","id":34656,"implemented":false,"kind":"function","modifiers":[],"name":"setMigrationReward","nameLocation":"97:18:106","nodeType":"FunctionDefinition","parameters":{"id":34654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34653,"mutability":"mutable","name":"reward","nameLocation":"124:6:106","nodeType":"VariableDeclaration","scope":34656,"src":"116:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34652,"name":"uint256","nodeType":"ElementaryTypeName","src":"116:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"115:16:106"},"returnParameters":{"id":34655,"nodeType":"ParameterList","parameters":[],"src":"140:0:106"},"scope":34711,"src":"88:53:106","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7302d43c","id":34676,"implemented":false,"kind":"function","modifiers":[],"name":"migrateLock","nameLocation":"156:11:106","nodeType":"FunctionDefinition","parameters":{"id":34672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34658,"mutability":"mutable","name":"_value","nameLocation":"185:6:106","nodeType":"VariableDeclaration","scope":34676,"src":"177:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34657,"name":"uint256","nodeType":"ElementaryTypeName","src":"177:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34660,"mutability":"mutable","name":"_lockDuration","nameLocation":"209:13:106","nodeType":"VariableDeclaration","scope":34676,"src":"201:21:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34659,"name":"uint256","nodeType":"ElementaryTypeName","src":"201:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34662,"mutability":"mutable","name":"_tokenId","nameLocation":"240:8:106","nodeType":"VariableDeclaration","scope":34676,"src":"232:16:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34661,"name":"uint256","nodeType":"ElementaryTypeName","src":"232:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34664,"mutability":"mutable","name":"_owner","nameLocation":"266:6:106","nodeType":"VariableDeclaration","scope":34676,"src":"258:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34663,"name":"address","nodeType":"ElementaryTypeName","src":"258:7:106","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34666,"mutability":"mutable","name":"_mahaReward","nameLocation":"290:11:106","nodeType":"VariableDeclaration","scope":34676,"src":"282:19:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34665,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34668,"mutability":"mutable","name":"_scallopReward","nameLocation":"319:14:106","nodeType":"VariableDeclaration","scope":34676,"src":"311:22:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34667,"name":"uint256","nodeType":"ElementaryTypeName","src":"311:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34671,"mutability":"mutable","name":"proof","nameLocation":"360:5:106","nodeType":"VariableDeclaration","scope":34676,"src":"343:22:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":34669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":34670,"nodeType":"ArrayTypeName","src":"343:9:106","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"167:204:106"},"returnParameters":{"id":34675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34676,"src":"390:7:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34673,"name":"uint256","nodeType":"ElementaryTypeName","src":"390:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"389:9:106"},"scope":34711,"src":"147:252:106","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e01a8b9f","id":34696,"implemented":false,"kind":"function","modifiers":[],"name":"isLockValid","nameLocation":"414:11:106","nodeType":"FunctionDefinition","parameters":{"id":34692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34678,"mutability":"mutable","name":"_value","nameLocation":"443:6:106","nodeType":"VariableDeclaration","scope":34696,"src":"435:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34677,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34680,"mutability":"mutable","name":"_lockDuration","nameLocation":"467:13:106","nodeType":"VariableDeclaration","scope":34696,"src":"459:21:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34679,"name":"uint256","nodeType":"ElementaryTypeName","src":"459:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34682,"mutability":"mutable","name":"_owner","nameLocation":"498:6:106","nodeType":"VariableDeclaration","scope":34696,"src":"490:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34681,"name":"address","nodeType":"ElementaryTypeName","src":"490:7:106","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34684,"mutability":"mutable","name":"_tokenId","nameLocation":"522:8:106","nodeType":"VariableDeclaration","scope":34696,"src":"514:16:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34683,"name":"uint256","nodeType":"ElementaryTypeName","src":"514:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34686,"mutability":"mutable","name":"_mahaReward","nameLocation":"548:11:106","nodeType":"VariableDeclaration","scope":34696,"src":"540:19:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34685,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34688,"mutability":"mutable","name":"_scallopReward","nameLocation":"577:14:106","nodeType":"VariableDeclaration","scope":34696,"src":"569:22:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34687,"name":"uint256","nodeType":"ElementaryTypeName","src":"569:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34691,"mutability":"mutable","name":"proof","nameLocation":"618:5:106","nodeType":"VariableDeclaration","scope":34696,"src":"601:22:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":34689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"601:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":34690,"nodeType":"ArrayTypeName","src":"601:9:106","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"425:204:106"},"returnParameters":{"id":34695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34696,"src":"653:4:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34693,"name":"bool","nodeType":"ElementaryTypeName","src":"653:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"652:6:106"},"scope":34711,"src":"405:254:106","stateMutability":"view","virtual":false,"visibility":"external"},{"anonymous":false,"id":34702,"name":"MigrationRewardChanged","nameLocation":"671:22:106","nodeType":"EventDefinition","parameters":{"id":34701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34698,"indexed":false,"mutability":"mutable","name":"oldReward","nameLocation":"702:9:106","nodeType":"VariableDeclaration","scope":34702,"src":"694:17:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34697,"name":"uint256","nodeType":"ElementaryTypeName","src":"694:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34700,"indexed":false,"mutability":"mutable","name":"newReward","nameLocation":"721:9:106","nodeType":"VariableDeclaration","scope":34702,"src":"713:17:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34699,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"693:38:106"},"src":"665:67:106"},{"anonymous":false,"id":34710,"name":"TransferMigrationReward","nameLocation":"743:23:106","nodeType":"EventDefinition","parameters":{"id":34709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34704,"indexed":true,"mutability":"mutable","name":"who","nameLocation":"792:3:106","nodeType":"VariableDeclaration","scope":34710,"src":"776:19:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34703,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:106","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34706,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"821:5:106","nodeType":"VariableDeclaration","scope":34710,"src":"805:21:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34705,"name":"address","nodeType":"ElementaryTypeName","src":"805:7:106","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34708,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"844:6:106","nodeType":"VariableDeclaration","scope":34710,"src":"836:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34707,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"766:90:106"},"src":"737:120:106"}],"scope":34712,"src":"58:801:106","usedErrors":[]}],"src":"33:827:106"},"id":106},"contracts/interfaces/IMulticall.sol":{"ast":{"absolutePath":"contracts/interfaces/IMulticall.sol","exportedSymbols":{"IMulticall":[34726]},"id":34727,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":34713,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:107"},{"id":34714,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"70:19:107"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":34715,"nodeType":"StructuredDocumentation","src":"91:109:107","text":"@title Multicall interface\n @notice Enables calling multiple methods in a single call to the contract"},"fullyImplemented":false,"id":34726,"linearizedBaseContracts":[34726],"name":"IMulticall","nameLocation":"210:10:107","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":34716,"nodeType":"StructuredDocumentation","src":"227:378:107","text":"@notice Call multiple functions in the current contract and return the data from all of them if they all succeed\n @dev The `msg.value` should not be trusted for any method callable from multicall.\n @param data The encoded function data for each of the calls to make to this contract\n @return results The results from each of the calls passed in via data"},"functionSelector":"ac9650d8","id":34725,"implemented":false,"kind":"function","modifiers":[],"name":"multicall","nameLocation":"619:9:107","nodeType":"FunctionDefinition","parameters":{"id":34720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34719,"mutability":"mutable","name":"data","nameLocation":"646:4:107","nodeType":"VariableDeclaration","scope":34725,"src":"629:21:107","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":34717,"name":"bytes","nodeType":"ElementaryTypeName","src":"629:5:107","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":34718,"nodeType":"ArrayTypeName","src":"629:7:107","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"628:23:107"},"returnParameters":{"id":34724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34723,"mutability":"mutable","name":"results","nameLocation":"693:7:107","nodeType":"VariableDeclaration","scope":34725,"src":"678:22:107","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":34721,"name":"bytes","nodeType":"ElementaryTypeName","src":"678:5:107","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":34722,"nodeType":"ArrayTypeName","src":"678:7:107","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"677:24:107"},"scope":34726,"src":"610:92:107","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":34727,"src":"200:504:107","usedErrors":[]}],"src":"46:659:107"},"id":107},"contracts/interfaces/INFTLocker.sol":{"ast":{"absolutePath":"contracts/interfaces/INFTLocker.sol","exportedSymbols":{"IERC721":[7092],"IERC721Receiver":[7110],"INFTLocker":[34923],"IRegistry":[35522]},"id":34924,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34728,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:108"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","file":"@openzeppelin/contracts/interfaces/IERC721.sol","id":34730,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34924,"sourceUnit":4761,"src":"58:71:108","symbolAliases":[{"foreign":{"id":34729,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:7:108","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721Receiver.sol","file":"@openzeppelin/contracts/interfaces/IERC721Receiver.sol","id":34732,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34924,"sourceUnit":4764,"src":"130:87:108","symbolAliases":[{"foreign":{"id":34731,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"src":"138:15:108","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":34734,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":34924,"sourceUnit":35523,"src":"218:42:108","symbolAliases":[{"foreign":{"id":34733,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"226:9:108","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":34735,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":7092,"src":"286:7:108"},"id":34736,"nodeType":"InheritanceSpecifier","src":"286:7:108"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":34923,"linearizedBaseContracts":[34923,7092,9849],"name":"INFTLocker","nameLocation":"272:10:108","nodeType":"ContractDefinition","nodes":[{"functionSelector":"7b103999","id":34742,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"309:8:108","nodeType":"FunctionDefinition","parameters":{"id":34737,"nodeType":"ParameterList","parameters":[],"src":"317:2:108"},"returnParameters":{"id":34741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34742,"src":"343:9:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":34739,"nodeType":"UserDefinedTypeName","pathNode":{"id":34738,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"343:9:108"},"referencedDeclaration":35522,"src":"343:9:108","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"342:11:108"},"scope":34923,"src":"300:54:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e7e242d4","id":34749,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfNFT","nameLocation":"369:12:108","nodeType":"FunctionDefinition","parameters":{"id":34745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34749,"src":"382:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34743,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"381:9:108"},"returnParameters":{"id":34748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34749,"src":"414:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34746,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"413:9:108"},"scope":34923,"src":"360:63:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"baa51f86","id":34756,"implemented":false,"kind":"function","modifiers":[],"name":"isStaked","nameLocation":"438:8:108","nodeType":"FunctionDefinition","parameters":{"id":34752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34756,"src":"447:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34750,"name":"uint256","nodeType":"ElementaryTypeName","src":"447:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"446:9:108"},"returnParameters":{"id":34755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34756,"src":"479:4:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34753,"name":"bool","nodeType":"ElementaryTypeName","src":"479:4:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"478:6:108"},"scope":34923,"src":"429:56:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"900cf0cf","id":34761,"implemented":false,"kind":"function","modifiers":[],"name":"epoch","nameLocation":"500:5:108","nodeType":"FunctionDefinition","parameters":{"id":34757,"nodeType":"ParameterList","parameters":[],"src":"505:2:108"},"returnParameters":{"id":34760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34759,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34761,"src":"531:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34758,"name":"uint256","nodeType":"ElementaryTypeName","src":"531:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"530:9:108"},"scope":34923,"src":"491:49:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e58f5947","id":34768,"implemented":false,"kind":"function","modifiers":[],"name":"userPointEpoch","nameLocation":"555:14:108","nodeType":"FunctionDefinition","parameters":{"id":34764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34763,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34768,"src":"570:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34762,"name":"uint256","nodeType":"ElementaryTypeName","src":"570:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"569:9:108"},"returnParameters":{"id":34767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34768,"src":"602:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34765,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:9:108"},"scope":34923,"src":"546:65:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"44acb42a","id":34778,"implemented":false,"kind":"function","modifiers":[],"name":"userPointHistory","nameLocation":"626:16:108","nodeType":"FunctionDefinition","parameters":{"id":34773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34778,"src":"643:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34769,"name":"uint256","nodeType":"ElementaryTypeName","src":"643:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34778,"src":"652:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34771,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"642:18:108"},"returnParameters":{"id":34777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34778,"src":"708:12:108","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":34775,"nodeType":"UserDefinedTypeName","pathNode":{"id":34774,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"708:5:108"},"referencedDeclaration":34884,"src":"708:5:108","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"src":"707:14:108"},"scope":34923,"src":"617:105:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"8ad4c447","id":34786,"implemented":false,"kind":"function","modifiers":[],"name":"pointHistory","nameLocation":"737:12:108","nodeType":"FunctionDefinition","parameters":{"id":34781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34786,"src":"750:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34779,"name":"uint256","nodeType":"ElementaryTypeName","src":"750:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"749:9:108"},"returnParameters":{"id":34785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34786,"src":"782:12:108","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_memory_ptr","typeString":"struct INFTLocker.Point"},"typeName":{"id":34783,"nodeType":"UserDefinedTypeName","pathNode":{"id":34782,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":34884,"src":"782:5:108"},"referencedDeclaration":34884,"src":"782:5:108","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$34884_storage_ptr","typeString":"struct INFTLocker.Point"}},"visibility":"internal"}],"src":"781:14:108"},"scope":34923,"src":"728:68:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d490dbca","id":34791,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupplyWithoutDecay","nameLocation":"811:23:108","nodeType":"FunctionDefinition","parameters":{"id":34787,"nodeType":"ParameterList","parameters":[],"src":"834:2:108"},"returnParameters":{"id":34790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34791,"src":"860:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34788,"name":"uint256","nodeType":"ElementaryTypeName","src":"860:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"859:9:108"},"scope":34923,"src":"802:67:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"430c2081","id":34800,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedOrOwner","nameLocation":"884:17:108","nodeType":"FunctionDefinition","parameters":{"id":34796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34800,"src":"902:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34792,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:108","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34800,"src":"911:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34794,"name":"uint256","nodeType":"ElementaryTypeName","src":"911:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"901:18:108"},"returnParameters":{"id":34799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34800,"src":"943:4:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34797,"name":"bool","nodeType":"ElementaryTypeName","src":"943:4:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"942:6:108"},"scope":34923,"src":"875:74:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":34805,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"964:11:108","nodeType":"FunctionDefinition","parameters":{"id":34801,"nodeType":"ParameterList","parameters":[],"src":"975:2:108"},"returnParameters":{"id":34804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34805,"src":"1001:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34802,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1000:9:108"},"scope":34923,"src":"955:55:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"981b24d0","id":34812,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupplyAt","nameLocation":"1025:13:108","nodeType":"FunctionDefinition","parameters":{"id":34808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34807,"mutability":"mutable","name":"_block","nameLocation":"1047:6:108","nodeType":"VariableDeclaration","scope":34812,"src":"1039:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1039:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1038:16:108"},"returnParameters":{"id":34811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34812,"src":"1078:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34809,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1077:9:108"},"scope":34923,"src":"1016:71:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d1c2babb","id":34819,"implemented":false,"kind":"function","modifiers":[],"name":"merge","nameLocation":"1102:5:108","nodeType":"FunctionDefinition","parameters":{"id":34817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34814,"mutability":"mutable","name":"_from","nameLocation":"1116:5:108","nodeType":"VariableDeclaration","scope":34819,"src":"1108:13:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34813,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34816,"mutability":"mutable","name":"_to","nameLocation":"1131:3:108","nodeType":"VariableDeclaration","scope":34819,"src":"1123:11:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1123:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1107:28:108"},"returnParameters":{"id":34818,"nodeType":"ParameterList","parameters":[],"src":"1144:0:108"},"scope":34923,"src":"1093:52:108","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"57e871e7","id":34824,"implemented":false,"kind":"function","modifiers":[],"name":"blockNumber","nameLocation":"1160:11:108","nodeType":"FunctionDefinition","parameters":{"id":34820,"nodeType":"ParameterList","parameters":[],"src":"1171:2:108"},"returnParameters":{"id":34823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34824,"src":"1197:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1197:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1196:9:108"},"scope":34923,"src":"1151:55:108","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c2c4c5c1","id":34827,"implemented":false,"kind":"function","modifiers":[],"name":"checkpoint","nameLocation":"1221:10:108","nodeType":"FunctionDefinition","parameters":{"id":34825,"nodeType":"ParameterList","parameters":[],"src":"1231:2:108"},"returnParameters":{"id":34826,"nodeType":"ParameterList","parameters":[],"src":"1242:0:108"},"scope":34923,"src":"1212:31:108","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0ec84dda","id":34834,"implemented":false,"kind":"function","modifiers":[],"name":"depositFor","nameLocation":"1258:10:108","nodeType":"FunctionDefinition","parameters":{"id":34832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34829,"mutability":"mutable","name":"_tokenId","nameLocation":"1277:8:108","nodeType":"VariableDeclaration","scope":34834,"src":"1269:16:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34828,"name":"uint256","nodeType":"ElementaryTypeName","src":"1269:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34831,"mutability":"mutable","name":"_value","nameLocation":"1295:6:108","nodeType":"VariableDeclaration","scope":34834,"src":"1287:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34830,"name":"uint256","nodeType":"ElementaryTypeName","src":"1287:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1268:34:108"},"returnParameters":{"id":34833,"nodeType":"ParameterList","parameters":[],"src":"1311:0:108"},"scope":34923,"src":"1249:63:108","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0a2abdb3","id":34847,"implemented":false,"kind":"function","modifiers":[],"name":"createLockFor","nameLocation":"1327:13:108","nodeType":"FunctionDefinition","parameters":{"id":34843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34836,"mutability":"mutable","name":"_value","nameLocation":"1358:6:108","nodeType":"VariableDeclaration","scope":34847,"src":"1350:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34838,"mutability":"mutable","name":"_lockDuration","nameLocation":"1382:13:108","nodeType":"VariableDeclaration","scope":34847,"src":"1374:21:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34837,"name":"uint256","nodeType":"ElementaryTypeName","src":"1374:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34840,"mutability":"mutable","name":"_to","nameLocation":"1413:3:108","nodeType":"VariableDeclaration","scope":34847,"src":"1405:11:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34839,"name":"address","nodeType":"ElementaryTypeName","src":"1405:7:108","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34842,"mutability":"mutable","name":"_stakeNFT","nameLocation":"1431:9:108","nodeType":"VariableDeclaration","scope":34847,"src":"1426:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34841,"name":"bool","nodeType":"ElementaryTypeName","src":"1426:4:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1340:106:108"},"returnParameters":{"id":34846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34847,"src":"1465:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34844,"name":"uint256","nodeType":"ElementaryTypeName","src":"1465:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1464:9:108"},"scope":34923,"src":"1318:156:108","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8df4b13b","id":34858,"implemented":false,"kind":"function","modifiers":[],"name":"migrateTokenFor","nameLocation":"1489:15:108","nodeType":"FunctionDefinition","parameters":{"id":34854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34849,"mutability":"mutable","name":"_value","nameLocation":"1522:6:108","nodeType":"VariableDeclaration","scope":34858,"src":"1514:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34848,"name":"uint256","nodeType":"ElementaryTypeName","src":"1514:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34851,"mutability":"mutable","name":"_lockDuration","nameLocation":"1546:13:108","nodeType":"VariableDeclaration","scope":34858,"src":"1538:21:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34850,"name":"uint256","nodeType":"ElementaryTypeName","src":"1538:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34853,"mutability":"mutable","name":"_to","nameLocation":"1577:3:108","nodeType":"VariableDeclaration","scope":34858,"src":"1569:11:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34852,"name":"address","nodeType":"ElementaryTypeName","src":"1569:7:108","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1504:82:108"},"returnParameters":{"id":34857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34858,"src":"1605:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34855,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1604:9:108"},"scope":34923,"src":"1480:134:108","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d60371a7","id":34869,"implemented":false,"kind":"function","modifiers":[],"name":"createLock","nameLocation":"1629:10:108","nodeType":"FunctionDefinition","parameters":{"id":34865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34860,"mutability":"mutable","name":"_value","nameLocation":"1657:6:108","nodeType":"VariableDeclaration","scope":34869,"src":"1649:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34859,"name":"uint256","nodeType":"ElementaryTypeName","src":"1649:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34862,"mutability":"mutable","name":"_lockDuration","nameLocation":"1681:13:108","nodeType":"VariableDeclaration","scope":34869,"src":"1673:21:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34861,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34864,"mutability":"mutable","name":"_stakeNFT","nameLocation":"1709:9:108","nodeType":"VariableDeclaration","scope":34869,"src":"1704:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34863,"name":"bool","nodeType":"ElementaryTypeName","src":"1704:4:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1639:85:108"},"returnParameters":{"id":34868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34869,"src":"1743:7:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34866,"name":"uint256","nodeType":"ElementaryTypeName","src":"1743:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1742:9:108"},"scope":34923,"src":"1620:132:108","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"canonicalName":"INFTLocker.DepositType","id":34875,"members":[{"id":34870,"name":"DEPOSIT_FOR_TYPE","nameLocation":"1785:16:108","nodeType":"EnumValue","src":"1785:16:108"},{"id":34871,"name":"CREATE_LOCK_TYPE","nameLocation":"1811:16:108","nodeType":"EnumValue","src":"1811:16:108"},{"id":34872,"name":"INCREASE_LOCK_AMOUNT","nameLocation":"1837:20:108","nodeType":"EnumValue","src":"1837:20:108"},{"id":34873,"name":"INCREASE_UNLOCK_TIME","nameLocation":"1867:20:108","nodeType":"EnumValue","src":"1867:20:108"},{"id":34874,"name":"MERGE_TYPE","nameLocation":"1897:10:108","nodeType":"EnumValue","src":"1897:10:108"}],"name":"DepositType","nameLocation":"1763:11:108","nodeType":"EnumDefinition","src":"1758:155:108"},{"canonicalName":"INFTLocker.Point","id":34884,"members":[{"constant":false,"id":34877,"mutability":"mutable","name":"bias","nameLocation":"1949:4:108","nodeType":"VariableDeclaration","scope":34884,"src":"1942:11:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":34876,"name":"int128","nodeType":"ElementaryTypeName","src":"1942:6:108","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":34879,"mutability":"mutable","name":"slope","nameLocation":"1970:5:108","nodeType":"VariableDeclaration","scope":34884,"src":"1963:12:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":34878,"name":"int128","nodeType":"ElementaryTypeName","src":"1963:6:108","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":34881,"mutability":"mutable","name":"ts","nameLocation":"2012:2:108","nodeType":"VariableDeclaration","scope":34884,"src":"2004:10:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34880,"name":"uint256","nodeType":"ElementaryTypeName","src":"2004:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34883,"mutability":"mutable","name":"blk","nameLocation":"2032:3:108","nodeType":"VariableDeclaration","scope":34884,"src":"2024:11:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34882,"name":"uint256","nodeType":"ElementaryTypeName","src":"2024:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Point","nameLocation":"1926:5:108","nodeType":"StructDefinition","scope":34923,"src":"1919:132:108","visibility":"public"},{"canonicalName":"INFTLocker.LockedBalance","id":34891,"members":[{"constant":false,"id":34886,"mutability":"mutable","name":"amount","nameLocation":"2314:6:108","nodeType":"VariableDeclaration","scope":34891,"src":"2307:13:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":34885,"name":"int128","nodeType":"ElementaryTypeName","src":"2307:6:108","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":34888,"mutability":"mutable","name":"end","nameLocation":"2338:3:108","nodeType":"VariableDeclaration","scope":34891,"src":"2330:11:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34887,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34890,"mutability":"mutable","name":"start","nameLocation":"2359:5:108","nodeType":"VariableDeclaration","scope":34891,"src":"2351:13:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2351:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"LockedBalance","nameLocation":"2283:13:108","nodeType":"StructDefinition","scope":34923,"src":"2276:95:108","visibility":"public"},{"anonymous":false,"id":34906,"name":"Deposit","nameLocation":"2383:7:108","nodeType":"EventDefinition","parameters":{"id":34905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34893,"indexed":true,"mutability":"mutable","name":"provider","nameLocation":"2416:8:108","nodeType":"VariableDeclaration","scope":34906,"src":"2400:24:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34892,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:108","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34895,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"2442:7:108","nodeType":"VariableDeclaration","scope":34906,"src":"2434:15:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34894,"name":"uint256","nodeType":"ElementaryTypeName","src":"2434:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34897,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2467:5:108","nodeType":"VariableDeclaration","scope":34906,"src":"2459:13:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34896,"name":"uint256","nodeType":"ElementaryTypeName","src":"2459:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34899,"indexed":true,"mutability":"mutable","name":"locktime","nameLocation":"2498:8:108","nodeType":"VariableDeclaration","scope":34906,"src":"2482:24:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34898,"name":"uint256","nodeType":"ElementaryTypeName","src":"2482:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34902,"indexed":false,"mutability":"mutable","name":"deposit_type","nameLocation":"2528:12:108","nodeType":"VariableDeclaration","scope":34906,"src":"2516:24:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"},"typeName":{"id":34901,"nodeType":"UserDefinedTypeName","pathNode":{"id":34900,"name":"DepositType","nodeType":"IdentifierPath","referencedDeclaration":34875,"src":"2516:11:108"},"referencedDeclaration":34875,"src":"2516:11:108","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$34875","typeString":"enum INFTLocker.DepositType"}},"visibility":"internal"},{"constant":false,"id":34904,"indexed":false,"mutability":"mutable","name":"ts","nameLocation":"2558:2:108","nodeType":"VariableDeclaration","scope":34906,"src":"2550:10:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34903,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2390:176:108"},"src":"2377:190:108"},{"anonymous":false,"id":34916,"name":"Withdraw","nameLocation":"2579:8:108","nodeType":"EventDefinition","parameters":{"id":34915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34908,"indexed":true,"mutability":"mutable","name":"provider","nameLocation":"2613:8:108","nodeType":"VariableDeclaration","scope":34916,"src":"2597:24:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34907,"name":"address","nodeType":"ElementaryTypeName","src":"2597:7:108","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34910,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"2639:7:108","nodeType":"VariableDeclaration","scope":34916,"src":"2631:15:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34909,"name":"uint256","nodeType":"ElementaryTypeName","src":"2631:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34912,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2664:5:108","nodeType":"VariableDeclaration","scope":34916,"src":"2656:13:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34911,"name":"uint256","nodeType":"ElementaryTypeName","src":"2656:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34914,"indexed":false,"mutability":"mutable","name":"ts","nameLocation":"2687:2:108","nodeType":"VariableDeclaration","scope":34916,"src":"2679:10:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34913,"name":"uint256","nodeType":"ElementaryTypeName","src":"2679:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2587:108:108"},"src":"2573:123:108"},{"anonymous":false,"id":34922,"name":"Supply","nameLocation":"2708:6:108","nodeType":"EventDefinition","parameters":{"id":34921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34918,"indexed":false,"mutability":"mutable","name":"prevSupply","nameLocation":"2723:10:108","nodeType":"VariableDeclaration","scope":34922,"src":"2715:18:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34917,"name":"uint256","nodeType":"ElementaryTypeName","src":"2715:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34920,"indexed":false,"mutability":"mutable","name":"supply","nameLocation":"2743:6:108","nodeType":"VariableDeclaration","scope":34922,"src":"2735:14:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2735:7:108","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2714:36:108"},"src":"2702:49:108"}],"scope":34924,"src":"262:2491:108","usedErrors":[]}],"src":"33:2721:108"},"id":108},"contracts/interfaces/INFTStaker.sol":{"ast":{"absolutePath":"contracts/interfaces/INFTStaker.sol","exportedSymbols":{"INFTStaker":[35022],"IRegistry":[35522],"IVotes":[4281]},"id":35023,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":34925,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:109"},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"./IRegistry.sol","id":34927,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35023,"sourceUnit":35523,"src":"58:42:109","symbolAliases":[{"foreign":{"id":34926,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:9:109","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"@openzeppelin/contracts/governance/utils/IVotes.sol","id":34929,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35023,"sourceUnit":4282,"src":"101:75:109","symbolAliases":[{"foreign":{"id":34928,"name":"IVotes","nodeType":"Identifier","overloadedDeclarations":[],"src":"109:6:109","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":34930,"name":"IVotes","nodeType":"IdentifierPath","referencedDeclaration":4281,"src":"202:6:109"},"id":34931,"nodeType":"InheritanceSpecifier","src":"202:6:109"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35022,"linearizedBaseContracts":[35022,4281],"name":"INFTStaker","nameLocation":"188:10:109","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":34939,"name":"Transfer","nameLocation":"221:8:109","nodeType":"EventDefinition","parameters":{"id":34938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34933,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"246:4:109","nodeType":"VariableDeclaration","scope":34939,"src":"230:20:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34932,"name":"address","nodeType":"ElementaryTypeName","src":"230:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34935,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"268:2:109","nodeType":"VariableDeclaration","scope":34939,"src":"252:18:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34934,"name":"address","nodeType":"ElementaryTypeName","src":"252:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34937,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"280:5:109","nodeType":"VariableDeclaration","scope":34939,"src":"272:13:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34936,"name":"uint256","nodeType":"ElementaryTypeName","src":"272:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"229:57:109"},"src":"215:72:109"},{"functionSelector":"06fdde03","id":34944,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"302:4:109","nodeType":"FunctionDefinition","parameters":{"id":34940,"nodeType":"ParameterList","parameters":[],"src":"306:2:109"},"returnParameters":{"id":34943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34944,"src":"332:13:109","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":34941,"name":"string","nodeType":"ElementaryTypeName","src":"332:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"331:15:109"},"scope":35022,"src":"293:54:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":34949,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"362:6:109","nodeType":"FunctionDefinition","parameters":{"id":34945,"nodeType":"ParameterList","parameters":[],"src":"368:2:109"},"returnParameters":{"id":34948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34949,"src":"394:13:109","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":34946,"name":"string","nodeType":"ElementaryTypeName","src":"394:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"393:15:109"},"scope":35022,"src":"353:56:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":34954,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"424:8:109","nodeType":"FunctionDefinition","parameters":{"id":34950,"nodeType":"ParameterList","parameters":[],"src":"432:2:109"},"returnParameters":{"id":34953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34954,"src":"458:5:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":34951,"name":"uint8","nodeType":"ElementaryTypeName","src":"458:5:109","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"457:7:109"},"scope":35022,"src":"415:50:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":34959,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"480:11:109","nodeType":"FunctionDefinition","parameters":{"id":34955,"nodeType":"ParameterList","parameters":[],"src":"491:2:109"},"returnParameters":{"id":34958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34959,"src":"517:7:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34956,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"516:9:109"},"scope":35022,"src":"471:55:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":34966,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"541:9:109","nodeType":"FunctionDefinition","parameters":{"id":34962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34961,"mutability":"mutable","name":"account","nameLocation":"559:7:109","nodeType":"VariableDeclaration","scope":34966,"src":"551:15:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34960,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:109"},"returnParameters":{"id":34965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34966,"src":"591:7:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34963,"name":"uint256","nodeType":"ElementaryTypeName","src":"591:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"590:9:109"},"scope":35022,"src":"532:68:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3a02a42d","id":34973,"implemented":false,"kind":"function","modifiers":[],"name":"getStakedBalance","nameLocation":"615:16:109","nodeType":"FunctionDefinition","parameters":{"id":34969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34968,"mutability":"mutable","name":"who","nameLocation":"640:3:109","nodeType":"VariableDeclaration","scope":34973,"src":"632:11:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34967,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"631:13:109"},"returnParameters":{"id":34972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34973,"src":"668:7:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34970,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"667:9:109"},"scope":35022,"src":"606:71:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7b103999","id":34979,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"692:8:109","nodeType":"FunctionDefinition","parameters":{"id":34974,"nodeType":"ParameterList","parameters":[],"src":"700:2:109"},"returnParameters":{"id":34978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34979,"src":"726:9:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":34976,"nodeType":"UserDefinedTypeName","pathNode":{"id":34975,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"726:9:109"},"referencedDeclaration":35522,"src":"726:9:109","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"725:11:109"},"scope":35022,"src":"683:54:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a694fc3a","id":34984,"implemented":false,"kind":"function","modifiers":[],"name":"stake","nameLocation":"752:5:109","nodeType":"FunctionDefinition","parameters":{"id":34982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34981,"mutability":"mutable","name":"_tokenId","nameLocation":"766:8:109","nodeType":"VariableDeclaration","scope":34984,"src":"758:16:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34980,"name":"uint256","nodeType":"ElementaryTypeName","src":"758:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"757:18:109"},"returnParameters":{"id":34983,"nodeType":"ParameterList","parameters":[],"src":"784:0:109"},"scope":35022,"src":"743:42:109","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"baa51f86","id":34991,"implemented":false,"kind":"function","modifiers":[],"name":"isStaked","nameLocation":"800:8:109","nodeType":"FunctionDefinition","parameters":{"id":34987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34986,"mutability":"mutable","name":"_tokenId","nameLocation":"817:8:109","nodeType":"VariableDeclaration","scope":34991,"src":"809:16:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34985,"name":"uint256","nodeType":"ElementaryTypeName","src":"809:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"808:18:109"},"returnParameters":{"id":34990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34991,"src":"850:4:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34988,"name":"bool","nodeType":"ElementaryTypeName","src":"850:4:109","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"849:6:109"},"scope":35022,"src":"791:65:109","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"630b4b90","id":34996,"implemented":false,"kind":"function","modifiers":[],"name":"_stakeFromLock","nameLocation":"871:14:109","nodeType":"FunctionDefinition","parameters":{"id":34994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34993,"mutability":"mutable","name":"_tokenId","nameLocation":"894:8:109","nodeType":"VariableDeclaration","scope":34996,"src":"886:16:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34992,"name":"uint256","nodeType":"ElementaryTypeName","src":"886:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"885:18:109"},"returnParameters":{"id":34995,"nodeType":"ParameterList","parameters":[],"src":"912:0:109"},"scope":35022,"src":"862:51:109","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2e17de78","id":35001,"implemented":false,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"928:7:109","nodeType":"FunctionDefinition","parameters":{"id":34999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34998,"mutability":"mutable","name":"_tokenId","nameLocation":"944:8:109","nodeType":"VariableDeclaration","scope":35001,"src":"936:16:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34997,"name":"uint256","nodeType":"ElementaryTypeName","src":"936:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"935:18:109"},"returnParameters":{"id":35000,"nodeType":"ParameterList","parameters":[],"src":"962:0:109"},"scope":35022,"src":"919:44:109","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":35011,"name":"StakeNFT","nameLocation":"975:8:109","nodeType":"EventDefinition","parameters":{"id":35010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35003,"indexed":true,"mutability":"mutable","name":"who","nameLocation":"1009:3:109","nodeType":"VariableDeclaration","scope":35011,"src":"993:19:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35002,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35005,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1038:5:109","nodeType":"VariableDeclaration","scope":35011,"src":"1022:21:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35004,"name":"address","nodeType":"ElementaryTypeName","src":"1022:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35007,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1061:7:109","nodeType":"VariableDeclaration","scope":35011,"src":"1053:15:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35006,"name":"uint256","nodeType":"ElementaryTypeName","src":"1053:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35009,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1086:6:109","nodeType":"VariableDeclaration","scope":35011,"src":"1078:14:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35008,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"983:115:109"},"src":"969:130:109"},{"anonymous":false,"id":35021,"name":"UnstakeNFT","nameLocation":"1110:10:109","nodeType":"EventDefinition","parameters":{"id":35020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35013,"indexed":true,"mutability":"mutable","name":"who","nameLocation":"1146:3:109","nodeType":"VariableDeclaration","scope":35021,"src":"1130:19:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35012,"name":"address","nodeType":"ElementaryTypeName","src":"1130:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35015,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1175:5:109","nodeType":"VariableDeclaration","scope":35021,"src":"1159:21:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35014,"name":"address","nodeType":"ElementaryTypeName","src":"1159:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35017,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1198:7:109","nodeType":"VariableDeclaration","scope":35021,"src":"1190:15:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35016,"name":"uint256","nodeType":"ElementaryTypeName","src":"1190:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35019,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1223:6:109","nodeType":"VariableDeclaration","scope":35021,"src":"1215:14:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35018,"name":"uint256","nodeType":"ElementaryTypeName","src":"1215:7:109","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1120:115:109"},"src":"1104:132:109"}],"scope":35023,"src":"178:1060:109","usedErrors":[]}],"src":"33:1206:109"},"id":109},"contracts/interfaces/INonfungiblePositionManager.sol":{"ast":{"absolutePath":"contracts/interfaces/INonfungiblePositionManager.sol","exportedSymbols":{"IERC165":[9849],"IERC721":[7092],"IERC721Enumerable":[7479],"IERC721Metadata":[7506],"IERC721Permit":[14016],"INonfungiblePositionManager":[35221],"IPeripheryImmutableState":[14032],"IPeripheryPayments":[14058],"IPoolInitializer":[14077],"PoolAddress":[37347]},"id":35222,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35024,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:110"},{"id":35025,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"56:19:110"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","id":35026,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35222,"sourceUnit":7507,"src":"77:77:110","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","id":35027,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35222,"sourceUnit":7480,"src":"155:79:110","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol","file":"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol","id":35028,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35222,"sourceUnit":14078,"src":"236:73:110","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol","file":"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol","id":35029,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35222,"sourceUnit":14017,"src":"310:70:110","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","file":"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","id":35030,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35222,"sourceUnit":14059,"src":"381:75:110","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","file":"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","id":35031,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35222,"sourceUnit":14033,"src":"457:81:110","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/utils/PoolAddress.sol","file":"../utils/PoolAddress.sol","id":35032,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35222,"sourceUnit":37348,"src":"540:34:110","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":35034,"name":"IPoolInitializer","nodeType":"IdentifierPath","referencedDeclaration":14077,"src":"798:16:110"},"id":35035,"nodeType":"InheritanceSpecifier","src":"798:16:110"},{"baseName":{"id":35036,"name":"IPeripheryPayments","nodeType":"IdentifierPath","referencedDeclaration":14058,"src":"820:18:110"},"id":35037,"nodeType":"InheritanceSpecifier","src":"820:18:110"},{"baseName":{"id":35038,"name":"IPeripheryImmutableState","nodeType":"IdentifierPath","referencedDeclaration":14032,"src":"844:24:110"},"id":35039,"nodeType":"InheritanceSpecifier","src":"844:24:110"},{"baseName":{"id":35040,"name":"IERC721Metadata","nodeType":"IdentifierPath","referencedDeclaration":7506,"src":"874:15:110"},"id":35041,"nodeType":"InheritanceSpecifier","src":"874:15:110"},{"baseName":{"id":35042,"name":"IERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":7479,"src":"895:17:110"},"id":35043,"nodeType":"InheritanceSpecifier","src":"895:17:110"},{"baseName":{"id":35044,"name":"IERC721Permit","nodeType":"IdentifierPath","referencedDeclaration":14016,"src":"918:13:110"},"id":35045,"nodeType":"InheritanceSpecifier","src":"918:13:110"}],"contractDependencies":[],"contractKind":"interface","documentation":{"id":35033,"nodeType":"StructuredDocumentation","src":"576:177:110","text":"@title Non-fungible token for positions\n @notice Wraps Uniswap V3 positions in a non-fungible token interface which allows for them to be transferred\n and authorized."},"fullyImplemented":false,"id":35221,"linearizedBaseContracts":[35221,14016,7479,7506,7092,9849,14032,14058,14077],"name":"INonfungiblePositionManager","nameLocation":"763:27:110","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":35046,"nodeType":"StructuredDocumentation","src":"938:458:110","text":"@notice Emitted when liquidity is increased for a position NFT\n @dev Also emitted when a token is minted\n @param tokenId The ID of the token for which liquidity was increased\n @param liquidity The amount by which liquidity for the NFT position was increased\n @param amount0 The amount of token0 that was paid for the increase in liquidity\n @param amount1 The amount of token1 that was paid for the increase in liquidity"},"id":35056,"name":"IncreaseLiquidity","nameLocation":"1407:17:110","nodeType":"EventDefinition","parameters":{"id":35055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35048,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"1450:7:110","nodeType":"VariableDeclaration","scope":35056,"src":"1434:23:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1434:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35050,"indexed":false,"mutability":"mutable","name":"liquidity","nameLocation":"1475:9:110","nodeType":"VariableDeclaration","scope":35056,"src":"1467:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35049,"name":"uint128","nodeType":"ElementaryTypeName","src":"1467:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35052,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"1502:7:110","nodeType":"VariableDeclaration","scope":35056,"src":"1494:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35051,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35054,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"1527:7:110","nodeType":"VariableDeclaration","scope":35056,"src":"1519:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1424:116:110"},"src":"1401:140:110"},{"anonymous":false,"documentation":{"id":35057,"nodeType":"StructuredDocumentation","src":"1546:419:110","text":"@notice Emitted when liquidity is decreased for a position NFT\n @param tokenId The ID of the token for which liquidity was decreased\n @param liquidity The amount by which liquidity for the NFT position was decreased\n @param amount0 The amount of token0 that was accounted for the decrease in liquidity\n @param amount1 The amount of token1 that was accounted for the decrease in liquidity"},"id":35067,"name":"DecreaseLiquidity","nameLocation":"1976:17:110","nodeType":"EventDefinition","parameters":{"id":35066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35059,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"2019:7:110","nodeType":"VariableDeclaration","scope":35067,"src":"2003:23:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35058,"name":"uint256","nodeType":"ElementaryTypeName","src":"2003:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35061,"indexed":false,"mutability":"mutable","name":"liquidity","nameLocation":"2044:9:110","nodeType":"VariableDeclaration","scope":35067,"src":"2036:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35060,"name":"uint128","nodeType":"ElementaryTypeName","src":"2036:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35063,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"2071:7:110","nodeType":"VariableDeclaration","scope":35067,"src":"2063:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35062,"name":"uint256","nodeType":"ElementaryTypeName","src":"2063:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35065,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"2096:7:110","nodeType":"VariableDeclaration","scope":35067,"src":"2088:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35064,"name":"uint256","nodeType":"ElementaryTypeName","src":"2088:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1993:116:110"},"src":"1970:140:110"},{"anonymous":false,"documentation":{"id":35068,"nodeType":"StructuredDocumentation","src":"2115:522:110","text":"@notice Emitted when tokens are collected for a position NFT\n @dev The amounts reported may not be exactly equivalent to the amounts transferred, due to rounding behavior\n @param tokenId The ID of the token for which underlying tokens were collected\n @param recipient The address of the account that received the collected tokens\n @param amount0 The amount of token0 owed to the position that was collected\n @param amount1 The amount of token1 owed to the position that was collected"},"id":35078,"name":"Collect","nameLocation":"2648:7:110","nodeType":"EventDefinition","parameters":{"id":35077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35070,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"2681:7:110","nodeType":"VariableDeclaration","scope":35078,"src":"2665:23:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35069,"name":"uint256","nodeType":"ElementaryTypeName","src":"2665:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35072,"indexed":false,"mutability":"mutable","name":"recipient","nameLocation":"2706:9:110","nodeType":"VariableDeclaration","scope":35078,"src":"2698:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35071,"name":"address","nodeType":"ElementaryTypeName","src":"2698:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35074,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"2733:7:110","nodeType":"VariableDeclaration","scope":35078,"src":"2725:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35073,"name":"uint256","nodeType":"ElementaryTypeName","src":"2725:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35076,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"2758:7:110","nodeType":"VariableDeclaration","scope":35078,"src":"2750:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35075,"name":"uint256","nodeType":"ElementaryTypeName","src":"2750:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2655:116:110"},"src":"2642:130:110"},{"documentation":{"id":35079,"nodeType":"StructuredDocumentation","src":"2778:1157:110","text":"@notice Returns the position information associated with a given token ID.\n @dev Throws if the token ID is not valid.\n @param tokenId The ID of the token that represents the position\n @return nonce The nonce for permits\n @return operator The address that is approved for spending\n @return token0 The address of the token0 for a specific pool\n @return token1 The address of the token1 for a specific pool\n @return fee The fee associated with the pool\n @return tickLower The lower end of the tick range for the position\n @return tickUpper The higher end of the tick range for the position\n @return liquidity The liquidity of the position\n @return feeGrowthInside0LastX128 The fee growth of token0 as of the last action on the individual position\n @return feeGrowthInside1LastX128 The fee growth of token1 as of the last action on the individual position\n @return tokensOwed0 The uncollected amount of token0 owed to the position as of the last computation\n @return tokensOwed1 The uncollected amount of token1 owed to the position as of the last computation"},"functionSelector":"99fbab88","id":35108,"implemented":false,"kind":"function","modifiers":[],"name":"positions","nameLocation":"3949:9:110","nodeType":"FunctionDefinition","parameters":{"id":35082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35081,"mutability":"mutable","name":"tokenId","nameLocation":"3967:7:110","nodeType":"VariableDeclaration","scope":35108,"src":"3959:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35080,"name":"uint256","nodeType":"ElementaryTypeName","src":"3959:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3958:17:110"},"returnParameters":{"id":35107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35084,"mutability":"mutable","name":"nonce","nameLocation":"4043:5:110","nodeType":"VariableDeclaration","scope":35108,"src":"4036:12:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":35083,"name":"uint96","nodeType":"ElementaryTypeName","src":"4036:6:110","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":35086,"mutability":"mutable","name":"operator","nameLocation":"4070:8:110","nodeType":"VariableDeclaration","scope":35108,"src":"4062:16:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35085,"name":"address","nodeType":"ElementaryTypeName","src":"4062:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35088,"mutability":"mutable","name":"token0","nameLocation":"4100:6:110","nodeType":"VariableDeclaration","scope":35108,"src":"4092:14:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35087,"name":"address","nodeType":"ElementaryTypeName","src":"4092:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35090,"mutability":"mutable","name":"token1","nameLocation":"4128:6:110","nodeType":"VariableDeclaration","scope":35108,"src":"4120:14:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35089,"name":"address","nodeType":"ElementaryTypeName","src":"4120:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35092,"mutability":"mutable","name":"fee","nameLocation":"4155:3:110","nodeType":"VariableDeclaration","scope":35108,"src":"4148:10:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":35091,"name":"uint24","nodeType":"ElementaryTypeName","src":"4148:6:110","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":35094,"mutability":"mutable","name":"tickLower","nameLocation":"4178:9:110","nodeType":"VariableDeclaration","scope":35108,"src":"4172:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":35093,"name":"int24","nodeType":"ElementaryTypeName","src":"4172:5:110","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":35096,"mutability":"mutable","name":"tickUpper","nameLocation":"4207:9:110","nodeType":"VariableDeclaration","scope":35108,"src":"4201:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":35095,"name":"int24","nodeType":"ElementaryTypeName","src":"4201:5:110","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":35098,"mutability":"mutable","name":"liquidity","nameLocation":"4238:9:110","nodeType":"VariableDeclaration","scope":35108,"src":"4230:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35097,"name":"uint128","nodeType":"ElementaryTypeName","src":"4230:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35100,"mutability":"mutable","name":"feeGrowthInside0LastX128","nameLocation":"4269:24:110","nodeType":"VariableDeclaration","scope":35108,"src":"4261:32:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35099,"name":"uint256","nodeType":"ElementaryTypeName","src":"4261:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35102,"mutability":"mutable","name":"feeGrowthInside1LastX128","nameLocation":"4315:24:110","nodeType":"VariableDeclaration","scope":35108,"src":"4307:32:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35101,"name":"uint256","nodeType":"ElementaryTypeName","src":"4307:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35104,"mutability":"mutable","name":"tokensOwed0","nameLocation":"4361:11:110","nodeType":"VariableDeclaration","scope":35108,"src":"4353:19:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35103,"name":"uint128","nodeType":"ElementaryTypeName","src":"4353:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35106,"mutability":"mutable","name":"tokensOwed1","nameLocation":"4394:11:110","nodeType":"VariableDeclaration","scope":35108,"src":"4386:19:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35105,"name":"uint128","nodeType":"ElementaryTypeName","src":"4386:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4022:393:110"},"scope":35221,"src":"3940:476:110","stateMutability":"view","virtual":false,"visibility":"external"},{"canonicalName":"INonfungiblePositionManager.MintParams","id":35131,"members":[{"constant":false,"id":35110,"mutability":"mutable","name":"token0","nameLocation":"4458:6:110","nodeType":"VariableDeclaration","scope":35131,"src":"4450:14:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35109,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35112,"mutability":"mutable","name":"token1","nameLocation":"4482:6:110","nodeType":"VariableDeclaration","scope":35131,"src":"4474:14:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35111,"name":"address","nodeType":"ElementaryTypeName","src":"4474:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35114,"mutability":"mutable","name":"fee","nameLocation":"4505:3:110","nodeType":"VariableDeclaration","scope":35131,"src":"4498:10:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":35113,"name":"uint24","nodeType":"ElementaryTypeName","src":"4498:6:110","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":35116,"mutability":"mutable","name":"tickLower","nameLocation":"4524:9:110","nodeType":"VariableDeclaration","scope":35131,"src":"4518:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":35115,"name":"int24","nodeType":"ElementaryTypeName","src":"4518:5:110","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":35118,"mutability":"mutable","name":"tickUpper","nameLocation":"4549:9:110","nodeType":"VariableDeclaration","scope":35131,"src":"4543:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":35117,"name":"int24","nodeType":"ElementaryTypeName","src":"4543:5:110","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":35120,"mutability":"mutable","name":"amount0Desired","nameLocation":"4576:14:110","nodeType":"VariableDeclaration","scope":35131,"src":"4568:22:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4568:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35122,"mutability":"mutable","name":"amount1Desired","nameLocation":"4608:14:110","nodeType":"VariableDeclaration","scope":35131,"src":"4600:22:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35121,"name":"uint256","nodeType":"ElementaryTypeName","src":"4600:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35124,"mutability":"mutable","name":"amount0Min","nameLocation":"4640:10:110","nodeType":"VariableDeclaration","scope":35131,"src":"4632:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4632:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35126,"mutability":"mutable","name":"amount1Min","nameLocation":"4668:10:110","nodeType":"VariableDeclaration","scope":35131,"src":"4660:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35125,"name":"uint256","nodeType":"ElementaryTypeName","src":"4660:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35128,"mutability":"mutable","name":"recipient","nameLocation":"4696:9:110","nodeType":"VariableDeclaration","scope":35131,"src":"4688:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35127,"name":"address","nodeType":"ElementaryTypeName","src":"4688:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35130,"mutability":"mutable","name":"deadline","nameLocation":"4723:8:110","nodeType":"VariableDeclaration","scope":35131,"src":"4715:16:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35129,"name":"uint256","nodeType":"ElementaryTypeName","src":"4715:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"MintParams","nameLocation":"4429:10:110","nodeType":"StructDefinition","scope":35221,"src":"4422:316:110","visibility":"public"},{"documentation":{"id":35132,"nodeType":"StructuredDocumentation","src":"4744:586:110","text":"@notice Creates a new position wrapped in a NFT\n @dev Call this when the pool does exist and is initialized. Note that if the pool is created but not initialized\n a method does not exist, i.e. the pool is assumed to be initialized.\n @param params The params necessary to mint a position, encoded as `MintParams` in calldata\n @return tokenId The ID of the token that represents the minted position\n @return liquidity The amount of liquidity for this position\n @return amount0 The amount of token0\n @return amount1 The amount of token1"},"functionSelector":"88316456","id":35146,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"5344:4:110","nodeType":"FunctionDefinition","parameters":{"id":35136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35135,"mutability":"mutable","name":"params","nameLocation":"5369:6:110","nodeType":"VariableDeclaration","scope":35146,"src":"5349:26:110","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MintParams_$35131_calldata_ptr","typeString":"struct INonfungiblePositionManager.MintParams"},"typeName":{"id":35134,"nodeType":"UserDefinedTypeName","pathNode":{"id":35133,"name":"MintParams","nodeType":"IdentifierPath","referencedDeclaration":35131,"src":"5349:10:110"},"referencedDeclaration":35131,"src":"5349:10:110","typeDescriptions":{"typeIdentifier":"t_struct$_MintParams_$35131_storage_ptr","typeString":"struct INonfungiblePositionManager.MintParams"}},"visibility":"internal"}],"src":"5348:28:110"},"returnParameters":{"id":35145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35138,"mutability":"mutable","name":"tokenId","nameLocation":"5448:7:110","nodeType":"VariableDeclaration","scope":35146,"src":"5440:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35137,"name":"uint256","nodeType":"ElementaryTypeName","src":"5440:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35140,"mutability":"mutable","name":"liquidity","nameLocation":"5477:9:110","nodeType":"VariableDeclaration","scope":35146,"src":"5469:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35139,"name":"uint128","nodeType":"ElementaryTypeName","src":"5469:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35142,"mutability":"mutable","name":"amount0","nameLocation":"5508:7:110","nodeType":"VariableDeclaration","scope":35146,"src":"5500:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35141,"name":"uint256","nodeType":"ElementaryTypeName","src":"5500:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35144,"mutability":"mutable","name":"amount1","nameLocation":"5537:7:110","nodeType":"VariableDeclaration","scope":35146,"src":"5529:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35143,"name":"uint256","nodeType":"ElementaryTypeName","src":"5529:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5426:128:110"},"scope":35221,"src":"5335:220:110","stateMutability":"payable","virtual":false,"visibility":"external"},{"canonicalName":"INonfungiblePositionManager.IncreaseLiquidityParams","id":35159,"members":[{"constant":false,"id":35148,"mutability":"mutable","name":"tokenId","nameLocation":"5610:7:110","nodeType":"VariableDeclaration","scope":35159,"src":"5602:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35147,"name":"uint256","nodeType":"ElementaryTypeName","src":"5602:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35150,"mutability":"mutable","name":"amount0Desired","nameLocation":"5635:14:110","nodeType":"VariableDeclaration","scope":35159,"src":"5627:22:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35149,"name":"uint256","nodeType":"ElementaryTypeName","src":"5627:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35152,"mutability":"mutable","name":"amount1Desired","nameLocation":"5667:14:110","nodeType":"VariableDeclaration","scope":35159,"src":"5659:22:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35151,"name":"uint256","nodeType":"ElementaryTypeName","src":"5659:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35154,"mutability":"mutable","name":"amount0Min","nameLocation":"5699:10:110","nodeType":"VariableDeclaration","scope":35159,"src":"5691:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35153,"name":"uint256","nodeType":"ElementaryTypeName","src":"5691:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35156,"mutability":"mutable","name":"amount1Min","nameLocation":"5727:10:110","nodeType":"VariableDeclaration","scope":35159,"src":"5719:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35155,"name":"uint256","nodeType":"ElementaryTypeName","src":"5719:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35158,"mutability":"mutable","name":"deadline","nameLocation":"5755:8:110","nodeType":"VariableDeclaration","scope":35159,"src":"5747:16:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35157,"name":"uint256","nodeType":"ElementaryTypeName","src":"5747:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"IncreaseLiquidityParams","nameLocation":"5568:23:110","nodeType":"StructDefinition","scope":35221,"src":"5561:209:110","visibility":"public"},{"documentation":{"id":35160,"nodeType":"StructuredDocumentation","src":"5776:821:110","text":"@notice Increases the amount of liquidity in a position, with tokens paid by the `msg.sender`\n @param params tokenId The ID of the token for which liquidity is being increased,\n amount0Desired The desired amount of token0 to be spent,\n amount1Desired The desired amount of token1 to be spent,\n amount0Min The minimum amount of token0 to spend, which serves as a slippage check,\n amount1Min The minimum amount of token1 to spend, which serves as a slippage check,\n deadline The time by which the transaction must be included to effect the change\n @return liquidity The new liquidity amount as a result of the increase\n @return amount0 The amount of token0 to acheive resulting liquidity\n @return amount1 The amount of token1 to acheive resulting liquidity"},"functionSelector":"219f5d17","id":35172,"implemented":false,"kind":"function","modifiers":[],"name":"increaseLiquidity","nameLocation":"6611:17:110","nodeType":"FunctionDefinition","parameters":{"id":35164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35163,"mutability":"mutable","name":"params","nameLocation":"6662:6:110","nodeType":"VariableDeclaration","scope":35172,"src":"6629:39:110","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_IncreaseLiquidityParams_$35159_calldata_ptr","typeString":"struct INonfungiblePositionManager.IncreaseLiquidityParams"},"typeName":{"id":35162,"nodeType":"UserDefinedTypeName","pathNode":{"id":35161,"name":"IncreaseLiquidityParams","nodeType":"IdentifierPath","referencedDeclaration":35159,"src":"6629:23:110"},"referencedDeclaration":35159,"src":"6629:23:110","typeDescriptions":{"typeIdentifier":"t_struct$_IncreaseLiquidityParams_$35159_storage_ptr","typeString":"struct INonfungiblePositionManager.IncreaseLiquidityParams"}},"visibility":"internal"}],"src":"6628:41:110"},"returnParameters":{"id":35171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35166,"mutability":"mutable","name":"liquidity","nameLocation":"6741:9:110","nodeType":"VariableDeclaration","scope":35172,"src":"6733:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35165,"name":"uint128","nodeType":"ElementaryTypeName","src":"6733:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35168,"mutability":"mutable","name":"amount0","nameLocation":"6772:7:110","nodeType":"VariableDeclaration","scope":35172,"src":"6764:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35167,"name":"uint256","nodeType":"ElementaryTypeName","src":"6764:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35170,"mutability":"mutable","name":"amount1","nameLocation":"6801:7:110","nodeType":"VariableDeclaration","scope":35172,"src":"6793:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35169,"name":"uint256","nodeType":"ElementaryTypeName","src":"6793:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6719:99:110"},"scope":35221,"src":"6602:217:110","stateMutability":"payable","virtual":false,"visibility":"external"},{"canonicalName":"INonfungiblePositionManager.DecreaseLiquidityParams","id":35183,"members":[{"constant":false,"id":35174,"mutability":"mutable","name":"tokenId","nameLocation":"6874:7:110","nodeType":"VariableDeclaration","scope":35183,"src":"6866:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35173,"name":"uint256","nodeType":"ElementaryTypeName","src":"6866:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35176,"mutability":"mutable","name":"liquidity","nameLocation":"6899:9:110","nodeType":"VariableDeclaration","scope":35183,"src":"6891:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35175,"name":"uint128","nodeType":"ElementaryTypeName","src":"6891:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35178,"mutability":"mutable","name":"amount0Min","nameLocation":"6926:10:110","nodeType":"VariableDeclaration","scope":35183,"src":"6918:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35177,"name":"uint256","nodeType":"ElementaryTypeName","src":"6918:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35180,"mutability":"mutable","name":"amount1Min","nameLocation":"6954:10:110","nodeType":"VariableDeclaration","scope":35183,"src":"6946:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35179,"name":"uint256","nodeType":"ElementaryTypeName","src":"6946:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35182,"mutability":"mutable","name":"deadline","nameLocation":"6982:8:110","nodeType":"VariableDeclaration","scope":35183,"src":"6974:16:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35181,"name":"uint256","nodeType":"ElementaryTypeName","src":"6974:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"DecreaseLiquidityParams","nameLocation":"6832:23:110","nodeType":"StructDefinition","scope":35221,"src":"6825:172:110","visibility":"public"},{"documentation":{"id":35184,"nodeType":"StructuredDocumentation","src":"7003:702:110","text":"@notice Decreases the amount of liquidity in a position and accounts it to the position\n @param params tokenId The ID of the token for which liquidity is being decreased,\n amount The amount by which liquidity will be decreased,\n amount0Min The minimum amount of token0 that should be accounted for the burned liquidity,\n amount1Min The minimum amount of token1 that should be accounted for the burned liquidity,\n deadline The time by which the transaction must be included to effect the change\n @return amount0 The amount of token0 accounted to the position's tokens owed\n @return amount1 The amount of token1 accounted to the position's tokens owed"},"functionSelector":"0c49ccbe","id":35194,"implemented":false,"kind":"function","modifiers":[],"name":"decreaseLiquidity","nameLocation":"7719:17:110","nodeType":"FunctionDefinition","parameters":{"id":35188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35187,"mutability":"mutable","name":"params","nameLocation":"7770:6:110","nodeType":"VariableDeclaration","scope":35194,"src":"7737:39:110","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_DecreaseLiquidityParams_$35183_calldata_ptr","typeString":"struct INonfungiblePositionManager.DecreaseLiquidityParams"},"typeName":{"id":35186,"nodeType":"UserDefinedTypeName","pathNode":{"id":35185,"name":"DecreaseLiquidityParams","nodeType":"IdentifierPath","referencedDeclaration":35183,"src":"7737:23:110"},"referencedDeclaration":35183,"src":"7737:23:110","typeDescriptions":{"typeIdentifier":"t_struct$_DecreaseLiquidityParams_$35183_storage_ptr","typeString":"struct INonfungiblePositionManager.DecreaseLiquidityParams"}},"visibility":"internal"}],"src":"7736:41:110"},"returnParameters":{"id":35193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35190,"mutability":"mutable","name":"amount0","nameLocation":"7836:7:110","nodeType":"VariableDeclaration","scope":35194,"src":"7828:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35189,"name":"uint256","nodeType":"ElementaryTypeName","src":"7828:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35192,"mutability":"mutable","name":"amount1","nameLocation":"7853:7:110","nodeType":"VariableDeclaration","scope":35194,"src":"7845:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35191,"name":"uint256","nodeType":"ElementaryTypeName","src":"7845:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7827:34:110"},"scope":35221,"src":"7710:152:110","stateMutability":"payable","virtual":false,"visibility":"external"},{"canonicalName":"INonfungiblePositionManager.CollectParams","id":35203,"members":[{"constant":false,"id":35196,"mutability":"mutable","name":"tokenId","nameLocation":"7907:7:110","nodeType":"VariableDeclaration","scope":35203,"src":"7899:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35195,"name":"uint256","nodeType":"ElementaryTypeName","src":"7899:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35198,"mutability":"mutable","name":"recipient","nameLocation":"7932:9:110","nodeType":"VariableDeclaration","scope":35203,"src":"7924:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35197,"name":"address","nodeType":"ElementaryTypeName","src":"7924:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35200,"mutability":"mutable","name":"amount0Max","nameLocation":"7959:10:110","nodeType":"VariableDeclaration","scope":35203,"src":"7951:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35199,"name":"uint128","nodeType":"ElementaryTypeName","src":"7951:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":35202,"mutability":"mutable","name":"amount1Max","nameLocation":"7987:10:110","nodeType":"VariableDeclaration","scope":35203,"src":"7979:18:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35201,"name":"uint128","nodeType":"ElementaryTypeName","src":"7979:7:110","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CollectParams","nameLocation":"7875:13:110","nodeType":"StructDefinition","scope":35221,"src":"7868:136:110","visibility":"public"},{"documentation":{"id":35204,"nodeType":"StructuredDocumentation","src":"8010:489:110","text":"@notice Collects up to a maximum amount of fees owed to a specific position to the recipient\n @param params tokenId The ID of the NFT for which tokens are being collected,\n recipient The account that should receive the tokens,\n amount0Max The maximum amount of token0 to collect,\n amount1Max The maximum amount of token1 to collect\n @return amount0 The amount of fees collected in token0\n @return amount1 The amount of fees collected in token1"},"functionSelector":"fc6f7865","id":35214,"implemented":false,"kind":"function","modifiers":[],"name":"collect","nameLocation":"8513:7:110","nodeType":"FunctionDefinition","parameters":{"id":35208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35207,"mutability":"mutable","name":"params","nameLocation":"8544:6:110","nodeType":"VariableDeclaration","scope":35214,"src":"8521:29:110","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CollectParams_$35203_calldata_ptr","typeString":"struct INonfungiblePositionManager.CollectParams"},"typeName":{"id":35206,"nodeType":"UserDefinedTypeName","pathNode":{"id":35205,"name":"CollectParams","nodeType":"IdentifierPath","referencedDeclaration":35203,"src":"8521:13:110"},"referencedDeclaration":35203,"src":"8521:13:110","typeDescriptions":{"typeIdentifier":"t_struct$_CollectParams_$35203_storage_ptr","typeString":"struct INonfungiblePositionManager.CollectParams"}},"visibility":"internal"}],"src":"8520:31:110"},"returnParameters":{"id":35213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35210,"mutability":"mutable","name":"amount0","nameLocation":"8610:7:110","nodeType":"VariableDeclaration","scope":35214,"src":"8602:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35209,"name":"uint256","nodeType":"ElementaryTypeName","src":"8602:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35212,"mutability":"mutable","name":"amount1","nameLocation":"8627:7:110","nodeType":"VariableDeclaration","scope":35214,"src":"8619:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35211,"name":"uint256","nodeType":"ElementaryTypeName","src":"8619:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8601:34:110"},"scope":35221,"src":"8504:132:110","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":35215,"nodeType":"StructuredDocumentation","src":"8642:213:110","text":"@notice Burns a token ID, which deletes it from the NFT contract. The token must have 0 liquidity and all tokens\n must be collected first.\n @param tokenId The ID of the token that is being burned"},"functionSelector":"42966c68","id":35220,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"8869:4:110","nodeType":"FunctionDefinition","parameters":{"id":35218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35217,"mutability":"mutable","name":"tokenId","nameLocation":"8882:7:110","nodeType":"VariableDeclaration","scope":35220,"src":"8874:15:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35216,"name":"uint256","nodeType":"ElementaryTypeName","src":"8874:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8873:17:110"},"returnParameters":{"id":35219,"nodeType":"ParameterList","parameters":[],"src":"8907:0:110"},"scope":35221,"src":"8860:48:110","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":35222,"src":"753:8157:110","usedErrors":[]}],"src":"32:8879:110"},"id":110},"contracts/interfaces/IOldVotingEscrow.sol":{"ast":{"absolutePath":"contracts/interfaces/IOldVotingEscrow.sol","exportedSymbols":{"IERC721":[7092],"IERC721Receiver":[7110],"IOldVotingEscrow":[35352]},"id":35353,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35223,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:111"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","file":"@openzeppelin/contracts/interfaces/IERC721.sol","id":35225,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35353,"sourceUnit":4761,"src":"58:71:111","symbolAliases":[{"foreign":{"id":35224,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:7:111","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721Receiver.sol","file":"@openzeppelin/contracts/interfaces/IERC721Receiver.sol","id":35227,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35353,"sourceUnit":4764,"src":"130:87:111","symbolAliases":[{"foreign":{"id":35226,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"src":"138:15:111","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":35228,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":7092,"src":"249:7:111"},"id":35229,"nodeType":"InheritanceSpecifier","src":"249:7:111"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35352,"linearizedBaseContracts":[35352,7092,9849],"name":"IOldVotingEscrow","nameLocation":"229:16:111","nodeType":"ContractDefinition","nodes":[{"functionSelector":"fc0c546a","id":35234,"implemented":false,"kind":"function","modifiers":[],"name":"token","nameLocation":"270:5:111","nodeType":"FunctionDefinition","parameters":{"id":35230,"nodeType":"ParameterList","parameters":[],"src":"275:2:111"},"returnParameters":{"id":35233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35234,"src":"301:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35231,"name":"address","nodeType":"ElementaryTypeName","src":"301:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"300:9:111"},"scope":35352,"src":"261:49:111","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e7e242d4","id":35241,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfNFT","nameLocation":"323:12:111","nodeType":"FunctionDefinition","parameters":{"id":35237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35241,"src":"336:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35235,"name":"uint256","nodeType":"ElementaryTypeName","src":"336:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"335:9:111"},"returnParameters":{"id":35240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35241,"src":"368:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35238,"name":"uint256","nodeType":"ElementaryTypeName","src":"368:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"367:9:111"},"scope":35352,"src":"314:63:111","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d490dbca","id":35246,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupplyWithoutDecay","nameLocation":"390:23:111","nodeType":"FunctionDefinition","parameters":{"id":35242,"nodeType":"ParameterList","parameters":[],"src":"413:2:111"},"returnParameters":{"id":35245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35246,"src":"439:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35243,"name":"uint256","nodeType":"ElementaryTypeName","src":"439:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"438:9:111"},"scope":35352,"src":"381:67:111","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"430c2081","id":35255,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedOrOwner","nameLocation":"461:17:111","nodeType":"FunctionDefinition","parameters":{"id":35251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35255,"src":"479:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35247,"name":"address","nodeType":"ElementaryTypeName","src":"479:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35255,"src":"488:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35249,"name":"uint256","nodeType":"ElementaryTypeName","src":"488:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"478:18:111"},"returnParameters":{"id":35254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35255,"src":"520:4:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35252,"name":"bool","nodeType":"ElementaryTypeName","src":"520:4:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"519:6:111"},"scope":35352,"src":"452:74:111","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fbd3a29d","id":35260,"implemented":false,"kind":"function","modifiers":[],"name":"attach","nameLocation":"539:6:111","nodeType":"FunctionDefinition","parameters":{"id":35258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35257,"mutability":"mutable","name":"tokenId","nameLocation":"554:7:111","nodeType":"VariableDeclaration","scope":35260,"src":"546:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35256,"name":"uint256","nodeType":"ElementaryTypeName","src":"546:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"545:17:111"},"returnParameters":{"id":35259,"nodeType":"ParameterList","parameters":[],"src":"571:0:111"},"scope":35352,"src":"530:42:111","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"986b7d8a","id":35265,"implemented":false,"kind":"function","modifiers":[],"name":"detach","nameLocation":"585:6:111","nodeType":"FunctionDefinition","parameters":{"id":35263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35262,"mutability":"mutable","name":"tokenId","nameLocation":"600:7:111","nodeType":"VariableDeclaration","scope":35265,"src":"592:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35261,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:17:111"},"returnParameters":{"id":35264,"nodeType":"ParameterList","parameters":[],"src":"617:0:111"},"scope":35352,"src":"576:42:111","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fd4a77f1","id":35270,"implemented":false,"kind":"function","modifiers":[],"name":"voting","nameLocation":"631:6:111","nodeType":"FunctionDefinition","parameters":{"id":35268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35267,"mutability":"mutable","name":"tokenId","nameLocation":"646:7:111","nodeType":"VariableDeclaration","scope":35270,"src":"638:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35266,"name":"uint256","nodeType":"ElementaryTypeName","src":"638:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"637:17:111"},"returnParameters":{"id":35269,"nodeType":"ParameterList","parameters":[],"src":"663:0:111"},"scope":35352,"src":"622:42:111","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c1f0fb9f","id":35275,"implemented":false,"kind":"function","modifiers":[],"name":"abstain","nameLocation":"677:7:111","nodeType":"FunctionDefinition","parameters":{"id":35273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35272,"mutability":"mutable","name":"tokenId","nameLocation":"693:7:111","nodeType":"VariableDeclaration","scope":35275,"src":"685:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35271,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"684:17:111"},"returnParameters":{"id":35274,"nodeType":"ParameterList","parameters":[],"src":"710:0:111"},"scope":35352,"src":"668:43:111","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":35280,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"724:11:111","nodeType":"FunctionDefinition","parameters":{"id":35276,"nodeType":"ParameterList","parameters":[],"src":"735:2:111"},"returnParameters":{"id":35279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35280,"src":"761:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35277,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:111"},"scope":35352,"src":"715:55:111","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b5c1bb1f","id":35289,"implemented":false,"kind":"function","modifiers":[],"name":"votingPowerOfAtTs","nameLocation":"783:17:111","nodeType":"FunctionDefinition","parameters":{"id":35285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35282,"mutability":"mutable","name":"_owner","nameLocation":"809:6:111","nodeType":"VariableDeclaration","scope":35289,"src":"801:14:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35281,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35284,"mutability":"mutable","name":"timestamp","nameLocation":"825:9:111","nodeType":"VariableDeclaration","scope":35289,"src":"817:17:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35283,"name":"uint256","nodeType":"ElementaryTypeName","src":"817:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"800:35:111"},"returnParameters":{"id":35288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35287,"mutability":"mutable","name":"_power","nameLocation":"879:6:111","nodeType":"VariableDeclaration","scope":35289,"src":"871:14:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35286,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"870:16:111"},"scope":35352,"src":"774:113:111","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"63083e9b","id":35298,"implemented":false,"kind":"function","modifiers":[],"name":"votingPowerOfAtBlk","nameLocation":"900:18:111","nodeType":"FunctionDefinition","parameters":{"id":35294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35291,"mutability":"mutable","name":"_owner","nameLocation":"927:6:111","nodeType":"VariableDeclaration","scope":35298,"src":"919:14:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35290,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35293,"mutability":"mutable","name":"blk","nameLocation":"943:3:111","nodeType":"VariableDeclaration","scope":35298,"src":"935:11:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35292,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"918:29:111"},"returnParameters":{"id":35297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35296,"mutability":"mutable","name":"_power","nameLocation":"991:6:111","nodeType":"VariableDeclaration","scope":35298,"src":"983:14:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35295,"name":"uint256","nodeType":"ElementaryTypeName","src":"983:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"982:16:111"},"scope":35352,"src":"891:108:111","stateMutability":"view","virtual":false,"visibility":"external"},{"canonicalName":"IOldVotingEscrow.DepositType","id":35304,"members":[{"id":35299,"name":"DEPOSIT_FOR_TYPE","nameLocation":"1026:16:111","nodeType":"EnumValue","src":"1026:16:111"},{"id":35300,"name":"CREATE_LOCK_TYPE","nameLocation":"1048:16:111","nodeType":"EnumValue","src":"1048:16:111"},{"id":35301,"name":"INCREASE_LOCK_AMOUNT","nameLocation":"1070:20:111","nodeType":"EnumValue","src":"1070:20:111"},{"id":35302,"name":"INCREASE_UNLOCK_TIME","nameLocation":"1096:20:111","nodeType":"EnumValue","src":"1096:20:111"},{"id":35303,"name":"MERGE_TYPE","nameLocation":"1122:10:111","nodeType":"EnumValue","src":"1122:10:111"}],"name":"DepositType","nameLocation":"1008:11:111","nodeType":"EnumDefinition","src":"1003:133:111"},{"canonicalName":"IOldVotingEscrow.Point","id":35313,"members":[{"constant":false,"id":35306,"mutability":"mutable","name":"bias","nameLocation":"1166:4:111","nodeType":"VariableDeclaration","scope":35313,"src":"1159:11:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":35305,"name":"int128","nodeType":"ElementaryTypeName","src":"1159:6:111","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":35308,"mutability":"mutable","name":"slope","nameLocation":"1183:5:111","nodeType":"VariableDeclaration","scope":35313,"src":"1176:12:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":35307,"name":"int128","nodeType":"ElementaryTypeName","src":"1176:6:111","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":35310,"mutability":"mutable","name":"ts","nameLocation":"1221:2:111","nodeType":"VariableDeclaration","scope":35313,"src":"1213:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35309,"name":"uint256","nodeType":"ElementaryTypeName","src":"1213:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35312,"mutability":"mutable","name":"blk","nameLocation":"1237:3:111","nodeType":"VariableDeclaration","scope":35313,"src":"1229:11:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35311,"name":"uint256","nodeType":"ElementaryTypeName","src":"1229:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Point","nameLocation":"1147:5:111","nodeType":"StructDefinition","scope":35352,"src":"1140:114:111","visibility":"public"},{"canonicalName":"IOldVotingEscrow.LockedBalance","id":35320,"members":[{"constant":false,"id":35315,"mutability":"mutable","name":"amount","nameLocation":"1505:6:111","nodeType":"VariableDeclaration","scope":35320,"src":"1498:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":35314,"name":"int128","nodeType":"ElementaryTypeName","src":"1498:6:111","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":35317,"mutability":"mutable","name":"end","nameLocation":"1525:3:111","nodeType":"VariableDeclaration","scope":35320,"src":"1517:11:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35316,"name":"uint256","nodeType":"ElementaryTypeName","src":"1517:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35319,"mutability":"mutable","name":"start","nameLocation":"1542:5:111","nodeType":"VariableDeclaration","scope":35320,"src":"1534:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1534:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"LockedBalance","nameLocation":"1478:13:111","nodeType":"StructDefinition","scope":35352,"src":"1471:81:111","visibility":"public"},{"anonymous":false,"id":35335,"name":"Deposit","nameLocation":"1562:7:111","nodeType":"EventDefinition","parameters":{"id":35334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35322,"indexed":true,"mutability":"mutable","name":"provider","nameLocation":"1591:8:111","nodeType":"VariableDeclaration","scope":35335,"src":"1575:24:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35321,"name":"address","nodeType":"ElementaryTypeName","src":"1575:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35324,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1613:7:111","nodeType":"VariableDeclaration","scope":35335,"src":"1605:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35323,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35326,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1634:5:111","nodeType":"VariableDeclaration","scope":35335,"src":"1626:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35325,"name":"uint256","nodeType":"ElementaryTypeName","src":"1626:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35328,"indexed":true,"mutability":"mutable","name":"locktime","nameLocation":"1661:8:111","nodeType":"VariableDeclaration","scope":35335,"src":"1645:24:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35327,"name":"uint256","nodeType":"ElementaryTypeName","src":"1645:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35331,"indexed":false,"mutability":"mutable","name":"deposit_type","nameLocation":"1687:12:111","nodeType":"VariableDeclaration","scope":35335,"src":"1675:24:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$35304","typeString":"enum IOldVotingEscrow.DepositType"},"typeName":{"id":35330,"nodeType":"UserDefinedTypeName","pathNode":{"id":35329,"name":"DepositType","nodeType":"IdentifierPath","referencedDeclaration":35304,"src":"1675:11:111"},"referencedDeclaration":35304,"src":"1675:11:111","typeDescriptions":{"typeIdentifier":"t_enum$_DepositType_$35304","typeString":"enum IOldVotingEscrow.DepositType"}},"visibility":"internal"},{"constant":false,"id":35333,"indexed":false,"mutability":"mutable","name":"ts","nameLocation":"1713:2:111","nodeType":"VariableDeclaration","scope":35335,"src":"1705:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35332,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1569:150:111"},"src":"1556:164:111"},{"anonymous":false,"id":35345,"name":"Withdraw","nameLocation":"1730:8:111","nodeType":"EventDefinition","parameters":{"id":35344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35337,"indexed":true,"mutability":"mutable","name":"provider","nameLocation":"1760:8:111","nodeType":"VariableDeclaration","scope":35345,"src":"1744:24:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35336,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35339,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1782:7:111","nodeType":"VariableDeclaration","scope":35345,"src":"1774:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35338,"name":"uint256","nodeType":"ElementaryTypeName","src":"1774:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35341,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1803:5:111","nodeType":"VariableDeclaration","scope":35345,"src":"1795:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35340,"name":"uint256","nodeType":"ElementaryTypeName","src":"1795:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35343,"indexed":false,"mutability":"mutable","name":"ts","nameLocation":"1822:2:111","nodeType":"VariableDeclaration","scope":35345,"src":"1814:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35342,"name":"uint256","nodeType":"ElementaryTypeName","src":"1814:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1738:90:111"},"src":"1724:105:111"},{"anonymous":false,"id":35351,"name":"Supply","nameLocation":"1839:6:111","nodeType":"EventDefinition","parameters":{"id":35350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35347,"indexed":false,"mutability":"mutable","name":"prevSupply","nameLocation":"1854:10:111","nodeType":"VariableDeclaration","scope":35351,"src":"1846:18:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35346,"name":"uint256","nodeType":"ElementaryTypeName","src":"1846:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35349,"indexed":false,"mutability":"mutable","name":"supply","nameLocation":"1874:6:111","nodeType":"VariableDeclaration","scope":35351,"src":"1866:14:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35348,"name":"uint256","nodeType":"ElementaryTypeName","src":"1866:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1845:36:111"},"src":"1833:49:111"}],"scope":35353,"src":"219:1665:111","usedErrors":[]}],"src":"33:1852:111"},"id":111},"contracts/interfaces/IPendingFeeDistributor.sol":{"ast":{"absolutePath":"contracts/interfaces/IPendingFeeDistributor.sol","exportedSymbols":{"IPendingFeeDistributor":[35391]},"id":35392,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35354,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:112"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35391,"linearizedBaseContracts":[35391],"name":"IPendingFeeDistributor","nameLocation":"68:22:112","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4b32102a","id":35368,"implemented":false,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"106:10:112","nodeType":"FunctionDefinition","parameters":{"id":35364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35356,"mutability":"mutable","name":"_tokenId","nameLocation":"134:8:112","nodeType":"VariableDeclaration","scope":35368,"src":"126:16:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35355,"name":"uint256","nodeType":"ElementaryTypeName","src":"126:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35358,"mutability":"mutable","name":"_owner","nameLocation":"160:6:112","nodeType":"VariableDeclaration","scope":35368,"src":"152:14:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35357,"name":"address","nodeType":"ElementaryTypeName","src":"152:7:112","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35360,"mutability":"mutable","name":"_reward","nameLocation":"184:7:112","nodeType":"VariableDeclaration","scope":35368,"src":"176:15:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35359,"name":"uint256","nodeType":"ElementaryTypeName","src":"176:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35363,"mutability":"mutable","name":"proof","nameLocation":"218:5:112","nodeType":"VariableDeclaration","scope":35368,"src":"201:22:112","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"201:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35362,"nodeType":"ArrayTypeName","src":"201:9:112","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"116:113:112"},"returnParameters":{"id":35367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35368,"src":"248:7:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35365,"name":"uint256","nodeType":"ElementaryTypeName","src":"248:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"247:9:112"},"scope":35391,"src":"97:160:112","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ded42d00","id":35382,"implemented":false,"kind":"function","modifiers":[],"name":"validProof","nameLocation":"272:10:112","nodeType":"FunctionDefinition","parameters":{"id":35378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35370,"mutability":"mutable","name":"_tokenId","nameLocation":"300:8:112","nodeType":"VariableDeclaration","scope":35382,"src":"292:16:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35369,"name":"uint256","nodeType":"ElementaryTypeName","src":"292:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35372,"mutability":"mutable","name":"_owner","nameLocation":"326:6:112","nodeType":"VariableDeclaration","scope":35382,"src":"318:14:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35371,"name":"address","nodeType":"ElementaryTypeName","src":"318:7:112","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35374,"mutability":"mutable","name":"_reward","nameLocation":"350:7:112","nodeType":"VariableDeclaration","scope":35382,"src":"342:15:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35373,"name":"uint256","nodeType":"ElementaryTypeName","src":"342:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35377,"mutability":"mutable","name":"proof","nameLocation":"384:5:112","nodeType":"VariableDeclaration","scope":35382,"src":"367:22:112","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"367:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35376,"nodeType":"ArrayTypeName","src":"367:9:112","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"282:113:112"},"returnParameters":{"id":35381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35382,"src":"419:4:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35379,"name":"bool","nodeType":"ElementaryTypeName","src":"419:4:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"418:6:112"},"scope":35391,"src":"263:162:112","stateMutability":"view","virtual":false,"visibility":"external"},{"anonymous":false,"id":35390,"name":"HistoricRewardPaid","nameLocation":"437:18:112","nodeType":"EventDefinition","parameters":{"id":35389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35384,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"464:2:112","nodeType":"VariableDeclaration","scope":35390,"src":"456:10:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35383,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:112","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35386,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"476:7:112","nodeType":"VariableDeclaration","scope":35390,"src":"468:15:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35385,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35388,"indexed":false,"mutability":"mutable","name":"_reward","nameLocation":"493:7:112","nodeType":"VariableDeclaration","scope":35390,"src":"485:15:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35387,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"455:46:112"},"src":"431:71:112"}],"scope":35392,"src":"58:446:112","usedErrors":[]}],"src":"33:472:112"},"id":112},"contracts/interfaces/IRegistry.sol":{"ast":{"absolutePath":"contracts/interfaces/IRegistry.sol","exportedSymbols":{"IAccessControl":[517],"IRegistry":[35522]},"id":35523,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35393,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:113"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":35395,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35523,"sourceUnit":518,"src":"58:81:113","symbolAliases":[{"foreign":{"id":35394,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:14:113","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":35396,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":517,"src":"164:14:113"},"id":35397,"nodeType":"InheritanceSpecifier","src":"164:14:113"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35522,"linearizedBaseContracts":[35522,517],"name":"IRegistry","nameLocation":"151:9:113","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":35405,"name":"MahaChanged","nameLocation":"191:11:113","nodeType":"EventDefinition","parameters":{"id":35404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35399,"indexed":true,"mutability":"mutable","name":"whom","nameLocation":"219:4:113","nodeType":"VariableDeclaration","scope":35405,"src":"203:20:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35398,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35401,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"233:4:113","nodeType":"VariableDeclaration","scope":35405,"src":"225:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35400,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35403,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"247:4:113","nodeType":"VariableDeclaration","scope":35405,"src":"239:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35402,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"202:50:113"},"src":"185:68:113"},{"anonymous":false,"id":35413,"name":"VoterChanged","nameLocation":"264:12:113","nodeType":"EventDefinition","parameters":{"id":35412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35407,"indexed":true,"mutability":"mutable","name":"whom","nameLocation":"293:4:113","nodeType":"VariableDeclaration","scope":35413,"src":"277:20:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35406,"name":"address","nodeType":"ElementaryTypeName","src":"277:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35409,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"307:4:113","nodeType":"VariableDeclaration","scope":35413,"src":"299:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35408,"name":"address","nodeType":"ElementaryTypeName","src":"299:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35411,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"321:4:113","nodeType":"VariableDeclaration","scope":35413,"src":"313:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35410,"name":"address","nodeType":"ElementaryTypeName","src":"313:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"276:50:113"},"src":"258:69:113"},{"anonymous":false,"id":35421,"name":"LockerChanged","nameLocation":"338:13:113","nodeType":"EventDefinition","parameters":{"id":35420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35415,"indexed":true,"mutability":"mutable","name":"whom","nameLocation":"368:4:113","nodeType":"VariableDeclaration","scope":35421,"src":"352:20:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35414,"name":"address","nodeType":"ElementaryTypeName","src":"352:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35417,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"382:4:113","nodeType":"VariableDeclaration","scope":35421,"src":"374:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35416,"name":"address","nodeType":"ElementaryTypeName","src":"374:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35419,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"396:4:113","nodeType":"VariableDeclaration","scope":35421,"src":"388:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35418,"name":"address","nodeType":"ElementaryTypeName","src":"388:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"351:50:113"},"src":"332:70:113"},{"anonymous":false,"id":35429,"name":"GovernorChanged","nameLocation":"413:15:113","nodeType":"EventDefinition","parameters":{"id":35428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35423,"indexed":true,"mutability":"mutable","name":"whom","nameLocation":"445:4:113","nodeType":"VariableDeclaration","scope":35429,"src":"429:20:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35422,"name":"address","nodeType":"ElementaryTypeName","src":"429:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35425,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"459:4:113","nodeType":"VariableDeclaration","scope":35429,"src":"451:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35424,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35427,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"473:4:113","nodeType":"VariableDeclaration","scope":35429,"src":"465:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35426,"name":"address","nodeType":"ElementaryTypeName","src":"465:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"428:50:113"},"src":"407:72:113"},{"anonymous":false,"id":35437,"name":"StakerChanged","nameLocation":"490:13:113","nodeType":"EventDefinition","parameters":{"id":35436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35431,"indexed":true,"mutability":"mutable","name":"whom","nameLocation":"520:4:113","nodeType":"VariableDeclaration","scope":35437,"src":"504:20:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35430,"name":"address","nodeType":"ElementaryTypeName","src":"504:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35433,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"534:4:113","nodeType":"VariableDeclaration","scope":35437,"src":"526:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35432,"name":"address","nodeType":"ElementaryTypeName","src":"526:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35435,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"548:4:113","nodeType":"VariableDeclaration","scope":35437,"src":"540:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35434,"name":"address","nodeType":"ElementaryTypeName","src":"540:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"503:50:113"},"src":"484:70:113"},{"anonymous":false,"id":35445,"name":"EmissionControllerChanged","nameLocation":"565:25:113","nodeType":"EventDefinition","parameters":{"id":35444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35439,"indexed":true,"mutability":"mutable","name":"whom","nameLocation":"616:4:113","nodeType":"VariableDeclaration","scope":35445,"src":"600:20:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35438,"name":"address","nodeType":"ElementaryTypeName","src":"600:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35441,"indexed":false,"mutability":"mutable","name":"_old","nameLocation":"638:4:113","nodeType":"VariableDeclaration","scope":35445,"src":"630:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35440,"name":"address","nodeType":"ElementaryTypeName","src":"630:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35443,"indexed":false,"mutability":"mutable","name":"_new","nameLocation":"660:4:113","nodeType":"VariableDeclaration","scope":35445,"src":"652:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35442,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"590:80:113"},"src":"559:112:113"},{"functionSelector":"3de00c36","id":35450,"implemented":false,"kind":"function","modifiers":[],"name":"maha","nameLocation":"686:4:113","nodeType":"FunctionDefinition","parameters":{"id":35446,"nodeType":"ParameterList","parameters":[],"src":"690:2:113"},"returnParameters":{"id":35449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35450,"src":"716:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35447,"name":"address","nodeType":"ElementaryTypeName","src":"716:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"715:9:113"},"scope":35522,"src":"677:48:113","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"81ca29a1","id":35455,"implemented":false,"kind":"function","modifiers":[],"name":"gaugeVoter","nameLocation":"740:10:113","nodeType":"FunctionDefinition","parameters":{"id":35451,"nodeType":"ParameterList","parameters":[],"src":"750:2:113"},"returnParameters":{"id":35454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35455,"src":"776:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35452,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"775:9:113"},"scope":35522,"src":"731:54:113","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d7b96d4e","id":35460,"implemented":false,"kind":"function","modifiers":[],"name":"locker","nameLocation":"800:6:113","nodeType":"FunctionDefinition","parameters":{"id":35456,"nodeType":"ParameterList","parameters":[],"src":"806:2:113"},"returnParameters":{"id":35459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35460,"src":"832:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35457,"name":"address","nodeType":"ElementaryTypeName","src":"832:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"831:9:113"},"scope":35522,"src":"791:50:113","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5ebaf1db","id":35465,"implemented":false,"kind":"function","modifiers":[],"name":"staker","nameLocation":"856:6:113","nodeType":"FunctionDefinition","parameters":{"id":35461,"nodeType":"ParameterList","parameters":[],"src":"862:2:113"},"returnParameters":{"id":35464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35465,"src":"888:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35462,"name":"address","nodeType":"ElementaryTypeName","src":"888:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:9:113"},"scope":35522,"src":"847:50:113","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6dee2012","id":35470,"implemented":false,"kind":"function","modifiers":[],"name":"emissionController","nameLocation":"912:18:113","nodeType":"FunctionDefinition","parameters":{"id":35466,"nodeType":"ParameterList","parameters":[],"src":"930:2:113"},"returnParameters":{"id":35469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35470,"src":"956:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35467,"name":"address","nodeType":"ElementaryTypeName","src":"956:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"955:9:113"},"scope":35522,"src":"903:62:113","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0c340a24","id":35475,"implemented":false,"kind":"function","modifiers":[],"name":"governor","nameLocation":"980:8:113","nodeType":"FunctionDefinition","parameters":{"id":35471,"nodeType":"ParameterList","parameters":[],"src":"988:2:113"},"returnParameters":{"id":35474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35475,"src":"1014:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35472,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1013:9:113"},"scope":35522,"src":"971:52:113","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9516a104","id":35488,"implemented":false,"kind":"function","modifiers":[],"name":"getAllAddresses","nameLocation":"1038:15:113","nodeType":"FunctionDefinition","parameters":{"id":35476,"nodeType":"ParameterList","parameters":[],"src":"1053:2:113"},"returnParameters":{"id":35487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35488,"src":"1116:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35477,"name":"address","nodeType":"ElementaryTypeName","src":"1116:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35488,"src":"1137:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35479,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35482,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35488,"src":"1158:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35481,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35488,"src":"1179:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35483,"name":"address","nodeType":"ElementaryTypeName","src":"1179:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35488,"src":"1200:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35485,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1102:115:113"},"scope":35522,"src":"1029:189:113","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f9fa2123","id":35491,"implemented":false,"kind":"function","modifiers":[],"name":"ensureNotPaused","nameLocation":"1233:15:113","nodeType":"FunctionDefinition","parameters":{"id":35489,"nodeType":"ParameterList","parameters":[],"src":"1248:2:113"},"returnParameters":{"id":35490,"nodeType":"ParameterList","parameters":[],"src":"1259:0:113"},"scope":35522,"src":"1224:36:113","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"be21c026","id":35496,"implemented":false,"kind":"function","modifiers":[],"name":"setMAHA","nameLocation":"1275:7:113","nodeType":"FunctionDefinition","parameters":{"id":35494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35493,"mutability":"mutable","name":"_new","nameLocation":"1291:4:113","nodeType":"VariableDeclaration","scope":35496,"src":"1283:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35492,"name":"address","nodeType":"ElementaryTypeName","src":"1283:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1282:14:113"},"returnParameters":{"id":35495,"nodeType":"ParameterList","parameters":[],"src":"1305:0:113"},"scope":35522,"src":"1266:40:113","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b641522e","id":35501,"implemented":false,"kind":"function","modifiers":[],"name":"setEmissionController","nameLocation":"1321:21:113","nodeType":"FunctionDefinition","parameters":{"id":35499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35498,"mutability":"mutable","name":"_new","nameLocation":"1351:4:113","nodeType":"VariableDeclaration","scope":35501,"src":"1343:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35497,"name":"address","nodeType":"ElementaryTypeName","src":"1343:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1342:14:113"},"returnParameters":{"id":35500,"nodeType":"ParameterList","parameters":[],"src":"1365:0:113"},"scope":35522,"src":"1312:54:113","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a29a43bb","id":35506,"implemented":false,"kind":"function","modifiers":[],"name":"setStaker","nameLocation":"1381:9:113","nodeType":"FunctionDefinition","parameters":{"id":35504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35503,"mutability":"mutable","name":"_new","nameLocation":"1399:4:113","nodeType":"VariableDeclaration","scope":35506,"src":"1391:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35502,"name":"address","nodeType":"ElementaryTypeName","src":"1391:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1390:14:113"},"returnParameters":{"id":35505,"nodeType":"ParameterList","parameters":[],"src":"1413:0:113"},"scope":35522,"src":"1372:42:113","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4bc2a657","id":35511,"implemented":false,"kind":"function","modifiers":[],"name":"setVoter","nameLocation":"1429:8:113","nodeType":"FunctionDefinition","parameters":{"id":35509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35508,"mutability":"mutable","name":"_new","nameLocation":"1446:4:113","nodeType":"VariableDeclaration","scope":35511,"src":"1438:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35507,"name":"address","nodeType":"ElementaryTypeName","src":"1438:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:14:113"},"returnParameters":{"id":35510,"nodeType":"ParameterList","parameters":[],"src":"1460:0:113"},"scope":35522,"src":"1420:41:113","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"171060ec","id":35516,"implemented":false,"kind":"function","modifiers":[],"name":"setLocker","nameLocation":"1476:9:113","nodeType":"FunctionDefinition","parameters":{"id":35514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35513,"mutability":"mutable","name":"_new","nameLocation":"1494:4:113","nodeType":"VariableDeclaration","scope":35516,"src":"1486:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35512,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1485:14:113"},"returnParameters":{"id":35515,"nodeType":"ParameterList","parameters":[],"src":"1508:0:113"},"scope":35522,"src":"1467:42:113","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c42cf535","id":35521,"implemented":false,"kind":"function","modifiers":[],"name":"setGovernor","nameLocation":"1524:11:113","nodeType":"FunctionDefinition","parameters":{"id":35519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35518,"mutability":"mutable","name":"_new","nameLocation":"1544:4:113","nodeType":"VariableDeclaration","scope":35521,"src":"1536:12:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35517,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1535:14:113"},"returnParameters":{"id":35520,"nodeType":"ParameterList","parameters":[],"src":"1558:0:113"},"scope":35522,"src":"1515:44:113","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":35523,"src":"141:1420:113","usedErrors":[]}],"src":"33:1529:113"},"id":113},"contracts/interfaces/IStakingChild.sol":{"ast":{"absolutePath":"contracts/interfaces/IStakingChild.sol","exportedSymbols":{"IStakingChild":[35594]},"id":35595,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35524,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:114"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35594,"linearizedBaseContracts":[35594],"name":"IStakingChild","nameLocation":"68:13:114","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3c6b16ab","id":35529,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"95:18:114","nodeType":"FunctionDefinition","parameters":{"id":35527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35526,"mutability":"mutable","name":"reward","nameLocation":"122:6:114","nodeType":"VariableDeclaration","scope":35529,"src":"114:14:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35525,"name":"uint256","nodeType":"ElementaryTypeName","src":"114:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113:16:114"},"returnParameters":{"id":35528,"nodeType":"ParameterList","parameters":[],"src":"138:0:114"},"scope":35594,"src":"86:53:114","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"055de275","id":35534,"implemented":false,"kind":"function","modifiers":[],"name":"getRewardFor","nameLocation":"152:12:114","nodeType":"FunctionDefinition","parameters":{"id":35532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35531,"mutability":"mutable","name":"who","nameLocation":"173:3:114","nodeType":"VariableDeclaration","scope":35534,"src":"165:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35530,"name":"address","nodeType":"ElementaryTypeName","src":"165:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"164:13:114"},"returnParameters":{"id":35533,"nodeType":"ParameterList","parameters":[],"src":"186:0:114"},"scope":35594,"src":"143:44:114","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"632447c9","id":35539,"implemented":false,"kind":"function","modifiers":[],"name":"updateReward","nameLocation":"200:12:114","nodeType":"FunctionDefinition","parameters":{"id":35537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35536,"mutability":"mutable","name":"who","nameLocation":"221:3:114","nodeType":"VariableDeclaration","scope":35539,"src":"213:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35535,"name":"address","nodeType":"ElementaryTypeName","src":"213:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"212:13:114"},"returnParameters":{"id":35538,"nodeType":"ParameterList","parameters":[],"src":"234:0:114"},"scope":35594,"src":"191:44:114","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"80faa57d","id":35544,"implemented":false,"kind":"function","modifiers":[],"name":"lastTimeRewardApplicable","nameLocation":"248:24:114","nodeType":"FunctionDefinition","parameters":{"id":35540,"nodeType":"ParameterList","parameters":[],"src":"272:2:114"},"returnParameters":{"id":35543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35544,"src":"298:7:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35541,"name":"uint256","nodeType":"ElementaryTypeName","src":"298:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"297:9:114"},"scope":35594,"src":"239:68:114","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"cd3daf9d","id":35549,"implemented":false,"kind":"function","modifiers":[],"name":"rewardPerToken","nameLocation":"320:14:114","nodeType":"FunctionDefinition","parameters":{"id":35545,"nodeType":"ParameterList","parameters":[],"src":"334:2:114"},"returnParameters":{"id":35548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35549,"src":"360:7:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35546,"name":"uint256","nodeType":"ElementaryTypeName","src":"360:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"359:9:114"},"scope":35594,"src":"311:58:114","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"008cc262","id":35556,"implemented":false,"kind":"function","modifiers":[],"name":"earned","nameLocation":"382:6:114","nodeType":"FunctionDefinition","parameters":{"id":35552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35551,"mutability":"mutable","name":"who","nameLocation":"397:3:114","nodeType":"VariableDeclaration","scope":35556,"src":"389:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35550,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"388:13:114"},"returnParameters":{"id":35555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35556,"src":"425:7:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35553,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"424:9:114"},"scope":35594,"src":"373:61:114","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1c1f78eb","id":35561,"implemented":false,"kind":"function","modifiers":[],"name":"getRewardForDuration","nameLocation":"447:20:114","nodeType":"FunctionDefinition","parameters":{"id":35557,"nodeType":"ParameterList","parameters":[],"src":"467:2:114"},"returnParameters":{"id":35560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35561,"src":"493:7:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35558,"name":"uint256","nodeType":"ElementaryTypeName","src":"493:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"492:9:114"},"scope":35594,"src":"438:64:114","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":35566,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"515:11:114","nodeType":"FunctionDefinition","parameters":{"id":35562,"nodeType":"ParameterList","parameters":[],"src":"526:2:114"},"returnParameters":{"id":35565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35566,"src":"552:7:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35563,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"551:9:114"},"scope":35594,"src":"506:55:114","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":35573,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"574:9:114","nodeType":"FunctionDefinition","parameters":{"id":35569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35568,"mutability":"mutable","name":"who","nameLocation":"592:3:114","nodeType":"VariableDeclaration","scope":35573,"src":"584:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35567,"name":"address","nodeType":"ElementaryTypeName","src":"584:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"583:13:114"},"returnParameters":{"id":35572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35573,"src":"620:7:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35570,"name":"uint256","nodeType":"ElementaryTypeName","src":"620:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"619:9:114"},"scope":35594,"src":"565:64:114","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b69f1faa","id":35578,"implemented":false,"kind":"function","modifiers":[],"name":"changeStakingMaster","nameLocation":"642:19:114","nodeType":"FunctionDefinition","parameters":{"id":35576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35575,"mutability":"mutable","name":"who","nameLocation":"670:3:114","nodeType":"VariableDeclaration","scope":35578,"src":"662:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35574,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"661:13:114"},"returnParameters":{"id":35577,"nodeType":"ParameterList","parameters":[],"src":"683:0:114"},"scope":35594,"src":"633:51:114","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e52390f0","id":35583,"implemented":false,"kind":"function","modifiers":[],"name":"changeStakingCollector","nameLocation":"697:22:114","nodeType":"FunctionDefinition","parameters":{"id":35581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35580,"mutability":"mutable","name":"who","nameLocation":"728:3:114","nodeType":"VariableDeclaration","scope":35583,"src":"720:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35579,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"719:13:114"},"returnParameters":{"id":35582,"nodeType":"ParameterList","parameters":[],"src":"741:0:114"},"scope":35594,"src":"688:54:114","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"886d057d","id":35588,"implemented":false,"kind":"function","modifiers":[],"name":"changeRewardsDuration","nameLocation":"755:21:114","nodeType":"FunctionDefinition","parameters":{"id":35586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35585,"mutability":"mutable","name":"duration","nameLocation":"785:8:114","nodeType":"VariableDeclaration","scope":35588,"src":"777:16:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35584,"name":"uint256","nodeType":"ElementaryTypeName","src":"777:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"776:18:114"},"returnParameters":{"id":35587,"nodeType":"ParameterList","parameters":[],"src":"803:0:114"},"scope":35594,"src":"746:58:114","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"455ca9bd","id":35593,"implemented":false,"kind":"function","modifiers":[],"name":"refundTokens","nameLocation":"817:12:114","nodeType":"FunctionDefinition","parameters":{"id":35591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35590,"mutability":"mutable","name":"token","nameLocation":"838:5:114","nodeType":"VariableDeclaration","scope":35593,"src":"830:13:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35589,"name":"address","nodeType":"ElementaryTypeName","src":"830:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"829:15:114"},"returnParameters":{"id":35592,"nodeType":"ParameterList","parameters":[],"src":"853:0:114"},"scope":35594,"src":"808:46:114","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":35595,"src":"58:798:114","usedErrors":[]}],"src":"33:824:114"},"id":114},"contracts/interfaces/IStakingCollector.sol":{"ast":{"absolutePath":"contracts/interfaces/IStakingCollector.sol","exportedSymbols":{"IEpoch":[34019],"IStakingCollector":[35604]},"id":35605,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35596,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:115"},{"absolutePath":"contracts/interfaces/IEpoch.sol","file":"./IEpoch.sol","id":35598,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35605,"sourceUnit":34020,"src":"58:36:115","symbolAliases":[{"foreign":{"id":35597,"name":"IEpoch","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:115","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":35599,"name":"IEpoch","nodeType":"IdentifierPath","referencedDeclaration":34019,"src":"127:6:115"},"id":35600,"nodeType":"InheritanceSpecifier","src":"127:6:115"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35604,"linearizedBaseContracts":[35604,34019],"name":"IStakingCollector","nameLocation":"106:17:115","nodeType":"ContractDefinition","nodes":[{"functionSelector":"e25fe175","id":35603,"implemented":false,"kind":"function","modifiers":[],"name":"step","nameLocation":"147:4:115","nodeType":"FunctionDefinition","parameters":{"id":35601,"nodeType":"ParameterList","parameters":[],"src":"151:2:115"},"returnParameters":{"id":35602,"nodeType":"ParameterList","parameters":[],"src":"162:0:115"},"scope":35604,"src":"138:25:115","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":35605,"src":"96:69:115","usedErrors":[]}],"src":"33:133:115"},"id":115},"contracts/interfaces/IStakingMaster.sol":{"ast":{"absolutePath":"contracts/interfaces/IStakingMaster.sol","exportedSymbols":{"IStakingMaster":[35654]},"id":35655,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35606,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:116"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35654,"linearizedBaseContracts":[35654],"name":"IStakingMaster","nameLocation":"68:14:116","nodeType":"ContractDefinition","nodes":[{"functionSelector":"18160ddd","id":35611,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"96:11:116","nodeType":"FunctionDefinition","parameters":{"id":35607,"nodeType":"ParameterList","parameters":[],"src":"107:2:116"},"returnParameters":{"id":35610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35611,"src":"133:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35608,"name":"uint256","nodeType":"ElementaryTypeName","src":"133:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"132:9:116"},"scope":35654,"src":"87:55:116","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":35618,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"155:9:116","nodeType":"FunctionDefinition","parameters":{"id":35614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35613,"mutability":"mutable","name":"who","nameLocation":"173:3:116","nodeType":"VariableDeclaration","scope":35618,"src":"165:11:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35612,"name":"address","nodeType":"ElementaryTypeName","src":"165:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"164:13:116"},"returnParameters":{"id":35617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35618,"src":"201:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35615,"name":"uint256","nodeType":"ElementaryTypeName","src":"201:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"200:9:116"},"scope":35654,"src":"146:64:116","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3d18b912","id":35621,"implemented":false,"kind":"function","modifiers":[],"name":"getReward","nameLocation":"223:9:116","nodeType":"FunctionDefinition","parameters":{"id":35619,"nodeType":"ParameterList","parameters":[],"src":"232:2:116"},"returnParameters":{"id":35620,"nodeType":"ParameterList","parameters":[],"src":"243:0:116"},"scope":35654,"src":"214:30:116","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d914cd4b","id":35626,"implemented":false,"kind":"function","modifiers":[],"name":"addPool","nameLocation":"257:7:116","nodeType":"FunctionDefinition","parameters":{"id":35624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35623,"mutability":"mutable","name":"pool","nameLocation":"273:4:116","nodeType":"VariableDeclaration","scope":35626,"src":"265:12:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35622,"name":"address","nodeType":"ElementaryTypeName","src":"265:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"264:14:116"},"returnParameters":{"id":35625,"nodeType":"ParameterList","parameters":[],"src":"287:0:116"},"scope":35654,"src":"248:40:116","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b36a4ab1","id":35632,"implemented":false,"kind":"function","modifiers":[],"name":"addPools","nameLocation":"301:8:116","nodeType":"FunctionDefinition","parameters":{"id":35630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35629,"mutability":"mutable","name":"pools","nameLocation":"327:5:116","nodeType":"VariableDeclaration","scope":35632,"src":"310:22:116","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":35627,"name":"address","nodeType":"ElementaryTypeName","src":"310:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35628,"nodeType":"ArrayTypeName","src":"310:9:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"309:24:116"},"returnParameters":{"id":35631,"nodeType":"ParameterList","parameters":[],"src":"342:0:116"},"scope":35654,"src":"292:51:116","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"81b72684","id":35637,"implemented":false,"kind":"function","modifiers":[],"name":"updateRewardFor","nameLocation":"356:15:116","nodeType":"FunctionDefinition","parameters":{"id":35635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35634,"mutability":"mutable","name":"who","nameLocation":"380:3:116","nodeType":"VariableDeclaration","scope":35637,"src":"372:11:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35633,"name":"address","nodeType":"ElementaryTypeName","src":"372:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"371:13:116"},"returnParameters":{"id":35636,"nodeType":"ParameterList","parameters":[],"src":"393:0:116"},"scope":35654,"src":"347:47:116","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"db7f901f","id":35643,"implemented":false,"kind":"function","modifiers":[],"name":"updateRewardForMultiple","nameLocation":"407:23:116","nodeType":"FunctionDefinition","parameters":{"id":35641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35640,"mutability":"mutable","name":"whom","nameLocation":"448:4:116","nodeType":"VariableDeclaration","scope":35643,"src":"431:21:116","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":35638,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35639,"nodeType":"ArrayTypeName","src":"431:9:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"430:23:116"},"returnParameters":{"id":35642,"nodeType":"ParameterList","parameters":[],"src":"462:0:116"},"scope":35654,"src":"398:65:116","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"455ca9bd","id":35648,"implemented":false,"kind":"function","modifiers":[],"name":"refundTokens","nameLocation":"476:12:116","nodeType":"FunctionDefinition","parameters":{"id":35646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35645,"mutability":"mutable","name":"token","nameLocation":"497:5:116","nodeType":"VariableDeclaration","scope":35648,"src":"489:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35644,"name":"address","nodeType":"ElementaryTypeName","src":"489:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"488:15:116"},"returnParameters":{"id":35647,"nodeType":"ParameterList","parameters":[],"src":"512:0:116"},"scope":35654,"src":"467:46:116","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ce5ec92e","id":35653,"implemented":false,"kind":"function","modifiers":[],"name":"setVotingEscrow","nameLocation":"526:15:116","nodeType":"FunctionDefinition","parameters":{"id":35651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35650,"mutability":"mutable","name":"_escrow","nameLocation":"550:7:116","nodeType":"VariableDeclaration","scope":35653,"src":"542:15:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35649,"name":"address","nodeType":"ElementaryTypeName","src":"542:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"541:17:116"},"returnParameters":{"id":35652,"nodeType":"ParameterList","parameters":[],"src":"567:0:116"},"scope":35654,"src":"517:51:116","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":35655,"src":"58:512:116","usedErrors":[]}],"src":"33:538:116"},"id":116},"contracts/interfaces/ITokenURIGenerator.sol":{"ast":{"absolutePath":"contracts/interfaces/ITokenURIGenerator.sol","exportedSymbols":{"ITokenURIGenerator":[35664]},"id":35665,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35656,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:117"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35664,"linearizedBaseContracts":[35664],"name":"ITokenURIGenerator","nameLocation":"68:18:117","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c87b56dd","id":35663,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"102:8:117","nodeType":"FunctionDefinition","parameters":{"id":35659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35658,"mutability":"mutable","name":"tokenId","nameLocation":"119:7:117","nodeType":"VariableDeclaration","scope":35663,"src":"111:15:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35657,"name":"uint256","nodeType":"ElementaryTypeName","src":"111:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"110:17:117"},"returnParameters":{"id":35662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35663,"src":"151:13:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":35660,"name":"string","nodeType":"ElementaryTypeName","src":"151:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"150:15:117"},"scope":35664,"src":"93:73:117","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":35665,"src":"58:110:117","usedErrors":[]}],"src":"33:136:117"},"id":117},"contracts/interfaces/IUniswapV2Pair.sol":{"ast":{"absolutePath":"contracts/interfaces/IUniswapV2Pair.sol","exportedSymbols":{"IUniswapV2Pair":[35682]},"id":35683,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35666,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:118"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35682,"linearizedBaseContracts":[35682],"name":"IUniswapV2Pair","nameLocation":"68:14:118","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c45a0155","id":35671,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nameLocation":"96:7:118","nodeType":"FunctionDefinition","parameters":{"id":35667,"nodeType":"ParameterList","parameters":[],"src":"103:2:118"},"returnParameters":{"id":35670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35671,"src":"129:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35668,"name":"address","nodeType":"ElementaryTypeName","src":"129:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"128:9:118"},"scope":35682,"src":"87:51:118","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0dfe1681","id":35676,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nameLocation":"151:6:118","nodeType":"FunctionDefinition","parameters":{"id":35672,"nodeType":"ParameterList","parameters":[],"src":"157:2:118"},"returnParameters":{"id":35675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35676,"src":"183:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35673,"name":"address","nodeType":"ElementaryTypeName","src":"183:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"182:9:118"},"scope":35682,"src":"142:50:118","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d21220a7","id":35681,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nameLocation":"205:6:118","nodeType":"FunctionDefinition","parameters":{"id":35677,"nodeType":"ParameterList","parameters":[],"src":"211:2:118"},"returnParameters":{"id":35680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35681,"src":"237:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35678,"name":"address","nodeType":"ElementaryTypeName","src":"237:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"236:9:118"},"scope":35682,"src":"196:50:118","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":35683,"src":"58:190:118","usedErrors":[]}],"src":"33:216:118"},"id":118},"contracts/interfaces/IUniswapV3Staker.sol":{"ast":{"absolutePath":"contracts/interfaces/IUniswapV3Staker.sol","exportedSymbols":{"IERC165":[9849],"IERC20":[5767],"IERC721":[7092],"IERC721Enumerable":[7479],"IERC721Metadata":[7506],"IERC721Permit":[14016],"IERC721Receiver":[7110],"IMulticall":[34726],"INonfungiblePositionManager":[35221],"IPeripheryImmutableState":[14032],"IPeripheryPayments":[14058],"IPoolInitializer":[14077],"IUniswapV3Factory":[13539],"IUniswapV3Pool":[13561],"IUniswapV3PoolActions":[13657],"IUniswapV3PoolDerivedState":[13688],"IUniswapV3PoolEvents":[13807],"IUniswapV3PoolImmutables":[13847],"IUniswapV3PoolOwnerActions":[13873],"IUniswapV3PoolState":[13981],"IUniswapV3Staker":[35864],"PoolAddress":[37347]},"id":35865,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":35684,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:119"},{"id":35685,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"70:19:119"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","id":35686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35865,"sourceUnit":7111,"src":"91:66:119","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","id":35687,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35865,"sourceUnit":13540,"src":"159:69:119","symbolAliases":[],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","id":35688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35865,"sourceUnit":13562,"src":"229:66:119","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":35690,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35865,"sourceUnit":4739,"src":"296:69:119","symbolAliases":[{"foreign":{"id":35689,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"304:6:119","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INonfungiblePositionManager.sol","file":"./INonfungiblePositionManager.sol","id":35691,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35865,"sourceUnit":35222,"src":"366:43:119","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IMulticall.sol","file":"./IMulticall.sol","id":35692,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35865,"sourceUnit":34727,"src":"410:26:119","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":35693,"name":"IERC721Receiver","nodeType":"IdentifierPath","referencedDeclaration":7110,"src":"468:15:119"},"id":35694,"nodeType":"InheritanceSpecifier","src":"468:15:119"},{"baseName":{"id":35695,"name":"IMulticall","nodeType":"IdentifierPath","referencedDeclaration":34726,"src":"485:10:119"},"id":35696,"nodeType":"InheritanceSpecifier","src":"485:10:119"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35864,"linearizedBaseContracts":[35864,34726,7110],"name":"IUniswapV3Staker","nameLocation":"448:16:119","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":35697,"nodeType":"StructuredDocumentation","src":"502:34:119","text":"@notice The Uniswap V3 Factory"},"functionSelector":"c45a0155","id":35703,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nameLocation":"550:7:119","nodeType":"FunctionDefinition","parameters":{"id":35698,"nodeType":"ParameterList","parameters":[],"src":"557:2:119"},"returnParameters":{"id":35702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35703,"src":"583:17:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},"typeName":{"id":35700,"nodeType":"UserDefinedTypeName","pathNode":{"id":35699,"name":"IUniswapV3Factory","nodeType":"IdentifierPath","referencedDeclaration":13539,"src":"583:17:119"},"referencedDeclaration":13539,"src":"583:17:119","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"visibility":"internal"}],"src":"582:19:119"},"scope":35864,"src":"541:61:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35704,"nodeType":"StructuredDocumentation","src":"608:82:119","text":" @dev Returns the total amount of tokens stored by the contract."},"functionSelector":"18160ddd","id":35709,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"704:11:119","nodeType":"FunctionDefinition","parameters":{"id":35705,"nodeType":"ParameterList","parameters":[],"src":"715:2:119"},"returnParameters":{"id":35708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35709,"src":"741:7:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35706,"name":"uint256","nodeType":"ElementaryTypeName","src":"741:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"740:9:119"},"scope":35864,"src":"695:55:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35710,"nodeType":"StructuredDocumentation","src":"756:171:119","text":" @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"functionSelector":"2f745c59","id":35719,"implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"941:19:119","nodeType":"FunctionDefinition","parameters":{"id":35715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35712,"mutability":"mutable","name":"owner","nameLocation":"969:5:119","nodeType":"VariableDeclaration","scope":35719,"src":"961:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35711,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35714,"mutability":"mutable","name":"index","nameLocation":"984:5:119","nodeType":"VariableDeclaration","scope":35719,"src":"976:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35713,"name":"uint256","nodeType":"ElementaryTypeName","src":"976:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"960:30:119"},"returnParameters":{"id":35718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35719,"src":"1038:7:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35716,"name":"uint256","nodeType":"ElementaryTypeName","src":"1038:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1037:9:119"},"scope":35864,"src":"932:115:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35720,"nodeType":"StructuredDocumentation","src":"1053:164:119","text":" @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens."},"functionSelector":"4f6ccce7","id":35727,"implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"1231:12:119","nodeType":"FunctionDefinition","parameters":{"id":35723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35722,"mutability":"mutable","name":"index","nameLocation":"1252:5:119","nodeType":"VariableDeclaration","scope":35727,"src":"1244:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35721,"name":"uint256","nodeType":"ElementaryTypeName","src":"1244:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1243:15:119"},"returnParameters":{"id":35726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35727,"src":"1282:7:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35724,"name":"uint256","nodeType":"ElementaryTypeName","src":"1282:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1281:9:119"},"scope":35864,"src":"1222:69:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35728,"nodeType":"StructuredDocumentation","src":"1297:91:119","text":"@notice The nonfungible position manager with which this staking contract is compatible"},"functionSelector":"b44a2722","id":35734,"implemented":false,"kind":"function","modifiers":[],"name":"nonfungiblePositionManager","nameLocation":"1402:26:119","nodeType":"FunctionDefinition","parameters":{"id":35729,"nodeType":"ParameterList","parameters":[],"src":"1428:2:119"},"returnParameters":{"id":35733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35734,"src":"1478:27:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},"typeName":{"id":35731,"nodeType":"UserDefinedTypeName","pathNode":{"id":35730,"name":"INonfungiblePositionManager","nodeType":"IdentifierPath","referencedDeclaration":35221,"src":"1478:27:119"},"referencedDeclaration":35221,"src":"1478:27:119","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"visibility":"internal"}],"src":"1477:29:119"},"scope":35864,"src":"1393:114:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35735,"nodeType":"StructuredDocumentation","src":"1513:230:119","text":"@notice Represents a staking incentive\n @return totalRewardUnclaimed The amount of reward token not yet claimed by users\n @return totalSecondsClaimedX128 Total liquidity-seconds claimed, represented as a UQ32.128"},"functionSelector":"0d5df7ba","id":35742,"implemented":false,"kind":"function","modifiers":[],"name":"incentives","nameLocation":"1757:10:119","nodeType":"FunctionDefinition","parameters":{"id":35736,"nodeType":"ParameterList","parameters":[],"src":"1767:2:119"},"returnParameters":{"id":35741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35738,"mutability":"mutable","name":"totalRewardUnclaimed","nameLocation":"1825:20:119","nodeType":"VariableDeclaration","scope":35742,"src":"1817:28:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35737,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35740,"mutability":"mutable","name":"totalSecondsClaimedX128","nameLocation":"1855:23:119","nodeType":"VariableDeclaration","scope":35742,"src":"1847:31:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":35739,"name":"uint160","nodeType":"ElementaryTypeName","src":"1847:7:119","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"1816:63:119"},"scope":35864,"src":"1748:132:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35743,"nodeType":"StructuredDocumentation","src":"1886:214:119","text":"@notice Returns information about a deposited NFT\n @return owner The owner of the deposited NFT\n @return tickLower The lower tick of the range\n @return tickUpper The upper tick of the range"},"functionSelector":"b02c43d0","id":35754,"implemented":false,"kind":"function","modifiers":[],"name":"deposits","nameLocation":"2114:8:119","nodeType":"FunctionDefinition","parameters":{"id":35746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35745,"mutability":"mutable","name":"tokenId","nameLocation":"2131:7:119","nodeType":"VariableDeclaration","scope":35754,"src":"2123:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35744,"name":"uint256","nodeType":"ElementaryTypeName","src":"2123:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2122:17:119"},"returnParameters":{"id":35753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35748,"mutability":"mutable","name":"owner","nameLocation":"2208:5:119","nodeType":"VariableDeclaration","scope":35754,"src":"2200:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35747,"name":"address","nodeType":"ElementaryTypeName","src":"2200:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35750,"mutability":"mutable","name":"tickLower","nameLocation":"2233:9:119","nodeType":"VariableDeclaration","scope":35754,"src":"2227:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":35749,"name":"int24","nodeType":"ElementaryTypeName","src":"2227:5:119","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":35752,"mutability":"mutable","name":"tickUpper","nameLocation":"2262:9:119","nodeType":"VariableDeclaration","scope":35754,"src":"2256:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":35751,"name":"int24","nodeType":"ElementaryTypeName","src":"2256:5:119","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"2186:95:119"},"scope":35864,"src":"2105:177:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35755,"nodeType":"StructuredDocumentation","src":"2288:179:119","text":"@notice Returns information about a deposited NFT\n @param depositOwner The owner of the deposited NFT\n @return uint256 The current no of nfts deposited by owner."},"functionSelector":"70a08231","id":35762,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2481:9:119","nodeType":"FunctionDefinition","parameters":{"id":35758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35757,"mutability":"mutable","name":"depositOwner","nameLocation":"2499:12:119","nodeType":"VariableDeclaration","scope":35762,"src":"2491:20:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35756,"name":"address","nodeType":"ElementaryTypeName","src":"2491:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2490:22:119"},"returnParameters":{"id":35761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35760,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35762,"src":"2536:7:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35759,"name":"uint256","nodeType":"ElementaryTypeName","src":"2536:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2535:9:119"},"scope":35864,"src":"2472:73:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35763,"nodeType":"StructuredDocumentation","src":"2551:316:119","text":"@notice Returns information about a staked liquidity NFT\n @param tokenId The ID of the staked token\n @return secondsPerLiquidityInsideInitialX128 secondsPerLiquidity represented as a UQ32.128\n @return liquidity The amount of liquidity in the NFT as of the last time the rewards were computed"},"functionSelector":"d5a44f86","id":35772,"implemented":false,"kind":"function","modifiers":[],"name":"stakes","nameLocation":"2881:6:119","nodeType":"FunctionDefinition","parameters":{"id":35766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35765,"mutability":"mutable","name":"tokenId","nameLocation":"2896:7:119","nodeType":"VariableDeclaration","scope":35772,"src":"2888:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35764,"name":"uint256","nodeType":"ElementaryTypeName","src":"2888:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2887:17:119"},"returnParameters":{"id":35771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35768,"mutability":"mutable","name":"secondsPerLiquidityInsideInitialX128","nameLocation":"2973:36:119","nodeType":"VariableDeclaration","scope":35772,"src":"2965:44:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":35767,"name":"uint160","nodeType":"ElementaryTypeName","src":"2965:7:119","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":35770,"mutability":"mutable","name":"liquidity","nameLocation":"3031:9:119","nodeType":"VariableDeclaration","scope":35772,"src":"3023:17:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35769,"name":"uint128","nodeType":"ElementaryTypeName","src":"3023:7:119","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2951:99:119"},"scope":35864,"src":"2872:179:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35773,"nodeType":"StructuredDocumentation","src":"3057:271:119","text":"@notice Returns amounts of reward tokens owed to a given address according to the last time all stakes were updated\n @param owner The owner for which the rewards owed are checked\n @return rewardsOwed The amount of the reward token claimable by the owner"},"functionSelector":"0700037d","id":35780,"implemented":false,"kind":"function","modifiers":[],"name":"rewards","nameLocation":"3342:7:119","nodeType":"FunctionDefinition","parameters":{"id":35776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35775,"mutability":"mutable","name":"owner","nameLocation":"3358:5:119","nodeType":"VariableDeclaration","scope":35780,"src":"3350:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35774,"name":"address","nodeType":"ElementaryTypeName","src":"3350:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3349:15:119"},"returnParameters":{"id":35779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35778,"mutability":"mutable","name":"rewardsOwed","nameLocation":"3396:11:119","nodeType":"VariableDeclaration","scope":35780,"src":"3388:19:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35777,"name":"uint256","nodeType":"ElementaryTypeName","src":"3388:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3387:21:119"},"scope":35864,"src":"3333:76:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35781,"nodeType":"StructuredDocumentation","src":"3415:90:119","text":"@notice checks if the given LP token ids are within their given liquidaty range or not"},"functionSelector":"0b9cc5fd","id":35790,"implemented":false,"kind":"function","modifiers":[],"name":"isIdsWithinRange","nameLocation":"3519:16:119","nodeType":"FunctionDefinition","parameters":{"id":35785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35784,"mutability":"mutable","name":"tokenIds","nameLocation":"3553:8:119","nodeType":"VariableDeclaration","scope":35790,"src":"3536:25:119","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":35782,"name":"uint256","nodeType":"ElementaryTypeName","src":"3536:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35783,"nodeType":"ArrayTypeName","src":"3536:9:119","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3535:27:119"},"returnParameters":{"id":35789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35790,"src":"3610:13:119","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":35786,"name":"bool","nodeType":"ElementaryTypeName","src":"3610:4:119","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35787,"nodeType":"ArrayTypeName","src":"3610:6:119","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3609:15:119"},"scope":35864,"src":"3510:115:119","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"99bcc052","id":35797,"implemented":false,"kind":"function","modifiers":[],"name":"left","nameLocation":"3640:4:119","nodeType":"FunctionDefinition","parameters":{"id":35793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35792,"mutability":"mutable","name":"token","nameLocation":"3653:5:119","nodeType":"VariableDeclaration","scope":35797,"src":"3645:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35791,"name":"address","nodeType":"ElementaryTypeName","src":"3645:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3644:15:119"},"returnParameters":{"id":35796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35797,"src":"3683:7:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35794,"name":"uint256","nodeType":"ElementaryTypeName","src":"3683:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3682:9:119"},"scope":35864,"src":"3631:61:119","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":35798,"nodeType":"StructuredDocumentation","src":"3698:128:119","text":"@notice Creates a new liquidity mining incentive program\n @param reward The amount of reward tokens to be distributed"},"functionSelector":"b66503cf","id":35805,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"3840:18:119","nodeType":"FunctionDefinition","parameters":{"id":35803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35800,"mutability":"mutable","name":"token","nameLocation":"3867:5:119","nodeType":"VariableDeclaration","scope":35805,"src":"3859:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35799,"name":"address","nodeType":"ElementaryTypeName","src":"3859:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35802,"mutability":"mutable","name":"reward","nameLocation":"3882:6:119","nodeType":"VariableDeclaration","scope":35805,"src":"3874:14:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35801,"name":"uint256","nodeType":"ElementaryTypeName","src":"3874:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3858:31:119"},"returnParameters":{"id":35804,"nodeType":"ParameterList","parameters":[],"src":"3898:0:119"},"scope":35864,"src":"3831:68:119","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":35806,"nodeType":"StructuredDocumentation","src":"3905:137:119","text":"@notice Withdraws a Uniswap V3 LP token `tokenId` from this contract to the recipient `to`\n @param tokenId The ID of the token"},"functionSelector":"50baa622","id":35811,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawToken","nameLocation":"4056:13:119","nodeType":"FunctionDefinition","parameters":{"id":35809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35808,"mutability":"mutable","name":"tokenId","nameLocation":"4078:7:119","nodeType":"VariableDeclaration","scope":35811,"src":"4070:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35807,"name":"uint256","nodeType":"ElementaryTypeName","src":"4070:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4069:17:119"},"returnParameters":{"id":35810,"nodeType":"ParameterList","parameters":[],"src":"4095:0:119"},"scope":35864,"src":"4047:49:119","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":35812,"nodeType":"StructuredDocumentation","src":"4102:165:119","text":"@param to The address where claimed rewards will be sent to\n @param tokenId The ID of the token\n @return reward The amount of reward tokens claimed"},"functionSelector":"e70eb392","id":35821,"implemented":false,"kind":"function","modifiers":[],"name":"claimReward","nameLocation":"4281:11:119","nodeType":"FunctionDefinition","parameters":{"id":35817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35814,"mutability":"mutable","name":"tokenId","nameLocation":"4301:7:119","nodeType":"VariableDeclaration","scope":35821,"src":"4293:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35813,"name":"uint256","nodeType":"ElementaryTypeName","src":"4293:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35816,"mutability":"mutable","name":"to","nameLocation":"4318:2:119","nodeType":"VariableDeclaration","scope":35821,"src":"4310:10:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35815,"name":"address","nodeType":"ElementaryTypeName","src":"4310:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4292:29:119"},"returnParameters":{"id":35820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35819,"mutability":"mutable","name":"reward","nameLocation":"4364:6:119","nodeType":"VariableDeclaration","scope":35821,"src":"4356:14:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35818,"name":"uint256","nodeType":"ElementaryTypeName","src":"4356:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4355:16:119"},"scope":35864,"src":"4272:100:119","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":35822,"nodeType":"StructuredDocumentation","src":"4378:167:119","text":"@param to The address where claimed rewards will be sent to\n @param tokenIds The IDs of the token\n @return reward The amount of reward tokens claimed"},"functionSelector":"0520537f","id":35832,"implemented":false,"kind":"function","modifiers":[],"name":"claimRewards","nameLocation":"4559:12:119","nodeType":"FunctionDefinition","parameters":{"id":35828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35825,"mutability":"mutable","name":"tokenIds","nameLocation":"4589:8:119","nodeType":"VariableDeclaration","scope":35832,"src":"4572:25:119","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":35823,"name":"uint256","nodeType":"ElementaryTypeName","src":"4572:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35824,"nodeType":"ArrayTypeName","src":"4572:9:119","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":35827,"mutability":"mutable","name":"to","nameLocation":"4607:2:119","nodeType":"VariableDeclaration","scope":35832,"src":"4599:10:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35826,"name":"address","nodeType":"ElementaryTypeName","src":"4599:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4571:39:119"},"returnParameters":{"id":35831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35830,"mutability":"mutable","name":"reward","nameLocation":"4653:6:119","nodeType":"VariableDeclaration","scope":35832,"src":"4645:14:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35829,"name":"uint256","nodeType":"ElementaryTypeName","src":"4645:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4644:16:119"},"scope":35864,"src":"4550:111:119","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"documentation":{"id":35833,"nodeType":"StructuredDocumentation","src":"4667:311:119","text":"@notice Event emitted when a liquidity mining incentive has been created\n @param pool The Uniswap V3 pool\n @param startTime The time when the incentive program begins\n @param endTime The time when rewards stop accruing\n @param reward The amount of reward tokens to be distributed"},"id":35844,"name":"IncentiveCreated","nameLocation":"4989:16:119","nodeType":"EventDefinition","parameters":{"id":35843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35836,"indexed":true,"mutability":"mutable","name":"pool","nameLocation":"5038:4:119","nodeType":"VariableDeclaration","scope":35844,"src":"5015:27:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":35835,"nodeType":"UserDefinedTypeName","pathNode":{"id":35834,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"5015:14:119"},"referencedDeclaration":13561,"src":"5015:14:119","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"internal"},{"constant":false,"id":35838,"indexed":false,"mutability":"mutable","name":"startTime","nameLocation":"5060:9:119","nodeType":"VariableDeclaration","scope":35844,"src":"5052:17:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35837,"name":"uint256","nodeType":"ElementaryTypeName","src":"5052:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35840,"indexed":false,"mutability":"mutable","name":"endTime","nameLocation":"5087:7:119","nodeType":"VariableDeclaration","scope":35844,"src":"5079:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35839,"name":"uint256","nodeType":"ElementaryTypeName","src":"5079:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35842,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"5112:6:119","nodeType":"VariableDeclaration","scope":35844,"src":"5104:14:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35841,"name":"uint256","nodeType":"ElementaryTypeName","src":"5104:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5005:119:119"},"src":"4983:142:119"},{"anonymous":false,"documentation":{"id":35845,"nodeType":"StructuredDocumentation","src":"5131:195:119","text":"@notice Event emitted when a Uniswap V3 LP token has been staked\n @param tokenId The unique identifier of an Uniswap V3 LP token\n @param liquidity The amount of liquidity staked"},"id":35851,"name":"TokenStaked","nameLocation":"5337:11:119","nodeType":"EventDefinition","parameters":{"id":35850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35847,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"5365:7:119","nodeType":"VariableDeclaration","scope":35851,"src":"5349:23:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35846,"name":"uint256","nodeType":"ElementaryTypeName","src":"5349:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35849,"indexed":false,"mutability":"mutable","name":"liquidity","nameLocation":"5382:9:119","nodeType":"VariableDeclaration","scope":35851,"src":"5374:17:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":35848,"name":"uint128","nodeType":"ElementaryTypeName","src":"5374:7:119","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5348:44:119"},"src":"5331:62:119"},{"anonymous":false,"documentation":{"id":35852,"nodeType":"StructuredDocumentation","src":"5399:141:119","text":"@notice Event emitted when a Uniswap V3 LP token has been unstaked\n @param tokenId The unique identifier of an Uniswap V3 LP token"},"id":35856,"name":"TokenUnstaked","nameLocation":"5551:13:119","nodeType":"EventDefinition","parameters":{"id":35855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35854,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"5581:7:119","nodeType":"VariableDeclaration","scope":35856,"src":"5565:23:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35853,"name":"uint256","nodeType":"ElementaryTypeName","src":"5565:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5564:25:119"},"src":"5545:45:119"},{"anonymous":false,"documentation":{"id":35857,"nodeType":"StructuredDocumentation","src":"5596:185:119","text":"@notice Event emitted when a reward token has been claimed\n @param to The address where claimed rewards were sent to\n @param reward The amount of reward tokens claimed"},"id":35863,"name":"RewardClaimed","nameLocation":"5792:13:119","nodeType":"EventDefinition","parameters":{"id":35862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35859,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"5822:2:119","nodeType":"VariableDeclaration","scope":35863,"src":"5806:18:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35858,"name":"address","nodeType":"ElementaryTypeName","src":"5806:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35861,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"5834:6:119","nodeType":"VariableDeclaration","scope":35863,"src":"5826:14:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35860,"name":"uint256","nodeType":"ElementaryTypeName","src":"5826:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5805:36:119"},"src":"5786:56:119"}],"scope":35865,"src":"438:5406:119","usedErrors":[]}],"src":"46:5799:119"},"id":119},"contracts/interfaces/IWETH.sol":{"ast":{"absolutePath":"contracts/interfaces/IWETH.sol","exportedSymbols":{"IERC20":[5767],"IWETH":[35879]},"id":35880,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35866,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:120"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":35868,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":35880,"sourceUnit":4739,"src":"57:69:120","symbolAliases":[{"foreign":{"id":35867,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:6:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":35869,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"147:6:120"},"id":35870,"nodeType":"InheritanceSpecifier","src":"147:6:120"}],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35879,"linearizedBaseContracts":[35879,5767],"name":"IWETH","nameLocation":"138:5:120","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d0e30db0","id":35873,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"169:7:120","nodeType":"FunctionDefinition","parameters":{"id":35871,"nodeType":"ParameterList","parameters":[],"src":"176:2:120"},"returnParameters":{"id":35872,"nodeType":"ParameterList","parameters":[],"src":"195:0:120"},"scope":35879,"src":"160:36:120","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2e1a7d4d","id":35878,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"211:8:120","nodeType":"FunctionDefinition","parameters":{"id":35876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35875,"mutability":"mutable","name":"wad","nameLocation":"228:3:120","nodeType":"VariableDeclaration","scope":35878,"src":"220:11:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35874,"name":"uint256","nodeType":"ElementaryTypeName","src":"220:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"219:13:120"},"returnParameters":{"id":35877,"nodeType":"ParameterList","parameters":[],"src":"241:0:120"},"scope":35879,"src":"202:40:120","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":35880,"src":"128:116:120","usedErrors":[]}],"src":"33:212:120"},"id":120},"contracts/interfaces/KeeperCompatibleInterface.sol":{"ast":{"absolutePath":"contracts/interfaces/KeeperCompatibleInterface.sol","exportedSymbols":{"KeeperCompatibleInterface":[35898]},"id":35899,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35881,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:121"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":35898,"linearizedBaseContracts":[35898],"name":"KeeperCompatibleInterface","nameLocation":"67:25:121","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":35882,"nodeType":"StructuredDocumentation","src":"97:985:121","text":" @notice method that is simulated by the keepers to see if any work actually\n needs to be performed. This method does does not actually need to be\n executable, and since it is only ever simulated it can consume lots of gas.\n @dev To ensure that it is never called, you may want to add the\n cannotExecute modifier from KeeperBase to your implementation of this\n method.\n @param checkData specified in the upkeep registration so it is always the\n same for a registered upkeep. This can easily be broken down into specific\n arguments using `abi.decode`, so multiple upkeeps can be registered on the\n same contract and easily differentiated by the contract.\n @return upkeepNeeded boolean to indicate whether the keeper should call\n performUpkeep or not.\n @return performData bytes that the keeper should call performUpkeep with, if\n upkeep is needed. If you would like to encode data to decode later, try\n `abi.encode`."},"functionSelector":"6e04ff0d","id":35891,"implemented":false,"kind":"function","modifiers":[],"name":"checkUpkeep","nameLocation":"1094:11:121","nodeType":"FunctionDefinition","parameters":{"id":35885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35884,"mutability":"mutable","name":"checkData","nameLocation":"1121:9:121","nodeType":"VariableDeclaration","scope":35891,"src":"1106:24:121","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":35883,"name":"bytes","nodeType":"ElementaryTypeName","src":"1106:5:121","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1105:26:121"},"returnParameters":{"id":35890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35887,"mutability":"mutable","name":"upkeepNeeded","nameLocation":"1163:12:121","nodeType":"VariableDeclaration","scope":35891,"src":"1158:17:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35886,"name":"bool","nodeType":"ElementaryTypeName","src":"1158:4:121","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35889,"mutability":"mutable","name":"performData","nameLocation":"1190:11:121","nodeType":"VariableDeclaration","scope":35891,"src":"1177:24:121","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35888,"name":"bytes","nodeType":"ElementaryTypeName","src":"1177:5:121","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1157:45:121"},"scope":35898,"src":"1085:118:121","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":35892,"nodeType":"StructuredDocumentation","src":"1207:1003:121","text":" @notice method that is actually executed by the keepers, via the registry.\n The data returned by the checkUpkeep simulation will be passed into\n this method to actually be executed.\n @dev The input to this method should not be trusted, and the caller of the\n method should not even be restricted to any single registry. Anyone should\n be able call it, and the input should be validated, there is no guarantee\n that the data passed in is the performData returned from checkUpkeep. This\n could happen due to malicious keepers, racing keepers, or simply a state\n change while the performUpkeep transaction is waiting for confirmation.\n Always validate the data passed in.\n @param performData is the data which was passed back from the checkData\n simulation. If it is encoded, it can easily be decoded into other types by\n calling `abi.decode`. This data should not be trusted, and should be\n validated against the contract's current state."},"functionSelector":"4585e33b","id":35897,"implemented":false,"kind":"function","modifiers":[],"name":"performUpkeep","nameLocation":"2222:13:121","nodeType":"FunctionDefinition","parameters":{"id":35895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35894,"mutability":"mutable","name":"performData","nameLocation":"2251:11:121","nodeType":"VariableDeclaration","scope":35897,"src":"2236:26:121","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":35893,"name":"bytes","nodeType":"ElementaryTypeName","src":"2236:5:121","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2235:28:121"},"returnParameters":{"id":35896,"nodeType":"ParameterList","parameters":[],"src":"2272:0:121"},"scope":35898,"src":"2213:60:121","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":35899,"src":"57:2218:121","usedErrors":[]}],"src":"32:2244:121"},"id":121},"contracts/referrals/MAHAReferralV1.sol":{"ast":{"absolutePath":"contracts/referrals/MAHAReferralV1.sol","exportedSymbols":{"IERC20":[5767],"INFTLocker":[34923],"MAHAReferralV1":[36091],"Ownable":[655]},"id":36092,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":35900,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:122"},{"absolutePath":"contracts/interfaces/INFTLocker.sol","file":"../interfaces/INFTLocker.sol","id":35902,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36092,"sourceUnit":34924,"src":"57:56:122","symbolAliases":[{"foreign":{"id":35901,"name":"INFTLocker","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:10:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":35904,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36092,"sourceUnit":4739,"src":"114:69:122","symbolAliases":[{"foreign":{"id":35903,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"122:6:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":35906,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36092,"sourceUnit":656,"src":"184:67:122","symbolAliases":[{"foreign":{"id":35905,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"192:7:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":35907,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"280:7:122"},"id":35908,"nodeType":"InheritanceSpecifier","src":"280:7:122"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":36091,"linearizedBaseContracts":[36091,655,8255],"name":"MAHAReferralV1","nameLocation":"262:14:122","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"d7b96d4e","id":35911,"mutability":"mutable","name":"locker","nameLocation":"312:6:122","nodeType":"VariableDeclaration","scope":36091,"src":"294:24:122","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":35910,"nodeType":"UserDefinedTypeName","pathNode":{"id":35909,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"294:10:122"},"referencedDeclaration":34923,"src":"294:10:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"public"},{"constant":false,"functionSelector":"3de00c36","id":35914,"mutability":"mutable","name":"maha","nameLocation":"338:4:122","nodeType":"VariableDeclaration","scope":36091,"src":"324:18:122","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":35913,"nodeType":"UserDefinedTypeName","pathNode":{"id":35912,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"324:6:122"},"referencedDeclaration":5767,"src":"324:6:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"d6a298e9","id":35916,"mutability":"mutable","name":"minLockDuration","nameLocation":"363:15:122","nodeType":"VariableDeclaration","scope":36091,"src":"348:30:122","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35915,"name":"uint256","nodeType":"ElementaryTypeName","src":"348:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"0cbc9527","id":35919,"mutability":"mutable","name":"referralDenominator","nameLocation":"399:19:122","nodeType":"VariableDeclaration","scope":36091,"src":"384:39:122","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35917,"name":"uint256","nodeType":"ElementaryTypeName","src":"384:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":35918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"421:2:122","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"constant":false,"id":35921,"mutability":"mutable","name":"me","nameLocation":"446:2:122","nodeType":"VariableDeclaration","scope":36091,"src":"429:19:122","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35920,"name":"address","nodeType":"ElementaryTypeName","src":"429:7:122","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"anonymous":false,"id":35931,"name":"ReferralPaid","nameLocation":"461:12:122","nodeType":"EventDefinition","parameters":{"id":35930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35923,"indexed":true,"mutability":"mutable","name":"who","nameLocation":"499:3:122","nodeType":"VariableDeclaration","scope":35931,"src":"483:19:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35922,"name":"address","nodeType":"ElementaryTypeName","src":"483:7:122","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35925,"indexed":true,"mutability":"mutable","name":"referral","nameLocation":"528:8:122","nodeType":"VariableDeclaration","scope":35931,"src":"512:24:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35924,"name":"address","nodeType":"ElementaryTypeName","src":"512:7:122","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35927,"indexed":false,"mutability":"mutable","name":"amt","nameLocation":"554:3:122","nodeType":"VariableDeclaration","scope":35931,"src":"546:11:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35926,"name":"uint256","nodeType":"ElementaryTypeName","src":"546:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35929,"indexed":false,"mutability":"mutable","name":"mahax","nameLocation":"575:5:122","nodeType":"VariableDeclaration","scope":35931,"src":"567:13:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35928,"name":"uint256","nodeType":"ElementaryTypeName","src":"567:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"473:113:122"},"src":"455:132:122"},{"body":{"id":35971,"nodeType":"Block","src":"695:270:122","statements":[{"expression":{"id":35944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35942,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35911,"src":"705:6:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35943,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35934,"src":"714:7:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"src":"705:16:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":35945,"nodeType":"ExpressionStatement","src":"705:16:122"},{"expression":{"id":35948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35946,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35914,"src":"731:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35947,"name":"_maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35937,"src":"738:5:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"src":"731:12:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":35949,"nodeType":"ExpressionStatement","src":"731:12:122"},{"expression":{"id":35952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35950,"name":"minLockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35916,"src":"753:15:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35951,"name":"_minLockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35939,"src":"771:16:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"753:34:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35953,"nodeType":"ExpressionStatement","src":"753:34:122"},{"expression":{"arguments":[{"arguments":[{"id":35959,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35911,"src":"832:6:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}],"id":35958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"824:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35957,"name":"address","nodeType":"ElementaryTypeName","src":"824:7:122","typeDescriptions":{}}},"id":35960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"824:15:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":35961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"853:66:122","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"}],"expression":{"id":35954,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35914,"src":"798:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":35956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"798:12:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":35962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"798:131:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35963,"nodeType":"ExpressionStatement","src":"798:131:122"},{"expression":{"id":35969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35964,"name":"me","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35921,"src":"940:2:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":35967,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"953:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_MAHAReferralV1_$36091","typeString":"contract MAHAReferralV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MAHAReferralV1_$36091","typeString":"contract MAHAReferralV1"}],"id":35966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"945:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35965,"name":"address","nodeType":"ElementaryTypeName","src":"945:7:122","typeDescriptions":{}}},"id":35968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:13:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"940:18:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35970,"nodeType":"ExpressionStatement","src":"940:18:122"}]},"id":35972,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":35940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35934,"mutability":"mutable","name":"_locker","nameLocation":"625:7:122","nodeType":"VariableDeclaration","scope":35972,"src":"614:18:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"},"typeName":{"id":35933,"nodeType":"UserDefinedTypeName","pathNode":{"id":35932,"name":"INFTLocker","nodeType":"IdentifierPath","referencedDeclaration":34923,"src":"614:10:122"},"referencedDeclaration":34923,"src":"614:10:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"visibility":"internal"},{"constant":false,"id":35937,"mutability":"mutable","name":"_maha","nameLocation":"649:5:122","nodeType":"VariableDeclaration","scope":35972,"src":"642:12:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":35936,"nodeType":"UserDefinedTypeName","pathNode":{"id":35935,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"642:6:122"},"referencedDeclaration":5767,"src":"642:6:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":35939,"mutability":"mutable","name":"_minLockDuration","nameLocation":"672:16:122","nodeType":"VariableDeclaration","scope":35972,"src":"664:24:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35938,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:90:122"},"returnParameters":{"id":35941,"nodeType":"ParameterList","parameters":[],"src":"695:0:122"},"scope":36091,"src":"593:372:122","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":36051,"nodeType":"Block","src":"1123:633:122","statements":[{"expression":{"arguments":[{"expression":{"id":35986,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1151:3:122","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1151:10:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":35988,"name":"me","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35921,"src":"1163:2:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":35989,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35974,"src":"1167:6:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35983,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35914,"src":"1133:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":35985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"1133:17:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":35990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1133:41:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35991,"nodeType":"ExpressionStatement","src":"1133:41:122"},{"assignments":[35993],"declarations":[{"constant":false,"id":35993,"mutability":"mutable","name":"nftId","nameLocation":"1193:5:122","nodeType":"VariableDeclaration","scope":36051,"src":"1185:13:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35992,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36002,"initialValue":{"arguments":[{"id":35996,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35974,"src":"1235:6:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35997,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35976,"src":"1255:13:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":35998,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1282:3:122","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1282:10:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36000,"name":"_stakeNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35978,"src":"1306:9:122","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":35994,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35911,"src":"1201:6:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":35995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createLockFor","nodeType":"MemberAccess","referencedDeclaration":34847,"src":"1201:20:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint256,uint256,address,bool) external returns (uint256)"}},"id":36001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1201:124:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1185:140:122"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36003,"name":"_lockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35976,"src":"1340:13:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":36004,"name":"minLockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35916,"src":"1356:15:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1340:31:122","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36006,"name":"referral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35980,"src":"1375:8:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":36009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1395:1:122","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":36008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1387:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36007,"name":"address","nodeType":"ElementaryTypeName","src":"1387:7:122","typeDescriptions":{}}},"id":36010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1387:10:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1375:22:122","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1340:57:122","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36050,"nodeType":"IfStatement","src":"1336:414:122","trueBody":{"id":36049,"nodeType":"Block","src":"1399:351:122","statements":[{"assignments":[36014],"declarations":[{"constant":false,"id":36014,"mutability":"mutable","name":"mahax","nameLocation":"1421:5:122","nodeType":"VariableDeclaration","scope":36049,"src":"1413:13:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36013,"name":"uint256","nodeType":"ElementaryTypeName","src":"1413:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36019,"initialValue":{"arguments":[{"id":36017,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35993,"src":"1449:5:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36015,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35911,"src":"1429:6:122","typeDescriptions":{"typeIdentifier":"t_contract$_INFTLocker_$34923","typeString":"contract INFTLocker"}},"id":36016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfNFT","nodeType":"MemberAccess","referencedDeclaration":34749,"src":"1429:19:122","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":36018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1429:26:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1413:42:122"},{"assignments":[36021],"declarations":[{"constant":false,"id":36021,"mutability":"mutable","name":"reward","nameLocation":"1477:6:122","nodeType":"VariableDeclaration","scope":36049,"src":"1469:14:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36020,"name":"uint256","nodeType":"ElementaryTypeName","src":"1469:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36025,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36022,"name":"mahax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36014,"src":"1486:5:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":36023,"name":"referralDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35919,"src":"1494:19:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1486:27:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1469:44:122"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":36028,"name":"me","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35921,"src":"1590:2:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36026,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35914,"src":"1575:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"1575:14:122","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":36029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:18:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":36030,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36021,"src":"1596:6:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1575:27:122","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36048,"nodeType":"IfStatement","src":"1571:169:122","trueBody":{"id":36047,"nodeType":"Block","src":"1604:136:122","statements":[{"expression":{"arguments":[{"id":36035,"name":"referral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35980,"src":"1636:8:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36036,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36021,"src":"1646:6:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36032,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35914,"src":"1622:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"1622:13:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":36037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1622:31:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36038,"nodeType":"ExpressionStatement","src":"1622:31:122"},{"eventCall":{"arguments":[{"id":36040,"name":"referral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35980,"src":"1689:8:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":36041,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1699:3:122","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1699:10:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36043,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36021,"src":"1711:6:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36044,"name":"mahax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36014,"src":"1719:5:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36039,"name":"ReferralPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35931,"src":"1676:12:122","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":36045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1676:49:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36046,"nodeType":"EmitStatement","src":"1671:54:122"}]}}]}}]},"functionSelector":"205765cc","id":36052,"implemented":true,"kind":"function","modifiers":[],"name":"createLockWithReferral","nameLocation":"980:22:122","nodeType":"FunctionDefinition","parameters":{"id":35981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35974,"mutability":"mutable","name":"_value","nameLocation":"1020:6:122","nodeType":"VariableDeclaration","scope":36052,"src":"1012:14:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35976,"mutability":"mutable","name":"_lockDuration","nameLocation":"1044:13:122","nodeType":"VariableDeclaration","scope":36052,"src":"1036:21:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35975,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35978,"mutability":"mutable","name":"_stakeNFT","nameLocation":"1072:9:122","nodeType":"VariableDeclaration","scope":36052,"src":"1067:14:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35977,"name":"bool","nodeType":"ElementaryTypeName","src":"1067:4:122","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35980,"mutability":"mutable","name":"referral","nameLocation":"1099:8:122","nodeType":"VariableDeclaration","scope":36052,"src":"1091:16:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35979,"name":"address","nodeType":"ElementaryTypeName","src":"1091:7:122","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1002:111:122"},"returnParameters":{"id":35982,"nodeType":"ParameterList","parameters":[],"src":"1123:0:122"},"scope":36091,"src":"971:785:122","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":36069,"nodeType":"Block","src":"1876:103:122","statements":[{"expression":{"id":36063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36061,"name":"minLockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35916,"src":"1886:15:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36062,"name":"_minLockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36054,"src":"1904:16:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1886:34:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36064,"nodeType":"ExpressionStatement","src":"1886:34:122"},{"expression":{"id":36067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36065,"name":"referralDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35919,"src":"1930:19:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36066,"name":"_referralDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36056,"src":"1952:20:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1930:42:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36068,"nodeType":"ExpressionStatement","src":"1930:42:122"}]},"functionSelector":"c0324c77","id":36070,"implemented":true,"kind":"function","modifiers":[{"id":36059,"kind":"modifierInvocation","modifierName":{"id":36058,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"1862:9:122"},"nodeType":"ModifierInvocation","src":"1862:9:122"}],"name":"setParams","nameLocation":"1771:9:122","nodeType":"FunctionDefinition","parameters":{"id":36057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36054,"mutability":"mutable","name":"_minLockDuration","nameLocation":"1789:16:122","nodeType":"VariableDeclaration","scope":36070,"src":"1781:24:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1781:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36056,"mutability":"mutable","name":"_referralDenominator","nameLocation":"1815:20:122","nodeType":"VariableDeclaration","scope":36070,"src":"1807:28:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36055,"name":"uint256","nodeType":"ElementaryTypeName","src":"1807:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1780:56:122"},"returnParameters":{"id":36060,"nodeType":"ParameterList","parameters":[],"src":"1876:0:122"},"scope":36091,"src":"1762:217:122","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":36089,"nodeType":"Block","src":"2022:73:122","statements":[{"expression":{"arguments":[{"expression":{"id":36078,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2046:3:122","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2046:10:122","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":36084,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2081:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_MAHAReferralV1_$36091","typeString":"contract MAHAReferralV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MAHAReferralV1_$36091","typeString":"contract MAHAReferralV1"}],"id":36083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2073:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36082,"name":"address","nodeType":"ElementaryTypeName","src":"2073:7:122","typeDescriptions":{}}},"id":36085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2073:13:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36080,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35914,"src":"2058:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"2058:14:122","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":36086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2058:29:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36075,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35914,"src":"2032:4:122","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"2032:13:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":36087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2032:56:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36088,"nodeType":"ExpressionStatement","src":"2032:56:122"}]},"functionSelector":"590e1ae3","id":36090,"implemented":true,"kind":"function","modifiers":[{"id":36073,"kind":"modifierInvocation","modifierName":{"id":36072,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"2012:9:122"},"nodeType":"ModifierInvocation","src":"2012:9:122"}],"name":"refund","nameLocation":"1994:6:122","nodeType":"FunctionDefinition","parameters":{"id":36071,"nodeType":"ParameterList","parameters":[],"src":"2000:2:122"},"returnParameters":{"id":36074,"nodeType":"ParameterList","parameters":[],"src":"2022:0:122"},"scope":36091,"src":"1985:110:122","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":36092,"src":"253:1844:122","usedErrors":[]}],"src":"32:2066:122"},"id":122},"contracts/splitters/FeesSplitter.sol":{"ast":{"absolutePath":"contracts/splitters/FeesSplitter.sol","exportedSymbols":{"FeesSplitter":[36366],"IERC20":[5767],"Ownable":[655],"SafeERC20":[6109]},"id":36367,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":36093,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:123"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":36096,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36367,"sourceUnit":6110,"src":"71:90:123","symbolAliases":[{"foreign":{"id":36094,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"79:9:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36095,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"90:6:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":36098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36367,"sourceUnit":656,"src":"162:67:123","symbolAliases":[{"foreign":{"id":36097,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"170:7:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":36099,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"256:7:123"},"id":36100,"nodeType":"InheritanceSpecifier","src":"256:7:123"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":36366,"linearizedBaseContracts":[36366,655,8255],"name":"FeesSplitter","nameLocation":"240:12:123","nodeType":"ContractDefinition","nodes":[{"id":36104,"libraryName":{"id":36101,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":6109,"src":"276:9:123"},"nodeType":"UsingForDirective","src":"270:27:123","typeName":{"id":36103,"nodeType":"UserDefinedTypeName","pathNode":{"id":36102,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"290:6:123"},"referencedDeclaration":5767,"src":"290:6:123","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}}},{"constant":true,"functionSelector":"3f26479e","id":36107,"mutability":"constant","name":"PERCENTAGE_SCALE","nameLocation":"327:16:123","nodeType":"VariableDeclaration","scope":36366,"src":"303:46:123","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36105,"name":"uint256","nodeType":"ElementaryTypeName","src":"303:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"316536","id":36106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"346:3:123","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1e6"},"visibility":"public"},{"constant":false,"functionSelector":"f2a40db8","id":36110,"mutability":"mutable","name":"accounts","nameLocation":"372:8:123","nodeType":"VariableDeclaration","scope":36366,"src":"355:25:123","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":36108,"name":"address","nodeType":"ElementaryTypeName","src":"355:7:123","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36109,"nodeType":"ArrayTypeName","src":"355:9:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"constant":false,"functionSelector":"003f619d","id":36113,"mutability":"mutable","name":"percentAllocations","nameLocation":"402:18:123","nodeType":"VariableDeclaration","scope":36366,"src":"386:34:123","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage","typeString":"uint32[]"},"typeName":{"baseType":{"id":36111,"name":"uint32","nodeType":"ElementaryTypeName","src":"386:6:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":36112,"nodeType":"ArrayTypeName","src":"386:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"public"},{"body":{"id":36134,"nodeType":"Block","src":"508:134:123","statements":[{"expression":{"id":36124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36122,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36110,"src":"518:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36123,"name":"_accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36116,"src":"529:9:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"518:20:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":36125,"nodeType":"ExpressionStatement","src":"518:20:123"},{"expression":{"id":36128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36126,"name":"percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36113,"src":"548:18:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage","typeString":"uint32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36127,"name":"_percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36119,"src":"569:19:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"src":"548:40:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage","typeString":"uint32[] storage ref"}},"id":36129,"nodeType":"ExpressionStatement","src":"548:40:123"},{"expression":{"arguments":[{"id":36131,"name":"_percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36119,"src":"615:19:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}],"id":36130,"name":"checkPercentages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36312,"src":"598:16:123","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_uint32_$dyn_memory_ptr_$returns$__$","typeString":"function (uint32[] memory) view"}},"id":36132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"598:37:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36133,"nodeType":"ExpressionStatement","src":"598:37:123"}]},"id":36135,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":36120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36116,"mutability":"mutable","name":"_accounts","nameLocation":"456:9:123","nodeType":"VariableDeclaration","scope":36135,"src":"439:26:123","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":36114,"name":"address","nodeType":"ElementaryTypeName","src":"439:7:123","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36115,"nodeType":"ArrayTypeName","src":"439:9:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":36119,"mutability":"mutable","name":"_percentAllocations","nameLocation":"483:19:123","nodeType":"VariableDeclaration","scope":36135,"src":"467:35:123","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":36117,"name":"uint32","nodeType":"ElementaryTypeName","src":"467:6:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":36118,"nodeType":"ArrayTypeName","src":"467:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"src":"438:65:123"},"returnParameters":{"id":36121,"nodeType":"ParameterList","parameters":[],"src":"508:0:123"},"scope":36366,"src":"427:215:123","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":36141,"nodeType":"Block","src":"668:32:123","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36138,"name":"distributeETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36197,"src":"678:13:123","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"678:15:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36140,"nodeType":"ExpressionStatement","src":"678:15:123"}]},"id":36142,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":36136,"nodeType":"ParameterList","parameters":[],"src":"656:2:123"},"returnParameters":{"id":36137,"nodeType":"ParameterList","parameters":[],"src":"668:0:123"},"scope":36366,"src":"648:52:123","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":36148,"nodeType":"Block","src":"733:32:123","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36145,"name":"distributeETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36197,"src":"743:13:123","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"743:15:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36147,"nodeType":"ExpressionStatement","src":"743:15:123"}]},"id":36149,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":36143,"nodeType":"ParameterList","parameters":[],"src":"713:2:123"},"returnParameters":{"id":36144,"nodeType":"ParameterList","parameters":[],"src":"733:0:123"},"scope":36366,"src":"706:59:123","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":36196,"nodeType":"Block","src":"811:579:123","statements":[{"assignments":[36153],"declarations":[{"constant":false,"id":36153,"mutability":"mutable","name":"amountToSplit","nameLocation":"829:13:123","nodeType":"VariableDeclaration","scope":36196,"src":"821:21:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36152,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36159,"initialValue":{"expression":{"arguments":[{"id":36156,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"853:4:123","typeDescriptions":{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}],"id":36155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"845:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36154,"name":"address","nodeType":"ElementaryTypeName","src":"845:7:123","typeDescriptions":{}}},"id":36157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"845:13:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"845:21:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"821:45:123"},{"assignments":[36161],"declarations":[{"constant":false,"id":36161,"mutability":"mutable","name":"accountsLength","nameLocation":"1029:14:123","nodeType":"VariableDeclaration","scope":36196,"src":"1021:22:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36160,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36164,"initialValue":{"expression":{"id":36162,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36110,"src":"1046:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":36163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1046:15:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1021:40:123"},{"body":{"id":36194,"nodeType":"Block","src":"1116:268:123","statements":[{"assignments":[36176],"declarations":[{"constant":false,"id":36176,"mutability":"mutable","name":"amt","nameLocation":"1210:3:123","nodeType":"VariableDeclaration","scope":36194,"src":"1202:11:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36175,"name":"uint256","nodeType":"ElementaryTypeName","src":"1202:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36183,"initialValue":{"arguments":[{"id":36178,"name":"amountToSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36153,"src":"1258:13:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":36179,"name":"percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36113,"src":"1289:18:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage","typeString":"uint32[] storage ref"}},"id":36181,"indexExpression":{"id":36180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36166,"src":"1308:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1289:21:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":36177,"name":"_scaleAmountByPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36365,"src":"1216:24:123","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:108:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1202:122:123"},{"expression":{"arguments":[{"id":36191,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36176,"src":"1369:3:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":36186,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36110,"src":"1347:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":36188,"indexExpression":{"id":36187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36166,"src":"1356:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1347:11:123","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1339:8:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":36184,"name":"address","nodeType":"ElementaryTypeName","src":"1339:8:123","stateMutability":"payable","typeDescriptions":{}}},"id":36189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1339:20:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":36190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","src":"1339:29:123","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":36192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1339:34:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36193,"nodeType":"ExpressionStatement","src":"1339:34:123"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36169,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36166,"src":"1091:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36170,"name":"accountsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36161,"src":"1095:14:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1091:18:123","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36195,"initializationExpression":{"assignments":[36166],"declarations":[{"constant":false,"id":36166,"mutability":"mutable","name":"i","nameLocation":"1084:1:123","nodeType":"VariableDeclaration","scope":36195,"src":"1076:9:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36165,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36168,"initialValue":{"hexValue":"30","id":36167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:1:123","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1076:13:123"},"loopExpression":{"expression":{"id":36173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1111:3:123","subExpression":{"id":36172,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36166,"src":"1113:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36174,"nodeType":"ExpressionStatement","src":"1111:3:123"},"nodeType":"ForStatement","src":"1071:313:123"}]},"functionSelector":"b8b9b549","id":36197,"implemented":true,"kind":"function","modifiers":[],"name":"distributeETH","nameLocation":"780:13:123","nodeType":"FunctionDefinition","parameters":{"id":36150,"nodeType":"ParameterList","parameters":[],"src":"793:2:123"},"returnParameters":{"id":36151,"nodeType":"ParameterList","parameters":[],"src":"811:0:123"},"scope":36366,"src":"771:619:123","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":36248,"nodeType":"Block","src":"1442:441:123","statements":[{"assignments":[36204],"declarations":[{"constant":false,"id":36204,"mutability":"mutable","name":"amountToSplit","nameLocation":"1460:13:123","nodeType":"VariableDeclaration","scope":36248,"src":"1452:21:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36212,"initialValue":{"arguments":[{"arguments":[{"id":36209,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1500:4:123","typeDescriptions":{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}],"id":36208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1492:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36207,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:123","typeDescriptions":{}}},"id":36210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1492:13:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36205,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36200,"src":"1476:5:123","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"1476:15:123","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":36211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1476:30:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1452:54:123"},{"assignments":[36214],"declarations":[{"constant":false,"id":36214,"mutability":"mutable","name":"accountsLength","nameLocation":"1524:14:123","nodeType":"VariableDeclaration","scope":36248,"src":"1516:22:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1516:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36217,"initialValue":{"expression":{"id":36215,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36110,"src":"1541:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":36216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1541:15:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1516:40:123"},{"body":{"id":36246,"nodeType":"Block","src":"1611:266:123","statements":[{"assignments":[36229],"declarations":[{"constant":false,"id":36229,"mutability":"mutable","name":"amt","nameLocation":"1705:3:123","nodeType":"VariableDeclaration","scope":36246,"src":"1697:11:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36228,"name":"uint256","nodeType":"ElementaryTypeName","src":"1697:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36236,"initialValue":{"arguments":[{"id":36231,"name":"amountToSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36204,"src":"1753:13:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":36232,"name":"percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36113,"src":"1784:18:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage","typeString":"uint32[] storage ref"}},"id":36234,"indexExpression":{"id":36233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36219,"src":"1803:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1784:21:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":36230,"name":"_scaleAmountByPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36365,"src":"1711:24:123","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1711:108:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1697:122:123"},{"expression":{"arguments":[{"baseExpression":{"id":36240,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36110,"src":"1849:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":36242,"indexExpression":{"id":36241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36219,"src":"1858:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1849:11:123","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36243,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36229,"src":"1862:3:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36237,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36200,"src":"1834:5:123","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"1834:14:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":36244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1834:32:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36245,"nodeType":"ExpressionStatement","src":"1834:32:123"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36219,"src":"1586:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36223,"name":"accountsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36214,"src":"1590:14:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1586:18:123","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36247,"initializationExpression":{"assignments":[36219],"declarations":[{"constant":false,"id":36219,"mutability":"mutable","name":"i","nameLocation":"1579:1:123","nodeType":"VariableDeclaration","scope":36247,"src":"1571:9:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36218,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36221,"initialValue":{"hexValue":"30","id":36220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1583:1:123","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1571:13:123"},"loopExpression":{"expression":{"id":36226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1606:3:123","subExpression":{"id":36225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36219,"src":"1608:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36227,"nodeType":"ExpressionStatement","src":"1606:3:123"},"nodeType":"ForStatement","src":"1566:311:123"}]},"functionSelector":"bce58269","id":36249,"implemented":true,"kind":"function","modifiers":[],"name":"distributeERC20","nameLocation":"1405:15:123","nodeType":"FunctionDefinition","parameters":{"id":36201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36200,"mutability":"mutable","name":"token","nameLocation":"1428:5:123","nodeType":"VariableDeclaration","scope":36249,"src":"1421:12:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":36199,"nodeType":"UserDefinedTypeName","pathNode":{"id":36198,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"1421:6:123"},"referencedDeclaration":5767,"src":"1421:6:123","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1420:14:123"},"returnParameters":{"id":36202,"nodeType":"ParameterList","parameters":[],"src":"1442:0:123"},"scope":36366,"src":"1396:487:123","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":36272,"nodeType":"Block","src":"2016:134:123","statements":[{"expression":{"id":36262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36260,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36110,"src":"2026:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36261,"name":"_accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36252,"src":"2037:9:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2026:20:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":36263,"nodeType":"ExpressionStatement","src":"2026:20:123"},{"expression":{"id":36266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36264,"name":"percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36113,"src":"2056:18:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage","typeString":"uint32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36265,"name":"_percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36255,"src":"2077:19:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"src":"2056:40:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage","typeString":"uint32[] storage ref"}},"id":36267,"nodeType":"ExpressionStatement","src":"2056:40:123"},{"expression":{"arguments":[{"id":36269,"name":"_percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36255,"src":"2123:19:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}],"id":36268,"name":"checkPercentages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36312,"src":"2106:16:123","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_uint32_$dyn_memory_ptr_$returns$__$","typeString":"function (uint32[] memory) view"}},"id":36270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2106:37:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36271,"nodeType":"ExpressionStatement","src":"2106:37:123"}]},"functionSelector":"44def48f","id":36273,"implemented":true,"kind":"function","modifiers":[{"id":36258,"kind":"modifierInvocation","modifierName":{"id":36257,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"2006:9:123"},"nodeType":"ModifierInvocation","src":"2006:9:123"}],"name":"updateSplit","nameLocation":"1898:11:123","nodeType":"FunctionDefinition","parameters":{"id":36256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36252,"mutability":"mutable","name":"_accounts","nameLocation":"1936:9:123","nodeType":"VariableDeclaration","scope":36273,"src":"1919:26:123","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":36250,"name":"address","nodeType":"ElementaryTypeName","src":"1919:7:123","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36251,"nodeType":"ArrayTypeName","src":"1919:9:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":36255,"mutability":"mutable","name":"_percentAllocations","nameLocation":"1971:19:123","nodeType":"VariableDeclaration","scope":36273,"src":"1955:35:123","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":36253,"name":"uint32","nodeType":"ElementaryTypeName","src":"1955:6:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":36254,"nodeType":"ArrayTypeName","src":"1955:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"src":"1909:87:123"},"returnParameters":{"id":36259,"nodeType":"ParameterList","parameters":[],"src":"2016:0:123"},"scope":36366,"src":"1889:261:123","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":36311,"nodeType":"Block","src":"2269:216:123","statements":[{"assignments":[36282],"declarations":[{"constant":false,"id":36282,"mutability":"mutable","name":"sum","nameLocation":"2286:3:123","nodeType":"VariableDeclaration","scope":36311,"src":"2279:10:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":36281,"name":"uint32","nodeType":"ElementaryTypeName","src":"2279:6:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":36284,"initialValue":{"hexValue":"30","id":36283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2292:1:123","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2279:14:123"},{"body":{"id":36302,"nodeType":"Block","src":"2360:54:123","statements":[{"expression":{"id":36300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36296,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36282,"src":"2374:3:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":36297,"name":"_percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36276,"src":"2381:19:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":36299,"indexExpression":{"id":36298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36286,"src":"2401:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2381:22:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2374:29:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":36301,"nodeType":"ExpressionStatement","src":"2374:29:123"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36289,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36286,"src":"2323:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":36290,"name":"_percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36276,"src":"2327:19:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":36291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2327:26:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2323:30:123","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36303,"initializationExpression":{"assignments":[36286],"declarations":[{"constant":false,"id":36286,"mutability":"mutable","name":"i","nameLocation":"2316:1:123","nodeType":"VariableDeclaration","scope":36303,"src":"2308:9:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36285,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36288,"initialValue":{"hexValue":"30","id":36287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2320:1:123","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2308:13:123"},"loopExpression":{"expression":{"id":36294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2355:3:123","subExpression":{"id":36293,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36286,"src":"2355:1:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36295,"nodeType":"ExpressionStatement","src":"2355:3:123"},"nodeType":"ForStatement","src":"2303:111:123"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36305,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36282,"src":"2431:3:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":36306,"name":"PERCENTAGE_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36107,"src":"2438:16:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2431:23:123","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070657263656e7461676573","id":36308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2456:21:123","typeDescriptions":{"typeIdentifier":"t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791","typeString":"literal_string \"invalid percentages\""},"value":"invalid percentages"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791","typeString":"literal_string \"invalid percentages\""}],"id":36304,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2423:7:123","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":36309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2423:55:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36310,"nodeType":"ExpressionStatement","src":"2423:55:123"}]},"functionSelector":"c45ff544","id":36312,"implemented":true,"kind":"function","modifiers":[{"id":36279,"kind":"modifierInvocation","modifierName":{"id":36278,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"2255:9:123"},"nodeType":"ModifierInvocation","src":"2255:9:123"}],"name":"checkPercentages","nameLocation":"2165:16:123","nodeType":"FunctionDefinition","parameters":{"id":36277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36276,"mutability":"mutable","name":"_percentAllocations","nameLocation":"2198:19:123","nodeType":"VariableDeclaration","scope":36312,"src":"2182:35:123","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":36274,"name":"uint32","nodeType":"ElementaryTypeName","src":"2182:6:123","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":36275,"nodeType":"ArrayTypeName","src":"2182:8:123","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"src":"2181:37:123"},"returnParameters":{"id":36280,"nodeType":"ParameterList","parameters":[],"src":"2269:0:123"},"scope":36366,"src":"2156:329:123","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":36330,"nodeType":"Block","src":"2533:65:123","statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":36325,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2577:4:123","typeDescriptions":{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}],"id":36324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2569:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36323,"name":"address","nodeType":"ElementaryTypeName","src":"2569:7:123","typeDescriptions":{}}},"id":36326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:13:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2569:21:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":36319,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"2551:5:123","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":36320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2551:7:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2543:8:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":36317,"name":"address","nodeType":"ElementaryTypeName","src":"2543:8:123","stateMutability":"payable","typeDescriptions":{}}},"id":36321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2543:16:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":36322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","src":"2543:25:123","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":36328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2543:48:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36329,"nodeType":"ExpressionStatement","src":"2543:48:123"}]},"functionSelector":"e086e5ec","id":36331,"implemented":true,"kind":"function","modifiers":[{"id":36315,"kind":"modifierInvocation","modifierName":{"id":36314,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"2523:9:123"},"nodeType":"ModifierInvocation","src":"2523:9:123"}],"name":"withdrawETH","nameLocation":"2500:11:123","nodeType":"FunctionDefinition","parameters":{"id":36313,"nodeType":"ParameterList","parameters":[],"src":"2511:2:123"},"returnParameters":{"id":36316,"nodeType":"ParameterList","parameters":[],"src":"2533:0:123"},"scope":36366,"src":"2491:107:123","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":36353,"nodeType":"Block","src":"2660:72:123","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":36342,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"2685:5:123","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":36343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2685:7:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":36348,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2718:4:123","typeDescriptions":{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeesSplitter_$36366","typeString":"contract FeesSplitter"}],"id":36347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2710:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36346,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:123","typeDescriptions":{}}},"id":36349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2710:13:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36344,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36334,"src":"2694:5:123","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5724,"src":"2694:15:123","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":36350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2694:30:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36339,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36334,"src":"2670:5:123","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"2670:14:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":36351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2670:55:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36352,"nodeType":"ExpressionStatement","src":"2670:55:123"}]},"functionSelector":"f4f3b200","id":36354,"implemented":true,"kind":"function","modifiers":[{"id":36337,"kind":"modifierInvocation","modifierName":{"id":36336,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"2650:9:123"},"nodeType":"ModifierInvocation","src":"2650:9:123"}],"name":"withdrawERC20","nameLocation":"2613:13:123","nodeType":"FunctionDefinition","parameters":{"id":36335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36334,"mutability":"mutable","name":"token","nameLocation":"2634:5:123","nodeType":"VariableDeclaration","scope":36354,"src":"2627:12:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":36333,"nodeType":"UserDefinedTypeName","pathNode":{"id":36332,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"2627:6:123"},"referencedDeclaration":5767,"src":"2627:6:123","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"2626:14:123"},"returnParameters":{"id":36338,"nodeType":"ParameterList","parameters":[],"src":"2660:0:123"},"scope":36366,"src":"2604:128:123","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":36364,"nodeType":"Block","src":"2884:447:123","statements":[{"AST":{"nodeType":"YulBlock","src":"3193:132:123","statements":[{"nodeType":"YulAssignment","src":"3250:65:123","value":{"arguments":[{"arguments":[{"name":"amount","nodeType":"YulIdentifier","src":"3274:6:123"},{"name":"scaledPercent","nodeType":"YulIdentifier","src":"3282:13:123"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3270:3:123"},"nodeType":"YulFunctionCall","src":"3270:26:123"},{"name":"PERCENTAGE_SCALE","nodeType":"YulIdentifier","src":"3298:16:123"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3266:3:123"},"nodeType":"YulFunctionCall","src":"3266:49:123"},"variableNames":[{"name":"scaledAmount","nodeType":"YulIdentifier","src":"3250:12:123"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36107,"isOffset":false,"isSlot":false,"src":"3298:16:123","valueSize":1},{"declaration":36356,"isOffset":false,"isSlot":false,"src":"3274:6:123","valueSize":1},{"declaration":36361,"isOffset":false,"isSlot":false,"src":"3250:12:123","valueSize":1},{"declaration":36358,"isOffset":false,"isSlot":false,"src":"3282:13:123","valueSize":1}],"id":36363,"nodeType":"InlineAssembly","src":"3184:141:123"}]},"id":36365,"implemented":true,"kind":"function","modifiers":[],"name":"_scaleAmountByPercentage","nameLocation":"2747:24:123","nodeType":"FunctionDefinition","parameters":{"id":36359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36356,"mutability":"mutable","name":"amount","nameLocation":"2780:6:123","nodeType":"VariableDeclaration","scope":36365,"src":"2772:14:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36355,"name":"uint256","nodeType":"ElementaryTypeName","src":"2772:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36358,"mutability":"mutable","name":"scaledPercent","nameLocation":"2796:13:123","nodeType":"VariableDeclaration","scope":36365,"src":"2788:21:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36357,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2771:39:123"},"returnParameters":{"id":36362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36361,"mutability":"mutable","name":"scaledAmount","nameLocation":"2866:12:123","nodeType":"VariableDeclaration","scope":36365,"src":"2858:20:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36360,"name":"uint256","nodeType":"ElementaryTypeName","src":"2858:7:123","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2857:22:123"},"scope":36366,"src":"2738:593:123","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":36367,"src":"231:3102:123","usedErrors":[]}],"src":"46:3288:123"},"id":123},"contracts/splitters/MAHASplitKeeper.sol":{"ast":{"absolutePath":"contracts/splitters/MAHASplitKeeper.sol","exportedSymbols":{"Epoch":[36811],"FeesSplitter":[36366],"ICommunityFund":[36391],"IERC20":[5767],"KeeperCompatibleInterface":[35898],"MAHASplitKeeper":[36502]},"id":36503,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":36368,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:124"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":36370,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36503,"sourceUnit":6110,"src":"71:79:124","symbolAliases":[{"foreign":{"id":36369,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"79:6:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/splitters/FeesSplitter.sol","file":"./FeesSplitter.sol","id":36372,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36503,"sourceUnit":36367,"src":"151:48:124","symbolAliases":[{"foreign":{"id":36371,"name":"FeesSplitter","nodeType":"Identifier","overloadedDeclarations":[],"src":"159:12:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/KeeperCompatibleInterface.sol","file":"../interfaces/KeeperCompatibleInterface.sol","id":36374,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36503,"sourceUnit":35899,"src":"200:86:124","symbolAliases":[{"foreign":{"id":36373,"name":"KeeperCompatibleInterface","nodeType":"Identifier","overloadedDeclarations":[],"src":"208:25:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/utils/Epoch.sol","file":"../utils/Epoch.sol","id":36376,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36503,"sourceUnit":36812,"src":"287:41:124","symbolAliases":[{"foreign":{"id":36375,"name":"Epoch","nodeType":"Identifier","overloadedDeclarations":[],"src":"295:5:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":36391,"linearizedBaseContracts":[36391],"name":"ICommunityFund","nameLocation":"340:14:124","nodeType":"ContractDefinition","nodes":[{"functionSelector":"19165587","id":36382,"implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"370:7:124","nodeType":"FunctionDefinition","parameters":{"id":36380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36379,"mutability":"mutable","name":"token","nameLocation":"385:5:124","nodeType":"VariableDeclaration","scope":36382,"src":"378:12:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":36378,"nodeType":"UserDefinedTypeName","pathNode":{"id":36377,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"378:6:124"},"referencedDeclaration":5767,"src":"378:6:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"377:14:124"},"returnParameters":{"id":36381,"nodeType":"ParameterList","parameters":[],"src":"400:0:124"},"scope":36391,"src":"361:40:124","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1726cbc8","id":36390,"implemented":false,"kind":"function","modifiers":[],"name":"releasableAmount","nameLocation":"416:16:124","nodeType":"FunctionDefinition","parameters":{"id":36386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36385,"mutability":"mutable","name":"token","nameLocation":"440:5:124","nodeType":"VariableDeclaration","scope":36390,"src":"433:12:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":36384,"nodeType":"UserDefinedTypeName","pathNode":{"id":36383,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"433:6:124"},"referencedDeclaration":5767,"src":"433:6:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"432:14:124"},"returnParameters":{"id":36389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36390,"src":"470:7:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36387,"name":"uint256","nodeType":"ElementaryTypeName","src":"470:7:124","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"469:9:124"},"scope":36391,"src":"407:72:124","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":36503,"src":"330:151:124","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":36393,"name":"Epoch","nodeType":"IdentifierPath","referencedDeclaration":36811,"src":"758:5:124"},"id":36394,"nodeType":"InheritanceSpecifier","src":"758:5:124"},{"baseName":{"id":36395,"name":"FeesSplitter","nodeType":"IdentifierPath","referencedDeclaration":36366,"src":"765:12:124"},"id":36396,"nodeType":"InheritanceSpecifier","src":"765:12:124"},{"baseName":{"id":36397,"name":"KeeperCompatibleInterface","nodeType":"IdentifierPath","referencedDeclaration":35898,"src":"779:25:124"},"id":36398,"nodeType":"InheritanceSpecifier","src":"779:25:124"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":36392,"nodeType":"StructuredDocumentation","src":"483:246:124","text":" This is a keeper contract that splits the maha from the ecosystem fund into the various treasuries on a\n monthly basis via a keeper.\n Currently deployed at: https://etherscan.io/address/0x5f7a88d09491b89f0e9a02e3cce3309ef1502ab8"},"fullyImplemented":true,"id":36502,"linearizedBaseContracts":[36502,35898,36366,36811,655,8255,34019],"name":"MAHASplitKeeper","nameLocation":"739:15:124","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"3de00c36","id":36401,"mutability":"mutable","name":"maha","nameLocation":"825:4:124","nodeType":"VariableDeclaration","scope":36502,"src":"811:18:124","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":36400,"nodeType":"UserDefinedTypeName","pathNode":{"id":36399,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"811:6:124"},"referencedDeclaration":5767,"src":"811:6:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"00f380f4","id":36404,"mutability":"mutable","name":"communityFund","nameLocation":"857:13:124","nodeType":"VariableDeclaration","scope":36502,"src":"835:35:124","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"},"typeName":{"id":36403,"nodeType":"UserDefinedTypeName","pathNode":{"id":36402,"name":"ICommunityFund","nodeType":"IdentifierPath","referencedDeclaration":36391,"src":"835:14:124"},"referencedDeclaration":36391,"src":"835:14:124","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"}},"visibility":"public"},{"body":{"id":36439,"nodeType":"Block","src":"1131:60:124","statements":[{"expression":{"id":36433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36431,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36401,"src":"1141:4:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36432,"name":"_maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36413,"src":"1148:5:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"src":"1141:12:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":36434,"nodeType":"ExpressionStatement","src":"1141:12:124"},{"expression":{"id":36437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36435,"name":"communityFund","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36404,"src":"1163:13:124","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36436,"name":"_fund","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36416,"src":"1179:5:124","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"}},"src":"1163:21:124","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"}},"id":36438,"nodeType":"ExpressionStatement","src":"1163:21:124"}]},"id":36440,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":36419,"name":"_accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36407,"src":"1049:9:124","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":36420,"name":"_percentAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36410,"src":"1060:19:124","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}}],"id":36421,"kind":"baseConstructorSpecifier","modifierName":{"id":36418,"name":"FeesSplitter","nodeType":"IdentifierPath","referencedDeclaration":36366,"src":"1036:12:124"},"nodeType":"ModifierInvocation","src":"1036:44:124"},{"arguments":[{"commonType":{"typeIdentifier":"t_rational_2592000_by_1","typeString":"int_const 2592000"},"id":36425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3836343030","id":36423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:5:124","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"86400"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3330","id":36424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:2:124","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"1095:10:124","typeDescriptions":{"typeIdentifier":"t_rational_2592000_by_1","typeString":"int_const 2592000"}},{"expression":{"id":36426,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1107:5:124","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":36427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"1107:15:124","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":36428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1124:1:124","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":36429,"kind":"baseConstructorSpecifier","modifierName":{"id":36422,"name":"Epoch","nodeType":"IdentifierPath","referencedDeclaration":36811,"src":"1089:5:124"},"nodeType":"ModifierInvocation","src":"1089:37:124"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":36417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36407,"mutability":"mutable","name":"_accounts","nameLocation":"915:9:124","nodeType":"VariableDeclaration","scope":36440,"src":"898:26:124","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":36405,"name":"address","nodeType":"ElementaryTypeName","src":"898:7:124","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36406,"nodeType":"ArrayTypeName","src":"898:9:124","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":36410,"mutability":"mutable","name":"_percentAllocations","nameLocation":"950:19:124","nodeType":"VariableDeclaration","scope":36440,"src":"934:35:124","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":36408,"name":"uint32","nodeType":"ElementaryTypeName","src":"934:6:124","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":36409,"nodeType":"ArrayTypeName","src":"934:8:124","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"},{"constant":false,"id":36413,"mutability":"mutable","name":"_maha","nameLocation":"986:5:124","nodeType":"VariableDeclaration","scope":36440,"src":"979:12:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"},"typeName":{"id":36412,"nodeType":"UserDefinedTypeName","pathNode":{"id":36411,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":5767,"src":"979:6:124"},"referencedDeclaration":5767,"src":"979:6:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":36416,"mutability":"mutable","name":"_fund","nameLocation":"1016:5:124","nodeType":"VariableDeclaration","scope":36440,"src":"1001:20:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"},"typeName":{"id":36415,"nodeType":"UserDefinedTypeName","pathNode":{"id":36414,"name":"ICommunityFund","nodeType":"IdentifierPath","referencedDeclaration":36391,"src":"1001:14:124"},"referencedDeclaration":36391,"src":"1001:14:124","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"}},"visibility":"internal"}],"src":"888:139:124"},"returnParameters":{"id":36430,"nodeType":"ParameterList","parameters":[],"src":"1131:0:124"},"scope":36502,"src":"877:314:124","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":36453,"nodeType":"Block","src":"1240:75:124","statements":[{"expression":{"arguments":[{"id":36446,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36401,"src":"1272:4:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}],"expression":{"id":36443,"name":"communityFund","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36404,"src":"1250:13:124","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"}},"id":36445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"release","nodeType":"MemberAccess","referencedDeclaration":36382,"src":"1250:21:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$5767_$returns$__$","typeString":"function (contract IERC20) external"}},"id":36447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1250:27:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36448,"nodeType":"ExpressionStatement","src":"1250:27:124"},{"expression":{"arguments":[{"id":36450,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36401,"src":"1303:4:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}],"id":36449,"name":"distributeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36249,"src":"1287:15:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5767_$returns$__$","typeString":"function (contract IERC20)"}},"id":36451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1287:21:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36452,"nodeType":"ExpressionStatement","src":"1287:21:124"}]},"functionSelector":"f46b65ac","id":36454,"implemented":true,"kind":"function","modifiers":[],"name":"releaseAndDistributeMAHA","nameLocation":"1206:24:124","nodeType":"FunctionDefinition","parameters":{"id":36441,"nodeType":"ParameterList","parameters":[],"src":"1230:2:124"},"returnParameters":{"id":36442,"nodeType":"ParameterList","parameters":[],"src":"1240:0:124"},"scope":36502,"src":"1197:118:124","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":36464,"nodeType":"Block","src":"1373:60:124","statements":[{"expression":{"arguments":[{"id":36461,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36401,"src":"1421:4:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}],"expression":{"id":36459,"name":"communityFund","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36404,"src":"1390:13:124","typeDescriptions":{"typeIdentifier":"t_contract$_ICommunityFund_$36391","typeString":"contract ICommunityFund"}},"id":36460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"releasableAmount","nodeType":"MemberAccess","referencedDeclaration":36390,"src":"1390:30:124","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IERC20_$5767_$returns$_t_uint256_$","typeString":"function (contract IERC20) view external returns (uint256)"}},"id":36462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1390:36:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36458,"id":36463,"nodeType":"Return","src":"1383:43:124"}]},"functionSelector":"fbccedae","id":36465,"implemented":true,"kind":"function","modifiers":[],"name":"releasable","nameLocation":"1330:10:124","nodeType":"FunctionDefinition","parameters":{"id":36455,"nodeType":"ParameterList","parameters":[],"src":"1340:2:124"},"returnParameters":{"id":36458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36465,"src":"1364:7:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36456,"name":"uint256","nodeType":"ElementaryTypeName","src":"1364:7:124","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1363:9:124"},"scope":36502,"src":"1321:112:124","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":36472,"nodeType":"Block","src":"1472:38:124","statements":[{"expression":{"arguments":[{"id":36469,"name":"maha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36401,"src":"1498:4:124","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}],"id":36468,"name":"distributeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36249,"src":"1482:15:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5767_$returns$__$","typeString":"function (contract IERC20)"}},"id":36470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:21:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36471,"nodeType":"ExpressionStatement","src":"1482:21:124"}]},"functionSelector":"5c45f349","id":36473,"implemented":true,"kind":"function","modifiers":[],"name":"distributeMAHA","nameLocation":"1448:14:124","nodeType":"FunctionDefinition","parameters":{"id":36466,"nodeType":"ParameterList","parameters":[],"src":"1462:2:124"},"returnParameters":{"id":36467,"nodeType":"ParameterList","parameters":[],"src":"1472:0:124"},"scope":36502,"src":"1439:71:124","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[35891],"body":{"id":36488,"nodeType":"Block","src":"1666:41:124","statements":[{"expression":{"components":[{"arguments":[],"expression":{"argumentTypes":[],"id":36483,"name":"_callable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36704,"src":"1684:9:124","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":36484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1684:11:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"","id":36485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1697:2:124","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"id":36486,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1683:17:124","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_$","typeString":"tuple(bool,literal_string \"\")"}},"functionReturnParameters":36482,"id":36487,"nodeType":"Return","src":"1676:24:124"}]},"functionSelector":"6e04ff0d","id":36489,"implemented":true,"kind":"function","modifiers":[],"name":"checkUpkeep","nameLocation":"1525:11:124","nodeType":"FunctionDefinition","overrides":{"id":36477,"nodeType":"OverrideSpecifier","overrides":[],"src":"1591:8:124"},"parameters":{"id":36476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36489,"src":"1537:14:124","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36474,"name":"bytes","nodeType":"ElementaryTypeName","src":"1537:5:124","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1536:16:124"},"returnParameters":{"id":36482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36479,"mutability":"mutable","name":"upkeepNeeded","nameLocation":"1622:12:124","nodeType":"VariableDeclaration","scope":36489,"src":"1617:17:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36478,"name":"bool","nodeType":"ElementaryTypeName","src":"1617:4:124","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36481,"mutability":"mutable","name":"performData","nameLocation":"1649:11:124","nodeType":"VariableDeclaration","scope":36489,"src":"1636:24:124","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":36480,"name":"bytes","nodeType":"ElementaryTypeName","src":"1636:5:124","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1616:45:124"},"scope":36502,"src":"1516:191:124","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[35897],"body":{"id":36500,"nodeType":"Block","src":"1781:43:124","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36497,"name":"releaseAndDistributeMAHA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36454,"src":"1791:24:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1791:26:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36499,"nodeType":"ExpressionStatement","src":"1791:26:124"}]},"functionSelector":"4585e33b","id":36501,"implemented":true,"kind":"function","modifiers":[{"id":36495,"kind":"modifierInvocation","modifierName":{"id":36494,"name":"checkEpoch","nodeType":"IdentifierPath","referencedDeclaration":36649,"src":"1770:10:124"},"nodeType":"ModifierInvocation","src":"1770:10:124"}],"name":"performUpkeep","nameLocation":"1722:13:124","nodeType":"FunctionDefinition","overrides":{"id":36493,"nodeType":"OverrideSpecifier","overrides":[],"src":"1761:8:124"},"parameters":{"id":36492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36491,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36501,"src":"1736:14:124","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36490,"name":"bytes","nodeType":"ElementaryTypeName","src":"1736:5:124","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1735:16:124"},"returnParameters":{"id":36496,"nodeType":"ParameterList","parameters":[],"src":"1781:0:124"},"scope":36502,"src":"1713:111:124","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":36503,"src":"730:1096:124","usedErrors":[]}],"src":"46:1781:124"},"id":124},"contracts/test/MockERC20.sol":{"ast":{"absolutePath":"contracts/test/MockERC20.sol","exportedSymbols":{"ERC20":[5689],"MockERC20":[36563]},"id":36564,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":36504,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:125"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":36506,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36564,"sourceUnit":5690,"src":"58:68:125","symbolAliases":[{"foreign":{"id":36505,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:5:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":36507,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":5689,"src":"150:5:125"},"id":36508,"nodeType":"InheritanceSpecifier","src":"150:5:125"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":36563,"linearizedBaseContracts":[36563,5689,5792,5767,8255],"name":"MockERC20","nameLocation":"137:9:125","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":36510,"mutability":"mutable","name":"_decimals","nameLocation":"176:9:125","nodeType":"VariableDeclaration","scope":36563,"src":"162:23:125","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":36509,"name":"uint8","nodeType":"ElementaryTypeName","src":"162:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"body":{"id":36539,"nodeType":"Block","src":"344:90:125","statements":[{"expression":{"id":36525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36523,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36510,"src":"354:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36524,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36516,"src":"366:7:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"354:19:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36526,"nodeType":"ExpressionStatement","src":"354:19:125"},{"expression":{"arguments":[{"expression":{"id":36528,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"389:3:125","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"389:10:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"hexValue":"31303030303030","id":36530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"402:7:125","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"}],"id":36531,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"401:9:125","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":36532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"414:2:125","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":36533,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36516,"src":"418:7:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"414:11:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":36535,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"413:13:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"401:25:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36527,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"383:5:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":36537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"383:44:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36538,"nodeType":"ExpressionStatement","src":"383:44:125"}]},"id":36540,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":36519,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36512,"src":"330:4:125","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":36520,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36514,"src":"336:6:125","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":36521,"kind":"baseConstructorSpecifier","modifierName":{"id":36518,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":5689,"src":"324:5:125"},"nodeType":"ModifierInvocation","src":"324:19:125"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":36517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36512,"mutability":"mutable","name":"name","nameLocation":"260:4:125","nodeType":"VariableDeclaration","scope":36540,"src":"246:18:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":36511,"name":"string","nodeType":"ElementaryTypeName","src":"246:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":36514,"mutability":"mutable","name":"symbol","nameLocation":"288:6:125","nodeType":"VariableDeclaration","scope":36540,"src":"274:20:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":36513,"name":"string","nodeType":"ElementaryTypeName","src":"274:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":36516,"mutability":"mutable","name":"decimal","nameLocation":"310:7:125","nodeType":"VariableDeclaration","scope":36540,"src":"304:13:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":36515,"name":"uint8","nodeType":"ElementaryTypeName","src":"304:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"236:87:125"},"returnParameters":{"id":36522,"nodeType":"ParameterList","parameters":[],"src":"344:0:125"},"scope":36563,"src":"225:209:125","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5178],"body":{"id":36548,"nodeType":"Block","src":"505:33:125","statements":[{"expression":{"id":36546,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36510,"src":"522:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":36545,"id":36547,"nodeType":"Return","src":"515:16:125"}]},"functionSelector":"313ce567","id":36549,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"449:8:125","nodeType":"FunctionDefinition","overrides":{"id":36542,"nodeType":"OverrideSpecifier","overrides":[],"src":"480:8:125"},"parameters":{"id":36541,"nodeType":"ParameterList","parameters":[],"src":"457:2:125"},"returnParameters":{"id":36545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36549,"src":"498:5:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":36543,"name":"uint8","nodeType":"ElementaryTypeName","src":"498:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"497:7:125"},"scope":36563,"src":"440:98:125","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":36561,"nodeType":"Block","src":"598:39:125","statements":[{"expression":{"arguments":[{"id":36557,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36551,"src":"614:7:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36558,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36553,"src":"623:6:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36556,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"608:5:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":36559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"608:22:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36560,"nodeType":"ExpressionStatement","src":"608:22:125"}]},"functionSelector":"40c10f19","id":36562,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"553:4:125","nodeType":"FunctionDefinition","parameters":{"id":36554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36551,"mutability":"mutable","name":"account","nameLocation":"566:7:125","nodeType":"VariableDeclaration","scope":36562,"src":"558:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36550,"name":"address","nodeType":"ElementaryTypeName","src":"558:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36553,"mutability":"mutable","name":"amount","nameLocation":"583:6:125","nodeType":"VariableDeclaration","scope":36562,"src":"575:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36552,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"557:33:125"},"returnParameters":{"id":36555,"nodeType":"ParameterList","parameters":[],"src":"598:0:125"},"scope":36563,"src":"544:93:125","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":36564,"src":"128:511:125","usedErrors":[]}],"src":"33:607:125"},"id":125},"contracts/utils/Epoch.sol":{"ast":{"absolutePath":"contracts/utils/Epoch.sol","exportedSymbols":{"Epoch":[36811],"IEpoch":[34019],"Math":[10353],"Ownable":[655],"SafeMath":[12516]},"id":36812,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":36565,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:126"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":36567,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36812,"sourceUnit":10354,"src":"57:65:126","symbolAliases":[{"foreign":{"id":36566,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:4:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":36569,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36812,"sourceUnit":12517,"src":"123:73:126","symbolAliases":[{"foreign":{"id":36568,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"src":"131:8:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":36571,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36812,"sourceUnit":656,"src":"197:67:126","symbolAliases":[{"foreign":{"id":36570,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"205:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEpoch.sol","file":"../interfaces/IEpoch.sol","id":36573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36812,"sourceUnit":34020,"src":"265:48:126","symbolAliases":[{"foreign":{"id":36572,"name":"IEpoch","nodeType":"Identifier","overloadedDeclarations":[],"src":"273:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":36574,"name":"IEpoch","nodeType":"IdentifierPath","referencedDeclaration":34019,"src":"333:6:126"},"id":36575,"nodeType":"InheritanceSpecifier","src":"333:6:126"},{"baseName":{"id":36576,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"341:7:126"},"id":36577,"nodeType":"InheritanceSpecifier","src":"341:7:126"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":36811,"linearizedBaseContracts":[36811,655,8255,34019],"name":"Epoch","nameLocation":"324:5:126","nodeType":"ContractDefinition","nodes":[{"id":36580,"libraryName":{"id":36578,"name":"SafeMath","nodeType":"IdentifierPath","referencedDeclaration":12516,"src":"361:8:126"},"nodeType":"UsingForDirective","src":"355:27:126","typeName":{"id":36579,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":36582,"mutability":"mutable","name":"period","nameLocation":"404:6:126","nodeType":"VariableDeclaration","scope":36811,"src":"388:22:126","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36581,"name":"uint256","nodeType":"ElementaryTypeName","src":"388:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":36584,"mutability":"mutable","name":"startTime","nameLocation":"432:9:126","nodeType":"VariableDeclaration","scope":36811,"src":"416:25:126","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36583,"name":"uint256","nodeType":"ElementaryTypeName","src":"416:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":36586,"mutability":"mutable","name":"lastExecutedAt","nameLocation":"463:14:126","nodeType":"VariableDeclaration","scope":36811,"src":"447:30:126","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36585,"name":"uint256","nodeType":"ElementaryTypeName","src":"447:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":36613,"nodeType":"Block","src":"629:130:126","statements":[{"expression":{"id":36597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36595,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"639:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36596,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36588,"src":"648:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"639:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36598,"nodeType":"ExpressionStatement","src":"639:16:126"},{"expression":{"id":36601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36599,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"665:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36600,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36590,"src":"677:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"665:22:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36602,"nodeType":"ExpressionStatement","src":"665:22:126"},{"expression":{"id":36611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36603,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36586,"src":"697:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":36608,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"744:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36606,"name":"_startEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36592,"src":"728:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":12410,"src":"728:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"728:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36604,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"714:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"714:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"714:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"697:55:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36612,"nodeType":"ExpressionStatement","src":"697:55:126"}]},"id":36614,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":36593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36588,"mutability":"mutable","name":"_period","nameLocation":"558:7:126","nodeType":"VariableDeclaration","scope":36614,"src":"550:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36587,"name":"uint256","nodeType":"ElementaryTypeName","src":"550:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36590,"mutability":"mutable","name":"_startTime","nameLocation":"583:10:126","nodeType":"VariableDeclaration","scope":36614,"src":"575:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36589,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36592,"mutability":"mutable","name":"_startEpoch","nameLocation":"611:11:126","nodeType":"VariableDeclaration","scope":36614,"src":"603:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36591,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"540:88:126"},"returnParameters":{"id":36594,"nodeType":"ParameterList","parameters":[],"src":"629:0:126"},"scope":36811,"src":"529:230:126","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":36625,"nodeType":"Block","src":"833:91:126","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36617,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"851:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":36618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"851:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":36619,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"870:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"851:28:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45706f63683a206e6f74207374617274656420796574","id":36621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"881:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563","typeString":"literal_string \"Epoch: not started yet\""},"value":"Epoch: not started yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563","typeString":"literal_string \"Epoch: not started yet\""}],"id":36616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"843:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":36622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"843:63:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36623,"nodeType":"ExpressionStatement","src":"843:63:126"},{"id":36624,"nodeType":"PlaceholderStatement","src":"916:1:126"}]},"id":36626,"name":"checkStartTime","nameLocation":"816:14:126","nodeType":"ModifierDefinition","parameters":{"id":36615,"nodeType":"ParameterList","parameters":[],"src":"830:2:126"},"src":"807:117:126","virtual":false,"visibility":"internal"},{"body":{"id":36648,"nodeType":"Block","src":"952:184:126","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36629,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"970:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":36630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"970:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":36631,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"988:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"970:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45706f63683a206e6f74207374617274656420796574","id":36633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"999:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563","typeString":"literal_string \"Epoch: not started yet\""},"value":"Epoch: not started yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563","typeString":"literal_string \"Epoch: not started yet\""}],"id":36628,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"962:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":36634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"962:62:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36635,"nodeType":"ExpressionStatement","src":"962:62:126"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":36637,"name":"_callable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36704,"src":"1042:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":36638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1042:11:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45706f63683a206e6f7420616c6c6f776564","id":36639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1055:20:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca181773b1c59604f15d7520d42e1d47889556e1b4139f88cc128771175e114d","typeString":"literal_string \"Epoch: not allowed\""},"value":"Epoch: not allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca181773b1c59604f15d7520d42e1d47889556e1b4139f88cc128771175e114d","typeString":"literal_string \"Epoch: not allowed\""}],"id":36636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1034:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":36640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1034:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36641,"nodeType":"ExpressionStatement","src":"1034:42:126"},{"id":36642,"nodeType":"PlaceholderStatement","src":"1086:1:126"},{"expression":{"id":36646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36643,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36586,"src":"1097:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36644,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1114:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":36645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"1114:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1097:32:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36647,"nodeType":"ExpressionStatement","src":"1097:32:126"}]},"id":36649,"name":"checkEpoch","nameLocation":"939:10:126","nodeType":"ModifierDefinition","parameters":{"id":36627,"nodeType":"ParameterList","parameters":[],"src":"949:2:126"},"src":"930:206:126","virtual":false,"visibility":"internal"},{"body":{"id":36662,"nodeType":"Block","src":"1199:65:126","statements":[{"expression":{"arguments":[{"id":36659,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"1250:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36656,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"1235:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36654,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36586,"src":"1216:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"1216:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"1216:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:41:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36653,"id":36661,"nodeType":"Return","src":"1209:48:126"}]},"id":36663,"implemented":true,"kind":"function","modifiers":[],"name":"_getLastEpoch","nameLocation":"1151:13:126","nodeType":"FunctionDefinition","parameters":{"id":36650,"nodeType":"ParameterList","parameters":[],"src":"1164:2:126"},"returnParameters":{"id":36653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36663,"src":"1190:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36651,"name":"uint256","nodeType":"ElementaryTypeName","src":"1190:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1189:9:126"},"scope":36811,"src":"1142:122:126","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":36681,"nodeType":"Block","src":"1330:87:126","statements":[{"expression":{"arguments":[{"id":36678,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"1403:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36675,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"1388:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36670,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"1356:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36671,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1367:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":36672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"1367:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36668,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"1347:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":36669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"1347:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1347:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"1347:40:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1347:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"1347:55:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1347:63:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36667,"id":36680,"nodeType":"Return","src":"1340:70:126"}]},"id":36682,"implemented":true,"kind":"function","modifiers":[],"name":"_getCurrentEpoch","nameLocation":"1279:16:126","nodeType":"FunctionDefinition","parameters":{"id":36664,"nodeType":"ParameterList","parameters":[],"src":"1295:2:126"},"returnParameters":{"id":36667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36682,"src":"1321:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36665,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1320:9:126"},"scope":36811,"src":"1270:147:126","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[33988],"body":{"id":36691,"nodeType":"Block","src":"1481:35:126","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36688,"name":"_callable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36704,"src":"1498:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":36689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1498:11:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":36687,"id":36690,"nodeType":"Return","src":"1491:18:126"}]},"functionSelector":"6a2ab602","id":36692,"implemented":true,"kind":"function","modifiers":[],"name":"callable","nameLocation":"1432:8:126","nodeType":"FunctionDefinition","overrides":{"id":36684,"nodeType":"OverrideSpecifier","overrides":[],"src":"1457:8:126"},"parameters":{"id":36683,"nodeType":"ParameterList","parameters":[],"src":"1440:2:126"},"returnParameters":{"id":36687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36692,"src":"1475:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36685,"name":"bool","nodeType":"ElementaryTypeName","src":"1475:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1474:6:126"},"scope":36811,"src":"1423:93:126","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":36703,"nodeType":"Block","src":"1572:61:126","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":36697,"name":"_getCurrentEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36682,"src":"1589:16:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":36698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1589:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":36699,"name":"_getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36724,"src":"1611:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":36700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1611:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1589:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":36696,"id":36702,"nodeType":"Return","src":"1582:44:126"}]},"id":36704,"implemented":true,"kind":"function","modifiers":[],"name":"_callable","nameLocation":"1531:9:126","nodeType":"FunctionDefinition","parameters":{"id":36693,"nodeType":"ParameterList","parameters":[],"src":"1540:2:126"},"returnParameters":{"id":36696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36704,"src":"1566:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36694,"name":"bool","nodeType":"ElementaryTypeName","src":"1566:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1565:6:126"},"scope":36811,"src":"1522:111:126","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":36723,"nodeType":"Block","src":"1696:135:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36709,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"1710:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":36710,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36586,"src":"1723:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1710:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36716,"nodeType":"IfStatement","src":"1706:80:126","trueBody":{"id":36715,"nodeType":"Block","src":"1739:47:126","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36712,"name":"_getLastEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36663,"src":"1760:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":36713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1760:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36708,"id":36714,"nodeType":"Return","src":"1753:22:126"}]}},{"expression":{"arguments":[{"hexValue":"31","id":36720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1822:1:126","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"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36717,"name":"_getLastEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36663,"src":"1802:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":36718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1802:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"1802:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1802:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36708,"id":36722,"nodeType":"Return","src":"1795:29:126"}]},"id":36724,"implemented":true,"kind":"function","modifiers":[],"name":"_getNextEpoch","nameLocation":"1648:13:126","nodeType":"FunctionDefinition","parameters":{"id":36705,"nodeType":"ParameterList","parameters":[],"src":"1661:2:126"},"returnParameters":{"id":36708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36724,"src":"1687:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36706,"name":"uint256","nodeType":"ElementaryTypeName","src":"1687:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1686:9:126"},"scope":36811,"src":"1639:192:126","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[33993],"body":{"id":36733,"nodeType":"Block","src":"1915:39:126","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36730,"name":"_getLastEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36663,"src":"1932:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":36731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1932:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36729,"id":36732,"nodeType":"Return","src":"1925:22:126"}]},"functionSelector":"398bac63","id":36734,"implemented":true,"kind":"function","modifiers":[],"name":"getLastEpoch","nameLocation":"1859:12:126","nodeType":"FunctionDefinition","overrides":{"id":36726,"nodeType":"OverrideSpecifier","overrides":[],"src":"1888:8:126"},"parameters":{"id":36725,"nodeType":"ParameterList","parameters":[],"src":"1871:2:126"},"returnParameters":{"id":36729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36728,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36734,"src":"1906:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36727,"name":"uint256","nodeType":"ElementaryTypeName","src":"1906:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1905:9:126"},"scope":36811,"src":"1850:104:126","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[33998],"body":{"id":36753,"nodeType":"Block","src":"2028:87:126","statements":[{"expression":{"arguments":[{"id":36750,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"2101:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36747,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"2086:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36742,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"2054:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36743,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2065:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":36744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"2065:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36740,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"2045:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":36741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"2045:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2045:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":12395,"src":"2045:40:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2045:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":12425,"src":"2045:55:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2045:63:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36739,"id":36752,"nodeType":"Return","src":"2038:70:126"}]},"functionSelector":"b97dd9e2","id":36754,"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentEpoch","nameLocation":"1969:15:126","nodeType":"FunctionDefinition","overrides":{"id":36736,"nodeType":"OverrideSpecifier","overrides":[],"src":"2001:8:126"},"parameters":{"id":36735,"nodeType":"ParameterList","parameters":[],"src":"1984:2:126"},"returnParameters":{"id":36739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36754,"src":"2019:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36737,"name":"uint256","nodeType":"ElementaryTypeName","src":"2019:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2018:9:126"},"scope":36811,"src":"1960:155:126","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34003],"body":{"id":36763,"nodeType":"Block","src":"2186:39:126","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36760,"name":"_getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36724,"src":"2203:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":36761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2203:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36759,"id":36762,"nodeType":"Return","src":"2196:22:126"}]},"functionSelector":"efe97d05","id":36764,"implemented":true,"kind":"function","modifiers":[],"name":"getNextEpoch","nameLocation":"2130:12:126","nodeType":"FunctionDefinition","overrides":{"id":36756,"nodeType":"OverrideSpecifier","overrides":[],"src":"2159:8:126"},"parameters":{"id":36755,"nodeType":"ParameterList","parameters":[],"src":"2142:2:126"},"returnParameters":{"id":36759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36764,"src":"2177:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2176:9:126"},"scope":36811,"src":"2121:104:126","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34008],"body":{"id":36779,"nodeType":"Block","src":"2298:66:126","statements":[{"expression":{"arguments":[{"arguments":[{"id":36775,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"2349:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36772,"name":"_getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36724,"src":"2329:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":36773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2329:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":12410,"src":"2329:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2329:27:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36770,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"2315:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":12380,"src":"2315:13:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2315:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36769,"id":36778,"nodeType":"Return","src":"2308:49:126"}]},"functionSelector":"c5967c26","id":36780,"implemented":true,"kind":"function","modifiers":[],"name":"nextEpochPoint","nameLocation":"2240:14:126","nodeType":"FunctionDefinition","overrides":{"id":36766,"nodeType":"OverrideSpecifier","overrides":[],"src":"2271:8:126"},"parameters":{"id":36765,"nodeType":"ParameterList","parameters":[],"src":"2254:2:126"},"returnParameters":{"id":36769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36780,"src":"2289:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36767,"name":"uint256","nodeType":"ElementaryTypeName","src":"2289:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2288:9:126"},"scope":36811,"src":"2231:133:126","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34013],"body":{"id":36788,"nodeType":"Block","src":"2446:30:126","statements":[{"expression":{"id":36786,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"2463:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36785,"id":36787,"nodeType":"Return","src":"2456:13:126"}]},"functionSelector":"1ed24195","id":36789,"implemented":true,"kind":"function","modifiers":[],"name":"getPeriod","nameLocation":"2393:9:126","nodeType":"FunctionDefinition","overrides":{"id":36782,"nodeType":"OverrideSpecifier","overrides":[],"src":"2419:8:126"},"parameters":{"id":36781,"nodeType":"ParameterList","parameters":[],"src":"2402:2:126"},"returnParameters":{"id":36785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36789,"src":"2437:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2436:9:126"},"scope":36811,"src":"2384:92:126","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34018],"body":{"id":36797,"nodeType":"Block","src":"2547:33:126","statements":[{"expression":{"id":36795,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36584,"src":"2564:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36794,"id":36796,"nodeType":"Return","src":"2557:16:126"}]},"functionSelector":"c828371e","id":36798,"implemented":true,"kind":"function","modifiers":[],"name":"getStartTime","nameLocation":"2491:12:126","nodeType":"FunctionDefinition","overrides":{"id":36791,"nodeType":"OverrideSpecifier","overrides":[],"src":"2520:8:126"},"parameters":{"id":36790,"nodeType":"ParameterList","parameters":[],"src":"2503:2:126"},"returnParameters":{"id":36794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36798,"src":"2538:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36792,"name":"uint256","nodeType":"ElementaryTypeName","src":"2538:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2537:9:126"},"scope":36811,"src":"2482:98:126","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":36809,"nodeType":"Block","src":"2685:33:126","statements":[{"expression":{"id":36807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36805,"name":"period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36582,"src":"2695:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36806,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36800,"src":"2704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2695:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36808,"nodeType":"ExpressionStatement","src":"2695:16:126"}]},"functionSelector":"0f3a9f65","id":36810,"implemented":true,"kind":"function","modifiers":[{"id":36803,"kind":"modifierInvocation","modifierName":{"id":36802,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"2675:9:126"},"nodeType":"ModifierInvocation","src":"2675:9:126"}],"name":"setPeriod","nameLocation":"2639:9:126","nodeType":"FunctionDefinition","parameters":{"id":36801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36800,"mutability":"mutable","name":"_period","nameLocation":"2657:7:126","nodeType":"VariableDeclaration","scope":36810,"src":"2649:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36799,"name":"uint256","nodeType":"ElementaryTypeName","src":"2649:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2648:17:126"},"returnParameters":{"id":36804,"nodeType":"ParameterList","parameters":[],"src":"2685:0:126"},"scope":36811,"src":"2630:88:126","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":36812,"src":"315:2405:126","usedErrors":[]}],"src":"32:2689:126"},"id":126},"contracts/utils/FullMath.sol":{"ast":{"absolutePath":"contracts/utils/FullMath.sol","exportedSymbols":{"FullMath":[36992]},"id":36993,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":36813,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:127"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":36814,"nodeType":"StructuredDocumentation","src":"57:297:127","text":"@title Contains 512-bit math functions\n @notice Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision\n @dev Handles \"phantom overflow\" i.e., allows multiplication and division where an intermediate value overflows 256 bits"},"fullyImplemented":true,"id":36992,"linearizedBaseContracts":[36992],"name":"FullMath","nameLocation":"362:8:127","nodeType":"ContractDefinition","nodes":[{"body":{"id":36947,"nodeType":"Block","src":"869:3673:127","statements":[{"assignments":[36827],"declarations":[{"constant":false,"id":36827,"mutability":"mutable","name":"prod0","nameLocation":"1190:5:127","nodeType":"VariableDeclaration","scope":36947,"src":"1182:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36826,"name":"uint256","nodeType":"ElementaryTypeName","src":"1182:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36828,"nodeType":"VariableDeclarationStatement","src":"1182:13:127"},{"assignments":[36830],"declarations":[{"constant":false,"id":36830,"mutability":"mutable","name":"prod1","nameLocation":"1258:5:127","nodeType":"VariableDeclaration","scope":36947,"src":"1250:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36829,"name":"uint256","nodeType":"ElementaryTypeName","src":"1250:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36831,"nodeType":"VariableDeclarationStatement","src":"1250:13:127"},{"AST":{"nodeType":"YulBlock","src":"1326:141:127","statements":[{"nodeType":"YulVariableDeclaration","src":"1340:30:127","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"1357:1:127"},{"name":"b","nodeType":"YulIdentifier","src":"1360:1:127"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1367:1:127","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1363:3:127"},"nodeType":"YulFunctionCall","src":"1363:6:127"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"1350:6:127"},"nodeType":"YulFunctionCall","src":"1350:20:127"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"1344:2:127","type":""}]},{"nodeType":"YulAssignment","src":"1383:18:127","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"1396:1:127"},{"name":"b","nodeType":"YulIdentifier","src":"1399:1:127"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1392:3:127"},"nodeType":"YulFunctionCall","src":"1392:9:127"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"1383:5:127"}]},{"nodeType":"YulAssignment","src":"1414:43:127","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"1431:2:127"},{"name":"prod0","nodeType":"YulIdentifier","src":"1435:5:127"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1427:3:127"},"nodeType":"YulFunctionCall","src":"1427:14:127"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"1446:2:127"},{"name":"prod0","nodeType":"YulIdentifier","src":"1450:5:127"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1443:2:127"},"nodeType":"YulFunctionCall","src":"1443:13:127"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1423:3:127"},"nodeType":"YulFunctionCall","src":"1423:34:127"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"1414:5:127"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36817,"isOffset":false,"isSlot":false,"src":"1357:1:127","valueSize":1},{"declaration":36817,"isOffset":false,"isSlot":false,"src":"1396:1:127","valueSize":1},{"declaration":36819,"isOffset":false,"isSlot":false,"src":"1360:1:127","valueSize":1},{"declaration":36819,"isOffset":false,"isSlot":false,"src":"1399:1:127","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"1383:5:127","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"1435:5:127","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"1450:5:127","valueSize":1},{"declaration":36830,"isOffset":false,"isSlot":false,"src":"1414:5:127","valueSize":1}],"id":36832,"nodeType":"InlineAssembly","src":"1317:150:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36833,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36830,"src":"1539:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":36834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1548:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1539:10:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36846,"nodeType":"IfStatement","src":"1535:179:127","trueBody":{"id":36845,"nodeType":"Block","src":"1551:163:127","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36837,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"1573:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":36838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1587:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1573:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":36836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1565:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":36840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1565:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36841,"nodeType":"ExpressionStatement","src":"1565:24:127"},{"AST":{"nodeType":"YulBlock","src":"1612:65:127","statements":[{"nodeType":"YulAssignment","src":"1630:33:127","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"1644:5:127"},{"name":"denominator","nodeType":"YulIdentifier","src":"1651:11:127"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1640:3:127"},"nodeType":"YulFunctionCall","src":"1640:23:127"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"1630:6:127"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36821,"isOffset":false,"isSlot":false,"src":"1651:11:127","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"1644:5:127","valueSize":1},{"declaration":36824,"isOffset":false,"isSlot":false,"src":"1630:6:127","valueSize":1}],"id":36842,"nodeType":"InlineAssembly","src":"1603:74:127"},{"expression":{"id":36843,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36824,"src":"1697:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36825,"id":36844,"nodeType":"Return","src":"1690:13:127"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36848,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"1827:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":36849,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36830,"src":"1841:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1827:19:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":36847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1819:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":36851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1819:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36852,"nodeType":"ExpressionStatement","src":"1819:28:127"},{"assignments":[36854],"declarations":[{"constant":false,"id":36854,"mutability":"mutable","name":"remainder","nameLocation":"2132:9:127","nodeType":"VariableDeclaration","scope":36947,"src":"2124:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36853,"name":"uint256","nodeType":"ElementaryTypeName","src":"2124:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36855,"nodeType":"VariableDeclarationStatement","src":"2124:17:127"},{"AST":{"nodeType":"YulBlock","src":"2160:62:127","statements":[{"nodeType":"YulAssignment","src":"2174:38:127","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2194:1:127"},{"name":"b","nodeType":"YulIdentifier","src":"2197:1:127"},{"name":"denominator","nodeType":"YulIdentifier","src":"2200:11:127"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2187:6:127"},"nodeType":"YulFunctionCall","src":"2187:25:127"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"2174:9:127"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36817,"isOffset":false,"isSlot":false,"src":"2194:1:127","valueSize":1},{"declaration":36819,"isOffset":false,"isSlot":false,"src":"2197:1:127","valueSize":1},{"declaration":36821,"isOffset":false,"isSlot":false,"src":"2200:11:127","valueSize":1},{"declaration":36854,"isOffset":false,"isSlot":false,"src":"2174:9:127","valueSize":1}],"id":36856,"nodeType":"InlineAssembly","src":"2151:71:127"},{"AST":{"nodeType":"YulBlock","src":"2295:108:127","statements":[{"nodeType":"YulAssignment","src":"2309:41:127","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"2322:5:127"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"2332:9:127"},{"name":"prod0","nodeType":"YulIdentifier","src":"2343:5:127"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2329:2:127"},"nodeType":"YulFunctionCall","src":"2329:20:127"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2318:3:127"},"nodeType":"YulFunctionCall","src":"2318:32:127"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2309:5:127"}]},{"nodeType":"YulAssignment","src":"2363:30:127","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"2376:5:127"},{"name":"remainder","nodeType":"YulIdentifier","src":"2383:9:127"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2372:3:127"},"nodeType":"YulFunctionCall","src":"2372:21:127"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2363:5:127"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36827,"isOffset":false,"isSlot":false,"src":"2343:5:127","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"2363:5:127","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"2376:5:127","valueSize":1},{"declaration":36830,"isOffset":false,"isSlot":false,"src":"2309:5:127","valueSize":1},{"declaration":36830,"isOffset":false,"isSlot":false,"src":"2322:5:127","valueSize":1},{"declaration":36854,"isOffset":false,"isSlot":false,"src":"2332:9:127","valueSize":1},{"declaration":36854,"isOffset":false,"isSlot":false,"src":"2383:9:127","valueSize":1}],"id":36857,"nodeType":"InlineAssembly","src":"2286:117:127"},{"assignments":[36859],"declarations":[{"constant":false,"id":36859,"mutability":"mutable","name":"twos","nameLocation":"2560:4:127","nodeType":"VariableDeclaration","scope":36947,"src":"2552:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2552:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36872,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":36862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2573:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36861,"name":"uint256","nodeType":"ElementaryTypeName","src":"2573:7:127","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":36860,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2568:4:127","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2568:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":36864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2568:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":36865,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"2588:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2568:31:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":36867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2602:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2568:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":36869,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2567:37:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":36870,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"2607:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2567:51:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2552:66:127"},{"AST":{"nodeType":"YulBlock","src":"2683:61:127","statements":[{"nodeType":"YulAssignment","src":"2697:37:127","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"2716:11:127"},{"name":"twos","nodeType":"YulIdentifier","src":"2729:4:127"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2712:3:127"},"nodeType":"YulFunctionCall","src":"2712:22:127"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"2697:11:127"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36821,"isOffset":false,"isSlot":false,"src":"2697:11:127","valueSize":1},{"declaration":36821,"isOffset":false,"isSlot":false,"src":"2716:11:127","valueSize":1},{"declaration":36859,"isOffset":false,"isSlot":false,"src":"2729:4:127","valueSize":1}],"id":36873,"nodeType":"InlineAssembly","src":"2674:70:127"},{"AST":{"nodeType":"YulBlock","src":"2817:49:127","statements":[{"nodeType":"YulAssignment","src":"2831:25:127","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"2844:5:127"},{"name":"twos","nodeType":"YulIdentifier","src":"2851:4:127"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2840:3:127"},"nodeType":"YulFunctionCall","src":"2840:16:127"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2831:5:127"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36827,"isOffset":false,"isSlot":false,"src":"2831:5:127","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"2844:5:127","valueSize":1},{"declaration":36859,"isOffset":false,"isSlot":false,"src":"2851:4:127","valueSize":1}],"id":36874,"nodeType":"InlineAssembly","src":"2808:58:127"},{"AST":{"nodeType":"YulBlock","src":"3054:63:127","statements":[{"nodeType":"YulAssignment","src":"3068:39:127","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3088:1:127","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"3091:4:127"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3084:3:127"},"nodeType":"YulFunctionCall","src":"3084:12:127"},{"name":"twos","nodeType":"YulIdentifier","src":"3098:4:127"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3080:3:127"},"nodeType":"YulFunctionCall","src":"3080:23:127"},{"kind":"number","nodeType":"YulLiteral","src":"3105:1:127","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3076:3:127"},"nodeType":"YulFunctionCall","src":"3076:31:127"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"3068:4:127"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":36859,"isOffset":false,"isSlot":false,"src":"3068:4:127","valueSize":1},{"declaration":36859,"isOffset":false,"isSlot":false,"src":"3091:4:127","valueSize":1},{"declaration":36859,"isOffset":false,"isSlot":false,"src":"3098:4:127","valueSize":1}],"id":36875,"nodeType":"InlineAssembly","src":"3045:72:127"},{"expression":{"id":36880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36876,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36827,"src":"3126:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36877,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36830,"src":"3135:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36878,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36859,"src":"3143:4:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3135:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3126:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36881,"nodeType":"ExpressionStatement","src":"3126:21:127"},{"assignments":[36883],"declarations":[{"constant":false,"id":36883,"mutability":"mutable","name":"inv","nameLocation":"3489:3:127","nodeType":"VariableDeclaration","scope":36947,"src":"3481:11:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36882,"name":"uint256","nodeType":"ElementaryTypeName","src":"3481:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36890,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":36884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3496:1:127","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36885,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"3500:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3496:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":36887,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3495:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":36888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3515:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3495:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3481:35:127"},{"expression":{"id":36897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36891,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3731:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":36892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3738:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36893,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"3742:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36894,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3756:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3742:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3738:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3731:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36898,"nodeType":"ExpressionStatement","src":"3731:28:127"},{"expression":{"id":36905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36899,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3789:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":36900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3796:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36901,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"3800:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36902,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3814:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3800:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3796:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3789:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36906,"nodeType":"ExpressionStatement","src":"3789:28:127"},{"expression":{"id":36913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36907,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3848:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":36908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3855:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36909,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"3859:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36910,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3873:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3859:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3855:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3848:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36914,"nodeType":"ExpressionStatement","src":"3848:28:127"},{"expression":{"id":36921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36915,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3907:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":36916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3914:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36917,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"3918:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36918,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3932:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3918:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3907:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36922,"nodeType":"ExpressionStatement","src":"3907:28:127"},{"expression":{"id":36929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36923,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3966:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":36924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3973:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36925,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"3977:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36926,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"3991:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3977:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3973:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3966:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36930,"nodeType":"ExpressionStatement","src":"3966:28:127"},{"expression":{"id":36937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36931,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"4026:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":36932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4033:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36933,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36821,"src":"4037:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36934,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"4051:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4037:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4033:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4026:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36938,"nodeType":"ExpressionStatement","src":"4026:28:127"},{"expression":{"id":36943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36939,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36824,"src":"4492:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36940,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36827,"src":"4501:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":36941,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"4509:3:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4501:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4492:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36944,"nodeType":"ExpressionStatement","src":"4492:20:127"},{"expression":{"id":36945,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36824,"src":"4529:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36825,"id":36946,"nodeType":"Return","src":"4522:13:127"}]},"documentation":{"id":36815,"nodeType":"StructuredDocumentation","src":"377:359:127","text":"@notice Calculates floor(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @param a The multiplicand\n @param b The multiplier\n @param denominator The divisor\n @return result The 256-bit result\n @dev Credit to Remco Bloemen under MIT license https://xn--2-umb.com/21/muldiv"},"id":36948,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"750:6:127","nodeType":"FunctionDefinition","parameters":{"id":36822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36817,"mutability":"mutable","name":"a","nameLocation":"774:1:127","nodeType":"VariableDeclaration","scope":36948,"src":"766:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36816,"name":"uint256","nodeType":"ElementaryTypeName","src":"766:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36819,"mutability":"mutable","name":"b","nameLocation":"793:1:127","nodeType":"VariableDeclaration","scope":36948,"src":"785:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36818,"name":"uint256","nodeType":"ElementaryTypeName","src":"785:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36821,"mutability":"mutable","name":"denominator","nameLocation":"812:11:127","nodeType":"VariableDeclaration","scope":36948,"src":"804:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36820,"name":"uint256","nodeType":"ElementaryTypeName","src":"804:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"756:73:127"},"returnParameters":{"id":36825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36824,"mutability":"mutable","name":"result","nameLocation":"861:6:127","nodeType":"VariableDeclaration","scope":36948,"src":"853:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36823,"name":"uint256","nodeType":"ElementaryTypeName","src":"853:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"852:16:127"},"scope":36992,"src":"741:3801:127","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":36990,"nodeType":"Block","src":"4962:177:127","statements":[{"expression":{"id":36966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36960,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36958,"src":"4972:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36962,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36951,"src":"4988:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36963,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36953,"src":"4991:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36964,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36955,"src":"4994:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36961,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36948,"src":"4981:6:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":36965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4981:25:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4972:34:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36967,"nodeType":"ExpressionStatement","src":"4972:34:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":36969,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36951,"src":"5027:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36970,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36953,"src":"5030:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36971,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36955,"src":"5033:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36968,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"5020:6:127","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":36972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5020:25:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":36973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5048:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5020:29:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36989,"nodeType":"IfStatement","src":"5016:117:127","trueBody":{"id":36988,"nodeType":"Block","src":"5051:82:127","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36976,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36958,"src":"5073:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":36979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5087:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36978,"name":"uint256","nodeType":"ElementaryTypeName","src":"5087:7:127","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":36977,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5082:4:127","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5082:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":36981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5082:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5073:26:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":36975,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5065:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":36983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5065:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36984,"nodeType":"ExpressionStatement","src":"5065:35:127"},{"expression":{"id":36986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5114:8:127","subExpression":{"id":36985,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36958,"src":"5114:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36987,"nodeType":"ExpressionStatement","src":"5114:8:127"}]}}]},"documentation":{"id":36949,"nodeType":"StructuredDocumentation","src":"4548:271:127","text":"@notice Calculates ceil(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @param a The multiplicand\n @param b The multiplier\n @param denominator The divisor\n @return result The 256-bit result"},"id":36991,"implemented":true,"kind":"function","modifiers":[],"name":"mulDivRoundingUp","nameLocation":"4833:16:127","nodeType":"FunctionDefinition","parameters":{"id":36956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36951,"mutability":"mutable","name":"a","nameLocation":"4867:1:127","nodeType":"VariableDeclaration","scope":36991,"src":"4859:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36950,"name":"uint256","nodeType":"ElementaryTypeName","src":"4859:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36953,"mutability":"mutable","name":"b","nameLocation":"4886:1:127","nodeType":"VariableDeclaration","scope":36991,"src":"4878:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36952,"name":"uint256","nodeType":"ElementaryTypeName","src":"4878:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36955,"mutability":"mutable","name":"denominator","nameLocation":"4905:11:127","nodeType":"VariableDeclaration","scope":36991,"src":"4897:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36954,"name":"uint256","nodeType":"ElementaryTypeName","src":"4897:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4849:73:127"},"returnParameters":{"id":36959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36958,"mutability":"mutable","name":"result","nameLocation":"4954:6:127","nodeType":"VariableDeclaration","scope":36991,"src":"4946:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36957,"name":"uint256","nodeType":"ElementaryTypeName","src":"4946:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4945:16:127"},"scope":36992,"src":"4824:315:127","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":36993,"src":"354:4787:127","usedErrors":[]}],"src":"32:5110:127"},"id":127},"contracts/utils/IncentiveId.sol":{"ast":{"absolutePath":"contracts/utils/IncentiveId.sol","exportedSymbols":{"IERC165":[9849],"IERC20":[5767],"IERC721":[7092],"IERC721Enumerable":[7479],"IERC721Metadata":[7506],"IERC721Permit":[14016],"IERC721Receiver":[7110],"IMulticall":[34726],"INonfungiblePositionManager":[35221],"IPeripheryImmutableState":[14032],"IPeripheryPayments":[14058],"IPoolInitializer":[14077],"IUniswapV3Factory":[13539],"IUniswapV3Pool":[13561],"IUniswapV3PoolActions":[13657],"IUniswapV3PoolDerivedState":[13688],"IUniswapV3PoolEvents":[13807],"IUniswapV3PoolImmutables":[13847],"IUniswapV3PoolOwnerActions":[13873],"IUniswapV3PoolState":[13981],"IUniswapV3Staker":[35864],"IncentiveId":[36997],"PoolAddress":[37347]},"id":36998,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":36994,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:128"},{"id":36995,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"70:19:128"},{"absolutePath":"contracts/interfaces/IUniswapV3Staker.sol","file":"../interfaces/IUniswapV3Staker.sol","id":36996,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":36998,"sourceUnit":35865,"src":"91:44:128","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":36997,"linearizedBaseContracts":[36997],"name":"IncentiveId","nameLocation":"145:11:128","nodeType":"ContractDefinition","nodes":[],"scope":36998,"src":"137:393:128","usedErrors":[]}],"src":"46:485:128"},"id":128},"contracts/utils/Multicall.sol":{"ast":{"absolutePath":"contracts/utils/Multicall.sol","exportedSymbols":{"IMulticall":[34726],"Multicall":[37082]},"id":37083,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":36999,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:129"},{"id":37000,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"70:19:129"},{"absolutePath":"contracts/interfaces/IMulticall.sol","file":"../interfaces/IMulticall.sol","id":37001,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37083,"sourceUnit":34727,"src":"91:38:129","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":37003,"name":"IMulticall","nodeType":"IdentifierPath","referencedDeclaration":34726,"src":"261:10:129"},"id":37004,"nodeType":"InheritanceSpecifier","src":"261:10:129"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":37002,"nodeType":"StructuredDocumentation","src":"131:99:129","text":"@title Multicall\n @notice Enables calling multiple methods in a single call to the contract"},"fullyImplemented":true,"id":37082,"linearizedBaseContracts":[37082,34726],"name":"Multicall","nameLocation":"248:9:129","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34725],"body":{"id":37080,"nodeType":"Block","src":"408:554:129","statements":[{"expression":{"id":37022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37015,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37013,"src":"418:7:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":37019,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37008,"src":"440:4:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":37020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"440:11:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"428:11:129","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":37016,"name":"bytes","nodeType":"ElementaryTypeName","src":"432:5:129","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":37017,"nodeType":"ArrayTypeName","src":"432:7:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":37021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"428:24:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"418:34:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":37023,"nodeType":"ExpressionStatement","src":"418:34:129"},{"body":{"id":37078,"nodeType":"Block","src":"504:452:129","statements":[{"assignments":[37036,37038],"declarations":[{"constant":false,"id":37036,"mutability":"mutable","name":"success","nameLocation":"524:7:129","nodeType":"VariableDeclaration","scope":37078,"src":"519:12:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37035,"name":"bool","nodeType":"ElementaryTypeName","src":"519:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37038,"mutability":"mutable","name":"result","nameLocation":"546:6:129","nodeType":"VariableDeclaration","scope":37078,"src":"533:19:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37037,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:129","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":37048,"initialValue":{"arguments":[{"baseExpression":{"id":37044,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37008,"src":"583:4:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":37046,"indexExpression":{"id":37045,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37025,"src":"588:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"583:7:129","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":37041,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"564:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_Multicall_$37082","typeString":"contract Multicall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Multicall_$37082","typeString":"contract Multicall"}],"id":37040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"556:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37039,"name":"address","nodeType":"ElementaryTypeName","src":"556:7:129","typeDescriptions":{}}},"id":37042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"556:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"556:26:129","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":37047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"556:35:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"518:73:129"},{"condition":{"id":37050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"610:8:129","subExpression":{"id":37049,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37036,"src":"611:7:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37071,"nodeType":"IfStatement","src":"606:306:129","trueBody":{"id":37070,"nodeType":"Block","src":"620:292:129","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37051,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"722:6:129","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"722:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3638","id":37053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"738:2:129","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"722:18:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37058,"nodeType":"IfStatement","src":"718:32:129","trueBody":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":37055,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"742:6:129","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":37056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"742:8:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37057,"nodeType":"ExpressionStatement","src":"742:8:129"}},{"AST":{"nodeType":"YulBlock","src":"777:67:129","statements":[{"nodeType":"YulAssignment","src":"799:27:129","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"813:6:129"},{"kind":"number","nodeType":"YulLiteral","src":"821:4:129","type":"","value":"0x04"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"809:3:129"},"nodeType":"YulFunctionCall","src":"809:17:129"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"799:6:129"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":37038,"isOffset":false,"isSlot":false,"src":"799:6:129","valueSize":1},{"declaration":37038,"isOffset":false,"isSlot":false,"src":"813:6:129","valueSize":1}],"id":37059,"nodeType":"InlineAssembly","src":"768:76:129"},{"expression":{"arguments":[{"arguments":[{"id":37063,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"879:6:129","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"888:6:129","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":37064,"name":"string","nodeType":"ElementaryTypeName","src":"888:6:129","typeDescriptions":{}}}],"id":37066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"887:8:129","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":37061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"868:3:129","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"868:10:129","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"868:28:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":37060,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"861:6:129","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":37068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"861:36:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37069,"nodeType":"ExpressionStatement","src":"861:36:129"}]}},{"expression":{"id":37076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37072,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37013,"src":"926:7:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":37074,"indexExpression":{"id":37073,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37025,"src":"934:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"926:10:129","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37075,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"939:6:129","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"926:19:129","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37077,"nodeType":"ExpressionStatement","src":"926:19:129"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37028,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37025,"src":"482:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":37029,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37008,"src":"486:4:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":37030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"486:11:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"482:15:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37079,"initializationExpression":{"assignments":[37025],"declarations":[{"constant":false,"id":37025,"mutability":"mutable","name":"i","nameLocation":"475:1:129","nodeType":"VariableDeclaration","scope":37079,"src":"467:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37024,"name":"uint256","nodeType":"ElementaryTypeName","src":"467:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37027,"initialValue":{"hexValue":"30","id":37026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"479:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"467:13:129"},"loopExpression":{"expression":{"id":37033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"499:3:129","subExpression":{"id":37032,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37025,"src":"499:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37034,"nodeType":"ExpressionStatement","src":"499:3:129"},"nodeType":"ForStatement","src":"462:494:129"}]},"documentation":{"id":37005,"nodeType":"StructuredDocumentation","src":"278:26:129","text":"@inheritdoc IMulticall"},"functionSelector":"ac9650d8","id":37081,"implemented":true,"kind":"function","modifiers":[],"name":"multicall","nameLocation":"318:9:129","nodeType":"FunctionDefinition","overrides":{"id":37010,"nodeType":"OverrideSpecifier","overrides":[],"src":"366:8:129"},"parameters":{"id":37009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37008,"mutability":"mutable","name":"data","nameLocation":"345:4:129","nodeType":"VariableDeclaration","scope":37081,"src":"328:21:129","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":37006,"name":"bytes","nodeType":"ElementaryTypeName","src":"328:5:129","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":37007,"nodeType":"ArrayTypeName","src":"328:7:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"327:23:129"},"returnParameters":{"id":37014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37013,"mutability":"mutable","name":"results","nameLocation":"399:7:129","nodeType":"VariableDeclaration","scope":37081,"src":"384:22:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":37011,"name":"bytes","nodeType":"ElementaryTypeName","src":"384:5:129","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":37012,"nodeType":"ArrayTypeName","src":"384:7:129","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"383:24:129"},"scope":37082,"src":"309:653:129","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":37083,"src":"230:734:129","usedErrors":[]}],"src":"46:919:129"},"id":129},"contracts/utils/NFTPositionInfo.sol":{"ast":{"absolutePath":"contracts/utils/NFTPositionInfo.sol","exportedSymbols":{"INonfungiblePositionManager":[35221],"IUniswapV3Factory":[13539],"IUniswapV3Pool":[13561],"NFTPositionInfo":[37147]},"id":37148,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":37084,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"45:23:130"},{"absolutePath":"contracts/interfaces/INonfungiblePositionManager.sol","file":"../interfaces/INonfungiblePositionManager.sol","id":37086,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37148,"sourceUnit":35222,"src":"70:90:130","symbolAliases":[{"foreign":{"id":37085,"name":"INonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"src":"78:27:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","id":37088,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37148,"sourceUnit":13540,"src":"161:94:130","symbolAliases":[{"foreign":{"id":37087,"name":"IUniswapV3Factory","nodeType":"Identifier","overloadedDeclarations":[],"src":"169:17:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","file":"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","id":37090,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37148,"sourceUnit":13562,"src":"256:88:130","symbolAliases":[{"foreign":{"id":37089,"name":"IUniswapV3Pool","nodeType":"Identifier","overloadedDeclarations":[],"src":"264:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":37091,"nodeType":"StructuredDocumentation","src":"346:73:130","text":"@notice Encapsulates the logic for getting info about a NFT token ID"},"fullyImplemented":true,"id":37147,"linearizedBaseContracts":[37147],"name":"NFTPositionInfo","nameLocation":"427:15:130","nodeType":"ContractDefinition","nodes":[{"body":{"id":37145,"nodeType":"Block","src":"1302:411:130","statements":[{"assignments":[37113],"declarations":[{"constant":false,"id":37113,"mutability":"mutable","name":"token0","nameLocation":"1320:6:130","nodeType":"VariableDeclaration","scope":37145,"src":"1312:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37112,"name":"address","nodeType":"ElementaryTypeName","src":"1312:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37114,"nodeType":"VariableDeclarationStatement","src":"1312:14:130"},{"assignments":[37116],"declarations":[{"constant":false,"id":37116,"mutability":"mutable","name":"token1","nameLocation":"1344:6:130","nodeType":"VariableDeclaration","scope":37145,"src":"1336:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37115,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37117,"nodeType":"VariableDeclarationStatement","src":"1336:14:130"},{"assignments":[37119],"declarations":[{"constant":false,"id":37119,"mutability":"mutable","name":"fee","nameLocation":"1367:3:130","nodeType":"VariableDeclaration","scope":37145,"src":"1360:10:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":37118,"name":"uint24","nodeType":"ElementaryTypeName","src":"1360:6:130","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"id":37120,"nodeType":"VariableDeclarationStatement","src":"1360:10:130"},{"expression":{"id":37132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,null,{"id":37121,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37113,"src":"1422:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37122,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37116,"src":"1442:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37123,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37119,"src":"1462:3:130","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":37124,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37106,"src":"1479:9:130","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":37125,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37108,"src":"1502:9:130","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":37126,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37110,"src":"1525:9:130","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},null,null,null,null],"id":37127,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1380:208:130","typeDescriptions":{"typeIdentifier":"t_tuple$__$__$_t_address_$_t_address_$_t_uint24_$_t_int24_$_t_int24_$_t_uint128_$__$__$__$__$","typeString":"tuple(,,address,address,uint24,int24,int24,uint128,,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37130,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37100,"src":"1628:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37128,"name":"nonfungiblePositionManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37098,"src":"1591:26:130","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"id":37129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"positions","nodeType":"MemberAccess","referencedDeclaration":35108,"src":"1591:36:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint96_$_t_address_$_t_address_$_t_address_$_t_uint24_$_t_int24_$_t_int24_$_t_uint128_$_t_uint256_$_t_uint256_$_t_uint128_$_t_uint128_$","typeString":"function (uint256) view external returns (uint96,address,address,address,uint24,int24,int24,uint128,uint256,uint256,uint128,uint128)"}},"id":37131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1591:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint96_$_t_address_$_t_address_$_t_address_$_t_uint24_$_t_int24_$_t_int24_$_t_uint128_$_t_uint256_$_t_uint256_$_t_uint128_$_t_uint128_$","typeString":"tuple(uint96,address,address,address,uint24,int24,int24,uint128,uint256,uint256,uint128,uint128)"}},"src":"1380:256:130","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37133,"nodeType":"ExpressionStatement","src":"1380:256:130"},{"expression":{"id":37143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37134,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37104,"src":"1647:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":37138,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37113,"src":"1685:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37139,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37116,"src":"1693:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37140,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37119,"src":"1701:3:130","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"expression":{"id":37136,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37095,"src":"1669:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"id":37137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":13512,"src":"1669:15:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$_t_uint24_$returns$_t_address_$","typeString":"function (address,address,uint24) view external returns (address)"}},"id":37141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1669:36:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37135,"name":"IUniswapV3Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13561,"src":"1654:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IUniswapV3Pool_$13561_$","typeString":"type(contract IUniswapV3Pool)"}},"id":37142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:52:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"src":"1647:59:130","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"id":37144,"nodeType":"ExpressionStatement","src":"1647:59:130"}]},"documentation":{"id":37092,"nodeType":"StructuredDocumentation","src":"449:510:130","text":"@param factory The address of the Uniswap V3 Factory used in computing the pool address\n @param nonfungiblePositionManager The address of the nonfungible position manager to query\n @param tokenId The unique identifier of an Uniswap V3 LP token\n @return pool The address of the Uniswap V3 pool\n @return tickLower The lower tick of the Uniswap V3 position\n @return tickUpper The upper tick of the Uniswap V3 position\n @return liquidity The amount of liquidity staked"},"id":37146,"implemented":true,"kind":"function","modifiers":[],"name":"getPositionInfo","nameLocation":"973:15:130","nodeType":"FunctionDefinition","parameters":{"id":37101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37095,"mutability":"mutable","name":"factory","nameLocation":"1016:7:130","nodeType":"VariableDeclaration","scope":37146,"src":"998:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"},"typeName":{"id":37094,"nodeType":"UserDefinedTypeName","pathNode":{"id":37093,"name":"IUniswapV3Factory","nodeType":"IdentifierPath","referencedDeclaration":13539,"src":"998:17:130"},"referencedDeclaration":13539,"src":"998:17:130","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Factory_$13539","typeString":"contract IUniswapV3Factory"}},"visibility":"internal"},{"constant":false,"id":37098,"mutability":"mutable","name":"nonfungiblePositionManager","nameLocation":"1061:26:130","nodeType":"VariableDeclaration","scope":37146,"src":"1033:54:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"},"typeName":{"id":37097,"nodeType":"UserDefinedTypeName","pathNode":{"id":37096,"name":"INonfungiblePositionManager","nodeType":"IdentifierPath","referencedDeclaration":35221,"src":"1033:27:130"},"referencedDeclaration":35221,"src":"1033:27:130","typeDescriptions":{"typeIdentifier":"t_contract$_INonfungiblePositionManager_$35221","typeString":"contract INonfungiblePositionManager"}},"visibility":"internal"},{"constant":false,"id":37100,"mutability":"mutable","name":"tokenId","nameLocation":"1105:7:130","nodeType":"VariableDeclaration","scope":37146,"src":"1097:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37099,"name":"uint256","nodeType":"ElementaryTypeName","src":"1097:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"988:130:130"},"returnParameters":{"id":37111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37104,"mutability":"mutable","name":"pool","nameLocation":"1194:4:130","nodeType":"VariableDeclaration","scope":37146,"src":"1179:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"},"typeName":{"id":37103,"nodeType":"UserDefinedTypeName","pathNode":{"id":37102,"name":"IUniswapV3Pool","nodeType":"IdentifierPath","referencedDeclaration":13561,"src":"1179:14:130"},"referencedDeclaration":13561,"src":"1179:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_IUniswapV3Pool_$13561","typeString":"contract IUniswapV3Pool"}},"visibility":"internal"},{"constant":false,"id":37106,"mutability":"mutable","name":"tickLower","nameLocation":"1218:9:130","nodeType":"VariableDeclaration","scope":37146,"src":"1212:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":37105,"name":"int24","nodeType":"ElementaryTypeName","src":"1212:5:130","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":37108,"mutability":"mutable","name":"tickUpper","nameLocation":"1247:9:130","nodeType":"VariableDeclaration","scope":37146,"src":"1241:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":37107,"name":"int24","nodeType":"ElementaryTypeName","src":"1241:5:130","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":37110,"mutability":"mutable","name":"liquidity","nameLocation":"1278:9:130","nodeType":"VariableDeclaration","scope":37146,"src":"1270:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":37109,"name":"uint128","nodeType":"ElementaryTypeName","src":"1270:7:130","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1165:132:130"},"scope":37147,"src":"964:749:130","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":37148,"src":"419:1296:130","usedErrors":[]}],"src":"45:1671:130"},"id":130},"contracts/utils/Operator.sol":{"ast":{"absolutePath":"contracts/utils/Operator.sol","exportedSymbols":{"Context":[8255],"Operator":[37253],"Ownable":[655]},"id":37254,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":37149,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:131"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":37152,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37254,"sourceUnit":656,"src":"57:76:131","symbolAliases":[{"foreign":{"id":37150,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37151,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"74:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":37153,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":8255,"src":"165:7:131"},"id":37154,"nodeType":"InheritanceSpecifier","src":"165:7:131"},{"baseName":{"id":37155,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"174:7:131"},"id":37156,"nodeType":"InheritanceSpecifier","src":"174:7:131"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":37253,"linearizedBaseContracts":[37253,655,8255],"name":"Operator","nameLocation":"153:8:131","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":37158,"mutability":"mutable","name":"_operator","nameLocation":"202:9:131","nodeType":"VariableDeclaration","scope":37253,"src":"186:25:131","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37157,"name":"address","nodeType":"ElementaryTypeName","src":"186:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"id":37164,"name":"OperatorTransferred","nameLocation":"222:19:131","nodeType":"EventDefinition","parameters":{"id":37163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37160,"indexed":true,"mutability":"mutable","name":"previousOperator","nameLocation":"263:16:131","nodeType":"VariableDeclaration","scope":37164,"src":"247:32:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37159,"name":"address","nodeType":"ElementaryTypeName","src":"247:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37162,"indexed":true,"mutability":"mutable","name":"newOperator","nameLocation":"301:11:131","nodeType":"VariableDeclaration","scope":37164,"src":"285:27:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37161,"name":"address","nodeType":"ElementaryTypeName","src":"285:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"241:75:131"},"src":"216:101:131"},{"body":{"id":37180,"nodeType":"Block","src":"335:88:131","statements":[{"expression":{"id":37170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37167,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"341:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":37168,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"353:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":37169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"353:12:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"341:24:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37171,"nodeType":"ExpressionStatement","src":"341:24:131"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":37175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"404:1:131","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":37174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"396:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37173,"name":"address","nodeType":"ElementaryTypeName","src":"396:7:131","typeDescriptions":{}}},"id":37176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"396:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37177,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"408:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":37172,"name":"OperatorTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37164,"src":"376:19:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":37178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"376:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37179,"nodeType":"EmitStatement","src":"371:47:131"}]},"id":37181,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":37165,"nodeType":"ParameterList","parameters":[],"src":"332:2:131"},"returnParameters":{"id":37166,"nodeType":"ParameterList","parameters":[],"src":"335:0:131"},"scope":37253,"src":"321:102:131","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":37188,"nodeType":"Block","src":"477:27:131","statements":[{"expression":{"id":37186,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"490:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":37185,"id":37187,"nodeType":"Return","src":"483:16:131"}]},"functionSelector":"570ca735","id":37189,"implemented":true,"kind":"function","modifiers":[],"name":"operator","nameLocation":"436:8:131","nodeType":"FunctionDefinition","parameters":{"id":37182,"nodeType":"ParameterList","parameters":[],"src":"444:2:131"},"returnParameters":{"id":37185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37189,"src":"468:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37183,"name":"address","nodeType":"ElementaryTypeName","src":"468:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"467:9:131"},"scope":37253,"src":"427:77:131","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":37200,"nodeType":"Block","src":"532:92:131","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37192,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"546:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":37193,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"559:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":37194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"559:12:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"546:25:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f72","id":37196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"573:38:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_a62bfdba5053072911b63b0f6325b0e83fcd28b5a847d97efdd966feb4daaafb","typeString":"literal_string \"operator: caller is not the operator\""},"value":"operator: caller is not the operator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a62bfdba5053072911b63b0f6325b0e83fcd28b5a847d97efdd966feb4daaafb","typeString":"literal_string \"operator: caller is not the operator\""}],"id":37191,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"538:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"538:74:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37198,"nodeType":"ExpressionStatement","src":"538:74:131"},{"id":37199,"nodeType":"PlaceholderStatement","src":"618:1:131"}]},"id":37201,"name":"onlyOperator","nameLocation":"517:12:131","nodeType":"ModifierDefinition","parameters":{"id":37190,"nodeType":"ParameterList","parameters":[],"src":"529:2:131"},"src":"508:116:131","virtual":false,"visibility":"internal"},{"body":{"id":37211,"nodeType":"Block","src":"677:43:131","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":37206,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"690:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":37207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"690:12:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":37208,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"706:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"690:25:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":37205,"id":37210,"nodeType":"Return","src":"683:32:131"}]},"functionSelector":"4456eda2","id":37212,"implemented":true,"kind":"function","modifiers":[],"name":"isOperator","nameLocation":"637:10:131","nodeType":"FunctionDefinition","parameters":{"id":37202,"nodeType":"ParameterList","parameters":[],"src":"647:2:131"},"returnParameters":{"id":37205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37212,"src":"671:4:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37203,"name":"bool","nodeType":"ElementaryTypeName","src":"671:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"670:6:131"},"scope":37253,"src":"628:92:131","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":37223,"nodeType":"Block","src":"789:42:131","statements":[{"expression":{"arguments":[{"id":37220,"name":"newOperator_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37214,"src":"813:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37219,"name":"_transferOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37252,"src":"795:17:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":37221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"795:31:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37222,"nodeType":"ExpressionStatement","src":"795:31:131"}]},"functionSelector":"29605e77","id":37224,"implemented":true,"kind":"function","modifiers":[{"id":37217,"kind":"modifierInvocation","modifierName":{"id":37216,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"779:9:131"},"nodeType":"ModifierInvocation","src":"779:9:131"}],"name":"transferOperator","nameLocation":"733:16:131","nodeType":"FunctionDefinition","parameters":{"id":37215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37214,"mutability":"mutable","name":"newOperator_","nameLocation":"758:12:131","nodeType":"VariableDeclaration","scope":37224,"src":"750:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37213,"name":"address","nodeType":"ElementaryTypeName","src":"750:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"749:22:131"},"returnParameters":{"id":37218,"nodeType":"ParameterList","parameters":[],"src":"789:0:131"},"scope":37253,"src":"724:107:131","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":37251,"nodeType":"Block","src":"893:199:131","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37230,"name":"newOperator_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37226,"src":"914:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":37233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"938:1:131","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":37232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"930:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37231,"name":"address","nodeType":"ElementaryTypeName","src":"930:7:131","typeDescriptions":{}}},"id":37234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"930:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"914:26:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72","id":37236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"948:47:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_756508c1c0554725dd91ce0028667672a5318d736a5e4bcd98b6bc8fe98c3dc7","typeString":"literal_string \"operator: zero address given for new operator\""},"value":"operator: zero address given for new operator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_756508c1c0554725dd91ce0028667672a5318d736a5e4bcd98b6bc8fe98c3dc7","typeString":"literal_string \"operator: zero address given for new operator\""}],"id":37229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"899:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"899:102:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37238,"nodeType":"ExpressionStatement","src":"899:102:131"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":37242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1040:1:131","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":37241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1032:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37240,"name":"address","nodeType":"ElementaryTypeName","src":"1032:7:131","typeDescriptions":{}}},"id":37243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1032:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37244,"name":"newOperator_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37226,"src":"1044:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":37239,"name":"OperatorTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37164,"src":"1012:19:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":37245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1012:45:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37246,"nodeType":"EmitStatement","src":"1007:50:131"},{"expression":{"id":37249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37247,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"1063:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37248,"name":"newOperator_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37226,"src":"1075:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1063:24:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37250,"nodeType":"ExpressionStatement","src":"1063:24:131"}]},"id":37252,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOperator","nameLocation":"844:17:131","nodeType":"FunctionDefinition","parameters":{"id":37227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37226,"mutability":"mutable","name":"newOperator_","nameLocation":"870:12:131","nodeType":"VariableDeclaration","scope":37252,"src":"862:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37225,"name":"address","nodeType":"ElementaryTypeName","src":"862:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"861:22:131"},"returnParameters":{"id":37228,"nodeType":"ParameterList","parameters":[],"src":"893:0:131"},"scope":37253,"src":"835:257:131","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":37254,"src":"135:959:131","usedErrors":[]}],"src":"32:1063:131"},"id":131},"contracts/utils/PoolAddress.sol":{"ast":{"absolutePath":"contracts/utils/PoolAddress.sol","exportedSymbols":{"PoolAddress":[37347]},"id":37348,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":37255,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:132"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":37256,"nodeType":"StructuredDocumentation","src":"71:96:132","text":"@title Provides functions for deriving a pool address from the factory, tokens, and the fee"},"fullyImplemented":true,"id":37347,"linearizedBaseContracts":[37347],"name":"PoolAddress","nameLocation":"175:11:132","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":37259,"mutability":"constant","name":"POOL_INIT_CODE_HASH","nameLocation":"219:19:132","nodeType":"VariableDeclaration","scope":37347,"src":"193:114:132","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"193:7:132","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307865333466313939623139623262346634376636383434323631396435353535323764323434663738613332393765613839333235663834336638376238623534","id":37258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"241:66:132","typeDescriptions":{"typeIdentifier":"t_rational_102814774271675688723325049954498779091328469440286648861889194717372678376276_by_1","typeString":"int_const 1028...(70 digits omitted)...6276"},"value":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54"},"visibility":"internal"},{"canonicalName":"PoolAddress.PoolKey","id":37266,"members":[{"constant":false,"id":37261,"mutability":"mutable","name":"token0","nameLocation":"395:6:132","nodeType":"VariableDeclaration","scope":37266,"src":"387:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37260,"name":"address","nodeType":"ElementaryTypeName","src":"387:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37263,"mutability":"mutable","name":"token1","nameLocation":"419:6:132","nodeType":"VariableDeclaration","scope":37266,"src":"411:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37262,"name":"address","nodeType":"ElementaryTypeName","src":"411:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37265,"mutability":"mutable","name":"fee","nameLocation":"442:3:132","nodeType":"VariableDeclaration","scope":37266,"src":"435:10:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":37264,"name":"uint24","nodeType":"ElementaryTypeName","src":"435:6:132","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"name":"PoolKey","nameLocation":"369:7:132","nodeType":"StructDefinition","scope":37347,"src":"362:90:132","visibility":"public"},{"body":{"id":37297,"nodeType":"Block","src":"917:141:132","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37279,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37269,"src":"931:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":37280,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37271,"src":"940:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"931:15:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37290,"nodeType":"IfStatement","src":"927:56:132","trueBody":{"expression":{"id":37288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37282,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37269,"src":"949:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37283,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37271,"src":"957:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":37284,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"948:16:132","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":37285,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37271,"src":"968:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37286,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37269,"src":"976:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":37287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"967:16:132","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"948:35:132","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37289,"nodeType":"ExpressionStatement","src":"948:35:132"}},{"expression":{"arguments":[{"id":37292,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37269,"src":"1017:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37293,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37271,"src":"1033:6:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37294,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37273,"src":"1046:3:132","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":37291,"name":"PoolKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37266,"src":"1000:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PoolKey_$37266_storage_ptr_$","typeString":"type(struct PoolAddress.PoolKey storage pointer)"}},"id":37295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["token0","token1","fee"],"nodeType":"FunctionCall","src":"1000:51:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey memory"}},"functionReturnParameters":37278,"id":37296,"nodeType":"Return","src":"993:58:132"}]},"documentation":{"id":37267,"nodeType":"StructuredDocumentation","src":"458:321:132","text":"@notice Returns PoolKey: the ordered tokens with the matched fee levels\n @param tokenA The first token of a pool, unsorted\n @param tokenB The second token of a pool, unsorted\n @param fee The fee level of the pool\n @return Poolkey The pool details with ordered token0 and token1 assignments"},"id":37298,"implemented":true,"kind":"function","modifiers":[],"name":"getPoolKey","nameLocation":"793:10:132","nodeType":"FunctionDefinition","parameters":{"id":37274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37269,"mutability":"mutable","name":"tokenA","nameLocation":"821:6:132","nodeType":"VariableDeclaration","scope":37298,"src":"813:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37268,"name":"address","nodeType":"ElementaryTypeName","src":"813:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37271,"mutability":"mutable","name":"tokenB","nameLocation":"845:6:132","nodeType":"VariableDeclaration","scope":37298,"src":"837:14:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37270,"name":"address","nodeType":"ElementaryTypeName","src":"837:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37273,"mutability":"mutable","name":"fee","nameLocation":"868:3:132","nodeType":"VariableDeclaration","scope":37298,"src":"861:10:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":37272,"name":"uint24","nodeType":"ElementaryTypeName","src":"861:6:132","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"803:74:132"},"returnParameters":{"id":37278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37298,"src":"901:14:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey"},"typeName":{"id":37276,"nodeType":"UserDefinedTypeName","pathNode":{"id":37275,"name":"PoolKey","nodeType":"IdentifierPath","referencedDeclaration":37266,"src":"901:7:132"},"referencedDeclaration":37266,"src":"901:7:132","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_storage_ptr","typeString":"struct PoolAddress.PoolKey"}},"visibility":"internal"}],"src":"900:16:132"},"scope":37347,"src":"784:274:132","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":37345,"nodeType":"Block","src":"1403:414:132","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37310,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37304,"src":"1421:3:132","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey memory"}},"id":37311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token0","nodeType":"MemberAccess","referencedDeclaration":37261,"src":"1421:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":37312,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37304,"src":"1434:3:132","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey memory"}},"id":37313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":37263,"src":"1434:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1421:23:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":37309,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1413:7:132","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":37315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1413:32:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37316,"nodeType":"ExpressionStatement","src":"1413:32:132"},{"expression":{"id":37343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37317,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37307,"src":"1455:4:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"ff","id":37325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1581:7:132","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string hex\"ff\""}},{"id":37326,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37301,"src":"1614:7:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"expression":{"id":37330,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37304,"src":"1668:3:132","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey memory"}},"id":37331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token0","nodeType":"MemberAccess","referencedDeclaration":37261,"src":"1668:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":37332,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37304,"src":"1680:3:132","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey memory"}},"id":37333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":37263,"src":"1680:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":37334,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37304,"src":"1692:3:132","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey memory"}},"id":37335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"1692:7:132","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"expression":{"id":37328,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1657:3:132","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1657:10:132","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1657:43:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":37327,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1647:9:132","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":37337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1647:54:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":37338,"name":"POOL_INIT_CODE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37259,"src":"1727:19:132","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string hex\"ff\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":37323,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1539:3:132","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1539:16:132","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1539:229:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":37322,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1508:9:132","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":37340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1508:278:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":37321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1483:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":37320,"name":"bytes20","nodeType":"ElementaryTypeName","src":"1483:7:132","typeDescriptions":{}}},"id":37341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1483:317:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":37319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1462:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37318,"name":"address","nodeType":"ElementaryTypeName","src":"1462:7:132","typeDescriptions":{}}},"id":37342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1462:348:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1455:355:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37344,"nodeType":"ExpressionStatement","src":"1455:355:132"}]},"documentation":{"id":37299,"nodeType":"StructuredDocumentation","src":"1064:236:132","text":"@notice Deterministically computes the pool address given the factory and PoolKey\n @param factory The Uniswap V3 factory contract address\n @param key The PoolKey\n @return pool The contract address of the V3 pool"},"id":37346,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"1314:14:132","nodeType":"FunctionDefinition","parameters":{"id":37305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37301,"mutability":"mutable","name":"factory","nameLocation":"1337:7:132","nodeType":"VariableDeclaration","scope":37346,"src":"1329:15:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37300,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37304,"mutability":"mutable","name":"key","nameLocation":"1361:3:132","nodeType":"VariableDeclaration","scope":37346,"src":"1346:18:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_memory_ptr","typeString":"struct PoolAddress.PoolKey"},"typeName":{"id":37303,"nodeType":"UserDefinedTypeName","pathNode":{"id":37302,"name":"PoolKey","nodeType":"IdentifierPath","referencedDeclaration":37266,"src":"1346:7:132"},"referencedDeclaration":37266,"src":"1346:7:132","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$37266_storage_ptr","typeString":"struct PoolAddress.PoolKey"}},"visibility":"internal"}],"src":"1328:37:132"},"returnParameters":{"id":37308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37307,"mutability":"mutable","name":"pool","nameLocation":"1397:4:132","nodeType":"VariableDeclaration","scope":37346,"src":"1389:12:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37306,"name":"address","nodeType":"ElementaryTypeName","src":"1389:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1388:14:132"},"scope":37347,"src":"1305:512:132","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":37348,"src":"167:1652:132","usedErrors":[]}],"src":"46:1774:132"},"id":132},"contracts/utils/RewardMath.sol":{"ast":{"absolutePath":"contracts/utils/RewardMath.sol","exportedSymbols":{"FullMath":[36992],"Math":[10353],"RewardMath":[37418]},"id":37419,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":37349,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:133"},{"absolutePath":"contracts/utils/FullMath.sol","file":"./FullMath.sol","id":37350,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37419,"sourceUnit":36993,"src":"57:24:133","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":37351,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37419,"sourceUnit":10354,"src":"82:53:133","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":37352,"nodeType":"StructuredDocumentation","src":"137:122:133","text":"@title Math for computing rewards\n @notice Allows computing rewards given some parameters of stakes and incentives"},"fullyImplemented":true,"id":37418,"linearizedBaseContracts":[37418],"name":"RewardMath","nameLocation":"267:10:133","nodeType":"ContractDefinition","nodes":[{"body":{"id":37416,"nodeType":"Block","src":"1819:644:133","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37377,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37369,"src":"1897:11:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":37378,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"1912:9:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1897:24:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":37376,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1890:6:133","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":37380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1890:32:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37381,"nodeType":"ExpressionStatement","src":"1890:32:133"},{"expression":{"id":37389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37382,"name":"secondsInsideX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"2027:17:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":37388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":37385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37383,"name":"secondsPerLiquidityInsideX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37367,"src":"2060:29:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":37384,"name":"secondsPerLiquidityInsideInitialX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37365,"src":"2108:36:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"2060:84:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"id":37386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2059:86:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":37387,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37363,"src":"2160:9:133","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2059:110:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"2027:142:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":37390,"nodeType":"ExpressionStatement","src":"2027:142:133"},{"assignments":[37392],"declarations":[{"constant":false,"id":37392,"mutability":"mutable","name":"totalSecondsUnclaimedX128","nameLocation":"2188:25:133","nodeType":"VariableDeclaration","scope":37416,"src":"2180:33:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37391,"name":"uint256","nodeType":"ElementaryTypeName","src":"2180:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37406,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":37395,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37361,"src":"2227:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37396,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37369,"src":"2236:11:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37393,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"2218:4:133","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10353_$","typeString":"type(library Math)"}},"id":37394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":9874,"src":"2218:8:133","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2218:30:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":37398,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"2263:9:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2218:54:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":37400,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2217:56:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":37401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2277:3:133","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2217:63:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":37403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2216:65:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":37404,"name":"totalSecondsClaimedX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37357,"src":"2284:23:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"2216:91:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2180:127:133"},{"expression":{"id":37414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37407,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"2318:6:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37410,"name":"totalRewardUnclaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2356:20:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37411,"name":"secondsInsideX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"2390:17:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"id":37412,"name":"totalSecondsUnclaimedX128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37392,"src":"2421:25:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37408,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36992,"src":"2327:8:133","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$36992_$","typeString":"type(library FullMath)"}},"id":37409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":36948,"src":"2327:15:133","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":37413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2327:129:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2318:138:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37415,"nodeType":"ExpressionStatement","src":"2318:138:133"}]},"documentation":{"id":37353,"nodeType":"StructuredDocumentation","src":"284:1141:133","text":"@notice Compute the amount of rewards owed given parameters of the incentive and stake\n @param totalRewardUnclaimed The total amount of unclaimed rewards left for an incentive\n @param totalSecondsClaimedX128 How many full liquidity-seconds have been already claimed for the incentive\n @param startTime When the incentive rewards began in epoch seconds\n @param endTime When rewards are no longer being dripped out in epoch seconds\n @param liquidity The amount of liquidity, assumed to be constant over the period over which the snapshots are measured\n @param secondsPerLiquidityInsideInitialX128 The seconds per liquidity of the liquidity tick range as of the beginning of the period\n @param secondsPerLiquidityInsideX128 The seconds per liquidity of the liquidity tick range as of the current block timestamp\n @param currentTime The current block timestamp, which must be greater than or equal to the start time\n @return reward The amount of rewards owed\n @return secondsInsideX128 The total liquidity seconds inside the position's range for the duration of the stake"},"id":37417,"implemented":true,"kind":"function","modifiers":[],"name":"computeRewardAmount","nameLocation":"1439:19:133","nodeType":"FunctionDefinition","parameters":{"id":37370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37355,"mutability":"mutable","name":"totalRewardUnclaimed","nameLocation":"1476:20:133","nodeType":"VariableDeclaration","scope":37417,"src":"1468:28:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37354,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37357,"mutability":"mutable","name":"totalSecondsClaimedX128","nameLocation":"1514:23:133","nodeType":"VariableDeclaration","scope":37417,"src":"1506:31:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":37356,"name":"uint160","nodeType":"ElementaryTypeName","src":"1506:7:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":37359,"mutability":"mutable","name":"startTime","nameLocation":"1555:9:133","nodeType":"VariableDeclaration","scope":37417,"src":"1547:17:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37361,"mutability":"mutable","name":"endTime","nameLocation":"1582:7:133","nodeType":"VariableDeclaration","scope":37417,"src":"1574:15:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37360,"name":"uint256","nodeType":"ElementaryTypeName","src":"1574:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37363,"mutability":"mutable","name":"liquidity","nameLocation":"1607:9:133","nodeType":"VariableDeclaration","scope":37417,"src":"1599:17:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":37362,"name":"uint128","nodeType":"ElementaryTypeName","src":"1599:7:133","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":37365,"mutability":"mutable","name":"secondsPerLiquidityInsideInitialX128","nameLocation":"1634:36:133","nodeType":"VariableDeclaration","scope":37417,"src":"1626:44:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":37364,"name":"uint160","nodeType":"ElementaryTypeName","src":"1626:7:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":37367,"mutability":"mutable","name":"secondsPerLiquidityInsideX128","nameLocation":"1688:29:133","nodeType":"VariableDeclaration","scope":37417,"src":"1680:37:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":37366,"name":"uint160","nodeType":"ElementaryTypeName","src":"1680:7:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":37369,"mutability":"mutable","name":"currentTime","nameLocation":"1735:11:133","nodeType":"VariableDeclaration","scope":37417,"src":"1727:19:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1727:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1458:294:133"},"returnParameters":{"id":37375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37372,"mutability":"mutable","name":"reward","nameLocation":"1784:6:133","nodeType":"VariableDeclaration","scope":37417,"src":"1776:14:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37371,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37374,"mutability":"mutable","name":"secondsInsideX128","nameLocation":"1800:17:133","nodeType":"VariableDeclaration","scope":37417,"src":"1792:25:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":37373,"name":"uint160","nodeType":"ElementaryTypeName","src":"1792:7:133","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"1775:43:133"},"scope":37418,"src":"1430:1033:133","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":37419,"src":"259:2206:133","usedErrors":[]}],"src":"32:2434:133"},"id":133},"contracts/utils/TransferHelper.sol":{"ast":{"absolutePath":"contracts/utils/TransferHelper.sol","exportedSymbols":{"IERC20":[5767],"TransferHelper":[37589]},"id":37590,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":37420,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"45:23:134"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":37421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37590,"sourceUnit":5768,"src":"70:56:134","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":37589,"linearizedBaseContracts":[37589],"name":"TransferHelper","nameLocation":"136:14:134","nodeType":"ContractDefinition","nodes":[{"body":{"id":37469,"nodeType":"Block","src":"689:229:134","statements":[{"assignments":[37434,37436],"declarations":[{"constant":false,"id":37434,"mutability":"mutable","name":"success","nameLocation":"705:7:134","nodeType":"VariableDeclaration","scope":37469,"src":"700:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37433,"name":"bool","nodeType":"ElementaryTypeName","src":"700:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37436,"mutability":"mutable","name":"data","nameLocation":"727:4:134","nodeType":"VariableDeclaration","scope":37469,"src":"714:17:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37435,"name":"bytes","nodeType":"ElementaryTypeName","src":"714:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":37449,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":37441,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"781:6:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":37442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"781:19:134","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transferFrom(address,address,uint256) returns (bool)"}},"id":37443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"781:28:134","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":37444,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"811:4:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37445,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"817:2:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37446,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37430,"src":"821:5:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37439,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"758:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"758:22:134","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":37447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"758:69:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":37437,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"747:5:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"747:10:134","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":37448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"747:81:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"699:129:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37451,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37434,"src":"846:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37452,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37436,"src":"858:4:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"858:11:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":37454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"873:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"858:16:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":37458,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37436,"src":"889:4:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"896:4:134","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":37459,"name":"bool","nodeType":"ElementaryTypeName","src":"896:4:134","typeDescriptions":{}}}],"id":37461,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"895:6:134","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":37456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"878:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"878:10:134","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"878:24:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"858:44:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":37464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"857:46:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"846:57:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"535446","id":37466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"905:5:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1c4b1d67db284650e7cfb49cb11ce76848206ad466478425bd3418f8bbb9a86","typeString":"literal_string \"STF\""},"value":"STF"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1c4b1d67db284650e7cfb49cb11ce76848206ad466478425bd3418f8bbb9a86","typeString":"literal_string \"STF\""}],"id":37450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"838:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"838:73:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37468,"nodeType":"ExpressionStatement","src":"838:73:134"}]},"documentation":{"id":37422,"nodeType":"StructuredDocumentation","src":"157:398:134","text":"@notice Transfers tokens from the targeted address to the given destination\n @notice Errors with 'STF' if transfer fails\n @param token The contract address of the token to be transferred\n @param from The originating address from which the tokens will be transferred\n @param to The destination address of the transfer\n @param value The amount to be transferred"},"id":37470,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"569:16:134","nodeType":"FunctionDefinition","parameters":{"id":37431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37424,"mutability":"mutable","name":"token","nameLocation":"603:5:134","nodeType":"VariableDeclaration","scope":37470,"src":"595:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37423,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37426,"mutability":"mutable","name":"from","nameLocation":"626:4:134","nodeType":"VariableDeclaration","scope":37470,"src":"618:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37425,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37428,"mutability":"mutable","name":"to","nameLocation":"648:2:134","nodeType":"VariableDeclaration","scope":37470,"src":"640:10:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37427,"name":"address","nodeType":"ElementaryTypeName","src":"640:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37430,"mutability":"mutable","name":"value","nameLocation":"668:5:134","nodeType":"VariableDeclaration","scope":37470,"src":"660:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37429,"name":"uint256","nodeType":"ElementaryTypeName","src":"660:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"585:94:134"},"returnParameters":{"id":37432,"nodeType":"ParameterList","parameters":[],"src":"689:0:134"},"scope":37589,"src":"560:358:134","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":37515,"nodeType":"Block","src":"1313:206:134","statements":[{"assignments":[37481,37483],"declarations":[{"constant":false,"id":37481,"mutability":"mutable","name":"success","nameLocation":"1329:7:134","nodeType":"VariableDeclaration","scope":37515,"src":"1324:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37480,"name":"bool","nodeType":"ElementaryTypeName","src":"1324:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37483,"mutability":"mutable","name":"data","nameLocation":"1351:4:134","nodeType":"VariableDeclaration","scope":37515,"src":"1338:17:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37482,"name":"bytes","nodeType":"ElementaryTypeName","src":"1338:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":37495,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":37488,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"1393:6:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":37489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5734,"src":"1393:15:134","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transfer(address,uint256) returns (bool)"}},"id":37490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1393:24:134","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":37491,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37475,"src":"1419:2:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37477,"src":"1423:5:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37486,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1370:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1370:22:134","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":37493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1370:59:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":37484,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37473,"src":"1359:5:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1359:10:134","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":37494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1359:71:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1323:107:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37497,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37481,"src":"1448:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37498,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37483,"src":"1460:4:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1460:11:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":37500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1475:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1460:16:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":37504,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37483,"src":"1491:4:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1498:4:134","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":37505,"name":"bool","nodeType":"ElementaryTypeName","src":"1498:4:134","typeDescriptions":{}}}],"id":37507,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1497:6:134","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":37502,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1480:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1480:10:134","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1480:24:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1460:44:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":37510,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1459:46:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1448:57:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5354","id":37512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1507:4:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e992d6a09e3feb7936717fa482f3a7086f18407e19b697f3153d17fd25870ca","typeString":"literal_string \"ST\""},"value":"ST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e992d6a09e3feb7936717fa482f3a7086f18407e19b697f3153d17fd25870ca","typeString":"literal_string \"ST\""}],"id":37496,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1440:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1440:72:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37514,"nodeType":"ExpressionStatement","src":"1440:72:134"}]},"documentation":{"id":37471,"nodeType":"StructuredDocumentation","src":"924:281:134","text":"@notice Transfers tokens from msg.sender to a recipient\n @dev Errors with ST if transfer fails\n @param token The contract address of the token which will be transferred\n @param to The recipient of the transfer\n @param value The value of the transfer"},"id":37516,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"1219:12:134","nodeType":"FunctionDefinition","parameters":{"id":37478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37473,"mutability":"mutable","name":"token","nameLocation":"1249:5:134","nodeType":"VariableDeclaration","scope":37516,"src":"1241:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37472,"name":"address","nodeType":"ElementaryTypeName","src":"1241:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37475,"mutability":"mutable","name":"to","nameLocation":"1272:2:134","nodeType":"VariableDeclaration","scope":37516,"src":"1264:10:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37474,"name":"address","nodeType":"ElementaryTypeName","src":"1264:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37477,"mutability":"mutable","name":"value","nameLocation":"1292:5:134","nodeType":"VariableDeclaration","scope":37516,"src":"1284:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37476,"name":"uint256","nodeType":"ElementaryTypeName","src":"1284:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1231:72:134"},"returnParameters":{"id":37479,"nodeType":"ParameterList","parameters":[],"src":"1313:0:134"},"scope":37589,"src":"1210:309:134","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":37561,"nodeType":"Block","src":"1974:205:134","statements":[{"assignments":[37527,37529],"declarations":[{"constant":false,"id":37527,"mutability":"mutable","name":"success","nameLocation":"1990:7:134","nodeType":"VariableDeclaration","scope":37561,"src":"1985:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37526,"name":"bool","nodeType":"ElementaryTypeName","src":"1985:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37529,"mutability":"mutable","name":"data","nameLocation":"2012:4:134","nodeType":"VariableDeclaration","scope":37561,"src":"1999:17:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37528,"name":"bytes","nodeType":"ElementaryTypeName","src":"1999:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":37541,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":37534,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"2054:6:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":37535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"2054:14:134","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.approve(address,uint256) returns (bool)"}},"id":37536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2054:23:134","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":37537,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37521,"src":"2079:2:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37538,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37523,"src":"2083:5:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37532,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2031:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2031:22:134","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":37539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2031:58:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":37530,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37519,"src":"2020:5:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2020:10:134","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":37540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:70:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1984:106:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37543,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37527,"src":"2108:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37544,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37529,"src":"2120:4:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2120:11:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":37546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2135:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2120:16:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":37550,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37529,"src":"2151:4:134","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2158:4:134","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":37551,"name":"bool","nodeType":"ElementaryTypeName","src":"2158:4:134","typeDescriptions":{}}}],"id":37553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2157:6:134","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":37548,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2140:3:134","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2140:10:134","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2140:24:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2120:44:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":37556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2119:46:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2108:57:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5341","id":37558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2167:4:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c382912095e7706ed01a66755a50c713445aceaf5a9168954498b03dd381faa","typeString":"literal_string \"SA\""},"value":"SA"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c382912095e7706ed01a66755a50c713445aceaf5a9168954498b03dd381faa","typeString":"literal_string \"SA\""}],"id":37542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2100:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2100:72:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37560,"nodeType":"ExpressionStatement","src":"2100:72:134"}]},"documentation":{"id":37517,"nodeType":"StructuredDocumentation","src":"1525:342:134","text":"@notice Approves the stipulated contract to spend the given allowance in the given token\n @dev Errors with 'SA' if transfer fails\n @param token The contract address of the token to be approved\n @param to The target of the approval\n @param value The amount of the given token the target will be allowed to spend"},"id":37562,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1881:11:134","nodeType":"FunctionDefinition","parameters":{"id":37524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37519,"mutability":"mutable","name":"token","nameLocation":"1910:5:134","nodeType":"VariableDeclaration","scope":37562,"src":"1902:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37518,"name":"address","nodeType":"ElementaryTypeName","src":"1902:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37521,"mutability":"mutable","name":"to","nameLocation":"1933:2:134","nodeType":"VariableDeclaration","scope":37562,"src":"1925:10:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37520,"name":"address","nodeType":"ElementaryTypeName","src":"1925:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37523,"mutability":"mutable","name":"value","nameLocation":"1953:5:134","nodeType":"VariableDeclaration","scope":37562,"src":"1945:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37522,"name":"uint256","nodeType":"ElementaryTypeName","src":"1945:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1892:72:134"},"returnParameters":{"id":37525,"nodeType":"ParameterList","parameters":[],"src":"1974:0:134"},"scope":37589,"src":"1872:307:134","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":37587,"nodeType":"Block","src":"2430:104:134","statements":[{"assignments":[37571,null],"declarations":[{"constant":false,"id":37571,"mutability":"mutable","name":"success","nameLocation":"2446:7:134","nodeType":"VariableDeclaration","scope":37587,"src":"2441:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37570,"name":"bool","nodeType":"ElementaryTypeName","src":"2441:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":37581,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":37578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2491:1:134","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":37577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2481:9:134","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":37576,"name":"bytes","nodeType":"ElementaryTypeName","src":"2485:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":37579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2481:12:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":37572,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37565,"src":"2459:2:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2459:7:134","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":37575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":37574,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37567,"src":"2474:5:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2459:21:134","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":37580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2459:35:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2440:54:134"},{"expression":{"arguments":[{"id":37583,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37571,"src":"2512:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"535445","id":37584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2521:5:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_48541fce89df928ec30caa1aed6c0cd94b8e2ef76b3c68b10b9a184ceadb93d4","typeString":"literal_string \"STE\""},"value":"STE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_48541fce89df928ec30caa1aed6c0cd94b8e2ef76b3c68b10b9a184ceadb93d4","typeString":"literal_string \"STE\""}],"id":37582,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2504:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2504:23:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37586,"nodeType":"ExpressionStatement","src":"2504:23:134"}]},"documentation":{"id":37563,"nodeType":"StructuredDocumentation","src":"2185:179:134","text":"@notice Transfers ETH to the recipient address\n @dev Fails with `STE`\n @param to The destination of the transfer\n @param value The value to be transferred"},"id":37588,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferETH","nameLocation":"2378:15:134","nodeType":"FunctionDefinition","parameters":{"id":37568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37565,"mutability":"mutable","name":"to","nameLocation":"2402:2:134","nodeType":"VariableDeclaration","scope":37588,"src":"2394:10:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37564,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37567,"mutability":"mutable","name":"value","nameLocation":"2414:5:134","nodeType":"VariableDeclaration","scope":37588,"src":"2406:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37566,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2393:27:134"},"returnParameters":{"id":37569,"nodeType":"ParameterList","parameters":[],"src":"2430:0:134"},"scope":37589,"src":"2369:165:134","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":37590,"src":"128:2408:134","usedErrors":[]}],"src":"45:2492:134"},"id":134},"contracts/utils/TransferHelperExtended.sol":{"ast":{"absolutePath":"contracts/utils/TransferHelperExtended.sol","exportedSymbols":{"Address":[7999],"IERC20":[5767],"TransferHelper":[37589],"TransferHelperExtended":[37652]},"id":37653,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":37591,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"45:23:135"},{"absolutePath":"contracts/utils/TransferHelper.sol","file":"./TransferHelper.sol","id":37592,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37653,"sourceUnit":37590,"src":"70:30:135","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"@openzeppelin/contracts/utils/Address.sol","id":37593,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":37653,"sourceUnit":8000,"src":"101:51:135","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":37652,"linearizedBaseContracts":[37652],"name":"TransferHelperExtended","nameLocation":"162:22:135","nodeType":"ContractDefinition","nodes":[{"id":37596,"libraryName":{"id":37594,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":7999,"src":"197:7:135"},"nodeType":"UsingForDirective","src":"191:26:135","typeName":{"id":37595,"name":"address","nodeType":"ElementaryTypeName","src":"209:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":37624,"nodeType":"Block","src":"755:175:135","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37609,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37599,"src":"773:5:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":7722,"src":"773:16:135","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":37611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"773:18:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c706572457874656e6465643a3a736166655472616e7366657246726f6d3a2063616c6c20746f206e6f6e2d636f6e7472616374","id":37612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:64:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca43b7ccabbdb5a9273b37718e136798fbc61dda30c78464909a9a690b01f8e","typeString":"literal_string \"TransferHelperExtended::safeTransferFrom: call to non-contract\""},"value":"TransferHelperExtended::safeTransferFrom: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca43b7ccabbdb5a9273b37718e136798fbc61dda30c78464909a9a690b01f8e","typeString":"literal_string \"TransferHelperExtended::safeTransferFrom: call to non-contract\""}],"id":37608,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"765:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"765:93:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37614,"nodeType":"ExpressionStatement","src":"765:93:135"},{"expression":{"arguments":[{"id":37618,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37599,"src":"900:5:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37619,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37601,"src":"907:4:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37620,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37603,"src":"913:2:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37621,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37605,"src":"917:5:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37615,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37589,"src":"868:14:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$37589_$","typeString":"type(library TransferHelper)"}},"id":37617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":37470,"src":"868:31:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":37622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"868:55:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37623,"nodeType":"ExpressionStatement","src":"868:55:135"}]},"documentation":{"id":37597,"nodeType":"StructuredDocumentation","src":"223:398:135","text":"@notice Transfers tokens from the targeted address to the given destination\n @notice Errors with 'STF' if transfer fails\n @param token The contract address of the token to be transferred\n @param from The originating address from which the tokens will be transferred\n @param to The destination address of the transfer\n @param value The amount to be transferred"},"id":37625,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"635:16:135","nodeType":"FunctionDefinition","parameters":{"id":37606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37599,"mutability":"mutable","name":"token","nameLocation":"669:5:135","nodeType":"VariableDeclaration","scope":37625,"src":"661:13:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37598,"name":"address","nodeType":"ElementaryTypeName","src":"661:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37601,"mutability":"mutable","name":"from","nameLocation":"692:4:135","nodeType":"VariableDeclaration","scope":37625,"src":"684:12:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37600,"name":"address","nodeType":"ElementaryTypeName","src":"684:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37603,"mutability":"mutable","name":"to","nameLocation":"714:2:135","nodeType":"VariableDeclaration","scope":37625,"src":"706:10:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37602,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37605,"mutability":"mutable","name":"value","nameLocation":"734:5:135","nodeType":"VariableDeclaration","scope":37625,"src":"726:13:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37604,"name":"uint256","nodeType":"ElementaryTypeName","src":"726:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"651:94:135"},"returnParameters":{"id":37607,"nodeType":"ParameterList","parameters":[],"src":"755:0:135"},"scope":37652,"src":"626:304:135","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":37650,"nodeType":"Block","src":"1325:161:135","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37636,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37628,"src":"1343:5:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":7722,"src":"1343:16:135","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":37638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1343:18:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c706572457874656e6465643a3a736166655472616e736665723a2063616c6c20746f206e6f6e2d636f6e7472616374","id":37639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1363:60:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_10115a262aeb94a0eafe6ad1f63c465ddde9d01ed6758200c550b37bafce9c4e","typeString":"literal_string \"TransferHelperExtended::safeTransfer: call to non-contract\""},"value":"TransferHelperExtended::safeTransfer: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_10115a262aeb94a0eafe6ad1f63c465ddde9d01ed6758200c550b37bafce9c4e","typeString":"literal_string \"TransferHelperExtended::safeTransfer: call to non-contract\""}],"id":37635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1335:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1335:89:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37641,"nodeType":"ExpressionStatement","src":"1335:89:135"},{"expression":{"arguments":[{"id":37645,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37628,"src":"1462:5:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37646,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37630,"src":"1469:2:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37647,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37632,"src":"1473:5:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37642,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37589,"src":"1434:14:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$37589_$","typeString":"type(library TransferHelper)"}},"id":37644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":37516,"src":"1434:27:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":37648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1434:45:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37649,"nodeType":"ExpressionStatement","src":"1434:45:135"}]},"documentation":{"id":37626,"nodeType":"StructuredDocumentation","src":"936:281:135","text":"@notice Transfers tokens from msg.sender to a recipient\n @dev Errors with ST if transfer fails\n @param token The contract address of the token which will be transferred\n @param to The recipient of the transfer\n @param value The value of the transfer"},"id":37651,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"1231:12:135","nodeType":"FunctionDefinition","parameters":{"id":37633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37628,"mutability":"mutable","name":"token","nameLocation":"1261:5:135","nodeType":"VariableDeclaration","scope":37651,"src":"1253:13:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37627,"name":"address","nodeType":"ElementaryTypeName","src":"1253:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37630,"mutability":"mutable","name":"to","nameLocation":"1284:2:135","nodeType":"VariableDeclaration","scope":37651,"src":"1276:10:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37629,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37632,"mutability":"mutable","name":"value","nameLocation":"1304:5:135","nodeType":"VariableDeclaration","scope":37651,"src":"1296:13:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37631,"name":"uint256","nodeType":"ElementaryTypeName","src":"1296:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1243:72:135"},"returnParameters":{"id":37634,"nodeType":"ParameterList","parameters":[],"src":"1325:0:135"},"scope":37652,"src":"1222:264:135","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":37653,"src":"154:1334:135","usedErrors":[]}],"src":"45:1444:135"},"id":135},"contracts/voter/BaseV1Voter.sol":{"ast":{"absolutePath":"contracts/voter/BaseV1Voter.sol","exportedSymbols":{"BaseV1Voter":[39048],"IBribe":[33878],"IBribeFactory":[33892],"IERC20":[5767],"IEmissionController":[33981],"IGauge":[34110],"IGaugeFactory":[34132],"IGaugeVoter":[34456],"IOldVotingEscrow":[35352],"IRegistry":[35522],"IUniswapV2Pair":[35682],"Math":[10353],"Ownable":[655],"ReentrancyGuard":[5062]},"id":39049,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":37654,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:136"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":37656,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":4739,"src":"58:69:136","symbolAliases":[{"foreign":{"id":37655,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":37658,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":10354,"src":"128:65:136","symbolAliases":[{"foreign":{"id":37657,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"136:4:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":37660,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":656,"src":"194:67:136","symbolAliases":[{"foreign":{"id":37659,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"202:7:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":37662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":5063,"src":"262:85:136","symbolAliases":[{"foreign":{"id":37661,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"270:15:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribe.sol","file":"../interfaces/IBribe.sol","id":37664,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":33879,"src":"349:48:136","symbolAliases":[{"foreign":{"id":37663,"name":"IBribe","nodeType":"Identifier","overloadedDeclarations":[],"src":"357:6:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribeFactory.sol","file":"../interfaces/IBribeFactory.sol","id":37666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":33893,"src":"398:62:136","symbolAliases":[{"foreign":{"id":37665,"name":"IBribeFactory","nodeType":"Identifier","overloadedDeclarations":[],"src":"406:13:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEmissionController.sol","file":"../interfaces/IEmissionController.sol","id":37668,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":33982,"src":"461:74:136","symbolAliases":[{"foreign":{"id":37667,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"src":"469:19:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGauge.sol","file":"../interfaces/IGauge.sol","id":37670,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":34111,"src":"536:48:136","symbolAliases":[{"foreign":{"id":37669,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"src":"544:6:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeFactory.sol","file":"../interfaces/IGaugeFactory.sol","id":37672,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":34133,"src":"585:62:136","symbolAliases":[{"foreign":{"id":37671,"name":"IGaugeFactory","nodeType":"Identifier","overloadedDeclarations":[],"src":"593:13:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoter.sol","file":"../interfaces/IGaugeVoter.sol","id":37674,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":34457,"src":"648:58:136","symbolAliases":[{"foreign":{"id":37673,"name":"IGaugeVoter","nodeType":"Identifier","overloadedDeclarations":[],"src":"656:11:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../interfaces/IRegistry.sol","id":37676,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":35523,"src":"707:54:136","symbolAliases":[{"foreign":{"id":37675,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"715:9:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IUniswapV2Pair.sol","file":"../interfaces/IUniswapV2Pair.sol","id":37678,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":35683,"src":"762:64:136","symbolAliases":[{"foreign":{"id":37677,"name":"IUniswapV2Pair","nodeType":"Identifier","overloadedDeclarations":[],"src":"770:14:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IOldVotingEscrow.sol","file":"../interfaces/IOldVotingEscrow.sol","id":37680,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":39049,"sourceUnit":35353,"src":"827:68:136","symbolAliases":[{"foreign":{"id":37679,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"src":"835:16:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":37681,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"921:15:136"},"id":37682,"nodeType":"InheritanceSpecifier","src":"921:15:136"},{"baseName":{"id":37683,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"938:7:136"},"id":37684,"nodeType":"InheritanceSpecifier","src":"938:7:136"},{"baseName":{"id":37685,"name":"IGaugeVoter","nodeType":"IdentifierPath","referencedDeclaration":34456,"src":"947:11:136"},"id":37686,"nodeType":"InheritanceSpecifier","src":"947:11:136"}],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":39048,"linearizedBaseContracts":[39048,34456,655,8255,5062],"name":"BaseV1Voter","nameLocation":"906:11:136","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34366],"constant":false,"functionSelector":"7b103999","id":37690,"mutability":"immutable","name":"registry","nameLocation":"1001:8:136","nodeType":"VariableDeclaration","overrides":{"id":37689,"nodeType":"OverrideSpecifier","overrides":[],"src":"992:8:136"},"scope":39048,"src":"965:44:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":37688,"nodeType":"UserDefinedTypeName","pathNode":{"id":37687,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"965:9:136"},"referencedDeclaration":35522,"src":"965:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":true,"id":37693,"mutability":"constant","name":"DURATION","nameLocation":"1042:8:136","nodeType":"VariableDeclaration","scope":39048,"src":"1016:43:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37691,"name":"uint256","nodeType":"ElementaryTypeName","src":"1016:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":37692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1053:6:136","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"internal"},{"constant":false,"functionSelector":"6dee2012","id":37696,"mutability":"mutable","name":"emissionController","nameLocation":"1128:18:136","nodeType":"VariableDeclaration","scope":39048,"src":"1101:45:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"},"typeName":{"id":37695,"nodeType":"UserDefinedTypeName","pathNode":{"id":37694,"name":"IEmissionController","nodeType":"IdentifierPath","referencedDeclaration":33981,"src":"1101:19:136"},"referencedDeclaration":33981,"src":"1101:19:136","typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"visibility":"public"},{"constant":false,"functionSelector":"96c82e57","id":37698,"mutability":"mutable","name":"totalWeight","nameLocation":"1168:11:136","nodeType":"VariableDeclaration","scope":39048,"src":"1153:26:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1153:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"ac4afa38","id":37701,"mutability":"mutable","name":"pools","nameLocation":"1226:5:136","nodeType":"VariableDeclaration","scope":39048,"src":"1209:22:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":37699,"name":"address","nodeType":"ElementaryTypeName","src":"1209:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37700,"nodeType":"ArrayTypeName","src":"1209:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"constant":false,"functionSelector":"b9a09fd5","id":37705,"mutability":"mutable","name":"gauges","nameLocation":"1307:6:136","nodeType":"VariableDeclaration","scope":39048,"src":"1272:41:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":37704,"keyType":{"id":37702,"name":"address","nodeType":"ElementaryTypeName","src":"1280:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1272:27:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":37703,"name":"address","nodeType":"ElementaryTypeName","src":"1291:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"06d6a1b2","id":37709,"mutability":"mutable","name":"poolForGauge","nameLocation":"1371:12:136","nodeType":"VariableDeclaration","scope":39048,"src":"1336:47:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":37708,"keyType":{"id":37706,"name":"address","nodeType":"ElementaryTypeName","src":"1344:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1336:27:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":37707,"name":"address","nodeType":"ElementaryTypeName","src":"1355:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"a8c5d95a","id":37713,"mutability":"mutable","name":"bribes","nameLocation":"1441:6:136","nodeType":"VariableDeclaration","scope":39048,"src":"1406:41:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":37712,"keyType":{"id":37710,"name":"address","nodeType":"ElementaryTypeName","src":"1414:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1406:27:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":37711,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"a7cac846","id":37717,"mutability":"mutable","name":"weights","nameLocation":"1505:7:136","nodeType":"VariableDeclaration","scope":39048,"src":"1471:41:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"},"typeName":{"id":37716,"keyType":{"id":37714,"name":"address","nodeType":"ElementaryTypeName","src":"1479:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1471:26:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"},"valueType":{"id":37715,"name":"int256","nodeType":"ElementaryTypeName","src":"1490:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},"visibility":"public"},{"constant":false,"functionSelector":"d23254b4","id":37723,"mutability":"mutable","name":"votes","nameLocation":"1590:5:136","nodeType":"VariableDeclaration","scope":39048,"src":"1536:59:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(uint256 => mapping(address => int256))"},"typeName":{"id":37722,"keyType":{"id":37718,"name":"uint256","nodeType":"ElementaryTypeName","src":"1544:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1536:46:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(uint256 => mapping(address => int256))"},"valueType":{"id":37721,"keyType":{"id":37719,"name":"address","nodeType":"ElementaryTypeName","src":"1563:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1555:26:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"},"valueType":{"id":37720,"name":"int256","nodeType":"ElementaryTypeName","src":"1574:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"a86a366d","id":37728,"mutability":"mutable","name":"poolVote","nameLocation":"1662:8:136","nodeType":"VariableDeclaration","scope":39048,"src":"1625:45:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(uint256 => address[])"},"typeName":{"id":37727,"keyType":{"id":37724,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1625:29:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(uint256 => address[])"},"valueType":{"baseType":{"id":37725,"name":"address","nodeType":"ElementaryTypeName","src":"1644:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37726,"nodeType":"ArrayTypeName","src":"1644:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"constant":false,"functionSelector":"79e93824","id":37732,"mutability":"mutable","name":"usedWeights","nameLocation":"1727:11:136","nodeType":"VariableDeclaration","scope":39048,"src":"1692:46:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":37731,"keyType":{"id":37729,"name":"uint256","nodeType":"ElementaryTypeName","src":"1700:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1692:27:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":37730,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"aa79979b","id":37736,"mutability":"mutable","name":"isGauge","nameLocation":"1814:7:136","nodeType":"VariableDeclaration","scope":39048,"src":"1782:39:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":37735,"keyType":{"id":37733,"name":"address","nodeType":"ElementaryTypeName","src":"1790:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1782:24:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":37734,"name":"bool","nodeType":"ElementaryTypeName","src":"1801:4:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"9b19251a","id":37740,"mutability":"mutable","name":"whitelist","nameLocation":"1859:9:136","nodeType":"VariableDeclaration","scope":39048,"src":"1827:41:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":37739,"keyType":{"id":37737,"name":"address","nodeType":"ElementaryTypeName","src":"1835:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1827:24:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":37738,"name":"bool","nodeType":"ElementaryTypeName","src":"1846:4:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"id":37742,"mutability":"mutable","name":"index","nameLocation":"1892:5:136","nodeType":"VariableDeclaration","scope":39048,"src":"1875:22:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1875:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37746,"mutability":"mutable","name":"supplyIndex","nameLocation":"1940:11:136","nodeType":"VariableDeclaration","scope":39048,"src":"1903:48:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":37745,"keyType":{"id":37743,"name":"address","nodeType":"ElementaryTypeName","src":"1911:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1903:27:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":37744,"name":"uint256","nodeType":"ElementaryTypeName","src":"1922:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"functionSelector":"402914f5","id":37750,"mutability":"mutable","name":"claimable","nameLocation":"1992:9:136","nodeType":"VariableDeclaration","scope":39048,"src":"1957:44:136","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":37749,"keyType":{"id":37747,"name":"address","nodeType":"ElementaryTypeName","src":"1965:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1957:27:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":37748,"name":"uint256","nodeType":"ElementaryTypeName","src":"1976:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":37761,"nodeType":"Block","src":"2029:69:136","statements":[{"expression":{"arguments":[{"baseExpression":{"id":37753,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37736,"src":"2047:7:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":37756,"indexExpression":{"expression":{"id":37754,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2055:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":37755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2055:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2047:19:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74206761756765","id":37757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2068:11:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141","typeString":"literal_string \"not gauge\""},"value":"not gauge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141","typeString":"literal_string \"not gauge\""}],"id":37752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2039:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2039:41:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37759,"nodeType":"ExpressionStatement","src":"2039:41:136"},{"id":37760,"nodeType":"PlaceholderStatement","src":"2090:1:136"}]},"id":37762,"name":"onlyGauge","nameLocation":"2017:9:136","nodeType":"ModifierDefinition","parameters":{"id":37751,"nodeType":"ParameterList","parameters":[],"src":"2026:2:136"},"src":"2008:90:136","virtual":false,"visibility":"internal"},{"body":{"id":37787,"nodeType":"Block","src":"2215:161:136","statements":[{"expression":{"id":37775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37771,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"2225:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37773,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37764,"src":"2246:9:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37772,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"2236:9:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":37774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2236:20:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"2225:31:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":37776,"nodeType":"ExpressionStatement","src":"2225:31:136"},{"expression":{"id":37781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37777,"name":"emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37696,"src":"2266:18:136","typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37779,"name":"_emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37766,"src":"2307:19:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37778,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33981,"src":"2287:19:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEmissionController_$33981_$","typeString":"type(contract IEmissionController)"}},"id":37780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2287:40:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"src":"2266:61:136","typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"id":37782,"nodeType":"ExpressionStatement","src":"2266:61:136"},{"expression":{"arguments":[{"id":37784,"name":"_governance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37768,"src":"2357:11:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37783,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"2338:18:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":37785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2338:31:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37786,"nodeType":"ExpressionStatement","src":"2338:31:136"}]},"id":37788,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":37769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37764,"mutability":"mutable","name":"_registry","nameLocation":"2133:9:136","nodeType":"VariableDeclaration","scope":37788,"src":"2125:17:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37763,"name":"address","nodeType":"ElementaryTypeName","src":"2125:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37766,"mutability":"mutable","name":"_emissionController","nameLocation":"2160:19:136","nodeType":"VariableDeclaration","scope":37788,"src":"2152:27:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37765,"name":"address","nodeType":"ElementaryTypeName","src":"2152:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37768,"mutability":"mutable","name":"_governance","nameLocation":"2197:11:136","nodeType":"VariableDeclaration","scope":37788,"src":"2189:19:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37767,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2115:99:136"},"returnParameters":{"id":37770,"nodeType":"ParameterList","parameters":[],"src":"2215:0:136"},"scope":39048,"src":"2104:272:136","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":37820,"nodeType":"Block","src":"2424:292:136","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":37800,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2526:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":37801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2526:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37802,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37790,"src":"2554:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37795,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"2472:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":37796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"2472:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":37797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2472:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37794,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"2455:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":37798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2455:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":37799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isApprovedOrOwner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"2455:53:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view external returns (bool)"}},"id":37803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2455:121:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420617070726f766564206f776e6572","id":37804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2590:20:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_2864dbbabd8157306aeef066484bac7e059f00045265f0ceb285d27d8f9c1415","typeString":"literal_string \"not approved owner\""},"value":"not approved owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2864dbbabd8157306aeef066484bac7e059f00045265f0ceb285d27d8f9c1415","typeString":"literal_string \"not approved owner\""}],"id":37793,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2434:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":37805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2434:186:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37806,"nodeType":"ExpressionStatement","src":"2434:186:136"},{"expression":{"arguments":[{"id":37808,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37790,"src":"2637:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37807,"name":"_reset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37948,"src":"2630:6:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":37809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2630:16:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37810,"nodeType":"ExpressionStatement","src":"2630:16:136"},{"expression":{"arguments":[{"id":37817,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37790,"src":"2700:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37812,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"2673:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":37813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"2673:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":37814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2673:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37811,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"2656:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":37815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2656:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":37816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"abstain","nodeType":"MemberAccess","referencedDeclaration":35275,"src":"2656:43:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":37818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2656:53:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37819,"nodeType":"ExpressionStatement","src":"2656:53:136"}]},"functionSelector":"310bd74b","id":37821,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"2391:5:136","nodeType":"FunctionDefinition","parameters":{"id":37791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37790,"mutability":"mutable","name":"_tokenId","nameLocation":"2405:8:136","nodeType":"VariableDeclaration","scope":37821,"src":"2397:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37789,"name":"uint256","nodeType":"ElementaryTypeName","src":"2397:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2396:18:136"},"returnParameters":{"id":37792,"nodeType":"ParameterList","parameters":[],"src":"2424:0:136"},"scope":39048,"src":"2382:334:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":37947,"nodeType":"Block","src":"2765:975:136","statements":[{"assignments":[37830],"declarations":[{"constant":false,"id":37830,"mutability":"mutable","name":"_poolVote","nameLocation":"2793:9:136","nodeType":"VariableDeclaration","scope":37947,"src":"2775:27:136","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":37828,"name":"address","nodeType":"ElementaryTypeName","src":"2775:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37829,"nodeType":"ArrayTypeName","src":"2775:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":37834,"initialValue":{"baseExpression":{"id":37831,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37728,"src":"2805:8:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(uint256 => address[] storage ref)"}},"id":37833,"indexExpression":{"id":37832,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37823,"src":"2814:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2805:18:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2775:48:136"},{"assignments":[37836],"declarations":[{"constant":false,"id":37836,"mutability":"mutable","name":"_poolVoteCnt","nameLocation":"2841:12:136","nodeType":"VariableDeclaration","scope":37947,"src":"2833:20:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37835,"name":"uint256","nodeType":"ElementaryTypeName","src":"2833:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37839,"initialValue":{"expression":{"id":37837,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37830,"src":"2856:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":37838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2856:16:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2833:39:136"},{"assignments":[37841],"declarations":[{"constant":false,"id":37841,"mutability":"mutable","name":"_totalWeight","nameLocation":"2889:12:136","nodeType":"VariableDeclaration","scope":37947,"src":"2882:19:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37840,"name":"int256","nodeType":"ElementaryTypeName","src":"2882:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":37843,"initialValue":{"hexValue":"30","id":37842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2904:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2882:23:136"},{"body":{"id":37927,"nodeType":"Block","src":"2959:659:136","statements":[{"assignments":[37855],"declarations":[{"constant":false,"id":37855,"mutability":"mutable","name":"_pool","nameLocation":"2981:5:136","nodeType":"VariableDeclaration","scope":37927,"src":"2973:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37854,"name":"address","nodeType":"ElementaryTypeName","src":"2973:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37859,"initialValue":{"baseExpression":{"id":37856,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37830,"src":"2989:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":37858,"indexExpression":{"id":37857,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37845,"src":"2999:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2989:12:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2973:28:136"},{"assignments":[37861],"declarations":[{"constant":false,"id":37861,"mutability":"mutable","name":"_votes","nameLocation":"3022:6:136","nodeType":"VariableDeclaration","scope":37927,"src":"3015:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37860,"name":"int256","nodeType":"ElementaryTypeName","src":"3015:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":37867,"initialValue":{"baseExpression":{"baseExpression":{"id":37862,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37723,"src":"3031:5:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(uint256 => mapping(address => int256))"}},"id":37864,"indexExpression":{"id":37863,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37823,"src":"3037:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3031:15:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":37866,"indexExpression":{"id":37865,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37855,"src":"3047:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3031:22:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3015:38:136"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37868,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3072:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":37869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3082:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3072:11:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37926,"nodeType":"IfStatement","src":"3068:540:136","trueBody":{"id":37925,"nodeType":"Block","src":"3085:523:136","statements":[{"expression":{"arguments":[{"baseExpression":{"id":37872,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37705,"src":"3114:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":37874,"indexExpression":{"id":37873,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37855,"src":"3121:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3114:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37871,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"3103:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":37875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3103:25:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37876,"nodeType":"ExpressionStatement","src":"3103:25:136"},{"expression":{"id":37881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37877,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37717,"src":"3146:7:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":37879,"indexExpression":{"id":37878,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37855,"src":"3154:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3146:14:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":37880,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3164:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3146:24:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37882,"nodeType":"ExpressionStatement","src":"3146:24:136"},{"expression":{"id":37889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":37883,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37723,"src":"3188:5:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(uint256 => mapping(address => int256))"}},"id":37886,"indexExpression":{"id":37884,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37823,"src":"3194:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3188:15:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":37887,"indexExpression":{"id":37885,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37855,"src":"3204:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3188:22:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":37888,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3214:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3188:32:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37890,"nodeType":"ExpressionStatement","src":"3188:32:136"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37891,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3242:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":37892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3242:10:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":37918,"nodeType":"Block","src":"3481:63:136","statements":[{"expression":{"id":37916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37914,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37841,"src":"3503:12:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":37915,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3519:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3503:22:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37917,"nodeType":"ExpressionStatement","src":"3503:22:136"}]},"id":37919,"nodeType":"IfStatement","src":"3238:306:136","trueBody":{"id":37913,"nodeType":"Block","src":"3254:221:136","statements":[{"expression":{"arguments":[{"arguments":[{"id":37904,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3349:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":37903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3341:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37902,"name":"uint256","nodeType":"ElementaryTypeName","src":"3341:7:136","typeDescriptions":{}}},"id":37905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3341:15:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37906,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37823,"src":"3382:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":37895,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37713,"src":"3283:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":37899,"indexExpression":{"baseExpression":{"id":37896,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37705,"src":"3290:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":37898,"indexExpression":{"id":37897,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37855,"src":"3297:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3290:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3283:21:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37894,"name":"IBribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33878,"src":"3276:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBribe_$33878_$","typeString":"type(contract IBribe)"}},"id":37900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3276:29:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBribe_$33878","typeString":"contract IBribe"}},"id":37901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_withdraw","nodeType":"MemberAccess","referencedDeclaration":33837,"src":"3276:39:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":37907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3276:136:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37908,"nodeType":"ExpressionStatement","src":"3276:136:136"},{"expression":{"id":37911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37909,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37841,"src":"3434:12:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":37910,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3450:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3434:22:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37912,"nodeType":"ExpressionStatement","src":"3434:22:136"}]}},{"eventCall":{"arguments":[{"id":37921,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37823,"src":"3576:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37922,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37861,"src":"3586:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":37920,"name":"Abstained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34395,"src":"3566:9:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,int256)"}},"id":37923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3566:27:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37924,"nodeType":"EmitStatement","src":"3561:32:136"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37848,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37845,"src":"2936:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37849,"name":"_poolVoteCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37836,"src":"2940:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2936:16:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37928,"initializationExpression":{"assignments":[37845],"declarations":[{"constant":false,"id":37845,"mutability":"mutable","name":"i","nameLocation":"2929:1:136","nodeType":"VariableDeclaration","scope":37928,"src":"2921:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37844,"name":"uint256","nodeType":"ElementaryTypeName","src":"2921:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37847,"initialValue":{"hexValue":"30","id":37846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2933:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2921:13:136"},"loopExpression":{"expression":{"id":37852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2954:3:136","subExpression":{"id":37851,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37845,"src":"2954:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37853,"nodeType":"ExpressionStatement","src":"2954:3:136"},"nodeType":"ForStatement","src":"2916:702:136"},{"expression":{"id":37934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37929,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37698,"src":"3627:11:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":37932,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37841,"src":"3650:12:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":37931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3642:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3642:7:136","typeDescriptions":{}}},"id":37933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3642:21:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:36:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37935,"nodeType":"ExpressionStatement","src":"3627:36:136"},{"expression":{"id":37940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37936,"name":"usedWeights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37732,"src":"3673:11:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":37938,"indexExpression":{"id":37937,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37823,"src":"3685:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3673:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":37939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3697:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3673:25:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37941,"nodeType":"ExpressionStatement","src":"3673:25:136"},{"expression":{"id":37945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3708:25:136","subExpression":{"baseExpression":{"id":37942,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37728,"src":"3715:8:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(uint256 => address[] storage ref)"}},"id":37944,"indexExpression":{"id":37943,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37823,"src":"3724:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3715:18:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37946,"nodeType":"ExpressionStatement","src":"3708:25:136"}]},"id":37948,"implemented":true,"kind":"function","modifiers":[],"name":"_reset","nameLocation":"2731:6:136","nodeType":"FunctionDefinition","parameters":{"id":37824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37823,"mutability":"mutable","name":"_tokenId","nameLocation":"2746:8:136","nodeType":"VariableDeclaration","scope":37948,"src":"2738:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37822,"name":"uint256","nodeType":"ElementaryTypeName","src":"2738:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2737:18:136"},"returnParameters":{"id":37825,"nodeType":"ParameterList","parameters":[],"src":"2765:0:136"},"scope":39048,"src":"2722:1018:136","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":38008,"nodeType":"Block","src":"3787:332:136","statements":[{"assignments":[37957],"declarations":[{"constant":false,"id":37957,"mutability":"mutable","name":"_poolVote","nameLocation":"3814:9:136","nodeType":"VariableDeclaration","scope":38008,"src":"3797:26:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":37955,"name":"address","nodeType":"ElementaryTypeName","src":"3797:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37956,"nodeType":"ArrayTypeName","src":"3797:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":37961,"initialValue":{"baseExpression":{"id":37958,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37728,"src":"3826:8:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(uint256 => address[] storage ref)"}},"id":37960,"indexExpression":{"id":37959,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37950,"src":"3835:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3826:18:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3797:47:136"},{"assignments":[37963],"declarations":[{"constant":false,"id":37963,"mutability":"mutable","name":"_poolCnt","nameLocation":"3862:8:136","nodeType":"VariableDeclaration","scope":38008,"src":"3854:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37962,"name":"uint256","nodeType":"ElementaryTypeName","src":"3854:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37966,"initialValue":{"expression":{"id":37964,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37957,"src":"3873:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3873:16:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3854:35:136"},{"assignments":[37971],"declarations":[{"constant":false,"id":37971,"mutability":"mutable","name":"_weights","nameLocation":"3915:8:136","nodeType":"VariableDeclaration","scope":38008,"src":"3899:24:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":37969,"name":"int256","nodeType":"ElementaryTypeName","src":"3899:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37970,"nodeType":"ArrayTypeName","src":"3899:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"id":37977,"initialValue":{"arguments":[{"id":37975,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37963,"src":"3939:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3926:12:136","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (int256[] memory)"},"typeName":{"baseType":{"id":37972,"name":"int256","nodeType":"ElementaryTypeName","src":"3930:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37973,"nodeType":"ArrayTypeName","src":"3930:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}}},"id":37976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3926:22:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3899:49:136"},{"body":{"id":38000,"nodeType":"Block","src":"3998:68:136","statements":[{"expression":{"id":37998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37988,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37971,"src":"4012:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":37990,"indexExpression":{"id":37989,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37979,"src":"4021:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4012:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":37991,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37723,"src":"4026:5:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(uint256 => mapping(address => int256))"}},"id":37993,"indexExpression":{"id":37992,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37950,"src":"4032:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4026:15:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":37997,"indexExpression":{"baseExpression":{"id":37994,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37957,"src":"4042:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37996,"indexExpression":{"id":37995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37979,"src":"4052:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4042:12:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4026:29:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4012:43:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37999,"nodeType":"ExpressionStatement","src":"4012:43:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37982,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37979,"src":"3979:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37983,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37963,"src":"3983:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3979:12:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38001,"initializationExpression":{"assignments":[37979],"declarations":[{"constant":false,"id":37979,"mutability":"mutable","name":"i","nameLocation":"3972:1:136","nodeType":"VariableDeclaration","scope":38001,"src":"3964:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37978,"name":"uint256","nodeType":"ElementaryTypeName","src":"3964:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37981,"initialValue":{"hexValue":"30","id":37980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3976:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3964:13:136"},"loopExpression":{"expression":{"id":37986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3993:3:136","subExpression":{"id":37985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37979,"src":"3993:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37987,"nodeType":"ExpressionStatement","src":"3993:3:136"},"nodeType":"ForStatement","src":"3959:107:136"},{"expression":{"arguments":[{"id":38003,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37950,"src":"4082:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38004,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37957,"src":"4092:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38005,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37971,"src":"4103:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":38002,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38235,"src":"4076:5:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256,address[] memory,int256[] memory)"}},"id":38006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4076:36:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38007,"nodeType":"ExpressionStatement","src":"4076:36:136"}]},"functionSelector":"32145f90","id":38009,"implemented":true,"kind":"function","modifiers":[],"name":"poke","nameLocation":"3755:4:136","nodeType":"FunctionDefinition","parameters":{"id":37951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37950,"mutability":"mutable","name":"_tokenId","nameLocation":"3768:8:136","nodeType":"VariableDeclaration","scope":38009,"src":"3760:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37949,"name":"uint256","nodeType":"ElementaryTypeName","src":"3760:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3759:18:136"},"returnParameters":{"id":37952,"nodeType":"ParameterList","parameters":[],"src":"3787:0:136"},"scope":39048,"src":"3746:373:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38234,"nodeType":"Block","src":"4251:1647:136","statements":[{"expression":{"arguments":[{"id":38021,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"4268:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38020,"name":"_reset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37948,"src":"4261:6:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":38022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4261:16:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38023,"nodeType":"ExpressionStatement","src":"4261:16:136"},{"assignments":[38025],"declarations":[{"constant":false,"id":38025,"mutability":"mutable","name":"_poolCnt","nameLocation":"4295:8:136","nodeType":"VariableDeclaration","scope":38234,"src":"4287:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38024,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38028,"initialValue":{"expression":{"id":38026,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38014,"src":"4306:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4306:16:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4287:35:136"},{"assignments":[38030],"declarations":[{"constant":false,"id":38030,"mutability":"mutable","name":"_weight","nameLocation":"4339:7:136","nodeType":"VariableDeclaration","scope":38234,"src":"4332:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38029,"name":"int256","nodeType":"ElementaryTypeName","src":"4332:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":38042,"initialValue":{"arguments":[{"arguments":[{"id":38039,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"4418:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38034,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"4386:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"4386:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4386:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38033,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"4369:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":38037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4369:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":38038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfNFT","nodeType":"MemberAccess","referencedDeclaration":35241,"src":"4369:48:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":38040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4369:58:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4349:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38031,"name":"int256","nodeType":"ElementaryTypeName","src":"4349:6:136","typeDescriptions":{}}},"id":38041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4349:88:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4332:105:136"},{"assignments":[38044],"declarations":[{"constant":false,"id":38044,"mutability":"mutable","name":"_totalVoteWeight","nameLocation":"4454:16:136","nodeType":"VariableDeclaration","scope":38234,"src":"4447:23:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38043,"name":"int256","nodeType":"ElementaryTypeName","src":"4447:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":38046,"initialValue":{"hexValue":"30","id":38045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4473:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4447:27:136"},{"assignments":[38048],"declarations":[{"constant":false,"id":38048,"mutability":"mutable","name":"_totalWeight","nameLocation":"4491:12:136","nodeType":"VariableDeclaration","scope":38234,"src":"4484:19:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38047,"name":"int256","nodeType":"ElementaryTypeName","src":"4484:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":38050,"initialValue":{"hexValue":"30","id":38049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4506:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4484:23:136"},{"assignments":[38052],"declarations":[{"constant":false,"id":38052,"mutability":"mutable","name":"_usedWeight","nameLocation":"4524:11:136","nodeType":"VariableDeclaration","scope":38234,"src":"4517:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38051,"name":"int256","nodeType":"ElementaryTypeName","src":"4517:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":38054,"initialValue":{"hexValue":"30","id":38053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4538:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4517:22:136"},{"body":{"id":38081,"nodeType":"Block","src":"4589:89:136","statements":[{"expression":{"id":38079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38065,"name":"_totalVoteWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38044,"src":"4603:16:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":38066,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38017,"src":"4623:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":38068,"indexExpression":{"id":38067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38056,"src":"4632:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4623:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4637:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4623:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":38077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4655:12:136","subExpression":{"baseExpression":{"id":38074,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38017,"src":"4656:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":38076,"indexExpression":{"id":38075,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38056,"src":"4665:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4656:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4623:44:136","trueExpression":{"baseExpression":{"id":38071,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38017,"src":"4641:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":38073,"indexExpression":{"id":38072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38056,"src":"4650:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4641:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4603:64:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38080,"nodeType":"ExpressionStatement","src":"4603:64:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38059,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38056,"src":"4570:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38060,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38025,"src":"4574:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4570:12:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38082,"initializationExpression":{"assignments":[38056],"declarations":[{"constant":false,"id":38056,"mutability":"mutable","name":"i","nameLocation":"4563:1:136","nodeType":"VariableDeclaration","scope":38082,"src":"4555:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38055,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38058,"initialValue":{"hexValue":"30","id":38057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4567:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4555:13:136"},"loopExpression":{"expression":{"id":38063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4584:3:136","subExpression":{"id":38062,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38056,"src":"4584:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38064,"nodeType":"ExpressionStatement","src":"4584:3:136"},"nodeType":"ForStatement","src":"4550:128:136"},{"body":{"id":38203,"nodeType":"Block","src":"4727:981:136","statements":[{"assignments":[38094],"declarations":[{"constant":false,"id":38094,"mutability":"mutable","name":"_pool","nameLocation":"4749:5:136","nodeType":"VariableDeclaration","scope":38203,"src":"4741:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38093,"name":"address","nodeType":"ElementaryTypeName","src":"4741:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":38098,"initialValue":{"baseExpression":{"id":38095,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38014,"src":"4757:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38097,"indexExpression":{"id":38096,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38084,"src":"4767:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4757:12:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4741:28:136"},{"assignments":[38100],"declarations":[{"constant":false,"id":38100,"mutability":"mutable","name":"_gauge","nameLocation":"4791:6:136","nodeType":"VariableDeclaration","scope":38203,"src":"4783:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38099,"name":"address","nodeType":"ElementaryTypeName","src":"4783:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":38104,"initialValue":{"baseExpression":{"id":38101,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37705,"src":"4800:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38103,"indexExpression":{"id":38102,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38094,"src":"4807:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4800:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4783:30:136"},{"condition":{"baseExpression":{"id":38105,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37736,"src":"4832:7:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38107,"indexExpression":{"id":38106,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38100,"src":"4840:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4832:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38202,"nodeType":"IfStatement","src":"4828:870:136","trueBody":{"id":38201,"nodeType":"Block","src":"4849:849:136","statements":[{"assignments":[38109],"declarations":[{"constant":false,"id":38109,"mutability":"mutable","name":"_poolWeight","nameLocation":"4874:11:136","nodeType":"VariableDeclaration","scope":38201,"src":"4867:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38108,"name":"int256","nodeType":"ElementaryTypeName","src":"4867:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":38118,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":38110,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38017,"src":"4889:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":38112,"indexExpression":{"id":38111,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38084,"src":"4898:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4889:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":38113,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38030,"src":"4903:7:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4889:21:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":38115,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4888:23:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":38116,"name":"_totalVoteWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38044,"src":"4914:16:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4888:42:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4867:63:136"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":38120,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37723,"src":"4956:5:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(uint256 => mapping(address => int256))"}},"id":38122,"indexExpression":{"id":38121,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"4962:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4956:15:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":38124,"indexExpression":{"id":38123,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38094,"src":"4972:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4956:22:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4982:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4956:27:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"766f746573203d2030","id":38127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4985:11:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480","typeString":"literal_string \"votes = 0\""},"value":"votes = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480","typeString":"literal_string \"votes = 0\""}],"id":38119,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4948:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4948:49:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38129,"nodeType":"ExpressionStatement","src":"4948:49:136"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38131,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5023:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":38132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5038:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5023:16:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f6f6c776569676874203d2030","id":38134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5041:16:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373","typeString":"literal_string \"poolweight = 0\""},"value":"poolweight = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373","typeString":"literal_string \"poolweight = 0\""}],"id":38130,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5015:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5015:43:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38136,"nodeType":"ExpressionStatement","src":"5015:43:136"},{"expression":{"arguments":[{"id":38138,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38100,"src":"5087:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38137,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"5076:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5076:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38140,"nodeType":"ExpressionStatement","src":"5076:18:136"},{"expression":{"arguments":[{"id":38145,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38094,"src":"5137:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":38141,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37728,"src":"5113:8:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(uint256 => address[] storage ref)"}},"id":38143,"indexExpression":{"id":38142,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"5122:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5113:18:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5113:23:136","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":38146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5113:30:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38147,"nodeType":"ExpressionStatement","src":"5113:30:136"},{"expression":{"id":38152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38148,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37717,"src":"5162:7:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":38150,"indexExpression":{"id":38149,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38094,"src":"5170:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5162:14:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":38151,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5180:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5162:29:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38153,"nodeType":"ExpressionStatement","src":"5162:29:136"},{"expression":{"id":38160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":38154,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37723,"src":"5209:5:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(uint256 => mapping(address => int256))"}},"id":38157,"indexExpression":{"id":38155,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"5215:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5209:15:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":38158,"indexExpression":{"id":38156,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38094,"src":"5225:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5209:22:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":38159,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5235:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5209:37:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38161,"nodeType":"ExpressionStatement","src":"5209:37:136"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38162,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5268:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5268:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":38184,"nodeType":"Block","src":"5465:67:136","statements":[{"expression":{"id":38182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38179,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5487:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5501:12:136","subExpression":{"id":38180,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5502:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5487:26:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38183,"nodeType":"ExpressionStatement","src":"5487:26:136"}]},"id":38185,"nodeType":"IfStatement","src":"5264:268:136","trueBody":{"id":38178,"nodeType":"Block","src":"5285:174:136","statements":[{"expression":{"arguments":[{"arguments":[{"id":38173,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5372:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5364:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38171,"name":"uint256","nodeType":"ElementaryTypeName","src":"5364:7:136","typeDescriptions":{}}},"id":38174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5364:20:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38175,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"5410:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":38166,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37713,"src":"5314:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38168,"indexExpression":{"id":38167,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38100,"src":"5321:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5314:14:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38165,"name":"IBribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33878,"src":"5307:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBribe_$33878_$","typeString":"type(contract IBribe)"}},"id":38169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5307:22:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBribe_$33878","typeString":"contract IBribe"}},"id":38170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_deposit","nodeType":"MemberAccess","referencedDeclaration":33830,"src":"5307:31:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":38176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5307:133:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38177,"nodeType":"ExpressionStatement","src":"5307:133:136"}]}},{"expression":{"id":38188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38186,"name":"_usedWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38052,"src":"5549:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":38187,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5564:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5549:26:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38189,"nodeType":"ExpressionStatement","src":"5549:26:136"},{"expression":{"id":38192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38190,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"5593:12:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":38191,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5609:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5593:27:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38193,"nodeType":"ExpressionStatement","src":"5593:27:136"},{"eventCall":{"arguments":[{"expression":{"id":38195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5649:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5649:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38197,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"5661:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38198,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38109,"src":"5671:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38194,"name":"Voted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34389,"src":"5643:5:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (address,uint256,int256)"}},"id":38199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5643:40:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38200,"nodeType":"EmitStatement","src":"5638:45:136"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38084,"src":"4708:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38088,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38025,"src":"4712:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4708:12:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38204,"initializationExpression":{"assignments":[38084],"declarations":[{"constant":false,"id":38084,"mutability":"mutable","name":"i","nameLocation":"4701:1:136","nodeType":"VariableDeclaration","scope":38204,"src":"4693:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38083,"name":"uint256","nodeType":"ElementaryTypeName","src":"4693:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38086,"initialValue":{"hexValue":"30","id":38085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4705:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4693:13:136"},"loopExpression":{"expression":{"id":38091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4722:3:136","subExpression":{"id":38090,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38084,"src":"4722:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38092,"nodeType":"ExpressionStatement","src":"4722:3:136"},"nodeType":"ForStatement","src":"4688:1020:136"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38205,"name":"_usedWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38052,"src":"5722:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5736:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5722:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38217,"nodeType":"IfStatement","src":"5718:73:136","trueBody":{"expression":{"arguments":[{"id":38214,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"5782:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38209,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"5756:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"5756:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5756:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38208,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"5739:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":38212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5739:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":38213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"voting","nodeType":"MemberAccess","referencedDeclaration":35270,"src":"5739:42:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":38215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5739:52:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38216,"nodeType":"ExpressionStatement","src":"5739:52:136"}},{"expression":{"id":38223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38218,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37698,"src":"5801:11:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":38221,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"5824:12:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5816:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38219,"name":"uint256","nodeType":"ElementaryTypeName","src":"5816:7:136","typeDescriptions":{}}},"id":38222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5816:21:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5801:36:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38224,"nodeType":"ExpressionStatement","src":"5801:36:136"},{"expression":{"id":38232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38225,"name":"usedWeights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37732,"src":"5847:11:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":38227,"indexExpression":{"id":38226,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"5859:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5847:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38230,"name":"_usedWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38052,"src":"5879:11:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5871:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38228,"name":"uint256","nodeType":"ElementaryTypeName","src":"5871:7:136","typeDescriptions":{}}},"id":38231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5871:20:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5847:44:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38233,"nodeType":"ExpressionStatement","src":"5847:44:136"}]},"id":38235,"implemented":true,"kind":"function","modifiers":[],"name":"_vote","nameLocation":"4134:5:136","nodeType":"FunctionDefinition","parameters":{"id":38018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38011,"mutability":"mutable","name":"_tokenId","nameLocation":"4157:8:136","nodeType":"VariableDeclaration","scope":38235,"src":"4149:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38010,"name":"uint256","nodeType":"ElementaryTypeName","src":"4149:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38014,"mutability":"mutable","name":"_poolVote","nameLocation":"4192:9:136","nodeType":"VariableDeclaration","scope":38235,"src":"4175:26:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38012,"name":"address","nodeType":"ElementaryTypeName","src":"4175:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38013,"nodeType":"ArrayTypeName","src":"4175:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38017,"mutability":"mutable","name":"_weights","nameLocation":"4227:8:136","nodeType":"VariableDeclaration","scope":38235,"src":"4211:24:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":38015,"name":"int256","nodeType":"ElementaryTypeName","src":"4211:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38016,"nodeType":"ArrayTypeName","src":"4211:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4139:102:136"},"returnParameters":{"id":38019,"nodeType":"ParameterList","parameters":[],"src":"4251:0:136"},"scope":39048,"src":"4125:1773:136","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":38275,"nodeType":"Block","src":"6032:317:136","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":38253,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6134:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6134:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38255,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38237,"src":"6162:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38248,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"6080:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"6080:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6080:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38247,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"6063:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":38251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6063:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":38252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isApprovedOrOwner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"6063:53:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view external returns (bool)"}},"id":38256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6063:120:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420746f6b656e206f776e6572","id":38257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6197:17:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4","typeString":"literal_string \"not token owner\""},"value":"not token owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4","typeString":"literal_string \"not token owner\""}],"id":38246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6042:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6042:182:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38259,"nodeType":"ExpressionStatement","src":"6042:182:136"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38261,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38240,"src":"6242:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":38262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6242:16:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":38263,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38243,"src":"6262:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[] calldata"}},"id":38264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6262:15:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6242:35:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642077656967687473","id":38266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6279:17:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289","typeString":"literal_string \"invalid weights\""},"value":"invalid weights"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289","typeString":"literal_string \"invalid weights\""}],"id":38260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6234:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6234:63:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38268,"nodeType":"ExpressionStatement","src":"6234:63:136"},{"expression":{"arguments":[{"id":38270,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38237,"src":"6313:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38271,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38240,"src":"6322:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":38272,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38243,"src":"6333:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[] calldata"}],"id":38269,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38235,"src":"6307:5:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256,address[] memory,int256[] memory)"}},"id":38273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6307:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38274,"nodeType":"ExpressionStatement","src":"6307:35:136"}]},"functionSelector":"fecdad60","id":38276,"implemented":true,"kind":"function","modifiers":[],"name":"vote","nameLocation":"5913:4:136","nodeType":"FunctionDefinition","parameters":{"id":38244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38237,"mutability":"mutable","name":"tokenId","nameLocation":"5935:7:136","nodeType":"VariableDeclaration","scope":38276,"src":"5927:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38236,"name":"uint256","nodeType":"ElementaryTypeName","src":"5927:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38240,"mutability":"mutable","name":"_poolVote","nameLocation":"5971:9:136","nodeType":"VariableDeclaration","scope":38276,"src":"5952:28:136","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38238,"name":"address","nodeType":"ElementaryTypeName","src":"5952:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38239,"nodeType":"ArrayTypeName","src":"5952:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38243,"mutability":"mutable","name":"_weights","nameLocation":"6008:8:136","nodeType":"VariableDeclaration","scope":38276,"src":"5990:26:136","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":38241,"name":"int256","nodeType":"ElementaryTypeName","src":"5990:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38242,"nodeType":"ArrayTypeName","src":"5990:8:136","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"5917:105:136"},"returnParameters":{"id":38245,"nodeType":"ParameterList","parameters":[],"src":"6032:0:136"},"scope":39048,"src":"5904:445:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38301,"nodeType":"Block","src":"6413:112:136","statements":[{"expression":{"id":38290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38283,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37740,"src":"6423:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38285,"indexExpression":{"id":38284,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38278,"src":"6433:4:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6423:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6441:16:136","subExpression":{"baseExpression":{"id":38286,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37740,"src":"6442:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38288,"indexExpression":{"id":38287,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38278,"src":"6452:4:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6442:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6423:34:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38291,"nodeType":"ExpressionStatement","src":"6423:34:136"},{"eventCall":{"arguments":[{"expression":{"id":38293,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6484:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6484:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38295,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38278,"src":"6496:4:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":38296,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37740,"src":"6502:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38298,"indexExpression":{"id":38297,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38278,"src":"6512:4:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6502:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":38292,"name":"Whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34455,"src":"6472:11:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":38299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6472:46:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38300,"nodeType":"EmitStatement","src":"6467:51:136"}]},"functionSelector":"39393ac9","id":38302,"implemented":true,"kind":"function","modifiers":[{"id":38281,"kind":"modifierInvocation","modifierName":{"id":38280,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"6403:9:136"},"nodeType":"ModifierInvocation","src":"6403:9:136"}],"name":"toggleWhitelist","nameLocation":"6364:15:136","nodeType":"FunctionDefinition","parameters":{"id":38279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38278,"mutability":"mutable","name":"what","nameLocation":"6388:4:136","nodeType":"VariableDeclaration","scope":38302,"src":"6380:12:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38277,"name":"address","nodeType":"ElementaryTypeName","src":"6380:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6379:14:136"},"returnParameters":{"id":38282,"nodeType":"ParameterList","parameters":[],"src":"6413:0:136"},"scope":39048,"src":"6355:170:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38435,"nodeType":"Block","src":"6672:976:136","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38313,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"6682:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"6682:24:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":38316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6682:26:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38317,"nodeType":"ExpressionStatement","src":"6682:26:136"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":38319,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37705,"src":"6756:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38321,"indexExpression":{"id":38320,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"6763:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6756:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":38324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6781:3:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":38323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6773:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38322,"name":"address","nodeType":"ElementaryTypeName","src":"6773:7:136","typeDescriptions":{}}},"id":38325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6773:12:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6756:29:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"676175676520657869737473","id":38327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6787:14:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805","typeString":"literal_string \"gauge exists\""},"value":"gauge exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805","typeString":"literal_string \"gauge exists\""}],"id":38318,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6748:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6748:54:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38329,"nodeType":"ExpressionStatement","src":"6748:54:136"},{"expression":{"arguments":[{"baseExpression":{"id":38331,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37740,"src":"6846:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38333,"indexExpression":{"id":38332,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"6856:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6846:16:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f6f6c206e6f742077686974656c6973746564","id":38334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6864:22:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f","typeString":"literal_string \"pool not whitelisted\""},"value":"pool not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f","typeString":"literal_string \"pool not whitelisted\""}],"id":38330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6838:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6838:49:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38336,"nodeType":"ExpressionStatement","src":"6838:49:136"},{"expression":{"arguments":[{"baseExpression":{"id":38338,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37740,"src":"6905:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38340,"indexExpression":{"id":38339,"name":"_bribefactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"6915:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6905:24:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"627269626520666163746f7279206e6f742077686974656c6973746564","id":38341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6931:31:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1","typeString":"literal_string \"bribe factory not whitelisted\""},"value":"bribe factory not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1","typeString":"literal_string \"bribe factory not whitelisted\""}],"id":38337,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6897:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6897:66:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38343,"nodeType":"ExpressionStatement","src":"6897:66:136"},{"expression":{"arguments":[{"baseExpression":{"id":38345,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37740,"src":"6981:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38347,"indexExpression":{"id":38346,"name":"_gaugefactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38308,"src":"6991:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6981:24:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"676175676520666163746f7279206e6f742077686974656c6973746564","id":38348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7007:31:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa","typeString":"literal_string \"gauge factory not whitelisted\""},"value":"gauge factory not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa","typeString":"literal_string \"gauge factory not whitelisted\""}],"id":38344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6973:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6973:66:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38350,"nodeType":"ExpressionStatement","src":"6973:66:136"},{"assignments":[38352],"declarations":[{"constant":false,"id":38352,"mutability":"mutable","name":"_bribe","nameLocation":"7058:6:136","nodeType":"VariableDeclaration","scope":38435,"src":"7050:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38351,"name":"address","nodeType":"ElementaryTypeName","src":"7050:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":38362,"initialValue":{"arguments":[{"arguments":[{"id":38359,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"7129:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}],"id":38358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7121:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38357,"name":"address","nodeType":"ElementaryTypeName","src":"7121:7:136","typeDescriptions":{}}},"id":38360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7121:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":38354,"name":"_bribefactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"7081:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38353,"name":"IBribeFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33892,"src":"7067:13:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBribeFactory_$33892_$","typeString":"type(contract IBribeFactory)"}},"id":38355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7067:28:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBribeFactory_$33892","typeString":"contract IBribeFactory"}},"id":38356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createBribe","nodeType":"MemberAccess","referencedDeclaration":33887,"src":"7067:40:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_address_$","typeString":"function (address) external returns (address)"}},"id":38361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7067:81:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7050:98:136"},{"assignments":[38364],"declarations":[{"constant":false,"id":38364,"mutability":"mutable","name":"_gauge","nameLocation":"7166:6:136","nodeType":"VariableDeclaration","scope":38435,"src":"7158:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38363,"name":"address","nodeType":"ElementaryTypeName","src":"7158:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":38376,"initialValue":{"arguments":[{"id":38369,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"7229:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38370,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"7248:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":38373,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"7276:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}],"id":38372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7268:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38371,"name":"address","nodeType":"ElementaryTypeName","src":"7268:7:136","typeDescriptions":{}}},"id":38374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7268:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":38366,"name":"_gaugefactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38308,"src":"7189:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38365,"name":"IGaugeFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34132,"src":"7175:13:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGaugeFactory_$34132_$","typeString":"type(contract IGaugeFactory)"}},"id":38367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7175:28:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGaugeFactory_$34132","typeString":"contract IGaugeFactory"}},"id":38368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createGauge","nodeType":"MemberAccess","referencedDeclaration":34123,"src":"7175:40:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) external returns (address)"}},"id":38375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7175:120:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7158:137:136"},{"expression":{"arguments":[{"id":38383,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7338:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":38386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7351:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38385,"name":"uint256","nodeType":"ElementaryTypeName","src":"7351:7:136","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":38384,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7346:4:136","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":38387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7346:13:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":38388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"7346:17:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38378,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"7313:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"7313:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7313:15:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38377,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"7306:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":38381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7306:23:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":38382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"7306:31:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":38389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7306:58:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38390,"nodeType":"ExpressionStatement","src":"7306:58:136"},{"expression":{"id":38395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38391,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37713,"src":"7374:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38393,"indexExpression":{"id":38392,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7381:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7374:14:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38394,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"7391:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7374:23:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38396,"nodeType":"ExpressionStatement","src":"7374:23:136"},{"expression":{"id":38401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38397,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37705,"src":"7407:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38399,"indexExpression":{"id":38398,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"7414:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7407:13:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38400,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7423:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7407:22:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38402,"nodeType":"ExpressionStatement","src":"7407:22:136"},{"expression":{"id":38407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38403,"name":"poolForGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37709,"src":"7439:12:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38405,"indexExpression":{"id":38404,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7452:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7439:20:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38406,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"7462:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7439:28:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38408,"nodeType":"ExpressionStatement","src":"7439:28:136"},{"expression":{"id":38413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38409,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37736,"src":"7477:7:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":38411,"indexExpression":{"id":38410,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7485:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7477:15:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":38412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7495:4:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7477:22:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38414,"nodeType":"ExpressionStatement","src":"7477:22:136"},{"expression":{"arguments":[{"id":38416,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7521:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38415,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"7510:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7510:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38418,"nodeType":"ExpressionStatement","src":"7510:18:136"},{"expression":{"arguments":[{"id":38422,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"7549:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38419,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37701,"src":"7538:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7538:10:136","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":38423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7538:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38424,"nodeType":"ExpressionStatement","src":"7538:17:136"},{"eventCall":{"arguments":[{"id":38426,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7584:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":38427,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7592:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7592:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38429,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"7604:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38430,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"7612:5:136","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":38425,"name":"GaugeCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34381,"src":"7571:12:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address,address)"}},"id":38431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7571:47:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38432,"nodeType":"EmitStatement","src":"7566:52:136"},{"expression":{"id":38433,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38364,"src":"7635:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":38312,"id":38434,"nodeType":"Return","src":"7628:13:136"}]},"functionSelector":"af67c638","id":38436,"implemented":true,"kind":"function","modifiers":[],"name":"registerGauge","nameLocation":"6540:13:136","nodeType":"FunctionDefinition","parameters":{"id":38309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38304,"mutability":"mutable","name":"_pool","nameLocation":"6571:5:136","nodeType":"VariableDeclaration","scope":38436,"src":"6563:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38303,"name":"address","nodeType":"ElementaryTypeName","src":"6563:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38306,"mutability":"mutable","name":"_bribefactory","nameLocation":"6594:13:136","nodeType":"VariableDeclaration","scope":38436,"src":"6586:21:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38305,"name":"address","nodeType":"ElementaryTypeName","src":"6586:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38308,"mutability":"mutable","name":"_gaugefactory","nameLocation":"6625:13:136","nodeType":"VariableDeclaration","scope":38436,"src":"6617:21:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38307,"name":"address","nodeType":"ElementaryTypeName","src":"6617:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6553:91:136"},"returnParameters":{"id":38312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38436,"src":"6663:7:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38310,"name":"address","nodeType":"ElementaryTypeName","src":"6663:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6662:9:136"},"scope":39048,"src":"6531:1117:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34330],"body":{"id":38466,"nodeType":"Block","src":"7772:136:136","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38446,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38438,"src":"7786:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7796:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7786:11:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38458,"nodeType":"IfStatement","src":"7782:68:136","trueBody":{"expression":{"arguments":[{"id":38455,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38438,"src":"7842:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38450,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"7816:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"7816:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7816:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38449,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"7799:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":38453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7799:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":38454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"attach","nodeType":"MemberAccess","referencedDeclaration":35260,"src":"7799:42:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":38456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7799:51:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38457,"nodeType":"ExpressionStatement","src":"7799:51:136"}},{"eventCall":{"arguments":[{"id":38460,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38440,"src":"7872:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":38461,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7881:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7881:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38463,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38438,"src":"7893:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38459,"name":"Attach","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34439,"src":"7865:6:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7865:36:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38465,"nodeType":"EmitStatement","src":"7860:41:136"}]},"functionSelector":"698473e3","id":38467,"implemented":true,"kind":"function","modifiers":[{"id":38444,"kind":"modifierInvocation","modifierName":{"id":38443,"name":"onlyGauge","nodeType":"IdentifierPath","referencedDeclaration":37762,"src":"7758:9:136"},"nodeType":"ModifierInvocation","src":"7758:9:136"}],"name":"attachTokenToGauge","nameLocation":"7663:18:136","nodeType":"FunctionDefinition","overrides":{"id":38442,"nodeType":"OverrideSpecifier","overrides":[],"src":"7741:8:136"},"parameters":{"id":38441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38438,"mutability":"mutable","name":"tokenId","nameLocation":"7690:7:136","nodeType":"VariableDeclaration","scope":38467,"src":"7682:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38437,"name":"uint256","nodeType":"ElementaryTypeName","src":"7682:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38440,"mutability":"mutable","name":"account","nameLocation":"7707:7:136","nodeType":"VariableDeclaration","scope":38467,"src":"7699:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38439,"name":"address","nodeType":"ElementaryTypeName","src":"7699:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7681:34:136"},"returnParameters":{"id":38445,"nodeType":"ParameterList","parameters":[],"src":"7772:0:136"},"scope":39048,"src":"7654:254:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34346],"body":{"id":38487,"nodeType":"Block","src":"8043:67:136","statements":[{"eventCall":{"arguments":[{"id":38480,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38471,"src":"8066:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":38481,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8075:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8075:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38483,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38469,"src":"8087:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38484,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38473,"src":"8096:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38479,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34405,"src":"8058:7:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":38485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8058:45:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38486,"nodeType":"EmitStatement","src":"8053:50:136"}]},"functionSelector":"a61c713a","id":38488,"implemented":true,"kind":"function","modifiers":[{"id":38477,"kind":"modifierInvocation","modifierName":{"id":38476,"name":"onlyGauge","nodeType":"IdentifierPath","referencedDeclaration":37762,"src":"8033:9:136"},"nodeType":"ModifierInvocation","src":"8033:9:136"}],"name":"emitDeposit","nameLocation":"7923:11:136","nodeType":"FunctionDefinition","overrides":{"id":38475,"nodeType":"OverrideSpecifier","overrides":[],"src":"8024:8:136"},"parameters":{"id":38474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38469,"mutability":"mutable","name":"tokenId","nameLocation":"7952:7:136","nodeType":"VariableDeclaration","scope":38488,"src":"7944:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38468,"name":"uint256","nodeType":"ElementaryTypeName","src":"7944:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38471,"mutability":"mutable","name":"account","nameLocation":"7977:7:136","nodeType":"VariableDeclaration","scope":38488,"src":"7969:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38470,"name":"address","nodeType":"ElementaryTypeName","src":"7969:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38473,"mutability":"mutable","name":"amount","nameLocation":"8002:6:136","nodeType":"VariableDeclaration","scope":38488,"src":"7994:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38472,"name":"uint256","nodeType":"ElementaryTypeName","src":"7994:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7934:80:136"},"returnParameters":{"id":38478,"nodeType":"ParameterList","parameters":[],"src":"8043:0:136"},"scope":39048,"src":"7914:196:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34337],"body":{"id":38518,"nodeType":"Block","src":"8236:136:136","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38498,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38490,"src":"8250:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8260:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8250:11:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38510,"nodeType":"IfStatement","src":"8246:68:136","trueBody":{"expression":{"arguments":[{"id":38507,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38490,"src":"8306:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38502,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"8280:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"8280:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8280:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38501,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"8263:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":38505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8263:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":38506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"detach","nodeType":"MemberAccess","referencedDeclaration":35265,"src":"8263:42:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":38508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8263:51:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38509,"nodeType":"ExpressionStatement","src":"8263:51:136"}},{"eventCall":{"arguments":[{"id":38512,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38492,"src":"8336:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":38513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8345:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8345:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38515,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38490,"src":"8357:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38511,"name":"Detach","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34447,"src":"8329:6:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8329:36:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38517,"nodeType":"EmitStatement","src":"8324:41:136"}]},"functionSelector":"411b1f77","id":38519,"implemented":true,"kind":"function","modifiers":[{"id":38496,"kind":"modifierInvocation","modifierName":{"id":38495,"name":"onlyGauge","nodeType":"IdentifierPath","referencedDeclaration":37762,"src":"8222:9:136"},"nodeType":"ModifierInvocation","src":"8222:9:136"}],"name":"detachTokenFromGauge","nameLocation":"8125:20:136","nodeType":"FunctionDefinition","overrides":{"id":38494,"nodeType":"OverrideSpecifier","overrides":[],"src":"8205:8:136"},"parameters":{"id":38493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38490,"mutability":"mutable","name":"tokenId","nameLocation":"8154:7:136","nodeType":"VariableDeclaration","scope":38519,"src":"8146:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38489,"name":"uint256","nodeType":"ElementaryTypeName","src":"8146:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38492,"mutability":"mutable","name":"account","nameLocation":"8171:7:136","nodeType":"VariableDeclaration","scope":38519,"src":"8163:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38491,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8145:34:136"},"returnParameters":{"id":38497,"nodeType":"ParameterList","parameters":[],"src":"8236:0:136"},"scope":39048,"src":"8116:256:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34355],"body":{"id":38539,"nodeType":"Block","src":"8508:68:136","statements":[{"eventCall":{"arguments":[{"id":38532,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38523,"src":"8532:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":38533,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8541:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8541:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38535,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38521,"src":"8553:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38536,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38525,"src":"8562:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38531,"name":"Withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34415,"src":"8523:8:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":38537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8523:46:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38538,"nodeType":"EmitStatement","src":"8518:51:136"}]},"functionSelector":"ea94ee44","id":38540,"implemented":true,"kind":"function","modifiers":[{"id":38529,"kind":"modifierInvocation","modifierName":{"id":38528,"name":"onlyGauge","nodeType":"IdentifierPath","referencedDeclaration":37762,"src":"8498:9:136"},"nodeType":"ModifierInvocation","src":"8498:9:136"}],"name":"emitWithdraw","nameLocation":"8387:12:136","nodeType":"FunctionDefinition","overrides":{"id":38527,"nodeType":"OverrideSpecifier","overrides":[],"src":"8489:8:136"},"parameters":{"id":38526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38521,"mutability":"mutable","name":"tokenId","nameLocation":"8417:7:136","nodeType":"VariableDeclaration","scope":38540,"src":"8409:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38520,"name":"uint256","nodeType":"ElementaryTypeName","src":"8409:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38523,"mutability":"mutable","name":"account","nameLocation":"8442:7:136","nodeType":"VariableDeclaration","scope":38540,"src":"8434:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38522,"name":"address","nodeType":"ElementaryTypeName","src":"8434:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38525,"mutability":"mutable","name":"amount","nameLocation":"8467:6:136","nodeType":"VariableDeclaration","scope":38540,"src":"8459:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38524,"name":"uint256","nodeType":"ElementaryTypeName","src":"8459:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8399:80:136"},"returnParameters":{"id":38530,"nodeType":"ParameterList","parameters":[],"src":"8508:0:136"},"scope":39048,"src":"8378:198:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38548,"nodeType":"Block","src":"8632:36:136","statements":[{"expression":{"expression":{"id":38545,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37701,"src":"8649:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8649:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38544,"id":38547,"nodeType":"Return","src":"8642:19:136"}]},"functionSelector":"1f7b6d32","id":38549,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"8591:6:136","nodeType":"FunctionDefinition","parameters":{"id":38541,"nodeType":"ParameterList","parameters":[],"src":"8597:2:136"},"returnParameters":{"id":38544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38549,"src":"8623:7:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38542,"name":"uint256","nodeType":"ElementaryTypeName","src":"8623:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8622:9:136"},"scope":39048,"src":"8582:86:136","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34371],"body":{"id":38595,"nodeType":"Block","src":"8736:340:136","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38556,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"8764:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"8764:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8764:15:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":38559,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8781:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8781:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":38563,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8801:4:136","typeDescriptions":{"typeIdentifier":"t_contract$_BaseV1Voter_$39048","typeString":"contract BaseV1Voter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseV1Voter_$39048","typeString":"contract BaseV1Voter"}],"id":38562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8793:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38561,"name":"address","nodeType":"ElementaryTypeName","src":"8793:7:136","typeDescriptions":{}}},"id":38564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8793:13:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38565,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"8808:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38555,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39047,"src":"8746:17:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":38566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8746:69:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38567,"nodeType":"ExpressionStatement","src":"8746:69:136"},{"assignments":[38569],"declarations":[{"constant":false,"id":38569,"mutability":"mutable","name":"_ratio","nameLocation":"8859:6:136","nodeType":"VariableDeclaration","scope":38595,"src":"8851:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38568,"name":"uint256","nodeType":"ElementaryTypeName","src":"8851:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38576,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"8869:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":38571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8878:4:136","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"8869:13:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":38573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8868:15:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":38574,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37698,"src":"8886:11:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8868:29:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8851:46:136"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38577,"name":"_ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38569,"src":"8954:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8963:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8954:10:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38585,"nodeType":"IfStatement","src":"8950:56:136","trueBody":{"id":38584,"nodeType":"Block","src":"8966:40:136","statements":[{"expression":{"id":38582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38580,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37742,"src":"8980:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":38581,"name":"_ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38569,"src":"8989:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8980:15:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38583,"nodeType":"ExpressionStatement","src":"8980:15:136"}]}},{"eventCall":{"arguments":[{"expression":{"id":38587,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9033:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9033:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38589,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"9045:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"9045:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9045:15:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38592,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"9062:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38586,"name":"NotifyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34423,"src":"9020:12:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9020:49:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38594,"nodeType":"EmitStatement","src":"9015:54:136"}]},"functionSelector":"3c6b16ab","id":38596,"implemented":true,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"8683:18:136","nodeType":"FunctionDefinition","overrides":{"id":38553,"nodeType":"OverrideSpecifier","overrides":[],"src":"8727:8:136"},"parameters":{"id":38552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38551,"mutability":"mutable","name":"amount","nameLocation":"8710:6:136","nodeType":"VariableDeclaration","scope":38596,"src":"8702:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38550,"name":"uint256","nodeType":"ElementaryTypeName","src":"8702:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8701:16:136"},"returnParameters":{"id":38554,"nodeType":"ParameterList","parameters":[],"src":"8736:0:136"},"scope":39048,"src":"8674:402:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38621,"nodeType":"Block","src":"9136:108:136","statements":[{"body":{"id":38619,"nodeType":"Block","src":"9191:47:136","statements":[{"expression":{"arguments":[{"baseExpression":{"id":38614,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38599,"src":"9216:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38616,"indexExpression":{"id":38615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38603,"src":"9224:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9216:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38613,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"9205:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9205:22:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38618,"nodeType":"ExpressionStatement","src":"9205:22:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38606,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38603,"src":"9166:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":38607,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38599,"src":"9170:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9170:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9166:18:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38620,"initializationExpression":{"assignments":[38603],"declarations":[{"constant":false,"id":38603,"mutability":"mutable","name":"i","nameLocation":"9159:1:136","nodeType":"VariableDeclaration","scope":38620,"src":"9151:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38602,"name":"uint256","nodeType":"ElementaryTypeName","src":"9151:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38605,"initialValue":{"hexValue":"30","id":38604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9163:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9151:13:136"},"loopExpression":{"expression":{"id":38611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9186:3:136","subExpression":{"id":38610,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38603,"src":"9186:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38612,"nodeType":"ExpressionStatement","src":"9186:3:136"},"nodeType":"ForStatement","src":"9146:92:136"}]},"functionSelector":"d560b0d7","id":38622,"implemented":true,"kind":"function","modifiers":[],"name":"updateFor","nameLocation":"9091:9:136","nodeType":"FunctionDefinition","parameters":{"id":38600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38599,"mutability":"mutable","name":"_gauges","nameLocation":"9118:7:136","nodeType":"VariableDeclaration","scope":38622,"src":"9101:24:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38597,"name":"address","nodeType":"ElementaryTypeName","src":"9101:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38598,"nodeType":"ArrayTypeName","src":"9101:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9100:26:136"},"returnParameters":{"id":38601,"nodeType":"ParameterList","parameters":[],"src":"9136:0:136"},"scope":39048,"src":"9082:162:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38649,"nodeType":"Block","src":"9309:107:136","statements":[{"body":{"id":38647,"nodeType":"Block","src":"9357:53:136","statements":[{"expression":{"arguments":[{"baseExpression":{"id":38640,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37705,"src":"9382:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38644,"indexExpression":{"baseExpression":{"id":38641,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37701,"src":"9389:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38643,"indexExpression":{"id":38642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"9395:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9389:8:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9382:16:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38639,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"9371:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9371:28:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38646,"nodeType":"ExpressionStatement","src":"9371:28:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38633,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"9343:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38634,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38626,"src":"9347:3:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9343:7:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38648,"initializationExpression":{"assignments":[38630],"declarations":[{"constant":false,"id":38630,"mutability":"mutable","name":"i","nameLocation":"9332:1:136","nodeType":"VariableDeclaration","scope":38648,"src":"9324:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38629,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38632,"initialValue":{"id":38631,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38624,"src":"9336:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:17:136"},"loopExpression":{"expression":{"id":38637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9352:3:136","subExpression":{"id":38636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"9352:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38638,"nodeType":"ExpressionStatement","src":"9352:3:136"},"nodeType":"ForStatement","src":"9319:91:136"}]},"functionSelector":"9b6a9d72","id":38650,"implemented":true,"kind":"function","modifiers":[],"name":"updateForRange","nameLocation":"9259:14:136","nodeType":"FunctionDefinition","parameters":{"id":38627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38624,"mutability":"mutable","name":"start","nameLocation":"9282:5:136","nodeType":"VariableDeclaration","scope":38650,"src":"9274:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38623,"name":"uint256","nodeType":"ElementaryTypeName","src":"9274:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38626,"mutability":"mutable","name":"end","nameLocation":"9297:3:136","nodeType":"VariableDeclaration","scope":38650,"src":"9289:11:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38625,"name":"uint256","nodeType":"ElementaryTypeName","src":"9289:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9273:28:136"},"returnParameters":{"id":38628,"nodeType":"ParameterList","parameters":[],"src":"9309:0:136"},"scope":39048,"src":"9250:166:136","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":38659,"nodeType":"Block","src":"9452:48:136","statements":[{"expression":{"arguments":[{"hexValue":"30","id":38654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":38655,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37701,"src":"9480:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9480:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38653,"name":"updateForRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38650,"src":"9462:14:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":38657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9462:31:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38658,"nodeType":"ExpressionStatement","src":"9462:31:136"}]},"functionSelector":"53d78693","id":38660,"implemented":true,"kind":"function","modifiers":[],"name":"updateAll","nameLocation":"9431:9:136","nodeType":"FunctionDefinition","parameters":{"id":38651,"nodeType":"ParameterList","parameters":[],"src":"9440:2:136"},"returnParameters":{"id":38652,"nodeType":"ParameterList","parameters":[],"src":"9452:0:136"},"scope":39048,"src":"9422:78:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38669,"nodeType":"Block","src":"9552:35:136","statements":[{"expression":{"arguments":[{"id":38666,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38662,"src":"9573:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38665,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"9562:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9562:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38668,"nodeType":"ExpressionStatement","src":"9562:18:136"}]},"functionSelector":"6ecbe38a","id":38670,"implemented":true,"kind":"function","modifiers":[],"name":"updateGauge","nameLocation":"9515:11:136","nodeType":"FunctionDefinition","parameters":{"id":38663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38662,"mutability":"mutable","name":"_gauge","nameLocation":"9535:6:136","nodeType":"VariableDeclaration","scope":38670,"src":"9527:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38661,"name":"address","nodeType":"ElementaryTypeName","src":"9527:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9526:16:136"},"returnParameters":{"id":38664,"nodeType":"ParameterList","parameters":[],"src":"9552:0:136"},"scope":39048,"src":"9506:81:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38744,"nodeType":"Block","src":"9638:793:136","statements":[{"assignments":[38676],"declarations":[{"constant":false,"id":38676,"mutability":"mutable","name":"_pool","nameLocation":"9656:5:136","nodeType":"VariableDeclaration","scope":38744,"src":"9648:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38675,"name":"address","nodeType":"ElementaryTypeName","src":"9648:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":38680,"initialValue":{"baseExpression":{"id":38677,"name":"poolForGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37709,"src":"9664:12:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38679,"indexExpression":{"id":38678,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38672,"src":"9677:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9664:20:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9648:36:136"},{"assignments":[38682],"declarations":[{"constant":false,"id":38682,"mutability":"mutable","name":"_supplied","nameLocation":"9701:9:136","nodeType":"VariableDeclaration","scope":38744,"src":"9694:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38681,"name":"int256","nodeType":"ElementaryTypeName","src":"9694:6:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":38686,"initialValue":{"baseExpression":{"id":38683,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37717,"src":"9713:7:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":38685,"indexExpression":{"id":38684,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38676,"src":"9721:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9713:14:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"9694:33:136"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38687,"name":"_supplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38682,"src":"9741:9:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9753:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9741:13:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":38742,"nodeType":"Block","src":"10324:101:136","statements":[{"expression":{"id":38740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38736,"name":"supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37746,"src":"10338:11:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38738,"indexExpression":{"id":38737,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38672,"src":"10350:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10338:19:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38739,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37742,"src":"10360:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10338:27:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38741,"nodeType":"ExpressionStatement","src":"10338:27:136"}]},"id":38743,"nodeType":"IfStatement","src":"9737:688:136","trueBody":{"id":38735,"nodeType":"Block","src":"9756:562:136","statements":[{"assignments":[38691],"declarations":[{"constant":false,"id":38691,"mutability":"mutable","name":"_supplyIndex","nameLocation":"9778:12:136","nodeType":"VariableDeclaration","scope":38735,"src":"9770:20:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38690,"name":"uint256","nodeType":"ElementaryTypeName","src":"9770:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38695,"initialValue":{"baseExpression":{"id":38692,"name":"supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37746,"src":"9793:11:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38694,"indexExpression":{"id":38693,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38672,"src":"9805:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9793:19:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9770:42:136"},{"assignments":[38697],"declarations":[{"constant":false,"id":38697,"mutability":"mutable","name":"_index","nameLocation":"9834:6:136","nodeType":"VariableDeclaration","scope":38735,"src":"9826:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38696,"name":"uint256","nodeType":"ElementaryTypeName","src":"9826:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38699,"initialValue":{"id":38698,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37742,"src":"9843:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9826:22:136"},{"expression":{"id":38704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38700,"name":"supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37746,"src":"9906:11:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38702,"indexExpression":{"id":38701,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38672,"src":"9918:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9906:19:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38703,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38697,"src":"9928:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9906:28:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38705,"nodeType":"ExpressionStatement","src":"9906:28:136"},{"assignments":[38707],"declarations":[{"constant":false,"id":38707,"mutability":"mutable","name":"_delta","nameLocation":"10009:6:136","nodeType":"VariableDeclaration","scope":38735,"src":"10001:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38706,"name":"uint256","nodeType":"ElementaryTypeName","src":"10001:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38711,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38708,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38697,"src":"10018:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38709,"name":"_supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38691,"src":"10027:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10018:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10001:38:136"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38712,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38707,"src":"10115:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10124:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10115:10:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38734,"nodeType":"IfStatement","src":"10111:197:136","trueBody":{"id":38733,"nodeType":"Block","src":"10127:181:136","statements":[{"assignments":[38716],"declarations":[{"constant":false,"id":38716,"mutability":"mutable","name":"_share","nameLocation":"10153:6:136","nodeType":"VariableDeclaration","scope":38733,"src":"10145:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38715,"name":"uint256","nodeType":"ElementaryTypeName","src":"10145:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38726,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":38719,"name":"_supplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38682,"src":"10171:9:136","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10163:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38717,"name":"uint256","nodeType":"ElementaryTypeName","src":"10163:7:136","typeDescriptions":{}}},"id":38720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10163:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":38721,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38707,"src":"10184:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10163:27:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":38723,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10162:29:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31653138","id":38724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10194:4:136","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"10162:36:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10145:53:136"},{"expression":{"id":38731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38727,"name":"claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37750,"src":"10266:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38729,"indexExpression":{"id":38728,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38672,"src":"10276:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10266:17:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":38730,"name":"_share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38716,"src":"10287:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10266:27:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38732,"nodeType":"ExpressionStatement","src":"10266:27:136"}]}}]}}]},"id":38745,"implemented":true,"kind":"function","modifiers":[],"name":"_updateFor","nameLocation":"9602:10:136","nodeType":"FunctionDefinition","parameters":{"id":38673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38672,"mutability":"mutable","name":"_gauge","nameLocation":"9621:6:136","nodeType":"VariableDeclaration","scope":38745,"src":"9613:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38671,"name":"address","nodeType":"ElementaryTypeName","src":"9613:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9612:16:136"},"returnParameters":{"id":38674,"nodeType":"ParameterList","parameters":[],"src":"9638:0:136"},"scope":39048,"src":"9593:838:136","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":38781,"nodeType":"Block","src":"10534:138:136","statements":[{"body":{"id":38779,"nodeType":"Block","src":"10589:77:136","statements":[{"expression":{"arguments":[{"expression":{"id":38772,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10632:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10632:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":38774,"name":"_tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38752,"src":"10644:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"address[] memory[] memory"}},"id":38776,"indexExpression":{"id":38775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38756,"src":"10652:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10644:10:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"arguments":[{"baseExpression":{"id":38767,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38748,"src":"10610:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38769,"indexExpression":{"id":38768,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38756,"src":"10618:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10610:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38766,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34110,"src":"10603:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGauge_$34110_$","typeString":"type(contract IGauge)"}},"id":38770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10603:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGauge_$34110","typeString":"contract IGauge"}},"id":38771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReward","nodeType":"MemberAccess","referencedDeclaration":34096,"src":"10603:28:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address[] memory) external"}},"id":38777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10603:52:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38778,"nodeType":"ExpressionStatement","src":"10603:52:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38756,"src":"10564:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":38760,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38748,"src":"10568:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10568:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10564:18:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38780,"initializationExpression":{"assignments":[38756],"declarations":[{"constant":false,"id":38756,"mutability":"mutable","name":"i","nameLocation":"10557:1:136","nodeType":"VariableDeclaration","scope":38780,"src":"10549:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38755,"name":"uint256","nodeType":"ElementaryTypeName","src":"10549:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38758,"initialValue":{"hexValue":"30","id":38757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10561:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10549:13:136"},"loopExpression":{"expression":{"id":38764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10584:3:136","subExpression":{"id":38763,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38756,"src":"10584:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38765,"nodeType":"ExpressionStatement","src":"10584:3:136"},"nodeType":"ForStatement","src":"10544:122:136"}]},"functionSelector":"20b1cb6f","id":38782,"implemented":true,"kind":"function","modifiers":[],"name":"claimRewards","nameLocation":"10446:12:136","nodeType":"FunctionDefinition","parameters":{"id":38753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38748,"mutability":"mutable","name":"_gauges","nameLocation":"10476:7:136","nodeType":"VariableDeclaration","scope":38782,"src":"10459:24:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38746,"name":"address","nodeType":"ElementaryTypeName","src":"10459:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38747,"nodeType":"ArrayTypeName","src":"10459:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38752,"mutability":"mutable","name":"_tokens","nameLocation":"10504:7:136","nodeType":"VariableDeclaration","scope":38782,"src":"10485:26:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"address[][]"},"typeName":{"baseType":{"baseType":{"id":38749,"name":"address","nodeType":"ElementaryTypeName","src":"10485:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38750,"nodeType":"ArrayTypeName","src":"10485:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"id":38751,"nodeType":"ArrayTypeName","src":"10485:11:136","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_storage_$dyn_storage_ptr","typeString":"address[][]"}},"visibility":"internal"}],"src":"10458:54:136"},"returnParameters":{"id":38754,"nodeType":"ParameterList","parameters":[],"src":"10534:0:136"},"scope":39048,"src":"10437:235:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38833,"nodeType":"Block","src":"10810:340:136","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":38801,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10912:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10912:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38803,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38791,"src":"10940:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38796,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"10858:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locker","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"10858:15:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10858:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38795,"name":"IOldVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35352,"src":"10841:16:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOldVotingEscrow_$35352_$","typeString":"type(contract IOldVotingEscrow)"}},"id":38799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10841:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOldVotingEscrow_$35352","typeString":"contract IOldVotingEscrow"}},"id":38800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isApprovedOrOwner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"10841:53:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view external returns (bool)"}},"id":38804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10841:121:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420617070726f766564206f776e6572","id":38805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10976:20:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_2864dbbabd8157306aeef066484bac7e059f00045265f0ceb285d27d8f9c1415","typeString":"literal_string \"not approved owner\""},"value":"not approved owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2864dbbabd8157306aeef066484bac7e059f00045265f0ceb285d27d8f9c1415","typeString":"literal_string \"not approved owner\""}],"id":38794,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10820:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10820:186:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38807,"nodeType":"ExpressionStatement","src":"10820:186:136"},{"body":{"id":38831,"nodeType":"Block","src":"11061:83:136","statements":[{"expression":{"arguments":[{"id":38825,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38791,"src":"11112:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":38826,"name":"_tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38789,"src":"11122:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"address[] memory[] memory"}},"id":38828,"indexExpression":{"id":38827,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38809,"src":"11130:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11122:10:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"arguments":[{"baseExpression":{"id":38820,"name":"_bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38785,"src":"11082:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38822,"indexExpression":{"id":38821,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38809,"src":"11090:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11082:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38819,"name":"IBribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33878,"src":"11075:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBribe_$33878_$","typeString":"type(contract IBribe)"}},"id":38823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11075:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBribe_$33878","typeString":"contract IBribe"}},"id":38824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRewardForOwner","nodeType":"MemberAccess","referencedDeclaration":33845,"src":"11075:36:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256,address[] memory) external"}},"id":38829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11075:58:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38830,"nodeType":"ExpressionStatement","src":"11075:58:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38812,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38809,"src":"11036:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":38813,"name":"_bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38785,"src":"11040:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11040:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11036:18:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38832,"initializationExpression":{"assignments":[38809],"declarations":[{"constant":false,"id":38809,"mutability":"mutable","name":"i","nameLocation":"11029:1:136","nodeType":"VariableDeclaration","scope":38832,"src":"11021:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38808,"name":"uint256","nodeType":"ElementaryTypeName","src":"11021:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38811,"initialValue":{"hexValue":"30","id":38810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11033:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11021:13:136"},"loopExpression":{"expression":{"id":38817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11056:3:136","subExpression":{"id":38816,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38809,"src":"11056:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38818,"nodeType":"ExpressionStatement","src":"11056:3:136"},"nodeType":"ForStatement","src":"11016:128:136"}]},"functionSelector":"7715ee75","id":38834,"implemented":true,"kind":"function","modifiers":[],"name":"claimBribes","nameLocation":"10687:11:136","nodeType":"FunctionDefinition","parameters":{"id":38792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38785,"mutability":"mutable","name":"_bribes","nameLocation":"10725:7:136","nodeType":"VariableDeclaration","scope":38834,"src":"10708:24:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38783,"name":"address","nodeType":"ElementaryTypeName","src":"10708:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38784,"nodeType":"ArrayTypeName","src":"10708:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38789,"mutability":"mutable","name":"_tokens","nameLocation":"10761:7:136","nodeType":"VariableDeclaration","scope":38834,"src":"10742:26:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"address[][]"},"typeName":{"baseType":{"baseType":{"id":38786,"name":"address","nodeType":"ElementaryTypeName","src":"10742:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38787,"nodeType":"ArrayTypeName","src":"10742:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"id":38788,"nodeType":"ArrayTypeName","src":"10742:11:136","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_storage_$dyn_storage_ptr","typeString":"address[][]"}},"visibility":"internal"},{"constant":false,"id":38791,"mutability":"mutable","name":"_tokenId","nameLocation":"10786:8:136","nodeType":"VariableDeclaration","scope":38834,"src":"10778:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38790,"name":"uint256","nodeType":"ElementaryTypeName","src":"10778:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10698:102:136"},"returnParameters":{"id":38793,"nodeType":"ParameterList","parameters":[],"src":"10810:0:136"},"scope":39048,"src":"10678:472:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38904,"nodeType":"Block","src":"11215:536:136","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":38842,"name":"emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37696,"src":"11249:18:136","typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}],"id":38841,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33981,"src":"11229:19:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEmissionController_$33981_$","typeString":"type(contract IEmissionController)"}},"id":38843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11229:39:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"id":38844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"callable","nodeType":"MemberAccess","referencedDeclaration":33988,"src":"11229:48:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":38845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11229:50:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38852,"nodeType":"IfStatement","src":"11225:126:136","trueBody":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":38847,"name":"emissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37696,"src":"11313:18:136","typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}],"id":38846,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33981,"src":"11293:19:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEmissionController_$33981_$","typeString":"type(contract IEmissionController)"}},"id":38848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11293:39:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"id":38849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allocateEmission","nodeType":"MemberAccess","referencedDeclaration":33980,"src":"11293:56:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":38850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11293:58:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38851,"nodeType":"ExpressionStatement","src":"11293:58:136"}},{"expression":{"arguments":[{"id":38854,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38836,"src":"11372:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38853,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"11361:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11361:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38856,"nodeType":"ExpressionStatement","src":"11361:18:136"},{"assignments":[38858],"declarations":[{"constant":false,"id":38858,"mutability":"mutable","name":"_claimable","nameLocation":"11397:10:136","nodeType":"VariableDeclaration","scope":38904,"src":"11389:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38857,"name":"uint256","nodeType":"ElementaryTypeName","src":"11389:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38862,"initialValue":{"baseExpression":{"id":38859,"name":"claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37750,"src":"11410:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38861,"indexExpression":{"id":38860,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38836,"src":"11420:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11410:17:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11389:38:136"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":38878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38863,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38858,"src":"11455:10:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38868,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"11488:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"11488:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11488:15:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":38865,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38836,"src":"11475:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38864,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34110,"src":"11468:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGauge_$34110_$","typeString":"type(contract IGauge)"}},"id":38866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11468:14:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGauge_$34110","typeString":"contract IGauge"}},"id":38867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"left","nodeType":"MemberAccess","referencedDeclaration":34109,"src":"11468:19:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":38871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11468:36:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11455:49:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38873,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38858,"src":"11520:10:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":38874,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37693,"src":"11533:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11520:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":38876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11544:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11520:25:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11455:90:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38903,"nodeType":"IfStatement","src":"11438:307:136","trueBody":{"id":38902,"nodeType":"Block","src":"11556:189:136","statements":[{"expression":{"id":38883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38879,"name":"claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37750,"src":"11570:9:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38881,"indexExpression":{"id":38880,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38836,"src":"11580:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11570:17:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":38882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11590:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11570:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38884,"nodeType":"ExpressionStatement","src":"11570:21:136"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38889,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37690,"src":"11639:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":38890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"11639:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":38891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11639:15:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38892,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38858,"src":"11656:10:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38886,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38836,"src":"11612:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38885,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34110,"src":"11605:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGauge_$34110_$","typeString":"type(contract IGauge)"}},"id":38887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11605:14:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGauge_$34110","typeString":"contract IGauge"}},"id":38888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"notifyRewardAmount","nodeType":"MemberAccess","referencedDeclaration":34088,"src":"11605:33:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":38893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11605:62:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38894,"nodeType":"ExpressionStatement","src":"11605:62:136"},{"eventCall":{"arguments":[{"expression":{"id":38896,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11703:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11703:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38898,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38836,"src":"11715:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38899,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38858,"src":"11723:10:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38895,"name":"DistributeReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34431,"src":"11686:16:136","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11686:48:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38901,"nodeType":"EmitStatement","src":"11681:53:136"}]}}]},"id":38905,"implemented":true,"kind":"function","modifiers":[{"id":38839,"kind":"modifierInvocation","modifierName":{"id":38838,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"11202:12:136"},"nodeType":"ModifierInvocation","src":"11202:12:136"}],"name":"_distribute","nameLocation":"11165:11:136","nodeType":"FunctionDefinition","parameters":{"id":38837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38836,"mutability":"mutable","name":"_gauge","nameLocation":"11185:6:136","nodeType":"VariableDeclaration","scope":38905,"src":"11177:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38835,"name":"address","nodeType":"ElementaryTypeName","src":"11177:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11176:16:136"},"returnParameters":{"id":38840,"nodeType":"ParameterList","parameters":[],"src":"11215:0:136"},"scope":39048,"src":"11156:595:136","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34360],"body":{"id":38915,"nodeType":"Block","src":"11811:36:136","statements":[{"expression":{"arguments":[{"id":38912,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38907,"src":"11833:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38911,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38905,"src":"11821:11:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11821:19:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38914,"nodeType":"ExpressionStatement","src":"11821:19:136"}]},"functionSelector":"63453ae1","id":38916,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"11766:10:136","nodeType":"FunctionDefinition","overrides":{"id":38909,"nodeType":"OverrideSpecifier","overrides":[],"src":"11802:8:136"},"parameters":{"id":38908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38907,"mutability":"mutable","name":"_gauge","nameLocation":"11785:6:136","nodeType":"VariableDeclaration","scope":38916,"src":"11777:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38906,"name":"address","nodeType":"ElementaryTypeName","src":"11777:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11776:16:136"},"returnParameters":{"id":38910,"nodeType":"ParameterList","parameters":[],"src":"11811:0:136"},"scope":39048,"src":"11757:90:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38925,"nodeType":"Block","src":"11880:44:136","statements":[{"expression":{"arguments":[{"hexValue":"30","id":38920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11901:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":38921,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37701,"src":"11904:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11904:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38919,"name":"distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38964,"src":"11890:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":38923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11890:27:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38924,"nodeType":"ExpressionStatement","src":"11890:27:136"}]},"functionSelector":"47b3c6ba","id":38926,"implemented":true,"kind":"function","modifiers":[],"name":"distro","nameLocation":"11862:6:136","nodeType":"FunctionDefinition","parameters":{"id":38917,"nodeType":"ParameterList","parameters":[],"src":"11868:2:136"},"returnParameters":{"id":38918,"nodeType":"ParameterList","parameters":[],"src":"11880:0:136"},"scope":39048,"src":"11853:71:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38935,"nodeType":"Block","src":"11961:44:136","statements":[{"expression":{"arguments":[{"hexValue":"30","id":38930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11982:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":38931,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37701,"src":"11985:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11985:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38929,"name":"distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38964,"src":"11971:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":38933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11971:27:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38934,"nodeType":"ExpressionStatement","src":"11971:27:136"}]},"functionSelector":"e4fc6b6d","id":38936,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"11939:10:136","nodeType":"FunctionDefinition","parameters":{"id":38927,"nodeType":"ParameterList","parameters":[],"src":"11949:2:136"},"returnParameters":{"id":38928,"nodeType":"ParameterList","parameters":[],"src":"11961:0:136"},"scope":39048,"src":"11930:75:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":38963,"nodeType":"Block","src":"12069:111:136","statements":[{"body":{"id":38961,"nodeType":"Block","src":"12120:54:136","statements":[{"expression":{"arguments":[{"baseExpression":{"id":38954,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37705,"src":"12146:6:136","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":38958,"indexExpression":{"baseExpression":{"id":38955,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37701,"src":"12153:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38957,"indexExpression":{"id":38956,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38944,"src":"12159:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12153:8:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12146:16:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38953,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38905,"src":"12134:11:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12134:29:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38960,"nodeType":"ExpressionStatement","src":"12134:29:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38947,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38944,"src":"12103:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38948,"name":"finish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38940,"src":"12107:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12103:10:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38962,"initializationExpression":{"assignments":[38944],"declarations":[{"constant":false,"id":38944,"mutability":"mutable","name":"x","nameLocation":"12092:1:136","nodeType":"VariableDeclaration","scope":38962,"src":"12084:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38943,"name":"uint256","nodeType":"ElementaryTypeName","src":"12084:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38946,"initialValue":{"id":38945,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38938,"src":"12096:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12084:17:136"},"loopExpression":{"expression":{"id":38951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12115:3:136","subExpression":{"id":38950,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38944,"src":"12115:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38952,"nodeType":"ExpressionStatement","src":"12115:3:136"},"nodeType":"ForStatement","src":"12079:95:136"}]},"functionSelector":"7625391a","id":38964,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"12020:10:136","nodeType":"FunctionDefinition","parameters":{"id":38941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38938,"mutability":"mutable","name":"start","nameLocation":"12039:5:136","nodeType":"VariableDeclaration","scope":38964,"src":"12031:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38937,"name":"uint256","nodeType":"ElementaryTypeName","src":"12031:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38940,"mutability":"mutable","name":"finish","nameLocation":"12054:6:136","nodeType":"VariableDeclaration","scope":38964,"src":"12046:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38939,"name":"uint256","nodeType":"ElementaryTypeName","src":"12046:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12030:31:136"},"returnParameters":{"id":38942,"nodeType":"ParameterList","parameters":[],"src":"12069:0:136"},"scope":39048,"src":"12011:169:136","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":38989,"nodeType":"Block","src":"12241:109:136","statements":[{"body":{"id":38987,"nodeType":"Block","src":"12296:48:136","statements":[{"expression":{"arguments":[{"baseExpression":{"id":38982,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38967,"src":"12322:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38984,"indexExpression":{"id":38983,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38971,"src":"12330:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12322:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38981,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38905,"src":"12310:11:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":38985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12310:23:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38986,"nodeType":"ExpressionStatement","src":"12310:23:136"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38974,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38971,"src":"12271:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":38975,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38967,"src":"12275:7:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":38976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12275:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12271:18:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38988,"initializationExpression":{"assignments":[38971],"declarations":[{"constant":false,"id":38971,"mutability":"mutable","name":"x","nameLocation":"12264:1:136","nodeType":"VariableDeclaration","scope":38988,"src":"12256:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38970,"name":"uint256","nodeType":"ElementaryTypeName","src":"12256:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38973,"initialValue":{"hexValue":"30","id":38972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12268:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12256:13:136"},"loopExpression":{"expression":{"id":38979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12291:3:136","subExpression":{"id":38978,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38971,"src":"12291:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38980,"nodeType":"ExpressionStatement","src":"12291:3:136"},"nodeType":"ForStatement","src":"12251:93:136"}]},"functionSelector":"6138889b","id":38990,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"12195:10:136","nodeType":"FunctionDefinition","parameters":{"id":38968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38967,"mutability":"mutable","name":"_gauges","nameLocation":"12223:7:136","nodeType":"VariableDeclaration","scope":38990,"src":"12206:24:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38965,"name":"address","nodeType":"ElementaryTypeName","src":"12206:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38966,"nodeType":"ArrayTypeName","src":"12206:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12205:26:136"},"returnParameters":{"id":38969,"nodeType":"ParameterList","parameters":[],"src":"12241:0:136"},"scope":39048,"src":"12186:164:136","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":39046,"nodeType":"Block","src":"12486:429:136","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39002,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38992,"src":"12504:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"12504:10:136","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12504:17:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":39005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12524:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12504:21:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e20636f6465","id":39007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12527:20:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""},"value":"invalid token code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""}],"id":39001,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12496:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12496:52:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39009,"nodeType":"ExpressionStatement","src":"12496:52:136"},{"assignments":[39011,39013],"declarations":[{"constant":false,"id":39011,"mutability":"mutable","name":"success","nameLocation":"12564:7:136","nodeType":"VariableDeclaration","scope":39046,"src":"12559:12:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39010,"name":"bool","nodeType":"ElementaryTypeName","src":"12559:4:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39013,"mutability":"mutable","name":"data","nameLocation":"12586:4:136","nodeType":"VariableDeclaration","scope":39046,"src":"12573:17:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39012,"name":"bytes","nodeType":"ElementaryTypeName","src":"12573:5:136","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":39026,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":39018,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"12658:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":39019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"12658:19:136","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transferFrom(address,address,uint256) returns (bool)"}},"id":39020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"12658:28:136","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":39021,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38994,"src":"12704:4:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39022,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38996,"src":"12726:2:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39023,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"12746:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39016,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12618:3:136","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"12618:22:136","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":39024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12618:147:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39014,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38992,"src":"12594:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"12594:10:136","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":39025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12594:181:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12558:217:136"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39028,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39011,"src":"12806:7:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39029,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39013,"src":"12818:4:136","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12818:11:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12833:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12818:16:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":39035,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39013,"src":"12849:4:136","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":39037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12856:4:136","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":39036,"name":"bool","nodeType":"ElementaryTypeName","src":"12856:4:136","typeDescriptions":{}}}],"id":39038,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12855:6:136","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":39033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12838:3:136","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"12838:10:136","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":39039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12838:24:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12818:44:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39041,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12817:46:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12806:57:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e7366657246726f6d206661696c6564","id":39043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12877:21:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""},"value":"transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""}],"id":39027,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12785:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12785:123:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39045,"nodeType":"ExpressionStatement","src":"12785:123:136"}]},"id":39047,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"12365:17:136","nodeType":"FunctionDefinition","parameters":{"id":38999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38992,"mutability":"mutable","name":"token","nameLocation":"12400:5:136","nodeType":"VariableDeclaration","scope":39047,"src":"12392:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38991,"name":"address","nodeType":"ElementaryTypeName","src":"12392:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38994,"mutability":"mutable","name":"from","nameLocation":"12423:4:136","nodeType":"VariableDeclaration","scope":39047,"src":"12415:12:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38993,"name":"address","nodeType":"ElementaryTypeName","src":"12415:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38996,"mutability":"mutable","name":"to","nameLocation":"12445:2:136","nodeType":"VariableDeclaration","scope":39047,"src":"12437:10:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38995,"name":"address","nodeType":"ElementaryTypeName","src":"12437:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38998,"mutability":"mutable","name":"value","nameLocation":"12465:5:136","nodeType":"VariableDeclaration","scope":39047,"src":"12457:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38997,"name":"uint256","nodeType":"ElementaryTypeName","src":"12457:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12382:94:136"},"returnParameters":{"id":39000,"nodeType":"ParameterList","parameters":[],"src":"12486:0:136"},"scope":39048,"src":"12356:559:136","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":39049,"src":"897:12020:136","usedErrors":[]}],"src":"33:12885:136"},"id":136},"contracts/voter/BaseV2Voter.sol":{"ast":{"absolutePath":"contracts/voter/BaseV2Voter.sol","exportedSymbols":{"BaseV2Voter":[40351],"EIP712":[9813],"IBribeFactory":[33892],"IBribeV2":[33971],"IERC20":[5767],"IEmissionController":[33981],"IGauge":[34110],"IGaugeVoterV2":[34597],"INFTStaker":[35022],"IRegistry":[35522],"IUniswapV2Pair":[35682],"Math":[10353],"Ownable":[655],"ReentrancyGuard":[5062],"Votes":[4735]},"id":40352,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":39050,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:137"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","id":39052,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":4739,"src":"58:69:137","symbolAliases":[{"foreign":{"id":39051,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"src":"66:6:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":39054,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":10354,"src":"128:65:137","symbolAliases":[{"foreign":{"id":39053,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"src":"136:4:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":39056,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":656,"src":"194:67:137","symbolAliases":[{"foreign":{"id":39055,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"src":"202:7:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":39058,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":5063,"src":"262:85:137","symbolAliases":[{"foreign":{"id":39057,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"src":"270:15:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/Votes.sol","file":"@openzeppelin/contracts/governance/utils/Votes.sol","id":39061,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":4736,"src":"348:81:137","symbolAliases":[{"foreign":{"id":39059,"name":"EIP712","nodeType":"Identifier","overloadedDeclarations":[],"src":"356:6:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39060,"name":"Votes","nodeType":"Identifier","overloadedDeclarations":[],"src":"364:5:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribeV2.sol","file":"../interfaces/IBribeV2.sol","id":39063,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":33972,"src":"431:52:137","symbolAliases":[{"foreign":{"id":39062,"name":"IBribeV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"439:8:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IBribeFactory.sol","file":"../interfaces/IBribeFactory.sol","id":39065,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":33893,"src":"484:62:137","symbolAliases":[{"foreign":{"id":39064,"name":"IBribeFactory","nodeType":"Identifier","overloadedDeclarations":[],"src":"492:13:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEmissionController.sol","file":"../interfaces/IEmissionController.sol","id":39067,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":33982,"src":"547:74:137","symbolAliases":[{"foreign":{"id":39066,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"src":"555:19:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGauge.sol","file":"../interfaces/IGauge.sol","id":39069,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":34111,"src":"622:48:137","symbolAliases":[{"foreign":{"id":39068,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"src":"630:6:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGaugeVoterV2.sol","file":"../interfaces/IGaugeVoterV2.sol","id":39071,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":34598,"src":"671:62:137","symbolAliases":[{"foreign":{"id":39070,"name":"IGaugeVoterV2","nodeType":"Identifier","overloadedDeclarations":[],"src":"679:13:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRegistry.sol","file":"../interfaces/IRegistry.sol","id":39073,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":35523,"src":"734:54:137","symbolAliases":[{"foreign":{"id":39072,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"src":"742:9:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IUniswapV2Pair.sol","file":"../interfaces/IUniswapV2Pair.sol","id":39075,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":35683,"src":"789:64:137","symbolAliases":[{"foreign":{"id":39074,"name":"IUniswapV2Pair","nodeType":"Identifier","overloadedDeclarations":[],"src":"797:14:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/INFTStaker.sol","file":"../interfaces/INFTStaker.sol","id":39077,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":40352,"sourceUnit":35023,"src":"854:56:137","symbolAliases":[{"foreign":{"id":39076,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"src":"862:10:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":39079,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":5062,"src":"1189:15:137"},"id":39080,"nodeType":"InheritanceSpecifier","src":"1189:15:137"},{"baseName":{"id":39081,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":655,"src":"1206:7:137"},"id":39082,"nodeType":"InheritanceSpecifier","src":"1206:7:137"},{"baseName":{"id":39083,"name":"IGaugeVoterV2","nodeType":"IdentifierPath","referencedDeclaration":34597,"src":"1215:13:137"},"id":39084,"nodeType":"InheritanceSpecifier","src":"1215:13:137"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":39078,"nodeType":"StructuredDocumentation","src":"912:252:137","text":" This contract is an extension of the BaseV1Voter that was originally written by Andre.\n This contract allows delegation and captures voting power of a user overtime. This contract\n is also compatible with openzepplin's Governor contract."},"fullyImplemented":true,"id":40351,"linearizedBaseContracts":[40351,34597,655,8255,5062],"name":"BaseV2Voter","nameLocation":"1174:11:137","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[34498],"constant":false,"functionSelector":"7b103999","id":39088,"mutability":"immutable","name":"registry","nameLocation":"1271:8:137","nodeType":"VariableDeclaration","overrides":{"id":39087,"nodeType":"OverrideSpecifier","overrides":[],"src":"1262:8:137"},"scope":40351,"src":"1235:44:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"},"typeName":{"id":39086,"nodeType":"UserDefinedTypeName","pathNode":{"id":39085,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":35522,"src":"1235:9:137"},"referencedDeclaration":35522,"src":"1235:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"visibility":"public"},{"constant":true,"id":39091,"mutability":"constant","name":"DURATION","nameLocation":"1312:8:137","nodeType":"VariableDeclaration","scope":40351,"src":"1286:43:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39089,"name":"uint256","nodeType":"ElementaryTypeName","src":"1286:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":39090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1323:6:137","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"internal"},{"constant":false,"functionSelector":"96c82e57","id":39093,"mutability":"mutable","name":"totalWeight","nameLocation":"1387:11:137","nodeType":"VariableDeclaration","scope":40351,"src":"1372:26:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39092,"name":"uint256","nodeType":"ElementaryTypeName","src":"1372:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"ac4afa38","id":39096,"mutability":"mutable","name":"pools","nameLocation":"1445:5:137","nodeType":"VariableDeclaration","scope":40351,"src":"1428:22:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":39094,"name":"address","nodeType":"ElementaryTypeName","src":"1428:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39095,"nodeType":"ArrayTypeName","src":"1428:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"constant":false,"functionSelector":"b9a09fd5","id":39100,"mutability":"mutable","name":"gauges","nameLocation":"1526:6:137","nodeType":"VariableDeclaration","scope":40351,"src":"1491:41:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":39099,"keyType":{"id":39097,"name":"address","nodeType":"ElementaryTypeName","src":"1499:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1491:27:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":39098,"name":"address","nodeType":"ElementaryTypeName","src":"1510:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"06d6a1b2","id":39104,"mutability":"mutable","name":"poolForGauge","nameLocation":"1590:12:137","nodeType":"VariableDeclaration","scope":40351,"src":"1555:47:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":39103,"keyType":{"id":39101,"name":"address","nodeType":"ElementaryTypeName","src":"1563:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1555:27:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":39102,"name":"address","nodeType":"ElementaryTypeName","src":"1574:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"a8c5d95a","id":39108,"mutability":"mutable","name":"bribes","nameLocation":"1660:6:137","nodeType":"VariableDeclaration","scope":40351,"src":"1625:41:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":39107,"keyType":{"id":39105,"name":"address","nodeType":"ElementaryTypeName","src":"1633:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1625:27:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":39106,"name":"address","nodeType":"ElementaryTypeName","src":"1644:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"a7cac846","id":39112,"mutability":"mutable","name":"weights","nameLocation":"1724:7:137","nodeType":"VariableDeclaration","scope":40351,"src":"1690:41:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"},"typeName":{"id":39111,"keyType":{"id":39109,"name":"address","nodeType":"ElementaryTypeName","src":"1698:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1690:26:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"},"valueType":{"id":39110,"name":"int256","nodeType":"ElementaryTypeName","src":"1709:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},"visibility":"public"},{"constant":false,"functionSelector":"cad1b906","id":39118,"mutability":"mutable","name":"votes","nameLocation":"1809:5:137","nodeType":"VariableDeclaration","scope":40351,"src":"1755:59:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(address => mapping(address => int256))"},"typeName":{"id":39117,"keyType":{"id":39113,"name":"address","nodeType":"ElementaryTypeName","src":"1763:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1755:46:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(address => mapping(address => int256))"},"valueType":{"id":39116,"keyType":{"id":39114,"name":"address","nodeType":"ElementaryTypeName","src":"1782:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1774:26:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"},"valueType":{"id":39115,"name":"int256","nodeType":"ElementaryTypeName","src":"1793:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"c48f5af4","id":39123,"mutability":"mutable","name":"poolVote","nameLocation":"1881:8:137","nodeType":"VariableDeclaration","scope":40351,"src":"1844:45:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":39122,"keyType":{"id":39119,"name":"address","nodeType":"ElementaryTypeName","src":"1852:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1844:29:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueType":{"baseType":{"id":39120,"name":"address","nodeType":"ElementaryTypeName","src":"1863:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39121,"nodeType":"ArrayTypeName","src":"1863:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"constant":false,"functionSelector":"002f8de4","id":39127,"mutability":"mutable","name":"usedWeights","nameLocation":"1946:11:137","nodeType":"VariableDeclaration","scope":40351,"src":"1911:46:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":39126,"keyType":{"id":39124,"name":"address","nodeType":"ElementaryTypeName","src":"1919:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1911:27:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":39125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"aa79979b","id":39131,"mutability":"mutable","name":"isGauge","nameLocation":"2033:7:137","nodeType":"VariableDeclaration","scope":40351,"src":"2001:39:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":39130,"keyType":{"id":39128,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2001:24:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":39129,"name":"bool","nodeType":"ElementaryTypeName","src":"2020:4:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"9b19251a","id":39135,"mutability":"mutable","name":"whitelist","nameLocation":"2078:9:137","nodeType":"VariableDeclaration","scope":40351,"src":"2046:41:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":39134,"keyType":{"id":39132,"name":"address","nodeType":"ElementaryTypeName","src":"2054:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2046:24:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":39133,"name":"bool","nodeType":"ElementaryTypeName","src":"2065:4:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"baseFunctions":[34510],"constant":false,"functionSelector":"6405eacd","id":39140,"mutability":"mutable","name":"attachments","nameLocation":"2138:11:137","nodeType":"VariableDeclaration","overrides":{"id":39139,"nodeType":"OverrideSpecifier","overrides":[],"src":"2129:8:137"},"scope":40351,"src":"2094:55:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":39138,"keyType":{"id":39136,"name":"address","nodeType":"ElementaryTypeName","src":"2102:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2094:27:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":39137,"name":"uint256","nodeType":"ElementaryTypeName","src":"2113:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":39142,"mutability":"mutable","name":"index","nameLocation":"2173:5:137","nodeType":"VariableDeclaration","scope":40351,"src":"2156:22:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39141,"name":"uint256","nodeType":"ElementaryTypeName","src":"2156:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39146,"mutability":"mutable","name":"supplyIndex","nameLocation":"2221:11:137","nodeType":"VariableDeclaration","scope":40351,"src":"2184:48:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":39145,"keyType":{"id":39143,"name":"address","nodeType":"ElementaryTypeName","src":"2192:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2184:27:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":39144,"name":"uint256","nodeType":"ElementaryTypeName","src":"2203:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"functionSelector":"402914f5","id":39150,"mutability":"mutable","name":"claimable","nameLocation":"2273:9:137","nodeType":"VariableDeclaration","scope":40351,"src":"2238:44:137","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":39149,"keyType":{"id":39147,"name":"address","nodeType":"ElementaryTypeName","src":"2246:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2238:27:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":39148,"name":"uint256","nodeType":"ElementaryTypeName","src":"2257:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":39161,"nodeType":"Block","src":"2310:69:137","statements":[{"expression":{"arguments":[{"baseExpression":{"id":39153,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39131,"src":"2328:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39156,"indexExpression":{"expression":{"id":39154,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2336:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2336:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2328:19:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74206761756765","id":39157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2349:11:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141","typeString":"literal_string \"not gauge\""},"value":"not gauge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141","typeString":"literal_string \"not gauge\""}],"id":39152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2320:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2320:41:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39159,"nodeType":"ExpressionStatement","src":"2320:41:137"},{"id":39160,"nodeType":"PlaceholderStatement","src":"2371:1:137"}]},"id":39162,"name":"onlyGauge","nameLocation":"2298:9:137","nodeType":"ModifierDefinition","parameters":{"id":39151,"nodeType":"ParameterList","parameters":[],"src":"2307:2:137"},"src":"2289:90:137","virtual":false,"visibility":"internal"},{"body":{"id":39173,"nodeType":"Block","src":"2416:48:137","statements":[{"expression":{"id":39171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39167,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"2426:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39169,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39164,"src":"2447:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39168,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35522,"src":"2437:9:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$35522_$","typeString":"type(contract IRegistry)"}},"id":39170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2437:20:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"src":"2426:31:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39172,"nodeType":"ExpressionStatement","src":"2426:31:137"}]},"id":39174,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":39165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39164,"mutability":"mutable","name":"_registry","nameLocation":"2405:9:137","nodeType":"VariableDeclaration","scope":39174,"src":"2397:17:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39163,"name":"address","nodeType":"ElementaryTypeName","src":"2397:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2396:19:137"},"returnParameters":{"id":39166,"nodeType":"ParameterList","parameters":[],"src":"2416:0:137"},"scope":40351,"src":"2385:79:137","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34487],"body":{"id":39183,"nodeType":"Block","src":"2505:35:137","statements":[{"expression":{"arguments":[{"expression":{"id":39179,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2522:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2522:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39178,"name":"_reset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2515:6:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2515:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39182,"nodeType":"ExpressionStatement","src":"2515:18:137"}]},"functionSelector":"d826f88f","id":39184,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"2479:5:137","nodeType":"FunctionDefinition","overrides":{"id":39176,"nodeType":"OverrideSpecifier","overrides":[],"src":"2496:8:137"},"parameters":{"id":39175,"nodeType":"ParameterList","parameters":[],"src":"2484:2:137"},"returnParameters":{"id":39177,"nodeType":"ParameterList","parameters":[],"src":"2505:0:137"},"scope":40351,"src":"2470:70:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34492],"body":{"id":39204,"nodeType":"Block","src":"2595:101:137","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39191,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2613:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2613:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39193,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"2627:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"2627:15:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":39195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2627:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2613:31:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f74207374616b657220636f6e7472616374","id":39197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2646:21:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d8fd27f60f801392ed4a805e9a616b67fbe330600529fe4c44f4e6236c37150","typeString":"literal_string \"not staker contract\""},"value":"not staker contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3d8fd27f60f801392ed4a805e9a616b67fbe330600529fe4c44f4e6236c37150","typeString":"literal_string \"not staker contract\""}],"id":39190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2605:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2605:63:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39199,"nodeType":"ExpressionStatement","src":"2605:63:137"},{"expression":{"arguments":[{"id":39201,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39186,"src":"2685:3:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39200,"name":"_reset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2678:6:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2678:11:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39203,"nodeType":"ExpressionStatement","src":"2678:11:137"}]},"functionSelector":"20217176","id":39205,"implemented":true,"kind":"function","modifiers":[],"name":"resetFor","nameLocation":"2555:8:137","nodeType":"FunctionDefinition","overrides":{"id":39188,"nodeType":"OverrideSpecifier","overrides":[],"src":"2586:8:137"},"parameters":{"id":39187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39186,"mutability":"mutable","name":"who","nameLocation":"2572:3:137","nodeType":"VariableDeclaration","scope":39205,"src":"2564:11:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39185,"name":"address","nodeType":"ElementaryTypeName","src":"2564:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2563:13:137"},"returnParameters":{"id":39189,"nodeType":"ParameterList","parameters":[],"src":"2595:0:137"},"scope":40351,"src":"2546:150:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":39331,"nodeType":"Block","src":"2741:949:137","statements":[{"assignments":[39214],"declarations":[{"constant":false,"id":39214,"mutability":"mutable","name":"_poolVote","nameLocation":"2769:9:137","nodeType":"VariableDeclaration","scope":39331,"src":"2751:27:137","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39212,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39213,"nodeType":"ArrayTypeName","src":"2751:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":39218,"initialValue":{"baseExpression":{"id":39215,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39123,"src":"2781:8:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":39217,"indexExpression":{"id":39216,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"2790:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2781:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2751:44:137"},{"assignments":[39220],"declarations":[{"constant":false,"id":39220,"mutability":"mutable","name":"_poolVoteCnt","nameLocation":"2813:12:137","nodeType":"VariableDeclaration","scope":39331,"src":"2805:20:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39219,"name":"uint256","nodeType":"ElementaryTypeName","src":"2805:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39223,"initialValue":{"expression":{"id":39221,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2828:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":39222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2828:16:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2805:39:137"},{"assignments":[39225],"declarations":[{"constant":false,"id":39225,"mutability":"mutable","name":"_totalWeight","nameLocation":"2861:12:137","nodeType":"VariableDeclaration","scope":39331,"src":"2854:19:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39224,"name":"int256","nodeType":"ElementaryTypeName","src":"2854:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39227,"initialValue":{"hexValue":"30","id":39226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2876:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2854:23:137"},{"body":{"id":39311,"nodeType":"Block","src":"2931:645:137","statements":[{"assignments":[39239],"declarations":[{"constant":false,"id":39239,"mutability":"mutable","name":"_pool","nameLocation":"2953:5:137","nodeType":"VariableDeclaration","scope":39311,"src":"2945:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39238,"name":"address","nodeType":"ElementaryTypeName","src":"2945:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":39243,"initialValue":{"baseExpression":{"id":39240,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2961:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":39242,"indexExpression":{"id":39241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39229,"src":"2971:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2961:12:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2945:28:137"},{"assignments":[39245],"declarations":[{"constant":false,"id":39245,"mutability":"mutable","name":"_votes","nameLocation":"2994:6:137","nodeType":"VariableDeclaration","scope":39311,"src":"2987:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39244,"name":"int256","nodeType":"ElementaryTypeName","src":"2987:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39251,"initialValue":{"baseExpression":{"baseExpression":{"id":39246,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39118,"src":"3003:5:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(address => mapping(address => int256))"}},"id":39248,"indexExpression":{"id":39247,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"3009:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3003:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":39250,"indexExpression":{"id":39249,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39239,"src":"3015:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3003:18:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2987:34:137"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39252,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3040:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3050:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3040:11:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39310,"nodeType":"IfStatement","src":"3036:530:137","trueBody":{"id":39309,"nodeType":"Block","src":"3053:513:137","statements":[{"expression":{"arguments":[{"baseExpression":{"id":39256,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"3082:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39258,"indexExpression":{"id":39257,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39239,"src":"3089:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3082:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39255,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"3071:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3071:25:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39260,"nodeType":"ExpressionStatement","src":"3071:25:137"},{"expression":{"id":39265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39261,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39112,"src":"3114:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":39263,"indexExpression":{"id":39262,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39239,"src":"3122:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3114:14:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":39264,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3132:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3114:24:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39266,"nodeType":"ExpressionStatement","src":"3114:24:137"},{"expression":{"id":39273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":39267,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39118,"src":"3156:5:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(address => mapping(address => int256))"}},"id":39270,"indexExpression":{"id":39268,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"3162:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3156:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":39271,"indexExpression":{"id":39269,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39239,"src":"3168:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3156:18:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":39272,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3178:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3156:28:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39274,"nodeType":"ExpressionStatement","src":"3156:28:137"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39275,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3206:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":39276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3215:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3206:10:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":39302,"nodeType":"Block","src":"3443:63:137","statements":[{"expression":{"id":39300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39298,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39225,"src":"3465:12:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":39299,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3481:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3465:22:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39301,"nodeType":"ExpressionStatement","src":"3465:22:137"}]},"id":39303,"nodeType":"IfStatement","src":"3202:304:137","trueBody":{"id":39297,"nodeType":"Block","src":"3218:219:137","statements":[{"expression":{"arguments":[{"arguments":[{"id":39288,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3315:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3307:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39286,"name":"uint256","nodeType":"ElementaryTypeName","src":"3307:7:137","typeDescriptions":{}}},"id":39289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3307:15:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39290,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"3348:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":39279,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"3249:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39283,"indexExpression":{"baseExpression":{"id":39280,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"3256:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39282,"indexExpression":{"id":39281,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39239,"src":"3263:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3256:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3249:21:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39278,"name":"IBribeV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33971,"src":"3240:8:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBribeV2_$33971_$","typeString":"type(contract IBribeV2)"}},"id":39284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3240:31:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBribeV2_$33971","typeString":"contract IBribeV2"}},"id":39285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_withdraw","nodeType":"MemberAccess","referencedDeclaration":33930,"src":"3240:41:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":39291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3240:134:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39292,"nodeType":"ExpressionStatement","src":"3240:134:137"},{"expression":{"id":39295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39293,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39225,"src":"3396:12:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":39294,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3412:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3396:22:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39296,"nodeType":"ExpressionStatement","src":"3396:22:137"}]}},{"eventCall":{"arguments":[{"id":39305,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"3538:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39306,"name":"_votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39245,"src":"3544:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39304,"name":"Abstained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"3528:9:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_int256_$returns$__$","typeString":"function (address,int256)"}},"id":39307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3528:23:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39308,"nodeType":"EmitStatement","src":"3523:28:137"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39229,"src":"2908:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39233,"name":"_poolVoteCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39220,"src":"2912:12:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2908:16:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39312,"initializationExpression":{"assignments":[39229],"declarations":[{"constant":false,"id":39229,"mutability":"mutable","name":"i","nameLocation":"2901:1:137","nodeType":"VariableDeclaration","scope":39312,"src":"2893:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39228,"name":"uint256","nodeType":"ElementaryTypeName","src":"2893:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39231,"initialValue":{"hexValue":"30","id":39230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2905:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2893:13:137"},"loopExpression":{"expression":{"id":39236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2926:3:137","subExpression":{"id":39235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39229,"src":"2926:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39237,"nodeType":"ExpressionStatement","src":"2926:3:137"},"nodeType":"ForStatement","src":"2888:688:137"},{"expression":{"id":39318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39313,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"3585:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":39316,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39225,"src":"3608:12:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3600:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39314,"name":"uint256","nodeType":"ElementaryTypeName","src":"3600:7:137","typeDescriptions":{}}},"id":39317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3600:21:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3585:36:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39319,"nodeType":"ExpressionStatement","src":"3585:36:137"},{"expression":{"id":39324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39320,"name":"usedWeights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39127,"src":"3631:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":39322,"indexExpression":{"id":39321,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"3643:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3631:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":39323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3651:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3631:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39325,"nodeType":"ExpressionStatement","src":"3631:21:137"},{"expression":{"id":39329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3662:21:137","subExpression":{"baseExpression":{"id":39326,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39123,"src":"3669:8:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":39328,"indexExpression":{"id":39327,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"3678:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3669:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39330,"nodeType":"ExpressionStatement","src":"3662:21:137"}]},"id":39332,"implemented":true,"kind":"function","modifiers":[],"name":"_reset","nameLocation":"2711:6:137","nodeType":"FunctionDefinition","parameters":{"id":39208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39207,"mutability":"mutable","name":"_who","nameLocation":"2726:4:137","nodeType":"VariableDeclaration","scope":39332,"src":"2718:12:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39206,"name":"address","nodeType":"ElementaryTypeName","src":"2718:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2717:14:137"},"returnParameters":{"id":39209,"nodeType":"ParameterList","parameters":[],"src":"2741:0:137"},"scope":40351,"src":"2702:988:137","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":39392,"nodeType":"Block","src":"3733:320:137","statements":[{"assignments":[39341],"declarations":[{"constant":false,"id":39341,"mutability":"mutable","name":"_poolVote","nameLocation":"3760:9:137","nodeType":"VariableDeclaration","scope":39392,"src":"3743:26:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39339,"name":"address","nodeType":"ElementaryTypeName","src":"3743:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39340,"nodeType":"ArrayTypeName","src":"3743:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":39345,"initialValue":{"baseExpression":{"id":39342,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39123,"src":"3772:8:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":39344,"indexExpression":{"id":39343,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39334,"src":"3781:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3772:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3743:43:137"},{"assignments":[39347],"declarations":[{"constant":false,"id":39347,"mutability":"mutable","name":"_poolCnt","nameLocation":"3804:8:137","nodeType":"VariableDeclaration","scope":39392,"src":"3796:16:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39346,"name":"uint256","nodeType":"ElementaryTypeName","src":"3796:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39350,"initialValue":{"expression":{"id":39348,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39341,"src":"3815:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":39349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3815:16:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3796:35:137"},{"assignments":[39355],"declarations":[{"constant":false,"id":39355,"mutability":"mutable","name":"_weights","nameLocation":"3857:8:137","nodeType":"VariableDeclaration","scope":39392,"src":"3841:24:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":39353,"name":"int256","nodeType":"ElementaryTypeName","src":"3841:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39354,"nodeType":"ArrayTypeName","src":"3841:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"id":39361,"initialValue":{"arguments":[{"id":39359,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"3881:8:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3868:12:137","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (int256[] memory)"},"typeName":{"baseType":{"id":39356,"name":"int256","nodeType":"ElementaryTypeName","src":"3872:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39357,"nodeType":"ArrayTypeName","src":"3872:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}}},"id":39360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3868:22:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3841:49:137"},{"body":{"id":39384,"nodeType":"Block","src":"3940:64:137","statements":[{"expression":{"id":39382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39372,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39355,"src":"3954:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":39374,"indexExpression":{"id":39373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39363,"src":"3963:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3954:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":39375,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39118,"src":"3968:5:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(address => mapping(address => int256))"}},"id":39377,"indexExpression":{"id":39376,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39334,"src":"3974:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3968:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":39381,"indexExpression":{"baseExpression":{"id":39378,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39341,"src":"3980:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":39380,"indexExpression":{"id":39379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39363,"src":"3990:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3980:12:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3968:25:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3954:39:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39383,"nodeType":"ExpressionStatement","src":"3954:39:137"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39366,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39363,"src":"3921:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39367,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"3925:8:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3921:12:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39385,"initializationExpression":{"assignments":[39363],"declarations":[{"constant":false,"id":39363,"mutability":"mutable","name":"i","nameLocation":"3914:1:137","nodeType":"VariableDeclaration","scope":39385,"src":"3906:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39362,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39365,"initialValue":{"hexValue":"30","id":39364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3918:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3906:13:137"},"loopExpression":{"expression":{"id":39370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3935:3:137","subExpression":{"id":39369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39363,"src":"3935:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39371,"nodeType":"ExpressionStatement","src":"3935:3:137"},"nodeType":"ForStatement","src":"3901:103:137"},{"expression":{"arguments":[{"id":39387,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39334,"src":"4020:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39388,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39341,"src":"4026:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":39389,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39355,"src":"4037:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":39386,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39611,"src":"4014:5:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address[] memory,int256[] memory)"}},"id":39390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4014:32:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39391,"nodeType":"ExpressionStatement","src":"4014:32:137"}]},"functionSelector":"b1a997ac","id":39393,"implemented":true,"kind":"function","modifiers":[],"name":"poke","nameLocation":"3705:4:137","nodeType":"FunctionDefinition","parameters":{"id":39335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39334,"mutability":"mutable","name":"_who","nameLocation":"3718:4:137","nodeType":"VariableDeclaration","scope":39393,"src":"3710:12:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39333,"name":"address","nodeType":"ElementaryTypeName","src":"3710:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3709:14:137"},"returnParameters":{"id":39336,"nodeType":"ParameterList","parameters":[],"src":"3733:0:137"},"scope":40351,"src":"3696:357:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":39610,"nodeType":"Block","src":"4181:1548:137","statements":[{"expression":{"arguments":[{"id":39405,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"4198:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39404,"name":"_reset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"4191:6:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4191:12:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39407,"nodeType":"ExpressionStatement","src":"4191:12:137"},{"assignments":[39409],"declarations":[{"constant":false,"id":39409,"mutability":"mutable","name":"_poolCnt","nameLocation":"4222:8:137","nodeType":"VariableDeclaration","scope":39610,"src":"4214:16:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39408,"name":"uint256","nodeType":"ElementaryTypeName","src":"4214:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39412,"initialValue":{"expression":{"id":39410,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39398,"src":"4233:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":39411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4233:16:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4214:35:137"},{"assignments":[39415],"declarations":[{"constant":false,"id":39415,"mutability":"mutable","name":"staker","nameLocation":"4271:6:137","nodeType":"VariableDeclaration","scope":39610,"src":"4260:17:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"},"typeName":{"id":39414,"nodeType":"UserDefinedTypeName","pathNode":{"id":39413,"name":"INFTStaker","nodeType":"IdentifierPath","referencedDeclaration":35022,"src":"4260:10:137"},"referencedDeclaration":35022,"src":"4260:10:137","typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"visibility":"internal"}],"id":39421,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39417,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"4291:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staker","nodeType":"MemberAccess","referencedDeclaration":35465,"src":"4291:15:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":39419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4291:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39416,"name":"INFTStaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"4280:10:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INFTStaker_$35022_$","typeString":"type(contract INFTStaker)"}},"id":39420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4280:29:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"nodeType":"VariableDeclarationStatement","src":"4260:49:137"},{"assignments":[39423],"declarations":[{"constant":false,"id":39423,"mutability":"mutable","name":"_weight","nameLocation":"4326:7:137","nodeType":"VariableDeclaration","scope":39610,"src":"4319:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39422,"name":"int256","nodeType":"ElementaryTypeName","src":"4319:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39431,"initialValue":{"arguments":[{"arguments":[{"id":39428,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"4367:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39426,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39415,"src":"4343:6:137","typeDescriptions":{"typeIdentifier":"t_contract$_INFTStaker_$35022","typeString":"contract INFTStaker"}},"id":39427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getStakedBalance","nodeType":"MemberAccess","referencedDeclaration":34973,"src":"4343:23:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":39429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4343:29:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:6:137","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39424,"name":"int256","nodeType":"ElementaryTypeName","src":"4336:6:137","typeDescriptions":{}}},"id":39430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4336:37:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4319:54:137"},{"assignments":[39433],"declarations":[{"constant":false,"id":39433,"mutability":"mutable","name":"_totalVoteWeight","nameLocation":"4390:16:137","nodeType":"VariableDeclaration","scope":39610,"src":"4383:23:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39432,"name":"int256","nodeType":"ElementaryTypeName","src":"4383:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39435,"initialValue":{"hexValue":"30","id":39434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4409:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4383:27:137"},{"assignments":[39437],"declarations":[{"constant":false,"id":39437,"mutability":"mutable","name":"_totalWeight","nameLocation":"4427:12:137","nodeType":"VariableDeclaration","scope":39610,"src":"4420:19:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39436,"name":"int256","nodeType":"ElementaryTypeName","src":"4420:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39439,"initialValue":{"hexValue":"30","id":39438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4442:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4420:23:137"},{"assignments":[39441],"declarations":[{"constant":false,"id":39441,"mutability":"mutable","name":"_usedWeight","nameLocation":"4460:11:137","nodeType":"VariableDeclaration","scope":39610,"src":"4453:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39440,"name":"int256","nodeType":"ElementaryTypeName","src":"4453:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39443,"initialValue":{"hexValue":"30","id":39442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4474:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4453:22:137"},{"body":{"id":39470,"nodeType":"Block","src":"4525:89:137","statements":[{"expression":{"id":39468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39454,"name":"_totalVoteWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39433,"src":"4539:16:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":39455,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39401,"src":"4559:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":39457,"indexExpression":{"id":39456,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39445,"src":"4568:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4559:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":39458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4559:15:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":39466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4591:12:137","subExpression":{"baseExpression":{"id":39463,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39401,"src":"4592:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":39465,"indexExpression":{"id":39464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39445,"src":"4601:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4592:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4559:44:137","trueExpression":{"baseExpression":{"id":39460,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39401,"src":"4577:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":39462,"indexExpression":{"id":39461,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39445,"src":"4586:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4577:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4539:64:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39469,"nodeType":"ExpressionStatement","src":"4539:64:137"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39448,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39445,"src":"4506:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39449,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39409,"src":"4510:8:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4506:12:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39471,"initializationExpression":{"assignments":[39445],"declarations":[{"constant":false,"id":39445,"mutability":"mutable","name":"i","nameLocation":"4499:1:137","nodeType":"VariableDeclaration","scope":39471,"src":"4491:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39444,"name":"uint256","nodeType":"ElementaryTypeName","src":"4491:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39447,"initialValue":{"hexValue":"30","id":39446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4503:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4491:13:137"},"loopExpression":{"expression":{"id":39452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4520:3:137","subExpression":{"id":39451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39445,"src":"4520:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39453,"nodeType":"ExpressionStatement","src":"4520:3:137"},"nodeType":"ForStatement","src":"4486:128:137"},{"body":{"id":39592,"nodeType":"Block","src":"4663:963:137","statements":[{"assignments":[39483],"declarations":[{"constant":false,"id":39483,"mutability":"mutable","name":"_pool","nameLocation":"4685:5:137","nodeType":"VariableDeclaration","scope":39592,"src":"4677:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39482,"name":"address","nodeType":"ElementaryTypeName","src":"4677:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":39487,"initialValue":{"baseExpression":{"id":39484,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39398,"src":"4693:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":39486,"indexExpression":{"id":39485,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39473,"src":"4703:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4693:12:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4677:28:137"},{"assignments":[39489],"declarations":[{"constant":false,"id":39489,"mutability":"mutable","name":"_gauge","nameLocation":"4727:6:137","nodeType":"VariableDeclaration","scope":39592,"src":"4719:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39488,"name":"address","nodeType":"ElementaryTypeName","src":"4719:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":39493,"initialValue":{"baseExpression":{"id":39490,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"4736:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39492,"indexExpression":{"id":39491,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39483,"src":"4743:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4736:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4719:30:137"},{"condition":{"baseExpression":{"id":39494,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39131,"src":"4768:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39496,"indexExpression":{"id":39495,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39489,"src":"4776:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4768:15:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39591,"nodeType":"IfStatement","src":"4764:852:137","trueBody":{"id":39590,"nodeType":"Block","src":"4785:831:137","statements":[{"assignments":[39498],"declarations":[{"constant":false,"id":39498,"mutability":"mutable","name":"_poolWeight","nameLocation":"4810:11:137","nodeType":"VariableDeclaration","scope":39590,"src":"4803:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39497,"name":"int256","nodeType":"ElementaryTypeName","src":"4803:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39507,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":39499,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39401,"src":"4825:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"id":39501,"indexExpression":{"id":39500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39473,"src":"4834:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4825:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":39502,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39423,"src":"4839:7:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4825:21:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":39504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4824:23:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":39505,"name":"_totalVoteWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39433,"src":"4850:16:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4824:42:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4803:63:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":39509,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39118,"src":"4892:5:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(address => mapping(address => int256))"}},"id":39511,"indexExpression":{"id":39510,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"4898:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4892:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":39513,"indexExpression":{"id":39512,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39483,"src":"4904:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4892:18:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4914:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4892:23:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"766f746573203d2030","id":39516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4917:11:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480","typeString":"literal_string \"votes = 0\""},"value":"votes = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480","typeString":"literal_string \"votes = 0\""}],"id":39508,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4884:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4884:45:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39518,"nodeType":"ExpressionStatement","src":"4884:45:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39520,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"4955:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4970:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4955:16:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f6f6c776569676874203d2030","id":39523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4973:16:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373","typeString":"literal_string \"poolweight = 0\""},"value":"poolweight = 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373","typeString":"literal_string \"poolweight = 0\""}],"id":39519,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4947:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4947:43:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39525,"nodeType":"ExpressionStatement","src":"4947:43:137"},{"expression":{"arguments":[{"id":39527,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39489,"src":"5019:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39526,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"5008:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5008:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39529,"nodeType":"ExpressionStatement","src":"5008:18:137"},{"expression":{"arguments":[{"id":39534,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39483,"src":"5065:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":39530,"name":"poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39123,"src":"5045:8:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":39532,"indexExpression":{"id":39531,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"5054:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5045:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":39533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5045:19:137","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":39535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5045:26:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39536,"nodeType":"ExpressionStatement","src":"5045:26:137"},{"expression":{"id":39541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39537,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39112,"src":"5090:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":39539,"indexExpression":{"id":39538,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39483,"src":"5098:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5090:14:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":39540,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5108:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5090:29:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39542,"nodeType":"ExpressionStatement","src":"5090:29:137"},{"expression":{"id":39549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":39543,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39118,"src":"5137:5:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_int256_$_$","typeString":"mapping(address => mapping(address => int256))"}},"id":39546,"indexExpression":{"id":39544,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"5143:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5137:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":39547,"indexExpression":{"id":39545,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39483,"src":"5149:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5137:18:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":39548,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5159:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5137:33:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39550,"nodeType":"ExpressionStatement","src":"5137:33:137"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39551,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5192:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":39552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5206:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5192:15:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":39573,"nodeType":"Block","src":"5387:67:137","statements":[{"expression":{"id":39571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39568,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5409:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5423:12:137","subExpression":{"id":39569,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5424:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5409:26:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39572,"nodeType":"ExpressionStatement","src":"5409:26:137"}]},"id":39574,"nodeType":"IfStatement","src":"5188:266:137","trueBody":{"id":39567,"nodeType":"Block","src":"5209:172:137","statements":[{"expression":{"arguments":[{"arguments":[{"id":39562,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5298:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5290:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39560,"name":"uint256","nodeType":"ElementaryTypeName","src":"5290:7:137","typeDescriptions":{}}},"id":39563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5290:20:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39564,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"5336:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":39555,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"5240:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39557,"indexExpression":{"id":39556,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39489,"src":"5247:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5240:14:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39554,"name":"IBribeV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33971,"src":"5231:8:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBribeV2_$33971_$","typeString":"type(contract IBribeV2)"}},"id":39558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5231:24:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBribeV2_$33971","typeString":"contract IBribeV2"}},"id":39559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_deposit","nodeType":"MemberAccess","referencedDeclaration":33923,"src":"5231:33:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":39565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5231:131:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39566,"nodeType":"ExpressionStatement","src":"5231:131:137"}]}},{"expression":{"id":39577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39575,"name":"_usedWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39441,"src":"5471:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":39576,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5486:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5471:26:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39578,"nodeType":"ExpressionStatement","src":"5471:26:137"},{"expression":{"id":39581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39579,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39437,"src":"5515:12:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":39580,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5531:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5515:27:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39582,"nodeType":"ExpressionStatement","src":"5515:27:137"},{"eventCall":{"arguments":[{"expression":{"id":39584,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5571:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5571:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39586,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"5583:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39587,"name":"_poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39498,"src":"5589:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39583,"name":"Voted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34538,"src":"5565:5:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_int256_$returns$__$","typeString":"function (address,address,int256)"}},"id":39588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5565:36:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39589,"nodeType":"EmitStatement","src":"5560:41:137"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39473,"src":"4644:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39477,"name":"_poolCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39409,"src":"4648:8:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4644:12:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39593,"initializationExpression":{"assignments":[39473],"declarations":[{"constant":false,"id":39473,"mutability":"mutable","name":"i","nameLocation":"4637:1:137","nodeType":"VariableDeclaration","scope":39593,"src":"4629:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39472,"name":"uint256","nodeType":"ElementaryTypeName","src":"4629:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39475,"initialValue":{"hexValue":"30","id":39474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4641:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4629:13:137"},"loopExpression":{"expression":{"id":39480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4658:3:137","subExpression":{"id":39479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39473,"src":"4658:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39481,"nodeType":"ExpressionStatement","src":"4658:3:137"},"nodeType":"ForStatement","src":"4624:1002:137"},{"expression":{"id":39599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39594,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"5636:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":39597,"name":"_totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39437,"src":"5659:12:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5651:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39595,"name":"uint256","nodeType":"ElementaryTypeName","src":"5651:7:137","typeDescriptions":{}}},"id":39598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5651:21:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5636:36:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39600,"nodeType":"ExpressionStatement","src":"5636:36:137"},{"expression":{"id":39608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39601,"name":"usedWeights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39127,"src":"5682:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":39603,"indexExpression":{"id":39602,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39395,"src":"5694:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5682:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39606,"name":"_usedWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39441,"src":"5710:11:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5702:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39604,"name":"uint256","nodeType":"ElementaryTypeName","src":"5702:7:137","typeDescriptions":{}}},"id":39607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5702:20:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5682:40:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39609,"nodeType":"ExpressionStatement","src":"5682:40:137"}]},"id":39611,"implemented":true,"kind":"function","modifiers":[],"name":"_vote","nameLocation":"4068:5:137","nodeType":"FunctionDefinition","parameters":{"id":39402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39395,"mutability":"mutable","name":"_who","nameLocation":"4091:4:137","nodeType":"VariableDeclaration","scope":39611,"src":"4083:12:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39394,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39398,"mutability":"mutable","name":"_poolVote","nameLocation":"4122:9:137","nodeType":"VariableDeclaration","scope":39611,"src":"4105:26:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39396,"name":"address","nodeType":"ElementaryTypeName","src":"4105:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39397,"nodeType":"ArrayTypeName","src":"4105:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":39401,"mutability":"mutable","name":"_weights","nameLocation":"4157:8:137","nodeType":"VariableDeclaration","scope":39611,"src":"4141:24:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":39399,"name":"int256","nodeType":"ElementaryTypeName","src":"4141:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39400,"nodeType":"ArrayTypeName","src":"4141:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4073:98:137"},"returnParameters":{"id":39403,"nodeType":"ParameterList","parameters":[],"src":"4181:0:137"},"scope":40351,"src":"4059:1670:137","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":39636,"nodeType":"Block","src":"5828:128:137","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39621,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39614,"src":"5846:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":39622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5846:16:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39623,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39617,"src":"5866:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[] calldata"}},"id":39624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5866:15:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5846:35:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642077656967687473","id":39626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5883:17:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289","typeString":"literal_string \"invalid weights\""},"value":"invalid weights"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289","typeString":"literal_string \"invalid weights\""}],"id":39620,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5838:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5838:63:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39628,"nodeType":"ExpressionStatement","src":"5838:63:137"},{"expression":{"arguments":[{"expression":{"id":39630,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5917:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5917:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39632,"name":"_poolVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39614,"src":"5929:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":39633,"name":"_weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39617,"src":"5940:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[] calldata"}],"id":39629,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39611,"src":"5911:5:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address[] memory,int256[] memory)"}},"id":39634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5911:38:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39635,"nodeType":"ExpressionStatement","src":"5911:38:137"}]},"functionSelector":"2efce57b","id":39637,"implemented":true,"kind":"function","modifiers":[],"name":"vote","nameLocation":"5744:4:137","nodeType":"FunctionDefinition","parameters":{"id":39618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39614,"mutability":"mutable","name":"_poolVote","nameLocation":"5768:9:137","nodeType":"VariableDeclaration","scope":39637,"src":"5749:28:137","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39612,"name":"address","nodeType":"ElementaryTypeName","src":"5749:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39613,"nodeType":"ArrayTypeName","src":"5749:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":39617,"mutability":"mutable","name":"_weights","nameLocation":"5797:8:137","nodeType":"VariableDeclaration","scope":39637,"src":"5779:26:137","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":39615,"name":"int256","nodeType":"ElementaryTypeName","src":"5779:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39616,"nodeType":"ArrayTypeName","src":"5779:8:137","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"5748:58:137"},"returnParameters":{"id":39619,"nodeType":"ParameterList","parameters":[],"src":"5828:0:137"},"scope":40351,"src":"5735:221:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":39662,"nodeType":"Block","src":"6020:112:137","statements":[{"expression":{"id":39651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39644,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"6030:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39646,"indexExpression":{"id":39645,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39639,"src":"6040:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6030:15:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6048:16:137","subExpression":{"baseExpression":{"id":39647,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"6049:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39649,"indexExpression":{"id":39648,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39639,"src":"6059:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6049:15:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6030:34:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39652,"nodeType":"ExpressionStatement","src":"6030:34:137"},{"eventCall":{"arguments":[{"expression":{"id":39654,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6091:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6091:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39656,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39639,"src":"6103:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":39657,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"6109:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39659,"indexExpression":{"id":39658,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39639,"src":"6119:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6109:15:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":39653,"name":"Whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34596,"src":"6079:11:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":39660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6079:46:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39661,"nodeType":"EmitStatement","src":"6074:51:137"}]},"functionSelector":"39393ac9","id":39663,"implemented":true,"kind":"function","modifiers":[{"id":39642,"kind":"modifierInvocation","modifierName":{"id":39641,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"6010:9:137"},"nodeType":"ModifierInvocation","src":"6010:9:137"}],"name":"toggleWhitelist","nameLocation":"5971:15:137","nodeType":"FunctionDefinition","parameters":{"id":39640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39639,"mutability":"mutable","name":"what","nameLocation":"5995:4:137","nodeType":"VariableDeclaration","scope":39663,"src":"5987:12:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39638,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5986:14:137"},"returnParameters":{"id":39643,"nodeType":"ParameterList","parameters":[],"src":"6020:0:137"},"scope":40351,"src":"5962:170:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":39772,"nodeType":"Block","src":"6280:706:137","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39676,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"6290:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"6290:24:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":39679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6290:26:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39680,"nodeType":"ExpressionStatement","src":"6290:26:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":39682,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"6364:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39684,"indexExpression":{"id":39683,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39665,"src":"6371:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6364:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":39687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6389:3:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":39686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6381:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39685,"name":"address","nodeType":"ElementaryTypeName","src":"6381:7:137","typeDescriptions":{}}},"id":39688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6381:12:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6364:29:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"676175676520657869737473","id":39690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6395:14:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805","typeString":"literal_string \"gauge exists\""},"value":"gauge exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805","typeString":"literal_string \"gauge exists\""}],"id":39681,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6356:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6356:54:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39692,"nodeType":"ExpressionStatement","src":"6356:54:137"},{"expression":{"arguments":[{"baseExpression":{"id":39694,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"6454:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39696,"indexExpression":{"id":39695,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39665,"src":"6464:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6454:16:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f6f6c206e6f742077686974656c6973746564","id":39697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6472:22:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f","typeString":"literal_string \"pool not whitelisted\""},"value":"pool not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f","typeString":"literal_string \"pool not whitelisted\""}],"id":39693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6446:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6446:49:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39699,"nodeType":"ExpressionStatement","src":"6446:49:137"},{"expression":{"arguments":[{"baseExpression":{"id":39701,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"6513:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39703,"indexExpression":{"id":39702,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39667,"src":"6523:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6513:17:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"627269626520666163746f7279206e6f742077686974656c6973746564","id":39704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6532:31:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1","typeString":"literal_string \"bribe factory not whitelisted\""},"value":"bribe factory not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1","typeString":"literal_string \"bribe factory not whitelisted\""}],"id":39700,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6505:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6505:59:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39706,"nodeType":"ExpressionStatement","src":"6505:59:137"},{"expression":{"arguments":[{"baseExpression":{"id":39708,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"6582:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39710,"indexExpression":{"id":39709,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6592:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6582:17:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"676175676520666163746f7279206e6f742077686974656c6973746564","id":39711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6601:31:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa","typeString":"literal_string \"gauge factory not whitelisted\""},"value":"gauge factory not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa","typeString":"literal_string \"gauge factory not whitelisted\""}],"id":39707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6574:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6574:59:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39713,"nodeType":"ExpressionStatement","src":"6574:59:137"},{"expression":{"arguments":[{"id":39720,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6676:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":39723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6689:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39722,"name":"uint256","nodeType":"ElementaryTypeName","src":"6689:7:137","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":39721,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6684:4:137","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6684:13:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":39725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6684:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39715,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"6651:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"6651:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":39717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6651:15:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39714,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"6644:6:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":39718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6644:23:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5767","typeString":"contract IERC20"}},"id":39719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5754,"src":"6644:31:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":39726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6644:58:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39727,"nodeType":"ExpressionStatement","src":"6644:58:137"},{"expression":{"id":39732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39728,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"6712:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39730,"indexExpression":{"id":39729,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6719:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6712:14:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39731,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39667,"src":"6729:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6712:23:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39733,"nodeType":"ExpressionStatement","src":"6712:23:137"},{"expression":{"id":39738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39734,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"6745:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39736,"indexExpression":{"id":39735,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39665,"src":"6752:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6745:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39737,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6761:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6745:22:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39739,"nodeType":"ExpressionStatement","src":"6745:22:137"},{"expression":{"id":39744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39740,"name":"poolForGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39104,"src":"6777:12:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39742,"indexExpression":{"id":39741,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6790:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6777:20:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39743,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39665,"src":"6800:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6777:28:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39745,"nodeType":"ExpressionStatement","src":"6777:28:137"},{"expression":{"id":39750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39746,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39131,"src":"6815:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39748,"indexExpression":{"id":39747,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6823:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6815:15:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":39749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6833:4:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6815:22:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39751,"nodeType":"ExpressionStatement","src":"6815:22:137"},{"expression":{"arguments":[{"id":39753,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6859:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39752,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"6848:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6848:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39755,"nodeType":"ExpressionStatement","src":"6848:18:137"},{"expression":{"arguments":[{"id":39759,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39665,"src":"6887:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39756,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"6876:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":39758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"6876:10:137","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":39760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6876:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39761,"nodeType":"ExpressionStatement","src":"6876:17:137"},{"eventCall":{"arguments":[{"id":39763,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6922:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":39764,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6930:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6930:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39766,"name":"_bribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39667,"src":"6942:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39767,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39665,"src":"6950:5:137","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":39762,"name":"GaugeCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34520,"src":"6909:12:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address,address)"}},"id":39768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6909:47:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39769,"nodeType":"EmitStatement","src":"6904:52:137"},{"expression":{"id":39770,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"6973:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":39675,"id":39771,"nodeType":"Return","src":"6966:13:137"}]},"functionSelector":"551e0566","id":39773,"implemented":true,"kind":"function","modifiers":[{"id":39672,"kind":"modifierInvocation","modifierName":{"id":39671,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"6252:9:137"},"nodeType":"ModifierInvocation","src":"6252:9:137"}],"name":"registerGaugeBribe","nameLocation":"6147:18:137","nodeType":"FunctionDefinition","parameters":{"id":39670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39665,"mutability":"mutable","name":"_pool","nameLocation":"6183:5:137","nodeType":"VariableDeclaration","scope":39773,"src":"6175:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39664,"name":"address","nodeType":"ElementaryTypeName","src":"6175:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39667,"mutability":"mutable","name":"_bribe","nameLocation":"6206:6:137","nodeType":"VariableDeclaration","scope":39773,"src":"6198:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39666,"name":"address","nodeType":"ElementaryTypeName","src":"6198:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39669,"mutability":"mutable","name":"_gauge","nameLocation":"6230:6:137","nodeType":"VariableDeclaration","scope":39773,"src":"6222:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39668,"name":"address","nodeType":"ElementaryTypeName","src":"6222:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6165:77:137"},"returnParameters":{"id":39675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39773,"src":"6271:7:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39673,"name":"address","nodeType":"ElementaryTypeName","src":"6271:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6270:9:137"},"scope":40351,"src":"6138:848:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":39888,"nodeType":"Block","src":"7120:788:137","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39784,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"7130:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureNotPaused","nodeType":"MemberAccess","referencedDeclaration":35491,"src":"7130:24:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":39787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7130:26:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39788,"nodeType":"ExpressionStatement","src":"7130:26:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":39790,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"7204:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39792,"indexExpression":{"id":39791,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39775,"src":"7211:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7204:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":39795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:3:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":39794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7221:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39793,"name":"address","nodeType":"ElementaryTypeName","src":"7221:7:137","typeDescriptions":{}}},"id":39796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7221:12:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7204:29:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6761756765206e6f742072656769737465726564","id":39798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7235:22:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_90e5fe8a3b3baedda5055cceb8ec58840506c5af7b9ff9e8302bbdb45aa5d707","typeString":"literal_string \"gauge not registered\""},"value":"gauge not registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_90e5fe8a3b3baedda5055cceb8ec58840506c5af7b9ff9e8302bbdb45aa5d707","typeString":"literal_string \"gauge not registered\""}],"id":39789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7196:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7196:62:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39800,"nodeType":"ExpressionStatement","src":"7196:62:137"},{"expression":{"arguments":[{"baseExpression":{"id":39802,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"7302:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39804,"indexExpression":{"id":39803,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39775,"src":"7312:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7302:16:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f6f6c206e6f742077686974656c6973746564","id":39805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7320:22:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f","typeString":"literal_string \"pool not whitelisted\""},"value":"pool not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f","typeString":"literal_string \"pool not whitelisted\""}],"id":39801,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7294:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7294:49:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39807,"nodeType":"ExpressionStatement","src":"7294:49:137"},{"expression":{"arguments":[{"baseExpression":{"id":39809,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"7361:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39811,"indexExpression":{"id":39810,"name":"_newbribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39777,"src":"7371:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7361:20:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"627269626520666163746f7279206e6f742077686974656c6973746564","id":39812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7383:31:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1","typeString":"literal_string \"bribe factory not whitelisted\""},"value":"bribe factory not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1","typeString":"literal_string \"bribe factory not whitelisted\""}],"id":39808,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7353:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7353:62:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39814,"nodeType":"ExpressionStatement","src":"7353:62:137"},{"expression":{"arguments":[{"baseExpression":{"id":39816,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39135,"src":"7433:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39818,"indexExpression":{"id":39817,"name":"_newgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39779,"src":"7443:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7433:20:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"676175676520666163746f7279206e6f742077686974656c6973746564","id":39819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7455:31:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa","typeString":"literal_string \"gauge factory not whitelisted\""},"value":"gauge factory not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa","typeString":"literal_string \"gauge factory not whitelisted\""}],"id":39815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7425:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7425:62:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39821,"nodeType":"ExpressionStatement","src":"7425:62:137"},{"assignments":[39823],"declarations":[{"constant":false,"id":39823,"mutability":"mutable","name":"oldgauge","nameLocation":"7506:8:137","nodeType":"VariableDeclaration","scope":39888,"src":"7498:16:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39822,"name":"address","nodeType":"ElementaryTypeName","src":"7498:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":39827,"initialValue":{"baseExpression":{"id":39824,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"7517:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39826,"indexExpression":{"id":39825,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39775,"src":"7524:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7517:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7498:32:137"},{"expression":{"id":39835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39828,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"7541:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39830,"indexExpression":{"id":39829,"name":"oldgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39823,"src":"7548:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7541:16:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":39833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:137","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":39832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39831,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:137","typeDescriptions":{}}},"id":39834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7560:10:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7541:29:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39836,"nodeType":"ExpressionStatement","src":"7541:29:137"},{"expression":{"id":39841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39837,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"7580:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39839,"indexExpression":{"id":39838,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39775,"src":"7587:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7580:13:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39840,"name":"_newgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39779,"src":"7596:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7580:25:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39842,"nodeType":"ExpressionStatement","src":"7580:25:137"},{"expression":{"id":39850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39843,"name":"poolForGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39104,"src":"7615:12:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39845,"indexExpression":{"id":39844,"name":"oldgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39823,"src":"7628:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7615:22:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":39848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7648:1:137","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":39847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7640:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39846,"name":"address","nodeType":"ElementaryTypeName","src":"7640:7:137","typeDescriptions":{}}},"id":39849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7640:10:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7615:35:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39851,"nodeType":"ExpressionStatement","src":"7615:35:137"},{"expression":{"id":39856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39852,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39131,"src":"7660:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39854,"indexExpression":{"id":39853,"name":"oldgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39823,"src":"7668:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7660:17:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":39855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7680:5:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7660:25:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39857,"nodeType":"ExpressionStatement","src":"7660:25:137"},{"expression":{"id":39862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39858,"name":"bribes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"7696:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39860,"indexExpression":{"id":39859,"name":"_newgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39779,"src":"7703:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7696:17:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39861,"name":"_newbribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39777,"src":"7716:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7696:29:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39863,"nodeType":"ExpressionStatement","src":"7696:29:137"},{"expression":{"id":39868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39864,"name":"poolForGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39104,"src":"7735:12:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":39866,"indexExpression":{"id":39865,"name":"_newgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39779,"src":"7748:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7735:23:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39867,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39775,"src":"7761:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7735:31:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39869,"nodeType":"ExpressionStatement","src":"7735:31:137"},{"expression":{"id":39874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39870,"name":"isGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39131,"src":"7776:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":39872,"indexExpression":{"id":39871,"name":"_newgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39779,"src":"7784:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7776:18:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":39873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7797:4:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7776:25:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39875,"nodeType":"ExpressionStatement","src":"7776:25:137"},{"expression":{"arguments":[{"id":39877,"name":"_newgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39779,"src":"7823:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39876,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"7812:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7812:21:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39879,"nodeType":"ExpressionStatement","src":"7812:21:137"},{"eventCall":{"arguments":[{"id":39881,"name":"_newgauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39779,"src":"7861:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":39882,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7872:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7872:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39884,"name":"_newbribe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39777,"src":"7884:9:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39885,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39775,"src":"7895:5:137","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":39880,"name":"GaugeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34530,"src":"7848:12:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address,address)"}},"id":39886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7848:53:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39887,"nodeType":"EmitStatement","src":"7843:58:137"}]},"functionSelector":"1cdf2eb9","id":39889,"implemented":true,"kind":"function","modifiers":[{"id":39782,"kind":"modifierInvocation","modifierName":{"id":39781,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":574,"src":"7110:9:137"},"nodeType":"ModifierInvocation","src":"7110:9:137"}],"name":"updateGaugeBribe","nameLocation":"7001:16:137","nodeType":"FunctionDefinition","parameters":{"id":39780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39775,"mutability":"mutable","name":"_pool","nameLocation":"7035:5:137","nodeType":"VariableDeclaration","scope":39889,"src":"7027:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39774,"name":"address","nodeType":"ElementaryTypeName","src":"7027:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39777,"mutability":"mutable","name":"_newbribe","nameLocation":"7058:9:137","nodeType":"VariableDeclaration","scope":39889,"src":"7050:17:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39776,"name":"address","nodeType":"ElementaryTypeName","src":"7050:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39779,"mutability":"mutable","name":"_newgauge","nameLocation":"7085:9:137","nodeType":"VariableDeclaration","scope":39889,"src":"7077:17:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39778,"name":"address","nodeType":"ElementaryTypeName","src":"7077:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7017:83:137"},"returnParameters":{"id":39783,"nodeType":"ParameterList","parameters":[],"src":"7120:0:137"},"scope":40351,"src":"6992:916:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34465],"body":{"id":39913,"nodeType":"Block","src":"7988:106:137","statements":[{"expression":{"id":39905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39897,"name":"attachments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39140,"src":"7998:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":39899,"indexExpression":{"id":39898,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39891,"src":"8010:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7998:20:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":39900,"name":"attachments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39140,"src":"8021:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":39902,"indexExpression":{"id":39901,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39891,"src":"8033:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8021:20:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":39903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8044:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8021:24:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7998:47:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39906,"nodeType":"ExpressionStatement","src":"7998:47:137"},{"eventCall":{"arguments":[{"id":39908,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39891,"src":"8067:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":39909,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8076:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8076:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":39907,"name":"Attach","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34582,"src":"8060:6:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":39911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8060:27:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39912,"nodeType":"EmitStatement","src":"8055:32:137"}]},"functionSelector":"97a302f7","id":39914,"implemented":true,"kind":"function","modifiers":[{"id":39895,"kind":"modifierInvocation","modifierName":{"id":39894,"name":"onlyGauge","nodeType":"IdentifierPath","referencedDeclaration":39162,"src":"7978:9:137"},"nodeType":"ModifierInvocation","src":"7978:9:137"}],"name":"attachStakerToGauge","nameLocation":"7923:19:137","nodeType":"FunctionDefinition","overrides":{"id":39893,"nodeType":"OverrideSpecifier","overrides":[],"src":"7969:8:137"},"parameters":{"id":39892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39891,"mutability":"mutable","name":"account","nameLocation":"7951:7:137","nodeType":"VariableDeclaration","scope":39914,"src":"7943:15:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39890,"name":"address","nodeType":"ElementaryTypeName","src":"7943:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7942:17:137"},"returnParameters":{"id":39896,"nodeType":"ParameterList","parameters":[],"src":"7988:0:137"},"scope":40351,"src":"7914:180:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34470],"body":{"id":39938,"nodeType":"Block","src":"8204:106:137","statements":[{"expression":{"id":39930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39922,"name":"attachments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39140,"src":"8214:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":39924,"indexExpression":{"id":39923,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"8226:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8214:20:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":39925,"name":"attachments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39140,"src":"8237:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":39927,"indexExpression":{"id":39926,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"8249:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8237:20:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8260:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8237:24:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:47:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39931,"nodeType":"ExpressionStatement","src":"8214:47:137"},{"eventCall":{"arguments":[{"id":39933,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"8283:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":39934,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8292:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8292:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":39932,"name":"Detach","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34588,"src":"8276:6:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":39936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8276:27:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39937,"nodeType":"EmitStatement","src":"8271:32:137"}]},"functionSelector":"e32e4e88","id":39939,"implemented":true,"kind":"function","modifiers":[{"id":39920,"kind":"modifierInvocation","modifierName":{"id":39919,"name":"onlyGauge","nodeType":"IdentifierPath","referencedDeclaration":39162,"src":"8190:9:137"},"nodeType":"ModifierInvocation","src":"8190:9:137"}],"name":"detachStakerFromGauge","nameLocation":"8109:21:137","nodeType":"FunctionDefinition","overrides":{"id":39918,"nodeType":"OverrideSpecifier","overrides":[],"src":"8173:8:137"},"parameters":{"id":39917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39916,"mutability":"mutable","name":"account","nameLocation":"8139:7:137","nodeType":"VariableDeclaration","scope":39939,"src":"8131:15:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39915,"name":"address","nodeType":"ElementaryTypeName","src":"8131:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8130:17:137"},"returnParameters":{"id":39921,"nodeType":"ParameterList","parameters":[],"src":"8204:0:137"},"scope":40351,"src":"8100:210:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":39947,"nodeType":"Block","src":"8366:36:137","statements":[{"expression":{"expression":{"id":39944,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"8383:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":39945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8383:12:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":39943,"id":39946,"nodeType":"Return","src":"8376:19:137"}]},"functionSelector":"1f7b6d32","id":39948,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"8325:6:137","nodeType":"FunctionDefinition","parameters":{"id":39940,"nodeType":"ParameterList","parameters":[],"src":"8331:2:137"},"returnParameters":{"id":39943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39948,"src":"8357:7:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39941,"name":"uint256","nodeType":"ElementaryTypeName","src":"8357:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8356:9:137"},"scope":40351,"src":"8316:86:137","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[34503],"body":{"id":39991,"nodeType":"Block","src":"8470:358:137","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39955,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8501:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8501:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39957,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"8515:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"emissionController","nodeType":"MemberAccess","referencedDeclaration":35470,"src":"8515:27:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":39959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8515:29:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8501:43:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420656d697373696f6e20636f6e74726f6c6c6572","id":39961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8558:25:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_a265803760dd6c3f1a514c81624e55a9b28174223c091f7c32672bd32a843e1a","typeString":"literal_string \"not emission controller\""},"value":"not emission controller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a265803760dd6c3f1a514c81624e55a9b28174223c091f7c32672bd32a843e1a","typeString":"literal_string \"not emission controller\""}],"id":39954,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8480:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8480:113:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39963,"nodeType":"ExpressionStatement","src":"8480:113:137"},{"assignments":[39965],"declarations":[{"constant":false,"id":39965,"mutability":"mutable","name":"_ratio","nameLocation":"8611:6:137","nodeType":"VariableDeclaration","scope":39991,"src":"8603:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39964,"name":"uint256","nodeType":"ElementaryTypeName","src":"8603:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39972,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39966,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39950,"src":"8621:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":39967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8630:4:137","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"8621:13:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39969,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8620:15:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":39970,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"8638:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8620:29:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8603:46:137"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39973,"name":"_ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39965,"src":"8706:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":39974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8715:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8706:10:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39981,"nodeType":"IfStatement","src":"8702:56:137","trueBody":{"id":39980,"nodeType":"Block","src":"8718:40:137","statements":[{"expression":{"id":39978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39976,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39142,"src":"8732:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":39977,"name":"_ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39965,"src":"8741:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8732:15:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39979,"nodeType":"ExpressionStatement","src":"8732:15:137"}]}},{"eventCall":{"arguments":[{"expression":{"id":39983,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8785:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8785:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39985,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"8797:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":39986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"8797:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":39987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8797:15:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39988,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39950,"src":"8814:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39982,"name":"NotifyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34568,"src":"8772:12:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":39989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8772:49:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39990,"nodeType":"EmitStatement","src":"8767:54:137"}]},"functionSelector":"3c6b16ab","id":39992,"implemented":true,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"8417:18:137","nodeType":"FunctionDefinition","overrides":{"id":39952,"nodeType":"OverrideSpecifier","overrides":[],"src":"8461:8:137"},"parameters":{"id":39951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39950,"mutability":"mutable","name":"amount","nameLocation":"8444:6:137","nodeType":"VariableDeclaration","scope":39992,"src":"8436:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39949,"name":"uint256","nodeType":"ElementaryTypeName","src":"8436:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8435:16:137"},"returnParameters":{"id":39953,"nodeType":"ParameterList","parameters":[],"src":"8470:0:137"},"scope":40351,"src":"8408:420:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":40017,"nodeType":"Block","src":"8888:108:137","statements":[{"body":{"id":40015,"nodeType":"Block","src":"8943:47:137","statements":[{"expression":{"arguments":[{"baseExpression":{"id":40010,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39995,"src":"8968:7:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40012,"indexExpression":{"id":40011,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39999,"src":"8976:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8968:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40009,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"8957:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":40013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8957:22:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40014,"nodeType":"ExpressionStatement","src":"8957:22:137"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40002,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39999,"src":"8918:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40003,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39995,"src":"8922:7:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8922:14:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8918:18:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40016,"initializationExpression":{"assignments":[39999],"declarations":[{"constant":false,"id":39999,"mutability":"mutable","name":"i","nameLocation":"8911:1:137","nodeType":"VariableDeclaration","scope":40016,"src":"8903:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39998,"name":"uint256","nodeType":"ElementaryTypeName","src":"8903:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40001,"initialValue":{"hexValue":"30","id":40000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8915:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8903:13:137"},"loopExpression":{"expression":{"id":40007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8938:3:137","subExpression":{"id":40006,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39999,"src":"8938:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40008,"nodeType":"ExpressionStatement","src":"8938:3:137"},"nodeType":"ForStatement","src":"8898:92:137"}]},"functionSelector":"d560b0d7","id":40018,"implemented":true,"kind":"function","modifiers":[],"name":"updateFor","nameLocation":"8843:9:137","nodeType":"FunctionDefinition","parameters":{"id":39996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39995,"mutability":"mutable","name":"_gauges","nameLocation":"8870:7:137","nodeType":"VariableDeclaration","scope":40018,"src":"8853:24:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39993,"name":"address","nodeType":"ElementaryTypeName","src":"8853:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39994,"nodeType":"ArrayTypeName","src":"8853:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8852:26:137"},"returnParameters":{"id":39997,"nodeType":"ParameterList","parameters":[],"src":"8888:0:137"},"scope":40351,"src":"8834:162:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":40045,"nodeType":"Block","src":"9061:107:137","statements":[{"body":{"id":40043,"nodeType":"Block","src":"9109:53:137","statements":[{"expression":{"arguments":[{"baseExpression":{"id":40036,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"9134:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":40040,"indexExpression":{"baseExpression":{"id":40037,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"9141:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":40039,"indexExpression":{"id":40038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40026,"src":"9147:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9141:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9134:16:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40035,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"9123:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":40041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9123:28:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40042,"nodeType":"ExpressionStatement","src":"9123:28:137"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40029,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40026,"src":"9095:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40030,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40022,"src":"9099:3:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9095:7:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40044,"initializationExpression":{"assignments":[40026],"declarations":[{"constant":false,"id":40026,"mutability":"mutable","name":"i","nameLocation":"9084:1:137","nodeType":"VariableDeclaration","scope":40044,"src":"9076:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40025,"name":"uint256","nodeType":"ElementaryTypeName","src":"9076:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40028,"initialValue":{"id":40027,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40020,"src":"9088:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9076:17:137"},"loopExpression":{"expression":{"id":40033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9104:3:137","subExpression":{"id":40032,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40026,"src":"9104:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40034,"nodeType":"ExpressionStatement","src":"9104:3:137"},"nodeType":"ForStatement","src":"9071:91:137"}]},"functionSelector":"9b6a9d72","id":40046,"implemented":true,"kind":"function","modifiers":[],"name":"updateForRange","nameLocation":"9011:14:137","nodeType":"FunctionDefinition","parameters":{"id":40023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40020,"mutability":"mutable","name":"start","nameLocation":"9034:5:137","nodeType":"VariableDeclaration","scope":40046,"src":"9026:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40019,"name":"uint256","nodeType":"ElementaryTypeName","src":"9026:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40022,"mutability":"mutable","name":"end","nameLocation":"9049:3:137","nodeType":"VariableDeclaration","scope":40046,"src":"9041:11:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40021,"name":"uint256","nodeType":"ElementaryTypeName","src":"9041:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9025:28:137"},"returnParameters":{"id":40024,"nodeType":"ParameterList","parameters":[],"src":"9061:0:137"},"scope":40351,"src":"9002:166:137","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":40055,"nodeType":"Block","src":"9204:48:137","statements":[{"expression":{"arguments":[{"hexValue":"30","id":40050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9229:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":40051,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"9232:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":40052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9232:12:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40049,"name":"updateForRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40046,"src":"9214:14:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9214:31:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40054,"nodeType":"ExpressionStatement","src":"9214:31:137"}]},"functionSelector":"53d78693","id":40056,"implemented":true,"kind":"function","modifiers":[],"name":"updateAll","nameLocation":"9183:9:137","nodeType":"FunctionDefinition","parameters":{"id":40047,"nodeType":"ParameterList","parameters":[],"src":"9192:2:137"},"returnParameters":{"id":40048,"nodeType":"ParameterList","parameters":[],"src":"9204:0:137"},"scope":40351,"src":"9174:78:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":40065,"nodeType":"Block","src":"9304:35:137","statements":[{"expression":{"arguments":[{"id":40062,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40058,"src":"9325:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40061,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"9314:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":40063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9314:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40064,"nodeType":"ExpressionStatement","src":"9314:18:137"}]},"functionSelector":"6ecbe38a","id":40066,"implemented":true,"kind":"function","modifiers":[],"name":"updateGauge","nameLocation":"9267:11:137","nodeType":"FunctionDefinition","parameters":{"id":40059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40058,"mutability":"mutable","name":"_gauge","nameLocation":"9287:6:137","nodeType":"VariableDeclaration","scope":40066,"src":"9279:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40057,"name":"address","nodeType":"ElementaryTypeName","src":"9279:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9278:16:137"},"returnParameters":{"id":40060,"nodeType":"ParameterList","parameters":[],"src":"9304:0:137"},"scope":40351,"src":"9258:81:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":40140,"nodeType":"Block","src":"9390:786:137","statements":[{"assignments":[40072],"declarations":[{"constant":false,"id":40072,"mutability":"mutable","name":"_pool","nameLocation":"9408:5:137","nodeType":"VariableDeclaration","scope":40140,"src":"9400:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40071,"name":"address","nodeType":"ElementaryTypeName","src":"9400:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40076,"initialValue":{"baseExpression":{"id":40073,"name":"poolForGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39104,"src":"9416:12:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":40075,"indexExpression":{"id":40074,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40068,"src":"9429:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9416:20:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9400:36:137"},{"assignments":[40078],"declarations":[{"constant":false,"id":40078,"mutability":"mutable","name":"_supplied","nameLocation":"9453:9:137","nodeType":"VariableDeclaration","scope":40140,"src":"9446:16:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":40077,"name":"int256","nodeType":"ElementaryTypeName","src":"9446:6:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":40082,"initialValue":{"baseExpression":{"id":40079,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39112,"src":"9465:7:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_int256_$","typeString":"mapping(address => int256)"}},"id":40081,"indexExpression":{"id":40080,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40072,"src":"9473:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:14:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"9446:33:137"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":40085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40083,"name":"_supplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40078,"src":"9493:9:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":40084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9505:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9493:13:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":40138,"nodeType":"Block","src":"10069:101:137","statements":[{"expression":{"id":40136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":40132,"name":"supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39146,"src":"10083:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":40134,"indexExpression":{"id":40133,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40068,"src":"10095:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10083:19:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40135,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39142,"src":"10105:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10083:27:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40137,"nodeType":"ExpressionStatement","src":"10083:27:137"}]},"id":40139,"nodeType":"IfStatement","src":"9489:681:137","trueBody":{"id":40131,"nodeType":"Block","src":"9508:555:137","statements":[{"assignments":[40087],"declarations":[{"constant":false,"id":40087,"mutability":"mutable","name":"_supplyIndex","nameLocation":"9530:12:137","nodeType":"VariableDeclaration","scope":40131,"src":"9522:20:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40086,"name":"uint256","nodeType":"ElementaryTypeName","src":"9522:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40091,"initialValue":{"baseExpression":{"id":40088,"name":"supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39146,"src":"9545:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":40090,"indexExpression":{"id":40089,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40068,"src":"9557:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9545:19:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9522:42:137"},{"assignments":[40093],"declarations":[{"constant":false,"id":40093,"mutability":"mutable","name":"_index","nameLocation":"9586:6:137","nodeType":"VariableDeclaration","scope":40131,"src":"9578:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40092,"name":"uint256","nodeType":"ElementaryTypeName","src":"9578:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40095,"initialValue":{"id":40094,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39142,"src":"9595:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9578:22:137"},{"expression":{"id":40100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":40096,"name":"supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39146,"src":"9658:11:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":40098,"indexExpression":{"id":40097,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40068,"src":"9670:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9658:19:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40099,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40093,"src":"9680:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9658:28:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40101,"nodeType":"ExpressionStatement","src":"9658:28:137"},{"assignments":[40103],"declarations":[{"constant":false,"id":40103,"mutability":"mutable","name":"_delta","nameLocation":"9761:6:137","nodeType":"VariableDeclaration","scope":40131,"src":"9753:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40102,"name":"uint256","nodeType":"ElementaryTypeName","src":"9753:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40107,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40104,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40093,"src":"9770:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":40105,"name":"_supplyIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40087,"src":"9779:12:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9770:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9753:38:137"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40108,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40103,"src":"9867:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":40109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9876:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9867:10:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40130,"nodeType":"IfStatement","src":"9863:190:137","trueBody":{"id":40129,"nodeType":"Block","src":"9879:174:137","statements":[{"assignments":[40112],"declarations":[{"constant":false,"id":40112,"mutability":"mutable","name":"_share","nameLocation":"9905:6:137","nodeType":"VariableDeclaration","scope":40129,"src":"9897:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40111,"name":"uint256","nodeType":"ElementaryTypeName","src":"9897:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40122,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":40115,"name":"_supplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40078,"src":"9923:9:137","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":40114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9915:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40113,"name":"uint256","nodeType":"ElementaryTypeName","src":"9915:7:137","typeDescriptions":{}}},"id":40116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9915:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":40117,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40103,"src":"9936:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9915:27:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40119,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9914:29:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31653138","id":40120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9946:4:137","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"9914:36:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9897:53:137"},{"expression":{"id":40127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":40123,"name":"claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39150,"src":"10011:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":40125,"indexExpression":{"id":40124,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40068,"src":"10021:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10011:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":40126,"name":"_share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40112,"src":"10032:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10011:27:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40128,"nodeType":"ExpressionStatement","src":"10011:27:137"}]}}]}}]},"id":40141,"implemented":true,"kind":"function","modifiers":[],"name":"_updateFor","nameLocation":"9354:10:137","nodeType":"FunctionDefinition","parameters":{"id":40069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40068,"mutability":"mutable","name":"_gauge","nameLocation":"9373:6:137","nodeType":"VariableDeclaration","scope":40141,"src":"9365:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40067,"name":"address","nodeType":"ElementaryTypeName","src":"9365:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9364:16:137"},"returnParameters":{"id":40070,"nodeType":"ParameterList","parameters":[],"src":"9390:0:137"},"scope":40351,"src":"9345:831:137","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":40215,"nodeType":"Block","src":"10241:576:137","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40149,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"10275:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":40150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"emissionController","nodeType":"MemberAccess","referencedDeclaration":35470,"src":"10275:27:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":40151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10275:29:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40148,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33981,"src":"10255:19:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEmissionController_$33981_$","typeString":"type(contract IEmissionController)"}},"id":40152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10255:50:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"id":40153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"callable","nodeType":"MemberAccess","referencedDeclaration":33988,"src":"10255:59:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":40154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10255:61:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40163,"nodeType":"IfStatement","src":"10251:165:137","trueBody":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40156,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"10350:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":40157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"emissionController","nodeType":"MemberAccess","referencedDeclaration":35470,"src":"10350:27:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":40158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10350:29:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40155,"name":"IEmissionController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33981,"src":"10330:19:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEmissionController_$33981_$","typeString":"type(contract IEmissionController)"}},"id":40159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10330:50:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEmissionController_$33981","typeString":"contract IEmissionController"}},"id":40160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allocateEmission","nodeType":"MemberAccess","referencedDeclaration":33980,"src":"10330:84:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":40161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10330:86:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40162,"nodeType":"ExpressionStatement","src":"10330:86:137"}},{"expression":{"arguments":[{"id":40165,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40143,"src":"10438:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40164,"name":"_updateFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40141,"src":"10427:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":40166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10427:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40167,"nodeType":"ExpressionStatement","src":"10427:18:137"},{"assignments":[40169],"declarations":[{"constant":false,"id":40169,"mutability":"mutable","name":"_claimable","nameLocation":"10463:10:137","nodeType":"VariableDeclaration","scope":40215,"src":"10455:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40168,"name":"uint256","nodeType":"ElementaryTypeName","src":"10455:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40173,"initialValue":{"baseExpression":{"id":40170,"name":"claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39150,"src":"10476:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":40172,"indexExpression":{"id":40171,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40143,"src":"10486:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10476:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10455:38:137"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40174,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40169,"src":"10521:10:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40179,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"10554:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":40180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"10554:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":40181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10554:15:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":40176,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40143,"src":"10541:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40175,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34110,"src":"10534:6:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGauge_$34110_$","typeString":"type(contract IGauge)"}},"id":40177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10534:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGauge_$34110","typeString":"contract IGauge"}},"id":40178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"left","nodeType":"MemberAccess","referencedDeclaration":34109,"src":"10534:19:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":40182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10534:36:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10521:49:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40184,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40169,"src":"10586:10:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":40185,"name":"DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39091,"src":"10599:8:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10586:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":40187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10610:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:25:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10521:90:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40214,"nodeType":"IfStatement","src":"10504:307:137","trueBody":{"id":40213,"nodeType":"Block","src":"10622:189:137","statements":[{"expression":{"id":40194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":40190,"name":"claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39150,"src":"10636:9:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":40192,"indexExpression":{"id":40191,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40143,"src":"10646:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10636:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":40193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10656:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10636:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40195,"nodeType":"ExpressionStatement","src":"10636:21:137"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40200,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"10705:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$35522","typeString":"contract IRegistry"}},"id":40201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maha","nodeType":"MemberAccess","referencedDeclaration":35450,"src":"10705:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":40202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:15:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40203,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40169,"src":"10722:10:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":40197,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40143,"src":"10678:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40196,"name":"IGauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34110,"src":"10671:6:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGauge_$34110_$","typeString":"type(contract IGauge)"}},"id":40198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10671:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGauge_$34110","typeString":"contract IGauge"}},"id":40199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"notifyRewardAmount","nodeType":"MemberAccess","referencedDeclaration":34088,"src":"10671:33:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":40204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10671:62:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40205,"nodeType":"ExpressionStatement","src":"10671:62:137"},{"eventCall":{"arguments":[{"expression":{"id":40207,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10769:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":40208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10769:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40209,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40143,"src":"10781:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40210,"name":"_claimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40169,"src":"10789:10:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40206,"name":"DistributeReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34576,"src":"10752:16:137","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":40211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10752:48:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40212,"nodeType":"EmitStatement","src":"10747:53:137"}]}}]},"id":40216,"implemented":true,"kind":"function","modifiers":[{"id":40146,"kind":"modifierInvocation","modifierName":{"id":40145,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":5061,"src":"10228:12:137"},"nodeType":"ModifierInvocation","src":"10228:12:137"}],"name":"_distribute","nameLocation":"10191:11:137","nodeType":"FunctionDefinition","parameters":{"id":40144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40143,"mutability":"mutable","name":"_gauge","nameLocation":"10211:6:137","nodeType":"VariableDeclaration","scope":40216,"src":"10203:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40142,"name":"address","nodeType":"ElementaryTypeName","src":"10203:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10202:16:137"},"returnParameters":{"id":40147,"nodeType":"ParameterList","parameters":[],"src":"10241:0:137"},"scope":40351,"src":"10182:635:137","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[34475],"body":{"id":40226,"nodeType":"Block","src":"10877:36:137","statements":[{"expression":{"arguments":[{"id":40223,"name":"_gauge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40218,"src":"10899:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40222,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40216,"src":"10887:11:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":40224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10887:19:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40225,"nodeType":"ExpressionStatement","src":"10887:19:137"}]},"functionSelector":"63453ae1","id":40227,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"10832:10:137","nodeType":"FunctionDefinition","overrides":{"id":40220,"nodeType":"OverrideSpecifier","overrides":[],"src":"10868:8:137"},"parameters":{"id":40219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40218,"mutability":"mutable","name":"_gauge","nameLocation":"10851:6:137","nodeType":"VariableDeclaration","scope":40227,"src":"10843:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40217,"name":"address","nodeType":"ElementaryTypeName","src":"10843:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10842:16:137"},"returnParameters":{"id":40221,"nodeType":"ParameterList","parameters":[],"src":"10877:0:137"},"scope":40351,"src":"10823:90:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[34478],"body":{"id":40237,"nodeType":"Block","src":"10959:44:137","statements":[{"expression":{"arguments":[{"hexValue":"30","id":40232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10980:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":40233,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"10983:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":40234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10983:12:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40231,"name":"distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40266,"src":"10969:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10969:27:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40236,"nodeType":"ExpressionStatement","src":"10969:27:137"}]},"functionSelector":"e4fc6b6d","id":40238,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"10928:10:137","nodeType":"FunctionDefinition","overrides":{"id":40229,"nodeType":"OverrideSpecifier","overrides":[],"src":"10950:8:137"},"parameters":{"id":40228,"nodeType":"ParameterList","parameters":[],"src":"10938:2:137"},"returnParameters":{"id":40230,"nodeType":"ParameterList","parameters":[],"src":"10959:0:137"},"scope":40351,"src":"10919:84:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":40265,"nodeType":"Block","src":"11067:111:137","statements":[{"body":{"id":40263,"nodeType":"Block","src":"11118:54:137","statements":[{"expression":{"arguments":[{"baseExpression":{"id":40256,"name":"gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39100,"src":"11144:6:137","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":40260,"indexExpression":{"baseExpression":{"id":40257,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"11151:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":40259,"indexExpression":{"id":40258,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40246,"src":"11157:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11151:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11144:16:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40255,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40216,"src":"11132:11:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":40261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11132:29:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40262,"nodeType":"ExpressionStatement","src":"11132:29:137"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40249,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40246,"src":"11101:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40250,"name":"finish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40242,"src":"11105:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11101:10:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40264,"initializationExpression":{"assignments":[40246],"declarations":[{"constant":false,"id":40246,"mutability":"mutable","name":"x","nameLocation":"11090:1:137","nodeType":"VariableDeclaration","scope":40264,"src":"11082:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40245,"name":"uint256","nodeType":"ElementaryTypeName","src":"11082:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40248,"initialValue":{"id":40247,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40240,"src":"11094:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11082:17:137"},"loopExpression":{"expression":{"id":40253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11113:3:137","subExpression":{"id":40252,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40246,"src":"11113:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40254,"nodeType":"ExpressionStatement","src":"11113:3:137"},"nodeType":"ForStatement","src":"11077:95:137"}]},"functionSelector":"7625391a","id":40266,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"11018:10:137","nodeType":"FunctionDefinition","parameters":{"id":40243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40240,"mutability":"mutable","name":"start","nameLocation":"11037:5:137","nodeType":"VariableDeclaration","scope":40266,"src":"11029:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40239,"name":"uint256","nodeType":"ElementaryTypeName","src":"11029:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40242,"mutability":"mutable","name":"finish","nameLocation":"11052:6:137","nodeType":"VariableDeclaration","scope":40266,"src":"11044:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40241,"name":"uint256","nodeType":"ElementaryTypeName","src":"11044:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11028:31:137"},"returnParameters":{"id":40244,"nodeType":"ParameterList","parameters":[],"src":"11067:0:137"},"scope":40351,"src":"11009:169:137","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[34484],"body":{"id":40292,"nodeType":"Block","src":"11248:109:137","statements":[{"body":{"id":40290,"nodeType":"Block","src":"11303:48:137","statements":[{"expression":{"arguments":[{"baseExpression":{"id":40285,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40269,"src":"11329:7:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40287,"indexExpression":{"id":40286,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40274,"src":"11337:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11329:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40284,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40216,"src":"11317:11:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":40288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11317:23:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40289,"nodeType":"ExpressionStatement","src":"11317:23:137"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40277,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40274,"src":"11278:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40278,"name":"_gauges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40269,"src":"11282:7:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11282:14:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11278:18:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40291,"initializationExpression":{"assignments":[40274],"declarations":[{"constant":false,"id":40274,"mutability":"mutable","name":"x","nameLocation":"11271:1:137","nodeType":"VariableDeclaration","scope":40291,"src":"11263:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40273,"name":"uint256","nodeType":"ElementaryTypeName","src":"11263:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40276,"initialValue":{"hexValue":"30","id":40275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11275:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11263:13:137"},"loopExpression":{"expression":{"id":40282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11298:3:137","subExpression":{"id":40281,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40274,"src":"11298:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40283,"nodeType":"ExpressionStatement","src":"11298:3:137"},"nodeType":"ForStatement","src":"11258:93:137"}]},"functionSelector":"6138889b","id":40293,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"11193:10:137","nodeType":"FunctionDefinition","overrides":{"id":40271,"nodeType":"OverrideSpecifier","overrides":[],"src":"11239:8:137"},"parameters":{"id":40270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40269,"mutability":"mutable","name":"_gauges","nameLocation":"11221:7:137","nodeType":"VariableDeclaration","scope":40293,"src":"11204:24:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":40267,"name":"address","nodeType":"ElementaryTypeName","src":"11204:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40268,"nodeType":"ArrayTypeName","src":"11204:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11203:26:137"},"returnParameters":{"id":40272,"nodeType":"ParameterList","parameters":[],"src":"11248:0:137"},"scope":40351,"src":"11184:173:137","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":40349,"nodeType":"Block","src":"11493:429:137","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40305,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40295,"src":"11511:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"11511:10:137","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11511:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":40308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11531:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11511:21:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e20636f6465","id":40310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11534:20:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""},"value":"invalid token code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c","typeString":"literal_string \"invalid token code\""}],"id":40304,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11503:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":40311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11503:52:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40312,"nodeType":"ExpressionStatement","src":"11503:52:137"},{"assignments":[40314,40316],"declarations":[{"constant":false,"id":40314,"mutability":"mutable","name":"success","nameLocation":"11571:7:137","nodeType":"VariableDeclaration","scope":40349,"src":"11566:12:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40313,"name":"bool","nodeType":"ElementaryTypeName","src":"11566:4:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40316,"mutability":"mutable","name":"data","nameLocation":"11593:4:137","nodeType":"VariableDeclaration","scope":40349,"src":"11580:17:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40315,"name":"bytes","nodeType":"ElementaryTypeName","src":"11580:5:137","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40329,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":40321,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"11665:6:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5767_$","typeString":"type(contract IERC20)"}},"id":40322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5766,"src":"11665:19:137","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transferFrom(address,address,uint256) returns (bool)"}},"id":40323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"11665:28:137","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40324,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40297,"src":"11711:4:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40325,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40299,"src":"11733:2:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40301,"src":"11753:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11625:3:137","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"11625:22:137","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":40327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11625:147:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40317,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40295,"src":"11601:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"11601:10:137","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":40328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11601:181:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11565:217:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40331,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40314,"src":"11813:7:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40332,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40316,"src":"11825:4:137","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11825:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11840:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11825:16:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":40338,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40316,"src":"11856:4:137","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11863:4:137","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":40339,"name":"bool","nodeType":"ElementaryTypeName","src":"11863:4:137","typeDescriptions":{}}}],"id":40341,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11862:6:137","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":40336,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11845:3:137","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"11845:10:137","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11845:24:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11825:44:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":40344,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11824:46:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11813:57:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e7366657246726f6d206661696c6564","id":40346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11884:21:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""},"value":"transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3","typeString":"literal_string \"transferFrom failed\""}],"id":40330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11792:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":40347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11792:123:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40348,"nodeType":"ExpressionStatement","src":"11792:123:137"}]},"id":40350,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"11372:17:137","nodeType":"FunctionDefinition","parameters":{"id":40302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40295,"mutability":"mutable","name":"token","nameLocation":"11407:5:137","nodeType":"VariableDeclaration","scope":40350,"src":"11399:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40294,"name":"address","nodeType":"ElementaryTypeName","src":"11399:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40297,"mutability":"mutable","name":"from","nameLocation":"11430:4:137","nodeType":"VariableDeclaration","scope":40350,"src":"11422:12:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40296,"name":"address","nodeType":"ElementaryTypeName","src":"11422:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40299,"mutability":"mutable","name":"to","nameLocation":"11452:2:137","nodeType":"VariableDeclaration","scope":40350,"src":"11444:10:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40298,"name":"address","nodeType":"ElementaryTypeName","src":"11444:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40301,"mutability":"mutable","name":"value","nameLocation":"11472:5:137","nodeType":"VariableDeclaration","scope":40350,"src":"11464:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40300,"name":"uint256","nodeType":"ElementaryTypeName","src":"11464:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11389:94:137"},"returnParameters":{"id":40303,"nodeType":"ParameterList","parameters":[],"src":"11493:0:137"},"scope":40351,"src":"11363:559:137","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":40352,"src":"1165:10759:137","usedErrors":[]}],"src":"33:11892:137"},"id":137},"hardhat/console.sol":{"ast":{"absolutePath":"hardhat/console.sol","exportedSymbols":{"console":[48415]},"id":48416,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":40353,"literals":["solidity",">=","0.4",".22","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:33:138"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":48415,"linearizedBaseContracts":[48415],"name":"console","nameLocation":"75:7:138","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":40359,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"103:15:138","nodeType":"VariableDeclaration","scope":48415,"src":"86:86:138","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40354,"name":"address","nodeType":"ElementaryTypeName","src":"86:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":40357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"129:42:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"121:7:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40355,"name":"address","nodeType":"ElementaryTypeName","src":"121:7:138","typeDescriptions":{}}},"id":40358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"121:51:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":40374,"nodeType":"Block","src":"236:228:138","statements":[{"assignments":[40365],"declarations":[{"constant":false,"id":40365,"mutability":"mutable","name":"payloadLength","nameLocation":"248:13:138","nodeType":"VariableDeclaration","scope":40374,"src":"240:21:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40364,"name":"uint256","nodeType":"ElementaryTypeName","src":"240:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40368,"initialValue":{"expression":{"id":40366,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40361,"src":"264:7:138","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"264:14:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"240:38:138"},{"assignments":[40370],"declarations":[{"constant":false,"id":40370,"mutability":"mutable","name":"consoleAddress","nameLocation":"290:14:138","nodeType":"VariableDeclaration","scope":40374,"src":"282:22:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40369,"name":"address","nodeType":"ElementaryTypeName","src":"282:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40372,"initialValue":{"id":40371,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40359,"src":"307:15:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"282:40:138"},{"AST":{"nodeType":"YulBlock","src":"335:126:138","statements":[{"nodeType":"YulVariableDeclaration","src":"340:36:138","value":{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"364:7:138"},{"kind":"number","nodeType":"YulLiteral","src":"373:2:138","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"360:3:138"},"nodeType":"YulFunctionCall","src":"360:16:138"},"variables":[{"name":"payloadStart","nodeType":"YulTypedName","src":"344:12:138","type":""}]},{"nodeType":"YulVariableDeclaration","src":"380:77:138","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"400:3:138"},"nodeType":"YulFunctionCall","src":"400:5:138"},{"name":"consoleAddress","nodeType":"YulIdentifier","src":"407:14:138"},{"name":"payloadStart","nodeType":"YulIdentifier","src":"423:12:138"},{"name":"payloadLength","nodeType":"YulIdentifier","src":"437:13:138"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:138","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"455:1:138","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"389:10:138"},"nodeType":"YulFunctionCall","src":"389:68:138"},"variables":[{"name":"r","nodeType":"YulTypedName","src":"384:1:138","type":""}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":40370,"isOffset":false,"isSlot":false,"src":"407:14:138","valueSize":1},{"declaration":40361,"isOffset":false,"isSlot":false,"src":"364:7:138","valueSize":1},{"declaration":40365,"isOffset":false,"isSlot":false,"src":"437:13:138","valueSize":1}],"id":40373,"nodeType":"InlineAssembly","src":"326:135:138"}]},"id":40375,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"185:15:138","nodeType":"FunctionDefinition","parameters":{"id":40362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40361,"mutability":"mutable","name":"payload","nameLocation":"214:7:138","nodeType":"VariableDeclaration","scope":40375,"src":"201:20:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40360,"name":"bytes","nodeType":"ElementaryTypeName","src":"201:5:138","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"200:22:138"},"returnParameters":{"id":40363,"nodeType":"ParameterList","parameters":[],"src":"236:0:138"},"scope":48415,"src":"176:288:138","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":40385,"nodeType":"Block","src":"496:57:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":40381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"540:7:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":40379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"516:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"516:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"516:32:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40378,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"500:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"500:49:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40384,"nodeType":"ExpressionStatement","src":"500:49:138"}]},"id":40386,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"476:3:138","nodeType":"FunctionDefinition","parameters":{"id":40376,"nodeType":"ParameterList","parameters":[],"src":"479:2:138"},"returnParameters":{"id":40377,"nodeType":"ParameterList","parameters":[],"src":"496:0:138"},"scope":48415,"src":"467:86:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40399,"nodeType":"Block","src":"597:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":40394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"641:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":40395,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40388,"src":"656:2:138","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":40392,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"617:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"617:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"617:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40391,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"601:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"601:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40398,"nodeType":"ExpressionStatement","src":"601:59:138"}]},"id":40400,"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"565:6:138","nodeType":"FunctionDefinition","parameters":{"id":40389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40388,"mutability":"mutable","name":"p0","nameLocation":"579:2:138","nodeType":"VariableDeclaration","scope":40400,"src":"572:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":40387,"name":"int256","nodeType":"ElementaryTypeName","src":"572:6:138","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"571:11:138"},"returnParameters":{"id":40390,"nodeType":"ParameterList","parameters":[],"src":"597:0:138"},"scope":48415,"src":"556:108:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40413,"nodeType":"Block","src":"710:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":40408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"754:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":40409,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40402,"src":"770:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40406,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"730:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"730:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"730:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40405,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"714:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"714:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40412,"nodeType":"ExpressionStatement","src":"714:60:138"}]},"id":40414,"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"676:7:138","nodeType":"FunctionDefinition","parameters":{"id":40403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40402,"mutability":"mutable","name":"p0","nameLocation":"692:2:138","nodeType":"VariableDeclaration","scope":40414,"src":"684:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40401,"name":"uint256","nodeType":"ElementaryTypeName","src":"684:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"683:12:138"},"returnParameters":{"id":40404,"nodeType":"ParameterList","parameters":[],"src":"710:0:138"},"scope":48415,"src":"667:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40427,"nodeType":"Block","src":"832:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":40422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"876:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":40423,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40416,"src":"891:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":40420,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"852:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"852:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"852:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40419,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"836:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"836:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40426,"nodeType":"ExpressionStatement","src":"836:59:138"}]},"id":40428,"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"790:9:138","nodeType":"FunctionDefinition","parameters":{"id":40417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40416,"mutability":"mutable","name":"p0","nameLocation":"814:2:138","nodeType":"VariableDeclaration","scope":40428,"src":"800:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40415,"name":"string","nodeType":"ElementaryTypeName","src":"800:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"799:18:138"},"returnParameters":{"id":40418,"nodeType":"ParameterList","parameters":[],"src":"832:0:138"},"scope":48415,"src":"781:118:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40441,"nodeType":"Block","src":"942:65:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":40436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"986:11:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":40437,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40430,"src":"999:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"962:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"962:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"962:40:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40433,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"946:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"946:57:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40440,"nodeType":"ExpressionStatement","src":"946:57:138"}]},"id":40442,"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"911:7:138","nodeType":"FunctionDefinition","parameters":{"id":40431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40430,"mutability":"mutable","name":"p0","nameLocation":"924:2:138","nodeType":"VariableDeclaration","scope":40442,"src":"919:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40429,"name":"bool","nodeType":"ElementaryTypeName","src":"919:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"918:9:138"},"returnParameters":{"id":40432,"nodeType":"ParameterList","parameters":[],"src":"942:0:138"},"scope":48415,"src":"902:105:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40455,"nodeType":"Block","src":"1056:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":40450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1100:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":40451,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40444,"src":"1116:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1076:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1076:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1076:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40447,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1060:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40454,"nodeType":"ExpressionStatement","src":"1060:60:138"}]},"id":40456,"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1019:10:138","nodeType":"FunctionDefinition","parameters":{"id":40445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40444,"mutability":"mutable","name":"p0","nameLocation":"1038:2:138","nodeType":"VariableDeclaration","scope":40456,"src":"1030:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40443,"name":"address","nodeType":"ElementaryTypeName","src":"1030:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1029:12:138"},"returnParameters":{"id":40446,"nodeType":"ParameterList","parameters":[],"src":"1056:0:138"},"scope":48415,"src":"1010:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40469,"nodeType":"Block","src":"1176:66:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":40464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1220:12:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":40465,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40458,"src":"1234:2:138","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40462,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1196:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1196:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1196:41:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40461,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1180:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1180:58:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40468,"nodeType":"ExpressionStatement","src":"1180:58:138"}]},"id":40470,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1136:8:138","nodeType":"FunctionDefinition","parameters":{"id":40459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40458,"mutability":"mutable","name":"p0","nameLocation":"1158:2:138","nodeType":"VariableDeclaration","scope":40470,"src":"1145:15:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40457,"name":"bytes","nodeType":"ElementaryTypeName","src":"1145:5:138","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1144:17:138"},"returnParameters":{"id":40460,"nodeType":"ParameterList","parameters":[],"src":"1176:0:138"},"scope":48415,"src":"1127:115:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40483,"nodeType":"Block","src":"1289:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":40478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1333:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":40479,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40472,"src":"1348:2:138","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":40476,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1309:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1309:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1309:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40475,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1293:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1293:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40482,"nodeType":"ExpressionStatement","src":"1293:59:138"}]},"id":40484,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1254:9:138","nodeType":"FunctionDefinition","parameters":{"id":40473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40472,"mutability":"mutable","name":"p0","nameLocation":"1271:2:138","nodeType":"VariableDeclaration","scope":40484,"src":"1264:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":40471,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1264:6:138","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1263:11:138"},"returnParameters":{"id":40474,"nodeType":"ParameterList","parameters":[],"src":"1289:0:138"},"scope":48415,"src":"1245:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40497,"nodeType":"Block","src":"1403:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":40492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":40493,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40486,"src":"1462:2:138","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":40490,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1423:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1423:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1423:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40489,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1407:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1407:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40496,"nodeType":"ExpressionStatement","src":"1407:59:138"}]},"id":40498,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"1368:9:138","nodeType":"FunctionDefinition","parameters":{"id":40487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40486,"mutability":"mutable","name":"p0","nameLocation":"1385:2:138","nodeType":"VariableDeclaration","scope":40498,"src":"1378:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":40485,"name":"bytes2","nodeType":"ElementaryTypeName","src":"1378:6:138","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"1377:11:138"},"returnParameters":{"id":40488,"nodeType":"ParameterList","parameters":[],"src":"1403:0:138"},"scope":48415,"src":"1359:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40511,"nodeType":"Block","src":"1517:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":40506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1561:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":40507,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40500,"src":"1576:2:138","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":40504,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1537:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1537:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1537:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40503,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1521:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1521:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40510,"nodeType":"ExpressionStatement","src":"1521:59:138"}]},"id":40512,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"1482:9:138","nodeType":"FunctionDefinition","parameters":{"id":40501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40500,"mutability":"mutable","name":"p0","nameLocation":"1499:2:138","nodeType":"VariableDeclaration","scope":40512,"src":"1492:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":40499,"name":"bytes3","nodeType":"ElementaryTypeName","src":"1492:6:138","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"1491:11:138"},"returnParameters":{"id":40502,"nodeType":"ParameterList","parameters":[],"src":"1517:0:138"},"scope":48415,"src":"1473:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40525,"nodeType":"Block","src":"1631:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":40520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1675:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":40521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40514,"src":"1690:2:138","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":40518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1651:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1651:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1651:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1635:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1635:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40524,"nodeType":"ExpressionStatement","src":"1635:59:138"}]},"id":40526,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"1596:9:138","nodeType":"FunctionDefinition","parameters":{"id":40515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40514,"mutability":"mutable","name":"p0","nameLocation":"1613:2:138","nodeType":"VariableDeclaration","scope":40526,"src":"1606:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40513,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1606:6:138","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1605:11:138"},"returnParameters":{"id":40516,"nodeType":"ParameterList","parameters":[],"src":"1631:0:138"},"scope":48415,"src":"1587:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40539,"nodeType":"Block","src":"1745:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":40534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1789:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":40535,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40528,"src":"1804:2:138","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":40532,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1765:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1765:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1765:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40531,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1749:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1749:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40538,"nodeType":"ExpressionStatement","src":"1749:59:138"}]},"id":40540,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"1710:9:138","nodeType":"FunctionDefinition","parameters":{"id":40529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40528,"mutability":"mutable","name":"p0","nameLocation":"1727:2:138","nodeType":"VariableDeclaration","scope":40540,"src":"1720:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":40527,"name":"bytes5","nodeType":"ElementaryTypeName","src":"1720:6:138","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"1719:11:138"},"returnParameters":{"id":40530,"nodeType":"ParameterList","parameters":[],"src":"1745:0:138"},"scope":48415,"src":"1701:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40553,"nodeType":"Block","src":"1859:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":40548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1903:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":40549,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40542,"src":"1918:2:138","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":40546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1879:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1879:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1879:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40545,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1863:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1863:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40552,"nodeType":"ExpressionStatement","src":"1863:59:138"}]},"id":40554,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"1824:9:138","nodeType":"FunctionDefinition","parameters":{"id":40543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40542,"mutability":"mutable","name":"p0","nameLocation":"1841:2:138","nodeType":"VariableDeclaration","scope":40554,"src":"1834:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":40541,"name":"bytes6","nodeType":"ElementaryTypeName","src":"1834:6:138","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"1833:11:138"},"returnParameters":{"id":40544,"nodeType":"ParameterList","parameters":[],"src":"1859:0:138"},"scope":48415,"src":"1815:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40567,"nodeType":"Block","src":"1973:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":40562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2017:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":40563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40556,"src":"2032:2:138","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":40560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1993:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1993:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1993:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"1977:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1977:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40566,"nodeType":"ExpressionStatement","src":"1977:59:138"}]},"id":40568,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"1938:9:138","nodeType":"FunctionDefinition","parameters":{"id":40557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40556,"mutability":"mutable","name":"p0","nameLocation":"1955:2:138","nodeType":"VariableDeclaration","scope":40568,"src":"1948:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":40555,"name":"bytes7","nodeType":"ElementaryTypeName","src":"1948:6:138","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"1947:11:138"},"returnParameters":{"id":40558,"nodeType":"ParameterList","parameters":[],"src":"1973:0:138"},"scope":48415,"src":"1929:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40581,"nodeType":"Block","src":"2087:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":40576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":40577,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40570,"src":"2146:2:138","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":40574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2107:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2107:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2107:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40573,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2091:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2091:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40580,"nodeType":"ExpressionStatement","src":"2091:59:138"}]},"id":40582,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2052:9:138","nodeType":"FunctionDefinition","parameters":{"id":40571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40570,"mutability":"mutable","name":"p0","nameLocation":"2069:2:138","nodeType":"VariableDeclaration","scope":40582,"src":"2062:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":40569,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2062:6:138","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2061:11:138"},"returnParameters":{"id":40572,"nodeType":"ParameterList","parameters":[],"src":"2087:0:138"},"scope":48415,"src":"2043:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40595,"nodeType":"Block","src":"2201:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":40590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2245:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":40591,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40584,"src":"2260:2:138","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":40588,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2221:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2221:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2221:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40587,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2205:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2205:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40594,"nodeType":"ExpressionStatement","src":"2205:59:138"}]},"id":40596,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2166:9:138","nodeType":"FunctionDefinition","parameters":{"id":40585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40584,"mutability":"mutable","name":"p0","nameLocation":"2183:2:138","nodeType":"VariableDeclaration","scope":40596,"src":"2176:9:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":40583,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2176:6:138","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2175:11:138"},"returnParameters":{"id":40586,"nodeType":"ParameterList","parameters":[],"src":"2201:0:138"},"scope":48415,"src":"2157:111:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40609,"nodeType":"Block","src":"2317:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":40604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2361:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":40605,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40598,"src":"2377:2:138","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":40602,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2337:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2337:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2337:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40601,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2321:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40608,"nodeType":"ExpressionStatement","src":"2321:60:138"}]},"id":40610,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"2280:10:138","nodeType":"FunctionDefinition","parameters":{"id":40599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40598,"mutability":"mutable","name":"p0","nameLocation":"2299:2:138","nodeType":"VariableDeclaration","scope":40610,"src":"2291:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":40597,"name":"bytes10","nodeType":"ElementaryTypeName","src":"2291:7:138","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"2290:12:138"},"returnParameters":{"id":40600,"nodeType":"ParameterList","parameters":[],"src":"2317:0:138"},"scope":48415,"src":"2271:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40623,"nodeType":"Block","src":"2434:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":40618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2478:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":40619,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40612,"src":"2494:2:138","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":40616,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2454:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2454:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2454:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40615,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2438:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2438:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40622,"nodeType":"ExpressionStatement","src":"2438:60:138"}]},"id":40624,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"2397:10:138","nodeType":"FunctionDefinition","parameters":{"id":40613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40612,"mutability":"mutable","name":"p0","nameLocation":"2416:2:138","nodeType":"VariableDeclaration","scope":40624,"src":"2408:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":40611,"name":"bytes11","nodeType":"ElementaryTypeName","src":"2408:7:138","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"2407:12:138"},"returnParameters":{"id":40614,"nodeType":"ParameterList","parameters":[],"src":"2434:0:138"},"scope":48415,"src":"2388:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40637,"nodeType":"Block","src":"2551:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":40632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2595:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":40633,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40626,"src":"2611:2:138","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":40630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2571:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2571:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2571:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40629,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2555:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2555:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40636,"nodeType":"ExpressionStatement","src":"2555:60:138"}]},"id":40638,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"2514:10:138","nodeType":"FunctionDefinition","parameters":{"id":40627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40626,"mutability":"mutable","name":"p0","nameLocation":"2533:2:138","nodeType":"VariableDeclaration","scope":40638,"src":"2525:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":40625,"name":"bytes12","nodeType":"ElementaryTypeName","src":"2525:7:138","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"2524:12:138"},"returnParameters":{"id":40628,"nodeType":"ParameterList","parameters":[],"src":"2551:0:138"},"scope":48415,"src":"2505:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40651,"nodeType":"Block","src":"2668:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":40646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2712:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":40647,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40640,"src":"2728:2:138","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":40644,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2688:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2688:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2688:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40643,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2672:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2672:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40650,"nodeType":"ExpressionStatement","src":"2672:60:138"}]},"id":40652,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"2631:10:138","nodeType":"FunctionDefinition","parameters":{"id":40641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40640,"mutability":"mutable","name":"p0","nameLocation":"2650:2:138","nodeType":"VariableDeclaration","scope":40652,"src":"2642:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":40639,"name":"bytes13","nodeType":"ElementaryTypeName","src":"2642:7:138","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"2641:12:138"},"returnParameters":{"id":40642,"nodeType":"ParameterList","parameters":[],"src":"2668:0:138"},"scope":48415,"src":"2622:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40665,"nodeType":"Block","src":"2785:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":40660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2829:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":40661,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40654,"src":"2845:2:138","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":40658,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2805:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2805:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2805:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40657,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2789:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2789:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40664,"nodeType":"ExpressionStatement","src":"2789:60:138"}]},"id":40666,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"2748:10:138","nodeType":"FunctionDefinition","parameters":{"id":40655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40654,"mutability":"mutable","name":"p0","nameLocation":"2767:2:138","nodeType":"VariableDeclaration","scope":40666,"src":"2759:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":40653,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2759:7:138","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"2758:12:138"},"returnParameters":{"id":40656,"nodeType":"ParameterList","parameters":[],"src":"2785:0:138"},"scope":48415,"src":"2739:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40679,"nodeType":"Block","src":"2902:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":40674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2946:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":40675,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40668,"src":"2962:2:138","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":40672,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2922:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2922:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2922:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40671,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"2906:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2906:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40678,"nodeType":"ExpressionStatement","src":"2906:60:138"}]},"id":40680,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"2865:10:138","nodeType":"FunctionDefinition","parameters":{"id":40669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40668,"mutability":"mutable","name":"p0","nameLocation":"2884:2:138","nodeType":"VariableDeclaration","scope":40680,"src":"2876:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":40667,"name":"bytes15","nodeType":"ElementaryTypeName","src":"2876:7:138","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"2875:12:138"},"returnParameters":{"id":40670,"nodeType":"ParameterList","parameters":[],"src":"2902:0:138"},"scope":48415,"src":"2856:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40693,"nodeType":"Block","src":"3019:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":40688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3063:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":40689,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40682,"src":"3079:2:138","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":40686,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3039:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3039:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3039:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40685,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3023:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3023:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40692,"nodeType":"ExpressionStatement","src":"3023:60:138"}]},"id":40694,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"2982:10:138","nodeType":"FunctionDefinition","parameters":{"id":40683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40682,"mutability":"mutable","name":"p0","nameLocation":"3001:2:138","nodeType":"VariableDeclaration","scope":40694,"src":"2993:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":40681,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2993:7:138","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"2992:12:138"},"returnParameters":{"id":40684,"nodeType":"ParameterList","parameters":[],"src":"3019:0:138"},"scope":48415,"src":"2973:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40707,"nodeType":"Block","src":"3136:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":40702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3180:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":40703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40696,"src":"3196:2:138","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":40700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3156:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3156:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3156:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3140:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3140:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40706,"nodeType":"ExpressionStatement","src":"3140:60:138"}]},"id":40708,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3099:10:138","nodeType":"FunctionDefinition","parameters":{"id":40697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40696,"mutability":"mutable","name":"p0","nameLocation":"3118:2:138","nodeType":"VariableDeclaration","scope":40708,"src":"3110:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":40695,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3110:7:138","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3109:12:138"},"returnParameters":{"id":40698,"nodeType":"ParameterList","parameters":[],"src":"3136:0:138"},"scope":48415,"src":"3090:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40721,"nodeType":"Block","src":"3253:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":40716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3297:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":40717,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40710,"src":"3313:2:138","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":40714,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3273:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3273:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3273:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40713,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3257:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3257:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40720,"nodeType":"ExpressionStatement","src":"3257:60:138"}]},"id":40722,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"3216:10:138","nodeType":"FunctionDefinition","parameters":{"id":40711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40710,"mutability":"mutable","name":"p0","nameLocation":"3235:2:138","nodeType":"VariableDeclaration","scope":40722,"src":"3227:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":40709,"name":"bytes18","nodeType":"ElementaryTypeName","src":"3227:7:138","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"3226:12:138"},"returnParameters":{"id":40712,"nodeType":"ParameterList","parameters":[],"src":"3253:0:138"},"scope":48415,"src":"3207:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40735,"nodeType":"Block","src":"3370:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":40730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3414:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":40731,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40724,"src":"3430:2:138","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":40728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3390:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3390:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3390:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40727,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3374:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3374:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40734,"nodeType":"ExpressionStatement","src":"3374:60:138"}]},"id":40736,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"3333:10:138","nodeType":"FunctionDefinition","parameters":{"id":40725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40724,"mutability":"mutable","name":"p0","nameLocation":"3352:2:138","nodeType":"VariableDeclaration","scope":40736,"src":"3344:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":40723,"name":"bytes19","nodeType":"ElementaryTypeName","src":"3344:7:138","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"3343:12:138"},"returnParameters":{"id":40726,"nodeType":"ParameterList","parameters":[],"src":"3370:0:138"},"scope":48415,"src":"3324:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40749,"nodeType":"Block","src":"3487:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":40744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3531:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":40745,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40738,"src":"3547:2:138","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":40742,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3507:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3507:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3507:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40741,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3491:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3491:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40748,"nodeType":"ExpressionStatement","src":"3491:60:138"}]},"id":40750,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"3450:10:138","nodeType":"FunctionDefinition","parameters":{"id":40739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40738,"mutability":"mutable","name":"p0","nameLocation":"3469:2:138","nodeType":"VariableDeclaration","scope":40750,"src":"3461:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":40737,"name":"bytes20","nodeType":"ElementaryTypeName","src":"3461:7:138","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"3460:12:138"},"returnParameters":{"id":40740,"nodeType":"ParameterList","parameters":[],"src":"3487:0:138"},"scope":48415,"src":"3441:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40763,"nodeType":"Block","src":"3604:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":40758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3648:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":40759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40752,"src":"3664:2:138","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":40756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3624:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3624:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3624:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3608:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3608:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40762,"nodeType":"ExpressionStatement","src":"3608:60:138"}]},"id":40764,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"3567:10:138","nodeType":"FunctionDefinition","parameters":{"id":40753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40752,"mutability":"mutable","name":"p0","nameLocation":"3586:2:138","nodeType":"VariableDeclaration","scope":40764,"src":"3578:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":40751,"name":"bytes21","nodeType":"ElementaryTypeName","src":"3578:7:138","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"3577:12:138"},"returnParameters":{"id":40754,"nodeType":"ParameterList","parameters":[],"src":"3604:0:138"},"scope":48415,"src":"3558:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40777,"nodeType":"Block","src":"3721:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":40772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3765:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":40773,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40766,"src":"3781:2:138","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":40770,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3741:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3741:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3741:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40769,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3725:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3725:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40776,"nodeType":"ExpressionStatement","src":"3725:60:138"}]},"id":40778,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"3684:10:138","nodeType":"FunctionDefinition","parameters":{"id":40767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40766,"mutability":"mutable","name":"p0","nameLocation":"3703:2:138","nodeType":"VariableDeclaration","scope":40778,"src":"3695:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":40765,"name":"bytes22","nodeType":"ElementaryTypeName","src":"3695:7:138","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"3694:12:138"},"returnParameters":{"id":40768,"nodeType":"ParameterList","parameters":[],"src":"3721:0:138"},"scope":48415,"src":"3675:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40791,"nodeType":"Block","src":"3838:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":40786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3882:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":40787,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40780,"src":"3898:2:138","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":40784,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3858:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3858:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3858:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40783,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3842:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3842:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40790,"nodeType":"ExpressionStatement","src":"3842:60:138"}]},"id":40792,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"3801:10:138","nodeType":"FunctionDefinition","parameters":{"id":40781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40780,"mutability":"mutable","name":"p0","nameLocation":"3820:2:138","nodeType":"VariableDeclaration","scope":40792,"src":"3812:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":40779,"name":"bytes23","nodeType":"ElementaryTypeName","src":"3812:7:138","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"3811:12:138"},"returnParameters":{"id":40782,"nodeType":"ParameterList","parameters":[],"src":"3838:0:138"},"scope":48415,"src":"3792:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40805,"nodeType":"Block","src":"3955:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":40800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3999:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":40801,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40794,"src":"4015:2:138","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":40798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3975:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3975:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3975:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40797,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"3959:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3959:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40804,"nodeType":"ExpressionStatement","src":"3959:60:138"}]},"id":40806,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"3918:10:138","nodeType":"FunctionDefinition","parameters":{"id":40795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40794,"mutability":"mutable","name":"p0","nameLocation":"3937:2:138","nodeType":"VariableDeclaration","scope":40806,"src":"3929:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":40793,"name":"bytes24","nodeType":"ElementaryTypeName","src":"3929:7:138","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"3928:12:138"},"returnParameters":{"id":40796,"nodeType":"ParameterList","parameters":[],"src":"3955:0:138"},"scope":48415,"src":"3909:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40819,"nodeType":"Block","src":"4072:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":40814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4116:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":40815,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40808,"src":"4132:2:138","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":40812,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4092:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4092:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4092:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40811,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4076:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4076:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40818,"nodeType":"ExpressionStatement","src":"4076:60:138"}]},"id":40820,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4035:10:138","nodeType":"FunctionDefinition","parameters":{"id":40809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40808,"mutability":"mutable","name":"p0","nameLocation":"4054:2:138","nodeType":"VariableDeclaration","scope":40820,"src":"4046:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":40807,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4046:7:138","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4045:12:138"},"returnParameters":{"id":40810,"nodeType":"ParameterList","parameters":[],"src":"4072:0:138"},"scope":48415,"src":"4026:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40833,"nodeType":"Block","src":"4189:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":40828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4233:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":40829,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40822,"src":"4249:2:138","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":40826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4209:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4209:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4209:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4193:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4193:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40832,"nodeType":"ExpressionStatement","src":"4193:60:138"}]},"id":40834,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"4152:10:138","nodeType":"FunctionDefinition","parameters":{"id":40823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40822,"mutability":"mutable","name":"p0","nameLocation":"4171:2:138","nodeType":"VariableDeclaration","scope":40834,"src":"4163:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":40821,"name":"bytes26","nodeType":"ElementaryTypeName","src":"4163:7:138","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"4162:12:138"},"returnParameters":{"id":40824,"nodeType":"ParameterList","parameters":[],"src":"4189:0:138"},"scope":48415,"src":"4143:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40847,"nodeType":"Block","src":"4306:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":40842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4350:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":40843,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40836,"src":"4366:2:138","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":40840,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4326:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4326:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4326:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40839,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4310:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4310:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40846,"nodeType":"ExpressionStatement","src":"4310:60:138"}]},"id":40848,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"4269:10:138","nodeType":"FunctionDefinition","parameters":{"id":40837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40836,"mutability":"mutable","name":"p0","nameLocation":"4288:2:138","nodeType":"VariableDeclaration","scope":40848,"src":"4280:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":40835,"name":"bytes27","nodeType":"ElementaryTypeName","src":"4280:7:138","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"4279:12:138"},"returnParameters":{"id":40838,"nodeType":"ParameterList","parameters":[],"src":"4306:0:138"},"scope":48415,"src":"4260:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40861,"nodeType":"Block","src":"4423:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":40856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4467:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":40857,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40850,"src":"4483:2:138","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":40854,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4443:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4443:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4443:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40853,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4427:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4427:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40860,"nodeType":"ExpressionStatement","src":"4427:60:138"}]},"id":40862,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"4386:10:138","nodeType":"FunctionDefinition","parameters":{"id":40851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40850,"mutability":"mutable","name":"p0","nameLocation":"4405:2:138","nodeType":"VariableDeclaration","scope":40862,"src":"4397:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":40849,"name":"bytes28","nodeType":"ElementaryTypeName","src":"4397:7:138","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"4396:12:138"},"returnParameters":{"id":40852,"nodeType":"ParameterList","parameters":[],"src":"4423:0:138"},"scope":48415,"src":"4377:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40875,"nodeType":"Block","src":"4540:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":40870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4584:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":40871,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40864,"src":"4600:2:138","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":40868,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4560:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4560:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4560:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40867,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4544:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4544:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40874,"nodeType":"ExpressionStatement","src":"4544:60:138"}]},"id":40876,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"4503:10:138","nodeType":"FunctionDefinition","parameters":{"id":40865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40864,"mutability":"mutable","name":"p0","nameLocation":"4522:2:138","nodeType":"VariableDeclaration","scope":40876,"src":"4514:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":40863,"name":"bytes29","nodeType":"ElementaryTypeName","src":"4514:7:138","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"4513:12:138"},"returnParameters":{"id":40866,"nodeType":"ParameterList","parameters":[],"src":"4540:0:138"},"scope":48415,"src":"4494:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40889,"nodeType":"Block","src":"4657:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":40884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4701:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":40885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40878,"src":"4717:2:138","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":40882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4677:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4677:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4677:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4661:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4661:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40888,"nodeType":"ExpressionStatement","src":"4661:60:138"}]},"id":40890,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"4620:10:138","nodeType":"FunctionDefinition","parameters":{"id":40879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40878,"mutability":"mutable","name":"p0","nameLocation":"4639:2:138","nodeType":"VariableDeclaration","scope":40890,"src":"4631:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":40877,"name":"bytes30","nodeType":"ElementaryTypeName","src":"4631:7:138","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"4630:12:138"},"returnParameters":{"id":40880,"nodeType":"ParameterList","parameters":[],"src":"4657:0:138"},"scope":48415,"src":"4611:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40903,"nodeType":"Block","src":"4774:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":40898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4818:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":40899,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40892,"src":"4834:2:138","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":40896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4794:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4794:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4794:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40895,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4778:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4778:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40902,"nodeType":"ExpressionStatement","src":"4778:60:138"}]},"id":40904,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"4737:10:138","nodeType":"FunctionDefinition","parameters":{"id":40893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40892,"mutability":"mutable","name":"p0","nameLocation":"4756:2:138","nodeType":"VariableDeclaration","scope":40904,"src":"4748:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":40891,"name":"bytes31","nodeType":"ElementaryTypeName","src":"4748:7:138","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"4747:12:138"},"returnParameters":{"id":40894,"nodeType":"ParameterList","parameters":[],"src":"4774:0:138"},"scope":48415,"src":"4728:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40917,"nodeType":"Block","src":"4891:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":40912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4935:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":40913,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"4951:2:138","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":40910,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4911:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4911:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4911:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40909,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"4895:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4895:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40916,"nodeType":"ExpressionStatement","src":"4895:60:138"}]},"id":40918,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"4854:10:138","nodeType":"FunctionDefinition","parameters":{"id":40907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40906,"mutability":"mutable","name":"p0","nameLocation":"4873:2:138","nodeType":"VariableDeclaration","scope":40918,"src":"4865:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4865:7:138","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4864:12:138"},"returnParameters":{"id":40908,"nodeType":"ParameterList","parameters":[],"src":"4891:0:138"},"scope":48415,"src":"4845:114:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40931,"nodeType":"Block","src":"5001:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":40926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5045:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":40927,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40920,"src":"5061:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5021:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5021:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5021:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40923,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5005:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5005:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40930,"nodeType":"ExpressionStatement","src":"5005:60:138"}]},"id":40932,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"4971:3:138","nodeType":"FunctionDefinition","parameters":{"id":40921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40920,"mutability":"mutable","name":"p0","nameLocation":"4983:2:138","nodeType":"VariableDeclaration","scope":40932,"src":"4975:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40919,"name":"uint256","nodeType":"ElementaryTypeName","src":"4975:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4974:12:138"},"returnParameters":{"id":40922,"nodeType":"ParameterList","parameters":[],"src":"5001:0:138"},"scope":48415,"src":"4962:107:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40945,"nodeType":"Block","src":"5117:67:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":40940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5161:13:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":40941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40934,"src":"5176:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":40938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5137:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5137:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5137:42:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5121:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5121:59:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40944,"nodeType":"ExpressionStatement","src":"5121:59:138"}]},"id":40946,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5081:3:138","nodeType":"FunctionDefinition","parameters":{"id":40935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40934,"mutability":"mutable","name":"p0","nameLocation":"5099:2:138","nodeType":"VariableDeclaration","scope":40946,"src":"5085:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40933,"name":"string","nodeType":"ElementaryTypeName","src":"5085:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5084:18:138"},"returnParameters":{"id":40936,"nodeType":"ParameterList","parameters":[],"src":"5117:0:138"},"scope":48415,"src":"5072:112:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40959,"nodeType":"Block","src":"5223:65:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":40954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5267:11:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":40955,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40948,"src":"5280:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5243:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5243:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5243:40:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5227:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5227:57:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40958,"nodeType":"ExpressionStatement","src":"5227:57:138"}]},"id":40960,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5196:3:138","nodeType":"FunctionDefinition","parameters":{"id":40949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40948,"mutability":"mutable","name":"p0","nameLocation":"5205:2:138","nodeType":"VariableDeclaration","scope":40960,"src":"5200:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40947,"name":"bool","nodeType":"ElementaryTypeName","src":"5200:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5199:9:138"},"returnParameters":{"id":40950,"nodeType":"ParameterList","parameters":[],"src":"5223:0:138"},"scope":48415,"src":"5187:101:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40973,"nodeType":"Block","src":"5330:68:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":40968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5374:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":40969,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"5390:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5350:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5350:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5350:43:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40965,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5334:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5334:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40972,"nodeType":"ExpressionStatement","src":"5334:60:138"}]},"id":40974,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5300:3:138","nodeType":"FunctionDefinition","parameters":{"id":40963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40962,"mutability":"mutable","name":"p0","nameLocation":"5312:2:138","nodeType":"VariableDeclaration","scope":40974,"src":"5304:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40961,"name":"address","nodeType":"ElementaryTypeName","src":"5304:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5303:12:138"},"returnParameters":{"id":40964,"nodeType":"ParameterList","parameters":[],"src":"5330:0:138"},"scope":48415,"src":"5291:107:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":40990,"nodeType":"Block","src":"5452:80:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e7432353629","id":40984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5496:22:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},"value":"log(uint256,uint256)"},{"id":40985,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40976,"src":"5520:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40986,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40978,"src":"5524:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40982,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5472:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5472:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":40987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5472:55:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40981,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5456:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":40988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5456:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40989,"nodeType":"ExpressionStatement","src":"5456:72:138"}]},"id":40991,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5410:3:138","nodeType":"FunctionDefinition","parameters":{"id":40979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40976,"mutability":"mutable","name":"p0","nameLocation":"5422:2:138","nodeType":"VariableDeclaration","scope":40991,"src":"5414:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40975,"name":"uint256","nodeType":"ElementaryTypeName","src":"5414:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40978,"mutability":"mutable","name":"p1","nameLocation":"5434:2:138","nodeType":"VariableDeclaration","scope":40991,"src":"5426:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40977,"name":"uint256","nodeType":"ElementaryTypeName","src":"5426:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5413:24:138"},"returnParameters":{"id":40980,"nodeType":"ParameterList","parameters":[],"src":"5452:0:138"},"scope":48415,"src":"5401:131:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41007,"nodeType":"Block","src":"5592:79:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e6729","id":41001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5636:21:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},"value":"log(uint256,string)"},{"id":41002,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40993,"src":"5659:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41003,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40995,"src":"5663:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":40999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5612:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5612:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:54:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40998,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5596:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5596:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41006,"nodeType":"ExpressionStatement","src":"5596:71:138"}]},"id":41008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5544:3:138","nodeType":"FunctionDefinition","parameters":{"id":40996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40993,"mutability":"mutable","name":"p0","nameLocation":"5556:2:138","nodeType":"VariableDeclaration","scope":41008,"src":"5548:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40992,"name":"uint256","nodeType":"ElementaryTypeName","src":"5548:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40995,"mutability":"mutable","name":"p1","nameLocation":"5574:2:138","nodeType":"VariableDeclaration","scope":41008,"src":"5560:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40994,"name":"string","nodeType":"ElementaryTypeName","src":"5560:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5547:30:138"},"returnParameters":{"id":40997,"nodeType":"ParameterList","parameters":[],"src":"5592:0:138"},"scope":48415,"src":"5535:136:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41024,"nodeType":"Block","src":"5722:77:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c29","id":41018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5766:19:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},"value":"log(uint256,bool)"},{"id":41019,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41010,"src":"5787:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41020,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41012,"src":"5791:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41016,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5742:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5742:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5742:52:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41015,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5726:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5726:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41023,"nodeType":"ExpressionStatement","src":"5726:69:138"}]},"id":41025,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5683:3:138","nodeType":"FunctionDefinition","parameters":{"id":41013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41010,"mutability":"mutable","name":"p0","nameLocation":"5695:2:138","nodeType":"VariableDeclaration","scope":41025,"src":"5687:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41009,"name":"uint256","nodeType":"ElementaryTypeName","src":"5687:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41012,"mutability":"mutable","name":"p1","nameLocation":"5704:2:138","nodeType":"VariableDeclaration","scope":41025,"src":"5699:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41011,"name":"bool","nodeType":"ElementaryTypeName","src":"5699:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5686:21:138"},"returnParameters":{"id":41014,"nodeType":"ParameterList","parameters":[],"src":"5722:0:138"},"scope":48415,"src":"5674:125:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41041,"nodeType":"Block","src":"5853:80:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c6164647265737329","id":41035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5897:22:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},"value":"log(uint256,address)"},{"id":41036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41027,"src":"5921:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41037,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41029,"src":"5925:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5873:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5873:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5873:55:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5857:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5857:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41040,"nodeType":"ExpressionStatement","src":"5857:72:138"}]},"id":41042,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5811:3:138","nodeType":"FunctionDefinition","parameters":{"id":41030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41027,"mutability":"mutable","name":"p0","nameLocation":"5823:2:138","nodeType":"VariableDeclaration","scope":41042,"src":"5815:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41026,"name":"uint256","nodeType":"ElementaryTypeName","src":"5815:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41029,"mutability":"mutable","name":"p1","nameLocation":"5835:2:138","nodeType":"VariableDeclaration","scope":41042,"src":"5827:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41028,"name":"address","nodeType":"ElementaryTypeName","src":"5827:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5814:24:138"},"returnParameters":{"id":41031,"nodeType":"ParameterList","parameters":[],"src":"5853:0:138"},"scope":48415,"src":"5802:131:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41058,"nodeType":"Block","src":"5993:79:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":41052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6037:21:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":41053,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41044,"src":"6060:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41054,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41046,"src":"6064:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41050,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6013:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6013:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6013:54:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41049,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"5997:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5997:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41057,"nodeType":"ExpressionStatement","src":"5997:71:138"}]},"id":41059,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5945:3:138","nodeType":"FunctionDefinition","parameters":{"id":41047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41044,"mutability":"mutable","name":"p0","nameLocation":"5963:2:138","nodeType":"VariableDeclaration","scope":41059,"src":"5949:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41043,"name":"string","nodeType":"ElementaryTypeName","src":"5949:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41046,"mutability":"mutable","name":"p1","nameLocation":"5975:2:138","nodeType":"VariableDeclaration","scope":41059,"src":"5967:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41045,"name":"uint256","nodeType":"ElementaryTypeName","src":"5967:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5948:30:138"},"returnParameters":{"id":41048,"nodeType":"ParameterList","parameters":[],"src":"5993:0:138"},"scope":48415,"src":"5936:136:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41075,"nodeType":"Block","src":"6138:78:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":41069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6182:20:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":41070,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41061,"src":"6204:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41071,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41063,"src":"6208:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6158:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6158:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6158:53:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41066,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"6142:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6142:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41074,"nodeType":"ExpressionStatement","src":"6142:70:138"}]},"id":41076,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6084:3:138","nodeType":"FunctionDefinition","parameters":{"id":41064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41061,"mutability":"mutable","name":"p0","nameLocation":"6102:2:138","nodeType":"VariableDeclaration","scope":41076,"src":"6088:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41060,"name":"string","nodeType":"ElementaryTypeName","src":"6088:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41063,"mutability":"mutable","name":"p1","nameLocation":"6120:2:138","nodeType":"VariableDeclaration","scope":41076,"src":"6106:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41062,"name":"string","nodeType":"ElementaryTypeName","src":"6106:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6087:36:138"},"returnParameters":{"id":41065,"nodeType":"ParameterList","parameters":[],"src":"6138:0:138"},"scope":48415,"src":"6075:141:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41092,"nodeType":"Block","src":"6273:76:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":41086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6317:18:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":41087,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41078,"src":"6337:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41088,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41080,"src":"6341:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41084,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6293:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6293:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6293:51:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41083,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"6277:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6277:68:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41091,"nodeType":"ExpressionStatement","src":"6277:68:138"}]},"id":41093,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6228:3:138","nodeType":"FunctionDefinition","parameters":{"id":41081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41078,"mutability":"mutable","name":"p0","nameLocation":"6246:2:138","nodeType":"VariableDeclaration","scope":41093,"src":"6232:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41077,"name":"string","nodeType":"ElementaryTypeName","src":"6232:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41080,"mutability":"mutable","name":"p1","nameLocation":"6255:2:138","nodeType":"VariableDeclaration","scope":41093,"src":"6250:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41079,"name":"bool","nodeType":"ElementaryTypeName","src":"6250:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6231:27:138"},"returnParameters":{"id":41082,"nodeType":"ParameterList","parameters":[],"src":"6273:0:138"},"scope":48415,"src":"6219:130:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41109,"nodeType":"Block","src":"6409:79:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":41103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6453:21:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":41104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41095,"src":"6476:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41097,"src":"6480:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6429:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6429:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6429:54:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"6413:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6413:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41108,"nodeType":"ExpressionStatement","src":"6413:71:138"}]},"id":41110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6361:3:138","nodeType":"FunctionDefinition","parameters":{"id":41098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41095,"mutability":"mutable","name":"p0","nameLocation":"6379:2:138","nodeType":"VariableDeclaration","scope":41110,"src":"6365:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41094,"name":"string","nodeType":"ElementaryTypeName","src":"6365:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41097,"mutability":"mutable","name":"p1","nameLocation":"6391:2:138","nodeType":"VariableDeclaration","scope":41110,"src":"6383:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41096,"name":"address","nodeType":"ElementaryTypeName","src":"6383:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6364:30:138"},"returnParameters":{"id":41099,"nodeType":"ParameterList","parameters":[],"src":"6409:0:138"},"scope":48415,"src":"6352:136:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41126,"nodeType":"Block","src":"6539:77:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7432353629","id":41120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6583:19:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},"value":"log(bool,uint256)"},{"id":41121,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41112,"src":"6604:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41122,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41114,"src":"6608:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6559:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6559:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6559:52:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41117,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"6543:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6543:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41125,"nodeType":"ExpressionStatement","src":"6543:69:138"}]},"id":41127,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6500:3:138","nodeType":"FunctionDefinition","parameters":{"id":41115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41112,"mutability":"mutable","name":"p0","nameLocation":"6509:2:138","nodeType":"VariableDeclaration","scope":41127,"src":"6504:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41111,"name":"bool","nodeType":"ElementaryTypeName","src":"6504:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41114,"mutability":"mutable","name":"p1","nameLocation":"6521:2:138","nodeType":"VariableDeclaration","scope":41127,"src":"6513:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41113,"name":"uint256","nodeType":"ElementaryTypeName","src":"6513:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6503:21:138"},"returnParameters":{"id":41116,"nodeType":"ParameterList","parameters":[],"src":"6539:0:138"},"scope":48415,"src":"6491:125:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41143,"nodeType":"Block","src":"6673:76:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":41137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6717:18:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":41138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41129,"src":"6737:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41131,"src":"6741:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6693:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6693:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6693:51:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"6677:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6677:68:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41142,"nodeType":"ExpressionStatement","src":"6677:68:138"}]},"id":41144,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6628:3:138","nodeType":"FunctionDefinition","parameters":{"id":41132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41129,"mutability":"mutable","name":"p0","nameLocation":"6637:2:138","nodeType":"VariableDeclaration","scope":41144,"src":"6632:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41128,"name":"bool","nodeType":"ElementaryTypeName","src":"6632:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41131,"mutability":"mutable","name":"p1","nameLocation":"6655:2:138","nodeType":"VariableDeclaration","scope":41144,"src":"6641:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41130,"name":"string","nodeType":"ElementaryTypeName","src":"6641:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6631:27:138"},"returnParameters":{"id":41133,"nodeType":"ParameterList","parameters":[],"src":"6673:0:138"},"scope":48415,"src":"6619:130:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41160,"nodeType":"Block","src":"6797:74:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":41154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6841:16:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":41155,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41146,"src":"6859:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41156,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"6863:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41152,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6817:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6817:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6817:49:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41151,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"6801:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6801:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41159,"nodeType":"ExpressionStatement","src":"6801:66:138"}]},"id":41161,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6761:3:138","nodeType":"FunctionDefinition","parameters":{"id":41149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41146,"mutability":"mutable","name":"p0","nameLocation":"6770:2:138","nodeType":"VariableDeclaration","scope":41161,"src":"6765:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41145,"name":"bool","nodeType":"ElementaryTypeName","src":"6765:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41148,"mutability":"mutable","name":"p1","nameLocation":"6779:2:138","nodeType":"VariableDeclaration","scope":41161,"src":"6774:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41147,"name":"bool","nodeType":"ElementaryTypeName","src":"6774:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6764:18:138"},"returnParameters":{"id":41150,"nodeType":"ParameterList","parameters":[],"src":"6797:0:138"},"scope":48415,"src":"6752:119:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41177,"nodeType":"Block","src":"6922:77:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":41171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6966:19:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":41172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41163,"src":"6987:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41165,"src":"6991:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6942:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6942:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6942:52:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"6926:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6926:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41176,"nodeType":"ExpressionStatement","src":"6926:69:138"}]},"id":41178,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6883:3:138","nodeType":"FunctionDefinition","parameters":{"id":41166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41163,"mutability":"mutable","name":"p0","nameLocation":"6892:2:138","nodeType":"VariableDeclaration","scope":41178,"src":"6887:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41162,"name":"bool","nodeType":"ElementaryTypeName","src":"6887:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41165,"mutability":"mutable","name":"p1","nameLocation":"6904:2:138","nodeType":"VariableDeclaration","scope":41178,"src":"6896:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41164,"name":"address","nodeType":"ElementaryTypeName","src":"6896:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6886:21:138"},"returnParameters":{"id":41167,"nodeType":"ParameterList","parameters":[],"src":"6922:0:138"},"scope":48415,"src":"6874:125:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41194,"nodeType":"Block","src":"7053:80:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7432353629","id":41188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7097:22:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},"value":"log(address,uint256)"},{"id":41189,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41180,"src":"7121:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41190,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41182,"src":"7125:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7073:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7073:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7073:55:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41185,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"7057:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7057:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41193,"nodeType":"ExpressionStatement","src":"7057:72:138"}]},"id":41195,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7011:3:138","nodeType":"FunctionDefinition","parameters":{"id":41183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41180,"mutability":"mutable","name":"p0","nameLocation":"7023:2:138","nodeType":"VariableDeclaration","scope":41195,"src":"7015:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41179,"name":"address","nodeType":"ElementaryTypeName","src":"7015:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41182,"mutability":"mutable","name":"p1","nameLocation":"7035:2:138","nodeType":"VariableDeclaration","scope":41195,"src":"7027:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41181,"name":"uint256","nodeType":"ElementaryTypeName","src":"7027:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7014:24:138"},"returnParameters":{"id":41184,"nodeType":"ParameterList","parameters":[],"src":"7053:0:138"},"scope":48415,"src":"7002:131:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41211,"nodeType":"Block","src":"7193:79:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":41205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7237:21:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":41206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"7260:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41207,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41199,"src":"7264:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7213:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7213:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7213:54:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"7197:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7197:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41210,"nodeType":"ExpressionStatement","src":"7197:71:138"}]},"id":41212,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7145:3:138","nodeType":"FunctionDefinition","parameters":{"id":41200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41197,"mutability":"mutable","name":"p0","nameLocation":"7157:2:138","nodeType":"VariableDeclaration","scope":41212,"src":"7149:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41196,"name":"address","nodeType":"ElementaryTypeName","src":"7149:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41199,"mutability":"mutable","name":"p1","nameLocation":"7175:2:138","nodeType":"VariableDeclaration","scope":41212,"src":"7161:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41198,"name":"string","nodeType":"ElementaryTypeName","src":"7161:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7148:30:138"},"returnParameters":{"id":41201,"nodeType":"ParameterList","parameters":[],"src":"7193:0:138"},"scope":48415,"src":"7136:136:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41228,"nodeType":"Block","src":"7323:77:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":41222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7367:19:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":41223,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41214,"src":"7388:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41224,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41216,"src":"7392:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7343:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7343:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7343:52:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41219,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"7327:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7327:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41227,"nodeType":"ExpressionStatement","src":"7327:69:138"}]},"id":41229,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7284:3:138","nodeType":"FunctionDefinition","parameters":{"id":41217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41214,"mutability":"mutable","name":"p0","nameLocation":"7296:2:138","nodeType":"VariableDeclaration","scope":41229,"src":"7288:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41213,"name":"address","nodeType":"ElementaryTypeName","src":"7288:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41216,"mutability":"mutable","name":"p1","nameLocation":"7305:2:138","nodeType":"VariableDeclaration","scope":41229,"src":"7300:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41215,"name":"bool","nodeType":"ElementaryTypeName","src":"7300:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7287:21:138"},"returnParameters":{"id":41218,"nodeType":"ParameterList","parameters":[],"src":"7323:0:138"},"scope":48415,"src":"7275:125:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41245,"nodeType":"Block","src":"7454:80:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":41239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7498:22:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":41240,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41231,"src":"7522:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41241,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41233,"src":"7526:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7474:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7474:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7474:55:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41236,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"7458:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7458:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41244,"nodeType":"ExpressionStatement","src":"7458:72:138"}]},"id":41246,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7412:3:138","nodeType":"FunctionDefinition","parameters":{"id":41234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41231,"mutability":"mutable","name":"p0","nameLocation":"7424:2:138","nodeType":"VariableDeclaration","scope":41246,"src":"7416:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41230,"name":"address","nodeType":"ElementaryTypeName","src":"7416:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41233,"mutability":"mutable","name":"p1","nameLocation":"7436:2:138","nodeType":"VariableDeclaration","scope":41246,"src":"7428:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41232,"name":"address","nodeType":"ElementaryTypeName","src":"7428:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7415:24:138"},"returnParameters":{"id":41235,"nodeType":"ParameterList","parameters":[],"src":"7454:0:138"},"scope":48415,"src":"7403:131:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41265,"nodeType":"Block","src":"7600:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e7432353629","id":41258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7644:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256)"},{"id":41259,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41248,"src":"7676:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41260,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41250,"src":"7680:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41261,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41252,"src":"7684:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41256,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7620:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7620:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7620:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41255,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"7604:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7604:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41264,"nodeType":"ExpressionStatement","src":"7604:84:138"}]},"id":41266,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7546:3:138","nodeType":"FunctionDefinition","parameters":{"id":41253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41248,"mutability":"mutable","name":"p0","nameLocation":"7558:2:138","nodeType":"VariableDeclaration","scope":41266,"src":"7550:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41247,"name":"uint256","nodeType":"ElementaryTypeName","src":"7550:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41250,"mutability":"mutable","name":"p1","nameLocation":"7570:2:138","nodeType":"VariableDeclaration","scope":41266,"src":"7562:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41249,"name":"uint256","nodeType":"ElementaryTypeName","src":"7562:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41252,"mutability":"mutable","name":"p2","nameLocation":"7582:2:138","nodeType":"VariableDeclaration","scope":41266,"src":"7574:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41251,"name":"uint256","nodeType":"ElementaryTypeName","src":"7574:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7549:36:138"},"returnParameters":{"id":41254,"nodeType":"ParameterList","parameters":[],"src":"7600:0:138"},"scope":48415,"src":"7537:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41285,"nodeType":"Block","src":"7764:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e6729","id":41278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7808:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},"value":"log(uint256,uint256,string)"},{"id":41279,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41268,"src":"7839:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41280,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41270,"src":"7843:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41281,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41272,"src":"7847:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7784:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7784:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7784:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41275,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"7768:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7768:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41284,"nodeType":"ExpressionStatement","src":"7768:83:138"}]},"id":41286,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7704:3:138","nodeType":"FunctionDefinition","parameters":{"id":41273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41268,"mutability":"mutable","name":"p0","nameLocation":"7716:2:138","nodeType":"VariableDeclaration","scope":41286,"src":"7708:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41267,"name":"uint256","nodeType":"ElementaryTypeName","src":"7708:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41270,"mutability":"mutable","name":"p1","nameLocation":"7728:2:138","nodeType":"VariableDeclaration","scope":41286,"src":"7720:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41269,"name":"uint256","nodeType":"ElementaryTypeName","src":"7720:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41272,"mutability":"mutable","name":"p2","nameLocation":"7746:2:138","nodeType":"VariableDeclaration","scope":41286,"src":"7732:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41271,"name":"string","nodeType":"ElementaryTypeName","src":"7732:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7707:42:138"},"returnParameters":{"id":41274,"nodeType":"ParameterList","parameters":[],"src":"7764:0:138"},"scope":48415,"src":"7695:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41305,"nodeType":"Block","src":"7918:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c29","id":41298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7962:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},"value":"log(uint256,uint256,bool)"},{"id":41299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41288,"src":"7991:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41290,"src":"7995:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41292,"src":"7999:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7938:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7938:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7938:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"7922:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7922:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41304,"nodeType":"ExpressionStatement","src":"7922:81:138"}]},"id":41306,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7867:3:138","nodeType":"FunctionDefinition","parameters":{"id":41293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41288,"mutability":"mutable","name":"p0","nameLocation":"7879:2:138","nodeType":"VariableDeclaration","scope":41306,"src":"7871:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41287,"name":"uint256","nodeType":"ElementaryTypeName","src":"7871:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41290,"mutability":"mutable","name":"p1","nameLocation":"7891:2:138","nodeType":"VariableDeclaration","scope":41306,"src":"7883:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41289,"name":"uint256","nodeType":"ElementaryTypeName","src":"7883:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41292,"mutability":"mutable","name":"p2","nameLocation":"7900:2:138","nodeType":"VariableDeclaration","scope":41306,"src":"7895:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41291,"name":"bool","nodeType":"ElementaryTypeName","src":"7895:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7870:33:138"},"returnParameters":{"id":41294,"nodeType":"ParameterList","parameters":[],"src":"7918:0:138"},"scope":48415,"src":"7858:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41325,"nodeType":"Block","src":"8073:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c6164647265737329","id":41318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8117:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},"value":"log(uint256,uint256,address)"},{"id":41319,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41308,"src":"8149:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41320,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41310,"src":"8153:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41321,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41312,"src":"8157:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8093:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8093:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8093:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41315,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"8077:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8077:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41324,"nodeType":"ExpressionStatement","src":"8077:84:138"}]},"id":41326,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8019:3:138","nodeType":"FunctionDefinition","parameters":{"id":41313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41308,"mutability":"mutable","name":"p0","nameLocation":"8031:2:138","nodeType":"VariableDeclaration","scope":41326,"src":"8023:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41307,"name":"uint256","nodeType":"ElementaryTypeName","src":"8023:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41310,"mutability":"mutable","name":"p1","nameLocation":"8043:2:138","nodeType":"VariableDeclaration","scope":41326,"src":"8035:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41309,"name":"uint256","nodeType":"ElementaryTypeName","src":"8035:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41312,"mutability":"mutable","name":"p2","nameLocation":"8055:2:138","nodeType":"VariableDeclaration","scope":41326,"src":"8047:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41311,"name":"address","nodeType":"ElementaryTypeName","src":"8047:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8022:36:138"},"returnParameters":{"id":41314,"nodeType":"ParameterList","parameters":[],"src":"8073:0:138"},"scope":48415,"src":"8010:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41345,"nodeType":"Block","src":"8237:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e7432353629","id":41338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8281:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},"value":"log(uint256,string,uint256)"},{"id":41339,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41328,"src":"8312:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41340,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41330,"src":"8316:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41341,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41332,"src":"8320:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41336,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8257:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8257:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8257:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41335,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"8241:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8241:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41344,"nodeType":"ExpressionStatement","src":"8241:83:138"}]},"id":41346,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8177:3:138","nodeType":"FunctionDefinition","parameters":{"id":41333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41328,"mutability":"mutable","name":"p0","nameLocation":"8189:2:138","nodeType":"VariableDeclaration","scope":41346,"src":"8181:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41327,"name":"uint256","nodeType":"ElementaryTypeName","src":"8181:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41330,"mutability":"mutable","name":"p1","nameLocation":"8207:2:138","nodeType":"VariableDeclaration","scope":41346,"src":"8193:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41329,"name":"string","nodeType":"ElementaryTypeName","src":"8193:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41332,"mutability":"mutable","name":"p2","nameLocation":"8219:2:138","nodeType":"VariableDeclaration","scope":41346,"src":"8211:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41331,"name":"uint256","nodeType":"ElementaryTypeName","src":"8211:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8180:42:138"},"returnParameters":{"id":41334,"nodeType":"ParameterList","parameters":[],"src":"8237:0:138"},"scope":48415,"src":"8168:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41365,"nodeType":"Block","src":"8406:90:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e6729","id":41358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8450:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},"value":"log(uint256,string,string)"},{"id":41359,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41348,"src":"8480:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41360,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41350,"src":"8484:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41361,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41352,"src":"8488:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8426:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8426:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8426:65:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41355,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"8410:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8410:82:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41364,"nodeType":"ExpressionStatement","src":"8410:82:138"}]},"id":41366,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8340:3:138","nodeType":"FunctionDefinition","parameters":{"id":41353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41348,"mutability":"mutable","name":"p0","nameLocation":"8352:2:138","nodeType":"VariableDeclaration","scope":41366,"src":"8344:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41347,"name":"uint256","nodeType":"ElementaryTypeName","src":"8344:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41350,"mutability":"mutable","name":"p1","nameLocation":"8370:2:138","nodeType":"VariableDeclaration","scope":41366,"src":"8356:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41349,"name":"string","nodeType":"ElementaryTypeName","src":"8356:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41352,"mutability":"mutable","name":"p2","nameLocation":"8388:2:138","nodeType":"VariableDeclaration","scope":41366,"src":"8374:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41351,"name":"string","nodeType":"ElementaryTypeName","src":"8374:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8343:48:138"},"returnParameters":{"id":41354,"nodeType":"ParameterList","parameters":[],"src":"8406:0:138"},"scope":48415,"src":"8331:165:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41385,"nodeType":"Block","src":"8565:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c29","id":41378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8609:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},"value":"log(uint256,string,bool)"},{"id":41379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41368,"src":"8637:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"8641:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41372,"src":"8645:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8585:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8585:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8585:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"8569:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8569:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41384,"nodeType":"ExpressionStatement","src":"8569:80:138"}]},"id":41386,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8508:3:138","nodeType":"FunctionDefinition","parameters":{"id":41373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41368,"mutability":"mutable","name":"p0","nameLocation":"8520:2:138","nodeType":"VariableDeclaration","scope":41386,"src":"8512:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41367,"name":"uint256","nodeType":"ElementaryTypeName","src":"8512:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41370,"mutability":"mutable","name":"p1","nameLocation":"8538:2:138","nodeType":"VariableDeclaration","scope":41386,"src":"8524:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41369,"name":"string","nodeType":"ElementaryTypeName","src":"8524:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41372,"mutability":"mutable","name":"p2","nameLocation":"8547:2:138","nodeType":"VariableDeclaration","scope":41386,"src":"8542:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41371,"name":"bool","nodeType":"ElementaryTypeName","src":"8542:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8511:39:138"},"returnParameters":{"id":41374,"nodeType":"ParameterList","parameters":[],"src":"8565:0:138"},"scope":48415,"src":"8499:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41405,"nodeType":"Block","src":"8725:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c6164647265737329","id":41398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8769:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},"value":"log(uint256,string,address)"},{"id":41399,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41388,"src":"8800:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41400,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41390,"src":"8804:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41401,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41392,"src":"8808:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41396,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8745:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8745:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8745:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41395,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"8729:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8729:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41404,"nodeType":"ExpressionStatement","src":"8729:83:138"}]},"id":41406,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8665:3:138","nodeType":"FunctionDefinition","parameters":{"id":41393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41388,"mutability":"mutable","name":"p0","nameLocation":"8677:2:138","nodeType":"VariableDeclaration","scope":41406,"src":"8669:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41387,"name":"uint256","nodeType":"ElementaryTypeName","src":"8669:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41390,"mutability":"mutable","name":"p1","nameLocation":"8695:2:138","nodeType":"VariableDeclaration","scope":41406,"src":"8681:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41389,"name":"string","nodeType":"ElementaryTypeName","src":"8681:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41392,"mutability":"mutable","name":"p2","nameLocation":"8707:2:138","nodeType":"VariableDeclaration","scope":41406,"src":"8699:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41391,"name":"address","nodeType":"ElementaryTypeName","src":"8699:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8668:42:138"},"returnParameters":{"id":41394,"nodeType":"ParameterList","parameters":[],"src":"8725:0:138"},"scope":48415,"src":"8656:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41425,"nodeType":"Block","src":"8879:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e7432353629","id":41418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8923:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},"value":"log(uint256,bool,uint256)"},{"id":41419,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41408,"src":"8952:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41420,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41410,"src":"8956:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41421,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41412,"src":"8960:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41416,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8899:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8899:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8899:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41415,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"8883:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8883:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41424,"nodeType":"ExpressionStatement","src":"8883:81:138"}]},"id":41426,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8828:3:138","nodeType":"FunctionDefinition","parameters":{"id":41413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41408,"mutability":"mutable","name":"p0","nameLocation":"8840:2:138","nodeType":"VariableDeclaration","scope":41426,"src":"8832:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41407,"name":"uint256","nodeType":"ElementaryTypeName","src":"8832:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41410,"mutability":"mutable","name":"p1","nameLocation":"8849:2:138","nodeType":"VariableDeclaration","scope":41426,"src":"8844:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41409,"name":"bool","nodeType":"ElementaryTypeName","src":"8844:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41412,"mutability":"mutable","name":"p2","nameLocation":"8861:2:138","nodeType":"VariableDeclaration","scope":41426,"src":"8853:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41411,"name":"uint256","nodeType":"ElementaryTypeName","src":"8853:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8831:33:138"},"returnParameters":{"id":41414,"nodeType":"ParameterList","parameters":[],"src":"8879:0:138"},"scope":48415,"src":"8819:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41445,"nodeType":"Block","src":"9037:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e6729","id":41438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9081:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},"value":"log(uint256,bool,string)"},{"id":41439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41428,"src":"9109:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41430,"src":"9113:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41432,"src":"9117:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9057:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9057:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9057:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"9041:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9041:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41444,"nodeType":"ExpressionStatement","src":"9041:80:138"}]},"id":41446,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8980:3:138","nodeType":"FunctionDefinition","parameters":{"id":41433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41428,"mutability":"mutable","name":"p0","nameLocation":"8992:2:138","nodeType":"VariableDeclaration","scope":41446,"src":"8984:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41427,"name":"uint256","nodeType":"ElementaryTypeName","src":"8984:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41430,"mutability":"mutable","name":"p1","nameLocation":"9001:2:138","nodeType":"VariableDeclaration","scope":41446,"src":"8996:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41429,"name":"bool","nodeType":"ElementaryTypeName","src":"8996:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41432,"mutability":"mutable","name":"p2","nameLocation":"9019:2:138","nodeType":"VariableDeclaration","scope":41446,"src":"9005:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41431,"name":"string","nodeType":"ElementaryTypeName","src":"9005:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8983:39:138"},"returnParameters":{"id":41434,"nodeType":"ParameterList","parameters":[],"src":"9037:0:138"},"scope":48415,"src":"8971:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41465,"nodeType":"Block","src":"9185:86:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c29","id":41458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9229:24:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},"value":"log(uint256,bool,bool)"},{"id":41459,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41448,"src":"9255:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41460,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41450,"src":"9259:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41461,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41452,"src":"9263:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9205:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9205:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9205:61:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41455,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"9189:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9189:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41464,"nodeType":"ExpressionStatement","src":"9189:78:138"}]},"id":41466,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9137:3:138","nodeType":"FunctionDefinition","parameters":{"id":41453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41448,"mutability":"mutable","name":"p0","nameLocation":"9149:2:138","nodeType":"VariableDeclaration","scope":41466,"src":"9141:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41447,"name":"uint256","nodeType":"ElementaryTypeName","src":"9141:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41450,"mutability":"mutable","name":"p1","nameLocation":"9158:2:138","nodeType":"VariableDeclaration","scope":41466,"src":"9153:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41449,"name":"bool","nodeType":"ElementaryTypeName","src":"9153:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41452,"mutability":"mutable","name":"p2","nameLocation":"9167:2:138","nodeType":"VariableDeclaration","scope":41466,"src":"9162:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41451,"name":"bool","nodeType":"ElementaryTypeName","src":"9162:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9140:30:138"},"returnParameters":{"id":41454,"nodeType":"ParameterList","parameters":[],"src":"9185:0:138"},"scope":48415,"src":"9128:143:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41485,"nodeType":"Block","src":"9334:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c6164647265737329","id":41478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9378:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},"value":"log(uint256,bool,address)"},{"id":41479,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41468,"src":"9407:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41480,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41470,"src":"9411:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41481,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41472,"src":"9415:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41476,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9354:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9354:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9354:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41475,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"9338:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9338:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41484,"nodeType":"ExpressionStatement","src":"9338:81:138"}]},"id":41486,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9283:3:138","nodeType":"FunctionDefinition","parameters":{"id":41473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41468,"mutability":"mutable","name":"p0","nameLocation":"9295:2:138","nodeType":"VariableDeclaration","scope":41486,"src":"9287:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41467,"name":"uint256","nodeType":"ElementaryTypeName","src":"9287:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41470,"mutability":"mutable","name":"p1","nameLocation":"9304:2:138","nodeType":"VariableDeclaration","scope":41486,"src":"9299:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41469,"name":"bool","nodeType":"ElementaryTypeName","src":"9299:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41472,"mutability":"mutable","name":"p2","nameLocation":"9316:2:138","nodeType":"VariableDeclaration","scope":41486,"src":"9308:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41471,"name":"address","nodeType":"ElementaryTypeName","src":"9308:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9286:33:138"},"returnParameters":{"id":41474,"nodeType":"ParameterList","parameters":[],"src":"9334:0:138"},"scope":48415,"src":"9274:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41505,"nodeType":"Block","src":"9489:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e7432353629","id":41498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9533:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},"value":"log(uint256,address,uint256)"},{"id":41499,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41488,"src":"9565:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41500,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41490,"src":"9569:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41501,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41492,"src":"9573:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41496,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9509:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9509:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9509:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41495,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"9493:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9493:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41504,"nodeType":"ExpressionStatement","src":"9493:84:138"}]},"id":41506,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9435:3:138","nodeType":"FunctionDefinition","parameters":{"id":41493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41488,"mutability":"mutable","name":"p0","nameLocation":"9447:2:138","nodeType":"VariableDeclaration","scope":41506,"src":"9439:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41487,"name":"uint256","nodeType":"ElementaryTypeName","src":"9439:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41490,"mutability":"mutable","name":"p1","nameLocation":"9459:2:138","nodeType":"VariableDeclaration","scope":41506,"src":"9451:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41489,"name":"address","nodeType":"ElementaryTypeName","src":"9451:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41492,"mutability":"mutable","name":"p2","nameLocation":"9471:2:138","nodeType":"VariableDeclaration","scope":41506,"src":"9463:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41491,"name":"uint256","nodeType":"ElementaryTypeName","src":"9463:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9438:36:138"},"returnParameters":{"id":41494,"nodeType":"ParameterList","parameters":[],"src":"9489:0:138"},"scope":48415,"src":"9426:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41525,"nodeType":"Block","src":"9653:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e6729","id":41518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9697:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},"value":"log(uint256,address,string)"},{"id":41519,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41508,"src":"9728:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41520,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41510,"src":"9732:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41521,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41512,"src":"9736:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41516,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9673:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9673:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9673:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"9657:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9657:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41524,"nodeType":"ExpressionStatement","src":"9657:83:138"}]},"id":41526,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9593:3:138","nodeType":"FunctionDefinition","parameters":{"id":41513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41508,"mutability":"mutable","name":"p0","nameLocation":"9605:2:138","nodeType":"VariableDeclaration","scope":41526,"src":"9597:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41507,"name":"uint256","nodeType":"ElementaryTypeName","src":"9597:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41510,"mutability":"mutable","name":"p1","nameLocation":"9617:2:138","nodeType":"VariableDeclaration","scope":41526,"src":"9609:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41509,"name":"address","nodeType":"ElementaryTypeName","src":"9609:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41512,"mutability":"mutable","name":"p2","nameLocation":"9635:2:138","nodeType":"VariableDeclaration","scope":41526,"src":"9621:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41511,"name":"string","nodeType":"ElementaryTypeName","src":"9621:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9596:42:138"},"returnParameters":{"id":41514,"nodeType":"ParameterList","parameters":[],"src":"9653:0:138"},"scope":48415,"src":"9584:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41545,"nodeType":"Block","src":"9807:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c29","id":41538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9851:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},"value":"log(uint256,address,bool)"},{"id":41539,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41528,"src":"9880:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41540,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41530,"src":"9884:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41541,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41532,"src":"9888:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41536,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9827:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9827:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9827:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41535,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"9811:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9811:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41544,"nodeType":"ExpressionStatement","src":"9811:81:138"}]},"id":41546,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9756:3:138","nodeType":"FunctionDefinition","parameters":{"id":41533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41528,"mutability":"mutable","name":"p0","nameLocation":"9768:2:138","nodeType":"VariableDeclaration","scope":41546,"src":"9760:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41527,"name":"uint256","nodeType":"ElementaryTypeName","src":"9760:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41530,"mutability":"mutable","name":"p1","nameLocation":"9780:2:138","nodeType":"VariableDeclaration","scope":41546,"src":"9772:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41529,"name":"address","nodeType":"ElementaryTypeName","src":"9772:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41532,"mutability":"mutable","name":"p2","nameLocation":"9789:2:138","nodeType":"VariableDeclaration","scope":41546,"src":"9784:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41531,"name":"bool","nodeType":"ElementaryTypeName","src":"9784:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9759:33:138"},"returnParameters":{"id":41534,"nodeType":"ParameterList","parameters":[],"src":"9807:0:138"},"scope":48415,"src":"9747:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41565,"nodeType":"Block","src":"9962:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c6164647265737329","id":41558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10006:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},"value":"log(uint256,address,address)"},{"id":41559,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41548,"src":"10038:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41560,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41550,"src":"10042:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41561,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41552,"src":"10046:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41556,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9982:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9982:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9982:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41555,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"9966:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9966:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41564,"nodeType":"ExpressionStatement","src":"9966:84:138"}]},"id":41566,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9908:3:138","nodeType":"FunctionDefinition","parameters":{"id":41553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41548,"mutability":"mutable","name":"p0","nameLocation":"9920:2:138","nodeType":"VariableDeclaration","scope":41566,"src":"9912:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41547,"name":"uint256","nodeType":"ElementaryTypeName","src":"9912:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41550,"mutability":"mutable","name":"p1","nameLocation":"9932:2:138","nodeType":"VariableDeclaration","scope":41566,"src":"9924:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41549,"name":"address","nodeType":"ElementaryTypeName","src":"9924:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41552,"mutability":"mutable","name":"p2","nameLocation":"9944:2:138","nodeType":"VariableDeclaration","scope":41566,"src":"9936:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41551,"name":"address","nodeType":"ElementaryTypeName","src":"9936:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9911:36:138"},"returnParameters":{"id":41554,"nodeType":"ParameterList","parameters":[],"src":"9962:0:138"},"scope":48415,"src":"9899:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41585,"nodeType":"Block","src":"10126:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e7432353629","id":41578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10170:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},"value":"log(string,uint256,uint256)"},{"id":41579,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41568,"src":"10201:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41580,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41570,"src":"10205:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41581,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41572,"src":"10209:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41576,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10146:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10146:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10146:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41575,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"10130:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10130:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41584,"nodeType":"ExpressionStatement","src":"10130:83:138"}]},"id":41586,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10066:3:138","nodeType":"FunctionDefinition","parameters":{"id":41573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41568,"mutability":"mutable","name":"p0","nameLocation":"10084:2:138","nodeType":"VariableDeclaration","scope":41586,"src":"10070:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41567,"name":"string","nodeType":"ElementaryTypeName","src":"10070:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41570,"mutability":"mutable","name":"p1","nameLocation":"10096:2:138","nodeType":"VariableDeclaration","scope":41586,"src":"10088:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41569,"name":"uint256","nodeType":"ElementaryTypeName","src":"10088:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41572,"mutability":"mutable","name":"p2","nameLocation":"10108:2:138","nodeType":"VariableDeclaration","scope":41586,"src":"10100:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41571,"name":"uint256","nodeType":"ElementaryTypeName","src":"10100:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10069:42:138"},"returnParameters":{"id":41574,"nodeType":"ParameterList","parameters":[],"src":"10126:0:138"},"scope":48415,"src":"10057:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41605,"nodeType":"Block","src":"10295:90:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e6729","id":41598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10339:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},"value":"log(string,uint256,string)"},{"id":41599,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41588,"src":"10369:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41600,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41590,"src":"10373:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41601,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41592,"src":"10377:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10315:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10315:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10315:65:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41595,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"10299:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10299:82:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41604,"nodeType":"ExpressionStatement","src":"10299:82:138"}]},"id":41606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10229:3:138","nodeType":"FunctionDefinition","parameters":{"id":41593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41588,"mutability":"mutable","name":"p0","nameLocation":"10247:2:138","nodeType":"VariableDeclaration","scope":41606,"src":"10233:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41587,"name":"string","nodeType":"ElementaryTypeName","src":"10233:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41590,"mutability":"mutable","name":"p1","nameLocation":"10259:2:138","nodeType":"VariableDeclaration","scope":41606,"src":"10251:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41589,"name":"uint256","nodeType":"ElementaryTypeName","src":"10251:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41592,"mutability":"mutable","name":"p2","nameLocation":"10277:2:138","nodeType":"VariableDeclaration","scope":41606,"src":"10263:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41591,"name":"string","nodeType":"ElementaryTypeName","src":"10263:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10232:48:138"},"returnParameters":{"id":41594,"nodeType":"ParameterList","parameters":[],"src":"10295:0:138"},"scope":48415,"src":"10220:165:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41625,"nodeType":"Block","src":"10454:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c29","id":41618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10498:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},"value":"log(string,uint256,bool)"},{"id":41619,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41608,"src":"10526:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41620,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41610,"src":"10530:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41621,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41612,"src":"10534:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41616,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10474:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10474:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10474:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41615,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"10458:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10458:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41624,"nodeType":"ExpressionStatement","src":"10458:80:138"}]},"id":41626,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10397:3:138","nodeType":"FunctionDefinition","parameters":{"id":41613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41608,"mutability":"mutable","name":"p0","nameLocation":"10415:2:138","nodeType":"VariableDeclaration","scope":41626,"src":"10401:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41607,"name":"string","nodeType":"ElementaryTypeName","src":"10401:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41610,"mutability":"mutable","name":"p1","nameLocation":"10427:2:138","nodeType":"VariableDeclaration","scope":41626,"src":"10419:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41609,"name":"uint256","nodeType":"ElementaryTypeName","src":"10419:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41612,"mutability":"mutable","name":"p2","nameLocation":"10436:2:138","nodeType":"VariableDeclaration","scope":41626,"src":"10431:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41611,"name":"bool","nodeType":"ElementaryTypeName","src":"10431:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10400:39:138"},"returnParameters":{"id":41614,"nodeType":"ParameterList","parameters":[],"src":"10454:0:138"},"scope":48415,"src":"10388:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41645,"nodeType":"Block","src":"10614:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c6164647265737329","id":41638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10658:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},"value":"log(string,uint256,address)"},{"id":41639,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41628,"src":"10689:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41640,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41630,"src":"10693:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41641,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41632,"src":"10697:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41636,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10634:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10634:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10634:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41635,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"10618:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10618:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41644,"nodeType":"ExpressionStatement","src":"10618:83:138"}]},"id":41646,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10554:3:138","nodeType":"FunctionDefinition","parameters":{"id":41633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41628,"mutability":"mutable","name":"p0","nameLocation":"10572:2:138","nodeType":"VariableDeclaration","scope":41646,"src":"10558:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41627,"name":"string","nodeType":"ElementaryTypeName","src":"10558:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41630,"mutability":"mutable","name":"p1","nameLocation":"10584:2:138","nodeType":"VariableDeclaration","scope":41646,"src":"10576:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41629,"name":"uint256","nodeType":"ElementaryTypeName","src":"10576:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41632,"mutability":"mutable","name":"p2","nameLocation":"10596:2:138","nodeType":"VariableDeclaration","scope":41646,"src":"10588:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41631,"name":"address","nodeType":"ElementaryTypeName","src":"10588:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10557:42:138"},"returnParameters":{"id":41634,"nodeType":"ParameterList","parameters":[],"src":"10614:0:138"},"scope":48415,"src":"10545:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41665,"nodeType":"Block","src":"10783:90:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7432353629","id":41658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10827:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},"value":"log(string,string,uint256)"},{"id":41659,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41648,"src":"10857:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41660,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41650,"src":"10861:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41661,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41652,"src":"10865:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41656,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10803:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10803:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10803:65:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41655,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"10787:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10787:82:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41664,"nodeType":"ExpressionStatement","src":"10787:82:138"}]},"id":41666,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10717:3:138","nodeType":"FunctionDefinition","parameters":{"id":41653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41648,"mutability":"mutable","name":"p0","nameLocation":"10735:2:138","nodeType":"VariableDeclaration","scope":41666,"src":"10721:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41647,"name":"string","nodeType":"ElementaryTypeName","src":"10721:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41650,"mutability":"mutable","name":"p1","nameLocation":"10753:2:138","nodeType":"VariableDeclaration","scope":41666,"src":"10739:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41649,"name":"string","nodeType":"ElementaryTypeName","src":"10739:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41652,"mutability":"mutable","name":"p2","nameLocation":"10765:2:138","nodeType":"VariableDeclaration","scope":41666,"src":"10757:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41651,"name":"uint256","nodeType":"ElementaryTypeName","src":"10757:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10720:48:138"},"returnParameters":{"id":41654,"nodeType":"ParameterList","parameters":[],"src":"10783:0:138"},"scope":48415,"src":"10708:165:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41685,"nodeType":"Block","src":"10957:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":41678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11001:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":41679,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41668,"src":"11030:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41680,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41670,"src":"11034:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41681,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41672,"src":"11038:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10977:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10977:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10977:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41675,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"10961:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10961:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41684,"nodeType":"ExpressionStatement","src":"10961:81:138"}]},"id":41686,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10885:3:138","nodeType":"FunctionDefinition","parameters":{"id":41673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41668,"mutability":"mutable","name":"p0","nameLocation":"10903:2:138","nodeType":"VariableDeclaration","scope":41686,"src":"10889:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41667,"name":"string","nodeType":"ElementaryTypeName","src":"10889:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41670,"mutability":"mutable","name":"p1","nameLocation":"10921:2:138","nodeType":"VariableDeclaration","scope":41686,"src":"10907:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41669,"name":"string","nodeType":"ElementaryTypeName","src":"10907:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41672,"mutability":"mutable","name":"p2","nameLocation":"10939:2:138","nodeType":"VariableDeclaration","scope":41686,"src":"10925:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41671,"name":"string","nodeType":"ElementaryTypeName","src":"10925:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10888:54:138"},"returnParameters":{"id":41674,"nodeType":"ParameterList","parameters":[],"src":"10957:0:138"},"scope":48415,"src":"10876:170:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41705,"nodeType":"Block","src":"11121:87:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":41698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11165:25:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":41699,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41688,"src":"11192:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41700,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41690,"src":"11196:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41701,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41692,"src":"11200:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11141:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11141:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11141:62:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41695,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"11125:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11125:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41704,"nodeType":"ExpressionStatement","src":"11125:79:138"}]},"id":41706,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11058:3:138","nodeType":"FunctionDefinition","parameters":{"id":41693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41688,"mutability":"mutable","name":"p0","nameLocation":"11076:2:138","nodeType":"VariableDeclaration","scope":41706,"src":"11062:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41687,"name":"string","nodeType":"ElementaryTypeName","src":"11062:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41690,"mutability":"mutable","name":"p1","nameLocation":"11094:2:138","nodeType":"VariableDeclaration","scope":41706,"src":"11080:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41689,"name":"string","nodeType":"ElementaryTypeName","src":"11080:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41692,"mutability":"mutable","name":"p2","nameLocation":"11103:2:138","nodeType":"VariableDeclaration","scope":41706,"src":"11098:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41691,"name":"bool","nodeType":"ElementaryTypeName","src":"11098:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11061:45:138"},"returnParameters":{"id":41694,"nodeType":"ParameterList","parameters":[],"src":"11121:0:138"},"scope":48415,"src":"11049:159:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41725,"nodeType":"Block","src":"11286:90:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":41718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11330:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":41719,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41708,"src":"11360:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41720,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41710,"src":"11364:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41721,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41712,"src":"11368:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41716,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11306:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11306:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11306:65:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41715,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"11290:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11290:82:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41724,"nodeType":"ExpressionStatement","src":"11290:82:138"}]},"id":41726,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11220:3:138","nodeType":"FunctionDefinition","parameters":{"id":41713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41708,"mutability":"mutable","name":"p0","nameLocation":"11238:2:138","nodeType":"VariableDeclaration","scope":41726,"src":"11224:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41707,"name":"string","nodeType":"ElementaryTypeName","src":"11224:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41710,"mutability":"mutable","name":"p1","nameLocation":"11256:2:138","nodeType":"VariableDeclaration","scope":41726,"src":"11242:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41709,"name":"string","nodeType":"ElementaryTypeName","src":"11242:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41712,"mutability":"mutable","name":"p2","nameLocation":"11268:2:138","nodeType":"VariableDeclaration","scope":41726,"src":"11260:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41711,"name":"address","nodeType":"ElementaryTypeName","src":"11260:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11223:48:138"},"returnParameters":{"id":41714,"nodeType":"ParameterList","parameters":[],"src":"11286:0:138"},"scope":48415,"src":"11211:165:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41745,"nodeType":"Block","src":"11445:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7432353629","id":41738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11489:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},"value":"log(string,bool,uint256)"},{"id":41739,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41728,"src":"11517:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41740,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41730,"src":"11521:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41741,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41732,"src":"11525:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41736,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11465:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11465:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11465:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41735,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"11449:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11449:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41744,"nodeType":"ExpressionStatement","src":"11449:80:138"}]},"id":41746,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11388:3:138","nodeType":"FunctionDefinition","parameters":{"id":41733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41728,"mutability":"mutable","name":"p0","nameLocation":"11406:2:138","nodeType":"VariableDeclaration","scope":41746,"src":"11392:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41727,"name":"string","nodeType":"ElementaryTypeName","src":"11392:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41730,"mutability":"mutable","name":"p1","nameLocation":"11415:2:138","nodeType":"VariableDeclaration","scope":41746,"src":"11410:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41729,"name":"bool","nodeType":"ElementaryTypeName","src":"11410:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41732,"mutability":"mutable","name":"p2","nameLocation":"11427:2:138","nodeType":"VariableDeclaration","scope":41746,"src":"11419:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41731,"name":"uint256","nodeType":"ElementaryTypeName","src":"11419:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11391:39:138"},"returnParameters":{"id":41734,"nodeType":"ParameterList","parameters":[],"src":"11445:0:138"},"scope":48415,"src":"11379:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41765,"nodeType":"Block","src":"11608:87:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":41758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11652:25:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":41759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41748,"src":"11679:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41760,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41750,"src":"11683:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41761,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41752,"src":"11687:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11628:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11628:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11628:62:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"11612:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11612:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41764,"nodeType":"ExpressionStatement","src":"11612:79:138"}]},"id":41766,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11545:3:138","nodeType":"FunctionDefinition","parameters":{"id":41753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41748,"mutability":"mutable","name":"p0","nameLocation":"11563:2:138","nodeType":"VariableDeclaration","scope":41766,"src":"11549:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41747,"name":"string","nodeType":"ElementaryTypeName","src":"11549:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41750,"mutability":"mutable","name":"p1","nameLocation":"11572:2:138","nodeType":"VariableDeclaration","scope":41766,"src":"11567:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41749,"name":"bool","nodeType":"ElementaryTypeName","src":"11567:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41752,"mutability":"mutable","name":"p2","nameLocation":"11590:2:138","nodeType":"VariableDeclaration","scope":41766,"src":"11576:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41751,"name":"string","nodeType":"ElementaryTypeName","src":"11576:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11548:45:138"},"returnParameters":{"id":41754,"nodeType":"ParameterList","parameters":[],"src":"11608:0:138"},"scope":48415,"src":"11536:159:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41785,"nodeType":"Block","src":"11761:85:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":41778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11805:23:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":41779,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41768,"src":"11830:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41780,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41770,"src":"11834:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41781,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41772,"src":"11838:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41776,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11781:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11781:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11781:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41775,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"11765:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11765:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41784,"nodeType":"ExpressionStatement","src":"11765:77:138"}]},"id":41786,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11707:3:138","nodeType":"FunctionDefinition","parameters":{"id":41773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41768,"mutability":"mutable","name":"p0","nameLocation":"11725:2:138","nodeType":"VariableDeclaration","scope":41786,"src":"11711:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41767,"name":"string","nodeType":"ElementaryTypeName","src":"11711:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41770,"mutability":"mutable","name":"p1","nameLocation":"11734:2:138","nodeType":"VariableDeclaration","scope":41786,"src":"11729:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41769,"name":"bool","nodeType":"ElementaryTypeName","src":"11729:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41772,"mutability":"mutable","name":"p2","nameLocation":"11743:2:138","nodeType":"VariableDeclaration","scope":41786,"src":"11738:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41771,"name":"bool","nodeType":"ElementaryTypeName","src":"11738:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11710:36:138"},"returnParameters":{"id":41774,"nodeType":"ParameterList","parameters":[],"src":"11761:0:138"},"scope":48415,"src":"11698:148:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41805,"nodeType":"Block","src":"11915:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":41798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11959:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":41799,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41788,"src":"11987:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41800,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41790,"src":"11991:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41801,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41792,"src":"11995:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11935:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11935:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11935:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41795,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"11919:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11919:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41804,"nodeType":"ExpressionStatement","src":"11919:80:138"}]},"id":41806,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11858:3:138","nodeType":"FunctionDefinition","parameters":{"id":41793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41788,"mutability":"mutable","name":"p0","nameLocation":"11876:2:138","nodeType":"VariableDeclaration","scope":41806,"src":"11862:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41787,"name":"string","nodeType":"ElementaryTypeName","src":"11862:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41790,"mutability":"mutable","name":"p1","nameLocation":"11885:2:138","nodeType":"VariableDeclaration","scope":41806,"src":"11880:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41789,"name":"bool","nodeType":"ElementaryTypeName","src":"11880:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41792,"mutability":"mutable","name":"p2","nameLocation":"11897:2:138","nodeType":"VariableDeclaration","scope":41806,"src":"11889:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41791,"name":"address","nodeType":"ElementaryTypeName","src":"11889:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11861:39:138"},"returnParameters":{"id":41794,"nodeType":"ParameterList","parameters":[],"src":"11915:0:138"},"scope":48415,"src":"11849:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41825,"nodeType":"Block","src":"12075:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7432353629","id":41818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12119:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},"value":"log(string,address,uint256)"},{"id":41819,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41808,"src":"12150:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41820,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41810,"src":"12154:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41821,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41812,"src":"12158:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12095:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12095:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12095:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41815,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"12079:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12079:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41824,"nodeType":"ExpressionStatement","src":"12079:83:138"}]},"id":41826,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12015:3:138","nodeType":"FunctionDefinition","parameters":{"id":41813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41808,"mutability":"mutable","name":"p0","nameLocation":"12033:2:138","nodeType":"VariableDeclaration","scope":41826,"src":"12019:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41807,"name":"string","nodeType":"ElementaryTypeName","src":"12019:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41810,"mutability":"mutable","name":"p1","nameLocation":"12045:2:138","nodeType":"VariableDeclaration","scope":41826,"src":"12037:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41809,"name":"address","nodeType":"ElementaryTypeName","src":"12037:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41812,"mutability":"mutable","name":"p2","nameLocation":"12057:2:138","nodeType":"VariableDeclaration","scope":41826,"src":"12049:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41811,"name":"uint256","nodeType":"ElementaryTypeName","src":"12049:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12018:42:138"},"returnParameters":{"id":41814,"nodeType":"ParameterList","parameters":[],"src":"12075:0:138"},"scope":48415,"src":"12006:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41845,"nodeType":"Block","src":"12244:90:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":41838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12288:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":41839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41828,"src":"12318:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41840,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41830,"src":"12322:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41841,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41832,"src":"12326:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12264:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12264:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12264:65:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"12248:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12248:82:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41844,"nodeType":"ExpressionStatement","src":"12248:82:138"}]},"id":41846,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12178:3:138","nodeType":"FunctionDefinition","parameters":{"id":41833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41828,"mutability":"mutable","name":"p0","nameLocation":"12196:2:138","nodeType":"VariableDeclaration","scope":41846,"src":"12182:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41827,"name":"string","nodeType":"ElementaryTypeName","src":"12182:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41830,"mutability":"mutable","name":"p1","nameLocation":"12208:2:138","nodeType":"VariableDeclaration","scope":41846,"src":"12200:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41829,"name":"address","nodeType":"ElementaryTypeName","src":"12200:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41832,"mutability":"mutable","name":"p2","nameLocation":"12226:2:138","nodeType":"VariableDeclaration","scope":41846,"src":"12212:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41831,"name":"string","nodeType":"ElementaryTypeName","src":"12212:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12181:48:138"},"returnParameters":{"id":41834,"nodeType":"ParameterList","parameters":[],"src":"12244:0:138"},"scope":48415,"src":"12169:165:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41865,"nodeType":"Block","src":"12403:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":41858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12447:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":41859,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41848,"src":"12475:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41860,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41850,"src":"12479:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41861,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41852,"src":"12483:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41856,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12423:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12423:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12423:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41855,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"12407:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12407:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41864,"nodeType":"ExpressionStatement","src":"12407:80:138"}]},"id":41866,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12346:3:138","nodeType":"FunctionDefinition","parameters":{"id":41853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41848,"mutability":"mutable","name":"p0","nameLocation":"12364:2:138","nodeType":"VariableDeclaration","scope":41866,"src":"12350:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41847,"name":"string","nodeType":"ElementaryTypeName","src":"12350:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41850,"mutability":"mutable","name":"p1","nameLocation":"12376:2:138","nodeType":"VariableDeclaration","scope":41866,"src":"12368:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41849,"name":"address","nodeType":"ElementaryTypeName","src":"12368:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41852,"mutability":"mutable","name":"p2","nameLocation":"12385:2:138","nodeType":"VariableDeclaration","scope":41866,"src":"12380:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41851,"name":"bool","nodeType":"ElementaryTypeName","src":"12380:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12349:39:138"},"returnParameters":{"id":41854,"nodeType":"ParameterList","parameters":[],"src":"12403:0:138"},"scope":48415,"src":"12337:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41885,"nodeType":"Block","src":"12563:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":41878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12607:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":41879,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"12638:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41880,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41870,"src":"12642:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41881,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41872,"src":"12646:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41876,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12583:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12583:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12583:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41875,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"12567:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12567:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41884,"nodeType":"ExpressionStatement","src":"12567:83:138"}]},"id":41886,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12503:3:138","nodeType":"FunctionDefinition","parameters":{"id":41873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41868,"mutability":"mutable","name":"p0","nameLocation":"12521:2:138","nodeType":"VariableDeclaration","scope":41886,"src":"12507:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41867,"name":"string","nodeType":"ElementaryTypeName","src":"12507:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41870,"mutability":"mutable","name":"p1","nameLocation":"12533:2:138","nodeType":"VariableDeclaration","scope":41886,"src":"12525:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41869,"name":"address","nodeType":"ElementaryTypeName","src":"12525:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41872,"mutability":"mutable","name":"p2","nameLocation":"12545:2:138","nodeType":"VariableDeclaration","scope":41886,"src":"12537:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41871,"name":"address","nodeType":"ElementaryTypeName","src":"12537:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12506:42:138"},"returnParameters":{"id":41874,"nodeType":"ParameterList","parameters":[],"src":"12563:0:138"},"scope":48415,"src":"12494:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41905,"nodeType":"Block","src":"12717:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e7432353629","id":41898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12761:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},"value":"log(bool,uint256,uint256)"},{"id":41899,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41888,"src":"12790:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41900,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41890,"src":"12794:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41901,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41892,"src":"12798:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12737:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12737:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12737:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41895,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"12721:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12721:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41904,"nodeType":"ExpressionStatement","src":"12721:81:138"}]},"id":41906,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12666:3:138","nodeType":"FunctionDefinition","parameters":{"id":41893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41888,"mutability":"mutable","name":"p0","nameLocation":"12675:2:138","nodeType":"VariableDeclaration","scope":41906,"src":"12670:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41887,"name":"bool","nodeType":"ElementaryTypeName","src":"12670:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41890,"mutability":"mutable","name":"p1","nameLocation":"12687:2:138","nodeType":"VariableDeclaration","scope":41906,"src":"12679:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41889,"name":"uint256","nodeType":"ElementaryTypeName","src":"12679:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41892,"mutability":"mutable","name":"p2","nameLocation":"12699:2:138","nodeType":"VariableDeclaration","scope":41906,"src":"12691:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41891,"name":"uint256","nodeType":"ElementaryTypeName","src":"12691:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12669:33:138"},"returnParameters":{"id":41894,"nodeType":"ParameterList","parameters":[],"src":"12717:0:138"},"scope":48415,"src":"12657:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41925,"nodeType":"Block","src":"12875:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e6729","id":41918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12919:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},"value":"log(bool,uint256,string)"},{"id":41919,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41908,"src":"12947:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41920,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41910,"src":"12951:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41921,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41912,"src":"12955:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41916,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12895:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12895:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12895:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41915,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"12879:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12879:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41924,"nodeType":"ExpressionStatement","src":"12879:80:138"}]},"id":41926,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12818:3:138","nodeType":"FunctionDefinition","parameters":{"id":41913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41908,"mutability":"mutable","name":"p0","nameLocation":"12827:2:138","nodeType":"VariableDeclaration","scope":41926,"src":"12822:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41907,"name":"bool","nodeType":"ElementaryTypeName","src":"12822:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41910,"mutability":"mutable","name":"p1","nameLocation":"12839:2:138","nodeType":"VariableDeclaration","scope":41926,"src":"12831:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41909,"name":"uint256","nodeType":"ElementaryTypeName","src":"12831:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41912,"mutability":"mutable","name":"p2","nameLocation":"12857:2:138","nodeType":"VariableDeclaration","scope":41926,"src":"12843:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41911,"name":"string","nodeType":"ElementaryTypeName","src":"12843:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12821:39:138"},"returnParameters":{"id":41914,"nodeType":"ParameterList","parameters":[],"src":"12875:0:138"},"scope":48415,"src":"12809:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41945,"nodeType":"Block","src":"13023:86:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c29","id":41938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13067:24:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},"value":"log(bool,uint256,bool)"},{"id":41939,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41928,"src":"13093:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41940,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41930,"src":"13097:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41941,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41932,"src":"13101:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41936,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13043:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13043:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13043:61:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41935,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"13027:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13027:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41944,"nodeType":"ExpressionStatement","src":"13027:78:138"}]},"id":41946,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12975:3:138","nodeType":"FunctionDefinition","parameters":{"id":41933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41928,"mutability":"mutable","name":"p0","nameLocation":"12984:2:138","nodeType":"VariableDeclaration","scope":41946,"src":"12979:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41927,"name":"bool","nodeType":"ElementaryTypeName","src":"12979:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41930,"mutability":"mutable","name":"p1","nameLocation":"12996:2:138","nodeType":"VariableDeclaration","scope":41946,"src":"12988:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41929,"name":"uint256","nodeType":"ElementaryTypeName","src":"12988:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41932,"mutability":"mutable","name":"p2","nameLocation":"13005:2:138","nodeType":"VariableDeclaration","scope":41946,"src":"13000:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41931,"name":"bool","nodeType":"ElementaryTypeName","src":"13000:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12978:30:138"},"returnParameters":{"id":41934,"nodeType":"ParameterList","parameters":[],"src":"13023:0:138"},"scope":48415,"src":"12966:143:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41965,"nodeType":"Block","src":"13172:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c6164647265737329","id":41958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13216:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},"value":"log(bool,uint256,address)"},{"id":41959,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41948,"src":"13245:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41960,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41950,"src":"13249:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41961,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41952,"src":"13253:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41956,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13192:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13192:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13192:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41955,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"13176:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13176:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41964,"nodeType":"ExpressionStatement","src":"13176:81:138"}]},"id":41966,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13121:3:138","nodeType":"FunctionDefinition","parameters":{"id":41953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41948,"mutability":"mutable","name":"p0","nameLocation":"13130:2:138","nodeType":"VariableDeclaration","scope":41966,"src":"13125:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41947,"name":"bool","nodeType":"ElementaryTypeName","src":"13125:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41950,"mutability":"mutable","name":"p1","nameLocation":"13142:2:138","nodeType":"VariableDeclaration","scope":41966,"src":"13134:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41949,"name":"uint256","nodeType":"ElementaryTypeName","src":"13134:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41952,"mutability":"mutable","name":"p2","nameLocation":"13154:2:138","nodeType":"VariableDeclaration","scope":41966,"src":"13146:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41951,"name":"address","nodeType":"ElementaryTypeName","src":"13146:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13124:33:138"},"returnParameters":{"id":41954,"nodeType":"ParameterList","parameters":[],"src":"13172:0:138"},"scope":48415,"src":"13112:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":41985,"nodeType":"Block","src":"13330:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7432353629","id":41978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13374:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},"value":"log(bool,string,uint256)"},{"id":41979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41968,"src":"13402:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":41980,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41970,"src":"13406:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":41981,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41972,"src":"13410:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13350:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13350:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":41982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13350:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"13334:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":41983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13334:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41984,"nodeType":"ExpressionStatement","src":"13334:80:138"}]},"id":41986,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13273:3:138","nodeType":"FunctionDefinition","parameters":{"id":41973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41968,"mutability":"mutable","name":"p0","nameLocation":"13282:2:138","nodeType":"VariableDeclaration","scope":41986,"src":"13277:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41967,"name":"bool","nodeType":"ElementaryTypeName","src":"13277:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41970,"mutability":"mutable","name":"p1","nameLocation":"13300:2:138","nodeType":"VariableDeclaration","scope":41986,"src":"13286:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41969,"name":"string","nodeType":"ElementaryTypeName","src":"13286:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41972,"mutability":"mutable","name":"p2","nameLocation":"13312:2:138","nodeType":"VariableDeclaration","scope":41986,"src":"13304:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41971,"name":"uint256","nodeType":"ElementaryTypeName","src":"13304:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13276:39:138"},"returnParameters":{"id":41974,"nodeType":"ParameterList","parameters":[],"src":"13330:0:138"},"scope":48415,"src":"13264:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42005,"nodeType":"Block","src":"13493:87:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":41998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13537:25:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":41999,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41988,"src":"13564:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42000,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41990,"src":"13568:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42001,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41992,"src":"13572:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":41996,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13513:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13513:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13513:62:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41995,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"13497:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13497:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42004,"nodeType":"ExpressionStatement","src":"13497:79:138"}]},"id":42006,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13430:3:138","nodeType":"FunctionDefinition","parameters":{"id":41993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41988,"mutability":"mutable","name":"p0","nameLocation":"13439:2:138","nodeType":"VariableDeclaration","scope":42006,"src":"13434:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41987,"name":"bool","nodeType":"ElementaryTypeName","src":"13434:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41990,"mutability":"mutable","name":"p1","nameLocation":"13457:2:138","nodeType":"VariableDeclaration","scope":42006,"src":"13443:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41989,"name":"string","nodeType":"ElementaryTypeName","src":"13443:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":41992,"mutability":"mutable","name":"p2","nameLocation":"13475:2:138","nodeType":"VariableDeclaration","scope":42006,"src":"13461:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41991,"name":"string","nodeType":"ElementaryTypeName","src":"13461:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13433:45:138"},"returnParameters":{"id":41994,"nodeType":"ParameterList","parameters":[],"src":"13493:0:138"},"scope":48415,"src":"13421:159:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42025,"nodeType":"Block","src":"13646:85:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":42018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13690:23:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":42019,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42008,"src":"13715:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42020,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42010,"src":"13719:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42021,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42012,"src":"13723:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42016,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13666:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13666:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13666:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42015,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"13650:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13650:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42024,"nodeType":"ExpressionStatement","src":"13650:77:138"}]},"id":42026,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13592:3:138","nodeType":"FunctionDefinition","parameters":{"id":42013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42008,"mutability":"mutable","name":"p0","nameLocation":"13601:2:138","nodeType":"VariableDeclaration","scope":42026,"src":"13596:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42007,"name":"bool","nodeType":"ElementaryTypeName","src":"13596:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42010,"mutability":"mutable","name":"p1","nameLocation":"13619:2:138","nodeType":"VariableDeclaration","scope":42026,"src":"13605:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42009,"name":"string","nodeType":"ElementaryTypeName","src":"13605:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42012,"mutability":"mutable","name":"p2","nameLocation":"13628:2:138","nodeType":"VariableDeclaration","scope":42026,"src":"13623:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42011,"name":"bool","nodeType":"ElementaryTypeName","src":"13623:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13595:36:138"},"returnParameters":{"id":42014,"nodeType":"ParameterList","parameters":[],"src":"13646:0:138"},"scope":48415,"src":"13583:148:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42045,"nodeType":"Block","src":"13800:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":42038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13844:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":42039,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42028,"src":"13872:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42040,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42030,"src":"13876:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42041,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42032,"src":"13880:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42036,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13820:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13820:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13820:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42035,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"13804:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13804:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42044,"nodeType":"ExpressionStatement","src":"13804:80:138"}]},"id":42046,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13743:3:138","nodeType":"FunctionDefinition","parameters":{"id":42033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42028,"mutability":"mutable","name":"p0","nameLocation":"13752:2:138","nodeType":"VariableDeclaration","scope":42046,"src":"13747:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42027,"name":"bool","nodeType":"ElementaryTypeName","src":"13747:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42030,"mutability":"mutable","name":"p1","nameLocation":"13770:2:138","nodeType":"VariableDeclaration","scope":42046,"src":"13756:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42029,"name":"string","nodeType":"ElementaryTypeName","src":"13756:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42032,"mutability":"mutable","name":"p2","nameLocation":"13782:2:138","nodeType":"VariableDeclaration","scope":42046,"src":"13774:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42031,"name":"address","nodeType":"ElementaryTypeName","src":"13774:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13746:39:138"},"returnParameters":{"id":42034,"nodeType":"ParameterList","parameters":[],"src":"13800:0:138"},"scope":48415,"src":"13734:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42065,"nodeType":"Block","src":"13948:86:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7432353629","id":42058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13992:24:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},"value":"log(bool,bool,uint256)"},{"id":42059,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42048,"src":"14018:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42060,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42050,"src":"14022:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42061,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"14026:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13968:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13968:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13968:61:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"13952:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13952:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42064,"nodeType":"ExpressionStatement","src":"13952:78:138"}]},"id":42066,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13900:3:138","nodeType":"FunctionDefinition","parameters":{"id":42053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42048,"mutability":"mutable","name":"p0","nameLocation":"13909:2:138","nodeType":"VariableDeclaration","scope":42066,"src":"13904:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42047,"name":"bool","nodeType":"ElementaryTypeName","src":"13904:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42050,"mutability":"mutable","name":"p1","nameLocation":"13918:2:138","nodeType":"VariableDeclaration","scope":42066,"src":"13913:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42049,"name":"bool","nodeType":"ElementaryTypeName","src":"13913:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42052,"mutability":"mutable","name":"p2","nameLocation":"13930:2:138","nodeType":"VariableDeclaration","scope":42066,"src":"13922:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42051,"name":"uint256","nodeType":"ElementaryTypeName","src":"13922:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13903:30:138"},"returnParameters":{"id":42054,"nodeType":"ParameterList","parameters":[],"src":"13948:0:138"},"scope":48415,"src":"13891:143:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42085,"nodeType":"Block","src":"14100:85:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":42078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14144:23:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":42079,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42068,"src":"14169:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42080,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42070,"src":"14173:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42081,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42072,"src":"14177:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42076,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14120:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14120:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14120:60:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42075,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"14104:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14104:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42084,"nodeType":"ExpressionStatement","src":"14104:77:138"}]},"id":42086,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14046:3:138","nodeType":"FunctionDefinition","parameters":{"id":42073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42068,"mutability":"mutable","name":"p0","nameLocation":"14055:2:138","nodeType":"VariableDeclaration","scope":42086,"src":"14050:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42067,"name":"bool","nodeType":"ElementaryTypeName","src":"14050:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42070,"mutability":"mutable","name":"p1","nameLocation":"14064:2:138","nodeType":"VariableDeclaration","scope":42086,"src":"14059:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42069,"name":"bool","nodeType":"ElementaryTypeName","src":"14059:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42072,"mutability":"mutable","name":"p2","nameLocation":"14082:2:138","nodeType":"VariableDeclaration","scope":42086,"src":"14068:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42071,"name":"string","nodeType":"ElementaryTypeName","src":"14068:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14049:36:138"},"returnParameters":{"id":42074,"nodeType":"ParameterList","parameters":[],"src":"14100:0:138"},"scope":48415,"src":"14037:148:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42105,"nodeType":"Block","src":"14242:83:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":42098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14286:21:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":42099,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42088,"src":"14309:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42100,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42090,"src":"14313:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42101,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42092,"src":"14317:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14262:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14262:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14262:58:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42095,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"14246:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14246:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42104,"nodeType":"ExpressionStatement","src":"14246:75:138"}]},"id":42106,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14197:3:138","nodeType":"FunctionDefinition","parameters":{"id":42093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42088,"mutability":"mutable","name":"p0","nameLocation":"14206:2:138","nodeType":"VariableDeclaration","scope":42106,"src":"14201:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42087,"name":"bool","nodeType":"ElementaryTypeName","src":"14201:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42090,"mutability":"mutable","name":"p1","nameLocation":"14215:2:138","nodeType":"VariableDeclaration","scope":42106,"src":"14210:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42089,"name":"bool","nodeType":"ElementaryTypeName","src":"14210:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42092,"mutability":"mutable","name":"p2","nameLocation":"14224:2:138","nodeType":"VariableDeclaration","scope":42106,"src":"14219:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42091,"name":"bool","nodeType":"ElementaryTypeName","src":"14219:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14200:27:138"},"returnParameters":{"id":42094,"nodeType":"ParameterList","parameters":[],"src":"14242:0:138"},"scope":48415,"src":"14188:137:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42125,"nodeType":"Block","src":"14385:86:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":42118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14429:24:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":42119,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"14455:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42120,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42110,"src":"14459:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42121,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42112,"src":"14463:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42116,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14405:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14405:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14405:61:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42115,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"14389:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14389:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42124,"nodeType":"ExpressionStatement","src":"14389:78:138"}]},"id":42126,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14337:3:138","nodeType":"FunctionDefinition","parameters":{"id":42113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42108,"mutability":"mutable","name":"p0","nameLocation":"14346:2:138","nodeType":"VariableDeclaration","scope":42126,"src":"14341:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42107,"name":"bool","nodeType":"ElementaryTypeName","src":"14341:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42110,"mutability":"mutable","name":"p1","nameLocation":"14355:2:138","nodeType":"VariableDeclaration","scope":42126,"src":"14350:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42109,"name":"bool","nodeType":"ElementaryTypeName","src":"14350:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42112,"mutability":"mutable","name":"p2","nameLocation":"14367:2:138","nodeType":"VariableDeclaration","scope":42126,"src":"14359:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42111,"name":"address","nodeType":"ElementaryTypeName","src":"14359:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14340:30:138"},"returnParameters":{"id":42114,"nodeType":"ParameterList","parameters":[],"src":"14385:0:138"},"scope":48415,"src":"14328:143:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42145,"nodeType":"Block","src":"14534:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7432353629","id":42138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14578:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},"value":"log(bool,address,uint256)"},{"id":42139,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42128,"src":"14607:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42140,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42130,"src":"14611:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42141,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42132,"src":"14615:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14554:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14554:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14554:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42135,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"14538:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14538:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42144,"nodeType":"ExpressionStatement","src":"14538:81:138"}]},"id":42146,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14483:3:138","nodeType":"FunctionDefinition","parameters":{"id":42133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42128,"mutability":"mutable","name":"p0","nameLocation":"14492:2:138","nodeType":"VariableDeclaration","scope":42146,"src":"14487:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42127,"name":"bool","nodeType":"ElementaryTypeName","src":"14487:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42130,"mutability":"mutable","name":"p1","nameLocation":"14504:2:138","nodeType":"VariableDeclaration","scope":42146,"src":"14496:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42129,"name":"address","nodeType":"ElementaryTypeName","src":"14496:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42132,"mutability":"mutable","name":"p2","nameLocation":"14516:2:138","nodeType":"VariableDeclaration","scope":42146,"src":"14508:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42131,"name":"uint256","nodeType":"ElementaryTypeName","src":"14508:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14486:33:138"},"returnParameters":{"id":42134,"nodeType":"ParameterList","parameters":[],"src":"14534:0:138"},"scope":48415,"src":"14474:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42165,"nodeType":"Block","src":"14692:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":42158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14736:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":42159,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42148,"src":"14764:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42160,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42150,"src":"14768:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42161,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42152,"src":"14772:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14712:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14712:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14712:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42155,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"14696:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14696:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42164,"nodeType":"ExpressionStatement","src":"14696:80:138"}]},"id":42166,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14635:3:138","nodeType":"FunctionDefinition","parameters":{"id":42153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42148,"mutability":"mutable","name":"p0","nameLocation":"14644:2:138","nodeType":"VariableDeclaration","scope":42166,"src":"14639:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42147,"name":"bool","nodeType":"ElementaryTypeName","src":"14639:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42150,"mutability":"mutable","name":"p1","nameLocation":"14656:2:138","nodeType":"VariableDeclaration","scope":42166,"src":"14648:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42149,"name":"address","nodeType":"ElementaryTypeName","src":"14648:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42152,"mutability":"mutable","name":"p2","nameLocation":"14674:2:138","nodeType":"VariableDeclaration","scope":42166,"src":"14660:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42151,"name":"string","nodeType":"ElementaryTypeName","src":"14660:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14638:39:138"},"returnParameters":{"id":42154,"nodeType":"ParameterList","parameters":[],"src":"14692:0:138"},"scope":48415,"src":"14626:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42185,"nodeType":"Block","src":"14840:86:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":42178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14884:24:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":42179,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42168,"src":"14910:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42180,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42170,"src":"14914:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42181,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42172,"src":"14918:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14860:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14860:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14860:61:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42175,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"14844:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14844:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42184,"nodeType":"ExpressionStatement","src":"14844:78:138"}]},"id":42186,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14792:3:138","nodeType":"FunctionDefinition","parameters":{"id":42173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42168,"mutability":"mutable","name":"p0","nameLocation":"14801:2:138","nodeType":"VariableDeclaration","scope":42186,"src":"14796:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42167,"name":"bool","nodeType":"ElementaryTypeName","src":"14796:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42170,"mutability":"mutable","name":"p1","nameLocation":"14813:2:138","nodeType":"VariableDeclaration","scope":42186,"src":"14805:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42169,"name":"address","nodeType":"ElementaryTypeName","src":"14805:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42172,"mutability":"mutable","name":"p2","nameLocation":"14822:2:138","nodeType":"VariableDeclaration","scope":42186,"src":"14817:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42171,"name":"bool","nodeType":"ElementaryTypeName","src":"14817:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14795:30:138"},"returnParameters":{"id":42174,"nodeType":"ParameterList","parameters":[],"src":"14840:0:138"},"scope":48415,"src":"14783:143:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42205,"nodeType":"Block","src":"14989:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":42198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15033:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":42199,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42188,"src":"15062:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42200,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42190,"src":"15066:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42201,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42192,"src":"15070:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42196,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15009:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15009:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15009:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42195,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"14993:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14993:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42204,"nodeType":"ExpressionStatement","src":"14993:81:138"}]},"id":42206,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14938:3:138","nodeType":"FunctionDefinition","parameters":{"id":42193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42188,"mutability":"mutable","name":"p0","nameLocation":"14947:2:138","nodeType":"VariableDeclaration","scope":42206,"src":"14942:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42187,"name":"bool","nodeType":"ElementaryTypeName","src":"14942:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42190,"mutability":"mutable","name":"p1","nameLocation":"14959:2:138","nodeType":"VariableDeclaration","scope":42206,"src":"14951:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42189,"name":"address","nodeType":"ElementaryTypeName","src":"14951:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42192,"mutability":"mutable","name":"p2","nameLocation":"14971:2:138","nodeType":"VariableDeclaration","scope":42206,"src":"14963:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42191,"name":"address","nodeType":"ElementaryTypeName","src":"14963:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14941:33:138"},"returnParameters":{"id":42194,"nodeType":"ParameterList","parameters":[],"src":"14989:0:138"},"scope":48415,"src":"14929:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42225,"nodeType":"Block","src":"15144:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e7432353629","id":42218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15188:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},"value":"log(address,uint256,uint256)"},{"id":42219,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42208,"src":"15220:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42220,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42210,"src":"15224:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42221,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42212,"src":"15228:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42216,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15164:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15164:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15164:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42215,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"15148:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15148:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42224,"nodeType":"ExpressionStatement","src":"15148:84:138"}]},"id":42226,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15090:3:138","nodeType":"FunctionDefinition","parameters":{"id":42213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42208,"mutability":"mutable","name":"p0","nameLocation":"15102:2:138","nodeType":"VariableDeclaration","scope":42226,"src":"15094:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42207,"name":"address","nodeType":"ElementaryTypeName","src":"15094:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42210,"mutability":"mutable","name":"p1","nameLocation":"15114:2:138","nodeType":"VariableDeclaration","scope":42226,"src":"15106:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42209,"name":"uint256","nodeType":"ElementaryTypeName","src":"15106:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42212,"mutability":"mutable","name":"p2","nameLocation":"15126:2:138","nodeType":"VariableDeclaration","scope":42226,"src":"15118:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42211,"name":"uint256","nodeType":"ElementaryTypeName","src":"15118:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15093:36:138"},"returnParameters":{"id":42214,"nodeType":"ParameterList","parameters":[],"src":"15144:0:138"},"scope":48415,"src":"15081:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42245,"nodeType":"Block","src":"15308:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e6729","id":42238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15352:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},"value":"log(address,uint256,string)"},{"id":42239,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42228,"src":"15383:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42240,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42230,"src":"15387:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42241,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42232,"src":"15391:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42236,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15328:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15328:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15328:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42235,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"15312:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15312:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42244,"nodeType":"ExpressionStatement","src":"15312:83:138"}]},"id":42246,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15248:3:138","nodeType":"FunctionDefinition","parameters":{"id":42233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42228,"mutability":"mutable","name":"p0","nameLocation":"15260:2:138","nodeType":"VariableDeclaration","scope":42246,"src":"15252:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42227,"name":"address","nodeType":"ElementaryTypeName","src":"15252:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42230,"mutability":"mutable","name":"p1","nameLocation":"15272:2:138","nodeType":"VariableDeclaration","scope":42246,"src":"15264:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42229,"name":"uint256","nodeType":"ElementaryTypeName","src":"15264:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42232,"mutability":"mutable","name":"p2","nameLocation":"15290:2:138","nodeType":"VariableDeclaration","scope":42246,"src":"15276:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42231,"name":"string","nodeType":"ElementaryTypeName","src":"15276:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15251:42:138"},"returnParameters":{"id":42234,"nodeType":"ParameterList","parameters":[],"src":"15308:0:138"},"scope":48415,"src":"15239:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42265,"nodeType":"Block","src":"15462:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c29","id":42258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15506:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},"value":"log(address,uint256,bool)"},{"id":42259,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42248,"src":"15535:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42260,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42250,"src":"15539:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42261,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42252,"src":"15543:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42256,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15482:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15482:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15482:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42255,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"15466:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15466:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42264,"nodeType":"ExpressionStatement","src":"15466:81:138"}]},"id":42266,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15411:3:138","nodeType":"FunctionDefinition","parameters":{"id":42253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42248,"mutability":"mutable","name":"p0","nameLocation":"15423:2:138","nodeType":"VariableDeclaration","scope":42266,"src":"15415:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42247,"name":"address","nodeType":"ElementaryTypeName","src":"15415:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42250,"mutability":"mutable","name":"p1","nameLocation":"15435:2:138","nodeType":"VariableDeclaration","scope":42266,"src":"15427:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42249,"name":"uint256","nodeType":"ElementaryTypeName","src":"15427:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42252,"mutability":"mutable","name":"p2","nameLocation":"15444:2:138","nodeType":"VariableDeclaration","scope":42266,"src":"15439:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42251,"name":"bool","nodeType":"ElementaryTypeName","src":"15439:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15414:33:138"},"returnParameters":{"id":42254,"nodeType":"ParameterList","parameters":[],"src":"15462:0:138"},"scope":48415,"src":"15402:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42285,"nodeType":"Block","src":"15617:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c6164647265737329","id":42278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15661:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},"value":"log(address,uint256,address)"},{"id":42279,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42268,"src":"15693:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42280,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42270,"src":"15697:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42281,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42272,"src":"15701:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15637:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15637:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15637:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42275,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"15621:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15621:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42284,"nodeType":"ExpressionStatement","src":"15621:84:138"}]},"id":42286,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15563:3:138","nodeType":"FunctionDefinition","parameters":{"id":42273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42268,"mutability":"mutable","name":"p0","nameLocation":"15575:2:138","nodeType":"VariableDeclaration","scope":42286,"src":"15567:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42267,"name":"address","nodeType":"ElementaryTypeName","src":"15567:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42270,"mutability":"mutable","name":"p1","nameLocation":"15587:2:138","nodeType":"VariableDeclaration","scope":42286,"src":"15579:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42269,"name":"uint256","nodeType":"ElementaryTypeName","src":"15579:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42272,"mutability":"mutable","name":"p2","nameLocation":"15599:2:138","nodeType":"VariableDeclaration","scope":42286,"src":"15591:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42271,"name":"address","nodeType":"ElementaryTypeName","src":"15591:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15566:36:138"},"returnParameters":{"id":42274,"nodeType":"ParameterList","parameters":[],"src":"15617:0:138"},"scope":48415,"src":"15554:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42305,"nodeType":"Block","src":"15781:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7432353629","id":42298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15825:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},"value":"log(address,string,uint256)"},{"id":42299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42288,"src":"15856:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42290,"src":"15860:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42292,"src":"15864:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15801:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15801:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15801:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"15785:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15785:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42304,"nodeType":"ExpressionStatement","src":"15785:83:138"}]},"id":42306,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15721:3:138","nodeType":"FunctionDefinition","parameters":{"id":42293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42288,"mutability":"mutable","name":"p0","nameLocation":"15733:2:138","nodeType":"VariableDeclaration","scope":42306,"src":"15725:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42287,"name":"address","nodeType":"ElementaryTypeName","src":"15725:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42290,"mutability":"mutable","name":"p1","nameLocation":"15751:2:138","nodeType":"VariableDeclaration","scope":42306,"src":"15737:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42289,"name":"string","nodeType":"ElementaryTypeName","src":"15737:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42292,"mutability":"mutable","name":"p2","nameLocation":"15763:2:138","nodeType":"VariableDeclaration","scope":42306,"src":"15755:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42291,"name":"uint256","nodeType":"ElementaryTypeName","src":"15755:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15724:42:138"},"returnParameters":{"id":42294,"nodeType":"ParameterList","parameters":[],"src":"15781:0:138"},"scope":48415,"src":"15712:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42325,"nodeType":"Block","src":"15950:90:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":42318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15994:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":42319,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42308,"src":"16024:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42320,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42310,"src":"16028:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42321,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42312,"src":"16032:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15970:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15970:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15970:65:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42315,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"15954:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15954:82:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42324,"nodeType":"ExpressionStatement","src":"15954:82:138"}]},"id":42326,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15884:3:138","nodeType":"FunctionDefinition","parameters":{"id":42313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42308,"mutability":"mutable","name":"p0","nameLocation":"15896:2:138","nodeType":"VariableDeclaration","scope":42326,"src":"15888:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42307,"name":"address","nodeType":"ElementaryTypeName","src":"15888:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42310,"mutability":"mutable","name":"p1","nameLocation":"15914:2:138","nodeType":"VariableDeclaration","scope":42326,"src":"15900:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42309,"name":"string","nodeType":"ElementaryTypeName","src":"15900:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42312,"mutability":"mutable","name":"p2","nameLocation":"15932:2:138","nodeType":"VariableDeclaration","scope":42326,"src":"15918:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42311,"name":"string","nodeType":"ElementaryTypeName","src":"15918:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15887:48:138"},"returnParameters":{"id":42314,"nodeType":"ParameterList","parameters":[],"src":"15950:0:138"},"scope":48415,"src":"15875:165:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42345,"nodeType":"Block","src":"16109:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":42338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16153:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":42339,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42328,"src":"16181:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42340,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42330,"src":"16185:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42341,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42332,"src":"16189:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42336,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16129:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16129:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16129:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42335,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"16113:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16113:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42344,"nodeType":"ExpressionStatement","src":"16113:80:138"}]},"id":42346,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16052:3:138","nodeType":"FunctionDefinition","parameters":{"id":42333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42328,"mutability":"mutable","name":"p0","nameLocation":"16064:2:138","nodeType":"VariableDeclaration","scope":42346,"src":"16056:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42327,"name":"address","nodeType":"ElementaryTypeName","src":"16056:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42330,"mutability":"mutable","name":"p1","nameLocation":"16082:2:138","nodeType":"VariableDeclaration","scope":42346,"src":"16068:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42329,"name":"string","nodeType":"ElementaryTypeName","src":"16068:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42332,"mutability":"mutable","name":"p2","nameLocation":"16091:2:138","nodeType":"VariableDeclaration","scope":42346,"src":"16086:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42331,"name":"bool","nodeType":"ElementaryTypeName","src":"16086:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16055:39:138"},"returnParameters":{"id":42334,"nodeType":"ParameterList","parameters":[],"src":"16109:0:138"},"scope":48415,"src":"16043:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42365,"nodeType":"Block","src":"16269:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":42358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16313:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":42359,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42348,"src":"16344:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42360,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42350,"src":"16348:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42361,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42352,"src":"16352:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16289:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16289:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16289:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42355,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"16273:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16273:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42364,"nodeType":"ExpressionStatement","src":"16273:83:138"}]},"id":42366,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16209:3:138","nodeType":"FunctionDefinition","parameters":{"id":42353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42348,"mutability":"mutable","name":"p0","nameLocation":"16221:2:138","nodeType":"VariableDeclaration","scope":42366,"src":"16213:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42347,"name":"address","nodeType":"ElementaryTypeName","src":"16213:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42350,"mutability":"mutable","name":"p1","nameLocation":"16239:2:138","nodeType":"VariableDeclaration","scope":42366,"src":"16225:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42349,"name":"string","nodeType":"ElementaryTypeName","src":"16225:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42352,"mutability":"mutable","name":"p2","nameLocation":"16251:2:138","nodeType":"VariableDeclaration","scope":42366,"src":"16243:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42351,"name":"address","nodeType":"ElementaryTypeName","src":"16243:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16212:42:138"},"returnParameters":{"id":42354,"nodeType":"ParameterList","parameters":[],"src":"16269:0:138"},"scope":48415,"src":"16200:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42385,"nodeType":"Block","src":"16423:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7432353629","id":42378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16467:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},"value":"log(address,bool,uint256)"},{"id":42379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42368,"src":"16496:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42370,"src":"16500:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42372,"src":"16504:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16443:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16443:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16443:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"16427:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16427:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42384,"nodeType":"ExpressionStatement","src":"16427:81:138"}]},"id":42386,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16372:3:138","nodeType":"FunctionDefinition","parameters":{"id":42373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42368,"mutability":"mutable","name":"p0","nameLocation":"16384:2:138","nodeType":"VariableDeclaration","scope":42386,"src":"16376:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42367,"name":"address","nodeType":"ElementaryTypeName","src":"16376:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42370,"mutability":"mutable","name":"p1","nameLocation":"16393:2:138","nodeType":"VariableDeclaration","scope":42386,"src":"16388:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42369,"name":"bool","nodeType":"ElementaryTypeName","src":"16388:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42372,"mutability":"mutable","name":"p2","nameLocation":"16405:2:138","nodeType":"VariableDeclaration","scope":42386,"src":"16397:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42371,"name":"uint256","nodeType":"ElementaryTypeName","src":"16397:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16375:33:138"},"returnParameters":{"id":42374,"nodeType":"ParameterList","parameters":[],"src":"16423:0:138"},"scope":48415,"src":"16363:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42405,"nodeType":"Block","src":"16581:88:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":42398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16625:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":42399,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42388,"src":"16653:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42400,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42390,"src":"16657:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42401,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42392,"src":"16661:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42396,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16601:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16601:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16601:63:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42395,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"16585:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16585:80:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42404,"nodeType":"ExpressionStatement","src":"16585:80:138"}]},"id":42406,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16524:3:138","nodeType":"FunctionDefinition","parameters":{"id":42393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42388,"mutability":"mutable","name":"p0","nameLocation":"16536:2:138","nodeType":"VariableDeclaration","scope":42406,"src":"16528:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42387,"name":"address","nodeType":"ElementaryTypeName","src":"16528:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42390,"mutability":"mutable","name":"p1","nameLocation":"16545:2:138","nodeType":"VariableDeclaration","scope":42406,"src":"16540:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42389,"name":"bool","nodeType":"ElementaryTypeName","src":"16540:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42392,"mutability":"mutable","name":"p2","nameLocation":"16563:2:138","nodeType":"VariableDeclaration","scope":42406,"src":"16549:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42391,"name":"string","nodeType":"ElementaryTypeName","src":"16549:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16527:39:138"},"returnParameters":{"id":42394,"nodeType":"ParameterList","parameters":[],"src":"16581:0:138"},"scope":48415,"src":"16515:154:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42425,"nodeType":"Block","src":"16729:86:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":42418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16773:24:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":42419,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42408,"src":"16799:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42420,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42410,"src":"16803:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42421,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42412,"src":"16807:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42416,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16749:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16749:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16749:61:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42415,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"16733:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16733:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42424,"nodeType":"ExpressionStatement","src":"16733:78:138"}]},"id":42426,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16681:3:138","nodeType":"FunctionDefinition","parameters":{"id":42413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42408,"mutability":"mutable","name":"p0","nameLocation":"16693:2:138","nodeType":"VariableDeclaration","scope":42426,"src":"16685:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42407,"name":"address","nodeType":"ElementaryTypeName","src":"16685:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42410,"mutability":"mutable","name":"p1","nameLocation":"16702:2:138","nodeType":"VariableDeclaration","scope":42426,"src":"16697:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42409,"name":"bool","nodeType":"ElementaryTypeName","src":"16697:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42412,"mutability":"mutable","name":"p2","nameLocation":"16711:2:138","nodeType":"VariableDeclaration","scope":42426,"src":"16706:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42411,"name":"bool","nodeType":"ElementaryTypeName","src":"16706:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16684:30:138"},"returnParameters":{"id":42414,"nodeType":"ParameterList","parameters":[],"src":"16729:0:138"},"scope":48415,"src":"16672:143:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42445,"nodeType":"Block","src":"16878:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":42438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16922:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":42439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42428,"src":"16951:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42430,"src":"16955:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"16959:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16898:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16898:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16898:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"16882:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16882:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42444,"nodeType":"ExpressionStatement","src":"16882:81:138"}]},"id":42446,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16827:3:138","nodeType":"FunctionDefinition","parameters":{"id":42433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42428,"mutability":"mutable","name":"p0","nameLocation":"16839:2:138","nodeType":"VariableDeclaration","scope":42446,"src":"16831:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42427,"name":"address","nodeType":"ElementaryTypeName","src":"16831:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42430,"mutability":"mutable","name":"p1","nameLocation":"16848:2:138","nodeType":"VariableDeclaration","scope":42446,"src":"16843:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42429,"name":"bool","nodeType":"ElementaryTypeName","src":"16843:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42432,"mutability":"mutable","name":"p2","nameLocation":"16860:2:138","nodeType":"VariableDeclaration","scope":42446,"src":"16852:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42431,"name":"address","nodeType":"ElementaryTypeName","src":"16852:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16830:33:138"},"returnParameters":{"id":42434,"nodeType":"ParameterList","parameters":[],"src":"16878:0:138"},"scope":48415,"src":"16818:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42465,"nodeType":"Block","src":"17033:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7432353629","id":42458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17077:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},"value":"log(address,address,uint256)"},{"id":42459,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42448,"src":"17109:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42460,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"17113:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42461,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42452,"src":"17117:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17053:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17053:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17053:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42455,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"17037:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17037:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42464,"nodeType":"ExpressionStatement","src":"17037:84:138"}]},"id":42466,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16979:3:138","nodeType":"FunctionDefinition","parameters":{"id":42453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42448,"mutability":"mutable","name":"p0","nameLocation":"16991:2:138","nodeType":"VariableDeclaration","scope":42466,"src":"16983:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42447,"name":"address","nodeType":"ElementaryTypeName","src":"16983:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42450,"mutability":"mutable","name":"p1","nameLocation":"17003:2:138","nodeType":"VariableDeclaration","scope":42466,"src":"16995:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42449,"name":"address","nodeType":"ElementaryTypeName","src":"16995:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42452,"mutability":"mutable","name":"p2","nameLocation":"17015:2:138","nodeType":"VariableDeclaration","scope":42466,"src":"17007:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42451,"name":"uint256","nodeType":"ElementaryTypeName","src":"17007:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16982:36:138"},"returnParameters":{"id":42454,"nodeType":"ParameterList","parameters":[],"src":"17033:0:138"},"scope":48415,"src":"16970:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42485,"nodeType":"Block","src":"17197:91:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":42478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17241:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":42479,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42468,"src":"17272:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42480,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42470,"src":"17276:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42481,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42472,"src":"17280:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42476,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17217:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17217:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17217:66:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42475,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"17201:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17201:83:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42484,"nodeType":"ExpressionStatement","src":"17201:83:138"}]},"id":42486,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17137:3:138","nodeType":"FunctionDefinition","parameters":{"id":42473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42468,"mutability":"mutable","name":"p0","nameLocation":"17149:2:138","nodeType":"VariableDeclaration","scope":42486,"src":"17141:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42467,"name":"address","nodeType":"ElementaryTypeName","src":"17141:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42470,"mutability":"mutable","name":"p1","nameLocation":"17161:2:138","nodeType":"VariableDeclaration","scope":42486,"src":"17153:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42469,"name":"address","nodeType":"ElementaryTypeName","src":"17153:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42472,"mutability":"mutable","name":"p2","nameLocation":"17179:2:138","nodeType":"VariableDeclaration","scope":42486,"src":"17165:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42471,"name":"string","nodeType":"ElementaryTypeName","src":"17165:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17140:42:138"},"returnParameters":{"id":42474,"nodeType":"ParameterList","parameters":[],"src":"17197:0:138"},"scope":48415,"src":"17128:160:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42505,"nodeType":"Block","src":"17351:89:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":42498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17395:27:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":42499,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"17424:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42500,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42490,"src":"17428:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42501,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42492,"src":"17432:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42496,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17371:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17371:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17371:64:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42495,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"17355:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17355:81:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42504,"nodeType":"ExpressionStatement","src":"17355:81:138"}]},"id":42506,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17300:3:138","nodeType":"FunctionDefinition","parameters":{"id":42493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42488,"mutability":"mutable","name":"p0","nameLocation":"17312:2:138","nodeType":"VariableDeclaration","scope":42506,"src":"17304:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42487,"name":"address","nodeType":"ElementaryTypeName","src":"17304:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42490,"mutability":"mutable","name":"p1","nameLocation":"17324:2:138","nodeType":"VariableDeclaration","scope":42506,"src":"17316:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42489,"name":"address","nodeType":"ElementaryTypeName","src":"17316:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42492,"mutability":"mutable","name":"p2","nameLocation":"17333:2:138","nodeType":"VariableDeclaration","scope":42506,"src":"17328:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42491,"name":"bool","nodeType":"ElementaryTypeName","src":"17328:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17303:33:138"},"returnParameters":{"id":42494,"nodeType":"ParameterList","parameters":[],"src":"17351:0:138"},"scope":48415,"src":"17291:149:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42525,"nodeType":"Block","src":"17506:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":42518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17550:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":42519,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42508,"src":"17582:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42520,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42510,"src":"17586:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42521,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"17590:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42516,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17526:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17526:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17526:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"17510:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17510:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42524,"nodeType":"ExpressionStatement","src":"17510:84:138"}]},"id":42526,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17452:3:138","nodeType":"FunctionDefinition","parameters":{"id":42513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42508,"mutability":"mutable","name":"p0","nameLocation":"17464:2:138","nodeType":"VariableDeclaration","scope":42526,"src":"17456:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42507,"name":"address","nodeType":"ElementaryTypeName","src":"17456:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42510,"mutability":"mutable","name":"p1","nameLocation":"17476:2:138","nodeType":"VariableDeclaration","scope":42526,"src":"17468:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42509,"name":"address","nodeType":"ElementaryTypeName","src":"17468:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42512,"mutability":"mutable","name":"p2","nameLocation":"17488:2:138","nodeType":"VariableDeclaration","scope":42526,"src":"17480:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42511,"name":"address","nodeType":"ElementaryTypeName","src":"17480:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17455:36:138"},"returnParameters":{"id":42514,"nodeType":"ParameterList","parameters":[],"src":"17506:0:138"},"scope":48415,"src":"17443:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42548,"nodeType":"Block","src":"17676:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629","id":42540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17720:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256,uint256)"},{"id":42541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42528,"src":"17760:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42530,"src":"17764:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42532,"src":"17768:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42544,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42534,"src":"17772:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17696:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17696:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17696:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"17680:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17680:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42547,"nodeType":"ExpressionStatement","src":"17680:96:138"}]},"id":42549,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17610:3:138","nodeType":"FunctionDefinition","parameters":{"id":42535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42528,"mutability":"mutable","name":"p0","nameLocation":"17622:2:138","nodeType":"VariableDeclaration","scope":42549,"src":"17614:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42527,"name":"uint256","nodeType":"ElementaryTypeName","src":"17614:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42530,"mutability":"mutable","name":"p1","nameLocation":"17634:2:138","nodeType":"VariableDeclaration","scope":42549,"src":"17626:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42529,"name":"uint256","nodeType":"ElementaryTypeName","src":"17626:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42532,"mutability":"mutable","name":"p2","nameLocation":"17646:2:138","nodeType":"VariableDeclaration","scope":42549,"src":"17638:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42531,"name":"uint256","nodeType":"ElementaryTypeName","src":"17638:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42534,"mutability":"mutable","name":"p3","nameLocation":"17658:2:138","nodeType":"VariableDeclaration","scope":42549,"src":"17650:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42533,"name":"uint256","nodeType":"ElementaryTypeName","src":"17650:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17613:48:138"},"returnParameters":{"id":42536,"nodeType":"ParameterList","parameters":[],"src":"17676:0:138"},"scope":48415,"src":"17601:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42571,"nodeType":"Block","src":"17864:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729","id":42563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17908:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},"value":"log(uint256,uint256,uint256,string)"},{"id":42564,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42551,"src":"17947:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42565,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"17951:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42566,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42555,"src":"17955:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42567,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42557,"src":"17959:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17884:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17884:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17884:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42560,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"17868:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17868:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42570,"nodeType":"ExpressionStatement","src":"17868:95:138"}]},"id":42572,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17792:3:138","nodeType":"FunctionDefinition","parameters":{"id":42558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42551,"mutability":"mutable","name":"p0","nameLocation":"17804:2:138","nodeType":"VariableDeclaration","scope":42572,"src":"17796:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42550,"name":"uint256","nodeType":"ElementaryTypeName","src":"17796:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42553,"mutability":"mutable","name":"p1","nameLocation":"17816:2:138","nodeType":"VariableDeclaration","scope":42572,"src":"17808:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42552,"name":"uint256","nodeType":"ElementaryTypeName","src":"17808:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42555,"mutability":"mutable","name":"p2","nameLocation":"17828:2:138","nodeType":"VariableDeclaration","scope":42572,"src":"17820:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42554,"name":"uint256","nodeType":"ElementaryTypeName","src":"17820:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42557,"mutability":"mutable","name":"p3","nameLocation":"17846:2:138","nodeType":"VariableDeclaration","scope":42572,"src":"17832:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42556,"name":"string","nodeType":"ElementaryTypeName","src":"17832:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17795:54:138"},"returnParameters":{"id":42559,"nodeType":"ParameterList","parameters":[],"src":"17864:0:138"},"scope":48415,"src":"17783:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42594,"nodeType":"Block","src":"18042:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29","id":42586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18086:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},"value":"log(uint256,uint256,uint256,bool)"},{"id":42587,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42574,"src":"18123:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42588,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42576,"src":"18127:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42589,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42578,"src":"18131:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42590,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42580,"src":"18135:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42584,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18062:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18062:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18062:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42583,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"18046:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18046:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42593,"nodeType":"ExpressionStatement","src":"18046:93:138"}]},"id":42595,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17979:3:138","nodeType":"FunctionDefinition","parameters":{"id":42581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42574,"mutability":"mutable","name":"p0","nameLocation":"17991:2:138","nodeType":"VariableDeclaration","scope":42595,"src":"17983:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42573,"name":"uint256","nodeType":"ElementaryTypeName","src":"17983:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42576,"mutability":"mutable","name":"p1","nameLocation":"18003:2:138","nodeType":"VariableDeclaration","scope":42595,"src":"17995:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42575,"name":"uint256","nodeType":"ElementaryTypeName","src":"17995:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42578,"mutability":"mutable","name":"p2","nameLocation":"18015:2:138","nodeType":"VariableDeclaration","scope":42595,"src":"18007:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42577,"name":"uint256","nodeType":"ElementaryTypeName","src":"18007:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42580,"mutability":"mutable","name":"p3","nameLocation":"18024:2:138","nodeType":"VariableDeclaration","scope":42595,"src":"18019:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42579,"name":"bool","nodeType":"ElementaryTypeName","src":"18019:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17982:45:138"},"returnParameters":{"id":42582,"nodeType":"ParameterList","parameters":[],"src":"18042:0:138"},"scope":48415,"src":"17970:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42617,"nodeType":"Block","src":"18221:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329","id":42609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18265:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},"value":"log(uint256,uint256,uint256,address)"},{"id":42610,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42597,"src":"18305:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42611,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42599,"src":"18309:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42612,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42601,"src":"18313:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42613,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42603,"src":"18317:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18241:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18241:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18241:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42606,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"18225:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18225:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42616,"nodeType":"ExpressionStatement","src":"18225:96:138"}]},"id":42618,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18155:3:138","nodeType":"FunctionDefinition","parameters":{"id":42604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42597,"mutability":"mutable","name":"p0","nameLocation":"18167:2:138","nodeType":"VariableDeclaration","scope":42618,"src":"18159:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42596,"name":"uint256","nodeType":"ElementaryTypeName","src":"18159:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42599,"mutability":"mutable","name":"p1","nameLocation":"18179:2:138","nodeType":"VariableDeclaration","scope":42618,"src":"18171:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42598,"name":"uint256","nodeType":"ElementaryTypeName","src":"18171:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42601,"mutability":"mutable","name":"p2","nameLocation":"18191:2:138","nodeType":"VariableDeclaration","scope":42618,"src":"18183:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42600,"name":"uint256","nodeType":"ElementaryTypeName","src":"18183:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42603,"mutability":"mutable","name":"p3","nameLocation":"18203:2:138","nodeType":"VariableDeclaration","scope":42618,"src":"18195:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42602,"name":"address","nodeType":"ElementaryTypeName","src":"18195:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18158:48:138"},"returnParameters":{"id":42605,"nodeType":"ParameterList","parameters":[],"src":"18221:0:138"},"scope":48415,"src":"18146:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42640,"nodeType":"Block","src":"18409:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629","id":42632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18453:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},"value":"log(uint256,uint256,string,uint256)"},{"id":42633,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42620,"src":"18492:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42634,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42622,"src":"18496:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42635,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42624,"src":"18500:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42636,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42626,"src":"18504:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18429:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18429:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18429:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42629,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"18413:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18413:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42639,"nodeType":"ExpressionStatement","src":"18413:95:138"}]},"id":42641,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18337:3:138","nodeType":"FunctionDefinition","parameters":{"id":42627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42620,"mutability":"mutable","name":"p0","nameLocation":"18349:2:138","nodeType":"VariableDeclaration","scope":42641,"src":"18341:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42619,"name":"uint256","nodeType":"ElementaryTypeName","src":"18341:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42622,"mutability":"mutable","name":"p1","nameLocation":"18361:2:138","nodeType":"VariableDeclaration","scope":42641,"src":"18353:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42621,"name":"uint256","nodeType":"ElementaryTypeName","src":"18353:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42624,"mutability":"mutable","name":"p2","nameLocation":"18379:2:138","nodeType":"VariableDeclaration","scope":42641,"src":"18365:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42623,"name":"string","nodeType":"ElementaryTypeName","src":"18365:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42626,"mutability":"mutable","name":"p3","nameLocation":"18391:2:138","nodeType":"VariableDeclaration","scope":42641,"src":"18383:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42625,"name":"uint256","nodeType":"ElementaryTypeName","src":"18383:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18340:54:138"},"returnParameters":{"id":42628,"nodeType":"ParameterList","parameters":[],"src":"18409:0:138"},"scope":48415,"src":"18328:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42663,"nodeType":"Block","src":"18602:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729","id":42655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18646:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},"value":"log(uint256,uint256,string,string)"},{"id":42656,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42643,"src":"18684:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42657,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42645,"src":"18688:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42658,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42647,"src":"18692:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42659,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42649,"src":"18696:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18622:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18622:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18622:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42652,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"18606:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18606:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42662,"nodeType":"ExpressionStatement","src":"18606:94:138"}]},"id":42664,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18524:3:138","nodeType":"FunctionDefinition","parameters":{"id":42650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42643,"mutability":"mutable","name":"p0","nameLocation":"18536:2:138","nodeType":"VariableDeclaration","scope":42664,"src":"18528:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42642,"name":"uint256","nodeType":"ElementaryTypeName","src":"18528:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42645,"mutability":"mutable","name":"p1","nameLocation":"18548:2:138","nodeType":"VariableDeclaration","scope":42664,"src":"18540:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42644,"name":"uint256","nodeType":"ElementaryTypeName","src":"18540:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42647,"mutability":"mutable","name":"p2","nameLocation":"18566:2:138","nodeType":"VariableDeclaration","scope":42664,"src":"18552:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42646,"name":"string","nodeType":"ElementaryTypeName","src":"18552:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42649,"mutability":"mutable","name":"p3","nameLocation":"18584:2:138","nodeType":"VariableDeclaration","scope":42664,"src":"18570:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42648,"name":"string","nodeType":"ElementaryTypeName","src":"18570:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18527:60:138"},"returnParameters":{"id":42651,"nodeType":"ParameterList","parameters":[],"src":"18602:0:138"},"scope":48415,"src":"18515:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42686,"nodeType":"Block","src":"18785:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29","id":42678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18829:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},"value":"log(uint256,uint256,string,bool)"},{"id":42679,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"18865:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42680,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42668,"src":"18869:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42681,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42670,"src":"18873:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42682,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42672,"src":"18877:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18805:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18805:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18805:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42675,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"18789:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18789:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42685,"nodeType":"ExpressionStatement","src":"18789:92:138"}]},"id":42687,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18716:3:138","nodeType":"FunctionDefinition","parameters":{"id":42673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42666,"mutability":"mutable","name":"p0","nameLocation":"18728:2:138","nodeType":"VariableDeclaration","scope":42687,"src":"18720:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42665,"name":"uint256","nodeType":"ElementaryTypeName","src":"18720:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42668,"mutability":"mutable","name":"p1","nameLocation":"18740:2:138","nodeType":"VariableDeclaration","scope":42687,"src":"18732:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42667,"name":"uint256","nodeType":"ElementaryTypeName","src":"18732:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42670,"mutability":"mutable","name":"p2","nameLocation":"18758:2:138","nodeType":"VariableDeclaration","scope":42687,"src":"18744:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42669,"name":"string","nodeType":"ElementaryTypeName","src":"18744:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42672,"mutability":"mutable","name":"p3","nameLocation":"18767:2:138","nodeType":"VariableDeclaration","scope":42687,"src":"18762:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42671,"name":"bool","nodeType":"ElementaryTypeName","src":"18762:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18719:51:138"},"returnParameters":{"id":42674,"nodeType":"ParameterList","parameters":[],"src":"18785:0:138"},"scope":48415,"src":"18707:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42709,"nodeType":"Block","src":"18969:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329","id":42701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19013:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},"value":"log(uint256,uint256,string,address)"},{"id":42702,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42689,"src":"19052:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42703,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42691,"src":"19056:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42704,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42693,"src":"19060:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42705,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42695,"src":"19064:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42699,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18989:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18989:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18989:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42698,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"18973:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18973:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42708,"nodeType":"ExpressionStatement","src":"18973:95:138"}]},"id":42710,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18897:3:138","nodeType":"FunctionDefinition","parameters":{"id":42696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42689,"mutability":"mutable","name":"p0","nameLocation":"18909:2:138","nodeType":"VariableDeclaration","scope":42710,"src":"18901:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42688,"name":"uint256","nodeType":"ElementaryTypeName","src":"18901:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42691,"mutability":"mutable","name":"p1","nameLocation":"18921:2:138","nodeType":"VariableDeclaration","scope":42710,"src":"18913:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42690,"name":"uint256","nodeType":"ElementaryTypeName","src":"18913:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42693,"mutability":"mutable","name":"p2","nameLocation":"18939:2:138","nodeType":"VariableDeclaration","scope":42710,"src":"18925:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42692,"name":"string","nodeType":"ElementaryTypeName","src":"18925:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42695,"mutability":"mutable","name":"p3","nameLocation":"18951:2:138","nodeType":"VariableDeclaration","scope":42710,"src":"18943:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42694,"name":"address","nodeType":"ElementaryTypeName","src":"18943:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18900:54:138"},"returnParameters":{"id":42697,"nodeType":"ParameterList","parameters":[],"src":"18969:0:138"},"scope":48415,"src":"18888:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42732,"nodeType":"Block","src":"19147:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629","id":42724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19191:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},"value":"log(uint256,uint256,bool,uint256)"},{"id":42725,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42712,"src":"19228:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42726,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42714,"src":"19232:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42727,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42716,"src":"19236:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42728,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42718,"src":"19240:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42722,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19167:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19167:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19167:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42721,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"19151:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19151:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42731,"nodeType":"ExpressionStatement","src":"19151:93:138"}]},"id":42733,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19084:3:138","nodeType":"FunctionDefinition","parameters":{"id":42719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42712,"mutability":"mutable","name":"p0","nameLocation":"19096:2:138","nodeType":"VariableDeclaration","scope":42733,"src":"19088:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42711,"name":"uint256","nodeType":"ElementaryTypeName","src":"19088:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42714,"mutability":"mutable","name":"p1","nameLocation":"19108:2:138","nodeType":"VariableDeclaration","scope":42733,"src":"19100:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42713,"name":"uint256","nodeType":"ElementaryTypeName","src":"19100:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42716,"mutability":"mutable","name":"p2","nameLocation":"19117:2:138","nodeType":"VariableDeclaration","scope":42733,"src":"19112:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42715,"name":"bool","nodeType":"ElementaryTypeName","src":"19112:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42718,"mutability":"mutable","name":"p3","nameLocation":"19129:2:138","nodeType":"VariableDeclaration","scope":42733,"src":"19121:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42717,"name":"uint256","nodeType":"ElementaryTypeName","src":"19121:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19087:45:138"},"returnParameters":{"id":42720,"nodeType":"ParameterList","parameters":[],"src":"19147:0:138"},"scope":48415,"src":"19075:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42755,"nodeType":"Block","src":"19329:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729","id":42747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19373:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},"value":"log(uint256,uint256,bool,string)"},{"id":42748,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42735,"src":"19409:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42749,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42737,"src":"19413:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42750,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42739,"src":"19417:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42751,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42741,"src":"19421:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19349:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19349:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19349:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42744,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"19333:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19333:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42754,"nodeType":"ExpressionStatement","src":"19333:92:138"}]},"id":42756,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19260:3:138","nodeType":"FunctionDefinition","parameters":{"id":42742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42735,"mutability":"mutable","name":"p0","nameLocation":"19272:2:138","nodeType":"VariableDeclaration","scope":42756,"src":"19264:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42734,"name":"uint256","nodeType":"ElementaryTypeName","src":"19264:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42737,"mutability":"mutable","name":"p1","nameLocation":"19284:2:138","nodeType":"VariableDeclaration","scope":42756,"src":"19276:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42736,"name":"uint256","nodeType":"ElementaryTypeName","src":"19276:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42739,"mutability":"mutable","name":"p2","nameLocation":"19293:2:138","nodeType":"VariableDeclaration","scope":42756,"src":"19288:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42738,"name":"bool","nodeType":"ElementaryTypeName","src":"19288:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42741,"mutability":"mutable","name":"p3","nameLocation":"19311:2:138","nodeType":"VariableDeclaration","scope":42756,"src":"19297:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42740,"name":"string","nodeType":"ElementaryTypeName","src":"19297:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19263:51:138"},"returnParameters":{"id":42743,"nodeType":"ParameterList","parameters":[],"src":"19329:0:138"},"scope":48415,"src":"19251:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42778,"nodeType":"Block","src":"19501:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29","id":42770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19545:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},"value":"log(uint256,uint256,bool,bool)"},{"id":42771,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42758,"src":"19579:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42772,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42760,"src":"19583:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42773,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42762,"src":"19587:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42774,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"19591:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42768,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19521:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19521:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19521:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42767,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"19505:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19505:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42777,"nodeType":"ExpressionStatement","src":"19505:90:138"}]},"id":42779,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19441:3:138","nodeType":"FunctionDefinition","parameters":{"id":42765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42758,"mutability":"mutable","name":"p0","nameLocation":"19453:2:138","nodeType":"VariableDeclaration","scope":42779,"src":"19445:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42757,"name":"uint256","nodeType":"ElementaryTypeName","src":"19445:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42760,"mutability":"mutable","name":"p1","nameLocation":"19465:2:138","nodeType":"VariableDeclaration","scope":42779,"src":"19457:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42759,"name":"uint256","nodeType":"ElementaryTypeName","src":"19457:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42762,"mutability":"mutable","name":"p2","nameLocation":"19474:2:138","nodeType":"VariableDeclaration","scope":42779,"src":"19469:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42761,"name":"bool","nodeType":"ElementaryTypeName","src":"19469:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42764,"mutability":"mutable","name":"p3","nameLocation":"19483:2:138","nodeType":"VariableDeclaration","scope":42779,"src":"19478:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42763,"name":"bool","nodeType":"ElementaryTypeName","src":"19478:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19444:42:138"},"returnParameters":{"id":42766,"nodeType":"ParameterList","parameters":[],"src":"19501:0:138"},"scope":48415,"src":"19432:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42801,"nodeType":"Block","src":"19674:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329","id":42793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19718:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},"value":"log(uint256,uint256,bool,address)"},{"id":42794,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42781,"src":"19755:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42795,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42783,"src":"19759:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42796,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42785,"src":"19763:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42797,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42787,"src":"19767:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19694:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19694:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19694:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42790,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"19678:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19678:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42800,"nodeType":"ExpressionStatement","src":"19678:93:138"}]},"id":42802,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19611:3:138","nodeType":"FunctionDefinition","parameters":{"id":42788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42781,"mutability":"mutable","name":"p0","nameLocation":"19623:2:138","nodeType":"VariableDeclaration","scope":42802,"src":"19615:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42780,"name":"uint256","nodeType":"ElementaryTypeName","src":"19615:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42783,"mutability":"mutable","name":"p1","nameLocation":"19635:2:138","nodeType":"VariableDeclaration","scope":42802,"src":"19627:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42782,"name":"uint256","nodeType":"ElementaryTypeName","src":"19627:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42785,"mutability":"mutable","name":"p2","nameLocation":"19644:2:138","nodeType":"VariableDeclaration","scope":42802,"src":"19639:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42784,"name":"bool","nodeType":"ElementaryTypeName","src":"19639:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42787,"mutability":"mutable","name":"p3","nameLocation":"19656:2:138","nodeType":"VariableDeclaration","scope":42802,"src":"19648:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42786,"name":"address","nodeType":"ElementaryTypeName","src":"19648:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19614:45:138"},"returnParameters":{"id":42789,"nodeType":"ParameterList","parameters":[],"src":"19674:0:138"},"scope":48415,"src":"19602:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42824,"nodeType":"Block","src":"19853:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629","id":42816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19897:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},"value":"log(uint256,uint256,address,uint256)"},{"id":42817,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42804,"src":"19937:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42818,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42806,"src":"19941:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42819,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42808,"src":"19945:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42820,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42810,"src":"19949:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19873:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19873:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19873:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42813,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"19857:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19857:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42823,"nodeType":"ExpressionStatement","src":"19857:96:138"}]},"id":42825,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19787:3:138","nodeType":"FunctionDefinition","parameters":{"id":42811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42804,"mutability":"mutable","name":"p0","nameLocation":"19799:2:138","nodeType":"VariableDeclaration","scope":42825,"src":"19791:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42803,"name":"uint256","nodeType":"ElementaryTypeName","src":"19791:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42806,"mutability":"mutable","name":"p1","nameLocation":"19811:2:138","nodeType":"VariableDeclaration","scope":42825,"src":"19803:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42805,"name":"uint256","nodeType":"ElementaryTypeName","src":"19803:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42808,"mutability":"mutable","name":"p2","nameLocation":"19823:2:138","nodeType":"VariableDeclaration","scope":42825,"src":"19815:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42807,"name":"address","nodeType":"ElementaryTypeName","src":"19815:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42810,"mutability":"mutable","name":"p3","nameLocation":"19835:2:138","nodeType":"VariableDeclaration","scope":42825,"src":"19827:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42809,"name":"uint256","nodeType":"ElementaryTypeName","src":"19827:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19790:48:138"},"returnParameters":{"id":42812,"nodeType":"ParameterList","parameters":[],"src":"19853:0:138"},"scope":48415,"src":"19778:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42847,"nodeType":"Block","src":"20041:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729","id":42839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20085:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},"value":"log(uint256,uint256,address,string)"},{"id":42840,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42827,"src":"20124:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42841,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42829,"src":"20128:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42842,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42831,"src":"20132:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42843,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42833,"src":"20136:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42837,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20061:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20061:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20061:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"20045:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20045:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42846,"nodeType":"ExpressionStatement","src":"20045:95:138"}]},"id":42848,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19969:3:138","nodeType":"FunctionDefinition","parameters":{"id":42834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42827,"mutability":"mutable","name":"p0","nameLocation":"19981:2:138","nodeType":"VariableDeclaration","scope":42848,"src":"19973:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42826,"name":"uint256","nodeType":"ElementaryTypeName","src":"19973:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42829,"mutability":"mutable","name":"p1","nameLocation":"19993:2:138","nodeType":"VariableDeclaration","scope":42848,"src":"19985:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42828,"name":"uint256","nodeType":"ElementaryTypeName","src":"19985:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42831,"mutability":"mutable","name":"p2","nameLocation":"20005:2:138","nodeType":"VariableDeclaration","scope":42848,"src":"19997:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42830,"name":"address","nodeType":"ElementaryTypeName","src":"19997:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42833,"mutability":"mutable","name":"p3","nameLocation":"20023:2:138","nodeType":"VariableDeclaration","scope":42848,"src":"20009:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42832,"name":"string","nodeType":"ElementaryTypeName","src":"20009:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19972:54:138"},"returnParameters":{"id":42835,"nodeType":"ParameterList","parameters":[],"src":"20041:0:138"},"scope":48415,"src":"19960:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42870,"nodeType":"Block","src":"20219:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29","id":42862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20263:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},"value":"log(uint256,uint256,address,bool)"},{"id":42863,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42850,"src":"20300:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42864,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42852,"src":"20304:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42865,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42854,"src":"20308:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42866,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42856,"src":"20312:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20239:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20239:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20239:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42859,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"20223:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20223:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42869,"nodeType":"ExpressionStatement","src":"20223:93:138"}]},"id":42871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20156:3:138","nodeType":"FunctionDefinition","parameters":{"id":42857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42850,"mutability":"mutable","name":"p0","nameLocation":"20168:2:138","nodeType":"VariableDeclaration","scope":42871,"src":"20160:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42849,"name":"uint256","nodeType":"ElementaryTypeName","src":"20160:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42852,"mutability":"mutable","name":"p1","nameLocation":"20180:2:138","nodeType":"VariableDeclaration","scope":42871,"src":"20172:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42851,"name":"uint256","nodeType":"ElementaryTypeName","src":"20172:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42854,"mutability":"mutable","name":"p2","nameLocation":"20192:2:138","nodeType":"VariableDeclaration","scope":42871,"src":"20184:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42853,"name":"address","nodeType":"ElementaryTypeName","src":"20184:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42856,"mutability":"mutable","name":"p3","nameLocation":"20201:2:138","nodeType":"VariableDeclaration","scope":42871,"src":"20196:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42855,"name":"bool","nodeType":"ElementaryTypeName","src":"20196:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20159:45:138"},"returnParameters":{"id":42858,"nodeType":"ParameterList","parameters":[],"src":"20219:0:138"},"scope":48415,"src":"20147:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42893,"nodeType":"Block","src":"20398:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329","id":42885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20442:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},"value":"log(uint256,uint256,address,address)"},{"id":42886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42873,"src":"20482:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42887,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42875,"src":"20486:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42888,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42877,"src":"20490:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42889,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42879,"src":"20494:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20418:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20418:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20418:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"20402:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20402:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42892,"nodeType":"ExpressionStatement","src":"20402:96:138"}]},"id":42894,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20332:3:138","nodeType":"FunctionDefinition","parameters":{"id":42880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42873,"mutability":"mutable","name":"p0","nameLocation":"20344:2:138","nodeType":"VariableDeclaration","scope":42894,"src":"20336:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42872,"name":"uint256","nodeType":"ElementaryTypeName","src":"20336:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42875,"mutability":"mutable","name":"p1","nameLocation":"20356:2:138","nodeType":"VariableDeclaration","scope":42894,"src":"20348:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42874,"name":"uint256","nodeType":"ElementaryTypeName","src":"20348:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42877,"mutability":"mutable","name":"p2","nameLocation":"20368:2:138","nodeType":"VariableDeclaration","scope":42894,"src":"20360:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42876,"name":"address","nodeType":"ElementaryTypeName","src":"20360:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42879,"mutability":"mutable","name":"p3","nameLocation":"20380:2:138","nodeType":"VariableDeclaration","scope":42894,"src":"20372:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42878,"name":"address","nodeType":"ElementaryTypeName","src":"20372:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20335:48:138"},"returnParameters":{"id":42881,"nodeType":"ParameterList","parameters":[],"src":"20398:0:138"},"scope":48415,"src":"20323:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42916,"nodeType":"Block","src":"20586:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629","id":42908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20630:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},"value":"log(uint256,string,uint256,uint256)"},{"id":42909,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42896,"src":"20669:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42910,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42898,"src":"20673:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42911,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42900,"src":"20677:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42912,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42902,"src":"20681:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20606:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20606:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20606:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"20590:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20590:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42915,"nodeType":"ExpressionStatement","src":"20590:95:138"}]},"id":42917,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20514:3:138","nodeType":"FunctionDefinition","parameters":{"id":42903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42896,"mutability":"mutable","name":"p0","nameLocation":"20526:2:138","nodeType":"VariableDeclaration","scope":42917,"src":"20518:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42895,"name":"uint256","nodeType":"ElementaryTypeName","src":"20518:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42898,"mutability":"mutable","name":"p1","nameLocation":"20544:2:138","nodeType":"VariableDeclaration","scope":42917,"src":"20530:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42897,"name":"string","nodeType":"ElementaryTypeName","src":"20530:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42900,"mutability":"mutable","name":"p2","nameLocation":"20556:2:138","nodeType":"VariableDeclaration","scope":42917,"src":"20548:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42899,"name":"uint256","nodeType":"ElementaryTypeName","src":"20548:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42902,"mutability":"mutable","name":"p3","nameLocation":"20568:2:138","nodeType":"VariableDeclaration","scope":42917,"src":"20560:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42901,"name":"uint256","nodeType":"ElementaryTypeName","src":"20560:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20517:54:138"},"returnParameters":{"id":42904,"nodeType":"ParameterList","parameters":[],"src":"20586:0:138"},"scope":48415,"src":"20505:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42939,"nodeType":"Block","src":"20779:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729","id":42931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20823:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},"value":"log(uint256,string,uint256,string)"},{"id":42932,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42919,"src":"20861:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42933,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42921,"src":"20865:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42934,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42923,"src":"20869:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42935,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42925,"src":"20873:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42929,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20799:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20799:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20799:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42928,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"20783:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20783:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42938,"nodeType":"ExpressionStatement","src":"20783:94:138"}]},"id":42940,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20701:3:138","nodeType":"FunctionDefinition","parameters":{"id":42926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42919,"mutability":"mutable","name":"p0","nameLocation":"20713:2:138","nodeType":"VariableDeclaration","scope":42940,"src":"20705:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42918,"name":"uint256","nodeType":"ElementaryTypeName","src":"20705:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42921,"mutability":"mutable","name":"p1","nameLocation":"20731:2:138","nodeType":"VariableDeclaration","scope":42940,"src":"20717:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42920,"name":"string","nodeType":"ElementaryTypeName","src":"20717:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42923,"mutability":"mutable","name":"p2","nameLocation":"20743:2:138","nodeType":"VariableDeclaration","scope":42940,"src":"20735:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42922,"name":"uint256","nodeType":"ElementaryTypeName","src":"20735:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42925,"mutability":"mutable","name":"p3","nameLocation":"20761:2:138","nodeType":"VariableDeclaration","scope":42940,"src":"20747:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42924,"name":"string","nodeType":"ElementaryTypeName","src":"20747:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20704:60:138"},"returnParameters":{"id":42927,"nodeType":"ParameterList","parameters":[],"src":"20779:0:138"},"scope":48415,"src":"20692:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42962,"nodeType":"Block","src":"20962:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29","id":42954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21006:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},"value":"log(uint256,string,uint256,bool)"},{"id":42955,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42942,"src":"21042:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42956,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"21046:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42957,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42946,"src":"21050:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42958,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42948,"src":"21054:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":42952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20982:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20982:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20982:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"20966:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20966:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42961,"nodeType":"ExpressionStatement","src":"20966:92:138"}]},"id":42963,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20893:3:138","nodeType":"FunctionDefinition","parameters":{"id":42949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42942,"mutability":"mutable","name":"p0","nameLocation":"20905:2:138","nodeType":"VariableDeclaration","scope":42963,"src":"20897:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42941,"name":"uint256","nodeType":"ElementaryTypeName","src":"20897:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42944,"mutability":"mutable","name":"p1","nameLocation":"20923:2:138","nodeType":"VariableDeclaration","scope":42963,"src":"20909:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42943,"name":"string","nodeType":"ElementaryTypeName","src":"20909:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42946,"mutability":"mutable","name":"p2","nameLocation":"20935:2:138","nodeType":"VariableDeclaration","scope":42963,"src":"20927:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42945,"name":"uint256","nodeType":"ElementaryTypeName","src":"20927:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42948,"mutability":"mutable","name":"p3","nameLocation":"20944:2:138","nodeType":"VariableDeclaration","scope":42963,"src":"20939:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42947,"name":"bool","nodeType":"ElementaryTypeName","src":"20939:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20896:51:138"},"returnParameters":{"id":42950,"nodeType":"ParameterList","parameters":[],"src":"20962:0:138"},"scope":48415,"src":"20884:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":42985,"nodeType":"Block","src":"21146:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329","id":42977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21190:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},"value":"log(uint256,string,uint256,address)"},{"id":42978,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42965,"src":"21229:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42979,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42967,"src":"21233:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":42980,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42969,"src":"21237:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42981,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42971,"src":"21241:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21166:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21166:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":42982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21166:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42974,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"21150:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":42983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21150:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42984,"nodeType":"ExpressionStatement","src":"21150:95:138"}]},"id":42986,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21074:3:138","nodeType":"FunctionDefinition","parameters":{"id":42972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42965,"mutability":"mutable","name":"p0","nameLocation":"21086:2:138","nodeType":"VariableDeclaration","scope":42986,"src":"21078:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42964,"name":"uint256","nodeType":"ElementaryTypeName","src":"21078:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42967,"mutability":"mutable","name":"p1","nameLocation":"21104:2:138","nodeType":"VariableDeclaration","scope":42986,"src":"21090:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42966,"name":"string","nodeType":"ElementaryTypeName","src":"21090:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42969,"mutability":"mutable","name":"p2","nameLocation":"21116:2:138","nodeType":"VariableDeclaration","scope":42986,"src":"21108:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42968,"name":"uint256","nodeType":"ElementaryTypeName","src":"21108:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42971,"mutability":"mutable","name":"p3","nameLocation":"21128:2:138","nodeType":"VariableDeclaration","scope":42986,"src":"21120:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42970,"name":"address","nodeType":"ElementaryTypeName","src":"21120:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21077:54:138"},"returnParameters":{"id":42973,"nodeType":"ParameterList","parameters":[],"src":"21146:0:138"},"scope":48415,"src":"21065:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43008,"nodeType":"Block","src":"21339:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629","id":43000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21383:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},"value":"log(uint256,string,string,uint256)"},{"id":43001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42988,"src":"21421:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42990,"src":"21425:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42992,"src":"21429:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43004,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42994,"src":"21433:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21359:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21359:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21359:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"21343:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21343:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43007,"nodeType":"ExpressionStatement","src":"21343:94:138"}]},"id":43009,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21261:3:138","nodeType":"FunctionDefinition","parameters":{"id":42995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42988,"mutability":"mutable","name":"p0","nameLocation":"21273:2:138","nodeType":"VariableDeclaration","scope":43009,"src":"21265:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42987,"name":"uint256","nodeType":"ElementaryTypeName","src":"21265:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42990,"mutability":"mutable","name":"p1","nameLocation":"21291:2:138","nodeType":"VariableDeclaration","scope":43009,"src":"21277:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42989,"name":"string","nodeType":"ElementaryTypeName","src":"21277:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42992,"mutability":"mutable","name":"p2","nameLocation":"21309:2:138","nodeType":"VariableDeclaration","scope":43009,"src":"21295:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":42991,"name":"string","nodeType":"ElementaryTypeName","src":"21295:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":42994,"mutability":"mutable","name":"p3","nameLocation":"21321:2:138","nodeType":"VariableDeclaration","scope":43009,"src":"21313:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42993,"name":"uint256","nodeType":"ElementaryTypeName","src":"21313:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21264:60:138"},"returnParameters":{"id":42996,"nodeType":"ParameterList","parameters":[],"src":"21339:0:138"},"scope":48415,"src":"21252:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43031,"nodeType":"Block","src":"21537:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729","id":43023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21581:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},"value":"log(uint256,string,string,string)"},{"id":43024,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43011,"src":"21618:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43025,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43013,"src":"21622:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43026,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43015,"src":"21626:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43027,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43017,"src":"21630:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21557:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21557:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21557:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43020,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"21541:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21541:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43030,"nodeType":"ExpressionStatement","src":"21541:93:138"}]},"id":43032,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21453:3:138","nodeType":"FunctionDefinition","parameters":{"id":43018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43011,"mutability":"mutable","name":"p0","nameLocation":"21465:2:138","nodeType":"VariableDeclaration","scope":43032,"src":"21457:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43010,"name":"uint256","nodeType":"ElementaryTypeName","src":"21457:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43013,"mutability":"mutable","name":"p1","nameLocation":"21483:2:138","nodeType":"VariableDeclaration","scope":43032,"src":"21469:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43012,"name":"string","nodeType":"ElementaryTypeName","src":"21469:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43015,"mutability":"mutable","name":"p2","nameLocation":"21501:2:138","nodeType":"VariableDeclaration","scope":43032,"src":"21487:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43014,"name":"string","nodeType":"ElementaryTypeName","src":"21487:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43017,"mutability":"mutable","name":"p3","nameLocation":"21519:2:138","nodeType":"VariableDeclaration","scope":43032,"src":"21505:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43016,"name":"string","nodeType":"ElementaryTypeName","src":"21505:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21456:66:138"},"returnParameters":{"id":43019,"nodeType":"ParameterList","parameters":[],"src":"21537:0:138"},"scope":48415,"src":"21444:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43054,"nodeType":"Block","src":"21725:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29","id":43046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21769:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},"value":"log(uint256,string,string,bool)"},{"id":43047,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43034,"src":"21804:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43048,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43036,"src":"21808:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43049,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43038,"src":"21812:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43050,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43040,"src":"21816:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43044,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21745:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21745:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21745:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43043,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"21729:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21729:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43053,"nodeType":"ExpressionStatement","src":"21729:91:138"}]},"id":43055,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21650:3:138","nodeType":"FunctionDefinition","parameters":{"id":43041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43034,"mutability":"mutable","name":"p0","nameLocation":"21662:2:138","nodeType":"VariableDeclaration","scope":43055,"src":"21654:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43033,"name":"uint256","nodeType":"ElementaryTypeName","src":"21654:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43036,"mutability":"mutable","name":"p1","nameLocation":"21680:2:138","nodeType":"VariableDeclaration","scope":43055,"src":"21666:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43035,"name":"string","nodeType":"ElementaryTypeName","src":"21666:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43038,"mutability":"mutable","name":"p2","nameLocation":"21698:2:138","nodeType":"VariableDeclaration","scope":43055,"src":"21684:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43037,"name":"string","nodeType":"ElementaryTypeName","src":"21684:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43040,"mutability":"mutable","name":"p3","nameLocation":"21707:2:138","nodeType":"VariableDeclaration","scope":43055,"src":"21702:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43039,"name":"bool","nodeType":"ElementaryTypeName","src":"21702:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21653:57:138"},"returnParameters":{"id":43042,"nodeType":"ParameterList","parameters":[],"src":"21725:0:138"},"scope":48415,"src":"21641:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43077,"nodeType":"Block","src":"21914:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329","id":43069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21958:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},"value":"log(uint256,string,string,address)"},{"id":43070,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43057,"src":"21996:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43071,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43059,"src":"22000:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43072,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43061,"src":"22004:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43073,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43063,"src":"22008:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21934:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21934:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21934:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43066,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"21918:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21918:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43076,"nodeType":"ExpressionStatement","src":"21918:94:138"}]},"id":43078,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21836:3:138","nodeType":"FunctionDefinition","parameters":{"id":43064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43057,"mutability":"mutable","name":"p0","nameLocation":"21848:2:138","nodeType":"VariableDeclaration","scope":43078,"src":"21840:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43056,"name":"uint256","nodeType":"ElementaryTypeName","src":"21840:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43059,"mutability":"mutable","name":"p1","nameLocation":"21866:2:138","nodeType":"VariableDeclaration","scope":43078,"src":"21852:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43058,"name":"string","nodeType":"ElementaryTypeName","src":"21852:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43061,"mutability":"mutable","name":"p2","nameLocation":"21884:2:138","nodeType":"VariableDeclaration","scope":43078,"src":"21870:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43060,"name":"string","nodeType":"ElementaryTypeName","src":"21870:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43063,"mutability":"mutable","name":"p3","nameLocation":"21896:2:138","nodeType":"VariableDeclaration","scope":43078,"src":"21888:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43062,"name":"address","nodeType":"ElementaryTypeName","src":"21888:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21839:60:138"},"returnParameters":{"id":43065,"nodeType":"ParameterList","parameters":[],"src":"21914:0:138"},"scope":48415,"src":"21827:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43100,"nodeType":"Block","src":"22097:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629","id":43092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22141:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},"value":"log(uint256,string,bool,uint256)"},{"id":43093,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43080,"src":"22177:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43094,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"22181:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43095,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43084,"src":"22185:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43096,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43086,"src":"22189:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43090,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22117:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22117:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22117:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43089,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"22101:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22101:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43099,"nodeType":"ExpressionStatement","src":"22101:92:138"}]},"id":43101,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22028:3:138","nodeType":"FunctionDefinition","parameters":{"id":43087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43080,"mutability":"mutable","name":"p0","nameLocation":"22040:2:138","nodeType":"VariableDeclaration","scope":43101,"src":"22032:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43079,"name":"uint256","nodeType":"ElementaryTypeName","src":"22032:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43082,"mutability":"mutable","name":"p1","nameLocation":"22058:2:138","nodeType":"VariableDeclaration","scope":43101,"src":"22044:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43081,"name":"string","nodeType":"ElementaryTypeName","src":"22044:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43084,"mutability":"mutable","name":"p2","nameLocation":"22067:2:138","nodeType":"VariableDeclaration","scope":43101,"src":"22062:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43083,"name":"bool","nodeType":"ElementaryTypeName","src":"22062:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43086,"mutability":"mutable","name":"p3","nameLocation":"22079:2:138","nodeType":"VariableDeclaration","scope":43101,"src":"22071:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43085,"name":"uint256","nodeType":"ElementaryTypeName","src":"22071:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22031:51:138"},"returnParameters":{"id":43088,"nodeType":"ParameterList","parameters":[],"src":"22097:0:138"},"scope":48415,"src":"22019:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43123,"nodeType":"Block","src":"22284:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729","id":43115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22328:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},"value":"log(uint256,string,bool,string)"},{"id":43116,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43103,"src":"22363:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43105,"src":"22367:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43118,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43107,"src":"22371:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43119,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43109,"src":"22375:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22304:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22304:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22304:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43112,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"22288:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22288:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43122,"nodeType":"ExpressionStatement","src":"22288:91:138"}]},"id":43124,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22209:3:138","nodeType":"FunctionDefinition","parameters":{"id":43110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43103,"mutability":"mutable","name":"p0","nameLocation":"22221:2:138","nodeType":"VariableDeclaration","scope":43124,"src":"22213:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43102,"name":"uint256","nodeType":"ElementaryTypeName","src":"22213:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43105,"mutability":"mutable","name":"p1","nameLocation":"22239:2:138","nodeType":"VariableDeclaration","scope":43124,"src":"22225:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43104,"name":"string","nodeType":"ElementaryTypeName","src":"22225:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43107,"mutability":"mutable","name":"p2","nameLocation":"22248:2:138","nodeType":"VariableDeclaration","scope":43124,"src":"22243:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43106,"name":"bool","nodeType":"ElementaryTypeName","src":"22243:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43109,"mutability":"mutable","name":"p3","nameLocation":"22266:2:138","nodeType":"VariableDeclaration","scope":43124,"src":"22252:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43108,"name":"string","nodeType":"ElementaryTypeName","src":"22252:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22212:57:138"},"returnParameters":{"id":43111,"nodeType":"ParameterList","parameters":[],"src":"22284:0:138"},"scope":48415,"src":"22200:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43146,"nodeType":"Block","src":"22461:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29","id":43138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22505:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},"value":"log(uint256,string,bool,bool)"},{"id":43139,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43126,"src":"22538:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43140,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43128,"src":"22542:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43141,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43130,"src":"22546:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43142,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43132,"src":"22550:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22481:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22481:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22481:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43135,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"22465:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22465:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43145,"nodeType":"ExpressionStatement","src":"22465:89:138"}]},"id":43147,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22395:3:138","nodeType":"FunctionDefinition","parameters":{"id":43133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43126,"mutability":"mutable","name":"p0","nameLocation":"22407:2:138","nodeType":"VariableDeclaration","scope":43147,"src":"22399:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43125,"name":"uint256","nodeType":"ElementaryTypeName","src":"22399:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43128,"mutability":"mutable","name":"p1","nameLocation":"22425:2:138","nodeType":"VariableDeclaration","scope":43147,"src":"22411:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43127,"name":"string","nodeType":"ElementaryTypeName","src":"22411:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43130,"mutability":"mutable","name":"p2","nameLocation":"22434:2:138","nodeType":"VariableDeclaration","scope":43147,"src":"22429:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43129,"name":"bool","nodeType":"ElementaryTypeName","src":"22429:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43132,"mutability":"mutable","name":"p3","nameLocation":"22443:2:138","nodeType":"VariableDeclaration","scope":43147,"src":"22438:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43131,"name":"bool","nodeType":"ElementaryTypeName","src":"22438:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22398:48:138"},"returnParameters":{"id":43134,"nodeType":"ParameterList","parameters":[],"src":"22461:0:138"},"scope":48415,"src":"22386:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43169,"nodeType":"Block","src":"22639:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329","id":43161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22683:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},"value":"log(uint256,string,bool,address)"},{"id":43162,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43149,"src":"22719:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43163,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43151,"src":"22723:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43164,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43153,"src":"22727:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43165,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43155,"src":"22731:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22659:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22659:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22659:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43158,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"22643:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22643:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43168,"nodeType":"ExpressionStatement","src":"22643:92:138"}]},"id":43170,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22570:3:138","nodeType":"FunctionDefinition","parameters":{"id":43156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43149,"mutability":"mutable","name":"p0","nameLocation":"22582:2:138","nodeType":"VariableDeclaration","scope":43170,"src":"22574:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43148,"name":"uint256","nodeType":"ElementaryTypeName","src":"22574:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43151,"mutability":"mutable","name":"p1","nameLocation":"22600:2:138","nodeType":"VariableDeclaration","scope":43170,"src":"22586:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43150,"name":"string","nodeType":"ElementaryTypeName","src":"22586:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43153,"mutability":"mutable","name":"p2","nameLocation":"22609:2:138","nodeType":"VariableDeclaration","scope":43170,"src":"22604:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43152,"name":"bool","nodeType":"ElementaryTypeName","src":"22604:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43155,"mutability":"mutable","name":"p3","nameLocation":"22621:2:138","nodeType":"VariableDeclaration","scope":43170,"src":"22613:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43154,"name":"address","nodeType":"ElementaryTypeName","src":"22613:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22573:51:138"},"returnParameters":{"id":43157,"nodeType":"ParameterList","parameters":[],"src":"22639:0:138"},"scope":48415,"src":"22561:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43192,"nodeType":"Block","src":"22823:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629","id":43184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22867:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},"value":"log(uint256,string,address,uint256)"},{"id":43185,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43172,"src":"22906:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43186,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43174,"src":"22910:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43187,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43176,"src":"22914:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43188,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43178,"src":"22918:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43182,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22843:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22843:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22843:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43181,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"22827:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22827:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43191,"nodeType":"ExpressionStatement","src":"22827:95:138"}]},"id":43193,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22751:3:138","nodeType":"FunctionDefinition","parameters":{"id":43179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43172,"mutability":"mutable","name":"p0","nameLocation":"22763:2:138","nodeType":"VariableDeclaration","scope":43193,"src":"22755:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43171,"name":"uint256","nodeType":"ElementaryTypeName","src":"22755:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43174,"mutability":"mutable","name":"p1","nameLocation":"22781:2:138","nodeType":"VariableDeclaration","scope":43193,"src":"22767:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43173,"name":"string","nodeType":"ElementaryTypeName","src":"22767:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43176,"mutability":"mutable","name":"p2","nameLocation":"22793:2:138","nodeType":"VariableDeclaration","scope":43193,"src":"22785:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43175,"name":"address","nodeType":"ElementaryTypeName","src":"22785:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43178,"mutability":"mutable","name":"p3","nameLocation":"22805:2:138","nodeType":"VariableDeclaration","scope":43193,"src":"22797:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43177,"name":"uint256","nodeType":"ElementaryTypeName","src":"22797:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22754:54:138"},"returnParameters":{"id":43180,"nodeType":"ParameterList","parameters":[],"src":"22823:0:138"},"scope":48415,"src":"22742:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43215,"nodeType":"Block","src":"23016:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729","id":43207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23060:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},"value":"log(uint256,string,address,string)"},{"id":43208,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43195,"src":"23098:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43209,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43197,"src":"23102:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43210,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43199,"src":"23106:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43211,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43201,"src":"23110:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23036:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23036:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23036:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43204,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"23020:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23020:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43214,"nodeType":"ExpressionStatement","src":"23020:94:138"}]},"id":43216,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22938:3:138","nodeType":"FunctionDefinition","parameters":{"id":43202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43195,"mutability":"mutable","name":"p0","nameLocation":"22950:2:138","nodeType":"VariableDeclaration","scope":43216,"src":"22942:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43194,"name":"uint256","nodeType":"ElementaryTypeName","src":"22942:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43197,"mutability":"mutable","name":"p1","nameLocation":"22968:2:138","nodeType":"VariableDeclaration","scope":43216,"src":"22954:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43196,"name":"string","nodeType":"ElementaryTypeName","src":"22954:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43199,"mutability":"mutable","name":"p2","nameLocation":"22980:2:138","nodeType":"VariableDeclaration","scope":43216,"src":"22972:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43198,"name":"address","nodeType":"ElementaryTypeName","src":"22972:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43201,"mutability":"mutable","name":"p3","nameLocation":"22998:2:138","nodeType":"VariableDeclaration","scope":43216,"src":"22984:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43200,"name":"string","nodeType":"ElementaryTypeName","src":"22984:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22941:60:138"},"returnParameters":{"id":43203,"nodeType":"ParameterList","parameters":[],"src":"23016:0:138"},"scope":48415,"src":"22929:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43238,"nodeType":"Block","src":"23199:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29","id":43230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23243:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},"value":"log(uint256,string,address,bool)"},{"id":43231,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43218,"src":"23279:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43232,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43220,"src":"23283:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43233,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43222,"src":"23287:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43234,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43224,"src":"23291:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23219:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23219:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23219:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43227,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"23203:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23203:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43237,"nodeType":"ExpressionStatement","src":"23203:92:138"}]},"id":43239,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23130:3:138","nodeType":"FunctionDefinition","parameters":{"id":43225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43218,"mutability":"mutable","name":"p0","nameLocation":"23142:2:138","nodeType":"VariableDeclaration","scope":43239,"src":"23134:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43217,"name":"uint256","nodeType":"ElementaryTypeName","src":"23134:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43220,"mutability":"mutable","name":"p1","nameLocation":"23160:2:138","nodeType":"VariableDeclaration","scope":43239,"src":"23146:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43219,"name":"string","nodeType":"ElementaryTypeName","src":"23146:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43222,"mutability":"mutable","name":"p2","nameLocation":"23172:2:138","nodeType":"VariableDeclaration","scope":43239,"src":"23164:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43221,"name":"address","nodeType":"ElementaryTypeName","src":"23164:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43224,"mutability":"mutable","name":"p3","nameLocation":"23181:2:138","nodeType":"VariableDeclaration","scope":43239,"src":"23176:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43223,"name":"bool","nodeType":"ElementaryTypeName","src":"23176:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23133:51:138"},"returnParameters":{"id":43226,"nodeType":"ParameterList","parameters":[],"src":"23199:0:138"},"scope":48415,"src":"23121:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43261,"nodeType":"Block","src":"23383:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329","id":43253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23427:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},"value":"log(uint256,string,address,address)"},{"id":43254,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43241,"src":"23466:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43255,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43243,"src":"23470:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43256,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43245,"src":"23474:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43257,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43247,"src":"23478:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23403:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23403:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23403:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43250,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"23387:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23387:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43260,"nodeType":"ExpressionStatement","src":"23387:95:138"}]},"id":43262,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23311:3:138","nodeType":"FunctionDefinition","parameters":{"id":43248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43241,"mutability":"mutable","name":"p0","nameLocation":"23323:2:138","nodeType":"VariableDeclaration","scope":43262,"src":"23315:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43240,"name":"uint256","nodeType":"ElementaryTypeName","src":"23315:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43243,"mutability":"mutable","name":"p1","nameLocation":"23341:2:138","nodeType":"VariableDeclaration","scope":43262,"src":"23327:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43242,"name":"string","nodeType":"ElementaryTypeName","src":"23327:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43245,"mutability":"mutable","name":"p2","nameLocation":"23353:2:138","nodeType":"VariableDeclaration","scope":43262,"src":"23345:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43244,"name":"address","nodeType":"ElementaryTypeName","src":"23345:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43247,"mutability":"mutable","name":"p3","nameLocation":"23365:2:138","nodeType":"VariableDeclaration","scope":43262,"src":"23357:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43246,"name":"address","nodeType":"ElementaryTypeName","src":"23357:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23314:54:138"},"returnParameters":{"id":43249,"nodeType":"ParameterList","parameters":[],"src":"23383:0:138"},"scope":48415,"src":"23302:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43284,"nodeType":"Block","src":"23561:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629","id":43276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23605:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},"value":"log(uint256,bool,uint256,uint256)"},{"id":43277,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43264,"src":"23642:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43278,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43266,"src":"23646:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43279,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43268,"src":"23650:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43280,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43270,"src":"23654:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23581:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23581:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23581:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43273,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"23565:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23565:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43283,"nodeType":"ExpressionStatement","src":"23565:93:138"}]},"id":43285,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23498:3:138","nodeType":"FunctionDefinition","parameters":{"id":43271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43264,"mutability":"mutable","name":"p0","nameLocation":"23510:2:138","nodeType":"VariableDeclaration","scope":43285,"src":"23502:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43263,"name":"uint256","nodeType":"ElementaryTypeName","src":"23502:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43266,"mutability":"mutable","name":"p1","nameLocation":"23519:2:138","nodeType":"VariableDeclaration","scope":43285,"src":"23514:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43265,"name":"bool","nodeType":"ElementaryTypeName","src":"23514:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43268,"mutability":"mutable","name":"p2","nameLocation":"23531:2:138","nodeType":"VariableDeclaration","scope":43285,"src":"23523:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43267,"name":"uint256","nodeType":"ElementaryTypeName","src":"23523:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43270,"mutability":"mutable","name":"p3","nameLocation":"23543:2:138","nodeType":"VariableDeclaration","scope":43285,"src":"23535:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43269,"name":"uint256","nodeType":"ElementaryTypeName","src":"23535:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23501:45:138"},"returnParameters":{"id":43272,"nodeType":"ParameterList","parameters":[],"src":"23561:0:138"},"scope":48415,"src":"23489:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43307,"nodeType":"Block","src":"23743:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729","id":43299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23787:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},"value":"log(uint256,bool,uint256,string)"},{"id":43300,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43287,"src":"23823:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43301,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43289,"src":"23827:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43302,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43291,"src":"23831:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43303,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43293,"src":"23835:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23763:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23763:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23763:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43296,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"23747:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23747:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43306,"nodeType":"ExpressionStatement","src":"23747:92:138"}]},"id":43308,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23674:3:138","nodeType":"FunctionDefinition","parameters":{"id":43294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43287,"mutability":"mutable","name":"p0","nameLocation":"23686:2:138","nodeType":"VariableDeclaration","scope":43308,"src":"23678:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43286,"name":"uint256","nodeType":"ElementaryTypeName","src":"23678:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43289,"mutability":"mutable","name":"p1","nameLocation":"23695:2:138","nodeType":"VariableDeclaration","scope":43308,"src":"23690:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43288,"name":"bool","nodeType":"ElementaryTypeName","src":"23690:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43291,"mutability":"mutable","name":"p2","nameLocation":"23707:2:138","nodeType":"VariableDeclaration","scope":43308,"src":"23699:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43290,"name":"uint256","nodeType":"ElementaryTypeName","src":"23699:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43293,"mutability":"mutable","name":"p3","nameLocation":"23725:2:138","nodeType":"VariableDeclaration","scope":43308,"src":"23711:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43292,"name":"string","nodeType":"ElementaryTypeName","src":"23711:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23677:51:138"},"returnParameters":{"id":43295,"nodeType":"ParameterList","parameters":[],"src":"23743:0:138"},"scope":48415,"src":"23665:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43330,"nodeType":"Block","src":"23915:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29","id":43322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23959:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},"value":"log(uint256,bool,uint256,bool)"},{"id":43323,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43310,"src":"23993:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43324,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43312,"src":"23997:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43325,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43314,"src":"24001:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43326,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43316,"src":"24005:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43320,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23935:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23935:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23935:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43319,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"23919:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23919:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43329,"nodeType":"ExpressionStatement","src":"23919:90:138"}]},"id":43331,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23855:3:138","nodeType":"FunctionDefinition","parameters":{"id":43317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43310,"mutability":"mutable","name":"p0","nameLocation":"23867:2:138","nodeType":"VariableDeclaration","scope":43331,"src":"23859:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43309,"name":"uint256","nodeType":"ElementaryTypeName","src":"23859:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43312,"mutability":"mutable","name":"p1","nameLocation":"23876:2:138","nodeType":"VariableDeclaration","scope":43331,"src":"23871:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43311,"name":"bool","nodeType":"ElementaryTypeName","src":"23871:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43314,"mutability":"mutable","name":"p2","nameLocation":"23888:2:138","nodeType":"VariableDeclaration","scope":43331,"src":"23880:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43313,"name":"uint256","nodeType":"ElementaryTypeName","src":"23880:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43316,"mutability":"mutable","name":"p3","nameLocation":"23897:2:138","nodeType":"VariableDeclaration","scope":43331,"src":"23892:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43315,"name":"bool","nodeType":"ElementaryTypeName","src":"23892:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23858:42:138"},"returnParameters":{"id":43318,"nodeType":"ParameterList","parameters":[],"src":"23915:0:138"},"scope":48415,"src":"23846:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43353,"nodeType":"Block","src":"24088:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329","id":43345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24132:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},"value":"log(uint256,bool,uint256,address)"},{"id":43346,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43333,"src":"24169:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43347,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43335,"src":"24173:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43348,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43337,"src":"24177:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43349,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43339,"src":"24181:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24108:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24108:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24108:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43342,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"24092:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24092:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43352,"nodeType":"ExpressionStatement","src":"24092:93:138"}]},"id":43354,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24025:3:138","nodeType":"FunctionDefinition","parameters":{"id":43340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43333,"mutability":"mutable","name":"p0","nameLocation":"24037:2:138","nodeType":"VariableDeclaration","scope":43354,"src":"24029:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43332,"name":"uint256","nodeType":"ElementaryTypeName","src":"24029:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43335,"mutability":"mutable","name":"p1","nameLocation":"24046:2:138","nodeType":"VariableDeclaration","scope":43354,"src":"24041:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43334,"name":"bool","nodeType":"ElementaryTypeName","src":"24041:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43337,"mutability":"mutable","name":"p2","nameLocation":"24058:2:138","nodeType":"VariableDeclaration","scope":43354,"src":"24050:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43336,"name":"uint256","nodeType":"ElementaryTypeName","src":"24050:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43339,"mutability":"mutable","name":"p3","nameLocation":"24070:2:138","nodeType":"VariableDeclaration","scope":43354,"src":"24062:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43338,"name":"address","nodeType":"ElementaryTypeName","src":"24062:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24028:45:138"},"returnParameters":{"id":43341,"nodeType":"ParameterList","parameters":[],"src":"24088:0:138"},"scope":48415,"src":"24016:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43376,"nodeType":"Block","src":"24270:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629","id":43368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24314:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},"value":"log(uint256,bool,string,uint256)"},{"id":43369,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43356,"src":"24350:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43370,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43358,"src":"24354:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43371,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43360,"src":"24358:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43372,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"24362:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24290:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24290:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24290:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43365,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"24274:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24274:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43375,"nodeType":"ExpressionStatement","src":"24274:92:138"}]},"id":43377,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24201:3:138","nodeType":"FunctionDefinition","parameters":{"id":43363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43356,"mutability":"mutable","name":"p0","nameLocation":"24213:2:138","nodeType":"VariableDeclaration","scope":43377,"src":"24205:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43355,"name":"uint256","nodeType":"ElementaryTypeName","src":"24205:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43358,"mutability":"mutable","name":"p1","nameLocation":"24222:2:138","nodeType":"VariableDeclaration","scope":43377,"src":"24217:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43357,"name":"bool","nodeType":"ElementaryTypeName","src":"24217:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43360,"mutability":"mutable","name":"p2","nameLocation":"24240:2:138","nodeType":"VariableDeclaration","scope":43377,"src":"24226:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43359,"name":"string","nodeType":"ElementaryTypeName","src":"24226:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43362,"mutability":"mutable","name":"p3","nameLocation":"24252:2:138","nodeType":"VariableDeclaration","scope":43377,"src":"24244:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43361,"name":"uint256","nodeType":"ElementaryTypeName","src":"24244:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24204:51:138"},"returnParameters":{"id":43364,"nodeType":"ParameterList","parameters":[],"src":"24270:0:138"},"scope":48415,"src":"24192:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43399,"nodeType":"Block","src":"24457:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729","id":43391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24501:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},"value":"log(uint256,bool,string,string)"},{"id":43392,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43379,"src":"24536:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43393,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43381,"src":"24540:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43394,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43383,"src":"24544:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43395,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43385,"src":"24548:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43389,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24477:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24477:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24477:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43388,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"24461:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24461:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43398,"nodeType":"ExpressionStatement","src":"24461:91:138"}]},"id":43400,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24382:3:138","nodeType":"FunctionDefinition","parameters":{"id":43386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43379,"mutability":"mutable","name":"p0","nameLocation":"24394:2:138","nodeType":"VariableDeclaration","scope":43400,"src":"24386:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43378,"name":"uint256","nodeType":"ElementaryTypeName","src":"24386:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43381,"mutability":"mutable","name":"p1","nameLocation":"24403:2:138","nodeType":"VariableDeclaration","scope":43400,"src":"24398:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43380,"name":"bool","nodeType":"ElementaryTypeName","src":"24398:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43383,"mutability":"mutable","name":"p2","nameLocation":"24421:2:138","nodeType":"VariableDeclaration","scope":43400,"src":"24407:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43382,"name":"string","nodeType":"ElementaryTypeName","src":"24407:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43385,"mutability":"mutable","name":"p3","nameLocation":"24439:2:138","nodeType":"VariableDeclaration","scope":43400,"src":"24425:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43384,"name":"string","nodeType":"ElementaryTypeName","src":"24425:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24385:57:138"},"returnParameters":{"id":43387,"nodeType":"ParameterList","parameters":[],"src":"24457:0:138"},"scope":48415,"src":"24373:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43422,"nodeType":"Block","src":"24634:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29","id":43414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24678:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},"value":"log(uint256,bool,string,bool)"},{"id":43415,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"24711:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43416,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43404,"src":"24715:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43417,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43406,"src":"24719:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43418,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43408,"src":"24723:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24654:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24654:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24654:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43411,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"24638:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24638:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43421,"nodeType":"ExpressionStatement","src":"24638:89:138"}]},"id":43423,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24568:3:138","nodeType":"FunctionDefinition","parameters":{"id":43409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43402,"mutability":"mutable","name":"p0","nameLocation":"24580:2:138","nodeType":"VariableDeclaration","scope":43423,"src":"24572:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43401,"name":"uint256","nodeType":"ElementaryTypeName","src":"24572:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43404,"mutability":"mutable","name":"p1","nameLocation":"24589:2:138","nodeType":"VariableDeclaration","scope":43423,"src":"24584:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43403,"name":"bool","nodeType":"ElementaryTypeName","src":"24584:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43406,"mutability":"mutable","name":"p2","nameLocation":"24607:2:138","nodeType":"VariableDeclaration","scope":43423,"src":"24593:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43405,"name":"string","nodeType":"ElementaryTypeName","src":"24593:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43408,"mutability":"mutable","name":"p3","nameLocation":"24616:2:138","nodeType":"VariableDeclaration","scope":43423,"src":"24611:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43407,"name":"bool","nodeType":"ElementaryTypeName","src":"24611:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24571:48:138"},"returnParameters":{"id":43410,"nodeType":"ParameterList","parameters":[],"src":"24634:0:138"},"scope":48415,"src":"24559:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43445,"nodeType":"Block","src":"24812:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329","id":43437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24856:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},"value":"log(uint256,bool,string,address)"},{"id":43438,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"24892:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43439,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43427,"src":"24896:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43440,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43429,"src":"24900:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43441,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43431,"src":"24904:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24832:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24832:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24832:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43434,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"24816:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24816:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43444,"nodeType":"ExpressionStatement","src":"24816:92:138"}]},"id":43446,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24743:3:138","nodeType":"FunctionDefinition","parameters":{"id":43432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43425,"mutability":"mutable","name":"p0","nameLocation":"24755:2:138","nodeType":"VariableDeclaration","scope":43446,"src":"24747:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43424,"name":"uint256","nodeType":"ElementaryTypeName","src":"24747:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43427,"mutability":"mutable","name":"p1","nameLocation":"24764:2:138","nodeType":"VariableDeclaration","scope":43446,"src":"24759:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43426,"name":"bool","nodeType":"ElementaryTypeName","src":"24759:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43429,"mutability":"mutable","name":"p2","nameLocation":"24782:2:138","nodeType":"VariableDeclaration","scope":43446,"src":"24768:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43428,"name":"string","nodeType":"ElementaryTypeName","src":"24768:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43431,"mutability":"mutable","name":"p3","nameLocation":"24794:2:138","nodeType":"VariableDeclaration","scope":43446,"src":"24786:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43430,"name":"address","nodeType":"ElementaryTypeName","src":"24786:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24746:51:138"},"returnParameters":{"id":43433,"nodeType":"ParameterList","parameters":[],"src":"24812:0:138"},"scope":48415,"src":"24734:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43468,"nodeType":"Block","src":"24984:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629","id":43460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25028:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},"value":"log(uint256,bool,bool,uint256)"},{"id":43461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43448,"src":"25062:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43450,"src":"25066:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43452,"src":"25070:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43464,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43454,"src":"25074:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25004:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25004:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25004:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"24988:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24988:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43467,"nodeType":"ExpressionStatement","src":"24988:90:138"}]},"id":43469,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24924:3:138","nodeType":"FunctionDefinition","parameters":{"id":43455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43448,"mutability":"mutable","name":"p0","nameLocation":"24936:2:138","nodeType":"VariableDeclaration","scope":43469,"src":"24928:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43447,"name":"uint256","nodeType":"ElementaryTypeName","src":"24928:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43450,"mutability":"mutable","name":"p1","nameLocation":"24945:2:138","nodeType":"VariableDeclaration","scope":43469,"src":"24940:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43449,"name":"bool","nodeType":"ElementaryTypeName","src":"24940:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43452,"mutability":"mutable","name":"p2","nameLocation":"24954:2:138","nodeType":"VariableDeclaration","scope":43469,"src":"24949:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43451,"name":"bool","nodeType":"ElementaryTypeName","src":"24949:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43454,"mutability":"mutable","name":"p3","nameLocation":"24966:2:138","nodeType":"VariableDeclaration","scope":43469,"src":"24958:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43453,"name":"uint256","nodeType":"ElementaryTypeName","src":"24958:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24927:42:138"},"returnParameters":{"id":43456,"nodeType":"ParameterList","parameters":[],"src":"24984:0:138"},"scope":48415,"src":"24915:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43491,"nodeType":"Block","src":"25160:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729","id":43483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25204:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},"value":"log(uint256,bool,bool,string)"},{"id":43484,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43471,"src":"25237:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43485,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43473,"src":"25241:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43486,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43475,"src":"25245:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43487,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43477,"src":"25249:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25180:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25180:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25180:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"25164:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25164:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43490,"nodeType":"ExpressionStatement","src":"25164:89:138"}]},"id":43492,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25094:3:138","nodeType":"FunctionDefinition","parameters":{"id":43478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43471,"mutability":"mutable","name":"p0","nameLocation":"25106:2:138","nodeType":"VariableDeclaration","scope":43492,"src":"25098:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43470,"name":"uint256","nodeType":"ElementaryTypeName","src":"25098:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43473,"mutability":"mutable","name":"p1","nameLocation":"25115:2:138","nodeType":"VariableDeclaration","scope":43492,"src":"25110:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43472,"name":"bool","nodeType":"ElementaryTypeName","src":"25110:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43475,"mutability":"mutable","name":"p2","nameLocation":"25124:2:138","nodeType":"VariableDeclaration","scope":43492,"src":"25119:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43474,"name":"bool","nodeType":"ElementaryTypeName","src":"25119:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43477,"mutability":"mutable","name":"p3","nameLocation":"25142:2:138","nodeType":"VariableDeclaration","scope":43492,"src":"25128:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43476,"name":"string","nodeType":"ElementaryTypeName","src":"25128:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25097:48:138"},"returnParameters":{"id":43479,"nodeType":"ParameterList","parameters":[],"src":"25160:0:138"},"scope":48415,"src":"25085:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43514,"nodeType":"Block","src":"25326:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29","id":43506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25370:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},"value":"log(uint256,bool,bool,bool)"},{"id":43507,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43494,"src":"25401:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43508,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43496,"src":"25405:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43509,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43498,"src":"25409:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43510,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43500,"src":"25413:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43504,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25346:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25346:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25346:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43503,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"25330:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25330:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43513,"nodeType":"ExpressionStatement","src":"25330:87:138"}]},"id":43515,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25269:3:138","nodeType":"FunctionDefinition","parameters":{"id":43501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43494,"mutability":"mutable","name":"p0","nameLocation":"25281:2:138","nodeType":"VariableDeclaration","scope":43515,"src":"25273:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43493,"name":"uint256","nodeType":"ElementaryTypeName","src":"25273:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43496,"mutability":"mutable","name":"p1","nameLocation":"25290:2:138","nodeType":"VariableDeclaration","scope":43515,"src":"25285:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43495,"name":"bool","nodeType":"ElementaryTypeName","src":"25285:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43498,"mutability":"mutable","name":"p2","nameLocation":"25299:2:138","nodeType":"VariableDeclaration","scope":43515,"src":"25294:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43497,"name":"bool","nodeType":"ElementaryTypeName","src":"25294:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43500,"mutability":"mutable","name":"p3","nameLocation":"25308:2:138","nodeType":"VariableDeclaration","scope":43515,"src":"25303:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43499,"name":"bool","nodeType":"ElementaryTypeName","src":"25303:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25272:39:138"},"returnParameters":{"id":43502,"nodeType":"ParameterList","parameters":[],"src":"25326:0:138"},"scope":48415,"src":"25260:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43537,"nodeType":"Block","src":"25493:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329","id":43529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25537:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},"value":"log(uint256,bool,bool,address)"},{"id":43530,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43517,"src":"25571:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43531,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"25575:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43532,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"25579:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43533,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"25583:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25513:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25513:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25513:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43526,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"25497:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25497:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43536,"nodeType":"ExpressionStatement","src":"25497:90:138"}]},"id":43538,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25433:3:138","nodeType":"FunctionDefinition","parameters":{"id":43524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43517,"mutability":"mutable","name":"p0","nameLocation":"25445:2:138","nodeType":"VariableDeclaration","scope":43538,"src":"25437:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43516,"name":"uint256","nodeType":"ElementaryTypeName","src":"25437:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43519,"mutability":"mutable","name":"p1","nameLocation":"25454:2:138","nodeType":"VariableDeclaration","scope":43538,"src":"25449:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43518,"name":"bool","nodeType":"ElementaryTypeName","src":"25449:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43521,"mutability":"mutable","name":"p2","nameLocation":"25463:2:138","nodeType":"VariableDeclaration","scope":43538,"src":"25458:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43520,"name":"bool","nodeType":"ElementaryTypeName","src":"25458:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43523,"mutability":"mutable","name":"p3","nameLocation":"25475:2:138","nodeType":"VariableDeclaration","scope":43538,"src":"25467:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43522,"name":"address","nodeType":"ElementaryTypeName","src":"25467:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25436:42:138"},"returnParameters":{"id":43525,"nodeType":"ParameterList","parameters":[],"src":"25493:0:138"},"scope":48415,"src":"25424:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43560,"nodeType":"Block","src":"25666:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629","id":43552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25710:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},"value":"log(uint256,bool,address,uint256)"},{"id":43553,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43540,"src":"25747:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43554,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43542,"src":"25751:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43555,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43544,"src":"25755:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43556,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"25759:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43550,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25686:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25686:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25686:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"25670:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25670:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43559,"nodeType":"ExpressionStatement","src":"25670:93:138"}]},"id":43561,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25603:3:138","nodeType":"FunctionDefinition","parameters":{"id":43547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43540,"mutability":"mutable","name":"p0","nameLocation":"25615:2:138","nodeType":"VariableDeclaration","scope":43561,"src":"25607:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43539,"name":"uint256","nodeType":"ElementaryTypeName","src":"25607:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43542,"mutability":"mutable","name":"p1","nameLocation":"25624:2:138","nodeType":"VariableDeclaration","scope":43561,"src":"25619:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43541,"name":"bool","nodeType":"ElementaryTypeName","src":"25619:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43544,"mutability":"mutable","name":"p2","nameLocation":"25636:2:138","nodeType":"VariableDeclaration","scope":43561,"src":"25628:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43543,"name":"address","nodeType":"ElementaryTypeName","src":"25628:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43546,"mutability":"mutable","name":"p3","nameLocation":"25648:2:138","nodeType":"VariableDeclaration","scope":43561,"src":"25640:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43545,"name":"uint256","nodeType":"ElementaryTypeName","src":"25640:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25606:45:138"},"returnParameters":{"id":43548,"nodeType":"ParameterList","parameters":[],"src":"25666:0:138"},"scope":48415,"src":"25594:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43583,"nodeType":"Block","src":"25848:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729","id":43575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25892:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},"value":"log(uint256,bool,address,string)"},{"id":43576,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"25928:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43577,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43565,"src":"25932:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43578,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43567,"src":"25936:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43579,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43569,"src":"25940:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25868:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25868:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25868:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43572,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"25852:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25852:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43582,"nodeType":"ExpressionStatement","src":"25852:92:138"}]},"id":43584,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25779:3:138","nodeType":"FunctionDefinition","parameters":{"id":43570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43563,"mutability":"mutable","name":"p0","nameLocation":"25791:2:138","nodeType":"VariableDeclaration","scope":43584,"src":"25783:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43562,"name":"uint256","nodeType":"ElementaryTypeName","src":"25783:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43565,"mutability":"mutable","name":"p1","nameLocation":"25800:2:138","nodeType":"VariableDeclaration","scope":43584,"src":"25795:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43564,"name":"bool","nodeType":"ElementaryTypeName","src":"25795:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43567,"mutability":"mutable","name":"p2","nameLocation":"25812:2:138","nodeType":"VariableDeclaration","scope":43584,"src":"25804:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43566,"name":"address","nodeType":"ElementaryTypeName","src":"25804:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43569,"mutability":"mutable","name":"p3","nameLocation":"25830:2:138","nodeType":"VariableDeclaration","scope":43584,"src":"25816:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43568,"name":"string","nodeType":"ElementaryTypeName","src":"25816:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25782:51:138"},"returnParameters":{"id":43571,"nodeType":"ParameterList","parameters":[],"src":"25848:0:138"},"scope":48415,"src":"25770:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43606,"nodeType":"Block","src":"26020:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29","id":43598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},"value":"log(uint256,bool,address,bool)"},{"id":43599,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43586,"src":"26098:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43600,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43588,"src":"26102:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43601,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43590,"src":"26106:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43602,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43592,"src":"26110:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26040:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26040:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26040:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43595,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"26024:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26024:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43605,"nodeType":"ExpressionStatement","src":"26024:90:138"}]},"id":43607,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25960:3:138","nodeType":"FunctionDefinition","parameters":{"id":43593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43586,"mutability":"mutable","name":"p0","nameLocation":"25972:2:138","nodeType":"VariableDeclaration","scope":43607,"src":"25964:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25964:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43588,"mutability":"mutable","name":"p1","nameLocation":"25981:2:138","nodeType":"VariableDeclaration","scope":43607,"src":"25976:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43587,"name":"bool","nodeType":"ElementaryTypeName","src":"25976:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43590,"mutability":"mutable","name":"p2","nameLocation":"25993:2:138","nodeType":"VariableDeclaration","scope":43607,"src":"25985:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43589,"name":"address","nodeType":"ElementaryTypeName","src":"25985:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43592,"mutability":"mutable","name":"p3","nameLocation":"26002:2:138","nodeType":"VariableDeclaration","scope":43607,"src":"25997:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43591,"name":"bool","nodeType":"ElementaryTypeName","src":"25997:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25963:42:138"},"returnParameters":{"id":43594,"nodeType":"ParameterList","parameters":[],"src":"26020:0:138"},"scope":48415,"src":"25951:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43629,"nodeType":"Block","src":"26193:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329","id":43621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26237:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},"value":"log(uint256,bool,address,address)"},{"id":43622,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43609,"src":"26274:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43623,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43611,"src":"26278:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43624,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43613,"src":"26282:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43625,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43615,"src":"26286:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26213:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26213:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26213:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43618,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"26197:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26197:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43628,"nodeType":"ExpressionStatement","src":"26197:93:138"}]},"id":43630,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26130:3:138","nodeType":"FunctionDefinition","parameters":{"id":43616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43609,"mutability":"mutable","name":"p0","nameLocation":"26142:2:138","nodeType":"VariableDeclaration","scope":43630,"src":"26134:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43608,"name":"uint256","nodeType":"ElementaryTypeName","src":"26134:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43611,"mutability":"mutable","name":"p1","nameLocation":"26151:2:138","nodeType":"VariableDeclaration","scope":43630,"src":"26146:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43610,"name":"bool","nodeType":"ElementaryTypeName","src":"26146:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43613,"mutability":"mutable","name":"p2","nameLocation":"26163:2:138","nodeType":"VariableDeclaration","scope":43630,"src":"26155:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43612,"name":"address","nodeType":"ElementaryTypeName","src":"26155:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43615,"mutability":"mutable","name":"p3","nameLocation":"26175:2:138","nodeType":"VariableDeclaration","scope":43630,"src":"26167:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43614,"name":"address","nodeType":"ElementaryTypeName","src":"26167:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26133:45:138"},"returnParameters":{"id":43617,"nodeType":"ParameterList","parameters":[],"src":"26193:0:138"},"scope":48415,"src":"26121:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43652,"nodeType":"Block","src":"26372:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629","id":43644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26416:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},"value":"log(uint256,address,uint256,uint256)"},{"id":43645,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43632,"src":"26456:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43646,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43634,"src":"26460:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43647,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43636,"src":"26464:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43648,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43638,"src":"26468:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43642,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26392:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26392:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26392:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43641,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"26376:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26376:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43651,"nodeType":"ExpressionStatement","src":"26376:96:138"}]},"id":43653,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26306:3:138","nodeType":"FunctionDefinition","parameters":{"id":43639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43632,"mutability":"mutable","name":"p0","nameLocation":"26318:2:138","nodeType":"VariableDeclaration","scope":43653,"src":"26310:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43631,"name":"uint256","nodeType":"ElementaryTypeName","src":"26310:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43634,"mutability":"mutable","name":"p1","nameLocation":"26330:2:138","nodeType":"VariableDeclaration","scope":43653,"src":"26322:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43633,"name":"address","nodeType":"ElementaryTypeName","src":"26322:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43636,"mutability":"mutable","name":"p2","nameLocation":"26342:2:138","nodeType":"VariableDeclaration","scope":43653,"src":"26334:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43635,"name":"uint256","nodeType":"ElementaryTypeName","src":"26334:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43638,"mutability":"mutable","name":"p3","nameLocation":"26354:2:138","nodeType":"VariableDeclaration","scope":43653,"src":"26346:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43637,"name":"uint256","nodeType":"ElementaryTypeName","src":"26346:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26309:48:138"},"returnParameters":{"id":43640,"nodeType":"ParameterList","parameters":[],"src":"26372:0:138"},"scope":48415,"src":"26297:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43675,"nodeType":"Block","src":"26560:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729","id":43667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26604:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},"value":"log(uint256,address,uint256,string)"},{"id":43668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43655,"src":"26643:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43669,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43657,"src":"26647:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43670,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"26651:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43671,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"26655:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26580:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26580:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26580:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"26564:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26564:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43674,"nodeType":"ExpressionStatement","src":"26564:95:138"}]},"id":43676,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26488:3:138","nodeType":"FunctionDefinition","parameters":{"id":43662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43655,"mutability":"mutable","name":"p0","nameLocation":"26500:2:138","nodeType":"VariableDeclaration","scope":43676,"src":"26492:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43654,"name":"uint256","nodeType":"ElementaryTypeName","src":"26492:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43657,"mutability":"mutable","name":"p1","nameLocation":"26512:2:138","nodeType":"VariableDeclaration","scope":43676,"src":"26504:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43656,"name":"address","nodeType":"ElementaryTypeName","src":"26504:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43659,"mutability":"mutable","name":"p2","nameLocation":"26524:2:138","nodeType":"VariableDeclaration","scope":43676,"src":"26516:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43658,"name":"uint256","nodeType":"ElementaryTypeName","src":"26516:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43661,"mutability":"mutable","name":"p3","nameLocation":"26542:2:138","nodeType":"VariableDeclaration","scope":43676,"src":"26528:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43660,"name":"string","nodeType":"ElementaryTypeName","src":"26528:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26491:54:138"},"returnParameters":{"id":43663,"nodeType":"ParameterList","parameters":[],"src":"26560:0:138"},"scope":48415,"src":"26479:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43698,"nodeType":"Block","src":"26738:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29","id":43690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26782:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},"value":"log(uint256,address,uint256,bool)"},{"id":43691,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43678,"src":"26819:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43692,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43680,"src":"26823:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43693,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43682,"src":"26827:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43694,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43684,"src":"26831:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26758:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26758:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26758:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43687,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"26742:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26742:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43697,"nodeType":"ExpressionStatement","src":"26742:93:138"}]},"id":43699,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26675:3:138","nodeType":"FunctionDefinition","parameters":{"id":43685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43678,"mutability":"mutable","name":"p0","nameLocation":"26687:2:138","nodeType":"VariableDeclaration","scope":43699,"src":"26679:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43677,"name":"uint256","nodeType":"ElementaryTypeName","src":"26679:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43680,"mutability":"mutable","name":"p1","nameLocation":"26699:2:138","nodeType":"VariableDeclaration","scope":43699,"src":"26691:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43679,"name":"address","nodeType":"ElementaryTypeName","src":"26691:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43682,"mutability":"mutable","name":"p2","nameLocation":"26711:2:138","nodeType":"VariableDeclaration","scope":43699,"src":"26703:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43681,"name":"uint256","nodeType":"ElementaryTypeName","src":"26703:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43684,"mutability":"mutable","name":"p3","nameLocation":"26720:2:138","nodeType":"VariableDeclaration","scope":43699,"src":"26715:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43683,"name":"bool","nodeType":"ElementaryTypeName","src":"26715:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26678:45:138"},"returnParameters":{"id":43686,"nodeType":"ParameterList","parameters":[],"src":"26738:0:138"},"scope":48415,"src":"26666:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43721,"nodeType":"Block","src":"26917:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329","id":43713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26961:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},"value":"log(uint256,address,uint256,address)"},{"id":43714,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43701,"src":"27001:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43715,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"27005:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43716,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43705,"src":"27009:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43717,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43707,"src":"27013:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26937:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26937:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26937:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43710,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"26921:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26921:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43720,"nodeType":"ExpressionStatement","src":"26921:96:138"}]},"id":43722,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26851:3:138","nodeType":"FunctionDefinition","parameters":{"id":43708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43701,"mutability":"mutable","name":"p0","nameLocation":"26863:2:138","nodeType":"VariableDeclaration","scope":43722,"src":"26855:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43700,"name":"uint256","nodeType":"ElementaryTypeName","src":"26855:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43703,"mutability":"mutable","name":"p1","nameLocation":"26875:2:138","nodeType":"VariableDeclaration","scope":43722,"src":"26867:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43702,"name":"address","nodeType":"ElementaryTypeName","src":"26867:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43705,"mutability":"mutable","name":"p2","nameLocation":"26887:2:138","nodeType":"VariableDeclaration","scope":43722,"src":"26879:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43704,"name":"uint256","nodeType":"ElementaryTypeName","src":"26879:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43707,"mutability":"mutable","name":"p3","nameLocation":"26899:2:138","nodeType":"VariableDeclaration","scope":43722,"src":"26891:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43706,"name":"address","nodeType":"ElementaryTypeName","src":"26891:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26854:48:138"},"returnParameters":{"id":43709,"nodeType":"ParameterList","parameters":[],"src":"26917:0:138"},"scope":48415,"src":"26842:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43744,"nodeType":"Block","src":"27105:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629","id":43736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27149:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},"value":"log(uint256,address,string,uint256)"},{"id":43737,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43724,"src":"27188:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43738,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43726,"src":"27192:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43739,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43728,"src":"27196:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43740,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43730,"src":"27200:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43734,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27125:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27125:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27125:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43733,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"27109:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27109:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43743,"nodeType":"ExpressionStatement","src":"27109:95:138"}]},"id":43745,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27033:3:138","nodeType":"FunctionDefinition","parameters":{"id":43731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43724,"mutability":"mutable","name":"p0","nameLocation":"27045:2:138","nodeType":"VariableDeclaration","scope":43745,"src":"27037:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43723,"name":"uint256","nodeType":"ElementaryTypeName","src":"27037:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43726,"mutability":"mutable","name":"p1","nameLocation":"27057:2:138","nodeType":"VariableDeclaration","scope":43745,"src":"27049:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43725,"name":"address","nodeType":"ElementaryTypeName","src":"27049:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43728,"mutability":"mutable","name":"p2","nameLocation":"27075:2:138","nodeType":"VariableDeclaration","scope":43745,"src":"27061:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43727,"name":"string","nodeType":"ElementaryTypeName","src":"27061:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43730,"mutability":"mutable","name":"p3","nameLocation":"27087:2:138","nodeType":"VariableDeclaration","scope":43745,"src":"27079:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43729,"name":"uint256","nodeType":"ElementaryTypeName","src":"27079:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27036:54:138"},"returnParameters":{"id":43732,"nodeType":"ParameterList","parameters":[],"src":"27105:0:138"},"scope":48415,"src":"27024:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43767,"nodeType":"Block","src":"27298:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729","id":43759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27342:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},"value":"log(uint256,address,string,string)"},{"id":43760,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43747,"src":"27380:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43761,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43749,"src":"27384:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43762,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43751,"src":"27388:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43763,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43753,"src":"27392:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27318:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27318:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27318:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43756,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"27302:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27302:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43766,"nodeType":"ExpressionStatement","src":"27302:94:138"}]},"id":43768,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27220:3:138","nodeType":"FunctionDefinition","parameters":{"id":43754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43747,"mutability":"mutable","name":"p0","nameLocation":"27232:2:138","nodeType":"VariableDeclaration","scope":43768,"src":"27224:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43746,"name":"uint256","nodeType":"ElementaryTypeName","src":"27224:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43749,"mutability":"mutable","name":"p1","nameLocation":"27244:2:138","nodeType":"VariableDeclaration","scope":43768,"src":"27236:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43748,"name":"address","nodeType":"ElementaryTypeName","src":"27236:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43751,"mutability":"mutable","name":"p2","nameLocation":"27262:2:138","nodeType":"VariableDeclaration","scope":43768,"src":"27248:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43750,"name":"string","nodeType":"ElementaryTypeName","src":"27248:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43753,"mutability":"mutable","name":"p3","nameLocation":"27280:2:138","nodeType":"VariableDeclaration","scope":43768,"src":"27266:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43752,"name":"string","nodeType":"ElementaryTypeName","src":"27266:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27223:60:138"},"returnParameters":{"id":43755,"nodeType":"ParameterList","parameters":[],"src":"27298:0:138"},"scope":48415,"src":"27211:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43790,"nodeType":"Block","src":"27481:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29","id":43782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27525:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},"value":"log(uint256,address,string,bool)"},{"id":43783,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43770,"src":"27561:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43784,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43772,"src":"27565:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43785,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43774,"src":"27569:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43786,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43776,"src":"27573:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27501:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27501:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27501:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43779,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"27485:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27485:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43789,"nodeType":"ExpressionStatement","src":"27485:92:138"}]},"id":43791,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27412:3:138","nodeType":"FunctionDefinition","parameters":{"id":43777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43770,"mutability":"mutable","name":"p0","nameLocation":"27424:2:138","nodeType":"VariableDeclaration","scope":43791,"src":"27416:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43769,"name":"uint256","nodeType":"ElementaryTypeName","src":"27416:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43772,"mutability":"mutable","name":"p1","nameLocation":"27436:2:138","nodeType":"VariableDeclaration","scope":43791,"src":"27428:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43771,"name":"address","nodeType":"ElementaryTypeName","src":"27428:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43774,"mutability":"mutable","name":"p2","nameLocation":"27454:2:138","nodeType":"VariableDeclaration","scope":43791,"src":"27440:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43773,"name":"string","nodeType":"ElementaryTypeName","src":"27440:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43776,"mutability":"mutable","name":"p3","nameLocation":"27463:2:138","nodeType":"VariableDeclaration","scope":43791,"src":"27458:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43775,"name":"bool","nodeType":"ElementaryTypeName","src":"27458:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27415:51:138"},"returnParameters":{"id":43778,"nodeType":"ParameterList","parameters":[],"src":"27481:0:138"},"scope":48415,"src":"27403:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43813,"nodeType":"Block","src":"27665:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329","id":43805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27709:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},"value":"log(uint256,address,string,address)"},{"id":43806,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43793,"src":"27748:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43807,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43795,"src":"27752:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43808,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43797,"src":"27756:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43809,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43799,"src":"27760:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27685:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27685:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27685:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43802,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"27669:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27669:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43812,"nodeType":"ExpressionStatement","src":"27669:95:138"}]},"id":43814,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27593:3:138","nodeType":"FunctionDefinition","parameters":{"id":43800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43793,"mutability":"mutable","name":"p0","nameLocation":"27605:2:138","nodeType":"VariableDeclaration","scope":43814,"src":"27597:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43792,"name":"uint256","nodeType":"ElementaryTypeName","src":"27597:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43795,"mutability":"mutable","name":"p1","nameLocation":"27617:2:138","nodeType":"VariableDeclaration","scope":43814,"src":"27609:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43794,"name":"address","nodeType":"ElementaryTypeName","src":"27609:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43797,"mutability":"mutable","name":"p2","nameLocation":"27635:2:138","nodeType":"VariableDeclaration","scope":43814,"src":"27621:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43796,"name":"string","nodeType":"ElementaryTypeName","src":"27621:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43799,"mutability":"mutable","name":"p3","nameLocation":"27647:2:138","nodeType":"VariableDeclaration","scope":43814,"src":"27639:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43798,"name":"address","nodeType":"ElementaryTypeName","src":"27639:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27596:54:138"},"returnParameters":{"id":43801,"nodeType":"ParameterList","parameters":[],"src":"27665:0:138"},"scope":48415,"src":"27584:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43836,"nodeType":"Block","src":"27843:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629","id":43828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27887:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},"value":"log(uint256,address,bool,uint256)"},{"id":43829,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43816,"src":"27924:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43830,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43818,"src":"27928:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43831,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43820,"src":"27932:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43832,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43822,"src":"27936:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27863:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27863:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27863:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"27847:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27847:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43835,"nodeType":"ExpressionStatement","src":"27847:93:138"}]},"id":43837,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27780:3:138","nodeType":"FunctionDefinition","parameters":{"id":43823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43816,"mutability":"mutable","name":"p0","nameLocation":"27792:2:138","nodeType":"VariableDeclaration","scope":43837,"src":"27784:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43815,"name":"uint256","nodeType":"ElementaryTypeName","src":"27784:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43818,"mutability":"mutable","name":"p1","nameLocation":"27804:2:138","nodeType":"VariableDeclaration","scope":43837,"src":"27796:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43817,"name":"address","nodeType":"ElementaryTypeName","src":"27796:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43820,"mutability":"mutable","name":"p2","nameLocation":"27813:2:138","nodeType":"VariableDeclaration","scope":43837,"src":"27808:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43819,"name":"bool","nodeType":"ElementaryTypeName","src":"27808:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43822,"mutability":"mutable","name":"p3","nameLocation":"27825:2:138","nodeType":"VariableDeclaration","scope":43837,"src":"27817:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43821,"name":"uint256","nodeType":"ElementaryTypeName","src":"27817:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27783:45:138"},"returnParameters":{"id":43824,"nodeType":"ParameterList","parameters":[],"src":"27843:0:138"},"scope":48415,"src":"27771:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43859,"nodeType":"Block","src":"28025:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729","id":43851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28069:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},"value":"log(uint256,address,bool,string)"},{"id":43852,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"28105:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43853,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43841,"src":"28109:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43854,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43843,"src":"28113:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43855,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43845,"src":"28117:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28045:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28045:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28045:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43848,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"28029:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28029:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43858,"nodeType":"ExpressionStatement","src":"28029:92:138"}]},"id":43860,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27956:3:138","nodeType":"FunctionDefinition","parameters":{"id":43846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43839,"mutability":"mutable","name":"p0","nameLocation":"27968:2:138","nodeType":"VariableDeclaration","scope":43860,"src":"27960:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43838,"name":"uint256","nodeType":"ElementaryTypeName","src":"27960:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43841,"mutability":"mutable","name":"p1","nameLocation":"27980:2:138","nodeType":"VariableDeclaration","scope":43860,"src":"27972:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43840,"name":"address","nodeType":"ElementaryTypeName","src":"27972:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43843,"mutability":"mutable","name":"p2","nameLocation":"27989:2:138","nodeType":"VariableDeclaration","scope":43860,"src":"27984:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43842,"name":"bool","nodeType":"ElementaryTypeName","src":"27984:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43845,"mutability":"mutable","name":"p3","nameLocation":"28007:2:138","nodeType":"VariableDeclaration","scope":43860,"src":"27993:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43844,"name":"string","nodeType":"ElementaryTypeName","src":"27993:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27959:51:138"},"returnParameters":{"id":43847,"nodeType":"ParameterList","parameters":[],"src":"28025:0:138"},"scope":48415,"src":"27947:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43882,"nodeType":"Block","src":"28197:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29","id":43874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28241:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},"value":"log(uint256,address,bool,bool)"},{"id":43875,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43862,"src":"28275:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43876,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43864,"src":"28279:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43877,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43866,"src":"28283:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43878,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43868,"src":"28287:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28217:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28217:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28217:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"28201:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28201:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43881,"nodeType":"ExpressionStatement","src":"28201:90:138"}]},"id":43883,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28137:3:138","nodeType":"FunctionDefinition","parameters":{"id":43869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43862,"mutability":"mutable","name":"p0","nameLocation":"28149:2:138","nodeType":"VariableDeclaration","scope":43883,"src":"28141:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43861,"name":"uint256","nodeType":"ElementaryTypeName","src":"28141:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43864,"mutability":"mutable","name":"p1","nameLocation":"28161:2:138","nodeType":"VariableDeclaration","scope":43883,"src":"28153:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43863,"name":"address","nodeType":"ElementaryTypeName","src":"28153:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43866,"mutability":"mutable","name":"p2","nameLocation":"28170:2:138","nodeType":"VariableDeclaration","scope":43883,"src":"28165:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43865,"name":"bool","nodeType":"ElementaryTypeName","src":"28165:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43868,"mutability":"mutable","name":"p3","nameLocation":"28179:2:138","nodeType":"VariableDeclaration","scope":43883,"src":"28174:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43867,"name":"bool","nodeType":"ElementaryTypeName","src":"28174:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28140:42:138"},"returnParameters":{"id":43870,"nodeType":"ParameterList","parameters":[],"src":"28197:0:138"},"scope":48415,"src":"28128:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43905,"nodeType":"Block","src":"28370:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329","id":43897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28414:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},"value":"log(uint256,address,bool,address)"},{"id":43898,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43885,"src":"28451:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43899,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43887,"src":"28455:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43900,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43889,"src":"28459:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43901,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43891,"src":"28463:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43895,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28390:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28390:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28390:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43894,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"28374:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28374:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43904,"nodeType":"ExpressionStatement","src":"28374:93:138"}]},"id":43906,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28307:3:138","nodeType":"FunctionDefinition","parameters":{"id":43892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43885,"mutability":"mutable","name":"p0","nameLocation":"28319:2:138","nodeType":"VariableDeclaration","scope":43906,"src":"28311:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43884,"name":"uint256","nodeType":"ElementaryTypeName","src":"28311:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43887,"mutability":"mutable","name":"p1","nameLocation":"28331:2:138","nodeType":"VariableDeclaration","scope":43906,"src":"28323:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43886,"name":"address","nodeType":"ElementaryTypeName","src":"28323:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43889,"mutability":"mutable","name":"p2","nameLocation":"28340:2:138","nodeType":"VariableDeclaration","scope":43906,"src":"28335:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43888,"name":"bool","nodeType":"ElementaryTypeName","src":"28335:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43891,"mutability":"mutable","name":"p3","nameLocation":"28352:2:138","nodeType":"VariableDeclaration","scope":43906,"src":"28344:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43890,"name":"address","nodeType":"ElementaryTypeName","src":"28344:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28310:45:138"},"returnParameters":{"id":43893,"nodeType":"ParameterList","parameters":[],"src":"28370:0:138"},"scope":48415,"src":"28298:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43928,"nodeType":"Block","src":"28549:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629","id":43920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28593:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},"value":"log(uint256,address,address,uint256)"},{"id":43921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"28633:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43910,"src":"28637:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43912,"src":"28641:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43924,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43914,"src":"28645:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28569:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28569:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28569:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"28553:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28553:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43927,"nodeType":"ExpressionStatement","src":"28553:96:138"}]},"id":43929,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28483:3:138","nodeType":"FunctionDefinition","parameters":{"id":43915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43908,"mutability":"mutable","name":"p0","nameLocation":"28495:2:138","nodeType":"VariableDeclaration","scope":43929,"src":"28487:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43907,"name":"uint256","nodeType":"ElementaryTypeName","src":"28487:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43910,"mutability":"mutable","name":"p1","nameLocation":"28507:2:138","nodeType":"VariableDeclaration","scope":43929,"src":"28499:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43909,"name":"address","nodeType":"ElementaryTypeName","src":"28499:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43912,"mutability":"mutable","name":"p2","nameLocation":"28519:2:138","nodeType":"VariableDeclaration","scope":43929,"src":"28511:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43911,"name":"address","nodeType":"ElementaryTypeName","src":"28511:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43914,"mutability":"mutable","name":"p3","nameLocation":"28531:2:138","nodeType":"VariableDeclaration","scope":43929,"src":"28523:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43913,"name":"uint256","nodeType":"ElementaryTypeName","src":"28523:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28486:48:138"},"returnParameters":{"id":43916,"nodeType":"ParameterList","parameters":[],"src":"28549:0:138"},"scope":48415,"src":"28474:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43951,"nodeType":"Block","src":"28737:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729","id":43943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28781:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},"value":"log(uint256,address,address,string)"},{"id":43944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43931,"src":"28820:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43933,"src":"28824:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43935,"src":"28828:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43947,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43937,"src":"28832:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":43941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28757:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28757:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28757:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"28741:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28741:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43950,"nodeType":"ExpressionStatement","src":"28741:95:138"}]},"id":43952,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28665:3:138","nodeType":"FunctionDefinition","parameters":{"id":43938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43931,"mutability":"mutable","name":"p0","nameLocation":"28677:2:138","nodeType":"VariableDeclaration","scope":43952,"src":"28669:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43930,"name":"uint256","nodeType":"ElementaryTypeName","src":"28669:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43933,"mutability":"mutable","name":"p1","nameLocation":"28689:2:138","nodeType":"VariableDeclaration","scope":43952,"src":"28681:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43932,"name":"address","nodeType":"ElementaryTypeName","src":"28681:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43935,"mutability":"mutable","name":"p2","nameLocation":"28701:2:138","nodeType":"VariableDeclaration","scope":43952,"src":"28693:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43934,"name":"address","nodeType":"ElementaryTypeName","src":"28693:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43937,"mutability":"mutable","name":"p3","nameLocation":"28719:2:138","nodeType":"VariableDeclaration","scope":43952,"src":"28705:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43936,"name":"string","nodeType":"ElementaryTypeName","src":"28705:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28668:54:138"},"returnParameters":{"id":43939,"nodeType":"ParameterList","parameters":[],"src":"28737:0:138"},"scope":48415,"src":"28656:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43974,"nodeType":"Block","src":"28915:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29","id":43966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28959:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},"value":"log(uint256,address,address,bool)"},{"id":43967,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43954,"src":"28996:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43968,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43956,"src":"29000:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43969,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43958,"src":"29004:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43970,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43960,"src":"29008:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":43964,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28935:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28935:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28935:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43963,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"28919:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28919:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43973,"nodeType":"ExpressionStatement","src":"28919:93:138"}]},"id":43975,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28852:3:138","nodeType":"FunctionDefinition","parameters":{"id":43961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43954,"mutability":"mutable","name":"p0","nameLocation":"28864:2:138","nodeType":"VariableDeclaration","scope":43975,"src":"28856:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43953,"name":"uint256","nodeType":"ElementaryTypeName","src":"28856:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43956,"mutability":"mutable","name":"p1","nameLocation":"28876:2:138","nodeType":"VariableDeclaration","scope":43975,"src":"28868:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43955,"name":"address","nodeType":"ElementaryTypeName","src":"28868:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43958,"mutability":"mutable","name":"p2","nameLocation":"28888:2:138","nodeType":"VariableDeclaration","scope":43975,"src":"28880:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43957,"name":"address","nodeType":"ElementaryTypeName","src":"28880:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43960,"mutability":"mutable","name":"p3","nameLocation":"28897:2:138","nodeType":"VariableDeclaration","scope":43975,"src":"28892:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43959,"name":"bool","nodeType":"ElementaryTypeName","src":"28892:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28855:45:138"},"returnParameters":{"id":43962,"nodeType":"ParameterList","parameters":[],"src":"28915:0:138"},"scope":48415,"src":"28843:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":43997,"nodeType":"Block","src":"29094:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329","id":43989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29138:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},"value":"log(uint256,address,address,address)"},{"id":43990,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43977,"src":"29178:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43991,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43979,"src":"29182:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43992,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43981,"src":"29186:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43993,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43983,"src":"29190:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29114:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29114:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":43994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29114:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43986,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"29098:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":43995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29098:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43996,"nodeType":"ExpressionStatement","src":"29098:96:138"}]},"id":43998,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29028:3:138","nodeType":"FunctionDefinition","parameters":{"id":43984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43977,"mutability":"mutable","name":"p0","nameLocation":"29040:2:138","nodeType":"VariableDeclaration","scope":43998,"src":"29032:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43976,"name":"uint256","nodeType":"ElementaryTypeName","src":"29032:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43979,"mutability":"mutable","name":"p1","nameLocation":"29052:2:138","nodeType":"VariableDeclaration","scope":43998,"src":"29044:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43978,"name":"address","nodeType":"ElementaryTypeName","src":"29044:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43981,"mutability":"mutable","name":"p2","nameLocation":"29064:2:138","nodeType":"VariableDeclaration","scope":43998,"src":"29056:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43980,"name":"address","nodeType":"ElementaryTypeName","src":"29056:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43983,"mutability":"mutable","name":"p3","nameLocation":"29076:2:138","nodeType":"VariableDeclaration","scope":43998,"src":"29068:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43982,"name":"address","nodeType":"ElementaryTypeName","src":"29068:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29031:48:138"},"returnParameters":{"id":43985,"nodeType":"ParameterList","parameters":[],"src":"29094:0:138"},"scope":48415,"src":"29019:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44020,"nodeType":"Block","src":"29282:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629","id":44012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29326:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},"value":"log(string,uint256,uint256,uint256)"},{"id":44013,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44000,"src":"29365:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44014,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"29369:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44015,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44004,"src":"29373:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44016,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44006,"src":"29377:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44010,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29302:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29302:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29302:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44009,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"29286:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29286:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44019,"nodeType":"ExpressionStatement","src":"29286:95:138"}]},"id":44021,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29210:3:138","nodeType":"FunctionDefinition","parameters":{"id":44007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44000,"mutability":"mutable","name":"p0","nameLocation":"29228:2:138","nodeType":"VariableDeclaration","scope":44021,"src":"29214:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43999,"name":"string","nodeType":"ElementaryTypeName","src":"29214:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44002,"mutability":"mutable","name":"p1","nameLocation":"29240:2:138","nodeType":"VariableDeclaration","scope":44021,"src":"29232:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44001,"name":"uint256","nodeType":"ElementaryTypeName","src":"29232:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44004,"mutability":"mutable","name":"p2","nameLocation":"29252:2:138","nodeType":"VariableDeclaration","scope":44021,"src":"29244:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44003,"name":"uint256","nodeType":"ElementaryTypeName","src":"29244:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44006,"mutability":"mutable","name":"p3","nameLocation":"29264:2:138","nodeType":"VariableDeclaration","scope":44021,"src":"29256:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44005,"name":"uint256","nodeType":"ElementaryTypeName","src":"29256:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29213:54:138"},"returnParameters":{"id":44008,"nodeType":"ParameterList","parameters":[],"src":"29282:0:138"},"scope":48415,"src":"29201:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44043,"nodeType":"Block","src":"29475:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729","id":44035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29519:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},"value":"log(string,uint256,uint256,string)"},{"id":44036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"29557:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44037,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44025,"src":"29561:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44038,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"29565:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44039,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44029,"src":"29569:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29495:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29495:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29495:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"29479:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29479:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44042,"nodeType":"ExpressionStatement","src":"29479:94:138"}]},"id":44044,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29397:3:138","nodeType":"FunctionDefinition","parameters":{"id":44030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44023,"mutability":"mutable","name":"p0","nameLocation":"29415:2:138","nodeType":"VariableDeclaration","scope":44044,"src":"29401:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44022,"name":"string","nodeType":"ElementaryTypeName","src":"29401:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44025,"mutability":"mutable","name":"p1","nameLocation":"29427:2:138","nodeType":"VariableDeclaration","scope":44044,"src":"29419:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44024,"name":"uint256","nodeType":"ElementaryTypeName","src":"29419:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44027,"mutability":"mutable","name":"p2","nameLocation":"29439:2:138","nodeType":"VariableDeclaration","scope":44044,"src":"29431:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44026,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44029,"mutability":"mutable","name":"p3","nameLocation":"29457:2:138","nodeType":"VariableDeclaration","scope":44044,"src":"29443:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44028,"name":"string","nodeType":"ElementaryTypeName","src":"29443:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29400:60:138"},"returnParameters":{"id":44031,"nodeType":"ParameterList","parameters":[],"src":"29475:0:138"},"scope":48415,"src":"29388:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44066,"nodeType":"Block","src":"29658:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29","id":44058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29702:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},"value":"log(string,uint256,uint256,bool)"},{"id":44059,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"29738:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44060,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44048,"src":"29742:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44061,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44050,"src":"29746:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44062,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44052,"src":"29750:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29678:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29678:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29678:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"29662:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29662:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44065,"nodeType":"ExpressionStatement","src":"29662:92:138"}]},"id":44067,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29589:3:138","nodeType":"FunctionDefinition","parameters":{"id":44053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44046,"mutability":"mutable","name":"p0","nameLocation":"29607:2:138","nodeType":"VariableDeclaration","scope":44067,"src":"29593:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44045,"name":"string","nodeType":"ElementaryTypeName","src":"29593:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44048,"mutability":"mutable","name":"p1","nameLocation":"29619:2:138","nodeType":"VariableDeclaration","scope":44067,"src":"29611:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44047,"name":"uint256","nodeType":"ElementaryTypeName","src":"29611:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44050,"mutability":"mutable","name":"p2","nameLocation":"29631:2:138","nodeType":"VariableDeclaration","scope":44067,"src":"29623:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44049,"name":"uint256","nodeType":"ElementaryTypeName","src":"29623:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44052,"mutability":"mutable","name":"p3","nameLocation":"29640:2:138","nodeType":"VariableDeclaration","scope":44067,"src":"29635:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44051,"name":"bool","nodeType":"ElementaryTypeName","src":"29635:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29592:51:138"},"returnParameters":{"id":44054,"nodeType":"ParameterList","parameters":[],"src":"29658:0:138"},"scope":48415,"src":"29580:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44089,"nodeType":"Block","src":"29842:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329","id":44081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29886:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},"value":"log(string,uint256,uint256,address)"},{"id":44082,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44069,"src":"29925:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44083,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44071,"src":"29929:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44084,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"29933:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44085,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44075,"src":"29937:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29862:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29862:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29862:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44078,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"29846:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29846:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44088,"nodeType":"ExpressionStatement","src":"29846:95:138"}]},"id":44090,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29770:3:138","nodeType":"FunctionDefinition","parameters":{"id":44076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44069,"mutability":"mutable","name":"p0","nameLocation":"29788:2:138","nodeType":"VariableDeclaration","scope":44090,"src":"29774:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44068,"name":"string","nodeType":"ElementaryTypeName","src":"29774:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44071,"mutability":"mutable","name":"p1","nameLocation":"29800:2:138","nodeType":"VariableDeclaration","scope":44090,"src":"29792:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44070,"name":"uint256","nodeType":"ElementaryTypeName","src":"29792:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44073,"mutability":"mutable","name":"p2","nameLocation":"29812:2:138","nodeType":"VariableDeclaration","scope":44090,"src":"29804:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44072,"name":"uint256","nodeType":"ElementaryTypeName","src":"29804:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44075,"mutability":"mutable","name":"p3","nameLocation":"29824:2:138","nodeType":"VariableDeclaration","scope":44090,"src":"29816:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44074,"name":"address","nodeType":"ElementaryTypeName","src":"29816:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29773:54:138"},"returnParameters":{"id":44077,"nodeType":"ParameterList","parameters":[],"src":"29842:0:138"},"scope":48415,"src":"29761:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44112,"nodeType":"Block","src":"30035:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629","id":44104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30079:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},"value":"log(string,uint256,string,uint256)"},{"id":44105,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44092,"src":"30117:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44106,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44094,"src":"30121:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44107,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44096,"src":"30125:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44108,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44098,"src":"30129:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30055:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30055:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30055:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44101,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"30039:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30039:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"ExpressionStatement","src":"30039:94:138"}]},"id":44113,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29957:3:138","nodeType":"FunctionDefinition","parameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44092,"mutability":"mutable","name":"p0","nameLocation":"29975:2:138","nodeType":"VariableDeclaration","scope":44113,"src":"29961:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44091,"name":"string","nodeType":"ElementaryTypeName","src":"29961:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44094,"mutability":"mutable","name":"p1","nameLocation":"29987:2:138","nodeType":"VariableDeclaration","scope":44113,"src":"29979:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44093,"name":"uint256","nodeType":"ElementaryTypeName","src":"29979:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44096,"mutability":"mutable","name":"p2","nameLocation":"30005:2:138","nodeType":"VariableDeclaration","scope":44113,"src":"29991:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44095,"name":"string","nodeType":"ElementaryTypeName","src":"29991:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"p3","nameLocation":"30017:2:138","nodeType":"VariableDeclaration","scope":44113,"src":"30009:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44097,"name":"uint256","nodeType":"ElementaryTypeName","src":"30009:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29960:60:138"},"returnParameters":{"id":44100,"nodeType":"ParameterList","parameters":[],"src":"30035:0:138"},"scope":48415,"src":"29948:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44135,"nodeType":"Block","src":"30233:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729","id":44127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30277:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},"value":"log(string,uint256,string,string)"},{"id":44128,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"30314:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44129,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44117,"src":"30318:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44130,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44119,"src":"30322:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44131,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44121,"src":"30326:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30253:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30253:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30253:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44124,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"30237:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30237:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44134,"nodeType":"ExpressionStatement","src":"30237:93:138"}]},"id":44136,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30149:3:138","nodeType":"FunctionDefinition","parameters":{"id":44122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44115,"mutability":"mutable","name":"p0","nameLocation":"30167:2:138","nodeType":"VariableDeclaration","scope":44136,"src":"30153:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44114,"name":"string","nodeType":"ElementaryTypeName","src":"30153:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44117,"mutability":"mutable","name":"p1","nameLocation":"30179:2:138","nodeType":"VariableDeclaration","scope":44136,"src":"30171:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44116,"name":"uint256","nodeType":"ElementaryTypeName","src":"30171:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44119,"mutability":"mutable","name":"p2","nameLocation":"30197:2:138","nodeType":"VariableDeclaration","scope":44136,"src":"30183:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44118,"name":"string","nodeType":"ElementaryTypeName","src":"30183:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44121,"mutability":"mutable","name":"p3","nameLocation":"30215:2:138","nodeType":"VariableDeclaration","scope":44136,"src":"30201:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44120,"name":"string","nodeType":"ElementaryTypeName","src":"30201:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30152:66:138"},"returnParameters":{"id":44123,"nodeType":"ParameterList","parameters":[],"src":"30233:0:138"},"scope":48415,"src":"30140:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44158,"nodeType":"Block","src":"30421:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29","id":44150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30465:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},"value":"log(string,uint256,string,bool)"},{"id":44151,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44138,"src":"30500:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44152,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44140,"src":"30504:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44153,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44142,"src":"30508:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44154,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44144,"src":"30512:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30441:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30441:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30441:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44147,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"30425:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30425:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44157,"nodeType":"ExpressionStatement","src":"30425:91:138"}]},"id":44159,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30346:3:138","nodeType":"FunctionDefinition","parameters":{"id":44145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44138,"mutability":"mutable","name":"p0","nameLocation":"30364:2:138","nodeType":"VariableDeclaration","scope":44159,"src":"30350:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44137,"name":"string","nodeType":"ElementaryTypeName","src":"30350:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44140,"mutability":"mutable","name":"p1","nameLocation":"30376:2:138","nodeType":"VariableDeclaration","scope":44159,"src":"30368:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44139,"name":"uint256","nodeType":"ElementaryTypeName","src":"30368:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44142,"mutability":"mutable","name":"p2","nameLocation":"30394:2:138","nodeType":"VariableDeclaration","scope":44159,"src":"30380:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44141,"name":"string","nodeType":"ElementaryTypeName","src":"30380:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44144,"mutability":"mutable","name":"p3","nameLocation":"30403:2:138","nodeType":"VariableDeclaration","scope":44159,"src":"30398:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44143,"name":"bool","nodeType":"ElementaryTypeName","src":"30398:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30349:57:138"},"returnParameters":{"id":44146,"nodeType":"ParameterList","parameters":[],"src":"30421:0:138"},"scope":48415,"src":"30337:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44181,"nodeType":"Block","src":"30610:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329","id":44173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30654:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},"value":"log(string,uint256,string,address)"},{"id":44174,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44161,"src":"30692:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44175,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44163,"src":"30696:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44176,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44165,"src":"30700:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44177,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44167,"src":"30704:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30630:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30630:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30630:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44170,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"30614:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30614:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44180,"nodeType":"ExpressionStatement","src":"30614:94:138"}]},"id":44182,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30532:3:138","nodeType":"FunctionDefinition","parameters":{"id":44168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44161,"mutability":"mutable","name":"p0","nameLocation":"30550:2:138","nodeType":"VariableDeclaration","scope":44182,"src":"30536:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44160,"name":"string","nodeType":"ElementaryTypeName","src":"30536:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44163,"mutability":"mutable","name":"p1","nameLocation":"30562:2:138","nodeType":"VariableDeclaration","scope":44182,"src":"30554:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44162,"name":"uint256","nodeType":"ElementaryTypeName","src":"30554:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44165,"mutability":"mutable","name":"p2","nameLocation":"30580:2:138","nodeType":"VariableDeclaration","scope":44182,"src":"30566:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44164,"name":"string","nodeType":"ElementaryTypeName","src":"30566:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44167,"mutability":"mutable","name":"p3","nameLocation":"30592:2:138","nodeType":"VariableDeclaration","scope":44182,"src":"30584:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44166,"name":"address","nodeType":"ElementaryTypeName","src":"30584:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30535:60:138"},"returnParameters":{"id":44169,"nodeType":"ParameterList","parameters":[],"src":"30610:0:138"},"scope":48415,"src":"30523:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44204,"nodeType":"Block","src":"30793:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629","id":44196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30837:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},"value":"log(string,uint256,bool,uint256)"},{"id":44197,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44184,"src":"30873:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44198,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44186,"src":"30877:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44199,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44188,"src":"30881:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44200,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44190,"src":"30885:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44194,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30813:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30813:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30813:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44193,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"30797:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30797:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44203,"nodeType":"ExpressionStatement","src":"30797:92:138"}]},"id":44205,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30724:3:138","nodeType":"FunctionDefinition","parameters":{"id":44191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44184,"mutability":"mutable","name":"p0","nameLocation":"30742:2:138","nodeType":"VariableDeclaration","scope":44205,"src":"30728:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44183,"name":"string","nodeType":"ElementaryTypeName","src":"30728:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44186,"mutability":"mutable","name":"p1","nameLocation":"30754:2:138","nodeType":"VariableDeclaration","scope":44205,"src":"30746:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44185,"name":"uint256","nodeType":"ElementaryTypeName","src":"30746:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44188,"mutability":"mutable","name":"p2","nameLocation":"30763:2:138","nodeType":"VariableDeclaration","scope":44205,"src":"30758:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44187,"name":"bool","nodeType":"ElementaryTypeName","src":"30758:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44190,"mutability":"mutable","name":"p3","nameLocation":"30775:2:138","nodeType":"VariableDeclaration","scope":44205,"src":"30767:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44189,"name":"uint256","nodeType":"ElementaryTypeName","src":"30767:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30727:51:138"},"returnParameters":{"id":44192,"nodeType":"ParameterList","parameters":[],"src":"30793:0:138"},"scope":48415,"src":"30715:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44227,"nodeType":"Block","src":"30980:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729","id":44219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31024:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},"value":"log(string,uint256,bool,string)"},{"id":44220,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44207,"src":"31059:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44221,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44209,"src":"31063:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44222,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44211,"src":"31067:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44223,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44213,"src":"31071:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31000:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31000:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31000:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44216,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"30984:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30984:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44226,"nodeType":"ExpressionStatement","src":"30984:91:138"}]},"id":44228,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30905:3:138","nodeType":"FunctionDefinition","parameters":{"id":44214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44207,"mutability":"mutable","name":"p0","nameLocation":"30923:2:138","nodeType":"VariableDeclaration","scope":44228,"src":"30909:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44206,"name":"string","nodeType":"ElementaryTypeName","src":"30909:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44209,"mutability":"mutable","name":"p1","nameLocation":"30935:2:138","nodeType":"VariableDeclaration","scope":44228,"src":"30927:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44208,"name":"uint256","nodeType":"ElementaryTypeName","src":"30927:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44211,"mutability":"mutable","name":"p2","nameLocation":"30944:2:138","nodeType":"VariableDeclaration","scope":44228,"src":"30939:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44210,"name":"bool","nodeType":"ElementaryTypeName","src":"30939:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44213,"mutability":"mutable","name":"p3","nameLocation":"30962:2:138","nodeType":"VariableDeclaration","scope":44228,"src":"30948:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44212,"name":"string","nodeType":"ElementaryTypeName","src":"30948:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30908:57:138"},"returnParameters":{"id":44215,"nodeType":"ParameterList","parameters":[],"src":"30980:0:138"},"scope":48415,"src":"30896:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44250,"nodeType":"Block","src":"31157:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29","id":44242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31201:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},"value":"log(string,uint256,bool,bool)"},{"id":44243,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44230,"src":"31234:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44244,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44232,"src":"31238:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44245,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44234,"src":"31242:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44246,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44236,"src":"31246:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31177:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31177:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31177:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44239,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"31161:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31161:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"31161:89:138"}]},"id":44251,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31091:3:138","nodeType":"FunctionDefinition","parameters":{"id":44237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44230,"mutability":"mutable","name":"p0","nameLocation":"31109:2:138","nodeType":"VariableDeclaration","scope":44251,"src":"31095:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44229,"name":"string","nodeType":"ElementaryTypeName","src":"31095:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44232,"mutability":"mutable","name":"p1","nameLocation":"31121:2:138","nodeType":"VariableDeclaration","scope":44251,"src":"31113:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44231,"name":"uint256","nodeType":"ElementaryTypeName","src":"31113:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44234,"mutability":"mutable","name":"p2","nameLocation":"31130:2:138","nodeType":"VariableDeclaration","scope":44251,"src":"31125:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44233,"name":"bool","nodeType":"ElementaryTypeName","src":"31125:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44236,"mutability":"mutable","name":"p3","nameLocation":"31139:2:138","nodeType":"VariableDeclaration","scope":44251,"src":"31134:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44235,"name":"bool","nodeType":"ElementaryTypeName","src":"31134:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31094:48:138"},"returnParameters":{"id":44238,"nodeType":"ParameterList","parameters":[],"src":"31157:0:138"},"scope":48415,"src":"31082:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44273,"nodeType":"Block","src":"31335:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329","id":44265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31379:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},"value":"log(string,uint256,bool,address)"},{"id":44266,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44253,"src":"31415:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44267,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44255,"src":"31419:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44268,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44257,"src":"31423:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44269,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44259,"src":"31427:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44263,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31355:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31355:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31355:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44262,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"31339:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31339:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44272,"nodeType":"ExpressionStatement","src":"31339:92:138"}]},"id":44274,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31266:3:138","nodeType":"FunctionDefinition","parameters":{"id":44260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44253,"mutability":"mutable","name":"p0","nameLocation":"31284:2:138","nodeType":"VariableDeclaration","scope":44274,"src":"31270:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44252,"name":"string","nodeType":"ElementaryTypeName","src":"31270:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44255,"mutability":"mutable","name":"p1","nameLocation":"31296:2:138","nodeType":"VariableDeclaration","scope":44274,"src":"31288:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44254,"name":"uint256","nodeType":"ElementaryTypeName","src":"31288:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44257,"mutability":"mutable","name":"p2","nameLocation":"31305:2:138","nodeType":"VariableDeclaration","scope":44274,"src":"31300:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44256,"name":"bool","nodeType":"ElementaryTypeName","src":"31300:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44259,"mutability":"mutable","name":"p3","nameLocation":"31317:2:138","nodeType":"VariableDeclaration","scope":44274,"src":"31309:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44258,"name":"address","nodeType":"ElementaryTypeName","src":"31309:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31269:51:138"},"returnParameters":{"id":44261,"nodeType":"ParameterList","parameters":[],"src":"31335:0:138"},"scope":48415,"src":"31257:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44296,"nodeType":"Block","src":"31519:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629","id":44288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31563:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},"value":"log(string,uint256,address,uint256)"},{"id":44289,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"31602:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44290,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44278,"src":"31606:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44291,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44280,"src":"31610:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44292,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"31614:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31539:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31539:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31539:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44285,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"31523:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31523:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44295,"nodeType":"ExpressionStatement","src":"31523:95:138"}]},"id":44297,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31447:3:138","nodeType":"FunctionDefinition","parameters":{"id":44283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44276,"mutability":"mutable","name":"p0","nameLocation":"31465:2:138","nodeType":"VariableDeclaration","scope":44297,"src":"31451:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44275,"name":"string","nodeType":"ElementaryTypeName","src":"31451:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44278,"mutability":"mutable","name":"p1","nameLocation":"31477:2:138","nodeType":"VariableDeclaration","scope":44297,"src":"31469:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44277,"name":"uint256","nodeType":"ElementaryTypeName","src":"31469:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44280,"mutability":"mutable","name":"p2","nameLocation":"31489:2:138","nodeType":"VariableDeclaration","scope":44297,"src":"31481:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44279,"name":"address","nodeType":"ElementaryTypeName","src":"31481:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44282,"mutability":"mutable","name":"p3","nameLocation":"31501:2:138","nodeType":"VariableDeclaration","scope":44297,"src":"31493:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44281,"name":"uint256","nodeType":"ElementaryTypeName","src":"31493:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31450:54:138"},"returnParameters":{"id":44284,"nodeType":"ParameterList","parameters":[],"src":"31519:0:138"},"scope":48415,"src":"31438:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44319,"nodeType":"Block","src":"31712:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729","id":44311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31756:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},"value":"log(string,uint256,address,string)"},{"id":44312,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44299,"src":"31794:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44313,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44301,"src":"31798:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44314,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44303,"src":"31802:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44315,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44305,"src":"31806:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44309,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31732:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31732:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31732:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44308,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"31716:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31716:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44318,"nodeType":"ExpressionStatement","src":"31716:94:138"}]},"id":44320,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31634:3:138","nodeType":"FunctionDefinition","parameters":{"id":44306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44299,"mutability":"mutable","name":"p0","nameLocation":"31652:2:138","nodeType":"VariableDeclaration","scope":44320,"src":"31638:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44298,"name":"string","nodeType":"ElementaryTypeName","src":"31638:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44301,"mutability":"mutable","name":"p1","nameLocation":"31664:2:138","nodeType":"VariableDeclaration","scope":44320,"src":"31656:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44300,"name":"uint256","nodeType":"ElementaryTypeName","src":"31656:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44303,"mutability":"mutable","name":"p2","nameLocation":"31676:2:138","nodeType":"VariableDeclaration","scope":44320,"src":"31668:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44302,"name":"address","nodeType":"ElementaryTypeName","src":"31668:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44305,"mutability":"mutable","name":"p3","nameLocation":"31694:2:138","nodeType":"VariableDeclaration","scope":44320,"src":"31680:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44304,"name":"string","nodeType":"ElementaryTypeName","src":"31680:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31637:60:138"},"returnParameters":{"id":44307,"nodeType":"ParameterList","parameters":[],"src":"31712:0:138"},"scope":48415,"src":"31625:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44342,"nodeType":"Block","src":"31895:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29","id":44334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31939:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},"value":"log(string,uint256,address,bool)"},{"id":44335,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44322,"src":"31975:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44336,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44324,"src":"31979:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44337,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44326,"src":"31983:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44338,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44328,"src":"31987:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31915:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31915:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31915:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44331,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"31899:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31899:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44341,"nodeType":"ExpressionStatement","src":"31899:92:138"}]},"id":44343,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31826:3:138","nodeType":"FunctionDefinition","parameters":{"id":44329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44322,"mutability":"mutable","name":"p0","nameLocation":"31844:2:138","nodeType":"VariableDeclaration","scope":44343,"src":"31830:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44321,"name":"string","nodeType":"ElementaryTypeName","src":"31830:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44324,"mutability":"mutable","name":"p1","nameLocation":"31856:2:138","nodeType":"VariableDeclaration","scope":44343,"src":"31848:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44323,"name":"uint256","nodeType":"ElementaryTypeName","src":"31848:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44326,"mutability":"mutable","name":"p2","nameLocation":"31868:2:138","nodeType":"VariableDeclaration","scope":44343,"src":"31860:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44325,"name":"address","nodeType":"ElementaryTypeName","src":"31860:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44328,"mutability":"mutable","name":"p3","nameLocation":"31877:2:138","nodeType":"VariableDeclaration","scope":44343,"src":"31872:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44327,"name":"bool","nodeType":"ElementaryTypeName","src":"31872:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31829:51:138"},"returnParameters":{"id":44330,"nodeType":"ParameterList","parameters":[],"src":"31895:0:138"},"scope":48415,"src":"31817:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44365,"nodeType":"Block","src":"32079:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329","id":44357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32123:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},"value":"log(string,uint256,address,address)"},{"id":44358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"32162:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44359,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44347,"src":"32166:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44360,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"32170:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44361,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44351,"src":"32174:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32099:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32099:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32099:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"32083:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32083:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44364,"nodeType":"ExpressionStatement","src":"32083:95:138"}]},"id":44366,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32007:3:138","nodeType":"FunctionDefinition","parameters":{"id":44352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44345,"mutability":"mutable","name":"p0","nameLocation":"32025:2:138","nodeType":"VariableDeclaration","scope":44366,"src":"32011:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44344,"name":"string","nodeType":"ElementaryTypeName","src":"32011:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44347,"mutability":"mutable","name":"p1","nameLocation":"32037:2:138","nodeType":"VariableDeclaration","scope":44366,"src":"32029:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44346,"name":"uint256","nodeType":"ElementaryTypeName","src":"32029:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44349,"mutability":"mutable","name":"p2","nameLocation":"32049:2:138","nodeType":"VariableDeclaration","scope":44366,"src":"32041:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44348,"name":"address","nodeType":"ElementaryTypeName","src":"32041:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44351,"mutability":"mutable","name":"p3","nameLocation":"32061:2:138","nodeType":"VariableDeclaration","scope":44366,"src":"32053:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44350,"name":"address","nodeType":"ElementaryTypeName","src":"32053:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32010:54:138"},"returnParameters":{"id":44353,"nodeType":"ParameterList","parameters":[],"src":"32079:0:138"},"scope":48415,"src":"31998:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44388,"nodeType":"Block","src":"32272:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629","id":44380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32316:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},"value":"log(string,string,uint256,uint256)"},{"id":44381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44368,"src":"32354:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44370,"src":"32358:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44372,"src":"32362:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44384,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44374,"src":"32366:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32292:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32292:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32292:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"32276:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32276:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44387,"nodeType":"ExpressionStatement","src":"32276:94:138"}]},"id":44389,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32194:3:138","nodeType":"FunctionDefinition","parameters":{"id":44375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44368,"mutability":"mutable","name":"p0","nameLocation":"32212:2:138","nodeType":"VariableDeclaration","scope":44389,"src":"32198:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44367,"name":"string","nodeType":"ElementaryTypeName","src":"32198:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44370,"mutability":"mutable","name":"p1","nameLocation":"32230:2:138","nodeType":"VariableDeclaration","scope":44389,"src":"32216:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44369,"name":"string","nodeType":"ElementaryTypeName","src":"32216:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44372,"mutability":"mutable","name":"p2","nameLocation":"32242:2:138","nodeType":"VariableDeclaration","scope":44389,"src":"32234:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44371,"name":"uint256","nodeType":"ElementaryTypeName","src":"32234:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44374,"mutability":"mutable","name":"p3","nameLocation":"32254:2:138","nodeType":"VariableDeclaration","scope":44389,"src":"32246:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44373,"name":"uint256","nodeType":"ElementaryTypeName","src":"32246:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32197:60:138"},"returnParameters":{"id":44376,"nodeType":"ParameterList","parameters":[],"src":"32272:0:138"},"scope":48415,"src":"32185:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44411,"nodeType":"Block","src":"32470:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729","id":44403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32514:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},"value":"log(string,string,uint256,string)"},{"id":44404,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44391,"src":"32551:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44405,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"32555:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44406,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44395,"src":"32559:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44407,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"32563:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32490:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32490:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32490:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44400,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"32474:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32474:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44410,"nodeType":"ExpressionStatement","src":"32474:93:138"}]},"id":44412,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32386:3:138","nodeType":"FunctionDefinition","parameters":{"id":44398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44391,"mutability":"mutable","name":"p0","nameLocation":"32404:2:138","nodeType":"VariableDeclaration","scope":44412,"src":"32390:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44390,"name":"string","nodeType":"ElementaryTypeName","src":"32390:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44393,"mutability":"mutable","name":"p1","nameLocation":"32422:2:138","nodeType":"VariableDeclaration","scope":44412,"src":"32408:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44392,"name":"string","nodeType":"ElementaryTypeName","src":"32408:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44395,"mutability":"mutable","name":"p2","nameLocation":"32434:2:138","nodeType":"VariableDeclaration","scope":44412,"src":"32426:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44394,"name":"uint256","nodeType":"ElementaryTypeName","src":"32426:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44397,"mutability":"mutable","name":"p3","nameLocation":"32452:2:138","nodeType":"VariableDeclaration","scope":44412,"src":"32438:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44396,"name":"string","nodeType":"ElementaryTypeName","src":"32438:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32389:66:138"},"returnParameters":{"id":44399,"nodeType":"ParameterList","parameters":[],"src":"32470:0:138"},"scope":48415,"src":"32377:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44434,"nodeType":"Block","src":"32658:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29","id":44426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32702:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},"value":"log(string,string,uint256,bool)"},{"id":44427,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44414,"src":"32737:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44428,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"32741:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44429,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44418,"src":"32745:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44430,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44420,"src":"32749:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32678:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32678:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32678:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44423,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"32662:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32662:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44433,"nodeType":"ExpressionStatement","src":"32662:91:138"}]},"id":44435,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32583:3:138","nodeType":"FunctionDefinition","parameters":{"id":44421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44414,"mutability":"mutable","name":"p0","nameLocation":"32601:2:138","nodeType":"VariableDeclaration","scope":44435,"src":"32587:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44413,"name":"string","nodeType":"ElementaryTypeName","src":"32587:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44416,"mutability":"mutable","name":"p1","nameLocation":"32619:2:138","nodeType":"VariableDeclaration","scope":44435,"src":"32605:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44415,"name":"string","nodeType":"ElementaryTypeName","src":"32605:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44418,"mutability":"mutable","name":"p2","nameLocation":"32631:2:138","nodeType":"VariableDeclaration","scope":44435,"src":"32623:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44417,"name":"uint256","nodeType":"ElementaryTypeName","src":"32623:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44420,"mutability":"mutable","name":"p3","nameLocation":"32640:2:138","nodeType":"VariableDeclaration","scope":44435,"src":"32635:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44419,"name":"bool","nodeType":"ElementaryTypeName","src":"32635:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32586:57:138"},"returnParameters":{"id":44422,"nodeType":"ParameterList","parameters":[],"src":"32658:0:138"},"scope":48415,"src":"32574:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44457,"nodeType":"Block","src":"32847:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329","id":44449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32891:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},"value":"log(string,string,uint256,address)"},{"id":44450,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"32929:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44451,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44439,"src":"32933:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44452,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44441,"src":"32937:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44453,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44443,"src":"32941:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32867:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32867:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32867:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44446,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"32851:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32851:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44456,"nodeType":"ExpressionStatement","src":"32851:94:138"}]},"id":44458,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32769:3:138","nodeType":"FunctionDefinition","parameters":{"id":44444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44437,"mutability":"mutable","name":"p0","nameLocation":"32787:2:138","nodeType":"VariableDeclaration","scope":44458,"src":"32773:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44436,"name":"string","nodeType":"ElementaryTypeName","src":"32773:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44439,"mutability":"mutable","name":"p1","nameLocation":"32805:2:138","nodeType":"VariableDeclaration","scope":44458,"src":"32791:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44438,"name":"string","nodeType":"ElementaryTypeName","src":"32791:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44441,"mutability":"mutable","name":"p2","nameLocation":"32817:2:138","nodeType":"VariableDeclaration","scope":44458,"src":"32809:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44440,"name":"uint256","nodeType":"ElementaryTypeName","src":"32809:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44443,"mutability":"mutable","name":"p3","nameLocation":"32829:2:138","nodeType":"VariableDeclaration","scope":44458,"src":"32821:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"32821:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32772:60:138"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[],"src":"32847:0:138"},"scope":48415,"src":"32760:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44480,"nodeType":"Block","src":"33045:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629","id":44472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33089:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},"value":"log(string,string,string,uint256)"},{"id":44473,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44460,"src":"33126:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44474,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"33130:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44475,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44464,"src":"33134:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44476,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44466,"src":"33138:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44470,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33065:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33065:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33065:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44469,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"33049:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33049:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44479,"nodeType":"ExpressionStatement","src":"33049:93:138"}]},"id":44481,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32961:3:138","nodeType":"FunctionDefinition","parameters":{"id":44467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44460,"mutability":"mutable","name":"p0","nameLocation":"32979:2:138","nodeType":"VariableDeclaration","scope":44481,"src":"32965:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44459,"name":"string","nodeType":"ElementaryTypeName","src":"32965:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44462,"mutability":"mutable","name":"p1","nameLocation":"32997:2:138","nodeType":"VariableDeclaration","scope":44481,"src":"32983:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44461,"name":"string","nodeType":"ElementaryTypeName","src":"32983:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44464,"mutability":"mutable","name":"p2","nameLocation":"33015:2:138","nodeType":"VariableDeclaration","scope":44481,"src":"33001:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44463,"name":"string","nodeType":"ElementaryTypeName","src":"33001:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44466,"mutability":"mutable","name":"p3","nameLocation":"33027:2:138","nodeType":"VariableDeclaration","scope":44481,"src":"33019:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44465,"name":"uint256","nodeType":"ElementaryTypeName","src":"33019:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32964:66:138"},"returnParameters":{"id":44468,"nodeType":"ParameterList","parameters":[],"src":"33045:0:138"},"scope":48415,"src":"32952:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44503,"nodeType":"Block","src":"33248:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":44495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33292:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":44496,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44483,"src":"33328:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44497,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44485,"src":"33332:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44487,"src":"33336:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44499,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44489,"src":"33340:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33268:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33268:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33268:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"33252:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33252:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44502,"nodeType":"ExpressionStatement","src":"33252:92:138"}]},"id":44504,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33158:3:138","nodeType":"FunctionDefinition","parameters":{"id":44490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44483,"mutability":"mutable","name":"p0","nameLocation":"33176:2:138","nodeType":"VariableDeclaration","scope":44504,"src":"33162:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44482,"name":"string","nodeType":"ElementaryTypeName","src":"33162:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44485,"mutability":"mutable","name":"p1","nameLocation":"33194:2:138","nodeType":"VariableDeclaration","scope":44504,"src":"33180:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44484,"name":"string","nodeType":"ElementaryTypeName","src":"33180:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44487,"mutability":"mutable","name":"p2","nameLocation":"33212:2:138","nodeType":"VariableDeclaration","scope":44504,"src":"33198:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44486,"name":"string","nodeType":"ElementaryTypeName","src":"33198:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44489,"mutability":"mutable","name":"p3","nameLocation":"33230:2:138","nodeType":"VariableDeclaration","scope":44504,"src":"33216:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44488,"name":"string","nodeType":"ElementaryTypeName","src":"33216:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33161:72:138"},"returnParameters":{"id":44491,"nodeType":"ParameterList","parameters":[],"src":"33248:0:138"},"scope":48415,"src":"33149:199:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44526,"nodeType":"Block","src":"33441:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":44518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33485:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":44519,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"33519:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44520,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44508,"src":"33523:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44521,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44510,"src":"33527:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44522,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44512,"src":"33531:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44516,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33461:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33461:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33461:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"33445:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33445:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44525,"nodeType":"ExpressionStatement","src":"33445:90:138"}]},"id":44527,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33360:3:138","nodeType":"FunctionDefinition","parameters":{"id":44513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44506,"mutability":"mutable","name":"p0","nameLocation":"33378:2:138","nodeType":"VariableDeclaration","scope":44527,"src":"33364:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44505,"name":"string","nodeType":"ElementaryTypeName","src":"33364:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44508,"mutability":"mutable","name":"p1","nameLocation":"33396:2:138","nodeType":"VariableDeclaration","scope":44527,"src":"33382:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44507,"name":"string","nodeType":"ElementaryTypeName","src":"33382:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44510,"mutability":"mutable","name":"p2","nameLocation":"33414:2:138","nodeType":"VariableDeclaration","scope":44527,"src":"33400:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44509,"name":"string","nodeType":"ElementaryTypeName","src":"33400:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44512,"mutability":"mutable","name":"p3","nameLocation":"33423:2:138","nodeType":"VariableDeclaration","scope":44527,"src":"33418:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44511,"name":"bool","nodeType":"ElementaryTypeName","src":"33418:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33363:63:138"},"returnParameters":{"id":44514,"nodeType":"ParameterList","parameters":[],"src":"33441:0:138"},"scope":48415,"src":"33351:188:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44549,"nodeType":"Block","src":"33635:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":44541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33679:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":44542,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44529,"src":"33716:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44543,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44531,"src":"33720:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44544,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"33724:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44545,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44535,"src":"33728:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33655:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33655:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33655:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44538,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"33639:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33639:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44548,"nodeType":"ExpressionStatement","src":"33639:93:138"}]},"id":44550,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33551:3:138","nodeType":"FunctionDefinition","parameters":{"id":44536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44529,"mutability":"mutable","name":"p0","nameLocation":"33569:2:138","nodeType":"VariableDeclaration","scope":44550,"src":"33555:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44528,"name":"string","nodeType":"ElementaryTypeName","src":"33555:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44531,"mutability":"mutable","name":"p1","nameLocation":"33587:2:138","nodeType":"VariableDeclaration","scope":44550,"src":"33573:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44530,"name":"string","nodeType":"ElementaryTypeName","src":"33573:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44533,"mutability":"mutable","name":"p2","nameLocation":"33605:2:138","nodeType":"VariableDeclaration","scope":44550,"src":"33591:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44532,"name":"string","nodeType":"ElementaryTypeName","src":"33591:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44535,"mutability":"mutable","name":"p3","nameLocation":"33617:2:138","nodeType":"VariableDeclaration","scope":44550,"src":"33609:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44534,"name":"address","nodeType":"ElementaryTypeName","src":"33609:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33554:66:138"},"returnParameters":{"id":44537,"nodeType":"ParameterList","parameters":[],"src":"33635:0:138"},"scope":48415,"src":"33542:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44572,"nodeType":"Block","src":"33823:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629","id":44564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33867:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},"value":"log(string,string,bool,uint256)"},{"id":44565,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"33902:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44566,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44554,"src":"33906:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44567,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44556,"src":"33910:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44568,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"33914:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33843:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33843:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33843:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44561,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"33827:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33827:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44571,"nodeType":"ExpressionStatement","src":"33827:91:138"}]},"id":44573,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33748:3:138","nodeType":"FunctionDefinition","parameters":{"id":44559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44552,"mutability":"mutable","name":"p0","nameLocation":"33766:2:138","nodeType":"VariableDeclaration","scope":44573,"src":"33752:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44551,"name":"string","nodeType":"ElementaryTypeName","src":"33752:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44554,"mutability":"mutable","name":"p1","nameLocation":"33784:2:138","nodeType":"VariableDeclaration","scope":44573,"src":"33770:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44553,"name":"string","nodeType":"ElementaryTypeName","src":"33770:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44556,"mutability":"mutable","name":"p2","nameLocation":"33793:2:138","nodeType":"VariableDeclaration","scope":44573,"src":"33788:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44555,"name":"bool","nodeType":"ElementaryTypeName","src":"33788:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44558,"mutability":"mutable","name":"p3","nameLocation":"33805:2:138","nodeType":"VariableDeclaration","scope":44573,"src":"33797:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44557,"name":"uint256","nodeType":"ElementaryTypeName","src":"33797:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33751:57:138"},"returnParameters":{"id":44560,"nodeType":"ParameterList","parameters":[],"src":"33823:0:138"},"scope":48415,"src":"33739:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44595,"nodeType":"Block","src":"34015:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":44587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34059:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":44588,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44575,"src":"34093:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44589,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44577,"src":"34097:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44590,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44579,"src":"34101:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44591,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44581,"src":"34105:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44585,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34035:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34035:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34035:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44584,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"34019:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34019:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44594,"nodeType":"ExpressionStatement","src":"34019:90:138"}]},"id":44596,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33934:3:138","nodeType":"FunctionDefinition","parameters":{"id":44582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44575,"mutability":"mutable","name":"p0","nameLocation":"33952:2:138","nodeType":"VariableDeclaration","scope":44596,"src":"33938:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44574,"name":"string","nodeType":"ElementaryTypeName","src":"33938:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44577,"mutability":"mutable","name":"p1","nameLocation":"33970:2:138","nodeType":"VariableDeclaration","scope":44596,"src":"33956:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44576,"name":"string","nodeType":"ElementaryTypeName","src":"33956:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44579,"mutability":"mutable","name":"p2","nameLocation":"33979:2:138","nodeType":"VariableDeclaration","scope":44596,"src":"33974:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44578,"name":"bool","nodeType":"ElementaryTypeName","src":"33974:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44581,"mutability":"mutable","name":"p3","nameLocation":"33997:2:138","nodeType":"VariableDeclaration","scope":44596,"src":"33983:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44580,"name":"string","nodeType":"ElementaryTypeName","src":"33983:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33937:63:138"},"returnParameters":{"id":44583,"nodeType":"ParameterList","parameters":[],"src":"34015:0:138"},"scope":48415,"src":"33925:188:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44618,"nodeType":"Block","src":"34197:96:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":44610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34241:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":44611,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44598,"src":"34273:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44612,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44600,"src":"34277:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44613,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44602,"src":"34281:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44614,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44604,"src":"34285:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44608,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34217:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34217:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34217:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44607,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"34201:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34201:88:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44617,"nodeType":"ExpressionStatement","src":"34201:88:138"}]},"id":44619,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34125:3:138","nodeType":"FunctionDefinition","parameters":{"id":44605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44598,"mutability":"mutable","name":"p0","nameLocation":"34143:2:138","nodeType":"VariableDeclaration","scope":44619,"src":"34129:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44597,"name":"string","nodeType":"ElementaryTypeName","src":"34129:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44600,"mutability":"mutable","name":"p1","nameLocation":"34161:2:138","nodeType":"VariableDeclaration","scope":44619,"src":"34147:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44599,"name":"string","nodeType":"ElementaryTypeName","src":"34147:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44602,"mutability":"mutable","name":"p2","nameLocation":"34170:2:138","nodeType":"VariableDeclaration","scope":44619,"src":"34165:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44601,"name":"bool","nodeType":"ElementaryTypeName","src":"34165:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44604,"mutability":"mutable","name":"p3","nameLocation":"34179:2:138","nodeType":"VariableDeclaration","scope":44619,"src":"34174:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44603,"name":"bool","nodeType":"ElementaryTypeName","src":"34174:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34128:54:138"},"returnParameters":{"id":44606,"nodeType":"ParameterList","parameters":[],"src":"34197:0:138"},"scope":48415,"src":"34116:177:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44641,"nodeType":"Block","src":"34380:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":44633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34424:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":44634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44621,"src":"34459:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44623,"src":"34463:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44636,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44625,"src":"34467:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44637,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44627,"src":"34471:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34400:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34400:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34400:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"34384:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34384:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44640,"nodeType":"ExpressionStatement","src":"34384:91:138"}]},"id":44642,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34305:3:138","nodeType":"FunctionDefinition","parameters":{"id":44628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44621,"mutability":"mutable","name":"p0","nameLocation":"34323:2:138","nodeType":"VariableDeclaration","scope":44642,"src":"34309:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44620,"name":"string","nodeType":"ElementaryTypeName","src":"34309:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44623,"mutability":"mutable","name":"p1","nameLocation":"34341:2:138","nodeType":"VariableDeclaration","scope":44642,"src":"34327:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44622,"name":"string","nodeType":"ElementaryTypeName","src":"34327:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44625,"mutability":"mutable","name":"p2","nameLocation":"34350:2:138","nodeType":"VariableDeclaration","scope":44642,"src":"34345:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44624,"name":"bool","nodeType":"ElementaryTypeName","src":"34345:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44627,"mutability":"mutable","name":"p3","nameLocation":"34362:2:138","nodeType":"VariableDeclaration","scope":44642,"src":"34354:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44626,"name":"address","nodeType":"ElementaryTypeName","src":"34354:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34308:57:138"},"returnParameters":{"id":44629,"nodeType":"ParameterList","parameters":[],"src":"34380:0:138"},"scope":48415,"src":"34296:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44664,"nodeType":"Block","src":"34569:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629","id":44656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34613:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},"value":"log(string,string,address,uint256)"},{"id":44657,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44644,"src":"34651:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44658,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44646,"src":"34655:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44659,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44648,"src":"34659:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44660,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44650,"src":"34663:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34589:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34589:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34589:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"34573:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34573:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44663,"nodeType":"ExpressionStatement","src":"34573:94:138"}]},"id":44665,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34491:3:138","nodeType":"FunctionDefinition","parameters":{"id":44651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44644,"mutability":"mutable","name":"p0","nameLocation":"34509:2:138","nodeType":"VariableDeclaration","scope":44665,"src":"34495:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44643,"name":"string","nodeType":"ElementaryTypeName","src":"34495:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44646,"mutability":"mutable","name":"p1","nameLocation":"34527:2:138","nodeType":"VariableDeclaration","scope":44665,"src":"34513:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44645,"name":"string","nodeType":"ElementaryTypeName","src":"34513:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44648,"mutability":"mutable","name":"p2","nameLocation":"34539:2:138","nodeType":"VariableDeclaration","scope":44665,"src":"34531:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44647,"name":"address","nodeType":"ElementaryTypeName","src":"34531:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44650,"mutability":"mutable","name":"p3","nameLocation":"34551:2:138","nodeType":"VariableDeclaration","scope":44665,"src":"34543:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44649,"name":"uint256","nodeType":"ElementaryTypeName","src":"34543:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34494:60:138"},"returnParameters":{"id":44652,"nodeType":"ParameterList","parameters":[],"src":"34569:0:138"},"scope":48415,"src":"34482:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44687,"nodeType":"Block","src":"34767:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":44679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34811:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":44680,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44667,"src":"34848:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44681,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44669,"src":"34852:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44682,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"34856:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44683,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"34860:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34787:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34787:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34787:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44676,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"34771:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34771:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44686,"nodeType":"ExpressionStatement","src":"34771:93:138"}]},"id":44688,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34683:3:138","nodeType":"FunctionDefinition","parameters":{"id":44674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44667,"mutability":"mutable","name":"p0","nameLocation":"34701:2:138","nodeType":"VariableDeclaration","scope":44688,"src":"34687:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44666,"name":"string","nodeType":"ElementaryTypeName","src":"34687:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44669,"mutability":"mutable","name":"p1","nameLocation":"34719:2:138","nodeType":"VariableDeclaration","scope":44688,"src":"34705:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44668,"name":"string","nodeType":"ElementaryTypeName","src":"34705:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44671,"mutability":"mutable","name":"p2","nameLocation":"34731:2:138","nodeType":"VariableDeclaration","scope":44688,"src":"34723:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44670,"name":"address","nodeType":"ElementaryTypeName","src":"34723:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44673,"mutability":"mutable","name":"p3","nameLocation":"34749:2:138","nodeType":"VariableDeclaration","scope":44688,"src":"34735:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44672,"name":"string","nodeType":"ElementaryTypeName","src":"34735:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34686:66:138"},"returnParameters":{"id":44675,"nodeType":"ParameterList","parameters":[],"src":"34767:0:138"},"scope":48415,"src":"34674:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44710,"nodeType":"Block","src":"34955:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":44702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34999:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":44703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44690,"src":"35034:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44704,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44692,"src":"35038:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44705,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44694,"src":"35042:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44706,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44696,"src":"35046:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34975:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34975:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34975:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"34959:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34959:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44709,"nodeType":"ExpressionStatement","src":"34959:91:138"}]},"id":44711,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34880:3:138","nodeType":"FunctionDefinition","parameters":{"id":44697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44690,"mutability":"mutable","name":"p0","nameLocation":"34898:2:138","nodeType":"VariableDeclaration","scope":44711,"src":"34884:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44689,"name":"string","nodeType":"ElementaryTypeName","src":"34884:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44692,"mutability":"mutable","name":"p1","nameLocation":"34916:2:138","nodeType":"VariableDeclaration","scope":44711,"src":"34902:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44691,"name":"string","nodeType":"ElementaryTypeName","src":"34902:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44694,"mutability":"mutable","name":"p2","nameLocation":"34928:2:138","nodeType":"VariableDeclaration","scope":44711,"src":"34920:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44693,"name":"address","nodeType":"ElementaryTypeName","src":"34920:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44696,"mutability":"mutable","name":"p3","nameLocation":"34937:2:138","nodeType":"VariableDeclaration","scope":44711,"src":"34932:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44695,"name":"bool","nodeType":"ElementaryTypeName","src":"34932:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34883:57:138"},"returnParameters":{"id":44698,"nodeType":"ParameterList","parameters":[],"src":"34955:0:138"},"scope":48415,"src":"34871:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44733,"nodeType":"Block","src":"35144:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":44725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35188:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":44726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44713,"src":"35226:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44715,"src":"35230:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44717,"src":"35234:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44729,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"35238:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35164:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35164:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35164:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"35148:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35148:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44732,"nodeType":"ExpressionStatement","src":"35148:94:138"}]},"id":44734,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35066:3:138","nodeType":"FunctionDefinition","parameters":{"id":44720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44713,"mutability":"mutable","name":"p0","nameLocation":"35084:2:138","nodeType":"VariableDeclaration","scope":44734,"src":"35070:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44712,"name":"string","nodeType":"ElementaryTypeName","src":"35070:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44715,"mutability":"mutable","name":"p1","nameLocation":"35102:2:138","nodeType":"VariableDeclaration","scope":44734,"src":"35088:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44714,"name":"string","nodeType":"ElementaryTypeName","src":"35088:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44717,"mutability":"mutable","name":"p2","nameLocation":"35114:2:138","nodeType":"VariableDeclaration","scope":44734,"src":"35106:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44716,"name":"address","nodeType":"ElementaryTypeName","src":"35106:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44719,"mutability":"mutable","name":"p3","nameLocation":"35126:2:138","nodeType":"VariableDeclaration","scope":44734,"src":"35118:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44718,"name":"address","nodeType":"ElementaryTypeName","src":"35118:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35069:60:138"},"returnParameters":{"id":44721,"nodeType":"ParameterList","parameters":[],"src":"35144:0:138"},"scope":48415,"src":"35057:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44756,"nodeType":"Block","src":"35327:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629","id":44748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35371:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},"value":"log(string,bool,uint256,uint256)"},{"id":44749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44736,"src":"35407:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44750,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44738,"src":"35411:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44751,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44740,"src":"35415:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44752,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44742,"src":"35419:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35347:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35347:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35347:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"35331:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35331:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44755,"nodeType":"ExpressionStatement","src":"35331:92:138"}]},"id":44757,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35258:3:138","nodeType":"FunctionDefinition","parameters":{"id":44743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44736,"mutability":"mutable","name":"p0","nameLocation":"35276:2:138","nodeType":"VariableDeclaration","scope":44757,"src":"35262:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44735,"name":"string","nodeType":"ElementaryTypeName","src":"35262:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44738,"mutability":"mutable","name":"p1","nameLocation":"35285:2:138","nodeType":"VariableDeclaration","scope":44757,"src":"35280:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44737,"name":"bool","nodeType":"ElementaryTypeName","src":"35280:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44740,"mutability":"mutable","name":"p2","nameLocation":"35297:2:138","nodeType":"VariableDeclaration","scope":44757,"src":"35289:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44739,"name":"uint256","nodeType":"ElementaryTypeName","src":"35289:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44742,"mutability":"mutable","name":"p3","nameLocation":"35309:2:138","nodeType":"VariableDeclaration","scope":44757,"src":"35301:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44741,"name":"uint256","nodeType":"ElementaryTypeName","src":"35301:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35261:51:138"},"returnParameters":{"id":44744,"nodeType":"ParameterList","parameters":[],"src":"35327:0:138"},"scope":48415,"src":"35249:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44779,"nodeType":"Block","src":"35514:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729","id":44771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35558:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},"value":"log(string,bool,uint256,string)"},{"id":44772,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"35593:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44773,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"35597:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44774,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"35601:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44775,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44765,"src":"35605:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44769,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35534:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35534:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35534:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44768,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"35518:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35518:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44778,"nodeType":"ExpressionStatement","src":"35518:91:138"}]},"id":44780,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35439:3:138","nodeType":"FunctionDefinition","parameters":{"id":44766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"p0","nameLocation":"35457:2:138","nodeType":"VariableDeclaration","scope":44780,"src":"35443:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44758,"name":"string","nodeType":"ElementaryTypeName","src":"35443:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"p1","nameLocation":"35466:2:138","nodeType":"VariableDeclaration","scope":44780,"src":"35461:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44760,"name":"bool","nodeType":"ElementaryTypeName","src":"35461:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"p2","nameLocation":"35478:2:138","nodeType":"VariableDeclaration","scope":44780,"src":"35470:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"35470:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44765,"mutability":"mutable","name":"p3","nameLocation":"35496:2:138","nodeType":"VariableDeclaration","scope":44780,"src":"35482:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44764,"name":"string","nodeType":"ElementaryTypeName","src":"35482:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35442:57:138"},"returnParameters":{"id":44767,"nodeType":"ParameterList","parameters":[],"src":"35514:0:138"},"scope":48415,"src":"35430:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44802,"nodeType":"Block","src":"35691:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29","id":44794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35735:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},"value":"log(string,bool,uint256,bool)"},{"id":44795,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44782,"src":"35768:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44796,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44784,"src":"35772:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44797,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44786,"src":"35776:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44798,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44788,"src":"35780:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35711:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35711:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35711:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44791,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"35695:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35695:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44801,"nodeType":"ExpressionStatement","src":"35695:89:138"}]},"id":44803,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35625:3:138","nodeType":"FunctionDefinition","parameters":{"id":44789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44782,"mutability":"mutable","name":"p0","nameLocation":"35643:2:138","nodeType":"VariableDeclaration","scope":44803,"src":"35629:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44781,"name":"string","nodeType":"ElementaryTypeName","src":"35629:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44784,"mutability":"mutable","name":"p1","nameLocation":"35652:2:138","nodeType":"VariableDeclaration","scope":44803,"src":"35647:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44783,"name":"bool","nodeType":"ElementaryTypeName","src":"35647:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44786,"mutability":"mutable","name":"p2","nameLocation":"35664:2:138","nodeType":"VariableDeclaration","scope":44803,"src":"35656:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44785,"name":"uint256","nodeType":"ElementaryTypeName","src":"35656:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44788,"mutability":"mutable","name":"p3","nameLocation":"35673:2:138","nodeType":"VariableDeclaration","scope":44803,"src":"35668:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44787,"name":"bool","nodeType":"ElementaryTypeName","src":"35668:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35628:48:138"},"returnParameters":{"id":44790,"nodeType":"ParameterList","parameters":[],"src":"35691:0:138"},"scope":48415,"src":"35616:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44825,"nodeType":"Block","src":"35869:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329","id":44817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35913:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},"value":"log(string,bool,uint256,address)"},{"id":44818,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44805,"src":"35949:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44819,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44807,"src":"35953:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44820,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44809,"src":"35957:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44821,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"35961:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35889:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35889:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35889:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44814,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"35873:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35873:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44824,"nodeType":"ExpressionStatement","src":"35873:92:138"}]},"id":44826,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35800:3:138","nodeType":"FunctionDefinition","parameters":{"id":44812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44805,"mutability":"mutable","name":"p0","nameLocation":"35818:2:138","nodeType":"VariableDeclaration","scope":44826,"src":"35804:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44804,"name":"string","nodeType":"ElementaryTypeName","src":"35804:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44807,"mutability":"mutable","name":"p1","nameLocation":"35827:2:138","nodeType":"VariableDeclaration","scope":44826,"src":"35822:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44806,"name":"bool","nodeType":"ElementaryTypeName","src":"35822:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44809,"mutability":"mutable","name":"p2","nameLocation":"35839:2:138","nodeType":"VariableDeclaration","scope":44826,"src":"35831:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44808,"name":"uint256","nodeType":"ElementaryTypeName","src":"35831:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44811,"mutability":"mutable","name":"p3","nameLocation":"35851:2:138","nodeType":"VariableDeclaration","scope":44826,"src":"35843:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44810,"name":"address","nodeType":"ElementaryTypeName","src":"35843:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35803:51:138"},"returnParameters":{"id":44813,"nodeType":"ParameterList","parameters":[],"src":"35869:0:138"},"scope":48415,"src":"35791:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44848,"nodeType":"Block","src":"36056:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629","id":44840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36100:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},"value":"log(string,bool,string,uint256)"},{"id":44841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44828,"src":"36135:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44830,"src":"36139:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44832,"src":"36143:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44844,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44834,"src":"36147:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36076:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36076:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36076:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"36060:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36060:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44847,"nodeType":"ExpressionStatement","src":"36060:91:138"}]},"id":44849,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35981:3:138","nodeType":"FunctionDefinition","parameters":{"id":44835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44828,"mutability":"mutable","name":"p0","nameLocation":"35999:2:138","nodeType":"VariableDeclaration","scope":44849,"src":"35985:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44827,"name":"string","nodeType":"ElementaryTypeName","src":"35985:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44830,"mutability":"mutable","name":"p1","nameLocation":"36008:2:138","nodeType":"VariableDeclaration","scope":44849,"src":"36003:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44829,"name":"bool","nodeType":"ElementaryTypeName","src":"36003:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44832,"mutability":"mutable","name":"p2","nameLocation":"36026:2:138","nodeType":"VariableDeclaration","scope":44849,"src":"36012:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44831,"name":"string","nodeType":"ElementaryTypeName","src":"36012:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44834,"mutability":"mutable","name":"p3","nameLocation":"36038:2:138","nodeType":"VariableDeclaration","scope":44849,"src":"36030:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44833,"name":"uint256","nodeType":"ElementaryTypeName","src":"36030:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35984:57:138"},"returnParameters":{"id":44836,"nodeType":"ParameterList","parameters":[],"src":"36056:0:138"},"scope":48415,"src":"35972:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44871,"nodeType":"Block","src":"36248:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":44863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36292:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":44864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44851,"src":"36326:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"36330:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"36334:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44867,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"36338:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36268:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36268:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36268:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"36252:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36252:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44870,"nodeType":"ExpressionStatement","src":"36252:90:138"}]},"id":44872,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36167:3:138","nodeType":"FunctionDefinition","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44851,"mutability":"mutable","name":"p0","nameLocation":"36185:2:138","nodeType":"VariableDeclaration","scope":44872,"src":"36171:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44850,"name":"string","nodeType":"ElementaryTypeName","src":"36171:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44853,"mutability":"mutable","name":"p1","nameLocation":"36194:2:138","nodeType":"VariableDeclaration","scope":44872,"src":"36189:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44852,"name":"bool","nodeType":"ElementaryTypeName","src":"36189:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"p2","nameLocation":"36212:2:138","nodeType":"VariableDeclaration","scope":44872,"src":"36198:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44854,"name":"string","nodeType":"ElementaryTypeName","src":"36198:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"p3","nameLocation":"36230:2:138","nodeType":"VariableDeclaration","scope":44872,"src":"36216:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44856,"name":"string","nodeType":"ElementaryTypeName","src":"36216:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36170:63:138"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"36248:0:138"},"scope":48415,"src":"36158:188:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44894,"nodeType":"Block","src":"36430:96:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":44886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36474:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":44887,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44874,"src":"36506:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44888,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44876,"src":"36510:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44889,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"36514:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44890,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"36518:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36450:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36450:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36450:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44883,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"36434:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36434:88:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44893,"nodeType":"ExpressionStatement","src":"36434:88:138"}]},"id":44895,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36358:3:138","nodeType":"FunctionDefinition","parameters":{"id":44881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44874,"mutability":"mutable","name":"p0","nameLocation":"36376:2:138","nodeType":"VariableDeclaration","scope":44895,"src":"36362:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44873,"name":"string","nodeType":"ElementaryTypeName","src":"36362:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44876,"mutability":"mutable","name":"p1","nameLocation":"36385:2:138","nodeType":"VariableDeclaration","scope":44895,"src":"36380:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44875,"name":"bool","nodeType":"ElementaryTypeName","src":"36380:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44878,"mutability":"mutable","name":"p2","nameLocation":"36403:2:138","nodeType":"VariableDeclaration","scope":44895,"src":"36389:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44877,"name":"string","nodeType":"ElementaryTypeName","src":"36389:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44880,"mutability":"mutable","name":"p3","nameLocation":"36412:2:138","nodeType":"VariableDeclaration","scope":44895,"src":"36407:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44879,"name":"bool","nodeType":"ElementaryTypeName","src":"36407:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36361:54:138"},"returnParameters":{"id":44882,"nodeType":"ParameterList","parameters":[],"src":"36430:0:138"},"scope":48415,"src":"36349:177:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44917,"nodeType":"Block","src":"36613:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":44909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36657:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":44910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44897,"src":"36692:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44911,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44899,"src":"36696:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44912,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44901,"src":"36700:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44913,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44903,"src":"36704:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36633:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36633:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36633:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"36617:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36617:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44916,"nodeType":"ExpressionStatement","src":"36617:91:138"}]},"id":44918,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36538:3:138","nodeType":"FunctionDefinition","parameters":{"id":44904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44897,"mutability":"mutable","name":"p0","nameLocation":"36556:2:138","nodeType":"VariableDeclaration","scope":44918,"src":"36542:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44896,"name":"string","nodeType":"ElementaryTypeName","src":"36542:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44899,"mutability":"mutable","name":"p1","nameLocation":"36565:2:138","nodeType":"VariableDeclaration","scope":44918,"src":"36560:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44898,"name":"bool","nodeType":"ElementaryTypeName","src":"36560:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44901,"mutability":"mutable","name":"p2","nameLocation":"36583:2:138","nodeType":"VariableDeclaration","scope":44918,"src":"36569:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44900,"name":"string","nodeType":"ElementaryTypeName","src":"36569:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44903,"mutability":"mutable","name":"p3","nameLocation":"36595:2:138","nodeType":"VariableDeclaration","scope":44918,"src":"36587:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44902,"name":"address","nodeType":"ElementaryTypeName","src":"36587:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36541:57:138"},"returnParameters":{"id":44905,"nodeType":"ParameterList","parameters":[],"src":"36613:0:138"},"scope":48415,"src":"36529:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44940,"nodeType":"Block","src":"36790:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629","id":44932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36834:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},"value":"log(string,bool,bool,uint256)"},{"id":44933,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"36867:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44934,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"36871:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44935,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"36875:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44936,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44926,"src":"36879:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36810:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36810:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36810:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44929,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"36794:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36794:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44939,"nodeType":"ExpressionStatement","src":"36794:89:138"}]},"id":44941,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36724:3:138","nodeType":"FunctionDefinition","parameters":{"id":44927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"p0","nameLocation":"36742:2:138","nodeType":"VariableDeclaration","scope":44941,"src":"36728:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44919,"name":"string","nodeType":"ElementaryTypeName","src":"36728:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"p1","nameLocation":"36751:2:138","nodeType":"VariableDeclaration","scope":44941,"src":"36746:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44921,"name":"bool","nodeType":"ElementaryTypeName","src":"36746:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"p2","nameLocation":"36760:2:138","nodeType":"VariableDeclaration","scope":44941,"src":"36755:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44923,"name":"bool","nodeType":"ElementaryTypeName","src":"36755:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44926,"mutability":"mutable","name":"p3","nameLocation":"36772:2:138","nodeType":"VariableDeclaration","scope":44941,"src":"36764:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44925,"name":"uint256","nodeType":"ElementaryTypeName","src":"36764:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36727:48:138"},"returnParameters":{"id":44928,"nodeType":"ParameterList","parameters":[],"src":"36790:0:138"},"scope":48415,"src":"36715:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44963,"nodeType":"Block","src":"36971:96:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":44955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37015:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":44956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44943,"src":"37047:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44957,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44945,"src":"37051:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44958,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44947,"src":"37055:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44959,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44949,"src":"37059:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":44953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36991:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36991:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36991:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"36975:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36975:88:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44962,"nodeType":"ExpressionStatement","src":"36975:88:138"}]},"id":44964,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36899:3:138","nodeType":"FunctionDefinition","parameters":{"id":44950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44943,"mutability":"mutable","name":"p0","nameLocation":"36917:2:138","nodeType":"VariableDeclaration","scope":44964,"src":"36903:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44942,"name":"string","nodeType":"ElementaryTypeName","src":"36903:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44945,"mutability":"mutable","name":"p1","nameLocation":"36926:2:138","nodeType":"VariableDeclaration","scope":44964,"src":"36921:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44944,"name":"bool","nodeType":"ElementaryTypeName","src":"36921:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44947,"mutability":"mutable","name":"p2","nameLocation":"36935:2:138","nodeType":"VariableDeclaration","scope":44964,"src":"36930:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44946,"name":"bool","nodeType":"ElementaryTypeName","src":"36930:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44949,"mutability":"mutable","name":"p3","nameLocation":"36953:2:138","nodeType":"VariableDeclaration","scope":44964,"src":"36939:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44948,"name":"string","nodeType":"ElementaryTypeName","src":"36939:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36902:54:138"},"returnParameters":{"id":44951,"nodeType":"ParameterList","parameters":[],"src":"36971:0:138"},"scope":48415,"src":"36890:177:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":44986,"nodeType":"Block","src":"37142:94:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":44978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37186:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":44979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44966,"src":"37216:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":44980,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44968,"src":"37220:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44981,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44970,"src":"37224:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44982,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44972,"src":"37228:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":44976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37162:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37162:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":44983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37162:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"37146:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":44984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37146:86:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44985,"nodeType":"ExpressionStatement","src":"37146:86:138"}]},"id":44987,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37079:3:138","nodeType":"FunctionDefinition","parameters":{"id":44973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44966,"mutability":"mutable","name":"p0","nameLocation":"37097:2:138","nodeType":"VariableDeclaration","scope":44987,"src":"37083:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44965,"name":"string","nodeType":"ElementaryTypeName","src":"37083:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44968,"mutability":"mutable","name":"p1","nameLocation":"37106:2:138","nodeType":"VariableDeclaration","scope":44987,"src":"37101:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44967,"name":"bool","nodeType":"ElementaryTypeName","src":"37101:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44970,"mutability":"mutable","name":"p2","nameLocation":"37115:2:138","nodeType":"VariableDeclaration","scope":44987,"src":"37110:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44969,"name":"bool","nodeType":"ElementaryTypeName","src":"37110:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44972,"mutability":"mutable","name":"p3","nameLocation":"37124:2:138","nodeType":"VariableDeclaration","scope":44987,"src":"37119:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44971,"name":"bool","nodeType":"ElementaryTypeName","src":"37119:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37082:45:138"},"returnParameters":{"id":44974,"nodeType":"ParameterList","parameters":[],"src":"37142:0:138"},"scope":48415,"src":"37070:166:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45009,"nodeType":"Block","src":"37314:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":45001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37358:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":45002,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"37391:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45003,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44991,"src":"37395:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45004,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44993,"src":"37399:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45005,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44995,"src":"37403:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":44999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37334:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37334:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37334:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":44998,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"37318:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37318:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45008,"nodeType":"ExpressionStatement","src":"37318:89:138"}]},"id":45010,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37248:3:138","nodeType":"FunctionDefinition","parameters":{"id":44996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44989,"mutability":"mutable","name":"p0","nameLocation":"37266:2:138","nodeType":"VariableDeclaration","scope":45010,"src":"37252:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44988,"name":"string","nodeType":"ElementaryTypeName","src":"37252:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":44991,"mutability":"mutable","name":"p1","nameLocation":"37275:2:138","nodeType":"VariableDeclaration","scope":45010,"src":"37270:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44990,"name":"bool","nodeType":"ElementaryTypeName","src":"37270:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44993,"mutability":"mutable","name":"p2","nameLocation":"37284:2:138","nodeType":"VariableDeclaration","scope":45010,"src":"37279:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44992,"name":"bool","nodeType":"ElementaryTypeName","src":"37279:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44995,"mutability":"mutable","name":"p3","nameLocation":"37296:2:138","nodeType":"VariableDeclaration","scope":45010,"src":"37288:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44994,"name":"address","nodeType":"ElementaryTypeName","src":"37288:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37251:48:138"},"returnParameters":{"id":44997,"nodeType":"ParameterList","parameters":[],"src":"37314:0:138"},"scope":48415,"src":"37239:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45032,"nodeType":"Block","src":"37492:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629","id":45024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37536:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},"value":"log(string,bool,address,uint256)"},{"id":45025,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45012,"src":"37572:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45026,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45014,"src":"37576:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45027,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45016,"src":"37580:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45028,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45018,"src":"37584:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37512:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37512:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37512:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"37496:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37496:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45031,"nodeType":"ExpressionStatement","src":"37496:92:138"}]},"id":45033,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37423:3:138","nodeType":"FunctionDefinition","parameters":{"id":45019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45012,"mutability":"mutable","name":"p0","nameLocation":"37441:2:138","nodeType":"VariableDeclaration","scope":45033,"src":"37427:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45011,"name":"string","nodeType":"ElementaryTypeName","src":"37427:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45014,"mutability":"mutable","name":"p1","nameLocation":"37450:2:138","nodeType":"VariableDeclaration","scope":45033,"src":"37445:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45013,"name":"bool","nodeType":"ElementaryTypeName","src":"37445:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45016,"mutability":"mutable","name":"p2","nameLocation":"37462:2:138","nodeType":"VariableDeclaration","scope":45033,"src":"37454:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45015,"name":"address","nodeType":"ElementaryTypeName","src":"37454:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45018,"mutability":"mutable","name":"p3","nameLocation":"37474:2:138","nodeType":"VariableDeclaration","scope":45033,"src":"37466:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45017,"name":"uint256","nodeType":"ElementaryTypeName","src":"37466:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37426:51:138"},"returnParameters":{"id":45020,"nodeType":"ParameterList","parameters":[],"src":"37492:0:138"},"scope":48415,"src":"37414:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45055,"nodeType":"Block","src":"37679:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":45047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37723:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":45048,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45035,"src":"37758:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45049,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45037,"src":"37762:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45050,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45039,"src":"37766:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45051,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45041,"src":"37770:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45045,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37699:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37699:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37699:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45044,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"37683:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37683:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45054,"nodeType":"ExpressionStatement","src":"37683:91:138"}]},"id":45056,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37604:3:138","nodeType":"FunctionDefinition","parameters":{"id":45042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45035,"mutability":"mutable","name":"p0","nameLocation":"37622:2:138","nodeType":"VariableDeclaration","scope":45056,"src":"37608:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45034,"name":"string","nodeType":"ElementaryTypeName","src":"37608:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45037,"mutability":"mutable","name":"p1","nameLocation":"37631:2:138","nodeType":"VariableDeclaration","scope":45056,"src":"37626:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45036,"name":"bool","nodeType":"ElementaryTypeName","src":"37626:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45039,"mutability":"mutable","name":"p2","nameLocation":"37643:2:138","nodeType":"VariableDeclaration","scope":45056,"src":"37635:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45038,"name":"address","nodeType":"ElementaryTypeName","src":"37635:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45041,"mutability":"mutable","name":"p3","nameLocation":"37661:2:138","nodeType":"VariableDeclaration","scope":45056,"src":"37647:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45040,"name":"string","nodeType":"ElementaryTypeName","src":"37647:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37607:57:138"},"returnParameters":{"id":45043,"nodeType":"ParameterList","parameters":[],"src":"37679:0:138"},"scope":48415,"src":"37595:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45078,"nodeType":"Block","src":"37856:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":45070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37900:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":45071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45058,"src":"37933:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45072,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45060,"src":"37937:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45073,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45062,"src":"37941:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45074,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45064,"src":"37945:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37876:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37876:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37876:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"37860:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37860:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"37860:89:138"}]},"id":45079,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37790:3:138","nodeType":"FunctionDefinition","parameters":{"id":45065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45058,"mutability":"mutable","name":"p0","nameLocation":"37808:2:138","nodeType":"VariableDeclaration","scope":45079,"src":"37794:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45057,"name":"string","nodeType":"ElementaryTypeName","src":"37794:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45060,"mutability":"mutable","name":"p1","nameLocation":"37817:2:138","nodeType":"VariableDeclaration","scope":45079,"src":"37812:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45059,"name":"bool","nodeType":"ElementaryTypeName","src":"37812:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45062,"mutability":"mutable","name":"p2","nameLocation":"37829:2:138","nodeType":"VariableDeclaration","scope":45079,"src":"37821:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45061,"name":"address","nodeType":"ElementaryTypeName","src":"37821:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45064,"mutability":"mutable","name":"p3","nameLocation":"37838:2:138","nodeType":"VariableDeclaration","scope":45079,"src":"37833:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45063,"name":"bool","nodeType":"ElementaryTypeName","src":"37833:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37793:48:138"},"returnParameters":{"id":45066,"nodeType":"ParameterList","parameters":[],"src":"37856:0:138"},"scope":48415,"src":"37781:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45101,"nodeType":"Block","src":"38034:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":45093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38078:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":45094,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"38114:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45095,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45083,"src":"38118:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45096,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"38122:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45097,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"38126:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38054:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38054:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38054:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45090,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"38038:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38038:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45100,"nodeType":"ExpressionStatement","src":"38038:92:138"}]},"id":45102,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37965:3:138","nodeType":"FunctionDefinition","parameters":{"id":45088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45081,"mutability":"mutable","name":"p0","nameLocation":"37983:2:138","nodeType":"VariableDeclaration","scope":45102,"src":"37969:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45080,"name":"string","nodeType":"ElementaryTypeName","src":"37969:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45083,"mutability":"mutable","name":"p1","nameLocation":"37992:2:138","nodeType":"VariableDeclaration","scope":45102,"src":"37987:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45082,"name":"bool","nodeType":"ElementaryTypeName","src":"37987:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45085,"mutability":"mutable","name":"p2","nameLocation":"38004:2:138","nodeType":"VariableDeclaration","scope":45102,"src":"37996:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45084,"name":"address","nodeType":"ElementaryTypeName","src":"37996:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"p3","nameLocation":"38016:2:138","nodeType":"VariableDeclaration","scope":45102,"src":"38008:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"38008:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37968:51:138"},"returnParameters":{"id":45089,"nodeType":"ParameterList","parameters":[],"src":"38034:0:138"},"scope":48415,"src":"37956:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45124,"nodeType":"Block","src":"38218:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":45116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38262:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},"value":"log(string,address,uint256,uint256)"},{"id":45117,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45104,"src":"38301:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45118,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45106,"src":"38305:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45119,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45108,"src":"38309:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45120,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45110,"src":"38313:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38238:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38238:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38238:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45113,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"38222:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38222:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45123,"nodeType":"ExpressionStatement","src":"38222:95:138"}]},"id":45125,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38146:3:138","nodeType":"FunctionDefinition","parameters":{"id":45111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45104,"mutability":"mutable","name":"p0","nameLocation":"38164:2:138","nodeType":"VariableDeclaration","scope":45125,"src":"38150:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45103,"name":"string","nodeType":"ElementaryTypeName","src":"38150:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45106,"mutability":"mutable","name":"p1","nameLocation":"38176:2:138","nodeType":"VariableDeclaration","scope":45125,"src":"38168:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45105,"name":"address","nodeType":"ElementaryTypeName","src":"38168:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45108,"mutability":"mutable","name":"p2","nameLocation":"38188:2:138","nodeType":"VariableDeclaration","scope":45125,"src":"38180:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45107,"name":"uint256","nodeType":"ElementaryTypeName","src":"38180:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45110,"mutability":"mutable","name":"p3","nameLocation":"38200:2:138","nodeType":"VariableDeclaration","scope":45125,"src":"38192:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45109,"name":"uint256","nodeType":"ElementaryTypeName","src":"38192:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38149:54:138"},"returnParameters":{"id":45112,"nodeType":"ParameterList","parameters":[],"src":"38218:0:138"},"scope":48415,"src":"38137:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45147,"nodeType":"Block","src":"38411:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729","id":45139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38455:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},"value":"log(string,address,uint256,string)"},{"id":45140,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45127,"src":"38493:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45141,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45129,"src":"38497:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45142,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45131,"src":"38501:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45143,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45133,"src":"38505:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38431:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38431:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38431:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45136,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"38415:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38415:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45146,"nodeType":"ExpressionStatement","src":"38415:94:138"}]},"id":45148,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38333:3:138","nodeType":"FunctionDefinition","parameters":{"id":45134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45127,"mutability":"mutable","name":"p0","nameLocation":"38351:2:138","nodeType":"VariableDeclaration","scope":45148,"src":"38337:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45126,"name":"string","nodeType":"ElementaryTypeName","src":"38337:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45129,"mutability":"mutable","name":"p1","nameLocation":"38363:2:138","nodeType":"VariableDeclaration","scope":45148,"src":"38355:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45128,"name":"address","nodeType":"ElementaryTypeName","src":"38355:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45131,"mutability":"mutable","name":"p2","nameLocation":"38375:2:138","nodeType":"VariableDeclaration","scope":45148,"src":"38367:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45130,"name":"uint256","nodeType":"ElementaryTypeName","src":"38367:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45133,"mutability":"mutable","name":"p3","nameLocation":"38393:2:138","nodeType":"VariableDeclaration","scope":45148,"src":"38379:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45132,"name":"string","nodeType":"ElementaryTypeName","src":"38379:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38336:60:138"},"returnParameters":{"id":45135,"nodeType":"ParameterList","parameters":[],"src":"38411:0:138"},"scope":48415,"src":"38324:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45170,"nodeType":"Block","src":"38594:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29","id":45162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38638:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},"value":"log(string,address,uint256,bool)"},{"id":45163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"38674:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45152,"src":"38678:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45154,"src":"38682:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45166,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45156,"src":"38686:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38614:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38614:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38614:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"38598:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38598:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45169,"nodeType":"ExpressionStatement","src":"38598:92:138"}]},"id":45171,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38525:3:138","nodeType":"FunctionDefinition","parameters":{"id":45157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45150,"mutability":"mutable","name":"p0","nameLocation":"38543:2:138","nodeType":"VariableDeclaration","scope":45171,"src":"38529:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45149,"name":"string","nodeType":"ElementaryTypeName","src":"38529:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45152,"mutability":"mutable","name":"p1","nameLocation":"38555:2:138","nodeType":"VariableDeclaration","scope":45171,"src":"38547:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45151,"name":"address","nodeType":"ElementaryTypeName","src":"38547:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45154,"mutability":"mutable","name":"p2","nameLocation":"38567:2:138","nodeType":"VariableDeclaration","scope":45171,"src":"38559:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45153,"name":"uint256","nodeType":"ElementaryTypeName","src":"38559:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45156,"mutability":"mutable","name":"p3","nameLocation":"38576:2:138","nodeType":"VariableDeclaration","scope":45171,"src":"38571:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45155,"name":"bool","nodeType":"ElementaryTypeName","src":"38571:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38528:51:138"},"returnParameters":{"id":45158,"nodeType":"ParameterList","parameters":[],"src":"38594:0:138"},"scope":48415,"src":"38516:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45193,"nodeType":"Block","src":"38778:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329","id":45185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38822:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},"value":"log(string,address,uint256,address)"},{"id":45186,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45173,"src":"38861:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45187,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"38865:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45188,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"38869:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45189,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45179,"src":"38873:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38798:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38798:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38798:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45182,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"38782:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38782:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"38782:95:138"}]},"id":45194,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38706:3:138","nodeType":"FunctionDefinition","parameters":{"id":45180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45173,"mutability":"mutable","name":"p0","nameLocation":"38724:2:138","nodeType":"VariableDeclaration","scope":45194,"src":"38710:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45172,"name":"string","nodeType":"ElementaryTypeName","src":"38710:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45175,"mutability":"mutable","name":"p1","nameLocation":"38736:2:138","nodeType":"VariableDeclaration","scope":45194,"src":"38728:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45174,"name":"address","nodeType":"ElementaryTypeName","src":"38728:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45177,"mutability":"mutable","name":"p2","nameLocation":"38748:2:138","nodeType":"VariableDeclaration","scope":45194,"src":"38740:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45176,"name":"uint256","nodeType":"ElementaryTypeName","src":"38740:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45179,"mutability":"mutable","name":"p3","nameLocation":"38760:2:138","nodeType":"VariableDeclaration","scope":45194,"src":"38752:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45178,"name":"address","nodeType":"ElementaryTypeName","src":"38752:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38709:54:138"},"returnParameters":{"id":45181,"nodeType":"ParameterList","parameters":[],"src":"38778:0:138"},"scope":48415,"src":"38697:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45216,"nodeType":"Block","src":"38971:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629","id":45208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39015:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},"value":"log(string,address,string,uint256)"},{"id":45209,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45196,"src":"39053:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45210,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45198,"src":"39057:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45211,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45200,"src":"39061:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45212,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45202,"src":"39065:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38991:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38991:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38991:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45205,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"38975:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38975:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45215,"nodeType":"ExpressionStatement","src":"38975:94:138"}]},"id":45217,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38893:3:138","nodeType":"FunctionDefinition","parameters":{"id":45203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45196,"mutability":"mutable","name":"p0","nameLocation":"38911:2:138","nodeType":"VariableDeclaration","scope":45217,"src":"38897:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45195,"name":"string","nodeType":"ElementaryTypeName","src":"38897:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45198,"mutability":"mutable","name":"p1","nameLocation":"38923:2:138","nodeType":"VariableDeclaration","scope":45217,"src":"38915:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45197,"name":"address","nodeType":"ElementaryTypeName","src":"38915:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45200,"mutability":"mutable","name":"p2","nameLocation":"38941:2:138","nodeType":"VariableDeclaration","scope":45217,"src":"38927:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45199,"name":"string","nodeType":"ElementaryTypeName","src":"38927:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45202,"mutability":"mutable","name":"p3","nameLocation":"38953:2:138","nodeType":"VariableDeclaration","scope":45217,"src":"38945:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45201,"name":"uint256","nodeType":"ElementaryTypeName","src":"38945:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38896:60:138"},"returnParameters":{"id":45204,"nodeType":"ParameterList","parameters":[],"src":"38971:0:138"},"scope":48415,"src":"38884:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45239,"nodeType":"Block","src":"39169:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":45231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39213:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":45232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45219,"src":"39250:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45233,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45221,"src":"39254:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45234,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45223,"src":"39258:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45235,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45225,"src":"39262:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39189:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39189:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39189:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"39173:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39173:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45238,"nodeType":"ExpressionStatement","src":"39173:93:138"}]},"id":45240,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39085:3:138","nodeType":"FunctionDefinition","parameters":{"id":45226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45219,"mutability":"mutable","name":"p0","nameLocation":"39103:2:138","nodeType":"VariableDeclaration","scope":45240,"src":"39089:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45218,"name":"string","nodeType":"ElementaryTypeName","src":"39089:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45221,"mutability":"mutable","name":"p1","nameLocation":"39115:2:138","nodeType":"VariableDeclaration","scope":45240,"src":"39107:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45220,"name":"address","nodeType":"ElementaryTypeName","src":"39107:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45223,"mutability":"mutable","name":"p2","nameLocation":"39133:2:138","nodeType":"VariableDeclaration","scope":45240,"src":"39119:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45222,"name":"string","nodeType":"ElementaryTypeName","src":"39119:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45225,"mutability":"mutable","name":"p3","nameLocation":"39151:2:138","nodeType":"VariableDeclaration","scope":45240,"src":"39137:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45224,"name":"string","nodeType":"ElementaryTypeName","src":"39137:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39088:66:138"},"returnParameters":{"id":45227,"nodeType":"ParameterList","parameters":[],"src":"39169:0:138"},"scope":48415,"src":"39076:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45262,"nodeType":"Block","src":"39357:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":45254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39401:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":45255,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45242,"src":"39436:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45256,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45244,"src":"39440:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45257,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"39444:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45258,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45248,"src":"39448:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45252,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39377:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39377:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39377:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45251,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"39361:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39361:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45261,"nodeType":"ExpressionStatement","src":"39361:91:138"}]},"id":45263,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39282:3:138","nodeType":"FunctionDefinition","parameters":{"id":45249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45242,"mutability":"mutable","name":"p0","nameLocation":"39300:2:138","nodeType":"VariableDeclaration","scope":45263,"src":"39286:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45241,"name":"string","nodeType":"ElementaryTypeName","src":"39286:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45244,"mutability":"mutable","name":"p1","nameLocation":"39312:2:138","nodeType":"VariableDeclaration","scope":45263,"src":"39304:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45243,"name":"address","nodeType":"ElementaryTypeName","src":"39304:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45246,"mutability":"mutable","name":"p2","nameLocation":"39330:2:138","nodeType":"VariableDeclaration","scope":45263,"src":"39316:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45245,"name":"string","nodeType":"ElementaryTypeName","src":"39316:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45248,"mutability":"mutable","name":"p3","nameLocation":"39339:2:138","nodeType":"VariableDeclaration","scope":45263,"src":"39334:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45247,"name":"bool","nodeType":"ElementaryTypeName","src":"39334:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39285:57:138"},"returnParameters":{"id":45250,"nodeType":"ParameterList","parameters":[],"src":"39357:0:138"},"scope":48415,"src":"39273:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45285,"nodeType":"Block","src":"39546:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":45277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39590:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":45278,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45265,"src":"39628:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45279,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45267,"src":"39632:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45269,"src":"39636:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45281,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45271,"src":"39640:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45275,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39566:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39566:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39566:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45274,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"39550:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39550:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45284,"nodeType":"ExpressionStatement","src":"39550:94:138"}]},"id":45286,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39468:3:138","nodeType":"FunctionDefinition","parameters":{"id":45272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45265,"mutability":"mutable","name":"p0","nameLocation":"39486:2:138","nodeType":"VariableDeclaration","scope":45286,"src":"39472:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45264,"name":"string","nodeType":"ElementaryTypeName","src":"39472:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45267,"mutability":"mutable","name":"p1","nameLocation":"39498:2:138","nodeType":"VariableDeclaration","scope":45286,"src":"39490:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45266,"name":"address","nodeType":"ElementaryTypeName","src":"39490:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45269,"mutability":"mutable","name":"p2","nameLocation":"39516:2:138","nodeType":"VariableDeclaration","scope":45286,"src":"39502:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45268,"name":"string","nodeType":"ElementaryTypeName","src":"39502:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45271,"mutability":"mutable","name":"p3","nameLocation":"39528:2:138","nodeType":"VariableDeclaration","scope":45286,"src":"39520:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45270,"name":"address","nodeType":"ElementaryTypeName","src":"39520:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39471:60:138"},"returnParameters":{"id":45273,"nodeType":"ParameterList","parameters":[],"src":"39546:0:138"},"scope":48415,"src":"39459:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45308,"nodeType":"Block","src":"39729:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629","id":45300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39773:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},"value":"log(string,address,bool,uint256)"},{"id":45301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45288,"src":"39809:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45290,"src":"39813:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"39817:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45304,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"39821:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39749:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39749:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39749:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"39733:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39733:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45307,"nodeType":"ExpressionStatement","src":"39733:92:138"}]},"id":45309,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39660:3:138","nodeType":"FunctionDefinition","parameters":{"id":45295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45288,"mutability":"mutable","name":"p0","nameLocation":"39678:2:138","nodeType":"VariableDeclaration","scope":45309,"src":"39664:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45287,"name":"string","nodeType":"ElementaryTypeName","src":"39664:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45290,"mutability":"mutable","name":"p1","nameLocation":"39690:2:138","nodeType":"VariableDeclaration","scope":45309,"src":"39682:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45289,"name":"address","nodeType":"ElementaryTypeName","src":"39682:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45292,"mutability":"mutable","name":"p2","nameLocation":"39699:2:138","nodeType":"VariableDeclaration","scope":45309,"src":"39694:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45291,"name":"bool","nodeType":"ElementaryTypeName","src":"39694:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45294,"mutability":"mutable","name":"p3","nameLocation":"39711:2:138","nodeType":"VariableDeclaration","scope":45309,"src":"39703:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45293,"name":"uint256","nodeType":"ElementaryTypeName","src":"39703:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39663:51:138"},"returnParameters":{"id":45296,"nodeType":"ParameterList","parameters":[],"src":"39729:0:138"},"scope":48415,"src":"39651:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45331,"nodeType":"Block","src":"39916:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":45323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39960:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":45324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45311,"src":"39995:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"39999:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45315,"src":"40003:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45327,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45317,"src":"40007:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39936:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39936:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39936:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"39920:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39920:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45330,"nodeType":"ExpressionStatement","src":"39920:91:138"}]},"id":45332,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39841:3:138","nodeType":"FunctionDefinition","parameters":{"id":45318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45311,"mutability":"mutable","name":"p0","nameLocation":"39859:2:138","nodeType":"VariableDeclaration","scope":45332,"src":"39845:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45310,"name":"string","nodeType":"ElementaryTypeName","src":"39845:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45313,"mutability":"mutable","name":"p1","nameLocation":"39871:2:138","nodeType":"VariableDeclaration","scope":45332,"src":"39863:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45312,"name":"address","nodeType":"ElementaryTypeName","src":"39863:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45315,"mutability":"mutable","name":"p2","nameLocation":"39880:2:138","nodeType":"VariableDeclaration","scope":45332,"src":"39875:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45314,"name":"bool","nodeType":"ElementaryTypeName","src":"39875:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45317,"mutability":"mutable","name":"p3","nameLocation":"39898:2:138","nodeType":"VariableDeclaration","scope":45332,"src":"39884:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45316,"name":"string","nodeType":"ElementaryTypeName","src":"39884:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39844:57:138"},"returnParameters":{"id":45319,"nodeType":"ParameterList","parameters":[],"src":"39916:0:138"},"scope":48415,"src":"39832:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45354,"nodeType":"Block","src":"40093:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":45346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40137:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":45347,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45334,"src":"40170:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45348,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45336,"src":"40174:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45349,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"40178:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45350,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45340,"src":"40182:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45344,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40113:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40113:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40113:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45343,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"40097:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40097:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45353,"nodeType":"ExpressionStatement","src":"40097:89:138"}]},"id":45355,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40027:3:138","nodeType":"FunctionDefinition","parameters":{"id":45341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"p0","nameLocation":"40045:2:138","nodeType":"VariableDeclaration","scope":45355,"src":"40031:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45333,"name":"string","nodeType":"ElementaryTypeName","src":"40031:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45336,"mutability":"mutable","name":"p1","nameLocation":"40057:2:138","nodeType":"VariableDeclaration","scope":45355,"src":"40049:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45335,"name":"address","nodeType":"ElementaryTypeName","src":"40049:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45338,"mutability":"mutable","name":"p2","nameLocation":"40066:2:138","nodeType":"VariableDeclaration","scope":45355,"src":"40061:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45337,"name":"bool","nodeType":"ElementaryTypeName","src":"40061:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45340,"mutability":"mutable","name":"p3","nameLocation":"40075:2:138","nodeType":"VariableDeclaration","scope":45355,"src":"40070:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45339,"name":"bool","nodeType":"ElementaryTypeName","src":"40070:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40030:48:138"},"returnParameters":{"id":45342,"nodeType":"ParameterList","parameters":[],"src":"40093:0:138"},"scope":48415,"src":"40018:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45377,"nodeType":"Block","src":"40271:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":45369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40315:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":45370,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45357,"src":"40351:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45371,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45359,"src":"40355:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45372,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45361,"src":"40359:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45373,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45363,"src":"40363:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40291:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40291:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40291:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45366,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"40275:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40275:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45376,"nodeType":"ExpressionStatement","src":"40275:92:138"}]},"id":45378,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40202:3:138","nodeType":"FunctionDefinition","parameters":{"id":45364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45357,"mutability":"mutable","name":"p0","nameLocation":"40220:2:138","nodeType":"VariableDeclaration","scope":45378,"src":"40206:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45356,"name":"string","nodeType":"ElementaryTypeName","src":"40206:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45359,"mutability":"mutable","name":"p1","nameLocation":"40232:2:138","nodeType":"VariableDeclaration","scope":45378,"src":"40224:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45358,"name":"address","nodeType":"ElementaryTypeName","src":"40224:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45361,"mutability":"mutable","name":"p2","nameLocation":"40241:2:138","nodeType":"VariableDeclaration","scope":45378,"src":"40236:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45360,"name":"bool","nodeType":"ElementaryTypeName","src":"40236:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45363,"mutability":"mutable","name":"p3","nameLocation":"40253:2:138","nodeType":"VariableDeclaration","scope":45378,"src":"40245:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45362,"name":"address","nodeType":"ElementaryTypeName","src":"40245:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40205:51:138"},"returnParameters":{"id":45365,"nodeType":"ParameterList","parameters":[],"src":"40271:0:138"},"scope":48415,"src":"40193:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45400,"nodeType":"Block","src":"40455:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629","id":45392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40499:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},"value":"log(string,address,address,uint256)"},{"id":45393,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45380,"src":"40538:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45394,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45382,"src":"40542:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45395,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45384,"src":"40546:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45396,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45386,"src":"40550:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40475:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40475:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40475:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45389,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"40459:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40459:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45399,"nodeType":"ExpressionStatement","src":"40459:95:138"}]},"id":45401,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40383:3:138","nodeType":"FunctionDefinition","parameters":{"id":45387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45380,"mutability":"mutable","name":"p0","nameLocation":"40401:2:138","nodeType":"VariableDeclaration","scope":45401,"src":"40387:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45379,"name":"string","nodeType":"ElementaryTypeName","src":"40387:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45382,"mutability":"mutable","name":"p1","nameLocation":"40413:2:138","nodeType":"VariableDeclaration","scope":45401,"src":"40405:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45381,"name":"address","nodeType":"ElementaryTypeName","src":"40405:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45384,"mutability":"mutable","name":"p2","nameLocation":"40425:2:138","nodeType":"VariableDeclaration","scope":45401,"src":"40417:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45383,"name":"address","nodeType":"ElementaryTypeName","src":"40417:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45386,"mutability":"mutable","name":"p3","nameLocation":"40437:2:138","nodeType":"VariableDeclaration","scope":45401,"src":"40429:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45385,"name":"uint256","nodeType":"ElementaryTypeName","src":"40429:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40386:54:138"},"returnParameters":{"id":45388,"nodeType":"ParameterList","parameters":[],"src":"40455:0:138"},"scope":48415,"src":"40374:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45423,"nodeType":"Block","src":"40648:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":45415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40692:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":45416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45403,"src":"40730:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45405,"src":"40734:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45407,"src":"40738:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45419,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45409,"src":"40742:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40668:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40668:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40668:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"40652:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40652:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45422,"nodeType":"ExpressionStatement","src":"40652:94:138"}]},"id":45424,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40570:3:138","nodeType":"FunctionDefinition","parameters":{"id":45410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45403,"mutability":"mutable","name":"p0","nameLocation":"40588:2:138","nodeType":"VariableDeclaration","scope":45424,"src":"40574:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45402,"name":"string","nodeType":"ElementaryTypeName","src":"40574:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45405,"mutability":"mutable","name":"p1","nameLocation":"40600:2:138","nodeType":"VariableDeclaration","scope":45424,"src":"40592:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45404,"name":"address","nodeType":"ElementaryTypeName","src":"40592:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45407,"mutability":"mutable","name":"p2","nameLocation":"40612:2:138","nodeType":"VariableDeclaration","scope":45424,"src":"40604:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45406,"name":"address","nodeType":"ElementaryTypeName","src":"40604:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45409,"mutability":"mutable","name":"p3","nameLocation":"40630:2:138","nodeType":"VariableDeclaration","scope":45424,"src":"40616:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45408,"name":"string","nodeType":"ElementaryTypeName","src":"40616:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40573:60:138"},"returnParameters":{"id":45411,"nodeType":"ParameterList","parameters":[],"src":"40648:0:138"},"scope":48415,"src":"40561:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45446,"nodeType":"Block","src":"40831:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":45438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40875:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":45439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45426,"src":"40911:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45428,"src":"40915:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45430,"src":"40919:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45442,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45432,"src":"40923:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40851:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40851:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40851:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"40835:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40835:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45445,"nodeType":"ExpressionStatement","src":"40835:92:138"}]},"id":45447,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40762:3:138","nodeType":"FunctionDefinition","parameters":{"id":45433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45426,"mutability":"mutable","name":"p0","nameLocation":"40780:2:138","nodeType":"VariableDeclaration","scope":45447,"src":"40766:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45425,"name":"string","nodeType":"ElementaryTypeName","src":"40766:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45428,"mutability":"mutable","name":"p1","nameLocation":"40792:2:138","nodeType":"VariableDeclaration","scope":45447,"src":"40784:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45427,"name":"address","nodeType":"ElementaryTypeName","src":"40784:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45430,"mutability":"mutable","name":"p2","nameLocation":"40804:2:138","nodeType":"VariableDeclaration","scope":45447,"src":"40796:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45429,"name":"address","nodeType":"ElementaryTypeName","src":"40796:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45432,"mutability":"mutable","name":"p3","nameLocation":"40813:2:138","nodeType":"VariableDeclaration","scope":45447,"src":"40808:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45431,"name":"bool","nodeType":"ElementaryTypeName","src":"40808:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40765:51:138"},"returnParameters":{"id":45434,"nodeType":"ParameterList","parameters":[],"src":"40831:0:138"},"scope":48415,"src":"40753:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45469,"nodeType":"Block","src":"41015:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":45461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41059:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":45462,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45449,"src":"41098:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45463,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45451,"src":"41102:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45464,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45453,"src":"41106:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45465,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45455,"src":"41110:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41035:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41035:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41035:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45458,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"41019:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41019:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45468,"nodeType":"ExpressionStatement","src":"41019:95:138"}]},"id":45470,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40943:3:138","nodeType":"FunctionDefinition","parameters":{"id":45456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45449,"mutability":"mutable","name":"p0","nameLocation":"40961:2:138","nodeType":"VariableDeclaration","scope":45470,"src":"40947:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45448,"name":"string","nodeType":"ElementaryTypeName","src":"40947:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45451,"mutability":"mutable","name":"p1","nameLocation":"40973:2:138","nodeType":"VariableDeclaration","scope":45470,"src":"40965:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45450,"name":"address","nodeType":"ElementaryTypeName","src":"40965:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45453,"mutability":"mutable","name":"p2","nameLocation":"40985:2:138","nodeType":"VariableDeclaration","scope":45470,"src":"40977:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45452,"name":"address","nodeType":"ElementaryTypeName","src":"40977:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45455,"mutability":"mutable","name":"p3","nameLocation":"40997:2:138","nodeType":"VariableDeclaration","scope":45470,"src":"40989:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45454,"name":"address","nodeType":"ElementaryTypeName","src":"40989:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40946:54:138"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[],"src":"41015:0:138"},"scope":48415,"src":"40934:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45492,"nodeType":"Block","src":"41193:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629","id":45484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41237:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},"value":"log(bool,uint256,uint256,uint256)"},{"id":45485,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45472,"src":"41274:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45486,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45474,"src":"41278:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45487,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45476,"src":"41282:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45488,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45478,"src":"41286:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45482,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41213:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41213:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41213:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45481,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"41197:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41197:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45491,"nodeType":"ExpressionStatement","src":"41197:93:138"}]},"id":45493,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41130:3:138","nodeType":"FunctionDefinition","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45472,"mutability":"mutable","name":"p0","nameLocation":"41139:2:138","nodeType":"VariableDeclaration","scope":45493,"src":"41134:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45471,"name":"bool","nodeType":"ElementaryTypeName","src":"41134:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45474,"mutability":"mutable","name":"p1","nameLocation":"41151:2:138","nodeType":"VariableDeclaration","scope":45493,"src":"41143:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45473,"name":"uint256","nodeType":"ElementaryTypeName","src":"41143:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45476,"mutability":"mutable","name":"p2","nameLocation":"41163:2:138","nodeType":"VariableDeclaration","scope":45493,"src":"41155:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45475,"name":"uint256","nodeType":"ElementaryTypeName","src":"41155:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45478,"mutability":"mutable","name":"p3","nameLocation":"41175:2:138","nodeType":"VariableDeclaration","scope":45493,"src":"41167:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45477,"name":"uint256","nodeType":"ElementaryTypeName","src":"41167:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41133:45:138"},"returnParameters":{"id":45480,"nodeType":"ParameterList","parameters":[],"src":"41193:0:138"},"scope":48415,"src":"41121:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45515,"nodeType":"Block","src":"41375:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729","id":45507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41419:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},"value":"log(bool,uint256,uint256,string)"},{"id":45508,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45495,"src":"41455:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45509,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45497,"src":"41459:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45510,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45499,"src":"41463:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45511,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45501,"src":"41467:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41395:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41395:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41395:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45504,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"41379:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41379:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45514,"nodeType":"ExpressionStatement","src":"41379:92:138"}]},"id":45516,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41306:3:138","nodeType":"FunctionDefinition","parameters":{"id":45502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45495,"mutability":"mutable","name":"p0","nameLocation":"41315:2:138","nodeType":"VariableDeclaration","scope":45516,"src":"41310:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45494,"name":"bool","nodeType":"ElementaryTypeName","src":"41310:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45497,"mutability":"mutable","name":"p1","nameLocation":"41327:2:138","nodeType":"VariableDeclaration","scope":45516,"src":"41319:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45496,"name":"uint256","nodeType":"ElementaryTypeName","src":"41319:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45499,"mutability":"mutable","name":"p2","nameLocation":"41339:2:138","nodeType":"VariableDeclaration","scope":45516,"src":"41331:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"41331:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45501,"mutability":"mutable","name":"p3","nameLocation":"41357:2:138","nodeType":"VariableDeclaration","scope":45516,"src":"41343:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45500,"name":"string","nodeType":"ElementaryTypeName","src":"41343:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41309:51:138"},"returnParameters":{"id":45503,"nodeType":"ParameterList","parameters":[],"src":"41375:0:138"},"scope":48415,"src":"41297:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45538,"nodeType":"Block","src":"41547:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29","id":45530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41591:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},"value":"log(bool,uint256,uint256,bool)"},{"id":45531,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45518,"src":"41625:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45532,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45520,"src":"41629:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45533,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45522,"src":"41633:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45534,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"41637:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45528,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41567:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41567:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41567:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45527,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"41551:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41551:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45537,"nodeType":"ExpressionStatement","src":"41551:90:138"}]},"id":45539,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41487:3:138","nodeType":"FunctionDefinition","parameters":{"id":45525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45518,"mutability":"mutable","name":"p0","nameLocation":"41496:2:138","nodeType":"VariableDeclaration","scope":45539,"src":"41491:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45517,"name":"bool","nodeType":"ElementaryTypeName","src":"41491:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45520,"mutability":"mutable","name":"p1","nameLocation":"41508:2:138","nodeType":"VariableDeclaration","scope":45539,"src":"41500:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"41500:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45522,"mutability":"mutable","name":"p2","nameLocation":"41520:2:138","nodeType":"VariableDeclaration","scope":45539,"src":"41512:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45521,"name":"uint256","nodeType":"ElementaryTypeName","src":"41512:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45524,"mutability":"mutable","name":"p3","nameLocation":"41529:2:138","nodeType":"VariableDeclaration","scope":45539,"src":"41524:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45523,"name":"bool","nodeType":"ElementaryTypeName","src":"41524:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41490:42:138"},"returnParameters":{"id":45526,"nodeType":"ParameterList","parameters":[],"src":"41547:0:138"},"scope":48415,"src":"41478:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45561,"nodeType":"Block","src":"41720:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329","id":45553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41764:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},"value":"log(bool,uint256,uint256,address)"},{"id":45554,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45541,"src":"41801:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45555,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"41805:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45556,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"41809:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45557,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"41813:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45551,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41740:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41740:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41740:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45550,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"41724:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41724:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"41724:93:138"}]},"id":45562,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41657:3:138","nodeType":"FunctionDefinition","parameters":{"id":45548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45541,"mutability":"mutable","name":"p0","nameLocation":"41666:2:138","nodeType":"VariableDeclaration","scope":45562,"src":"41661:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45540,"name":"bool","nodeType":"ElementaryTypeName","src":"41661:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45543,"mutability":"mutable","name":"p1","nameLocation":"41678:2:138","nodeType":"VariableDeclaration","scope":45562,"src":"41670:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45542,"name":"uint256","nodeType":"ElementaryTypeName","src":"41670:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45545,"mutability":"mutable","name":"p2","nameLocation":"41690:2:138","nodeType":"VariableDeclaration","scope":45562,"src":"41682:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45544,"name":"uint256","nodeType":"ElementaryTypeName","src":"41682:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45547,"mutability":"mutable","name":"p3","nameLocation":"41702:2:138","nodeType":"VariableDeclaration","scope":45562,"src":"41694:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45546,"name":"address","nodeType":"ElementaryTypeName","src":"41694:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41660:45:138"},"returnParameters":{"id":45549,"nodeType":"ParameterList","parameters":[],"src":"41720:0:138"},"scope":48415,"src":"41648:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45584,"nodeType":"Block","src":"41902:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629","id":45576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41946:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},"value":"log(bool,uint256,string,uint256)"},{"id":45577,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45564,"src":"41982:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45578,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45566,"src":"41986:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45579,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45568,"src":"41990:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45580,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45570,"src":"41994:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41922:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41922:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41922:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45573,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"41906:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41906:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45583,"nodeType":"ExpressionStatement","src":"41906:92:138"}]},"id":45585,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41833:3:138","nodeType":"FunctionDefinition","parameters":{"id":45571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45564,"mutability":"mutable","name":"p0","nameLocation":"41842:2:138","nodeType":"VariableDeclaration","scope":45585,"src":"41837:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45563,"name":"bool","nodeType":"ElementaryTypeName","src":"41837:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45566,"mutability":"mutable","name":"p1","nameLocation":"41854:2:138","nodeType":"VariableDeclaration","scope":45585,"src":"41846:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45565,"name":"uint256","nodeType":"ElementaryTypeName","src":"41846:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45568,"mutability":"mutable","name":"p2","nameLocation":"41872:2:138","nodeType":"VariableDeclaration","scope":45585,"src":"41858:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45567,"name":"string","nodeType":"ElementaryTypeName","src":"41858:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45570,"mutability":"mutable","name":"p3","nameLocation":"41884:2:138","nodeType":"VariableDeclaration","scope":45585,"src":"41876:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45569,"name":"uint256","nodeType":"ElementaryTypeName","src":"41876:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41836:51:138"},"returnParameters":{"id":45572,"nodeType":"ParameterList","parameters":[],"src":"41902:0:138"},"scope":48415,"src":"41824:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45607,"nodeType":"Block","src":"42089:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729","id":45599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42133:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},"value":"log(bool,uint256,string,string)"},{"id":45600,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45587,"src":"42168:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45601,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45589,"src":"42172:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45602,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"42176:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45603,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45593,"src":"42180:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42109:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42109:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42109:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"42093:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42093:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45606,"nodeType":"ExpressionStatement","src":"42093:91:138"}]},"id":45608,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42014:3:138","nodeType":"FunctionDefinition","parameters":{"id":45594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45587,"mutability":"mutable","name":"p0","nameLocation":"42023:2:138","nodeType":"VariableDeclaration","scope":45608,"src":"42018:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45586,"name":"bool","nodeType":"ElementaryTypeName","src":"42018:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45589,"mutability":"mutable","name":"p1","nameLocation":"42035:2:138","nodeType":"VariableDeclaration","scope":45608,"src":"42027:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45588,"name":"uint256","nodeType":"ElementaryTypeName","src":"42027:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45591,"mutability":"mutable","name":"p2","nameLocation":"42053:2:138","nodeType":"VariableDeclaration","scope":45608,"src":"42039:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45590,"name":"string","nodeType":"ElementaryTypeName","src":"42039:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45593,"mutability":"mutable","name":"p3","nameLocation":"42071:2:138","nodeType":"VariableDeclaration","scope":45608,"src":"42057:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45592,"name":"string","nodeType":"ElementaryTypeName","src":"42057:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42017:57:138"},"returnParameters":{"id":45595,"nodeType":"ParameterList","parameters":[],"src":"42089:0:138"},"scope":48415,"src":"42005:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45630,"nodeType":"Block","src":"42266:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29","id":45622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42310:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},"value":"log(bool,uint256,string,bool)"},{"id":45623,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45610,"src":"42343:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45624,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45612,"src":"42347:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45625,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45614,"src":"42351:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45626,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45616,"src":"42355:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42286:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42286:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42286:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"42270:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42270:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45629,"nodeType":"ExpressionStatement","src":"42270:89:138"}]},"id":45631,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42200:3:138","nodeType":"FunctionDefinition","parameters":{"id":45617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45610,"mutability":"mutable","name":"p0","nameLocation":"42209:2:138","nodeType":"VariableDeclaration","scope":45631,"src":"42204:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45609,"name":"bool","nodeType":"ElementaryTypeName","src":"42204:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45612,"mutability":"mutable","name":"p1","nameLocation":"42221:2:138","nodeType":"VariableDeclaration","scope":45631,"src":"42213:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45611,"name":"uint256","nodeType":"ElementaryTypeName","src":"42213:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45614,"mutability":"mutable","name":"p2","nameLocation":"42239:2:138","nodeType":"VariableDeclaration","scope":45631,"src":"42225:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45613,"name":"string","nodeType":"ElementaryTypeName","src":"42225:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45616,"mutability":"mutable","name":"p3","nameLocation":"42248:2:138","nodeType":"VariableDeclaration","scope":45631,"src":"42243:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45615,"name":"bool","nodeType":"ElementaryTypeName","src":"42243:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42203:48:138"},"returnParameters":{"id":45618,"nodeType":"ParameterList","parameters":[],"src":"42266:0:138"},"scope":48415,"src":"42191:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45653,"nodeType":"Block","src":"42444:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329","id":45645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42488:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},"value":"log(bool,uint256,string,address)"},{"id":45646,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"42524:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45647,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45635,"src":"42528:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45648,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45637,"src":"42532:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45649,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45639,"src":"42536:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45643,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42464:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42464:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42464:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45642,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"42448:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42448:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45652,"nodeType":"ExpressionStatement","src":"42448:92:138"}]},"id":45654,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42375:3:138","nodeType":"FunctionDefinition","parameters":{"id":45640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45633,"mutability":"mutable","name":"p0","nameLocation":"42384:2:138","nodeType":"VariableDeclaration","scope":45654,"src":"42379:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45632,"name":"bool","nodeType":"ElementaryTypeName","src":"42379:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45635,"mutability":"mutable","name":"p1","nameLocation":"42396:2:138","nodeType":"VariableDeclaration","scope":45654,"src":"42388:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45634,"name":"uint256","nodeType":"ElementaryTypeName","src":"42388:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45637,"mutability":"mutable","name":"p2","nameLocation":"42414:2:138","nodeType":"VariableDeclaration","scope":45654,"src":"42400:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45636,"name":"string","nodeType":"ElementaryTypeName","src":"42400:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45639,"mutability":"mutable","name":"p3","nameLocation":"42426:2:138","nodeType":"VariableDeclaration","scope":45654,"src":"42418:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45638,"name":"address","nodeType":"ElementaryTypeName","src":"42418:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42378:51:138"},"returnParameters":{"id":45641,"nodeType":"ParameterList","parameters":[],"src":"42444:0:138"},"scope":48415,"src":"42366:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45676,"nodeType":"Block","src":"42616:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629","id":45668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42660:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},"value":"log(bool,uint256,bool,uint256)"},{"id":45669,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45656,"src":"42694:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45670,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45658,"src":"42698:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45671,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45660,"src":"42702:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45672,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45662,"src":"42706:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45666,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42636:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42636:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42636:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45665,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"42620:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42620:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45675,"nodeType":"ExpressionStatement","src":"42620:90:138"}]},"id":45677,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42556:3:138","nodeType":"FunctionDefinition","parameters":{"id":45663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45656,"mutability":"mutable","name":"p0","nameLocation":"42565:2:138","nodeType":"VariableDeclaration","scope":45677,"src":"42560:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45655,"name":"bool","nodeType":"ElementaryTypeName","src":"42560:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45658,"mutability":"mutable","name":"p1","nameLocation":"42577:2:138","nodeType":"VariableDeclaration","scope":45677,"src":"42569:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45657,"name":"uint256","nodeType":"ElementaryTypeName","src":"42569:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45660,"mutability":"mutable","name":"p2","nameLocation":"42586:2:138","nodeType":"VariableDeclaration","scope":45677,"src":"42581:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45659,"name":"bool","nodeType":"ElementaryTypeName","src":"42581:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45662,"mutability":"mutable","name":"p3","nameLocation":"42598:2:138","nodeType":"VariableDeclaration","scope":45677,"src":"42590:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45661,"name":"uint256","nodeType":"ElementaryTypeName","src":"42590:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42559:42:138"},"returnParameters":{"id":45664,"nodeType":"ParameterList","parameters":[],"src":"42616:0:138"},"scope":48415,"src":"42547:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45699,"nodeType":"Block","src":"42792:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729","id":45691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42836:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},"value":"log(bool,uint256,bool,string)"},{"id":45692,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45679,"src":"42869:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45693,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45681,"src":"42873:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45694,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45683,"src":"42877:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45695,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45685,"src":"42881:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45689,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42812:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42812:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42812:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45688,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"42796:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42796:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45698,"nodeType":"ExpressionStatement","src":"42796:89:138"}]},"id":45700,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42726:3:138","nodeType":"FunctionDefinition","parameters":{"id":45686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45679,"mutability":"mutable","name":"p0","nameLocation":"42735:2:138","nodeType":"VariableDeclaration","scope":45700,"src":"42730:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45678,"name":"bool","nodeType":"ElementaryTypeName","src":"42730:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45681,"mutability":"mutable","name":"p1","nameLocation":"42747:2:138","nodeType":"VariableDeclaration","scope":45700,"src":"42739:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45680,"name":"uint256","nodeType":"ElementaryTypeName","src":"42739:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45683,"mutability":"mutable","name":"p2","nameLocation":"42756:2:138","nodeType":"VariableDeclaration","scope":45700,"src":"42751:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45682,"name":"bool","nodeType":"ElementaryTypeName","src":"42751:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45685,"mutability":"mutable","name":"p3","nameLocation":"42774:2:138","nodeType":"VariableDeclaration","scope":45700,"src":"42760:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45684,"name":"string","nodeType":"ElementaryTypeName","src":"42760:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42729:48:138"},"returnParameters":{"id":45687,"nodeType":"ParameterList","parameters":[],"src":"42792:0:138"},"scope":48415,"src":"42717:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45722,"nodeType":"Block","src":"42958:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29","id":45714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43002:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},"value":"log(bool,uint256,bool,bool)"},{"id":45715,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45702,"src":"43033:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45716,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45704,"src":"43037:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45717,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"43041:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45718,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45708,"src":"43045:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45712,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42978:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42978:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42978:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45711,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"42962:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42962:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45721,"nodeType":"ExpressionStatement","src":"42962:87:138"}]},"id":45723,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42901:3:138","nodeType":"FunctionDefinition","parameters":{"id":45709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45702,"mutability":"mutable","name":"p0","nameLocation":"42910:2:138","nodeType":"VariableDeclaration","scope":45723,"src":"42905:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45701,"name":"bool","nodeType":"ElementaryTypeName","src":"42905:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45704,"mutability":"mutable","name":"p1","nameLocation":"42922:2:138","nodeType":"VariableDeclaration","scope":45723,"src":"42914:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45703,"name":"uint256","nodeType":"ElementaryTypeName","src":"42914:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45706,"mutability":"mutable","name":"p2","nameLocation":"42931:2:138","nodeType":"VariableDeclaration","scope":45723,"src":"42926:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45705,"name":"bool","nodeType":"ElementaryTypeName","src":"42926:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45708,"mutability":"mutable","name":"p3","nameLocation":"42940:2:138","nodeType":"VariableDeclaration","scope":45723,"src":"42935:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45707,"name":"bool","nodeType":"ElementaryTypeName","src":"42935:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42904:39:138"},"returnParameters":{"id":45710,"nodeType":"ParameterList","parameters":[],"src":"42958:0:138"},"scope":48415,"src":"42892:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45745,"nodeType":"Block","src":"43125:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329","id":45737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43169:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},"value":"log(bool,uint256,bool,address)"},{"id":45738,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45725,"src":"43203:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45739,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45727,"src":"43207:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45740,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45729,"src":"43211:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45741,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45731,"src":"43215:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45735,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43145:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43145:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43145:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45734,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"43129:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43129:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45744,"nodeType":"ExpressionStatement","src":"43129:90:138"}]},"id":45746,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43065:3:138","nodeType":"FunctionDefinition","parameters":{"id":45732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45725,"mutability":"mutable","name":"p0","nameLocation":"43074:2:138","nodeType":"VariableDeclaration","scope":45746,"src":"43069:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45724,"name":"bool","nodeType":"ElementaryTypeName","src":"43069:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45727,"mutability":"mutable","name":"p1","nameLocation":"43086:2:138","nodeType":"VariableDeclaration","scope":45746,"src":"43078:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45726,"name":"uint256","nodeType":"ElementaryTypeName","src":"43078:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45729,"mutability":"mutable","name":"p2","nameLocation":"43095:2:138","nodeType":"VariableDeclaration","scope":45746,"src":"43090:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45728,"name":"bool","nodeType":"ElementaryTypeName","src":"43090:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45731,"mutability":"mutable","name":"p3","nameLocation":"43107:2:138","nodeType":"VariableDeclaration","scope":45746,"src":"43099:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45730,"name":"address","nodeType":"ElementaryTypeName","src":"43099:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43068:42:138"},"returnParameters":{"id":45733,"nodeType":"ParameterList","parameters":[],"src":"43125:0:138"},"scope":48415,"src":"43056:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45768,"nodeType":"Block","src":"43298:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629","id":45760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43342:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},"value":"log(bool,uint256,address,uint256)"},{"id":45761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45748,"src":"43379:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"43383:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45752,"src":"43387:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45764,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"43391:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43318:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43318:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43318:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"43302:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43302:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45767,"nodeType":"ExpressionStatement","src":"43302:93:138"}]},"id":45769,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43235:3:138","nodeType":"FunctionDefinition","parameters":{"id":45755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45748,"mutability":"mutable","name":"p0","nameLocation":"43244:2:138","nodeType":"VariableDeclaration","scope":45769,"src":"43239:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45747,"name":"bool","nodeType":"ElementaryTypeName","src":"43239:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45750,"mutability":"mutable","name":"p1","nameLocation":"43256:2:138","nodeType":"VariableDeclaration","scope":45769,"src":"43248:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45749,"name":"uint256","nodeType":"ElementaryTypeName","src":"43248:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45752,"mutability":"mutable","name":"p2","nameLocation":"43268:2:138","nodeType":"VariableDeclaration","scope":45769,"src":"43260:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45751,"name":"address","nodeType":"ElementaryTypeName","src":"43260:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45754,"mutability":"mutable","name":"p3","nameLocation":"43280:2:138","nodeType":"VariableDeclaration","scope":45769,"src":"43272:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45753,"name":"uint256","nodeType":"ElementaryTypeName","src":"43272:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43238:45:138"},"returnParameters":{"id":45756,"nodeType":"ParameterList","parameters":[],"src":"43298:0:138"},"scope":48415,"src":"43226:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45791,"nodeType":"Block","src":"43480:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729","id":45783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43524:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},"value":"log(bool,uint256,address,string)"},{"id":45784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"43560:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45773,"src":"43564:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45775,"src":"43568:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45777,"src":"43572:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43500:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43500:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43500:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"43484:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43484:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45790,"nodeType":"ExpressionStatement","src":"43484:92:138"}]},"id":45792,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43411:3:138","nodeType":"FunctionDefinition","parameters":{"id":45778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45771,"mutability":"mutable","name":"p0","nameLocation":"43420:2:138","nodeType":"VariableDeclaration","scope":45792,"src":"43415:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45770,"name":"bool","nodeType":"ElementaryTypeName","src":"43415:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45773,"mutability":"mutable","name":"p1","nameLocation":"43432:2:138","nodeType":"VariableDeclaration","scope":45792,"src":"43424:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45772,"name":"uint256","nodeType":"ElementaryTypeName","src":"43424:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45775,"mutability":"mutable","name":"p2","nameLocation":"43444:2:138","nodeType":"VariableDeclaration","scope":45792,"src":"43436:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45774,"name":"address","nodeType":"ElementaryTypeName","src":"43436:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45777,"mutability":"mutable","name":"p3","nameLocation":"43462:2:138","nodeType":"VariableDeclaration","scope":45792,"src":"43448:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45776,"name":"string","nodeType":"ElementaryTypeName","src":"43448:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43414:51:138"},"returnParameters":{"id":45779,"nodeType":"ParameterList","parameters":[],"src":"43480:0:138"},"scope":48415,"src":"43402:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45814,"nodeType":"Block","src":"43652:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29","id":45806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43696:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},"value":"log(bool,uint256,address,bool)"},{"id":45807,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"43730:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45808,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"43734:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45809,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45798,"src":"43738:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45810,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45800,"src":"43742:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43672:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43672:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43672:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45803,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"43656:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43656:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45813,"nodeType":"ExpressionStatement","src":"43656:90:138"}]},"id":45815,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43592:3:138","nodeType":"FunctionDefinition","parameters":{"id":45801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"p0","nameLocation":"43601:2:138","nodeType":"VariableDeclaration","scope":45815,"src":"43596:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45793,"name":"bool","nodeType":"ElementaryTypeName","src":"43596:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"p1","nameLocation":"43613:2:138","nodeType":"VariableDeclaration","scope":45815,"src":"43605:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"43605:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45798,"mutability":"mutable","name":"p2","nameLocation":"43625:2:138","nodeType":"VariableDeclaration","scope":45815,"src":"43617:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45797,"name":"address","nodeType":"ElementaryTypeName","src":"43617:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45800,"mutability":"mutable","name":"p3","nameLocation":"43634:2:138","nodeType":"VariableDeclaration","scope":45815,"src":"43629:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45799,"name":"bool","nodeType":"ElementaryTypeName","src":"43629:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43595:42:138"},"returnParameters":{"id":45802,"nodeType":"ParameterList","parameters":[],"src":"43652:0:138"},"scope":48415,"src":"43583:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45837,"nodeType":"Block","src":"43825:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329","id":45829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43869:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},"value":"log(bool,uint256,address,address)"},{"id":45830,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45817,"src":"43906:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45831,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45819,"src":"43910:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45832,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45821,"src":"43914:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45833,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45823,"src":"43918:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43845:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43845:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43845:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45826,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"43829:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43829:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45836,"nodeType":"ExpressionStatement","src":"43829:93:138"}]},"id":45838,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43762:3:138","nodeType":"FunctionDefinition","parameters":{"id":45824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45817,"mutability":"mutable","name":"p0","nameLocation":"43771:2:138","nodeType":"VariableDeclaration","scope":45838,"src":"43766:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45816,"name":"bool","nodeType":"ElementaryTypeName","src":"43766:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45819,"mutability":"mutable","name":"p1","nameLocation":"43783:2:138","nodeType":"VariableDeclaration","scope":45838,"src":"43775:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45818,"name":"uint256","nodeType":"ElementaryTypeName","src":"43775:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45821,"mutability":"mutable","name":"p2","nameLocation":"43795:2:138","nodeType":"VariableDeclaration","scope":45838,"src":"43787:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45820,"name":"address","nodeType":"ElementaryTypeName","src":"43787:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45823,"mutability":"mutable","name":"p3","nameLocation":"43807:2:138","nodeType":"VariableDeclaration","scope":45838,"src":"43799:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45822,"name":"address","nodeType":"ElementaryTypeName","src":"43799:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43765:45:138"},"returnParameters":{"id":45825,"nodeType":"ParameterList","parameters":[],"src":"43825:0:138"},"scope":48415,"src":"43753:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45860,"nodeType":"Block","src":"44007:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629","id":45852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44051:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},"value":"log(bool,string,uint256,uint256)"},{"id":45853,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45840,"src":"44087:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45854,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"44091:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45855,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45844,"src":"44095:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45856,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45846,"src":"44099:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44027:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44027:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44027:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45849,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"44011:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44011:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45859,"nodeType":"ExpressionStatement","src":"44011:92:138"}]},"id":45861,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43938:3:138","nodeType":"FunctionDefinition","parameters":{"id":45847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45840,"mutability":"mutable","name":"p0","nameLocation":"43947:2:138","nodeType":"VariableDeclaration","scope":45861,"src":"43942:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45839,"name":"bool","nodeType":"ElementaryTypeName","src":"43942:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45842,"mutability":"mutable","name":"p1","nameLocation":"43965:2:138","nodeType":"VariableDeclaration","scope":45861,"src":"43951:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45841,"name":"string","nodeType":"ElementaryTypeName","src":"43951:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45844,"mutability":"mutable","name":"p2","nameLocation":"43977:2:138","nodeType":"VariableDeclaration","scope":45861,"src":"43969:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45843,"name":"uint256","nodeType":"ElementaryTypeName","src":"43969:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45846,"mutability":"mutable","name":"p3","nameLocation":"43989:2:138","nodeType":"VariableDeclaration","scope":45861,"src":"43981:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45845,"name":"uint256","nodeType":"ElementaryTypeName","src":"43981:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43941:51:138"},"returnParameters":{"id":45848,"nodeType":"ParameterList","parameters":[],"src":"44007:0:138"},"scope":48415,"src":"43929:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45883,"nodeType":"Block","src":"44194:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729","id":45875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44238:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},"value":"log(bool,string,uint256,string)"},{"id":45876,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45863,"src":"44273:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45877,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45865,"src":"44277:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45878,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"44281:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45879,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45869,"src":"44285:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44214:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44214:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44214:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45872,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"44198:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44198:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45882,"nodeType":"ExpressionStatement","src":"44198:91:138"}]},"id":45884,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44119:3:138","nodeType":"FunctionDefinition","parameters":{"id":45870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45863,"mutability":"mutable","name":"p0","nameLocation":"44128:2:138","nodeType":"VariableDeclaration","scope":45884,"src":"44123:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45862,"name":"bool","nodeType":"ElementaryTypeName","src":"44123:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45865,"mutability":"mutable","name":"p1","nameLocation":"44146:2:138","nodeType":"VariableDeclaration","scope":45884,"src":"44132:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45864,"name":"string","nodeType":"ElementaryTypeName","src":"44132:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45867,"mutability":"mutable","name":"p2","nameLocation":"44158:2:138","nodeType":"VariableDeclaration","scope":45884,"src":"44150:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45866,"name":"uint256","nodeType":"ElementaryTypeName","src":"44150:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45869,"mutability":"mutable","name":"p3","nameLocation":"44176:2:138","nodeType":"VariableDeclaration","scope":45884,"src":"44162:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45868,"name":"string","nodeType":"ElementaryTypeName","src":"44162:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44122:57:138"},"returnParameters":{"id":45871,"nodeType":"ParameterList","parameters":[],"src":"44194:0:138"},"scope":48415,"src":"44110:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45906,"nodeType":"Block","src":"44371:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29","id":45898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44415:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},"value":"log(bool,string,uint256,bool)"},{"id":45899,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45886,"src":"44448:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45900,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45888,"src":"44452:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45901,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45890,"src":"44456:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45902,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45892,"src":"44460:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44391:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44391:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44391:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45895,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"44375:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44375:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45905,"nodeType":"ExpressionStatement","src":"44375:89:138"}]},"id":45907,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44305:3:138","nodeType":"FunctionDefinition","parameters":{"id":45893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45886,"mutability":"mutable","name":"p0","nameLocation":"44314:2:138","nodeType":"VariableDeclaration","scope":45907,"src":"44309:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45885,"name":"bool","nodeType":"ElementaryTypeName","src":"44309:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45888,"mutability":"mutable","name":"p1","nameLocation":"44332:2:138","nodeType":"VariableDeclaration","scope":45907,"src":"44318:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45887,"name":"string","nodeType":"ElementaryTypeName","src":"44318:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45890,"mutability":"mutable","name":"p2","nameLocation":"44344:2:138","nodeType":"VariableDeclaration","scope":45907,"src":"44336:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45889,"name":"uint256","nodeType":"ElementaryTypeName","src":"44336:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45892,"mutability":"mutable","name":"p3","nameLocation":"44353:2:138","nodeType":"VariableDeclaration","scope":45907,"src":"44348:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45891,"name":"bool","nodeType":"ElementaryTypeName","src":"44348:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44308:48:138"},"returnParameters":{"id":45894,"nodeType":"ParameterList","parameters":[],"src":"44371:0:138"},"scope":48415,"src":"44296:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45929,"nodeType":"Block","src":"44549:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329","id":45921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44593:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},"value":"log(bool,string,uint256,address)"},{"id":45922,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45909,"src":"44629:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45923,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45911,"src":"44633:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45924,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45913,"src":"44637:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":45925,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45915,"src":"44641:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45919,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44569:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44569:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44569:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45918,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"44553:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44553:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45928,"nodeType":"ExpressionStatement","src":"44553:92:138"}]},"id":45930,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44480:3:138","nodeType":"FunctionDefinition","parameters":{"id":45916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45909,"mutability":"mutable","name":"p0","nameLocation":"44489:2:138","nodeType":"VariableDeclaration","scope":45930,"src":"44484:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45908,"name":"bool","nodeType":"ElementaryTypeName","src":"44484:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45911,"mutability":"mutable","name":"p1","nameLocation":"44507:2:138","nodeType":"VariableDeclaration","scope":45930,"src":"44493:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45910,"name":"string","nodeType":"ElementaryTypeName","src":"44493:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45913,"mutability":"mutable","name":"p2","nameLocation":"44519:2:138","nodeType":"VariableDeclaration","scope":45930,"src":"44511:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45912,"name":"uint256","nodeType":"ElementaryTypeName","src":"44511:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45915,"mutability":"mutable","name":"p3","nameLocation":"44531:2:138","nodeType":"VariableDeclaration","scope":45930,"src":"44523:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45914,"name":"address","nodeType":"ElementaryTypeName","src":"44523:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44483:51:138"},"returnParameters":{"id":45917,"nodeType":"ParameterList","parameters":[],"src":"44549:0:138"},"scope":48415,"src":"44471:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45952,"nodeType":"Block","src":"44736:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629","id":45944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44780:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},"value":"log(bool,string,string,uint256)"},{"id":45945,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45932,"src":"44815:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45946,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45934,"src":"44819:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45947,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45936,"src":"44823:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45948,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45938,"src":"44827:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45942,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44756:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44756:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44756:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45941,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"44740:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44740:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45951,"nodeType":"ExpressionStatement","src":"44740:91:138"}]},"id":45953,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44661:3:138","nodeType":"FunctionDefinition","parameters":{"id":45939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45932,"mutability":"mutable","name":"p0","nameLocation":"44670:2:138","nodeType":"VariableDeclaration","scope":45953,"src":"44665:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45931,"name":"bool","nodeType":"ElementaryTypeName","src":"44665:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45934,"mutability":"mutable","name":"p1","nameLocation":"44688:2:138","nodeType":"VariableDeclaration","scope":45953,"src":"44674:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45933,"name":"string","nodeType":"ElementaryTypeName","src":"44674:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45936,"mutability":"mutable","name":"p2","nameLocation":"44706:2:138","nodeType":"VariableDeclaration","scope":45953,"src":"44692:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45935,"name":"string","nodeType":"ElementaryTypeName","src":"44692:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45938,"mutability":"mutable","name":"p3","nameLocation":"44718:2:138","nodeType":"VariableDeclaration","scope":45953,"src":"44710:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45937,"name":"uint256","nodeType":"ElementaryTypeName","src":"44710:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44664:57:138"},"returnParameters":{"id":45940,"nodeType":"ParameterList","parameters":[],"src":"44736:0:138"},"scope":48415,"src":"44652:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45975,"nodeType":"Block","src":"44928:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":45967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44972:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":45968,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45955,"src":"45006:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45969,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45957,"src":"45010:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45970,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"45014:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45971,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45961,"src":"45018:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":45965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44948:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44948:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44948:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45964,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"44932:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44932:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45974,"nodeType":"ExpressionStatement","src":"44932:90:138"}]},"id":45976,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44847:3:138","nodeType":"FunctionDefinition","parameters":{"id":45962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45955,"mutability":"mutable","name":"p0","nameLocation":"44856:2:138","nodeType":"VariableDeclaration","scope":45976,"src":"44851:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45954,"name":"bool","nodeType":"ElementaryTypeName","src":"44851:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45957,"mutability":"mutable","name":"p1","nameLocation":"44874:2:138","nodeType":"VariableDeclaration","scope":45976,"src":"44860:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45956,"name":"string","nodeType":"ElementaryTypeName","src":"44860:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45959,"mutability":"mutable","name":"p2","nameLocation":"44892:2:138","nodeType":"VariableDeclaration","scope":45976,"src":"44878:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45958,"name":"string","nodeType":"ElementaryTypeName","src":"44878:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45961,"mutability":"mutable","name":"p3","nameLocation":"44910:2:138","nodeType":"VariableDeclaration","scope":45976,"src":"44896:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45960,"name":"string","nodeType":"ElementaryTypeName","src":"44896:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44850:63:138"},"returnParameters":{"id":45963,"nodeType":"ParameterList","parameters":[],"src":"44928:0:138"},"scope":48415,"src":"44838:188:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":45998,"nodeType":"Block","src":"45110:96:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":45990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45154:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":45991,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45978,"src":"45186:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":45992,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"45190:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45993,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45982,"src":"45194:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45994,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45984,"src":"45198:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":45988,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45130:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45130:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45130:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45987,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"45114:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":45996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45114:88:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45997,"nodeType":"ExpressionStatement","src":"45114:88:138"}]},"id":45999,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45038:3:138","nodeType":"FunctionDefinition","parameters":{"id":45985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45978,"mutability":"mutable","name":"p0","nameLocation":"45047:2:138","nodeType":"VariableDeclaration","scope":45999,"src":"45042:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45977,"name":"bool","nodeType":"ElementaryTypeName","src":"45042:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45980,"mutability":"mutable","name":"p1","nameLocation":"45065:2:138","nodeType":"VariableDeclaration","scope":45999,"src":"45051:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45979,"name":"string","nodeType":"ElementaryTypeName","src":"45051:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45982,"mutability":"mutable","name":"p2","nameLocation":"45083:2:138","nodeType":"VariableDeclaration","scope":45999,"src":"45069:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45981,"name":"string","nodeType":"ElementaryTypeName","src":"45069:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":45984,"mutability":"mutable","name":"p3","nameLocation":"45092:2:138","nodeType":"VariableDeclaration","scope":45999,"src":"45087:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45983,"name":"bool","nodeType":"ElementaryTypeName","src":"45087:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45041:54:138"},"returnParameters":{"id":45986,"nodeType":"ParameterList","parameters":[],"src":"45110:0:138"},"scope":48415,"src":"45029:177:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46021,"nodeType":"Block","src":"45293:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":46013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45337:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":46014,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"45372:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46015,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46003,"src":"45376:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46016,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46005,"src":"45380:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46017,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46007,"src":"45384:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46011,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45313:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45313:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45313:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46010,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"45297:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45297:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46020,"nodeType":"ExpressionStatement","src":"45297:91:138"}]},"id":46022,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45218:3:138","nodeType":"FunctionDefinition","parameters":{"id":46008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46001,"mutability":"mutable","name":"p0","nameLocation":"45227:2:138","nodeType":"VariableDeclaration","scope":46022,"src":"45222:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46000,"name":"bool","nodeType":"ElementaryTypeName","src":"45222:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46003,"mutability":"mutable","name":"p1","nameLocation":"45245:2:138","nodeType":"VariableDeclaration","scope":46022,"src":"45231:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46002,"name":"string","nodeType":"ElementaryTypeName","src":"45231:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46005,"mutability":"mutable","name":"p2","nameLocation":"45263:2:138","nodeType":"VariableDeclaration","scope":46022,"src":"45249:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46004,"name":"string","nodeType":"ElementaryTypeName","src":"45249:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46007,"mutability":"mutable","name":"p3","nameLocation":"45275:2:138","nodeType":"VariableDeclaration","scope":46022,"src":"45267:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46006,"name":"address","nodeType":"ElementaryTypeName","src":"45267:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45221:57:138"},"returnParameters":{"id":46009,"nodeType":"ParameterList","parameters":[],"src":"45293:0:138"},"scope":48415,"src":"45209:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46044,"nodeType":"Block","src":"45470:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629","id":46036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45514:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},"value":"log(bool,string,bool,uint256)"},{"id":46037,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46024,"src":"45547:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46038,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46026,"src":"45551:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46039,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46028,"src":"45555:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46040,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46030,"src":"45559:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46034,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45490:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45490:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45490:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46033,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"45474:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45474:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46043,"nodeType":"ExpressionStatement","src":"45474:89:138"}]},"id":46045,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45404:3:138","nodeType":"FunctionDefinition","parameters":{"id":46031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46024,"mutability":"mutable","name":"p0","nameLocation":"45413:2:138","nodeType":"VariableDeclaration","scope":46045,"src":"45408:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46023,"name":"bool","nodeType":"ElementaryTypeName","src":"45408:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46026,"mutability":"mutable","name":"p1","nameLocation":"45431:2:138","nodeType":"VariableDeclaration","scope":46045,"src":"45417:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46025,"name":"string","nodeType":"ElementaryTypeName","src":"45417:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46028,"mutability":"mutable","name":"p2","nameLocation":"45440:2:138","nodeType":"VariableDeclaration","scope":46045,"src":"45435:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46027,"name":"bool","nodeType":"ElementaryTypeName","src":"45435:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46030,"mutability":"mutable","name":"p3","nameLocation":"45452:2:138","nodeType":"VariableDeclaration","scope":46045,"src":"45444:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46029,"name":"uint256","nodeType":"ElementaryTypeName","src":"45444:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45407:48:138"},"returnParameters":{"id":46032,"nodeType":"ParameterList","parameters":[],"src":"45470:0:138"},"scope":48415,"src":"45395:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46067,"nodeType":"Block","src":"45651:96:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":46059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45695:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":46060,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46047,"src":"45727:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46061,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"45731:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46062,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"45735:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46063,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46053,"src":"45739:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46057,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45671:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45671:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45671:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46056,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"45655:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45655:88:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46066,"nodeType":"ExpressionStatement","src":"45655:88:138"}]},"id":46068,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45579:3:138","nodeType":"FunctionDefinition","parameters":{"id":46054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46047,"mutability":"mutable","name":"p0","nameLocation":"45588:2:138","nodeType":"VariableDeclaration","scope":46068,"src":"45583:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46046,"name":"bool","nodeType":"ElementaryTypeName","src":"45583:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46049,"mutability":"mutable","name":"p1","nameLocation":"45606:2:138","nodeType":"VariableDeclaration","scope":46068,"src":"45592:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46048,"name":"string","nodeType":"ElementaryTypeName","src":"45592:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"p2","nameLocation":"45615:2:138","nodeType":"VariableDeclaration","scope":46068,"src":"45610:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46050,"name":"bool","nodeType":"ElementaryTypeName","src":"45610:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46053,"mutability":"mutable","name":"p3","nameLocation":"45633:2:138","nodeType":"VariableDeclaration","scope":46068,"src":"45619:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46052,"name":"string","nodeType":"ElementaryTypeName","src":"45619:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45582:54:138"},"returnParameters":{"id":46055,"nodeType":"ParameterList","parameters":[],"src":"45651:0:138"},"scope":48415,"src":"45570:177:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46090,"nodeType":"Block","src":"45822:94:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":46082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45866:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":46083,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46070,"src":"45896:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46084,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46072,"src":"45900:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46085,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46074,"src":"45904:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46086,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46076,"src":"45908:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45842:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45842:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45842:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46079,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"45826:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45826:86:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46089,"nodeType":"ExpressionStatement","src":"45826:86:138"}]},"id":46091,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45759:3:138","nodeType":"FunctionDefinition","parameters":{"id":46077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46070,"mutability":"mutable","name":"p0","nameLocation":"45768:2:138","nodeType":"VariableDeclaration","scope":46091,"src":"45763:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46069,"name":"bool","nodeType":"ElementaryTypeName","src":"45763:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46072,"mutability":"mutable","name":"p1","nameLocation":"45786:2:138","nodeType":"VariableDeclaration","scope":46091,"src":"45772:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46071,"name":"string","nodeType":"ElementaryTypeName","src":"45772:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46074,"mutability":"mutable","name":"p2","nameLocation":"45795:2:138","nodeType":"VariableDeclaration","scope":46091,"src":"45790:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46073,"name":"bool","nodeType":"ElementaryTypeName","src":"45790:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46076,"mutability":"mutable","name":"p3","nameLocation":"45804:2:138","nodeType":"VariableDeclaration","scope":46091,"src":"45799:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46075,"name":"bool","nodeType":"ElementaryTypeName","src":"45799:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45762:45:138"},"returnParameters":{"id":46078,"nodeType":"ParameterList","parameters":[],"src":"45822:0:138"},"scope":48415,"src":"45750:166:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46113,"nodeType":"Block","src":"45994:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":46105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46038:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":46106,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46093,"src":"46071:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46107,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46095,"src":"46075:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46108,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46097,"src":"46079:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46109,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"46083:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46014:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46014:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46014:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46102,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"45998:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45998:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46112,"nodeType":"ExpressionStatement","src":"45998:89:138"}]},"id":46114,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45928:3:138","nodeType":"FunctionDefinition","parameters":{"id":46100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46093,"mutability":"mutable","name":"p0","nameLocation":"45937:2:138","nodeType":"VariableDeclaration","scope":46114,"src":"45932:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46092,"name":"bool","nodeType":"ElementaryTypeName","src":"45932:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46095,"mutability":"mutable","name":"p1","nameLocation":"45955:2:138","nodeType":"VariableDeclaration","scope":46114,"src":"45941:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46094,"name":"string","nodeType":"ElementaryTypeName","src":"45941:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46097,"mutability":"mutable","name":"p2","nameLocation":"45964:2:138","nodeType":"VariableDeclaration","scope":46114,"src":"45959:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46096,"name":"bool","nodeType":"ElementaryTypeName","src":"45959:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46099,"mutability":"mutable","name":"p3","nameLocation":"45976:2:138","nodeType":"VariableDeclaration","scope":46114,"src":"45968:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46098,"name":"address","nodeType":"ElementaryTypeName","src":"45968:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45931:48:138"},"returnParameters":{"id":46101,"nodeType":"ParameterList","parameters":[],"src":"45994:0:138"},"scope":48415,"src":"45919:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46136,"nodeType":"Block","src":"46172:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629","id":46128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46216:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},"value":"log(bool,string,address,uint256)"},{"id":46129,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46116,"src":"46252:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46130,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46118,"src":"46256:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46131,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46120,"src":"46260:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46132,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46122,"src":"46264:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46192:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46192:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46192:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46125,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"46176:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46176:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"46176:92:138"}]},"id":46137,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46103:3:138","nodeType":"FunctionDefinition","parameters":{"id":46123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46116,"mutability":"mutable","name":"p0","nameLocation":"46112:2:138","nodeType":"VariableDeclaration","scope":46137,"src":"46107:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46115,"name":"bool","nodeType":"ElementaryTypeName","src":"46107:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46118,"mutability":"mutable","name":"p1","nameLocation":"46130:2:138","nodeType":"VariableDeclaration","scope":46137,"src":"46116:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46117,"name":"string","nodeType":"ElementaryTypeName","src":"46116:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46120,"mutability":"mutable","name":"p2","nameLocation":"46142:2:138","nodeType":"VariableDeclaration","scope":46137,"src":"46134:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46119,"name":"address","nodeType":"ElementaryTypeName","src":"46134:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46122,"mutability":"mutable","name":"p3","nameLocation":"46154:2:138","nodeType":"VariableDeclaration","scope":46137,"src":"46146:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46121,"name":"uint256","nodeType":"ElementaryTypeName","src":"46146:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46106:51:138"},"returnParameters":{"id":46124,"nodeType":"ParameterList","parameters":[],"src":"46172:0:138"},"scope":48415,"src":"46094:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46159,"nodeType":"Block","src":"46359:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":46151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46403:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":46152,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46139,"src":"46438:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46153,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46141,"src":"46442:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46154,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46143,"src":"46446:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46155,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46145,"src":"46450:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46379:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46379:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46379:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46148,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"46363:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46363:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46158,"nodeType":"ExpressionStatement","src":"46363:91:138"}]},"id":46160,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46284:3:138","nodeType":"FunctionDefinition","parameters":{"id":46146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46139,"mutability":"mutable","name":"p0","nameLocation":"46293:2:138","nodeType":"VariableDeclaration","scope":46160,"src":"46288:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46138,"name":"bool","nodeType":"ElementaryTypeName","src":"46288:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46141,"mutability":"mutable","name":"p1","nameLocation":"46311:2:138","nodeType":"VariableDeclaration","scope":46160,"src":"46297:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46140,"name":"string","nodeType":"ElementaryTypeName","src":"46297:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46143,"mutability":"mutable","name":"p2","nameLocation":"46323:2:138","nodeType":"VariableDeclaration","scope":46160,"src":"46315:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46142,"name":"address","nodeType":"ElementaryTypeName","src":"46315:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46145,"mutability":"mutable","name":"p3","nameLocation":"46341:2:138","nodeType":"VariableDeclaration","scope":46160,"src":"46327:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46144,"name":"string","nodeType":"ElementaryTypeName","src":"46327:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46287:57:138"},"returnParameters":{"id":46147,"nodeType":"ParameterList","parameters":[],"src":"46359:0:138"},"scope":48415,"src":"46275:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46182,"nodeType":"Block","src":"46536:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":46174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46580:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":46175,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46162,"src":"46613:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46176,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46164,"src":"46617:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46177,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46166,"src":"46621:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46178,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46168,"src":"46625:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46172,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46556:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46556:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46556:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46171,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"46540:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46540:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46181,"nodeType":"ExpressionStatement","src":"46540:89:138"}]},"id":46183,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46470:3:138","nodeType":"FunctionDefinition","parameters":{"id":46169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46162,"mutability":"mutable","name":"p0","nameLocation":"46479:2:138","nodeType":"VariableDeclaration","scope":46183,"src":"46474:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46161,"name":"bool","nodeType":"ElementaryTypeName","src":"46474:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46164,"mutability":"mutable","name":"p1","nameLocation":"46497:2:138","nodeType":"VariableDeclaration","scope":46183,"src":"46483:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46163,"name":"string","nodeType":"ElementaryTypeName","src":"46483:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46166,"mutability":"mutable","name":"p2","nameLocation":"46509:2:138","nodeType":"VariableDeclaration","scope":46183,"src":"46501:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46165,"name":"address","nodeType":"ElementaryTypeName","src":"46501:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46168,"mutability":"mutable","name":"p3","nameLocation":"46518:2:138","nodeType":"VariableDeclaration","scope":46183,"src":"46513:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46167,"name":"bool","nodeType":"ElementaryTypeName","src":"46513:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46473:48:138"},"returnParameters":{"id":46170,"nodeType":"ParameterList","parameters":[],"src":"46536:0:138"},"scope":48415,"src":"46461:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46205,"nodeType":"Block","src":"46714:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":46197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46758:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":46198,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46185,"src":"46794:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46199,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46187,"src":"46798:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46200,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46189,"src":"46802:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46201,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"46806:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46195,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46734:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46734:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46734:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46194,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"46718:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46718:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46204,"nodeType":"ExpressionStatement","src":"46718:92:138"}]},"id":46206,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46645:3:138","nodeType":"FunctionDefinition","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46185,"mutability":"mutable","name":"p0","nameLocation":"46654:2:138","nodeType":"VariableDeclaration","scope":46206,"src":"46649:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46184,"name":"bool","nodeType":"ElementaryTypeName","src":"46649:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46187,"mutability":"mutable","name":"p1","nameLocation":"46672:2:138","nodeType":"VariableDeclaration","scope":46206,"src":"46658:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46186,"name":"string","nodeType":"ElementaryTypeName","src":"46658:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46189,"mutability":"mutable","name":"p2","nameLocation":"46684:2:138","nodeType":"VariableDeclaration","scope":46206,"src":"46676:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46188,"name":"address","nodeType":"ElementaryTypeName","src":"46676:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"p3","nameLocation":"46696:2:138","nodeType":"VariableDeclaration","scope":46206,"src":"46688:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46190,"name":"address","nodeType":"ElementaryTypeName","src":"46688:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46648:51:138"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"46714:0:138"},"scope":48415,"src":"46636:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46228,"nodeType":"Block","src":"46886:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629","id":46220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46930:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},"value":"log(bool,bool,uint256,uint256)"},{"id":46221,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46208,"src":"46964:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46222,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46210,"src":"46968:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46223,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46212,"src":"46972:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46224,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46214,"src":"46976:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46906:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46906:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46906:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46217,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"46890:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46890:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46227,"nodeType":"ExpressionStatement","src":"46890:90:138"}]},"id":46229,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46826:3:138","nodeType":"FunctionDefinition","parameters":{"id":46215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46208,"mutability":"mutable","name":"p0","nameLocation":"46835:2:138","nodeType":"VariableDeclaration","scope":46229,"src":"46830:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46207,"name":"bool","nodeType":"ElementaryTypeName","src":"46830:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46210,"mutability":"mutable","name":"p1","nameLocation":"46844:2:138","nodeType":"VariableDeclaration","scope":46229,"src":"46839:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46209,"name":"bool","nodeType":"ElementaryTypeName","src":"46839:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46212,"mutability":"mutable","name":"p2","nameLocation":"46856:2:138","nodeType":"VariableDeclaration","scope":46229,"src":"46848:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46211,"name":"uint256","nodeType":"ElementaryTypeName","src":"46848:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46214,"mutability":"mutable","name":"p3","nameLocation":"46868:2:138","nodeType":"VariableDeclaration","scope":46229,"src":"46860:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46213,"name":"uint256","nodeType":"ElementaryTypeName","src":"46860:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46829:42:138"},"returnParameters":{"id":46216,"nodeType":"ParameterList","parameters":[],"src":"46886:0:138"},"scope":48415,"src":"46817:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46251,"nodeType":"Block","src":"47062:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729","id":46243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47106:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},"value":"log(bool,bool,uint256,string)"},{"id":46244,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"47139:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46245,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46233,"src":"47143:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46246,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46235,"src":"47147:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46247,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46237,"src":"47151:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46241,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47082:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47082:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47082:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46240,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"47066:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47066:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46250,"nodeType":"ExpressionStatement","src":"47066:89:138"}]},"id":46252,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46996:3:138","nodeType":"FunctionDefinition","parameters":{"id":46238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46231,"mutability":"mutable","name":"p0","nameLocation":"47005:2:138","nodeType":"VariableDeclaration","scope":46252,"src":"47000:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46230,"name":"bool","nodeType":"ElementaryTypeName","src":"47000:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46233,"mutability":"mutable","name":"p1","nameLocation":"47014:2:138","nodeType":"VariableDeclaration","scope":46252,"src":"47009:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46232,"name":"bool","nodeType":"ElementaryTypeName","src":"47009:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46235,"mutability":"mutable","name":"p2","nameLocation":"47026:2:138","nodeType":"VariableDeclaration","scope":46252,"src":"47018:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46234,"name":"uint256","nodeType":"ElementaryTypeName","src":"47018:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46237,"mutability":"mutable","name":"p3","nameLocation":"47044:2:138","nodeType":"VariableDeclaration","scope":46252,"src":"47030:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46236,"name":"string","nodeType":"ElementaryTypeName","src":"47030:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46999:48:138"},"returnParameters":{"id":46239,"nodeType":"ParameterList","parameters":[],"src":"47062:0:138"},"scope":48415,"src":"46987:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46274,"nodeType":"Block","src":"47228:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29","id":46266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47272:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},"value":"log(bool,bool,uint256,bool)"},{"id":46267,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46254,"src":"47303:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46268,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"47307:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46269,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46258,"src":"47311:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46270,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46260,"src":"47315:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46264,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47248:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47248:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47248:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46263,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"47232:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47232:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46273,"nodeType":"ExpressionStatement","src":"47232:87:138"}]},"id":46275,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47171:3:138","nodeType":"FunctionDefinition","parameters":{"id":46261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46254,"mutability":"mutable","name":"p0","nameLocation":"47180:2:138","nodeType":"VariableDeclaration","scope":46275,"src":"47175:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46253,"name":"bool","nodeType":"ElementaryTypeName","src":"47175:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46256,"mutability":"mutable","name":"p1","nameLocation":"47189:2:138","nodeType":"VariableDeclaration","scope":46275,"src":"47184:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46255,"name":"bool","nodeType":"ElementaryTypeName","src":"47184:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46258,"mutability":"mutable","name":"p2","nameLocation":"47201:2:138","nodeType":"VariableDeclaration","scope":46275,"src":"47193:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46257,"name":"uint256","nodeType":"ElementaryTypeName","src":"47193:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46260,"mutability":"mutable","name":"p3","nameLocation":"47210:2:138","nodeType":"VariableDeclaration","scope":46275,"src":"47205:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46259,"name":"bool","nodeType":"ElementaryTypeName","src":"47205:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47174:39:138"},"returnParameters":{"id":46262,"nodeType":"ParameterList","parameters":[],"src":"47228:0:138"},"scope":48415,"src":"47162:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46297,"nodeType":"Block","src":"47395:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329","id":46289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47439:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},"value":"log(bool,bool,uint256,address)"},{"id":46290,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46277,"src":"47473:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46291,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46279,"src":"47477:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46292,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46281,"src":"47481:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46293,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46283,"src":"47485:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47415:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47415:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47415:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46286,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"47399:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47399:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46296,"nodeType":"ExpressionStatement","src":"47399:90:138"}]},"id":46298,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47335:3:138","nodeType":"FunctionDefinition","parameters":{"id":46284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46277,"mutability":"mutable","name":"p0","nameLocation":"47344:2:138","nodeType":"VariableDeclaration","scope":46298,"src":"47339:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46276,"name":"bool","nodeType":"ElementaryTypeName","src":"47339:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46279,"mutability":"mutable","name":"p1","nameLocation":"47353:2:138","nodeType":"VariableDeclaration","scope":46298,"src":"47348:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46278,"name":"bool","nodeType":"ElementaryTypeName","src":"47348:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46281,"mutability":"mutable","name":"p2","nameLocation":"47365:2:138","nodeType":"VariableDeclaration","scope":46298,"src":"47357:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46280,"name":"uint256","nodeType":"ElementaryTypeName","src":"47357:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46283,"mutability":"mutable","name":"p3","nameLocation":"47377:2:138","nodeType":"VariableDeclaration","scope":46298,"src":"47369:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46282,"name":"address","nodeType":"ElementaryTypeName","src":"47369:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47338:42:138"},"returnParameters":{"id":46285,"nodeType":"ParameterList","parameters":[],"src":"47395:0:138"},"scope":48415,"src":"47326:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46320,"nodeType":"Block","src":"47571:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629","id":46312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47615:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},"value":"log(bool,bool,string,uint256)"},{"id":46313,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46300,"src":"47648:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46314,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46302,"src":"47652:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46315,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46304,"src":"47656:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46316,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46306,"src":"47660:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46310,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47591:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47591:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47591:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46309,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"47575:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47575:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46319,"nodeType":"ExpressionStatement","src":"47575:89:138"}]},"id":46321,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47505:3:138","nodeType":"FunctionDefinition","parameters":{"id":46307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46300,"mutability":"mutable","name":"p0","nameLocation":"47514:2:138","nodeType":"VariableDeclaration","scope":46321,"src":"47509:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46299,"name":"bool","nodeType":"ElementaryTypeName","src":"47509:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46302,"mutability":"mutable","name":"p1","nameLocation":"47523:2:138","nodeType":"VariableDeclaration","scope":46321,"src":"47518:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46301,"name":"bool","nodeType":"ElementaryTypeName","src":"47518:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46304,"mutability":"mutable","name":"p2","nameLocation":"47541:2:138","nodeType":"VariableDeclaration","scope":46321,"src":"47527:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46303,"name":"string","nodeType":"ElementaryTypeName","src":"47527:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46306,"mutability":"mutable","name":"p3","nameLocation":"47553:2:138","nodeType":"VariableDeclaration","scope":46321,"src":"47545:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46305,"name":"uint256","nodeType":"ElementaryTypeName","src":"47545:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47508:48:138"},"returnParameters":{"id":46308,"nodeType":"ParameterList","parameters":[],"src":"47571:0:138"},"scope":48415,"src":"47496:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46343,"nodeType":"Block","src":"47752:96:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":46335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47796:30:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":46336,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46323,"src":"47828:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46337,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46325,"src":"47832:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46338,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46327,"src":"47836:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46339,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46329,"src":"47840:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46333,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47772:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47772:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47772:71:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46332,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"47756:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47756:88:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46342,"nodeType":"ExpressionStatement","src":"47756:88:138"}]},"id":46344,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47680:3:138","nodeType":"FunctionDefinition","parameters":{"id":46330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46323,"mutability":"mutable","name":"p0","nameLocation":"47689:2:138","nodeType":"VariableDeclaration","scope":46344,"src":"47684:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46322,"name":"bool","nodeType":"ElementaryTypeName","src":"47684:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46325,"mutability":"mutable","name":"p1","nameLocation":"47698:2:138","nodeType":"VariableDeclaration","scope":46344,"src":"47693:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46324,"name":"bool","nodeType":"ElementaryTypeName","src":"47693:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46327,"mutability":"mutable","name":"p2","nameLocation":"47716:2:138","nodeType":"VariableDeclaration","scope":46344,"src":"47702:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46326,"name":"string","nodeType":"ElementaryTypeName","src":"47702:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46329,"mutability":"mutable","name":"p3","nameLocation":"47734:2:138","nodeType":"VariableDeclaration","scope":46344,"src":"47720:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46328,"name":"string","nodeType":"ElementaryTypeName","src":"47720:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47683:54:138"},"returnParameters":{"id":46331,"nodeType":"ParameterList","parameters":[],"src":"47752:0:138"},"scope":48415,"src":"47671:177:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46366,"nodeType":"Block","src":"47923:94:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":46358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47967:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":46359,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46346,"src":"47997:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46360,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46348,"src":"48001:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46361,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46350,"src":"48005:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46362,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46352,"src":"48009:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47943:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47943:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47943:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46355,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"47927:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47927:86:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46365,"nodeType":"ExpressionStatement","src":"47927:86:138"}]},"id":46367,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47860:3:138","nodeType":"FunctionDefinition","parameters":{"id":46353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46346,"mutability":"mutable","name":"p0","nameLocation":"47869:2:138","nodeType":"VariableDeclaration","scope":46367,"src":"47864:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46345,"name":"bool","nodeType":"ElementaryTypeName","src":"47864:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46348,"mutability":"mutable","name":"p1","nameLocation":"47878:2:138","nodeType":"VariableDeclaration","scope":46367,"src":"47873:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46347,"name":"bool","nodeType":"ElementaryTypeName","src":"47873:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46350,"mutability":"mutable","name":"p2","nameLocation":"47896:2:138","nodeType":"VariableDeclaration","scope":46367,"src":"47882:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46349,"name":"string","nodeType":"ElementaryTypeName","src":"47882:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46352,"mutability":"mutable","name":"p3","nameLocation":"47905:2:138","nodeType":"VariableDeclaration","scope":46367,"src":"47900:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46351,"name":"bool","nodeType":"ElementaryTypeName","src":"47900:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47863:45:138"},"returnParameters":{"id":46354,"nodeType":"ParameterList","parameters":[],"src":"47923:0:138"},"scope":48415,"src":"47851:166:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46389,"nodeType":"Block","src":"48095:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":46381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48139:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":46382,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46369,"src":"48172:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46383,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46371,"src":"48176:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46384,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46373,"src":"48180:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46385,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"48184:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48115:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48115:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48115:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46378,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"48099:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48099:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46388,"nodeType":"ExpressionStatement","src":"48099:89:138"}]},"id":46390,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48029:3:138","nodeType":"FunctionDefinition","parameters":{"id":46376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46369,"mutability":"mutable","name":"p0","nameLocation":"48038:2:138","nodeType":"VariableDeclaration","scope":46390,"src":"48033:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46368,"name":"bool","nodeType":"ElementaryTypeName","src":"48033:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46371,"mutability":"mutable","name":"p1","nameLocation":"48047:2:138","nodeType":"VariableDeclaration","scope":46390,"src":"48042:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46370,"name":"bool","nodeType":"ElementaryTypeName","src":"48042:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46373,"mutability":"mutable","name":"p2","nameLocation":"48065:2:138","nodeType":"VariableDeclaration","scope":46390,"src":"48051:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46372,"name":"string","nodeType":"ElementaryTypeName","src":"48051:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46375,"mutability":"mutable","name":"p3","nameLocation":"48077:2:138","nodeType":"VariableDeclaration","scope":46390,"src":"48069:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46374,"name":"address","nodeType":"ElementaryTypeName","src":"48069:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48032:48:138"},"returnParameters":{"id":46377,"nodeType":"ParameterList","parameters":[],"src":"48095:0:138"},"scope":48415,"src":"48020:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46412,"nodeType":"Block","src":"48261:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629","id":46404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48305:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},"value":"log(bool,bool,bool,uint256)"},{"id":46405,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46392,"src":"48336:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46406,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46394,"src":"48340:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46407,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46396,"src":"48344:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46408,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46398,"src":"48348:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46402,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48281:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48281:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48281:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46401,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"48265:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48265:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46411,"nodeType":"ExpressionStatement","src":"48265:87:138"}]},"id":46413,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48204:3:138","nodeType":"FunctionDefinition","parameters":{"id":46399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46392,"mutability":"mutable","name":"p0","nameLocation":"48213:2:138","nodeType":"VariableDeclaration","scope":46413,"src":"48208:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46391,"name":"bool","nodeType":"ElementaryTypeName","src":"48208:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46394,"mutability":"mutable","name":"p1","nameLocation":"48222:2:138","nodeType":"VariableDeclaration","scope":46413,"src":"48217:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46393,"name":"bool","nodeType":"ElementaryTypeName","src":"48217:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46396,"mutability":"mutable","name":"p2","nameLocation":"48231:2:138","nodeType":"VariableDeclaration","scope":46413,"src":"48226:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46395,"name":"bool","nodeType":"ElementaryTypeName","src":"48226:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46398,"mutability":"mutable","name":"p3","nameLocation":"48243:2:138","nodeType":"VariableDeclaration","scope":46413,"src":"48235:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46397,"name":"uint256","nodeType":"ElementaryTypeName","src":"48235:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48207:39:138"},"returnParameters":{"id":46400,"nodeType":"ParameterList","parameters":[],"src":"48261:0:138"},"scope":48415,"src":"48195:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46435,"nodeType":"Block","src":"48431:94:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":46427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48475:28:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":46428,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46415,"src":"48505:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46429,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46417,"src":"48509:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46430,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46419,"src":"48513:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46431,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46421,"src":"48517:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46425,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48451:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48451:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48451:69:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46424,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"48435:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48435:86:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46434,"nodeType":"ExpressionStatement","src":"48435:86:138"}]},"id":46436,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48368:3:138","nodeType":"FunctionDefinition","parameters":{"id":46422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46415,"mutability":"mutable","name":"p0","nameLocation":"48377:2:138","nodeType":"VariableDeclaration","scope":46436,"src":"48372:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46414,"name":"bool","nodeType":"ElementaryTypeName","src":"48372:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46417,"mutability":"mutable","name":"p1","nameLocation":"48386:2:138","nodeType":"VariableDeclaration","scope":46436,"src":"48381:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46416,"name":"bool","nodeType":"ElementaryTypeName","src":"48381:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46419,"mutability":"mutable","name":"p2","nameLocation":"48395:2:138","nodeType":"VariableDeclaration","scope":46436,"src":"48390:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46418,"name":"bool","nodeType":"ElementaryTypeName","src":"48390:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46421,"mutability":"mutable","name":"p3","nameLocation":"48413:2:138","nodeType":"VariableDeclaration","scope":46436,"src":"48399:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46420,"name":"string","nodeType":"ElementaryTypeName","src":"48399:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48371:45:138"},"returnParameters":{"id":46423,"nodeType":"ParameterList","parameters":[],"src":"48431:0:138"},"scope":48415,"src":"48359:166:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46458,"nodeType":"Block","src":"48591:92:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":46450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48635:26:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":46451,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46438,"src":"48663:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46452,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46440,"src":"48667:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46453,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46442,"src":"48671:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46454,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46444,"src":"48675:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48611:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48611:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48611:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46447,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"48595:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48595:84:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46457,"nodeType":"ExpressionStatement","src":"48595:84:138"}]},"id":46459,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48537:3:138","nodeType":"FunctionDefinition","parameters":{"id":46445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46438,"mutability":"mutable","name":"p0","nameLocation":"48546:2:138","nodeType":"VariableDeclaration","scope":46459,"src":"48541:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46437,"name":"bool","nodeType":"ElementaryTypeName","src":"48541:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46440,"mutability":"mutable","name":"p1","nameLocation":"48555:2:138","nodeType":"VariableDeclaration","scope":46459,"src":"48550:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46439,"name":"bool","nodeType":"ElementaryTypeName","src":"48550:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46442,"mutability":"mutable","name":"p2","nameLocation":"48564:2:138","nodeType":"VariableDeclaration","scope":46459,"src":"48559:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46441,"name":"bool","nodeType":"ElementaryTypeName","src":"48559:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46444,"mutability":"mutable","name":"p3","nameLocation":"48573:2:138","nodeType":"VariableDeclaration","scope":46459,"src":"48568:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46443,"name":"bool","nodeType":"ElementaryTypeName","src":"48568:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48540:36:138"},"returnParameters":{"id":46446,"nodeType":"ParameterList","parameters":[],"src":"48591:0:138"},"scope":48415,"src":"48528:155:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46481,"nodeType":"Block","src":"48752:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":46473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48796:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":46474,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46461,"src":"48827:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46475,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46463,"src":"48831:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46476,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46465,"src":"48835:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46477,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46467,"src":"48839:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46471,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48772:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48772:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48772:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46470,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"48756:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48756:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46480,"nodeType":"ExpressionStatement","src":"48756:87:138"}]},"id":46482,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48695:3:138","nodeType":"FunctionDefinition","parameters":{"id":46468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46461,"mutability":"mutable","name":"p0","nameLocation":"48704:2:138","nodeType":"VariableDeclaration","scope":46482,"src":"48699:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46460,"name":"bool","nodeType":"ElementaryTypeName","src":"48699:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46463,"mutability":"mutable","name":"p1","nameLocation":"48713:2:138","nodeType":"VariableDeclaration","scope":46482,"src":"48708:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46462,"name":"bool","nodeType":"ElementaryTypeName","src":"48708:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46465,"mutability":"mutable","name":"p2","nameLocation":"48722:2:138","nodeType":"VariableDeclaration","scope":46482,"src":"48717:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46464,"name":"bool","nodeType":"ElementaryTypeName","src":"48717:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46467,"mutability":"mutable","name":"p3","nameLocation":"48734:2:138","nodeType":"VariableDeclaration","scope":46482,"src":"48726:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46466,"name":"address","nodeType":"ElementaryTypeName","src":"48726:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48698:39:138"},"returnParameters":{"id":46469,"nodeType":"ParameterList","parameters":[],"src":"48752:0:138"},"scope":48415,"src":"48686:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46504,"nodeType":"Block","src":"48919:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629","id":46496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48963:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},"value":"log(bool,bool,address,uint256)"},{"id":46497,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46484,"src":"48997:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46498,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46486,"src":"49001:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46499,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46488,"src":"49005:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46500,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46490,"src":"49009:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48939:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48939:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48939:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46493,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"48923:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48923:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46503,"nodeType":"ExpressionStatement","src":"48923:90:138"}]},"id":46505,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48859:3:138","nodeType":"FunctionDefinition","parameters":{"id":46491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46484,"mutability":"mutable","name":"p0","nameLocation":"48868:2:138","nodeType":"VariableDeclaration","scope":46505,"src":"48863:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46483,"name":"bool","nodeType":"ElementaryTypeName","src":"48863:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46486,"mutability":"mutable","name":"p1","nameLocation":"48877:2:138","nodeType":"VariableDeclaration","scope":46505,"src":"48872:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46485,"name":"bool","nodeType":"ElementaryTypeName","src":"48872:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46488,"mutability":"mutable","name":"p2","nameLocation":"48889:2:138","nodeType":"VariableDeclaration","scope":46505,"src":"48881:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46487,"name":"address","nodeType":"ElementaryTypeName","src":"48881:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46490,"mutability":"mutable","name":"p3","nameLocation":"48901:2:138","nodeType":"VariableDeclaration","scope":46505,"src":"48893:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46489,"name":"uint256","nodeType":"ElementaryTypeName","src":"48893:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48862:42:138"},"returnParameters":{"id":46492,"nodeType":"ParameterList","parameters":[],"src":"48919:0:138"},"scope":48415,"src":"48850:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46527,"nodeType":"Block","src":"49095:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":46519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49139:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":46520,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46507,"src":"49172:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46521,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46509,"src":"49176:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46522,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46511,"src":"49180:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46523,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46513,"src":"49184:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49115:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49115:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49115:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46516,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"49099:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49099:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46526,"nodeType":"ExpressionStatement","src":"49099:89:138"}]},"id":46528,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49029:3:138","nodeType":"FunctionDefinition","parameters":{"id":46514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46507,"mutability":"mutable","name":"p0","nameLocation":"49038:2:138","nodeType":"VariableDeclaration","scope":46528,"src":"49033:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46506,"name":"bool","nodeType":"ElementaryTypeName","src":"49033:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46509,"mutability":"mutable","name":"p1","nameLocation":"49047:2:138","nodeType":"VariableDeclaration","scope":46528,"src":"49042:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46508,"name":"bool","nodeType":"ElementaryTypeName","src":"49042:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46511,"mutability":"mutable","name":"p2","nameLocation":"49059:2:138","nodeType":"VariableDeclaration","scope":46528,"src":"49051:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46510,"name":"address","nodeType":"ElementaryTypeName","src":"49051:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46513,"mutability":"mutable","name":"p3","nameLocation":"49077:2:138","nodeType":"VariableDeclaration","scope":46528,"src":"49063:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46512,"name":"string","nodeType":"ElementaryTypeName","src":"49063:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49032:48:138"},"returnParameters":{"id":46515,"nodeType":"ParameterList","parameters":[],"src":"49095:0:138"},"scope":48415,"src":"49020:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46550,"nodeType":"Block","src":"49261:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":46542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49305:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":46543,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46530,"src":"49336:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46544,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46532,"src":"49340:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46545,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46534,"src":"49344:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46546,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46536,"src":"49348:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46540,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49281:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49281:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49281:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46539,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"49265:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49265:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46549,"nodeType":"ExpressionStatement","src":"49265:87:138"}]},"id":46551,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49204:3:138","nodeType":"FunctionDefinition","parameters":{"id":46537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46530,"mutability":"mutable","name":"p0","nameLocation":"49213:2:138","nodeType":"VariableDeclaration","scope":46551,"src":"49208:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46529,"name":"bool","nodeType":"ElementaryTypeName","src":"49208:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46532,"mutability":"mutable","name":"p1","nameLocation":"49222:2:138","nodeType":"VariableDeclaration","scope":46551,"src":"49217:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46531,"name":"bool","nodeType":"ElementaryTypeName","src":"49217:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46534,"mutability":"mutable","name":"p2","nameLocation":"49234:2:138","nodeType":"VariableDeclaration","scope":46551,"src":"49226:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46533,"name":"address","nodeType":"ElementaryTypeName","src":"49226:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46536,"mutability":"mutable","name":"p3","nameLocation":"49243:2:138","nodeType":"VariableDeclaration","scope":46551,"src":"49238:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46535,"name":"bool","nodeType":"ElementaryTypeName","src":"49238:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49207:39:138"},"returnParameters":{"id":46538,"nodeType":"ParameterList","parameters":[],"src":"49261:0:138"},"scope":48415,"src":"49195:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46573,"nodeType":"Block","src":"49428:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":46565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49472:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":46566,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46553,"src":"49506:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46567,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46555,"src":"49510:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46568,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46557,"src":"49514:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46569,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46559,"src":"49518:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46563,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49448:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49448:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49448:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46562,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"49432:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49432:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46572,"nodeType":"ExpressionStatement","src":"49432:90:138"}]},"id":46574,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49368:3:138","nodeType":"FunctionDefinition","parameters":{"id":46560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46553,"mutability":"mutable","name":"p0","nameLocation":"49377:2:138","nodeType":"VariableDeclaration","scope":46574,"src":"49372:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46552,"name":"bool","nodeType":"ElementaryTypeName","src":"49372:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46555,"mutability":"mutable","name":"p1","nameLocation":"49386:2:138","nodeType":"VariableDeclaration","scope":46574,"src":"49381:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46554,"name":"bool","nodeType":"ElementaryTypeName","src":"49381:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46557,"mutability":"mutable","name":"p2","nameLocation":"49398:2:138","nodeType":"VariableDeclaration","scope":46574,"src":"49390:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46556,"name":"address","nodeType":"ElementaryTypeName","src":"49390:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46559,"mutability":"mutable","name":"p3","nameLocation":"49410:2:138","nodeType":"VariableDeclaration","scope":46574,"src":"49402:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46558,"name":"address","nodeType":"ElementaryTypeName","src":"49402:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49371:42:138"},"returnParameters":{"id":46561,"nodeType":"ParameterList","parameters":[],"src":"49428:0:138"},"scope":48415,"src":"49359:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46596,"nodeType":"Block","src":"49601:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629","id":46588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49645:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},"value":"log(bool,address,uint256,uint256)"},{"id":46589,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46576,"src":"49682:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46590,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46578,"src":"49686:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46591,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46580,"src":"49690:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46592,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46582,"src":"49694:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46586,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49621:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49621:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49621:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46585,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"49605:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49605:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46595,"nodeType":"ExpressionStatement","src":"49605:93:138"}]},"id":46597,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49538:3:138","nodeType":"FunctionDefinition","parameters":{"id":46583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46576,"mutability":"mutable","name":"p0","nameLocation":"49547:2:138","nodeType":"VariableDeclaration","scope":46597,"src":"49542:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46575,"name":"bool","nodeType":"ElementaryTypeName","src":"49542:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46578,"mutability":"mutable","name":"p1","nameLocation":"49559:2:138","nodeType":"VariableDeclaration","scope":46597,"src":"49551:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46577,"name":"address","nodeType":"ElementaryTypeName","src":"49551:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46580,"mutability":"mutable","name":"p2","nameLocation":"49571:2:138","nodeType":"VariableDeclaration","scope":46597,"src":"49563:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46579,"name":"uint256","nodeType":"ElementaryTypeName","src":"49563:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46582,"mutability":"mutable","name":"p3","nameLocation":"49583:2:138","nodeType":"VariableDeclaration","scope":46597,"src":"49575:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46581,"name":"uint256","nodeType":"ElementaryTypeName","src":"49575:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49541:45:138"},"returnParameters":{"id":46584,"nodeType":"ParameterList","parameters":[],"src":"49601:0:138"},"scope":48415,"src":"49529:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46619,"nodeType":"Block","src":"49783:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729","id":46611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49827:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},"value":"log(bool,address,uint256,string)"},{"id":46612,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46599,"src":"49863:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46613,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46601,"src":"49867:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46614,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46603,"src":"49871:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46615,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46605,"src":"49875:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46609,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49803:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49803:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49803:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46608,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"49787:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49787:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46618,"nodeType":"ExpressionStatement","src":"49787:92:138"}]},"id":46620,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49714:3:138","nodeType":"FunctionDefinition","parameters":{"id":46606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46599,"mutability":"mutable","name":"p0","nameLocation":"49723:2:138","nodeType":"VariableDeclaration","scope":46620,"src":"49718:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46598,"name":"bool","nodeType":"ElementaryTypeName","src":"49718:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46601,"mutability":"mutable","name":"p1","nameLocation":"49735:2:138","nodeType":"VariableDeclaration","scope":46620,"src":"49727:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46600,"name":"address","nodeType":"ElementaryTypeName","src":"49727:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46603,"mutability":"mutable","name":"p2","nameLocation":"49747:2:138","nodeType":"VariableDeclaration","scope":46620,"src":"49739:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46602,"name":"uint256","nodeType":"ElementaryTypeName","src":"49739:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46605,"mutability":"mutable","name":"p3","nameLocation":"49765:2:138","nodeType":"VariableDeclaration","scope":46620,"src":"49751:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46604,"name":"string","nodeType":"ElementaryTypeName","src":"49751:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49717:51:138"},"returnParameters":{"id":46607,"nodeType":"ParameterList","parameters":[],"src":"49783:0:138"},"scope":48415,"src":"49705:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46642,"nodeType":"Block","src":"49955:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29","id":46634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49999:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},"value":"log(bool,address,uint256,bool)"},{"id":46635,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46622,"src":"50033:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46636,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46624,"src":"50037:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46637,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46626,"src":"50041:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46638,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46628,"src":"50045:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46632,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49975:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49975:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49975:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46631,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"49959:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49959:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46641,"nodeType":"ExpressionStatement","src":"49959:90:138"}]},"id":46643,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49895:3:138","nodeType":"FunctionDefinition","parameters":{"id":46629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46622,"mutability":"mutable","name":"p0","nameLocation":"49904:2:138","nodeType":"VariableDeclaration","scope":46643,"src":"49899:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46621,"name":"bool","nodeType":"ElementaryTypeName","src":"49899:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46624,"mutability":"mutable","name":"p1","nameLocation":"49916:2:138","nodeType":"VariableDeclaration","scope":46643,"src":"49908:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46623,"name":"address","nodeType":"ElementaryTypeName","src":"49908:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46626,"mutability":"mutable","name":"p2","nameLocation":"49928:2:138","nodeType":"VariableDeclaration","scope":46643,"src":"49920:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46625,"name":"uint256","nodeType":"ElementaryTypeName","src":"49920:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46628,"mutability":"mutable","name":"p3","nameLocation":"49937:2:138","nodeType":"VariableDeclaration","scope":46643,"src":"49932:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46627,"name":"bool","nodeType":"ElementaryTypeName","src":"49932:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49898:42:138"},"returnParameters":{"id":46630,"nodeType":"ParameterList","parameters":[],"src":"49955:0:138"},"scope":48415,"src":"49886:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46665,"nodeType":"Block","src":"50128:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329","id":46657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50172:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},"value":"log(bool,address,uint256,address)"},{"id":46658,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46645,"src":"50209:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46659,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46647,"src":"50213:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46660,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46649,"src":"50217:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46661,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46651,"src":"50221:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46655,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50148:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50148:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50148:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46654,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"50132:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50132:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46664,"nodeType":"ExpressionStatement","src":"50132:93:138"}]},"id":46666,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50065:3:138","nodeType":"FunctionDefinition","parameters":{"id":46652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46645,"mutability":"mutable","name":"p0","nameLocation":"50074:2:138","nodeType":"VariableDeclaration","scope":46666,"src":"50069:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46644,"name":"bool","nodeType":"ElementaryTypeName","src":"50069:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46647,"mutability":"mutable","name":"p1","nameLocation":"50086:2:138","nodeType":"VariableDeclaration","scope":46666,"src":"50078:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46646,"name":"address","nodeType":"ElementaryTypeName","src":"50078:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46649,"mutability":"mutable","name":"p2","nameLocation":"50098:2:138","nodeType":"VariableDeclaration","scope":46666,"src":"50090:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46648,"name":"uint256","nodeType":"ElementaryTypeName","src":"50090:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46651,"mutability":"mutable","name":"p3","nameLocation":"50110:2:138","nodeType":"VariableDeclaration","scope":46666,"src":"50102:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46650,"name":"address","nodeType":"ElementaryTypeName","src":"50102:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50068:45:138"},"returnParameters":{"id":46653,"nodeType":"ParameterList","parameters":[],"src":"50128:0:138"},"scope":48415,"src":"50056:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46688,"nodeType":"Block","src":"50310:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629","id":46680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50354:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},"value":"log(bool,address,string,uint256)"},{"id":46681,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46668,"src":"50390:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46682,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46670,"src":"50394:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46683,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46672,"src":"50398:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46684,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46674,"src":"50402:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50330:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50330:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50330:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46677,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"50314:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50314:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46687,"nodeType":"ExpressionStatement","src":"50314:92:138"}]},"id":46689,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50241:3:138","nodeType":"FunctionDefinition","parameters":{"id":46675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46668,"mutability":"mutable","name":"p0","nameLocation":"50250:2:138","nodeType":"VariableDeclaration","scope":46689,"src":"50245:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46667,"name":"bool","nodeType":"ElementaryTypeName","src":"50245:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46670,"mutability":"mutable","name":"p1","nameLocation":"50262:2:138","nodeType":"VariableDeclaration","scope":46689,"src":"50254:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46669,"name":"address","nodeType":"ElementaryTypeName","src":"50254:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46672,"mutability":"mutable","name":"p2","nameLocation":"50280:2:138","nodeType":"VariableDeclaration","scope":46689,"src":"50266:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46671,"name":"string","nodeType":"ElementaryTypeName","src":"50266:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46674,"mutability":"mutable","name":"p3","nameLocation":"50292:2:138","nodeType":"VariableDeclaration","scope":46689,"src":"50284:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46673,"name":"uint256","nodeType":"ElementaryTypeName","src":"50284:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50244:51:138"},"returnParameters":{"id":46676,"nodeType":"ParameterList","parameters":[],"src":"50310:0:138"},"scope":48415,"src":"50232:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46711,"nodeType":"Block","src":"50497:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":46703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50541:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":46704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46691,"src":"50576:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46705,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46693,"src":"50580:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46706,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46695,"src":"50584:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46707,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46697,"src":"50588:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50517:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50517:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50517:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"50501:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50501:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46710,"nodeType":"ExpressionStatement","src":"50501:91:138"}]},"id":46712,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50422:3:138","nodeType":"FunctionDefinition","parameters":{"id":46698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46691,"mutability":"mutable","name":"p0","nameLocation":"50431:2:138","nodeType":"VariableDeclaration","scope":46712,"src":"50426:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46690,"name":"bool","nodeType":"ElementaryTypeName","src":"50426:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46693,"mutability":"mutable","name":"p1","nameLocation":"50443:2:138","nodeType":"VariableDeclaration","scope":46712,"src":"50435:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46692,"name":"address","nodeType":"ElementaryTypeName","src":"50435:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46695,"mutability":"mutable","name":"p2","nameLocation":"50461:2:138","nodeType":"VariableDeclaration","scope":46712,"src":"50447:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46694,"name":"string","nodeType":"ElementaryTypeName","src":"50447:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46697,"mutability":"mutable","name":"p3","nameLocation":"50479:2:138","nodeType":"VariableDeclaration","scope":46712,"src":"50465:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46696,"name":"string","nodeType":"ElementaryTypeName","src":"50465:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50425:57:138"},"returnParameters":{"id":46699,"nodeType":"ParameterList","parameters":[],"src":"50497:0:138"},"scope":48415,"src":"50413:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46734,"nodeType":"Block","src":"50674:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":46726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50718:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":46727,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46714,"src":"50751:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46728,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46716,"src":"50755:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46729,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46718,"src":"50759:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46730,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46720,"src":"50763:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46724,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50694:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50694:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50694:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46723,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"50678:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50678:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46733,"nodeType":"ExpressionStatement","src":"50678:89:138"}]},"id":46735,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50608:3:138","nodeType":"FunctionDefinition","parameters":{"id":46721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46714,"mutability":"mutable","name":"p0","nameLocation":"50617:2:138","nodeType":"VariableDeclaration","scope":46735,"src":"50612:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46713,"name":"bool","nodeType":"ElementaryTypeName","src":"50612:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46716,"mutability":"mutable","name":"p1","nameLocation":"50629:2:138","nodeType":"VariableDeclaration","scope":46735,"src":"50621:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46715,"name":"address","nodeType":"ElementaryTypeName","src":"50621:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46718,"mutability":"mutable","name":"p2","nameLocation":"50647:2:138","nodeType":"VariableDeclaration","scope":46735,"src":"50633:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46717,"name":"string","nodeType":"ElementaryTypeName","src":"50633:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46720,"mutability":"mutable","name":"p3","nameLocation":"50656:2:138","nodeType":"VariableDeclaration","scope":46735,"src":"50651:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46719,"name":"bool","nodeType":"ElementaryTypeName","src":"50651:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50611:48:138"},"returnParameters":{"id":46722,"nodeType":"ParameterList","parameters":[],"src":"50674:0:138"},"scope":48415,"src":"50599:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46757,"nodeType":"Block","src":"50852:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":46749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50896:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":46750,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46737,"src":"50932:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46751,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46739,"src":"50936:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46752,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46741,"src":"50940:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":46753,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46743,"src":"50944:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46747,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50872:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50872:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50872:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46746,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"50856:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50856:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46756,"nodeType":"ExpressionStatement","src":"50856:92:138"}]},"id":46758,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50783:3:138","nodeType":"FunctionDefinition","parameters":{"id":46744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46737,"mutability":"mutable","name":"p0","nameLocation":"50792:2:138","nodeType":"VariableDeclaration","scope":46758,"src":"50787:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46736,"name":"bool","nodeType":"ElementaryTypeName","src":"50787:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46739,"mutability":"mutable","name":"p1","nameLocation":"50804:2:138","nodeType":"VariableDeclaration","scope":46758,"src":"50796:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46738,"name":"address","nodeType":"ElementaryTypeName","src":"50796:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46741,"mutability":"mutable","name":"p2","nameLocation":"50822:2:138","nodeType":"VariableDeclaration","scope":46758,"src":"50808:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46740,"name":"string","nodeType":"ElementaryTypeName","src":"50808:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":46743,"mutability":"mutable","name":"p3","nameLocation":"50834:2:138","nodeType":"VariableDeclaration","scope":46758,"src":"50826:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46742,"name":"address","nodeType":"ElementaryTypeName","src":"50826:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50786:51:138"},"returnParameters":{"id":46745,"nodeType":"ParameterList","parameters":[],"src":"50852:0:138"},"scope":48415,"src":"50774:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46780,"nodeType":"Block","src":"51024:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629","id":46772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51068:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},"value":"log(bool,address,bool,uint256)"},{"id":46773,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46760,"src":"51102:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46774,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46762,"src":"51106:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46775,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46764,"src":"51110:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46776,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46766,"src":"51114:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46770,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51044:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51044:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51044:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46769,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"51028:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51028:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46779,"nodeType":"ExpressionStatement","src":"51028:90:138"}]},"id":46781,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50964:3:138","nodeType":"FunctionDefinition","parameters":{"id":46767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46760,"mutability":"mutable","name":"p0","nameLocation":"50973:2:138","nodeType":"VariableDeclaration","scope":46781,"src":"50968:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46759,"name":"bool","nodeType":"ElementaryTypeName","src":"50968:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46762,"mutability":"mutable","name":"p1","nameLocation":"50985:2:138","nodeType":"VariableDeclaration","scope":46781,"src":"50977:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46761,"name":"address","nodeType":"ElementaryTypeName","src":"50977:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46764,"mutability":"mutable","name":"p2","nameLocation":"50994:2:138","nodeType":"VariableDeclaration","scope":46781,"src":"50989:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46763,"name":"bool","nodeType":"ElementaryTypeName","src":"50989:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46766,"mutability":"mutable","name":"p3","nameLocation":"51006:2:138","nodeType":"VariableDeclaration","scope":46781,"src":"50998:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46765,"name":"uint256","nodeType":"ElementaryTypeName","src":"50998:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50967:42:138"},"returnParameters":{"id":46768,"nodeType":"ParameterList","parameters":[],"src":"51024:0:138"},"scope":48415,"src":"50955:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46803,"nodeType":"Block","src":"51200:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":46795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51244:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":46796,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46783,"src":"51277:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46797,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46785,"src":"51281:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46798,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46787,"src":"51285:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46799,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46789,"src":"51289:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46793,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51220:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51220:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51220:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46792,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"51204:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51204:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46802,"nodeType":"ExpressionStatement","src":"51204:89:138"}]},"id":46804,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51134:3:138","nodeType":"FunctionDefinition","parameters":{"id":46790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46783,"mutability":"mutable","name":"p0","nameLocation":"51143:2:138","nodeType":"VariableDeclaration","scope":46804,"src":"51138:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46782,"name":"bool","nodeType":"ElementaryTypeName","src":"51138:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46785,"mutability":"mutable","name":"p1","nameLocation":"51155:2:138","nodeType":"VariableDeclaration","scope":46804,"src":"51147:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46784,"name":"address","nodeType":"ElementaryTypeName","src":"51147:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46787,"mutability":"mutable","name":"p2","nameLocation":"51164:2:138","nodeType":"VariableDeclaration","scope":46804,"src":"51159:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46786,"name":"bool","nodeType":"ElementaryTypeName","src":"51159:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46789,"mutability":"mutable","name":"p3","nameLocation":"51182:2:138","nodeType":"VariableDeclaration","scope":46804,"src":"51168:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46788,"name":"string","nodeType":"ElementaryTypeName","src":"51168:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51137:48:138"},"returnParameters":{"id":46791,"nodeType":"ParameterList","parameters":[],"src":"51200:0:138"},"scope":48415,"src":"51125:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46826,"nodeType":"Block","src":"51366:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":46818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51410:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":46819,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46806,"src":"51441:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46820,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46808,"src":"51445:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46821,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46810,"src":"51449:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46822,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46812,"src":"51453:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51386:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51386:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51386:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46815,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"51370:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51370:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46825,"nodeType":"ExpressionStatement","src":"51370:87:138"}]},"id":46827,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51309:3:138","nodeType":"FunctionDefinition","parameters":{"id":46813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46806,"mutability":"mutable","name":"p0","nameLocation":"51318:2:138","nodeType":"VariableDeclaration","scope":46827,"src":"51313:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46805,"name":"bool","nodeType":"ElementaryTypeName","src":"51313:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46808,"mutability":"mutable","name":"p1","nameLocation":"51330:2:138","nodeType":"VariableDeclaration","scope":46827,"src":"51322:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46807,"name":"address","nodeType":"ElementaryTypeName","src":"51322:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46810,"mutability":"mutable","name":"p2","nameLocation":"51339:2:138","nodeType":"VariableDeclaration","scope":46827,"src":"51334:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46809,"name":"bool","nodeType":"ElementaryTypeName","src":"51334:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46812,"mutability":"mutable","name":"p3","nameLocation":"51348:2:138","nodeType":"VariableDeclaration","scope":46827,"src":"51343:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46811,"name":"bool","nodeType":"ElementaryTypeName","src":"51343:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51312:39:138"},"returnParameters":{"id":46814,"nodeType":"ParameterList","parameters":[],"src":"51366:0:138"},"scope":48415,"src":"51300:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46849,"nodeType":"Block","src":"51533:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":46841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51577:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":46842,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46829,"src":"51611:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46843,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46831,"src":"51615:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46844,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46833,"src":"51619:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46845,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46835,"src":"51623:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46839,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51553:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51553:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51553:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46838,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"51537:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51537:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46848,"nodeType":"ExpressionStatement","src":"51537:90:138"}]},"id":46850,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51473:3:138","nodeType":"FunctionDefinition","parameters":{"id":46836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46829,"mutability":"mutable","name":"p0","nameLocation":"51482:2:138","nodeType":"VariableDeclaration","scope":46850,"src":"51477:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46828,"name":"bool","nodeType":"ElementaryTypeName","src":"51477:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46831,"mutability":"mutable","name":"p1","nameLocation":"51494:2:138","nodeType":"VariableDeclaration","scope":46850,"src":"51486:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46830,"name":"address","nodeType":"ElementaryTypeName","src":"51486:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46833,"mutability":"mutable","name":"p2","nameLocation":"51503:2:138","nodeType":"VariableDeclaration","scope":46850,"src":"51498:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46832,"name":"bool","nodeType":"ElementaryTypeName","src":"51498:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46835,"mutability":"mutable","name":"p3","nameLocation":"51515:2:138","nodeType":"VariableDeclaration","scope":46850,"src":"51507:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46834,"name":"address","nodeType":"ElementaryTypeName","src":"51507:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51476:42:138"},"returnParameters":{"id":46837,"nodeType":"ParameterList","parameters":[],"src":"51533:0:138"},"scope":48415,"src":"51464:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46872,"nodeType":"Block","src":"51706:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629","id":46864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51750:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},"value":"log(bool,address,address,uint256)"},{"id":46865,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46852,"src":"51787:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46866,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46854,"src":"51791:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46867,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46856,"src":"51795:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46868,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46858,"src":"51799:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46862,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51726:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51726:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51726:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46861,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"51710:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51710:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46871,"nodeType":"ExpressionStatement","src":"51710:93:138"}]},"id":46873,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51643:3:138","nodeType":"FunctionDefinition","parameters":{"id":46859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46852,"mutability":"mutable","name":"p0","nameLocation":"51652:2:138","nodeType":"VariableDeclaration","scope":46873,"src":"51647:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46851,"name":"bool","nodeType":"ElementaryTypeName","src":"51647:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46854,"mutability":"mutable","name":"p1","nameLocation":"51664:2:138","nodeType":"VariableDeclaration","scope":46873,"src":"51656:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46853,"name":"address","nodeType":"ElementaryTypeName","src":"51656:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46856,"mutability":"mutable","name":"p2","nameLocation":"51676:2:138","nodeType":"VariableDeclaration","scope":46873,"src":"51668:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46855,"name":"address","nodeType":"ElementaryTypeName","src":"51668:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46858,"mutability":"mutable","name":"p3","nameLocation":"51688:2:138","nodeType":"VariableDeclaration","scope":46873,"src":"51680:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46857,"name":"uint256","nodeType":"ElementaryTypeName","src":"51680:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51646:45:138"},"returnParameters":{"id":46860,"nodeType":"ParameterList","parameters":[],"src":"51706:0:138"},"scope":48415,"src":"51634:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46895,"nodeType":"Block","src":"51888:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":46887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51932:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":46888,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46875,"src":"51968:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46889,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46877,"src":"51972:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46890,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46879,"src":"51976:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46891,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46881,"src":"51980:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46885,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51908:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51908:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51908:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46884,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"51892:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"51892:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46894,"nodeType":"ExpressionStatement","src":"51892:92:138"}]},"id":46896,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51819:3:138","nodeType":"FunctionDefinition","parameters":{"id":46882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46875,"mutability":"mutable","name":"p0","nameLocation":"51828:2:138","nodeType":"VariableDeclaration","scope":46896,"src":"51823:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46874,"name":"bool","nodeType":"ElementaryTypeName","src":"51823:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46877,"mutability":"mutable","name":"p1","nameLocation":"51840:2:138","nodeType":"VariableDeclaration","scope":46896,"src":"51832:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46876,"name":"address","nodeType":"ElementaryTypeName","src":"51832:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46879,"mutability":"mutable","name":"p2","nameLocation":"51852:2:138","nodeType":"VariableDeclaration","scope":46896,"src":"51844:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46878,"name":"address","nodeType":"ElementaryTypeName","src":"51844:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46881,"mutability":"mutable","name":"p3","nameLocation":"51870:2:138","nodeType":"VariableDeclaration","scope":46896,"src":"51856:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46880,"name":"string","nodeType":"ElementaryTypeName","src":"51856:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51822:51:138"},"returnParameters":{"id":46883,"nodeType":"ParameterList","parameters":[],"src":"51888:0:138"},"scope":48415,"src":"51810:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46918,"nodeType":"Block","src":"52060:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":46910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52104:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":46911,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"52138:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46912,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46900,"src":"52142:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46913,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46902,"src":"52146:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46914,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46904,"src":"52150:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":46908,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52080:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52080:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52080:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46907,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"52064:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52064:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46917,"nodeType":"ExpressionStatement","src":"52064:90:138"}]},"id":46919,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52000:3:138","nodeType":"FunctionDefinition","parameters":{"id":46905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46898,"mutability":"mutable","name":"p0","nameLocation":"52009:2:138","nodeType":"VariableDeclaration","scope":46919,"src":"52004:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46897,"name":"bool","nodeType":"ElementaryTypeName","src":"52004:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46900,"mutability":"mutable","name":"p1","nameLocation":"52021:2:138","nodeType":"VariableDeclaration","scope":46919,"src":"52013:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46899,"name":"address","nodeType":"ElementaryTypeName","src":"52013:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46902,"mutability":"mutable","name":"p2","nameLocation":"52033:2:138","nodeType":"VariableDeclaration","scope":46919,"src":"52025:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46901,"name":"address","nodeType":"ElementaryTypeName","src":"52025:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46904,"mutability":"mutable","name":"p3","nameLocation":"52042:2:138","nodeType":"VariableDeclaration","scope":46919,"src":"52037:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46903,"name":"bool","nodeType":"ElementaryTypeName","src":"52037:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52003:42:138"},"returnParameters":{"id":46906,"nodeType":"ParameterList","parameters":[],"src":"52060:0:138"},"scope":48415,"src":"51991:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46941,"nodeType":"Block","src":"52233:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":46933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52277:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":46934,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46921,"src":"52314:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":46935,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46923,"src":"52318:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46936,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46925,"src":"52322:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46937,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46927,"src":"52326:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46931,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52253:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52253:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52253:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46930,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"52237:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52237:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46940,"nodeType":"ExpressionStatement","src":"52237:93:138"}]},"id":46942,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52170:3:138","nodeType":"FunctionDefinition","parameters":{"id":46928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46921,"mutability":"mutable","name":"p0","nameLocation":"52179:2:138","nodeType":"VariableDeclaration","scope":46942,"src":"52174:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46920,"name":"bool","nodeType":"ElementaryTypeName","src":"52174:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46923,"mutability":"mutable","name":"p1","nameLocation":"52191:2:138","nodeType":"VariableDeclaration","scope":46942,"src":"52183:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46922,"name":"address","nodeType":"ElementaryTypeName","src":"52183:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46925,"mutability":"mutable","name":"p2","nameLocation":"52203:2:138","nodeType":"VariableDeclaration","scope":46942,"src":"52195:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46924,"name":"address","nodeType":"ElementaryTypeName","src":"52195:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46927,"mutability":"mutable","name":"p3","nameLocation":"52215:2:138","nodeType":"VariableDeclaration","scope":46942,"src":"52207:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46926,"name":"address","nodeType":"ElementaryTypeName","src":"52207:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52173:45:138"},"returnParameters":{"id":46929,"nodeType":"ParameterList","parameters":[],"src":"52233:0:138"},"scope":48415,"src":"52161:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46964,"nodeType":"Block","src":"52412:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629","id":46956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52456:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},"value":"log(address,uint256,uint256,uint256)"},{"id":46957,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46944,"src":"52496:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46958,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46946,"src":"52500:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46959,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46948,"src":"52504:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46960,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46950,"src":"52508:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52432:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52432:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52432:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46953,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"52416:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52416:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46963,"nodeType":"ExpressionStatement","src":"52416:96:138"}]},"id":46965,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52346:3:138","nodeType":"FunctionDefinition","parameters":{"id":46951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46944,"mutability":"mutable","name":"p0","nameLocation":"52358:2:138","nodeType":"VariableDeclaration","scope":46965,"src":"52350:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46943,"name":"address","nodeType":"ElementaryTypeName","src":"52350:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46946,"mutability":"mutable","name":"p1","nameLocation":"52370:2:138","nodeType":"VariableDeclaration","scope":46965,"src":"52362:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46945,"name":"uint256","nodeType":"ElementaryTypeName","src":"52362:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46948,"mutability":"mutable","name":"p2","nameLocation":"52382:2:138","nodeType":"VariableDeclaration","scope":46965,"src":"52374:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46947,"name":"uint256","nodeType":"ElementaryTypeName","src":"52374:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46950,"mutability":"mutable","name":"p3","nameLocation":"52394:2:138","nodeType":"VariableDeclaration","scope":46965,"src":"52386:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46949,"name":"uint256","nodeType":"ElementaryTypeName","src":"52386:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52349:48:138"},"returnParameters":{"id":46952,"nodeType":"ParameterList","parameters":[],"src":"52412:0:138"},"scope":48415,"src":"52337:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":46987,"nodeType":"Block","src":"52600:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729","id":46979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52644:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},"value":"log(address,uint256,uint256,string)"},{"id":46980,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46967,"src":"52683:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46981,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46969,"src":"52687:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46982,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46971,"src":"52691:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46983,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46973,"src":"52695:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46977,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52620:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52620:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":46984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52620:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46976,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"52604:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":46985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52604:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46986,"nodeType":"ExpressionStatement","src":"52604:95:138"}]},"id":46988,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52528:3:138","nodeType":"FunctionDefinition","parameters":{"id":46974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46967,"mutability":"mutable","name":"p0","nameLocation":"52540:2:138","nodeType":"VariableDeclaration","scope":46988,"src":"52532:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46966,"name":"address","nodeType":"ElementaryTypeName","src":"52532:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46969,"mutability":"mutable","name":"p1","nameLocation":"52552:2:138","nodeType":"VariableDeclaration","scope":46988,"src":"52544:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46968,"name":"uint256","nodeType":"ElementaryTypeName","src":"52544:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46971,"mutability":"mutable","name":"p2","nameLocation":"52564:2:138","nodeType":"VariableDeclaration","scope":46988,"src":"52556:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46970,"name":"uint256","nodeType":"ElementaryTypeName","src":"52556:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46973,"mutability":"mutable","name":"p3","nameLocation":"52582:2:138","nodeType":"VariableDeclaration","scope":46988,"src":"52568:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46972,"name":"string","nodeType":"ElementaryTypeName","src":"52568:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52531:54:138"},"returnParameters":{"id":46975,"nodeType":"ParameterList","parameters":[],"src":"52600:0:138"},"scope":48415,"src":"52519:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47010,"nodeType":"Block","src":"52778:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29","id":47002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52822:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},"value":"log(address,uint256,uint256,bool)"},{"id":47003,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46990,"src":"52859:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47004,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46992,"src":"52863:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47005,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46994,"src":"52867:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47006,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46996,"src":"52871:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52798:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52798:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52798:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46999,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"52782:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52782:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47009,"nodeType":"ExpressionStatement","src":"52782:93:138"}]},"id":47011,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52715:3:138","nodeType":"FunctionDefinition","parameters":{"id":46997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46990,"mutability":"mutable","name":"p0","nameLocation":"52727:2:138","nodeType":"VariableDeclaration","scope":47011,"src":"52719:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46989,"name":"address","nodeType":"ElementaryTypeName","src":"52719:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46992,"mutability":"mutable","name":"p1","nameLocation":"52739:2:138","nodeType":"VariableDeclaration","scope":47011,"src":"52731:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46991,"name":"uint256","nodeType":"ElementaryTypeName","src":"52731:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46994,"mutability":"mutable","name":"p2","nameLocation":"52751:2:138","nodeType":"VariableDeclaration","scope":47011,"src":"52743:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46993,"name":"uint256","nodeType":"ElementaryTypeName","src":"52743:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46996,"mutability":"mutable","name":"p3","nameLocation":"52760:2:138","nodeType":"VariableDeclaration","scope":47011,"src":"52755:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46995,"name":"bool","nodeType":"ElementaryTypeName","src":"52755:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52718:45:138"},"returnParameters":{"id":46998,"nodeType":"ParameterList","parameters":[],"src":"52778:0:138"},"scope":48415,"src":"52706:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47033,"nodeType":"Block","src":"52957:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329","id":47025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53001:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},"value":"log(address,uint256,uint256,address)"},{"id":47026,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47013,"src":"53041:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47027,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47015,"src":"53045:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47028,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47017,"src":"53049:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47029,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47019,"src":"53053:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47023,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52977:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52977:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52977:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47022,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"52961:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"52961:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47032,"nodeType":"ExpressionStatement","src":"52961:96:138"}]},"id":47034,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52891:3:138","nodeType":"FunctionDefinition","parameters":{"id":47020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47013,"mutability":"mutable","name":"p0","nameLocation":"52903:2:138","nodeType":"VariableDeclaration","scope":47034,"src":"52895:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47012,"name":"address","nodeType":"ElementaryTypeName","src":"52895:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47015,"mutability":"mutable","name":"p1","nameLocation":"52915:2:138","nodeType":"VariableDeclaration","scope":47034,"src":"52907:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47014,"name":"uint256","nodeType":"ElementaryTypeName","src":"52907:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47017,"mutability":"mutable","name":"p2","nameLocation":"52927:2:138","nodeType":"VariableDeclaration","scope":47034,"src":"52919:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47016,"name":"uint256","nodeType":"ElementaryTypeName","src":"52919:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47019,"mutability":"mutable","name":"p3","nameLocation":"52939:2:138","nodeType":"VariableDeclaration","scope":47034,"src":"52931:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47018,"name":"address","nodeType":"ElementaryTypeName","src":"52931:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52894:48:138"},"returnParameters":{"id":47021,"nodeType":"ParameterList","parameters":[],"src":"52957:0:138"},"scope":48415,"src":"52882:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47056,"nodeType":"Block","src":"53145:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629","id":47048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53189:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},"value":"log(address,uint256,string,uint256)"},{"id":47049,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47036,"src":"53228:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47050,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47038,"src":"53232:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47051,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47040,"src":"53236:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47052,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47042,"src":"53240:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53165:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53165:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53165:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47045,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"53149:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53149:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47055,"nodeType":"ExpressionStatement","src":"53149:95:138"}]},"id":47057,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53073:3:138","nodeType":"FunctionDefinition","parameters":{"id":47043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47036,"mutability":"mutable","name":"p0","nameLocation":"53085:2:138","nodeType":"VariableDeclaration","scope":47057,"src":"53077:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47035,"name":"address","nodeType":"ElementaryTypeName","src":"53077:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47038,"mutability":"mutable","name":"p1","nameLocation":"53097:2:138","nodeType":"VariableDeclaration","scope":47057,"src":"53089:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47037,"name":"uint256","nodeType":"ElementaryTypeName","src":"53089:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47040,"mutability":"mutable","name":"p2","nameLocation":"53115:2:138","nodeType":"VariableDeclaration","scope":47057,"src":"53101:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47039,"name":"string","nodeType":"ElementaryTypeName","src":"53101:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47042,"mutability":"mutable","name":"p3","nameLocation":"53127:2:138","nodeType":"VariableDeclaration","scope":47057,"src":"53119:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47041,"name":"uint256","nodeType":"ElementaryTypeName","src":"53119:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53076:54:138"},"returnParameters":{"id":47044,"nodeType":"ParameterList","parameters":[],"src":"53145:0:138"},"scope":48415,"src":"53064:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47079,"nodeType":"Block","src":"53338:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729","id":47071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53382:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},"value":"log(address,uint256,string,string)"},{"id":47072,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47059,"src":"53420:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47073,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47061,"src":"53424:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47074,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47063,"src":"53428:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47075,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47065,"src":"53432:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47069,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53358:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53358:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53358:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47068,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"53342:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53342:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47078,"nodeType":"ExpressionStatement","src":"53342:94:138"}]},"id":47080,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53260:3:138","nodeType":"FunctionDefinition","parameters":{"id":47066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47059,"mutability":"mutable","name":"p0","nameLocation":"53272:2:138","nodeType":"VariableDeclaration","scope":47080,"src":"53264:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47058,"name":"address","nodeType":"ElementaryTypeName","src":"53264:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47061,"mutability":"mutable","name":"p1","nameLocation":"53284:2:138","nodeType":"VariableDeclaration","scope":47080,"src":"53276:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47060,"name":"uint256","nodeType":"ElementaryTypeName","src":"53276:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47063,"mutability":"mutable","name":"p2","nameLocation":"53302:2:138","nodeType":"VariableDeclaration","scope":47080,"src":"53288:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47062,"name":"string","nodeType":"ElementaryTypeName","src":"53288:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47065,"mutability":"mutable","name":"p3","nameLocation":"53320:2:138","nodeType":"VariableDeclaration","scope":47080,"src":"53306:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47064,"name":"string","nodeType":"ElementaryTypeName","src":"53306:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53263:60:138"},"returnParameters":{"id":47067,"nodeType":"ParameterList","parameters":[],"src":"53338:0:138"},"scope":48415,"src":"53251:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47102,"nodeType":"Block","src":"53521:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29","id":47094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53565:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},"value":"log(address,uint256,string,bool)"},{"id":47095,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47082,"src":"53601:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47096,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47084,"src":"53605:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47097,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47086,"src":"53609:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47098,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47088,"src":"53613:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53541:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53541:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53541:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47091,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"53525:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53525:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47101,"nodeType":"ExpressionStatement","src":"53525:92:138"}]},"id":47103,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53452:3:138","nodeType":"FunctionDefinition","parameters":{"id":47089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47082,"mutability":"mutable","name":"p0","nameLocation":"53464:2:138","nodeType":"VariableDeclaration","scope":47103,"src":"53456:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47081,"name":"address","nodeType":"ElementaryTypeName","src":"53456:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47084,"mutability":"mutable","name":"p1","nameLocation":"53476:2:138","nodeType":"VariableDeclaration","scope":47103,"src":"53468:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47083,"name":"uint256","nodeType":"ElementaryTypeName","src":"53468:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47086,"mutability":"mutable","name":"p2","nameLocation":"53494:2:138","nodeType":"VariableDeclaration","scope":47103,"src":"53480:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47085,"name":"string","nodeType":"ElementaryTypeName","src":"53480:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47088,"mutability":"mutable","name":"p3","nameLocation":"53503:2:138","nodeType":"VariableDeclaration","scope":47103,"src":"53498:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47087,"name":"bool","nodeType":"ElementaryTypeName","src":"53498:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53455:51:138"},"returnParameters":{"id":47090,"nodeType":"ParameterList","parameters":[],"src":"53521:0:138"},"scope":48415,"src":"53443:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47125,"nodeType":"Block","src":"53705:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329","id":47117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53749:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},"value":"log(address,uint256,string,address)"},{"id":47118,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47105,"src":"53788:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47119,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47107,"src":"53792:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47120,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47109,"src":"53796:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47121,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47111,"src":"53800:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47115,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53725:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53725:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53725:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47114,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"53709:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53709:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47124,"nodeType":"ExpressionStatement","src":"53709:95:138"}]},"id":47126,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53633:3:138","nodeType":"FunctionDefinition","parameters":{"id":47112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47105,"mutability":"mutable","name":"p0","nameLocation":"53645:2:138","nodeType":"VariableDeclaration","scope":47126,"src":"53637:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47104,"name":"address","nodeType":"ElementaryTypeName","src":"53637:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47107,"mutability":"mutable","name":"p1","nameLocation":"53657:2:138","nodeType":"VariableDeclaration","scope":47126,"src":"53649:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47106,"name":"uint256","nodeType":"ElementaryTypeName","src":"53649:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47109,"mutability":"mutable","name":"p2","nameLocation":"53675:2:138","nodeType":"VariableDeclaration","scope":47126,"src":"53661:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47108,"name":"string","nodeType":"ElementaryTypeName","src":"53661:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47111,"mutability":"mutable","name":"p3","nameLocation":"53687:2:138","nodeType":"VariableDeclaration","scope":47126,"src":"53679:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47110,"name":"address","nodeType":"ElementaryTypeName","src":"53679:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53636:54:138"},"returnParameters":{"id":47113,"nodeType":"ParameterList","parameters":[],"src":"53705:0:138"},"scope":48415,"src":"53624:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47148,"nodeType":"Block","src":"53883:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629","id":47140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53927:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},"value":"log(address,uint256,bool,uint256)"},{"id":47141,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47128,"src":"53964:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47142,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47130,"src":"53968:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47143,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47132,"src":"53972:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47144,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47134,"src":"53976:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53903:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53903:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53903:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47137,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"53887:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"53887:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47147,"nodeType":"ExpressionStatement","src":"53887:93:138"}]},"id":47149,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53820:3:138","nodeType":"FunctionDefinition","parameters":{"id":47135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47128,"mutability":"mutable","name":"p0","nameLocation":"53832:2:138","nodeType":"VariableDeclaration","scope":47149,"src":"53824:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47127,"name":"address","nodeType":"ElementaryTypeName","src":"53824:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47130,"mutability":"mutable","name":"p1","nameLocation":"53844:2:138","nodeType":"VariableDeclaration","scope":47149,"src":"53836:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47129,"name":"uint256","nodeType":"ElementaryTypeName","src":"53836:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47132,"mutability":"mutable","name":"p2","nameLocation":"53853:2:138","nodeType":"VariableDeclaration","scope":47149,"src":"53848:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47131,"name":"bool","nodeType":"ElementaryTypeName","src":"53848:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47134,"mutability":"mutable","name":"p3","nameLocation":"53865:2:138","nodeType":"VariableDeclaration","scope":47149,"src":"53857:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47133,"name":"uint256","nodeType":"ElementaryTypeName","src":"53857:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53823:45:138"},"returnParameters":{"id":47136,"nodeType":"ParameterList","parameters":[],"src":"53883:0:138"},"scope":48415,"src":"53811:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47171,"nodeType":"Block","src":"54065:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729","id":47163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54109:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},"value":"log(address,uint256,bool,string)"},{"id":47164,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47151,"src":"54145:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47165,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47153,"src":"54149:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47166,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47155,"src":"54153:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47167,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"54157:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54085:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54085:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54085:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47160,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"54069:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54069:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47170,"nodeType":"ExpressionStatement","src":"54069:92:138"}]},"id":47172,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53996:3:138","nodeType":"FunctionDefinition","parameters":{"id":47158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47151,"mutability":"mutable","name":"p0","nameLocation":"54008:2:138","nodeType":"VariableDeclaration","scope":47172,"src":"54000:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47150,"name":"address","nodeType":"ElementaryTypeName","src":"54000:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47153,"mutability":"mutable","name":"p1","nameLocation":"54020:2:138","nodeType":"VariableDeclaration","scope":47172,"src":"54012:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47152,"name":"uint256","nodeType":"ElementaryTypeName","src":"54012:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47155,"mutability":"mutable","name":"p2","nameLocation":"54029:2:138","nodeType":"VariableDeclaration","scope":47172,"src":"54024:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47154,"name":"bool","nodeType":"ElementaryTypeName","src":"54024:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47157,"mutability":"mutable","name":"p3","nameLocation":"54047:2:138","nodeType":"VariableDeclaration","scope":47172,"src":"54033:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47156,"name":"string","nodeType":"ElementaryTypeName","src":"54033:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53999:51:138"},"returnParameters":{"id":47159,"nodeType":"ParameterList","parameters":[],"src":"54065:0:138"},"scope":48415,"src":"53987:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47194,"nodeType":"Block","src":"54237:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29","id":47186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54281:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},"value":"log(address,uint256,bool,bool)"},{"id":47187,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47174,"src":"54315:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47188,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47176,"src":"54319:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47189,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47178,"src":"54323:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47190,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47180,"src":"54327:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47184,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54257:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54257:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54257:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47183,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"54241:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54241:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47193,"nodeType":"ExpressionStatement","src":"54241:90:138"}]},"id":47195,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54177:3:138","nodeType":"FunctionDefinition","parameters":{"id":47181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47174,"mutability":"mutable","name":"p0","nameLocation":"54189:2:138","nodeType":"VariableDeclaration","scope":47195,"src":"54181:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47173,"name":"address","nodeType":"ElementaryTypeName","src":"54181:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47176,"mutability":"mutable","name":"p1","nameLocation":"54201:2:138","nodeType":"VariableDeclaration","scope":47195,"src":"54193:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47175,"name":"uint256","nodeType":"ElementaryTypeName","src":"54193:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47178,"mutability":"mutable","name":"p2","nameLocation":"54210:2:138","nodeType":"VariableDeclaration","scope":47195,"src":"54205:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47177,"name":"bool","nodeType":"ElementaryTypeName","src":"54205:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47180,"mutability":"mutable","name":"p3","nameLocation":"54219:2:138","nodeType":"VariableDeclaration","scope":47195,"src":"54214:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47179,"name":"bool","nodeType":"ElementaryTypeName","src":"54214:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54180:42:138"},"returnParameters":{"id":47182,"nodeType":"ParameterList","parameters":[],"src":"54237:0:138"},"scope":48415,"src":"54168:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47217,"nodeType":"Block","src":"54410:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329","id":47209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54454:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},"value":"log(address,uint256,bool,address)"},{"id":47210,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47197,"src":"54491:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47211,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47199,"src":"54495:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47212,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47201,"src":"54499:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47213,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47203,"src":"54503:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47207,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54430:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54430:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54430:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47206,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"54414:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54414:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47216,"nodeType":"ExpressionStatement","src":"54414:93:138"}]},"id":47218,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54347:3:138","nodeType":"FunctionDefinition","parameters":{"id":47204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47197,"mutability":"mutable","name":"p0","nameLocation":"54359:2:138","nodeType":"VariableDeclaration","scope":47218,"src":"54351:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47196,"name":"address","nodeType":"ElementaryTypeName","src":"54351:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47199,"mutability":"mutable","name":"p1","nameLocation":"54371:2:138","nodeType":"VariableDeclaration","scope":47218,"src":"54363:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47198,"name":"uint256","nodeType":"ElementaryTypeName","src":"54363:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47201,"mutability":"mutable","name":"p2","nameLocation":"54380:2:138","nodeType":"VariableDeclaration","scope":47218,"src":"54375:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47200,"name":"bool","nodeType":"ElementaryTypeName","src":"54375:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47203,"mutability":"mutable","name":"p3","nameLocation":"54392:2:138","nodeType":"VariableDeclaration","scope":47218,"src":"54384:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47202,"name":"address","nodeType":"ElementaryTypeName","src":"54384:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54350:45:138"},"returnParameters":{"id":47205,"nodeType":"ParameterList","parameters":[],"src":"54410:0:138"},"scope":48415,"src":"54338:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47240,"nodeType":"Block","src":"54589:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629","id":47232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54633:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},"value":"log(address,uint256,address,uint256)"},{"id":47233,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47220,"src":"54673:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47234,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47222,"src":"54677:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47235,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47224,"src":"54681:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47236,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47226,"src":"54685:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47230,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54609:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54609:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54609:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47229,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"54593:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54593:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47239,"nodeType":"ExpressionStatement","src":"54593:96:138"}]},"id":47241,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54523:3:138","nodeType":"FunctionDefinition","parameters":{"id":47227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47220,"mutability":"mutable","name":"p0","nameLocation":"54535:2:138","nodeType":"VariableDeclaration","scope":47241,"src":"54527:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47219,"name":"address","nodeType":"ElementaryTypeName","src":"54527:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47222,"mutability":"mutable","name":"p1","nameLocation":"54547:2:138","nodeType":"VariableDeclaration","scope":47241,"src":"54539:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47221,"name":"uint256","nodeType":"ElementaryTypeName","src":"54539:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47224,"mutability":"mutable","name":"p2","nameLocation":"54559:2:138","nodeType":"VariableDeclaration","scope":47241,"src":"54551:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47223,"name":"address","nodeType":"ElementaryTypeName","src":"54551:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47226,"mutability":"mutable","name":"p3","nameLocation":"54571:2:138","nodeType":"VariableDeclaration","scope":47241,"src":"54563:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47225,"name":"uint256","nodeType":"ElementaryTypeName","src":"54563:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54526:48:138"},"returnParameters":{"id":47228,"nodeType":"ParameterList","parameters":[],"src":"54589:0:138"},"scope":48415,"src":"54514:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47263,"nodeType":"Block","src":"54777:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729","id":47255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54821:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},"value":"log(address,uint256,address,string)"},{"id":47256,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47243,"src":"54860:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47257,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"54864:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47258,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47247,"src":"54868:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47259,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47249,"src":"54872:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47253,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54797:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54797:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54797:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47252,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"54781:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54781:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47262,"nodeType":"ExpressionStatement","src":"54781:95:138"}]},"id":47264,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54705:3:138","nodeType":"FunctionDefinition","parameters":{"id":47250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47243,"mutability":"mutable","name":"p0","nameLocation":"54717:2:138","nodeType":"VariableDeclaration","scope":47264,"src":"54709:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47242,"name":"address","nodeType":"ElementaryTypeName","src":"54709:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47245,"mutability":"mutable","name":"p1","nameLocation":"54729:2:138","nodeType":"VariableDeclaration","scope":47264,"src":"54721:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47244,"name":"uint256","nodeType":"ElementaryTypeName","src":"54721:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47247,"mutability":"mutable","name":"p2","nameLocation":"54741:2:138","nodeType":"VariableDeclaration","scope":47264,"src":"54733:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47246,"name":"address","nodeType":"ElementaryTypeName","src":"54733:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47249,"mutability":"mutable","name":"p3","nameLocation":"54759:2:138","nodeType":"VariableDeclaration","scope":47264,"src":"54745:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47248,"name":"string","nodeType":"ElementaryTypeName","src":"54745:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54708:54:138"},"returnParameters":{"id":47251,"nodeType":"ParameterList","parameters":[],"src":"54777:0:138"},"scope":48415,"src":"54696:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47286,"nodeType":"Block","src":"54955:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29","id":47278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54999:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},"value":"log(address,uint256,address,bool)"},{"id":47279,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47266,"src":"55036:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47280,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47268,"src":"55040:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47281,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47270,"src":"55044:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47282,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47272,"src":"55048:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54975:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54975:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54975:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47275,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"54959:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"54959:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47285,"nodeType":"ExpressionStatement","src":"54959:93:138"}]},"id":47287,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54892:3:138","nodeType":"FunctionDefinition","parameters":{"id":47273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47266,"mutability":"mutable","name":"p0","nameLocation":"54904:2:138","nodeType":"VariableDeclaration","scope":47287,"src":"54896:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47265,"name":"address","nodeType":"ElementaryTypeName","src":"54896:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47268,"mutability":"mutable","name":"p1","nameLocation":"54916:2:138","nodeType":"VariableDeclaration","scope":47287,"src":"54908:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47267,"name":"uint256","nodeType":"ElementaryTypeName","src":"54908:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47270,"mutability":"mutable","name":"p2","nameLocation":"54928:2:138","nodeType":"VariableDeclaration","scope":47287,"src":"54920:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47269,"name":"address","nodeType":"ElementaryTypeName","src":"54920:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47272,"mutability":"mutable","name":"p3","nameLocation":"54937:2:138","nodeType":"VariableDeclaration","scope":47287,"src":"54932:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47271,"name":"bool","nodeType":"ElementaryTypeName","src":"54932:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54895:45:138"},"returnParameters":{"id":47274,"nodeType":"ParameterList","parameters":[],"src":"54955:0:138"},"scope":48415,"src":"54883:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47309,"nodeType":"Block","src":"55134:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329","id":47301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55178:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},"value":"log(address,uint256,address,address)"},{"id":47302,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47289,"src":"55218:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47303,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"55222:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47304,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47293,"src":"55226:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47305,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"55230:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55154:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55154:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55154:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47298,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"55138:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55138:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47308,"nodeType":"ExpressionStatement","src":"55138:96:138"}]},"id":47310,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55068:3:138","nodeType":"FunctionDefinition","parameters":{"id":47296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47289,"mutability":"mutable","name":"p0","nameLocation":"55080:2:138","nodeType":"VariableDeclaration","scope":47310,"src":"55072:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47288,"name":"address","nodeType":"ElementaryTypeName","src":"55072:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47291,"mutability":"mutable","name":"p1","nameLocation":"55092:2:138","nodeType":"VariableDeclaration","scope":47310,"src":"55084:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47290,"name":"uint256","nodeType":"ElementaryTypeName","src":"55084:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47293,"mutability":"mutable","name":"p2","nameLocation":"55104:2:138","nodeType":"VariableDeclaration","scope":47310,"src":"55096:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47292,"name":"address","nodeType":"ElementaryTypeName","src":"55096:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47295,"mutability":"mutable","name":"p3","nameLocation":"55116:2:138","nodeType":"VariableDeclaration","scope":47310,"src":"55108:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47294,"name":"address","nodeType":"ElementaryTypeName","src":"55108:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55071:48:138"},"returnParameters":{"id":47297,"nodeType":"ParameterList","parameters":[],"src":"55134:0:138"},"scope":48415,"src":"55059:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47332,"nodeType":"Block","src":"55322:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629","id":47324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55366:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},"value":"log(address,string,uint256,uint256)"},{"id":47325,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47312,"src":"55405:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47326,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47314,"src":"55409:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47327,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47316,"src":"55413:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47328,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47318,"src":"55417:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55342:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55342:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55342:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47321,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"55326:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55326:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47331,"nodeType":"ExpressionStatement","src":"55326:95:138"}]},"id":47333,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55250:3:138","nodeType":"FunctionDefinition","parameters":{"id":47319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47312,"mutability":"mutable","name":"p0","nameLocation":"55262:2:138","nodeType":"VariableDeclaration","scope":47333,"src":"55254:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47311,"name":"address","nodeType":"ElementaryTypeName","src":"55254:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47314,"mutability":"mutable","name":"p1","nameLocation":"55280:2:138","nodeType":"VariableDeclaration","scope":47333,"src":"55266:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47313,"name":"string","nodeType":"ElementaryTypeName","src":"55266:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47316,"mutability":"mutable","name":"p2","nameLocation":"55292:2:138","nodeType":"VariableDeclaration","scope":47333,"src":"55284:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47315,"name":"uint256","nodeType":"ElementaryTypeName","src":"55284:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47318,"mutability":"mutable","name":"p3","nameLocation":"55304:2:138","nodeType":"VariableDeclaration","scope":47333,"src":"55296:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47317,"name":"uint256","nodeType":"ElementaryTypeName","src":"55296:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55253:54:138"},"returnParameters":{"id":47320,"nodeType":"ParameterList","parameters":[],"src":"55322:0:138"},"scope":48415,"src":"55241:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47355,"nodeType":"Block","src":"55515:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729","id":47347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55559:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},"value":"log(address,string,uint256,string)"},{"id":47348,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47335,"src":"55597:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47349,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47337,"src":"55601:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47350,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47339,"src":"55605:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47351,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47341,"src":"55609:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55535:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55535:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55535:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47344,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"55519:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55519:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47354,"nodeType":"ExpressionStatement","src":"55519:94:138"}]},"id":47356,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55437:3:138","nodeType":"FunctionDefinition","parameters":{"id":47342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47335,"mutability":"mutable","name":"p0","nameLocation":"55449:2:138","nodeType":"VariableDeclaration","scope":47356,"src":"55441:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47334,"name":"address","nodeType":"ElementaryTypeName","src":"55441:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47337,"mutability":"mutable","name":"p1","nameLocation":"55467:2:138","nodeType":"VariableDeclaration","scope":47356,"src":"55453:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47336,"name":"string","nodeType":"ElementaryTypeName","src":"55453:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47339,"mutability":"mutable","name":"p2","nameLocation":"55479:2:138","nodeType":"VariableDeclaration","scope":47356,"src":"55471:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47338,"name":"uint256","nodeType":"ElementaryTypeName","src":"55471:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47341,"mutability":"mutable","name":"p3","nameLocation":"55497:2:138","nodeType":"VariableDeclaration","scope":47356,"src":"55483:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47340,"name":"string","nodeType":"ElementaryTypeName","src":"55483:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55440:60:138"},"returnParameters":{"id":47343,"nodeType":"ParameterList","parameters":[],"src":"55515:0:138"},"scope":48415,"src":"55428:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47378,"nodeType":"Block","src":"55698:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29","id":47370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55742:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},"value":"log(address,string,uint256,bool)"},{"id":47371,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47358,"src":"55778:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47372,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47360,"src":"55782:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47373,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47362,"src":"55786:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47374,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47364,"src":"55790:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55718:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55718:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55718:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47367,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"55702:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55702:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47377,"nodeType":"ExpressionStatement","src":"55702:92:138"}]},"id":47379,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55629:3:138","nodeType":"FunctionDefinition","parameters":{"id":47365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47358,"mutability":"mutable","name":"p0","nameLocation":"55641:2:138","nodeType":"VariableDeclaration","scope":47379,"src":"55633:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47357,"name":"address","nodeType":"ElementaryTypeName","src":"55633:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47360,"mutability":"mutable","name":"p1","nameLocation":"55659:2:138","nodeType":"VariableDeclaration","scope":47379,"src":"55645:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47359,"name":"string","nodeType":"ElementaryTypeName","src":"55645:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47362,"mutability":"mutable","name":"p2","nameLocation":"55671:2:138","nodeType":"VariableDeclaration","scope":47379,"src":"55663:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47361,"name":"uint256","nodeType":"ElementaryTypeName","src":"55663:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47364,"mutability":"mutable","name":"p3","nameLocation":"55680:2:138","nodeType":"VariableDeclaration","scope":47379,"src":"55675:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47363,"name":"bool","nodeType":"ElementaryTypeName","src":"55675:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55632:51:138"},"returnParameters":{"id":47366,"nodeType":"ParameterList","parameters":[],"src":"55698:0:138"},"scope":48415,"src":"55620:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47401,"nodeType":"Block","src":"55882:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329","id":47393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55926:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},"value":"log(address,string,uint256,address)"},{"id":47394,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47381,"src":"55965:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47395,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47383,"src":"55969:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47396,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47385,"src":"55973:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47397,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47387,"src":"55977:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47391,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55902:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55902:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55902:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47390,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"55886:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"55886:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47400,"nodeType":"ExpressionStatement","src":"55886:95:138"}]},"id":47402,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55810:3:138","nodeType":"FunctionDefinition","parameters":{"id":47388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47381,"mutability":"mutable","name":"p0","nameLocation":"55822:2:138","nodeType":"VariableDeclaration","scope":47402,"src":"55814:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47380,"name":"address","nodeType":"ElementaryTypeName","src":"55814:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47383,"mutability":"mutable","name":"p1","nameLocation":"55840:2:138","nodeType":"VariableDeclaration","scope":47402,"src":"55826:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47382,"name":"string","nodeType":"ElementaryTypeName","src":"55826:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47385,"mutability":"mutable","name":"p2","nameLocation":"55852:2:138","nodeType":"VariableDeclaration","scope":47402,"src":"55844:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47384,"name":"uint256","nodeType":"ElementaryTypeName","src":"55844:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47387,"mutability":"mutable","name":"p3","nameLocation":"55864:2:138","nodeType":"VariableDeclaration","scope":47402,"src":"55856:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47386,"name":"address","nodeType":"ElementaryTypeName","src":"55856:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55813:54:138"},"returnParameters":{"id":47389,"nodeType":"ParameterList","parameters":[],"src":"55882:0:138"},"scope":48415,"src":"55801:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47424,"nodeType":"Block","src":"56075:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629","id":47416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56119:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},"value":"log(address,string,string,uint256)"},{"id":47417,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47404,"src":"56157:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47418,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47406,"src":"56161:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47419,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47408,"src":"56165:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47420,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47410,"src":"56169:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47414,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56095:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56095:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56095:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47413,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"56079:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56079:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47423,"nodeType":"ExpressionStatement","src":"56079:94:138"}]},"id":47425,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55997:3:138","nodeType":"FunctionDefinition","parameters":{"id":47411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47404,"mutability":"mutable","name":"p0","nameLocation":"56009:2:138","nodeType":"VariableDeclaration","scope":47425,"src":"56001:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47403,"name":"address","nodeType":"ElementaryTypeName","src":"56001:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47406,"mutability":"mutable","name":"p1","nameLocation":"56027:2:138","nodeType":"VariableDeclaration","scope":47425,"src":"56013:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47405,"name":"string","nodeType":"ElementaryTypeName","src":"56013:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47408,"mutability":"mutable","name":"p2","nameLocation":"56045:2:138","nodeType":"VariableDeclaration","scope":47425,"src":"56031:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47407,"name":"string","nodeType":"ElementaryTypeName","src":"56031:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47410,"mutability":"mutable","name":"p3","nameLocation":"56057:2:138","nodeType":"VariableDeclaration","scope":47425,"src":"56049:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47409,"name":"uint256","nodeType":"ElementaryTypeName","src":"56049:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56000:60:138"},"returnParameters":{"id":47412,"nodeType":"ParameterList","parameters":[],"src":"56075:0:138"},"scope":48415,"src":"55988:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47447,"nodeType":"Block","src":"56273:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":47439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56317:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":47440,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47427,"src":"56354:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47441,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47429,"src":"56358:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47442,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47431,"src":"56362:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47443,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47433,"src":"56366:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56293:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56293:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56293:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47436,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"56277:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56277:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47446,"nodeType":"ExpressionStatement","src":"56277:93:138"}]},"id":47448,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56189:3:138","nodeType":"FunctionDefinition","parameters":{"id":47434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47427,"mutability":"mutable","name":"p0","nameLocation":"56201:2:138","nodeType":"VariableDeclaration","scope":47448,"src":"56193:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47426,"name":"address","nodeType":"ElementaryTypeName","src":"56193:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47429,"mutability":"mutable","name":"p1","nameLocation":"56219:2:138","nodeType":"VariableDeclaration","scope":47448,"src":"56205:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47428,"name":"string","nodeType":"ElementaryTypeName","src":"56205:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47431,"mutability":"mutable","name":"p2","nameLocation":"56237:2:138","nodeType":"VariableDeclaration","scope":47448,"src":"56223:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47430,"name":"string","nodeType":"ElementaryTypeName","src":"56223:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47433,"mutability":"mutable","name":"p3","nameLocation":"56255:2:138","nodeType":"VariableDeclaration","scope":47448,"src":"56241:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47432,"name":"string","nodeType":"ElementaryTypeName","src":"56241:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56192:66:138"},"returnParameters":{"id":47435,"nodeType":"ParameterList","parameters":[],"src":"56273:0:138"},"scope":48415,"src":"56180:194:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47470,"nodeType":"Block","src":"56461:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":47462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56505:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":47463,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47450,"src":"56540:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47464,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47452,"src":"56544:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47465,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47454,"src":"56548:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47466,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47456,"src":"56552:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47460,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56481:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56481:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56481:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47459,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"56465:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56465:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47469,"nodeType":"ExpressionStatement","src":"56465:91:138"}]},"id":47471,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56386:3:138","nodeType":"FunctionDefinition","parameters":{"id":47457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47450,"mutability":"mutable","name":"p0","nameLocation":"56398:2:138","nodeType":"VariableDeclaration","scope":47471,"src":"56390:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47449,"name":"address","nodeType":"ElementaryTypeName","src":"56390:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47452,"mutability":"mutable","name":"p1","nameLocation":"56416:2:138","nodeType":"VariableDeclaration","scope":47471,"src":"56402:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47451,"name":"string","nodeType":"ElementaryTypeName","src":"56402:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47454,"mutability":"mutable","name":"p2","nameLocation":"56434:2:138","nodeType":"VariableDeclaration","scope":47471,"src":"56420:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47453,"name":"string","nodeType":"ElementaryTypeName","src":"56420:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47456,"mutability":"mutable","name":"p3","nameLocation":"56443:2:138","nodeType":"VariableDeclaration","scope":47471,"src":"56438:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47455,"name":"bool","nodeType":"ElementaryTypeName","src":"56438:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56389:57:138"},"returnParameters":{"id":47458,"nodeType":"ParameterList","parameters":[],"src":"56461:0:138"},"scope":48415,"src":"56377:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47493,"nodeType":"Block","src":"56650:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":47485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56694:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":47486,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47473,"src":"56732:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47487,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47475,"src":"56736:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47488,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47477,"src":"56740:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47489,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47479,"src":"56744:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47483,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56670:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56670:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56670:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47482,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"56654:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56654:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47492,"nodeType":"ExpressionStatement","src":"56654:94:138"}]},"id":47494,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56572:3:138","nodeType":"FunctionDefinition","parameters":{"id":47480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47473,"mutability":"mutable","name":"p0","nameLocation":"56584:2:138","nodeType":"VariableDeclaration","scope":47494,"src":"56576:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47472,"name":"address","nodeType":"ElementaryTypeName","src":"56576:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47475,"mutability":"mutable","name":"p1","nameLocation":"56602:2:138","nodeType":"VariableDeclaration","scope":47494,"src":"56588:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47474,"name":"string","nodeType":"ElementaryTypeName","src":"56588:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47477,"mutability":"mutable","name":"p2","nameLocation":"56620:2:138","nodeType":"VariableDeclaration","scope":47494,"src":"56606:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47476,"name":"string","nodeType":"ElementaryTypeName","src":"56606:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47479,"mutability":"mutable","name":"p3","nameLocation":"56632:2:138","nodeType":"VariableDeclaration","scope":47494,"src":"56624:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47478,"name":"address","nodeType":"ElementaryTypeName","src":"56624:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56575:60:138"},"returnParameters":{"id":47481,"nodeType":"ParameterList","parameters":[],"src":"56650:0:138"},"scope":48415,"src":"56563:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47516,"nodeType":"Block","src":"56833:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629","id":47508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56877:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},"value":"log(address,string,bool,uint256)"},{"id":47509,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47496,"src":"56913:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47510,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47498,"src":"56917:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47511,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47500,"src":"56921:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47512,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47502,"src":"56925:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47506,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56853:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56853:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56853:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47505,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"56837:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"56837:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47515,"nodeType":"ExpressionStatement","src":"56837:92:138"}]},"id":47517,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56764:3:138","nodeType":"FunctionDefinition","parameters":{"id":47503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47496,"mutability":"mutable","name":"p0","nameLocation":"56776:2:138","nodeType":"VariableDeclaration","scope":47517,"src":"56768:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47495,"name":"address","nodeType":"ElementaryTypeName","src":"56768:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47498,"mutability":"mutable","name":"p1","nameLocation":"56794:2:138","nodeType":"VariableDeclaration","scope":47517,"src":"56780:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47497,"name":"string","nodeType":"ElementaryTypeName","src":"56780:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47500,"mutability":"mutable","name":"p2","nameLocation":"56803:2:138","nodeType":"VariableDeclaration","scope":47517,"src":"56798:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47499,"name":"bool","nodeType":"ElementaryTypeName","src":"56798:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47502,"mutability":"mutable","name":"p3","nameLocation":"56815:2:138","nodeType":"VariableDeclaration","scope":47517,"src":"56807:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47501,"name":"uint256","nodeType":"ElementaryTypeName","src":"56807:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56767:51:138"},"returnParameters":{"id":47504,"nodeType":"ParameterList","parameters":[],"src":"56833:0:138"},"scope":48415,"src":"56755:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47539,"nodeType":"Block","src":"57020:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":47531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57064:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":47532,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47519,"src":"57099:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47533,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47521,"src":"57103:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47534,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47523,"src":"57107:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47535,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47525,"src":"57111:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57040:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57040:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57040:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47528,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"57024:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57024:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47538,"nodeType":"ExpressionStatement","src":"57024:91:138"}]},"id":47540,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56945:3:138","nodeType":"FunctionDefinition","parameters":{"id":47526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47519,"mutability":"mutable","name":"p0","nameLocation":"56957:2:138","nodeType":"VariableDeclaration","scope":47540,"src":"56949:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47518,"name":"address","nodeType":"ElementaryTypeName","src":"56949:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47521,"mutability":"mutable","name":"p1","nameLocation":"56975:2:138","nodeType":"VariableDeclaration","scope":47540,"src":"56961:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47520,"name":"string","nodeType":"ElementaryTypeName","src":"56961:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47523,"mutability":"mutable","name":"p2","nameLocation":"56984:2:138","nodeType":"VariableDeclaration","scope":47540,"src":"56979:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47522,"name":"bool","nodeType":"ElementaryTypeName","src":"56979:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47525,"mutability":"mutable","name":"p3","nameLocation":"57002:2:138","nodeType":"VariableDeclaration","scope":47540,"src":"56988:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47524,"name":"string","nodeType":"ElementaryTypeName","src":"56988:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56948:57:138"},"returnParameters":{"id":47527,"nodeType":"ParameterList","parameters":[],"src":"57020:0:138"},"scope":48415,"src":"56936:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47562,"nodeType":"Block","src":"57197:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":47554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57241:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":47555,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47542,"src":"57274:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47556,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47544,"src":"57278:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47557,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47546,"src":"57282:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47558,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"57286:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47552,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57217:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57217:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57217:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47551,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"57201:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57201:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47561,"nodeType":"ExpressionStatement","src":"57201:89:138"}]},"id":47563,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57131:3:138","nodeType":"FunctionDefinition","parameters":{"id":47549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47542,"mutability":"mutable","name":"p0","nameLocation":"57143:2:138","nodeType":"VariableDeclaration","scope":47563,"src":"57135:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47541,"name":"address","nodeType":"ElementaryTypeName","src":"57135:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47544,"mutability":"mutable","name":"p1","nameLocation":"57161:2:138","nodeType":"VariableDeclaration","scope":47563,"src":"57147:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47543,"name":"string","nodeType":"ElementaryTypeName","src":"57147:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47546,"mutability":"mutable","name":"p2","nameLocation":"57170:2:138","nodeType":"VariableDeclaration","scope":47563,"src":"57165:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47545,"name":"bool","nodeType":"ElementaryTypeName","src":"57165:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47548,"mutability":"mutable","name":"p3","nameLocation":"57179:2:138","nodeType":"VariableDeclaration","scope":47563,"src":"57174:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47547,"name":"bool","nodeType":"ElementaryTypeName","src":"57174:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57134:48:138"},"returnParameters":{"id":47550,"nodeType":"ParameterList","parameters":[],"src":"57197:0:138"},"scope":48415,"src":"57122:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47585,"nodeType":"Block","src":"57375:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":47577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57419:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":47578,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47565,"src":"57455:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47579,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47567,"src":"57459:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47580,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47569,"src":"57463:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47581,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47571,"src":"57467:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57395:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57395:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57395:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47574,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"57379:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57379:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47584,"nodeType":"ExpressionStatement","src":"57379:92:138"}]},"id":47586,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57306:3:138","nodeType":"FunctionDefinition","parameters":{"id":47572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47565,"mutability":"mutable","name":"p0","nameLocation":"57318:2:138","nodeType":"VariableDeclaration","scope":47586,"src":"57310:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47564,"name":"address","nodeType":"ElementaryTypeName","src":"57310:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47567,"mutability":"mutable","name":"p1","nameLocation":"57336:2:138","nodeType":"VariableDeclaration","scope":47586,"src":"57322:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47566,"name":"string","nodeType":"ElementaryTypeName","src":"57322:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47569,"mutability":"mutable","name":"p2","nameLocation":"57345:2:138","nodeType":"VariableDeclaration","scope":47586,"src":"57340:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47568,"name":"bool","nodeType":"ElementaryTypeName","src":"57340:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47571,"mutability":"mutable","name":"p3","nameLocation":"57357:2:138","nodeType":"VariableDeclaration","scope":47586,"src":"57349:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47570,"name":"address","nodeType":"ElementaryTypeName","src":"57349:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57309:51:138"},"returnParameters":{"id":47573,"nodeType":"ParameterList","parameters":[],"src":"57375:0:138"},"scope":48415,"src":"57297:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47608,"nodeType":"Block","src":"57559:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629","id":47600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57603:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},"value":"log(address,string,address,uint256)"},{"id":47601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47588,"src":"57642:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47590,"src":"57646:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47592,"src":"57650:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47604,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47594,"src":"57654:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57579:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57579:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57579:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"57563:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57563:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47607,"nodeType":"ExpressionStatement","src":"57563:95:138"}]},"id":47609,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57487:3:138","nodeType":"FunctionDefinition","parameters":{"id":47595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47588,"mutability":"mutable","name":"p0","nameLocation":"57499:2:138","nodeType":"VariableDeclaration","scope":47609,"src":"57491:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47587,"name":"address","nodeType":"ElementaryTypeName","src":"57491:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47590,"mutability":"mutable","name":"p1","nameLocation":"57517:2:138","nodeType":"VariableDeclaration","scope":47609,"src":"57503:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47589,"name":"string","nodeType":"ElementaryTypeName","src":"57503:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47592,"mutability":"mutable","name":"p2","nameLocation":"57529:2:138","nodeType":"VariableDeclaration","scope":47609,"src":"57521:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47591,"name":"address","nodeType":"ElementaryTypeName","src":"57521:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47594,"mutability":"mutable","name":"p3","nameLocation":"57541:2:138","nodeType":"VariableDeclaration","scope":47609,"src":"57533:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47593,"name":"uint256","nodeType":"ElementaryTypeName","src":"57533:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57490:54:138"},"returnParameters":{"id":47596,"nodeType":"ParameterList","parameters":[],"src":"57559:0:138"},"scope":48415,"src":"57478:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47631,"nodeType":"Block","src":"57752:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":47623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57796:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":47624,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47611,"src":"57834:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47625,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47613,"src":"57838:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47626,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47615,"src":"57842:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47627,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47617,"src":"57846:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57772:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57772:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57772:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47620,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"57756:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57756:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47630,"nodeType":"ExpressionStatement","src":"57756:94:138"}]},"id":47632,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57674:3:138","nodeType":"FunctionDefinition","parameters":{"id":47618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47611,"mutability":"mutable","name":"p0","nameLocation":"57686:2:138","nodeType":"VariableDeclaration","scope":47632,"src":"57678:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47610,"name":"address","nodeType":"ElementaryTypeName","src":"57678:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47613,"mutability":"mutable","name":"p1","nameLocation":"57704:2:138","nodeType":"VariableDeclaration","scope":47632,"src":"57690:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47612,"name":"string","nodeType":"ElementaryTypeName","src":"57690:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47615,"mutability":"mutable","name":"p2","nameLocation":"57716:2:138","nodeType":"VariableDeclaration","scope":47632,"src":"57708:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47614,"name":"address","nodeType":"ElementaryTypeName","src":"57708:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47617,"mutability":"mutable","name":"p3","nameLocation":"57734:2:138","nodeType":"VariableDeclaration","scope":47632,"src":"57720:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47616,"name":"string","nodeType":"ElementaryTypeName","src":"57720:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57677:60:138"},"returnParameters":{"id":47619,"nodeType":"ParameterList","parameters":[],"src":"57752:0:138"},"scope":48415,"src":"57665:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47654,"nodeType":"Block","src":"57935:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":47646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57979:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":47647,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47634,"src":"58015:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47648,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47636,"src":"58019:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47649,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47638,"src":"58023:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47650,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47640,"src":"58027:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47644,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57955:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57955:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57955:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47643,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"57939:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"57939:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47653,"nodeType":"ExpressionStatement","src":"57939:92:138"}]},"id":47655,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57866:3:138","nodeType":"FunctionDefinition","parameters":{"id":47641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47634,"mutability":"mutable","name":"p0","nameLocation":"57878:2:138","nodeType":"VariableDeclaration","scope":47655,"src":"57870:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47633,"name":"address","nodeType":"ElementaryTypeName","src":"57870:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47636,"mutability":"mutable","name":"p1","nameLocation":"57896:2:138","nodeType":"VariableDeclaration","scope":47655,"src":"57882:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47635,"name":"string","nodeType":"ElementaryTypeName","src":"57882:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47638,"mutability":"mutable","name":"p2","nameLocation":"57908:2:138","nodeType":"VariableDeclaration","scope":47655,"src":"57900:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47637,"name":"address","nodeType":"ElementaryTypeName","src":"57900:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47640,"mutability":"mutable","name":"p3","nameLocation":"57917:2:138","nodeType":"VariableDeclaration","scope":47655,"src":"57912:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47639,"name":"bool","nodeType":"ElementaryTypeName","src":"57912:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57869:51:138"},"returnParameters":{"id":47642,"nodeType":"ParameterList","parameters":[],"src":"57935:0:138"},"scope":48415,"src":"57857:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47677,"nodeType":"Block","src":"58119:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":47669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58163:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":47670,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47657,"src":"58202:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47671,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47659,"src":"58206:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47672,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47661,"src":"58210:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47673,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47663,"src":"58214:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47667,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58139:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58139:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58139:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47666,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"58123:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58123:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47676,"nodeType":"ExpressionStatement","src":"58123:95:138"}]},"id":47678,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58047:3:138","nodeType":"FunctionDefinition","parameters":{"id":47664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47657,"mutability":"mutable","name":"p0","nameLocation":"58059:2:138","nodeType":"VariableDeclaration","scope":47678,"src":"58051:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47656,"name":"address","nodeType":"ElementaryTypeName","src":"58051:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47659,"mutability":"mutable","name":"p1","nameLocation":"58077:2:138","nodeType":"VariableDeclaration","scope":47678,"src":"58063:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47658,"name":"string","nodeType":"ElementaryTypeName","src":"58063:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47661,"mutability":"mutable","name":"p2","nameLocation":"58089:2:138","nodeType":"VariableDeclaration","scope":47678,"src":"58081:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47660,"name":"address","nodeType":"ElementaryTypeName","src":"58081:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47663,"mutability":"mutable","name":"p3","nameLocation":"58101:2:138","nodeType":"VariableDeclaration","scope":47678,"src":"58093:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47662,"name":"address","nodeType":"ElementaryTypeName","src":"58093:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58050:54:138"},"returnParameters":{"id":47665,"nodeType":"ParameterList","parameters":[],"src":"58119:0:138"},"scope":48415,"src":"58038:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47700,"nodeType":"Block","src":"58297:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629","id":47692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58341:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},"value":"log(address,bool,uint256,uint256)"},{"id":47693,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47680,"src":"58378:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47694,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47682,"src":"58382:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47695,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47684,"src":"58386:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47696,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47686,"src":"58390:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58317:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58317:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58317:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47689,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"58301:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58301:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47699,"nodeType":"ExpressionStatement","src":"58301:93:138"}]},"id":47701,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58234:3:138","nodeType":"FunctionDefinition","parameters":{"id":47687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47680,"mutability":"mutable","name":"p0","nameLocation":"58246:2:138","nodeType":"VariableDeclaration","scope":47701,"src":"58238:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47679,"name":"address","nodeType":"ElementaryTypeName","src":"58238:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47682,"mutability":"mutable","name":"p1","nameLocation":"58255:2:138","nodeType":"VariableDeclaration","scope":47701,"src":"58250:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47681,"name":"bool","nodeType":"ElementaryTypeName","src":"58250:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47684,"mutability":"mutable","name":"p2","nameLocation":"58267:2:138","nodeType":"VariableDeclaration","scope":47701,"src":"58259:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47683,"name":"uint256","nodeType":"ElementaryTypeName","src":"58259:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47686,"mutability":"mutable","name":"p3","nameLocation":"58279:2:138","nodeType":"VariableDeclaration","scope":47701,"src":"58271:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47685,"name":"uint256","nodeType":"ElementaryTypeName","src":"58271:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58237:45:138"},"returnParameters":{"id":47688,"nodeType":"ParameterList","parameters":[],"src":"58297:0:138"},"scope":48415,"src":"58225:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47723,"nodeType":"Block","src":"58479:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729","id":47715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58523:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},"value":"log(address,bool,uint256,string)"},{"id":47716,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47703,"src":"58559:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47717,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47705,"src":"58563:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47718,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47707,"src":"58567:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47719,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47709,"src":"58571:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47713,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58499:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58499:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58499:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47712,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"58483:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58483:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47722,"nodeType":"ExpressionStatement","src":"58483:92:138"}]},"id":47724,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58410:3:138","nodeType":"FunctionDefinition","parameters":{"id":47710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47703,"mutability":"mutable","name":"p0","nameLocation":"58422:2:138","nodeType":"VariableDeclaration","scope":47724,"src":"58414:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47702,"name":"address","nodeType":"ElementaryTypeName","src":"58414:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47705,"mutability":"mutable","name":"p1","nameLocation":"58431:2:138","nodeType":"VariableDeclaration","scope":47724,"src":"58426:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47704,"name":"bool","nodeType":"ElementaryTypeName","src":"58426:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47707,"mutability":"mutable","name":"p2","nameLocation":"58443:2:138","nodeType":"VariableDeclaration","scope":47724,"src":"58435:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47706,"name":"uint256","nodeType":"ElementaryTypeName","src":"58435:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47709,"mutability":"mutable","name":"p3","nameLocation":"58461:2:138","nodeType":"VariableDeclaration","scope":47724,"src":"58447:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47708,"name":"string","nodeType":"ElementaryTypeName","src":"58447:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58413:51:138"},"returnParameters":{"id":47711,"nodeType":"ParameterList","parameters":[],"src":"58479:0:138"},"scope":48415,"src":"58401:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47746,"nodeType":"Block","src":"58651:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29","id":47738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58695:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},"value":"log(address,bool,uint256,bool)"},{"id":47739,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47726,"src":"58729:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47740,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47728,"src":"58733:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47741,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47730,"src":"58737:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47742,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47732,"src":"58741:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47736,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58671:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58671:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58671:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47735,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"58655:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58655:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47745,"nodeType":"ExpressionStatement","src":"58655:90:138"}]},"id":47747,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58591:3:138","nodeType":"FunctionDefinition","parameters":{"id":47733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47726,"mutability":"mutable","name":"p0","nameLocation":"58603:2:138","nodeType":"VariableDeclaration","scope":47747,"src":"58595:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47725,"name":"address","nodeType":"ElementaryTypeName","src":"58595:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47728,"mutability":"mutable","name":"p1","nameLocation":"58612:2:138","nodeType":"VariableDeclaration","scope":47747,"src":"58607:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47727,"name":"bool","nodeType":"ElementaryTypeName","src":"58607:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47730,"mutability":"mutable","name":"p2","nameLocation":"58624:2:138","nodeType":"VariableDeclaration","scope":47747,"src":"58616:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47729,"name":"uint256","nodeType":"ElementaryTypeName","src":"58616:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47732,"mutability":"mutable","name":"p3","nameLocation":"58633:2:138","nodeType":"VariableDeclaration","scope":47747,"src":"58628:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47731,"name":"bool","nodeType":"ElementaryTypeName","src":"58628:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58594:42:138"},"returnParameters":{"id":47734,"nodeType":"ParameterList","parameters":[],"src":"58651:0:138"},"scope":48415,"src":"58582:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47769,"nodeType":"Block","src":"58824:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329","id":47761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58868:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},"value":"log(address,bool,uint256,address)"},{"id":47762,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47749,"src":"58905:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47763,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47751,"src":"58909:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47764,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47753,"src":"58913:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47765,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47755,"src":"58917:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47759,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58844:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58844:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58844:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47758,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"58828:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"58828:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47768,"nodeType":"ExpressionStatement","src":"58828:93:138"}]},"id":47770,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58761:3:138","nodeType":"FunctionDefinition","parameters":{"id":47756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47749,"mutability":"mutable","name":"p0","nameLocation":"58773:2:138","nodeType":"VariableDeclaration","scope":47770,"src":"58765:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47748,"name":"address","nodeType":"ElementaryTypeName","src":"58765:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47751,"mutability":"mutable","name":"p1","nameLocation":"58782:2:138","nodeType":"VariableDeclaration","scope":47770,"src":"58777:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47750,"name":"bool","nodeType":"ElementaryTypeName","src":"58777:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47753,"mutability":"mutable","name":"p2","nameLocation":"58794:2:138","nodeType":"VariableDeclaration","scope":47770,"src":"58786:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47752,"name":"uint256","nodeType":"ElementaryTypeName","src":"58786:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47755,"mutability":"mutable","name":"p3","nameLocation":"58806:2:138","nodeType":"VariableDeclaration","scope":47770,"src":"58798:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47754,"name":"address","nodeType":"ElementaryTypeName","src":"58798:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58764:45:138"},"returnParameters":{"id":47757,"nodeType":"ParameterList","parameters":[],"src":"58824:0:138"},"scope":48415,"src":"58752:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47792,"nodeType":"Block","src":"59006:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629","id":47784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59050:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},"value":"log(address,bool,string,uint256)"},{"id":47785,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47772,"src":"59086:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47786,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47774,"src":"59090:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47787,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47776,"src":"59094:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47788,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47778,"src":"59098:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47782,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59026:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59026:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59026:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47781,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"59010:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59010:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47791,"nodeType":"ExpressionStatement","src":"59010:92:138"}]},"id":47793,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58937:3:138","nodeType":"FunctionDefinition","parameters":{"id":47779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47772,"mutability":"mutable","name":"p0","nameLocation":"58949:2:138","nodeType":"VariableDeclaration","scope":47793,"src":"58941:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47771,"name":"address","nodeType":"ElementaryTypeName","src":"58941:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47774,"mutability":"mutable","name":"p1","nameLocation":"58958:2:138","nodeType":"VariableDeclaration","scope":47793,"src":"58953:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47773,"name":"bool","nodeType":"ElementaryTypeName","src":"58953:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47776,"mutability":"mutable","name":"p2","nameLocation":"58976:2:138","nodeType":"VariableDeclaration","scope":47793,"src":"58962:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47775,"name":"string","nodeType":"ElementaryTypeName","src":"58962:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47778,"mutability":"mutable","name":"p3","nameLocation":"58988:2:138","nodeType":"VariableDeclaration","scope":47793,"src":"58980:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47777,"name":"uint256","nodeType":"ElementaryTypeName","src":"58980:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58940:51:138"},"returnParameters":{"id":47780,"nodeType":"ParameterList","parameters":[],"src":"59006:0:138"},"scope":48415,"src":"58928:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47815,"nodeType":"Block","src":"59193:99:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":47807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59237:33:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":47808,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47795,"src":"59272:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47809,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47797,"src":"59276:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47810,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47799,"src":"59280:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47811,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47801,"src":"59284:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47805,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59213:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59213:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59213:74:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47804,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"59197:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59197:91:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47814,"nodeType":"ExpressionStatement","src":"59197:91:138"}]},"id":47816,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59118:3:138","nodeType":"FunctionDefinition","parameters":{"id":47802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47795,"mutability":"mutable","name":"p0","nameLocation":"59130:2:138","nodeType":"VariableDeclaration","scope":47816,"src":"59122:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47794,"name":"address","nodeType":"ElementaryTypeName","src":"59122:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47797,"mutability":"mutable","name":"p1","nameLocation":"59139:2:138","nodeType":"VariableDeclaration","scope":47816,"src":"59134:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47796,"name":"bool","nodeType":"ElementaryTypeName","src":"59134:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47799,"mutability":"mutable","name":"p2","nameLocation":"59157:2:138","nodeType":"VariableDeclaration","scope":47816,"src":"59143:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47798,"name":"string","nodeType":"ElementaryTypeName","src":"59143:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47801,"mutability":"mutable","name":"p3","nameLocation":"59175:2:138","nodeType":"VariableDeclaration","scope":47816,"src":"59161:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47800,"name":"string","nodeType":"ElementaryTypeName","src":"59161:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59121:57:138"},"returnParameters":{"id":47803,"nodeType":"ParameterList","parameters":[],"src":"59193:0:138"},"scope":48415,"src":"59109:183:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47838,"nodeType":"Block","src":"59370:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":47830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59414:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":47831,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47818,"src":"59447:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47832,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47820,"src":"59451:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47833,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47822,"src":"59455:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47834,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47824,"src":"59459:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47828,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59390:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59390:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59390:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47827,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"59374:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59374:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47837,"nodeType":"ExpressionStatement","src":"59374:89:138"}]},"id":47839,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59304:3:138","nodeType":"FunctionDefinition","parameters":{"id":47825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47818,"mutability":"mutable","name":"p0","nameLocation":"59316:2:138","nodeType":"VariableDeclaration","scope":47839,"src":"59308:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47817,"name":"address","nodeType":"ElementaryTypeName","src":"59308:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47820,"mutability":"mutable","name":"p1","nameLocation":"59325:2:138","nodeType":"VariableDeclaration","scope":47839,"src":"59320:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47819,"name":"bool","nodeType":"ElementaryTypeName","src":"59320:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47822,"mutability":"mutable","name":"p2","nameLocation":"59343:2:138","nodeType":"VariableDeclaration","scope":47839,"src":"59329:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47821,"name":"string","nodeType":"ElementaryTypeName","src":"59329:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47824,"mutability":"mutable","name":"p3","nameLocation":"59352:2:138","nodeType":"VariableDeclaration","scope":47839,"src":"59347:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47823,"name":"bool","nodeType":"ElementaryTypeName","src":"59347:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59307:48:138"},"returnParameters":{"id":47826,"nodeType":"ParameterList","parameters":[],"src":"59370:0:138"},"scope":48415,"src":"59295:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47861,"nodeType":"Block","src":"59548:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":47853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59592:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":47854,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47841,"src":"59628:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47855,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47843,"src":"59632:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47856,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47845,"src":"59636:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47857,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47847,"src":"59640:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47851,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59568:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59568:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59568:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47850,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"59552:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59552:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47860,"nodeType":"ExpressionStatement","src":"59552:92:138"}]},"id":47862,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59479:3:138","nodeType":"FunctionDefinition","parameters":{"id":47848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47841,"mutability":"mutable","name":"p0","nameLocation":"59491:2:138","nodeType":"VariableDeclaration","scope":47862,"src":"59483:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47840,"name":"address","nodeType":"ElementaryTypeName","src":"59483:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47843,"mutability":"mutable","name":"p1","nameLocation":"59500:2:138","nodeType":"VariableDeclaration","scope":47862,"src":"59495:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47842,"name":"bool","nodeType":"ElementaryTypeName","src":"59495:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47845,"mutability":"mutable","name":"p2","nameLocation":"59518:2:138","nodeType":"VariableDeclaration","scope":47862,"src":"59504:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47844,"name":"string","nodeType":"ElementaryTypeName","src":"59504:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47847,"mutability":"mutable","name":"p3","nameLocation":"59530:2:138","nodeType":"VariableDeclaration","scope":47862,"src":"59522:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47846,"name":"address","nodeType":"ElementaryTypeName","src":"59522:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59482:51:138"},"returnParameters":{"id":47849,"nodeType":"ParameterList","parameters":[],"src":"59548:0:138"},"scope":48415,"src":"59470:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47884,"nodeType":"Block","src":"59720:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629","id":47876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59764:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},"value":"log(address,bool,bool,uint256)"},{"id":47877,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47864,"src":"59798:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47878,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47866,"src":"59802:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47879,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47868,"src":"59806:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47880,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47870,"src":"59810:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47874,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59740:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59740:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59740:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47873,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"59724:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59724:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47883,"nodeType":"ExpressionStatement","src":"59724:90:138"}]},"id":47885,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59660:3:138","nodeType":"FunctionDefinition","parameters":{"id":47871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47864,"mutability":"mutable","name":"p0","nameLocation":"59672:2:138","nodeType":"VariableDeclaration","scope":47885,"src":"59664:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47863,"name":"address","nodeType":"ElementaryTypeName","src":"59664:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47866,"mutability":"mutable","name":"p1","nameLocation":"59681:2:138","nodeType":"VariableDeclaration","scope":47885,"src":"59676:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47865,"name":"bool","nodeType":"ElementaryTypeName","src":"59676:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47868,"mutability":"mutable","name":"p2","nameLocation":"59690:2:138","nodeType":"VariableDeclaration","scope":47885,"src":"59685:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47867,"name":"bool","nodeType":"ElementaryTypeName","src":"59685:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47870,"mutability":"mutable","name":"p3","nameLocation":"59702:2:138","nodeType":"VariableDeclaration","scope":47885,"src":"59694:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47869,"name":"uint256","nodeType":"ElementaryTypeName","src":"59694:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59663:42:138"},"returnParameters":{"id":47872,"nodeType":"ParameterList","parameters":[],"src":"59720:0:138"},"scope":48415,"src":"59651:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47907,"nodeType":"Block","src":"59896:97:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":47899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59940:31:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":47900,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47887,"src":"59973:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47901,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47889,"src":"59977:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47902,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47891,"src":"59981:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47903,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47893,"src":"59985:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59916:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59916:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59916:72:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47896,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"59900:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"59900:89:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47906,"nodeType":"ExpressionStatement","src":"59900:89:138"}]},"id":47908,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59830:3:138","nodeType":"FunctionDefinition","parameters":{"id":47894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47887,"mutability":"mutable","name":"p0","nameLocation":"59842:2:138","nodeType":"VariableDeclaration","scope":47908,"src":"59834:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47886,"name":"address","nodeType":"ElementaryTypeName","src":"59834:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47889,"mutability":"mutable","name":"p1","nameLocation":"59851:2:138","nodeType":"VariableDeclaration","scope":47908,"src":"59846:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47888,"name":"bool","nodeType":"ElementaryTypeName","src":"59846:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47891,"mutability":"mutable","name":"p2","nameLocation":"59860:2:138","nodeType":"VariableDeclaration","scope":47908,"src":"59855:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47890,"name":"bool","nodeType":"ElementaryTypeName","src":"59855:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47893,"mutability":"mutable","name":"p3","nameLocation":"59878:2:138","nodeType":"VariableDeclaration","scope":47908,"src":"59864:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47892,"name":"string","nodeType":"ElementaryTypeName","src":"59864:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59833:48:138"},"returnParameters":{"id":47895,"nodeType":"ParameterList","parameters":[],"src":"59896:0:138"},"scope":48415,"src":"59821:172:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47930,"nodeType":"Block","src":"60062:95:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":47922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60106:29:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":47923,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47910,"src":"60137:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47924,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47912,"src":"60141:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47925,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47914,"src":"60145:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47926,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47916,"src":"60149:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":47920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60082:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60082:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60082:70:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47919,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"60066:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60066:87:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47929,"nodeType":"ExpressionStatement","src":"60066:87:138"}]},"id":47931,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60005:3:138","nodeType":"FunctionDefinition","parameters":{"id":47917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47910,"mutability":"mutable","name":"p0","nameLocation":"60017:2:138","nodeType":"VariableDeclaration","scope":47931,"src":"60009:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47909,"name":"address","nodeType":"ElementaryTypeName","src":"60009:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47912,"mutability":"mutable","name":"p1","nameLocation":"60026:2:138","nodeType":"VariableDeclaration","scope":47931,"src":"60021:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47911,"name":"bool","nodeType":"ElementaryTypeName","src":"60021:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47914,"mutability":"mutable","name":"p2","nameLocation":"60035:2:138","nodeType":"VariableDeclaration","scope":47931,"src":"60030:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47913,"name":"bool","nodeType":"ElementaryTypeName","src":"60030:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47916,"mutability":"mutable","name":"p3","nameLocation":"60044:2:138","nodeType":"VariableDeclaration","scope":47931,"src":"60039:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47915,"name":"bool","nodeType":"ElementaryTypeName","src":"60039:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60008:39:138"},"returnParameters":{"id":47918,"nodeType":"ParameterList","parameters":[],"src":"60062:0:138"},"scope":48415,"src":"59996:161:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47953,"nodeType":"Block","src":"60229:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":47945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60273:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":47946,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47933,"src":"60307:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47947,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"60311:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47948,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47937,"src":"60315:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47949,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"60319:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47943,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60249:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60249:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60249:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47942,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"60233:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60233:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47952,"nodeType":"ExpressionStatement","src":"60233:90:138"}]},"id":47954,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60169:3:138","nodeType":"FunctionDefinition","parameters":{"id":47940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47933,"mutability":"mutable","name":"p0","nameLocation":"60181:2:138","nodeType":"VariableDeclaration","scope":47954,"src":"60173:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47932,"name":"address","nodeType":"ElementaryTypeName","src":"60173:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47935,"mutability":"mutable","name":"p1","nameLocation":"60190:2:138","nodeType":"VariableDeclaration","scope":47954,"src":"60185:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47934,"name":"bool","nodeType":"ElementaryTypeName","src":"60185:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47937,"mutability":"mutable","name":"p2","nameLocation":"60199:2:138","nodeType":"VariableDeclaration","scope":47954,"src":"60194:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47936,"name":"bool","nodeType":"ElementaryTypeName","src":"60194:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47939,"mutability":"mutable","name":"p3","nameLocation":"60211:2:138","nodeType":"VariableDeclaration","scope":47954,"src":"60203:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47938,"name":"address","nodeType":"ElementaryTypeName","src":"60203:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60172:42:138"},"returnParameters":{"id":47941,"nodeType":"ParameterList","parameters":[],"src":"60229:0:138"},"scope":48415,"src":"60160:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47976,"nodeType":"Block","src":"60402:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629","id":47968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60446:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},"value":"log(address,bool,address,uint256)"},{"id":47969,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47956,"src":"60483:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47970,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47958,"src":"60487:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47971,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47960,"src":"60491:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47972,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47962,"src":"60495:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60422:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60422:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60422:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47965,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"60406:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60406:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47975,"nodeType":"ExpressionStatement","src":"60406:93:138"}]},"id":47977,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60339:3:138","nodeType":"FunctionDefinition","parameters":{"id":47963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47956,"mutability":"mutable","name":"p0","nameLocation":"60351:2:138","nodeType":"VariableDeclaration","scope":47977,"src":"60343:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47955,"name":"address","nodeType":"ElementaryTypeName","src":"60343:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47958,"mutability":"mutable","name":"p1","nameLocation":"60360:2:138","nodeType":"VariableDeclaration","scope":47977,"src":"60355:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47957,"name":"bool","nodeType":"ElementaryTypeName","src":"60355:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47960,"mutability":"mutable","name":"p2","nameLocation":"60372:2:138","nodeType":"VariableDeclaration","scope":47977,"src":"60364:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47959,"name":"address","nodeType":"ElementaryTypeName","src":"60364:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47962,"mutability":"mutable","name":"p3","nameLocation":"60384:2:138","nodeType":"VariableDeclaration","scope":47977,"src":"60376:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47961,"name":"uint256","nodeType":"ElementaryTypeName","src":"60376:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60342:45:138"},"returnParameters":{"id":47964,"nodeType":"ParameterList","parameters":[],"src":"60402:0:138"},"scope":48415,"src":"60330:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":47999,"nodeType":"Block","src":"60584:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":47991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60628:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":47992,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47979,"src":"60664:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47993,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47981,"src":"60668:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47994,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47983,"src":"60672:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47995,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47985,"src":"60676:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60604:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60604:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":47996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60604:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47988,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"60588:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":47997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60588:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47998,"nodeType":"ExpressionStatement","src":"60588:92:138"}]},"id":48000,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60515:3:138","nodeType":"FunctionDefinition","parameters":{"id":47986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47979,"mutability":"mutable","name":"p0","nameLocation":"60527:2:138","nodeType":"VariableDeclaration","scope":48000,"src":"60519:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47978,"name":"address","nodeType":"ElementaryTypeName","src":"60519:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47981,"mutability":"mutable","name":"p1","nameLocation":"60536:2:138","nodeType":"VariableDeclaration","scope":48000,"src":"60531:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47980,"name":"bool","nodeType":"ElementaryTypeName","src":"60531:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47983,"mutability":"mutable","name":"p2","nameLocation":"60548:2:138","nodeType":"VariableDeclaration","scope":48000,"src":"60540:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47982,"name":"address","nodeType":"ElementaryTypeName","src":"60540:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47985,"mutability":"mutable","name":"p3","nameLocation":"60566:2:138","nodeType":"VariableDeclaration","scope":48000,"src":"60552:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47984,"name":"string","nodeType":"ElementaryTypeName","src":"60552:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60518:51:138"},"returnParameters":{"id":47987,"nodeType":"ParameterList","parameters":[],"src":"60584:0:138"},"scope":48415,"src":"60506:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48022,"nodeType":"Block","src":"60756:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":48014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60800:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":48015,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48002,"src":"60834:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48016,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48004,"src":"60838:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48017,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48006,"src":"60842:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48018,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48008,"src":"60846:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":48012,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60776:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60776:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60776:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48011,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"60760:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60760:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48021,"nodeType":"ExpressionStatement","src":"60760:90:138"}]},"id":48023,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60696:3:138","nodeType":"FunctionDefinition","parameters":{"id":48009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48002,"mutability":"mutable","name":"p0","nameLocation":"60708:2:138","nodeType":"VariableDeclaration","scope":48023,"src":"60700:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48001,"name":"address","nodeType":"ElementaryTypeName","src":"60700:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48004,"mutability":"mutable","name":"p1","nameLocation":"60717:2:138","nodeType":"VariableDeclaration","scope":48023,"src":"60712:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48003,"name":"bool","nodeType":"ElementaryTypeName","src":"60712:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48006,"mutability":"mutable","name":"p2","nameLocation":"60729:2:138","nodeType":"VariableDeclaration","scope":48023,"src":"60721:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48005,"name":"address","nodeType":"ElementaryTypeName","src":"60721:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48008,"mutability":"mutable","name":"p3","nameLocation":"60738:2:138","nodeType":"VariableDeclaration","scope":48023,"src":"60733:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48007,"name":"bool","nodeType":"ElementaryTypeName","src":"60733:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60699:42:138"},"returnParameters":{"id":48010,"nodeType":"ParameterList","parameters":[],"src":"60756:0:138"},"scope":48415,"src":"60687:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48045,"nodeType":"Block","src":"60929:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":48037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60973:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":48038,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"61010:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48039,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48027,"src":"61014:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48040,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48029,"src":"61018:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48041,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48031,"src":"61022:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48035,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60949:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60949:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60949:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48034,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"60933:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"60933:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48044,"nodeType":"ExpressionStatement","src":"60933:93:138"}]},"id":48046,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60866:3:138","nodeType":"FunctionDefinition","parameters":{"id":48032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48025,"mutability":"mutable","name":"p0","nameLocation":"60878:2:138","nodeType":"VariableDeclaration","scope":48046,"src":"60870:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48024,"name":"address","nodeType":"ElementaryTypeName","src":"60870:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48027,"mutability":"mutable","name":"p1","nameLocation":"60887:2:138","nodeType":"VariableDeclaration","scope":48046,"src":"60882:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48026,"name":"bool","nodeType":"ElementaryTypeName","src":"60882:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48029,"mutability":"mutable","name":"p2","nameLocation":"60899:2:138","nodeType":"VariableDeclaration","scope":48046,"src":"60891:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48028,"name":"address","nodeType":"ElementaryTypeName","src":"60891:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48031,"mutability":"mutable","name":"p3","nameLocation":"60911:2:138","nodeType":"VariableDeclaration","scope":48046,"src":"60903:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48030,"name":"address","nodeType":"ElementaryTypeName","src":"60903:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60869:45:138"},"returnParameters":{"id":48033,"nodeType":"ParameterList","parameters":[],"src":"60929:0:138"},"scope":48415,"src":"60857:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48068,"nodeType":"Block","src":"61108:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629","id":48060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61152:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},"value":"log(address,address,uint256,uint256)"},{"id":48061,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48048,"src":"61192:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48062,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48050,"src":"61196:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48063,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48052,"src":"61200:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48064,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48054,"src":"61204:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61128:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61128:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61128:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48057,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"61112:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61112:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48067,"nodeType":"ExpressionStatement","src":"61112:96:138"}]},"id":48069,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61042:3:138","nodeType":"FunctionDefinition","parameters":{"id":48055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48048,"mutability":"mutable","name":"p0","nameLocation":"61054:2:138","nodeType":"VariableDeclaration","scope":48069,"src":"61046:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48047,"name":"address","nodeType":"ElementaryTypeName","src":"61046:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48050,"mutability":"mutable","name":"p1","nameLocation":"61066:2:138","nodeType":"VariableDeclaration","scope":48069,"src":"61058:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48049,"name":"address","nodeType":"ElementaryTypeName","src":"61058:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48052,"mutability":"mutable","name":"p2","nameLocation":"61078:2:138","nodeType":"VariableDeclaration","scope":48069,"src":"61070:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48051,"name":"uint256","nodeType":"ElementaryTypeName","src":"61070:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48054,"mutability":"mutable","name":"p3","nameLocation":"61090:2:138","nodeType":"VariableDeclaration","scope":48069,"src":"61082:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48053,"name":"uint256","nodeType":"ElementaryTypeName","src":"61082:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61045:48:138"},"returnParameters":{"id":48056,"nodeType":"ParameterList","parameters":[],"src":"61108:0:138"},"scope":48415,"src":"61033:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48091,"nodeType":"Block","src":"61296:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729","id":48083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61340:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},"value":"log(address,address,uint256,string)"},{"id":48084,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48071,"src":"61379:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48085,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48073,"src":"61383:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48086,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48075,"src":"61387:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48087,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48077,"src":"61391:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":48081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61316:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61316:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61316:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48080,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"61300:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61300:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48090,"nodeType":"ExpressionStatement","src":"61300:95:138"}]},"id":48092,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61224:3:138","nodeType":"FunctionDefinition","parameters":{"id":48078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48071,"mutability":"mutable","name":"p0","nameLocation":"61236:2:138","nodeType":"VariableDeclaration","scope":48092,"src":"61228:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48070,"name":"address","nodeType":"ElementaryTypeName","src":"61228:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48073,"mutability":"mutable","name":"p1","nameLocation":"61248:2:138","nodeType":"VariableDeclaration","scope":48092,"src":"61240:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48072,"name":"address","nodeType":"ElementaryTypeName","src":"61240:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48075,"mutability":"mutable","name":"p2","nameLocation":"61260:2:138","nodeType":"VariableDeclaration","scope":48092,"src":"61252:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48074,"name":"uint256","nodeType":"ElementaryTypeName","src":"61252:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48077,"mutability":"mutable","name":"p3","nameLocation":"61278:2:138","nodeType":"VariableDeclaration","scope":48092,"src":"61264:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48076,"name":"string","nodeType":"ElementaryTypeName","src":"61264:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61227:54:138"},"returnParameters":{"id":48079,"nodeType":"ParameterList","parameters":[],"src":"61296:0:138"},"scope":48415,"src":"61215:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48114,"nodeType":"Block","src":"61474:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29","id":48106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61518:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},"value":"log(address,address,uint256,bool)"},{"id":48107,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48094,"src":"61555:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48108,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48096,"src":"61559:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48109,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48098,"src":"61563:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48110,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48100,"src":"61567:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":48104,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61494:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61494:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61494:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48103,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"61478:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61478:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48113,"nodeType":"ExpressionStatement","src":"61478:93:138"}]},"id":48115,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61411:3:138","nodeType":"FunctionDefinition","parameters":{"id":48101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48094,"mutability":"mutable","name":"p0","nameLocation":"61423:2:138","nodeType":"VariableDeclaration","scope":48115,"src":"61415:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48093,"name":"address","nodeType":"ElementaryTypeName","src":"61415:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48096,"mutability":"mutable","name":"p1","nameLocation":"61435:2:138","nodeType":"VariableDeclaration","scope":48115,"src":"61427:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48095,"name":"address","nodeType":"ElementaryTypeName","src":"61427:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48098,"mutability":"mutable","name":"p2","nameLocation":"61447:2:138","nodeType":"VariableDeclaration","scope":48115,"src":"61439:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48097,"name":"uint256","nodeType":"ElementaryTypeName","src":"61439:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48100,"mutability":"mutable","name":"p3","nameLocation":"61456:2:138","nodeType":"VariableDeclaration","scope":48115,"src":"61451:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48099,"name":"bool","nodeType":"ElementaryTypeName","src":"61451:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61414:45:138"},"returnParameters":{"id":48102,"nodeType":"ParameterList","parameters":[],"src":"61474:0:138"},"scope":48415,"src":"61402:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48137,"nodeType":"Block","src":"61653:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329","id":48129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61697:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},"value":"log(address,address,uint256,address)"},{"id":48130,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48117,"src":"61737:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48131,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48119,"src":"61741:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48132,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"61745:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48133,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48123,"src":"61749:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61673:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61673:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61673:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48126,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"61657:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61657:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48136,"nodeType":"ExpressionStatement","src":"61657:96:138"}]},"id":48138,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61587:3:138","nodeType":"FunctionDefinition","parameters":{"id":48124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48117,"mutability":"mutable","name":"p0","nameLocation":"61599:2:138","nodeType":"VariableDeclaration","scope":48138,"src":"61591:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48116,"name":"address","nodeType":"ElementaryTypeName","src":"61591:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48119,"mutability":"mutable","name":"p1","nameLocation":"61611:2:138","nodeType":"VariableDeclaration","scope":48138,"src":"61603:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48118,"name":"address","nodeType":"ElementaryTypeName","src":"61603:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48121,"mutability":"mutable","name":"p2","nameLocation":"61623:2:138","nodeType":"VariableDeclaration","scope":48138,"src":"61615:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48120,"name":"uint256","nodeType":"ElementaryTypeName","src":"61615:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48123,"mutability":"mutable","name":"p3","nameLocation":"61635:2:138","nodeType":"VariableDeclaration","scope":48138,"src":"61627:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48122,"name":"address","nodeType":"ElementaryTypeName","src":"61627:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61590:48:138"},"returnParameters":{"id":48125,"nodeType":"ParameterList","parameters":[],"src":"61653:0:138"},"scope":48415,"src":"61578:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48160,"nodeType":"Block","src":"61841:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629","id":48152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61885:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},"value":"log(address,address,string,uint256)"},{"id":48153,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48140,"src":"61924:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48154,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48142,"src":"61928:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48155,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48144,"src":"61932:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":48156,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48146,"src":"61936:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61861:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61861:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61861:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48149,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"61845:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"61845:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48159,"nodeType":"ExpressionStatement","src":"61845:95:138"}]},"id":48161,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61769:3:138","nodeType":"FunctionDefinition","parameters":{"id":48147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48140,"mutability":"mutable","name":"p0","nameLocation":"61781:2:138","nodeType":"VariableDeclaration","scope":48161,"src":"61773:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48139,"name":"address","nodeType":"ElementaryTypeName","src":"61773:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48142,"mutability":"mutable","name":"p1","nameLocation":"61793:2:138","nodeType":"VariableDeclaration","scope":48161,"src":"61785:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48141,"name":"address","nodeType":"ElementaryTypeName","src":"61785:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48144,"mutability":"mutable","name":"p2","nameLocation":"61811:2:138","nodeType":"VariableDeclaration","scope":48161,"src":"61797:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48143,"name":"string","nodeType":"ElementaryTypeName","src":"61797:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":48146,"mutability":"mutable","name":"p3","nameLocation":"61823:2:138","nodeType":"VariableDeclaration","scope":48161,"src":"61815:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48145,"name":"uint256","nodeType":"ElementaryTypeName","src":"61815:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61772:54:138"},"returnParameters":{"id":48148,"nodeType":"ParameterList","parameters":[],"src":"61841:0:138"},"scope":48415,"src":"61760:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48183,"nodeType":"Block","src":"62034:102:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":48175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62078:36:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":48176,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48163,"src":"62116:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48177,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48165,"src":"62120:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48178,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48167,"src":"62124:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":48179,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48169,"src":"62128:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":48173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62054:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62054:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62054:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48172,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"62038:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62038:94:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48182,"nodeType":"ExpressionStatement","src":"62038:94:138"}]},"id":48184,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61956:3:138","nodeType":"FunctionDefinition","parameters":{"id":48170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48163,"mutability":"mutable","name":"p0","nameLocation":"61968:2:138","nodeType":"VariableDeclaration","scope":48184,"src":"61960:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48162,"name":"address","nodeType":"ElementaryTypeName","src":"61960:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48165,"mutability":"mutable","name":"p1","nameLocation":"61980:2:138","nodeType":"VariableDeclaration","scope":48184,"src":"61972:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48164,"name":"address","nodeType":"ElementaryTypeName","src":"61972:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48167,"mutability":"mutable","name":"p2","nameLocation":"61998:2:138","nodeType":"VariableDeclaration","scope":48184,"src":"61984:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48166,"name":"string","nodeType":"ElementaryTypeName","src":"61984:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":48169,"mutability":"mutable","name":"p3","nameLocation":"62016:2:138","nodeType":"VariableDeclaration","scope":48184,"src":"62002:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48168,"name":"string","nodeType":"ElementaryTypeName","src":"62002:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61959:60:138"},"returnParameters":{"id":48171,"nodeType":"ParameterList","parameters":[],"src":"62034:0:138"},"scope":48415,"src":"61947:189:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48206,"nodeType":"Block","src":"62217:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":48198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62261:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":48199,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48186,"src":"62297:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48200,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48188,"src":"62301:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48201,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48190,"src":"62305:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":48202,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48192,"src":"62309:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":48196,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62237:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62237:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62237:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48195,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"62221:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62221:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48205,"nodeType":"ExpressionStatement","src":"62221:92:138"}]},"id":48207,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62148:3:138","nodeType":"FunctionDefinition","parameters":{"id":48193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48186,"mutability":"mutable","name":"p0","nameLocation":"62160:2:138","nodeType":"VariableDeclaration","scope":48207,"src":"62152:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48185,"name":"address","nodeType":"ElementaryTypeName","src":"62152:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48188,"mutability":"mutable","name":"p1","nameLocation":"62172:2:138","nodeType":"VariableDeclaration","scope":48207,"src":"62164:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48187,"name":"address","nodeType":"ElementaryTypeName","src":"62164:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48190,"mutability":"mutable","name":"p2","nameLocation":"62190:2:138","nodeType":"VariableDeclaration","scope":48207,"src":"62176:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48189,"name":"string","nodeType":"ElementaryTypeName","src":"62176:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":48192,"mutability":"mutable","name":"p3","nameLocation":"62199:2:138","nodeType":"VariableDeclaration","scope":48207,"src":"62194:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48191,"name":"bool","nodeType":"ElementaryTypeName","src":"62194:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62151:51:138"},"returnParameters":{"id":48194,"nodeType":"ParameterList","parameters":[],"src":"62217:0:138"},"scope":48415,"src":"62139:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48229,"nodeType":"Block","src":"62401:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":48221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62445:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":48222,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48209,"src":"62484:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48223,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48211,"src":"62488:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48224,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48213,"src":"62492:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":48225,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48215,"src":"62496:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48219,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62421:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62421:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62421:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48218,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"62405:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62405:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48228,"nodeType":"ExpressionStatement","src":"62405:95:138"}]},"id":48230,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62329:3:138","nodeType":"FunctionDefinition","parameters":{"id":48216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48209,"mutability":"mutable","name":"p0","nameLocation":"62341:2:138","nodeType":"VariableDeclaration","scope":48230,"src":"62333:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48208,"name":"address","nodeType":"ElementaryTypeName","src":"62333:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48211,"mutability":"mutable","name":"p1","nameLocation":"62353:2:138","nodeType":"VariableDeclaration","scope":48230,"src":"62345:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48210,"name":"address","nodeType":"ElementaryTypeName","src":"62345:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48213,"mutability":"mutable","name":"p2","nameLocation":"62371:2:138","nodeType":"VariableDeclaration","scope":48230,"src":"62357:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48212,"name":"string","nodeType":"ElementaryTypeName","src":"62357:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":48215,"mutability":"mutable","name":"p3","nameLocation":"62383:2:138","nodeType":"VariableDeclaration","scope":48230,"src":"62375:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48214,"name":"address","nodeType":"ElementaryTypeName","src":"62375:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62332:54:138"},"returnParameters":{"id":48217,"nodeType":"ParameterList","parameters":[],"src":"62401:0:138"},"scope":48415,"src":"62320:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48252,"nodeType":"Block","src":"62579:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629","id":48244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62623:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},"value":"log(address,address,bool,uint256)"},{"id":48245,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48232,"src":"62660:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48246,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48234,"src":"62664:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48247,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48236,"src":"62668:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48248,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48238,"src":"62672:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48242,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62599:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62599:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62599:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48241,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"62583:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62583:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48251,"nodeType":"ExpressionStatement","src":"62583:93:138"}]},"id":48253,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62516:3:138","nodeType":"FunctionDefinition","parameters":{"id":48239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48232,"mutability":"mutable","name":"p0","nameLocation":"62528:2:138","nodeType":"VariableDeclaration","scope":48253,"src":"62520:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48231,"name":"address","nodeType":"ElementaryTypeName","src":"62520:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48234,"mutability":"mutable","name":"p1","nameLocation":"62540:2:138","nodeType":"VariableDeclaration","scope":48253,"src":"62532:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48233,"name":"address","nodeType":"ElementaryTypeName","src":"62532:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48236,"mutability":"mutable","name":"p2","nameLocation":"62549:2:138","nodeType":"VariableDeclaration","scope":48253,"src":"62544:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48235,"name":"bool","nodeType":"ElementaryTypeName","src":"62544:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48238,"mutability":"mutable","name":"p3","nameLocation":"62561:2:138","nodeType":"VariableDeclaration","scope":48253,"src":"62553:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48237,"name":"uint256","nodeType":"ElementaryTypeName","src":"62553:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62519:45:138"},"returnParameters":{"id":48240,"nodeType":"ParameterList","parameters":[],"src":"62579:0:138"},"scope":48415,"src":"62507:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48275,"nodeType":"Block","src":"62761:100:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":48267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62805:34:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":48268,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48255,"src":"62841:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48269,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48257,"src":"62845:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48270,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"62849:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48271,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48261,"src":"62853:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":48265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62781:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62781:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62781:75:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48264,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"62765:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62765:92:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48274,"nodeType":"ExpressionStatement","src":"62765:92:138"}]},"id":48276,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62692:3:138","nodeType":"FunctionDefinition","parameters":{"id":48262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48255,"mutability":"mutable","name":"p0","nameLocation":"62704:2:138","nodeType":"VariableDeclaration","scope":48276,"src":"62696:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48254,"name":"address","nodeType":"ElementaryTypeName","src":"62696:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48257,"mutability":"mutable","name":"p1","nameLocation":"62716:2:138","nodeType":"VariableDeclaration","scope":48276,"src":"62708:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48256,"name":"address","nodeType":"ElementaryTypeName","src":"62708:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48259,"mutability":"mutable","name":"p2","nameLocation":"62725:2:138","nodeType":"VariableDeclaration","scope":48276,"src":"62720:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48258,"name":"bool","nodeType":"ElementaryTypeName","src":"62720:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48261,"mutability":"mutable","name":"p3","nameLocation":"62743:2:138","nodeType":"VariableDeclaration","scope":48276,"src":"62729:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48260,"name":"string","nodeType":"ElementaryTypeName","src":"62729:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62695:51:138"},"returnParameters":{"id":48263,"nodeType":"ParameterList","parameters":[],"src":"62761:0:138"},"scope":48415,"src":"62683:178:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48298,"nodeType":"Block","src":"62933:98:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":48290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62977:32:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":48291,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48278,"src":"63011:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48292,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48280,"src":"63015:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48293,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48282,"src":"63019:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48294,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48284,"src":"63023:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":48288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62953:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62953:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62953:73:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48287,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"62937:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"62937:90:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48297,"nodeType":"ExpressionStatement","src":"62937:90:138"}]},"id":48299,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62873:3:138","nodeType":"FunctionDefinition","parameters":{"id":48285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48278,"mutability":"mutable","name":"p0","nameLocation":"62885:2:138","nodeType":"VariableDeclaration","scope":48299,"src":"62877:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48277,"name":"address","nodeType":"ElementaryTypeName","src":"62877:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48280,"mutability":"mutable","name":"p1","nameLocation":"62897:2:138","nodeType":"VariableDeclaration","scope":48299,"src":"62889:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48279,"name":"address","nodeType":"ElementaryTypeName","src":"62889:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48282,"mutability":"mutable","name":"p2","nameLocation":"62906:2:138","nodeType":"VariableDeclaration","scope":48299,"src":"62901:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48281,"name":"bool","nodeType":"ElementaryTypeName","src":"62901:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48284,"mutability":"mutable","name":"p3","nameLocation":"62915:2:138","nodeType":"VariableDeclaration","scope":48299,"src":"62910:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48283,"name":"bool","nodeType":"ElementaryTypeName","src":"62910:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62876:42:138"},"returnParameters":{"id":48286,"nodeType":"ParameterList","parameters":[],"src":"62933:0:138"},"scope":48415,"src":"62864:167:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48321,"nodeType":"Block","src":"63106:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":48313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63150:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":48314,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48301,"src":"63187:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48315,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48303,"src":"63191:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48316,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48305,"src":"63195:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48317,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48307,"src":"63199:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48311,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63126:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63126:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63126:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48310,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"63110:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63110:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48320,"nodeType":"ExpressionStatement","src":"63110:93:138"}]},"id":48322,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63043:3:138","nodeType":"FunctionDefinition","parameters":{"id":48308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48301,"mutability":"mutable","name":"p0","nameLocation":"63055:2:138","nodeType":"VariableDeclaration","scope":48322,"src":"63047:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48300,"name":"address","nodeType":"ElementaryTypeName","src":"63047:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48303,"mutability":"mutable","name":"p1","nameLocation":"63067:2:138","nodeType":"VariableDeclaration","scope":48322,"src":"63059:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48302,"name":"address","nodeType":"ElementaryTypeName","src":"63059:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48305,"mutability":"mutable","name":"p2","nameLocation":"63076:2:138","nodeType":"VariableDeclaration","scope":48322,"src":"63071:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48304,"name":"bool","nodeType":"ElementaryTypeName","src":"63071:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48307,"mutability":"mutable","name":"p3","nameLocation":"63088:2:138","nodeType":"VariableDeclaration","scope":48322,"src":"63080:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48306,"name":"address","nodeType":"ElementaryTypeName","src":"63080:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63046:45:138"},"returnParameters":{"id":48309,"nodeType":"ParameterList","parameters":[],"src":"63106:0:138"},"scope":48415,"src":"63034:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48344,"nodeType":"Block","src":"63285:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629","id":48336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63329:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},"value":"log(address,address,address,uint256)"},{"id":48337,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48324,"src":"63369:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48338,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48326,"src":"63373:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48339,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48328,"src":"63377:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48340,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48330,"src":"63381:2:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48334,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63305:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63305:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63305:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48333,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"63289:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63289:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48343,"nodeType":"ExpressionStatement","src":"63289:96:138"}]},"id":48345,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63219:3:138","nodeType":"FunctionDefinition","parameters":{"id":48331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48324,"mutability":"mutable","name":"p0","nameLocation":"63231:2:138","nodeType":"VariableDeclaration","scope":48345,"src":"63223:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48323,"name":"address","nodeType":"ElementaryTypeName","src":"63223:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48326,"mutability":"mutable","name":"p1","nameLocation":"63243:2:138","nodeType":"VariableDeclaration","scope":48345,"src":"63235:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48325,"name":"address","nodeType":"ElementaryTypeName","src":"63235:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48328,"mutability":"mutable","name":"p2","nameLocation":"63255:2:138","nodeType":"VariableDeclaration","scope":48345,"src":"63247:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48327,"name":"address","nodeType":"ElementaryTypeName","src":"63247:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48330,"mutability":"mutable","name":"p3","nameLocation":"63267:2:138","nodeType":"VariableDeclaration","scope":48345,"src":"63259:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48329,"name":"uint256","nodeType":"ElementaryTypeName","src":"63259:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63222:48:138"},"returnParameters":{"id":48332,"nodeType":"ParameterList","parameters":[],"src":"63285:0:138"},"scope":48415,"src":"63210:179:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48367,"nodeType":"Block","src":"63473:103:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":48359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63517:37:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":48360,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48347,"src":"63556:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48361,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48349,"src":"63560:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48362,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"63564:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48363,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48353,"src":"63568:2:138","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":48357,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63493:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63493:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63493:78:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48356,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"63477:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63477:95:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48366,"nodeType":"ExpressionStatement","src":"63477:95:138"}]},"id":48368,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63401:3:138","nodeType":"FunctionDefinition","parameters":{"id":48354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48347,"mutability":"mutable","name":"p0","nameLocation":"63413:2:138","nodeType":"VariableDeclaration","scope":48368,"src":"63405:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48346,"name":"address","nodeType":"ElementaryTypeName","src":"63405:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48349,"mutability":"mutable","name":"p1","nameLocation":"63425:2:138","nodeType":"VariableDeclaration","scope":48368,"src":"63417:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48348,"name":"address","nodeType":"ElementaryTypeName","src":"63417:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48351,"mutability":"mutable","name":"p2","nameLocation":"63437:2:138","nodeType":"VariableDeclaration","scope":48368,"src":"63429:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48350,"name":"address","nodeType":"ElementaryTypeName","src":"63429:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48353,"mutability":"mutable","name":"p3","nameLocation":"63455:2:138","nodeType":"VariableDeclaration","scope":48368,"src":"63441:16:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48352,"name":"string","nodeType":"ElementaryTypeName","src":"63441:6:138","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63404:54:138"},"returnParameters":{"id":48355,"nodeType":"ParameterList","parameters":[],"src":"63473:0:138"},"scope":48415,"src":"63392:184:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48390,"nodeType":"Block","src":"63651:101:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":48382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63695:35:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":48383,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48370,"src":"63732:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48384,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48372,"src":"63736:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48385,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48374,"src":"63740:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48386,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48376,"src":"63744:2:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":48380,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63671:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63671:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63671:76:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48379,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"63655:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63655:93:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48389,"nodeType":"ExpressionStatement","src":"63655:93:138"}]},"id":48391,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63588:3:138","nodeType":"FunctionDefinition","parameters":{"id":48377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48370,"mutability":"mutable","name":"p0","nameLocation":"63600:2:138","nodeType":"VariableDeclaration","scope":48391,"src":"63592:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48369,"name":"address","nodeType":"ElementaryTypeName","src":"63592:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48372,"mutability":"mutable","name":"p1","nameLocation":"63612:2:138","nodeType":"VariableDeclaration","scope":48391,"src":"63604:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48371,"name":"address","nodeType":"ElementaryTypeName","src":"63604:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48374,"mutability":"mutable","name":"p2","nameLocation":"63624:2:138","nodeType":"VariableDeclaration","scope":48391,"src":"63616:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48373,"name":"address","nodeType":"ElementaryTypeName","src":"63616:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48376,"mutability":"mutable","name":"p3","nameLocation":"63633:2:138","nodeType":"VariableDeclaration","scope":48391,"src":"63628:7:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48375,"name":"bool","nodeType":"ElementaryTypeName","src":"63628:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63591:45:138"},"returnParameters":{"id":48378,"nodeType":"ParameterList","parameters":[],"src":"63651:0:138"},"scope":48415,"src":"63579:173:138","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":48413,"nodeType":"Block","src":"63830:104:138","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":48405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63874:38:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":48406,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48393,"src":"63914:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48407,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48395,"src":"63918:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48408,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48397,"src":"63922:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48409,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48399,"src":"63926:2:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63850:3:138","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63850:23:138","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":48410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63850:79:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48402,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40375,"src":"63834:15:138","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":48411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"63834:96:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48412,"nodeType":"ExpressionStatement","src":"63834:96:138"}]},"id":48414,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63764:3:138","nodeType":"FunctionDefinition","parameters":{"id":48400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48393,"mutability":"mutable","name":"p0","nameLocation":"63776:2:138","nodeType":"VariableDeclaration","scope":48414,"src":"63768:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48392,"name":"address","nodeType":"ElementaryTypeName","src":"63768:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48395,"mutability":"mutable","name":"p1","nameLocation":"63788:2:138","nodeType":"VariableDeclaration","scope":48414,"src":"63780:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48394,"name":"address","nodeType":"ElementaryTypeName","src":"63780:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48397,"mutability":"mutable","name":"p2","nameLocation":"63800:2:138","nodeType":"VariableDeclaration","scope":48414,"src":"63792:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48396,"name":"address","nodeType":"ElementaryTypeName","src":"63792:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48399,"mutability":"mutable","name":"p3","nameLocation":"63812:2:138","nodeType":"VariableDeclaration","scope":48414,"src":"63804:10:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48398,"name":"address","nodeType":"ElementaryTypeName","src":"63804:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63767:48:138"},"returnParameters":{"id":48401,"nodeType":"ParameterList","parameters":[],"src":"63830:0:138"},"scope":48415,"src":"63755:179:138","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":48416,"src":"67:63870:138","usedErrors":[]}],"src":"32:63906:138"},"id":138}},"contracts":{"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"AccessControlEnumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {AccessControl} that allows enumerating the members of each role.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":\"AccessControlEnumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]}},\"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"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"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\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"IAccessControlEnumerable":{"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":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"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\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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 AccessControlEnumerable declared to support ERC165 detection.\",\"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}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"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/IAccessControlEnumerable.sol\":\"IAccessControlEnumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]}},\"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"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"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\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/Governor.sol":{"Governor":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Core of the governance system, designed to be extended though various modules. This contract is abstract and requires several function to be implemented in various modules: - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote} - A voting module must implement {_getVotes} - Additionanly, the {votingPeriod} must also be implemented _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Sets the value for {name} and {version}\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns weither `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/Governor.sol\":\"Governor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/IGovernor.sol":{"IGovernor":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"COUNTING_MODE()":"dd4e2ba5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the {Governor} core. _Available since v4.3._\",\"events\":{\"ProposalCanceled(uint256)\":{\"details\":\"Emitted when a proposal is canceled.\"},\"ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)\":{\"details\":\"Emitted when a proposal is created.\"},\"ProposalExecuted(uint256)\":{\"details\":\"Emitted when a proposal is executed.\"},\"VoteCast(address,uint256,uint8,uint256,string)\":{\"details\":\"Emitted when a vote is cast without params. Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\"},\"VoteCastWithParams(address,uint256,uint8,uint256,string,bytes)\":{\"details\":\"Emitted when a vote is cast with params. Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used. `params` are additional encoded parameters. Their intepepretation also depends on the voting module used.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"Cast a vote Emits a {VoteCast} event.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote using the user's cryptographic signature. Emits a {VoteCast} event.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"Cast a vote with a reason Emits a {VoteCast} event.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature. Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the deadline to be reached. Emits a {ProposalExecuted} event. Note: some module can modify the requirements for execution, for example by adding an additional timelock.\"},\"getVotes(address,uint256)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber`. Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or multiple), {ERC20Votes} tokens.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber` given additional encoded parameters.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns weither `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Hashing function used to (re)build the proposal id from the proposal details..\"},\"name()\":{\"details\":\"Name of the governor instance (used in building the ERC712 domain separator).\"},\"proposalDeadline(uint256)\":{\"details\":\"Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote during this block.\"},\"proposalSnapshot(uint256)\":{\"details\":\"Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the beginning of the following block.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends {IGovernor-votingPeriod} blocks after the voting starts. Emits a {ProposalCreated} event.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"state(uint256)\":{\"details\":\"Current state of a proposal, following Compound's convention\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"version()\":{\"details\":\"Version of the governor instance (used in building the ERC712 domain separator). Default: \\\"1\\\"\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"getVotes(address,uint256)\":{\"notice\":\"module:reputation\"},\"getVotesWithParams(address,uint256,bytes)\":{\"notice\":\"module:reputation\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"notice\":\"module:core\"},\"name()\":{\"notice\":\"module:core\"},\"proposalDeadline(uint256)\":{\"notice\":\"module:core\"},\"proposalSnapshot(uint256)\":{\"notice\":\"module:core\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"state(uint256)\":{\"notice\":\"module:core\"},\"version()\":{\"notice\":\"module:core\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/IGovernor.sol\":\"IGovernor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/TimelockController.sol":{"TimelockController":{"abi":[{"inputs":[{"internalType":"uint256","name":"minDelay","type":"uint256"},{"internalType":"address[]","name":"proposers","type":"address[]"},{"internalType":"address[]","name":"executors","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"CallExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"delay","type":"uint256"}],"name":"CallScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"Cancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"MinDelayChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"CANCELLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXECUTOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"executeBatch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getMinDelay","outputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"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":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperation","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperationBatch","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperation","outputs":[{"internalType":"bool","name":"registered","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationDone","outputs":[{"internalType":"bool","name":"done","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationPending","outputs":[{"internalType":"bool","name":"pending","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationReady","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"scheduleBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"updateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2496:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"271:879:139","statements":[{"body":{"nodeType":"YulBlock","src":"320:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"329:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"336:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"322:6:139"},"nodeType":"YulFunctionCall","src":"322:20:139"},"nodeType":"YulExpressionStatement","src":"322:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"299:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"307:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"295:3:139"},"nodeType":"YulFunctionCall","src":"295:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"314:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"291:3:139"},"nodeType":"YulFunctionCall","src":"291:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"284:6:139"},"nodeType":"YulFunctionCall","src":"284:35:139"},"nodeType":"YulIf","src":"281:2:139"},{"nodeType":"YulVariableDeclaration","src":"353:23:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"369:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"363:5:139"},"nodeType":"YulFunctionCall","src":"363:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"357:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"385:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"395:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"389:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"408:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"426:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"430:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"422:3:139"},"nodeType":"YulFunctionCall","src":"422:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"434:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"418:3:139"},"nodeType":"YulFunctionCall","src":"418:18:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"412:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"459:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"461:16:139"},"nodeType":"YulFunctionCall","src":"461:18:139"},"nodeType":"YulExpressionStatement","src":"461:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"451:2:139"},{"name":"_3","nodeType":"YulIdentifier","src":"455:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"448:2:139"},"nodeType":"YulFunctionCall","src":"448:10:139"},"nodeType":"YulIf","src":"445:2:139"},{"nodeType":"YulVariableDeclaration","src":"490:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"504:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"507:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"500:3:139"},"nodeType":"YulFunctionCall","src":"500:10:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"494:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"519:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"539:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"533:5:139"},"nodeType":"YulFunctionCall","src":"533:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"523:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"551:56:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"573:6:139"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"589:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"593:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"585:3:139"},"nodeType":"YulFunctionCall","src":"585:11:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"602:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"598:3:139"},"nodeType":"YulFunctionCall","src":"598:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"581:3:139"},"nodeType":"YulFunctionCall","src":"581:25:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:139"},"nodeType":"YulFunctionCall","src":"569:38:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"555:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"666:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"668:16:139"},"nodeType":"YulFunctionCall","src":"668:18:139"},"nodeType":"YulExpressionStatement","src":"668:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"625:10:139"},{"name":"_3","nodeType":"YulIdentifier","src":"637:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"622:2:139"},"nodeType":"YulFunctionCall","src":"622:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"645:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"657:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"642:2:139"},"nodeType":"YulFunctionCall","src":"642:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"619:2:139"},"nodeType":"YulFunctionCall","src":"619:46:139"},"nodeType":"YulIf","src":"616:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"704:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"708:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:139"},"nodeType":"YulFunctionCall","src":"697:22:139"},"nodeType":"YulExpressionStatement","src":"697:22:139"},{"nodeType":"YulVariableDeclaration","src":"728:17:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"739:6:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"732:3:139","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"761:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"769:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"754:6:139"},"nodeType":"YulFunctionCall","src":"754:18:139"},"nodeType":"YulExpressionStatement","src":"754:18:139"},{"nodeType":"YulAssignment","src":"781:22:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"792:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"800:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"788:3:139"},"nodeType":"YulFunctionCall","src":"788:15:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"781:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"812:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"827:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"835:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"823:3:139"},"nodeType":"YulFunctionCall","src":"823:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"816:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"884:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"893:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"900:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"886:6:139"},"nodeType":"YulFunctionCall","src":"886:20:139"},"nodeType":"YulExpressionStatement","src":"886:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"861:6:139"},{"name":"_4","nodeType":"YulIdentifier","src":"869:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"857:3:139"},"nodeType":"YulFunctionCall","src":"857:15:139"},{"name":"_2","nodeType":"YulIdentifier","src":"874:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"853:3:139"},"nodeType":"YulFunctionCall","src":"853:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"879:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"850:2:139"},"nodeType":"YulFunctionCall","src":"850:33:139"},"nodeType":"YulIf","src":"847:2:139"},{"nodeType":"YulVariableDeclaration","src":"917:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"926:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"921:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"985:135:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1006:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1041:3:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1011:29:139"},"nodeType":"YulFunctionCall","src":"1011:34:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"999:6:139"},"nodeType":"YulFunctionCall","src":"999:47:139"},"nodeType":"YulExpressionStatement","src":"999:47:139"},{"nodeType":"YulAssignment","src":"1059:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1070:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1075:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:139"},"nodeType":"YulFunctionCall","src":"1066:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1059:3:139"}]},{"nodeType":"YulAssignment","src":"1091:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1102:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1107:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1098:3:139"},"nodeType":"YulFunctionCall","src":"1098:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1091:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"951:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"954:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"948:2:139"},"nodeType":"YulFunctionCall","src":"948:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"958:18:139","statements":[{"nodeType":"YulAssignment","src":"960:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"969:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"972:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"965:3:139"},"nodeType":"YulFunctionCall","src":"965:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"960:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"944:3:139","statements":[]},"src":"940:180:139"},{"nodeType":"YulAssignment","src":"1129:15:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1138:6:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1129:5:139"}]}]},"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"245:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"253:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"261:5:139","type":""}],"src":"196:954:139"},{"body":{"nodeType":"YulBlock","src":"1320:540:139","statements":[{"body":{"nodeType":"YulBlock","src":"1366:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1375:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1383:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1368:6:139"},"nodeType":"YulFunctionCall","src":"1368:22:139"},"nodeType":"YulExpressionStatement","src":"1368:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1341:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1350:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1337:3:139"},"nodeType":"YulFunctionCall","src":"1337:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1362:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1333:3:139"},"nodeType":"YulFunctionCall","src":"1333:32:139"},"nodeType":"YulIf","src":"1330:2:139"},{"nodeType":"YulAssignment","src":"1401:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1417:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1411:5:139"},"nodeType":"YulFunctionCall","src":"1411:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1401:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1436:39:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1460:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1471:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1456:3:139"},"nodeType":"YulFunctionCall","src":"1456:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1450:5:139"},"nodeType":"YulFunctionCall","src":"1450:25:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1440:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1484:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1502:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1498:3:139"},"nodeType":"YulFunctionCall","src":"1498:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"1510:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1494:3:139"},"nodeType":"YulFunctionCall","src":"1494:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1488:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1539:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1548:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1556:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1541:6:139"},"nodeType":"YulFunctionCall","src":"1541:22:139"},"nodeType":"YulExpressionStatement","src":"1541:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1527:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1535:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1524:2:139"},"nodeType":"YulFunctionCall","src":"1524:14:139"},"nodeType":"YulIf","src":"1521:2:139"},{"nodeType":"YulAssignment","src":"1574:82:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1628:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1639:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1624:3:139"},"nodeType":"YulFunctionCall","src":"1624:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1648:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1584:39:139"},"nodeType":"YulFunctionCall","src":"1584:72:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1574:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1665:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1691:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1702:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1687:3:139"},"nodeType":"YulFunctionCall","src":"1687:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1681:5:139"},"nodeType":"YulFunctionCall","src":"1681:25:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1669:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1735:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1744:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"1752:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1737:6:139"},"nodeType":"YulFunctionCall","src":"1737:22:139"},"nodeType":"YulExpressionStatement","src":"1737:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1721:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1731:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1718:2:139"},"nodeType":"YulFunctionCall","src":"1718:16:139"},"nodeType":"YulIf","src":"1715:2:139"},{"nodeType":"YulAssignment","src":"1770:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1824:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1835:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1820:3:139"},"nodeType":"YulFunctionCall","src":"1820:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1846:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1780:39:139"},"nodeType":"YulFunctionCall","src":"1780:74:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1770:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1270:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1281:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1293:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1301:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1309:6:139","type":""}],"src":"1155:705:139"},{"body":{"nodeType":"YulBlock","src":"2002:119:139","statements":[{"nodeType":"YulAssignment","src":"2012:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2024:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2035:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2020:3:139"},"nodeType":"YulFunctionCall","src":"2020:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2012:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2054:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2065:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2047:6:139"},"nodeType":"YulFunctionCall","src":"2047:25:139"},"nodeType":"YulExpressionStatement","src":"2047:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2092:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2103:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2088:3:139"},"nodeType":"YulFunctionCall","src":"2088:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2108:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2081:6:139"},"nodeType":"YulFunctionCall","src":"2081:34:139"},"nodeType":"YulExpressionStatement","src":"2081:34:139"}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1963:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1974:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1982:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1993:4:139","type":""}],"src":"1865:256:139"},{"body":{"nodeType":"YulBlock","src":"2173:189:139","statements":[{"body":{"nodeType":"YulBlock","src":"2212:115:139","statements":[{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"2233:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2242:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2247:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2238:3:139"},"nodeType":"YulFunctionCall","src":"2238:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2226:6:139"},"nodeType":"YulFunctionCall","src":"2226:33:139"},"nodeType":"YulExpressionStatement","src":"2226:33:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2279:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2282:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2272:6:139"},"nodeType":"YulFunctionCall","src":"2272:15:139"},"nodeType":"YulExpressionStatement","src":"2272:15:139"},{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"2307:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"2312:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2300:6:139"},"nodeType":"YulFunctionCall","src":"2300:17:139"},"nodeType":"YulExpressionStatement","src":"2300:17:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2189:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2200:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2196:3:139"},"nodeType":"YulFunctionCall","src":"2196:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2186:2:139"},"nodeType":"YulFunctionCall","src":"2186:17:139"},"nodeType":"YulIf","src":"2183:2:139"},{"nodeType":"YulAssignment","src":"2336:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2347:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"2354:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2343:3:139"},"nodeType":"YulFunctionCall","src":"2343:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"2336:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2155:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"2165:3:139","type":""}],"src":"2126:236:139"},{"body":{"nodeType":"YulBlock","src":"2399:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2416:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2423:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2428:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2419:3:139"},"nodeType":"YulFunctionCall","src":"2419:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2409:6:139"},"nodeType":"YulFunctionCall","src":"2409:31:139"},"nodeType":"YulExpressionStatement","src":"2409:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2456:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2459:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2449:6:139"},"nodeType":"YulFunctionCall","src":"2449:15:139"},"nodeType":"YulExpressionStatement","src":"2449:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2480:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2483:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2473:6:139"},"nodeType":"YulFunctionCall","src":"2473:15:139"},"nodeType":"YulExpressionStatement","src":"2473:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2367:127:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let _3 := sub(shl(64, 1), 1)\n        if gt(_1, _3) { panic_error_0x41() }\n        let _4 := shl(5, _1)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_4, 63), not(31)))\n        if or(gt(newFreePtr, _3), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, _4), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, abi_decode_address_fromMemory(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        value0 := mload(headStart)\n        let offset := mload(add(headStart, 32))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_address_dyn_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(value2, value2) }\n        value2 := abi_decode_array_address_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0))\n        {\n            mstore(ret, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(ret, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620022ee380380620022ee833981016040819052620000349162000408565b6200004f6000805160206200226e8339815191528062000240565b620000796000805160206200228e8339815191526000805160206200226e83398151915262000240565b620000a3600080516020620022ae8339815191526000805160206200226e83398151915262000240565b620000cd600080516020620022ce8339815191526000805160206200226e83398151915262000240565b620000e86000805160206200226e833981519152336200028b565b620001036000805160206200226e833981519152306200028b565b60005b8251811015620001a157620001596000805160206200228e8339815191528483815181106200014557634e487b7160e01b600052603260045260246000fd5b60200260200101516200028b60201b60201c565b6200018e600080516020620022ce8339815191528483815181106200014557634e487b7160e01b600052603260045260246000fd5b620001998162000479565b905062000106565b5060005b8151811015620001f757620001e4600080516020620022ae8339815191528383815181106200014557634e487b7160e01b600052603260045260246000fd5b620001ef8162000479565b9050620001a5565b5060028390556040805160008152602081018590527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1505050620004b7565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6200029782826200029b565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000297576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002f73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200035357600080fd5b919050565b600082601f83011262000369578081fd5b815160206001600160401b0380831115620003885762000388620004a1565b8260051b604051601f19603f83011681018181108482111715620003b057620003b0620004a1565b60405284815283810192508684018288018501891015620003cf578687fd5b8692505b85831015620003fc57620003e7816200033b565b845292840192600192909201918401620003d3565b50979650505050505050565b6000806000606084860312156200041d578283fd5b835160208501519093506001600160401b03808211156200043c578384fd5b6200044a8783880162000358565b9350604086015191508082111562000460578283fd5b506200046f8682870162000358565b9150509250925092565b60006000198214156200049a57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b611da780620004c76000396000f3fe60806040526004361061017b5760003560e01c80638065657f116100cc578063bc197c811161007a578063bc197c81146104a5578063c4d252f5146104d1578063d45c4435146104f1578063d547741f1461051e578063e38335e51461053e578063f23a6e6114610551578063f27a0c921461057d57600080fd5b80638065657f146103ba5780638f2a0bb0146103da5780638f61f4f5146103fa57806391d148541461041c578063a217fddf1461043c578063b08e51c014610451578063b1c5f4271461048557600080fd5b8063248a9ca311610129578063248a9ca3146102b95780632ab0f529146102e95780632f2ff15d1461031a57806331d507501461033a57806336568abe1461035a578063584b153e1461037a57806364d623531461039a57600080fd5b806301d5062a1461018757806301ffc9a7146101a957806307bd0265146101de5780630d3cf6fc1461020e578063134008d31461024257806313bc9f2014610255578063150b7a021461027557600080fd5b3661018257005b600080fd5b34801561019357600080fd5b506101a76101a23660046116c2565b610592565b005b3480156101b557600080fd5b506101c96101c43660046118c8565b610615565b60405190151581526020015b60405180910390f35b3480156101ea57600080fd5b50610200600080516020611d5283398151915281565b6040519081526020016101d5565b34801561021a57600080fd5b506102007f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101a7610250366004611659565b610640565b34801561026157600080fd5b506101c9610270366004611885565b6106e3565b34801561028157600080fd5b506102a0610290366004611592565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101d5565b3480156102c557600080fd5b506102006102d4366004611885565b60009081526020819052604090206001015490565b3480156102f557600080fd5b506101c9610304366004611885565b6000908152600160208190526040909120541490565b34801561032657600080fd5b506101a761033536600461189d565b610709565b34801561034657600080fd5b506101c9610355366004611885565b610733565b34801561036657600080fd5b506101a761037536600461189d565b61074c565b34801561038657600080fd5b506101c9610395366004611885565b6107cf565b3480156103a657600080fd5b506101a76103b5366004611885565b6107e5565b3480156103c657600080fd5b506102006103d5366004611659565b610889565b3480156103e657600080fd5b506101a76103f53660046117d8565b6108c8565b34801561040657600080fd5b50610200600080516020611d3283398151915281565b34801561042857600080fd5b506101c961043736600461189d565b610a32565b34801561044857600080fd5b50610200600081565b34801561045d57600080fd5b506102007ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b34801561049157600080fd5b506102006104a0366004611734565b610a5b565b3480156104b157600080fd5b506102a06104c03660046114ed565b63bc197c8160e01b95945050505050565b3480156104dd57600080fd5b506101a76104ec366004611885565b610aa0565b3480156104fd57600080fd5b5061020061050c366004611885565b60009081526001602052604090205490565b34801561052a57600080fd5b506101a761053936600461189d565b610b75565b6101a761054c366004611734565b610b9a565b34801561055d57600080fd5b506102a061056c3660046115f7565b63f23a6e6160e01b95945050505050565b34801561058957600080fd5b50600254610200565b600080516020611d328339815191526105aa81610d3c565b60006105ba898989898989610889565b90506105c68184610d49565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161060296959493929190611a56565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b148061063a575061063a82610e38565b92915050565b600080516020611d5283398151915261065a816000610a32565b610668576106688133610e6d565b6000610678888888888888610889565b90506106848185610ed1565b61069088888888610f6d565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516106c89493929190611a24565b60405180910390a36106d981611040565b5050505050505050565b6000818152600160205260408120546001811180156107025750428111155b9392505050565b60008281526020819052604090206001015461072481610d3c565b61072e8383611079565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146107c15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107cb82826110fd565b5050565b6000818152600160208190526040822054610745565b3330146108485760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016107b8565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b60008686868686866040516020016108a696959493929190611a56565b6040516020818303038152906040528051906020012090509695505050505050565b600080516020611d328339815191526108e081610d3c565b8887146108ff5760405162461bcd60e51b81526004016107b890611b6b565b88851461091e5760405162461bcd60e51b81526004016107b890611b6b565b60006109308b8b8b8b8b8b8b8b610a5b565b905061093c8184610d49565b60005b8a811015610a245780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061098a57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061099f91906114d3565b8d8d868181106109bf57634e487b7160e01b600052603260045260246000fd5b905060200201358c8c878181106109e657634e487b7160e01b600052603260045260246000fd5b90506020028101906109f89190611bf8565b8c8b604051610a0c96959493929190611a56565b60405180910390a3610a1d81611cea565b905061093f565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610a7c989796959493929190611a93565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610aca81610d3c565b610ad3826107cf565b610b395760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016107b8565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610b9081610d3c565b61072e83836110fd565b600080516020611d52833981519152610bb4816000610a32565b610bc257610bc28133610e6d565b878614610be15760405162461bcd60e51b81526004016107b890611b6b565b878414610c005760405162461bcd60e51b81526004016107b890611b6b565b6000610c128a8a8a8a8a8a8a8a610a5b565b9050610c1e8185610ed1565b60005b89811015610d265760008b8b83818110610c4b57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610c6091906114d3565b905060008a8a84818110610c8457634e487b7160e01b600052603260045260246000fd5b9050602002013590503660008a8a86818110610cb057634e487b7160e01b600052603260045260246000fd5b9050602002810190610cc29190611bf8565b91509150610cd284848484610f6d565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610d099493929190611a24565b60405180910390a35050505080610d1f90611cea565b9050610c21565b50610d3081611040565b50505050505050505050565b610d468133610e6d565b50565b610d5282610733565b15610db75760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016107b8565b600254811015610e185760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016107b8565b610e228142611c6c565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061063a57506301ffc9a760e01b6001600160e01b031983161461063a565b610e778282610a32565b6107cb57610e8f816001600160a01b03166014611162565b610e9a836020611162565b604051602001610eab9291906119b5565b60408051601f198184030181529082905262461bcd60e51b82526107b891600401611b38565b610eda826106e3565b610ef65760405162461bcd60e51b81526004016107b890611bae565b801580610f125750600081815260016020819052604090912054145b6107cb5760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016107b8565b6000846001600160a01b0316848484604051610f8a9291906119a5565b60006040518083038185875af1925050503d8060008114610fc7576040519150601f19603f3d011682016040523d82523d6000602084013e610fcc565b606091505b50509050806110395760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016107b8565b5050505050565b611049816106e3565b6110655760405162461bcd60e51b81526004016107b890611bae565b600090815260016020819052604090912055565b6110838282610a32565b6107cb576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556110b93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111078282610a32565b156107cb576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606000611171836002611c84565b61117c906002611c6c565b6001600160401b038111156111a157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111cb576020820181803683370190505b509050600360fc1b816000815181106111f457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061123157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611255846002611c84565b611260906001611c6c565b90505b60018111156112f4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106112a257634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106112c657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936112ed81611cd3565b9050611263565b5083156107025760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107b8565b80356001600160a01b038116811461135a57600080fd5b919050565b60008083601f840112611370578182fd5b5081356001600160401b03811115611386578182fd5b6020830191508360208260051b85010111156113a157600080fd5b9250929050565b600082601f8301126113b8578081fd5b813560206001600160401b038211156113d3576113d3611d1b565b8160051b6113e2828201611c3c565b8381528281019086840183880185018910156113fc578687fd5b8693505b8584101561141e578035835260019390930192918401918401611400565b50979650505050505050565b60008083601f84011261143b578182fd5b5081356001600160401b03811115611451578182fd5b6020830191508360208285010111156113a157600080fd5b600082601f830112611479578081fd5b81356001600160401b0381111561149257611492611d1b565b6114a5601f8201601f1916602001611c3c565b8181528460208386010111156114b9578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156114e4578081fd5b61070282611343565b600080600080600060a08688031215611504578081fd5b61150d86611343565b945061151b60208701611343565b935060408601356001600160401b0380821115611536578283fd5b61154289838a016113a8565b94506060880135915080821115611557578283fd5b61156389838a016113a8565b93506080880135915080821115611578578283fd5b5061158588828901611469565b9150509295509295909350565b600080600080608085870312156115a7578384fd5b6115b085611343565b93506115be60208601611343565b92506040850135915060608501356001600160401b038111156115df578182fd5b6115eb87828801611469565b91505092959194509250565b600080600080600060a0868803121561160e578081fd5b61161786611343565b945061162560208701611343565b9350604086013592506060860135915060808601356001600160401b0381111561164d578182fd5b61158588828901611469565b60008060008060008060a08789031215611671578081fd5b61167a87611343565b95506020870135945060408701356001600160401b0381111561169b578182fd5b6116a789828a0161142a565b979a9699509760608101359660809091013595509350505050565b600080600080600080600060c0888a0312156116dc578081fd5b6116e588611343565b96506020880135955060408801356001600160401b03811115611706578182fd5b6117128a828b0161142a565b989b979a50986060810135976080820135975060a09091013595509350505050565b60008060008060008060008060a0898b03121561174f578182fd5b88356001600160401b0380821115611765578384fd5b6117718c838d0161135f565b909a50985060208b0135915080821115611789578384fd5b6117958c838d0161135f565b909850965060408b01359150808211156117ad578384fd5b506117ba8b828c0161135f565b999c989b509699959896976060870135966080013595509350505050565b600080600080600080600080600060c08a8c0312156117f5578283fd5b89356001600160401b038082111561180b578485fd5b6118178d838e0161135f565b909b50995060208c013591508082111561182f578485fd5b61183b8d838e0161135f565b909950975060408c0135915080821115611853578485fd5b506118608c828d0161135f565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b600060208284031215611896578081fd5b5035919050565b600080604083850312156118af578182fd5b823591506118bf60208401611343565b90509250929050565b6000602082840312156118d9578081fd5b81356001600160e01b031981168114610702578182fd5b81835260006020808501808196508560051b8101915084845b8781101561196f5782840389528135601e19883603018112611929578687fd5b870180356001600160401b03811115611940578788fd5b80360389131561194e578788fd5b61195b868289850161197c565b9a87019a9550505090840190600101611909565b5091979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8183823760009101908152919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516119e7816017850160208801611ca3565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611a18816028840160208801611ca3565b01602801949350505050565b60018060a01b0385168152836020820152606060408201526000611a4c60608301848661197c565b9695505050505050565b60018060a01b038716815285602082015260a060408201526000611a7e60a08301868861197c565b60608301949094525060800152949350505050565b60a0808252810188905260008960c08301825b8b811015611ad4576001600160a01b03611abf84611343565b16825260209283019290910190600101611aa6565b5083810360208501528881526001600160fb1b03891115611af3578283fd5b8860051b9150818a60208301370160208181018381528483039091016040850152611b1f81888a6118f0565b6060850196909652505050608001529695505050505050565b6020815260008251806020840152611b57816040850160208701611ca3565b601f01601f19169190910160400192915050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b6000808335601e19843603018112611c0e578283fd5b8301803591506001600160401b03821115611c27578283fd5b6020019150368190038213156113a157600080fd5b604051601f8201601f191681016001600160401b0381118282101715611c6457611c64611d1b565b604052919050565b60008219821115611c7f57611c7f611d05565b500190565b6000816000190483118215151615611c9e57611c9e611d05565b500290565b60005b83811015611cbe578181015183820152602001611ca6565b83811115611ccd576000848401525b50505050565b600081611ce257611ce2611d05565b506000190190565b6000600019821415611cfe57611cfe611d05565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfeb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63a26469706673582212206d90885db2d8c4371aa3f8652a8d8022413dd3c8e5e5005e5ad480fc4bdfa7c864736f6c634300080400335f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x22EE CODESIZE SUB DUP1 PUSH3 0x22EE DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x408 JUMP JUMPDEST PUSH3 0x4F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH3 0x240 JUMP JUMPDEST PUSH3 0x79 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x228E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x240 JUMP JUMPDEST PUSH3 0xA3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22AE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x240 JUMP JUMPDEST PUSH3 0xCD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x240 JUMP JUMPDEST PUSH3 0xE8 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER PUSH3 0x28B JUMP JUMPDEST PUSH3 0x103 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADDRESS PUSH3 0x28B JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x1A1 JUMPI PUSH3 0x159 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x228E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x145 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH3 0x28B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x18E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x145 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x199 DUP2 PUSH3 0x479 JUMP JUMPDEST SWAP1 POP PUSH3 0x106 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x1F7 JUMPI PUSH3 0x1E4 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22AE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x145 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x1EF DUP2 PUSH3 0x479 JUMP JUMPDEST SWAP1 POP PUSH3 0x1A5 JUMP JUMPDEST POP PUSH1 0x2 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH3 0x4B7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP7 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH3 0x297 DUP3 DUP3 PUSH3 0x29B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x297 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x2F7 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x369 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 GT ISZERO PUSH3 0x388 JUMPI PUSH3 0x388 PUSH3 0x4A1 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH3 0x3B0 JUMPI PUSH3 0x3B0 PUSH3 0x4A1 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP5 DUP2 MSTORE DUP4 DUP2 ADD SWAP3 POP DUP7 DUP5 ADD DUP3 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH3 0x3CF JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH3 0x3FC JUMPI PUSH3 0x3E7 DUP2 PUSH3 0x33B JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 DUP5 ADD PUSH3 0x3D3 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x41D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x43C JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x44A DUP8 DUP4 DUP9 ADD PUSH3 0x358 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x460 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x46F DUP7 DUP3 DUP8 ADD PUSH3 0x358 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH3 0x49A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1DA7 DUP1 PUSH3 0x4C7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x17B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8065657F GT PUSH2 0xCC JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x4D1 JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x57D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8065657F EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x3FA JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x129 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2B9 JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x242 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x182 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x1A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x16C2 JUMP JUMPDEST PUSH2 0x592 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x18C8 JUMP JUMPDEST PUSH2 0x615 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1A7 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x1659 JUMP JUMPDEST PUSH2 0x640 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x1592 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x2D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0x709 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x355 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x733 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x375 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0x74C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x395 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x7E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1659 JUMP JUMPDEST PUSH2 0x889 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x17D8 JUMP JUMPDEST PUSH2 0x8C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D32 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x437 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xA32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0xA5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x14ED JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x4EC CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x50C CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x539 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xB75 JUMP JUMPDEST PUSH2 0x1A7 PUSH2 0x54C CALLDATASIZE PUSH1 0x4 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0xB9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x56C CALLDATASIZE PUSH1 0x4 PUSH2 0x15F7 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x200 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D32 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x5AA DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BA DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH2 0x5C6 DUP2 DUP5 PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x602 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x63A JUMPI POP PUSH2 0x63A DUP3 PUSH2 0xE38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x65A DUP2 PUSH1 0x0 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x668 JUMPI PUSH2 0x668 DUP2 CALLER PUSH2 0xE6D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x678 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH2 0x684 DUP2 DUP6 PUSH2 0xED1 JUMP JUMPDEST PUSH2 0x690 DUP9 DUP9 DUP9 DUP9 PUSH2 0xF6D JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x6C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x6D9 DUP2 PUSH2 0x1040 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x702 JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x724 DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x72E DUP4 DUP4 PUSH2 0x1079 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x7C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7CB DUP3 DUP3 PUSH2 0x10FD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD PUSH2 0x745 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x848 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A6 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A56 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 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D32 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8E0 DUP2 PUSH2 0xD3C JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x8FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x91E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x930 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xA5B JUMP JUMPDEST SWAP1 POP PUSH2 0x93C DUP2 DUP5 PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA24 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0x98A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x14D3 JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0x9BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0x9E6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x9F8 SWAP2 SWAP1 PUSH2 0x1BF8 JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA0C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA1D DUP2 PUSH2 0x1CEA JUMP JUMPDEST SWAP1 POP PUSH2 0x93F JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA7C SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A93 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 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xACA DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0xAD3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xB90 DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x72E DUP4 DUP4 PUSH2 0x10FD JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBB4 DUP2 PUSH1 0x0 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0xBC2 JUMPI PUSH2 0xBC2 DUP2 CALLER PUSH2 0xE6D JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xBE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xA5B JUMP JUMPDEST SWAP1 POP PUSH2 0xC1E DUP2 DUP6 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xC4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC60 SWAP2 SWAP1 PUSH2 0x14D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xC84 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xCB0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xCC2 SWAP2 SWAP1 PUSH2 0x1BF8 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xCD2 DUP5 DUP5 DUP5 DUP5 PUSH2 0xF6D JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xD09 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xD1F SWAP1 PUSH2 0x1CEA JUMP JUMPDEST SWAP1 POP PUSH2 0xC21 JUMP JUMPDEST POP PUSH2 0xD30 DUP2 PUSH2 0x1040 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD46 DUP2 CALLER PUSH2 0xE6D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD52 DUP3 PUSH2 0x733 JUMP JUMPDEST ISZERO PUSH2 0xDB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xE18 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH2 0xE22 DUP2 TIMESTAMP PUSH2 0x1C6C JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x63A JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x63A JUMP JUMPDEST PUSH2 0xE77 DUP3 DUP3 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x7CB JUMPI PUSH2 0xE8F DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x1162 JUMP JUMPDEST PUSH2 0xE9A DUP4 PUSH1 0x20 PUSH2 0x1162 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEAB SWAP3 SWAP2 SWAP1 PUSH2 0x19B5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x7B8 SWAP2 PUSH1 0x4 ADD PUSH2 0x1B38 JUMP JUMPDEST PUSH2 0xEDA DUP3 PUSH2 0x6E3 JUMP JUMPDEST PUSH2 0xEF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1BAE JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0xF12 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ JUMPDEST PUSH2 0x7CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xF8A SWAP3 SWAP2 SWAP1 PUSH2 0x19A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1049 DUP2 PUSH2 0x6E3 JUMP JUMPDEST PUSH2 0x1065 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1BAE JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x1083 DUP3 DUP3 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x7CB JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x10B9 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x1107 DUP3 DUP3 PUSH2 0xA32 JUMP JUMPDEST ISZERO PUSH2 0x7CB JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1171 DUP4 PUSH1 0x2 PUSH2 0x1C84 JUMP JUMPDEST PUSH2 0x117C SWAP1 PUSH1 0x2 PUSH2 0x1C6C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x11A1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11CB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11F4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1231 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x1255 DUP5 PUSH1 0x2 PUSH2 0x1C84 JUMP JUMPDEST PUSH2 0x1260 SWAP1 PUSH1 0x1 PUSH2 0x1C6C JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x12F4 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x12A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12C6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x12ED DUP2 PUSH2 0x1CD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1263 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B8 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x135A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1370 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1386 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13B8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D3 PUSH2 0x1D1B JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x13E2 DUP3 DUP3 ADD PUSH2 0x1C3C JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 DUP2 ADD SWAP1 DUP7 DUP5 ADD DUP4 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x13FC JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP4 POP JUMPDEST DUP6 DUP5 LT ISZERO PUSH2 0x141E JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 DUP5 ADD PUSH2 0x1400 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x143B JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1451 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1479 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1492 JUMPI PUSH2 0x1492 PUSH2 0x1D1B JUMP JUMPDEST PUSH2 0x14A5 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1C3C JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x14B9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14E4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x702 DUP3 PUSH2 0x1343 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1504 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x150D DUP7 PUSH2 0x1343 JUMP JUMPDEST SWAP5 POP PUSH2 0x151B PUSH1 0x20 DUP8 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1536 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1542 DUP10 DUP4 DUP11 ADD PUSH2 0x13A8 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1557 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1563 DUP10 DUP4 DUP11 ADD PUSH2 0x13A8 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1578 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x1585 DUP9 DUP3 DUP10 ADD PUSH2 0x1469 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15A7 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x15B0 DUP6 PUSH2 0x1343 JUMP JUMPDEST SWAP4 POP PUSH2 0x15BE PUSH1 0x20 DUP7 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15DF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x15EB DUP8 DUP3 DUP9 ADD PUSH2 0x1469 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x160E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1617 DUP7 PUSH2 0x1343 JUMP JUMPDEST SWAP5 POP PUSH2 0x1625 PUSH1 0x20 DUP8 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x164D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1585 DUP9 DUP3 DUP10 ADD PUSH2 0x1469 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1671 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x167A DUP8 PUSH2 0x1343 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x169B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x16A7 DUP10 DUP3 DUP11 ADD PUSH2 0x142A JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x16DC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x16E5 DUP9 PUSH2 0x1343 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1706 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1712 DUP11 DUP3 DUP12 ADD PUSH2 0x142A JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x174F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1765 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1771 DUP13 DUP4 DUP14 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1789 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1795 DUP13 DUP4 DUP14 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x17AD JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x17BA DUP12 DUP3 DUP13 ADD PUSH2 0x135F JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x17F5 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x180B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1817 DUP14 DUP4 DUP15 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x182F JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x183B DUP14 DUP4 DUP15 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1853 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1860 DUP13 DUP3 DUP14 ADD PUSH2 0x135F JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1896 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18AF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x18BF PUSH1 0x20 DUP5 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x702 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 DUP5 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x196F JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1929 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP8 ADD DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1940 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP10 SGT ISZERO PUSH2 0x194E JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x195B DUP7 DUP3 DUP10 DUP6 ADD PUSH2 0x197C JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1909 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x19E7 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1CA3 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1A18 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1CA3 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1A4C PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x197C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1A7E PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1AD4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1ABF DUP5 PUSH2 0x1343 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1AA6 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1AF3 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD PUSH1 0x20 DUP2 DUP2 ADD DUP4 DUP2 MSTORE DUP5 DUP4 SUB SWAP1 SWAP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1B1F DUP2 DUP9 DUP11 PUSH2 0x18F0 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1B57 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1CA3 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1C0E JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1C27 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1C64 JUMPI PUSH2 0x1C64 PUSH2 0x1D1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1C7F JUMPI PUSH2 0x1C7F PUSH2 0x1D05 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1C9E JUMPI PUSH2 0x1C9E PUSH2 0x1D05 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1CBE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1CA6 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1CCD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1CE2 JUMPI PUSH2 0x1CE2 PUSH2 0x1D05 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1CFE JUMPI PUSH2 0x1CFE PUSH2 0x1D05 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0xB0 SWAP11 0xA5 0xAE 0xB3 PUSH17 0x2CFD50B6B62BC4532604938F21248A27A1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xA2646970 PUSH7 0x73582212206D90 DUP9 0x5D 0xB2 0xD8 0xC4 CALLDATACOPY BYTE LOG3 0xF8 PUSH6 0x2A8D8022413D 0xD3 0xC8 0xE5 0xE5 STOP 0x5E GAS 0xD4 DUP1 0xFC 0x4B 0xDF 0xA7 0xC8 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER 0x5F PC 0xE3 LOG2 BALANCE PUSH4 0x49923CE3 PUSH25 0xF8D587DB2D72378AED66A8261C916544FA6846CA5B09AA5AE 0xB3 PUSH17 0x2CFD50B6B62BC4532604938F21248A27A1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xFD643C72 PUSH18 0xC63C0180259ABA6B2D05451E3591A24E58B PUSH3 0x239378 ADDMOD JUMPI 0x26 0xF7 DUP4 ","sourceMap":"1030:13061:7:-:0;;;2970:964;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3096:55;-1:-1:-1;;;;;;;;;;;1162:32:7;3096:13;:55::i;:::-;3161:49;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3161:13:7;:49::i;:::-;3220;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3220:13:7;:49::i;:::-;3279:50;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3279:13:7;:50::i;:::-;3382:45;-1:-1:-1;;;;;;;;;;;719:10:38;3382::7;:45::i;:::-;3437:46;-1:-1:-1;;;;;;;;;;;3477:4:7;3437:10;:46::i;:::-;3544:9;3539:165;3563:9;:16;3559:1;:20;3539:165;;;3600:39;-1:-1:-1;;;;;;;;;;;3626:9:7;3636:1;3626:12;;;;;;-1:-1:-1;;;3626:12:7;;;;;;;;;;;;;;;3600:10;;;:39;;:::i;:::-;3653:40;-1:-1:-1;;;;;;;;;;;3680:9:7;3690:1;3680:12;;;;;;-1:-1:-1;;;3680:12:7;;;;;;;;3653:40;3581:3;;;:::i;:::-;;;3539:165;;;;3749:9;3744:111;3768:9;:16;3764:1;:20;3744:111;;;3805:39;-1:-1:-1;;;;;;;;;;;3831:9:7;3841:1;3831:12;;;;;;-1:-1:-1;;;3831:12:7;;;;;;;;3805:39;3786:3;;;:::i;:::-;;;3744:111;;;-1:-1:-1;3865:9:7;:20;;;3900:27;;;3915:1;2047:25:139;;2103:2;2088:18;;2081:34;;;3900:27:7;;2020:18:139;3900:27:7;;;;;;;2970:964;;;1030:13061;;7059:247:0;7142:25;4491:12;;;;;;;;;;;:22;;;;7198:34;;;;7247:52;;4491:22;;7198:34;;4491:22;;:12;;7247:52;;7142:25;7247:52;7059:247;;;:::o;6824:110::-;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;7474:233::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7552:149;;7595:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;7627:4;7595:36;;;7677:12;719:10:38;;640:96;7677:12:0;-1:-1:-1;;;;;7650:40:0;7668:7;-1:-1:-1;;;;;7650:40:0;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;14:177:139:-;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:954::-;261:5;314:3;307:4;299:6;295:17;291:27;281:2;;336:5;329;322:20;281:2;363:13;;395:4;-1:-1:-1;;;;;448:10:139;;;445:2;;;461:18;;:::i;:::-;507:2;504:1;500:10;539:2;533:9;602:2;598:7;593:2;589;585:11;581:25;573:6;569:38;657:6;645:10;642:22;637:2;625:10;622:18;619:46;616:2;;;668:18;;:::i;:::-;704:2;697:22;754:18;;;788:15;;;;-1:-1:-1;823:15:139;;;857;;;853:24;;850:33;-1:-1:-1;847:2:139;;;900:5;893;886:20;847:2;926:5;917:14;;940:180;954:2;951:1;948:9;940:180;;;1011:34;1041:3;1011:34;:::i;:::-;999:47;;1066:12;;;;972:1;965:9;;;;;1098:12;;940:180;;;-1:-1:-1;1138:6:139;271:879;-1:-1:-1;;;;;;;271:879:139:o;1155:705::-;1293:6;1301;1309;1362:2;1350:9;1341:7;1337:23;1333:32;1330:2;;;1383:6;1375;1368:22;1330:2;1411:16;;1471:2;1456:18;;1450:25;1411:16;;-1:-1:-1;;;;;;1524:14:139;;;1521:2;;;1556:6;1548;1541:22;1521:2;1584:72;1648:7;1639:6;1628:9;1624:22;1584:72;:::i;:::-;1574:82;;1702:2;1691:9;1687:18;1681:25;1665:41;;1731:2;1721:8;1718:16;1715:2;;;1752:6;1744;1737:22;1715:2;;1780:74;1846:7;1835:8;1824:9;1820:24;1780:74;:::i;:::-;1770:84;;;1320:540;;;;;:::o;2126:236::-;2165:3;-1:-1:-1;;2186:17:139;;2183:2;;;-1:-1:-1;;;2226:33:139;;2282:4;2279:1;2272:15;2312:4;2233:3;2300:17;2183:2;-1:-1:-1;2354:1:139;2343:13;;2173:189::o;2367:127::-;2428:10;2423:3;2419:20;2416:1;2409:31;2459:4;2456:1;2449:15;2483:4;2480:1;2473:15;2399:95;1030:13061:7;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:22547:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"276:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"325:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"334:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"344:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"327:6:139"},"nodeType":"YulFunctionCall","src":"327:26:139"},"nodeType":"YulExpressionStatement","src":"327:26:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"304:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"312:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"300:3:139"},"nodeType":"YulFunctionCall","src":"300:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"319:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"296:3:139"},"nodeType":"YulFunctionCall","src":"296:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"289:6:139"},"nodeType":"YulFunctionCall","src":"289:35:139"},"nodeType":"YulIf","src":"286:2:139"},{"nodeType":"YulAssignment","src":"364:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"387:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"374:12:139"},"nodeType":"YulFunctionCall","src":"374:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"364:6:139"}]},{"body":{"nodeType":"YulBlock","src":"437:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"446:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"456:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"439:6:139"},"nodeType":"YulFunctionCall","src":"439:26:139"},"nodeType":"YulExpressionStatement","src":"439:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"409:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"417:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"406:2:139"},"nodeType":"YulFunctionCall","src":"406:30:139"},"nodeType":"YulIf","src":"403:2:139"},{"nodeType":"YulAssignment","src":"476:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"492:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"500:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"488:3:139"},"nodeType":"YulFunctionCall","src":"488:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"476:8:139"}]},{"body":{"nodeType":"YulBlock","src":"565:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"574:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"577:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"567:6:139"},"nodeType":"YulFunctionCall","src":"567:12:139"},"nodeType":"YulExpressionStatement","src":"567:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"528:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"540:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"543:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"536:3:139"},"nodeType":"YulFunctionCall","src":"536:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"524:3:139"},"nodeType":"YulFunctionCall","src":"524:27:139"},{"kind":"number","nodeType":"YulLiteral","src":"553:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"520:3:139"},"nodeType":"YulFunctionCall","src":"520:38:139"},{"name":"end","nodeType":"YulIdentifier","src":"560:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"517:2:139"},"nodeType":"YulFunctionCall","src":"517:47:139"},"nodeType":"YulIf","src":"514:2:139"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"239:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"247:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"255:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"265:6:139","type":""}],"src":"192:395:139"},{"body":{"nodeType":"YulBlock","src":"656:679:139","statements":[{"body":{"nodeType":"YulBlock","src":"705:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"714:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"721:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"707:6:139"},"nodeType":"YulFunctionCall","src":"707:20:139"},"nodeType":"YulExpressionStatement","src":"707:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"684:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"692:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"680:3:139"},"nodeType":"YulFunctionCall","src":"680:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"699:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"676:3:139"},"nodeType":"YulFunctionCall","src":"676:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"669:6:139"},"nodeType":"YulFunctionCall","src":"669:35:139"},"nodeType":"YulIf","src":"666:2:139"},{"nodeType":"YulVariableDeclaration","src":"738:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"761:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"748:12:139"},"nodeType":"YulFunctionCall","src":"748:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"742:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"777:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"787:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"781:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"830:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"832:16:139"},"nodeType":"YulFunctionCall","src":"832:18:139"},"nodeType":"YulExpressionStatement","src":"832:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"806:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"810:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"803:2:139"},"nodeType":"YulFunctionCall","src":"803:26:139"},"nodeType":"YulIf","src":"800:2:139"},{"nodeType":"YulVariableDeclaration","src":"861:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"875:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"878:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"871:3:139"},"nodeType":"YulFunctionCall","src":"871:10:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"865:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"890:39:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"921:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"925:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"917:3:139"},"nodeType":"YulFunctionCall","src":"917:11:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"901:15:139"},"nodeType":"YulFunctionCall","src":"901:28:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"894:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"938:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"951:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"942:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"970:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"975:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"963:6:139"},"nodeType":"YulFunctionCall","src":"963:15:139"},"nodeType":"YulExpressionStatement","src":"963:15:139"},{"nodeType":"YulAssignment","src":"987:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"998:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1003:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"994:3:139"},"nodeType":"YulFunctionCall","src":"994:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"987:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1015:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1030:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1038:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1026:3:139"},"nodeType":"YulFunctionCall","src":"1026:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1019:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1087:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1096:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1103:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1089:6:139"},"nodeType":"YulFunctionCall","src":"1089:20:139"},"nodeType":"YulExpressionStatement","src":"1089:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1064:6:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1072:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1060:3:139"},"nodeType":"YulFunctionCall","src":"1060:15:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1077:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1056:3:139"},"nodeType":"YulFunctionCall","src":"1056:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"1082:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1053:2:139"},"nodeType":"YulFunctionCall","src":"1053:33:139"},"nodeType":"YulIf","src":"1050:2:139"},{"nodeType":"YulVariableDeclaration","src":"1120:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"1129:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1124:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1188:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1209:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1227:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1214:12:139"},"nodeType":"YulFunctionCall","src":"1214:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1202:6:139"},"nodeType":"YulFunctionCall","src":"1202:30:139"},"nodeType":"YulExpressionStatement","src":"1202:30:139"},{"nodeType":"YulAssignment","src":"1245:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1256:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1261:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1252:3:139"},"nodeType":"YulFunctionCall","src":"1252:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1245:3:139"}]},{"nodeType":"YulAssignment","src":"1277:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1288:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1293:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1284:3:139"},"nodeType":"YulFunctionCall","src":"1284:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1277:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1154:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1157:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1151:2:139"},"nodeType":"YulFunctionCall","src":"1151:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1161:18:139","statements":[{"nodeType":"YulAssignment","src":"1163:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1172:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1175:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1168:3:139"},"nodeType":"YulFunctionCall","src":"1168:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1163:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1147:3:139","statements":[]},"src":"1143:163:139"},{"nodeType":"YulAssignment","src":"1315:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1324:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1315:5:139"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"630:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"638:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"646:5:139","type":""}],"src":"592:743:139"},{"body":{"nodeType":"YulBlock","src":"1412:303:139","statements":[{"body":{"nodeType":"YulBlock","src":"1461:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1470:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"1480:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1463:6:139"},"nodeType":"YulFunctionCall","src":"1463:26:139"},"nodeType":"YulExpressionStatement","src":"1463:26:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1440:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1448:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:139"},"nodeType":"YulFunctionCall","src":"1436:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1455:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1432:3:139"},"nodeType":"YulFunctionCall","src":"1432:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1425:6:139"},"nodeType":"YulFunctionCall","src":"1425:35:139"},"nodeType":"YulIf","src":"1422:2:139"},{"nodeType":"YulAssignment","src":"1500:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1523:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1510:12:139"},"nodeType":"YulFunctionCall","src":"1510:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1500:6:139"}]},{"body":{"nodeType":"YulBlock","src":"1573:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1582:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"1592:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1575:6:139"},"nodeType":"YulFunctionCall","src":"1575:26:139"},"nodeType":"YulExpressionStatement","src":"1575:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1545:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1553:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1542:2:139"},"nodeType":"YulFunctionCall","src":"1542:30:139"},"nodeType":"YulIf","src":"1539:2:139"},{"nodeType":"YulAssignment","src":"1612:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1628:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1636:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1624:3:139"},"nodeType":"YulFunctionCall","src":"1624:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1612:8:139"}]},{"body":{"nodeType":"YulBlock","src":"1693:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1702:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1705:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1695:6:139"},"nodeType":"YulFunctionCall","src":"1695:12:139"},"nodeType":"YulExpressionStatement","src":"1695:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1664:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"1672:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:139"},"nodeType":"YulFunctionCall","src":"1660:19:139"},{"kind":"number","nodeType":"YulLiteral","src":"1681:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1656:3:139"},"nodeType":"YulFunctionCall","src":"1656:30:139"},{"name":"end","nodeType":"YulIdentifier","src":"1688:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1653:2:139"},"nodeType":"YulFunctionCall","src":"1653:39:139"},"nodeType":"YulIf","src":"1650:2:139"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1375:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1383:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1391:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"1401:6:139","type":""}],"src":"1340:375:139"},{"body":{"nodeType":"YulBlock","src":"1772:498:139","statements":[{"body":{"nodeType":"YulBlock","src":"1821:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1830:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1837:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1823:6:139"},"nodeType":"YulFunctionCall","src":"1823:20:139"},"nodeType":"YulExpressionStatement","src":"1823:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1800:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1808:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1796:3:139"},"nodeType":"YulFunctionCall","src":"1796:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1815:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1792:3:139"},"nodeType":"YulFunctionCall","src":"1792:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1785:6:139"},"nodeType":"YulFunctionCall","src":"1785:35:139"},"nodeType":"YulIf","src":"1782:2:139"},{"nodeType":"YulVariableDeclaration","src":"1854:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1877:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1864:12:139"},"nodeType":"YulFunctionCall","src":"1864:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1858:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1923:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1925:16:139"},"nodeType":"YulFunctionCall","src":"1925:18:139"},"nodeType":"YulExpressionStatement","src":"1925:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1899:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1903:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1896:2:139"},"nodeType":"YulFunctionCall","src":"1896:26:139"},"nodeType":"YulIf","src":"1893:2:139"},{"nodeType":"YulVariableDeclaration","src":"1954:70:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1997:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2001:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1993:3:139"},"nodeType":"YulFunctionCall","src":"1993:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2012:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2008:3:139"},"nodeType":"YulFunctionCall","src":"2008:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1989:3:139"},"nodeType":"YulFunctionCall","src":"1989:27:139"},{"kind":"number","nodeType":"YulLiteral","src":"2018:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1985:3:139"},"nodeType":"YulFunctionCall","src":"1985:38:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1969:15:139"},"nodeType":"YulFunctionCall","src":"1969:55:139"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1958:7:139","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"2040:7:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2049:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2033:6:139"},"nodeType":"YulFunctionCall","src":"2033:19:139"},"nodeType":"YulExpressionStatement","src":"2033:19:139"},{"body":{"nodeType":"YulBlock","src":"2100:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2109:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2116:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2102:6:139"},"nodeType":"YulFunctionCall","src":"2102:20:139"},"nodeType":"YulExpressionStatement","src":"2102:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2075:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2083:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2071:3:139"},"nodeType":"YulFunctionCall","src":"2071:15:139"},{"kind":"number","nodeType":"YulLiteral","src":"2088:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:139"},"nodeType":"YulFunctionCall","src":"2067:26:139"},{"name":"end","nodeType":"YulIdentifier","src":"2095:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2064:2:139"},"nodeType":"YulFunctionCall","src":"2064:35:139"},"nodeType":"YulIf","src":"2061:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"2150:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"2159:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2146:3:139"},"nodeType":"YulFunctionCall","src":"2146:18:139"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2170:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2178:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2166:3:139"},"nodeType":"YulFunctionCall","src":"2166:17:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2185:2:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2133:12:139"},"nodeType":"YulFunctionCall","src":"2133:55:139"},"nodeType":"YulExpressionStatement","src":"2133:55:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"2212:7:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2221:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2208:3:139"},"nodeType":"YulFunctionCall","src":"2208:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"2226:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2204:3:139"},"nodeType":"YulFunctionCall","src":"2204:27:139"},{"name":"array","nodeType":"YulIdentifier","src":"2233:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2197:6:139"},"nodeType":"YulFunctionCall","src":"2197:42:139"},"nodeType":"YulExpressionStatement","src":"2197:42:139"},{"nodeType":"YulAssignment","src":"2248:16:139","value":{"name":"array_1","nodeType":"YulIdentifier","src":"2257:7:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2248:5:139"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1746:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1754:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1762:5:139","type":""}],"src":"1720:550:139"},{"body":{"nodeType":"YulBlock","src":"2345:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"2391:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2400:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2408:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2393:6:139"},"nodeType":"YulFunctionCall","src":"2393:22:139"},"nodeType":"YulExpressionStatement","src":"2393:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2366:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2375:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2362:3:139"},"nodeType":"YulFunctionCall","src":"2362:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2387:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2358:3:139"},"nodeType":"YulFunctionCall","src":"2358:32:139"},"nodeType":"YulIf","src":"2355:2:139"},{"nodeType":"YulAssignment","src":"2426:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2455:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2436:18:139"},"nodeType":"YulFunctionCall","src":"2436:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2426:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2311:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2322:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2334:6:139","type":""}],"src":"2275:196:139"},{"body":{"nodeType":"YulBlock","src":"2673:786:139","statements":[{"body":{"nodeType":"YulBlock","src":"2720:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2729:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2737:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2722:6:139"},"nodeType":"YulFunctionCall","src":"2722:22:139"},"nodeType":"YulExpressionStatement","src":"2722:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2694:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2703:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2690:3:139"},"nodeType":"YulFunctionCall","src":"2690:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2715:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2686:3:139"},"nodeType":"YulFunctionCall","src":"2686:33:139"},"nodeType":"YulIf","src":"2683:2:139"},{"nodeType":"YulAssignment","src":"2755:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2784:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2765:18:139"},"nodeType":"YulFunctionCall","src":"2765:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2755:6:139"}]},{"nodeType":"YulAssignment","src":"2803:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2836:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2847:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2832:3:139"},"nodeType":"YulFunctionCall","src":"2832:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2813:18:139"},"nodeType":"YulFunctionCall","src":"2813:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2803:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2860:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2891:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2902:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2887:3:139"},"nodeType":"YulFunctionCall","src":"2887:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2874:12:139"},"nodeType":"YulFunctionCall","src":"2874:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2864:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2915:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2925:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2919:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2970:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2979:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2987:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2972:6:139"},"nodeType":"YulFunctionCall","src":"2972:22:139"},"nodeType":"YulExpressionStatement","src":"2972:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2958:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2966:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2955:2:139"},"nodeType":"YulFunctionCall","src":"2955:14:139"},"nodeType":"YulIf","src":"2952:2:139"},{"nodeType":"YulAssignment","src":"3005:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3048:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3059:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3044:3:139"},"nodeType":"YulFunctionCall","src":"3044:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3068:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"3015:28:139"},"nodeType":"YulFunctionCall","src":"3015:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3005:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3085:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3118:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3129:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3114:3:139"},"nodeType":"YulFunctionCall","src":"3114:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3101:12:139"},"nodeType":"YulFunctionCall","src":"3101:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3089:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3162:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3171:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3179:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3164:6:139"},"nodeType":"YulFunctionCall","src":"3164:22:139"},"nodeType":"YulExpressionStatement","src":"3164:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3148:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3158:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3145:2:139"},"nodeType":"YulFunctionCall","src":"3145:16:139"},"nodeType":"YulIf","src":"3142:2:139"},{"nodeType":"YulAssignment","src":"3197:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3240:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3251:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3236:3:139"},"nodeType":"YulFunctionCall","src":"3236:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3262:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"3207:28:139"},"nodeType":"YulFunctionCall","src":"3207:63:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3197:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3279:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3312:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3323:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3308:3:139"},"nodeType":"YulFunctionCall","src":"3308:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3295:12:139"},"nodeType":"YulFunctionCall","src":"3295:33:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"3283:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3357:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3366:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3374:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3359:6:139"},"nodeType":"YulFunctionCall","src":"3359:22:139"},"nodeType":"YulExpressionStatement","src":"3359:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"3343:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3353:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3340:2:139"},"nodeType":"YulFunctionCall","src":"3340:16:139"},"nodeType":"YulIf","src":"3337:2:139"},{"nodeType":"YulAssignment","src":"3392:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3423:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"3434:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3419:3:139"},"nodeType":"YulFunctionCall","src":"3419:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3445:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3402:16:139"},"nodeType":"YulFunctionCall","src":"3402:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3392:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2607:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2618:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2630:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2638:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2646:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2654:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2662:6:139","type":""}],"src":"2476:983:139"},{"body":{"nodeType":"YulBlock","src":"3594:427:139","statements":[{"body":{"nodeType":"YulBlock","src":"3641:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3650:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3658:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3643:6:139"},"nodeType":"YulFunctionCall","src":"3643:22:139"},"nodeType":"YulExpressionStatement","src":"3643:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3615:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3624:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3611:3:139"},"nodeType":"YulFunctionCall","src":"3611:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3636:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3607:3:139"},"nodeType":"YulFunctionCall","src":"3607:33:139"},"nodeType":"YulIf","src":"3604:2:139"},{"nodeType":"YulAssignment","src":"3676:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3705:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3686:18:139"},"nodeType":"YulFunctionCall","src":"3686:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3676:6:139"}]},{"nodeType":"YulAssignment","src":"3724:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3757:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3768:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3753:3:139"},"nodeType":"YulFunctionCall","src":"3753:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3734:18:139"},"nodeType":"YulFunctionCall","src":"3734:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3724:6:139"}]},{"nodeType":"YulAssignment","src":"3781:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3808:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3819:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3804:3:139"},"nodeType":"YulFunctionCall","src":"3804:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3791:12:139"},"nodeType":"YulFunctionCall","src":"3791:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3781:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3832:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3863:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3874:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3859:3:139"},"nodeType":"YulFunctionCall","src":"3859:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3846:12:139"},"nodeType":"YulFunctionCall","src":"3846:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3836:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3921:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3930:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"3938:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3923:6:139"},"nodeType":"YulFunctionCall","src":"3923:22:139"},"nodeType":"YulExpressionStatement","src":"3923:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3893:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3901:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3890:2:139"},"nodeType":"YulFunctionCall","src":"3890:30:139"},"nodeType":"YulIf","src":"3887:2:139"},{"nodeType":"YulAssignment","src":"3956:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3998:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:139"},"nodeType":"YulFunctionCall","src":"3983:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4007:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3966:16:139"},"nodeType":"YulFunctionCall","src":"3966:49:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3956:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3536:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3547:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3559:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3567:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3575:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3583:6:139","type":""}],"src":"3464:557:139"},{"body":{"nodeType":"YulBlock","src":"4173:479:139","statements":[{"body":{"nodeType":"YulBlock","src":"4220:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4229:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4237:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4222:6:139"},"nodeType":"YulFunctionCall","src":"4222:22:139"},"nodeType":"YulExpressionStatement","src":"4222:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4194:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4203:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4190:3:139"},"nodeType":"YulFunctionCall","src":"4190:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4215:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4186:3:139"},"nodeType":"YulFunctionCall","src":"4186:33:139"},"nodeType":"YulIf","src":"4183:2:139"},{"nodeType":"YulAssignment","src":"4255:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4284:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4265:18:139"},"nodeType":"YulFunctionCall","src":"4265:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4255:6:139"}]},{"nodeType":"YulAssignment","src":"4303:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4336:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4347:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4332:3:139"},"nodeType":"YulFunctionCall","src":"4332:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4313:18:139"},"nodeType":"YulFunctionCall","src":"4313:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4303:6:139"}]},{"nodeType":"YulAssignment","src":"4360:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4387:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4398:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4383:3:139"},"nodeType":"YulFunctionCall","src":"4383:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4370:12:139"},"nodeType":"YulFunctionCall","src":"4370:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4360:6:139"}]},{"nodeType":"YulAssignment","src":"4411:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4438:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4449:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4434:3:139"},"nodeType":"YulFunctionCall","src":"4434:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4421:12:139"},"nodeType":"YulFunctionCall","src":"4421:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4411:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4462:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4493:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4504:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4489:3:139"},"nodeType":"YulFunctionCall","src":"4489:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4476:12:139"},"nodeType":"YulFunctionCall","src":"4476:33:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4466:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4552:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4561:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4569:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4554:6:139"},"nodeType":"YulFunctionCall","src":"4554:22:139"},"nodeType":"YulExpressionStatement","src":"4554:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4524:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4532:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4521:2:139"},"nodeType":"YulFunctionCall","src":"4521:30:139"},"nodeType":"YulIf","src":"4518:2:139"},{"nodeType":"YulAssignment","src":"4587:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4618:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4629:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4614:3:139"},"nodeType":"YulFunctionCall","src":"4614:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4638:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4597:16:139"},"nodeType":"YulFunctionCall","src":"4597:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4587:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4107:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4118:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4130:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4138:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4146:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4154:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4162:6:139","type":""}],"src":"4026:626:139"},{"body":{"nodeType":"YulBlock","src":"4814:552:139","statements":[{"body":{"nodeType":"YulBlock","src":"4861:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"4870:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"4878:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4863:6:139"},"nodeType":"YulFunctionCall","src":"4863:22:139"},"nodeType":"YulExpressionStatement","src":"4863:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4835:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4844:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4831:3:139"},"nodeType":"YulFunctionCall","src":"4831:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4856:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4827:3:139"},"nodeType":"YulFunctionCall","src":"4827:33:139"},"nodeType":"YulIf","src":"4824:2:139"},{"nodeType":"YulAssignment","src":"4896:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4925:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4906:18:139"},"nodeType":"YulFunctionCall","src":"4906:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4896:6:139"}]},{"nodeType":"YulAssignment","src":"4944:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4971:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4982:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4967:3:139"},"nodeType":"YulFunctionCall","src":"4967:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4954:12:139"},"nodeType":"YulFunctionCall","src":"4954:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4944:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4995:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5026:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5037:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5022:3:139"},"nodeType":"YulFunctionCall","src":"5022:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5009:12:139"},"nodeType":"YulFunctionCall","src":"5009:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4999:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5084:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"5093:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"5101:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5086:6:139"},"nodeType":"YulFunctionCall","src":"5086:22:139"},"nodeType":"YulExpressionStatement","src":"5086:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5056:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5064:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5053:2:139"},"nodeType":"YulFunctionCall","src":"5053:30:139"},"nodeType":"YulIf","src":"5050:2:139"},{"nodeType":"YulVariableDeclaration","src":"5119:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5175:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5186:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5171:3:139"},"nodeType":"YulFunctionCall","src":"5171:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5195:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5145:25:139"},"nodeType":"YulFunctionCall","src":"5145:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5123:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5133:8:139","type":""}]},{"nodeType":"YulAssignment","src":"5212:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5222:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5212:6:139"}]},{"nodeType":"YulAssignment","src":"5239:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5249:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5239:6:139"}]},{"nodeType":"YulAssignment","src":"5266:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5293:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5304:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5289:3:139"},"nodeType":"YulFunctionCall","src":"5289:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5276:12:139"},"nodeType":"YulFunctionCall","src":"5276:32:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5266:6:139"}]},{"nodeType":"YulAssignment","src":"5317:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5344:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5355:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5340:3:139"},"nodeType":"YulFunctionCall","src":"5340:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5327:12:139"},"nodeType":"YulFunctionCall","src":"5327:33:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"5317:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4740:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4751:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4763:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4771:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4779:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4787:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4795:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4803:6:139","type":""}],"src":"4657:709:139"},{"body":{"nodeType":"YulBlock","src":"5545:604:139","statements":[{"body":{"nodeType":"YulBlock","src":"5592:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"5601:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"5609:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5594:6:139"},"nodeType":"YulFunctionCall","src":"5594:22:139"},"nodeType":"YulExpressionStatement","src":"5594:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5566:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5575:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5562:3:139"},"nodeType":"YulFunctionCall","src":"5562:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5587:3:139","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5558:3:139"},"nodeType":"YulFunctionCall","src":"5558:33:139"},"nodeType":"YulIf","src":"5555:2:139"},{"nodeType":"YulAssignment","src":"5627:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5656:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5637:18:139"},"nodeType":"YulFunctionCall","src":"5637:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5627:6:139"}]},{"nodeType":"YulAssignment","src":"5675:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5702:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5713:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5698:3:139"},"nodeType":"YulFunctionCall","src":"5698:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5685:12:139"},"nodeType":"YulFunctionCall","src":"5685:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5675:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5726:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5757:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5768:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5753:3:139"},"nodeType":"YulFunctionCall","src":"5753:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5740:12:139"},"nodeType":"YulFunctionCall","src":"5740:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5730:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5815:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"5824:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"5832:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5817:6:139"},"nodeType":"YulFunctionCall","src":"5817:22:139"},"nodeType":"YulExpressionStatement","src":"5817:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5787:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5795:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5784:2:139"},"nodeType":"YulFunctionCall","src":"5784:30:139"},"nodeType":"YulIf","src":"5781:2:139"},{"nodeType":"YulVariableDeclaration","src":"5850:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5906:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5917:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5902:3:139"},"nodeType":"YulFunctionCall","src":"5902:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5926:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5876:25:139"},"nodeType":"YulFunctionCall","src":"5876:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5854:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5864:8:139","type":""}]},{"nodeType":"YulAssignment","src":"5943:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5953:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5943:6:139"}]},{"nodeType":"YulAssignment","src":"5970:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5980:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5970:6:139"}]},{"nodeType":"YulAssignment","src":"5997:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6024:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6035:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6020:3:139"},"nodeType":"YulFunctionCall","src":"6020:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6007:12:139"},"nodeType":"YulFunctionCall","src":"6007:32:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5997:6:139"}]},{"nodeType":"YulAssignment","src":"6048:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6075:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6086:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:139"},"nodeType":"YulFunctionCall","src":"6071:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6058:12:139"},"nodeType":"YulFunctionCall","src":"6058:33:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6048:6:139"}]},{"nodeType":"YulAssignment","src":"6100:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6127:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6138:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6123:3:139"},"nodeType":"YulFunctionCall","src":"6123:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6110:12:139"},"nodeType":"YulFunctionCall","src":"6110:33:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"6100:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5463:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5474:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5486:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5494:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5502:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5510:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5518:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5526:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5534:6:139","type":""}],"src":"5371:778:139"},{"body":{"nodeType":"YulBlock","src":"6408:1023:139","statements":[{"body":{"nodeType":"YulBlock","src":"6455:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6464:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6472:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6457:6:139"},"nodeType":"YulFunctionCall","src":"6457:22:139"},"nodeType":"YulExpressionStatement","src":"6457:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6429:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6438:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6425:3:139"},"nodeType":"YulFunctionCall","src":"6425:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6450:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6421:3:139"},"nodeType":"YulFunctionCall","src":"6421:33:139"},"nodeType":"YulIf","src":"6418:2:139"},{"nodeType":"YulVariableDeclaration","src":"6490:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6517:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6504:12:139"},"nodeType":"YulFunctionCall","src":"6504:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6494:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6536:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"6546:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6540:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6591:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6600:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6608:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6593:6:139"},"nodeType":"YulFunctionCall","src":"6593:22:139"},"nodeType":"YulExpressionStatement","src":"6593:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6579:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6587:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6576:2:139"},"nodeType":"YulFunctionCall","src":"6576:14:139"},"nodeType":"YulIf","src":"6573:2:139"},{"nodeType":"YulVariableDeclaration","src":"6626:96:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6694:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"6705:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6690:3:139"},"nodeType":"YulFunctionCall","src":"6690:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6714:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6652:37:139"},"nodeType":"YulFunctionCall","src":"6652:70:139"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"6630:8:139","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"6640:8:139","type":""}]},{"nodeType":"YulAssignment","src":"6731:18:139","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"6741:8:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6731:6:139"}]},{"nodeType":"YulAssignment","src":"6758:18:139","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6768:8:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6758:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6785:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6818:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6829:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6814:3:139"},"nodeType":"YulFunctionCall","src":"6814:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6801:12:139"},"nodeType":"YulFunctionCall","src":"6801:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6789:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6862:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6871:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6879:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6864:6:139"},"nodeType":"YulFunctionCall","src":"6864:22:139"},"nodeType":"YulExpressionStatement","src":"6864:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6848:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6858:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6845:2:139"},"nodeType":"YulFunctionCall","src":"6845:16:139"},"nodeType":"YulIf","src":"6842:2:139"},{"nodeType":"YulVariableDeclaration","src":"6897:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6965:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6976:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6961:3:139"},"nodeType":"YulFunctionCall","src":"6961:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6987:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6923:37:139"},"nodeType":"YulFunctionCall","src":"6923:72:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"6901:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6911:8:139","type":""}]},{"nodeType":"YulAssignment","src":"7004:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7014:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7004:6:139"}]},{"nodeType":"YulAssignment","src":"7031:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7041:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7031:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7058:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7102:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7087:3:139"},"nodeType":"YulFunctionCall","src":"7087:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7074:12:139"},"nodeType":"YulFunctionCall","src":"7074:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7062:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7135:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7144:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7152:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7137:6:139"},"nodeType":"YulFunctionCall","src":"7137:22:139"},"nodeType":"YulExpressionStatement","src":"7137:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"7121:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7131:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7118:2:139"},"nodeType":"YulFunctionCall","src":"7118:16:139"},"nodeType":"YulIf","src":"7115:2:139"},{"nodeType":"YulVariableDeclaration","src":"7170:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7238:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"7249:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7234:3:139"},"nodeType":"YulFunctionCall","src":"7234:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7260:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7196:37:139"},"nodeType":"YulFunctionCall","src":"7196:72:139"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"7174:8:139","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"7184:8:139","type":""}]},{"nodeType":"YulAssignment","src":"7277:18:139","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"7287:8:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7277:6:139"}]},{"nodeType":"YulAssignment","src":"7304:18:139","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"7314:8:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7304:6:139"}]},{"nodeType":"YulAssignment","src":"7331:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7358:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7369:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7354:3:139"},"nodeType":"YulFunctionCall","src":"7354:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7341:12:139"},"nodeType":"YulFunctionCall","src":"7341:32:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"7331:6:139"}]},{"nodeType":"YulAssignment","src":"7382:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7409:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7420:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7405:3:139"},"nodeType":"YulFunctionCall","src":"7405:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7392:12:139"},"nodeType":"YulFunctionCall","src":"7392:33:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"7382:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6318:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6329:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6341:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6349:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6357:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6365:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6373:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6381:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6389:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6397:6:139","type":""}],"src":"6154:1277:139"},{"body":{"nodeType":"YulBlock","src":"7707:1075:139","statements":[{"body":{"nodeType":"YulBlock","src":"7754:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7763:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7771:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7756:6:139"},"nodeType":"YulFunctionCall","src":"7756:22:139"},"nodeType":"YulExpressionStatement","src":"7756:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7728:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7737:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7724:3:139"},"nodeType":"YulFunctionCall","src":"7724:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7749:3:139","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7720:3:139"},"nodeType":"YulFunctionCall","src":"7720:33:139"},"nodeType":"YulIf","src":"7717:2:139"},{"nodeType":"YulVariableDeclaration","src":"7789:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7816:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7803:12:139"},"nodeType":"YulFunctionCall","src":"7803:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7793:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7835:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"7845:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7839:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7890:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7899:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7907:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7892:6:139"},"nodeType":"YulFunctionCall","src":"7892:22:139"},"nodeType":"YulExpressionStatement","src":"7892:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7878:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7886:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7875:2:139"},"nodeType":"YulFunctionCall","src":"7875:14:139"},"nodeType":"YulIf","src":"7872:2:139"},{"nodeType":"YulVariableDeclaration","src":"7925:96:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7993:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"8004:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7989:3:139"},"nodeType":"YulFunctionCall","src":"7989:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8013:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7951:37:139"},"nodeType":"YulFunctionCall","src":"7951:70:139"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7929:8:139","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7939:8:139","type":""}]},{"nodeType":"YulAssignment","src":"8030:18:139","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"8040:8:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8030:6:139"}]},{"nodeType":"YulAssignment","src":"8057:18:139","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"8067:8:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8057:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8084:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8117:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8128:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8113:3:139"},"nodeType":"YulFunctionCall","src":"8113:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8100:12:139"},"nodeType":"YulFunctionCall","src":"8100:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8088:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8161:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8170:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8178:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8163:6:139"},"nodeType":"YulFunctionCall","src":"8163:22:139"},"nodeType":"YulExpressionStatement","src":"8163:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8147:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8157:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8144:2:139"},"nodeType":"YulFunctionCall","src":"8144:16:139"},"nodeType":"YulIf","src":"8141:2:139"},{"nodeType":"YulVariableDeclaration","src":"8196:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8264:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8275:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8260:3:139"},"nodeType":"YulFunctionCall","src":"8260:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8286:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"8222:37:139"},"nodeType":"YulFunctionCall","src":"8222:72:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"8200:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"8210:8:139","type":""}]},{"nodeType":"YulAssignment","src":"8303:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"8313:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8303:6:139"}]},{"nodeType":"YulAssignment","src":"8330:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"8340:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8330:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8357:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8390:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8401:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8386:3:139"},"nodeType":"YulFunctionCall","src":"8386:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8373:12:139"},"nodeType":"YulFunctionCall","src":"8373:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"8361:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8434:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8443:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8451:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8436:6:139"},"nodeType":"YulFunctionCall","src":"8436:22:139"},"nodeType":"YulExpressionStatement","src":"8436:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"8420:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8430:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8417:2:139"},"nodeType":"YulFunctionCall","src":"8417:16:139"},"nodeType":"YulIf","src":"8414:2:139"},{"nodeType":"YulVariableDeclaration","src":"8469:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8537:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"8548:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8533:3:139"},"nodeType":"YulFunctionCall","src":"8533:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8559:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"8495:37:139"},"nodeType":"YulFunctionCall","src":"8495:72:139"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"8473:8:139","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"8483:8:139","type":""}]},{"nodeType":"YulAssignment","src":"8576:18:139","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"8586:8:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8576:6:139"}]},{"nodeType":"YulAssignment","src":"8603:18:139","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"8613:8:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"8603:6:139"}]},{"nodeType":"YulAssignment","src":"8630:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8657:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8668:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8653:3:139"},"nodeType":"YulFunctionCall","src":"8653:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8640:12:139"},"nodeType":"YulFunctionCall","src":"8640:32:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"8630:6:139"}]},{"nodeType":"YulAssignment","src":"8681:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8708:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8719:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8704:3:139"},"nodeType":"YulFunctionCall","src":"8704:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8691:12:139"},"nodeType":"YulFunctionCall","src":"8691:33:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"8681:6:139"}]},{"nodeType":"YulAssignment","src":"8733:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8760:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8771:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8756:3:139"},"nodeType":"YulFunctionCall","src":"8756:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8743:12:139"},"nodeType":"YulFunctionCall","src":"8743:33:139"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"8733:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7609:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7620:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7632:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7640:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7648:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7656:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7664:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"7672:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"7680:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"7688:6:139","type":""},{"name":"value8","nodeType":"YulTypedName","src":"7696:6:139","type":""}],"src":"7436:1346:139"},{"body":{"nodeType":"YulBlock","src":"8857:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"8903:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8912:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8920:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8905:6:139"},"nodeType":"YulFunctionCall","src":"8905:22:139"},"nodeType":"YulExpressionStatement","src":"8905:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8878:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8887:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8874:3:139"},"nodeType":"YulFunctionCall","src":"8874:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8899:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8870:3:139"},"nodeType":"YulFunctionCall","src":"8870:32:139"},"nodeType":"YulIf","src":"8867:2:139"},{"nodeType":"YulAssignment","src":"8938:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8961:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8948:12:139"},"nodeType":"YulFunctionCall","src":"8948:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8938:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8823:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8834:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8846:6:139","type":""}],"src":"8787:190:139"},{"body":{"nodeType":"YulBlock","src":"9069:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"9115:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9124:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9132:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9117:6:139"},"nodeType":"YulFunctionCall","src":"9117:22:139"},"nodeType":"YulExpressionStatement","src":"9117:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9090:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9099:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9086:3:139"},"nodeType":"YulFunctionCall","src":"9086:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9111:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9082:3:139"},"nodeType":"YulFunctionCall","src":"9082:32:139"},"nodeType":"YulIf","src":"9079:2:139"},{"nodeType":"YulAssignment","src":"9150:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9173:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9160:12:139"},"nodeType":"YulFunctionCall","src":"9160:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9150:6:139"}]},{"nodeType":"YulAssignment","src":"9192:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9225:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9236:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9221:3:139"},"nodeType":"YulFunctionCall","src":"9221:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"9202:18:139"},"nodeType":"YulFunctionCall","src":"9202:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9192:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9027:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9038:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9050:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9058:6:139","type":""}],"src":"8982:264:139"},{"body":{"nodeType":"YulBlock","src":"9320:237:139","statements":[{"body":{"nodeType":"YulBlock","src":"9366:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9375:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9383:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9368:6:139"},"nodeType":"YulFunctionCall","src":"9368:22:139"},"nodeType":"YulExpressionStatement","src":"9368:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9341:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9350:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9337:3:139"},"nodeType":"YulFunctionCall","src":"9337:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9362:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9333:3:139"},"nodeType":"YulFunctionCall","src":"9333:32:139"},"nodeType":"YulIf","src":"9330:2:139"},{"nodeType":"YulVariableDeclaration","src":"9401:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9427:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9414:12:139"},"nodeType":"YulFunctionCall","src":"9414:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9405:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9501:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9510:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9518:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9503:6:139"},"nodeType":"YulFunctionCall","src":"9503:22:139"},"nodeType":"YulExpressionStatement","src":"9503:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9459:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9470:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9481:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9486:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9477:3:139"},"nodeType":"YulFunctionCall","src":"9477:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9466:3:139"},"nodeType":"YulFunctionCall","src":"9466:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9456:2:139"},"nodeType":"YulFunctionCall","src":"9456:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9449:6:139"},"nodeType":"YulFunctionCall","src":"9449:51:139"},"nodeType":"YulIf","src":"9446:2:139"},{"nodeType":"YulAssignment","src":"9536:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"9546:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9536:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9286:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9297:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9309:6:139","type":""}],"src":"9251:306:139"},{"body":{"nodeType":"YulBlock","src":"9632:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"9678:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9687:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9695:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9680:6:139"},"nodeType":"YulFunctionCall","src":"9680:22:139"},"nodeType":"YulExpressionStatement","src":"9680:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9653:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9662:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9649:3:139"},"nodeType":"YulFunctionCall","src":"9649:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9674:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9645:3:139"},"nodeType":"YulFunctionCall","src":"9645:32:139"},"nodeType":"YulIf","src":"9642:2:139"},{"nodeType":"YulAssignment","src":"9713:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9736:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9723:12:139"},"nodeType":"YulFunctionCall","src":"9723:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9713:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9598:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9609:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9621:6:139","type":""}],"src":"9562:190:139"},{"body":{"nodeType":"YulBlock","src":"9842:959:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9859:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"9864:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9852:6:139"},"nodeType":"YulFunctionCall","src":"9852:19:139"},"nodeType":"YulExpressionStatement","src":"9852:19:139"},{"nodeType":"YulVariableDeclaration","src":"9880:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"9890:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9884:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9903:31:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9926:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9931:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9922:3:139"},"nodeType":"YulFunctionCall","src":"9922:12:139"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"9907:11:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9943:24:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"9956:11:139"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"9947:5:139","type":""}]},{"nodeType":"YulAssignment","src":"9976:18:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"9983:11:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9976:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"10003:38:139","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"10019:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10030:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"10033:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10026:3:139"},"nodeType":"YulFunctionCall","src":"10026:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10015:3:139"},"nodeType":"YulFunctionCall","src":"10015:26:139"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"10007:4:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10050:19:139","value":{"name":"value","nodeType":"YulIdentifier","src":"10064:5:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"10054:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10078:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"10087:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10082:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10148:627:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10169:3:139"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10178:4:139"},{"name":"pos_1","nodeType":"YulIdentifier","src":"10184:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10174:3:139"},"nodeType":"YulFunctionCall","src":"10174:16:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10162:6:139"},"nodeType":"YulFunctionCall","src":"10162:29:139"},"nodeType":"YulExpressionStatement","src":"10162:29:139"},{"nodeType":"YulVariableDeclaration","src":"10204:46:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10243:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10230:12:139"},"nodeType":"YulFunctionCall","src":"10230:20:139"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"10208:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10340:20:139","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"10349:3:139"},{"name":"end","nodeType":"YulIdentifier","src":"10354:3:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10342:6:139"},"nodeType":"YulFunctionCall","src":"10342:16:139"},"nodeType":"YulExpressionStatement","src":"10342:16:139"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"10277:18:139"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"10305:12:139"},"nodeType":"YulFunctionCall","src":"10305:14:139"},{"name":"value","nodeType":"YulIdentifier","src":"10321:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10301:3:139"},"nodeType":"YulFunctionCall","src":"10301:26:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10333:2:139","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10329:3:139"},"nodeType":"YulFunctionCall","src":"10329:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10297:3:139"},"nodeType":"YulFunctionCall","src":"10297:40:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10273:3:139"},"nodeType":"YulFunctionCall","src":"10273:65:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10266:6:139"},"nodeType":"YulFunctionCall","src":"10266:73:139"},"nodeType":"YulIf","src":"10263:2:139"},{"nodeType":"YulVariableDeclaration","src":"10373:45:139","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"10392:18:139"},{"name":"value","nodeType":"YulIdentifier","src":"10412:5:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10388:3:139"},"nodeType":"YulFunctionCall","src":"10388:30:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10377:7:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10431:37:139","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10460:7:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10447:12:139"},"nodeType":"YulFunctionCall","src":"10447:21:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"10435:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10517:20:139","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"10526:3:139"},{"name":"end","nodeType":"YulIdentifier","src":"10531:3:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10519:6:139"},"nodeType":"YulFunctionCall","src":"10519:16:139"},"nodeType":"YulExpressionStatement","src":"10519:16:139"}]},"condition":{"arguments":[{"name":"length_1","nodeType":"YulIdentifier","src":"10487:8:139"},{"kind":"number","nodeType":"YulLiteral","src":"10497:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10484:2:139"},"nodeType":"YulFunctionCall","src":"10484:32:139"},"nodeType":"YulIf","src":"10481:2:139"},{"body":{"nodeType":"YulBlock","src":"10595:20:139","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"10604:3:139"},{"name":"end","nodeType":"YulIdentifier","src":"10609:3:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10597:6:139"},"nodeType":"YulFunctionCall","src":"10597:16:139"},"nodeType":"YulExpressionStatement","src":"10597:16:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10557:5:139"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"10568:12:139"},"nodeType":"YulFunctionCall","src":"10568:14:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"10584:8:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10564:3:139"},"nodeType":"YulFunctionCall","src":"10564:29:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"10553:3:139"},"nodeType":"YulFunctionCall","src":"10553:41:139"},"nodeType":"YulIf","src":"10550:2:139"},{"nodeType":"YulAssignment","src":"10628:67:139","value":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10666:7:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10675:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10662:3:139"},"nodeType":"YulFunctionCall","src":"10662:16:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"10680:8:139"},{"name":"tail","nodeType":"YulIdentifier","src":"10690:4:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"10636:25:139"},"nodeType":"YulFunctionCall","src":"10636:59:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10628:4:139"}]},{"nodeType":"YulAssignment","src":"10708:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10722:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10730:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10718:3:139"},"nodeType":"YulFunctionCall","src":"10718:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10708:6:139"}]},{"nodeType":"YulAssignment","src":"10746:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10757:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10762:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10753:3:139"},"nodeType":"YulFunctionCall","src":"10753:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10746:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10110:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"10113:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10107:2:139"},"nodeType":"YulFunctionCall","src":"10107:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10121:18:139","statements":[{"nodeType":"YulAssignment","src":"10123:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10132:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"10135:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10128:3:139"},"nodeType":"YulFunctionCall","src":"10128:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10123:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"10103:3:139","statements":[]},"src":"10099:676:139"},{"nodeType":"YulAssignment","src":"10784:11:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"10791:4:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10784:3:139"}]}]},"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9811:5:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"9818:6:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9826:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9834:3:139","type":""}],"src":"9757:1044:139"},{"body":{"nodeType":"YulBlock","src":"10872:202:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10889:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"10894:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10882:6:139"},"nodeType":"YulFunctionCall","src":"10882:19:139"},"nodeType":"YulExpressionStatement","src":"10882:19:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10927:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"10932:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10923:3:139"},"nodeType":"YulFunctionCall","src":"10923:14:139"},{"name":"start","nodeType":"YulIdentifier","src":"10939:5:139"},{"name":"length","nodeType":"YulIdentifier","src":"10946:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10910:12:139"},"nodeType":"YulFunctionCall","src":"10910:43:139"},"nodeType":"YulExpressionStatement","src":"10910:43:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10977:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"10982:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10973:3:139"},"nodeType":"YulFunctionCall","src":"10973:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"10991:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:139"},"nodeType":"YulFunctionCall","src":"10969:27:139"},{"name":"end","nodeType":"YulIdentifier","src":"10998:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10962:6:139"},"nodeType":"YulFunctionCall","src":"10962:40:139"},"nodeType":"YulExpressionStatement","src":"10962:40:139"},{"nodeType":"YulAssignment","src":"11011:57:139","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11026:3:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11039:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"11047:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11035:3:139"},"nodeType":"YulFunctionCall","src":"11035:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11056:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11052:3:139"},"nodeType":"YulFunctionCall","src":"11052:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11031:3:139"},"nodeType":"YulFunctionCall","src":"11031:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11022:3:139"},"nodeType":"YulFunctionCall","src":"11022:39:139"},{"kind":"number","nodeType":"YulLiteral","src":"11063:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11018:3:139"},"nodeType":"YulFunctionCall","src":"11018:50:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11011:3:139"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"10841:5:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"10848:6:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10856:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10864:3:139","type":""}],"src":"10806:268:139"},{"body":{"nodeType":"YulBlock","src":"11226:126:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11249:3:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11254:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"11262:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11236:12:139"},"nodeType":"YulFunctionCall","src":"11236:33:139"},"nodeType":"YulExpressionStatement","src":"11236:33:139"},{"nodeType":"YulVariableDeclaration","src":"11278:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11292:3:139"},{"name":"value1","nodeType":"YulIdentifier","src":"11297:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11288:3:139"},"nodeType":"YulFunctionCall","src":"11288:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11282:2:139","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11320:2:139"},{"name":"end","nodeType":"YulIdentifier","src":"11324:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11313:6:139"},"nodeType":"YulFunctionCall","src":"11313:15:139"},"nodeType":"YulExpressionStatement","src":"11313:15:139"},{"nodeType":"YulAssignment","src":"11337:9:139","value":{"name":"_1","nodeType":"YulIdentifier","src":"11344:2:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11337:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11194:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11199:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11207:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11218:3:139","type":""}],"src":"11079:273:139"},{"body":{"nodeType":"YulBlock","src":"11746:397:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11763:3:139"},{"kind":"string","nodeType":"YulLiteral","src":"11768:25:139","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11756:6:139"},"nodeType":"YulFunctionCall","src":"11756:38:139"},"nodeType":"YulExpressionStatement","src":"11756:38:139"},{"nodeType":"YulVariableDeclaration","src":"11803:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11823:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11817:5:139"},"nodeType":"YulFunctionCall","src":"11817:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11807:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11865:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"11873:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11861:3:139"},"nodeType":"YulFunctionCall","src":"11861:17:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11884:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"11889:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11880:3:139"},"nodeType":"YulFunctionCall","src":"11880:12:139"},{"name":"length","nodeType":"YulIdentifier","src":"11894:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11839:21:139"},"nodeType":"YulFunctionCall","src":"11839:62:139"},"nodeType":"YulExpressionStatement","src":"11839:62:139"},{"nodeType":"YulVariableDeclaration","src":"11910:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11924:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"11929:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11920:3:139"},"nodeType":"YulFunctionCall","src":"11920:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11914:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11956:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"11960:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11952:3:139"},"nodeType":"YulFunctionCall","src":"11952:11:139"},{"kind":"string","nodeType":"YulLiteral","src":"11965:19:139","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11945:6:139"},"nodeType":"YulFunctionCall","src":"11945:40:139"},"nodeType":"YulExpressionStatement","src":"11945:40:139"},{"nodeType":"YulVariableDeclaration","src":"11994:29:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12016:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12010:5:139"},"nodeType":"YulFunctionCall","src":"12010:13:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"11998:8:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12058:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"12066:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12054:3:139"},"nodeType":"YulFunctionCall","src":"12054:17:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12077:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"12081:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12073:3:139"},"nodeType":"YulFunctionCall","src":"12073:11:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"12086:8:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12032:21:139"},"nodeType":"YulFunctionCall","src":"12032:63:139"},"nodeType":"YulExpressionStatement","src":"12032:63:139"},{"nodeType":"YulAssignment","src":"12104:33:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12119:2:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"12123:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12115:3:139"},"nodeType":"YulFunctionCall","src":"12115:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"12134:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12111:3:139"},"nodeType":"YulFunctionCall","src":"12111:26:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12104:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11714:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11719:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11727:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11738:3:139","type":""}],"src":"11357:786:139"},{"body":{"nodeType":"YulBlock","src":"12333:227:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12350:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12365:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12381:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12386:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12377:3:139"},"nodeType":"YulFunctionCall","src":"12377:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12390:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12373:3:139"},"nodeType":"YulFunctionCall","src":"12373:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12361:3:139"},"nodeType":"YulFunctionCall","src":"12361:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12343:6:139"},"nodeType":"YulFunctionCall","src":"12343:51:139"},"nodeType":"YulExpressionStatement","src":"12343:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12414:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12425:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12410:3:139"},"nodeType":"YulFunctionCall","src":"12410:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"12430:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12403:6:139"},"nodeType":"YulFunctionCall","src":"12403:34:139"},"nodeType":"YulExpressionStatement","src":"12403:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12457:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12468:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12453:3:139"},"nodeType":"YulFunctionCall","src":"12453:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12473:2:139","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12446:6:139"},"nodeType":"YulFunctionCall","src":"12446:30:139"},"nodeType":"YulExpressionStatement","src":"12446:30:139"},{"nodeType":"YulAssignment","src":"12485:69:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12519:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"12527:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12539:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12550:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12535:3:139"},"nodeType":"YulFunctionCall","src":"12535:18:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"12493:25:139"},"nodeType":"YulFunctionCall","src":"12493:61:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12485:4:139"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12278:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12289:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12297:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12305:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12313:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12324:4:139","type":""}],"src":"12148:412:139"},{"body":{"nodeType":"YulBlock","src":"12806:316:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12823:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12838:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12854:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12859:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12850:3:139"},"nodeType":"YulFunctionCall","src":"12850:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12863:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12846:3:139"},"nodeType":"YulFunctionCall","src":"12846:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12834:3:139"},"nodeType":"YulFunctionCall","src":"12834:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12816:6:139"},"nodeType":"YulFunctionCall","src":"12816:51:139"},"nodeType":"YulExpressionStatement","src":"12816:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12887:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12898:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12883:3:139"},"nodeType":"YulFunctionCall","src":"12883:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"12903:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12876:6:139"},"nodeType":"YulFunctionCall","src":"12876:34:139"},"nodeType":"YulExpressionStatement","src":"12876:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12930:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12941:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12926:3:139"},"nodeType":"YulFunctionCall","src":"12926:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12946:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12919:6:139"},"nodeType":"YulFunctionCall","src":"12919:31:139"},"nodeType":"YulExpressionStatement","src":"12919:31:139"},{"nodeType":"YulAssignment","src":"12959:70:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12993:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"13001:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13013:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13024:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13009:3:139"},"nodeType":"YulFunctionCall","src":"13009:19:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"12967:25:139"},"nodeType":"YulFunctionCall","src":"12967:62:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12959:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13049:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13060:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13045:3:139"},"nodeType":"YulFunctionCall","src":"13045:18:139"},{"name":"value4","nodeType":"YulIdentifier","src":"13065:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13038:6:139"},"nodeType":"YulFunctionCall","src":"13038:34:139"},"nodeType":"YulExpressionStatement","src":"13038:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13092:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13103:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13088:3:139"},"nodeType":"YulFunctionCall","src":"13088:19:139"},{"name":"value5","nodeType":"YulIdentifier","src":"13109:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13081:6:139"},"nodeType":"YulFunctionCall","src":"13081:35:139"},"nodeType":"YulExpressionStatement","src":"13081:35:139"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12735:9:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"12746:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12754:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12762:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12770:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12778:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12786:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12797:4:139","type":""}],"src":"12565:557:139"},{"body":{"nodeType":"YulBlock","src":"13368:316:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13385:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13400:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13416:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13421:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13412:3:139"},"nodeType":"YulFunctionCall","src":"13412:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"13425:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13408:3:139"},"nodeType":"YulFunctionCall","src":"13408:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13396:3:139"},"nodeType":"YulFunctionCall","src":"13396:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13378:6:139"},"nodeType":"YulFunctionCall","src":"13378:51:139"},"nodeType":"YulExpressionStatement","src":"13378:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13449:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13460:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13445:3:139"},"nodeType":"YulFunctionCall","src":"13445:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"13465:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13438:6:139"},"nodeType":"YulFunctionCall","src":"13438:34:139"},"nodeType":"YulExpressionStatement","src":"13438:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13492:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13503:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13488:3:139"},"nodeType":"YulFunctionCall","src":"13488:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13508:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13481:6:139"},"nodeType":"YulFunctionCall","src":"13481:31:139"},"nodeType":"YulExpressionStatement","src":"13481:31:139"},{"nodeType":"YulAssignment","src":"13521:70:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13555:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"13563:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13575:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13586:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13571:3:139"},"nodeType":"YulFunctionCall","src":"13571:19:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13529:25:139"},"nodeType":"YulFunctionCall","src":"13529:62:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13521:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13611:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13622:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13607:3:139"},"nodeType":"YulFunctionCall","src":"13607:18:139"},{"name":"value4","nodeType":"YulIdentifier","src":"13627:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13600:6:139"},"nodeType":"YulFunctionCall","src":"13600:34:139"},"nodeType":"YulExpressionStatement","src":"13600:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13654:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13665:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13650:3:139"},"nodeType":"YulFunctionCall","src":"13650:19:139"},{"name":"value5","nodeType":"YulIdentifier","src":"13671:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13643:6:139"},"nodeType":"YulFunctionCall","src":"13643:35:139"},"nodeType":"YulExpressionStatement","src":"13643:35:139"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13297:9:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13308:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13316:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13324:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13332:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13340:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13348:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13359:4:139","type":""}],"src":"13127:557:139"},{"body":{"nodeType":"YulBlock","src":"14102:1035:139","statements":[{"nodeType":"YulVariableDeclaration","src":"14112:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14130:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14141:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14126:3:139"},"nodeType":"YulFunctionCall","src":"14126:19:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"14116:6:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14161:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14172:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14154:6:139"},"nodeType":"YulFunctionCall","src":"14154:22:139"},"nodeType":"YulExpressionStatement","src":"14154:22:139"},{"nodeType":"YulVariableDeclaration","src":"14185:17:139","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"14196:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"14189:3:139","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"14218:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"14226:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14211:6:139"},"nodeType":"YulFunctionCall","src":"14211:22:139"},"nodeType":"YulExpressionStatement","src":"14211:22:139"},{"nodeType":"YulAssignment","src":"14242:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14253:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14264:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14249:3:139"},"nodeType":"YulFunctionCall","src":"14249:19:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14242:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"14277:20:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"14291:6:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"14281:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14306:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"14315:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14310:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"14377:186:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14398:3:139"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14426:6:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"14407:18:139"},"nodeType":"YulFunctionCall","src":"14407:26:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14443:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14448:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14439:3:139"},"nodeType":"YulFunctionCall","src":"14439:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14452:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14435:3:139"},"nodeType":"YulFunctionCall","src":"14435:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14403:3:139"},"nodeType":"YulFunctionCall","src":"14403:52:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14391:6:139"},"nodeType":"YulFunctionCall","src":"14391:65:139"},"nodeType":"YulExpressionStatement","src":"14391:65:139"},{"nodeType":"YulVariableDeclaration","src":"14469:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"14479:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14473:2:139","type":""}]},{"nodeType":"YulAssignment","src":"14496:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14507:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14512:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14503:3:139"},"nodeType":"YulFunctionCall","src":"14503:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14496:3:139"}]},{"nodeType":"YulAssignment","src":"14528:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14542:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14550:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14538:3:139"},"nodeType":"YulFunctionCall","src":"14538:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14528:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14339:1:139"},{"name":"value1","nodeType":"YulIdentifier","src":"14342:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14336:2:139"},"nodeType":"YulFunctionCall","src":"14336:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14350:18:139","statements":[{"nodeType":"YulAssignment","src":"14352:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14361:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"14364:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14357:3:139"},"nodeType":"YulFunctionCall","src":"14357:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14352:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"14332:3:139","statements":[]},"src":"14328:235:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14583:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14594:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14579:3:139"},"nodeType":"YulFunctionCall","src":"14579:20:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14605:3:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"14610:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14601:3:139"},"nodeType":"YulFunctionCall","src":"14601:19:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14572:6:139"},"nodeType":"YulFunctionCall","src":"14572:49:139"},"nodeType":"YulExpressionStatement","src":"14572:49:139"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14637:3:139"},{"name":"value3","nodeType":"YulIdentifier","src":"14642:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14630:6:139"},"nodeType":"YulFunctionCall","src":"14630:19:139"},"nodeType":"YulExpressionStatement","src":"14630:19:139"},{"body":{"nodeType":"YulBlock","src":"14693:22:139","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14702:4:139"},{"name":"tail","nodeType":"YulIdentifier","src":"14708:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14695:6:139"},"nodeType":"YulFunctionCall","src":"14695:18:139"},"nodeType":"YulExpressionStatement","src":"14695:18:139"}]},"condition":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14664:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14680:3:139","type":"","value":"251"},{"kind":"number","nodeType":"YulLiteral","src":"14685:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14676:3:139"},"nodeType":"YulFunctionCall","src":"14676:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14689:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14672:3:139"},"nodeType":"YulFunctionCall","src":"14672:19:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14661:2:139"},"nodeType":"YulFunctionCall","src":"14661:31:139"},"nodeType":"YulIf","src":"14658:2:139"},{"nodeType":"YulVariableDeclaration","src":"14724:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14742:1:139","type":"","value":"5"},{"name":"value3","nodeType":"YulIdentifier","src":"14745:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14738:3:139"},"nodeType":"YulFunctionCall","src":"14738:14:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14728:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14778:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"14783:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14774:3:139"},"nodeType":"YulFunctionCall","src":"14774:14:139"},{"name":"value2","nodeType":"YulIdentifier","src":"14790:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"14798:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14761:12:139"},"nodeType":"YulFunctionCall","src":"14761:44:139"},"nodeType":"YulExpressionStatement","src":"14761:44:139"},{"nodeType":"YulVariableDeclaration","src":"14814:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14828:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"14833:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14824:3:139"},"nodeType":"YulFunctionCall","src":"14824:16:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"14818:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14849:23:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14863:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"14867:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14859:3:139"},"nodeType":"YulFunctionCall","src":"14859:13:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"14853:2:139","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"14888:2:139"},{"name":"tail","nodeType":"YulIdentifier","src":"14892:4:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14881:6:139"},"nodeType":"YulFunctionCall","src":"14881:16:139"},"nodeType":"YulExpressionStatement","src":"14881:16:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14917:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14928:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14913:3:139"},"nodeType":"YulFunctionCall","src":"14913:18:139"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14941:2:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"14945:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14937:3:139"},"nodeType":"YulFunctionCall","src":"14937:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14957:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14933:3:139"},"nodeType":"YulFunctionCall","src":"14933:29:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14906:6:139"},"nodeType":"YulFunctionCall","src":"14906:57:139"},"nodeType":"YulExpressionStatement","src":"14906:57:139"},{"nodeType":"YulAssignment","src":"14972:72:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"15025:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"15033:6:139"},{"name":"_3","nodeType":"YulIdentifier","src":"15041:2:139"}],"functionName":{"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"14980:44:139"},"nodeType":"YulFunctionCall","src":"14980:64:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14972:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15064:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15075:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15060:3:139"},"nodeType":"YulFunctionCall","src":"15060:18:139"},{"name":"value6","nodeType":"YulIdentifier","src":"15080:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15053:6:139"},"nodeType":"YulFunctionCall","src":"15053:34:139"},"nodeType":"YulExpressionStatement","src":"15053:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15107:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15118:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15103:3:139"},"nodeType":"YulFunctionCall","src":"15103:19:139"},{"name":"value7","nodeType":"YulIdentifier","src":"15124:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15096:6:139"},"nodeType":"YulFunctionCall","src":"15096:35:139"},"nodeType":"YulExpressionStatement","src":"15096:35:139"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14015:9:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"14026:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"14034:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"14042:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14050:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14058:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14066:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14074:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14082:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14093:4:139","type":""}],"src":"13689:1448:139"},{"body":{"nodeType":"YulBlock","src":"15237:92:139","statements":[{"nodeType":"YulAssignment","src":"15247:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15259:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15270:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15255:3:139"},"nodeType":"YulFunctionCall","src":"15255:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15247:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15289:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15314:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15307:6:139"},"nodeType":"YulFunctionCall","src":"15307:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15300:6:139"},"nodeType":"YulFunctionCall","src":"15300:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15282:6:139"},"nodeType":"YulFunctionCall","src":"15282:41:139"},"nodeType":"YulExpressionStatement","src":"15282:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15206:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15217:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15228:4:139","type":""}],"src":"15142:187:139"},{"body":{"nodeType":"YulBlock","src":"15435:76:139","statements":[{"nodeType":"YulAssignment","src":"15445:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15457:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15468:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15453:3:139"},"nodeType":"YulFunctionCall","src":"15453:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15445:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15487:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"15498:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15480:6:139"},"nodeType":"YulFunctionCall","src":"15480:25:139"},"nodeType":"YulExpressionStatement","src":"15480:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15404:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15415:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15426:4:139","type":""}],"src":"15334:177:139"},{"body":{"nodeType":"YulBlock","src":"15615:103:139","statements":[{"nodeType":"YulAssignment","src":"15625:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15637:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15648:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15633:3:139"},"nodeType":"YulFunctionCall","src":"15633:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15625:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15667:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15682:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15694:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15699:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15690:3:139"},"nodeType":"YulFunctionCall","src":"15690:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15678:3:139"},"nodeType":"YulFunctionCall","src":"15678:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15660:6:139"},"nodeType":"YulFunctionCall","src":"15660:52:139"},"nodeType":"YulExpressionStatement","src":"15660:52:139"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15584:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15595:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15606:4:139","type":""}],"src":"15516:202:139"},{"body":{"nodeType":"YulBlock","src":"15844:262:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15861:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15872:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15854:6:139"},"nodeType":"YulFunctionCall","src":"15854:21:139"},"nodeType":"YulExpressionStatement","src":"15854:21:139"},{"nodeType":"YulVariableDeclaration","src":"15884:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15904:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15898:5:139"},"nodeType":"YulFunctionCall","src":"15898:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15888:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15931:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15942:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15927:3:139"},"nodeType":"YulFunctionCall","src":"15927:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"15947:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15920:6:139"},"nodeType":"YulFunctionCall","src":"15920:34:139"},"nodeType":"YulExpressionStatement","src":"15920:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15989:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"15997:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15985:3:139"},"nodeType":"YulFunctionCall","src":"15985:15:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16006:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16017:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16002:3:139"},"nodeType":"YulFunctionCall","src":"16002:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"16022:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"15963:21:139"},"nodeType":"YulFunctionCall","src":"15963:66:139"},"nodeType":"YulExpressionStatement","src":"15963:66:139"},{"nodeType":"YulAssignment","src":"16038:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16054:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"16073:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"16081:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16069:3:139"},"nodeType":"YulFunctionCall","src":"16069:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16090:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16086:3:139"},"nodeType":"YulFunctionCall","src":"16086:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16065:3:139"},"nodeType":"YulFunctionCall","src":"16065:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16050:3:139"},"nodeType":"YulFunctionCall","src":"16050:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"16097:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16046:3:139"},"nodeType":"YulFunctionCall","src":"16046:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16038:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15813:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15824:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15835:4:139","type":""}],"src":"15723:383:139"},{"body":{"nodeType":"YulBlock","src":"16285:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16302:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16313:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16295:6:139"},"nodeType":"YulFunctionCall","src":"16295:21:139"},"nodeType":"YulExpressionStatement","src":"16295:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16336:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16347:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16332:3:139"},"nodeType":"YulFunctionCall","src":"16332:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16352:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16325:6:139"},"nodeType":"YulFunctionCall","src":"16325:30:139"},"nodeType":"YulExpressionStatement","src":"16325:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16375:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16386:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16371:3:139"},"nodeType":"YulFunctionCall","src":"16371:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16391:34:139","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16364:6:139"},"nodeType":"YulFunctionCall","src":"16364:62:139"},"nodeType":"YulExpressionStatement","src":"16364:62:139"},{"nodeType":"YulAssignment","src":"16435:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16447:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16458:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16443:3:139"},"nodeType":"YulFunctionCall","src":"16443:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16435:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16262:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16276:4:139","type":""}],"src":"16111:356:139"},{"body":{"nodeType":"YulBlock","src":"16646:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16663:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16674:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16656:6:139"},"nodeType":"YulFunctionCall","src":"16656:21:139"},"nodeType":"YulExpressionStatement","src":"16656:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16697:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16708:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16693:3:139"},"nodeType":"YulFunctionCall","src":"16693:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16713:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16686:6:139"},"nodeType":"YulFunctionCall","src":"16686:30:139"},"nodeType":"YulExpressionStatement","src":"16686:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16736:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16747:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16732:3:139"},"nodeType":"YulFunctionCall","src":"16732:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16752:34:139","type":"","value":"TimelockController: missing depe"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16725:6:139"},"nodeType":"YulFunctionCall","src":"16725:62:139"},"nodeType":"YulExpressionStatement","src":"16725:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16807:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16818:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16803:3:139"},"nodeType":"YulFunctionCall","src":"16803:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16823:8:139","type":"","value":"ndency"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16796:6:139"},"nodeType":"YulFunctionCall","src":"16796:36:139"},"nodeType":"YulExpressionStatement","src":"16796:36:139"},{"nodeType":"YulAssignment","src":"16841:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16853:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16864:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16849:3:139"},"nodeType":"YulFunctionCall","src":"16849:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16841:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16623:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16637:4:139","type":""}],"src":"16472:402:139"},{"body":{"nodeType":"YulBlock","src":"17053:225:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17070:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17081:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17063:6:139"},"nodeType":"YulFunctionCall","src":"17063:21:139"},"nodeType":"YulExpressionStatement","src":"17063:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17104:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17115:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17100:3:139"},"nodeType":"YulFunctionCall","src":"17100:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17120:2:139","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17093:6:139"},"nodeType":"YulFunctionCall","src":"17093:30:139"},"nodeType":"YulExpressionStatement","src":"17093:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17143:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17154:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17139:3:139"},"nodeType":"YulFunctionCall","src":"17139:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17159:34:139","type":"","value":"TimelockController: length misma"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17132:6:139"},"nodeType":"YulFunctionCall","src":"17132:62:139"},"nodeType":"YulExpressionStatement","src":"17132:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17214:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17225:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17210:3:139"},"nodeType":"YulFunctionCall","src":"17210:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17230:5:139","type":"","value":"tch"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17203:6:139"},"nodeType":"YulFunctionCall","src":"17203:33:139"},"nodeType":"YulExpressionStatement","src":"17203:33:139"},{"nodeType":"YulAssignment","src":"17245:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17257:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17268:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17253:3:139"},"nodeType":"YulFunctionCall","src":"17253:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17245:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17030:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17044:4:139","type":""}],"src":"16879:399:139"},{"body":{"nodeType":"YulBlock","src":"17457:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17474:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17485:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17467:6:139"},"nodeType":"YulFunctionCall","src":"17467:21:139"},"nodeType":"YulExpressionStatement","src":"17467:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17508:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17519:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17504:3:139"},"nodeType":"YulFunctionCall","src":"17504:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17524:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17497:6:139"},"nodeType":"YulFunctionCall","src":"17497:30:139"},"nodeType":"YulExpressionStatement","src":"17497:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17547:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17558:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17543:3:139"},"nodeType":"YulFunctionCall","src":"17543:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17563:34:139","type":"","value":"TimelockController: insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17536:6:139"},"nodeType":"YulFunctionCall","src":"17536:62:139"},"nodeType":"YulExpressionStatement","src":"17536:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17618:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17629:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17614:3:139"},"nodeType":"YulFunctionCall","src":"17614:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17634:8:139","type":"","value":" delay"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17607:6:139"},"nodeType":"YulFunctionCall","src":"17607:36:139"},"nodeType":"YulExpressionStatement","src":"17607:36:139"},{"nodeType":"YulAssignment","src":"17652:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17664:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17675:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17660:3:139"},"nodeType":"YulFunctionCall","src":"17660:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17652:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17434:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17448:4:139","type":""}],"src":"17283:402:139"},{"body":{"nodeType":"YulBlock","src":"17864:237:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17881:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17892:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17874:6:139"},"nodeType":"YulFunctionCall","src":"17874:21:139"},"nodeType":"YulExpressionStatement","src":"17874:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17915:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17911:3:139"},"nodeType":"YulFunctionCall","src":"17911:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17931:2:139","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17904:6:139"},"nodeType":"YulFunctionCall","src":"17904:30:139"},"nodeType":"YulExpressionStatement","src":"17904:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17954:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17965:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17950:3:139"},"nodeType":"YulFunctionCall","src":"17950:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17970:34:139","type":"","value":"TimelockController: operation al"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17943:6:139"},"nodeType":"YulFunctionCall","src":"17943:62:139"},"nodeType":"YulExpressionStatement","src":"17943:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18025:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18036:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18021:3:139"},"nodeType":"YulFunctionCall","src":"18021:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18041:17:139","type":"","value":"ready scheduled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18014:6:139"},"nodeType":"YulFunctionCall","src":"18014:45:139"},"nodeType":"YulExpressionStatement","src":"18014:45:139"},{"nodeType":"YulAssignment","src":"18068:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18080:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18091:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18076:3:139"},"nodeType":"YulFunctionCall","src":"18076:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18068:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17841:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17855:4:139","type":""}],"src":"17690:411:139"},{"body":{"nodeType":"YulBlock","src":"18280:232:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18297:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18308:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18290:6:139"},"nodeType":"YulFunctionCall","src":"18290:21:139"},"nodeType":"YulExpressionStatement","src":"18290:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18331:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18342:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18327:3:139"},"nodeType":"YulFunctionCall","src":"18327:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18347:2:139","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18320:6:139"},"nodeType":"YulFunctionCall","src":"18320:30:139"},"nodeType":"YulExpressionStatement","src":"18320:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18370:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18381:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18366:3:139"},"nodeType":"YulFunctionCall","src":"18366:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18386:34:139","type":"","value":"TimelockController: operation is"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18359:6:139"},"nodeType":"YulFunctionCall","src":"18359:62:139"},"nodeType":"YulExpressionStatement","src":"18359:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18441:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18452:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18437:3:139"},"nodeType":"YulFunctionCall","src":"18437:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18457:12:139","type":"","value":" not ready"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18430:6:139"},"nodeType":"YulFunctionCall","src":"18430:40:139"},"nodeType":"YulExpressionStatement","src":"18430:40:139"},{"nodeType":"YulAssignment","src":"18479:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18491:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18502:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18487:3:139"},"nodeType":"YulFunctionCall","src":"18487:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18479:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18257:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18271:4:139","type":""}],"src":"18106:406:139"},{"body":{"nodeType":"YulBlock","src":"18691:239:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18708:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18719:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18701:6:139"},"nodeType":"YulFunctionCall","src":"18701:21:139"},"nodeType":"YulExpressionStatement","src":"18701:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18742:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18753:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18738:3:139"},"nodeType":"YulFunctionCall","src":"18738:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18758:2:139","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18731:6:139"},"nodeType":"YulFunctionCall","src":"18731:30:139"},"nodeType":"YulExpressionStatement","src":"18731:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18781:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18792:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18777:3:139"},"nodeType":"YulFunctionCall","src":"18777:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18797:34:139","type":"","value":"TimelockController: operation ca"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18770:6:139"},"nodeType":"YulFunctionCall","src":"18770:62:139"},"nodeType":"YulExpressionStatement","src":"18770:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18852:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18863:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18848:3:139"},"nodeType":"YulFunctionCall","src":"18848:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18868:19:139","type":"","value":"nnot be cancelled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18841:6:139"},"nodeType":"YulFunctionCall","src":"18841:47:139"},"nodeType":"YulExpressionStatement","src":"18841:47:139"},{"nodeType":"YulAssignment","src":"18897:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18909:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18920:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18905:3:139"},"nodeType":"YulFunctionCall","src":"18905:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18897:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18668:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18682:4:139","type":""}],"src":"18517:413:139"},{"body":{"nodeType":"YulBlock","src":"19109:233:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19126:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19137:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19119:6:139"},"nodeType":"YulFunctionCall","src":"19119:21:139"},"nodeType":"YulExpressionStatement","src":"19119:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19160:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19171:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19156:3:139"},"nodeType":"YulFunctionCall","src":"19156:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19176:2:139","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19149:6:139"},"nodeType":"YulFunctionCall","src":"19149:30:139"},"nodeType":"YulExpressionStatement","src":"19149:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19199:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19210:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19195:3:139"},"nodeType":"YulFunctionCall","src":"19195:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19215:34:139","type":"","value":"TimelockController: caller must "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19188:6:139"},"nodeType":"YulFunctionCall","src":"19188:62:139"},"nodeType":"YulExpressionStatement","src":"19188:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19270:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19281:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19266:3:139"},"nodeType":"YulFunctionCall","src":"19266:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19286:13:139","type":"","value":"be timelock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19259:6:139"},"nodeType":"YulFunctionCall","src":"19259:41:139"},"nodeType":"YulExpressionStatement","src":"19259:41:139"},{"nodeType":"YulAssignment","src":"19309:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19321:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19332:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19317:3:139"},"nodeType":"YulFunctionCall","src":"19317:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19309:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19086:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19100:4:139","type":""}],"src":"18935:407:139"},{"body":{"nodeType":"YulBlock","src":"19521:237:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19538:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19549:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19531:6:139"},"nodeType":"YulFunctionCall","src":"19531:21:139"},"nodeType":"YulExpressionStatement","src":"19531:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19572:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19583:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19568:3:139"},"nodeType":"YulFunctionCall","src":"19568:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19588:2:139","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19561:6:139"},"nodeType":"YulFunctionCall","src":"19561:30:139"},"nodeType":"YulExpressionStatement","src":"19561:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19611:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19622:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19607:3:139"},"nodeType":"YulFunctionCall","src":"19607:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19627:34:139","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19600:6:139"},"nodeType":"YulFunctionCall","src":"19600:62:139"},"nodeType":"YulExpressionStatement","src":"19600:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19682:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19693:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19678:3:139"},"nodeType":"YulFunctionCall","src":"19678:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19698:17:139","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19671:6:139"},"nodeType":"YulFunctionCall","src":"19671:45:139"},"nodeType":"YulExpressionStatement","src":"19671:45:139"},{"nodeType":"YulAssignment","src":"19725:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19737:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19748:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19733:3:139"},"nodeType":"YulFunctionCall","src":"19733:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19725:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19498:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19512:4:139","type":""}],"src":"19347:411:139"},{"body":{"nodeType":"YulBlock","src":"19937:241:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19954:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19965:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19947:6:139"},"nodeType":"YulFunctionCall","src":"19947:21:139"},"nodeType":"YulExpressionStatement","src":"19947:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19988:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19999:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19984:3:139"},"nodeType":"YulFunctionCall","src":"19984:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20004:2:139","type":"","value":"51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19977:6:139"},"nodeType":"YulFunctionCall","src":"19977:30:139"},"nodeType":"YulExpressionStatement","src":"19977:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20027:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20038:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20023:3:139"},"nodeType":"YulFunctionCall","src":"20023:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20043:34:139","type":"","value":"TimelockController: underlying t"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20016:6:139"},"nodeType":"YulFunctionCall","src":"20016:62:139"},"nodeType":"YulExpressionStatement","src":"20016:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20098:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20109:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20094:3:139"},"nodeType":"YulFunctionCall","src":"20094:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20114:21:139","type":"","value":"ransaction reverted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20087:6:139"},"nodeType":"YulFunctionCall","src":"20087:49:139"},"nodeType":"YulExpressionStatement","src":"20087:49:139"},{"nodeType":"YulAssignment","src":"20145:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20157:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20168:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20153:3:139"},"nodeType":"YulFunctionCall","src":"20153:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20145:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19914:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19928:4:139","type":""}],"src":"19763:415:139"},{"body":{"nodeType":"YulBlock","src":"20284:76:139","statements":[{"nodeType":"YulAssignment","src":"20294:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20306:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20317:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20302:3:139"},"nodeType":"YulFunctionCall","src":"20302:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20294:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20336:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"20347:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20329:6:139"},"nodeType":"YulFunctionCall","src":"20329:25:139"},"nodeType":"YulExpressionStatement","src":"20329:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20253:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20264:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20275:4:139","type":""}],"src":"20183:177:139"},{"body":{"nodeType":"YulBlock","src":"20494:119:139","statements":[{"nodeType":"YulAssignment","src":"20504:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20516:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20527:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20512:3:139"},"nodeType":"YulFunctionCall","src":"20512:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20504:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20546:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"20557:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20539:6:139"},"nodeType":"YulFunctionCall","src":"20539:25:139"},"nodeType":"YulExpressionStatement","src":"20539:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20584:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20595:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20580:3:139"},"nodeType":"YulFunctionCall","src":"20580:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"20600:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20573:6:139"},"nodeType":"YulFunctionCall","src":"20573:34:139"},"nodeType":"YulExpressionStatement","src":"20573:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20455:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20466:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20474:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20485:4:139","type":""}],"src":"20365:248:139"},{"body":{"nodeType":"YulBlock","src":"20712:439:139","statements":[{"nodeType":"YulVariableDeclaration","src":"20722:51:139","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"20761:11:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"20748:12:139"},"nodeType":"YulFunctionCall","src":"20748:25:139"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"20726:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"20862:22:139","statements":[{"expression":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"20871:4:139"},{"name":"addr","nodeType":"YulIdentifier","src":"20877:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20864:6:139"},"nodeType":"YulFunctionCall","src":"20864:18:139"},"nodeType":"YulExpressionStatement","src":"20864:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"20796:18:139"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"20824:12:139"},"nodeType":"YulFunctionCall","src":"20824:14:139"},{"name":"base_ref","nodeType":"YulIdentifier","src":"20840:8:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20820:3:139"},"nodeType":"YulFunctionCall","src":"20820:29:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20855:2:139","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20851:3:139"},"nodeType":"YulFunctionCall","src":"20851:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20816:3:139"},"nodeType":"YulFunctionCall","src":"20816:43:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20792:3:139"},"nodeType":"YulFunctionCall","src":"20792:68:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20785:6:139"},"nodeType":"YulFunctionCall","src":"20785:76:139"},"nodeType":"YulIf","src":"20782:2:139"},{"nodeType":"YulVariableDeclaration","src":"20893:47:139","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"20911:8:139"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"20921:18:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20907:3:139"},"nodeType":"YulFunctionCall","src":"20907:33:139"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"20897:6:139","type":""}]},{"nodeType":"YulAssignment","src":"20949:30:139","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"20972:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"20959:12:139"},"nodeType":"YulFunctionCall","src":"20959:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"20949:6:139"}]},{"body":{"nodeType":"YulBlock","src":"21022:22:139","statements":[{"expression":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"21031:4:139"},{"name":"addr","nodeType":"YulIdentifier","src":"21037:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21024:6:139"},"nodeType":"YulFunctionCall","src":"21024:18:139"},"nodeType":"YulExpressionStatement","src":"21024:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20994:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"21002:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20991:2:139"},"nodeType":"YulFunctionCall","src":"20991:30:139"},"nodeType":"YulIf","src":"20988:2:139"},{"nodeType":"YulAssignment","src":"21053:25:139","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"21065:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"21073:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21061:3:139"},"nodeType":"YulFunctionCall","src":"21061:17:139"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"21053:4:139"}]},{"body":{"nodeType":"YulBlock","src":"21129:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21138:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21141:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21131:6:139"},"nodeType":"YulFunctionCall","src":"21131:12:139"},"nodeType":"YulExpressionStatement","src":"21131:12:139"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"21094:4:139"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"21104:12:139"},"nodeType":"YulFunctionCall","src":"21104:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"21120:6:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21100:3:139"},"nodeType":"YulFunctionCall","src":"21100:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"21090:3:139"},"nodeType":"YulFunctionCall","src":"21090:38:139"},"nodeType":"YulIf","src":"21087:2:139"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"20669:8:139","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"20679:11:139","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"20695:4:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"20701:6:139","type":""}],"src":"20618:533:139"},{"body":{"nodeType":"YulBlock","src":"21201:230:139","statements":[{"nodeType":"YulAssignment","src":"21211:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21227:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21221:5:139"},"nodeType":"YulFunctionCall","src":"21221:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21211:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"21239:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21261:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"21277:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"21283:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21273:3:139"},"nodeType":"YulFunctionCall","src":"21273:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21292:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21288:3:139"},"nodeType":"YulFunctionCall","src":"21288:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21269:3:139"},"nodeType":"YulFunctionCall","src":"21269:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21257:3:139"},"nodeType":"YulFunctionCall","src":"21257:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"21243:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"21372:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"21374:16:139"},"nodeType":"YulFunctionCall","src":"21374:18:139"},"nodeType":"YulExpressionStatement","src":"21374:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21315:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"21327:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21312:2:139"},"nodeType":"YulFunctionCall","src":"21312:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21351:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"21363:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21348:2:139"},"nodeType":"YulFunctionCall","src":"21348:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21309:2:139"},"nodeType":"YulFunctionCall","src":"21309:62:139"},"nodeType":"YulIf","src":"21306:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21410:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21414:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21403:6:139"},"nodeType":"YulFunctionCall","src":"21403:22:139"},"nodeType":"YulExpressionStatement","src":"21403:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"21181:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"21190:6:139","type":""}],"src":"21156:275:139"},{"body":{"nodeType":"YulBlock","src":"21484:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"21511:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21513:16:139"},"nodeType":"YulFunctionCall","src":"21513:18:139"},"nodeType":"YulExpressionStatement","src":"21513:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21500:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21507:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21503:3:139"},"nodeType":"YulFunctionCall","src":"21503:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21497:2:139"},"nodeType":"YulFunctionCall","src":"21497:13:139"},"nodeType":"YulIf","src":"21494:2:139"},{"nodeType":"YulAssignment","src":"21542:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21553:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"21556:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21549:3:139"},"nodeType":"YulFunctionCall","src":"21549:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"21542:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21467:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"21470:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"21476:3:139","type":""}],"src":"21436:128:139"},{"body":{"nodeType":"YulBlock","src":"21621:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"21680:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21682:16:139"},"nodeType":"YulFunctionCall","src":"21682:18:139"},"nodeType":"YulExpressionStatement","src":"21682:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21652:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21645:6:139"},"nodeType":"YulFunctionCall","src":"21645:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21638:6:139"},"nodeType":"YulFunctionCall","src":"21638:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21660:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21671:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21667:3:139"},"nodeType":"YulFunctionCall","src":"21667:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"21675:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21663:3:139"},"nodeType":"YulFunctionCall","src":"21663:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21657:2:139"},"nodeType":"YulFunctionCall","src":"21657:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21634:3:139"},"nodeType":"YulFunctionCall","src":"21634:45:139"},"nodeType":"YulIf","src":"21631:2:139"},{"nodeType":"YulAssignment","src":"21711:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21726:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"21729:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21722:3:139"},"nodeType":"YulFunctionCall","src":"21722:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21711:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21600:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"21603:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"21609:7:139","type":""}],"src":"21569:168:139"},{"body":{"nodeType":"YulBlock","src":"21795:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"21805:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"21814:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21809:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"21874:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21899:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"21904:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21895:3:139"},"nodeType":"YulFunctionCall","src":"21895:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21918:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"21923:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21914:3:139"},"nodeType":"YulFunctionCall","src":"21914:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21908:5:139"},"nodeType":"YulFunctionCall","src":"21908:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21888:6:139"},"nodeType":"YulFunctionCall","src":"21888:39:139"},"nodeType":"YulExpressionStatement","src":"21888:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21835:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"21838:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21832:2:139"},"nodeType":"YulFunctionCall","src":"21832:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21846:19:139","statements":[{"nodeType":"YulAssignment","src":"21848:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21857:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"21860:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21853:3:139"},"nodeType":"YulFunctionCall","src":"21853:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21848:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"21828:3:139","statements":[]},"src":"21824:113:139"},{"body":{"nodeType":"YulBlock","src":"21963:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21976:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"21981:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21972:3:139"},"nodeType":"YulFunctionCall","src":"21972:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"21990:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21965:6:139"},"nodeType":"YulFunctionCall","src":"21965:27:139"},"nodeType":"YulExpressionStatement","src":"21965:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21952:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"21955:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21949:2:139"},"nodeType":"YulFunctionCall","src":"21949:13:139"},"nodeType":"YulIf","src":"21946:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"21773:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"21778:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"21783:6:139","type":""}],"src":"21742:258:139"},{"body":{"nodeType":"YulBlock","src":"22052:89:139","statements":[{"body":{"nodeType":"YulBlock","src":"22079:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22081:16:139"},"nodeType":"YulFunctionCall","src":"22081:18:139"},"nodeType":"YulExpressionStatement","src":"22081:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22072:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22065:6:139"},"nodeType":"YulFunctionCall","src":"22065:13:139"},"nodeType":"YulIf","src":"22062:2:139"},{"nodeType":"YulAssignment","src":"22110:25:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22121:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22132:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22128:3:139"},"nodeType":"YulFunctionCall","src":"22128:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22117:3:139"},"nodeType":"YulFunctionCall","src":"22117:18:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"22110:3:139"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22034:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"22044:3:139","type":""}],"src":"22005:136:139"},{"body":{"nodeType":"YulBlock","src":"22193:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"22224:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22226:16:139"},"nodeType":"YulFunctionCall","src":"22226:18:139"},"nodeType":"YulExpressionStatement","src":"22226:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22209:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22220:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22216:3:139"},"nodeType":"YulFunctionCall","src":"22216:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22206:2:139"},"nodeType":"YulFunctionCall","src":"22206:17:139"},"nodeType":"YulIf","src":"22203:2:139"},{"nodeType":"YulAssignment","src":"22255:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22266:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"22273:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22262:3:139"},"nodeType":"YulFunctionCall","src":"22262:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"22255:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22175:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"22185:3:139","type":""}],"src":"22146:135:139"},{"body":{"nodeType":"YulBlock","src":"22318:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22335:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22342:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22347:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22338:3:139"},"nodeType":"YulFunctionCall","src":"22338:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22328:6:139"},"nodeType":"YulFunctionCall","src":"22328:31:139"},"nodeType":"YulExpressionStatement","src":"22328:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22375:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22378:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22368:6:139"},"nodeType":"YulFunctionCall","src":"22368:15:139"},"nodeType":"YulExpressionStatement","src":"22368:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22399:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22402:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22392:6:139"},"nodeType":"YulFunctionCall","src":"22392:15:139"},"nodeType":"YulExpressionStatement","src":"22392:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"22286:127:139"},{"body":{"nodeType":"YulBlock","src":"22450:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22467:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22474:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22479:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22470:3:139"},"nodeType":"YulFunctionCall","src":"22470:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22460:6:139"},"nodeType":"YulFunctionCall","src":"22460:31:139"},"nodeType":"YulExpressionStatement","src":"22460:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22507:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22510:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22500:6:139"},"nodeType":"YulFunctionCall","src":"22500:15:139"},"nodeType":"YulExpressionStatement","src":"22500:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22531:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22534:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22524:6:139"},"nodeType":"YulFunctionCall","src":"22524:15:139"},"nodeType":"YulExpressionStatement","src":"22524:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"22418:127:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let _3 := shl(5, _1)\n        let dst := allocate_memory(add(_3, _2))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, _3), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), array)\n        array := array_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value5, value5) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value5, value5) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(value6, value6) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value6, value6) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n        value6 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value6, value6) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value6, value6) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value6, value6) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value6, value6) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(value6, value6) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value6, value6) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value6, value6) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value6, value6) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n        value8 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_array_bytes_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := value\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            let rel_offset_of_tail := calldataload(srcPtr)\n            if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(end, end) }\n            let value_1 := add(rel_offset_of_tail, value)\n            let length_1 := calldataload(value_1)\n            if gt(length_1, 0xffffffffffffffff) { revert(end, end) }\n            if sgt(value, sub(calldatasize(), length_1)) { revert(end, end) }\n            tail := abi_encode_bytes_calldata(add(value_1, _1), length_1, tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), end)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, end)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 160)\n        mstore(headStart, 160)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 192)\n        let srcPtr := value0\n        let i := tail\n        for { } lt(i, value1) { i := add(i, 1) }\n        {\n            mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n            let _1 := 0x20\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        mstore(pos, value3)\n        if gt(value3, sub(shl(251, 1), 1)) { revert(tail, tail) }\n        let length := shl(5, value3)\n        calldatacopy(add(pos, 0x20), value2, length)\n        let _2 := add(pos, length)\n        let _3 := add(_2, 0x20)\n        mstore(_3, tail)\n        mstore(add(headStart, 64), add(sub(_2, headStart), 0x20))\n        tail := abi_encode_array_bytes_calldata_dyn_calldata(value4, value5, _3)\n        mstore(add(headStart, 96), value6)\n        mstore(add(headStart, 128), value7)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: missing depe\")\n        mstore(add(headStart, 96), \"ndency\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"TimelockController: length misma\")\n        mstore(add(headStart, 96), \"tch\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: insufficient\")\n        mstore(add(headStart, 96), \" delay\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"TimelockController: operation al\")\n        mstore(add(headStart, 96), \"ready scheduled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"TimelockController: operation is\")\n        mstore(add(headStart, 96), \" not ready\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"TimelockController: operation ca\")\n        mstore(add(headStart, 96), \"nnot be cancelled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"TimelockController: caller must \")\n        mstore(add(headStart, 96), \"be timelock\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"TimelockController: underlying t\")\n        mstore(add(headStart, 96), \"ransaction reverted\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(addr, addr) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(addr, addr) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061017b5760003560e01c80638065657f116100cc578063bc197c811161007a578063bc197c81146104a5578063c4d252f5146104d1578063d45c4435146104f1578063d547741f1461051e578063e38335e51461053e578063f23a6e6114610551578063f27a0c921461057d57600080fd5b80638065657f146103ba5780638f2a0bb0146103da5780638f61f4f5146103fa57806391d148541461041c578063a217fddf1461043c578063b08e51c014610451578063b1c5f4271461048557600080fd5b8063248a9ca311610129578063248a9ca3146102b95780632ab0f529146102e95780632f2ff15d1461031a57806331d507501461033a57806336568abe1461035a578063584b153e1461037a57806364d623531461039a57600080fd5b806301d5062a1461018757806301ffc9a7146101a957806307bd0265146101de5780630d3cf6fc1461020e578063134008d31461024257806313bc9f2014610255578063150b7a021461027557600080fd5b3661018257005b600080fd5b34801561019357600080fd5b506101a76101a23660046116c2565b610592565b005b3480156101b557600080fd5b506101c96101c43660046118c8565b610615565b60405190151581526020015b60405180910390f35b3480156101ea57600080fd5b50610200600080516020611d5283398151915281565b6040519081526020016101d5565b34801561021a57600080fd5b506102007f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101a7610250366004611659565b610640565b34801561026157600080fd5b506101c9610270366004611885565b6106e3565b34801561028157600080fd5b506102a0610290366004611592565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101d5565b3480156102c557600080fd5b506102006102d4366004611885565b60009081526020819052604090206001015490565b3480156102f557600080fd5b506101c9610304366004611885565b6000908152600160208190526040909120541490565b34801561032657600080fd5b506101a761033536600461189d565b610709565b34801561034657600080fd5b506101c9610355366004611885565b610733565b34801561036657600080fd5b506101a761037536600461189d565b61074c565b34801561038657600080fd5b506101c9610395366004611885565b6107cf565b3480156103a657600080fd5b506101a76103b5366004611885565b6107e5565b3480156103c657600080fd5b506102006103d5366004611659565b610889565b3480156103e657600080fd5b506101a76103f53660046117d8565b6108c8565b34801561040657600080fd5b50610200600080516020611d3283398151915281565b34801561042857600080fd5b506101c961043736600461189d565b610a32565b34801561044857600080fd5b50610200600081565b34801561045d57600080fd5b506102007ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b34801561049157600080fd5b506102006104a0366004611734565b610a5b565b3480156104b157600080fd5b506102a06104c03660046114ed565b63bc197c8160e01b95945050505050565b3480156104dd57600080fd5b506101a76104ec366004611885565b610aa0565b3480156104fd57600080fd5b5061020061050c366004611885565b60009081526001602052604090205490565b34801561052a57600080fd5b506101a761053936600461189d565b610b75565b6101a761054c366004611734565b610b9a565b34801561055d57600080fd5b506102a061056c3660046115f7565b63f23a6e6160e01b95945050505050565b34801561058957600080fd5b50600254610200565b600080516020611d328339815191526105aa81610d3c565b60006105ba898989898989610889565b90506105c68184610d49565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161060296959493929190611a56565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b148061063a575061063a82610e38565b92915050565b600080516020611d5283398151915261065a816000610a32565b610668576106688133610e6d565b6000610678888888888888610889565b90506106848185610ed1565b61069088888888610f6d565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516106c89493929190611a24565b60405180910390a36106d981611040565b5050505050505050565b6000818152600160205260408120546001811180156107025750428111155b9392505050565b60008281526020819052604090206001015461072481610d3c565b61072e8383611079565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146107c15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107cb82826110fd565b5050565b6000818152600160208190526040822054610745565b3330146108485760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016107b8565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b60008686868686866040516020016108a696959493929190611a56565b6040516020818303038152906040528051906020012090509695505050505050565b600080516020611d328339815191526108e081610d3c565b8887146108ff5760405162461bcd60e51b81526004016107b890611b6b565b88851461091e5760405162461bcd60e51b81526004016107b890611b6b565b60006109308b8b8b8b8b8b8b8b610a5b565b905061093c8184610d49565b60005b8a811015610a245780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061098a57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061099f91906114d3565b8d8d868181106109bf57634e487b7160e01b600052603260045260246000fd5b905060200201358c8c878181106109e657634e487b7160e01b600052603260045260246000fd5b90506020028101906109f89190611bf8565b8c8b604051610a0c96959493929190611a56565b60405180910390a3610a1d81611cea565b905061093f565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610a7c989796959493929190611a93565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610aca81610d3c565b610ad3826107cf565b610b395760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016107b8565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610b9081610d3c565b61072e83836110fd565b600080516020611d52833981519152610bb4816000610a32565b610bc257610bc28133610e6d565b878614610be15760405162461bcd60e51b81526004016107b890611b6b565b878414610c005760405162461bcd60e51b81526004016107b890611b6b565b6000610c128a8a8a8a8a8a8a8a610a5b565b9050610c1e8185610ed1565b60005b89811015610d265760008b8b83818110610c4b57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610c6091906114d3565b905060008a8a84818110610c8457634e487b7160e01b600052603260045260246000fd5b9050602002013590503660008a8a86818110610cb057634e487b7160e01b600052603260045260246000fd5b9050602002810190610cc29190611bf8565b91509150610cd284848484610f6d565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610d099493929190611a24565b60405180910390a35050505080610d1f90611cea565b9050610c21565b50610d3081611040565b50505050505050505050565b610d468133610e6d565b50565b610d5282610733565b15610db75760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016107b8565b600254811015610e185760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016107b8565b610e228142611c6c565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061063a57506301ffc9a760e01b6001600160e01b031983161461063a565b610e778282610a32565b6107cb57610e8f816001600160a01b03166014611162565b610e9a836020611162565b604051602001610eab9291906119b5565b60408051601f198184030181529082905262461bcd60e51b82526107b891600401611b38565b610eda826106e3565b610ef65760405162461bcd60e51b81526004016107b890611bae565b801580610f125750600081815260016020819052604090912054145b6107cb5760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016107b8565b6000846001600160a01b0316848484604051610f8a9291906119a5565b60006040518083038185875af1925050503d8060008114610fc7576040519150601f19603f3d011682016040523d82523d6000602084013e610fcc565b606091505b50509050806110395760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016107b8565b5050505050565b611049816106e3565b6110655760405162461bcd60e51b81526004016107b890611bae565b600090815260016020819052604090912055565b6110838282610a32565b6107cb576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556110b93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111078282610a32565b156107cb576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606000611171836002611c84565b61117c906002611c6c565b6001600160401b038111156111a157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111cb576020820181803683370190505b509050600360fc1b816000815181106111f457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061123157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611255846002611c84565b611260906001611c6c565b90505b60018111156112f4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106112a257634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106112c657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936112ed81611cd3565b9050611263565b5083156107025760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107b8565b80356001600160a01b038116811461135a57600080fd5b919050565b60008083601f840112611370578182fd5b5081356001600160401b03811115611386578182fd5b6020830191508360208260051b85010111156113a157600080fd5b9250929050565b600082601f8301126113b8578081fd5b813560206001600160401b038211156113d3576113d3611d1b565b8160051b6113e2828201611c3c565b8381528281019086840183880185018910156113fc578687fd5b8693505b8584101561141e578035835260019390930192918401918401611400565b50979650505050505050565b60008083601f84011261143b578182fd5b5081356001600160401b03811115611451578182fd5b6020830191508360208285010111156113a157600080fd5b600082601f830112611479578081fd5b81356001600160401b0381111561149257611492611d1b565b6114a5601f8201601f1916602001611c3c565b8181528460208386010111156114b9578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156114e4578081fd5b61070282611343565b600080600080600060a08688031215611504578081fd5b61150d86611343565b945061151b60208701611343565b935060408601356001600160401b0380821115611536578283fd5b61154289838a016113a8565b94506060880135915080821115611557578283fd5b61156389838a016113a8565b93506080880135915080821115611578578283fd5b5061158588828901611469565b9150509295509295909350565b600080600080608085870312156115a7578384fd5b6115b085611343565b93506115be60208601611343565b92506040850135915060608501356001600160401b038111156115df578182fd5b6115eb87828801611469565b91505092959194509250565b600080600080600060a0868803121561160e578081fd5b61161786611343565b945061162560208701611343565b9350604086013592506060860135915060808601356001600160401b0381111561164d578182fd5b61158588828901611469565b60008060008060008060a08789031215611671578081fd5b61167a87611343565b95506020870135945060408701356001600160401b0381111561169b578182fd5b6116a789828a0161142a565b979a9699509760608101359660809091013595509350505050565b600080600080600080600060c0888a0312156116dc578081fd5b6116e588611343565b96506020880135955060408801356001600160401b03811115611706578182fd5b6117128a828b0161142a565b989b979a50986060810135976080820135975060a09091013595509350505050565b60008060008060008060008060a0898b03121561174f578182fd5b88356001600160401b0380821115611765578384fd5b6117718c838d0161135f565b909a50985060208b0135915080821115611789578384fd5b6117958c838d0161135f565b909850965060408b01359150808211156117ad578384fd5b506117ba8b828c0161135f565b999c989b509699959896976060870135966080013595509350505050565b600080600080600080600080600060c08a8c0312156117f5578283fd5b89356001600160401b038082111561180b578485fd5b6118178d838e0161135f565b909b50995060208c013591508082111561182f578485fd5b61183b8d838e0161135f565b909950975060408c0135915080821115611853578485fd5b506118608c828d0161135f565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b600060208284031215611896578081fd5b5035919050565b600080604083850312156118af578182fd5b823591506118bf60208401611343565b90509250929050565b6000602082840312156118d9578081fd5b81356001600160e01b031981168114610702578182fd5b81835260006020808501808196508560051b8101915084845b8781101561196f5782840389528135601e19883603018112611929578687fd5b870180356001600160401b03811115611940578788fd5b80360389131561194e578788fd5b61195b868289850161197c565b9a87019a9550505090840190600101611909565b5091979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8183823760009101908152919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516119e7816017850160208801611ca3565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611a18816028840160208801611ca3565b01602801949350505050565b60018060a01b0385168152836020820152606060408201526000611a4c60608301848661197c565b9695505050505050565b60018060a01b038716815285602082015260a060408201526000611a7e60a08301868861197c565b60608301949094525060800152949350505050565b60a0808252810188905260008960c08301825b8b811015611ad4576001600160a01b03611abf84611343565b16825260209283019290910190600101611aa6565b5083810360208501528881526001600160fb1b03891115611af3578283fd5b8860051b9150818a60208301370160208181018381528483039091016040850152611b1f81888a6118f0565b6060850196909652505050608001529695505050505050565b6020815260008251806020840152611b57816040850160208701611ca3565b601f01601f19169190910160400192915050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b6000808335601e19843603018112611c0e578283fd5b8301803591506001600160401b03821115611c27578283fd5b6020019150368190038213156113a157600080fd5b604051601f8201601f191681016001600160401b0381118282101715611c6457611c64611d1b565b604052919050565b60008219821115611c7f57611c7f611d05565b500190565b6000816000190483118215151615611c9e57611c9e611d05565b500290565b60005b83811015611cbe578181015183820152602001611ca6565b83811115611ccd576000848401525b50505050565b600081611ce257611ce2611d05565b506000190190565b6000600019821415611cfe57611cfe611d05565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfeb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63a26469706673582212206d90885db2d8c4371aa3f8652a8d8022413dd3c8e5e5005e5ad480fc4bdfa7c864736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x17B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8065657F GT PUSH2 0xCC JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x4D1 JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x57D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8065657F EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x3FA JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x129 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2B9 JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x242 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x182 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x1A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x16C2 JUMP JUMPDEST PUSH2 0x592 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x18C8 JUMP JUMPDEST PUSH2 0x615 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1A7 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x1659 JUMP JUMPDEST PUSH2 0x640 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x1592 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x2D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0x709 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x355 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x733 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x375 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0x74C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x395 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0x7E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1659 JUMP JUMPDEST PUSH2 0x889 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x17D8 JUMP JUMPDEST PUSH2 0x8C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D32 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x437 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xA32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0xA5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x14ED JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x4EC CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0x50C CALLDATASIZE PUSH1 0x4 PUSH2 0x1885 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x539 CALLDATASIZE PUSH1 0x4 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xB75 JUMP JUMPDEST PUSH2 0x1A7 PUSH2 0x54C CALLDATASIZE PUSH1 0x4 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0xB9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x56C CALLDATASIZE PUSH1 0x4 PUSH2 0x15F7 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x200 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D32 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x5AA DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BA DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH2 0x5C6 DUP2 DUP5 PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x602 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x63A JUMPI POP PUSH2 0x63A DUP3 PUSH2 0xE38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x65A DUP2 PUSH1 0x0 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x668 JUMPI PUSH2 0x668 DUP2 CALLER PUSH2 0xE6D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x678 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH2 0x684 DUP2 DUP6 PUSH2 0xED1 JUMP JUMPDEST PUSH2 0x690 DUP9 DUP9 DUP9 DUP9 PUSH2 0xF6D JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x6C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x6D9 DUP2 PUSH2 0x1040 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x702 JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x724 DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x72E DUP4 DUP4 PUSH2 0x1079 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x7C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7CB DUP3 DUP3 PUSH2 0x10FD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD PUSH2 0x745 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x848 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A6 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A56 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 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D32 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8E0 DUP2 PUSH2 0xD3C JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x8FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x91E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x930 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xA5B JUMP JUMPDEST SWAP1 POP PUSH2 0x93C DUP2 DUP5 PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA24 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0x98A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x14D3 JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0x9BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0x9E6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x9F8 SWAP2 SWAP1 PUSH2 0x1BF8 JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA0C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA1D DUP2 PUSH2 0x1CEA JUMP JUMPDEST SWAP1 POP PUSH2 0x93F JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA7C SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A93 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 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xACA DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0xAD3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xB90 DUP2 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x72E DUP4 DUP4 PUSH2 0x10FD JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBB4 DUP2 PUSH1 0x0 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0xBC2 JUMPI PUSH2 0xBC2 DUP2 CALLER PUSH2 0xE6D JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xBE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xA5B JUMP JUMPDEST SWAP1 POP PUSH2 0xC1E DUP2 DUP6 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xC4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC60 SWAP2 SWAP1 PUSH2 0x14D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xC84 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xCB0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xCC2 SWAP2 SWAP1 PUSH2 0x1BF8 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xCD2 DUP5 DUP5 DUP5 DUP5 PUSH2 0xF6D JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xD09 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xD1F SWAP1 PUSH2 0x1CEA JUMP JUMPDEST SWAP1 POP PUSH2 0xC21 JUMP JUMPDEST POP PUSH2 0xD30 DUP2 PUSH2 0x1040 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD46 DUP2 CALLER PUSH2 0xE6D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD52 DUP3 PUSH2 0x733 JUMP JUMPDEST ISZERO PUSH2 0xDB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xE18 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH2 0xE22 DUP2 TIMESTAMP PUSH2 0x1C6C JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x63A JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x63A JUMP JUMPDEST PUSH2 0xE77 DUP3 DUP3 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x7CB JUMPI PUSH2 0xE8F DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x1162 JUMP JUMPDEST PUSH2 0xE9A DUP4 PUSH1 0x20 PUSH2 0x1162 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEAB SWAP3 SWAP2 SWAP1 PUSH2 0x19B5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x7B8 SWAP2 PUSH1 0x4 ADD PUSH2 0x1B38 JUMP JUMPDEST PUSH2 0xEDA DUP3 PUSH2 0x6E3 JUMP JUMPDEST PUSH2 0xEF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1BAE JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0xF12 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ JUMPDEST PUSH2 0x7CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xF8A SWAP3 SWAP2 SWAP1 PUSH2 0x19A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1049 DUP2 PUSH2 0x6E3 JUMP JUMPDEST PUSH2 0x1065 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B8 SWAP1 PUSH2 0x1BAE JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x1083 DUP3 DUP3 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x7CB JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x10B9 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x1107 DUP3 DUP3 PUSH2 0xA32 JUMP JUMPDEST ISZERO PUSH2 0x7CB JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1171 DUP4 PUSH1 0x2 PUSH2 0x1C84 JUMP JUMPDEST PUSH2 0x117C SWAP1 PUSH1 0x2 PUSH2 0x1C6C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x11A1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11CB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11F4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1231 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x1255 DUP5 PUSH1 0x2 PUSH2 0x1C84 JUMP JUMPDEST PUSH2 0x1260 SWAP1 PUSH1 0x1 PUSH2 0x1C6C JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x12F4 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x12A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12C6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x12ED DUP2 PUSH2 0x1CD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1263 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B8 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x135A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1370 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1386 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13B8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D3 PUSH2 0x1D1B JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x13E2 DUP3 DUP3 ADD PUSH2 0x1C3C JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 DUP2 ADD SWAP1 DUP7 DUP5 ADD DUP4 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x13FC JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP4 POP JUMPDEST DUP6 DUP5 LT ISZERO PUSH2 0x141E JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 DUP5 ADD PUSH2 0x1400 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x143B JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1451 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1479 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1492 JUMPI PUSH2 0x1492 PUSH2 0x1D1B JUMP JUMPDEST PUSH2 0x14A5 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1C3C JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x14B9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14E4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x702 DUP3 PUSH2 0x1343 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1504 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x150D DUP7 PUSH2 0x1343 JUMP JUMPDEST SWAP5 POP PUSH2 0x151B PUSH1 0x20 DUP8 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1536 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1542 DUP10 DUP4 DUP11 ADD PUSH2 0x13A8 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1557 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1563 DUP10 DUP4 DUP11 ADD PUSH2 0x13A8 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1578 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x1585 DUP9 DUP3 DUP10 ADD PUSH2 0x1469 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15A7 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x15B0 DUP6 PUSH2 0x1343 JUMP JUMPDEST SWAP4 POP PUSH2 0x15BE PUSH1 0x20 DUP7 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15DF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x15EB DUP8 DUP3 DUP9 ADD PUSH2 0x1469 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x160E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1617 DUP7 PUSH2 0x1343 JUMP JUMPDEST SWAP5 POP PUSH2 0x1625 PUSH1 0x20 DUP8 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x164D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1585 DUP9 DUP3 DUP10 ADD PUSH2 0x1469 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1671 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x167A DUP8 PUSH2 0x1343 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x169B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x16A7 DUP10 DUP3 DUP11 ADD PUSH2 0x142A JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x16DC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x16E5 DUP9 PUSH2 0x1343 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1706 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1712 DUP11 DUP3 DUP12 ADD PUSH2 0x142A JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x174F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1765 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1771 DUP13 DUP4 DUP14 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1789 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1795 DUP13 DUP4 DUP14 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x17AD JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x17BA DUP12 DUP3 DUP13 ADD PUSH2 0x135F JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x17F5 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x180B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1817 DUP14 DUP4 DUP15 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x182F JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x183B DUP14 DUP4 DUP15 ADD PUSH2 0x135F JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1853 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1860 DUP13 DUP3 DUP14 ADD PUSH2 0x135F JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1896 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18AF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x18BF PUSH1 0x20 DUP5 ADD PUSH2 0x1343 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x702 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 DUP5 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x196F JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1929 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP8 ADD DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1940 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP10 SGT ISZERO PUSH2 0x194E JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x195B DUP7 DUP3 DUP10 DUP6 ADD PUSH2 0x197C JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1909 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x19E7 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1CA3 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1A18 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1CA3 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1A4C PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x197C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1A7E PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1AD4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1ABF DUP5 PUSH2 0x1343 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1AA6 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1AF3 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD PUSH1 0x20 DUP2 DUP2 ADD DUP4 DUP2 MSTORE DUP5 DUP4 SUB SWAP1 SWAP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1B1F DUP2 DUP9 DUP11 PUSH2 0x18F0 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1B57 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1CA3 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1C0E JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1C27 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1C64 JUMPI PUSH2 0x1C64 PUSH2 0x1D1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1C7F JUMPI PUSH2 0x1C7F PUSH2 0x1D05 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1C9E JUMPI PUSH2 0x1C9E PUSH2 0x1D05 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1CBE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1CA6 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1CCD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1CE2 JUMPI PUSH2 0x1CE2 PUSH2 0x1D05 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1CFE JUMPI PUSH2 0x1CFE PUSH2 0x1D05 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0xB0 SWAP11 0xA5 0xAE 0xB3 PUSH17 0x2CFD50B6B62BC4532604938F21248A27A1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xA2646970 PUSH7 0x73582212206D90 DUP9 0x5D 0xB2 0xD8 0xC4 CALLDATACOPY BYTE LOG3 0xF8 PUSH6 0x2A8D8022413D 0xD3 0xC8 0xE5 0xE5 STOP 0x5E GAS 0xD4 DUP1 0xFC 0x4B 0xDF 0xA7 0xC8 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"1030:13061:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7418:402;;;;;;;;;;-1:-1:-1;7418:402:7;;;;;:::i;:::-;;:::i;:::-;;4570:228;;;;;;;;;;-1:-1:-1;4570:228:7;;;;;:::i;:::-;;:::i;:::-;;;15307:14:139;;15300:22;15282:41;;15270:2;15255:18;4570:228:7;;;;;;;;1272:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1272:66:7;;;;;15480:25:139;;;15468:2;15453:18;1272:66:7;15435:76:139;1116:78:7;;;;;;;;;;;;1162:32;1116:78;;10016:459;;;;;;:::i;:::-;;:::i;5380:208::-;;;;;;;;;;-1:-1:-1;5380:208:7;;;;;:::i;:::-;;:::i;13266:200::-;;;;;;;;;;-1:-1:-1;13266:200:7;;;;;:::i;:::-;-1:-1:-1;;;13266:200:7;;;;;;;;;;-1:-1:-1;;;;;;15678:33:139;;;15660:52;;15648:2;15633:18;13266:200:7;15615:103:139;4391:129:0;;;;;;;;;;-1:-1:-1;4391:129:0;;;;;:::i;:::-;4465:7;4491:12;;;;;;;;;;:22;;;;4391:129;5667:136:7;;;;;;;;;;-1:-1:-1;5667:136:7;;;;;:::i;:::-;5733:9;6049:15;;;1470:1;6049:15;;;;;;;;;5761:35;;5667:136;4816:145:0;;;;;;;;;;-1:-1:-1;4816:145:0;;;;;:::i;:::-;;:::i;4954:123:7:-;;;;;;;;;;-1:-1:-1;4954:123:7;;;;;:::i;:::-;;:::i;5925:214:0:-;;;;;;;;;;-1:-1:-1;5925:214:0;;;;;:::i;:::-;;:::i;5159:141:7:-;;;;;;;;;;-1:-1:-1;5159:141:7;;;;;:::i;:::-;;:::i;12956:236::-;;;;;;;;;;-1:-1:-1;12956:236:7;;;;;:::i;:::-;;:::i;6473:284::-;;;;;;;;;;-1:-1:-1;6473:284:7;;;;;:::i;:::-;;:::i;8074:713::-;;;;;;;;;;-1:-1:-1;8074:713:7;;;;;:::i;:::-;;:::i;1200:66::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1200:66:7;;2895:145:0;;;;;;;;;;-1:-1:-1;2895:145:0;;;;;:::i;:::-;;:::i;2027:49::-;;;;;;;;;;-1:-1:-1;2027:49:0;2072:4;2027:49;;1344:68:7;;;;;;;;;;;;1385:27;1344:68;;6873:325;;;;;;;;;;-1:-1:-1;6873:325:7;;;;;:::i;:::-;;:::i;13842:247::-;;;;;;;;;;-1:-1:-1;13842:247:7;;;;;:::i;:::-;-1:-1:-1;;;13842:247:7;;;;;;;;9312:230;;;;;;;;;;-1:-1:-1;9312:230:7;;;;;:::i;:::-;;:::i;5950:121::-;;;;;;;;;;-1:-1:-1;5950:121:7;;;;;:::i;:::-;6013:17;6049:15;;;:11;:15;;;;;;;5950:121;5241:147:0;;;;;;;;;;-1:-1:-1;5241:147:0;;;;;:::i;:::-;;:::i;10735:883:7:-;;;;;;:::i;:::-;;:::i;13542:219::-;;;;;;;;;;-1:-1:-1;13542:219:7;;;;;:::i;:::-;-1:-1:-1;;;13542:219:7;;;;;;;;6257:103;;;;;;;;;;-1:-1:-1;6344:9:7;;6257:103;;7418:402;-1:-1:-1;;;;;;;;;;;2505:16:0;2516:4;2505:10;:16::i;:::-;7641:10:7::1;7654:53;7668:6;7676:5;7683:4;;7689:11;7702:4;7654:13;:53::i;:::-;7641:66;;7717:20;7727:2;7731:5;7717:9;:20::i;:::-;7770:1;7766:2;7752:61;7773:6;7781:5;7788:4;;7794:11;7807:5;7752:61;;;;;;;;;;;:::i;:::-;;;;;;;;2531:1:0;7418:402:7::0;;;;;;;;:::o;4570:228::-;4679:4;-1:-1:-1;;;;;;4702:49:7;;-1:-1:-1;;;4702:49:7;;:89;;;4755:36;4779:11;4755:23;:36::i;:::-;4695:96;4570:228;-1:-1:-1;;4570:228:7:o;10016:459::-;-1:-1:-1;;;;;;;;;;;4273:25:7;4281:4;4295:1;4273:7;:25::i;:::-;4268:87;;4314:30;4325:4;719:10:38;4314::7;:30::i;:::-;10236:10:::1;10249:56;10263:6;10271:5;10278:7;;10287:11;10300:4;10249:13;:56::i;:::-;10236:69;;10316:28;10328:2;10332:11;10316;:28::i;:::-;10354:32;10363:6;10371:5;10378:7;;10354:8;:32::i;:::-;10418:1;10414:2;10401:43;10421:6;10429:5;10436:7;;10401:43;;;;;;;;;:::i;:::-;;;;;;;;10454:14;10465:2;10454:10;:14::i;:::-;4364:1;10016:459:::0;;;;;;;:::o;5380:208::-;5447:10;6049:15;;;:11;:15;;;;;;1470:1;5522:9;:27;:59;;;;;5566:15;5553:9;:28;;5522:59;5515:66;5380:208;-1:-1:-1;;;5380:208:7:o;4816:145:0:-;4465:7;4491:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;4954:123:7:-;5016:15;6049;;;:11;:15;;;;;;5016;;5050:16;:20;;4954:123;-1:-1:-1;;4954:123:7:o;5925:214:0:-;-1:-1:-1;;;;;6020:23:0;;719:10:38;6020:23:0;6012:83;;;;-1:-1:-1;;;6012:83:0;;19549:2:139;6012:83:0;;;19531:21:139;19588:2;19568:18;;;19561:30;19627:34;19607:18;;;19600:62;-1:-1:-1;;;19678:18:139;;;19671:45;19733:19;;6012:83:0;;;;;;;;;6106:26;6118:4;6124:7;6106:11;:26::i;:::-;5925:214;;:::o;5159:141:7:-;5228:12;6049:15;;;1470:1;6049:15;;;;;;;;5259:16;5950:121;12956:236;13030:10;13052:4;13030:27;13022:83;;;;-1:-1:-1;;;13022:83:7;;19137:2:139;13022:83:7;;;19119:21:139;19176:2;19156:18;;;19149:30;19215:34;19195:18;;;19188:62;-1:-1:-1;;;19266:18:139;;;19259:41;19317:19;;13022:83:7;19109:233:139;13022:83:7;13135:9;;13120:35;;;20539:25:139;;;20595:2;20580:18;;20573:34;;;13120:35:7;;20512:18:139;13120:35:7;;;;;;;13165:9;:20;12956:236::o;6473:284::-;6658:12;6710:6;6718:5;6725:4;;6731:11;6744:4;6699:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6689:61;;;;;;6682:68;;6473:284;;;;;;;;:::o;8074:713::-;-1:-1:-1;;;;;;;;;;;2505:16:0;2516:4;2505:10;:16::i;:::-;8340:31:7;;::::1;8332:79;;;;-1:-1:-1::0;;;8332:79:7::1;;;;;;;:::i;:::-;8429:33:::0;;::::1;8421:81;;;;-1:-1:-1::0;;;8421:81:7::1;;;;;;;:::i;:::-;8513:10;8526:64;8545:7;;8554:6;;8562:8;;8572:11;8585:4;8526:18;:64::i;:::-;8513:77;;8600:20;8610:2;8614:5;8600:9;:20::i;:::-;8635:9;8630:151;8650:18:::0;;::::1;8630:151;;;8712:1;8708:2;8694:76;8715:7;;8723:1;8715:10;;;;;-1:-1:-1::0;;;8715:10:7::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8727:6;;8734:1;8727:9;;;;;-1:-1:-1::0;;;8727:9:7::1;;;;;;;;;;;;;;;8738:8;;8747:1;8738:11;;;;;-1:-1:-1::0;;;8738:11:7::1;;;;;;;;;;;;;;;;;;;;:::i;:::-;8751;8764:5;8694:76;;;;;;;;;;;:::i;:::-;;;;;;;;8670:3;::::0;::::1;:::i;:::-;;;8630:151;;;;2531:1:0;8074:713:7::0;;;;;;;;;;:::o;2895:145:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145::o;6873:325:7:-;7093:12;7145:7;;7154:6;;7162:8;;7172:11;7185:4;7134:56;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7124:67;;;;;;7117:74;;6873:325;;;;;;;;;;:::o;9312:230::-;1385:27;2505:16:0;2516:4;2505:10;:16::i;:::-;9398:22:7::1;9417:2;9398:18;:22::i;:::-;9390:84;;;::::0;-1:-1:-1;;;9390:84:7;;18719:2:139;9390:84:7::1;::::0;::::1;18701:21:139::0;18758:2;18738:18;;;18731:30;18797:34;18777:18;;;18770:62;-1:-1:-1;;;18848:18:139;;;18841:47;18905:19;;9390:84:7::1;18691:239:139::0;9390:84:7::1;9491:15;::::0;;;:11:::1;:15;::::0;;;;;9484:22;;;9522:13;9503:2;;9522:13:::1;::::0;::::1;9312:230:::0;;:::o;5241:147:0:-;4465:7;4491:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;10735:883:7:-:0;-1:-1:-1;;;;;;;;;;;4273:25:7;4281:4;4295:1;4273:7;:25::i;:::-;4268:87;;4314:30;4325:4;719:10:38;4314::7;:30::i;:::-;10995:31;;::::1;10987:79;;;;-1:-1:-1::0;;;10987:79:7::1;;;;;;;:::i;:::-;11084:33:::0;;::::1;11076:81;;;;-1:-1:-1::0;;;11076:81:7::1;;;;;;;:::i;:::-;11168:10;11181:64;11200:7;;11209:6;;11217:8;;11227:11;11240:4;11181:18;:64::i;:::-;11168:77;;11256:28;11268:2;11272:11;11256;:28::i;:::-;11299:9;11294:294;11314:18:::0;;::::1;11294:294;;;11353:14;11370:7;;11378:1;11370:10;;;;;-1:-1:-1::0;;;11370:10:7::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11353:27;;11394:13;11410:6;;11417:1;11410:9;;;;;-1:-1:-1::0;;;11410:9:7::1;;;;;;;;;;;;;;;11394:25;;11433:22;;11458:8;;11467:1;11458:11;;;;;-1:-1:-1::0;;;11458:11:7::1;;;;;;;;;;;;;;;;;;;;:::i;:::-;11433:36;;;;11483:32;11492:6;11500:5;11507:7;;11483:8;:32::i;:::-;11551:1;11547:2;11534:43;11554:6;11562:5;11569:7;;11534:43;;;;;;;;;:::i;:::-;;;;;;;;11294:294;;;;11334:3;;;;:::i;:::-;;;11294:294;;;;11597:14;11608:2;11597:10;:14::i;:::-;4364:1;10735:883:::0;;;;;;;;;:::o;3334:103:0:-;3400:30;3411:4;719:10:38;4314::7;:30::i;3400::0:-;3334:103;:::o;8889:281:7:-;8962:15;8974:2;8962:11;:15::i;:::-;8961:16;8953:76;;;;-1:-1:-1;;;8953:76:7;;17892:2:139;8953:76:7;;;17874:21:139;17931:2;17911:18;;;17904:30;17970:34;17950:18;;;17943:62;-1:-1:-1;;;18021:18:139;;;18014:45;18076:19;;8953:76:7;17864:237:139;8953:76:7;6344:9;;9047:5;:22;;9039:73;;;;-1:-1:-1;;;9039:73:7;;17485:2:139;9039:73:7;;;17467:21:139;17524:2;17504:18;;;17497:30;17563:34;17543:18;;;17536:62;-1:-1:-1;;;17614:18:139;;;17607:36;17660:19;;9039:73:7;17457:228:139;9039:73:7;9140:23;9158:5;9140:15;:23;:::i;:::-;9122:15;;;;:11;:15;;;;;;:41;;;;-1:-1:-1;8889:281:7:o;2606:202:0:-;2691:4;-1:-1:-1;;;;;;2714:47:0;;-1:-1:-1;;;2714:47:0;;:87;;-1:-1:-1;;;;;;;;;;937:40:45;;;2765:36:0;829:155:45;3718:492:0;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:0;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:0;;;;;;;;;;-1:-1:-1;;;3844:349:0;;;;;;;:::i;12029:277:7:-;12114:20;12131:2;12114:16;:20::i;:::-;12106:75;;;;-1:-1:-1;;;12106:75:7;;;;;;;:::i;:::-;12199:25;;;:57;;-1:-1:-1;5733:9:7;6049:15;;;1470:1;6049:15;;;;;;;;;5761:35;12228:28;12191:108;;;;-1:-1:-1;;;12191:108:7;;16674:2:139;12191:108:7;;;16656:21:139;16713:2;16693:18;;;16686:30;16752:34;16732:18;;;16725:62;-1:-1:-1;;;16803:18:139;;;16796:36;16849:19;;12191:108:7;16646:228:139;11681:265:7;11809:12;11827:6;-1:-1:-1;;;;;11827:11:7;11846:5;11853:4;;11827:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11808:50;;;11876:7;11868:71;;;;-1:-1:-1;;;11868:71:7;;19965:2:139;11868:71:7;;;19947:21:139;20004:2;19984:18;;;19977:30;20043:34;20023:18;;;20016:62;-1:-1:-1;;;20094:18:139;;;20087:49;20153:19;;11868:71:7;19937:241:139;11868:71:7;11681:265;;;;;:::o;12388:175::-;12446:20;12463:2;12446:16;:20::i;:::-;12438:75;;;;-1:-1:-1;;;12438:75:7;;;;;;;:::i;:::-;12523:15;;;;1470:1;12523:15;;;;;;;;:33;12388:175::o;7474:233:0:-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;7627:4;7595:36;;;7677:12;719:10:38;;640:96;7677:12:0;-1:-1:-1;;;;;7650:40:0;7668:7;-1:-1:-1;;;;;7650:40:0;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;7878:234::-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;;;;;;;;;-1:-1:-1;;;;;7999:29:0;;;;;;;;;;:37;;-1:-1:-1;;7999:37:0;;;8055:40;719:10:38;;7999:12:0;;8055:40;;8031:5;8055:40;7878:234;;:::o;1652:441:40:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;-1:-1:-1;;;;;1774:25:40;;;;;-1:-1:-1;;;1774:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:40;;1752:47;;-1:-1:-1;;;1809:6:40;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:40;;;;;;;;;-1:-1:-1;;;1834:6:40;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:40;;;;;;;;-1:-1:-1;1864:9:40;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:40;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:40;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:40;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:40;;;;;;;;-1:-1:-1;1979:1:40;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:40;;2000:55;;;;-1:-1:-1;;;2000:55:40;;16313:2:139;2000:55:40;;;16295:21:139;;;16332:18;;;16325:30;16391:34;16371:18;;;16364:62;16443:18;;2000:55:40;16285:182:139;14:173;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:395::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:2;;344:8;334;327:26;286:2;-1:-1:-1;374:20:139;;-1:-1:-1;;;;;406:30:139;;403:2;;;456:8;446;439:26;403:2;500:4;492:6;488:17;476:29;;560:3;553:4;543:6;540:1;536:14;528:6;524:27;520:38;517:47;514:2;;;577:1;574;567:12;514:2;276:311;;;;;:::o;592:743::-;646:5;699:3;692:4;684:6;680:17;676:27;666:2;;721:5;714;707:20;666:2;761:6;748:20;787:4;-1:-1:-1;;;;;806:2:139;803:26;800:2;;;832:18;;:::i;:::-;878:2;875:1;871:10;901:28;925:2;921;917:11;901:28;:::i;:::-;963:15;;;994:12;;;;1026:15;;;1060;;;1056:24;;1053:33;-1:-1:-1;1050:2:139;;;1103:5;1096;1089:20;1050:2;1129:5;1120:14;;1143:163;1157:2;1154:1;1151:9;1143:163;;;1214:17;;1202:30;;1175:1;1168:9;;;;;1252:12;;;;1284;;1143:163;;;-1:-1:-1;1324:5:139;656:679;-1:-1:-1;;;;;;;656:679:139:o;1340:375::-;1391:8;1401:6;1455:3;1448:4;1440:6;1436:17;1432:27;1422:2;;1480:8;1470;1463:26;1422:2;-1:-1:-1;1510:20:139;;-1:-1:-1;;;;;1542:30:139;;1539:2;;;1592:8;1582;1575:26;1539:2;1636:4;1628:6;1624:17;1612:29;;1688:3;1681:4;1672:6;1664;1660:19;1656:30;1653:39;1650:2;;;1705:1;1702;1695:12;1720:550;1762:5;1815:3;1808:4;1800:6;1796:17;1792:27;1782:2;;1837:5;1830;1823:20;1782:2;1877:6;1864:20;-1:-1:-1;;;;;1899:2:139;1896:26;1893:2;;;1925:18;;:::i;:::-;1969:55;2012:2;1993:13;;-1:-1:-1;;1989:27:139;2018:4;1985:38;1969:55;:::i;:::-;2049:2;2040:7;2033:19;2095:3;2088:4;2083:2;2075:6;2071:15;2067:26;2064:35;2061:2;;;2116:5;2109;2102:20;2061:2;2185;2178:4;2170:6;2166:17;2159:4;2150:7;2146:18;2133:55;2208:16;;;2226:4;2204:27;2197:42;;;;2212:7;1772:498;-1:-1:-1;;1772:498:139:o;2275:196::-;2334:6;2387:2;2375:9;2366:7;2362:23;2358:32;2355:2;;;2408:6;2400;2393:22;2355:2;2436:29;2455:9;2436:29;:::i;2476:983::-;2630:6;2638;2646;2654;2662;2715:3;2703:9;2694:7;2690:23;2686:33;2683:2;;;2737:6;2729;2722:22;2683:2;2765:29;2784:9;2765:29;:::i;:::-;2755:39;;2813:38;2847:2;2836:9;2832:18;2813:38;:::i;:::-;2803:48;;2902:2;2891:9;2887:18;2874:32;-1:-1:-1;;;;;2966:2:139;2958:6;2955:14;2952:2;;;2987:6;2979;2972:22;2952:2;3015:61;3068:7;3059:6;3048:9;3044:22;3015:61;:::i;:::-;3005:71;;3129:2;3118:9;3114:18;3101:32;3085:48;;3158:2;3148:8;3145:16;3142:2;;;3179:6;3171;3164:22;3142:2;3207:63;3262:7;3251:8;3240:9;3236:24;3207:63;:::i;:::-;3197:73;;3323:3;3312:9;3308:19;3295:33;3279:49;;3353:2;3343:8;3340:16;3337:2;;;3374:6;3366;3359:22;3337:2;;3402:51;3445:7;3434:8;3423:9;3419:24;3402:51;:::i;:::-;3392:61;;;2673:786;;;;;;;;:::o;3464:557::-;3559:6;3567;3575;3583;3636:3;3624:9;3615:7;3611:23;3607:33;3604:2;;;3658:6;3650;3643:22;3604:2;3686:29;3705:9;3686:29;:::i;:::-;3676:39;;3734:38;3768:2;3757:9;3753:18;3734:38;:::i;:::-;3724:48;;3819:2;3808:9;3804:18;3791:32;3781:42;;3874:2;3863:9;3859:18;3846:32;-1:-1:-1;;;;;3893:6:139;3890:30;3887:2;;;3938:6;3930;3923:22;3887:2;3966:49;4007:7;3998:6;3987:9;3983:22;3966:49;:::i;:::-;3956:59;;;3594:427;;;;;;;:::o;4026:626::-;4130:6;4138;4146;4154;4162;4215:3;4203:9;4194:7;4190:23;4186:33;4183:2;;;4237:6;4229;4222:22;4183:2;4265:29;4284:9;4265:29;:::i;:::-;4255:39;;4313:38;4347:2;4336:9;4332:18;4313:38;:::i;:::-;4303:48;;4398:2;4387:9;4383:18;4370:32;4360:42;;4449:2;4438:9;4434:18;4421:32;4411:42;;4504:3;4493:9;4489:19;4476:33;-1:-1:-1;;;;;4524:6:139;4521:30;4518:2;;;4569:6;4561;4554:22;4518:2;4597:49;4638:7;4629:6;4618:9;4614:22;4597:49;:::i;4657:709::-;4763:6;4771;4779;4787;4795;4803;4856:3;4844:9;4835:7;4831:23;4827:33;4824:2;;;4878:6;4870;4863:22;4824:2;4906:29;4925:9;4906:29;:::i;:::-;4896:39;;4982:2;4971:9;4967:18;4954:32;4944:42;;5037:2;5026:9;5022:18;5009:32;-1:-1:-1;;;;;5056:6:139;5053:30;5050:2;;;5101:6;5093;5086:22;5050:2;5145:58;5195:7;5186:6;5175:9;5171:22;5145:58;:::i;:::-;4814:552;;;;-1:-1:-1;5222:8:139;5304:2;5289:18;;5276:32;;5355:3;5340:19;;;5327:33;;-1:-1:-1;4814:552:139;-1:-1:-1;;;;4814:552:139:o;5371:778::-;5486:6;5494;5502;5510;5518;5526;5534;5587:3;5575:9;5566:7;5562:23;5558:33;5555:2;;;5609:6;5601;5594:22;5555:2;5637:29;5656:9;5637:29;:::i;:::-;5627:39;;5713:2;5702:9;5698:18;5685:32;5675:42;;5768:2;5757:9;5753:18;5740:32;-1:-1:-1;;;;;5787:6:139;5784:30;5781:2;;;5832:6;5824;5817:22;5781:2;5876:58;5926:7;5917:6;5906:9;5902:22;5876:58;:::i;:::-;5545:604;;;;-1:-1:-1;5953:8:139;6035:2;6020:18;;6007:32;;6086:3;6071:19;;6058:33;;-1:-1:-1;6138:3:139;6123:19;;;6110:33;;-1:-1:-1;5545:604:139;-1:-1:-1;;;;5545:604:139:o;6154:1277::-;6341:6;6349;6357;6365;6373;6381;6389;6397;6450:3;6438:9;6429:7;6425:23;6421:33;6418:2;;;6472:6;6464;6457:22;6418:2;6517:9;6504:23;-1:-1:-1;;;;;6587:2:139;6579:6;6576:14;6573:2;;;6608:6;6600;6593:22;6573:2;6652:70;6714:7;6705:6;6694:9;6690:22;6652:70;:::i;:::-;6741:8;;-1:-1:-1;6626:96:139;-1:-1:-1;6829:2:139;6814:18;;6801:32;;-1:-1:-1;6845:16:139;;;6842:2;;;6879:6;6871;6864:22;6842:2;6923:72;6987:7;6976:8;6965:9;6961:24;6923:72;:::i;:::-;7014:8;;-1:-1:-1;6897:98:139;-1:-1:-1;7102:2:139;7087:18;;7074:32;;-1:-1:-1;7118:16:139;;;7115:2;;;7152:6;7144;7137:22;7115:2;;7196:72;7260:7;7249:8;7238:9;7234:24;7196:72;:::i;:::-;6408:1023;;;;-1:-1:-1;6408:1023:139;;;;7287:8;;7369:2;7354:18;;7341:32;;7420:3;7405:19;7392:33;;-1:-1:-1;6408:1023:139;-1:-1:-1;;;;6408:1023:139:o;7436:1346::-;7632:6;7640;7648;7656;7664;7672;7680;7688;7696;7749:3;7737:9;7728:7;7724:23;7720:33;7717:2;;;7771:6;7763;7756:22;7717:2;7816:9;7803:23;-1:-1:-1;;;;;7886:2:139;7878:6;7875:14;7872:2;;;7907:6;7899;7892:22;7872:2;7951:70;8013:7;8004:6;7993:9;7989:22;7951:70;:::i;:::-;8040:8;;-1:-1:-1;7925:96:139;-1:-1:-1;8128:2:139;8113:18;;8100:32;;-1:-1:-1;8144:16:139;;;8141:2;;;8178:6;8170;8163:22;8141:2;8222:72;8286:7;8275:8;8264:9;8260:24;8222:72;:::i;:::-;8313:8;;-1:-1:-1;8196:98:139;-1:-1:-1;8401:2:139;8386:18;;8373:32;;-1:-1:-1;8417:16:139;;;8414:2;;;8451:6;8443;8436:22;8414:2;;8495:72;8559:7;8548:8;8537:9;8533:24;8495:72;:::i;:::-;7707:1075;;;;-1:-1:-1;7707:1075:139;;;;8586:8;;8668:2;8653:18;;8640:32;;8719:3;8704:19;;8691:33;;-1:-1:-1;8771:3:139;8756:19;8743:33;;-1:-1:-1;7707:1075:139;-1:-1:-1;;;;7707:1075:139:o;8787:190::-;8846:6;8899:2;8887:9;8878:7;8874:23;8870:32;8867:2;;;8920:6;8912;8905:22;8867:2;-1:-1:-1;8948:23:139;;8857:120;-1:-1:-1;8857:120:139:o;8982:264::-;9050:6;9058;9111:2;9099:9;9090:7;9086:23;9082:32;9079:2;;;9132:6;9124;9117:22;9079:2;9173:9;9160:23;9150:33;;9202:38;9236:2;9225:9;9221:18;9202:38;:::i;:::-;9192:48;;9069:177;;;;;:::o;9251:306::-;9309:6;9362:2;9350:9;9341:7;9337:23;9333:32;9330:2;;;9383:6;9375;9368:22;9330:2;9414:23;;-1:-1:-1;;;;;;9466:32:139;;9456:43;;9446:2;;9518:6;9510;9503:22;9757:1044;9864:6;9859:3;9852:19;9834:3;9890:4;9931:2;9926:3;9922:12;9956:11;9983;9976:18;;10033:6;10030:1;10026:14;10019:5;10015:26;10003:38;;10064:5;10087:3;10099:676;10113:6;10110:1;10107:13;10099:676;;;10184:5;10178:4;10174:16;10169:3;10162:29;10243:6;10230:20;10333:2;10329:7;10321:5;10305:14;10301:26;10297:40;10277:18;10273:65;10263:2;;10354:3;10349;10342:16;10263:2;10388:30;;10447:21;;-1:-1:-1;;;;;10484:32:139;;10481:2;;;10531:3;10526;10519:16;10481:2;10584:8;10568:14;10564:29;10557:5;10553:41;10550:2;;;10609:3;10604;10597:16;10550:2;10636:59;10690:4;10680:8;10675:2;10666:7;10662:16;10636:59;:::i;:::-;10753:12;;;;10628:67;-1:-1:-1;;;10718:15:139;;;;10135:1;10128:9;10099:676;;;-1:-1:-1;10791:4:139;;9842:959;-1:-1:-1;;;;;;;9842:959:139:o;10806:268::-;10894:6;10889:3;10882:19;10946:6;10939:5;10932:4;10927:3;10923:14;10910:43;-1:-1:-1;10864:3:139;10973:16;;;10991:4;10969:27;;;10962:40;;;;11056:2;11035:15;;;-1:-1:-1;;11031:29:139;11022:39;;;11018:50;;10872:202::o;11079:273::-;11262:6;11254;11249:3;11236:33;11218:3;11288:16;;11313:15;;;11288:16;11226:126;-1:-1:-1;11226:126:139:o;11357:786::-;-1:-1:-1;;;11763:3:139;11756:38;11738:3;11823:6;11817:13;11839:62;11894:6;11889:2;11884:3;11880:12;11873:4;11865:6;11861:17;11839:62;:::i;:::-;-1:-1:-1;;;11960:2:139;11920:16;;;11952:11;;;11945:40;12010:13;;12032:63;12010:13;12081:2;12073:11;;12066:4;12054:17;;12032:63;:::i;:::-;12115:17;12134:2;12111:26;;11746:397;-1:-1:-1;;;;11746:397:139:o;12148:412::-;12390:1;12386;12381:3;12377:11;12373:19;12365:6;12361:32;12350:9;12343:51;12430:6;12425:2;12414:9;12410:18;12403:34;12473:2;12468;12457:9;12453:18;12446:30;12324:4;12493:61;12550:2;12539:9;12535:18;12527:6;12519;12493:61;:::i;:::-;12485:69;12333:227;-1:-1:-1;;;;;;12333:227:139:o;12565:557::-;12863:1;12859;12854:3;12850:11;12846:19;12838:6;12834:32;12823:9;12816:51;12903:6;12898:2;12887:9;12883:18;12876:34;12946:3;12941:2;12930:9;12926:18;12919:31;12797:4;12967:62;13024:3;13013:9;13009:19;13001:6;12993;12967:62;:::i;:::-;13060:2;13045:18;;13038:34;;;;-1:-1:-1;13103:3:139;13088:19;13081:35;12959:70;12806:316;-1:-1:-1;;;;12806:316:139:o;13689:1448::-;14141:3;14154:22;;;14126:19;;14211:22;;;14093:4;14291:6;14264:3;14249:19;;14093:4;14328:235;14342:6;14339:1;14336:13;14328:235;;;-1:-1:-1;;;;;14407:26:139;14426:6;14407:26;:::i;:::-;14403:52;14391:65;;14479:4;14538:15;;;;14503:12;;;;14364:1;14357:9;14328:235;;;-1:-1:-1;14601:19:139;;;14594:4;14579:20;;14572:49;14630:19;;;-1:-1:-1;;;;;14661:31:139;;14658:2;;;14708:4;14702;14695:18;14658:2;14745:6;14742:1;14738:14;14724:28;;14798:6;14790;14783:4;14778:3;14774:14;14761:44;14824:16;14867:4;14859:13;;;14881:16;;;14937:18;;;14933:29;;;14928:2;14913:18;;14906:57;14980:64;14859:13;15033:6;15025;14980:64;:::i;:::-;15075:2;15060:18;;15053:34;;;;-1:-1:-1;;;15118:3:139;15103:19;15096:35;14972:72;14102:1035;-1:-1:-1;;;;;;14102:1035:139:o;15723:383::-;15872:2;15861:9;15854:21;15835:4;15904:6;15898:13;15947:6;15942:2;15931:9;15927:18;15920:34;15963:66;16022:6;16017:2;16006:9;16002:18;15997:2;15989:6;15985:15;15963:66;:::i;:::-;16090:2;16069:15;-1:-1:-1;;16065:29:139;16050:45;;;;16097:2;16046:54;;15844:262;-1:-1:-1;;15844:262:139:o;16879:399::-;17081:2;17063:21;;;17120:2;17100:18;;;17093:30;17159:34;17154:2;17139:18;;17132:62;-1:-1:-1;;;17225:2:139;17210:18;;17203:33;17268:3;17253:19;;17053:225::o;18106:406::-;18308:2;18290:21;;;18347:2;18327:18;;;18320:30;18386:34;18381:2;18366:18;;18359:62;-1:-1:-1;;;18452:2:139;18437:18;;18430:40;18502:3;18487:19;;18280:232::o;20618:533::-;20695:4;20701:6;20761:11;20748:25;20855:2;20851:7;20840:8;20824:14;20820:29;20816:43;20796:18;20792:68;20782:2;;20877:4;20871;20864:18;20782:2;20907:33;;20959:20;;;-1:-1:-1;;;;;;20991:30:139;;20988:2;;;21037:4;21031;21024:18;20988:2;21073:4;21061:17;;-1:-1:-1;21104:14:139;21100:27;;;21090:38;;21087:2;;;21141:1;21138;21131:12;21156:275;21227:2;21221:9;21292:2;21273:13;;-1:-1:-1;;21269:27:139;21257:40;;-1:-1:-1;;;;;21312:34:139;;21348:22;;;21309:62;21306:2;;;21374:18;;:::i;:::-;21410:2;21403:22;21201:230;;-1:-1:-1;21201:230:139:o;21436:128::-;21476:3;21507:1;21503:6;21500:1;21497:13;21494:2;;;21513:18;;:::i;:::-;-1:-1:-1;21549:9:139;;21484:80::o;21569:168::-;21609:7;21675:1;21671;21667:6;21663:14;21660:1;21657:21;21652:1;21645:9;21638:17;21634:45;21631:2;;;21682:18;;:::i;:::-;-1:-1:-1;21722:9:139;;21621:116::o;21742:258::-;21814:1;21824:113;21838:6;21835:1;21832:13;21824:113;;;21914:11;;;21908:18;21895:11;;;21888:39;21860:2;21853:10;21824:113;;;21955:6;21952:1;21949:13;21946:2;;;21990:1;21981:6;21976:3;21972:16;21965:27;21946:2;;21795:205;;;:::o;22005:136::-;22044:3;22072:5;22062:2;;22081:18;;:::i;:::-;-1:-1:-1;;;22117:18:139;;22052:89::o;22146:135::-;22185:3;-1:-1:-1;;22206:17:139;;22203:2;;;22226:18;;:::i;:::-;-1:-1:-1;22273:1:139;22262:13;;22193:88::o;22286:127::-;22347:10;22342:3;22338:20;22335:1;22328:31;22378:4;22375:1;22368:15;22402:4;22399:1;22392:15;22418:127;22479:10;22474:3;22470:20;22467:1;22460:31;22510:4;22507:1;22500:15;22534:4;22531:1;22524:15"},"methodIdentifiers":{"CANCELLER_ROLE()":"b08e51c0","DEFAULT_ADMIN_ROLE()":"a217fddf","EXECUTOR_ROLE()":"07bd0265","PROPOSER_ROLE()":"8f61f4f5","TIMELOCK_ADMIN_ROLE()":"0d3cf6fc","cancel(bytes32)":"c4d252f5","execute(address,uint256,bytes,bytes32,bytes32)":"134008d3","executeBatch(address[],uint256[],bytes[],bytes32,bytes32)":"e38335e5","getMinDelay()":"f27a0c92","getRoleAdmin(bytes32)":"248a9ca3","getTimestamp(bytes32)":"d45c4435","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hashOperation(address,uint256,bytes,bytes32,bytes32)":"8065657f","hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)":"b1c5f427","isOperation(bytes32)":"31d50750","isOperationDone(bytes32)":"2ab0f529","isOperationPending(bytes32)":"584b153e","isOperationReady(bytes32)":"13bc9f20","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","schedule(address,uint256,bytes,bytes32,bytes32,uint256)":"01d5062a","scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)":"8f2a0bb0","supportsInterface(bytes4)":"01ffc9a7","updateDelay(uint256)":"64d62353"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minDelay\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CallExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"CallScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CANCELLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"executeBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"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\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperationBatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"registered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"scheduleBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"updateDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Contract module which acts as a timelocked controller. When set as the owner of an `Ownable` smart contract, it enforces a timelock on all `onlyOwner` maintenance operations. This gives time for users of the controlled contract to exit before a potentially dangerous maintenance operation is applied. By default, this contract is self administered, meaning administration tasks have to go through the timelock process. The proposer (resp executor) role is in charge of proposing (resp executing) operations. A common use case is to position this {TimelockController} as the owner of a smart contract, with a multisig or a DAO as the sole proposer. _Available since v3.3._\",\"events\":{\"CallExecuted(bytes32,uint256,address,uint256,bytes)\":{\"details\":\"Emitted when a call is performed as part of operation `id`.\"},\"CallScheduled(bytes32,uint256,address,uint256,bytes,bytes32,uint256)\":{\"details\":\"Emitted when a call is scheduled as part of operation `id`.\"},\"Cancelled(bytes32)\":{\"details\":\"Emitted when operation `id` is cancelled.\"},\"MinDelayChange(uint256,uint256)\":{\"details\":\"Emitted when the minimum delay for future operations is modified.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'canceller' role.\"},\"constructor\":{\"details\":\"Initializes the contract with a given `minDelay`, and a list of initial proposers and executors. The proposers receive both the proposer and the canceller role (for backward compatibility). The executors receive the executor role. NOTE: At construction, both the deployer and the timelock itself are administrators. This helps further configuration of the timelock by the deployer. After configuration is done, it is recommended that the deployer renounces its admin position and relies on timelocked operations to perform future maintenance.\"},\"execute(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.\"},\"executeBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getMinDelay()\":{\"details\":\"Returns the minimum delay for an operation to become valid. This value can be changed by executing an operation that calls `updateDelay`.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a single transaction.\"},\"hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"schedule(address,uint256,bytes,bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.\"},\"scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {CallScheduled} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateDelay(uint256)\":{\"details\":\"Changes the minimum timelock duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the timelock itself. This can only be achieved by scheduling and later executing an operation where the timelock is the target and the data is the ABI-encoded call to this function.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/TimelockController.sol\":\"TimelockController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/TimelockController.sol\":{\"keccak256\":\"0x6d9ec0025a3e257dee17550c0c6ce94ff200d1a646d2ebe951309ad179f0df18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dabd0b4e8ddaa72eb291e3f1511374464fd99ca8aa2fe397423294a0fb8e4f18\",\"dweb:/ipfs/QmSnvxGEug7UxvJJbgvUAYKsT1gw31M19YKgPRfXtMN3he\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol":{"GovernorCountingSimple":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalVotes","outputs":[{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","proposalVotes(uint256)":"544ffc9c","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} for simple, 3 options, vote counting. _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"See {IGovernor-hasVoted}.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\":\"GovernorCountingSimple\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0xcb82f3524bea8631d077934fe0a250d321440a1528135c8adaf896bcdf92351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0733314f732fb18258801143f3809257045885e364e228289cfab1067a2cb6\",\"dweb:/ipfs/QmWXjD2MMmATDcxDN8tThnwEHXypanpQJTAiZWdiEBVra8\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol":{"GovernorPreventLateQuorum":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"oldVoteExtension","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"newVoteExtension","type":"uint64"}],"name":"LateQuorumVoteExtensionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"extendedDeadline","type":"uint64"}],"name":"ProposalExtended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lateQuorumVoteExtension","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"newVoteExtension","type":"uint64"}],"name":"setLateQuorumVoteExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","lateQuorumVoteExtension()":"32b8113e","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","setLateQuorumVoteExtension(uint64)":"d07f91e9","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"oldVoteExtension\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVoteExtension\",\"type\":\"uint64\"}],\"name\":\"LateQuorumVoteExtensionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"extendedDeadline\",\"type\":\"uint64\"}],\"name\":\"ProposalExtended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lateQuorumVoteExtension\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVoteExtension\",\"type\":\"uint64\"}],\"name\":\"setLateQuorumVoteExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"A module that ensures there is a minimum voting period after quorum is reached. This prevents a large voter from swaying a vote and triggering quorum at the last minute, by ensuring there is always time for other voters to react and try to oppose the decision. If a vote causes quorum to be reached, the proposal's voting period may be extended so that it does not end before at least a given number of blocks have passed (the \\\"vote extension\\\" parameter). This parameter can be set by the governance executor (e.g. through a governance proposal). _Available since v4.5._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"events\":{\"LateQuorumVoteExtensionSet(uint64,uint64)\":{\"details\":\"Emitted when the {lateQuorumVoteExtension} parameter is changed.\"},\"ProposalExtended(uint256,uint64)\":{\"details\":\"Emitted when a proposal deadline is pushed back due to reaching quorum late in its voting period.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Initializes the vote extension parameter: the number of blocks that are required to pass since a proposal reaches quorum until its voting period ends. If necessary the voting period will be extended beyond the one set at proposal creation.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns weither `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"lateQuorumVoteExtension()\":{\"details\":\"Returns the current value of the vote extension parameter: the number of blocks that are required to pass from the time a proposal reaches quorum until its voting period ends.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"Returns the proposal deadline, which may have been extended beyond that set at proposal creation, if the proposal reached quorum late in the voting period. See {Governor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"setLateQuorumVoteExtension(uint64)\":{\"details\":\"Changes the {lateQuorumVoteExtension}. This operation can only be performed by the governance executor, generally through a governance proposal. Emits a {LateQuorumVoteExtensionSet} event.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol\":\"GovernorPreventLateQuorum\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol\":{\"keccak256\":\"0x3e1bfe525856a653adc11e9bcc7f696388836367a7a44d61ef4bfa39f77c2956\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e11a995fe4320817af5ce55bc3b82ce25c65485cb9f86271489d2bd8bbd27\",\"dweb:/ipfs/QmZj9YxUVNGe68cADcoiuPGW2M5mWf3SedCdfdzabfVowR\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol":{"GovernorSettings":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","setProposalThreshold(uint256)":"ece40cc1","setVotingDelay(uint256)":"70b0f660","setVotingPeriod(uint256)":"ea0217cf","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"setProposalThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} for settings updatable through governance. _Available since v4.4._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Initialize the governance parameters.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns weither `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"See {Governor-proposalThreshold}.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"setProposalThreshold(uint256)\":{\"details\":\"Update the proposal threshold. This operation can only be performed through a governance proposal. Emits a {ProposalThresholdSet} event.\"},\"setVotingDelay(uint256)\":{\"details\":\"Update the voting delay. This operation can only be performed through a governance proposal. Emits a {VotingDelaySet} event.\"},\"setVotingPeriod(uint256)\":{\"details\":\"Update the voting period. This operation can only be performed through a governance proposal. Emits a {VotingPeriodSet} event.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"See {IGovernor-votingDelay}.\"},\"votingPeriod()\":{\"details\":\"See {IGovernor-votingPeriod}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\":\"GovernorSettings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0xab3781f09dfb447d0c2f5bbb2aafc9ff86333f16c61580ab85d7c8a87491eab9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58571bc89cd0e54fa9af6b41e53e2110c6f5767eb691af8ad88759dbde07b3fd\",\"dweb:/ipfs/QmbeoatuYT5ukpGLWZh4DHb7yrC3TpBbm9hDdWwkdUuUy4\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol":{"GovernorTimelockControl":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTimelock","type":"address"},{"indexed":false,"internalType":"address","name":"newTimelock","type":"address"}],"name":"TimelockChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalEta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"queue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract TimelockController","name":"newTimelock","type":"address"}],"name":"updateTimelock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalEta(uint256)":"ab58fb8e","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","queue(address[],uint256[],bytes[],bytes32)":"160cbed7","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","timelock()":"d33219b4","updateTimelock(address)":"a890c910","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldTimelock\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"TimelockChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TimelockController\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"updateTimelock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly. Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus, the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be inaccessible. WARNING: Setting up the TimelockController to have additional proposers besides the governor is very risky, as it grants them powers that they must be trusted or known not to use: 1) {onlyGovernance} functions like {relay} are available to them through the timelock, and 2) approved governance proposals can be blocked by them, effectively executing a Denial of Service attack. This risk will be mitigated in a future release. _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"events\":{\"TimelockChange(address,address)\":{\"details\":\"Emitted when the timelock controller used for proposal execution is modified.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Set the timelock.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns weither `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalEta(uint256)\":{\"details\":\"Public accessor to check the eta of a queued proposal\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"queue(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Function to queue a proposal to the timelock.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"Overridden version of the {Governor-state} function with added support for the `Queued` status.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"timelock()\":{\"details\":\"Public accessor to check the address of the timelock\"},\"updateTimelock(address)\":{\"details\":\"Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\":\"GovernorTimelockControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/TimelockController.sol\":{\"keccak256\":\"0x6d9ec0025a3e257dee17550c0c6ce94ff200d1a646d2ebe951309ad179f0df18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dabd0b4e8ddaa72eb291e3f1511374464fd99ca8aa2fe397423294a0fb8e4f18\",\"dweb:/ipfs/QmSnvxGEug7UxvJJbgvUAYKsT1gw31M19YKgPRfXtMN3he\"]},\"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\":{\"keccak256\":\"0xde79bde0691601228cdf27fc2fdc85cb01eea836d41780e6e73f778e0a886a5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490f0e0d12ff73a9f891930c842630d4d50f0088562801d635a68319a772e19\",\"dweb:/ipfs/QmeSBTTHkxiXQ5hnJyhpCGAA42XFGfNPZxfRnkK28x4Aii\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol":{"GovernorVotes":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IVotes","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IVotes\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} for voting weight extraction from an {ERC20Votes} token, or since v4.5 an {ERC721Votes} token. _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns weither `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\":\"GovernorVotes\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\":{\"keccak256\":\"0xf818ee82b0faf7938ced9fcc851600b17202c8f6b1b33e01035702cadda684bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aaea7133e6c40ce2c9c2235c72ffec8befbe50c6df0414565675f2648562484\",\"dweb:/ipfs/QmSvUuPuorTqpscvfmhV4PCJCjJDFpMmjcxTnJUB64cj98\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol":{"IGovernorTimelock":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalEta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"queue","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"COUNTING_MODE()":"dd4e2ba5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","proposalDeadline(uint256)":"c01f9e37","proposalEta(uint256)":"ab58fb8e","proposalSnapshot(uint256)":"2d63f693","propose(address[],uint256[],bytes[],string)":"7d5e81e2","queue(address[],uint256[],bytes[],bytes32)":"160cbed7","quorum(uint256)":"f8ce560a","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","timelock()":"d33219b4","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of the {IGovernor} for timelock supporting modules. _Available since v4.3._\",\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"Cast a vote Emits a {VoteCast} event.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote using the user's cryptographic signature. Emits a {VoteCast} event.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"Cast a vote with a reason Emits a {VoteCast} event.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature. Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the deadline to be reached. Emits a {ProposalExecuted} event. Note: some module can modify the requirements for execution, for example by adding an additional timelock.\"},\"getVotes(address,uint256)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber`. Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or multiple), {ERC20Votes} tokens.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber` given additional encoded parameters.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns weither `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Hashing function used to (re)build the proposal id from the proposal details..\"},\"name()\":{\"details\":\"Name of the governor instance (used in building the ERC712 domain separator).\"},\"proposalDeadline(uint256)\":{\"details\":\"Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote during this block.\"},\"proposalSnapshot(uint256)\":{\"details\":\"Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the beginning of the following block.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends {IGovernor-votingPeriod} blocks after the voting starts. Emits a {ProposalCreated} event.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"state(uint256)\":{\"details\":\"Current state of a proposal, following Compound's convention\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"version()\":{\"details\":\"Version of the governor instance (used in building the ERC712 domain separator). Default: \\\"1\\\"\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"getVotes(address,uint256)\":{\"notice\":\"module:reputation\"},\"getVotesWithParams(address,uint256,bytes)\":{\"notice\":\"module:reputation\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"notice\":\"module:core\"},\"name()\":{\"notice\":\"module:core\"},\"proposalDeadline(uint256)\":{\"notice\":\"module:core\"},\"proposalSnapshot(uint256)\":{\"notice\":\"module:core\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"state(uint256)\":{\"notice\":\"module:core\"},\"version()\":{\"notice\":\"module:core\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":\"IGovernorTimelock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/utils/IVotes.sol":{"IVotes":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._\",\"events\":{\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"}},\"kind\":\"dev\",\"methods\":{\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":\"IVotes\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/utils/Votes.sol":{"Votes":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0","nonces(address)":"7ecebe00"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is a base abstract contract that tracks voting units, which are a measure of voting power that can be transferred, and provides a system of vote delegation, where an account can delegate its voting units to a sort of \\\"representative\\\" that will pool delegated voting units from different accounts and can then use it to vote in decisions. In fact, voting units _must_ be delegated in order to count as actual votes, and an account has to delegate those votes to itself if it wishes to participate in decisions and does not have a trusted representative. This contract is often combined with a token contract such that voting units correspond to token units. For an example, see {ERC721Votes}. The full history of delegate votes is tracked on-chain so that governance protocols can consider votes as distributed at a particular block number to protect against flash loans and double voting. The opt-in delegate system makes the cost of this history tracking optional. When using this module the derived contract must implement {_getVotingUnits} (for example, make it return {ERC721-balanceOf}), and can use {_transferVotingUnits} to track a change in the distribution of those units (in the previous example, it would be included in {ERC721-_beforeTokenTransfer}). _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the contract's {EIP712} domain separator.\"},\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote. Requirements: - `blockNumber` must have been already mined\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`). Requirements: - `blockNumber` must have been already mined\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"},\"nonces(address)\":{\"details\":\"Returns an address nonce.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/utils/Votes.sol\":\"Votes\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/governance/utils/Votes.sol\":{\"keccak256\":\"0x089922faffaa6662249c3fbea3bec2dc1d78a145253a4dbf9e91b7df6a434cf8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1b83cc2a7127ce6a4ca5c8ffa74013701ebe66d7232717a5acb6572e143d738\",\"dweb:/ipfs/QmWpyQwnkLkz5r4jS69R8Ax5jP6Yp7eNCLjb6gZbfhg3Tm\"]},\"@openzeppelin/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0x2e109f03a05809288a1478d4d9fcd0804229207e18d1164ce0597fb0958a159c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9495415607fcbd1c940e726f396c46892af8c8772247c002650deacaf5199fb\",\"dweb:/ipfs/QmagLfEk1NCaJEMVDP3ix9BmXy6mccVUMfKAbWQFtjkjvJ\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/IERC2981.sol":{"IERC2981":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"royaltyInfo(uint256,uint256)":"2a55205a","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"royaltyAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the NFT Royalty Standard. A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal support for royalty payments across all NFT marketplaces and ecosystem participants. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":\"IERC2981\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0xa812eed728198acd2c30d06950a5bea8d68436e4f694dd892273266ec2f79f5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5522afc5c222c810d9ad67c45f37cb7169452fcf76692cad10ac8153c068daa\",\"dweb:/ipfs/QmX4XgnDp7pyvojQ6g5tacrUMCf7TED2qC2vERH9Xh9feZ\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/security/Pausable.sol":{"Pausable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/security/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"IERC1155Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"_Available since v3.1._\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"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"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2039:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:845:139","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:139"},"nodeType":"YulFunctionCall","src":"129:20:139"},"nodeType":"YulExpressionStatement","src":"129:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:139"},"nodeType":"YulFunctionCall","src":"102:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:139"},"nodeType":"YulFunctionCall","src":"98:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:139"},"nodeType":"YulFunctionCall","src":"91:35:139"},"nodeType":"YulIf","src":"88:2:139"},{"nodeType":"YulVariableDeclaration","src":"160:23:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"176:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"170:5:139"},"nodeType":"YulFunctionCall","src":"170:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"192:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"210:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"214:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"206:3:139"},"nodeType":"YulFunctionCall","src":"206:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"218:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"202:3:139"},"nodeType":"YulFunctionCall","src":"202:18:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"196:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"243:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"245:16:139"},"nodeType":"YulFunctionCall","src":"245:18:139"},"nodeType":"YulExpressionStatement","src":"245:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"235:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"239:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"232:2:139"},"nodeType":"YulFunctionCall","src":"232:10:139"},"nodeType":"YulIf","src":"229:2:139"},{"nodeType":"YulVariableDeclaration","src":"274:17:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"288:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"284:3:139"},"nodeType":"YulFunctionCall","src":"284:7:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"278:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"300:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"314:5:139"},"nodeType":"YulFunctionCall","src":"314:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"304:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"332:71:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"354:6:139"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"378:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"382:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:139"},"nodeType":"YulFunctionCall","src":"374:13:139"},{"name":"_3","nodeType":"YulIdentifier","src":"389:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"370:3:139"},"nodeType":"YulFunctionCall","src":"370:22:139"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"366:3:139"},"nodeType":"YulFunctionCall","src":"366:31:139"},{"name":"_3","nodeType":"YulIdentifier","src":"399:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"362:3:139"},"nodeType":"YulFunctionCall","src":"362:40:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:139"},"nodeType":"YulFunctionCall","src":"350:53:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"336:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"464:16:139"},"nodeType":"YulFunctionCall","src":"464:18:139"},"nodeType":"YulExpressionStatement","src":"464:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"421:10:139"},{"name":"_2","nodeType":"YulIdentifier","src":"433:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"418:2:139"},"nodeType":"YulFunctionCall","src":"418:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"453:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"438:2:139"},"nodeType":"YulFunctionCall","src":"438:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"415:2:139"},"nodeType":"YulFunctionCall","src":"415:46:139"},"nodeType":"YulIf","src":"412:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"500:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"504:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:139"},"nodeType":"YulFunctionCall","src":"493:22:139"},"nodeType":"YulExpressionStatement","src":"493:22:139"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"531:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"539:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"524:6:139"},"nodeType":"YulFunctionCall","src":"524:18:139"},"nodeType":"YulExpressionStatement","src":"524:18:139"},{"nodeType":"YulVariableDeclaration","src":"551:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"561:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"555:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"611:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"620:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"627:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"613:6:139"},"nodeType":"YulFunctionCall","src":"613:20:139"},"nodeType":"YulExpressionStatement","src":"613:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"588:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"596:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:139"},"nodeType":"YulFunctionCall","src":"584:15:139"},{"name":"_4","nodeType":"YulIdentifier","src":"601:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"580:3:139"},"nodeType":"YulFunctionCall","src":"580:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"606:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"577:2:139"},"nodeType":"YulFunctionCall","src":"577:33:139"},"nodeType":"YulIf","src":"574:2:139"},{"nodeType":"YulVariableDeclaration","src":"644:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"653:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"648:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"713:87:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"742:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"750:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:139"},"nodeType":"YulFunctionCall","src":"738:14:139"},{"name":"_4","nodeType":"YulIdentifier","src":"754:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:139"},"nodeType":"YulFunctionCall","src":"734:23:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"781:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:139"},"nodeType":"YulFunctionCall","src":"769:14:139"},{"name":"_4","nodeType":"YulIdentifier","src":"785:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:139"},"nodeType":"YulFunctionCall","src":"765:23:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"759:5:139"},"nodeType":"YulFunctionCall","src":"759:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:139"},"nodeType":"YulFunctionCall","src":"727:63:139"},"nodeType":"YulExpressionStatement","src":"727:63:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"678:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"681:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"675:2:139"},"nodeType":"YulFunctionCall","src":"675:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"685:19:139","statements":[{"nodeType":"YulAssignment","src":"687:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"696:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"699:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:139"},"nodeType":"YulFunctionCall","src":"692:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"687:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"671:3:139","statements":[]},"src":"667:133:139"},{"body":{"nodeType":"YulBlock","src":"830:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"859:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"867:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"855:3:139"},"nodeType":"YulFunctionCall","src":"855:15:139"},{"name":"_4","nodeType":"YulIdentifier","src":"872:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:139"},"nodeType":"YulFunctionCall","src":"851:24:139"},{"name":"array","nodeType":"YulIdentifier","src":"877:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"844:6:139"},"nodeType":"YulFunctionCall","src":"844:39:139"},"nodeType":"YulExpressionStatement","src":"844:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"815:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"812:2:139"},"nodeType":"YulFunctionCall","src":"812:9:139"},"nodeType":"YulIf","src":"809:2:139"},{"nodeType":"YulAssignment","src":"902:15:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"911:6:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"902:5:139"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:139","type":""}],"src":"14:909:139"},{"body":{"nodeType":"YulBlock","src":"1046:474:139","statements":[{"body":{"nodeType":"YulBlock","src":"1092:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:139"},"nodeType":"YulFunctionCall","src":"1094:22:139"},"nodeType":"YulExpressionStatement","src":"1094:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1067:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1076:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1063:3:139"},"nodeType":"YulFunctionCall","src":"1063:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1059:3:139"},"nodeType":"YulFunctionCall","src":"1059:32:139"},"nodeType":"YulIf","src":"1056:2:139"},{"nodeType":"YulVariableDeclaration","src":"1127:30:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1147:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:139"},"nodeType":"YulFunctionCall","src":"1141:16:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1131:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1166:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1184:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1188:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1180:3:139"},"nodeType":"YulFunctionCall","src":"1180:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"1192:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1176:3:139"},"nodeType":"YulFunctionCall","src":"1176:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1170:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1221:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1238:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1223:6:139"},"nodeType":"YulFunctionCall","src":"1223:22:139"},"nodeType":"YulExpressionStatement","src":"1223:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1209:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1217:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1206:2:139"},"nodeType":"YulFunctionCall","src":"1206:14:139"},"nodeType":"YulIf","src":"1203:2:139"},{"nodeType":"YulAssignment","src":"1256:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1299:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1310:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1295:3:139"},"nodeType":"YulFunctionCall","src":"1295:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:139"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1266:28:139"},"nodeType":"YulFunctionCall","src":"1266:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1256:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1336:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1362:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1373:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1358:3:139"},"nodeType":"YulFunctionCall","src":"1358:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1352:5:139"},"nodeType":"YulFunctionCall","src":"1352:25:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1340:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1406:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1415:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1423:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1408:6:139"},"nodeType":"YulFunctionCall","src":"1408:22:139"},"nodeType":"YulExpressionStatement","src":"1408:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1392:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1402:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:139"},"nodeType":"YulFunctionCall","src":"1389:16:139"},"nodeType":"YulIf","src":"1386:2:139"},{"nodeType":"YulAssignment","src":"1441:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1495:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:139"},"nodeType":"YulFunctionCall","src":"1480:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1506:7:139"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1451:28:139"},"nodeType":"YulFunctionCall","src":"1451:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1441:6:139"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1004:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1015:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1027:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1035:6:139","type":""}],"src":"928:592:139"},{"body":{"nodeType":"YulBlock","src":"1580:325:139","statements":[{"nodeType":"YulAssignment","src":"1590:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1604:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1607:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1600:3:139"},"nodeType":"YulFunctionCall","src":"1600:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1590:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1621:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1651:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"1657:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1647:3:139"},"nodeType":"YulFunctionCall","src":"1647:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1625:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:31:139","statements":[{"nodeType":"YulAssignment","src":"1700:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1714:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1722:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1710:3:139"},"nodeType":"YulFunctionCall","src":"1710:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1700:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1678:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1671:6:139"},"nodeType":"YulFunctionCall","src":"1671:26:139"},"nodeType":"YulIf","src":"1668:2:139"},{"body":{"nodeType":"YulBlock","src":"1788:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1809:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1816:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1821:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1812:3:139"},"nodeType":"YulFunctionCall","src":"1812:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1802:6:139"},"nodeType":"YulFunctionCall","src":"1802:31:139"},"nodeType":"YulExpressionStatement","src":"1802:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1853:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1856:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1846:6:139"},"nodeType":"YulFunctionCall","src":"1846:15:139"},"nodeType":"YulExpressionStatement","src":"1846:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1881:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1884:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1874:6:139"},"nodeType":"YulFunctionCall","src":"1874:15:139"},"nodeType":"YulExpressionStatement","src":"1874:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1744:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1767:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1775:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1764:2:139"},"nodeType":"YulFunctionCall","src":"1764:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1741:2:139"},"nodeType":"YulFunctionCall","src":"1741:38:139"},"nodeType":"YulIf","src":"1738:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1560:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1569:6:139","type":""}],"src":"1525:380:139"},{"body":{"nodeType":"YulBlock","src":"1942:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1966:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1971:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1962:3:139"},"nodeType":"YulFunctionCall","src":"1962:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1952:6:139"},"nodeType":"YulFunctionCall","src":"1952:31:139"},"nodeType":"YulExpressionStatement","src":"1952:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1999:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2002:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1992:6:139"},"nodeType":"YulFunctionCall","src":"1992:15:139"},"nodeType":"YulExpressionStatement","src":"1992:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2023:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2026:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2016:6:139"},"nodeType":"YulFunctionCall","src":"2016:15:139"},"nodeType":"YulExpressionStatement","src":"2016:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1910:127:139"}]},"contents":"{\n    { }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), _4), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        if gt(i, _1)\n        {\n            mstore(add(add(memPtr, _1), _4), array)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(value0, value0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000b0a38038062000b0a8339810160408190526200003491620001c1565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b600181811c908216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61087f806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c39190610797565b60405180910390f35b6100df6100da36600461076e565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610733565b61024a565b604051601281526020016100c3565b6100df61013136600461076e565b61026e565b6100f36101443660046106e0565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461076e565b61029f565b6100df61018836600461076e565b61031f565b6100f361019b366004610701565b61032d565b6060600380546101af9061080e565b80601f01602080910402602001604051908101604052809291908181526020018280546101db9061080e565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b91906107ea565b610358565b6060600480546101af9061080e565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061066b9084906107ea565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b791815260200190565b60405180910390a36104f0565b80356001600160a01b03811681146106db57600080fd5b919050565b6000602082840312156106f1578081fd5b6106fa826106c4565b9392505050565b60008060408385031215610713578081fd5b61071c836106c4565b915061072a602084016106c4565b90509250929050565b600080600060608486031215610747578081fd5b610750846106c4565b925061075e602085016106c4565b9150604084013590509250925092565b60008060408385031215610780578182fd5b610789836106c4565b946020939093013593505050565b6000602080835283518082850152825b818110156107c3578581018301518582016040015282016107a7565b818111156107d45783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080957634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168061082257607f821691505b6020821081141561084357634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212205b65dd173fa0543ffc3583fb28fa8f03b55cf32b6bd60012207edbcaadc5301264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xB0A CODESIZE SUB DUP1 PUSH3 0xB0A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1C1 JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x27B JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x228 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x11F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x265 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0x265 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x183 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP5 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1A6 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x187 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1B7 JUMPI DUP5 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1D4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1EB JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x1F9 DUP7 DUP4 DUP8 ADD PUSH3 0x10E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x20F JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x21E DUP6 DUP3 DUP7 ADD PUSH3 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x23D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x87F DUP1 PUSH3 0x28B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x797 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x733 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x80E 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 0x1DB SWAP1 PUSH2 0x80E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x7EA JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x80E JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 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 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x66B SWAP1 DUP5 SWAP1 PUSH2 0x7EA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6B7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F1 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x6FA DUP3 PUSH2 0x6C4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x713 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x71C DUP4 PUSH2 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x72A PUSH1 0x20 DUP5 ADD PUSH2 0x6C4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x747 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x750 DUP5 PUSH2 0x6C4 JUMP JUMPDEST SWAP3 POP PUSH2 0x75E PUSH1 0x20 DUP6 ADD PUSH2 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x780 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x789 DUP4 PUSH2 0x6C4 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7C3 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7A7 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7D4 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x809 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x822 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x843 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST PUSH6 0xDD173FA0543F 0xFC CALLDATALOAD DUP4 0xFB 0x28 STATICCALL DUP16 SUB 0xB5 0x5C RETURN 0x2B PUSH12 0xD60012207EDBCAADC5301264 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"1403:11214:24:-:0;;;1978:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2067:17:24;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;1403:11214;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11214:24;;;-1:-1:-1;1403:11214:24;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:909:139;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;170:13;;-1:-1:-1;;;;;232:10:139;;;229:2;;;245:18;;:::i;:::-;320:2;314:9;288:2;374:13;;-1:-1:-1;;370:22:139;;;394:2;366:31;362:40;350:53;;;418:18;;;438:22;;;415:46;412:2;;;464:18;;:::i;:::-;504:10;500:2;493:22;539:2;531:6;524:18;561:4;551:14;;606:3;601:2;596;588:6;584:15;580:24;577:33;574:2;;;627:5;620;613:20;574:2;653:5;644:14;;667:133;681:2;678:1;675:9;667:133;;;769:14;;;765:23;;759:30;738:14;;;734:23;;727:63;692:10;;;;667:133;;;818:2;815:1;812:9;809:2;;;877:5;872:2;867;859:6;855:15;851:24;844:39;809:2;911:6;78:845;-1:-1:-1;;;;;;78:845:139:o;928:592::-;1027:6;1035;1088:2;1076:9;1067:7;1063:23;1059:32;1056:2;;;1109:6;1101;1094:22;1056:2;1141:16;;-1:-1:-1;;;;;1206:14:139;;;1203:2;;;1238:6;1230;1223:22;1203:2;1266:61;1319:7;1310:6;1299:9;1295:22;1266:61;:::i;:::-;1256:71;;1373:2;1362:9;1358:18;1352:25;1336:41;;1402:2;1392:8;1389:16;1386:2;;;1423:6;1415;1408:22;1386:2;;1451:63;1506:7;1495:8;1484:9;1480:24;1451:63;:::i;:::-;1441:73;;;1046:474;;;;;:::o;1525:380::-;1604:1;1600:12;;;;1647;;;1668:2;;1722:4;1714:6;1710:17;1700:27;;1668:2;1775;1767:6;1764:14;1744:18;1741:38;1738:2;;;1821:10;1816:3;1812:20;1809:1;1802:31;1856:4;1853:1;1846:15;1884:4;1881:1;1874:15;1738:2;;1580:325;;;:::o;1910:127::-;1971:10;1966:3;1962:20;1959:1;1952:31;2002:4;1999:1;1992:15;2026:4;2023:1;2016:15;1942:95;1403:11214:24;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"262:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:139"},"nodeType":"YulFunctionCall","src":"310:22:139"},"nodeType":"YulExpressionStatement","src":"310:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:139"},"nodeType":"YulFunctionCall","src":"279:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:139"},"nodeType":"YulFunctionCall","src":"275:32:139"},"nodeType":"YulIf","src":"272:2:139"},{"nodeType":"YulAssignment","src":"343:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:139"},"nodeType":"YulFunctionCall","src":"353:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:139","type":""}],"src":"192:196:139"},{"body":{"nodeType":"YulBlock","src":"480:183:139","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:139"},"nodeType":"YulFunctionCall","src":"528:22:139"},"nodeType":"YulExpressionStatement","src":"528:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:139"},"nodeType":"YulFunctionCall","src":"497:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:139"},"nodeType":"YulFunctionCall","src":"493:32:139"},"nodeType":"YulIf","src":"490:2:139"},{"nodeType":"YulAssignment","src":"561:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:139"},"nodeType":"YulFunctionCall","src":"571:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:139"}]},{"nodeType":"YulAssignment","src":"609:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:139"},"nodeType":"YulFunctionCall","src":"638:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:139"},"nodeType":"YulFunctionCall","src":"619:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:139","type":""}],"src":"393:270:139"},{"body":{"nodeType":"YulBlock","src":"772:234:139","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:139"},"nodeType":"YulFunctionCall","src":"820:22:139"},"nodeType":"YulExpressionStatement","src":"820:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:139"},"nodeType":"YulFunctionCall","src":"789:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:139"},"nodeType":"YulFunctionCall","src":"785:32:139"},"nodeType":"YulIf","src":"782:2:139"},{"nodeType":"YulAssignment","src":"853:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:139"},"nodeType":"YulFunctionCall","src":"863:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:139"}]},{"nodeType":"YulAssignment","src":"901:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:139"},"nodeType":"YulFunctionCall","src":"930:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:139"},"nodeType":"YulFunctionCall","src":"911:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:139"}]},{"nodeType":"YulAssignment","src":"958:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:139"},"nodeType":"YulFunctionCall","src":"981:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:139"},"nodeType":"YulFunctionCall","src":"968:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:139","type":""}],"src":"668:338:139"},{"body":{"nodeType":"YulBlock","src":"1098:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:139"},"nodeType":"YulFunctionCall","src":"1146:22:139"},"nodeType":"YulExpressionStatement","src":"1146:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:139"},"nodeType":"YulFunctionCall","src":"1115:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:139"},"nodeType":"YulFunctionCall","src":"1111:32:139"},"nodeType":"YulIf","src":"1108:2:139"},{"nodeType":"YulAssignment","src":"1179:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:139"},"nodeType":"YulFunctionCall","src":"1189:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:139"}]},{"nodeType":"YulAssignment","src":"1227:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:139"},"nodeType":"YulFunctionCall","src":"1250:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:139"},"nodeType":"YulFunctionCall","src":"1237:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:139","type":""}],"src":"1011:264:139"},{"body":{"nodeType":"YulBlock","src":"1375:92:139","statements":[{"nodeType":"YulAssignment","src":"1385:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:139"},"nodeType":"YulFunctionCall","src":"1393:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:139"},"nodeType":"YulFunctionCall","src":"1445:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:139"},"nodeType":"YulFunctionCall","src":"1438:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:139"},"nodeType":"YulFunctionCall","src":"1420:41:139"},"nodeType":"YulExpressionStatement","src":"1420:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:139","type":""}],"src":"1280:187:139"},{"body":{"nodeType":"YulBlock","src":"1593:482:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:139"},"nodeType":"YulFunctionCall","src":"1624:21:139"},"nodeType":"YulExpressionStatement","src":"1624:21:139"},{"nodeType":"YulVariableDeclaration","src":"1654:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:139"},"nodeType":"YulFunctionCall","src":"1668:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:139"},"nodeType":"YulFunctionCall","src":"1697:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:139"},"nodeType":"YulFunctionCall","src":"1690:34:139"},"nodeType":"YulExpressionStatement","src":"1690:34:139"},{"nodeType":"YulVariableDeclaration","src":"1733:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:139"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:139"},"nodeType":"YulFunctionCall","src":"1830:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:139"},"nodeType":"YulFunctionCall","src":"1826:26:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:139"},"nodeType":"YulFunctionCall","src":"1864:14:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:139"},"nodeType":"YulFunctionCall","src":"1860:23:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:139"},"nodeType":"YulFunctionCall","src":"1854:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:139"},"nodeType":"YulFunctionCall","src":"1819:66:139"},"nodeType":"YulExpressionStatement","src":"1819:66:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:139"},"nodeType":"YulFunctionCall","src":"1763:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:139","statements":[{"nodeType":"YulAssignment","src":"1779:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:139"},"nodeType":"YulFunctionCall","src":"1784:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:139","statements":[]},"src":"1755:140:139"},{"body":{"nodeType":"YulBlock","src":"1929:69:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:139"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:139"},"nodeType":"YulFunctionCall","src":"1954:22:139"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:139"},"nodeType":"YulFunctionCall","src":"1950:31:139"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:139"},"nodeType":"YulFunctionCall","src":"1943:45:139"},"nodeType":"YulExpressionStatement","src":"1943:45:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:139"},"nodeType":"YulFunctionCall","src":"1907:13:139"},"nodeType":"YulIf","src":"1904:2:139"},{"nodeType":"YulAssignment","src":"2007:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:139"},"nodeType":"YulFunctionCall","src":"2038:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:139"},"nodeType":"YulFunctionCall","src":"2055:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:139"},"nodeType":"YulFunctionCall","src":"2034:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:139"},"nodeType":"YulFunctionCall","src":"2019:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:139"},"nodeType":"YulFunctionCall","src":"2015:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:139","type":""}],"src":"1472:603:139"},{"body":{"nodeType":"YulBlock","src":"2254:225:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:139"},"nodeType":"YulFunctionCall","src":"2264:21:139"},"nodeType":"YulExpressionStatement","src":"2264:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:139"},"nodeType":"YulFunctionCall","src":"2301:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:139","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:139"},"nodeType":"YulFunctionCall","src":"2294:30:139"},"nodeType":"YulExpressionStatement","src":"2294:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:139"},"nodeType":"YulFunctionCall","src":"2340:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:139","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:139"},"nodeType":"YulFunctionCall","src":"2333:62:139"},"nodeType":"YulExpressionStatement","src":"2333:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:139"},"nodeType":"YulFunctionCall","src":"2411:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:139","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:139"},"nodeType":"YulFunctionCall","src":"2404:33:139"},"nodeType":"YulExpressionStatement","src":"2404:33:139"},{"nodeType":"YulAssignment","src":"2446:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:139"},"nodeType":"YulFunctionCall","src":"2454:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:139","type":""}],"src":"2080:399:139"},{"body":{"nodeType":"YulBlock","src":"2658:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:139"},"nodeType":"YulFunctionCall","src":"2668:21:139"},"nodeType":"YulExpressionStatement","src":"2668:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:139"},"nodeType":"YulFunctionCall","src":"2705:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:139"},"nodeType":"YulFunctionCall","src":"2698:30:139"},"nodeType":"YulExpressionStatement","src":"2698:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:139"},"nodeType":"YulFunctionCall","src":"2744:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:139","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:139"},"nodeType":"YulFunctionCall","src":"2737:62:139"},"nodeType":"YulExpressionStatement","src":"2737:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:139"},"nodeType":"YulFunctionCall","src":"2815:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:139","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:139"},"nodeType":"YulFunctionCall","src":"2808:32:139"},"nodeType":"YulExpressionStatement","src":"2808:32:139"},{"nodeType":"YulAssignment","src":"2849:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:139"},"nodeType":"YulFunctionCall","src":"2857:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:139","type":""}],"src":"2484:398:139"},{"body":{"nodeType":"YulBlock","src":"3061:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:139"},"nodeType":"YulFunctionCall","src":"3071:21:139"},"nodeType":"YulExpressionStatement","src":"3071:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:139"},"nodeType":"YulFunctionCall","src":"3108:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:139"},"nodeType":"YulFunctionCall","src":"3101:30:139"},"nodeType":"YulExpressionStatement","src":"3101:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:139"},"nodeType":"YulFunctionCall","src":"3147:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:139","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:139"},"nodeType":"YulFunctionCall","src":"3140:59:139"},"nodeType":"YulExpressionStatement","src":"3140:59:139"},{"nodeType":"YulAssignment","src":"3208:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:139"},"nodeType":"YulFunctionCall","src":"3216:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:139","type":""}],"src":"2887:353:139"},{"body":{"nodeType":"YulBlock","src":"3419:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:139"},"nodeType":"YulFunctionCall","src":"3429:21:139"},"nodeType":"YulExpressionStatement","src":"3429:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:139"},"nodeType":"YulFunctionCall","src":"3466:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:139"},"nodeType":"YulFunctionCall","src":"3459:30:139"},"nodeType":"YulExpressionStatement","src":"3459:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:139"},"nodeType":"YulFunctionCall","src":"3505:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:139","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:139"},"nodeType":"YulFunctionCall","src":"3498:62:139"},"nodeType":"YulExpressionStatement","src":"3498:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:139"},"nodeType":"YulFunctionCall","src":"3576:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:139","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:139"},"nodeType":"YulFunctionCall","src":"3569:36:139"},"nodeType":"YulExpressionStatement","src":"3569:36:139"},{"nodeType":"YulAssignment","src":"3614:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:139"},"nodeType":"YulFunctionCall","src":"3622:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:139","type":""}],"src":"3245:402:139"},{"body":{"nodeType":"YulBlock","src":"3826:227:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:139"},"nodeType":"YulFunctionCall","src":"3836:21:139"},"nodeType":"YulExpressionStatement","src":"3836:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:139"},"nodeType":"YulFunctionCall","src":"3873:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:139","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:139"},"nodeType":"YulFunctionCall","src":"3866:30:139"},"nodeType":"YulExpressionStatement","src":"3866:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:139"},"nodeType":"YulFunctionCall","src":"3912:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:139","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:139"},"nodeType":"YulFunctionCall","src":"3905:62:139"},"nodeType":"YulExpressionStatement","src":"3905:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:139"},"nodeType":"YulFunctionCall","src":"3983:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:139","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:139"},"nodeType":"YulFunctionCall","src":"3976:35:139"},"nodeType":"YulExpressionStatement","src":"3976:35:139"},{"nodeType":"YulAssignment","src":"4020:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:139"},"nodeType":"YulFunctionCall","src":"4028:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:139","type":""}],"src":"3652:401:139"},{"body":{"nodeType":"YulBlock","src":"4232:226:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:139"},"nodeType":"YulFunctionCall","src":"4242:21:139"},"nodeType":"YulExpressionStatement","src":"4242:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:139"},"nodeType":"YulFunctionCall","src":"4279:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:139","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:139"},"nodeType":"YulFunctionCall","src":"4272:30:139"},"nodeType":"YulExpressionStatement","src":"4272:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:139"},"nodeType":"YulFunctionCall","src":"4318:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:139","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:139"},"nodeType":"YulFunctionCall","src":"4311:62:139"},"nodeType":"YulExpressionStatement","src":"4311:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:139"},"nodeType":"YulFunctionCall","src":"4389:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:139","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:139"},"nodeType":"YulFunctionCall","src":"4382:34:139"},"nodeType":"YulExpressionStatement","src":"4382:34:139"},{"nodeType":"YulAssignment","src":"4425:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:139"},"nodeType":"YulFunctionCall","src":"4433:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:139","type":""}],"src":"4058:400:139"},{"body":{"nodeType":"YulBlock","src":"4637:227:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:139"},"nodeType":"YulFunctionCall","src":"4647:21:139"},"nodeType":"YulExpressionStatement","src":"4647:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:139"},"nodeType":"YulFunctionCall","src":"4684:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:139","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:139"},"nodeType":"YulFunctionCall","src":"4677:30:139"},"nodeType":"YulExpressionStatement","src":"4677:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:139"},"nodeType":"YulFunctionCall","src":"4723:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:139","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:139"},"nodeType":"YulFunctionCall","src":"4716:62:139"},"nodeType":"YulExpressionStatement","src":"4716:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:139"},"nodeType":"YulFunctionCall","src":"4794:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:139","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:139"},"nodeType":"YulFunctionCall","src":"4787:35:139"},"nodeType":"YulExpressionStatement","src":"4787:35:139"},{"nodeType":"YulAssignment","src":"4831:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:139"},"nodeType":"YulFunctionCall","src":"4839:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:139","type":""}],"src":"4463:401:139"},{"body":{"nodeType":"YulBlock","src":"4970:76:139","statements":[{"nodeType":"YulAssignment","src":"4980:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:139"},"nodeType":"YulFunctionCall","src":"4988:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:139"},"nodeType":"YulFunctionCall","src":"5015:25:139"},"nodeType":"YulExpressionStatement","src":"5015:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:139","type":""}],"src":"4869:177:139"},{"body":{"nodeType":"YulBlock","src":"5148:87:139","statements":[{"nodeType":"YulAssignment","src":"5158:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:139"},"nodeType":"YulFunctionCall","src":"5166:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:139"},"nodeType":"YulFunctionCall","src":"5211:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:139"},"nodeType":"YulFunctionCall","src":"5193:36:139"},"nodeType":"YulExpressionStatement","src":"5193:36:139"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:139","type":""}],"src":"5051:184:139"},{"body":{"nodeType":"YulBlock","src":"5288:181:139","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:139","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:139"},"nodeType":"YulFunctionCall","src":"5349:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:139"},"nodeType":"YulFunctionCall","src":"5337:33:139"},"nodeType":"YulExpressionStatement","src":"5337:33:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:139"},"nodeType":"YulFunctionCall","src":"5383:15:139"},"nodeType":"YulExpressionStatement","src":"5383:15:139"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:139"},"nodeType":"YulFunctionCall","src":"5411:17:139"},"nodeType":"YulExpressionStatement","src":"5411:17:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:139"},"nodeType":"YulFunctionCall","src":"5307:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:139"},"nodeType":"YulFunctionCall","src":"5301:13:139"},"nodeType":"YulIf","src":"5298:2:139"},{"nodeType":"YulAssignment","src":"5447:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:139"},"nodeType":"YulFunctionCall","src":"5454:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:139","type":""}],"src":"5240:229:139"},{"body":{"nodeType":"YulBlock","src":"5529:325:139","statements":[{"nodeType":"YulAssignment","src":"5539:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5553:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"5556:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5549:3:139"},"nodeType":"YulFunctionCall","src":"5549:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:139"},"nodeType":"YulFunctionCall","src":"5596:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:139","statements":[{"nodeType":"YulAssignment","src":"5649:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:139"},"nodeType":"YulFunctionCall","src":"5659:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:139"},"nodeType":"YulFunctionCall","src":"5620:26:139"},"nodeType":"YulIf","src":"5617:2:139"},{"body":{"nodeType":"YulBlock","src":"5737:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:139"},"nodeType":"YulFunctionCall","src":"5761:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:139"},"nodeType":"YulFunctionCall","src":"5751:31:139"},"nodeType":"YulExpressionStatement","src":"5751:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:139"},"nodeType":"YulFunctionCall","src":"5795:15:139"},"nodeType":"YulExpressionStatement","src":"5795:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:139"},"nodeType":"YulFunctionCall","src":"5823:15:139"},"nodeType":"YulExpressionStatement","src":"5823:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:139"},"nodeType":"YulFunctionCall","src":"5713:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:139"},"nodeType":"YulFunctionCall","src":"5690:38:139"},"nodeType":"YulIf","src":"5687:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:139","type":""}],"src":"5474:380:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), length)\n        let i := tail\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), tail)\n        }\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n        mstore(add(headStart, 96), \"alance\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n        mstore(add(headStart, 96), \" zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y))\n        {\n            mstore(sum, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(sum, 0x24)\n        }\n        sum := add(x, y)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c39190610797565b60405180910390f35b6100df6100da36600461076e565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610733565b61024a565b604051601281526020016100c3565b6100df61013136600461076e565b61026e565b6100f36101443660046106e0565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461076e565b61029f565b6100df61018836600461076e565b61031f565b6100f361019b366004610701565b61032d565b6060600380546101af9061080e565b80601f01602080910402602001604051908101604052809291908181526020018280546101db9061080e565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b91906107ea565b610358565b6060600480546101af9061080e565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061066b9084906107ea565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b791815260200190565b60405180910390a36104f0565b80356001600160a01b03811681146106db57600080fd5b919050565b6000602082840312156106f1578081fd5b6106fa826106c4565b9392505050565b60008060408385031215610713578081fd5b61071c836106c4565b915061072a602084016106c4565b90509250929050565b600080600060608486031215610747578081fd5b610750846106c4565b925061075e602085016106c4565b9150604084013590509250925092565b60008060408385031215610780578182fd5b610789836106c4565b946020939093013593505050565b6000602080835283518082850152825b818110156107c3578581018301518582016040015282016107a7565b818111156107d45783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080957634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168061082257607f821691505b6020821081141561084357634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212205b65dd173fa0543ffc3583fb28fa8f03b55cf32b6bd60012207edbcaadc5301264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x797 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x733 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x80E 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 0x1DB SWAP1 PUSH2 0x80E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x7EA JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x80E JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 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 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x66B SWAP1 DUP5 SWAP1 PUSH2 0x7EA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6B7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F1 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x6FA DUP3 PUSH2 0x6C4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x713 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x71C DUP4 PUSH2 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x72A PUSH1 0x20 DUP5 ADD PUSH2 0x6C4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x747 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x750 DUP5 PUSH2 0x6C4 JUMP JUMPDEST SWAP3 POP PUSH2 0x75E PUSH1 0x20 DUP6 ADD PUSH2 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x780 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x789 DUP4 PUSH2 0x6C4 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7C3 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7A7 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7D4 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x809 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x822 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x843 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST PUSH6 0xDD173FA0543F 0xFC CALLDATALOAD DUP4 0xFB 0x28 STATICCALL DUP16 SUB 0xB5 0x5C RETURN 0x2B PUSH12 0xD60012207EDBCAADC5301264 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"1403:11214:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:139;;1438:22;1420:41;;1408:2;1393:18;4433:197:24;1375:92:139;3244:106:24;3331:12;;3244:106;;;5015:25:139;;;5003:2;4988:18;3244:106:24;4970:76:139;5192:286:24;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;5193:36:139;;5181:2;5166:18;3093:91:24;5148:87:139;5873:234:24;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:24;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:38;4570:32:24;719:10:38;4586:7:24;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:24;;4433:197;-1:-1:-1;;;4433:197:24:o;5192:286::-;5319:4;719:10:38;5375:38:24;5391:4;719:10:38;5406:6:24;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:24;;5192:286;-1:-1:-1;;;;5192:286:24:o;5873:234::-;5961:4;719:10:38;6015:64:24;719:10:38;6031:7:24;6068:10;6040:25;719:10:38;6031:7:24;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:38;6687:4:24;6768:25;719:10:38;6785:7:24;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:24;;4665:2:139;6803:85:24;;;4647:21:139;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:139;;;4787:35;4839:19;;6803:85:24;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:38;3862:28:24;719:10:38;3879:2:24;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:24;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:24;;10233:68;;;;-1:-1:-1;;;10233:68:24;;4260:2:139;10233:68:24;;;4242:21:139;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:139;;;4382:34;4433:19;;10233:68:24;4232:226:139;10233:68:24;-1:-1:-1;;;;;10319:21:24;;10311:68;;;;-1:-1:-1;;;10311:68:24;;2686:2:139;10311:68:24;;;2668:21:139;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:139;;;2808:32;2857:19;;10311:68:24;2658:224:139;10311:68:24;-1:-1:-1;;;;;10390:18:24;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:139;;;10441:32:24;;4988:18:139;10441:32:24;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:24;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:24;;3089:2:139;11010:68:24;;;3071:21:139;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:24;3061:179:139;11010:68:24;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:24;;7593:68;;;;-1:-1:-1;;;7593:68:24;;3854:2:139;7593:68:24;;;3836:21:139;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:139;;;3976:35;4028:19;;7593:68:24;3826:227:139;7593:68:24;-1:-1:-1;;;;;7679:16:24;;7671:64;;;;-1:-1:-1;;;7671:64:24;;2282:2:139;7671:64:24;;;2264:21:139;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:139;;;2404:33;2454:19;;7671:64:24;2254:225:139;7671:64:24;-1:-1:-1;;;;;7817:15:24;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:24;;3447:2:139;7842:72:24;;;3429:21:139;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:139;;;3569:36;3622:19;;7842:72:24;3419:228:139;7842:72:24;-1:-1:-1;;;;;7948:15:24;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:24;8054:4;-1:-1:-1;;;;;8045:26:24;;8064:6;8045:26;;;;5015:25:139;;5003:2;4988:18;;4970:76;8045:26:24;;;;;;;;8082:37;11786:121;14:173:139;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:139:o;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:139:o;1472:603::-;1584:4;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:139;2038:15;-1:-1:-1;;2034:29:139;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:139:o;5240:229::-;5280:3;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:139;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:139;;5288:181::o;5474:380::-;5553:1;5549:12;;;;5596;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"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.4+commit.c7e474f2\"},\"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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. 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}.\",\"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}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. 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 value {ERC20} uses, unless this function is 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\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"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"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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.4+commit.c7e474f2\"},\"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\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"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"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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.4+commit.c7e474f2\"},\"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._\",\"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\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208dfe555a9694cc7d558ef78fc987bc8ef6d97776ce418cd280bee5548ad31fb864736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 INVALID SSTORE GAS SWAP7 SWAP5 0xCC PUSH30 0x558EF78FC987BC8EF6D97776CE418CD280BEE5548AD31FB864736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"707:3748:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;707:3748:28;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208dfe555a9694cc7d558ef78fc987bc8ef6d97776ce418cd280bee5548ad31fb864736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 INVALID SSTORE GAS SWAP7 SWAP5 0xCC PUSH30 0x558EF78FC987BC8EF6D97776CE418CD280BEE5548AD31FB864736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"707:3748:28:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"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":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2039:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:845:139","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:139"},"nodeType":"YulFunctionCall","src":"129:20:139"},"nodeType":"YulExpressionStatement","src":"129:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:139"},"nodeType":"YulFunctionCall","src":"102:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:139"},"nodeType":"YulFunctionCall","src":"98:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:139"},"nodeType":"YulFunctionCall","src":"91:35:139"},"nodeType":"YulIf","src":"88:2:139"},{"nodeType":"YulVariableDeclaration","src":"160:23:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"176:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"170:5:139"},"nodeType":"YulFunctionCall","src":"170:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"192:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"210:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"214:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"206:3:139"},"nodeType":"YulFunctionCall","src":"206:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"218:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"202:3:139"},"nodeType":"YulFunctionCall","src":"202:18:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"196:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"243:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"245:16:139"},"nodeType":"YulFunctionCall","src":"245:18:139"},"nodeType":"YulExpressionStatement","src":"245:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"235:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"239:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"232:2:139"},"nodeType":"YulFunctionCall","src":"232:10:139"},"nodeType":"YulIf","src":"229:2:139"},{"nodeType":"YulVariableDeclaration","src":"274:17:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"288:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"284:3:139"},"nodeType":"YulFunctionCall","src":"284:7:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"278:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"300:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"314:5:139"},"nodeType":"YulFunctionCall","src":"314:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"304:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"332:71:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"354:6:139"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"378:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"382:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:139"},"nodeType":"YulFunctionCall","src":"374:13:139"},{"name":"_3","nodeType":"YulIdentifier","src":"389:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"370:3:139"},"nodeType":"YulFunctionCall","src":"370:22:139"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"366:3:139"},"nodeType":"YulFunctionCall","src":"366:31:139"},{"name":"_3","nodeType":"YulIdentifier","src":"399:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"362:3:139"},"nodeType":"YulFunctionCall","src":"362:40:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:139"},"nodeType":"YulFunctionCall","src":"350:53:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"336:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"464:16:139"},"nodeType":"YulFunctionCall","src":"464:18:139"},"nodeType":"YulExpressionStatement","src":"464:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"421:10:139"},{"name":"_2","nodeType":"YulIdentifier","src":"433:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"418:2:139"},"nodeType":"YulFunctionCall","src":"418:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"453:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"438:2:139"},"nodeType":"YulFunctionCall","src":"438:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"415:2:139"},"nodeType":"YulFunctionCall","src":"415:46:139"},"nodeType":"YulIf","src":"412:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"500:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"504:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:139"},"nodeType":"YulFunctionCall","src":"493:22:139"},"nodeType":"YulExpressionStatement","src":"493:22:139"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"531:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"539:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"524:6:139"},"nodeType":"YulFunctionCall","src":"524:18:139"},"nodeType":"YulExpressionStatement","src":"524:18:139"},{"nodeType":"YulVariableDeclaration","src":"551:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"561:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"555:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"611:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"620:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"627:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"613:6:139"},"nodeType":"YulFunctionCall","src":"613:20:139"},"nodeType":"YulExpressionStatement","src":"613:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"588:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"596:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:139"},"nodeType":"YulFunctionCall","src":"584:15:139"},{"name":"_4","nodeType":"YulIdentifier","src":"601:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"580:3:139"},"nodeType":"YulFunctionCall","src":"580:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"606:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"577:2:139"},"nodeType":"YulFunctionCall","src":"577:33:139"},"nodeType":"YulIf","src":"574:2:139"},{"nodeType":"YulVariableDeclaration","src":"644:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"653:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"648:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"713:87:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"742:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"750:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:139"},"nodeType":"YulFunctionCall","src":"738:14:139"},{"name":"_4","nodeType":"YulIdentifier","src":"754:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:139"},"nodeType":"YulFunctionCall","src":"734:23:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"781:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:139"},"nodeType":"YulFunctionCall","src":"769:14:139"},{"name":"_4","nodeType":"YulIdentifier","src":"785:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:139"},"nodeType":"YulFunctionCall","src":"765:23:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"759:5:139"},"nodeType":"YulFunctionCall","src":"759:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:139"},"nodeType":"YulFunctionCall","src":"727:63:139"},"nodeType":"YulExpressionStatement","src":"727:63:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"678:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"681:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"675:2:139"},"nodeType":"YulFunctionCall","src":"675:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"685:19:139","statements":[{"nodeType":"YulAssignment","src":"687:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"696:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"699:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:139"},"nodeType":"YulFunctionCall","src":"692:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"687:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"671:3:139","statements":[]},"src":"667:133:139"},{"body":{"nodeType":"YulBlock","src":"830:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"859:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"867:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"855:3:139"},"nodeType":"YulFunctionCall","src":"855:15:139"},{"name":"_4","nodeType":"YulIdentifier","src":"872:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:139"},"nodeType":"YulFunctionCall","src":"851:24:139"},{"name":"array","nodeType":"YulIdentifier","src":"877:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"844:6:139"},"nodeType":"YulFunctionCall","src":"844:39:139"},"nodeType":"YulExpressionStatement","src":"844:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"815:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"812:2:139"},"nodeType":"YulFunctionCall","src":"812:9:139"},"nodeType":"YulIf","src":"809:2:139"},{"nodeType":"YulAssignment","src":"902:15:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"911:6:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"902:5:139"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:139","type":""}],"src":"14:909:139"},{"body":{"nodeType":"YulBlock","src":"1046:474:139","statements":[{"body":{"nodeType":"YulBlock","src":"1092:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:139"},"nodeType":"YulFunctionCall","src":"1094:22:139"},"nodeType":"YulExpressionStatement","src":"1094:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1067:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1076:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1063:3:139"},"nodeType":"YulFunctionCall","src":"1063:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1059:3:139"},"nodeType":"YulFunctionCall","src":"1059:32:139"},"nodeType":"YulIf","src":"1056:2:139"},{"nodeType":"YulVariableDeclaration","src":"1127:30:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1147:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:139"},"nodeType":"YulFunctionCall","src":"1141:16:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1131:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1166:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1184:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1188:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1180:3:139"},"nodeType":"YulFunctionCall","src":"1180:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"1192:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1176:3:139"},"nodeType":"YulFunctionCall","src":"1176:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1170:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1221:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1238:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1223:6:139"},"nodeType":"YulFunctionCall","src":"1223:22:139"},"nodeType":"YulExpressionStatement","src":"1223:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1209:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1217:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1206:2:139"},"nodeType":"YulFunctionCall","src":"1206:14:139"},"nodeType":"YulIf","src":"1203:2:139"},{"nodeType":"YulAssignment","src":"1256:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1299:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1310:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1295:3:139"},"nodeType":"YulFunctionCall","src":"1295:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:139"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1266:28:139"},"nodeType":"YulFunctionCall","src":"1266:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1256:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1336:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1362:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1373:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1358:3:139"},"nodeType":"YulFunctionCall","src":"1358:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1352:5:139"},"nodeType":"YulFunctionCall","src":"1352:25:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1340:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1406:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1415:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1423:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1408:6:139"},"nodeType":"YulFunctionCall","src":"1408:22:139"},"nodeType":"YulExpressionStatement","src":"1408:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1392:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1402:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:139"},"nodeType":"YulFunctionCall","src":"1389:16:139"},"nodeType":"YulIf","src":"1386:2:139"},{"nodeType":"YulAssignment","src":"1441:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1495:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:139"},"nodeType":"YulFunctionCall","src":"1480:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1506:7:139"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1451:28:139"},"nodeType":"YulFunctionCall","src":"1451:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1441:6:139"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1004:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1015:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1027:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1035:6:139","type":""}],"src":"928:592:139"},{"body":{"nodeType":"YulBlock","src":"1580:325:139","statements":[{"nodeType":"YulAssignment","src":"1590:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1604:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1607:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1600:3:139"},"nodeType":"YulFunctionCall","src":"1600:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1590:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1621:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1651:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"1657:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1647:3:139"},"nodeType":"YulFunctionCall","src":"1647:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1625:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:31:139","statements":[{"nodeType":"YulAssignment","src":"1700:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1714:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1722:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1710:3:139"},"nodeType":"YulFunctionCall","src":"1710:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1700:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1678:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1671:6:139"},"nodeType":"YulFunctionCall","src":"1671:26:139"},"nodeType":"YulIf","src":"1668:2:139"},{"body":{"nodeType":"YulBlock","src":"1788:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1809:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1816:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1821:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1812:3:139"},"nodeType":"YulFunctionCall","src":"1812:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1802:6:139"},"nodeType":"YulFunctionCall","src":"1802:31:139"},"nodeType":"YulExpressionStatement","src":"1802:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1853:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1856:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1846:6:139"},"nodeType":"YulFunctionCall","src":"1846:15:139"},"nodeType":"YulExpressionStatement","src":"1846:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1881:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1884:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1874:6:139"},"nodeType":"YulFunctionCall","src":"1874:15:139"},"nodeType":"YulExpressionStatement","src":"1874:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1744:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1767:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1775:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1764:2:139"},"nodeType":"YulFunctionCall","src":"1764:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1741:2:139"},"nodeType":"YulFunctionCall","src":"1741:38:139"},"nodeType":"YulIf","src":"1738:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1560:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1569:6:139","type":""}],"src":"1525:380:139"},{"body":{"nodeType":"YulBlock","src":"1942:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1966:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1971:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1962:3:139"},"nodeType":"YulFunctionCall","src":"1962:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1952:6:139"},"nodeType":"YulFunctionCall","src":"1952:31:139"},"nodeType":"YulExpressionStatement","src":"1952:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1999:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2002:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1992:6:139"},"nodeType":"YulFunctionCall","src":"1992:15:139"},"nodeType":"YulExpressionStatement","src":"1992:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2023:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2026:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2016:6:139"},"nodeType":"YulFunctionCall","src":"2016:15:139"},"nodeType":"YulExpressionStatement","src":"2016:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1910:127:139"}]},"contents":"{\n    { }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), _4), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        if gt(i, _1)\n        {\n            mstore(add(add(memPtr, _1), _4), array)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(value0, value0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162001373380380620013738339810160408190526200003491620001c1565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b600181811c908216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6110e8806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100bf5760003560e01c80636352211e1161007c5780636352211e1461016757806370a082311461017a57806395d89b411461019b578063a22cb465146101a3578063b88d4fde146101b6578063c87b56dd146101c9578063e985e9c5146101dc57600080fd5b806301ffc9a7146100c457806306fdde03146100ec578063081812fc14610101578063095ea7b31461012c57806323b872dd1461014157806342842e0e14610154575b600080fd5b6100d76100d2366004610db4565b6101ef565b60405190151581526020015b60405180910390f35b6100f4610241565b6040516100e39190610e9c565b61011461010f366004610dec565b6102d3565b6040516001600160a01b0390911681526020016100e3565b61013f61013a366004610d8b565b6102fa565b005b61013f61014f366004610c41565b610415565b61013f610162366004610c41565b610446565b610114610175366004610dec565b610461565b61018d610188366004610bf5565b610496565b6040519081526020016100e3565b6100f461051c565b61013f6101b1366004610d51565b61052b565b61013f6101c4366004610c7c565b61053a565b6100f46101d7366004610dec565b610572565b6100d76101ea366004610c0f565b6105e6565b60006001600160e01b031982166380ac58cd60e01b148061022057506001600160e01b03198216635b5e139f60e01b145b8061023b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461025090610ff0565b80601f016020809104026020016040519081016040528092919081815260200182805461027c90610ff0565b80156102c95780601f1061029e576101008083540402835291602001916102c9565b820191906000526020600020905b8154815290600101906020018083116102ac57829003601f168201915b5050505050905090565b60006102de82610614565b506000908152600460205260409020546001600160a01b031690565b600061030582610461565b9050806001600160a01b0316836001600160a01b031614156103785760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610394575061039481336105e6565b6104065760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161036f565b610410838361064b565b505050565b61041f33826106b9565b61043b5760405162461bcd60e51b815260040161036f90610f33565b610410838383610718565b6104108383836040518060200160405280600081525061053a565b6000818152600260205260408120546001600160a01b03168061023b5760405162461bcd60e51b815260040161036f90610f01565b60006001600160a01b0382166105005760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461025090610ff0565b6105363383836108b4565b5050565b61054433836106b9565b6105605760405162461bcd60e51b815260040161036f90610f33565b61056c8484848461097f565b50505050565b606061057d82610614565b600061059460408051602081019091526000815290565b905060008151116105b457604051806020016040528060008152506105df565b806105be846109b2565b6040516020016105cf929190610e30565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260409020546001600160a01b03166106485760405162461bcd60e51b815260040161036f90610f01565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061068082610461565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806106c583610461565b9050806001600160a01b0316846001600160a01b031614806106ec57506106ec81856105e6565b806107105750836001600160a01b0316610705846102d3565b6001600160a01b0316145b949350505050565b826001600160a01b031661072b82610461565b6001600160a01b03161461078f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161036f565b6001600160a01b0382166107f15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161036f565b6107fc60008261064b565b6001600160a01b0383166000908152600360205260408120805460019290610825908490610fad565b90915550506001600160a01b0382166000908152600360205260408120805460019290610853908490610f81565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031614156109125760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b604482015260640161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61098a848484610718565b61099684848484610acc565b61056c5760405162461bcd60e51b815260040161036f90610eaf565b6060816109d65750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610a0057806109ea8161102b565b91506109f99050600a83610f99565b91506109da565b60008167ffffffffffffffff811115610a2957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610a53576020820181803683370190505b5090505b841561071057610a68600183610fad565b9150610a75600a86611046565b610a80906030610f81565b60f81b818381518110610aa357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610ac5600a86610f99565b9450610a57565b60006001600160a01b0384163b15610bce57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b10903390899088908890600401610e5f565b602060405180830381600087803b158015610b2a57600080fd5b505af1925050508015610b5a575060408051601f3d908101601f19168201909252610b5791810190610dd0565b60015b610bb4573d808015610b88576040519150601f19603f3d011682016040523d82523d6000602084013e610b8d565b606091505b508051610bac5760405162461bcd60e51b815260040161036f90610eaf565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610710565b506001949350505050565b80356001600160a01b0381168114610bf057600080fd5b919050565b600060208284031215610c06578081fd5b6105df82610bd9565b60008060408385031215610c21578081fd5b610c2a83610bd9565b9150610c3860208401610bd9565b90509250929050565b600080600060608486031215610c55578081fd5b610c5e84610bd9565b9250610c6c60208501610bd9565b9150604084013590509250925092565b60008060008060808587031215610c91578081fd5b610c9a85610bd9565b9350610ca860208601610bd9565b925060408501359150606085013567ffffffffffffffff80821115610ccb578283fd5b818701915087601f830112610cde578283fd5b813581811115610cf057610cf0611086565b604051601f8201601f19908116603f01168101908382118183101715610d1857610d18611086565b816040528281528a6020848701011115610d30578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610d63578182fd5b610d6c83610bd9565b915060208301358015158114610d80578182fd5b809150509250929050565b60008060408385031215610d9d578182fd5b610da683610bd9565b946020939093013593505050565b600060208284031215610dc5578081fd5b81356105df8161109c565b600060208284031215610de1578081fd5b81516105df8161109c565b600060208284031215610dfd578081fd5b5035919050565b60008151808452610e1c816020860160208601610fc4565b601f01601f19169290920160200192915050565b60008351610e42818460208801610fc4565b835190830190610e56818360208801610fc4565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610e9290830184610e04565b9695505050505050565b6020815260006105df6020830184610e04565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610f9457610f9461105a565b500190565b600082610fa857610fa8611070565b500490565b600082821015610fbf57610fbf61105a565b500390565b60005b83811015610fdf578181015183820152602001610fc7565b8381111561056c5750506000910152565b600181811c9082168061100457607f821691505b6020821081141561102557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561103f5761103f61105a565b5060010190565b60008261105557611055611070565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461064857600080fdfea2646970667358221220271ffb1f12b3c09f95be17272f00e0780478a8dea2d80808cd1523f76377194364736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1373 CODESIZE SUB DUP1 PUSH3 0x1373 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1C1 JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x27B JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x228 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x11F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x265 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0x265 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x183 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP5 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1A6 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x187 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1B7 JUMPI DUP5 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1D4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1EB JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x1F9 DUP7 DUP4 DUP8 ADD PUSH3 0x10E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x20F JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x21E DUP6 DUP3 DUP7 ADD PUSH3 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x23D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x10E8 DUP1 PUSH3 0x28B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xBF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x154 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD7 PUSH2 0xD2 CALLDATASIZE PUSH1 0x4 PUSH2 0xDB4 JUMP JUMPDEST PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF4 PUSH2 0x241 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0xE9C JUMP JUMPDEST PUSH2 0x114 PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0x2FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x415 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x446 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x461 JUMP JUMPDEST PUSH2 0x18D PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0x496 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0xF4 PUSH2 0x51C JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0xD51 JUMP JUMPDEST PUSH2 0x52B JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0xC7C JUMP JUMPDEST PUSH2 0x53A JUMP JUMPDEST PUSH2 0xF4 PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x572 JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x220 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x23B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x250 SWAP1 PUSH2 0xFF0 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 0x27C SWAP1 PUSH2 0xFF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x29E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DE DUP3 PUSH2 0x614 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x305 DUP3 PUSH2 0x461 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x378 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x394 JUMPI POP PUSH2 0x394 DUP2 CALLER PUSH2 0x5E6 JUMP JUMPDEST PUSH2 0x406 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST PUSH2 0x410 DUP4 DUP4 PUSH2 0x64B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x41F CALLER DUP3 PUSH2 0x6B9 JUMP JUMPDEST PUSH2 0x43B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF33 JUMP JUMPDEST PUSH2 0x410 DUP4 DUP4 DUP4 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x410 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x53A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x23B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF01 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x500 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x250 SWAP1 PUSH2 0xFF0 JUMP JUMPDEST PUSH2 0x536 CALLER DUP4 DUP4 PUSH2 0x8B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x544 CALLER DUP4 PUSH2 0x6B9 JUMP JUMPDEST PUSH2 0x560 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF33 JUMP JUMPDEST PUSH2 0x56C DUP5 DUP5 DUP5 DUP5 PUSH2 0x97F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x57D DUP3 PUSH2 0x614 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x594 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x5DF JUMP JUMPDEST DUP1 PUSH2 0x5BE DUP5 PUSH2 0x9B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5CF SWAP3 SWAP2 SWAP1 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF01 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x680 DUP3 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6C5 DUP4 PUSH2 0x461 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x6EC JUMPI POP PUSH2 0x6EC DUP2 DUP6 PUSH2 0x5E6 JUMP JUMPDEST DUP1 PUSH2 0x710 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x705 DUP5 PUSH2 0x2D3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x72B DUP3 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x78F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x7F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST PUSH2 0x7FC PUSH1 0x0 DUP3 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x825 SWAP1 DUP5 SWAP1 PUSH2 0xFAD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x853 SWAP1 DUP5 SWAP1 PUSH2 0xF81 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x22A9219B99189D1030B8383937BB32903A379031B0B63632B9 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x98A DUP5 DUP5 DUP5 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x996 DUP5 DUP5 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH2 0x56C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x9D6 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xA00 JUMPI DUP1 PUSH2 0x9EA DUP2 PUSH2 0x102B JUMP JUMPDEST SWAP2 POP PUSH2 0x9F9 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0xF99 JUMP JUMPDEST SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA29 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x710 JUMPI PUSH2 0xA68 PUSH1 0x1 DUP4 PUSH2 0xFAD JUMP JUMPDEST SWAP2 POP PUSH2 0xA75 PUSH1 0xA DUP7 PUSH2 0x1046 JUMP JUMPDEST PUSH2 0xA80 SWAP1 PUSH1 0x30 PUSH2 0xF81 JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0xAC5 PUSH1 0xA DUP7 PUSH2 0xF99 JUMP JUMPDEST SWAP5 POP PUSH2 0xA57 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB10 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xB5A JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xB57 SWAP2 DUP2 ADD SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBB4 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB8D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x710 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC06 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x5DF DUP3 PUSH2 0xBD9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC21 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC2A DUP4 PUSH2 0xBD9 JUMP JUMPDEST SWAP2 POP PUSH2 0xC38 PUSH1 0x20 DUP5 ADD PUSH2 0xBD9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC55 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC5E DUP5 PUSH2 0xBD9 JUMP JUMPDEST SWAP3 POP PUSH2 0xC6C PUSH1 0x20 DUP6 ADD PUSH2 0xBD9 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC91 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC9A DUP6 PUSH2 0xBD9 JUMP JUMPDEST SWAP4 POP PUSH2 0xCA8 PUSH1 0x20 DUP7 ADD PUSH2 0xBD9 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCCB JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCDE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCF0 PUSH2 0x1086 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xD18 JUMPI PUSH2 0xD18 PUSH2 0x1086 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xD30 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD63 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xD6C DUP4 PUSH2 0xBD9 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD80 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD9D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xDA6 DUP4 PUSH2 0xBD9 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5DF DUP2 PUSH2 0x109C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x5DF DUP2 PUSH2 0x109C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDFD JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE1C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xFC4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xE42 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xFC4 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xE56 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xFC4 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xE92 SWAP1 DUP4 ADD DUP5 PUSH2 0xE04 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5DF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE04 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF94 JUMPI PUSH2 0xF94 PUSH2 0x105A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFA8 JUMPI PUSH2 0xFA8 PUSH2 0x1070 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xFBF JUMPI PUSH2 0xFBF PUSH2 0x105A JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xFDF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFC7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x56C JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1004 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1025 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x103F JUMPI PUSH2 0x103F PUSH2 0x105A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1055 JUMPI PUSH2 0x1055 PUSH2 0x1070 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 0x1F 0xFB 0x1F SLT 0xB3 0xC0 SWAP16 SWAP6 0xBE OR 0x27 0x2F STOP 0xE0 PUSH25 0x478A8DEA2D80808CD1523F76377194364736F6C6343000804 STOP CALLER ","sourceMap":"628:13718:29:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;1479:17:29;;;;:7;;:17;;;;;:::i;:::-;;1390:113;;628:13718;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:13718:29;;;-1:-1:-1;628:13718:29;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:909:139;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;170:13;;-1:-1:-1;;;;;232:10:139;;;229:2;;;245:18;;:::i;:::-;320:2;314:9;288:2;374:13;;-1:-1:-1;;370:22:139;;;394:2;366:31;362:40;350:53;;;418:18;;;438:22;;;415:46;412:2;;;464:18;;:::i;:::-;504:10;500:2;493:22;539:2;531:6;524:18;561:4;551:14;;606:3;601:2;596;588:6;584:15;580:24;577:33;574:2;;;627:5;620;613:20;574:2;653:5;644:14;;667:133;681:2;678:1;675:9;667:133;;;769:14;;;765:23;;759:30;738:14;;;734:23;;727:63;692:10;;;;667:133;;;818:2;815:1;812:9;809:2;;;877:5;872:2;867;859:6;855:15;851:24;844:39;809:2;911:6;78:845;-1:-1:-1;;;;;;78:845:139:o;928:592::-;1027:6;1035;1088:2;1076:9;1067:7;1063:23;1059:32;1056:2;;;1109:6;1101;1094:22;1056:2;1141:16;;-1:-1:-1;;;;;1206:14:139;;;1203:2;;;1238:6;1230;1223:22;1203:2;1266:61;1319:7;1310:6;1299:9;1295:22;1266:61;:::i;:::-;1256:71;;1373:2;1362:9;1358:18;1352:25;1336:41;;1402:2;1392:8;1389:16;1386:2;;;1423:6;1415;1408:22;1386:2;;1451:63;1506:7;1495:8;1484:9;1480:24;1451:63;:::i;:::-;1441:73;;;1046:474;;;;;:::o;1525:380::-;1604:1;1600:12;;;;1647;;;1668:2;;1722:4;1714:6;1710:17;1700:27;;1668:2;1775;1767:6;1764:14;1744:18;1741:38;1738:2;;;1821:10;1816:3;1812:20;1809:1;1802:31;1856:4;1853:1;1846:15;1884:4;1881:1;1874:15;1738:2;;1580:325;;;:::o;1910:127::-;1971:10;1966:3;1962:20;1959:1;1952:31;2002:4;1999:1;1992:15;2026:4;2023:1;2016:15;1942:95;628:13718:29;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:11012:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"262:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:139"},"nodeType":"YulFunctionCall","src":"310:22:139"},"nodeType":"YulExpressionStatement","src":"310:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:139"},"nodeType":"YulFunctionCall","src":"279:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:139"},"nodeType":"YulFunctionCall","src":"275:32:139"},"nodeType":"YulIf","src":"272:2:139"},{"nodeType":"YulAssignment","src":"343:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:139"},"nodeType":"YulFunctionCall","src":"353:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:139","type":""}],"src":"192:196:139"},{"body":{"nodeType":"YulBlock","src":"480:183:139","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:139"},"nodeType":"YulFunctionCall","src":"528:22:139"},"nodeType":"YulExpressionStatement","src":"528:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:139"},"nodeType":"YulFunctionCall","src":"497:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:139"},"nodeType":"YulFunctionCall","src":"493:32:139"},"nodeType":"YulIf","src":"490:2:139"},{"nodeType":"YulAssignment","src":"561:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:139"},"nodeType":"YulFunctionCall","src":"571:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:139"}]},{"nodeType":"YulAssignment","src":"609:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:139"},"nodeType":"YulFunctionCall","src":"638:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:139"},"nodeType":"YulFunctionCall","src":"619:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:139","type":""}],"src":"393:270:139"},{"body":{"nodeType":"YulBlock","src":"772:234:139","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:139"},"nodeType":"YulFunctionCall","src":"820:22:139"},"nodeType":"YulExpressionStatement","src":"820:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:139"},"nodeType":"YulFunctionCall","src":"789:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:139"},"nodeType":"YulFunctionCall","src":"785:32:139"},"nodeType":"YulIf","src":"782:2:139"},{"nodeType":"YulAssignment","src":"853:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:139"},"nodeType":"YulFunctionCall","src":"863:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:139"}]},{"nodeType":"YulAssignment","src":"901:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:139"},"nodeType":"YulFunctionCall","src":"930:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:139"},"nodeType":"YulFunctionCall","src":"911:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:139"}]},{"nodeType":"YulAssignment","src":"958:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:139"},"nodeType":"YulFunctionCall","src":"981:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:139"},"nodeType":"YulFunctionCall","src":"968:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:139","type":""}],"src":"668:338:139"},{"body":{"nodeType":"YulBlock","src":"1141:1053:139","statements":[{"body":{"nodeType":"YulBlock","src":"1188:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1197:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"1205:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1190:6:139"},"nodeType":"YulFunctionCall","src":"1190:22:139"},"nodeType":"YulExpressionStatement","src":"1190:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1162:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1171:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1158:3:139"},"nodeType":"YulFunctionCall","src":"1158:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1183:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1154:3:139"},"nodeType":"YulFunctionCall","src":"1154:33:139"},"nodeType":"YulIf","src":"1151:2:139"},{"nodeType":"YulAssignment","src":"1223:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1233:18:139"},"nodeType":"YulFunctionCall","src":"1233:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:139"}]},{"nodeType":"YulAssignment","src":"1271:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1304:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1315:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:139"},"nodeType":"YulFunctionCall","src":"1300:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1281:18:139"},"nodeType":"YulFunctionCall","src":"1281:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1271:6:139"}]},{"nodeType":"YulAssignment","src":"1328:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1355:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1366:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1351:3:139"},"nodeType":"YulFunctionCall","src":"1351:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1338:12:139"},"nodeType":"YulFunctionCall","src":"1338:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1328:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1379:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1410:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1421:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1406:3:139"},"nodeType":"YulFunctionCall","src":"1406:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1393:12:139"},"nodeType":"YulFunctionCall","src":"1393:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1383:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1434:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1444:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1438:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1489:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1498:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"1506:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1491:6:139"},"nodeType":"YulFunctionCall","src":"1491:22:139"},"nodeType":"YulExpressionStatement","src":"1491:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1477:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1485:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1474:2:139"},"nodeType":"YulFunctionCall","src":"1474:14:139"},"nodeType":"YulIf","src":"1471:2:139"},{"nodeType":"YulVariableDeclaration","src":"1524:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1549:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1534:3:139"},"nodeType":"YulFunctionCall","src":"1534:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1528:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1604:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1613:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"1621:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1606:6:139"},"nodeType":"YulFunctionCall","src":"1606:22:139"},"nodeType":"YulExpressionStatement","src":"1606:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1583:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1587:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1579:3:139"},"nodeType":"YulFunctionCall","src":"1579:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1594:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1575:3:139"},"nodeType":"YulFunctionCall","src":"1575:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1568:6:139"},"nodeType":"YulFunctionCall","src":"1568:35:139"},"nodeType":"YulIf","src":"1565:2:139"},{"nodeType":"YulVariableDeclaration","src":"1639:26:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1662:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1649:12:139"},"nodeType":"YulFunctionCall","src":"1649:16:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1643:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1688:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1690:16:139"},"nodeType":"YulFunctionCall","src":"1690:18:139"},"nodeType":"YulExpressionStatement","src":"1690:18:139"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1680:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1684:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1677:2:139"},"nodeType":"YulFunctionCall","src":"1677:10:139"},"nodeType":"YulIf","src":"1674:2:139"},{"nodeType":"YulVariableDeclaration","src":"1719:17:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1733:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1729:3:139"},"nodeType":"YulFunctionCall","src":"1729:7:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1723:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1745:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1759:5:139"},"nodeType":"YulFunctionCall","src":"1759:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1749:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1777:71:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1799:6:139"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1823:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1827:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1819:3:139"},"nodeType":"YulFunctionCall","src":"1819:13:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1834:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1815:3:139"},"nodeType":"YulFunctionCall","src":"1815:22:139"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:139"},"nodeType":"YulFunctionCall","src":"1811:31:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1844:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1807:3:139"},"nodeType":"YulFunctionCall","src":"1807:40:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1795:3:139"},"nodeType":"YulFunctionCall","src":"1795:53:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1781:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1907:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1909:16:139"},"nodeType":"YulFunctionCall","src":"1909:18:139"},"nodeType":"YulExpressionStatement","src":"1909:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1866:10:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1878:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1863:2:139"},"nodeType":"YulFunctionCall","src":"1863:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1886:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1898:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1883:2:139"},"nodeType":"YulFunctionCall","src":"1883:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1860:2:139"},"nodeType":"YulFunctionCall","src":"1860:46:139"},"nodeType":"YulIf","src":"1857:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1945:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1949:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1938:6:139"},"nodeType":"YulFunctionCall","src":"1938:22:139"},"nodeType":"YulExpressionStatement","src":"1938:22:139"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1976:6:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1984:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1969:6:139"},"nodeType":"YulFunctionCall","src":"1969:18:139"},"nodeType":"YulExpressionStatement","src":"1969:18:139"},{"body":{"nodeType":"YulBlock","src":"2033:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2042:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2050:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2035:6:139"},"nodeType":"YulFunctionCall","src":"2035:22:139"},"nodeType":"YulExpressionStatement","src":"2035:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2010:2:139"},{"name":"_3","nodeType":"YulIdentifier","src":"2014:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:139"},"nodeType":"YulFunctionCall","src":"2006:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:139"},"nodeType":"YulFunctionCall","src":"2002:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2024:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1999:2:139"},"nodeType":"YulFunctionCall","src":"1999:33:139"},"nodeType":"YulIf","src":"1996:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2085:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2081:3:139"},"nodeType":"YulFunctionCall","src":"2081:15:139"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2102:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2106:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2098:3:139"},"nodeType":"YulFunctionCall","src":"2098:11:139"},{"name":"_3","nodeType":"YulIdentifier","src":"2111:2:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2068:12:139"},"nodeType":"YulFunctionCall","src":"2068:46:139"},"nodeType":"YulExpressionStatement","src":"2068:46:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2138:6:139"},{"name":"_3","nodeType":"YulIdentifier","src":"2146:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2134:3:139"},"nodeType":"YulFunctionCall","src":"2134:15:139"},{"kind":"number","nodeType":"YulLiteral","src":"2151:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2130:3:139"},"nodeType":"YulFunctionCall","src":"2130:24:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2156:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2123:6:139"},"nodeType":"YulFunctionCall","src":"2123:40:139"},"nodeType":"YulExpressionStatement","src":"2123:40:139"},{"nodeType":"YulAssignment","src":"2172:16:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2182:6:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2172:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1083:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1094:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1106:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1114:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1122:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1130:6:139","type":""}],"src":"1011:1183:139"},{"body":{"nodeType":"YulBlock","src":"2283:283:139","statements":[{"body":{"nodeType":"YulBlock","src":"2329:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2338:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2346:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2331:6:139"},"nodeType":"YulFunctionCall","src":"2331:22:139"},"nodeType":"YulExpressionStatement","src":"2331:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2304:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2313:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2300:3:139"},"nodeType":"YulFunctionCall","src":"2300:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2325:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2296:3:139"},"nodeType":"YulFunctionCall","src":"2296:32:139"},"nodeType":"YulIf","src":"2293:2:139"},{"nodeType":"YulAssignment","src":"2364:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2374:18:139"},"nodeType":"YulFunctionCall","src":"2374:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2364:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2412:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2442:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2453:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2438:3:139"},"nodeType":"YulFunctionCall","src":"2438:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2425:12:139"},"nodeType":"YulFunctionCall","src":"2425:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2416:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2510:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2519:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2527:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:139"},"nodeType":"YulFunctionCall","src":"2512:22:139"},"nodeType":"YulExpressionStatement","src":"2512:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2479:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2500:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:139"},"nodeType":"YulFunctionCall","src":"2493:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2486:6:139"},"nodeType":"YulFunctionCall","src":"2486:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2476:2:139"},"nodeType":"YulFunctionCall","src":"2476:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2469:6:139"},"nodeType":"YulFunctionCall","src":"2469:40:139"},"nodeType":"YulIf","src":"2466:2:139"},{"nodeType":"YulAssignment","src":"2545:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2555:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2545:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2241:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2252:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2264:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2272:6:139","type":""}],"src":"2199:367:139"},{"body":{"nodeType":"YulBlock","src":"2658:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"2704:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2713:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2721:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2706:6:139"},"nodeType":"YulFunctionCall","src":"2706:22:139"},"nodeType":"YulExpressionStatement","src":"2706:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2679:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2688:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2675:3:139"},"nodeType":"YulFunctionCall","src":"2675:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2700:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2671:3:139"},"nodeType":"YulFunctionCall","src":"2671:32:139"},"nodeType":"YulIf","src":"2668:2:139"},{"nodeType":"YulAssignment","src":"2739:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2749:18:139"},"nodeType":"YulFunctionCall","src":"2749:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2739:6:139"}]},{"nodeType":"YulAssignment","src":"2787:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2814:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2825:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2810:3:139"},"nodeType":"YulFunctionCall","src":"2810:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2797:12:139"},"nodeType":"YulFunctionCall","src":"2797:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2787:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2616:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2627:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2639:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2647:6:139","type":""}],"src":"2571:264:139"},{"body":{"nodeType":"YulBlock","src":"2909:186:139","statements":[{"body":{"nodeType":"YulBlock","src":"2955:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2964:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2972:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2957:6:139"},"nodeType":"YulFunctionCall","src":"2957:22:139"},"nodeType":"YulExpressionStatement","src":"2957:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2930:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2939:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2926:3:139"},"nodeType":"YulFunctionCall","src":"2926:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2951:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2922:3:139"},"nodeType":"YulFunctionCall","src":"2922:32:139"},"nodeType":"YulIf","src":"2919:2:139"},{"nodeType":"YulVariableDeclaration","src":"2990:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3016:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3003:12:139"},"nodeType":"YulFunctionCall","src":"3003:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2994:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3059:5:139"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3035:23:139"},"nodeType":"YulFunctionCall","src":"3035:30:139"},"nodeType":"YulExpressionStatement","src":"3035:30:139"},{"nodeType":"YulAssignment","src":"3074:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3084:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2875:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2886:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2898:6:139","type":""}],"src":"2840:255:139"},{"body":{"nodeType":"YulBlock","src":"3180:179:139","statements":[{"body":{"nodeType":"YulBlock","src":"3226:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3235:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3228:6:139"},"nodeType":"YulFunctionCall","src":"3228:22:139"},"nodeType":"YulExpressionStatement","src":"3228:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3201:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3210:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3197:3:139"},"nodeType":"YulFunctionCall","src":"3197:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3193:3:139"},"nodeType":"YulFunctionCall","src":"3193:32:139"},"nodeType":"YulIf","src":"3190:2:139"},{"nodeType":"YulVariableDeclaration","src":"3261:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3280:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3274:5:139"},"nodeType":"YulFunctionCall","src":"3274:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3265:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3323:5:139"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3299:23:139"},"nodeType":"YulFunctionCall","src":"3299:30:139"},"nodeType":"YulExpressionStatement","src":"3299:30:139"},{"nodeType":"YulAssignment","src":"3338:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3348:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3338:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3146:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3157:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3169:6:139","type":""}],"src":"3100:259:139"},{"body":{"nodeType":"YulBlock","src":"3434:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"3480:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3489:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3497:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3482:6:139"},"nodeType":"YulFunctionCall","src":"3482:22:139"},"nodeType":"YulExpressionStatement","src":"3482:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3455:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3464:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3451:3:139"},"nodeType":"YulFunctionCall","src":"3451:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3476:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3447:3:139"},"nodeType":"YulFunctionCall","src":"3447:32:139"},"nodeType":"YulIf","src":"3444:2:139"},{"nodeType":"YulAssignment","src":"3515:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3538:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3525:12:139"},"nodeType":"YulFunctionCall","src":"3525:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3515:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3400:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3411:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3423:6:139","type":""}],"src":"3364:190:139"},{"body":{"nodeType":"YulBlock","src":"3608:208:139","statements":[{"nodeType":"YulVariableDeclaration","src":"3618:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3638:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3632:5:139"},"nodeType":"YulFunctionCall","src":"3632:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3622:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3660:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"3665:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3653:6:139"},"nodeType":"YulFunctionCall","src":"3653:19:139"},"nodeType":"YulExpressionStatement","src":"3653:19:139"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3707:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"3714:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3703:3:139"},"nodeType":"YulFunctionCall","src":"3703:16:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3725:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"3730:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:139"},"nodeType":"YulFunctionCall","src":"3721:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"3737:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3681:21:139"},"nodeType":"YulFunctionCall","src":"3681:63:139"},"nodeType":"YulExpressionStatement","src":"3681:63:139"},{"nodeType":"YulAssignment","src":"3753:57:139","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3768:3:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3781:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3789:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3777:3:139"},"nodeType":"YulFunctionCall","src":"3777:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3798:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3794:3:139"},"nodeType":"YulFunctionCall","src":"3794:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3773:3:139"},"nodeType":"YulFunctionCall","src":"3773:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3764:3:139"},"nodeType":"YulFunctionCall","src":"3764:39:139"},{"kind":"number","nodeType":"YulLiteral","src":"3805:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3760:3:139"},"nodeType":"YulFunctionCall","src":"3760:50:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3753:3:139"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3585:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3592:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3600:3:139","type":""}],"src":"3559:257:139"},{"body":{"nodeType":"YulBlock","src":"4008:283:139","statements":[{"nodeType":"YulVariableDeclaration","src":"4018:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4038:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4032:5:139"},"nodeType":"YulFunctionCall","src":"4032:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4022:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4080:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4088:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4076:3:139"},"nodeType":"YulFunctionCall","src":"4076:17:139"},{"name":"pos","nodeType":"YulIdentifier","src":"4095:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4100:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4054:21:139"},"nodeType":"YulFunctionCall","src":"4054:53:139"},"nodeType":"YulExpressionStatement","src":"4054:53:139"},{"nodeType":"YulVariableDeclaration","src":"4116:29:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4133:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4138:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4129:3:139"},"nodeType":"YulFunctionCall","src":"4129:16:139"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"4120:5:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4154:29:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4176:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4170:5:139"},"nodeType":"YulFunctionCall","src":"4170:13:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4158:8:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4218:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4226:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4214:3:139"},"nodeType":"YulFunctionCall","src":"4214:17:139"},{"name":"end_1","nodeType":"YulIdentifier","src":"4233:5:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"4240:8:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4192:21:139"},"nodeType":"YulFunctionCall","src":"4192:57:139"},"nodeType":"YulExpressionStatement","src":"4192:57:139"},{"nodeType":"YulAssignment","src":"4258:27:139","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4269:5:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"4276:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4265:3:139"},"nodeType":"YulFunctionCall","src":"4265:20:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4258:3:139"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3976:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3981:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3989:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4000:3:139","type":""}],"src":"3821:470:139"},{"body":{"nodeType":"YulBlock","src":"4397:102:139","statements":[{"nodeType":"YulAssignment","src":"4407:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4419:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4430:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:139"},"nodeType":"YulFunctionCall","src":"4415:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4407:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4449:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4464:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4480:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4485:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4476:3:139"},"nodeType":"YulFunctionCall","src":"4476:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4489:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4472:3:139"},"nodeType":"YulFunctionCall","src":"4472:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4460:3:139"},"nodeType":"YulFunctionCall","src":"4460:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4442:6:139"},"nodeType":"YulFunctionCall","src":"4442:51:139"},"nodeType":"YulExpressionStatement","src":"4442:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4366:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4377:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4388:4:139","type":""}],"src":"4296:203:139"},{"body":{"nodeType":"YulBlock","src":"4707:285:139","statements":[{"nodeType":"YulVariableDeclaration","src":"4717:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4735:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4740:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4731:3:139"},"nodeType":"YulFunctionCall","src":"4731:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4744:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4727:3:139"},"nodeType":"YulFunctionCall","src":"4727:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4721:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4762:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4777:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4785:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4773:3:139"},"nodeType":"YulFunctionCall","src":"4773:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4755:6:139"},"nodeType":"YulFunctionCall","src":"4755:34:139"},"nodeType":"YulExpressionStatement","src":"4755:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4809:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4820:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4805:3:139"},"nodeType":"YulFunctionCall","src":"4805:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4829:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4837:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4825:3:139"},"nodeType":"YulFunctionCall","src":"4825:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4798:6:139"},"nodeType":"YulFunctionCall","src":"4798:43:139"},"nodeType":"YulExpressionStatement","src":"4798:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4861:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4872:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4857:3:139"},"nodeType":"YulFunctionCall","src":"4857:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"4877:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4850:6:139"},"nodeType":"YulFunctionCall","src":"4850:34:139"},"nodeType":"YulExpressionStatement","src":"4850:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4904:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4915:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4900:3:139"},"nodeType":"YulFunctionCall","src":"4900:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4920:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4893:6:139"},"nodeType":"YulFunctionCall","src":"4893:31:139"},"nodeType":"YulExpressionStatement","src":"4893:31:139"},{"nodeType":"YulAssignment","src":"4933:53:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4958:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4970:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4981:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4966:3:139"},"nodeType":"YulFunctionCall","src":"4966:19:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4941:16:139"},"nodeType":"YulFunctionCall","src":"4941:45:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4933:4:139"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4652:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4663:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4671:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4679:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4687:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4698:4:139","type":""}],"src":"4504:488:139"},{"body":{"nodeType":"YulBlock","src":"5092:92:139","statements":[{"nodeType":"YulAssignment","src":"5102:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5114:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5125:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5110:3:139"},"nodeType":"YulFunctionCall","src":"5110:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5102:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5144:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5169:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5162:6:139"},"nodeType":"YulFunctionCall","src":"5162:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5155:6:139"},"nodeType":"YulFunctionCall","src":"5155:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5137:6:139"},"nodeType":"YulFunctionCall","src":"5137:41:139"},"nodeType":"YulExpressionStatement","src":"5137:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5061:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5072:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5083:4:139","type":""}],"src":"4997:187:139"},{"body":{"nodeType":"YulBlock","src":"5310:98:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5327:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5338:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5320:6:139"},"nodeType":"YulFunctionCall","src":"5320:21:139"},"nodeType":"YulExpressionStatement","src":"5320:21:139"},{"nodeType":"YulAssignment","src":"5350:52:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5375:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5387:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5398:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5383:3:139"},"nodeType":"YulFunctionCall","src":"5383:18:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5358:16:139"},"nodeType":"YulFunctionCall","src":"5358:44:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5350:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5279:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5290:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5301:4:139","type":""}],"src":"5189:219:139"},{"body":{"nodeType":"YulBlock","src":"5587:240:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5604:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5615:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5597:6:139"},"nodeType":"YulFunctionCall","src":"5597:21:139"},"nodeType":"YulExpressionStatement","src":"5597:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5638:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5649:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:139"},"nodeType":"YulFunctionCall","src":"5634:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5654:2:139","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5627:6:139"},"nodeType":"YulFunctionCall","src":"5627:30:139"},"nodeType":"YulExpressionStatement","src":"5627:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5677:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5688:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5673:3:139"},"nodeType":"YulFunctionCall","src":"5673:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5693:34:139","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5666:6:139"},"nodeType":"YulFunctionCall","src":"5666:62:139"},"nodeType":"YulExpressionStatement","src":"5666:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5748:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5759:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5744:3:139"},"nodeType":"YulFunctionCall","src":"5744:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5764:20:139","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5737:6:139"},"nodeType":"YulFunctionCall","src":"5737:48:139"},"nodeType":"YulExpressionStatement","src":"5737:48:139"},{"nodeType":"YulAssignment","src":"5794:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5806:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5817:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5802:3:139"},"nodeType":"YulFunctionCall","src":"5802:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5794:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5564:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5578:4:139","type":""}],"src":"5413:414:139"},{"body":{"nodeType":"YulBlock","src":"6006:227:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6023:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6016:6:139"},"nodeType":"YulFunctionCall","src":"6016:21:139"},"nodeType":"YulExpressionStatement","src":"6016:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6057:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6068:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6053:3:139"},"nodeType":"YulFunctionCall","src":"6053:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6073:2:139","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6046:6:139"},"nodeType":"YulFunctionCall","src":"6046:30:139"},"nodeType":"YulExpressionStatement","src":"6046:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6096:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6107:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6092:3:139"},"nodeType":"YulFunctionCall","src":"6092:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6112:34:139","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6085:6:139"},"nodeType":"YulFunctionCall","src":"6085:62:139"},"nodeType":"YulExpressionStatement","src":"6085:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6167:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6178:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6163:3:139"},"nodeType":"YulFunctionCall","src":"6163:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6183:7:139","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6156:6:139"},"nodeType":"YulFunctionCall","src":"6156:35:139"},"nodeType":"YulExpressionStatement","src":"6156:35:139"},{"nodeType":"YulAssignment","src":"6200:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6212:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6223:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6208:3:139"},"nodeType":"YulFunctionCall","src":"6208:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6200:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5983:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5997:4:139","type":""}],"src":"5832:401:139"},{"body":{"nodeType":"YulBlock","src":"6412:226:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6429:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6440:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6422:6:139"},"nodeType":"YulFunctionCall","src":"6422:21:139"},"nodeType":"YulExpressionStatement","src":"6422:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6463:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6474:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6459:3:139"},"nodeType":"YulFunctionCall","src":"6459:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6479:2:139","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6452:6:139"},"nodeType":"YulFunctionCall","src":"6452:30:139"},"nodeType":"YulExpressionStatement","src":"6452:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6502:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6513:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6498:3:139"},"nodeType":"YulFunctionCall","src":"6498:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6518:34:139","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6491:6:139"},"nodeType":"YulFunctionCall","src":"6491:62:139"},"nodeType":"YulExpressionStatement","src":"6491:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6573:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6584:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6569:3:139"},"nodeType":"YulFunctionCall","src":"6569:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6589:6:139","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6562:6:139"},"nodeType":"YulFunctionCall","src":"6562:34:139"},"nodeType":"YulExpressionStatement","src":"6562:34:139"},{"nodeType":"YulAssignment","src":"6605:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6617:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6628:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6613:3:139"},"nodeType":"YulFunctionCall","src":"6613:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6605:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6389:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6403:4:139","type":""}],"src":"6238:400:139"},{"body":{"nodeType":"YulBlock","src":"6817:175:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6834:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6845:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6827:6:139"},"nodeType":"YulFunctionCall","src":"6827:21:139"},"nodeType":"YulExpressionStatement","src":"6827:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6868:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6879:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6864:3:139"},"nodeType":"YulFunctionCall","src":"6864:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6884:2:139","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6857:6:139"},"nodeType":"YulFunctionCall","src":"6857:30:139"},"nodeType":"YulExpressionStatement","src":"6857:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6907:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6918:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6903:3:139"},"nodeType":"YulFunctionCall","src":"6903:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6923:27:139","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6896:6:139"},"nodeType":"YulFunctionCall","src":"6896:55:139"},"nodeType":"YulExpressionStatement","src":"6896:55:139"},{"nodeType":"YulAssignment","src":"6960:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6972:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6983:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6968:3:139"},"nodeType":"YulFunctionCall","src":"6968:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6960:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6794:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6808:4:139","type":""}],"src":"6643:349:139"},{"body":{"nodeType":"YulBlock","src":"7171:231:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7188:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7199:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7181:6:139"},"nodeType":"YulFunctionCall","src":"7181:21:139"},"nodeType":"YulExpressionStatement","src":"7181:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7222:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7233:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7218:3:139"},"nodeType":"YulFunctionCall","src":"7218:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7238:2:139","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7211:6:139"},"nodeType":"YulFunctionCall","src":"7211:30:139"},"nodeType":"YulExpressionStatement","src":"7211:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7261:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7272:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7257:3:139"},"nodeType":"YulFunctionCall","src":"7257:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7277:34:139","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7250:6:139"},"nodeType":"YulFunctionCall","src":"7250:62:139"},"nodeType":"YulExpressionStatement","src":"7250:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7332:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7343:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7328:3:139"},"nodeType":"YulFunctionCall","src":"7328:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7348:11:139","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7321:6:139"},"nodeType":"YulFunctionCall","src":"7321:39:139"},"nodeType":"YulExpressionStatement","src":"7321:39:139"},{"nodeType":"YulAssignment","src":"7369:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7381:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7392:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7377:3:139"},"nodeType":"YulFunctionCall","src":"7377:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7369:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7148:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7162:4:139","type":""}],"src":"6997:405:139"},{"body":{"nodeType":"YulBlock","src":"7581:252:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7598:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7609:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7591:6:139"},"nodeType":"YulFunctionCall","src":"7591:21:139"},"nodeType":"YulExpressionStatement","src":"7591:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7632:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7643:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7628:3:139"},"nodeType":"YulFunctionCall","src":"7628:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7648:2:139","type":"","value":"62"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7621:6:139"},"nodeType":"YulFunctionCall","src":"7621:30:139"},"nodeType":"YulExpressionStatement","src":"7621:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7671:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7682:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7667:3:139"},"nodeType":"YulFunctionCall","src":"7667:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7687:34:139","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7660:6:139"},"nodeType":"YulFunctionCall","src":"7660:62:139"},"nodeType":"YulExpressionStatement","src":"7660:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7742:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7753:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7738:3:139"},"nodeType":"YulFunctionCall","src":"7738:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7758:32:139","type":"","value":"ken owner nor approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7731:6:139"},"nodeType":"YulFunctionCall","src":"7731:60:139"},"nodeType":"YulExpressionStatement","src":"7731:60:139"},{"nodeType":"YulAssignment","src":"7800:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7812:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7823:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7808:3:139"},"nodeType":"YulFunctionCall","src":"7808:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7800:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7558:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7572:4:139","type":""}],"src":"7407:426:139"},{"body":{"nodeType":"YulBlock","src":"8012:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8029:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8040:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8022:6:139"},"nodeType":"YulFunctionCall","src":"8022:21:139"},"nodeType":"YulExpressionStatement","src":"8022:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8063:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8074:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8059:3:139"},"nodeType":"YulFunctionCall","src":"8059:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8079:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8052:6:139"},"nodeType":"YulFunctionCall","src":"8052:30:139"},"nodeType":"YulExpressionStatement","src":"8052:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8102:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8113:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8098:3:139"},"nodeType":"YulFunctionCall","src":"8098:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8118:26:139","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8091:6:139"},"nodeType":"YulFunctionCall","src":"8091:54:139"},"nodeType":"YulExpressionStatement","src":"8091:54:139"},{"nodeType":"YulAssignment","src":"8154:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8166:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8177:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8162:3:139"},"nodeType":"YulFunctionCall","src":"8162:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8154:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7989:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8003:4:139","type":""}],"src":"7838:348:139"},{"body":{"nodeType":"YulBlock","src":"8365:223:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8382:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8393:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8375:6:139"},"nodeType":"YulFunctionCall","src":"8375:21:139"},"nodeType":"YulExpressionStatement","src":"8375:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8416:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8427:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8412:3:139"},"nodeType":"YulFunctionCall","src":"8412:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8432:2:139","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8405:6:139"},"nodeType":"YulFunctionCall","src":"8405:30:139"},"nodeType":"YulExpressionStatement","src":"8405:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8455:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8466:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8451:3:139"},"nodeType":"YulFunctionCall","src":"8451:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8471:34:139","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8444:6:139"},"nodeType":"YulFunctionCall","src":"8444:62:139"},"nodeType":"YulExpressionStatement","src":"8444:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8526:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8537:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8522:3:139"},"nodeType":"YulFunctionCall","src":"8522:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8542:3:139","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8515:6:139"},"nodeType":"YulFunctionCall","src":"8515:31:139"},"nodeType":"YulExpressionStatement","src":"8515:31:139"},{"nodeType":"YulAssignment","src":"8555:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8567:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8578:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8563:3:139"},"nodeType":"YulFunctionCall","src":"8563:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8555:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8342:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8356:4:139","type":""}],"src":"8191:397:139"},{"body":{"nodeType":"YulBlock","src":"8767:236:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8784:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8795:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8777:6:139"},"nodeType":"YulFunctionCall","src":"8777:21:139"},"nodeType":"YulExpressionStatement","src":"8777:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8818:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8829:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8814:3:139"},"nodeType":"YulFunctionCall","src":"8814:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8834:2:139","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8807:6:139"},"nodeType":"YulFunctionCall","src":"8807:30:139"},"nodeType":"YulExpressionStatement","src":"8807:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8857:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8868:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8853:3:139"},"nodeType":"YulFunctionCall","src":"8853:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8873:34:139","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8846:6:139"},"nodeType":"YulFunctionCall","src":"8846:62:139"},"nodeType":"YulExpressionStatement","src":"8846:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8928:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8939:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8924:3:139"},"nodeType":"YulFunctionCall","src":"8924:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8944:16:139","type":"","value":"r nor approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8917:6:139"},"nodeType":"YulFunctionCall","src":"8917:44:139"},"nodeType":"YulExpressionStatement","src":"8917:44:139"},{"nodeType":"YulAssignment","src":"8970:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8982:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8993:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8978:3:139"},"nodeType":"YulFunctionCall","src":"8978:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8970:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8744:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8758:4:139","type":""}],"src":"8593:410:139"},{"body":{"nodeType":"YulBlock","src":"9109:76:139","statements":[{"nodeType":"YulAssignment","src":"9119:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9131:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9142:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9127:3:139"},"nodeType":"YulFunctionCall","src":"9127:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9119:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9161:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9172:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9154:6:139"},"nodeType":"YulFunctionCall","src":"9154:25:139"},"nodeType":"YulExpressionStatement","src":"9154:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9078:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9089:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9100:4:139","type":""}],"src":"9008:177:139"},{"body":{"nodeType":"YulBlock","src":"9238:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"9265:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9267:16:139"},"nodeType":"YulFunctionCall","src":"9267:18:139"},"nodeType":"YulExpressionStatement","src":"9267:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9254:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9261:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9257:3:139"},"nodeType":"YulFunctionCall","src":"9257:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9251:2:139"},"nodeType":"YulFunctionCall","src":"9251:13:139"},"nodeType":"YulIf","src":"9248:2:139"},{"nodeType":"YulAssignment","src":"9296:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9307:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9310:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9303:3:139"},"nodeType":"YulFunctionCall","src":"9303:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"9296:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9221:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9224:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"9230:3:139","type":""}],"src":"9190:128:139"},{"body":{"nodeType":"YulBlock","src":"9369:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"9392:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"9394:16:139"},"nodeType":"YulFunctionCall","src":"9394:18:139"},"nodeType":"YulExpressionStatement","src":"9394:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9389:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9382:6:139"},"nodeType":"YulFunctionCall","src":"9382:9:139"},"nodeType":"YulIf","src":"9379:2:139"},{"nodeType":"YulAssignment","src":"9423:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9432:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9435:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9428:3:139"},"nodeType":"YulFunctionCall","src":"9428:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"9423:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9354:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9357:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"9363:1:139","type":""}],"src":"9323:120:139"},{"body":{"nodeType":"YulBlock","src":"9497:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"9519:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9521:16:139"},"nodeType":"YulFunctionCall","src":"9521:18:139"},"nodeType":"YulExpressionStatement","src":"9521:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9513:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9516:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9510:2:139"},"nodeType":"YulFunctionCall","src":"9510:8:139"},"nodeType":"YulIf","src":"9507:2:139"},{"nodeType":"YulAssignment","src":"9550:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9562:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9565:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9558:3:139"},"nodeType":"YulFunctionCall","src":"9558:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9550:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9479:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9482:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9488:4:139","type":""}],"src":"9448:125:139"},{"body":{"nodeType":"YulBlock","src":"9631:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"9641:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"9650:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9645:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9710:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9735:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"9740:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9731:3:139"},"nodeType":"YulFunctionCall","src":"9731:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9754:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"9759:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9750:3:139"},"nodeType":"YulFunctionCall","src":"9750:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9744:5:139"},"nodeType":"YulFunctionCall","src":"9744:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9724:6:139"},"nodeType":"YulFunctionCall","src":"9724:39:139"},"nodeType":"YulExpressionStatement","src":"9724:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9671:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"9674:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9668:2:139"},"nodeType":"YulFunctionCall","src":"9668:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9682:19:139","statements":[{"nodeType":"YulAssignment","src":"9684:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9693:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"9696:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9689:3:139"},"nodeType":"YulFunctionCall","src":"9689:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9684:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"9664:3:139","statements":[]},"src":"9660:113:139"},{"body":{"nodeType":"YulBlock","src":"9799:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9812:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"9817:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9808:3:139"},"nodeType":"YulFunctionCall","src":"9808:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"9826:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9801:6:139"},"nodeType":"YulFunctionCall","src":"9801:27:139"},"nodeType":"YulExpressionStatement","src":"9801:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9788:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"9791:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9785:2:139"},"nodeType":"YulFunctionCall","src":"9785:13:139"},"nodeType":"YulIf","src":"9782:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"9609:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"9614:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"9619:6:139","type":""}],"src":"9578:258:139"},{"body":{"nodeType":"YulBlock","src":"9896:325:139","statements":[{"nodeType":"YulAssignment","src":"9906:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9920:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"9923:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"9916:3:139"},"nodeType":"YulFunctionCall","src":"9916:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"9906:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9937:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9967:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"9973:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9963:3:139"},"nodeType":"YulFunctionCall","src":"9963:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"9941:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10014:31:139","statements":[{"nodeType":"YulAssignment","src":"10016:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10030:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"10038:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10026:3:139"},"nodeType":"YulFunctionCall","src":"10026:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10016:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"9994:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9987:6:139"},"nodeType":"YulFunctionCall","src":"9987:26:139"},"nodeType":"YulIf","src":"9984:2:139"},{"body":{"nodeType":"YulBlock","src":"10104:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10125:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10132:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10137:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10128:3:139"},"nodeType":"YulFunctionCall","src":"10128:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10118:6:139"},"nodeType":"YulFunctionCall","src":"10118:31:139"},"nodeType":"YulExpressionStatement","src":"10118:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10169:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10172:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10162:6:139"},"nodeType":"YulFunctionCall","src":"10162:15:139"},"nodeType":"YulExpressionStatement","src":"10162:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10197:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10200:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10190:6:139"},"nodeType":"YulFunctionCall","src":"10190:15:139"},"nodeType":"YulExpressionStatement","src":"10190:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10060:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10083:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"10091:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10080:2:139"},"nodeType":"YulFunctionCall","src":"10080:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10057:2:139"},"nodeType":"YulFunctionCall","src":"10057:38:139"},"nodeType":"YulIf","src":"10054:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"9876:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"9885:6:139","type":""}],"src":"9841:380:139"},{"body":{"nodeType":"YulBlock","src":"10273:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"10304:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10306:16:139"},"nodeType":"YulFunctionCall","src":"10306:18:139"},"nodeType":"YulExpressionStatement","src":"10306:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10289:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10300:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10296:3:139"},"nodeType":"YulFunctionCall","src":"10296:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10286:2:139"},"nodeType":"YulFunctionCall","src":"10286:17:139"},"nodeType":"YulIf","src":"10283:2:139"},{"nodeType":"YulAssignment","src":"10335:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10346:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"10353:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10342:3:139"},"nodeType":"YulFunctionCall","src":"10342:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10335:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10255:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10265:3:139","type":""}],"src":"10226:135:139"},{"body":{"nodeType":"YulBlock","src":"10404:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"10427:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"10429:16:139"},"nodeType":"YulFunctionCall","src":"10429:18:139"},"nodeType":"YulExpressionStatement","src":"10429:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10424:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10417:6:139"},"nodeType":"YulFunctionCall","src":"10417:9:139"},"nodeType":"YulIf","src":"10414:2:139"},{"nodeType":"YulAssignment","src":"10458:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10467:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10470:1:139"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"10463:3:139"},"nodeType":"YulFunctionCall","src":"10463:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"10458:1:139"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10389:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10392:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"10398:1:139","type":""}],"src":"10366:112:139"},{"body":{"nodeType":"YulBlock","src":"10515:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10532:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10539:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10544:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10535:3:139"},"nodeType":"YulFunctionCall","src":"10535:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10525:6:139"},"nodeType":"YulFunctionCall","src":"10525:31:139"},"nodeType":"YulExpressionStatement","src":"10525:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10572:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10575:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10565:6:139"},"nodeType":"YulFunctionCall","src":"10565:15:139"},"nodeType":"YulExpressionStatement","src":"10565:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10596:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10599:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10589:6:139"},"nodeType":"YulFunctionCall","src":"10589:15:139"},"nodeType":"YulExpressionStatement","src":"10589:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"10483:127:139"},{"body":{"nodeType":"YulBlock","src":"10647:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10664:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10671:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10676:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10667:3:139"},"nodeType":"YulFunctionCall","src":"10667:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10657:6:139"},"nodeType":"YulFunctionCall","src":"10657:31:139"},"nodeType":"YulExpressionStatement","src":"10657:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10704:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10707:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10697:6:139"},"nodeType":"YulFunctionCall","src":"10697:15:139"},"nodeType":"YulExpressionStatement","src":"10697:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10728:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10731:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10721:6:139"},"nodeType":"YulFunctionCall","src":"10721:15:139"},"nodeType":"YulExpressionStatement","src":"10721:15:139"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"10615:127:139"},{"body":{"nodeType":"YulBlock","src":"10779:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10796:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10803:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10808:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10799:3:139"},"nodeType":"YulFunctionCall","src":"10799:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10789:6:139"},"nodeType":"YulFunctionCall","src":"10789:31:139"},"nodeType":"YulExpressionStatement","src":"10789:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10836:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10839:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10829:6:139"},"nodeType":"YulFunctionCall","src":"10829:15:139"},"nodeType":"YulExpressionStatement","src":"10829:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10860:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10863:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10853:6:139"},"nodeType":"YulFunctionCall","src":"10853:15:139"},"nodeType":"YulExpressionStatement","src":"10853:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"10747:127:139"},{"body":{"nodeType":"YulBlock","src":"10923:87:139","statements":[{"body":{"nodeType":"YulBlock","src":"10988:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10997:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11000:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10990:6:139"},"nodeType":"YulFunctionCall","src":"10990:12:139"},"nodeType":"YulExpressionStatement","src":"10990:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10946:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10957:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10968:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10973:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10964:3:139"},"nodeType":"YulFunctionCall","src":"10964:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10953:3:139"},"nodeType":"YulFunctionCall","src":"10953:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10943:2:139"},"nodeType":"YulFunctionCall","src":"10943:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10936:6:139"},"nodeType":"YulFunctionCall","src":"10936:51:139"},"nodeType":"YulIf","src":"10933:2:139"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10912:5:139","type":""}],"src":"10879:131:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value3, value3) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n        let _3 := calldataload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(value3, value3) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), value3)\n        value3 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n        value1 := value\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 62)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner nor approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r nor approved\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100bf5760003560e01c80636352211e1161007c5780636352211e1461016757806370a082311461017a57806395d89b411461019b578063a22cb465146101a3578063b88d4fde146101b6578063c87b56dd146101c9578063e985e9c5146101dc57600080fd5b806301ffc9a7146100c457806306fdde03146100ec578063081812fc14610101578063095ea7b31461012c57806323b872dd1461014157806342842e0e14610154575b600080fd5b6100d76100d2366004610db4565b6101ef565b60405190151581526020015b60405180910390f35b6100f4610241565b6040516100e39190610e9c565b61011461010f366004610dec565b6102d3565b6040516001600160a01b0390911681526020016100e3565b61013f61013a366004610d8b565b6102fa565b005b61013f61014f366004610c41565b610415565b61013f610162366004610c41565b610446565b610114610175366004610dec565b610461565b61018d610188366004610bf5565b610496565b6040519081526020016100e3565b6100f461051c565b61013f6101b1366004610d51565b61052b565b61013f6101c4366004610c7c565b61053a565b6100f46101d7366004610dec565b610572565b6100d76101ea366004610c0f565b6105e6565b60006001600160e01b031982166380ac58cd60e01b148061022057506001600160e01b03198216635b5e139f60e01b145b8061023b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461025090610ff0565b80601f016020809104026020016040519081016040528092919081815260200182805461027c90610ff0565b80156102c95780601f1061029e576101008083540402835291602001916102c9565b820191906000526020600020905b8154815290600101906020018083116102ac57829003601f168201915b5050505050905090565b60006102de82610614565b506000908152600460205260409020546001600160a01b031690565b600061030582610461565b9050806001600160a01b0316836001600160a01b031614156103785760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610394575061039481336105e6565b6104065760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161036f565b610410838361064b565b505050565b61041f33826106b9565b61043b5760405162461bcd60e51b815260040161036f90610f33565b610410838383610718565b6104108383836040518060200160405280600081525061053a565b6000818152600260205260408120546001600160a01b03168061023b5760405162461bcd60e51b815260040161036f90610f01565b60006001600160a01b0382166105005760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461025090610ff0565b6105363383836108b4565b5050565b61054433836106b9565b6105605760405162461bcd60e51b815260040161036f90610f33565b61056c8484848461097f565b50505050565b606061057d82610614565b600061059460408051602081019091526000815290565b905060008151116105b457604051806020016040528060008152506105df565b806105be846109b2565b6040516020016105cf929190610e30565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260409020546001600160a01b03166106485760405162461bcd60e51b815260040161036f90610f01565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061068082610461565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806106c583610461565b9050806001600160a01b0316846001600160a01b031614806106ec57506106ec81856105e6565b806107105750836001600160a01b0316610705846102d3565b6001600160a01b0316145b949350505050565b826001600160a01b031661072b82610461565b6001600160a01b03161461078f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161036f565b6001600160a01b0382166107f15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161036f565b6107fc60008261064b565b6001600160a01b0383166000908152600360205260408120805460019290610825908490610fad565b90915550506001600160a01b0382166000908152600360205260408120805460019290610853908490610f81565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031614156109125760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b604482015260640161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61098a848484610718565b61099684848484610acc565b61056c5760405162461bcd60e51b815260040161036f90610eaf565b6060816109d65750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610a0057806109ea8161102b565b91506109f99050600a83610f99565b91506109da565b60008167ffffffffffffffff811115610a2957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610a53576020820181803683370190505b5090505b841561071057610a68600183610fad565b9150610a75600a86611046565b610a80906030610f81565b60f81b818381518110610aa357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610ac5600a86610f99565b9450610a57565b60006001600160a01b0384163b15610bce57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b10903390899088908890600401610e5f565b602060405180830381600087803b158015610b2a57600080fd5b505af1925050508015610b5a575060408051601f3d908101601f19168201909252610b5791810190610dd0565b60015b610bb4573d808015610b88576040519150601f19603f3d011682016040523d82523d6000602084013e610b8d565b606091505b508051610bac5760405162461bcd60e51b815260040161036f90610eaf565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610710565b506001949350505050565b80356001600160a01b0381168114610bf057600080fd5b919050565b600060208284031215610c06578081fd5b6105df82610bd9565b60008060408385031215610c21578081fd5b610c2a83610bd9565b9150610c3860208401610bd9565b90509250929050565b600080600060608486031215610c55578081fd5b610c5e84610bd9565b9250610c6c60208501610bd9565b9150604084013590509250925092565b60008060008060808587031215610c91578081fd5b610c9a85610bd9565b9350610ca860208601610bd9565b925060408501359150606085013567ffffffffffffffff80821115610ccb578283fd5b818701915087601f830112610cde578283fd5b813581811115610cf057610cf0611086565b604051601f8201601f19908116603f01168101908382118183101715610d1857610d18611086565b816040528281528a6020848701011115610d30578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610d63578182fd5b610d6c83610bd9565b915060208301358015158114610d80578182fd5b809150509250929050565b60008060408385031215610d9d578182fd5b610da683610bd9565b946020939093013593505050565b600060208284031215610dc5578081fd5b81356105df8161109c565b600060208284031215610de1578081fd5b81516105df8161109c565b600060208284031215610dfd578081fd5b5035919050565b60008151808452610e1c816020860160208601610fc4565b601f01601f19169290920160200192915050565b60008351610e42818460208801610fc4565b835190830190610e56818360208801610fc4565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610e9290830184610e04565b9695505050505050565b6020815260006105df6020830184610e04565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610f9457610f9461105a565b500190565b600082610fa857610fa8611070565b500490565b600082821015610fbf57610fbf61105a565b500390565b60005b83811015610fdf578181015183820152602001610fc7565b8381111561056c5750506000910152565b600181811c9082168061100457607f821691505b6020821081141561102557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561103f5761103f61105a565b5060010190565b60008261105557611055611070565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461064857600080fdfea2646970667358221220271ffb1f12b3c09f95be17272f00e0780478a8dea2d80808cd1523f76377194364736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xBF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x154 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD7 PUSH2 0xD2 CALLDATASIZE PUSH1 0x4 PUSH2 0xDB4 JUMP JUMPDEST PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF4 PUSH2 0x241 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0xE9C JUMP JUMPDEST PUSH2 0x114 PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0x2FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x415 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x446 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x461 JUMP JUMPDEST PUSH2 0x18D PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0x496 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0xF4 PUSH2 0x51C JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0xD51 JUMP JUMPDEST PUSH2 0x52B JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0xC7C JUMP JUMPDEST PUSH2 0x53A JUMP JUMPDEST PUSH2 0xF4 PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x572 JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x220 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x23B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x250 SWAP1 PUSH2 0xFF0 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 0x27C SWAP1 PUSH2 0xFF0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x29E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DE DUP3 PUSH2 0x614 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x305 DUP3 PUSH2 0x461 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x378 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x394 JUMPI POP PUSH2 0x394 DUP2 CALLER PUSH2 0x5E6 JUMP JUMPDEST PUSH2 0x406 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST PUSH2 0x410 DUP4 DUP4 PUSH2 0x64B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x41F CALLER DUP3 PUSH2 0x6B9 JUMP JUMPDEST PUSH2 0x43B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF33 JUMP JUMPDEST PUSH2 0x410 DUP4 DUP4 DUP4 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x410 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x53A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x23B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF01 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x500 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x250 SWAP1 PUSH2 0xFF0 JUMP JUMPDEST PUSH2 0x536 CALLER DUP4 DUP4 PUSH2 0x8B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x544 CALLER DUP4 PUSH2 0x6B9 JUMP JUMPDEST PUSH2 0x560 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF33 JUMP JUMPDEST PUSH2 0x56C DUP5 DUP5 DUP5 DUP5 PUSH2 0x97F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x57D DUP3 PUSH2 0x614 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x594 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x5DF JUMP JUMPDEST DUP1 PUSH2 0x5BE DUP5 PUSH2 0x9B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5CF SWAP3 SWAP2 SWAP1 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xF01 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x680 DUP3 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6C5 DUP4 PUSH2 0x461 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x6EC JUMPI POP PUSH2 0x6EC DUP2 DUP6 PUSH2 0x5E6 JUMP JUMPDEST DUP1 PUSH2 0x710 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x705 DUP5 PUSH2 0x2D3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x72B DUP3 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x78F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x7F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36F JUMP JUMPDEST PUSH2 0x7FC PUSH1 0x0 DUP3 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x825 SWAP1 DUP5 SWAP1 PUSH2 0xFAD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x853 SWAP1 DUP5 SWAP1 PUSH2 0xF81 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x22A9219B99189D1030B8383937BB32903A379031B0B63632B9 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x98A DUP5 DUP5 DUP5 PUSH2 0x718 JUMP JUMPDEST PUSH2 0x996 DUP5 DUP5 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH2 0x56C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x9D6 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xA00 JUMPI DUP1 PUSH2 0x9EA DUP2 PUSH2 0x102B JUMP JUMPDEST SWAP2 POP PUSH2 0x9F9 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0xF99 JUMP JUMPDEST SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA29 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x710 JUMPI PUSH2 0xA68 PUSH1 0x1 DUP4 PUSH2 0xFAD JUMP JUMPDEST SWAP2 POP PUSH2 0xA75 PUSH1 0xA DUP7 PUSH2 0x1046 JUMP JUMPDEST PUSH2 0xA80 SWAP1 PUSH1 0x30 PUSH2 0xF81 JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0xAC5 PUSH1 0xA DUP7 PUSH2 0xF99 JUMP JUMPDEST SWAP5 POP PUSH2 0xA57 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB10 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xB5A JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xB57 SWAP2 DUP2 ADD SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBB4 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB8D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36F SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x710 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC06 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x5DF DUP3 PUSH2 0xBD9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC21 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC2A DUP4 PUSH2 0xBD9 JUMP JUMPDEST SWAP2 POP PUSH2 0xC38 PUSH1 0x20 DUP5 ADD PUSH2 0xBD9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC55 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC5E DUP5 PUSH2 0xBD9 JUMP JUMPDEST SWAP3 POP PUSH2 0xC6C PUSH1 0x20 DUP6 ADD PUSH2 0xBD9 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC91 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC9A DUP6 PUSH2 0xBD9 JUMP JUMPDEST SWAP4 POP PUSH2 0xCA8 PUSH1 0x20 DUP7 ADD PUSH2 0xBD9 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCCB JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCDE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCF0 PUSH2 0x1086 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xD18 JUMPI PUSH2 0xD18 PUSH2 0x1086 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xD30 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD63 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xD6C DUP4 PUSH2 0xBD9 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD80 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD9D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xDA6 DUP4 PUSH2 0xBD9 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5DF DUP2 PUSH2 0x109C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x5DF DUP2 PUSH2 0x109C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDFD JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE1C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xFC4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xE42 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xFC4 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xE56 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xFC4 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xE92 SWAP1 DUP4 ADD DUP5 PUSH2 0xE04 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5DF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE04 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF94 JUMPI PUSH2 0xF94 PUSH2 0x105A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFA8 JUMPI PUSH2 0xFA8 PUSH2 0x1070 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xFBF JUMPI PUSH2 0xFBF PUSH2 0x105A JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xFDF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFC7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x56C JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1004 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1025 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x103F JUMPI PUSH2 0x103F PUSH2 0x105A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1055 JUMPI PUSH2 0x1055 PUSH2 0x1070 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 0x1F 0xFB 0x1F SLT 0xB3 0xC0 SWAP16 SWAP6 0xBE OR 0x27 0x2F STOP 0xE0 PUSH25 0x478A8DEA2D80808CD1523F76377194364736F6C6343000804 STOP CALLER ","sourceMap":"628:13718:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;:::i;:::-;;:::i;:::-;;;5162:14:139;;5155:22;5137:41;;5125:2;5110:18;1570:300:29;;;;;;;;2470:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4460:32:139;;;4442:51;;4430:2;4415:18;3935:167:29;4397:102:139;3467:407:29;;;;;;:::i;:::-;;:::i;:::-;;4612:327;;;;;;:::i;:::-;;:::i;5005:179::-;;;;;;:::i;:::-;;:::i;2190:218::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;9154:25:139;;;9142:2;9127:18;1929:204:29;9109:76:139;2632:102:29;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5250:315::-;;;;;;:::i;:::-;;:::i;2800:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;;:::i;1570:300::-;1672:4;-1:-1:-1;;;;;;1707:40:29;;-1:-1:-1;;;1707:40:29;;:104;;-1:-1:-1;;;;;;;1763:48:29;;-1:-1:-1;;;1763:48:29;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:45;;;1827:36:29;1688:175;1570:300;-1:-1:-1;;1570:300:29:o;2470:98::-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:29;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:29;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;-1:-1:-1;;;;;3604:11:29;:2;-1:-1:-1;;;;;3604:11:29;;;3596:57;;;;-1:-1:-1;;;3596:57:29;;8393:2:139;3596:57:29;;;8375:21:139;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;-1:-1:-1;;;8522:18:139;;;8515:31;8563:19;;3596:57:29;;;;;;;;;719:10:38;-1:-1:-1;;;;;3685:21:29;;;;:62;;-1:-1:-1;3710:37:29;3727:5;719:10:38;4388:162:29;:::i;3710:37::-;3664:171;;;;-1:-1:-1;;;3664:171:29;;7609:2:139;3664:171:29;;;7591:21:139;7648:2;7628:18;;;7621:30;7687:34;7667:18;;;7660:62;7758:32;7738:18;;;7731:60;7808:19;;3664:171:29;7581:252:139;3664:171:29;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3467:407;;;:::o;4612:327::-;4801:41;719:10:38;4834:7:29;4801:18;:41::i;:::-;4793:100;;;;-1:-1:-1;;;4793:100:29;;;;;;;:::i;:::-;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;5005:179::-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;2190:218::-;2262:7;2297:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2297:16:29;2331:19;2323:56;;;;-1:-1:-1;;;2323:56:29;;;;;;;:::i;1929:204::-;2001:7;-1:-1:-1;;;;;2028:19:29;;2020:73;;;;-1:-1:-1;;;2020:73:29;;7199:2:139;2020:73:29;;;7181:21:139;7238:2;7218:18;;;7211:30;7277:34;7257:18;;;7250:62;-1:-1:-1;;;7328:18:139;;;7321:39;7377:19;;2020:73:29;7171:231:139;2020:73:29;-1:-1:-1;;;;;;2110:16:29;;;;;:9;:16;;;;;;;1929:204::o;2632:102::-;2688:13;2720:7;2713:14;;;;;:::i;4169:153::-;4263:52;719:10:38;4296:8:29;4306;4263:18;:52::i;:::-;4169:153;;:::o;5250:315::-;5418:41;719:10:38;5451:7:29;5418:18;:41::i;:::-;5410:100;;;;-1:-1:-1;;;5410:100:29;;;;;;;:::i;:::-;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;3394:9;;;;;;;;;-1:-1:-1;3394:9:29;;;3318:92;2956:10;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2983:86;2976:93;2800:276;-1:-1:-1;;;2800:276:29:o;4388:162::-;-1:-1:-1;;;;;4508:25:29;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162::o;11657:133::-;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:29;11730:53;;;;-1:-1:-1;;;11730:53:29;;;;;;;:::i;:::-;11657:133;:::o;10959:171::-;11033:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11033:29:29;-1:-1:-1;;;;;11033:29:29;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;-1:-1:-1;;;;;11077:46:29;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;-1:-1:-1;;;;;7483:16:29;:7;-1:-1:-1;;;;;7483:16:29;;:52;;;;7503:32;7520:5;7527:7;7503:16;:32::i;:::-;7483:87;;;;7563:7;-1:-1:-1;;;;;7539:31:29;:20;7551:7;7539:11;:20::i;:::-;-1:-1:-1;;;;;7539:31:29;;7483:87;7475:96;7317:261;-1:-1:-1;;;;7317:261:29:o;10242:605::-;10396:4;-1:-1:-1;;;;;10369:31:29;:23;10384:7;10369:14;:23::i;:::-;-1:-1:-1;;;;;10369:31:29;;10361:81;;;;-1:-1:-1;;;10361:81:29;;6034:2:139;10361:81:29;;;6016:21:139;6073:2;6053:18;;;6046:30;6112:34;6092:18;;;6085:62;-1:-1:-1;;;6163:18:139;;;6156:35;6208:19;;10361:81:29;6006:227:139;10361:81:29;-1:-1:-1;;;;;10460:16:29;;10452:65;;;;-1:-1:-1;;;10452:65:29;;6440:2:139;10452:65:29;;;6422:21:139;6479:2;6459:18;;;6452:30;6518:34;6498:18;;;6491:62;-1:-1:-1;;;6569:18:139;;;6562:34;6613:19;;10452:65:29;6412:226:139;10452:65:29;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;-1:-1:-1;;;;;10669:15:29;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:13:29;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:29;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10727:21:29;-1:-1:-1;;;;;10727:21:29;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;3467:407;;;:::o;11266:307::-;11416:8;-1:-1:-1;;;;;11407:17:29;:5;-1:-1:-1;;;;;11407:17:29;;;11399:55;;;;-1:-1:-1;;;11399:55:29;;6845:2:139;11399:55:29;;;6827:21:139;6884:2;6864:18;;;6857:30;-1:-1:-1;;;6903:18:139;;;6896:55;6968:18;;11399:55:29;6817:175:139;11399:55:29;-1:-1:-1;;;;;11464:25:29;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11464:46:29;;;;;;;;;;11525:41;;5137::139;;;11525::29;;5110:18:139;11525:41:29;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;-1:-1:-1;;;6614:110:29;;;;;;;:::i;392:703:40:-;448:13;665:10;661:51;;-1:-1:-1;;691:10:40;;;;;;;;;;;;-1:-1:-1;;;691:10:40;;;;;392:703::o;661:51::-;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:40;;-1:-1:-1;837:2:40;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;-1:-1:-1;;;881:17:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:40;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:40;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;-1:-1:-1;;;966:14:40;;;;;;;;;;;;:56;-1:-1:-1;;;;;966:56:40;;;;;;;;-1:-1:-1;1036:11:40;1045:2;1036:11;;:::i;:::-;;;908:150;;12342:831:29;12491:4;-1:-1:-1;;;;;12511:13:29;;1465:19:36;:23;12507:660:29;;12546:71;;-1:-1:-1;;;12546:71:29;;-1:-1:-1;;;;;12546:36:29;;;;;:71;;719:10:38;;12597:4:29;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:29;;;;;;;;-1:-1:-1;;12546:71:29;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12784:13:29;;12780:321;;12826:60;;-1:-1:-1;;;12826:60:29;;;;;;;:::i;12780:321::-;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;-1:-1:-1;;;;;;12667:51:29;-1:-1:-1;;;12667:51:29;;-1:-1:-1;12660:58:29;;12507:660;-1:-1:-1;13152:4:29;12342:831;;;;;;:::o;14:173:139:-;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:1183::-;1106:6;1114;1122;1130;1183:3;1171:9;1162:7;1158:23;1154:33;1151:2;;;1205:6;1197;1190:22;1151:2;1233:29;1252:9;1233:29;:::i;:::-;1223:39;;1281:38;1315:2;1304:9;1300:18;1281:38;:::i;:::-;1271:48;;1366:2;1355:9;1351:18;1338:32;1328:42;;1421:2;1410:9;1406:18;1393:32;1444:18;1485:2;1477:6;1474:14;1471:2;;;1506:6;1498;1491:22;1471:2;1549:6;1538:9;1534:22;1524:32;;1594:7;1587:4;1583:2;1579:13;1575:27;1565:2;;1621:6;1613;1606:22;1565:2;1662;1649:16;1684:2;1680;1677:10;1674:2;;;1690:18;;:::i;:::-;1765:2;1759:9;1733:2;1819:13;;-1:-1:-1;;1815:22:139;;;1839:2;1811:31;1807:40;1795:53;;;1863:18;;;1883:22;;;1860:46;1857:2;;;1909:18;;:::i;:::-;1949:10;1945:2;1938:22;1984:2;1976:6;1969:18;2024:7;2019:2;2014;2010;2006:11;2002:20;1999:33;1996:2;;;2050:6;2042;2035:22;1996:2;2111;2106;2102;2098:11;2093:2;2085:6;2081:15;2068:46;2134:15;;;2151:2;2130:24;2123:40;;;;1141:1053;;;;-1:-1:-1;1141:1053:139;;-1:-1:-1;;;;1141:1053:139:o;2199:367::-;2264:6;2272;2325:2;2313:9;2304:7;2300:23;2296:32;2293:2;;;2346:6;2338;2331:22;2293:2;2374:29;2393:9;2374:29;:::i;:::-;2364:39;;2453:2;2442:9;2438:18;2425:32;2500:5;2493:13;2486:21;2479:5;2476:32;2466:2;;2527:6;2519;2512:22;2466:2;2555:5;2545:15;;;2283:283;;;;;:::o;2571:264::-;2639:6;2647;2700:2;2688:9;2679:7;2675:23;2671:32;2668:2;;;2721:6;2713;2706:22;2668:2;2749:29;2768:9;2749:29;:::i;:::-;2739:39;2825:2;2810:18;;;;2797:32;;-1:-1:-1;;;2658:177:139:o;2840:255::-;2898:6;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:259::-;3169:6;3222:2;3210:9;3201:7;3197:23;3193:32;3190:2;;;3243:6;3235;3228:22;3190:2;3280:9;3274:16;3299:30;3323:5;3299:30;:::i;3364:190::-;3423:6;3476:2;3464:9;3455:7;3451:23;3447:32;3444:2;;;3497:6;3489;3482:22;3444:2;-1:-1:-1;3525:23:139;;3434:120;-1:-1:-1;3434:120:139:o;3559:257::-;3600:3;3638:5;3632:12;3665:6;3660:3;3653:19;3681:63;3737:6;3730:4;3725:3;3721:14;3714:4;3707:5;3703:16;3681:63;:::i;:::-;3798:2;3777:15;-1:-1:-1;;3773:29:139;3764:39;;;;3805:4;3760:50;;3608:208;-1:-1:-1;;3608:208:139:o;3821:470::-;4000:3;4038:6;4032:13;4054:53;4100:6;4095:3;4088:4;4080:6;4076:17;4054:53;:::i;:::-;4170:13;;4129:16;;;;4192:57;4170:13;4129:16;4226:4;4214:17;;4192:57;:::i;:::-;4265:20;;4008:283;-1:-1:-1;;;;4008:283:139:o;4504:488::-;-1:-1:-1;;;;;4773:15:139;;;4755:34;;4825:15;;4820:2;4805:18;;4798:43;4872:2;4857:18;;4850:34;;;4920:3;4915:2;4900:18;;4893:31;;;4698:4;;4941:45;;4966:19;;4958:6;4941:45;:::i;:::-;4933:53;4707:285;-1:-1:-1;;;;;;4707:285:139:o;5189:219::-;5338:2;5327:9;5320:21;5301:4;5358:44;5398:2;5387:9;5383:18;5375:6;5358:44;:::i;5413:414::-;5615:2;5597:21;;;5654:2;5634:18;;;5627:30;5693:34;5688:2;5673:18;;5666:62;-1:-1:-1;;;5759:2:139;5744:18;;5737:48;5817:3;5802:19;;5587:240::o;7838:348::-;8040:2;8022:21;;;8079:2;8059:18;;;8052:30;-1:-1:-1;;;8113:2:139;8098:18;;8091:54;8177:2;8162:18;;8012:174::o;8593:410::-;8795:2;8777:21;;;8834:2;8814:18;;;8807:30;8873:34;8868:2;8853:18;;8846:62;-1:-1:-1;;;8939:2:139;8924:18;;8917:44;8993:3;8978:19;;8767:236::o;9190:128::-;9230:3;9261:1;9257:6;9254:1;9251:13;9248:2;;;9267:18;;:::i;:::-;-1:-1:-1;9303:9:139;;9238:80::o;9323:120::-;9363:1;9389;9379:2;;9394:18;;:::i;:::-;-1:-1:-1;9428:9:139;;9369:74::o;9448:125::-;9488:4;9516:1;9513;9510:8;9507:2;;;9521:18;;:::i;:::-;-1:-1:-1;9558:9:139;;9497:76::o;9578:258::-;9650:1;9660:113;9674:6;9671:1;9668:13;9660:113;;;9750:11;;;9744:18;9731:11;;;9724:39;9696:2;9689:10;9660:113;;;9791:6;9788:1;9785:13;9782:2;;;-1:-1:-1;;9826:1:139;9808:16;;9801:27;9631:205::o;9841:380::-;9920:1;9916:12;;;;9963;;;9984:2;;10038:4;10030:6;10026:17;10016:27;;9984:2;10091;10083:6;10080:14;10060:18;10057:38;10054:2;;;10137:10;10132:3;10128:20;10125:1;10118:31;10172:4;10169:1;10162:15;10200:4;10197:1;10190:15;10054:2;;9896:325;;;:::o;10226:135::-;10265:3;-1:-1:-1;;10286:17:139;;10283:2;;;10306:18;;:::i;:::-;-1:-1:-1;10353:1:139;10342:13;;10273:88::o;10366:112::-;10398:1;10424;10414:2;;10429:18;;:::i;:::-;-1:-1:-1;10463:9:139;;10404:74::o;10483:127::-;10544:10;10539:3;10535:20;10532:1;10525:31;10575:4;10572:1;10565:15;10599:4;10596:1;10589:15;10615:127;10676:10;10671:3;10667:20;10664:1;10657:31;10707:4;10704:1;10697:15;10731:4;10728:1;10721:15;10747:127;10808:10;10803:3;10799:20;10796:1;10789:31;10839:4;10836:1;10829:15;10863:4;10860:1;10853:15;10879:131;-1:-1:-1;;;;;;10953:32:139;;10943:43;;10933:2;;11000:1;10997;10990:12"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"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\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"ERC721Enumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This implements an optional extension of {ERC721} defined in the EIP that adds enumerability of all the token ids in the contract as well as all token ids owned by each account.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":\"ERC721Enumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0x0a79511df8151b10b0a0004d6a76ad956582d32824af4c0f4886bdbdfe5746e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afbedcf17f31db719e6fdc56caa8f458799c5fa2eb94cb1e94ef18f89af85768\",\"dweb:/ipfs/QmVmqRdBfbgYThpZSoAJ5o9mnAMjx8mCHHjv3Rh8cQAAg3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"IERC721Enumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/common/ERC2981.sol":{"ERC2981":{"abi":[{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"royaltyInfo(uint256,uint256)":"2a55205a","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information. Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first. Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the fee is specified in basis points by default. IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to voluntarily pay royalties together with sales, but note that this standard is not yet widely supported. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/common/ERC2981.sol\":\"ERC2981\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0xa812eed728198acd2c30d06950a5bea8d68436e4f694dd892273266ec2f79f5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5522afc5c222c810d9ad67c45f37cb7169452fcf76692cad10ac8153c068daa\",\"dweb:/ipfs/QmX4XgnDp7pyvojQ6g5tacrUMCf7TED2qC2vERH9Xh9feZ\"]},\"@openzeppelin/contracts/token/common/ERC2981.sol\":{\"keccak256\":\"0x9bc4d7eb03c4e87fd5122e03cdff5f60fa360d76925980ad022b2c6fac9876f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c6d7cfaac6b54599068126b75474c86ccbbaf386c3581abf82d9cda21b35c81\",\"dweb:/ipfs/QmPZteoCvkiUgv4TZxv2wiEKR5KqM83UCohHnSGw1RytpM\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122041ba65f8ba70c77d82b498530370678a78f06240cb94acf62833106e3c7164a364736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0xBA PUSH6 0xF8BA70C77D82 0xB4 SWAP9 MSTORE8 SUB PUSH17 0x678A78F06240CB94ACF62833106E3C7164 LOG3 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"194:8111:36:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8111:36;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122041ba65f8ba70c77d82b498530370678a78f06240cb94acf62833106e3c7164a364736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0xBA PUSH6 0xF8BA70C77D82 0xB4 SWAP9 MSTORE8 SUB PUSH17 0x678A78F06240CB94ACF62833106E3C7164 LOG3 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"194:8111:36:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Checkpoints.sol":{"Checkpoints":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a2b2237125cb699382ef1ecbd81647493b04ed6d6bc7c9ae2b850704847464d964736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG2 0xB2 0x23 PUSH18 0x25CB699382EF1ECBD81647493B04ED6D6BC7 0xC9 0xAE 0x2B DUP6 SMOD DIV DUP5 PUSH21 0x64D964736F6C634300080400330000000000000000 ","sourceMap":"619:2435:37:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;619:2435:37;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a2b2237125cb699382ef1ecbd81647493b04ed6d6bc7c9ae2b850704847464d964736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG2 0xB2 0x23 PUSH18 0x25CB699382EF1ECBD81647493B04ED6D6BC7 0xC9 0xAE 0x2B DUP6 SMOD DIV DUP5 PUSH21 0x64D964736F6C634300080400330000000000000000 ","sourceMap":"619:2435:37:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"This library defines the `History` struct, for checkpointing values as they change at different points in time, and later looking up past values by block number. See {Votes} as an example. To create a history of checkpoints define a variable type `Checkpoints.History` in your contract, and store a new checkpoint for the current transaction block using the {push} function. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Checkpoints.sol\":\"Checkpoints\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0x2e109f03a05809288a1478d4d9fcd0804229207e18d1164ce0597fb0958a159c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9495415607fcbd1c940e726f396c46892af8c8772247c002650deacaf5199fb\",\"dweb:/ipfs/QmagLfEk1NCaJEMVDP3ix9BmXy6mccVUMfKAbWQFtjkjvJ\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"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\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Counters.sol":{"Counters":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d01157f5f634d1522b1d170b9889051f2dfede30b191ae9b5e8ec276c742de6064736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 GT JUMPI CREATE2 0xF6 CALLVALUE 0xD1 MSTORE 0x2B SAR OR SIGNEXTEND SWAP9 DUP10 SDIV 0x1F 0x2D INVALID 0xDE ADDRESS 0xB1 SWAP2 0xAE SWAP12 0x5E DUP15 0xC2 PUSH23 0xC742DE6064736F6C634300080400330000000000000000 ","sourceMap":"424:971:39:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:39;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d01157f5f634d1522b1d170b9889051f2dfede30b191ae9b5e8ec276c742de6064736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 GT JUMPI CREATE2 0xF6 CALLVALUE 0xD1 MSTORE 0x2B SAR OR SIGNEXTEND SWAP9 DUP10 SDIV 0x1F 0x2D INVALID 0xDE ADDRESS 0xB1 SWAP2 0xAE SWAP12 0x5E DUP15 0xC2 PUSH23 0xC742DE6064736F6C634300080400330000000000000000 ","sourceMap":"424:971:39:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ce4a0431df4098d13cd0584eb986770d622972a9d53785bb0406da0ab71c891464736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0x4A DIV BALANCE 0xDF BLOCKHASH SWAP9 0xD1 EXTCODECOPY 0xD0 PC 0x4E 0xB9 DUP7 PUSH24 0xD622972A9D53785BB0406DA0AB71C891464736F6C634300 ADDMOD DIV STOP CALLER ","sourceMap":"161:2235:40:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:40;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ce4a0431df4098d13cd0584eb986770d622972a9d53785bb0406da0ab71c891464736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0x4A DIV BALANCE 0xDF BLOCKHASH SWAP9 0xD1 EXTCODECOPY 0xD0 PC 0x4E 0xB9 DUP7 PUSH24 0xD622972A9D53785BB0406DA0AB71C891464736F6C634300 ADDMOD DIV STOP CALLER ","sourceMap":"161:2235:40:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Timers.sol":{"Timers":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206b6392d5847876352a574b746ef6a170c8ddbf9b329b00732c0f7acc6e64e3df64736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x6392D5847876352A574B746E 0xF6 LOG1 PUSH17 0xC8DDBF9B329B00732C0F7ACC6E64E3DF64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"168:1873:41:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:1873:41;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206b6392d5847876352a574b746ef6a170c8ddbf9b329b00732c0f7acc6e64e3df64736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x6392D5847876352A574B746E 0xF6 LOG1 PUSH17 0xC8DDBF9B329B00732C0F7ACC6E64E3DF64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"168:1873:41:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Tooling for timepoints, timers and delays\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Timers.sol\":\"Timers\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122033bf39d17d14c2f8fccc4662fc81b86f9d9c1728c6ce997ee3d05b1a06d8139864736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xBF CODECOPY 0xD1 PUSH30 0x14C2F8FCCC4662FC81B86F9D9C1728C6CE997EE3D05B1A06D8139864736F PUSH13 0x63430008040033000000000000 ","sourceMap":"369:8375:42:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:8375:42;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122033bf39d17d14c2f8fccc4662fc81b86f9d9c1728c6ce997ee3d05b1a06d8139864736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xBF CODECOPY 0xD1 PUSH30 0x14C2F8FCCC4662FC81B86F9D9C1728C6CE997EE3D05B1A06D8139864736F PUSH13 0x63430008040033000000000000 ","sourceMap":"369:8375:42:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"MerkleProof":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d3a61babcfbc91c12377dc8dd8f4a8569f0cecac1590799faeed8f1a9464509e64736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 0xA6 SHL 0xAB 0xCF 0xBC SWAP2 0xC1 0x23 PUSH24 0xDC8DD8F4A8569F0CECAC1590799FAEED8F1A9464509E6473 PUSH16 0x6C634300080400330000000000000000 ","sourceMap":"799:7671:43:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;799:7671:43;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d3a61babcfbc91c12377dc8dd8f4a8569f0cecac1590799faeed8f1a9464509e64736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 0xA6 SHL 0xAB 0xCF 0xBC SWAP2 0xC1 0x23 PUSH24 0xDC8DD8F4A8569F0CECAC1590799FAEED8F1A9464509E6473 PUSH16 0x6C634300080400330000000000000000 ","sourceMap":"799:7671:43:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"These functions deal with verification of Merkle Tree proofs. The proofs can be generated using the JavaScript library https://github.com/miguelmota/merkletreejs[merkletreejs]. Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. See `test/utils/cryptography/MerkleProof.test.js` for some examples. WARNING: You should avoid using leaf values that are 64 bytes long prior to hashing, or use a hash function other than keccak256 for hashing leaves. This is because the concatenation of a sorted pair of internal nodes in the merkle tree could be reinterpreted as a leaf value.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":\"MerkleProof\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x596ed72a251d391b814a4aa19d7acb02ebdcc92ba27d3fff74a6f0c158b12ab7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5f49013d50b1011c842f76e96f3c3f146ca7cb15084c8805575e0e0e1a5c700\",\"dweb:/ipfs/QmQ3n5qiuioUA74heD6ZddNkYg1kYihjQBNcy9zgwYXKgM\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol":{"EIP712":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208ce27c831661c585715832634c4391068485ed68e4e0a12cac5362fbaeb5fe8264736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 0xE2 PUSH29 0x831661C585715832634C4391068485ED68E4E0A12CAC5362FBAEB5FE82 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"202:8624:47:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:8624:47;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208ce27c831661c585715832634c4391068485ed68e4e0a12cac5362fbaeb5fe8264736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 0xE2 PUSH29 0x831661C585715832634C4391068485ED68E4E0A12CAC5362FBAEB5FE82 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"202:8624:47:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220afc56ce5176ca80ec7a1b5431c327babce5528d34feeca593afd39ce6ef41f4a64736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0xC5 PUSH13 0xE5176CA80EC7A1B5431C327BAB 0xCE SSTORE 0x28 0xD3 0x4F 0xEE 0xCA MSIZE GASPRICE REVERT CODECOPY 0xCE PUSH15 0xF41F4A64736F6C6343000804003300 ","sourceMap":"842:34685:48:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;842:34685:48;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220afc56ce5176ca80ec7a1b5431c327babce5528d34feeca593afd39ce6ef41f4a64736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0xC5 PUSH13 0xE5176CA80EC7A1B5431C327BAB 0xCE SSTORE 0x28 0xD3 0x4F 0xEE 0xCA MSIZE GASPRICE REVERT CODECOPY 0xCE PUSH15 0xF41F4A64736F6C6343000804003300 ","sourceMap":"842:34685:48:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always. Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing all math on `uint256` and `int256` and then downcasting.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeMath.sol":{"SafeMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205c2a9ed102890e2a56bf6ea702e35fc00d4ac543dc446f658e9b53dc3697e42264736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C 0x2A SWAP15 0xD1 MUL DUP10 0xE 0x2A JUMP 0xBF PUSH15 0xA702E35FC00D4AC543DC446F658E9B MSTORE8 0xDC CALLDATASIZE SWAP8 0xE4 0x22 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"482:6300:49:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;482:6300:49;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205c2a9ed102890e2a56bf6ea702e35fc00d4ac543dc446f658e9b53dc3697e42264736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C 0x2A SWAP15 0xD1 MUL DUP10 0xE 0x2A JUMP 0xBF PUSH15 0xA702E35FC00D4AC543DC446F658E9B MSTORE8 0xDC CALLDATASIZE SWAP8 0xE4 0x22 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"482:6300:49:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations. NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler now has built in overflow checking.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"DoubleEndedQueue":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202d28e6b2779b240d2dcba4f38df186719cd8d7757d578986fae72983f0252df164736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0x28 0xE6 0xB2 PUSH24 0x9B240D2DCBA4F38DF186719CD8D7757D578986FAE72983F0 0x25 0x2D CALL PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"835:5066:50:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;835:5066:50;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202d28e6b2779b240d2dcba4f38df186719cd8d7757d578986fae72983f0252df164736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0x28 0xE6 0xB2 PUSH24 0x9B240D2DCBA4F38DF186719CD8D7757D578986FAE72983F0 0x25 0x2D CALL PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"835:5066:50:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that the existing queue contents are left in storage. The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be used in storage, and not in memory. ``` DoubleEndedQueue.Bytes32Deque queue; ``` _Available since v4.6._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"OutOfBounds()\":[{\"details\":\"An operation (e.g. {at}) couldn't be completed due to an index being out of bounds.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":\"DoubleEndedQueue\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d320dea5866981e09ec2577e59098b5ce335d094e022b53188e31461c49697a764736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 KECCAK256 0xDE 0xA5 DUP7 PUSH10 0x81E09EC2577E59098B5C 0xE3 CALLDATALOAD 0xD0 SWAP5 0xE0 0x22 0xB5 BALANCE DUP9 0xE3 EQ PUSH2 0xC496 SWAP8 0xA7 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"1228:11454:51:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1228:11454:51;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d320dea5866981e09ec2577e59098b5ce335d094e022b53188e31461c49697a764736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 KECCAK256 0xDE 0xA5 DUP7 PUSH10 0x81E09EC2577E59098B5C 0xE3 CALLDATALOAD 0xD0 SWAP5 0xE0 0x22 0xB5 BALANCE DUP9 0xE3 EQ PUSH2 0xC496 SWAP8 0xA7 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"1228:11454:51:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableSet for EnumerableSet.AddressSet;     // Declare a set state variable     EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ====  Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.  See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.  In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"IUniswapV3Factory":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"fee","type":"uint24"},{"indexed":true,"internalType":"int24","name":"tickSpacing","type":"int24"}],"name":"FeeAmountEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":true,"internalType":"uint24","name":"fee","type":"uint24"},{"indexed":false,"internalType":"int24","name":"tickSpacing","type":"int24"},{"indexed":false,"internalType":"address","name":"pool","type":"address"}],"name":"PoolCreated","type":"event"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"createPool","outputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"}],"name":"enableFeeAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"feeAmountTickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"getPool","outputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createPool(address,address,uint24)":"a1671295","enableFeeAmount(uint24,int24)":"8a7c195f","feeAmountTickSpacing(uint24)":"22afcccb","getPool(address,address,uint24)":"1698ee82","owner()":"8da5cb5b","setOwner(address)":"13af4035"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"FeeAmountEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"enableFeeAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"feeAmountTickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"FeeAmountEnabled(uint24,int24)\":{\"params\":{\"fee\":\"The enabled fee, denominated in hundredths of a bip\",\"tickSpacing\":\"The minimum number of ticks between initialized ticks for pools created with the given fee\"}},\"OwnerChanged(address,address)\":{\"params\":{\"newOwner\":\"The owner after the owner was changed\",\"oldOwner\":\"The owner before the owner was changed\"}},\"PoolCreated(address,address,uint24,int24,address)\":{\"params\":{\"fee\":\"The fee collected upon every swap in the pool, denominated in hundredths of a bip\",\"pool\":\"The address of the created pool\",\"tickSpacing\":\"The minimum number of ticks between initialized ticks\",\"token0\":\"The first token of the pool by address sort order\",\"token1\":\"The second token of the pool by address sort order\"}}},\"kind\":\"dev\",\"methods\":{\"createPool(address,address,uint24)\":{\"details\":\"tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments are invalid.\",\"params\":{\"fee\":\"The desired fee for the pool\",\"tokenA\":\"One of the two tokens in the desired pool\",\"tokenB\":\"The other of the two tokens in the desired pool\"},\"returns\":{\"pool\":\"The address of the newly created pool\"}},\"enableFeeAmount(uint24,int24)\":{\"details\":\"Fee amounts may never be removed once enabled\",\"params\":{\"fee\":\"The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)\",\"tickSpacing\":\"The spacing between ticks to be enforced for all pools created with the given fee amount\"}},\"feeAmountTickSpacing(uint24)\":{\"details\":\"A fee amount can never be removed, so this value should be hard coded or cached in the calling context\",\"params\":{\"fee\":\"The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee\"},\"returns\":{\"_0\":\"The tick spacing\"}},\"getPool(address,address,uint24)\":{\"details\":\"tokenA and tokenB may be passed in either token0/token1 or token1/token0 order\",\"params\":{\"fee\":\"The fee collected upon every swap in the pool, denominated in hundredths of a bip\",\"tokenA\":\"The contract address of either token0 or token1\",\"tokenB\":\"The contract address of the other token\"},\"returns\":{\"pool\":\"The pool address\"}},\"owner()\":{\"details\":\"Can be changed by the current owner via setOwner\",\"returns\":{\"_0\":\"The address of the factory owner\"}},\"setOwner(address)\":{\"details\":\"Must be called by the current owner\",\"params\":{\"_owner\":\"The new owner of the factory\"}}},\"title\":\"The interface for the Uniswap V3 Factory\",\"version\":1},\"userdoc\":{\"events\":{\"FeeAmountEnabled(uint24,int24)\":{\"notice\":\"Emitted when a new fee amount is enabled for pool creation via the factory\"},\"OwnerChanged(address,address)\":{\"notice\":\"Emitted when the owner of the factory is changed\"},\"PoolCreated(address,address,uint24,int24,address)\":{\"notice\":\"Emitted when a pool is created\"}},\"kind\":\"user\",\"methods\":{\"createPool(address,address,uint24)\":{\"notice\":\"Creates a pool for the given two tokens and fee\"},\"enableFeeAmount(uint24,int24)\":{\"notice\":\"Enables a fee amount with the given tickSpacing\"},\"feeAmountTickSpacing(uint24)\":{\"notice\":\"Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled\"},\"getPool(address,address,uint24)\":{\"notice\":\"Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist\"},\"owner()\":{\"notice\":\"Returns the current owner of the factory\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of the factory\"}},\"notice\":\"The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":\"IUniswapV3Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"IUniswapV3Pool":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"CollectProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid1","type":"uint256"}],"name":"Flash","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextOld","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextNew","type":"uint16"}],"name":"IncreaseObservationCardinalityNext","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"feeProtocol0Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol0New","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1New","type":"uint8"}],"name":"SetFeeProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"int256","name":"amount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"amount1","type":"int256"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Swap","type":"event"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collect","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collectProtocol","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal0X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal1X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"flash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"}],"name":"increaseObservationCardinalityNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiquidityPerTick","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"observations","outputs":[{"internalType":"uint32","name":"blockTimestamp","type":"uint32"},{"internalType":"int56","name":"tickCumulative","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityCumulativeX128","type":"uint160"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"},{"internalType":"uint160[]","name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"positions","outputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFees","outputs":[{"internalType":"uint128","name":"token0","type":"uint128"},{"internalType":"uint128","name":"token1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"feeProtocol0","type":"uint8"},{"internalType":"uint8","name":"feeProtocol1","type":"uint8"}],"name":"setFeeProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint16","name":"observationIndex","type":"uint16"},{"internalType":"uint16","name":"observationCardinality","type":"uint16"},{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"},{"internalType":"uint8","name":"feeProtocol","type":"uint8"},{"internalType":"bool","name":"unlocked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"snapshotCumulativesInside","outputs":[{"internalType":"int56","name":"tickCumulativeInside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityInsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[{"internalType":"int256","name":"amount0","type":"int256"},{"internalType":"int256","name":"amount1","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int16","name":"wordPosition","type":"int16"}],"name":"tickBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"name":"ticks","outputs":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"},{"internalType":"int56","name":"tickCumulativeOutside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityOutsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsOutside","type":"uint32"},{"internalType":"bool","name":"initialized","type":"bool"}],"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"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(int24,int24,uint128)":"a34123a7","collect(address,int24,int24,uint128,uint128)":"4f1eb3d8","collectProtocol(address,uint128,uint128)":"85b66729","factory()":"c45a0155","fee()":"ddca3f43","feeGrowthGlobal0X128()":"f3058399","feeGrowthGlobal1X128()":"46141319","flash(address,uint256,uint256,bytes)":"490e6cbc","increaseObservationCardinalityNext(uint16)":"32148f67","initialize(uint160)":"f637731d","liquidity()":"1a686502","maxLiquidityPerTick()":"70cf754a","mint(address,int24,int24,uint128,bytes)":"3c8a7d8d","observations(uint256)":"252c09d7","observe(uint32[])":"883bdbfd","positions(bytes32)":"514ea4bf","protocolFees()":"1ad8b03b","setFeeProtocol(uint8,uint8)":"8206a4d1","slot0()":"3850c7bd","snapshotCumulativesInside(int24,int24)":"a38807f2","swap(address,bool,int256,uint160,bytes)":"128acb08","tickBitmap(int16)":"5339c296","tickSpacing()":"d0c93a7c","ticks(int24)":"f30dba93","token0()":"0dfe1681","token1()":"d21220a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"CollectProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\"}],\"name\":\"Flash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\"}],\"name\":\"IncreaseObservationCardinalityNext\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\"}],\"name\":\"SetFeeProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"}],\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\"}],\"name\":\"setFeeProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\"}],\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\"},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\"},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"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\"}],\"devdoc\":{\"details\":\"The pool interface is broken up into many smaller pieces\",\"kind\":\"dev\",\"methods\":{\"burn(int24,int24,uint128)\":{\"details\":\"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect\",\"params\":{\"amount\":\"How much liquidity to burn\",\"tickLower\":\"The lower tick of the position for which to burn liquidity\",\"tickUpper\":\"The upper tick of the position for which to burn liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 sent to the recipient\",\"amount1\":\"The amount of token1 sent to the recipient\"}},\"collect(address,int24,int24,uint128,uint128)\":{\"details\":\"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\",\"params\":{\"amount0Requested\":\"How much token0 should be withdrawn from the fees owed\",\"amount1Requested\":\"How much token1 should be withdrawn from the fees owed\",\"recipient\":\"The address which should receive the fees collected\",\"tickLower\":\"The lower tick of the position for which to collect fees\",\"tickUpper\":\"The upper tick of the position for which to collect fees\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"collectProtocol(address,uint128,uint128)\":{\"params\":{\"amount0Requested\":\"The maximum amount of token0 to send, can be 0 to collect fees in only token1\",\"amount1Requested\":\"The maximum amount of token1 to send, can be 0 to collect fees in only token0\",\"recipient\":\"The address to which collected protocol fees should be sent\"},\"returns\":{\"amount0\":\"The protocol fee collected in token0\",\"amount1\":\"The protocol fee collected in token1\"}},\"factory()\":{\"returns\":{\"_0\":\"The contract address\"}},\"fee()\":{\"returns\":{\"_0\":\"The fee\"}},\"feeGrowthGlobal0X128()\":{\"details\":\"This value can overflow the uint256\"},\"feeGrowthGlobal1X128()\":{\"details\":\"This value can overflow the uint256\"},\"flash(address,uint256,uint256,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback\",\"params\":{\"amount0\":\"The amount of token0 to send\",\"amount1\":\"The amount of token1 to send\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address which will receive the token0 and token1 amounts\"}},\"increaseObservationCardinalityNext(uint16)\":{\"details\":\"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.\",\"params\":{\"observationCardinalityNext\":\"The desired minimum number of observations for the pool to store\"}},\"initialize(uint160)\":{\"details\":\"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\",\"params\":{\"sqrtPriceX96\":\"the initial sqrt price of the pool as a Q64.96\"}},\"liquidity()\":{\"details\":\"This value has no relationship to the total liquidity across all ticks\"},\"maxLiquidityPerTick()\":{\"details\":\"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\",\"returns\":{\"_0\":\"The max amount of liquidity per tick\"}},\"mint(address,int24,int24,uint128,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.\",\"params\":{\"amount\":\"The amount of liquidity to mint\",\"data\":\"Any data that should be passed through to the callback\",\"recipient\":\"The address for which the liquidity will be created\",\"tickLower\":\"The lower tick of the position in which to add liquidity\",\"tickUpper\":\"The upper tick of the position in which to add liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\",\"amount1\":\"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\"}},\"observations(uint256)\":{\"details\":\"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.\",\"params\":{\"index\":\"The element of the observations array to fetch\"},\"returns\":{\"blockTimestamp\":\"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use\"}},\"observe(uint32[])\":{\"details\":\"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\",\"params\":{\"secondsAgos\":\"From how long ago each cumulative tick and liquidity value should be returned\"},\"returns\":{\"secondsPerLiquidityCumulativeX128s\":\"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp\",\"tickCumulatives\":\"Cumulative tick values as of each `secondsAgos` from the current block timestamp\"}},\"positions(bytes32)\":{\"params\":{\"key\":\"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\"},\"returns\":{\"_liquidity\":\"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\"}},\"protocolFees()\":{\"details\":\"Protocol fees will never exceed uint128 max in either token\"},\"setFeeProtocol(uint8,uint8)\":{\"params\":{\"feeProtocol0\":\"new protocol fee for token0 of the pool\",\"feeProtocol1\":\"new protocol fee for token1 of the pool\"}},\"slot0()\":{\"returns\":{\"sqrtPriceX96\":\"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy\"}},\"snapshotCumulativesInside(int24,int24)\":{\"details\":\"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.\",\"params\":{\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"},\"returns\":{\"secondsInside\":\"The snapshot of seconds per liquidity for the range\",\"secondsPerLiquidityInsideX128\":\"The snapshot of seconds per liquidity for the range\",\"tickCumulativeInside\":\"The snapshot of the tick accumulator for the range\"}},\"swap(address,bool,int256,uint160,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback\",\"params\":{\"amountSpecified\":\"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address to receive the output of the swap\",\"sqrtPriceLimitX96\":\"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap\",\"zeroForOne\":\"The direction of the swap, true for token0 to token1, false for token1 to token0\"},\"returns\":{\"amount0\":\"The delta of the balance of token0 of the pool, exact when negative, minimum when positive\",\"amount1\":\"The delta of the balance of token1 of the pool, exact when negative, minimum when positive\"}},\"tickSpacing()\":{\"details\":\"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.\",\"returns\":{\"_0\":\"The tick spacing\"}},\"ticks(int24)\":{\"params\":{\"tick\":\"The tick to look up\"},\"returns\":{\"liquidityGross\":\"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position.\"}},\"token0()\":{\"returns\":{\"_0\":\"The token contract address\"}},\"token1()\":{\"returns\":{\"_0\":\"The token contract address\"}}},\"title\":\"The interface for a Uniswap V3 Pool\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when a position's liquidity is removed\"},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"notice\":\"Emitted when fees are collected by the owner of a position\"},\"CollectProtocol(address,address,uint128,uint128)\":{\"notice\":\"Emitted when the collected protocol fees are withdrawn by the factory owner\"},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted by the pool for any flashes of token0/token1\"},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"notice\":\"Emitted by the pool for increases to the number of observations that can be stored\"},\"Initialize(uint160,int24)\":{\"notice\":\"Emitted exactly once by a pool when #initialize is first called on the pool\"},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is minted for a given position\"},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"notice\":\"Emitted when the protocol fee is changed by the pool\"},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"notice\":\"Emitted by the pool for any swaps between token0 and token1\"}},\"kind\":\"user\",\"methods\":{\"burn(int24,int24,uint128)\":{\"notice\":\"Burn liquidity from the sender and account tokens owed for the liquidity to the position\"},\"collect(address,int24,int24,uint128,uint128)\":{\"notice\":\"Collects tokens owed to a position\"},\"collectProtocol(address,uint128,uint128)\":{\"notice\":\"Collect the protocol fee accrued to the pool\"},\"factory()\":{\"notice\":\"The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\"},\"fee()\":{\"notice\":\"The pool's fee in hundredths of a bip, i.e. 1e-6\"},\"feeGrowthGlobal0X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\"},\"feeGrowthGlobal1X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\"},\"flash(address,uint256,uint256,bytes)\":{\"notice\":\"Receive token0 and/or token1 and pay it back, plus a fee, in the callback\"},\"increaseObservationCardinalityNext(uint16)\":{\"notice\":\"Increase the maximum number of price and liquidity observations that this pool will store\"},\"initialize(uint160)\":{\"notice\":\"Sets the initial price for the pool\"},\"liquidity()\":{\"notice\":\"The currently in range liquidity available to the pool\"},\"maxLiquidityPerTick()\":{\"notice\":\"The maximum amount of position liquidity that can use any tick in the range\"},\"mint(address,int24,int24,uint128,bytes)\":{\"notice\":\"Adds liquidity for the given recipient/tickLower/tickUpper position\"},\"observations(uint256)\":{\"notice\":\"Returns data about a specific observation index\"},\"observe(uint32[])\":{\"notice\":\"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\"},\"positions(bytes32)\":{\"notice\":\"Returns the information about a position by the position's key\"},\"protocolFees()\":{\"notice\":\"The amounts of token0 and token1 that are owed to the protocol\"},\"setFeeProtocol(uint8,uint8)\":{\"notice\":\"Set the denominator of the protocol's % share of the fees\"},\"slot0()\":{\"notice\":\"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally.\"},\"snapshotCumulativesInside(int24,int24)\":{\"notice\":\"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\"},\"swap(address,bool,int256,uint160,bytes)\":{\"notice\":\"Swap token0 for token1, or token1 for token0\"},\"tickBitmap(int16)\":{\"notice\":\"Returns 256 packed tick initialized boolean values. See TickBitmap for more information\"},\"tickSpacing()\":{\"notice\":\"The pool tick spacing\"},\"ticks(int24)\":{\"notice\":\"Look up information about a specific tick in the pool\"},\"token0()\":{\"notice\":\"The first of the two tokens of the pool, sorted by address\"},\"token1()\":{\"notice\":\"The second of the two tokens of the pool, sorted by address\"}},\"notice\":\"A Uniswap pool facilitates swapping and automated market making between any two assets that strictly conform to the ERC20 specification\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":\"IUniswapV3Pool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"IUniswapV3PoolActions":{"abi":[{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collect","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"flash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"}],"name":"increaseObservationCardinalityNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[{"internalType":"int256","name":"amount0","type":"int256"},{"internalType":"int256","name":"amount1","type":"int256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(int24,int24,uint128)":"a34123a7","collect(address,int24,int24,uint128,uint128)":"4f1eb3d8","flash(address,uint256,uint256,bytes)":"490e6cbc","increaseObservationCardinalityNext(uint16)":"32148f67","initialize(uint160)":"f637731d","mint(address,int24,int24,uint128,bytes)":"3c8a7d8d","swap(address,bool,int256,uint160,bytes)":"128acb08"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"}],\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"burn(int24,int24,uint128)\":{\"details\":\"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect\",\"params\":{\"amount\":\"How much liquidity to burn\",\"tickLower\":\"The lower tick of the position for which to burn liquidity\",\"tickUpper\":\"The upper tick of the position for which to burn liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 sent to the recipient\",\"amount1\":\"The amount of token1 sent to the recipient\"}},\"collect(address,int24,int24,uint128,uint128)\":{\"details\":\"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\",\"params\":{\"amount0Requested\":\"How much token0 should be withdrawn from the fees owed\",\"amount1Requested\":\"How much token1 should be withdrawn from the fees owed\",\"recipient\":\"The address which should receive the fees collected\",\"tickLower\":\"The lower tick of the position for which to collect fees\",\"tickUpper\":\"The upper tick of the position for which to collect fees\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"flash(address,uint256,uint256,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback\",\"params\":{\"amount0\":\"The amount of token0 to send\",\"amount1\":\"The amount of token1 to send\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address which will receive the token0 and token1 amounts\"}},\"increaseObservationCardinalityNext(uint16)\":{\"details\":\"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.\",\"params\":{\"observationCardinalityNext\":\"The desired minimum number of observations for the pool to store\"}},\"initialize(uint160)\":{\"details\":\"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\",\"params\":{\"sqrtPriceX96\":\"the initial sqrt price of the pool as a Q64.96\"}},\"mint(address,int24,int24,uint128,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.\",\"params\":{\"amount\":\"The amount of liquidity to mint\",\"data\":\"Any data that should be passed through to the callback\",\"recipient\":\"The address for which the liquidity will be created\",\"tickLower\":\"The lower tick of the position in which to add liquidity\",\"tickUpper\":\"The upper tick of the position in which to add liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\",\"amount1\":\"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\"}},\"swap(address,bool,int256,uint160,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback\",\"params\":{\"amountSpecified\":\"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address to receive the output of the swap\",\"sqrtPriceLimitX96\":\"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap\",\"zeroForOne\":\"The direction of the swap, true for token0 to token1, false for token1 to token0\"},\"returns\":{\"amount0\":\"The delta of the balance of token0 of the pool, exact when negative, minimum when positive\",\"amount1\":\"The delta of the balance of token1 of the pool, exact when negative, minimum when positive\"}}},\"title\":\"Permissionless pool actions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burn(int24,int24,uint128)\":{\"notice\":\"Burn liquidity from the sender and account tokens owed for the liquidity to the position\"},\"collect(address,int24,int24,uint128,uint128)\":{\"notice\":\"Collects tokens owed to a position\"},\"flash(address,uint256,uint256,bytes)\":{\"notice\":\"Receive token0 and/or token1 and pay it back, plus a fee, in the callback\"},\"increaseObservationCardinalityNext(uint16)\":{\"notice\":\"Increase the maximum number of price and liquidity observations that this pool will store\"},\"initialize(uint160)\":{\"notice\":\"Sets the initial price for the pool\"},\"mint(address,int24,int24,uint128,bytes)\":{\"notice\":\"Adds liquidity for the given recipient/tickLower/tickUpper position\"},\"swap(address,bool,int256,uint160,bytes)\":{\"notice\":\"Swap token0 for token1, or token1 for token0\"}},\"notice\":\"Contains pool methods that can be called by anyone\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":\"IUniswapV3PoolActions\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"IUniswapV3PoolDerivedState":{"abi":[{"inputs":[{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"},{"internalType":"uint160[]","name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"snapshotCumulativesInside","outputs":[{"internalType":"int56","name":"tickCumulativeInside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityInsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"observe(uint32[])":"883bdbfd","snapshotCumulativesInside(int24,int24)":"a38807f2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"observe(uint32[])\":{\"details\":\"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\",\"params\":{\"secondsAgos\":\"From how long ago each cumulative tick and liquidity value should be returned\"},\"returns\":{\"secondsPerLiquidityCumulativeX128s\":\"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp\",\"tickCumulatives\":\"Cumulative tick values as of each `secondsAgos` from the current block timestamp\"}},\"snapshotCumulativesInside(int24,int24)\":{\"details\":\"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.\",\"params\":{\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"},\"returns\":{\"secondsInside\":\"The snapshot of seconds per liquidity for the range\",\"secondsPerLiquidityInsideX128\":\"The snapshot of seconds per liquidity for the range\",\"tickCumulativeInside\":\"The snapshot of the tick accumulator for the range\"}}},\"title\":\"Pool state that is not stored\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"observe(uint32[])\":{\"notice\":\"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\"},\"snapshotCumulativesInside(int24,int24)\":{\"notice\":\"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\"}},\"notice\":\"Contains view functions to provide information about the pool that is computed rather than stored on the blockchain. The functions here may have variable gas costs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":\"IUniswapV3PoolDerivedState\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"IUniswapV3PoolEvents":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"CollectProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid1","type":"uint256"}],"name":"Flash","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextOld","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextNew","type":"uint16"}],"name":"IncreaseObservationCardinalityNext","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"feeProtocol0Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol0New","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1New","type":"uint8"}],"name":"SetFeeProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"int256","name":"amount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"amount1","type":"int256"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Swap","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"CollectProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\"}],\"name\":\"Flash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\"}],\"name\":\"IncreaseObservationCardinalityNext\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\"}],\"name\":\"SetFeeProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Swap\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"details\":\"Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\",\"params\":{\"amount\":\"The amount of liquidity to remove\",\"amount0\":\"The amount of token0 withdrawn\",\"amount1\":\"The amount of token1 withdrawn\",\"owner\":\"The owner of the position for which liquidity is removed\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"details\":\"Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\",\"params\":{\"amount0\":\"The amount of token0 fees collected\",\"amount1\":\"The amount of token1 fees collected\",\"owner\":\"The owner of the position for which fees are collected\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"CollectProtocol(address,address,uint128,uint128)\":{\"params\":{\"amount0\":\"The amount of token1 protocol fees that is withdrawn\",\"recipient\":\"The address that receives the collected protocol fees\",\"sender\":\"The address that collects the protocol fees\"}},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"amount0\":\"The amount of token0 that was flashed\",\"amount1\":\"The amount of token1 that was flashed\",\"paid0\":\"The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\",\"paid1\":\"The amount of token1 paid for the flash, which can exceed the amount1 plus the fee\",\"recipient\":\"The address that received the tokens from flash\",\"sender\":\"The address that initiated the swap call, and that received the callback\"}},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"details\":\"observationCardinalityNext is not the observation cardinality until an observation is written at the index just before a mint/swap/burn.\",\"params\":{\"observationCardinalityNextNew\":\"The updated value of the next observation cardinality\",\"observationCardinalityNextOld\":\"The previous value of the next observation cardinality\"}},\"Initialize(uint160,int24)\":{\"details\":\"Mint/Burn/Swap cannot be emitted by the pool before Initialize\",\"params\":{\"sqrtPriceX96\":\"The initial sqrt price of the pool, as a Q64.96\",\"tick\":\"The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool\"}},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of liquidity minted to the position range\",\"amount0\":\"How much token0 was required for the minted liquidity\",\"amount1\":\"How much token1 was required for the minted liquidity\",\"owner\":\"The owner of the position and recipient of any minted liquidity\",\"sender\":\"The address that minted the liquidity\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"params\":{\"feeProtocol0New\":\"The updated value of the token0 protocol fee\",\"feeProtocol0Old\":\"The previous value of the token0 protocol fee\",\"feeProtocol1New\":\"The updated value of the token1 protocol fee\",\"feeProtocol1Old\":\"The previous value of the token1 protocol fee\"}},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"params\":{\"amount0\":\"The delta of the token0 balance of the pool\",\"amount1\":\"The delta of the token1 balance of the pool\",\"liquidity\":\"The liquidity of the pool after the swap\",\"recipient\":\"The address that received the output of the swap\",\"sender\":\"The address that initiated the swap call, and that received the callback\",\"sqrtPriceX96\":\"The sqrt(price) of the pool after the swap, as a Q64.96\",\"tick\":\"The log base 1.0001 of price of the pool after the swap\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Events emitted by a pool\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when a position's liquidity is removed\"},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"notice\":\"Emitted when fees are collected by the owner of a position\"},\"CollectProtocol(address,address,uint128,uint128)\":{\"notice\":\"Emitted when the collected protocol fees are withdrawn by the factory owner\"},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted by the pool for any flashes of token0/token1\"},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"notice\":\"Emitted by the pool for increases to the number of observations that can be stored\"},\"Initialize(uint160,int24)\":{\"notice\":\"Emitted exactly once by a pool when #initialize is first called on the pool\"},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is minted for a given position\"},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"notice\":\"Emitted when the protocol fee is changed by the pool\"},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"notice\":\"Emitted by the pool for any swaps between token0 and token1\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains all events emitted by the pool\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":\"IUniswapV3PoolEvents\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"IUniswapV3PoolImmutables":{"abi":[{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiquidityPerTick","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}],"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"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"factory()":"c45a0155","fee()":"ddca3f43","maxLiquidityPerTick()":"70cf754a","tickSpacing()":"d0c93a7c","token0()":"0dfe1681","token1()":"d21220a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"factory()\":{\"returns\":{\"_0\":\"The contract address\"}},\"fee()\":{\"returns\":{\"_0\":\"The fee\"}},\"maxLiquidityPerTick()\":{\"details\":\"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\",\"returns\":{\"_0\":\"The max amount of liquidity per tick\"}},\"tickSpacing()\":{\"details\":\"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.\",\"returns\":{\"_0\":\"The tick spacing\"}},\"token0()\":{\"returns\":{\"_0\":\"The token contract address\"}},\"token1()\":{\"returns\":{\"_0\":\"The token contract address\"}}},\"title\":\"Pool state that never changes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"factory()\":{\"notice\":\"The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\"},\"fee()\":{\"notice\":\"The pool's fee in hundredths of a bip, i.e. 1e-6\"},\"maxLiquidityPerTick()\":{\"notice\":\"The maximum amount of position liquidity that can use any tick in the range\"},\"tickSpacing()\":{\"notice\":\"The pool tick spacing\"},\"token0()\":{\"notice\":\"The first of the two tokens of the pool, sorted by address\"},\"token1()\":{\"notice\":\"The second of the two tokens of the pool, sorted by address\"}},\"notice\":\"These parameters are fixed for a pool forever, i.e., the methods will always return the same values\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":\"IUniswapV3PoolImmutables\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"IUniswapV3PoolOwnerActions":{"abi":[{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collectProtocol","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"feeProtocol0","type":"uint8"},{"internalType":"uint8","name":"feeProtocol1","type":"uint8"}],"name":"setFeeProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"collectProtocol(address,uint128,uint128)":"85b66729","setFeeProtocol(uint8,uint8)":"8206a4d1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\"}],\"name\":\"setFeeProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"params\":{\"amount0Requested\":\"The maximum amount of token0 to send, can be 0 to collect fees in only token1\",\"amount1Requested\":\"The maximum amount of token1 to send, can be 0 to collect fees in only token0\",\"recipient\":\"The address to which collected protocol fees should be sent\"},\"returns\":{\"amount0\":\"The protocol fee collected in token0\",\"amount1\":\"The protocol fee collected in token1\"}},\"setFeeProtocol(uint8,uint8)\":{\"params\":{\"feeProtocol0\":\"new protocol fee for token0 of the pool\",\"feeProtocol1\":\"new protocol fee for token1 of the pool\"}}},\"title\":\"Permissioned pool actions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"notice\":\"Collect the protocol fee accrued to the pool\"},\"setFeeProtocol(uint8,uint8)\":{\"notice\":\"Set the denominator of the protocol's % share of the fees\"}},\"notice\":\"Contains pool methods that may only be called by the factory owner\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":\"IUniswapV3PoolOwnerActions\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]}},\"version\":1}"}},"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"IUniswapV3PoolState":{"abi":[{"inputs":[],"name":"feeGrowthGlobal0X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal1X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"observations","outputs":[{"internalType":"uint32","name":"blockTimestamp","type":"uint32"},{"internalType":"int56","name":"tickCumulative","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityCumulativeX128","type":"uint160"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"positions","outputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFees","outputs":[{"internalType":"uint128","name":"token0","type":"uint128"},{"internalType":"uint128","name":"token1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint16","name":"observationIndex","type":"uint16"},{"internalType":"uint16","name":"observationCardinality","type":"uint16"},{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"},{"internalType":"uint8","name":"feeProtocol","type":"uint8"},{"internalType":"bool","name":"unlocked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int16","name":"wordPosition","type":"int16"}],"name":"tickBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"name":"ticks","outputs":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"},{"internalType":"int56","name":"tickCumulativeOutside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityOutsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsOutside","type":"uint32"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"feeGrowthGlobal0X128()":"f3058399","feeGrowthGlobal1X128()":"46141319","liquidity()":"1a686502","observations(uint256)":"252c09d7","positions(bytes32)":"514ea4bf","protocolFees()":"1ad8b03b","slot0()":"3850c7bd","tickBitmap(int16)":"5339c296","ticks(int24)":"f30dba93"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\"}],\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\"},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\"},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"feeGrowthGlobal0X128()\":{\"details\":\"This value can overflow the uint256\"},\"feeGrowthGlobal1X128()\":{\"details\":\"This value can overflow the uint256\"},\"liquidity()\":{\"details\":\"This value has no relationship to the total liquidity across all ticks\"},\"observations(uint256)\":{\"details\":\"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.\",\"params\":{\"index\":\"The element of the observations array to fetch\"},\"returns\":{\"blockTimestamp\":\"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use\"}},\"positions(bytes32)\":{\"params\":{\"key\":\"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\"},\"returns\":{\"_liquidity\":\"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\"}},\"protocolFees()\":{\"details\":\"Protocol fees will never exceed uint128 max in either token\"},\"slot0()\":{\"returns\":{\"sqrtPriceX96\":\"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy\"}},\"ticks(int24)\":{\"params\":{\"tick\":\"The tick to look up\"},\"returns\":{\"liquidityGross\":\"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position.\"}}},\"title\":\"Pool state that can change\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"feeGrowthGlobal0X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\"},\"feeGrowthGlobal1X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\"},\"liquidity()\":{\"notice\":\"The currently in range liquidity available to the pool\"},\"observations(uint256)\":{\"notice\":\"Returns data about a specific observation index\"},\"positions(bytes32)\":{\"notice\":\"Returns the information about a position by the position's key\"},\"protocolFees()\":{\"notice\":\"The amounts of token0 and token1 that are owed to the protocol\"},\"slot0()\":{\"notice\":\"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally.\"},\"tickBitmap(int16)\":{\"notice\":\"Returns 256 packed tick initialized boolean values. See TickBitmap for more information\"},\"ticks(int24)\":{\"notice\":\"Look up information about a specific tick in the pool\"}},\"notice\":\"These methods compose the pool's state, and can change with any frequency including multiple times per transaction\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":\"IUniswapV3PoolState\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]}},\"version\":1}"}},"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"IERC721Permit":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","permit(address,uint256,uint256,uint8,bytes32,bytes32)":"7ac2ff7b","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"The domain seperator used in encoding of permit signature\"}},\"PERMIT_TYPEHASH()\":{\"returns\":{\"_0\":\"The typehash for the permit\"}},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"deadline\":\"The deadline timestamp by which the call must be mined for the approve to work\",\"r\":\"Must produce valid secp256k1 signature from the holder along with `v` and `s`\",\"s\":\"Must produce valid secp256k1 signature from the holder along with `r` and `v`\",\"spender\":\"The account that is being approved\",\"tokenId\":\"The ID of the token that is being approved for spending\",\"v\":\"Must produce valid secp256k1 signature from the holder along with `r` and `s`\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC721 with permit\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"The domain separator used in the permit signature\"},\"PERMIT_TYPEHASH()\":{\"notice\":\"The permit typehash used in the permit signature\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Approve of a specific token ID for spending by spender via signature\"}},\"notice\":\"Extension to ERC721 that includes a permit function for signature based approvals\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":\"IERC721Permit\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]}},\"version\":1}"}},"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"IPeripheryImmutableState":{"abi":[{"inputs":[],"name":"WETH9","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"WETH9()":"4aa4a4fc","factory()":"c45a0155"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WETH9\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"WETH9()\":{\"returns\":{\"_0\":\"Returns the address of WETH9\"}},\"factory()\":{\"returns\":{\"_0\":\"Returns the address of the Uniswap V3 factory\"}}},\"title\":\"Immutable state\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Functions that return immutable state of the router\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":\"IPeripheryImmutableState\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]}},\"version\":1}"}},"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"IPeripheryPayments":{"abi":[{"inputs":[],"name":"refundETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"sweepToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"unwrapWETH9","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"refundETH()":"12210e8a","sweepToken(address,uint256,address)":"df2ab5bb","unwrapWETH9(uint256,address)":"49404b7c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"refundETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"unwrapWETH9\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"refundETH()\":{\"details\":\"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount\"},\"sweepToken(address,uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing the token from users\",\"params\":{\"amountMinimum\":\"The minimum amount of token required for a transfer\",\"recipient\":\"The destination address of the token\",\"token\":\"The contract address of the token which will be transferred to `recipient`\"}},\"unwrapWETH9(uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\",\"params\":{\"amountMinimum\":\"The minimum amount of WETH9 to unwrap\",\"recipient\":\"The address receiving ETH\"}}},\"title\":\"Periphery Payments\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"refundETH()\":{\"notice\":\"Refunds any ETH balance held by this contract to the `msg.sender`\"},\"sweepToken(address,uint256,address)\":{\"notice\":\"Transfers the full amount of a token held by this contract to recipient\"},\"unwrapWETH9(uint256,address)\":{\"notice\":\"Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\"}},\"notice\":\"Functions to ease deposits and withdrawals of ETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":\"IPeripheryPayments\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]}},\"version\":1}"}},"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"IPoolInitializer":{"abi":[{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"createAndInitializePoolIfNecessary","outputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createAndInitializePoolIfNecessary(address,address,uint24,uint160)":"13ead562"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"createAndInitializePoolIfNecessary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"details\":\"This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\",\"params\":{\"fee\":\"The fee amount of the v3 pool for the specified token pair\",\"sqrtPriceX96\":\"The initial square root price of the pool as a Q64.96 value\",\"token0\":\"The contract address of token0 of the pool\",\"token1\":\"The contract address of token1 of the pool\"},\"returns\":{\"pool\":\"Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary\"}}},\"title\":\"Creates and initializes V3 Pools\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"notice\":\"Creates a new pool if it does not exist, then initializes if not initialized\"}},\"notice\":\"Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that require the pool to exist.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":\"IPoolInitializer\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]}},\"version\":1}"}},"contracts/EmissionController.sol":{"EmissionController":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"uint256","name":"_ratePerEpoch","type":"uint256"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"old","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"RateUpdated","type":"event"},{"inputs":[],"name":"allocateEmission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"callable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpochPoint","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":"ratePerEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenStakingPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"epochRate","type":"uint256"}],"name":"updateRate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:825:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"112:273:139","statements":[{"body":{"nodeType":"YulBlock","src":"158:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"167:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"175:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"160:6:139"},"nodeType":"YulFunctionCall","src":"160:22:139"},"nodeType":"YulExpressionStatement","src":"160:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"133:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"142:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"129:3:139"},"nodeType":"YulFunctionCall","src":"129:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"154:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"125:3:139"},"nodeType":"YulFunctionCall","src":"125:32:139"},"nodeType":"YulIf","src":"122:2:139"},{"nodeType":"YulVariableDeclaration","src":"193:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"212:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"206:5:139"},"nodeType":"YulFunctionCall","src":"206:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"197:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"285:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"294:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"302:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"287:6:139"},"nodeType":"YulFunctionCall","src":"287:22:139"},"nodeType":"YulExpressionStatement","src":"287:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"244:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"255:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"270:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"275:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"266:3:139"},"nodeType":"YulFunctionCall","src":"266:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"279:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"262:3:139"},"nodeType":"YulFunctionCall","src":"262:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"251:3:139"},"nodeType":"YulFunctionCall","src":"251:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"241:2:139"},"nodeType":"YulFunctionCall","src":"241:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"234:6:139"},"nodeType":"YulFunctionCall","src":"234:50:139"},"nodeType":"YulIf","src":"231:2:139"},{"nodeType":"YulAssignment","src":"320:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"330:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"320:6:139"}]},{"nodeType":"YulAssignment","src":"344:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"364:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"375:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"360:3:139"},"nodeType":"YulFunctionCall","src":"360:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"354:5:139"},"nodeType":"YulFunctionCall","src":"354:25:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"344:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"70:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"81:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"93:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"101:6:139","type":""}],"src":"14:371:139"},{"body":{"nodeType":"YulBlock","src":"438:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"465:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"467:16:139"},"nodeType":"YulFunctionCall","src":"467:18:139"},"nodeType":"YulExpressionStatement","src":"467:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"454:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"461:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"457:3:139"},"nodeType":"YulFunctionCall","src":"457:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"451:2:139"},"nodeType":"YulFunctionCall","src":"451:13:139"},"nodeType":"YulIf","src":"448:2:139"},{"nodeType":"YulAssignment","src":"496:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"507:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"510:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"503:3:139"},"nodeType":"YulFunctionCall","src":"503:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"496:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"421:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"424:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"430:3:139","type":""}],"src":"390:128:139"},{"body":{"nodeType":"YulBlock","src":"575:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"634:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"636:16:139"},"nodeType":"YulFunctionCall","src":"636:18:139"},"nodeType":"YulExpressionStatement","src":"636:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"606:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"599:6:139"},"nodeType":"YulFunctionCall","src":"599:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"592:6:139"},"nodeType":"YulFunctionCall","src":"592:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"614:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"625:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"621:3:139"},"nodeType":"YulFunctionCall","src":"621:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"629:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"617:3:139"},"nodeType":"YulFunctionCall","src":"617:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"611:2:139"},"nodeType":"YulFunctionCall","src":"611:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"588:3:139"},"nodeType":"YulFunctionCall","src":"588:45:139"},"nodeType":"YulIf","src":"585:2:139"},{"nodeType":"YulAssignment","src":"665:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"680:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"683:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"676:3:139"},"nodeType":"YulFunctionCall","src":"676:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"665:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"554:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"557:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"563:7:139","type":""}],"src":"523:168:139"},{"body":{"nodeType":"YulBlock","src":"728:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"745:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"757:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:139"},"nodeType":"YulFunctionCall","src":"748:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"738:6:139"},"nodeType":"YulFunctionCall","src":"738:31:139"},"nodeType":"YulExpressionStatement","src":"738:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"785:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"788:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"778:6:139"},"nodeType":"YulFunctionCall","src":"778:15:139"},"nodeType":"YulExpressionStatement","src":"778:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"809:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"812:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"802:6:139"},"nodeType":"YulFunctionCall","src":"802:15:139"},"nodeType":"YulExpressionStatement","src":"802:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"696:127:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n        value0 := value\n        value1 := mload(add(headStart, 32))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405162000c1d38038062000c1d83398101604081905261003191610116565b62093a80426000610041336100a7565b6001839055600282905561007861006382856100f7602090811b6107b317901c565b60025461010a60201b6107c61790919060201c565b6003555050600480546001600160a01b0319166001600160a01b0394909416939093179092556005555061019b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006101038284610166565b9392505050565b6000610103828461014e565b60008060408385031215610128578182fd5b82516001600160a01b038116811461013e578283fd5b6020939093015192949293505050565b6000821982111561016157610161610185565b500190565b600081600019048311821515161561018057610180610185565b500290565b634e487b7160e01b600052601160045260246000fd5b610a7280620001ab6000396000f3fe608060405234801561001057600080fd5b50600436106100e05760003560e01c80638da5cb5b116100875780638da5cb5b1461017f578063b97dd9e214610190578063c1ba630e14610198578063c5967c26146101c1578063c828371e146101c9578063d8e2219c146101d1578063efe97d05146101da578063f2fde38b146101e257600080fd5b80630f3a9f65146100e5578063161ad706146100fa5780631ed2419514610102578063398bac631461011957806369ea1771146101215780636a2ab60214610134578063715018a61461014c5780637b10399914610154575b600080fd5b6100f86100f3366004610973565b6101f5565b005b6100f8610202565b6001545b6040519081526020015b60405180910390f35b610106610672565b6100f861012f366004610973565b610681565b61013c6106ca565b6040519015158152602001610110565b6100f86106d4565b600454610167906001600160a01b031681565b6040516001600160a01b039091168152602001610110565b6000546001600160a01b0316610167565b6101066106e8565b6101676101a636600461091b565b6006602052600090815260409020546001600160a01b031681565b61010661070e565b600254610106565b61010660055481565b610106610730565b6100f86101f036600461091b565b61073a565b6101fd6107d2565b600155565b60025442116102515760405162461bcd60e51b8152602060048201526016602482015275115c1bd8da0e881b9bdd081cdd185c9d1959081e595d60521b60448201526064015b60405180910390fd5b61025961082c565b61029a5760405162461bcd60e51b8152602060048201526012602482015271115c1bd8da0e881b9bdd08185b1b1bddd95960721b6044820152606401610248565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ea57600080fd5b505afa1580156102fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103229190610937565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561036357600080fd5b505afa158015610377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039b919061098b565b90506000600554600014156103b15750806103c0565b6103bd82600554610845565b90505b600081116104025760405162461bcd60e51b815260206004820152600f60248201526e1b9bc81b585a18481d1bc81cd95b99608a1b6044820152606401610248565b6004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b15801561044457600080fd5b505afa158015610458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047c9190610937565b6001600160a01b031663a9059cbb600460009054906101000a90046001600160a01b03166001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105109190610937565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561055857600080fd5b505af115801561056c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105909190610953565b5060048054604080516381ca29a160e01b815290516001600160a01b03909216926381ca29a1928282019260209290829003018186803b1580156105d357600080fd5b505afa1580156105e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b9190610937565b6001600160a01b0316633c6b16ab826040518263ffffffff1660e01b815260040161063891815260200190565b600060405180830381600087803b15801561065257600080fd5b505af1158015610666573d6000803e3d6000fd5b50504260035550505050565b600061067c61085b565b905090565b6106896107d2565b60055460408051918252602082018390527fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d1916910160405180910390a1600555565b600061067c61082c565b6106dc6107d2565b6106e6600061087a565b565b600061067c600154610708600254610702600254426108ca565b906108da565b906108e6565b600061067c6107276001546107216108f2565b906107b3565b600254906107c6565b600061067c6108f2565b6107426107d2565b6001600160a01b0381166107a75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610248565b6107b08161087a565b50565b60006107bf82846109db565b9392505050565b60006107bf82846109a3565b6000546001600160a01b031633146106e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610248565b60006108366108f2565b61083e6106e8565b1015905090565b600081831061085457816107bf565b5090919050565b600061067c6001546107086002546003546108da90919063ffffffff16565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183101561085457816107bf565b60006107bf82846109fa565b60006107bf82846109bb565b600060035460025414156109085761067c61085b565b61067c600161091561085b565b906107c6565b60006020828403121561092c578081fd5b81356107bf81610a27565b600060208284031215610948578081fd5b81516107bf81610a27565b600060208284031215610964578081fd5b815180151581146107bf578182fd5b600060208284031215610984578081fd5b5035919050565b60006020828403121561099c578081fd5b5051919050565b600082198211156109b6576109b6610a11565b500190565b6000826109d657634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156109f5576109f5610a11565b500290565b600082821015610a0c57610a0c610a11565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146107b057600080fdfea26469706673582212209dd17daa98447a81a6b9cbfb7491f95dd9debd44b5bcfc2b3ebb39abaca7c11e64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xC1D CODESIZE SUB DUP1 PUSH3 0xC1D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x31 SWAP2 PUSH2 0x116 JUMP JUMPDEST PUSH3 0x93A80 TIMESTAMP PUSH1 0x0 PUSH2 0x41 CALLER PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x1 DUP4 SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x78 PUSH2 0x63 DUP3 DUP6 PUSH2 0xF7 PUSH1 0x20 SWAP1 DUP2 SHL PUSH2 0x7B3 OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x10A PUSH1 0x20 SHL PUSH2 0x7C6 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x3 SSTORE POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x5 SSTORE POP PUSH2 0x19B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x103 DUP3 DUP5 PUSH2 0x166 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x103 DUP3 DUP5 PUSH2 0x14E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x128 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x13E JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x161 JUMPI PUSH2 0x161 PUSH2 0x185 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x180 JUMPI PUSH2 0x180 PUSH2 0x185 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xA72 DUP1 PUSH3 0x1AB PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x87 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xB97DD9E2 EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xC1BA630E EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0xC5967C26 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0xC828371E EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xD8E2219C EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xEFE97D05 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF3A9F65 EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0x161AD706 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x1ED24195 EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0x398BAC63 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x69EA1771 EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x6A2AB602 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x154 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH2 0xF3 CALLDATASIZE PUSH1 0x4 PUSH2 0x973 JUMP JUMPDEST PUSH2 0x1F5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF8 PUSH2 0x202 JUMP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x106 PUSH2 0x672 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x973 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST PUSH2 0x13C PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x110 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x167 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x110 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x167 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x6E8 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x91B JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x70E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x106 JUMP JUMPDEST PUSH2 0x106 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x730 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x91B JUMP JUMPDEST PUSH2 0x73A JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x7D2 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP GT PUSH2 0x251 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x115C1BD8DA0E881B9BDD081CDD185C9D1959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x259 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x29A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x115C1BD8DA0E881B9BDD08185B1B1BDDD959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x248 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x322 SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x377 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39B SWAP2 SWAP1 PUSH2 0x98B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x3B1 JUMPI POP DUP1 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x3BD DUP3 PUSH1 0x5 SLOAD PUSH2 0x845 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1B9BC81B585A18481D1BC81CD95B99 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x248 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x458 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x510 SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x56C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0x953 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x81CA29A1 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x60B SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3C6B16AB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x652 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x666 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP TIMESTAMP PUSH1 0x3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x85B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x689 PUSH2 0x7D2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xB38780DDDE1F073D91C150DE2696F3F7085883648BA21CC5EF01029CB21D1916 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x82C JUMP JUMPDEST PUSH2 0x6DC PUSH2 0x7D2 JUMP JUMPDEST PUSH2 0x6E6 PUSH1 0x0 PUSH2 0x87A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH1 0x1 SLOAD PUSH2 0x708 PUSH1 0x2 SLOAD PUSH2 0x702 PUSH1 0x2 SLOAD TIMESTAMP PUSH2 0x8CA JUMP JUMPDEST SWAP1 PUSH2 0x8DA JUMP JUMPDEST SWAP1 PUSH2 0x8E6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x727 PUSH1 0x1 SLOAD PUSH2 0x721 PUSH2 0x8F2 JUMP JUMPDEST SWAP1 PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x742 PUSH2 0x7D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x248 JUMP JUMPDEST PUSH2 0x7B0 DUP2 PUSH2 0x87A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9DB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9A3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x248 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x836 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x83E PUSH2 0x6E8 JUMP JUMPDEST LT ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x854 JUMPI DUP2 PUSH2 0x7BF JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH1 0x1 SLOAD PUSH2 0x708 PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x8DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x854 JUMPI DUP2 PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0x908 JUMPI PUSH2 0x67C PUSH2 0x85B JUMP JUMPDEST PUSH2 0x67C PUSH1 0x1 PUSH2 0x915 PUSH2 0x85B JUMP JUMPDEST SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x92C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7BF DUP2 PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x948 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7BF DUP2 PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x964 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7BF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x984 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x9B6 JUMPI PUSH2 0x9B6 PUSH2 0xA11 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x9D6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x9F5 JUMPI PUSH2 0x9F5 PUSH2 0xA11 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xA0C JUMPI PUSH2 0xA0C PUSH2 0xA11 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 0xD1 PUSH30 0xAA98447A81A6B9CBFB7491F95DD9DEBD44B5BCFC2B3EBB39ABACA7C11E64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"423:1356:65:-:0;;;661:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;729:6;737:15;754:1;936:32:4;719:10:38;936:18:4;:32::i;:::-;639:6:126;:16;;;665:9;:22;;;714:38;728:23;:11;639:16;728:15;;;;;;;:23;;:::i;:::-;714:9;;:13;;;;;;:38;;;;:::i;:::-;697:14;:55;-1:-1:-1;;771:8:65::1;:31:::0;;-1:-1:-1;;;;;;771:31:65::1;-1:-1:-1::0;;;;;771:31:65;;;::::1;::::0;;;::::1;::::0;;;812:12:::1;:28:::0;-1:-1:-1;423:1356:65;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;3465:96:49:-;3523:7;3549:5;3553:1;3549;:5;:::i;:::-;3542:12;3465:96;-1:-1:-1;;;3465:96:49:o;2755:::-;2813:7;2839:5;2843:1;2839;:5;:::i;14:371:139:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:2;;;175:6;167;160:22;122:2;206:16;;-1:-1:-1;;;;;251:31:139;;241:42;;231:2;;302:6;294;287:22;231:2;375;360:18;;;;354:25;330:5;;354:25;;-1:-1:-1;;;112:273:139:o;390:128::-;430:3;461:1;457:6;454:1;451:13;448:2;;;467:18;;:::i;:::-;-1:-1:-1;503:9:139;;438:80::o;523:168::-;563:7;629:1;625;621:6;617:14;614:1;611:21;606:1;599:9;592:17;588:45;585:2;;;636:18;;:::i;:::-;-1:-1:-1;676:9:139;;575:116::o;696:127::-;757:10;752:3;748:20;745:1;738:31;788:4;785:1;778:15;812:4;809:1;802:15;728:95;423:1356:65;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5312:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulVariableDeclaration","src":"165:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:139"},"nodeType":"YulFunctionCall","src":"178:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:139"},"nodeType":"YulFunctionCall","src":"210:31:139"},"nodeType":"YulExpressionStatement","src":"210:31:139"},{"nodeType":"YulAssignment","src":"250:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:257:139"},{"body":{"nodeType":"YulBlock","src":"357:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:139"},"nodeType":"YulFunctionCall","src":"405:22:139"},"nodeType":"YulExpressionStatement","src":"405:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:139"},"nodeType":"YulFunctionCall","src":"374:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:139"},"nodeType":"YulFunctionCall","src":"370:32:139"},"nodeType":"YulIf","src":"367:2:139"},{"nodeType":"YulVariableDeclaration","src":"438:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:139"},"nodeType":"YulFunctionCall","src":"451:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:139"},"nodeType":"YulFunctionCall","src":"476:31:139"},"nodeType":"YulExpressionStatement","src":"476:31:139"},{"nodeType":"YulAssignment","src":"516:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:139","type":""}],"src":"276:261:139"},{"body":{"nodeType":"YulBlock","src":"620:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"666:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"675:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"683:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"668:6:139"},"nodeType":"YulFunctionCall","src":"668:22:139"},"nodeType":"YulExpressionStatement","src":"668:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"641:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"637:3:139"},"nodeType":"YulFunctionCall","src":"637:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"662:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"633:3:139"},"nodeType":"YulFunctionCall","src":"633:32:139"},"nodeType":"YulIf","src":"630:2:139"},{"nodeType":"YulVariableDeclaration","src":"701:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"720:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"714:5:139"},"nodeType":"YulFunctionCall","src":"714:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"705:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"783:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:139"},"nodeType":"YulFunctionCall","src":"785:22:139"},"nodeType":"YulExpressionStatement","src":"785:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"752:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"773:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"766:6:139"},"nodeType":"YulFunctionCall","src":"766:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"759:6:139"},"nodeType":"YulFunctionCall","src":"759:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"749:2:139"},"nodeType":"YulFunctionCall","src":"749:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"742:6:139"},"nodeType":"YulFunctionCall","src":"742:40:139"},"nodeType":"YulIf","src":"739:2:139"},{"nodeType":"YulAssignment","src":"818:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"828:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"818:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"586:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"597:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"609:6:139","type":""}],"src":"542:297:139"},{"body":{"nodeType":"YulBlock","src":"914:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"960:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"969:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"977:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"962:6:139"},"nodeType":"YulFunctionCall","src":"962:22:139"},"nodeType":"YulExpressionStatement","src":"962:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"935:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"944:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"931:3:139"},"nodeType":"YulFunctionCall","src":"931:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"956:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"927:3:139"},"nodeType":"YulFunctionCall","src":"927:32:139"},"nodeType":"YulIf","src":"924:2:139"},{"nodeType":"YulAssignment","src":"995:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1018:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1005:12:139"},"nodeType":"YulFunctionCall","src":"1005:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"995:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"880:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"891:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"903:6:139","type":""}],"src":"844:190:139"},{"body":{"nodeType":"YulBlock","src":"1120:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"1166:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1175:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1183:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1168:6:139"},"nodeType":"YulFunctionCall","src":"1168:22:139"},"nodeType":"YulExpressionStatement","src":"1168:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1141:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1150:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1137:3:139"},"nodeType":"YulFunctionCall","src":"1137:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1162:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1133:3:139"},"nodeType":"YulFunctionCall","src":"1133:32:139"},"nodeType":"YulIf","src":"1130:2:139"},{"nodeType":"YulAssignment","src":"1201:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1217:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1211:5:139"},"nodeType":"YulFunctionCall","src":"1211:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1201:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1086:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1097:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1109:6:139","type":""}],"src":"1039:194:139"},{"body":{"nodeType":"YulBlock","src":"1339:102:139","statements":[{"nodeType":"YulAssignment","src":"1349:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1361:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1372:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1357:3:139"},"nodeType":"YulFunctionCall","src":"1357:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1349:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1391:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1406:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1422:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1427:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1418:3:139"},"nodeType":"YulFunctionCall","src":"1418:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1431:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1414:3:139"},"nodeType":"YulFunctionCall","src":"1414:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1402:3:139"},"nodeType":"YulFunctionCall","src":"1402:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1384:6:139"},"nodeType":"YulFunctionCall","src":"1384:51:139"},"nodeType":"YulExpressionStatement","src":"1384:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1308:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1319:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1330:4:139","type":""}],"src":"1238:203:139"},{"body":{"nodeType":"YulBlock","src":"1575:145:139","statements":[{"nodeType":"YulAssignment","src":"1585:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1597:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1608:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1593:3:139"},"nodeType":"YulFunctionCall","src":"1593:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1585:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1627:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1642:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1658:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1663:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1654:3:139"},"nodeType":"YulFunctionCall","src":"1654:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1667:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1650:3:139"},"nodeType":"YulFunctionCall","src":"1650:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1638:3:139"},"nodeType":"YulFunctionCall","src":"1638:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1620:6:139"},"nodeType":"YulFunctionCall","src":"1620:51:139"},"nodeType":"YulExpressionStatement","src":"1620:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1691:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1702:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1687:3:139"},"nodeType":"YulFunctionCall","src":"1687:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1707:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1680:6:139"},"nodeType":"YulFunctionCall","src":"1680:34:139"},"nodeType":"YulExpressionStatement","src":"1680:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1536:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1547:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1555:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1566:4:139","type":""}],"src":"1446:274:139"},{"body":{"nodeType":"YulBlock","src":"1820:92:139","statements":[{"nodeType":"YulAssignment","src":"1830:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1842:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1838:3:139"},"nodeType":"YulFunctionCall","src":"1838:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1830:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1872:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1897:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1890:6:139"},"nodeType":"YulFunctionCall","src":"1890:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1883:6:139"},"nodeType":"YulFunctionCall","src":"1883:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1865:6:139"},"nodeType":"YulFunctionCall","src":"1865:41:139"},"nodeType":"YulExpressionStatement","src":"1865:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1789:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1800:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1811:4:139","type":""}],"src":"1725:187:139"},{"body":{"nodeType":"YulBlock","src":"2037:102:139","statements":[{"nodeType":"YulAssignment","src":"2047:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2059:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2070:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2055:3:139"},"nodeType":"YulFunctionCall","src":"2055:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2047:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2089:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2104:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2120:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2125:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2116:3:139"},"nodeType":"YulFunctionCall","src":"2116:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2129:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2112:3:139"},"nodeType":"YulFunctionCall","src":"2112:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2100:3:139"},"nodeType":"YulFunctionCall","src":"2100:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2082:6:139"},"nodeType":"YulFunctionCall","src":"2082:51:139"},"nodeType":"YulExpressionStatement","src":"2082:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2006:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2017:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2028:4:139","type":""}],"src":"1917:222:139"},{"body":{"nodeType":"YulBlock","src":"2318:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2335:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2346:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2328:6:139"},"nodeType":"YulFunctionCall","src":"2328:21:139"},"nodeType":"YulExpressionStatement","src":"2328:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2369:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2380:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2365:3:139"},"nodeType":"YulFunctionCall","src":"2365:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2385:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2358:6:139"},"nodeType":"YulFunctionCall","src":"2358:30:139"},"nodeType":"YulExpressionStatement","src":"2358:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2408:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2419:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2404:3:139"},"nodeType":"YulFunctionCall","src":"2404:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2424:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2397:6:139"},"nodeType":"YulFunctionCall","src":"2397:62:139"},"nodeType":"YulExpressionStatement","src":"2397:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2479:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2490:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2475:3:139"},"nodeType":"YulFunctionCall","src":"2475:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2495:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2468:6:139"},"nodeType":"YulFunctionCall","src":"2468:36:139"},"nodeType":"YulExpressionStatement","src":"2468:36:139"},{"nodeType":"YulAssignment","src":"2513:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2525:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2536:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2521:3:139"},"nodeType":"YulFunctionCall","src":"2521:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2513:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2295:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2309:4:139","type":""}],"src":"2144:402:139"},{"body":{"nodeType":"YulBlock","src":"2725:172:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2742:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2753:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2735:6:139"},"nodeType":"YulFunctionCall","src":"2735:21:139"},"nodeType":"YulExpressionStatement","src":"2735:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2776:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2787:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2772:3:139"},"nodeType":"YulFunctionCall","src":"2772:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2792:2:139","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2765:6:139"},"nodeType":"YulFunctionCall","src":"2765:30:139"},"nodeType":"YulExpressionStatement","src":"2765:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2815:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2826:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2811:3:139"},"nodeType":"YulFunctionCall","src":"2811:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2831:24:139","type":"","value":"Epoch: not started yet"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2804:6:139"},"nodeType":"YulFunctionCall","src":"2804:52:139"},"nodeType":"YulExpressionStatement","src":"2804:52:139"},{"nodeType":"YulAssignment","src":"2865:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2877:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2888:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2873:3:139"},"nodeType":"YulFunctionCall","src":"2873:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2865:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2702:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2716:4:139","type":""}],"src":"2551:346:139"},{"body":{"nodeType":"YulBlock","src":"3076:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3093:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3104:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3086:6:139"},"nodeType":"YulFunctionCall","src":"3086:21:139"},"nodeType":"YulExpressionStatement","src":"3086:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3127:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3138:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3123:3:139"},"nodeType":"YulFunctionCall","src":"3123:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3143:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3116:6:139"},"nodeType":"YulFunctionCall","src":"3116:30:139"},"nodeType":"YulExpressionStatement","src":"3116:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3166:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3177:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3162:3:139"},"nodeType":"YulFunctionCall","src":"3162:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3182:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3155:6:139"},"nodeType":"YulFunctionCall","src":"3155:62:139"},"nodeType":"YulExpressionStatement","src":"3155:62:139"},{"nodeType":"YulAssignment","src":"3226:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3238:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3249:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3234:3:139"},"nodeType":"YulFunctionCall","src":"3234:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3226:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3053:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3067:4:139","type":""}],"src":"2902:356:139"},{"body":{"nodeType":"YulBlock","src":"3437:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3454:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3465:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3447:6:139"},"nodeType":"YulFunctionCall","src":"3447:21:139"},"nodeType":"YulExpressionStatement","src":"3447:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3488:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3499:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3484:3:139"},"nodeType":"YulFunctionCall","src":"3484:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3504:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3477:6:139"},"nodeType":"YulFunctionCall","src":"3477:30:139"},"nodeType":"YulExpressionStatement","src":"3477:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3527:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3538:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3523:3:139"},"nodeType":"YulFunctionCall","src":"3523:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3543:17:139","type":"","value":"no maha to send"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3516:6:139"},"nodeType":"YulFunctionCall","src":"3516:45:139"},"nodeType":"YulExpressionStatement","src":"3516:45:139"},{"nodeType":"YulAssignment","src":"3570:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3582:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3593:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3578:3:139"},"nodeType":"YulFunctionCall","src":"3578:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3570:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9bbc9cbdb95ff1740574fec89c84ee34beb1c5c2f7864112a75398058a78bfec__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3414:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3428:4:139","type":""}],"src":"3263:339:139"},{"body":{"nodeType":"YulBlock","src":"3781:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3798:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3809:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3791:6:139"},"nodeType":"YulFunctionCall","src":"3791:21:139"},"nodeType":"YulExpressionStatement","src":"3791:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3832:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3843:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3828:3:139"},"nodeType":"YulFunctionCall","src":"3828:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3848:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3821:6:139"},"nodeType":"YulFunctionCall","src":"3821:30:139"},"nodeType":"YulExpressionStatement","src":"3821:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3871:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3882:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3867:3:139"},"nodeType":"YulFunctionCall","src":"3867:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3887:20:139","type":"","value":"Epoch: not allowed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3860:6:139"},"nodeType":"YulFunctionCall","src":"3860:48:139"},"nodeType":"YulExpressionStatement","src":"3860:48:139"},{"nodeType":"YulAssignment","src":"3917:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3929:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3940:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3925:3:139"},"nodeType":"YulFunctionCall","src":"3925:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3917:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ca181773b1c59604f15d7520d42e1d47889556e1b4139f88cc128771175e114d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3758:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3772:4:139","type":""}],"src":"3607:342:139"},{"body":{"nodeType":"YulBlock","src":"4055:76:139","statements":[{"nodeType":"YulAssignment","src":"4065:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4077:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4088:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4073:3:139"},"nodeType":"YulFunctionCall","src":"4073:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4065:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4107:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4118:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4100:6:139"},"nodeType":"YulFunctionCall","src":"4100:25:139"},"nodeType":"YulExpressionStatement","src":"4100:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4024:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4035:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4046:4:139","type":""}],"src":"3954:177:139"},{"body":{"nodeType":"YulBlock","src":"4265:119:139","statements":[{"nodeType":"YulAssignment","src":"4275:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4287:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4298:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4283:3:139"},"nodeType":"YulFunctionCall","src":"4283:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4275:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4317:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4328:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4310:6:139"},"nodeType":"YulFunctionCall","src":"4310:25:139"},"nodeType":"YulExpressionStatement","src":"4310:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4355:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4366:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4351:3:139"},"nodeType":"YulFunctionCall","src":"4351:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4371:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4344:6:139"},"nodeType":"YulFunctionCall","src":"4344:34:139"},"nodeType":"YulExpressionStatement","src":"4344:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4226:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4237:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4245:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4256:4:139","type":""}],"src":"4136:248:139"},{"body":{"nodeType":"YulBlock","src":"4437:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"4464:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4466:16:139"},"nodeType":"YulFunctionCall","src":"4466:18:139"},"nodeType":"YulExpressionStatement","src":"4466:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4453:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4460:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4456:3:139"},"nodeType":"YulFunctionCall","src":"4456:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4450:2:139"},"nodeType":"YulFunctionCall","src":"4450:13:139"},"nodeType":"YulIf","src":"4447:2:139"},{"nodeType":"YulAssignment","src":"4495:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4506:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"4509:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4502:3:139"},"nodeType":"YulFunctionCall","src":"4502:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"4495:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4420:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"4423:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"4429:3:139","type":""}],"src":"4389:128:139"},{"body":{"nodeType":"YulBlock","src":"4568:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"4599:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"4620:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4627:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4632:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4623:3:139"},"nodeType":"YulFunctionCall","src":"4623:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4613:6:139"},"nodeType":"YulFunctionCall","src":"4613:31:139"},"nodeType":"YulExpressionStatement","src":"4613:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4664:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4667:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4657:6:139"},"nodeType":"YulFunctionCall","src":"4657:15:139"},"nodeType":"YulExpressionStatement","src":"4657:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"4692:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"4695:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4685:6:139"},"nodeType":"YulFunctionCall","src":"4685:15:139"},"nodeType":"YulExpressionStatement","src":"4685:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4588:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4581:6:139"},"nodeType":"YulFunctionCall","src":"4581:9:139"},"nodeType":"YulIf","src":"4578:2:139"},{"nodeType":"YulAssignment","src":"4719:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4728:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"4731:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4724:3:139"},"nodeType":"YulFunctionCall","src":"4724:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"4719:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4553:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"4556:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"4562:1:139","type":""}],"src":"4522:217:139"},{"body":{"nodeType":"YulBlock","src":"4796:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"4855:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4857:16:139"},"nodeType":"YulFunctionCall","src":"4857:18:139"},"nodeType":"YulExpressionStatement","src":"4857:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4827:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4820:6:139"},"nodeType":"YulFunctionCall","src":"4820:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4813:6:139"},"nodeType":"YulFunctionCall","src":"4813:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4835:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4846:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4842:3:139"},"nodeType":"YulFunctionCall","src":"4842:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"4850:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4838:3:139"},"nodeType":"YulFunctionCall","src":"4838:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4832:2:139"},"nodeType":"YulFunctionCall","src":"4832:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4809:3:139"},"nodeType":"YulFunctionCall","src":"4809:45:139"},"nodeType":"YulIf","src":"4806:2:139"},{"nodeType":"YulAssignment","src":"4886:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4901:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"4904:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4897:3:139"},"nodeType":"YulFunctionCall","src":"4897:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4886:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4775:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"4778:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"4784:7:139","type":""}],"src":"4744:168:139"},{"body":{"nodeType":"YulBlock","src":"4966:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"4988:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4990:16:139"},"nodeType":"YulFunctionCall","src":"4990:18:139"},"nodeType":"YulExpressionStatement","src":"4990:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4982:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"4985:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4979:2:139"},"nodeType":"YulFunctionCall","src":"4979:8:139"},"nodeType":"YulIf","src":"4976:2:139"},{"nodeType":"YulAssignment","src":"5019:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5031:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"5034:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5027:3:139"},"nodeType":"YulFunctionCall","src":"5027:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5019:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4948:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"4951:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4957:4:139","type":""}],"src":"4917:125:139"},{"body":{"nodeType":"YulBlock","src":"5079:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5096:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5103:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5108:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5099:3:139"},"nodeType":"YulFunctionCall","src":"5099:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5089:6:139"},"nodeType":"YulFunctionCall","src":"5089:31:139"},"nodeType":"YulExpressionStatement","src":"5089:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5136:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5139:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5129:6:139"},"nodeType":"YulFunctionCall","src":"5129:15:139"},"nodeType":"YulExpressionStatement","src":"5129:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5160:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5163:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5153:6:139"},"nodeType":"YulFunctionCall","src":"5153:15:139"},"nodeType":"YulExpressionStatement","src":"5153:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5047:127:139"},{"body":{"nodeType":"YulBlock","src":"5224:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"5288:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5297:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5300:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5290:6:139"},"nodeType":"YulFunctionCall","src":"5290:12:139"},"nodeType":"YulExpressionStatement","src":"5290:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5247:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5258:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5273:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5278:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5269:3:139"},"nodeType":"YulFunctionCall","src":"5269:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5282:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5265:3:139"},"nodeType":"YulFunctionCall","src":"5265:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5254:3:139"},"nodeType":"YulFunctionCall","src":"5254:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5244:2:139"},"nodeType":"YulFunctionCall","src":"5244:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5237:6:139"},"nodeType":"YulFunctionCall","src":"5237:50:139"},"nodeType":"YulIf","src":"5234:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5213:5:139","type":""}],"src":"5179:131:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Epoch: not started yet\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9bbc9cbdb95ff1740574fec89c84ee34beb1c5c2f7864112a75398058a78bfec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"no maha to send\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ca181773b1c59604f15d7520d42e1d47889556e1b4139f88cc128771175e114d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Epoch: not allowed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100e05760003560e01c80638da5cb5b116100875780638da5cb5b1461017f578063b97dd9e214610190578063c1ba630e14610198578063c5967c26146101c1578063c828371e146101c9578063d8e2219c146101d1578063efe97d05146101da578063f2fde38b146101e257600080fd5b80630f3a9f65146100e5578063161ad706146100fa5780631ed2419514610102578063398bac631461011957806369ea1771146101215780636a2ab60214610134578063715018a61461014c5780637b10399914610154575b600080fd5b6100f86100f3366004610973565b6101f5565b005b6100f8610202565b6001545b6040519081526020015b60405180910390f35b610106610672565b6100f861012f366004610973565b610681565b61013c6106ca565b6040519015158152602001610110565b6100f86106d4565b600454610167906001600160a01b031681565b6040516001600160a01b039091168152602001610110565b6000546001600160a01b0316610167565b6101066106e8565b6101676101a636600461091b565b6006602052600090815260409020546001600160a01b031681565b61010661070e565b600254610106565b61010660055481565b610106610730565b6100f86101f036600461091b565b61073a565b6101fd6107d2565b600155565b60025442116102515760405162461bcd60e51b8152602060048201526016602482015275115c1bd8da0e881b9bdd081cdd185c9d1959081e595d60521b60448201526064015b60405180910390fd5b61025961082c565b61029a5760405162461bcd60e51b8152602060048201526012602482015271115c1bd8da0e881b9bdd08185b1b1bddd95960721b6044820152606401610248565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ea57600080fd5b505afa1580156102fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103229190610937565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561036357600080fd5b505afa158015610377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039b919061098b565b90506000600554600014156103b15750806103c0565b6103bd82600554610845565b90505b600081116104025760405162461bcd60e51b815260206004820152600f60248201526e1b9bc81b585a18481d1bc81cd95b99608a1b6044820152606401610248565b6004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b15801561044457600080fd5b505afa158015610458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047c9190610937565b6001600160a01b031663a9059cbb600460009054906101000a90046001600160a01b03166001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105109190610937565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561055857600080fd5b505af115801561056c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105909190610953565b5060048054604080516381ca29a160e01b815290516001600160a01b03909216926381ca29a1928282019260209290829003018186803b1580156105d357600080fd5b505afa1580156105e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b9190610937565b6001600160a01b0316633c6b16ab826040518263ffffffff1660e01b815260040161063891815260200190565b600060405180830381600087803b15801561065257600080fd5b505af1158015610666573d6000803e3d6000fd5b50504260035550505050565b600061067c61085b565b905090565b6106896107d2565b60055460408051918252602082018390527fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d1916910160405180910390a1600555565b600061067c61082c565b6106dc6107d2565b6106e6600061087a565b565b600061067c600154610708600254610702600254426108ca565b906108da565b906108e6565b600061067c6107276001546107216108f2565b906107b3565b600254906107c6565b600061067c6108f2565b6107426107d2565b6001600160a01b0381166107a75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610248565b6107b08161087a565b50565b60006107bf82846109db565b9392505050565b60006107bf82846109a3565b6000546001600160a01b031633146106e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610248565b60006108366108f2565b61083e6106e8565b1015905090565b600081831061085457816107bf565b5090919050565b600061067c6001546107086002546003546108da90919063ffffffff16565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183101561085457816107bf565b60006107bf82846109fa565b60006107bf82846109bb565b600060035460025414156109085761067c61085b565b61067c600161091561085b565b906107c6565b60006020828403121561092c578081fd5b81356107bf81610a27565b600060208284031215610948578081fd5b81516107bf81610a27565b600060208284031215610964578081fd5b815180151581146107bf578182fd5b600060208284031215610984578081fd5b5035919050565b60006020828403121561099c578081fd5b5051919050565b600082198211156109b6576109b6610a11565b500190565b6000826109d657634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156109f5576109f5610a11565b500290565b600082821015610a0c57610a0c610a11565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146107b057600080fdfea26469706673582212209dd17daa98447a81a6b9cbfb7491f95dd9debd44b5bcfc2b3ebb39abaca7c11e64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x87 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xB97DD9E2 EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xC1BA630E EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0xC5967C26 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0xC828371E EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xD8E2219C EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xEFE97D05 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF3A9F65 EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0x161AD706 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x1ED24195 EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0x398BAC63 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x69EA1771 EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x6A2AB602 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x154 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH2 0xF3 CALLDATASIZE PUSH1 0x4 PUSH2 0x973 JUMP JUMPDEST PUSH2 0x1F5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF8 PUSH2 0x202 JUMP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x106 PUSH2 0x672 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x973 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST PUSH2 0x13C PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x110 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x167 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x110 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x167 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x6E8 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x91B JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x70E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x106 JUMP JUMPDEST PUSH2 0x106 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x730 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0x1F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x91B JUMP JUMPDEST PUSH2 0x73A JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x7D2 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP GT PUSH2 0x251 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x115C1BD8DA0E881B9BDD081CDD185C9D1959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x259 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x29A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x115C1BD8DA0E881B9BDD08185B1B1BDDD959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x248 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x322 SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x377 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39B SWAP2 SWAP1 PUSH2 0x98B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x3B1 JUMPI POP DUP1 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x3BD DUP3 PUSH1 0x5 SLOAD PUSH2 0x845 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1B9BC81B585A18481D1BC81CD95B99 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x248 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x458 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x510 SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x56C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0x953 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x81CA29A1 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x60B SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3C6B16AB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x652 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x666 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP TIMESTAMP PUSH1 0x3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x85B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x689 PUSH2 0x7D2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xB38780DDDE1F073D91C150DE2696F3F7085883648BA21CC5EF01029CB21D1916 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x82C JUMP JUMPDEST PUSH2 0x6DC PUSH2 0x7D2 JUMP JUMPDEST PUSH2 0x6E6 PUSH1 0x0 PUSH2 0x87A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH1 0x1 SLOAD PUSH2 0x708 PUSH1 0x2 SLOAD PUSH2 0x702 PUSH1 0x2 SLOAD TIMESTAMP PUSH2 0x8CA JUMP JUMPDEST SWAP1 PUSH2 0x8DA JUMP JUMPDEST SWAP1 PUSH2 0x8E6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x727 PUSH1 0x1 SLOAD PUSH2 0x721 PUSH2 0x8F2 JUMP JUMPDEST SWAP1 PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x742 PUSH2 0x7D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x248 JUMP JUMPDEST PUSH2 0x7B0 DUP2 PUSH2 0x87A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9DB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9A3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x248 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x836 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x83E PUSH2 0x6E8 JUMP JUMPDEST LT ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x854 JUMPI DUP2 PUSH2 0x7BF JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C PUSH1 0x1 SLOAD PUSH2 0x708 PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x8DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x854 JUMPI DUP2 PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP3 DUP5 PUSH2 0x9BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0x908 JUMPI PUSH2 0x67C PUSH2 0x85B JUMP JUMPDEST PUSH2 0x67C PUSH1 0x1 PUSH2 0x915 PUSH2 0x85B JUMP JUMPDEST SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x92C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7BF DUP2 PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x948 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7BF DUP2 PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x964 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7BF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x984 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x9B6 JUMPI PUSH2 0x9B6 PUSH2 0xA11 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x9D6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x9F5 JUMPI PUSH2 0x9F5 PUSH2 0xA11 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xA0C JUMPI PUSH2 0xA0C PUSH2 0xA11 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 0xD1 PUSH30 0xAA98447A81A6B9CBFB7491F95DD9DEBD44B5BCFC2B3EBB39ABACA7C11E64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"423:1356:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2630:88:126;;;;;;:::i;:::-;;:::i;:::-;;853:768:65;;;:::i;2384:92:126:-;2463:6;;2384:92;;;4100:25:139;;;4088:2;4073:18;2384:92:126;;;;;;;;1850:104;;;:::i;1627:150:65:-;;;;;;:::i;:::-;;:::i;1423:93:126:-;;;:::i;:::-;;;1890:14:139;;1883:22;1865:41;;1853:2;1838:18;1423:93:126;1820:92:139;1831:101:4;;;:::i;487:25:65:-;;;;;-1:-1:-1;;;;;487:25:65;;;;;;-1:-1:-1;;;;;1402:32:139;;;1384:51;;1372:2;1357:18;487:25:65;1339:102:139;1201:85:4;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;1960:155:126;;;:::i;552:51:65:-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;552:51:65;;;2231:133:126;;;:::i;2482:98::-;2564:9;;2482:98;;519:27:65;;;;;;2121:104:126;;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;2630:88:126:-;1094:13:4;:11;:13::i;:::-;2695:6:126::1;:16:::0;2630:88::o;853:768:65:-;988:9:126;;970:15;:27;962:62;;;;-1:-1:-1;;;962:62:126;;2753:2:139;962:62:126;;;2735:21:139;2792:2;2772:18;;;2765:30;-1:-1:-1;;;2811:18:139;;;2804:52;2873:18;;962:62:126;;;;;;;;;1042:11;:9;:11::i;:::-;1034:42;;;;-1:-1:-1;;;1034:42:126;;3809:2:139;1034:42:126;;;3791:21:139;3848:2;3828:18;;;3821:30;-1:-1:-1;;;3867:18:139;;;3860:48;3925:18;;1034:42:126;3781:168:139;1034:42:126;920:19:65::1;949:8;;;;;;;;;-1:-1:-1::0;;;;;949:8:65::1;-1:-1:-1::0;;;;;949:13:65::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;942:48;::::0;-1:-1:-1;;;942:48:65;;984:4:::1;942:48;::::0;::::1;1384:51:139::0;-1:-1:-1;;;;;942:33:65;;;::::1;::::0;::::1;::::0;1357:18:139;;942:48:65::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;920:70;;1047:21;1157:12;;1173:1;1157:17;1153:194;;;-1:-1:-1::0;1204:11:65;1153:194:::1;;;1312:35;1321:11;1334:12;;1312:8;:35::i;:::-;1296:51;;1153:194;1382:1;1366:13;:17;1358:45;;;::::0;-1:-1:-1;;;1358:45:65;;3465:2:139;1358:45:65::1;::::0;::::1;3447:21:139::0;3504:2;3484:18;;;3477:30;-1:-1:-1;;;3523:18:139;;;3516:45;3578:18;;1358:45:65::1;3437:165:139::0;1358:45:65::1;1473:8;::::0;;:15:::1;::::0;;-1:-1:-1;;;1473:15:65;;;;-1:-1:-1;;;;;1473:8:65;;::::1;::::0;:13:::1;::::0;:15;;::::1;::::0;::::1;::::0;;;;;;;:8;:15;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1466:32:65::1;;1499:8;;;;;;;;;-1:-1:-1::0;;;;;1499:8:65::1;-1:-1:-1::0;;;;;1499:19:65::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1466:70;::::0;-1:-1:-1;;;;;;1466:70:65::1;::::0;;;;;;-1:-1:-1;;;;;1638:32:139;;;1466:70:65::1;::::0;::::1;1620:51:139::0;1687:18;;;1680:34;;;1593:18;;1466:70:65::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;1558:8:65::1;::::0;;:21:::1;::::0;;-1:-1:-1;;;1558:21:65;;;;-1:-1:-1;;;;;1558:8:65;;::::1;::::0;:19:::1;::::0;:21;;::::1;::::0;::::1;::::0;;;;;;;:8;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1546:53:65::1;;1600:13;1546:68;;;;;;;;;;;;;4100:25:139::0;;4088:2;4073:18;;4055:76;1546:68:65::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1114:15:126;1097:14;:32;-1:-1:-1;;;;853:768:65:o;1850:104:126:-;1906:7;1932:15;:13;:15::i;:::-;1925:22;;1850:104;:::o;1627:150:65:-;1094:13:4;:11;:13::i;:::-;1712:12:65::1;::::0;1700:36:::1;::::0;;4310:25:139;;;4366:2;4351:18;;4344:34;;;1700:36:65::1;::::0;4283:18:139;1700:36:65::1;;;;;;;1746:12;:24:::0;1627:150::o;1423:93:126:-;1475:4;1498:11;:9;:11::i;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1960:155:126:-;2019:7;2045:63;2101:6;;2045:51;2086:9;;2045:36;2054:9;;2065:15;2045:8;:36::i;:::-;:40;;:51::i;:::-;:55;;:63::i;2231:133::-;2289:7;2315:42;2329:27;2349:6;;2329:15;:13;:15::i;:::-;:19;;:27::i;:::-;2315:9;;;:13;:42::i;2121:104::-;2177:7;2203:15;:13;:15::i;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;2346:2:139;2161:73:4::1;::::0;::::1;2328:21:139::0;2385:2;2365:18;;;2358:30;2424:34;2404:18;;;2397:62;-1:-1:-1;;;2475:18:139;;;2468:36;2521:19;;2161:73:4::1;2318:228:139::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3465:96:49:-;3523:7;3549:5;3553:1;3549;:5;:::i;:::-;3542:12;3465:96;-1:-1:-1;;;3465:96:49:o;2755:::-;2813:7;2839:5;2843:1;2839;:5;:::i;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;3104:2:139;1414:68:4;;;3086:21:139;;;3123:18;;;3116:30;3182:34;3162:18;;;3155:62;3234:18;;1414:68:4;3076:182:139;1522:111:126;1566:4;1611:15;:13;:15::i;:::-;1589:18;:16;:18::i;:::-;:37;;1582:44;;1522:111;:::o;589:104:47:-;647:7;677:1;673;:5;:13;;685:1;673:13;;;-1:-1:-1;681:1:47;;589:104;-1:-1:-1;589:104:47:o;1142:122:126:-;1190:7;1216:41;1250:6;;1216:29;1235:9;;1216:14;;:18;;:29;;;;:::i;2433:187:4:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;413:105:47:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;3122:96:49;3180:7;3206:5;3210:1;3206;:5;:::i;3850:96::-;3908:7;3934:5;3938:1;3934;:5;:::i;1639:192:126:-;1687:7;1723:14;;1710:9;;:27;1706:80;;;1760:15;:13;:15::i;1706:80::-;1802:22;1822:1;1802:15;:13;:15::i;:::-;:19;;:22::i;14:257:139:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:297::-;609:6;662:2;650:9;641:7;637:23;633:32;630:2;;;683:6;675;668:22;630:2;720:9;714:16;773:5;766:13;759:21;752:5;749:32;739:2;;800:6;792;785:22;844:190;903:6;956:2;944:9;935:7;931:23;927:32;924:2;;;977:6;969;962:22;924:2;-1:-1:-1;1005:23:139;;914:120;-1:-1:-1;914:120:139:o;1039:194::-;1109:6;1162:2;1150:9;1141:7;1137:23;1133:32;1130:2;;;1183:6;1175;1168:22;1130:2;-1:-1:-1;1211:16:139;;1120:113;-1:-1:-1;1120:113:139:o;4389:128::-;4429:3;4460:1;4456:6;4453:1;4450:13;4447:2;;;4466:18;;:::i;:::-;-1:-1:-1;4502:9:139;;4437:80::o;4522:217::-;4562:1;4588;4578:2;;-1:-1:-1;;;4613:31:139;;4667:4;4664:1;4657:15;4695:4;4620:1;4685:15;4578:2;-1:-1:-1;4724:9:139;;4568:171::o;4744:168::-;4784:7;4850:1;4846;4842:6;4838:14;4835:1;4832:21;4827:1;4820:9;4813:17;4809:45;4806:2;;;4857:18;;:::i;:::-;-1:-1:-1;4897:9:139;;4796:116::o;4917:125::-;4957:4;4985:1;4982;4979:8;4976:2;;;4990:18;;:::i;:::-;-1:-1:-1;5027:9:139;;4966:76::o;5047:127::-;5108:10;5103:3;5099:20;5096:1;5089:31;5139:4;5136:1;5129:15;5163:4;5160:1;5153:15;5179:131;-1:-1:-1;;;;;5254:31:139;;5244:42;;5234:2;;5300:1;5297;5290:12"},"methodIdentifiers":{"allocateEmission()":"161ad706","callable()":"6a2ab602","getCurrentEpoch()":"b97dd9e2","getLastEpoch()":"398bac63","getNextEpoch()":"efe97d05","getPeriod()":"1ed24195","getStartTime()":"c828371e","nextEpochPoint()":"c5967c26","owner()":"8da5cb5b","ratePerEpoch()":"d8e2219c","registry()":"7b103999","renounceOwnership()":"715018a6","setPeriod(uint256)":"0f3a9f65","tokenStakingPool(address)":"c1ba630e","transferOwnership(address)":"f2fde38b","updateRate(uint256)":"69ea1771"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_ratePerEpoch\",\"type\":\"uint256\"}],\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"old\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"name\":\"RateUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allocateEmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"callable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochPoint\",\"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\":\"ratePerEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"setPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenStakingPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epochRate\",\"type\":\"uint256\"}],\"name\":\"updateRate\",\"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 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\":{\"contracts/EmissionController.sol\":\"EmissionController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"contracts/EmissionController.sol\":{\"keccak256\":\"0x0dfdcdfa1d7297bdcf272a1cb33e9c3e8b5725eb68297446ba586717cfef1c3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://755423d8013ef8faa7ad0b62287c8dc87dde9e37d3c150bae394db267bf64fd6\",\"dweb:/ipfs/QmR3fpLR8YNANBEcXda2Txt56Wyxv1KZPHyaJbN4iuuEY7\"]},\"contracts/interfaces/IEmissionController.sol\":{\"keccak256\":\"0x215a5b7ff3746ff804247f59ea1b55155873be560f8e676fcaefd7a58c9fbd83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://747e34f194cd6ac87b4d2e317fae58d94f3e1b4d4fde66af99c15c794a7728ee\",\"dweb:/ipfs/QmdzD9zZX8YwxAK8yuP54sWMcMBAifF6p4zRa51gspFFgx\"]},\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/utils/Epoch.sol\":{\"keccak256\":\"0x2dbd8fd988fca4e099ad556f76607918860725d64736ab14d9c7299246c51b10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8299f51efd2a19501423a152bbc1d155dd80cc6b7c4cda0998078843800a408\",\"dweb:/ipfs/QmYEYtJtEQ42SkKdXx2HpN4BJsKEgWkDPa3jVHPU9dG8uW\"]}},\"version\":1}"}},"contracts/LockMigrator.sol":{"LockMigrator":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"},{"internalType":"contract IERC20","name":"_maha","type":"address"},{"internalType":"contract IERC20","name":"_scallop","type":"address"},{"internalType":"contract INFTLocker","name":"_mahaxLocker","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldReward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newReward","type":"uint256"}],"name":"MigrationRewardChanged","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":"who","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferMigrationReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAddressBanned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_endDate","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_mahaReward","type":"uint256"},{"internalType":"uint256","name":"_scallopReward","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"isLockValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"isTokenIdBanned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"isTokenIdMigrated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maha","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mahaxLocker","outputs":[{"internalType":"contract INFTLocker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_endDate","type":"uint256"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_mahaReward","type":"uint256"},{"internalType":"uint256","name":"_scallopReward","type":"uint256"},{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"name":"migrateLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_value","type":"uint256[]"},{"internalType":"uint256[]","name":"_endDate","type":"uint256[]"},{"internalType":"uint256[]","name":"_tokenId","type":"uint256[]"},{"internalType":"address[]","name":"_who","type":"address[]"},{"internalType":"uint256[]","name":"_mahaReward","type":"uint256[]"},{"internalType":"uint256[]","name":"_scallopReward","type":"uint256[]"},{"internalType":"bytes32[][]","name":"proof","type":"bytes32[][]"}],"name":"migrateLocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrationReward","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":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"scallop","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"setMigrationReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"toggleBanID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"toggleBanOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"togglePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:825:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"196:483:139","statements":[{"body":{"nodeType":"YulBlock","src":"243:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"252:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"260:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"245:6:139"},"nodeType":"YulFunctionCall","src":"245:22:139"},"nodeType":"YulExpressionStatement","src":"245:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"217:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"226:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"213:3:139"},"nodeType":"YulFunctionCall","src":"213:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"238:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"209:3:139"},"nodeType":"YulFunctionCall","src":"209:33:139"},"nodeType":"YulIf","src":"206:2:139"},{"nodeType":"YulAssignment","src":"278:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"294:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"288:5:139"},"nodeType":"YulFunctionCall","src":"288:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"278:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"313:38:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"336:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"347:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"332:3:139"},"nodeType":"YulFunctionCall","src":"332:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"326:5:139"},"nodeType":"YulFunctionCall","src":"326:25:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"317:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"393:5:139"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"360:32:139"},"nodeType":"YulFunctionCall","src":"360:39:139"},"nodeType":"YulExpressionStatement","src":"360:39:139"},{"nodeType":"YulAssignment","src":"408:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"418:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"408:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"432:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"468:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"453:3:139"},"nodeType":"YulFunctionCall","src":"453:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"447:5:139"},"nodeType":"YulFunctionCall","src":"447:25:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"436:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"514:7:139"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"481:32:139"},"nodeType":"YulFunctionCall","src":"481:41:139"},"nodeType":"YulExpressionStatement","src":"481:41:139"},{"nodeType":"YulAssignment","src":"531:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"541:7:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"531:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"557:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"582:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"593:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"578:3:139"},"nodeType":"YulFunctionCall","src":"578:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"572:5:139"},"nodeType":"YulFunctionCall","src":"572:25:139"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"561:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"639:7:139"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"606:32:139"},"nodeType":"YulFunctionCall","src":"606:41:139"},"nodeType":"YulExpressionStatement","src":"606:41:139"},{"nodeType":"YulAssignment","src":"656:17:139","value":{"name":"value_2","nodeType":"YulIdentifier","src":"666:7:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"656:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_contract$_IERC20_$5767t_contract$_IERC20_$5767t_contract$_INFTLocker_$34923_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"138:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"149:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"161:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"169:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"177:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"185:6:139","type":""}],"src":"14:665:139"},{"body":{"nodeType":"YulBlock","src":"737:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"801:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"810:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"813:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"803:6:139"},"nodeType":"YulFunctionCall","src":"803:12:139"},"nodeType":"YulExpressionStatement","src":"803:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"760:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"771:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"786:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"791:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"782:3:139"},"nodeType":"YulFunctionCall","src":"782:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"795:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"778:3:139"},"nodeType":"YulFunctionCall","src":"778:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"767:3:139"},"nodeType":"YulFunctionCall","src":"767:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"757:2:139"},"nodeType":"YulFunctionCall","src":"757:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"750:6:139"},"nodeType":"YulFunctionCall","src":"750:50:139"},"nodeType":"YulIf","src":"747:2:139"}]},"name":"validator_revert_contract_IERC20","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"726:5:139","type":""}],"src":"684:139:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes32t_contract$_IERC20_$5767t_contract$_IERC20_$5767t_contract$_INFTLocker_$34923_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\n        value0 := mload(headStart)\n        let value := mload(add(headStart, 32))\n        validator_revert_contract_IERC20(value)\n        value1 := value\n        let value_1 := mload(add(headStart, 64))\n        validator_revert_contract_IERC20(value_1)\n        value2 := value_1\n        let value_2 := mload(add(headStart, 96))\n        validator_revert_contract_IERC20(value_2)\n        value3 := value_2\n    }\n    function validator_revert_contract_IERC20(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052678ac7230489e800006003553480156200001d57600080fd5b506040516200160d3803806200160d8339810160408190526200004091620000f5565b6200004b33620000a5565b6000805460ff60a01b1916905560018055600293909355600480546001600160a01b03199081166001600160a01b039485161790915560058054821692841692909217909155600680549091169190921617905562000169565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080608085870312156200010b578384fd5b8451935060208501516200011f8162000150565b6040860151909350620001328162000150565b6060860151909250620001458162000150565b939692955090935050565b6001600160a01b03811681146200016657600080fd5b50565b61149480620001796000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80635c975abb116100ad57806394cc36761161007157806394cc367614610279578063c4ae31681461028c578063e01a8b9f14610294578063f2fde38b146102a7578063ffc7d718146102ba57600080fd5b80635c975abb146102325780636f03ec941461023a578063715018a61461024d5780637302d43c146102555780638da5cb5b1461026857600080fd5b80634c2d392a116100f45780634c2d392a146101d857806356946bbd146101eb57806358554b46146101fe578063590e1ae31461022157806359bc03521461022957600080fd5b80630bfe6f5f146101315780632ba97dfd146101695780632eb4a7ab1461017e5780633a50433d146101955780633de00c36146101b8575b600080fd5b61015461013f366004611249565b60086020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61017c610177366004611249565b6102cd565b005b61018760025481565b604051908152602001610160565b6101546101a3366004611249565b60076020526000908152604090205460ff1681565b6004546101cb906001600160a01b031681565b6040516101609190611347565b61017c6101e6366004611249565b6102f5565b61017c6101f9366004611116565b61033e565b61015461020c3660046110fc565b60096020526000908152604090205460ff1681565b61017c610487565b61018760035481565b610154610684565b6005546101cb906001600160a01b031681565b61017c610694565b6101876102633660046112e6565b6106a8565b6000546001600160a01b03166101cb565b61017c6102873660046110fc565b6106c5565b61017c6106f6565b6101546102a2366004611279565b61071b565b61017c6102b53660046110fc565b61078a565b6006546101cb906001600160a01b031681565b6102d5610805565b6000908152600860205260409020805460ff19811660ff90911615179055565b6102fd610805565b60035460408051918252602082018390527ffd84e80076cfe22eaa00af386d8f2e89c0086871f1057dcf303e0e97357d3f85910160405180910390a1600355565b60005b875181101561047d5761046a88828151811061036d57634e487b7160e01b600052603260045260246000fd5b602002602001015188838151811061039557634e487b7160e01b600052603260045260246000fd5b60200260200101518884815181106103bd57634e487b7160e01b600052603260045260246000fd5b60200260200101518885815181106103e557634e487b7160e01b600052603260045260246000fd5b602002602001015188868151811061040d57634e487b7160e01b600052603260045260246000fd5b602002602001015188878151811061043557634e487b7160e01b600052603260045260246000fd5b602002602001015188888151811061045d57634e487b7160e01b600052603260045260246000fd5b602002602001015161085f565b508061047581611417565b915050610341565b5050505050505050565b61048f610805565b600480546040516370a0823160e01b81526001600160a01b039091169163a9059cbb91339184916370a08231916104c891309101611347565b60206040518083038186803b1580156104e057600080fd5b505afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105189190611261565b6040518363ffffffff1660e01b815260040161053592919061135b565b602060405180830381600087803b15801561054f57600080fd5b505af1158015610563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105879190611229565b506005546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906105c2903090600401611347565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190611261565b6040518363ffffffff1660e01b815260040161062f92919061135b565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190611229565b50565b600054600160a01b900460ff1690565b61069c610805565b6106a66000610d75565b565b60006106b98888888888888861085f565b98975050505050505050565b6106cd610805565b6001600160a01b03166000908152600960205260409020805460ff19811660ff90911615179055565b6106fe610805565b610706610684565b15610713576106a6610dc5565b6106a6610e14565b60408051602081018990529081018790526001600160a01b03861660608201526080810185905260a0810184905260c08101839052600090819060e00160405160208183030381529060405280519060200120905061077d8360025483610e57565b9998505050505050505050565b610792610805565b6001600160a01b0381166107fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61068181610d75565b6000546001600160a01b031633146106a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f3565b6000600260015414156108b45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107f3565b60026001556108c1610e6d565b6108cf62093a8060026113e1565b6108d990426113c9565b87101561091b5760405162461bcd60e51b815260206004820152601060248201526f195b990819185d1948195e1c1a5c995960821b60448201526064016107f3565b856109575760405162461bcd60e51b815260206004820152600c60248201526b0746f6b656e496420697320360a41b60448201526064016107f3565b60008681526007602052604090205460ff16156109b15760405162461bcd60e51b81526020600482015260186024820152771d1bdad95b925908185b1c9958591e481b5a59dc985d195960421b60448201526064016107f3565b60008681526008602052604090205460ff1615610a015760405162461bcd60e51b815260206004820152600e60248201526d1d1bdad95b92590818985b9b995960921b60448201526064016107f3565b6001600160a01b03851660009081526009602052604090205460ff1615610a595760405162461bcd60e51b815260206004820152600c60248201526b1bdddb995c8818985b9b995960a21b60448201526064016107f3565b6000610a6a8989888a89898961071b565b905080610ab25760405162461bcd60e51b81526020600482015260166024820152754d69677261746f723a20696e76616c6964206c6f636b60501b60448201526064016107f3565b6000610abe428a611400565b600654604051638df4b13b60e01b8152600481018d9052602481018390526001600160a01b038a8116604483015292935060009290911690638df4b13b90606401602060405180830381600087803b158015610b1957600080fd5b505af1158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190611261565b905060008111610ba35760405162461bcd60e51b815260206004820152601a60248201527f4d69677261746f723a206d6967726174696f6e206661696c656400000000000060448201526064016107f3565b6000898152600760205260409020805460ff191660011790558615610c47576004805460405163a9059cbb60e01b81526001600160a01b039091169163a9059cbb91610bf3918c918c910161135b565b602060405180830381600087803b158015610c0d57600080fd5b505af1158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c459190611229565b505b8515610cd35760055460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610c7f908b908a9060040161135b565b602060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190611229565b505b60035415610d63576004805460035460405163a9059cbb60e01b81526001600160a01b039092169263a9059cbb92610d0f92339290910161135b565b602060405180830381600087803b158015610d2957600080fd5b505af1158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190611229565b505b600180559a9950505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dcd610eb5565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610e0a9190611347565b60405180910390a1565b610e1c610e6d565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610dfd3390565b600082610e648584610f00565b14949350505050565b610e75610684565b156106a65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107f3565b610ebd610684565b6106a65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107f3565b600081815b8451811015610f5357610f3f82868381518110610f3257634e487b7160e01b600052603260045260246000fd5b6020026020010151610f5b565b915080610f4b81611417565b915050610f05565b509392505050565b6000818310610f77576000828152602084905260409020610f86565b60008381526020839052604090205b9392505050565b80356001600160a01b0381168114610fa457600080fd5b919050565b600082601f830112610fb9578081fd5b81356020610fce610fc9836113a5565b611374565b80838252828201915082860187848660051b8901011115610fed578586fd5b855b858110156110125761100082610f8d565b84529284019290840190600101610fef565b5090979650505050505050565b600082601f83011261102f578081fd5b8135602061103f610fc9836113a5565b80838252828201915082860187848660051b890101111561105e578586fd5b855b8581101561101257813567ffffffffffffffff81111561107e578788fd5b61108c8a87838c010161109f565b8552509284019290840190600101611060565b600082601f8301126110af578081fd5b813560206110bf610fc9836113a5565b80838252828201915082860187848660051b89010111156110de578586fd5b855b85811015611012578135845292840192908401906001016110e0565b60006020828403121561110d578081fd5b610f8682610f8d565b600080600080600080600060e0888a031215611130578283fd5b873567ffffffffffffffff80821115611147578485fd5b6111538b838c0161109f565b985060208a0135915080821115611168578485fd5b6111748b838c0161109f565b975060408a0135915080821115611189578485fd5b6111958b838c0161109f565b965060608a01359150808211156111aa578485fd5b6111b68b838c01610fa9565b955060808a01359150808211156111cb578485fd5b6111d78b838c0161109f565b945060a08a01359150808211156111ec578384fd5b6111f88b838c0161109f565b935060c08a013591508082111561120d578283fd5b5061121a8a828b0161101f565b91505092959891949750929550565b60006020828403121561123a578081fd5b81518015158114610f86578182fd5b60006020828403121561125a578081fd5b5035919050565b600060208284031215611272578081fd5b5051919050565b600080600080600080600060e0888a031215611293578283fd5b87359650602088013595506112aa60408901610f8d565b9450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b61121a8a828b0161109f565b600080600080600080600060e0888a031215611300578081fd5b87359650602088013595506040880135945061131e60608901610f8d565b93506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561139d5761139d611448565b604052919050565b600067ffffffffffffffff8211156113bf576113bf611448565b5060051b60200190565b600082198211156113dc576113dc611432565b500190565b60008160001904831182151516156113fb576113fb611432565b500290565b60008282101561141257611412611432565b500390565b600060001982141561142b5761142b611432565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122031125a6145b90410e213c06598eb2f498d44eeea71ac27d102f80dd5bb8578df64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0x8AC7230489E80000 PUSH1 0x3 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x160D CODESIZE SUB DUP1 PUSH3 0x160D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x40 SWAP2 PUSH3 0xF5 JUMP JUMPDEST PUSH3 0x4B CALLER PUSH3 0xA5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH1 0x1 DUP1 SSTORE PUSH1 0x2 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP1 SLOAD DUP3 AND SWAP3 DUP5 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH3 0x169 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x10B JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 MLOAD SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD PUSH3 0x11F DUP2 PUSH3 0x150 JUMP JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x132 DUP2 PUSH3 0x150 JUMP JUMPDEST PUSH1 0x60 DUP7 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x145 DUP2 PUSH3 0x150 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1494 DUP1 PUSH3 0x179 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C975ABB GT PUSH2 0xAD JUMPI DUP1 PUSH4 0x94CC3676 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x94CC3676 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xC4AE3168 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0xE01A8B9F EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xFFC7D718 EQ PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x6F03EC94 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x7302D43C EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C2D392A GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x4C2D392A EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x56946BBD EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x58554B46 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x590E1AE3 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x59BC0352 EQ PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBFE6F5F EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x2BA97DFD EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0x3A50433D EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0x1B8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x154 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17C PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x187 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x160 JUMP JUMPDEST PUSH2 0x154 PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x1CB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1347 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x1E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1116 JUMP JUMPDEST PUSH2 0x33E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x10FC JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x487 JUMP JUMPDEST PUSH2 0x187 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x154 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x1CB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x694 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x263 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E6 JUMP JUMPDEST PUSH2 0x6A8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CB JUMP JUMPDEST PUSH2 0x17C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x10FC JUMP JUMPDEST PUSH2 0x6C5 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x6F6 JUMP JUMPDEST PUSH2 0x154 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1279 JUMP JUMPDEST PUSH2 0x71B JUMP JUMPDEST PUSH2 0x17C PUSH2 0x2B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x10FC JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x1CB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D5 PUSH2 0x805 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2FD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xFD84E80076CFE22EAA00AF386D8F2E89C0086871F1057DCF303E0E97357D3F85 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP8 MLOAD DUP2 LT ISZERO PUSH2 0x47D JUMPI PUSH2 0x46A DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x36D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x395 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x40D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x435 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x45D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x85F JUMP JUMPDEST POP DUP1 PUSH2 0x475 DUP2 PUSH2 0x1417 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x341 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x48F PUSH2 0x805 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA9059CBB SWAP2 CALLER SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH2 0x4C8 SWAP2 ADDRESS SWAP2 ADD PUSH2 0x1347 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x518 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x54F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x563 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x587 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x5C2 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1347 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x612 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62F SWAP3 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x681 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x69C PUSH2 0x805 JUMP JUMPDEST PUSH2 0x6A6 PUSH1 0x0 PUSH2 0xD75 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x85F JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6CD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x6FE PUSH2 0x805 JUMP JUMPDEST PUSH2 0x706 PUSH2 0x684 JUMP JUMPDEST ISZERO PUSH2 0x713 JUMPI PUSH2 0x6A6 PUSH2 0xDC5 JUMP JUMPDEST PUSH2 0x6A6 PUSH2 0xE14 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x77D DUP4 PUSH1 0x2 SLOAD DUP4 PUSH2 0xE57 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x792 PUSH2 0x805 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x681 DUP2 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x8B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH2 0x8C1 PUSH2 0xE6D JUMP JUMPDEST PUSH2 0x8CF PUSH3 0x93A80 PUSH1 0x2 PUSH2 0x13E1 JUMP JUMPDEST PUSH2 0x8D9 SWAP1 TIMESTAMP PUSH2 0x13C9 JUMP JUMPDEST DUP8 LT ISZERO PUSH2 0x91B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x195B990819185D1948195E1C1A5C9959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST DUP6 PUSH2 0x957 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x746F6B656E4964206973203 PUSH1 0xA4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x9B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x1D1BDAD95B925908185B1C9958591E481B5A59DC985D1959 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x1D1BDAD95B92590818985B9B9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x1BDDDB995C8818985B9B9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA6A DUP10 DUP10 DUP9 DUP11 DUP10 DUP10 DUP10 PUSH2 0x71B JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x4D69677261746F723A20696E76616C6964206C6F636B PUSH1 0x50 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABE TIMESTAMP DUP11 PUSH2 0x1400 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8DF4B13B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH4 0x8DF4B13B SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB51 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0xBA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D69677261746F723A206D6967726174696F6E206661696C6564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP7 ISZERO PUSH2 0xC47 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA9059CBB SWAP2 PUSH2 0xBF3 SWAP2 DUP13 SWAP2 DUP13 SWAP2 ADD PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC45 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMPDEST DUP6 ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0xC7F SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCD1 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMPDEST PUSH1 0x3 SLOAD ISZERO PUSH2 0xD63 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0xD0F SWAP3 CALLER SWAP3 SWAP1 SWAP2 ADD PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD61 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 DUP1 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xDCD PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0A SWAP2 SWAP1 PUSH2 0x1347 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0xE1C PUSH2 0xE6D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xDFD CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE64 DUP6 DUP5 PUSH2 0xF00 JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xE75 PUSH2 0x684 JUMP JUMPDEST ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH2 0xEBD PUSH2 0x684 JUMP JUMPDEST PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xF53 JUMPI PUSH2 0xF3F DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xF32 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xF5B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0xF4B DUP2 PUSH2 0x1417 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF05 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0xF77 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF86 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFB9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xFCE PUSH2 0xFC9 DUP4 PUSH2 0x13A5 JUMP JUMPDEST PUSH2 0x1374 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xFED JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1000 DUP3 PUSH2 0xF8D JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xFEF JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x102F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x103F PUSH2 0xFC9 DUP4 PUSH2 0x13A5 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x105E JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1012 JUMPI DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x107E JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x108C DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x109F JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1060 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x10AF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x10BF PUSH2 0xFC9 DUP4 PUSH2 0x13A5 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x10DE JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1012 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x10E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x110D JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xF86 DUP3 PUSH2 0xF8D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1130 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1147 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1153 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1168 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1174 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1189 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1195 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x11AA JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x11B6 DUP12 DUP4 DUP13 ADD PUSH2 0xFA9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x11CB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x11D7 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x11EC JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x11F8 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x120D JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x121A DUP11 DUP3 DUP12 ADD PUSH2 0x101F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x123A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xF86 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x125A JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1272 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1293 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH2 0x12AA PUSH1 0x40 DUP10 ADD PUSH2 0xF8D JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12DA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x121A DUP11 DUP3 DUP12 ADD PUSH2 0x109F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1300 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH2 0x131E PUSH1 0x60 DUP10 ADD PUSH2 0xF8D JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12DA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x139D JUMPI PUSH2 0x139D PUSH2 0x1448 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x13BF JUMPI PUSH2 0x13BF PUSH2 0x1448 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x13DC JUMPI PUSH2 0x13DC PUSH2 0x1432 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x13FB JUMPI PUSH2 0x13FB PUSH2 0x1432 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1412 JUMPI PUSH2 0x1412 PUSH2 0x1432 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x142B JUMPI PUSH2 0x142B PUSH2 0x1432 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SLT GAS PUSH2 0x45B9 DIV LT 0xE2 SGT 0xC0 PUSH6 0x98EB2F498D44 0xEE 0xEA PUSH18 0xAC27D102F80DD5BB8578DF64736F6C634300 ADDMOD DIV STOP CALLER ","sourceMap":"572:4573:66:-:0;;;717:9;684:42;;1029:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:38;936:18:4;:32::i;:::-;1006:5:21;996:15;;-1:-1:-1;;;;996:15:21;;;-1:-1:-1;1806:22:22;;1166:10:66;:24;;;;1200:4;:12;;-1:-1:-1;;;;;;1200:12:66;;;-1:-1:-1;;;;;1200:12:66;;;;;;;1222:7;:18;;;;;;;;;;;;;;1250:11;:26;;;;;;;;;;;;572:4573;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;14:665:139:-;161:6;169;177;185;238:3;226:9;217:7;213:23;209:33;206:2;;;260:6;252;245:22;206:2;294:9;288:16;278:26;;347:2;336:9;332:18;326:25;360:39;393:5;360:39;:::i;:::-;468:2;453:18;;447:25;418:5;;-1:-1:-1;481:41:139;447:25;481:41;:::i;:::-;593:2;578:18;;572:25;541:7;;-1:-1:-1;606:41:139;572:25;606:41;:::i;:::-;196:483;;;;-1:-1:-1;196:483:139;;-1:-1:-1;;196:483:139:o;684:139::-;-1:-1:-1;;;;;767:31:139;;757:42;;747:2;;813:1;810;803:12;747:2;737:86;:::o;:::-;572:4573:66;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15723:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"256:635:139","statements":[{"body":{"nodeType":"YulBlock","src":"305:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"314:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"321:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"307:6:139"},"nodeType":"YulFunctionCall","src":"307:20:139"},"nodeType":"YulExpressionStatement","src":"307:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"284:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"292:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"280:3:139"},"nodeType":"YulFunctionCall","src":"280:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"299:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"276:3:139"},"nodeType":"YulFunctionCall","src":"276:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"269:6:139"},"nodeType":"YulFunctionCall","src":"269:35:139"},"nodeType":"YulIf","src":"266:2:139"},{"nodeType":"YulVariableDeclaration","src":"338:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"361:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"348:12:139"},"nodeType":"YulFunctionCall","src":"348:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"342:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"377:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"387:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"381:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"400:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"467:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"427:39:139"},"nodeType":"YulFunctionCall","src":"427:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"411:15:139"},"nodeType":"YulFunctionCall","src":"411:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"404:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"480:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"493:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"484:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"512:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"517:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"505:6:139"},"nodeType":"YulFunctionCall","src":"505:15:139"},"nodeType":"YulExpressionStatement","src":"505:15:139"},{"nodeType":"YulAssignment","src":"529:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"540:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"545:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"536:3:139"},"nodeType":"YulFunctionCall","src":"536:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"529:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"557:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"572:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"580:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"568:3:139"},"nodeType":"YulFunctionCall","src":"568:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"561:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"637:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"646:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"653:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"639:6:139"},"nodeType":"YulFunctionCall","src":"639:20:139"},"nodeType":"YulExpressionStatement","src":"639:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"606:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"618:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"621:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"614:3:139"},"nodeType":"YulFunctionCall","src":"614:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"602:3:139"},"nodeType":"YulFunctionCall","src":"602:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"627:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"598:3:139"},"nodeType":"YulFunctionCall","src":"598:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"632:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"595:2:139"},"nodeType":"YulFunctionCall","src":"595:41:139"},"nodeType":"YulIf","src":"592:2:139"},{"nodeType":"YulVariableDeclaration","src":"670:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"679:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"674:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"738:124:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"759:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"783:3:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"764:18:139"},"nodeType":"YulFunctionCall","src":"764:23:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"752:6:139"},"nodeType":"YulFunctionCall","src":"752:36:139"},"nodeType":"YulExpressionStatement","src":"752:36:139"},{"nodeType":"YulAssignment","src":"801:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"812:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"817:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"808:3:139"},"nodeType":"YulFunctionCall","src":"808:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"801:3:139"}]},{"nodeType":"YulAssignment","src":"833:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"844:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"849:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"840:3:139"},"nodeType":"YulFunctionCall","src":"840:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"833:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"704:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"707:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"701:2:139"},"nodeType":"YulFunctionCall","src":"701:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"711:18:139","statements":[{"nodeType":"YulAssignment","src":"713:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"722:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"725:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"718:3:139"},"nodeType":"YulFunctionCall","src":"718:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"713:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"697:3:139","statements":[]},"src":"693:169:139"},{"nodeType":"YulAssignment","src":"871:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"880:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"871:5:139"}]}]},"name":"abi_decode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"230:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"238:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"246:5:139","type":""}],"src":"192:699:139"},{"body":{"nodeType":"YulBlock","src":"970:805:139","statements":[{"body":{"nodeType":"YulBlock","src":"1019:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1028:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1035:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1021:6:139"},"nodeType":"YulFunctionCall","src":"1021:20:139"},"nodeType":"YulExpressionStatement","src":"1021:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"998:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1006:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"994:3:139"},"nodeType":"YulFunctionCall","src":"994:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1013:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"990:3:139"},"nodeType":"YulFunctionCall","src":"990:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"983:6:139"},"nodeType":"YulFunctionCall","src":"983:35:139"},"nodeType":"YulIf","src":"980:2:139"},{"nodeType":"YulVariableDeclaration","src":"1052:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1075:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1062:12:139"},"nodeType":"YulFunctionCall","src":"1062:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1056:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1091:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1101:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1095:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1114:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1141:39:139"},"nodeType":"YulFunctionCall","src":"1141:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1125:15:139"},"nodeType":"YulFunctionCall","src":"1125:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1118:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1194:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1207:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1198:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1226:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1231:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1219:6:139"},"nodeType":"YulFunctionCall","src":"1219:15:139"},"nodeType":"YulExpressionStatement","src":"1219:15:139"},{"nodeType":"YulAssignment","src":"1243:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1254:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1259:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:139"},"nodeType":"YulFunctionCall","src":"1250:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1243:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1271:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1286:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1294:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1282:3:139"},"nodeType":"YulFunctionCall","src":"1282:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1275:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1351:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1360:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1367:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1353:6:139"},"nodeType":"YulFunctionCall","src":"1353:20:139"},"nodeType":"YulExpressionStatement","src":"1353:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1320:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1332:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1335:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1328:3:139"},"nodeType":"YulFunctionCall","src":"1328:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1316:3:139"},"nodeType":"YulFunctionCall","src":"1316:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1341:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1312:3:139"},"nodeType":"YulFunctionCall","src":"1312:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"1346:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1309:2:139"},"nodeType":"YulFunctionCall","src":"1309:41:139"},"nodeType":"YulIf","src":"1306:2:139"},{"nodeType":"YulVariableDeclaration","src":"1384:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"1393:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1388:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1452:294:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1466:36:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1498:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1485:12:139"},"nodeType":"YulFunctionCall","src":"1485:17:139"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"1470:11:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1554:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1563:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1570:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1556:6:139"},"nodeType":"YulFunctionCall","src":"1556:20:139"},"nodeType":"YulExpressionStatement","src":"1556:20:139"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"1521:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1534:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1518:2:139"},"nodeType":"YulFunctionCall","src":"1518:35:139"},"nodeType":"YulIf","src":"1515:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1598:3:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1640:6:139"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"1648:11:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1636:3:139"},"nodeType":"YulFunctionCall","src":"1636:24:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1662:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1632:3:139"},"nodeType":"YulFunctionCall","src":"1632:33:139"},{"name":"end","nodeType":"YulIdentifier","src":"1667:3:139"}],"functionName":{"name":"abi_decode_array_bytes32_dyn","nodeType":"YulIdentifier","src":"1603:28:139"},"nodeType":"YulFunctionCall","src":"1603:68:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1591:6:139"},"nodeType":"YulFunctionCall","src":"1591:81:139"},"nodeType":"YulExpressionStatement","src":"1591:81:139"},{"nodeType":"YulAssignment","src":"1685:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1696:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1701:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1692:3:139"},"nodeType":"YulFunctionCall","src":"1692:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1685:3:139"}]},{"nodeType":"YulAssignment","src":"1717:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1728:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1733:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1724:3:139"},"nodeType":"YulFunctionCall","src":"1724:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1717:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1418:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1421:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1415:2:139"},"nodeType":"YulFunctionCall","src":"1415:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1425:18:139","statements":[{"nodeType":"YulAssignment","src":"1427:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1436:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1439:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1432:3:139"},"nodeType":"YulFunctionCall","src":"1432:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1427:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1411:3:139","statements":[]},"src":"1407:339:139"},{"nodeType":"YulAssignment","src":"1755:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1764:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1755:5:139"}]}]},"name":"abi_decode_array_array_bytes32_dyn_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"944:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"952:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"960:5:139","type":""}],"src":"896:879:139"},{"body":{"nodeType":"YulBlock","src":"1844:629:139","statements":[{"body":{"nodeType":"YulBlock","src":"1893:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1902:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1909:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1895:6:139"},"nodeType":"YulFunctionCall","src":"1895:20:139"},"nodeType":"YulExpressionStatement","src":"1895:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1872:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1880:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1868:3:139"},"nodeType":"YulFunctionCall","src":"1868:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1887:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1864:3:139"},"nodeType":"YulFunctionCall","src":"1864:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1857:6:139"},"nodeType":"YulFunctionCall","src":"1857:35:139"},"nodeType":"YulIf","src":"1854:2:139"},{"nodeType":"YulVariableDeclaration","src":"1926:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1949:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1936:12:139"},"nodeType":"YulFunctionCall","src":"1936:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1930:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1965:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1975:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1969:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1988:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2055:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"2015:39:139"},"nodeType":"YulFunctionCall","src":"2015:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1999:15:139"},"nodeType":"YulFunctionCall","src":"1999:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1992:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2068:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"2081:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2072:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2100:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2105:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2093:6:139"},"nodeType":"YulFunctionCall","src":"2093:15:139"},"nodeType":"YulExpressionStatement","src":"2093:15:139"},{"nodeType":"YulAssignment","src":"2117:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2128:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2133:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2124:3:139"},"nodeType":"YulFunctionCall","src":"2124:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2117:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"2145:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2160:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2168:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2156:3:139"},"nodeType":"YulFunctionCall","src":"2156:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2149:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2225:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2234:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2241:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2227:6:139"},"nodeType":"YulFunctionCall","src":"2227:20:139"},"nodeType":"YulExpressionStatement","src":"2227:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2194:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2206:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"2209:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2202:3:139"},"nodeType":"YulFunctionCall","src":"2202:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2190:3:139"},"nodeType":"YulFunctionCall","src":"2190:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2215:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2186:3:139"},"nodeType":"YulFunctionCall","src":"2186:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"2220:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2183:2:139"},"nodeType":"YulFunctionCall","src":"2183:41:139"},"nodeType":"YulIf","src":"2180:2:139"},{"nodeType":"YulVariableDeclaration","src":"2258:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"2267:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2262:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2326:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2347:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2365:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2352:12:139"},"nodeType":"YulFunctionCall","src":"2352:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2340:6:139"},"nodeType":"YulFunctionCall","src":"2340:30:139"},"nodeType":"YulExpressionStatement","src":"2340:30:139"},{"nodeType":"YulAssignment","src":"2383:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2394:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2399:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2390:3:139"},"nodeType":"YulFunctionCall","src":"2390:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2383:3:139"}]},{"nodeType":"YulAssignment","src":"2415:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2426:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2431:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2422:3:139"},"nodeType":"YulFunctionCall","src":"2422:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2415:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2292:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2295:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2289:2:139"},"nodeType":"YulFunctionCall","src":"2289:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2299:18:139","statements":[{"nodeType":"YulAssignment","src":"2301:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2310:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"2313:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2306:3:139"},"nodeType":"YulFunctionCall","src":"2306:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2301:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"2285:3:139","statements":[]},"src":"2281:163:139"},{"nodeType":"YulAssignment","src":"2453:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2462:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2453:5:139"}]}]},"name":"abi_decode_array_bytes32_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1818:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1826:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1834:5:139","type":""}],"src":"1780:693:139"},{"body":{"nodeType":"YulBlock","src":"2542:629:139","statements":[{"body":{"nodeType":"YulBlock","src":"2591:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2600:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2607:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2593:6:139"},"nodeType":"YulFunctionCall","src":"2593:20:139"},"nodeType":"YulExpressionStatement","src":"2593:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2570:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2578:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2566:3:139"},"nodeType":"YulFunctionCall","src":"2566:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"2585:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2562:3:139"},"nodeType":"YulFunctionCall","src":"2562:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2555:6:139"},"nodeType":"YulFunctionCall","src":"2555:35:139"},"nodeType":"YulIf","src":"2552:2:139"},{"nodeType":"YulVariableDeclaration","src":"2624:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2647:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2634:12:139"},"nodeType":"YulFunctionCall","src":"2634:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2628:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2663:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2673:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2667:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2686:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2753:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"2713:39:139"},"nodeType":"YulFunctionCall","src":"2713:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2697:15:139"},"nodeType":"YulFunctionCall","src":"2697:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2690:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2766:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"2779:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2770:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2798:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2803:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2791:6:139"},"nodeType":"YulFunctionCall","src":"2791:15:139"},"nodeType":"YulExpressionStatement","src":"2791:15:139"},{"nodeType":"YulAssignment","src":"2815:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2826:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2831:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2822:3:139"},"nodeType":"YulFunctionCall","src":"2822:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2815:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"2843:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2858:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2866:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2854:3:139"},"nodeType":"YulFunctionCall","src":"2854:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2847:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2923:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2932:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2939:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2925:6:139"},"nodeType":"YulFunctionCall","src":"2925:20:139"},"nodeType":"YulExpressionStatement","src":"2925:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2892:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2904:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"2907:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2900:3:139"},"nodeType":"YulFunctionCall","src":"2900:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2888:3:139"},"nodeType":"YulFunctionCall","src":"2888:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2913:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2884:3:139"},"nodeType":"YulFunctionCall","src":"2884:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"2918:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2881:2:139"},"nodeType":"YulFunctionCall","src":"2881:41:139"},"nodeType":"YulIf","src":"2878:2:139"},{"nodeType":"YulVariableDeclaration","src":"2956:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"2965:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2960:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3024:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3045:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3063:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3050:12:139"},"nodeType":"YulFunctionCall","src":"3050:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3038:6:139"},"nodeType":"YulFunctionCall","src":"3038:30:139"},"nodeType":"YulExpressionStatement","src":"3038:30:139"},{"nodeType":"YulAssignment","src":"3081:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3092:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3097:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3088:3:139"},"nodeType":"YulFunctionCall","src":"3088:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3081:3:139"}]},{"nodeType":"YulAssignment","src":"3113:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3124:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3129:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3120:3:139"},"nodeType":"YulFunctionCall","src":"3120:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3113:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2990:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2993:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2987:2:139"},"nodeType":"YulFunctionCall","src":"2987:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2997:18:139","statements":[{"nodeType":"YulAssignment","src":"2999:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3008:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"3011:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3004:3:139"},"nodeType":"YulFunctionCall","src":"3004:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2999:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"2983:3:139","statements":[]},"src":"2979:163:139"},{"nodeType":"YulAssignment","src":"3151:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"3160:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3151:5:139"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2516:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"2524:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2532:5:139","type":""}],"src":"2478:693:139"},{"body":{"nodeType":"YulBlock","src":"3246:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"3292:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3301:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3309:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3294:6:139"},"nodeType":"YulFunctionCall","src":"3294:22:139"},"nodeType":"YulExpressionStatement","src":"3294:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3267:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3276:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3263:3:139"},"nodeType":"YulFunctionCall","src":"3263:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3288:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3259:3:139"},"nodeType":"YulFunctionCall","src":"3259:32:139"},"nodeType":"YulIf","src":"3256:2:139"},{"nodeType":"YulAssignment","src":"3327:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3356:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3337:18:139"},"nodeType":"YulFunctionCall","src":"3337:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3327:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3212:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3223:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3235:6:139","type":""}],"src":"3176:196:139"},{"body":{"nodeType":"YulBlock","src":"3749:1472:139","statements":[{"body":{"nodeType":"YulBlock","src":"3796:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3805:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3813:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3798:6:139"},"nodeType":"YulFunctionCall","src":"3798:22:139"},"nodeType":"YulExpressionStatement","src":"3798:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3770:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3779:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3766:3:139"},"nodeType":"YulFunctionCall","src":"3766:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3791:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3762:3:139"},"nodeType":"YulFunctionCall","src":"3762:33:139"},"nodeType":"YulIf","src":"3759:2:139"},{"nodeType":"YulVariableDeclaration","src":"3831:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3858:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3845:12:139"},"nodeType":"YulFunctionCall","src":"3845:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3835:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3877:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3887:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3881:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3932:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3941:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3949:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3934:6:139"},"nodeType":"YulFunctionCall","src":"3934:22:139"},"nodeType":"YulExpressionStatement","src":"3934:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3920:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3928:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3917:2:139"},"nodeType":"YulFunctionCall","src":"3917:14:139"},"nodeType":"YulIf","src":"3914:2:139"},{"nodeType":"YulAssignment","src":"3967:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4010:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4021:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4006:3:139"},"nodeType":"YulFunctionCall","src":"4006:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4030:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"3977:28:139"},"nodeType":"YulFunctionCall","src":"3977:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3967:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4047:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4080:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4091:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4076:3:139"},"nodeType":"YulFunctionCall","src":"4076:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4063:12:139"},"nodeType":"YulFunctionCall","src":"4063:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4051:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4124:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4133:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4141:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4126:6:139"},"nodeType":"YulFunctionCall","src":"4126:22:139"},"nodeType":"YulExpressionStatement","src":"4126:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4110:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4120:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4107:2:139"},"nodeType":"YulFunctionCall","src":"4107:16:139"},"nodeType":"YulIf","src":"4104:2:139"},{"nodeType":"YulAssignment","src":"4159:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4202:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4213:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4198:3:139"},"nodeType":"YulFunctionCall","src":"4198:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4224:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4169:28:139"},"nodeType":"YulFunctionCall","src":"4169:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4159:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4241:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4274:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4285:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4270:3:139"},"nodeType":"YulFunctionCall","src":"4270:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4257:12:139"},"nodeType":"YulFunctionCall","src":"4257:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"4245:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4318:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4327:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4335:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4320:6:139"},"nodeType":"YulFunctionCall","src":"4320:22:139"},"nodeType":"YulExpressionStatement","src":"4320:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"4304:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4314:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4301:2:139"},"nodeType":"YulFunctionCall","src":"4301:16:139"},"nodeType":"YulIf","src":"4298:2:139"},{"nodeType":"YulAssignment","src":"4353:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4396:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"4407:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4392:3:139"},"nodeType":"YulFunctionCall","src":"4392:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4418:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4363:28:139"},"nodeType":"YulFunctionCall","src":"4363:63:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4353:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4435:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4468:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4479:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4464:3:139"},"nodeType":"YulFunctionCall","src":"4464:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4451:12:139"},"nodeType":"YulFunctionCall","src":"4451:32:139"},"variables":[{"name":"offset_3","nodeType":"YulTypedName","src":"4439:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4512:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4521:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4529:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4514:6:139"},"nodeType":"YulFunctionCall","src":"4514:22:139"},"nodeType":"YulExpressionStatement","src":"4514:22:139"}]},"condition":{"arguments":[{"name":"offset_3","nodeType":"YulIdentifier","src":"4498:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4508:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4495:2:139"},"nodeType":"YulFunctionCall","src":"4495:16:139"},"nodeType":"YulIf","src":"4492:2:139"},{"nodeType":"YulAssignment","src":"4547:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4590:9:139"},{"name":"offset_3","nodeType":"YulIdentifier","src":"4601:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4586:3:139"},"nodeType":"YulFunctionCall","src":"4586:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4612:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"4557:28:139"},"nodeType":"YulFunctionCall","src":"4557:63:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4547:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4629:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4662:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4673:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4658:3:139"},"nodeType":"YulFunctionCall","src":"4658:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4645:12:139"},"nodeType":"YulFunctionCall","src":"4645:33:139"},"variables":[{"name":"offset_4","nodeType":"YulTypedName","src":"4633:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4707:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4716:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4724:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4709:6:139"},"nodeType":"YulFunctionCall","src":"4709:22:139"},"nodeType":"YulExpressionStatement","src":"4709:22:139"}]},"condition":{"arguments":[{"name":"offset_4","nodeType":"YulIdentifier","src":"4693:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4703:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4690:2:139"},"nodeType":"YulFunctionCall","src":"4690:16:139"},"nodeType":"YulIf","src":"4687:2:139"},{"nodeType":"YulAssignment","src":"4742:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4785:9:139"},{"name":"offset_4","nodeType":"YulIdentifier","src":"4796:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4781:3:139"},"nodeType":"YulFunctionCall","src":"4781:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4807:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4752:28:139"},"nodeType":"YulFunctionCall","src":"4752:63:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4742:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4824:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4857:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4868:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4853:3:139"},"nodeType":"YulFunctionCall","src":"4853:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4840:12:139"},"nodeType":"YulFunctionCall","src":"4840:33:139"},"variables":[{"name":"offset_5","nodeType":"YulTypedName","src":"4828:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4902:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"4911:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"4919:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4904:6:139"},"nodeType":"YulFunctionCall","src":"4904:22:139"},"nodeType":"YulExpressionStatement","src":"4904:22:139"}]},"condition":{"arguments":[{"name":"offset_5","nodeType":"YulIdentifier","src":"4888:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4898:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4885:2:139"},"nodeType":"YulFunctionCall","src":"4885:16:139"},"nodeType":"YulIf","src":"4882:2:139"},{"nodeType":"YulAssignment","src":"4937:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4980:9:139"},{"name":"offset_5","nodeType":"YulIdentifier","src":"4991:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4976:3:139"},"nodeType":"YulFunctionCall","src":"4976:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5002:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4947:28:139"},"nodeType":"YulFunctionCall","src":"4947:63:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4937:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5019:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5052:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5063:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5048:3:139"},"nodeType":"YulFunctionCall","src":"5048:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5035:12:139"},"nodeType":"YulFunctionCall","src":"5035:33:139"},"variables":[{"name":"offset_6","nodeType":"YulTypedName","src":"5023:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5097:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"5106:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"5114:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5099:6:139"},"nodeType":"YulFunctionCall","src":"5099:22:139"},"nodeType":"YulExpressionStatement","src":"5099:22:139"}]},"condition":{"arguments":[{"name":"offset_6","nodeType":"YulIdentifier","src":"5083:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5093:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5080:2:139"},"nodeType":"YulFunctionCall","src":"5080:16:139"},"nodeType":"YulIf","src":"5077:2:139"},{"nodeType":"YulAssignment","src":"5132:83:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5185:9:139"},{"name":"offset_6","nodeType":"YulIdentifier","src":"5196:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5181:3:139"},"nodeType":"YulFunctionCall","src":"5181:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5207:7:139"}],"functionName":{"name":"abi_decode_array_array_bytes32_dyn_dyn","nodeType":"YulIdentifier","src":"5142:38:139"},"nodeType":"YulFunctionCall","src":"5142:73:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"5132:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3667:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3678:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3690:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3698:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3706:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3714:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3722:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"3730:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"3738:6:139","type":""}],"src":"3377:1844:139"},{"body":{"nodeType":"YulBlock","src":"5304:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"5350:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5359:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5367:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5352:6:139"},"nodeType":"YulFunctionCall","src":"5352:22:139"},"nodeType":"YulExpressionStatement","src":"5352:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5325:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5334:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5321:3:139"},"nodeType":"YulFunctionCall","src":"5321:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5346:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5317:3:139"},"nodeType":"YulFunctionCall","src":"5317:32:139"},"nodeType":"YulIf","src":"5314:2:139"},{"nodeType":"YulVariableDeclaration","src":"5385:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5404:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5398:5:139"},"nodeType":"YulFunctionCall","src":"5398:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5389:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5467:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5476:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5484:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:139"},"nodeType":"YulFunctionCall","src":"5469:22:139"},"nodeType":"YulExpressionStatement","src":"5469:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5436:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5457:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5450:6:139"},"nodeType":"YulFunctionCall","src":"5450:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5443:6:139"},"nodeType":"YulFunctionCall","src":"5443:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5433:2:139"},"nodeType":"YulFunctionCall","src":"5433:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5426:6:139"},"nodeType":"YulFunctionCall","src":"5426:40:139"},"nodeType":"YulIf","src":"5423:2:139"},{"nodeType":"YulAssignment","src":"5502:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5512:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5502:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5270:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5281:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5293:6:139","type":""}],"src":"5226:297:139"},{"body":{"nodeType":"YulBlock","src":"5598:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"5644:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5653:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5661:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5646:6:139"},"nodeType":"YulFunctionCall","src":"5646:22:139"},"nodeType":"YulExpressionStatement","src":"5646:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5619:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5628:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5615:3:139"},"nodeType":"YulFunctionCall","src":"5615:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5640:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5611:3:139"},"nodeType":"YulFunctionCall","src":"5611:32:139"},"nodeType":"YulIf","src":"5608:2:139"},{"nodeType":"YulAssignment","src":"5679:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5702:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5689:12:139"},"nodeType":"YulFunctionCall","src":"5689:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5679:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5564:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5575:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5587:6:139","type":""}],"src":"5528:190:139"},{"body":{"nodeType":"YulBlock","src":"5804:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"5850:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5859:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5867:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5852:6:139"},"nodeType":"YulFunctionCall","src":"5852:22:139"},"nodeType":"YulExpressionStatement","src":"5852:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5825:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5834:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5821:3:139"},"nodeType":"YulFunctionCall","src":"5821:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5846:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5817:3:139"},"nodeType":"YulFunctionCall","src":"5817:32:139"},"nodeType":"YulIf","src":"5814:2:139"},{"nodeType":"YulAssignment","src":"5885:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5901:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5895:5:139"},"nodeType":"YulFunctionCall","src":"5895:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5885:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5770:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5781:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5793:6:139","type":""}],"src":"5723:194:139"},{"body":{"nodeType":"YulBlock","src":"6119:589:139","statements":[{"body":{"nodeType":"YulBlock","src":"6166:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6175:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"6183:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6168:6:139"},"nodeType":"YulFunctionCall","src":"6168:22:139"},"nodeType":"YulExpressionStatement","src":"6168:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6140:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6149:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6136:3:139"},"nodeType":"YulFunctionCall","src":"6136:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6161:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6132:3:139"},"nodeType":"YulFunctionCall","src":"6132:33:139"},"nodeType":"YulIf","src":"6129:2:139"},{"nodeType":"YulAssignment","src":"6201:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6224:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6211:12:139"},"nodeType":"YulFunctionCall","src":"6211:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6201:6:139"}]},{"nodeType":"YulAssignment","src":"6243:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6270:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6281:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6266:3:139"},"nodeType":"YulFunctionCall","src":"6266:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6253:12:139"},"nodeType":"YulFunctionCall","src":"6253:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6243:6:139"}]},{"nodeType":"YulAssignment","src":"6294:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6327:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6338:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6323:3:139"},"nodeType":"YulFunctionCall","src":"6323:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6304:18:139"},"nodeType":"YulFunctionCall","src":"6304:38:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6294:6:139"}]},{"nodeType":"YulAssignment","src":"6351:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6378:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6389:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6374:3:139"},"nodeType":"YulFunctionCall","src":"6374:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6361:12:139"},"nodeType":"YulFunctionCall","src":"6361:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6351:6:139"}]},{"nodeType":"YulAssignment","src":"6402:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6429:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6440:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6425:3:139"},"nodeType":"YulFunctionCall","src":"6425:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6412:12:139"},"nodeType":"YulFunctionCall","src":"6412:33:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6402:6:139"}]},{"nodeType":"YulAssignment","src":"6454:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6481:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6492:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6477:3:139"},"nodeType":"YulFunctionCall","src":"6477:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6464:12:139"},"nodeType":"YulFunctionCall","src":"6464:33:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6454:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6506:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6537:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6548:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6533:3:139"},"nodeType":"YulFunctionCall","src":"6533:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6520:12:139"},"nodeType":"YulFunctionCall","src":"6520:33:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6510:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6596:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6605:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6613:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6598:6:139"},"nodeType":"YulFunctionCall","src":"6598:22:139"},"nodeType":"YulExpressionStatement","src":"6598:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6568:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6576:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6565:2:139"},"nodeType":"YulFunctionCall","src":"6565:30:139"},"nodeType":"YulIf","src":"6562:2:139"},{"nodeType":"YulAssignment","src":"6631:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6674:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"6685:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6670:3:139"},"nodeType":"YulFunctionCall","src":"6670:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6694:7:139"}],"functionName":{"name":"abi_decode_array_bytes32_dyn","nodeType":"YulIdentifier","src":"6641:28:139"},"nodeType":"YulFunctionCall","src":"6641:61:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"6631:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_addresst_uint256t_uint256t_uint256t_array$_t_bytes32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6037:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6048:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6060:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6068:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6076:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6084:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6092:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6100:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6108:6:139","type":""}],"src":"5922:786:139"},{"body":{"nodeType":"YulBlock","src":"6910:589:139","statements":[{"body":{"nodeType":"YulBlock","src":"6957:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6966:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6974:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6959:6:139"},"nodeType":"YulFunctionCall","src":"6959:22:139"},"nodeType":"YulExpressionStatement","src":"6959:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6931:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6940:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6927:3:139"},"nodeType":"YulFunctionCall","src":"6927:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6952:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6923:3:139"},"nodeType":"YulFunctionCall","src":"6923:33:139"},"nodeType":"YulIf","src":"6920:2:139"},{"nodeType":"YulAssignment","src":"6992:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7015:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7002:12:139"},"nodeType":"YulFunctionCall","src":"7002:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6992:6:139"}]},{"nodeType":"YulAssignment","src":"7034:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7061:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7072:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7057:3:139"},"nodeType":"YulFunctionCall","src":"7057:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7044:12:139"},"nodeType":"YulFunctionCall","src":"7044:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7034:6:139"}]},{"nodeType":"YulAssignment","src":"7085:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7112:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7123:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7108:3:139"},"nodeType":"YulFunctionCall","src":"7108:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7095:12:139"},"nodeType":"YulFunctionCall","src":"7095:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7085:6:139"}]},{"nodeType":"YulAssignment","src":"7136:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7169:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7180:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7165:3:139"},"nodeType":"YulFunctionCall","src":"7165:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7146:18:139"},"nodeType":"YulFunctionCall","src":"7146:38:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7136:6:139"}]},{"nodeType":"YulAssignment","src":"7193:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7220:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7231:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7216:3:139"},"nodeType":"YulFunctionCall","src":"7216:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7203:12:139"},"nodeType":"YulFunctionCall","src":"7203:33:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7193:6:139"}]},{"nodeType":"YulAssignment","src":"7245:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7272:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7283:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7268:3:139"},"nodeType":"YulFunctionCall","src":"7268:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7255:12:139"},"nodeType":"YulFunctionCall","src":"7255:33:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7245:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7297:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7328:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7339:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7324:3:139"},"nodeType":"YulFunctionCall","src":"7324:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7311:12:139"},"nodeType":"YulFunctionCall","src":"7311:33:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7301:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7387:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7396:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7404:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7389:6:139"},"nodeType":"YulFunctionCall","src":"7389:22:139"},"nodeType":"YulExpressionStatement","src":"7389:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7359:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7367:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7356:2:139"},"nodeType":"YulFunctionCall","src":"7356:30:139"},"nodeType":"YulIf","src":"7353:2:139"},{"nodeType":"YulAssignment","src":"7422:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7465:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"7476:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7461:3:139"},"nodeType":"YulFunctionCall","src":"7461:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7485:7:139"}],"functionName":{"name":"abi_decode_array_bytes32_dyn","nodeType":"YulIdentifier","src":"7432:28:139"},"nodeType":"YulFunctionCall","src":"7432:61:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"7422:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_uint256t_uint256t_array$_t_bytes32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6828:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6839:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6851:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6859:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6867:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6875:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6883:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6891:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6899:6:139","type":""}],"src":"6713:786:139"},{"body":{"nodeType":"YulBlock","src":"7605:102:139","statements":[{"nodeType":"YulAssignment","src":"7615:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7627:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7638:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7623:3:139"},"nodeType":"YulFunctionCall","src":"7623:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7615:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7657:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7672:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7688:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7693:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7684:3:139"},"nodeType":"YulFunctionCall","src":"7684:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"7697:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7680:3:139"},"nodeType":"YulFunctionCall","src":"7680:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7668:3:139"},"nodeType":"YulFunctionCall","src":"7668:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7650:6:139"},"nodeType":"YulFunctionCall","src":"7650:51:139"},"nodeType":"YulExpressionStatement","src":"7650:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7574:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7585:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7596:4:139","type":""}],"src":"7504:203:139"},{"body":{"nodeType":"YulBlock","src":"7841:145:139","statements":[{"nodeType":"YulAssignment","src":"7851:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7863:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7874:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7859:3:139"},"nodeType":"YulFunctionCall","src":"7859:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7851:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7893:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7908:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7924:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7929:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7920:3:139"},"nodeType":"YulFunctionCall","src":"7920:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"7933:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7916:3:139"},"nodeType":"YulFunctionCall","src":"7916:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7904:3:139"},"nodeType":"YulFunctionCall","src":"7904:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7886:6:139"},"nodeType":"YulFunctionCall","src":"7886:51:139"},"nodeType":"YulExpressionStatement","src":"7886:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7957:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7968:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7953:3:139"},"nodeType":"YulFunctionCall","src":"7953:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"7973:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7946:6:139"},"nodeType":"YulFunctionCall","src":"7946:34:139"},"nodeType":"YulExpressionStatement","src":"7946:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7802:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7813:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7821:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7832:4:139","type":""}],"src":"7712:274:139"},{"body":{"nodeType":"YulBlock","src":"8086:92:139","statements":[{"nodeType":"YulAssignment","src":"8096:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8108:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8119:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8104:3:139"},"nodeType":"YulFunctionCall","src":"8104:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8096:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8138:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8163:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8156:6:139"},"nodeType":"YulFunctionCall","src":"8156:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8149:6:139"},"nodeType":"YulFunctionCall","src":"8149:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8131:6:139"},"nodeType":"YulFunctionCall","src":"8131:41:139"},"nodeType":"YulExpressionStatement","src":"8131:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8055:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8066:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8077:4:139","type":""}],"src":"7991:187:139"},{"body":{"nodeType":"YulBlock","src":"8284:76:139","statements":[{"nodeType":"YulAssignment","src":"8294:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8306:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8317:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8302:3:139"},"nodeType":"YulFunctionCall","src":"8302:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8294:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8336:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8347:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8329:6:139"},"nodeType":"YulFunctionCall","src":"8329:25:139"},"nodeType":"YulExpressionStatement","src":"8329:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8253:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8264:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8275:4:139","type":""}],"src":"8183:177:139"},{"body":{"nodeType":"YulBlock","src":"8481:102:139","statements":[{"nodeType":"YulAssignment","src":"8491:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8503:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8514:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8499:3:139"},"nodeType":"YulFunctionCall","src":"8499:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8491:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8533:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8548:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8564:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8569:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8560:3:139"},"nodeType":"YulFunctionCall","src":"8560:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"8573:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8556:3:139"},"nodeType":"YulFunctionCall","src":"8556:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8544:3:139"},"nodeType":"YulFunctionCall","src":"8544:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8526:6:139"},"nodeType":"YulFunctionCall","src":"8526:51:139"},"nodeType":"YulExpressionStatement","src":"8526:51:139"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8450:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8461:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8472:4:139","type":""}],"src":"8365:218:139"},{"body":{"nodeType":"YulBlock","src":"8709:102:139","statements":[{"nodeType":"YulAssignment","src":"8719:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8731:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8742:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8727:3:139"},"nodeType":"YulFunctionCall","src":"8727:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8719:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8761:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8776:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8792:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8797:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8788:3:139"},"nodeType":"YulFunctionCall","src":"8788:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"8801:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8784:3:139"},"nodeType":"YulFunctionCall","src":"8784:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8772:3:139"},"nodeType":"YulFunctionCall","src":"8772:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8754:6:139"},"nodeType":"YulFunctionCall","src":"8754:51:139"},"nodeType":"YulExpressionStatement","src":"8754:51:139"}]},"name":"abi_encode_tuple_t_contract$_INFTLocker_$34923__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8678:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8689:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8700:4:139","type":""}],"src":"8588:223:139"},{"body":{"nodeType":"YulBlock","src":"8990:176:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9007:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9018:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9000:6:139"},"nodeType":"YulFunctionCall","src":"9000:21:139"},"nodeType":"YulExpressionStatement","src":"9000:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9041:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9052:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9037:3:139"},"nodeType":"YulFunctionCall","src":"9037:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9057:2:139","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9030:6:139"},"nodeType":"YulFunctionCall","src":"9030:30:139"},"nodeType":"YulExpressionStatement","src":"9030:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9080:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9091:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9076:3:139"},"nodeType":"YulFunctionCall","src":"9076:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9096:28:139","type":"","value":"Migrator: migration failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9069:6:139"},"nodeType":"YulFunctionCall","src":"9069:56:139"},"nodeType":"YulExpressionStatement","src":"9069:56:139"},{"nodeType":"YulAssignment","src":"9134:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9146:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9157:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9142:3:139"},"nodeType":"YulFunctionCall","src":"9142:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9134:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_01f7b8020b2d6e8edde64630cb6f659ee201c57df8b430dc6cd9de85cd19a231__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8967:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8981:4:139","type":""}],"src":"8816:350:139"},{"body":{"nodeType":"YulBlock","src":"9345:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9362:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9373:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9355:6:139"},"nodeType":"YulFunctionCall","src":"9355:21:139"},"nodeType":"YulExpressionStatement","src":"9355:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9396:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9407:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9392:3:139"},"nodeType":"YulFunctionCall","src":"9392:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9412:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9385:6:139"},"nodeType":"YulFunctionCall","src":"9385:30:139"},"nodeType":"YulExpressionStatement","src":"9385:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9435:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9446:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9431:3:139"},"nodeType":"YulFunctionCall","src":"9431:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9451:14:139","type":"","value":"tokenId is 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9424:6:139"},"nodeType":"YulFunctionCall","src":"9424:42:139"},"nodeType":"YulExpressionStatement","src":"9424:42:139"},{"nodeType":"YulAssignment","src":"9475:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9487:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9498:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9483:3:139"},"nodeType":"YulFunctionCall","src":"9483:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9475:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ad500dbd4487b1c63c013ac0de76344eb20175ea7386865676b528d40d436e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9322:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9336:4:139","type":""}],"src":"9171:336:139"},{"body":{"nodeType":"YulBlock","src":"9686:170:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9703:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9714:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9696:6:139"},"nodeType":"YulFunctionCall","src":"9696:21:139"},"nodeType":"YulExpressionStatement","src":"9696:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9737:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9748:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9733:3:139"},"nodeType":"YulFunctionCall","src":"9733:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9753:2:139","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9726:6:139"},"nodeType":"YulFunctionCall","src":"9726:30:139"},"nodeType":"YulExpressionStatement","src":"9726:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9776:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9787:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9772:3:139"},"nodeType":"YulFunctionCall","src":"9772:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9792:22:139","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9765:6:139"},"nodeType":"YulFunctionCall","src":"9765:50:139"},"nodeType":"YulExpressionStatement","src":"9765:50:139"},{"nodeType":"YulAssignment","src":"9824:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9836:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9847:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9832:3:139"},"nodeType":"YulFunctionCall","src":"9832:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9824:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9663:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9677:4:139","type":""}],"src":"9512:344:139"},{"body":{"nodeType":"YulBlock","src":"10035:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10052:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10063:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10045:6:139"},"nodeType":"YulFunctionCall","src":"10045:21:139"},"nodeType":"YulExpressionStatement","src":"10045:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10086:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10097:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10082:3:139"},"nodeType":"YulFunctionCall","src":"10082:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10102:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10075:6:139"},"nodeType":"YulFunctionCall","src":"10075:30:139"},"nodeType":"YulExpressionStatement","src":"10075:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10125:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10136:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10121:3:139"},"nodeType":"YulFunctionCall","src":"10121:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10141:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10114:6:139"},"nodeType":"YulFunctionCall","src":"10114:62:139"},"nodeType":"YulExpressionStatement","src":"10114:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10196:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10207:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10192:3:139"},"nodeType":"YulFunctionCall","src":"10192:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10212:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10185:6:139"},"nodeType":"YulFunctionCall","src":"10185:36:139"},"nodeType":"YulExpressionStatement","src":"10185:36:139"},{"nodeType":"YulAssignment","src":"10230:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10242:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10253:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10238:3:139"},"nodeType":"YulFunctionCall","src":"10238:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10230:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10012:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10026:4:139","type":""}],"src":"9861:402:139"},{"body":{"nodeType":"YulBlock","src":"10442:166:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10459:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10470:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10452:6:139"},"nodeType":"YulFunctionCall","src":"10452:21:139"},"nodeType":"YulExpressionStatement","src":"10452:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10493:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10504:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10489:3:139"},"nodeType":"YulFunctionCall","src":"10489:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10509:2:139","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10482:6:139"},"nodeType":"YulFunctionCall","src":"10482:30:139"},"nodeType":"YulExpressionStatement","src":"10482:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10532:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10543:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10528:3:139"},"nodeType":"YulFunctionCall","src":"10528:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10548:18:139","type":"","value":"end date expired"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10521:6:139"},"nodeType":"YulFunctionCall","src":"10521:46:139"},"nodeType":"YulExpressionStatement","src":"10521:46:139"},{"nodeType":"YulAssignment","src":"10576:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10588:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10599:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10584:3:139"},"nodeType":"YulFunctionCall","src":"10584:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10576:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3cad2dc17e5a3249652b48bf5720b188adbcc8d771ce018abe0eaa901b684db7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10419:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10433:4:139","type":""}],"src":"10268:340:139"},{"body":{"nodeType":"YulBlock","src":"10787:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10804:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10815:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10797:6:139"},"nodeType":"YulFunctionCall","src":"10797:21:139"},"nodeType":"YulExpressionStatement","src":"10797:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10838:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10849:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10834:3:139"},"nodeType":"YulFunctionCall","src":"10834:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10854:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10827:6:139"},"nodeType":"YulFunctionCall","src":"10827:30:139"},"nodeType":"YulExpressionStatement","src":"10827:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10877:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10888:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10873:3:139"},"nodeType":"YulFunctionCall","src":"10873:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10893:16:139","type":"","value":"tokenId banned"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10866:6:139"},"nodeType":"YulFunctionCall","src":"10866:44:139"},"nodeType":"YulExpressionStatement","src":"10866:44:139"},{"nodeType":"YulAssignment","src":"10919:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10931:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10942:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10927:3:139"},"nodeType":"YulFunctionCall","src":"10927:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10919:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_5b4e44c43bf7cabe9a53bdce425e2967ad555f312648787980d6ef56aee90c72__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10764:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10778:4:139","type":""}],"src":"10613:338:139"},{"body":{"nodeType":"YulBlock","src":"11130:166:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11147:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11158:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11140:6:139"},"nodeType":"YulFunctionCall","src":"11140:21:139"},"nodeType":"YulExpressionStatement","src":"11140:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11181:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11192:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11177:3:139"},"nodeType":"YulFunctionCall","src":"11177:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11197:2:139","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11170:6:139"},"nodeType":"YulFunctionCall","src":"11170:30:139"},"nodeType":"YulExpressionStatement","src":"11170:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11220:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11231:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11216:3:139"},"nodeType":"YulFunctionCall","src":"11216:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11236:18:139","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11209:6:139"},"nodeType":"YulFunctionCall","src":"11209:46:139"},"nodeType":"YulExpressionStatement","src":"11209:46:139"},{"nodeType":"YulAssignment","src":"11264:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11276:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11287:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11272:3:139"},"nodeType":"YulFunctionCall","src":"11272:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11264:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11107:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11121:4:139","type":""}],"src":"10956:340:139"},{"body":{"nodeType":"YulBlock","src":"11475:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11492:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11503:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11485:6:139"},"nodeType":"YulFunctionCall","src":"11485:21:139"},"nodeType":"YulExpressionStatement","src":"11485:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11526:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11537:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11522:3:139"},"nodeType":"YulFunctionCall","src":"11522:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11542:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11515:6:139"},"nodeType":"YulFunctionCall","src":"11515:30:139"},"nodeType":"YulExpressionStatement","src":"11515:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11565:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11576:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11561:3:139"},"nodeType":"YulFunctionCall","src":"11561:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11581:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11554:6:139"},"nodeType":"YulFunctionCall","src":"11554:62:139"},"nodeType":"YulExpressionStatement","src":"11554:62:139"},{"nodeType":"YulAssignment","src":"11625:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11637:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11648:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11633:3:139"},"nodeType":"YulFunctionCall","src":"11633:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11625:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11452:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11466:4:139","type":""}],"src":"11301:356:139"},{"body":{"nodeType":"YulBlock","src":"11836:172:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11853:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11864:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11846:6:139"},"nodeType":"YulFunctionCall","src":"11846:21:139"},"nodeType":"YulExpressionStatement","src":"11846:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11887:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11898:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11883:3:139"},"nodeType":"YulFunctionCall","src":"11883:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11903:2:139","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11876:6:139"},"nodeType":"YulFunctionCall","src":"11876:30:139"},"nodeType":"YulExpressionStatement","src":"11876:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11926:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11937:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11922:3:139"},"nodeType":"YulFunctionCall","src":"11922:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11942:24:139","type":"","value":"Migrator: invalid lock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11915:6:139"},"nodeType":"YulFunctionCall","src":"11915:52:139"},"nodeType":"YulExpressionStatement","src":"11915:52:139"},{"nodeType":"YulAssignment","src":"11976:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11988:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11999:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11984:3:139"},"nodeType":"YulFunctionCall","src":"11984:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11976:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae7bbbbc5f6f69f67fb114a889034c070c74c70115d6fbf37764faeac856e894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11813:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11827:4:139","type":""}],"src":"11662:346:139"},{"body":{"nodeType":"YulBlock","src":"12187:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12204:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12215:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12197:6:139"},"nodeType":"YulFunctionCall","src":"12197:21:139"},"nodeType":"YulExpressionStatement","src":"12197:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12238:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12249:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12234:3:139"},"nodeType":"YulFunctionCall","src":"12234:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12254:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12227:6:139"},"nodeType":"YulFunctionCall","src":"12227:30:139"},"nodeType":"YulExpressionStatement","src":"12227:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12277:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12288:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12273:3:139"},"nodeType":"YulFunctionCall","src":"12273:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12293:26:139","type":"","value":"tokenId already migrated"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12266:6:139"},"nodeType":"YulFunctionCall","src":"12266:54:139"},"nodeType":"YulExpressionStatement","src":"12266:54:139"},{"nodeType":"YulAssignment","src":"12329:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12341:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12352:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12337:3:139"},"nodeType":"YulFunctionCall","src":"12337:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12329:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9da604f82bcb22669c6195901e63950a43c78df0f25a04813c8c9fcfef45ea7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12164:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12178:4:139","type":""}],"src":"12013:348:139"},{"body":{"nodeType":"YulBlock","src":"12540:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12557:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12568:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12550:6:139"},"nodeType":"YulFunctionCall","src":"12550:21:139"},"nodeType":"YulExpressionStatement","src":"12550:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12591:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12602:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12587:3:139"},"nodeType":"YulFunctionCall","src":"12587:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12607:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12580:6:139"},"nodeType":"YulFunctionCall","src":"12580:30:139"},"nodeType":"YulExpressionStatement","src":"12580:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12630:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12641:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12626:3:139"},"nodeType":"YulFunctionCall","src":"12626:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12646:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12619:6:139"},"nodeType":"YulFunctionCall","src":"12619:61:139"},"nodeType":"YulExpressionStatement","src":"12619:61:139"},{"nodeType":"YulAssignment","src":"12689:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12701:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12712:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12697:3:139"},"nodeType":"YulFunctionCall","src":"12697:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12689:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12517:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12531:4:139","type":""}],"src":"12366:355:139"},{"body":{"nodeType":"YulBlock","src":"12900:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12917:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12928:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12910:6:139"},"nodeType":"YulFunctionCall","src":"12910:21:139"},"nodeType":"YulExpressionStatement","src":"12910:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12951:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12962:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12947:3:139"},"nodeType":"YulFunctionCall","src":"12947:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12967:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12940:6:139"},"nodeType":"YulFunctionCall","src":"12940:30:139"},"nodeType":"YulExpressionStatement","src":"12940:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12990:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13001:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12986:3:139"},"nodeType":"YulFunctionCall","src":"12986:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"13006:14:139","type":"","value":"owner banned"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12979:6:139"},"nodeType":"YulFunctionCall","src":"12979:42:139"},"nodeType":"YulExpressionStatement","src":"12979:42:139"},{"nodeType":"YulAssignment","src":"13030:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13042:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13053:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13038:3:139"},"nodeType":"YulFunctionCall","src":"13038:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13030:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fbc7f0f9b7bd3999b59e1c472f8b3d1d1db7f92db7ce5e3943a968610278b1a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12877:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12891:4:139","type":""}],"src":"12726:336:139"},{"body":{"nodeType":"YulBlock","src":"13168:76:139","statements":[{"nodeType":"YulAssignment","src":"13178:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13190:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13201:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13186:3:139"},"nodeType":"YulFunctionCall","src":"13186:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13178:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13220:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"13231:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13213:6:139"},"nodeType":"YulFunctionCall","src":"13213:25:139"},"nodeType":"YulExpressionStatement","src":"13213:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13137:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13148:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13159:4:139","type":""}],"src":"13067:177:139"},{"body":{"nodeType":"YulBlock","src":"13378:119:139","statements":[{"nodeType":"YulAssignment","src":"13388:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13400:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13411:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13396:3:139"},"nodeType":"YulFunctionCall","src":"13396:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13388:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13430:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"13441:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13423:6:139"},"nodeType":"YulFunctionCall","src":"13423:25:139"},"nodeType":"YulExpressionStatement","src":"13423:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13468:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13479:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13464:3:139"},"nodeType":"YulFunctionCall","src":"13464:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"13484:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13457:6:139"},"nodeType":"YulFunctionCall","src":"13457:34:139"},"nodeType":"YulExpressionStatement","src":"13457:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13339:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13350:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13358:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13369:4:139","type":""}],"src":"13249:248:139"},{"body":{"nodeType":"YulBlock","src":"13659:188:139","statements":[{"nodeType":"YulAssignment","src":"13669:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13681:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13692:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13677:3:139"},"nodeType":"YulFunctionCall","src":"13677:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13669:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13711:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"13722:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13704:6:139"},"nodeType":"YulFunctionCall","src":"13704:25:139"},"nodeType":"YulExpressionStatement","src":"13704:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13749:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13760:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13745:3:139"},"nodeType":"YulFunctionCall","src":"13745:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"13765:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13738:6:139"},"nodeType":"YulFunctionCall","src":"13738:34:139"},"nodeType":"YulExpressionStatement","src":"13738:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13792:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13803:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13788:3:139"},"nodeType":"YulFunctionCall","src":"13788:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13812:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13828:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13833:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13824:3:139"},"nodeType":"YulFunctionCall","src":"13824:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"13837:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13820:3:139"},"nodeType":"YulFunctionCall","src":"13820:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13808:3:139"},"nodeType":"YulFunctionCall","src":"13808:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13781:6:139"},"nodeType":"YulFunctionCall","src":"13781:60:139"},"nodeType":"YulExpressionStatement","src":"13781:60:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13612:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13623:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13631:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13639:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13650:4:139","type":""}],"src":"13502:345:139"},{"body":{"nodeType":"YulBlock","src":"14093:320:139","statements":[{"nodeType":"YulAssignment","src":"14103:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14115:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14126:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14111:3:139"},"nodeType":"YulFunctionCall","src":"14111:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14103:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14146:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"14157:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14139:6:139"},"nodeType":"YulFunctionCall","src":"14139:25:139"},"nodeType":"YulExpressionStatement","src":"14139:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14184:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14195:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14180:3:139"},"nodeType":"YulFunctionCall","src":"14180:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"14200:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14173:6:139"},"nodeType":"YulFunctionCall","src":"14173:34:139"},"nodeType":"YulExpressionStatement","src":"14173:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14227:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14238:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14223:3:139"},"nodeType":"YulFunctionCall","src":"14223:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14247:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14263:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14268:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14259:3:139"},"nodeType":"YulFunctionCall","src":"14259:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14272:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14255:3:139"},"nodeType":"YulFunctionCall","src":"14255:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14243:3:139"},"nodeType":"YulFunctionCall","src":"14243:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14216:6:139"},"nodeType":"YulFunctionCall","src":"14216:60:139"},"nodeType":"YulExpressionStatement","src":"14216:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14296:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14307:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14292:3:139"},"nodeType":"YulFunctionCall","src":"14292:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"14312:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14285:6:139"},"nodeType":"YulFunctionCall","src":"14285:34:139"},"nodeType":"YulExpressionStatement","src":"14285:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14339:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14350:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14335:3:139"},"nodeType":"YulFunctionCall","src":"14335:19:139"},{"name":"value4","nodeType":"YulIdentifier","src":"14356:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14328:6:139"},"nodeType":"YulFunctionCall","src":"14328:35:139"},"nodeType":"YulExpressionStatement","src":"14328:35:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14383:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14394:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14379:3:139"},"nodeType":"YulFunctionCall","src":"14379:19:139"},{"name":"value5","nodeType":"YulIdentifier","src":"14400:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14372:6:139"},"nodeType":"YulFunctionCall","src":"14372:35:139"},"nodeType":"YulExpressionStatement","src":"14372:35:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14022:9:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"14033:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14041:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14049:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14057:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14065:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14073:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14084:4:139","type":""}],"src":"13852:561:139"},{"body":{"nodeType":"YulBlock","src":"14463:230:139","statements":[{"nodeType":"YulAssignment","src":"14473:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14489:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14483:5:139"},"nodeType":"YulFunctionCall","src":"14483:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14473:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"14501:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14523:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"14539:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"14545:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14535:3:139"},"nodeType":"YulFunctionCall","src":"14535:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14554:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14550:3:139"},"nodeType":"YulFunctionCall","src":"14550:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14531:3:139"},"nodeType":"YulFunctionCall","src":"14531:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14519:3:139"},"nodeType":"YulFunctionCall","src":"14519:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"14505:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"14634:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"14636:16:139"},"nodeType":"YulFunctionCall","src":"14636:18:139"},"nodeType":"YulExpressionStatement","src":"14636:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14577:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"14589:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14574:2:139"},"nodeType":"YulFunctionCall","src":"14574:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14613:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"14625:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14610:2:139"},"nodeType":"YulFunctionCall","src":"14610:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"14571:2:139"},"nodeType":"YulFunctionCall","src":"14571:62:139"},"nodeType":"YulIf","src":"14568:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14672:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14676:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14665:6:139"},"nodeType":"YulFunctionCall","src":"14665:22:139"},"nodeType":"YulExpressionStatement","src":"14665:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"14443:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"14452:6:139","type":""}],"src":"14418:275:139"},{"body":{"nodeType":"YulBlock","src":"14767:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"14811:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"14813:16:139"},"nodeType":"YulFunctionCall","src":"14813:18:139"},"nodeType":"YulExpressionStatement","src":"14813:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14783:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"14791:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14780:2:139"},"nodeType":"YulFunctionCall","src":"14780:30:139"},"nodeType":"YulIf","src":"14777:2:139"},{"nodeType":"YulAssignment","src":"14842:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14858:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"14861:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14854:3:139"},"nodeType":"YulFunctionCall","src":"14854:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"14870:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14850:3:139"},"nodeType":"YulFunctionCall","src":"14850:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"14842:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"14747:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"14758:4:139","type":""}],"src":"14698:183:139"},{"body":{"nodeType":"YulBlock","src":"14934:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"14961:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14963:16:139"},"nodeType":"YulFunctionCall","src":"14963:18:139"},"nodeType":"YulExpressionStatement","src":"14963:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14950:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14957:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14953:3:139"},"nodeType":"YulFunctionCall","src":"14953:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14947:2:139"},"nodeType":"YulFunctionCall","src":"14947:13:139"},"nodeType":"YulIf","src":"14944:2:139"},{"nodeType":"YulAssignment","src":"14992:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15003:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"15006:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14999:3:139"},"nodeType":"YulFunctionCall","src":"14999:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14992:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14917:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"14920:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"14926:3:139","type":""}],"src":"14886:128:139"},{"body":{"nodeType":"YulBlock","src":"15071:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"15130:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15132:16:139"},"nodeType":"YulFunctionCall","src":"15132:18:139"},"nodeType":"YulExpressionStatement","src":"15132:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15102:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15095:6:139"},"nodeType":"YulFunctionCall","src":"15095:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15088:6:139"},"nodeType":"YulFunctionCall","src":"15088:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"15110:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15121:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15117:3:139"},"nodeType":"YulFunctionCall","src":"15117:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"15125:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"15113:3:139"},"nodeType":"YulFunctionCall","src":"15113:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15107:2:139"},"nodeType":"YulFunctionCall","src":"15107:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15084:3:139"},"nodeType":"YulFunctionCall","src":"15084:45:139"},"nodeType":"YulIf","src":"15081:2:139"},{"nodeType":"YulAssignment","src":"15161:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15176:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"15179:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"15172:3:139"},"nodeType":"YulFunctionCall","src":"15172:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"15161:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"15050:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"15053:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"15059:7:139","type":""}],"src":"15019:168:139"},{"body":{"nodeType":"YulBlock","src":"15241:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"15263:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15265:16:139"},"nodeType":"YulFunctionCall","src":"15265:18:139"},"nodeType":"YulExpressionStatement","src":"15265:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15257:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"15260:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15254:2:139"},"nodeType":"YulFunctionCall","src":"15254:8:139"},"nodeType":"YulIf","src":"15251:2:139"},{"nodeType":"YulAssignment","src":"15294:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15306:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"15309:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15302:3:139"},"nodeType":"YulFunctionCall","src":"15302:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"15294:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"15223:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"15226:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"15232:4:139","type":""}],"src":"15192:125:139"},{"body":{"nodeType":"YulBlock","src":"15369:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"15400:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15402:16:139"},"nodeType":"YulFunctionCall","src":"15402:18:139"},"nodeType":"YulExpressionStatement","src":"15402:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15385:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15396:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15392:3:139"},"nodeType":"YulFunctionCall","src":"15392:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15382:2:139"},"nodeType":"YulFunctionCall","src":"15382:17:139"},"nodeType":"YulIf","src":"15379:2:139"},{"nodeType":"YulAssignment","src":"15431:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15442:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"15449:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15438:3:139"},"nodeType":"YulFunctionCall","src":"15438:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"15431:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15351:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"15361:3:139","type":""}],"src":"15322:135:139"},{"body":{"nodeType":"YulBlock","src":"15494:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15511:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15518:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15523:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15514:3:139"},"nodeType":"YulFunctionCall","src":"15514:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15504:6:139"},"nodeType":"YulFunctionCall","src":"15504:31:139"},"nodeType":"YulExpressionStatement","src":"15504:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15551:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15554:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15544:6:139"},"nodeType":"YulFunctionCall","src":"15544:15:139"},"nodeType":"YulExpressionStatement","src":"15544:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15575:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15578:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15568:6:139"},"nodeType":"YulFunctionCall","src":"15568:15:139"},"nodeType":"YulExpressionStatement","src":"15568:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"15462:127:139"},{"body":{"nodeType":"YulBlock","src":"15626:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15643:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15650:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15655:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15646:3:139"},"nodeType":"YulFunctionCall","src":"15646:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15636:6:139"},"nodeType":"YulFunctionCall","src":"15636:31:139"},"nodeType":"YulExpressionStatement","src":"15636:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15683:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15686:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15676:6:139"},"nodeType":"YulFunctionCall","src":"15676:15:139"},"nodeType":"YulExpressionStatement","src":"15676:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15707:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15710:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15700:6:139"},"nodeType":"YulFunctionCall","src":"15700:15:139"},"nodeType":"YulExpressionStatement","src":"15700:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"15594:127:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_array_bytes32_dyn_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(array, array) }\n            mstore(dst, abi_decode_array_bytes32_dyn(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes32_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value4, value4) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        value0 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value4, value4) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(value4, value4) }\n        value3 := abi_decode_array_address_dyn(add(headStart, offset_3), dataEnd)\n        let offset_4 := calldataload(add(headStart, 128))\n        if gt(offset_4, _1) { revert(value4, value4) }\n        value4 := abi_decode_array_uint256_dyn(add(headStart, offset_4), dataEnd)\n        let offset_5 := calldataload(add(headStart, 160))\n        if gt(offset_5, _1) { revert(value5, value5) }\n        value5 := abi_decode_array_uint256_dyn(add(headStart, offset_5), dataEnd)\n        let offset_6 := calldataload(add(headStart, 192))\n        if gt(offset_6, _1) { revert(value6, value6) }\n        value6 := abi_decode_array_array_bytes32_dyn_dyn(add(headStart, offset_6), dataEnd)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_addresst_uint256t_uint256t_uint256t_array$_t_bytes32_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value4, value4) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := abi_decode_address(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n        value5 := calldataload(add(headStart, 160))\n        let offset := calldataload(add(headStart, 192))\n        if gt(offset, 0xffffffffffffffff) { revert(value6, value6) }\n        value6 := abi_decode_array_bytes32_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_uint256t_uint256t_array$_t_bytes32_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value6, value6) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := abi_decode_address(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n        value5 := calldataload(add(headStart, 160))\n        let offset := calldataload(add(headStart, 192))\n        if gt(offset, 0xffffffffffffffff) { revert(value6, value6) }\n        value6 := abi_decode_array_bytes32_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_INFTLocker_$34923__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_01f7b8020b2d6e8edde64630cb6f659ee201c57df8b430dc6cd9de85cd19a231__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Migrator: migration failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0ad500dbd4487b1c63c013ac0de76344eb20175ea7386865676b528d40d436e5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"tokenId is 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3cad2dc17e5a3249652b48bf5720b188adbcc8d771ce018abe0eaa901b684db7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"end date expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5b4e44c43bf7cabe9a53bdce425e2967ad555f312648787980d6ef56aee90c72__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"tokenId banned\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ae7bbbbc5f6f69f67fb114a889034c070c74c70115d6fbf37764faeac856e894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Migrator: invalid lock\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b9da604f82bcb22669c6195901e63950a43c78df0f25a04813c8c9fcfef45ea7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"tokenId already migrated\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_fbc7f0f9b7bd3999b59e1c472f8b3d1d1db7f92db7ce5e3943a968610278b1a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"owner banned\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), value5)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061012c5760003560e01c80635c975abb116100ad57806394cc36761161007157806394cc367614610279578063c4ae31681461028c578063e01a8b9f14610294578063f2fde38b146102a7578063ffc7d718146102ba57600080fd5b80635c975abb146102325780636f03ec941461023a578063715018a61461024d5780637302d43c146102555780638da5cb5b1461026857600080fd5b80634c2d392a116100f45780634c2d392a146101d857806356946bbd146101eb57806358554b46146101fe578063590e1ae31461022157806359bc03521461022957600080fd5b80630bfe6f5f146101315780632ba97dfd146101695780632eb4a7ab1461017e5780633a50433d146101955780633de00c36146101b8575b600080fd5b61015461013f366004611249565b60086020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61017c610177366004611249565b6102cd565b005b61018760025481565b604051908152602001610160565b6101546101a3366004611249565b60076020526000908152604090205460ff1681565b6004546101cb906001600160a01b031681565b6040516101609190611347565b61017c6101e6366004611249565b6102f5565b61017c6101f9366004611116565b61033e565b61015461020c3660046110fc565b60096020526000908152604090205460ff1681565b61017c610487565b61018760035481565b610154610684565b6005546101cb906001600160a01b031681565b61017c610694565b6101876102633660046112e6565b6106a8565b6000546001600160a01b03166101cb565b61017c6102873660046110fc565b6106c5565b61017c6106f6565b6101546102a2366004611279565b61071b565b61017c6102b53660046110fc565b61078a565b6006546101cb906001600160a01b031681565b6102d5610805565b6000908152600860205260409020805460ff19811660ff90911615179055565b6102fd610805565b60035460408051918252602082018390527ffd84e80076cfe22eaa00af386d8f2e89c0086871f1057dcf303e0e97357d3f85910160405180910390a1600355565b60005b875181101561047d5761046a88828151811061036d57634e487b7160e01b600052603260045260246000fd5b602002602001015188838151811061039557634e487b7160e01b600052603260045260246000fd5b60200260200101518884815181106103bd57634e487b7160e01b600052603260045260246000fd5b60200260200101518885815181106103e557634e487b7160e01b600052603260045260246000fd5b602002602001015188868151811061040d57634e487b7160e01b600052603260045260246000fd5b602002602001015188878151811061043557634e487b7160e01b600052603260045260246000fd5b602002602001015188888151811061045d57634e487b7160e01b600052603260045260246000fd5b602002602001015161085f565b508061047581611417565b915050610341565b5050505050505050565b61048f610805565b600480546040516370a0823160e01b81526001600160a01b039091169163a9059cbb91339184916370a08231916104c891309101611347565b60206040518083038186803b1580156104e057600080fd5b505afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105189190611261565b6040518363ffffffff1660e01b815260040161053592919061135b565b602060405180830381600087803b15801561054f57600080fd5b505af1158015610563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105879190611229565b506005546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906105c2903090600401611347565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190611261565b6040518363ffffffff1660e01b815260040161062f92919061135b565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190611229565b50565b600054600160a01b900460ff1690565b61069c610805565b6106a66000610d75565b565b60006106b98888888888888861085f565b98975050505050505050565b6106cd610805565b6001600160a01b03166000908152600960205260409020805460ff19811660ff90911615179055565b6106fe610805565b610706610684565b15610713576106a6610dc5565b6106a6610e14565b60408051602081018990529081018790526001600160a01b03861660608201526080810185905260a0810184905260c08101839052600090819060e00160405160208183030381529060405280519060200120905061077d8360025483610e57565b9998505050505050505050565b610792610805565b6001600160a01b0381166107fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61068181610d75565b6000546001600160a01b031633146106a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f3565b6000600260015414156108b45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107f3565b60026001556108c1610e6d565b6108cf62093a8060026113e1565b6108d990426113c9565b87101561091b5760405162461bcd60e51b815260206004820152601060248201526f195b990819185d1948195e1c1a5c995960821b60448201526064016107f3565b856109575760405162461bcd60e51b815260206004820152600c60248201526b0746f6b656e496420697320360a41b60448201526064016107f3565b60008681526007602052604090205460ff16156109b15760405162461bcd60e51b81526020600482015260186024820152771d1bdad95b925908185b1c9958591e481b5a59dc985d195960421b60448201526064016107f3565b60008681526008602052604090205460ff1615610a015760405162461bcd60e51b815260206004820152600e60248201526d1d1bdad95b92590818985b9b995960921b60448201526064016107f3565b6001600160a01b03851660009081526009602052604090205460ff1615610a595760405162461bcd60e51b815260206004820152600c60248201526b1bdddb995c8818985b9b995960a21b60448201526064016107f3565b6000610a6a8989888a89898961071b565b905080610ab25760405162461bcd60e51b81526020600482015260166024820152754d69677261746f723a20696e76616c6964206c6f636b60501b60448201526064016107f3565b6000610abe428a611400565b600654604051638df4b13b60e01b8152600481018d9052602481018390526001600160a01b038a8116604483015292935060009290911690638df4b13b90606401602060405180830381600087803b158015610b1957600080fd5b505af1158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190611261565b905060008111610ba35760405162461bcd60e51b815260206004820152601a60248201527f4d69677261746f723a206d6967726174696f6e206661696c656400000000000060448201526064016107f3565b6000898152600760205260409020805460ff191660011790558615610c47576004805460405163a9059cbb60e01b81526001600160a01b039091169163a9059cbb91610bf3918c918c910161135b565b602060405180830381600087803b158015610c0d57600080fd5b505af1158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c459190611229565b505b8515610cd35760055460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610c7f908b908a9060040161135b565b602060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190611229565b505b60035415610d63576004805460035460405163a9059cbb60e01b81526001600160a01b039092169263a9059cbb92610d0f92339290910161135b565b602060405180830381600087803b158015610d2957600080fd5b505af1158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190611229565b505b600180559a9950505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dcd610eb5565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610e0a9190611347565b60405180910390a1565b610e1c610e6d565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610dfd3390565b600082610e648584610f00565b14949350505050565b610e75610684565b156106a65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107f3565b610ebd610684565b6106a65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107f3565b600081815b8451811015610f5357610f3f82868381518110610f3257634e487b7160e01b600052603260045260246000fd5b6020026020010151610f5b565b915080610f4b81611417565b915050610f05565b509392505050565b6000818310610f77576000828152602084905260409020610f86565b60008381526020839052604090205b9392505050565b80356001600160a01b0381168114610fa457600080fd5b919050565b600082601f830112610fb9578081fd5b81356020610fce610fc9836113a5565b611374565b80838252828201915082860187848660051b8901011115610fed578586fd5b855b858110156110125761100082610f8d565b84529284019290840190600101610fef565b5090979650505050505050565b600082601f83011261102f578081fd5b8135602061103f610fc9836113a5565b80838252828201915082860187848660051b890101111561105e578586fd5b855b8581101561101257813567ffffffffffffffff81111561107e578788fd5b61108c8a87838c010161109f565b8552509284019290840190600101611060565b600082601f8301126110af578081fd5b813560206110bf610fc9836113a5565b80838252828201915082860187848660051b89010111156110de578586fd5b855b85811015611012578135845292840192908401906001016110e0565b60006020828403121561110d578081fd5b610f8682610f8d565b600080600080600080600060e0888a031215611130578283fd5b873567ffffffffffffffff80821115611147578485fd5b6111538b838c0161109f565b985060208a0135915080821115611168578485fd5b6111748b838c0161109f565b975060408a0135915080821115611189578485fd5b6111958b838c0161109f565b965060608a01359150808211156111aa578485fd5b6111b68b838c01610fa9565b955060808a01359150808211156111cb578485fd5b6111d78b838c0161109f565b945060a08a01359150808211156111ec578384fd5b6111f88b838c0161109f565b935060c08a013591508082111561120d578283fd5b5061121a8a828b0161101f565b91505092959891949750929550565b60006020828403121561123a578081fd5b81518015158114610f86578182fd5b60006020828403121561125a578081fd5b5035919050565b600060208284031215611272578081fd5b5051919050565b600080600080600080600060e0888a031215611293578283fd5b87359650602088013595506112aa60408901610f8d565b9450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b61121a8a828b0161109f565b600080600080600080600060e0888a031215611300578081fd5b87359650602088013595506040880135945061131e60608901610f8d565b93506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561139d5761139d611448565b604052919050565b600067ffffffffffffffff8211156113bf576113bf611448565b5060051b60200190565b600082198211156113dc576113dc611432565b500190565b60008160001904831182151516156113fb576113fb611432565b500290565b60008282101561141257611412611432565b500390565b600060001982141561142b5761142b611432565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122031125a6145b90410e213c06598eb2f498d44eeea71ac27d102f80dd5bb8578df64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C975ABB GT PUSH2 0xAD JUMPI DUP1 PUSH4 0x94CC3676 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x94CC3676 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xC4AE3168 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0xE01A8B9F EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xFFC7D718 EQ PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x6F03EC94 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x7302D43C EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C2D392A GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x4C2D392A EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x56946BBD EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x58554B46 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x590E1AE3 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x59BC0352 EQ PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBFE6F5F EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x2BA97DFD EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0x3A50433D EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0x1B8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x154 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17C PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x187 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x160 JUMP JUMPDEST PUSH2 0x154 PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x1CB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1347 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x1E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1249 JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1116 JUMP JUMPDEST PUSH2 0x33E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x10FC JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x487 JUMP JUMPDEST PUSH2 0x187 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x154 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x1CB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x694 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x263 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E6 JUMP JUMPDEST PUSH2 0x6A8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CB JUMP JUMPDEST PUSH2 0x17C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x10FC JUMP JUMPDEST PUSH2 0x6C5 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x6F6 JUMP JUMPDEST PUSH2 0x154 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1279 JUMP JUMPDEST PUSH2 0x71B JUMP JUMPDEST PUSH2 0x17C PUSH2 0x2B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x10FC JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x1CB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D5 PUSH2 0x805 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2FD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xFD84E80076CFE22EAA00AF386D8F2E89C0086871F1057DCF303E0E97357D3F85 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP8 MLOAD DUP2 LT ISZERO PUSH2 0x47D JUMPI PUSH2 0x46A DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x36D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x395 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x40D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x435 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x45D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x85F JUMP JUMPDEST POP DUP1 PUSH2 0x475 DUP2 PUSH2 0x1417 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x341 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x48F PUSH2 0x805 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA9059CBB SWAP2 CALLER SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH2 0x4C8 SWAP2 ADDRESS SWAP2 ADD PUSH2 0x1347 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x518 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x54F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x563 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x587 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x5C2 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1347 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x612 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62F SWAP3 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x681 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x69C PUSH2 0x805 JUMP JUMPDEST PUSH2 0x6A6 PUSH1 0x0 PUSH2 0xD75 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x85F JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6CD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x6FE PUSH2 0x805 JUMP JUMPDEST PUSH2 0x706 PUSH2 0x684 JUMP JUMPDEST ISZERO PUSH2 0x713 JUMPI PUSH2 0x6A6 PUSH2 0xDC5 JUMP JUMPDEST PUSH2 0x6A6 PUSH2 0xE14 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x77D DUP4 PUSH1 0x2 SLOAD DUP4 PUSH2 0xE57 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x792 PUSH2 0x805 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x681 DUP2 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x8B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH2 0x8C1 PUSH2 0xE6D JUMP JUMPDEST PUSH2 0x8CF PUSH3 0x93A80 PUSH1 0x2 PUSH2 0x13E1 JUMP JUMPDEST PUSH2 0x8D9 SWAP1 TIMESTAMP PUSH2 0x13C9 JUMP JUMPDEST DUP8 LT ISZERO PUSH2 0x91B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x195B990819185D1948195E1C1A5C9959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST DUP6 PUSH2 0x957 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x746F6B656E4964206973203 PUSH1 0xA4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x9B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x1D1BDAD95B925908185B1C9958591E481B5A59DC985D1959 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x1D1BDAD95B92590818985B9B9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x1BDDDB995C8818985B9B9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA6A DUP10 DUP10 DUP9 DUP11 DUP10 DUP10 DUP10 PUSH2 0x71B JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x4D69677261746F723A20696E76616C6964206C6F636B PUSH1 0x50 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABE TIMESTAMP DUP11 PUSH2 0x1400 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8DF4B13B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH4 0x8DF4B13B SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB51 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0xBA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D69677261746F723A206D6967726174696F6E206661696C6564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP7 ISZERO PUSH2 0xC47 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA9059CBB SWAP2 PUSH2 0xBF3 SWAP2 DUP13 SWAP2 DUP13 SWAP2 ADD PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC45 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMPDEST DUP6 ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0xC7F SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCD1 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMPDEST PUSH1 0x3 SLOAD ISZERO PUSH2 0xD63 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH2 0xD0F SWAP3 CALLER SWAP3 SWAP1 SWAP2 ADD PUSH2 0x135B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD61 SWAP2 SWAP1 PUSH2 0x1229 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 DUP1 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xDCD PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0A SWAP2 SWAP1 PUSH2 0x1347 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0xE1C PUSH2 0xE6D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xDFD CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE64 DUP6 DUP5 PUSH2 0xF00 JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xE75 PUSH2 0x684 JUMP JUMPDEST ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH2 0xEBD PUSH2 0x684 JUMP JUMPDEST PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xF53 JUMPI PUSH2 0xF3F DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xF32 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xF5B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0xF4B DUP2 PUSH2 0x1417 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF05 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0xF77 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF86 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFB9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xFCE PUSH2 0xFC9 DUP4 PUSH2 0x13A5 JUMP JUMPDEST PUSH2 0x1374 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xFED JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1000 DUP3 PUSH2 0xF8D JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xFEF JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x102F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x103F PUSH2 0xFC9 DUP4 PUSH2 0x13A5 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x105E JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1012 JUMPI DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x107E JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x108C DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x109F JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1060 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x10AF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x10BF PUSH2 0xFC9 DUP4 PUSH2 0x13A5 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x10DE JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1012 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x10E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x110D JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xF86 DUP3 PUSH2 0xF8D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1130 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1147 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1153 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1168 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1174 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1189 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1195 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x11AA JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x11B6 DUP12 DUP4 DUP13 ADD PUSH2 0xFA9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x11CB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x11D7 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x11EC JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x11F8 DUP12 DUP4 DUP13 ADD PUSH2 0x109F JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x120D JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x121A DUP11 DUP3 DUP12 ADD PUSH2 0x101F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x123A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xF86 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x125A JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1272 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1293 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH2 0x12AA PUSH1 0x40 DUP10 ADD PUSH2 0xF8D JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12DA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x121A DUP11 DUP3 DUP12 ADD PUSH2 0x109F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1300 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH2 0x131E PUSH1 0x60 DUP10 ADD PUSH2 0xF8D JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12DA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x139D JUMPI PUSH2 0x139D PUSH2 0x1448 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x13BF JUMPI PUSH2 0x13BF PUSH2 0x1448 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x13DC JUMPI PUSH2 0x13DC PUSH2 0x1432 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x13FB JUMPI PUSH2 0x13FB PUSH2 0x1432 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1412 JUMPI PUSH2 0x1412 PUSH2 0x1432 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x142B JUMPI PUSH2 0x142B PUSH2 0x1432 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SLT GAS PUSH2 0x45B9 DIV LT 0xE2 SGT 0xC0 PUSH6 0x98EB2F498D44 0xEE 0xEA PUSH18 0xAC27D102F80DD5BB8578DF64736F6C634300 ADDMOD DIV STOP CALLER ","sourceMap":"572:4573:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;922:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8156:14:139;;8149:22;8131:41;;8119:2;8104:18;922:47:66;;;;;;;;4794:111;;;;;;:::i;:::-;;:::i;:::-;;653:25;;;;;;;;;8329::139;;;8317:2;8302:18;653:25:66;8284:76:139;867:49:66;;;;;;:::i;:::-;;;;;;;;;;;;;;;;733:18;;;;;-1:-1:-1;;;;;733:18:66;;;;;;;;;;:::i;1289:175::-;;;;;;:::i;:::-;;:::i;3390:638::-;;;;;;:::i;:::-;;:::i;975:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4606:182;;;:::i;684:42::-;;;;;;1615:84:21;;;:::i;757:21:66:-;;;;;-1:-1:-1;;;;;757:21:66;;;1831:101:4;;;:::i;2884:500:66:-;;;;;;:::i;:::-;;:::i;1201:85:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;5023:120:66;;;;;;:::i;:::-;;:::i;4911:106::-;;;:::i;4034:566::-;;;;;;:::i;:::-;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;784:29:66:-;;;;;-1:-1:-1;;;;;784:29:66;;;4794:111;1094:13:4;:11;:13::i;:::-;4879:19:66::1;::::0;;;:15:::1;:19;::::0;;;;;;-1:-1:-1;;4856:42:66;::::1;4879:19;::::0;;::::1;4878:20;4856:42;::::0;;4794:111::o;1289:175::-;1094:13:4;:11;:13::i;:::-;1399:15:66::1;::::0;1376:47:::1;::::0;;13423:25:139;;;13479:2;13464:18;;13457:34;;;1376:47:66::1;::::0;13396:18:139;1376:47:66::1;;;;;;;1433:15;:24:::0;1289:175::o;3390:638::-;3689:13;3684:338;3716:6;:13;3708:5;:21;3684:338;;;3754:257;3784:6;3791:5;3784:13;;;;;;-1:-1:-1;;;3784:13:66;;;;;;;;;;;;;;;3815:8;3824:5;3815:15;;;;;;-1:-1:-1;;;3815:15:66;;;;;;;;;;;;;;;3848:8;3857:5;3848:15;;;;;;-1:-1:-1;;;3848:15:66;;;;;;;;;;;;;;;3881:4;3886:5;3881:11;;;;;;-1:-1:-1;;;3881:11:66;;;;;;;;;;;;;;;3910;3922:5;3910:18;;;;;;-1:-1:-1;;;3910:18:66;;;;;;;;;;;;;;;3946:14;3961:5;3946:21;;;;;;-1:-1:-1;;;3946:21:66;;;;;;;;;;;;;;;3985:5;3991;3985:12;;;;;;-1:-1:-1;;;3985:12:66;;;;;;;;;;;;;;;3754;:257::i;:::-;-1:-1:-1;3731:7:66;;;;:::i;:::-;;;;3684:338;;;;3390:638;;;;;;;:::o;4606:182::-;1094:13:4;:11;:13::i;:::-;4653:4:66::1;::::0;;4679:29:::1;::::0;-1:-1:-1;;;4679:29:66;;-1:-1:-1;;;;;4653:4:66;;::::1;::::0;:13:::1;::::0;4667:10:::1;::::0;4653:4;;4679:14:::1;::::0;:29:::1;::::0;4702:4:::1;::::0;4679:29:::1;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4653:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;4719:7:66::1;::::0;4748:32:::1;::::0;-1:-1:-1;;;4748:32:66;;-1:-1:-1;;;;;4719:7:66;;::::1;::::0;:16:::1;::::0;4736:10:::1;::::0;4719:7;;4748:17:::1;::::0;:32:::1;::::0;4774:4:::1;::::0;4748:32:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4719:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4606:182::o:0;1615:84:21:-;1662:4;1685:7;-1:-1:-1;;;1685:7:21;;;;;1615:84::o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2884:500:66:-;3130:7;3168:209;3198:6;3222:8;3248;3274:4;3296:11;3325:14;3357:6;3168:12;:209::i;:::-;3149:228;2884:500;-1:-1:-1;;;;;;;;2884:500:66:o;5023:120::-;1094:13:4;:11;:13::i;:::-;-1:-1:-1;;;;;5115:21:66::1;;::::0;;;:15:::1;:21;::::0;;;;;;-1:-1:-1;;5090:46:66;::::1;5115:21;::::0;;::::1;5114:22;5090:46;::::0;;5023:120::o;4911:106::-;1094:13:4;:11;:13::i;:::-;4967:8:66::1;:6;:8::i;:::-;4963:47;;;4977:10;:8;:10::i;4963:47::-;5002:8;:6;:8::i;4034:566::-:0;4338:185;;;;;;14139:25:139;;;14180:18;;;14173:34;;;-1:-1:-1;;;;;14243:32:139;;14223:18;;;14216:60;14292:18;;;14285:34;;;14335:19;;;14328:35;;;14379:19;;;14372:35;;;4284:4:66;;;;14111:19:139;;4338:185:66;;;;;;;;;;;;4315:218;;;;;;4300:233;;4550:43;4569:5;4576:10;;4588:4;4550:18;:43::i;:::-;4543:50;4034:566;-1:-1:-1;;;;;;;;;4034:566:66:o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;10063:2:139;2161:73:4::1;::::0;::::1;10045:21:139::0;10102:2;10082:18;;;10075:30;10141:34;10121:18;;;10114:62;-1:-1:-1;;;10192:18:139;;;10185:36;10238:19;;2161:73:4::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;11503:2:139;1414:68:4;;;11485:21:139;;;11522:18;;;11515:30;11581:34;11561:18;;;11554:62;11633:18;;1414:68:4;11475:182:139;1470:1408:66;1734:7;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;12568:2:139;2317:63:22;;;12550:21:139;12607:2;12587:18;;;12580:30;12646:33;12626:18;;;12619:61;12697:18;;2317:63:22;12540:181:139;2317:63:22;1744:1;2455:7;:18;1239:19:21::1;:17;:19::i;:::-;1792:8:66::2;853:7;1792:1;:8;:::i;:::-;1774:26;::::0;:15:::2;:26;:::i;:::-;1761:8;:40;;1753:69;;;::::0;-1:-1:-1;;;1753:69:66;;10470:2:139;1753:69:66::2;::::0;::::2;10452:21:139::0;10509:2;10489:18;;;10482:30;-1:-1:-1;;;10528:18:139;;;10521:46;10584:18;;1753:69:66::2;10442:166:139::0;1753:69:66::2;1840:13:::0;1832:38:::2;;;::::0;-1:-1:-1;;;1832:38:66;;9373:2:139;1832:38:66::2;::::0;::::2;9355:21:139::0;9412:2;9392:18;;;9385:30;-1:-1:-1;;;9431:18:139;;;9424:42;9483:18;;1832:38:66::2;9345:162:139::0;1832:38:66::2;1889:27;::::0;;;:17:::2;:27;::::0;;;;;::::2;;1888:28;1880:65;;;::::0;-1:-1:-1;;;1880:65:66;;12215:2:139;1880:65:66::2;::::0;::::2;12197:21:139::0;12254:2;12234:18;;;12227:30;-1:-1:-1;;;12273:18:139;;;12266:54;12337:18;;1880:65:66::2;12187:174:139::0;1880:65:66::2;1964:25;::::0;;;:15:::2;:25;::::0;;;;;::::2;;1963:26;1955:53;;;::::0;-1:-1:-1;;;1955:53:66;;10815:2:139;1955:53:66::2;::::0;::::2;10797:21:139::0;10854:2;10834:18;;;10827:30;-1:-1:-1;;;10873:18:139;;;10866:44;10927:18;;1955:53:66::2;10787:164:139::0;1955:53:66::2;-1:-1:-1::0;;;;;2027:21:66;::::2;;::::0;;;:15:::2;:21;::::0;;;;;::::2;;2026:22;2018:47;;;::::0;-1:-1:-1;;;2018:47:66;;12928:2:139;2018:47:66::2;::::0;::::2;12910:21:139::0;12967:2;12947:18;;;12940:30;-1:-1:-1;;;12986:18:139;;;12979:42;13038:18;;2018:47:66::2;12900:162:139::0;2018:47:66::2;2076:17;2096:175;2121:6;2141:8;2163:4;2181:8;2203:11;2228:14;2256:5;2096:11;:175::i;:::-;2076:195;;2289:12;2281:47;;;::::0;-1:-1:-1;;;2281:47:66;;11864:2:139;2281:47:66::2;::::0;::::2;11846:21:139::0;11903:2;11883:18;;;11876:30;-1:-1:-1;;;11922:18:139;;;11915:52;11984:18;;2281:47:66::2;11836:172:139::0;2281:47:66::2;2339:21;2363:26;2374:15;2363:8:::0;:26:::2;:::i;:::-;2420:11;::::0;:102:::2;::::0;-1:-1:-1;;;2420:102:66;;::::2;::::0;::::2;13704:25:139::0;;;13745:18;;;13738:34;;;-1:-1:-1;;;;;13808:32:139;;;13788:18;;;13781:60;2339:50:66;;-1:-1:-1;2399:18:66::2;::::0;2420:11;;::::2;::::0;:27:::2;::::0;13677:18:139;;2420:102:66::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2399:123;;2553:1;2540:10;:14;2532:53;;;::::0;-1:-1:-1;;;2532:53:66;;9018:2:139;2532:53:66::2;::::0;::::2;9000:21:139::0;9057:2;9037:18;;;9030:30;9096:28;9076:18;;;9069:56;9142:18;;2532:53:66::2;8990:176:139::0;2532:53:66::2;2596:27;::::0;;;:17:::2;:27;::::0;;;;:34;;-1:-1:-1;;2596:34:66::2;2626:4;2596:34;::::0;;2645:15;;2641:53:::2;;2662:4;::::0;;:32:::2;::::0;-1:-1:-1;;;2662:32:66;;-1:-1:-1;;;;;2662:4:66;;::::2;::::0;:13:::2;::::0;:32:::2;::::0;2676:4;;2682:11;;2662:32:::2;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2641:53;2708:18:::0;;2704:62:::2;;2728:7;::::0;:38:::2;::::0;-1:-1:-1;;;2728:38:66;;-1:-1:-1;;;;;2728:7:66;;::::2;::::0;:16:::2;::::0;:38:::2;::::0;2745:4;;2751:14;;2728:38:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2704:62;2780:15;::::0;:19;2776:67:::2;;2801:4;::::0;;2827:15:::2;::::0;2801:42:::2;::::0;-1:-1:-1;;;2801:42:66;;-1:-1:-1;;;;;2801:4:66;;::::2;::::0;:13:::2;::::0;:42:::2;::::0;2815:10:::2;::::0;2827:15;;2801:42:::2;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2776:67;1701:1:22::0;2628:22;;2861:10:66;1470:1408;-1:-1:-1;;;;;;;;;;1470:1408:66:o;2433:187:4:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;:117:21:-;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;-1:-1:-1;;;;2491:15:21::1;::::0;;2521:22:::1;719:10:38::0;2530:12:21::1;2521:22;;;;;;:::i;:::-;;;;;;;;2433:117::o:0;2186:115::-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;;;2245:14:21::1;-1:-1:-1::0;;;2245:14:21::1;::::0;;2274:20:::1;2281:12;719:10:38::0;;640:96;1153:184:43;1274:4;1326;1297:25;1310:5;1317:4;1297:12;:25::i;:::-;:33;;1153:184;-1:-1:-1;;;;1153:184:43:o;1767:106:21:-;1837:8;:6;:8::i;:::-;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:21;;11158:2:139;1828:38:21;;;11140:21:139;11197:2;11177:18;;;11170:30;-1:-1:-1;;;11216:18:139;;;11209:46;11272:18;;1828:38:21;11130:166:139;1945:106:21;2011:8;:6;:8::i;:::-;2003:41;;;;-1:-1:-1;;;2003:41:21;;9714:2:139;2003:41:21;;;9696:21:139;9753:2;9733:18;;;9726:30;-1:-1:-1;;;9772:18:139;;;9765:50;9832:18;;2003:41:21;9686:170:139;1991:290:43;2074:7;2116:4;2074:7;2130:116;2154:5;:12;2150:1;:16;2130:116;;;2202:33;2212:12;2226:5;2232:1;2226:8;;;;;;-1:-1:-1;;;2226:8:43;;;;;;;;;;;;;;;2202:9;:33::i;:::-;2187:48;-1:-1:-1;2168:3:43;;;;:::i;:::-;;;;2130:116;;;-1:-1:-1;2262:12:43;1991:290;-1:-1:-1;;;1991:290:43:o;8054:147::-;8117:7;8147:1;8143;:5;:51;;8275:13;8366:15;;;8401:4;8394:15;;;8447:4;8431:21;;8143:51;;;8275:13;8366:15;;;8401:4;8394:15;;;8447:4;8431:21;;8151:20;8136:58;8054:147;-1:-1:-1;;;8054:147:43:o;14:173:139:-;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:699::-;246:5;299:3;292:4;284:6;280:17;276:27;266:2;;321:5;314;307:20;266:2;361:6;348:20;387:4;411:60;427:43;467:2;427:43;:::i;:::-;411:60;:::i;:::-;493:3;517:2;512:3;505:15;545:2;540:3;536:12;529:19;;580:2;572:6;568:15;632:3;627:2;621;618:1;614:10;606:6;602:23;598:32;595:41;592:2;;;653:5;646;639:20;592:2;679:5;693:169;707:2;704:1;701:9;693:169;;;764:23;783:3;764:23;:::i;:::-;752:36;;808:12;;;;840;;;;725:1;718:9;693:169;;;-1:-1:-1;880:5:139;;256:635;-1:-1:-1;;;;;;;256:635:139:o;896:879::-;960:5;1013:3;1006:4;998:6;994:17;990:27;980:2;;1035:5;1028;1021:20;980:2;1075:6;1062:20;1101:4;1125:60;1141:43;1181:2;1141:43;:::i;1125:60::-;1207:3;1231:2;1226:3;1219:15;1259:2;1254:3;1250:12;1243:19;;1294:2;1286:6;1282:15;1346:3;1341:2;1335;1332:1;1328:10;1320:6;1316:23;1312:32;1309:41;1306:2;;;1367:5;1360;1353:20;1306:2;1393:5;1407:339;1421:2;1418:1;1415:9;1407:339;;;1498:3;1485:17;1534:18;1521:11;1518:35;1515:2;;;1570:5;1563;1556:20;1515:2;1603:68;1667:3;1662:2;1648:11;1640:6;1636:24;1632:33;1603:68;:::i;:::-;1591:81;;-1:-1:-1;1692:12:139;;;;1724;;;;1439:1;1432:9;1407:339;;1780:693;1834:5;1887:3;1880:4;1872:6;1868:17;1864:27;1854:2;;1909:5;1902;1895:20;1854:2;1949:6;1936:20;1975:4;1999:60;2015:43;2055:2;2015:43;:::i;1999:60::-;2081:3;2105:2;2100:3;2093:15;2133:2;2128:3;2124:12;2117:19;;2168:2;2160:6;2156:15;2220:3;2215:2;2209;2206:1;2202:10;2194:6;2190:23;2186:32;2183:41;2180:2;;;2241:5;2234;2227:20;2180:2;2267:5;2281:163;2295:2;2292:1;2289:9;2281:163;;;2352:17;;2340:30;;2390:12;;;;2422;;;;2313:1;2306:9;2281:163;;3176:196;3235:6;3288:2;3276:9;3267:7;3263:23;3259:32;3256:2;;;3309:6;3301;3294:22;3256:2;3337:29;3356:9;3337:29;:::i;3377:1844::-;3690:6;3698;3706;3714;3722;3730;3738;3791:3;3779:9;3770:7;3766:23;3762:33;3759:2;;;3813:6;3805;3798:22;3759:2;3858:9;3845:23;3887:18;3928:2;3920:6;3917:14;3914:2;;;3949:6;3941;3934:22;3914:2;3977:61;4030:7;4021:6;4010:9;4006:22;3977:61;:::i;:::-;3967:71;;4091:2;4080:9;4076:18;4063:32;4047:48;;4120:2;4110:8;4107:16;4104:2;;;4141:6;4133;4126:22;4104:2;4169:63;4224:7;4213:8;4202:9;4198:24;4169:63;:::i;:::-;4159:73;;4285:2;4274:9;4270:18;4257:32;4241:48;;4314:2;4304:8;4301:16;4298:2;;;4335:6;4327;4320:22;4298:2;4363:63;4418:7;4407:8;4396:9;4392:24;4363:63;:::i;:::-;4353:73;;4479:2;4468:9;4464:18;4451:32;4435:48;;4508:2;4498:8;4495:16;4492:2;;;4529:6;4521;4514:22;4492:2;4557:63;4612:7;4601:8;4590:9;4586:24;4557:63;:::i;:::-;4547:73;;4673:3;4662:9;4658:19;4645:33;4629:49;;4703:2;4693:8;4690:16;4687:2;;;4724:6;4716;4709:22;4687:2;4752:63;4807:7;4796:8;4785:9;4781:24;4752:63;:::i;:::-;4742:73;;4868:3;4857:9;4853:19;4840:33;4824:49;;4898:2;4888:8;4885:16;4882:2;;;4919:6;4911;4904:22;4882:2;4947:63;5002:7;4991:8;4980:9;4976:24;4947:63;:::i;:::-;4937:73;;5063:3;5052:9;5048:19;5035:33;5019:49;;5093:2;5083:8;5080:16;5077:2;;;5114:6;5106;5099:22;5077:2;;5142:73;5207:7;5196:8;5185:9;5181:24;5142:73;:::i;:::-;5132:83;;;3749:1472;;;;;;;;;;:::o;5226:297::-;5293:6;5346:2;5334:9;5325:7;5321:23;5317:32;5314:2;;;5367:6;5359;5352:22;5314:2;5404:9;5398:16;5457:5;5450:13;5443:21;5436:5;5433:32;5423:2;;5484:6;5476;5469:22;5528:190;5587:6;5640:2;5628:9;5619:7;5615:23;5611:32;5608:2;;;5661:6;5653;5646:22;5608:2;-1:-1:-1;5689:23:139;;5598:120;-1:-1:-1;5598:120:139:o;5723:194::-;5793:6;5846:2;5834:9;5825:7;5821:23;5817:32;5814:2;;;5867:6;5859;5852:22;5814:2;-1:-1:-1;5895:16:139;;5804:113;-1:-1:-1;5804:113:139:o;5922:786::-;6060:6;6068;6076;6084;6092;6100;6108;6161:3;6149:9;6140:7;6136:23;6132:33;6129:2;;;6183:6;6175;6168:22;6129:2;6224:9;6211:23;6201:33;;6281:2;6270:9;6266:18;6253:32;6243:42;;6304:38;6338:2;6327:9;6323:18;6304:38;:::i;:::-;6294:48;;6389:2;6378:9;6374:18;6361:32;6351:42;;6440:3;6429:9;6425:19;6412:33;6402:43;;6492:3;6481:9;6477:19;6464:33;6454:43;;6548:3;6537:9;6533:19;6520:33;6576:18;6568:6;6565:30;6562:2;;;6613:6;6605;6598:22;6562:2;6641:61;6694:7;6685:6;6674:9;6670:22;6641:61;:::i;6713:786::-;6851:6;6859;6867;6875;6883;6891;6899;6952:3;6940:9;6931:7;6927:23;6923:33;6920:2;;;6974:6;6966;6959:22;6920:2;7015:9;7002:23;6992:33;;7072:2;7061:9;7057:18;7044:32;7034:42;;7123:2;7112:9;7108:18;7095:32;7085:42;;7146:38;7180:2;7169:9;7165:18;7146:38;:::i;:::-;7136:48;;7231:3;7220:9;7216:19;7203:33;7193:43;;7283:3;7272:9;7268:19;7255:33;7245:43;;7339:3;7328:9;7324:19;7311:33;7367:18;7359:6;7356:30;7353:2;;;7404:6;7396;7389:22;7504:203;-1:-1:-1;;;;;7668:32:139;;;;7650:51;;7638:2;7623:18;;7605:102::o;7712:274::-;-1:-1:-1;;;;;7904:32:139;;;;7886:51;;7968:2;7953:18;;7946:34;7874:2;7859:18;;7841:145::o;14418:275::-;14489:2;14483:9;14554:2;14535:13;;-1:-1:-1;;14531:27:139;14519:40;;14589:18;14574:34;;14610:22;;;14571:62;14568:2;;;14636:18;;:::i;:::-;14672:2;14665:22;14463:230;;-1:-1:-1;14463:230:139:o;14698:183::-;14758:4;14791:18;14783:6;14780:30;14777:2;;;14813:18;;:::i;:::-;-1:-1:-1;14858:1:139;14854:14;14870:4;14850:25;;14767:114::o;14886:128::-;14926:3;14957:1;14953:6;14950:1;14947:13;14944:2;;;14963:18;;:::i;:::-;-1:-1:-1;14999:9:139;;14934:80::o;15019:168::-;15059:7;15125:1;15121;15117:6;15113:14;15110:1;15107:21;15102:1;15095:9;15088:17;15084:45;15081:2;;;15132:18;;:::i;:::-;-1:-1:-1;15172:9:139;;15071:116::o;15192:125::-;15232:4;15260:1;15257;15254:8;15251:2;;;15265:18;;:::i;:::-;-1:-1:-1;15302:9:139;;15241:76::o;15322:135::-;15361:3;-1:-1:-1;;15382:17:139;;15379:2;;;15402:18;;:::i;:::-;-1:-1:-1;15449:1:139;15438:13;;15369:88::o;15462:127::-;15523:10;15518:3;15514:20;15511:1;15504:31;15554:4;15551:1;15544:15;15578:4;15575:1;15568:15;15594:127;15655:10;15650:3;15646:20;15643:1;15636:31;15686:4;15683:1;15676:15;15710:4;15707:1;15700:15"},"methodIdentifiers":{"isAddressBanned(address)":"58554b46","isLockValid(uint256,uint256,address,uint256,uint256,uint256,bytes32[])":"e01a8b9f","isTokenIdBanned(uint256)":"0bfe6f5f","isTokenIdMigrated(uint256)":"3a50433d","maha()":"3de00c36","mahaxLocker()":"ffc7d718","merkleRoot()":"2eb4a7ab","migrateLock(uint256,uint256,uint256,address,uint256,uint256,bytes32[])":"7302d43c","migrateLocks(uint256[],uint256[],uint256[],address[],uint256[],uint256[],bytes32[][])":"56946bbd","migrationReward()":"59bc0352","owner()":"8da5cb5b","paused()":"5c975abb","refund()":"590e1ae3","renounceOwnership()":"715018a6","scallop()":"6f03ec94","setMigrationReward(uint256)":"4c2d392a","toggleBanID(uint256)":"2ba97dfd","toggleBanOwner(address)":"94cc3676","togglePause()":"c4ae3168","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_maha\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_scallop\",\"type\":\"address\"},{\"internalType\":\"contract INFTLocker\",\"name\":\"_mahaxLocker\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReward\",\"type\":\"uint256\"}],\"name\":\"MigrationRewardChanged\",\"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\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferMigrationReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAddressBanned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_endDate\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_mahaReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scallopReward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"isLockValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isTokenIdBanned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isTokenIdMigrated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maha\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mahaxLocker\",\"outputs\":[{\"internalType\":\"contract INFTLocker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_endDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_mahaReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scallopReward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"_proof\",\"type\":\"bytes32[]\"}],\"name\":\"migrateLock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_value\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_endDate\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_tokenId\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_who\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_mahaReward\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_scallopReward\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"proof\",\"type\":\"bytes32[][]\"}],\"name\":\"migrateLocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"migrationReward\",\"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\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scallop\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"setMigrationReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"toggleBanID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"}],\"name\":\"toggleBanOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"togglePause\",\"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.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"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\":{\"contracts/LockMigrator.sol\":\"LockMigrator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x596ed72a251d391b814a4aa19d7acb02ebdcc92ba27d3fff74a6f0c158b12ab7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5f49013d50b1011c842f76e96f3c3f146ca7cb15084c8805575e0e0e1a5c700\",\"dweb:/ipfs/QmQ3n5qiuioUA74heD6ZddNkYg1kYihjQBNcy9zgwYXKgM\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/LockMigrator.sol\":{\"keccak256\":\"0x7fe537126d769fc3bbc2d74716e71bdc473586f3680a12c90f4bff78089c4462\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58bd00aee27157b443861f9301684a72e898c530948a9ac9178c129122759fca\",\"dweb:/ipfs/QmTqhKt4mVxV1i97rt6XCttwysbegq8kUdYYSEcFGQCVv2\"]},\"contracts/interfaces/ILockMigrator.sol\":{\"keccak256\":\"0x75aeaa62386f95ca64daf05f4cc0c6fc4802d28fc0b7b6d0c2b57a08fd825861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf740359ba274e9c8a7d3c78394266f51441d4b3ebd87ab21e00f1083fa9cdb7\",\"dweb:/ipfs/QmfEiJG2gmCo5PLE94C75ZiBKhGiuvyiW9Z2PX9dz7e7jU\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/MAHATimelockController.sol":{"MAHATimelockController":{"abi":[{"inputs":[{"internalType":"uint256","name":"minDelay","type":"uint256"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"address[]","name":"proposers","type":"address[]"},{"internalType":"address[]","name":"cancellors","type":"address[]"},{"internalType":"address[]","name":"executors","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"CallExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"delay","type":"uint256"}],"name":"CallScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"Cancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"MinDelayChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"CANCELLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXECUTOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"executeBatch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getMinDelay","outputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"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":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperation","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperationBatch","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperation","outputs":[{"internalType":"bool","name":"registered","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationDone","outputs":[{"internalType":"bool","name":"done","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationPending","outputs":[{"internalType":"bool","name":"pending","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationReady","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"scheduleBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"updateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2823:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"271:879:139","statements":[{"body":{"nodeType":"YulBlock","src":"320:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"329:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"336:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"322:6:139"},"nodeType":"YulFunctionCall","src":"322:20:139"},"nodeType":"YulExpressionStatement","src":"322:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"299:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"307:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"295:3:139"},"nodeType":"YulFunctionCall","src":"295:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"314:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"291:3:139"},"nodeType":"YulFunctionCall","src":"291:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"284:6:139"},"nodeType":"YulFunctionCall","src":"284:35:139"},"nodeType":"YulIf","src":"281:2:139"},{"nodeType":"YulVariableDeclaration","src":"353:23:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"369:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"363:5:139"},"nodeType":"YulFunctionCall","src":"363:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"357:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"385:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"395:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"389:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"408:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"426:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"430:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"422:3:139"},"nodeType":"YulFunctionCall","src":"422:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"434:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"418:3:139"},"nodeType":"YulFunctionCall","src":"418:18:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"412:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"459:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"461:16:139"},"nodeType":"YulFunctionCall","src":"461:18:139"},"nodeType":"YulExpressionStatement","src":"461:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"451:2:139"},{"name":"_3","nodeType":"YulIdentifier","src":"455:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"448:2:139"},"nodeType":"YulFunctionCall","src":"448:10:139"},"nodeType":"YulIf","src":"445:2:139"},{"nodeType":"YulVariableDeclaration","src":"490:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"504:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"507:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"500:3:139"},"nodeType":"YulFunctionCall","src":"500:10:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"494:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"519:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"539:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"533:5:139"},"nodeType":"YulFunctionCall","src":"533:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"523:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"551:56:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"573:6:139"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"589:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"593:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"585:3:139"},"nodeType":"YulFunctionCall","src":"585:11:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"602:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"598:3:139"},"nodeType":"YulFunctionCall","src":"598:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"581:3:139"},"nodeType":"YulFunctionCall","src":"581:25:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:139"},"nodeType":"YulFunctionCall","src":"569:38:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"555:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"666:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"668:16:139"},"nodeType":"YulFunctionCall","src":"668:18:139"},"nodeType":"YulExpressionStatement","src":"668:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"625:10:139"},{"name":"_3","nodeType":"YulIdentifier","src":"637:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"622:2:139"},"nodeType":"YulFunctionCall","src":"622:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"645:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"657:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"642:2:139"},"nodeType":"YulFunctionCall","src":"642:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"619:2:139"},"nodeType":"YulFunctionCall","src":"619:46:139"},"nodeType":"YulIf","src":"616:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"704:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"708:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"697:6:139"},"nodeType":"YulFunctionCall","src":"697:22:139"},"nodeType":"YulExpressionStatement","src":"697:22:139"},{"nodeType":"YulVariableDeclaration","src":"728:17:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"739:6:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"732:3:139","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"761:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"769:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"754:6:139"},"nodeType":"YulFunctionCall","src":"754:18:139"},"nodeType":"YulExpressionStatement","src":"754:18:139"},{"nodeType":"YulAssignment","src":"781:22:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"792:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"800:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"788:3:139"},"nodeType":"YulFunctionCall","src":"788:15:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"781:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"812:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"827:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"835:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"823:3:139"},"nodeType":"YulFunctionCall","src":"823:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"816:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"884:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"893:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"900:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"886:6:139"},"nodeType":"YulFunctionCall","src":"886:20:139"},"nodeType":"YulExpressionStatement","src":"886:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"861:6:139"},{"name":"_4","nodeType":"YulIdentifier","src":"869:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"857:3:139"},"nodeType":"YulFunctionCall","src":"857:15:139"},{"name":"_2","nodeType":"YulIdentifier","src":"874:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"853:3:139"},"nodeType":"YulFunctionCall","src":"853:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"879:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"850:2:139"},"nodeType":"YulFunctionCall","src":"850:33:139"},"nodeType":"YulIf","src":"847:2:139"},{"nodeType":"YulVariableDeclaration","src":"917:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"926:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"921:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"985:135:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1006:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1041:3:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1011:29:139"},"nodeType":"YulFunctionCall","src":"1011:34:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"999:6:139"},"nodeType":"YulFunctionCall","src":"999:47:139"},"nodeType":"YulExpressionStatement","src":"999:47:139"},{"nodeType":"YulAssignment","src":"1059:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1070:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1075:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:139"},"nodeType":"YulFunctionCall","src":"1066:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1059:3:139"}]},{"nodeType":"YulAssignment","src":"1091:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1102:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1107:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1098:3:139"},"nodeType":"YulFunctionCall","src":"1098:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1091:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"951:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"954:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"948:2:139"},"nodeType":"YulFunctionCall","src":"948:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"958:18:139","statements":[{"nodeType":"YulAssignment","src":"960:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"969:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"972:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"965:3:139"},"nodeType":"YulFunctionCall","src":"965:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"960:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"944:3:139","statements":[]},"src":"940:180:139"},{"nodeType":"YulAssignment","src":"1129:15:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1138:6:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1129:5:139"}]}]},"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"245:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"253:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"261:5:139","type":""}],"src":"196:954:139"},{"body":{"nodeType":"YulBlock","src":"1379:808:139","statements":[{"body":{"nodeType":"YulBlock","src":"1426:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1435:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"1443:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1428:6:139"},"nodeType":"YulFunctionCall","src":"1428:22:139"},"nodeType":"YulExpressionStatement","src":"1428:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1400:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1409:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1396:3:139"},"nodeType":"YulFunctionCall","src":"1396:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1421:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1392:3:139"},"nodeType":"YulFunctionCall","src":"1392:33:139"},"nodeType":"YulIf","src":"1389:2:139"},{"nodeType":"YulAssignment","src":"1461:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1477:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1471:5:139"},"nodeType":"YulFunctionCall","src":"1471:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1461:6:139"}]},{"nodeType":"YulAssignment","src":"1496:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1540:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1551:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1536:3:139"},"nodeType":"YulFunctionCall","src":"1536:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1506:29:139"},"nodeType":"YulFunctionCall","src":"1506:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1496:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1564:39:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1588:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1599:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1584:3:139"},"nodeType":"YulFunctionCall","src":"1584:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1578:5:139"},"nodeType":"YulFunctionCall","src":"1578:25:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1568:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1612:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1630:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1634:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1626:3:139"},"nodeType":"YulFunctionCall","src":"1626:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"1638:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1622:3:139"},"nodeType":"YulFunctionCall","src":"1622:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1616:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1667:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1676:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"1684:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1669:6:139"},"nodeType":"YulFunctionCall","src":"1669:22:139"},"nodeType":"YulExpressionStatement","src":"1669:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1655:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1663:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1652:2:139"},"nodeType":"YulFunctionCall","src":"1652:14:139"},"nodeType":"YulIf","src":"1649:2:139"},{"nodeType":"YulAssignment","src":"1702:82:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1756:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1767:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1752:3:139"},"nodeType":"YulFunctionCall","src":"1752:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1776:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1712:39:139"},"nodeType":"YulFunctionCall","src":"1712:72:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1702:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1793:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1819:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1830:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1815:3:139"},"nodeType":"YulFunctionCall","src":"1815:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1809:5:139"},"nodeType":"YulFunctionCall","src":"1809:25:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1797:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1863:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1872:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"1880:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1865:6:139"},"nodeType":"YulFunctionCall","src":"1865:22:139"},"nodeType":"YulExpressionStatement","src":"1865:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1849:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1859:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1846:2:139"},"nodeType":"YulFunctionCall","src":"1846:16:139"},"nodeType":"YulIf","src":"1843:2:139"},{"nodeType":"YulAssignment","src":"1898:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1952:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1963:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1948:3:139"},"nodeType":"YulFunctionCall","src":"1948:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1974:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1908:39:139"},"nodeType":"YulFunctionCall","src":"1908:74:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1898:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1991:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2017:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2028:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2013:3:139"},"nodeType":"YulFunctionCall","src":"2013:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2007:5:139"},"nodeType":"YulFunctionCall","src":"2007:26:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"1995:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2062:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2071:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2079:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2064:6:139"},"nodeType":"YulFunctionCall","src":"2064:22:139"},"nodeType":"YulExpressionStatement","src":"2064:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"2048:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2058:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2045:2:139"},"nodeType":"YulFunctionCall","src":"2045:16:139"},"nodeType":"YulIf","src":"2042:2:139"},{"nodeType":"YulAssignment","src":"2097:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2151:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"2162:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2147:3:139"},"nodeType":"YulFunctionCall","src":"2147:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2173:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"2107:39:139"},"nodeType":"YulFunctionCall","src":"2107:74:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2097:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1313:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1324:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1336:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1344:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1352:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1360:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1368:6:139","type":""}],"src":"1155:1032:139"},{"body":{"nodeType":"YulBlock","src":"2329:119:139","statements":[{"nodeType":"YulAssignment","src":"2339:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2351:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2362:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2347:3:139"},"nodeType":"YulFunctionCall","src":"2347:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2339:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2381:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2392:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2374:6:139"},"nodeType":"YulFunctionCall","src":"2374:25:139"},"nodeType":"YulExpressionStatement","src":"2374:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2419:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2430:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2415:3:139"},"nodeType":"YulFunctionCall","src":"2415:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2435:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2408:6:139"},"nodeType":"YulFunctionCall","src":"2408:34:139"},"nodeType":"YulExpressionStatement","src":"2408:34:139"}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2290:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2301:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2309:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2320:4:139","type":""}],"src":"2192:256:139"},{"body":{"nodeType":"YulBlock","src":"2500:189:139","statements":[{"body":{"nodeType":"YulBlock","src":"2539:115:139","statements":[{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"2560:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2569:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2574:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2565:3:139"},"nodeType":"YulFunctionCall","src":"2565:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2553:6:139"},"nodeType":"YulFunctionCall","src":"2553:33:139"},"nodeType":"YulExpressionStatement","src":"2553:33:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2606:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2609:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2599:6:139"},"nodeType":"YulFunctionCall","src":"2599:15:139"},"nodeType":"YulExpressionStatement","src":"2599:15:139"},{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"2634:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"2639:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2627:6:139"},"nodeType":"YulFunctionCall","src":"2627:17:139"},"nodeType":"YulExpressionStatement","src":"2627:17:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2516:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2527:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2523:3:139"},"nodeType":"YulFunctionCall","src":"2523:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2513:2:139"},"nodeType":"YulFunctionCall","src":"2513:17:139"},"nodeType":"YulIf","src":"2510:2:139"},{"nodeType":"YulAssignment","src":"2663:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2674:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"2681:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2670:3:139"},"nodeType":"YulFunctionCall","src":"2670:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"2663:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2482:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"2492:3:139","type":""}],"src":"2453:236:139"},{"body":{"nodeType":"YulBlock","src":"2726:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2743:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2750:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2755:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2746:3:139"},"nodeType":"YulFunctionCall","src":"2746:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2736:6:139"},"nodeType":"YulFunctionCall","src":"2736:31:139"},"nodeType":"YulExpressionStatement","src":"2736:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2783:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2786:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2776:6:139"},"nodeType":"YulFunctionCall","src":"2776:15:139"},"nodeType":"YulExpressionStatement","src":"2776:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2807:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2810:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2800:6:139"},"nodeType":"YulFunctionCall","src":"2800:15:139"},"nodeType":"YulExpressionStatement","src":"2800:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2694:127:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let _3 := sub(shl(64, 1), 1)\n        if gt(_1, _3) { panic_error_0x41() }\n        let _4 := shl(5, _1)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_4, 63), not(31)))\n        if or(gt(newFreePtr, _3), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, _4), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, abi_decode_address_fromMemory(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_uint256t_addresst_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        value0 := mload(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let offset := mload(add(headStart, 64))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(value4, value4) }\n        value2 := abi_decode_array_address_dyn_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value3 := abi_decode_array_address_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        let offset_2 := mload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(value4, value4) }\n        value4 := abi_decode_array_address_dyn_fromMemory(add(headStart, offset_2), dataEnd)\n    }\n    function abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0))\n        {\n            mstore(ret, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(ret, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200275638038062002756833981016040819052620000349162000515565b6200004f600080516020620026d68339815191528062000298565b62000079600080516020620026f6833981519152600080516020620026d683398151915262000298565b620000a360008051602062002716833981519152600080516020620026d683398151915262000298565b620000cd60008051602062002736833981519152600080516020620026d683398151915262000298565b620000e8600080516020620026d683398151915285620002e3565b62000103600080516020620026d683398151915230620002e3565b60005b8351811015620001a15762000159600080516020620026f68339815191528583815181106200014557634e487b7160e01b600052603260045260246000fd5b6020026020010151620002e360201b60201c565b6200018e600080516020620027368339815191528583815181106200014557634e487b7160e01b600052603260045260246000fd5b6200019981620005c0565b905062000106565b5060005b8251811015620001f757620001e4600080516020620027368339815191528483815181106200014557634e487b7160e01b600052603260045260246000fd5b620001ef81620005c0565b9050620001a5565b5060005b81518110156200024d576200023a600080516020620027168339815191528383815181106200014557634e487b7160e01b600052603260045260246000fd5b6200024581620005c0565b9050620001fb565b5060038590556040805160008152602081018790527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a15050505050620005fe565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b620002ef8282620002f3565b5050565b6200030a82826200033660201b62000dd91760201c565b60008281526001602090815260409091206200033191839062000e5d620003d6821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002ef576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003923390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620003ed836001600160a01b038416620003f6565b90505b92915050565b60008181526001830160205260408120546200043f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003f0565b506000620003f0565b80516001600160a01b03811681146200046057600080fd5b919050565b600082601f83011262000476578081fd5b815160206001600160401b0380831115620004955762000495620005e8565b8260051b604051601f19603f83011681018181108482111715620004bd57620004bd620005e8565b60405284815283810192508684018288018501891015620004dc578687fd5b8692505b858310156200050957620004f48162000448565b845292840192600192909201918401620004e0565b50979650505050505050565b600080600080600060a086880312156200052d578081fd5b855194506200053f6020870162000448565b60408701519094506001600160401b03808211156200055c578283fd5b6200056a89838a0162000465565b9450606088015191508082111562000580578283fd5b6200058e89838a0162000465565b93506080880151915080821115620005a4578283fd5b50620005b38882890162000465565b9150509295509295909350565b6000600019821415620005e157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6120c8806200060e6000396000f3fe6080604052600436106101915760003560e01c80638f2a0bb0116100d7578063bc197c8111610085578063bc197c81146104f2578063c4d252f51461051e578063ca15c8731461053e578063d45c44351461055e578063d547741f1461058b578063e38335e5146105ab578063f23a6e61146105be578063f27a0c92146105ea57600080fd5b80638f2a0bb0146103ef5780638f61f4f51461040f5780639010d07c1461043157806391d1485414610469578063a217fddf14610489578063b08e51c01461049e578063b1c5f427146104d257600080fd5b8063248a9ca31161013f578063248a9ca3146102cf5780632ab0f529146102ff5780632f2ff15d1461032f57806331d507501461034f57806336568abe1461036f578063584b153e1461038f57806364d62353146103af5780638065657f146103cf57600080fd5b806301d5062a1461019d57806301ffc9a7146101bf57806307bd0265146101f45780630d3cf6fc14610224578063134008d31461025857806313bc9f201461026b578063150b7a021461028b57600080fd5b3661019857005b600080fd5b3480156101a957600080fd5b506101bd6101b83660046119ab565b6105ff565b005b3480156101cb57600080fd5b506101df6101da366004611bd2565b610682565b60405190151581526020015b60405180910390f35b34801561020057600080fd5b5061021660008051602061207383398151915281565b6040519081526020016101eb565b34801561023057600080fd5b506102167f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101bd610266366004611942565b6106ad565b34801561027757600080fd5b506101df610286366004611b6e565b610750565b34801561029757600080fd5b506102b66102a636600461187b565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101eb565b3480156102db57600080fd5b506102166102ea366004611b6e565b60009081526020819052604090206001015490565b34801561030b57600080fd5b506101df61031a366004611b6e565b60009081526002602052604090205460011490565b34801561033b57600080fd5b506101bd61034a366004611b86565b610776565b34801561035b57600080fd5b506101df61036a366004611b6e565b6107a0565b34801561037b57600080fd5b506101bd61038a366004611b86565b6107b9565b34801561039b57600080fd5b506101df6103aa366004611b6e565b61083c565b3480156103bb57600080fd5b506101bd6103ca366004611b6e565b610853565b3480156103db57600080fd5b506102166103ea366004611942565b6108f7565b3480156103fb57600080fd5b506101bd61040a366004611ac1565b610936565b34801561041b57600080fd5b5061021660008051602061205383398151915281565b34801561043d57600080fd5b5061045161044c366004611bb1565b610aa0565b6040516001600160a01b0390911681526020016101eb565b34801561047557600080fd5b506101df610484366004611b86565b610ab8565b34801561049557600080fd5b50610216600081565b3480156104aa57600080fd5b506102167ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104de57600080fd5b506102166104ed366004611a1d565b610ae1565b3480156104fe57600080fd5b506102b661050d3660046117d6565b63bc197c8160e01b95945050505050565b34801561052a57600080fd5b506101bd610539366004611b6e565b610b26565b34801561054a57600080fd5b50610216610559366004611b6e565b610bfb565b34801561056a57600080fd5b50610216610579366004611b6e565b60009081526002602052604090205490565b34801561059757600080fd5b506101bd6105a6366004611b86565b610c12565b6101bd6105b9366004611a1d565b610c37565b3480156105ca57600080fd5b506102b66105d93660046118e0565b63f23a6e6160e01b95945050505050565b3480156105f657600080fd5b50600354610216565b60008051602061205383398151915261061781610e72565b60006106278989898989896108f7565b90506106338184610e7f565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161066f96959493929190611d60565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b14806106a757506106a782610f6e565b92915050565b6000805160206120738339815191526106c7816000610ab8565b6106d5576106d58133610f93565b60006106e58888888888886108f7565b90506106f18185610ff7565b6106fd88888888611092565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107359493929190611d2e565b60405180910390a361074681611165565b5050505050505050565b60008181526002602052604081205460018111801561076f5750428111155b9392505050565b60008281526020819052604090206001015461079181610e72565b61079b838361119e565b505050565b60008181526002602052604081205481905b1192915050565b6001600160a01b038116331461082e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61083882826111c0565b5050565b6000818152600260205260408120546001906107b2565b3330146108b65760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610825565b60035460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600355565b600086868686868660405160200161091496959493929190611d60565b6040516020818303038152906040528051906020012090509695505050505050565b60008051602061205383398151915261094e81610e72565b88871461096d5760405162461bcd60e51b815260040161082590611e75565b88851461098c5760405162461bcd60e51b815260040161082590611e75565b600061099e8b8b8b8b8b8b8b8b610ae1565b90506109aa8184610e7f565b60005b8a811015610a925780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e858181106109f857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610a0d91906117bc565b8d8d86818110610a2d57634e487b7160e01b600052603260045260246000fd5b905060200201358c8c87818110610a5457634e487b7160e01b600052603260045260246000fd5b9050602002810190610a669190611f02565b8c8b604051610a7a96959493929190611d60565b60405180910390a3610a8b8161200b565b90506109ad565b505050505050505050505050565b600082815260016020526040812061076f90836111e2565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610b02989796959493929190611d9d565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610b5081610e72565b610b598261083c565b610bbf5760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610825565b6000828152600260205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008181526001602052604081206106a7906111ee565b600082815260208190526040902060010154610c2d81610e72565b61079b83836111c0565b600080516020612073833981519152610c51816000610ab8565b610c5f57610c5f8133610f93565b878614610c7e5760405162461bcd60e51b815260040161082590611e75565b878414610c9d5760405162461bcd60e51b815260040161082590611e75565b6000610caf8a8a8a8a8a8a8a8a610ae1565b9050610cbb8185610ff7565b60005b89811015610dc35760008b8b83818110610ce857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfd91906117bc565b905060008a8a84818110610d2157634e487b7160e01b600052603260045260246000fd5b9050602002013590503660008a8a86818110610d4d57634e487b7160e01b600052603260045260246000fd5b9050602002810190610d5f9190611f02565b91509150610d6f84848484611092565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610da69493929190611d2e565b60405180910390a35050505080610dbc9061200b565b9050610cbe565b50610dcd81611165565b50505050505050505050565b610de38282610ab8565b610838576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610e193390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061076f836001600160a01b0384166111f8565b610e7c8133610f93565b50565b610e88826107a0565b15610eed5760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610825565b600354811015610f4e5760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610825565b610f588142611f76565b6000928352600260205260409092209190915550565b60006001600160e01b03198216635a05180f60e01b14806106a757506106a782611247565b610f9d8282610ab8565b61083857610fb5816001600160a01b0316601461127c565b610fc083602061127c565b604051602001610fd1929190611cbf565b60408051601f198184030181529082905262461bcd60e51b825261082591600401611e42565b61100082610750565b61101c5760405162461bcd60e51b815260040161082590611eb8565b80158061103757506000818152600260205260409020546001145b6108385760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610825565b6000846001600160a01b03168484846040516110af929190611caf565b60006040518083038185875af1925050503d80600081146110ec576040519150601f19603f3d011682016040523d82523d6000602084013e6110f1565b606091505b505090508061115e5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610825565b5050505050565b61116e81610750565b61118a5760405162461bcd60e51b815260040161082590611eb8565b600090815260026020526040902060019055565b6111a88282610dd9565b600082815260016020526040902061079b9082610e5d565b6111ca828261145d565b600082815260016020526040902061079b90826114c2565b600061076f83836114d7565b60006106a7825490565b600081815260018301602052604081205461123f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106a7565b5060006106a7565b60006001600160e01b03198216637965db0b60e01b14806106a757506301ffc9a760e01b6001600160e01b03198316146106a7565b6060600061128b836002611f8e565b611296906002611f76565b6001600160401b038111156112bb57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112e5576020820181803683370190505b509050600360fc1b8160008151811061130e57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061134b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061136f846002611f8e565b61137a906001611f76565b90505b600181111561140e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113bc57634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106113e057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361140781611ff4565b905061137d565b50831561076f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610825565b6114678282610ab8565b15610838576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061076f836001600160a01b03841661150f565b60008260000182815481106114fc57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611622576000611533600183611fad565b855490915060009061154790600190611fad565b90508181146115c857600086600001828154811061157557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115a657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115e757634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106a7565b60009150506106a7565b80356001600160a01b038116811461164357600080fd5b919050565b60008083601f840112611659578182fd5b5081356001600160401b0381111561166f578182fd5b6020830191508360208260051b850101111561168a57600080fd5b9250929050565b600082601f8301126116a1578081fd5b813560206001600160401b038211156116bc576116bc61203c565b8160051b6116cb828201611f46565b8381528281019086840183880185018910156116e5578687fd5b8693505b858410156117075780358352600193909301929184019184016116e9565b50979650505050505050565b60008083601f840112611724578182fd5b5081356001600160401b0381111561173a578182fd5b60208301915083602082850101111561168a57600080fd5b600082601f830112611762578081fd5b81356001600160401b0381111561177b5761177b61203c565b61178e601f8201601f1916602001611f46565b8181528460208386010111156117a2578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156117cd578081fd5b61076f8261162c565b600080600080600060a086880312156117ed578081fd5b6117f68661162c565b94506118046020870161162c565b935060408601356001600160401b038082111561181f578283fd5b61182b89838a01611691565b94506060880135915080821115611840578283fd5b61184c89838a01611691565b93506080880135915080821115611861578283fd5b5061186e88828901611752565b9150509295509295909350565b60008060008060808587031215611890578384fd5b6118998561162c565b93506118a76020860161162c565b92506040850135915060608501356001600160401b038111156118c8578182fd5b6118d487828801611752565b91505092959194509250565b600080600080600060a086880312156118f7578081fd5b6119008661162c565b945061190e6020870161162c565b9350604086013592506060860135915060808601356001600160401b03811115611936578182fd5b61186e88828901611752565b60008060008060008060a0878903121561195a578081fd5b6119638761162c565b95506020870135945060408701356001600160401b03811115611984578182fd5b61199089828a01611713565b979a9699509760608101359660809091013595509350505050565b600080600080600080600060c0888a0312156119c5578081fd5b6119ce8861162c565b96506020880135955060408801356001600160401b038111156119ef578182fd5b6119fb8a828b01611713565b989b979a50986060810135976080820135975060a09091013595509350505050565b60008060008060008060008060a0898b031215611a38578182fd5b88356001600160401b0380821115611a4e578384fd5b611a5a8c838d01611648565b909a50985060208b0135915080821115611a72578384fd5b611a7e8c838d01611648565b909850965060408b0135915080821115611a96578384fd5b50611aa38b828c01611648565b999c989b509699959896976060870135966080013595509350505050565b600080600080600080600080600060c08a8c031215611ade578283fd5b89356001600160401b0380821115611af4578485fd5b611b008d838e01611648565b909b50995060208c0135915080821115611b18578485fd5b611b248d838e01611648565b909950975060408c0135915080821115611b3c578485fd5b50611b498c828d01611648565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b600060208284031215611b7f578081fd5b5035919050565b60008060408385031215611b98578182fd5b82359150611ba86020840161162c565b90509250929050565b60008060408385031215611bc3578182fd5b50508035926020909101359150565b600060208284031215611be3578081fd5b81356001600160e01b03198116811461076f578182fd5b81835260006020808501808196508560051b8101915084845b87811015611c795782840389528135601e19883603018112611c33578687fd5b870180356001600160401b03811115611c4a578788fd5b803603891315611c58578788fd5b611c658682898501611c86565b9a87019a9550505090840190600101611c13565b5091979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8183823760009101908152919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611cf1816017850160208801611fc4565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d22816028840160208801611fc4565b01602801949350505050565b60018060a01b0385168152836020820152606060408201526000611d56606083018486611c86565b9695505050505050565b60018060a01b038716815285602082015260a060408201526000611d8860a083018688611c86565b60608301949094525060800152949350505050565b60a0808252810188905260008960c08301825b8b811015611dde576001600160a01b03611dc98461162c565b16825260209283019290910190600101611db0565b5083810360208501528881526001600160fb1b03891115611dfd578283fd5b8860051b9150818a60208301370160208181018381528483039091016040850152611e2981888a611bfa565b6060850196909652505050608001529695505050505050565b6020815260008251806020840152611e61816040850160208701611fc4565b601f01601f19169190910160400192915050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b6000808335601e19843603018112611f18578283fd5b8301803591506001600160401b03821115611f31578283fd5b60200191503681900382131561168a57600080fd5b604051601f8201601f191681016001600160401b0381118282101715611f6e57611f6e61203c565b604052919050565b60008219821115611f8957611f89612026565b500190565b6000816000190483118215151615611fa857611fa8612026565b500290565b600082821015611fbf57611fbf612026565b500390565b60005b83811015611fdf578181015183820152602001611fc7565b83811115611fee576000848401525b50505050565b60008161200357612003612026565b506000190190565b600060001982141561201f5761201f612026565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfeb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63a2646970667358221220b3e35e953a259c199a6d964cac74ce9c29824111cc10728e10f60fb31dd0457a64736f6c634300080400335f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2756 CODESIZE SUB DUP1 PUSH3 0x2756 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x515 JUMP JUMPDEST PUSH3 0x4F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26D6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH3 0x298 JUMP JUMPDEST PUSH3 0x79 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26F6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26D6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x298 JUMP JUMPDEST PUSH3 0xA3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2716 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26D6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x298 JUMP JUMPDEST PUSH3 0xCD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2736 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26D6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x298 JUMP JUMPDEST PUSH3 0xE8 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26D6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 PUSH3 0x2E3 JUMP JUMPDEST PUSH3 0x103 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26D6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADDRESS PUSH3 0x2E3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH3 0x1A1 JUMPI PUSH3 0x159 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x26F6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x145 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH3 0x2E3 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x18E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2736 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x145 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x199 DUP2 PUSH3 0x5C0 JUMP JUMPDEST SWAP1 POP PUSH3 0x106 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x1F7 JUMPI PUSH3 0x1E4 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2736 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x145 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x1EF DUP2 PUSH3 0x5C0 JUMP JUMPDEST SWAP1 POP PUSH3 0x1A5 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x24D JUMPI PUSH3 0x23A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2716 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x145 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x245 DUP2 PUSH3 0x5C0 JUMP JUMPDEST SWAP1 POP PUSH3 0x1FB JUMP JUMPDEST POP PUSH1 0x3 DUP6 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP PUSH3 0x5FE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP7 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH3 0x2EF DUP3 DUP3 PUSH3 0x2F3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH3 0x30A DUP3 DUP3 PUSH3 0x336 PUSH1 0x20 SHL PUSH3 0xDD9 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH3 0x331 SWAP2 DUP4 SWAP1 PUSH3 0xE5D PUSH3 0x3D6 DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x2EF JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x392 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3ED DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0x3F6 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x43F JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x3F0 JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x3F0 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x476 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 GT ISZERO PUSH3 0x495 JUMPI PUSH3 0x495 PUSH3 0x5E8 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH3 0x4BD JUMPI PUSH3 0x4BD PUSH3 0x5E8 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP5 DUP2 MSTORE DUP4 DUP2 ADD SWAP3 POP DUP7 DUP5 ADD DUP3 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH3 0x4DC JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH3 0x509 JUMPI PUSH3 0x4F4 DUP2 PUSH3 0x448 JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 DUP5 ADD PUSH3 0x4E0 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x52D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD SWAP5 POP PUSH3 0x53F PUSH1 0x20 DUP8 ADD PUSH3 0x448 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x55C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH3 0x56A DUP10 DUP4 DUP11 ADD PUSH3 0x465 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x580 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH3 0x58E DUP10 DUP4 DUP11 ADD PUSH3 0x465 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x5A4 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x5B3 DUP9 DUP3 DUP10 ADD PUSH3 0x465 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH3 0x5E1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x20C8 DUP1 PUSH3 0x60E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x191 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8F2A0BB0 GT PUSH2 0xD7 JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x85 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x55E JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x5AB JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x40F JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x49E JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x4D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x13F JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x38F JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x8065657F EQ PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x19D JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x198 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x1B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x19AB JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1BD2 JUMP JUMPDEST PUSH2 0x682 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x200 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2073 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1BD PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x1942 JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x750 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x187B JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0x776 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x7A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x38A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x3AA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x83C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x3CA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x853 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1942 JUMP JUMPDEST PUSH2 0x8F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x40A CALLDATASIZE PUSH1 0x4 PUSH2 0x1AC1 JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2053 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x451 PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x484 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0xAB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x495 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x4ED CALLDATASIZE PUSH1 0x4 PUSH2 0x1A1D JUMP JUMPDEST PUSH2 0xAE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x17D6 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x539 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x559 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0xBFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x579 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0xC12 JUMP JUMPDEST PUSH2 0x1BD PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A1D JUMP JUMPDEST PUSH2 0xC37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x18E0 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x216 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2053 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x617 DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x627 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x633 DUP2 DUP5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x66F SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x6A7 JUMPI POP PUSH2 0x6A7 DUP3 PUSH2 0xF6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2073 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x6C7 DUP2 PUSH1 0x0 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x6D5 JUMPI PUSH2 0x6D5 DUP2 CALLER PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E5 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x6F1 DUP2 DUP6 PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x6FD DUP9 DUP9 DUP9 DUP9 PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x735 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x746 DUP2 PUSH2 0x1165 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x76F JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x791 DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x79B DUP4 DUP4 PUSH2 0x119E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x82E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP3 DUP3 PUSH2 0x11C0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 SWAP1 PUSH2 0x7B2 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x914 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D60 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 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2053 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x94E DUP2 PUSH2 0xE72 JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x96D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x98C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x99E DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xAE1 JUMP JUMPDEST SWAP1 POP PUSH2 0x9AA DUP2 DUP5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA92 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0x9F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA0D SWAP2 SWAP1 PUSH2 0x17BC JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0xA2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0xA54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA66 SWAP2 SWAP1 PUSH2 0x1F02 JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA7A SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA8B DUP2 PUSH2 0x200B JUMP JUMPDEST SWAP1 POP PUSH2 0x9AD JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76F SWAP1 DUP4 PUSH2 0x11E2 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB02 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D9D 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 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xB50 DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0xB59 DUP3 PUSH2 0x83C JUMP JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x6A7 SWAP1 PUSH2 0x11EE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC2D DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x79B DUP4 DUP4 PUSH2 0x11C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2073 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC51 DUP2 PUSH1 0x0 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0xC5F JUMPI PUSH2 0xC5F DUP2 CALLER PUSH2 0xF93 JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xC7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCAF DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xAE1 JUMP JUMPDEST SWAP1 POP PUSH2 0xCBB DUP2 DUP6 PUSH2 0xFF7 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xDC3 JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xCE8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCFD SWAP2 SWAP1 PUSH2 0x17BC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xD21 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xD4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD5F SWAP2 SWAP1 PUSH2 0x1F02 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD6F DUP5 DUP5 DUP5 DUP5 PUSH2 0x1092 JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xDA6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xDBC SWAP1 PUSH2 0x200B JUMP JUMPDEST SWAP1 POP PUSH2 0xCBE JUMP JUMPDEST POP PUSH2 0xDCD DUP2 PUSH2 0x1165 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDE3 DUP3 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x838 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xE19 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76F DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x11F8 JUMP JUMPDEST PUSH2 0xE7C DUP2 CALLER PUSH2 0xF93 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE88 DUP3 PUSH2 0x7A0 JUMP JUMPDEST ISZERO PUSH2 0xEED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0xF4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH2 0xF58 DUP2 TIMESTAMP PUSH2 0x1F76 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5A05180F PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6A7 JUMPI POP PUSH2 0x6A7 DUP3 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0xF9D DUP3 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x838 JUMPI PUSH2 0xFB5 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x127C JUMP JUMPDEST PUSH2 0xFC0 DUP4 PUSH1 0x20 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFD1 SWAP3 SWAP2 SWAP1 PUSH2 0x1CBF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x825 SWAP2 PUSH1 0x4 ADD PUSH2 0x1E42 JUMP JUMPDEST PUSH2 0x1000 DUP3 PUSH2 0x750 JUMP JUMPDEST PUSH2 0x101C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1EB8 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0x1037 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 EQ JUMPDEST PUSH2 0x838 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x10AF SWAP3 SWAP2 SWAP1 PUSH2 0x1CAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x10EC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x10F1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x115E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x116E DUP2 PUSH2 0x750 JUMP JUMPDEST PUSH2 0x118A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1EB8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11A8 DUP3 DUP3 PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x79B SWAP1 DUP3 PUSH2 0xE5D JUMP JUMPDEST PUSH2 0x11CA DUP3 DUP3 PUSH2 0x145D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x79B SWAP1 DUP3 PUSH2 0x14C2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76F DUP4 DUP4 PUSH2 0x14D7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A7 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x123F JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x6A7 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6A7 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x128B DUP4 PUSH1 0x2 PUSH2 0x1F8E JUMP JUMPDEST PUSH2 0x1296 SWAP1 PUSH1 0x2 PUSH2 0x1F76 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12E5 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x130E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x134B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x136F DUP5 PUSH1 0x2 PUSH2 0x1F8E JUMP JUMPDEST PUSH2 0x137A SWAP1 PUSH1 0x1 PUSH2 0x1F76 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x140E JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x13BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x13E0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1407 DUP2 PUSH2 0x1FF4 JUMP JUMPDEST SWAP1 POP PUSH2 0x137D JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x76F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x825 JUMP JUMPDEST PUSH2 0x1467 DUP3 DUP3 PUSH2 0xAB8 JUMP JUMPDEST ISZERO PUSH2 0x838 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76F DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x150F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x14FC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1622 JUMPI PUSH1 0x0 PUSH2 0x1533 PUSH1 0x1 DUP4 PUSH2 0x1FAD JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1547 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x15C8 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1575 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x15A6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x15E7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x6A7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1659 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x166F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16A1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16BC PUSH2 0x203C JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x16CB DUP3 DUP3 ADD PUSH2 0x1F46 JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 DUP2 ADD SWAP1 DUP7 DUP5 ADD DUP4 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x16E5 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP4 POP JUMPDEST DUP6 DUP5 LT ISZERO PUSH2 0x1707 JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 DUP5 ADD PUSH2 0x16E9 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1724 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x173A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1762 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x177B JUMPI PUSH2 0x177B PUSH2 0x203C JUMP JUMPDEST PUSH2 0x178E PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1F46 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x17A2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CD JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x76F DUP3 PUSH2 0x162C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x17ED JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x17F6 DUP7 PUSH2 0x162C JUMP JUMPDEST SWAP5 POP PUSH2 0x1804 PUSH1 0x20 DUP8 ADD PUSH2 0x162C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x181F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x182B DUP10 DUP4 DUP11 ADD PUSH2 0x1691 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1840 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x184C DUP10 DUP4 DUP11 ADD PUSH2 0x1691 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1861 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x186E DUP9 DUP3 DUP10 ADD PUSH2 0x1752 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1890 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1899 DUP6 PUSH2 0x162C JUMP JUMPDEST SWAP4 POP PUSH2 0x18A7 PUSH1 0x20 DUP7 ADD PUSH2 0x162C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x18C8 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x18D4 DUP8 DUP3 DUP9 ADD PUSH2 0x1752 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18F7 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1900 DUP7 PUSH2 0x162C JUMP JUMPDEST SWAP5 POP PUSH2 0x190E PUSH1 0x20 DUP8 ADD PUSH2 0x162C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1936 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x186E DUP9 DUP3 DUP10 ADD PUSH2 0x1752 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x195A JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1963 DUP8 PUSH2 0x162C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1984 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1990 DUP10 DUP3 DUP11 ADD PUSH2 0x1713 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x19C5 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x19CE DUP9 PUSH2 0x162C JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x19EF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x19FB DUP11 DUP3 DUP12 ADD PUSH2 0x1713 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1A38 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1A4E JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1A5A DUP13 DUP4 DUP14 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A72 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1A7E DUP13 DUP4 DUP14 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A96 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x1AA3 DUP12 DUP3 DUP13 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1ADE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1AF4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1B00 DUP14 DUP4 DUP15 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1B18 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1B24 DUP14 DUP4 DUP15 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1B3C JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1B49 DUP13 DUP3 DUP14 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B7F JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B98 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1BA8 PUSH1 0x20 DUP5 ADD PUSH2 0x162C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BC3 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BE3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x76F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 DUP5 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x1C79 JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1C33 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP8 ADD DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1C4A JUMPI DUP8 DUP9 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP10 SGT ISZERO PUSH2 0x1C58 JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x1C65 DUP7 DUP3 DUP10 DUP6 ADD PUSH2 0x1C86 JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1C13 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1CF1 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1FC4 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1D22 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1FC4 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1D56 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x1C86 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1D88 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x1C86 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1DDE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1DC9 DUP5 PUSH2 0x162C JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1DB0 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1DFD JUMPI DUP3 DUP4 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD PUSH1 0x20 DUP2 DUP2 ADD DUP4 DUP2 MSTORE DUP5 DUP4 SUB SWAP1 SWAP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1E29 DUP2 DUP9 DUP11 PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x60 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1E61 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1FC4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1F18 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1F31 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1F6E JUMPI PUSH2 0x1F6E PUSH2 0x203C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1F89 JUMPI PUSH2 0x1F89 PUSH2 0x2026 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1FA8 JUMPI PUSH2 0x1FA8 PUSH2 0x2026 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1FBF JUMPI PUSH2 0x1FBF PUSH2 0x2026 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FDF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1FC7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2003 JUMPI PUSH2 0x2003 PUSH2 0x2026 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x201F JUMPI PUSH2 0x201F PUSH2 0x2026 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0xB0 SWAP11 0xA5 0xAE 0xB3 PUSH17 0x2CFD50B6B62BC4532604938F21248A27A1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xA2646970 PUSH7 0x7358221220B3E3 0x5E SWAP6 GASPRICE 0x25 SWAP13 NOT SWAP11 PUSH14 0x964CAC74CE9C29824111CC10728E LT 0xF6 0xF 0xB3 SAR 0xD0 GASLIMIT PUSH27 0x64736F6C634300080400335F58E3A2316349923CE3780F8D587DB2 0xD7 0x23 PUSH25 0xAED66A8261C916544FA6846CA5B09AA5AEB3702CFD50B6B62B 0xC4 MSTORE8 0x26 DIV SWAP4 DUP16 0x21 0x24 DUP11 0x27 LOG1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xFD643C72 PUSH18 0xC63C0180259ABA6B2D05451E3591A24E58B PUSH3 0x239378 ADDMOD JUMPI 0x26 0xF7 DUP4 ","sourceMap":"1124:14258:67:-:0;;;3144:1171;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3330:55;-1:-1:-1;;;;;;;;;;;1290:32:67;3330:13;:55::i;:::-;3395:49;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3395:13:67;:49::i;:::-;3454;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3454:13:67;:49::i;:::-;3513:50;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3513:13:67;:50::i;:::-;3616:38;-1:-1:-1;;;;;;;;;;;3648:5:67;3616:10;:38::i;:::-;3664:46;-1:-1:-1;;;;;;;;;;;3704:4:67;3664:10;:46::i;:::-;3771:9;3766:165;3790:9;:16;3786:1;:20;3766:165;;;3827:39;-1:-1:-1;;;;;;;;;;;3853:9:67;3863:1;3853:12;;;;;;-1:-1:-1;;;3853:12:67;;;;;;;;;;;;;;;3827:10;;;:39;;:::i;:::-;3880:40;-1:-1:-1;;;;;;;;;;;3907:9:67;3917:1;3907:12;;;;;;-1:-1:-1;;;3907:12:67;;;;;;;;3880:40;3808:3;;;:::i;:::-;;;3766:165;;;;3976:9;3971:114;3995:10;:17;3991:1;:21;3971:114;;;4033:41;-1:-1:-1;;;;;;;;;;;4060:10:67;4071:1;4060:13;;;;;;-1:-1:-1;;;4060:13:67;;;;;;;;4033:41;4014:3;;;:::i;:::-;;;3971:114;;;;4130:9;4125:111;4149:9;:16;4145:1;:20;4125:111;;;4186:39;-1:-1:-1;;;;;;;;;;;4212:9:67;4222:1;4212:12;;;;;;-1:-1:-1;;;4212:12:67;;;;;;;;4186:39;4167:3;;;:::i;:::-;;;4125:111;;;-1:-1:-1;4246:9:67;:20;;;4281:27;;;4296:1;2374:25:139;;2430:2;2415:18;;2408:34;;;4281:27:67;;2347:18:139;4281:27:67;;;;;;;3144:1171;;;;;1124:14258;;7059:247:0;7142:25;4491:12;;;;;;;;;;;:22;;;;7198:34;;;;7247:52;;4491:22;;7198:34;;4491:22;;:12;;7247:52;;7142:25;7247:52;7059:247;;;:::o;6824:110::-;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106:18;;;;:12;:18;;;;;;;;:31;;2129:7;;2106:22;;;;;:31;;:::i;:::-;;1978:166;;:::o;7474:233:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7552:149;;7595:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;7627:4;7595:36;;;7677:12;719:10:38;;640:96;7677:12:0;-1:-1:-1;;;;;7650:40:0;7668:7;-1:-1:-1;;;;;7650:40:0;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;8028:150:51:-;8098:4;8121:50;8126:3;-1:-1:-1;;;;;8146:23:51;;8121:4;:50::i;:::-;8114:57;;8028:150;;;;;:::o;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:51;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:51;2488:12;;14:177:139;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:954::-;261:5;314:3;307:4;299:6;295:17;291:27;281:2;;336:5;329;322:20;281:2;363:13;;395:4;-1:-1:-1;;;;;448:10:139;;;445:2;;;461:18;;:::i;:::-;507:2;504:1;500:10;539:2;533:9;602:2;598:7;593:2;589;585:11;581:25;573:6;569:38;657:6;645:10;642:22;637:2;625:10;622:18;619:46;616:2;;;668:18;;:::i;:::-;704:2;697:22;754:18;;;788:15;;;;-1:-1:-1;823:15:139;;;857;;;853:24;;850:33;-1:-1:-1;847:2:139;;;900:5;893;886:20;847:2;926:5;917:14;;940:180;954:2;951:1;948:9;940:180;;;1011:34;1041:3;1011:34;:::i;:::-;999:47;;1066:12;;;;972:1;965:9;;;;;1098:12;;940:180;;;-1:-1:-1;1138:6:139;271:879;-1:-1:-1;;;;;;;271:879:139:o;1155:1032::-;1336:6;1344;1352;1360;1368;1421:3;1409:9;1400:7;1396:23;1392:33;1389:2;;;1443:6;1435;1428:22;1389:2;1477:9;1471:16;1461:26;;1506:49;1551:2;1540:9;1536:18;1506:49;:::i;:::-;1599:2;1584:18;;1578:25;1496:59;;-1:-1:-1;;;;;;1652:14:139;;;1649:2;;;1684:6;1676;1669:22;1649:2;1712:72;1776:7;1767:6;1756:9;1752:22;1712:72;:::i;:::-;1702:82;;1830:2;1819:9;1815:18;1809:25;1793:41;;1859:2;1849:8;1846:16;1843:2;;;1880:6;1872;1865:22;1843:2;1908:74;1974:7;1963:8;1952:9;1948:24;1908:74;:::i;:::-;1898:84;;2028:3;2017:9;2013:19;2007:26;1991:42;;2058:2;2048:8;2045:16;2042:2;;;2079:6;2071;2064:22;2042:2;;2107:74;2173:7;2162:8;2151:9;2147:24;2107:74;:::i;:::-;2097:84;;;1379:808;;;;;;;;:::o;2453:236::-;2492:3;-1:-1:-1;;2513:17:139;;2510:2;;;-1:-1:-1;;;2553:33:139;;2609:4;2606:1;2599:15;2639:4;2560:3;2627:17;2510:2;-1:-1:-1;2681:1:139;2670:13;;2500:189::o;2694:127::-;2755:10;2750:3;2746:20;2743:1;2736:31;2786:4;2783:1;2776:15;2810:4;2807:1;2800:15;2726:95;1124:14258:67;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:23148:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"276:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"325:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"334:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"344:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"327:6:139"},"nodeType":"YulFunctionCall","src":"327:26:139"},"nodeType":"YulExpressionStatement","src":"327:26:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"304:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"312:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"300:3:139"},"nodeType":"YulFunctionCall","src":"300:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"319:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"296:3:139"},"nodeType":"YulFunctionCall","src":"296:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"289:6:139"},"nodeType":"YulFunctionCall","src":"289:35:139"},"nodeType":"YulIf","src":"286:2:139"},{"nodeType":"YulAssignment","src":"364:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"387:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"374:12:139"},"nodeType":"YulFunctionCall","src":"374:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"364:6:139"}]},{"body":{"nodeType":"YulBlock","src":"437:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"446:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"456:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"439:6:139"},"nodeType":"YulFunctionCall","src":"439:26:139"},"nodeType":"YulExpressionStatement","src":"439:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"409:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"417:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"406:2:139"},"nodeType":"YulFunctionCall","src":"406:30:139"},"nodeType":"YulIf","src":"403:2:139"},{"nodeType":"YulAssignment","src":"476:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"492:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"500:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"488:3:139"},"nodeType":"YulFunctionCall","src":"488:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"476:8:139"}]},{"body":{"nodeType":"YulBlock","src":"565:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"574:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"577:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"567:6:139"},"nodeType":"YulFunctionCall","src":"567:12:139"},"nodeType":"YulExpressionStatement","src":"567:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"528:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"540:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"543:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"536:3:139"},"nodeType":"YulFunctionCall","src":"536:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"524:3:139"},"nodeType":"YulFunctionCall","src":"524:27:139"},{"kind":"number","nodeType":"YulLiteral","src":"553:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"520:3:139"},"nodeType":"YulFunctionCall","src":"520:38:139"},{"name":"end","nodeType":"YulIdentifier","src":"560:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"517:2:139"},"nodeType":"YulFunctionCall","src":"517:47:139"},"nodeType":"YulIf","src":"514:2:139"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"239:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"247:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"255:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"265:6:139","type":""}],"src":"192:395:139"},{"body":{"nodeType":"YulBlock","src":"656:679:139","statements":[{"body":{"nodeType":"YulBlock","src":"705:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"714:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"721:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"707:6:139"},"nodeType":"YulFunctionCall","src":"707:20:139"},"nodeType":"YulExpressionStatement","src":"707:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"684:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"692:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"680:3:139"},"nodeType":"YulFunctionCall","src":"680:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"699:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"676:3:139"},"nodeType":"YulFunctionCall","src":"676:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"669:6:139"},"nodeType":"YulFunctionCall","src":"669:35:139"},"nodeType":"YulIf","src":"666:2:139"},{"nodeType":"YulVariableDeclaration","src":"738:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"761:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"748:12:139"},"nodeType":"YulFunctionCall","src":"748:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"742:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"777:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"787:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"781:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"830:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"832:16:139"},"nodeType":"YulFunctionCall","src":"832:18:139"},"nodeType":"YulExpressionStatement","src":"832:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"806:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"810:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"803:2:139"},"nodeType":"YulFunctionCall","src":"803:26:139"},"nodeType":"YulIf","src":"800:2:139"},{"nodeType":"YulVariableDeclaration","src":"861:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"875:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"878:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"871:3:139"},"nodeType":"YulFunctionCall","src":"871:10:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"865:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"890:39:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"921:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"925:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"917:3:139"},"nodeType":"YulFunctionCall","src":"917:11:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"901:15:139"},"nodeType":"YulFunctionCall","src":"901:28:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"894:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"938:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"951:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"942:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"970:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"975:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"963:6:139"},"nodeType":"YulFunctionCall","src":"963:15:139"},"nodeType":"YulExpressionStatement","src":"963:15:139"},{"nodeType":"YulAssignment","src":"987:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"998:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1003:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"994:3:139"},"nodeType":"YulFunctionCall","src":"994:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"987:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1015:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1030:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1038:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1026:3:139"},"nodeType":"YulFunctionCall","src":"1026:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1019:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1087:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1096:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1103:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1089:6:139"},"nodeType":"YulFunctionCall","src":"1089:20:139"},"nodeType":"YulExpressionStatement","src":"1089:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1064:6:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1072:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1060:3:139"},"nodeType":"YulFunctionCall","src":"1060:15:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1077:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1056:3:139"},"nodeType":"YulFunctionCall","src":"1056:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"1082:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1053:2:139"},"nodeType":"YulFunctionCall","src":"1053:33:139"},"nodeType":"YulIf","src":"1050:2:139"},{"nodeType":"YulVariableDeclaration","src":"1120:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"1129:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1124:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1188:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1209:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1227:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1214:12:139"},"nodeType":"YulFunctionCall","src":"1214:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1202:6:139"},"nodeType":"YulFunctionCall","src":"1202:30:139"},"nodeType":"YulExpressionStatement","src":"1202:30:139"},{"nodeType":"YulAssignment","src":"1245:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1256:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1261:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1252:3:139"},"nodeType":"YulFunctionCall","src":"1252:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1245:3:139"}]},{"nodeType":"YulAssignment","src":"1277:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1288:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1293:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1284:3:139"},"nodeType":"YulFunctionCall","src":"1284:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1277:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1154:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1157:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1151:2:139"},"nodeType":"YulFunctionCall","src":"1151:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1161:18:139","statements":[{"nodeType":"YulAssignment","src":"1163:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1172:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1175:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1168:3:139"},"nodeType":"YulFunctionCall","src":"1168:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1163:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1147:3:139","statements":[]},"src":"1143:163:139"},{"nodeType":"YulAssignment","src":"1315:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1324:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1315:5:139"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"630:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"638:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"646:5:139","type":""}],"src":"592:743:139"},{"body":{"nodeType":"YulBlock","src":"1412:303:139","statements":[{"body":{"nodeType":"YulBlock","src":"1461:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1470:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"1480:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1463:6:139"},"nodeType":"YulFunctionCall","src":"1463:26:139"},"nodeType":"YulExpressionStatement","src":"1463:26:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1440:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1448:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:139"},"nodeType":"YulFunctionCall","src":"1436:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1455:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1432:3:139"},"nodeType":"YulFunctionCall","src":"1432:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1425:6:139"},"nodeType":"YulFunctionCall","src":"1425:35:139"},"nodeType":"YulIf","src":"1422:2:139"},{"nodeType":"YulAssignment","src":"1500:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1523:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1510:12:139"},"nodeType":"YulFunctionCall","src":"1510:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1500:6:139"}]},{"body":{"nodeType":"YulBlock","src":"1573:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1582:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"1592:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1575:6:139"},"nodeType":"YulFunctionCall","src":"1575:26:139"},"nodeType":"YulExpressionStatement","src":"1575:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1545:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1553:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1542:2:139"},"nodeType":"YulFunctionCall","src":"1542:30:139"},"nodeType":"YulIf","src":"1539:2:139"},{"nodeType":"YulAssignment","src":"1612:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1628:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1636:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1624:3:139"},"nodeType":"YulFunctionCall","src":"1624:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1612:8:139"}]},{"body":{"nodeType":"YulBlock","src":"1693:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1702:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1705:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1695:6:139"},"nodeType":"YulFunctionCall","src":"1695:12:139"},"nodeType":"YulExpressionStatement","src":"1695:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1664:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"1672:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:139"},"nodeType":"YulFunctionCall","src":"1660:19:139"},{"kind":"number","nodeType":"YulLiteral","src":"1681:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1656:3:139"},"nodeType":"YulFunctionCall","src":"1656:30:139"},{"name":"end","nodeType":"YulIdentifier","src":"1688:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1653:2:139"},"nodeType":"YulFunctionCall","src":"1653:39:139"},"nodeType":"YulIf","src":"1650:2:139"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1375:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1383:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1391:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"1401:6:139","type":""}],"src":"1340:375:139"},{"body":{"nodeType":"YulBlock","src":"1772:498:139","statements":[{"body":{"nodeType":"YulBlock","src":"1821:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1830:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1837:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1823:6:139"},"nodeType":"YulFunctionCall","src":"1823:20:139"},"nodeType":"YulExpressionStatement","src":"1823:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1800:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1808:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1796:3:139"},"nodeType":"YulFunctionCall","src":"1796:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1815:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1792:3:139"},"nodeType":"YulFunctionCall","src":"1792:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1785:6:139"},"nodeType":"YulFunctionCall","src":"1785:35:139"},"nodeType":"YulIf","src":"1782:2:139"},{"nodeType":"YulVariableDeclaration","src":"1854:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1877:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1864:12:139"},"nodeType":"YulFunctionCall","src":"1864:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1858:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1923:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1925:16:139"},"nodeType":"YulFunctionCall","src":"1925:18:139"},"nodeType":"YulExpressionStatement","src":"1925:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1899:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1903:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1896:2:139"},"nodeType":"YulFunctionCall","src":"1896:26:139"},"nodeType":"YulIf","src":"1893:2:139"},{"nodeType":"YulVariableDeclaration","src":"1954:70:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1997:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2001:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1993:3:139"},"nodeType":"YulFunctionCall","src":"1993:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2012:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2008:3:139"},"nodeType":"YulFunctionCall","src":"2008:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1989:3:139"},"nodeType":"YulFunctionCall","src":"1989:27:139"},{"kind":"number","nodeType":"YulLiteral","src":"2018:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1985:3:139"},"nodeType":"YulFunctionCall","src":"1985:38:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1969:15:139"},"nodeType":"YulFunctionCall","src":"1969:55:139"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1958:7:139","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"2040:7:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2049:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2033:6:139"},"nodeType":"YulFunctionCall","src":"2033:19:139"},"nodeType":"YulExpressionStatement","src":"2033:19:139"},{"body":{"nodeType":"YulBlock","src":"2100:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2109:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2116:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2102:6:139"},"nodeType":"YulFunctionCall","src":"2102:20:139"},"nodeType":"YulExpressionStatement","src":"2102:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2075:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2083:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2071:3:139"},"nodeType":"YulFunctionCall","src":"2071:15:139"},{"kind":"number","nodeType":"YulLiteral","src":"2088:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:139"},"nodeType":"YulFunctionCall","src":"2067:26:139"},{"name":"end","nodeType":"YulIdentifier","src":"2095:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2064:2:139"},"nodeType":"YulFunctionCall","src":"2064:35:139"},"nodeType":"YulIf","src":"2061:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"2150:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"2159:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2146:3:139"},"nodeType":"YulFunctionCall","src":"2146:18:139"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2170:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2178:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2166:3:139"},"nodeType":"YulFunctionCall","src":"2166:17:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2185:2:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2133:12:139"},"nodeType":"YulFunctionCall","src":"2133:55:139"},"nodeType":"YulExpressionStatement","src":"2133:55:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"2212:7:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2221:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2208:3:139"},"nodeType":"YulFunctionCall","src":"2208:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"2226:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2204:3:139"},"nodeType":"YulFunctionCall","src":"2204:27:139"},{"name":"array","nodeType":"YulIdentifier","src":"2233:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2197:6:139"},"nodeType":"YulFunctionCall","src":"2197:42:139"},"nodeType":"YulExpressionStatement","src":"2197:42:139"},{"nodeType":"YulAssignment","src":"2248:16:139","value":{"name":"array_1","nodeType":"YulIdentifier","src":"2257:7:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2248:5:139"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1746:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1754:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1762:5:139","type":""}],"src":"1720:550:139"},{"body":{"nodeType":"YulBlock","src":"2345:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"2391:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2400:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2408:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2393:6:139"},"nodeType":"YulFunctionCall","src":"2393:22:139"},"nodeType":"YulExpressionStatement","src":"2393:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2366:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2375:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2362:3:139"},"nodeType":"YulFunctionCall","src":"2362:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2387:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2358:3:139"},"nodeType":"YulFunctionCall","src":"2358:32:139"},"nodeType":"YulIf","src":"2355:2:139"},{"nodeType":"YulAssignment","src":"2426:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2455:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2436:18:139"},"nodeType":"YulFunctionCall","src":"2436:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2426:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2311:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2322:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2334:6:139","type":""}],"src":"2275:196:139"},{"body":{"nodeType":"YulBlock","src":"2673:786:139","statements":[{"body":{"nodeType":"YulBlock","src":"2720:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2729:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2737:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2722:6:139"},"nodeType":"YulFunctionCall","src":"2722:22:139"},"nodeType":"YulExpressionStatement","src":"2722:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2694:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2703:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2690:3:139"},"nodeType":"YulFunctionCall","src":"2690:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2715:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2686:3:139"},"nodeType":"YulFunctionCall","src":"2686:33:139"},"nodeType":"YulIf","src":"2683:2:139"},{"nodeType":"YulAssignment","src":"2755:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2784:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2765:18:139"},"nodeType":"YulFunctionCall","src":"2765:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2755:6:139"}]},{"nodeType":"YulAssignment","src":"2803:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2836:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2847:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2832:3:139"},"nodeType":"YulFunctionCall","src":"2832:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2813:18:139"},"nodeType":"YulFunctionCall","src":"2813:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2803:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2860:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2891:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2902:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2887:3:139"},"nodeType":"YulFunctionCall","src":"2887:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2874:12:139"},"nodeType":"YulFunctionCall","src":"2874:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2864:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2915:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2925:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2919:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2970:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2979:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2987:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2972:6:139"},"nodeType":"YulFunctionCall","src":"2972:22:139"},"nodeType":"YulExpressionStatement","src":"2972:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2958:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2966:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2955:2:139"},"nodeType":"YulFunctionCall","src":"2955:14:139"},"nodeType":"YulIf","src":"2952:2:139"},{"nodeType":"YulAssignment","src":"3005:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3048:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3059:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3044:3:139"},"nodeType":"YulFunctionCall","src":"3044:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3068:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"3015:28:139"},"nodeType":"YulFunctionCall","src":"3015:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3005:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3085:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3118:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3129:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3114:3:139"},"nodeType":"YulFunctionCall","src":"3114:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3101:12:139"},"nodeType":"YulFunctionCall","src":"3101:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3089:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3162:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3171:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3179:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3164:6:139"},"nodeType":"YulFunctionCall","src":"3164:22:139"},"nodeType":"YulExpressionStatement","src":"3164:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3148:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3158:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3145:2:139"},"nodeType":"YulFunctionCall","src":"3145:16:139"},"nodeType":"YulIf","src":"3142:2:139"},{"nodeType":"YulAssignment","src":"3197:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3240:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3251:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3236:3:139"},"nodeType":"YulFunctionCall","src":"3236:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3262:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"3207:28:139"},"nodeType":"YulFunctionCall","src":"3207:63:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3197:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3279:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3312:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3323:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3308:3:139"},"nodeType":"YulFunctionCall","src":"3308:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3295:12:139"},"nodeType":"YulFunctionCall","src":"3295:33:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"3283:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3357:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3366:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3374:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3359:6:139"},"nodeType":"YulFunctionCall","src":"3359:22:139"},"nodeType":"YulExpressionStatement","src":"3359:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"3343:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3353:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3340:2:139"},"nodeType":"YulFunctionCall","src":"3340:16:139"},"nodeType":"YulIf","src":"3337:2:139"},{"nodeType":"YulAssignment","src":"3392:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3423:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"3434:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3419:3:139"},"nodeType":"YulFunctionCall","src":"3419:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3445:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3402:16:139"},"nodeType":"YulFunctionCall","src":"3402:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3392:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2607:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2618:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2630:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2638:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2646:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2654:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2662:6:139","type":""}],"src":"2476:983:139"},{"body":{"nodeType":"YulBlock","src":"3594:427:139","statements":[{"body":{"nodeType":"YulBlock","src":"3641:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3650:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3658:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3643:6:139"},"nodeType":"YulFunctionCall","src":"3643:22:139"},"nodeType":"YulExpressionStatement","src":"3643:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3615:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3624:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3611:3:139"},"nodeType":"YulFunctionCall","src":"3611:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3636:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3607:3:139"},"nodeType":"YulFunctionCall","src":"3607:33:139"},"nodeType":"YulIf","src":"3604:2:139"},{"nodeType":"YulAssignment","src":"3676:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3705:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3686:18:139"},"nodeType":"YulFunctionCall","src":"3686:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3676:6:139"}]},{"nodeType":"YulAssignment","src":"3724:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3757:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3768:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3753:3:139"},"nodeType":"YulFunctionCall","src":"3753:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3734:18:139"},"nodeType":"YulFunctionCall","src":"3734:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3724:6:139"}]},{"nodeType":"YulAssignment","src":"3781:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3808:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3819:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3804:3:139"},"nodeType":"YulFunctionCall","src":"3804:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3791:12:139"},"nodeType":"YulFunctionCall","src":"3791:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3781:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3832:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3863:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3874:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3859:3:139"},"nodeType":"YulFunctionCall","src":"3859:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3846:12:139"},"nodeType":"YulFunctionCall","src":"3846:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3836:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3921:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3930:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"3938:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3923:6:139"},"nodeType":"YulFunctionCall","src":"3923:22:139"},"nodeType":"YulExpressionStatement","src":"3923:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3893:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3901:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3890:2:139"},"nodeType":"YulFunctionCall","src":"3890:30:139"},"nodeType":"YulIf","src":"3887:2:139"},{"nodeType":"YulAssignment","src":"3956:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3998:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:139"},"nodeType":"YulFunctionCall","src":"3983:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4007:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3966:16:139"},"nodeType":"YulFunctionCall","src":"3966:49:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3956:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3536:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3547:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3559:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3567:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3575:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3583:6:139","type":""}],"src":"3464:557:139"},{"body":{"nodeType":"YulBlock","src":"4173:479:139","statements":[{"body":{"nodeType":"YulBlock","src":"4220:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4229:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4237:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4222:6:139"},"nodeType":"YulFunctionCall","src":"4222:22:139"},"nodeType":"YulExpressionStatement","src":"4222:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4194:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4203:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4190:3:139"},"nodeType":"YulFunctionCall","src":"4190:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4215:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4186:3:139"},"nodeType":"YulFunctionCall","src":"4186:33:139"},"nodeType":"YulIf","src":"4183:2:139"},{"nodeType":"YulAssignment","src":"4255:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4284:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4265:18:139"},"nodeType":"YulFunctionCall","src":"4265:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4255:6:139"}]},{"nodeType":"YulAssignment","src":"4303:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4336:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4347:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4332:3:139"},"nodeType":"YulFunctionCall","src":"4332:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4313:18:139"},"nodeType":"YulFunctionCall","src":"4313:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4303:6:139"}]},{"nodeType":"YulAssignment","src":"4360:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4387:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4398:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4383:3:139"},"nodeType":"YulFunctionCall","src":"4383:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4370:12:139"},"nodeType":"YulFunctionCall","src":"4370:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4360:6:139"}]},{"nodeType":"YulAssignment","src":"4411:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4438:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4449:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4434:3:139"},"nodeType":"YulFunctionCall","src":"4434:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4421:12:139"},"nodeType":"YulFunctionCall","src":"4421:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4411:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4462:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4493:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4504:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4489:3:139"},"nodeType":"YulFunctionCall","src":"4489:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4476:12:139"},"nodeType":"YulFunctionCall","src":"4476:33:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4466:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4552:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4561:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4569:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4554:6:139"},"nodeType":"YulFunctionCall","src":"4554:22:139"},"nodeType":"YulExpressionStatement","src":"4554:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4524:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4532:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4521:2:139"},"nodeType":"YulFunctionCall","src":"4521:30:139"},"nodeType":"YulIf","src":"4518:2:139"},{"nodeType":"YulAssignment","src":"4587:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4618:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4629:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4614:3:139"},"nodeType":"YulFunctionCall","src":"4614:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4638:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4597:16:139"},"nodeType":"YulFunctionCall","src":"4597:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4587:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4107:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4118:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4130:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4138:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4146:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4154:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4162:6:139","type":""}],"src":"4026:626:139"},{"body":{"nodeType":"YulBlock","src":"4814:552:139","statements":[{"body":{"nodeType":"YulBlock","src":"4861:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"4870:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"4878:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4863:6:139"},"nodeType":"YulFunctionCall","src":"4863:22:139"},"nodeType":"YulExpressionStatement","src":"4863:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4835:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4844:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4831:3:139"},"nodeType":"YulFunctionCall","src":"4831:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4856:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4827:3:139"},"nodeType":"YulFunctionCall","src":"4827:33:139"},"nodeType":"YulIf","src":"4824:2:139"},{"nodeType":"YulAssignment","src":"4896:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4925:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4906:18:139"},"nodeType":"YulFunctionCall","src":"4906:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4896:6:139"}]},{"nodeType":"YulAssignment","src":"4944:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4971:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4982:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4967:3:139"},"nodeType":"YulFunctionCall","src":"4967:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4954:12:139"},"nodeType":"YulFunctionCall","src":"4954:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4944:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4995:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5026:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5037:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5022:3:139"},"nodeType":"YulFunctionCall","src":"5022:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5009:12:139"},"nodeType":"YulFunctionCall","src":"5009:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4999:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5084:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"5093:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"5101:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5086:6:139"},"nodeType":"YulFunctionCall","src":"5086:22:139"},"nodeType":"YulExpressionStatement","src":"5086:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5056:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5064:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5053:2:139"},"nodeType":"YulFunctionCall","src":"5053:30:139"},"nodeType":"YulIf","src":"5050:2:139"},{"nodeType":"YulVariableDeclaration","src":"5119:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5175:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5186:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5171:3:139"},"nodeType":"YulFunctionCall","src":"5171:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5195:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5145:25:139"},"nodeType":"YulFunctionCall","src":"5145:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5123:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5133:8:139","type":""}]},{"nodeType":"YulAssignment","src":"5212:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5222:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5212:6:139"}]},{"nodeType":"YulAssignment","src":"5239:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5249:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5239:6:139"}]},{"nodeType":"YulAssignment","src":"5266:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5293:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5304:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5289:3:139"},"nodeType":"YulFunctionCall","src":"5289:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5276:12:139"},"nodeType":"YulFunctionCall","src":"5276:32:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5266:6:139"}]},{"nodeType":"YulAssignment","src":"5317:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5344:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5355:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5340:3:139"},"nodeType":"YulFunctionCall","src":"5340:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5327:12:139"},"nodeType":"YulFunctionCall","src":"5327:33:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"5317:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4740:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4751:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4763:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4771:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4779:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4787:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4795:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4803:6:139","type":""}],"src":"4657:709:139"},{"body":{"nodeType":"YulBlock","src":"5545:604:139","statements":[{"body":{"nodeType":"YulBlock","src":"5592:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"5601:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"5609:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5594:6:139"},"nodeType":"YulFunctionCall","src":"5594:22:139"},"nodeType":"YulExpressionStatement","src":"5594:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5566:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5575:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5562:3:139"},"nodeType":"YulFunctionCall","src":"5562:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5587:3:139","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5558:3:139"},"nodeType":"YulFunctionCall","src":"5558:33:139"},"nodeType":"YulIf","src":"5555:2:139"},{"nodeType":"YulAssignment","src":"5627:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5656:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5637:18:139"},"nodeType":"YulFunctionCall","src":"5637:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5627:6:139"}]},{"nodeType":"YulAssignment","src":"5675:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5702:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5713:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5698:3:139"},"nodeType":"YulFunctionCall","src":"5698:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5685:12:139"},"nodeType":"YulFunctionCall","src":"5685:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5675:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5726:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5757:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5768:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5753:3:139"},"nodeType":"YulFunctionCall","src":"5753:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5740:12:139"},"nodeType":"YulFunctionCall","src":"5740:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5730:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5815:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"5824:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"5832:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5817:6:139"},"nodeType":"YulFunctionCall","src":"5817:22:139"},"nodeType":"YulExpressionStatement","src":"5817:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5787:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5795:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5784:2:139"},"nodeType":"YulFunctionCall","src":"5784:30:139"},"nodeType":"YulIf","src":"5781:2:139"},{"nodeType":"YulVariableDeclaration","src":"5850:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5906:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5917:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5902:3:139"},"nodeType":"YulFunctionCall","src":"5902:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5926:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5876:25:139"},"nodeType":"YulFunctionCall","src":"5876:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5854:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5864:8:139","type":""}]},{"nodeType":"YulAssignment","src":"5943:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5953:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5943:6:139"}]},{"nodeType":"YulAssignment","src":"5970:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5980:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5970:6:139"}]},{"nodeType":"YulAssignment","src":"5997:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6024:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6035:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6020:3:139"},"nodeType":"YulFunctionCall","src":"6020:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6007:12:139"},"nodeType":"YulFunctionCall","src":"6007:32:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5997:6:139"}]},{"nodeType":"YulAssignment","src":"6048:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6075:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6086:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:139"},"nodeType":"YulFunctionCall","src":"6071:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6058:12:139"},"nodeType":"YulFunctionCall","src":"6058:33:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6048:6:139"}]},{"nodeType":"YulAssignment","src":"6100:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6127:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6138:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6123:3:139"},"nodeType":"YulFunctionCall","src":"6123:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6110:12:139"},"nodeType":"YulFunctionCall","src":"6110:33:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"6100:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5463:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5474:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5486:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5494:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5502:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5510:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5518:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5526:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5534:6:139","type":""}],"src":"5371:778:139"},{"body":{"nodeType":"YulBlock","src":"6408:1023:139","statements":[{"body":{"nodeType":"YulBlock","src":"6455:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6464:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6472:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6457:6:139"},"nodeType":"YulFunctionCall","src":"6457:22:139"},"nodeType":"YulExpressionStatement","src":"6457:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6429:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6438:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6425:3:139"},"nodeType":"YulFunctionCall","src":"6425:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6450:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6421:3:139"},"nodeType":"YulFunctionCall","src":"6421:33:139"},"nodeType":"YulIf","src":"6418:2:139"},{"nodeType":"YulVariableDeclaration","src":"6490:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6517:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6504:12:139"},"nodeType":"YulFunctionCall","src":"6504:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6494:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6536:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"6546:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6540:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6591:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6600:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6608:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6593:6:139"},"nodeType":"YulFunctionCall","src":"6593:22:139"},"nodeType":"YulExpressionStatement","src":"6593:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6579:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6587:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6576:2:139"},"nodeType":"YulFunctionCall","src":"6576:14:139"},"nodeType":"YulIf","src":"6573:2:139"},{"nodeType":"YulVariableDeclaration","src":"6626:96:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6694:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"6705:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6690:3:139"},"nodeType":"YulFunctionCall","src":"6690:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6714:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6652:37:139"},"nodeType":"YulFunctionCall","src":"6652:70:139"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"6630:8:139","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"6640:8:139","type":""}]},{"nodeType":"YulAssignment","src":"6731:18:139","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"6741:8:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6731:6:139"}]},{"nodeType":"YulAssignment","src":"6758:18:139","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6768:8:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6758:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6785:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6818:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6829:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6814:3:139"},"nodeType":"YulFunctionCall","src":"6814:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6801:12:139"},"nodeType":"YulFunctionCall","src":"6801:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6789:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6862:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"6871:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"6879:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6864:6:139"},"nodeType":"YulFunctionCall","src":"6864:22:139"},"nodeType":"YulExpressionStatement","src":"6864:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6848:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6858:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6845:2:139"},"nodeType":"YulFunctionCall","src":"6845:16:139"},"nodeType":"YulIf","src":"6842:2:139"},{"nodeType":"YulVariableDeclaration","src":"6897:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6965:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6976:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6961:3:139"},"nodeType":"YulFunctionCall","src":"6961:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6987:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6923:37:139"},"nodeType":"YulFunctionCall","src":"6923:72:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"6901:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6911:8:139","type":""}]},{"nodeType":"YulAssignment","src":"7004:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7014:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7004:6:139"}]},{"nodeType":"YulAssignment","src":"7031:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7041:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7031:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7058:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7102:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7087:3:139"},"nodeType":"YulFunctionCall","src":"7087:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7074:12:139"},"nodeType":"YulFunctionCall","src":"7074:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7062:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7135:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7144:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7152:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7137:6:139"},"nodeType":"YulFunctionCall","src":"7137:22:139"},"nodeType":"YulExpressionStatement","src":"7137:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"7121:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7131:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7118:2:139"},"nodeType":"YulFunctionCall","src":"7118:16:139"},"nodeType":"YulIf","src":"7115:2:139"},{"nodeType":"YulVariableDeclaration","src":"7170:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7238:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"7249:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7234:3:139"},"nodeType":"YulFunctionCall","src":"7234:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7260:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7196:37:139"},"nodeType":"YulFunctionCall","src":"7196:72:139"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"7174:8:139","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"7184:8:139","type":""}]},{"nodeType":"YulAssignment","src":"7277:18:139","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"7287:8:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7277:6:139"}]},{"nodeType":"YulAssignment","src":"7304:18:139","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"7314:8:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7304:6:139"}]},{"nodeType":"YulAssignment","src":"7331:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7358:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7369:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7354:3:139"},"nodeType":"YulFunctionCall","src":"7354:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7341:12:139"},"nodeType":"YulFunctionCall","src":"7341:32:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"7331:6:139"}]},{"nodeType":"YulAssignment","src":"7382:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7409:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7420:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7405:3:139"},"nodeType":"YulFunctionCall","src":"7405:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7392:12:139"},"nodeType":"YulFunctionCall","src":"7392:33:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"7382:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6318:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6329:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6341:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6349:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6357:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6365:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6373:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6381:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6389:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6397:6:139","type":""}],"src":"6154:1277:139"},{"body":{"nodeType":"YulBlock","src":"7707:1075:139","statements":[{"body":{"nodeType":"YulBlock","src":"7754:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7763:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7771:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7756:6:139"},"nodeType":"YulFunctionCall","src":"7756:22:139"},"nodeType":"YulExpressionStatement","src":"7756:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7728:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7737:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7724:3:139"},"nodeType":"YulFunctionCall","src":"7724:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7749:3:139","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7720:3:139"},"nodeType":"YulFunctionCall","src":"7720:33:139"},"nodeType":"YulIf","src":"7717:2:139"},{"nodeType":"YulVariableDeclaration","src":"7789:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7816:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7803:12:139"},"nodeType":"YulFunctionCall","src":"7803:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7793:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7835:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"7845:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7839:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7890:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7899:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7907:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7892:6:139"},"nodeType":"YulFunctionCall","src":"7892:22:139"},"nodeType":"YulExpressionStatement","src":"7892:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7878:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7886:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7875:2:139"},"nodeType":"YulFunctionCall","src":"7875:14:139"},"nodeType":"YulIf","src":"7872:2:139"},{"nodeType":"YulVariableDeclaration","src":"7925:96:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7993:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"8004:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7989:3:139"},"nodeType":"YulFunctionCall","src":"7989:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8013:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7951:37:139"},"nodeType":"YulFunctionCall","src":"7951:70:139"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7929:8:139","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7939:8:139","type":""}]},{"nodeType":"YulAssignment","src":"8030:18:139","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"8040:8:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8030:6:139"}]},{"nodeType":"YulAssignment","src":"8057:18:139","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"8067:8:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8057:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8084:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8117:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8128:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8113:3:139"},"nodeType":"YulFunctionCall","src":"8113:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8100:12:139"},"nodeType":"YulFunctionCall","src":"8100:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8088:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8161:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8170:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8178:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8163:6:139"},"nodeType":"YulFunctionCall","src":"8163:22:139"},"nodeType":"YulExpressionStatement","src":"8163:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8147:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8157:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8144:2:139"},"nodeType":"YulFunctionCall","src":"8144:16:139"},"nodeType":"YulIf","src":"8141:2:139"},{"nodeType":"YulVariableDeclaration","src":"8196:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8264:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8275:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8260:3:139"},"nodeType":"YulFunctionCall","src":"8260:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8286:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"8222:37:139"},"nodeType":"YulFunctionCall","src":"8222:72:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"8200:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"8210:8:139","type":""}]},{"nodeType":"YulAssignment","src":"8303:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"8313:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8303:6:139"}]},{"nodeType":"YulAssignment","src":"8330:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"8340:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8330:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8357:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8390:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8401:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8386:3:139"},"nodeType":"YulFunctionCall","src":"8386:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8373:12:139"},"nodeType":"YulFunctionCall","src":"8373:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"8361:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8434:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8443:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8451:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8436:6:139"},"nodeType":"YulFunctionCall","src":"8436:22:139"},"nodeType":"YulExpressionStatement","src":"8436:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"8420:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8430:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8417:2:139"},"nodeType":"YulFunctionCall","src":"8417:16:139"},"nodeType":"YulIf","src":"8414:2:139"},{"nodeType":"YulVariableDeclaration","src":"8469:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8537:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"8548:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8533:3:139"},"nodeType":"YulFunctionCall","src":"8533:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8559:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"8495:37:139"},"nodeType":"YulFunctionCall","src":"8495:72:139"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"8473:8:139","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"8483:8:139","type":""}]},{"nodeType":"YulAssignment","src":"8576:18:139","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"8586:8:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8576:6:139"}]},{"nodeType":"YulAssignment","src":"8603:18:139","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"8613:8:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"8603:6:139"}]},{"nodeType":"YulAssignment","src":"8630:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8657:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8668:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8653:3:139"},"nodeType":"YulFunctionCall","src":"8653:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8640:12:139"},"nodeType":"YulFunctionCall","src":"8640:32:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"8630:6:139"}]},{"nodeType":"YulAssignment","src":"8681:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8708:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8719:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8704:3:139"},"nodeType":"YulFunctionCall","src":"8704:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8691:12:139"},"nodeType":"YulFunctionCall","src":"8691:33:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"8681:6:139"}]},{"nodeType":"YulAssignment","src":"8733:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8760:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8771:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8756:3:139"},"nodeType":"YulFunctionCall","src":"8756:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8743:12:139"},"nodeType":"YulFunctionCall","src":"8743:33:139"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"8733:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7609:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7620:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7632:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7640:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7648:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7656:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7664:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"7672:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"7680:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"7688:6:139","type":""},{"name":"value8","nodeType":"YulTypedName","src":"7696:6:139","type":""}],"src":"7436:1346:139"},{"body":{"nodeType":"YulBlock","src":"8857:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"8903:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8912:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8920:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8905:6:139"},"nodeType":"YulFunctionCall","src":"8905:22:139"},"nodeType":"YulExpressionStatement","src":"8905:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8878:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8887:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8874:3:139"},"nodeType":"YulFunctionCall","src":"8874:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8899:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8870:3:139"},"nodeType":"YulFunctionCall","src":"8870:32:139"},"nodeType":"YulIf","src":"8867:2:139"},{"nodeType":"YulAssignment","src":"8938:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8961:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8948:12:139"},"nodeType":"YulFunctionCall","src":"8948:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8938:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8823:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8834:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8846:6:139","type":""}],"src":"8787:190:139"},{"body":{"nodeType":"YulBlock","src":"9069:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"9115:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9124:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9132:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9117:6:139"},"nodeType":"YulFunctionCall","src":"9117:22:139"},"nodeType":"YulExpressionStatement","src":"9117:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9090:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9099:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9086:3:139"},"nodeType":"YulFunctionCall","src":"9086:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9111:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9082:3:139"},"nodeType":"YulFunctionCall","src":"9082:32:139"},"nodeType":"YulIf","src":"9079:2:139"},{"nodeType":"YulAssignment","src":"9150:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9173:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9160:12:139"},"nodeType":"YulFunctionCall","src":"9160:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9150:6:139"}]},{"nodeType":"YulAssignment","src":"9192:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9225:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9236:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9221:3:139"},"nodeType":"YulFunctionCall","src":"9221:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"9202:18:139"},"nodeType":"YulFunctionCall","src":"9202:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9192:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9027:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9038:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9050:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9058:6:139","type":""}],"src":"8982:264:139"},{"body":{"nodeType":"YulBlock","src":"9338:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"9384:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9393:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9401:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9386:6:139"},"nodeType":"YulFunctionCall","src":"9386:22:139"},"nodeType":"YulExpressionStatement","src":"9386:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9359:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9368:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9355:3:139"},"nodeType":"YulFunctionCall","src":"9355:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9380:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9351:3:139"},"nodeType":"YulFunctionCall","src":"9351:32:139"},"nodeType":"YulIf","src":"9348:2:139"},{"nodeType":"YulAssignment","src":"9419:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9442:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9429:12:139"},"nodeType":"YulFunctionCall","src":"9429:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9419:6:139"}]},{"nodeType":"YulAssignment","src":"9461:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9488:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9499:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9484:3:139"},"nodeType":"YulFunctionCall","src":"9484:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9471:12:139"},"nodeType":"YulFunctionCall","src":"9471:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9461:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9296:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9307:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9319:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9327:6:139","type":""}],"src":"9251:258:139"},{"body":{"nodeType":"YulBlock","src":"9583:237:139","statements":[{"body":{"nodeType":"YulBlock","src":"9629:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9638:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9646:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9631:6:139"},"nodeType":"YulFunctionCall","src":"9631:22:139"},"nodeType":"YulExpressionStatement","src":"9631:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9604:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9613:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9600:3:139"},"nodeType":"YulFunctionCall","src":"9600:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9625:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9596:3:139"},"nodeType":"YulFunctionCall","src":"9596:32:139"},"nodeType":"YulIf","src":"9593:2:139"},{"nodeType":"YulVariableDeclaration","src":"9664:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9690:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9677:12:139"},"nodeType":"YulFunctionCall","src":"9677:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9668:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9764:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9773:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9781:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9766:6:139"},"nodeType":"YulFunctionCall","src":"9766:22:139"},"nodeType":"YulExpressionStatement","src":"9766:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9722:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9733:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9744:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9749:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9740:3:139"},"nodeType":"YulFunctionCall","src":"9740:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9729:3:139"},"nodeType":"YulFunctionCall","src":"9729:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9719:2:139"},"nodeType":"YulFunctionCall","src":"9719:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9712:6:139"},"nodeType":"YulFunctionCall","src":"9712:51:139"},"nodeType":"YulIf","src":"9709:2:139"},{"nodeType":"YulAssignment","src":"9799:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"9809:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9799:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9549:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9560:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9572:6:139","type":""}],"src":"9514:306:139"},{"body":{"nodeType":"YulBlock","src":"9895:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"9941:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9950:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9958:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9943:6:139"},"nodeType":"YulFunctionCall","src":"9943:22:139"},"nodeType":"YulExpressionStatement","src":"9943:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9916:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9925:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9912:3:139"},"nodeType":"YulFunctionCall","src":"9912:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9937:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9908:3:139"},"nodeType":"YulFunctionCall","src":"9908:32:139"},"nodeType":"YulIf","src":"9905:2:139"},{"nodeType":"YulAssignment","src":"9976:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9999:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9986:12:139"},"nodeType":"YulFunctionCall","src":"9986:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9976:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9861:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9872:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9884:6:139","type":""}],"src":"9825:190:139"},{"body":{"nodeType":"YulBlock","src":"10105:959:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10122:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"10127:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10115:6:139"},"nodeType":"YulFunctionCall","src":"10115:19:139"},"nodeType":"YulExpressionStatement","src":"10115:19:139"},{"nodeType":"YulVariableDeclaration","src":"10143:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"10153:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10147:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10166:31:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10189:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10194:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10185:3:139"},"nodeType":"YulFunctionCall","src":"10185:12:139"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"10170:11:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10206:24:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"10219:11:139"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"10210:5:139","type":""}]},{"nodeType":"YulAssignment","src":"10239:18:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"10246:11:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10239:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"10266:38:139","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"10282:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10293:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"10296:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10289:3:139"},"nodeType":"YulFunctionCall","src":"10289:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10278:3:139"},"nodeType":"YulFunctionCall","src":"10278:26:139"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"10270:4:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10313:19:139","value":{"name":"value","nodeType":"YulIdentifier","src":"10327:5:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"10317:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10341:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"10350:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10345:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10411:627:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10432:3:139"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10441:4:139"},{"name":"pos_1","nodeType":"YulIdentifier","src":"10447:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10437:3:139"},"nodeType":"YulFunctionCall","src":"10437:16:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10425:6:139"},"nodeType":"YulFunctionCall","src":"10425:29:139"},"nodeType":"YulExpressionStatement","src":"10425:29:139"},{"nodeType":"YulVariableDeclaration","src":"10467:46:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10506:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10493:12:139"},"nodeType":"YulFunctionCall","src":"10493:20:139"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"10471:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10603:20:139","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"10612:3:139"},{"name":"end","nodeType":"YulIdentifier","src":"10617:3:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10605:6:139"},"nodeType":"YulFunctionCall","src":"10605:16:139"},"nodeType":"YulExpressionStatement","src":"10605:16:139"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"10540:18:139"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"10568:12:139"},"nodeType":"YulFunctionCall","src":"10568:14:139"},{"name":"value","nodeType":"YulIdentifier","src":"10584:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10564:3:139"},"nodeType":"YulFunctionCall","src":"10564:26:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10596:2:139","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10592:3:139"},"nodeType":"YulFunctionCall","src":"10592:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10560:3:139"},"nodeType":"YulFunctionCall","src":"10560:40:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10536:3:139"},"nodeType":"YulFunctionCall","src":"10536:65:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10529:6:139"},"nodeType":"YulFunctionCall","src":"10529:73:139"},"nodeType":"YulIf","src":"10526:2:139"},{"nodeType":"YulVariableDeclaration","src":"10636:45:139","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"10655:18:139"},{"name":"value","nodeType":"YulIdentifier","src":"10675:5:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10651:3:139"},"nodeType":"YulFunctionCall","src":"10651:30:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10640:7:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10694:37:139","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10723:7:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10710:12:139"},"nodeType":"YulFunctionCall","src":"10710:21:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"10698:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10780:20:139","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"10789:3:139"},{"name":"end","nodeType":"YulIdentifier","src":"10794:3:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10782:6:139"},"nodeType":"YulFunctionCall","src":"10782:16:139"},"nodeType":"YulExpressionStatement","src":"10782:16:139"}]},"condition":{"arguments":[{"name":"length_1","nodeType":"YulIdentifier","src":"10750:8:139"},{"kind":"number","nodeType":"YulLiteral","src":"10760:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10747:2:139"},"nodeType":"YulFunctionCall","src":"10747:32:139"},"nodeType":"YulIf","src":"10744:2:139"},{"body":{"nodeType":"YulBlock","src":"10858:20:139","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"10867:3:139"},{"name":"end","nodeType":"YulIdentifier","src":"10872:3:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10860:6:139"},"nodeType":"YulFunctionCall","src":"10860:16:139"},"nodeType":"YulExpressionStatement","src":"10860:16:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10820:5:139"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"10831:12:139"},"nodeType":"YulFunctionCall","src":"10831:14:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"10847:8:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10827:3:139"},"nodeType":"YulFunctionCall","src":"10827:29:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"10816:3:139"},"nodeType":"YulFunctionCall","src":"10816:41:139"},"nodeType":"YulIf","src":"10813:2:139"},{"nodeType":"YulAssignment","src":"10891:67:139","value":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10929:7:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10938:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10925:3:139"},"nodeType":"YulFunctionCall","src":"10925:16:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"10943:8:139"},{"name":"tail","nodeType":"YulIdentifier","src":"10953:4:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"10899:25:139"},"nodeType":"YulFunctionCall","src":"10899:59:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10891:4:139"}]},{"nodeType":"YulAssignment","src":"10971:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10985:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10993:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10981:3:139"},"nodeType":"YulFunctionCall","src":"10981:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10971:6:139"}]},{"nodeType":"YulAssignment","src":"11009:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11020:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"11025:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11016:3:139"},"nodeType":"YulFunctionCall","src":"11016:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11009:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10373:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"10376:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10370:2:139"},"nodeType":"YulFunctionCall","src":"10370:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10384:18:139","statements":[{"nodeType":"YulAssignment","src":"10386:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10395:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"10398:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10391:3:139"},"nodeType":"YulFunctionCall","src":"10391:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10386:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"10366:3:139","statements":[]},"src":"10362:676:139"},{"nodeType":"YulAssignment","src":"11047:11:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"11054:4:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11047:3:139"}]}]},"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10074:5:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"10081:6:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10089:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10097:3:139","type":""}],"src":"10020:1044:139"},{"body":{"nodeType":"YulBlock","src":"11135:202:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11152:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"11157:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11145:6:139"},"nodeType":"YulFunctionCall","src":"11145:19:139"},"nodeType":"YulExpressionStatement","src":"11145:19:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11190:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"11195:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11186:3:139"},"nodeType":"YulFunctionCall","src":"11186:14:139"},{"name":"start","nodeType":"YulIdentifier","src":"11202:5:139"},{"name":"length","nodeType":"YulIdentifier","src":"11209:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11173:12:139"},"nodeType":"YulFunctionCall","src":"11173:43:139"},"nodeType":"YulExpressionStatement","src":"11173:43:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11240:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"11245:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11236:3:139"},"nodeType":"YulFunctionCall","src":"11236:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"11254:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11232:3:139"},"nodeType":"YulFunctionCall","src":"11232:27:139"},{"name":"end","nodeType":"YulIdentifier","src":"11261:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11225:6:139"},"nodeType":"YulFunctionCall","src":"11225:40:139"},"nodeType":"YulExpressionStatement","src":"11225:40:139"},{"nodeType":"YulAssignment","src":"11274:57:139","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11289:3:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11302:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"11310:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11298:3:139"},"nodeType":"YulFunctionCall","src":"11298:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11319:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11315:3:139"},"nodeType":"YulFunctionCall","src":"11315:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11294:3:139"},"nodeType":"YulFunctionCall","src":"11294:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11285:3:139"},"nodeType":"YulFunctionCall","src":"11285:39:139"},{"kind":"number","nodeType":"YulLiteral","src":"11326:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11281:3:139"},"nodeType":"YulFunctionCall","src":"11281:50:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11274:3:139"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"11104:5:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"11111:6:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11119:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11127:3:139","type":""}],"src":"11069:268:139"},{"body":{"nodeType":"YulBlock","src":"11489:126:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11512:3:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11517:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"11525:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11499:12:139"},"nodeType":"YulFunctionCall","src":"11499:33:139"},"nodeType":"YulExpressionStatement","src":"11499:33:139"},{"nodeType":"YulVariableDeclaration","src":"11541:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11555:3:139"},{"name":"value1","nodeType":"YulIdentifier","src":"11560:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11551:3:139"},"nodeType":"YulFunctionCall","src":"11551:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11545:2:139","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11583:2:139"},{"name":"end","nodeType":"YulIdentifier","src":"11587:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11576:6:139"},"nodeType":"YulFunctionCall","src":"11576:15:139"},"nodeType":"YulExpressionStatement","src":"11576:15:139"},{"nodeType":"YulAssignment","src":"11600:9:139","value":{"name":"_1","nodeType":"YulIdentifier","src":"11607:2:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11600:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11457:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11462:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11470:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11481:3:139","type":""}],"src":"11342:273:139"},{"body":{"nodeType":"YulBlock","src":"12009:397:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12026:3:139"},{"kind":"string","nodeType":"YulLiteral","src":"12031:25:139","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12019:6:139"},"nodeType":"YulFunctionCall","src":"12019:38:139"},"nodeType":"YulExpressionStatement","src":"12019:38:139"},{"nodeType":"YulVariableDeclaration","src":"12066:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12086:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12080:5:139"},"nodeType":"YulFunctionCall","src":"12080:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12070:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12128:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"12136:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12124:3:139"},"nodeType":"YulFunctionCall","src":"12124:17:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12147:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"12152:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12143:3:139"},"nodeType":"YulFunctionCall","src":"12143:12:139"},{"name":"length","nodeType":"YulIdentifier","src":"12157:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12102:21:139"},"nodeType":"YulFunctionCall","src":"12102:62:139"},"nodeType":"YulExpressionStatement","src":"12102:62:139"},{"nodeType":"YulVariableDeclaration","src":"12173:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12187:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"12192:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12183:3:139"},"nodeType":"YulFunctionCall","src":"12183:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12177:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12219:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"12223:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12215:3:139"},"nodeType":"YulFunctionCall","src":"12215:11:139"},{"kind":"string","nodeType":"YulLiteral","src":"12228:19:139","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12208:6:139"},"nodeType":"YulFunctionCall","src":"12208:40:139"},"nodeType":"YulExpressionStatement","src":"12208:40:139"},{"nodeType":"YulVariableDeclaration","src":"12257:29:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12279:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12273:5:139"},"nodeType":"YulFunctionCall","src":"12273:13:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"12261:8:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12321:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"12329:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12317:3:139"},"nodeType":"YulFunctionCall","src":"12317:17:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12340:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"12344:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12336:3:139"},"nodeType":"YulFunctionCall","src":"12336:11:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"12349:8:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12295:21:139"},"nodeType":"YulFunctionCall","src":"12295:63:139"},"nodeType":"YulExpressionStatement","src":"12295:63:139"},{"nodeType":"YulAssignment","src":"12367:33:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12382:2:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"12386:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12378:3:139"},"nodeType":"YulFunctionCall","src":"12378:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"12397:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12374:3:139"},"nodeType":"YulFunctionCall","src":"12374:26:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12367:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11977:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11982:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11990:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12001:3:139","type":""}],"src":"11620:786:139"},{"body":{"nodeType":"YulBlock","src":"12512:102:139","statements":[{"nodeType":"YulAssignment","src":"12522:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12534:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12545:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12530:3:139"},"nodeType":"YulFunctionCall","src":"12530:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12522:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12564:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12579:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12595:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12600:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12591:3:139"},"nodeType":"YulFunctionCall","src":"12591:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12604:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12587:3:139"},"nodeType":"YulFunctionCall","src":"12587:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12575:3:139"},"nodeType":"YulFunctionCall","src":"12575:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12557:6:139"},"nodeType":"YulFunctionCall","src":"12557:51:139"},"nodeType":"YulExpressionStatement","src":"12557:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12481:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12492:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12503:4:139","type":""}],"src":"12411:203:139"},{"body":{"nodeType":"YulBlock","src":"12804:227:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12821:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12836:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12852:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12857:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12848:3:139"},"nodeType":"YulFunctionCall","src":"12848:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12861:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12844:3:139"},"nodeType":"YulFunctionCall","src":"12844:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12832:3:139"},"nodeType":"YulFunctionCall","src":"12832:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12814:6:139"},"nodeType":"YulFunctionCall","src":"12814:51:139"},"nodeType":"YulExpressionStatement","src":"12814:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12885:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12896:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12881:3:139"},"nodeType":"YulFunctionCall","src":"12881:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"12901:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12874:6:139"},"nodeType":"YulFunctionCall","src":"12874:34:139"},"nodeType":"YulExpressionStatement","src":"12874:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12928:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12939:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12924:3:139"},"nodeType":"YulFunctionCall","src":"12924:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12944:2:139","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12917:6:139"},"nodeType":"YulFunctionCall","src":"12917:30:139"},"nodeType":"YulExpressionStatement","src":"12917:30:139"},{"nodeType":"YulAssignment","src":"12956:69:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12990:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"12998:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13010:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13021:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13006:3:139"},"nodeType":"YulFunctionCall","src":"13006:18:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"12964:25:139"},"nodeType":"YulFunctionCall","src":"12964:61:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12956:4:139"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12749:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12760:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12768:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12776:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12784:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12795:4:139","type":""}],"src":"12619:412:139"},{"body":{"nodeType":"YulBlock","src":"13277:316:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13294:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13309:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13325:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13330:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13321:3:139"},"nodeType":"YulFunctionCall","src":"13321:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"13334:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13317:3:139"},"nodeType":"YulFunctionCall","src":"13317:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13305:3:139"},"nodeType":"YulFunctionCall","src":"13305:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13287:6:139"},"nodeType":"YulFunctionCall","src":"13287:51:139"},"nodeType":"YulExpressionStatement","src":"13287:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13358:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13369:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13354:3:139"},"nodeType":"YulFunctionCall","src":"13354:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"13374:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13347:6:139"},"nodeType":"YulFunctionCall","src":"13347:34:139"},"nodeType":"YulExpressionStatement","src":"13347:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13401:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13412:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13397:3:139"},"nodeType":"YulFunctionCall","src":"13397:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13417:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13390:6:139"},"nodeType":"YulFunctionCall","src":"13390:31:139"},"nodeType":"YulExpressionStatement","src":"13390:31:139"},{"nodeType":"YulAssignment","src":"13430:70:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13464:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"13472:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13484:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13495:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13480:3:139"},"nodeType":"YulFunctionCall","src":"13480:19:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13438:25:139"},"nodeType":"YulFunctionCall","src":"13438:62:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13430:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13520:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13531:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13516:3:139"},"nodeType":"YulFunctionCall","src":"13516:18:139"},{"name":"value4","nodeType":"YulIdentifier","src":"13536:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13509:6:139"},"nodeType":"YulFunctionCall","src":"13509:34:139"},"nodeType":"YulExpressionStatement","src":"13509:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13563:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13574:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13559:3:139"},"nodeType":"YulFunctionCall","src":"13559:19:139"},{"name":"value5","nodeType":"YulIdentifier","src":"13580:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13552:6:139"},"nodeType":"YulFunctionCall","src":"13552:35:139"},"nodeType":"YulExpressionStatement","src":"13552:35:139"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13206:9:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13217:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13225:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13233:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13241:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13249:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13257:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13268:4:139","type":""}],"src":"13036:557:139"},{"body":{"nodeType":"YulBlock","src":"13839:316:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13856:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13871:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13887:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13892:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13883:3:139"},"nodeType":"YulFunctionCall","src":"13883:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"13896:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13879:3:139"},"nodeType":"YulFunctionCall","src":"13879:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13867:3:139"},"nodeType":"YulFunctionCall","src":"13867:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13849:6:139"},"nodeType":"YulFunctionCall","src":"13849:51:139"},"nodeType":"YulExpressionStatement","src":"13849:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13920:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13931:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13916:3:139"},"nodeType":"YulFunctionCall","src":"13916:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"13936:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13909:6:139"},"nodeType":"YulFunctionCall","src":"13909:34:139"},"nodeType":"YulExpressionStatement","src":"13909:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13963:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13974:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13959:3:139"},"nodeType":"YulFunctionCall","src":"13959:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13979:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13952:6:139"},"nodeType":"YulFunctionCall","src":"13952:31:139"},"nodeType":"YulExpressionStatement","src":"13952:31:139"},{"nodeType":"YulAssignment","src":"13992:70:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14026:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"14034:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14046:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14057:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14042:3:139"},"nodeType":"YulFunctionCall","src":"14042:19:139"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"14000:25:139"},"nodeType":"YulFunctionCall","src":"14000:62:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13992:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14093:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14078:3:139"},"nodeType":"YulFunctionCall","src":"14078:18:139"},{"name":"value4","nodeType":"YulIdentifier","src":"14098:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14071:6:139"},"nodeType":"YulFunctionCall","src":"14071:34:139"},"nodeType":"YulExpressionStatement","src":"14071:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14125:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14136:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14121:3:139"},"nodeType":"YulFunctionCall","src":"14121:19:139"},{"name":"value5","nodeType":"YulIdentifier","src":"14142:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14114:6:139"},"nodeType":"YulFunctionCall","src":"14114:35:139"},"nodeType":"YulExpressionStatement","src":"14114:35:139"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13768:9:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13779:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13787:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13795:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13803:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13811:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13819:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13830:4:139","type":""}],"src":"13598:557:139"},{"body":{"nodeType":"YulBlock","src":"14573:1035:139","statements":[{"nodeType":"YulVariableDeclaration","src":"14583:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14601:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14612:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14597:3:139"},"nodeType":"YulFunctionCall","src":"14597:19:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"14587:6:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14632:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14643:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14625:6:139"},"nodeType":"YulFunctionCall","src":"14625:22:139"},"nodeType":"YulExpressionStatement","src":"14625:22:139"},{"nodeType":"YulVariableDeclaration","src":"14656:17:139","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"14667:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"14660:3:139","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"14689:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"14697:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14682:6:139"},"nodeType":"YulFunctionCall","src":"14682:22:139"},"nodeType":"YulExpressionStatement","src":"14682:22:139"},{"nodeType":"YulAssignment","src":"14713:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14724:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14735:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14720:3:139"},"nodeType":"YulFunctionCall","src":"14720:19:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14713:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"14748:20:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"14762:6:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"14752:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14777:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"14786:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14781:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"14848:186:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14869:3:139"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14897:6:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"14878:18:139"},"nodeType":"YulFunctionCall","src":"14878:26:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14914:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14919:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14910:3:139"},"nodeType":"YulFunctionCall","src":"14910:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14923:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14906:3:139"},"nodeType":"YulFunctionCall","src":"14906:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14874:3:139"},"nodeType":"YulFunctionCall","src":"14874:52:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14862:6:139"},"nodeType":"YulFunctionCall","src":"14862:65:139"},"nodeType":"YulExpressionStatement","src":"14862:65:139"},{"nodeType":"YulVariableDeclaration","src":"14940:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"14950:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14944:2:139","type":""}]},{"nodeType":"YulAssignment","src":"14967:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14978:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14983:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14974:3:139"},"nodeType":"YulFunctionCall","src":"14974:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14967:3:139"}]},{"nodeType":"YulAssignment","src":"14999:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15013:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15021:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15009:3:139"},"nodeType":"YulFunctionCall","src":"15009:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14999:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14810:1:139"},{"name":"value1","nodeType":"YulIdentifier","src":"14813:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14807:2:139"},"nodeType":"YulFunctionCall","src":"14807:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14821:18:139","statements":[{"nodeType":"YulAssignment","src":"14823:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14832:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"14835:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14828:3:139"},"nodeType":"YulFunctionCall","src":"14828:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14823:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"14803:3:139","statements":[]},"src":"14799:235:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15054:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15065:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15050:3:139"},"nodeType":"YulFunctionCall","src":"15050:20:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15076:3:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"15081:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15072:3:139"},"nodeType":"YulFunctionCall","src":"15072:19:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15043:6:139"},"nodeType":"YulFunctionCall","src":"15043:49:139"},"nodeType":"YulExpressionStatement","src":"15043:49:139"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15108:3:139"},{"name":"value3","nodeType":"YulIdentifier","src":"15113:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15101:6:139"},"nodeType":"YulFunctionCall","src":"15101:19:139"},"nodeType":"YulExpressionStatement","src":"15101:19:139"},{"body":{"nodeType":"YulBlock","src":"15164:22:139","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15173:4:139"},{"name":"tail","nodeType":"YulIdentifier","src":"15179:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15166:6:139"},"nodeType":"YulFunctionCall","src":"15166:18:139"},"nodeType":"YulExpressionStatement","src":"15166:18:139"}]},"condition":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15135:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15151:3:139","type":"","value":"251"},{"kind":"number","nodeType":"YulLiteral","src":"15156:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15147:3:139"},"nodeType":"YulFunctionCall","src":"15147:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"15160:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15143:3:139"},"nodeType":"YulFunctionCall","src":"15143:19:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15132:2:139"},"nodeType":"YulFunctionCall","src":"15132:31:139"},"nodeType":"YulIf","src":"15129:2:139"},{"nodeType":"YulVariableDeclaration","src":"15195:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15213:1:139","type":"","value":"5"},{"name":"value3","nodeType":"YulIdentifier","src":"15216:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15209:3:139"},"nodeType":"YulFunctionCall","src":"15209:14:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15199:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15249:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"15254:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15245:3:139"},"nodeType":"YulFunctionCall","src":"15245:14:139"},{"name":"value2","nodeType":"YulIdentifier","src":"15261:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"15269:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15232:12:139"},"nodeType":"YulFunctionCall","src":"15232:44:139"},"nodeType":"YulExpressionStatement","src":"15232:44:139"},{"nodeType":"YulVariableDeclaration","src":"15285:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15299:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"15304:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15295:3:139"},"nodeType":"YulFunctionCall","src":"15295:16:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"15289:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15320:23:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"15334:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"15338:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15330:3:139"},"nodeType":"YulFunctionCall","src":"15330:13:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"15324:2:139","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"15359:2:139"},{"name":"tail","nodeType":"YulIdentifier","src":"15363:4:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15352:6:139"},"nodeType":"YulFunctionCall","src":"15352:16:139"},"nodeType":"YulExpressionStatement","src":"15352:16:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15388:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15399:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15384:3:139"},"nodeType":"YulFunctionCall","src":"15384:18:139"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"15412:2:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"15416:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15408:3:139"},"nodeType":"YulFunctionCall","src":"15408:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15428:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15404:3:139"},"nodeType":"YulFunctionCall","src":"15404:29:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15377:6:139"},"nodeType":"YulFunctionCall","src":"15377:57:139"},"nodeType":"YulExpressionStatement","src":"15377:57:139"},{"nodeType":"YulAssignment","src":"15443:72:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"15496:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"15504:6:139"},{"name":"_3","nodeType":"YulIdentifier","src":"15512:2:139"}],"functionName":{"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"15451:44:139"},"nodeType":"YulFunctionCall","src":"15451:64:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15443:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15535:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15546:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15531:3:139"},"nodeType":"YulFunctionCall","src":"15531:18:139"},{"name":"value6","nodeType":"YulIdentifier","src":"15551:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15524:6:139"},"nodeType":"YulFunctionCall","src":"15524:34:139"},"nodeType":"YulExpressionStatement","src":"15524:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15578:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15589:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15574:3:139"},"nodeType":"YulFunctionCall","src":"15574:19:139"},{"name":"value7","nodeType":"YulIdentifier","src":"15595:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15567:6:139"},"nodeType":"YulFunctionCall","src":"15567:35:139"},"nodeType":"YulExpressionStatement","src":"15567:35:139"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14486:9:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"14497:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"14505:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"14513:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14521:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14529:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14537:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14545:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14553:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14564:4:139","type":""}],"src":"14160:1448:139"},{"body":{"nodeType":"YulBlock","src":"15708:92:139","statements":[{"nodeType":"YulAssignment","src":"15718:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15730:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15741:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15726:3:139"},"nodeType":"YulFunctionCall","src":"15726:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15718:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15760:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15785:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15778:6:139"},"nodeType":"YulFunctionCall","src":"15778:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15771:6:139"},"nodeType":"YulFunctionCall","src":"15771:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15753:6:139"},"nodeType":"YulFunctionCall","src":"15753:41:139"},"nodeType":"YulExpressionStatement","src":"15753:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15677:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15688:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15699:4:139","type":""}],"src":"15613:187:139"},{"body":{"nodeType":"YulBlock","src":"15906:76:139","statements":[{"nodeType":"YulAssignment","src":"15916:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15928:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15939:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15924:3:139"},"nodeType":"YulFunctionCall","src":"15924:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15916:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15958:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"15969:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15951:6:139"},"nodeType":"YulFunctionCall","src":"15951:25:139"},"nodeType":"YulExpressionStatement","src":"15951:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15875:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15886:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15897:4:139","type":""}],"src":"15805:177:139"},{"body":{"nodeType":"YulBlock","src":"16086:103:139","statements":[{"nodeType":"YulAssignment","src":"16096:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16108:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16119:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16104:3:139"},"nodeType":"YulFunctionCall","src":"16104:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16096:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16138:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16153:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16165:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"16170:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16161:3:139"},"nodeType":"YulFunctionCall","src":"16161:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16149:3:139"},"nodeType":"YulFunctionCall","src":"16149:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16131:6:139"},"nodeType":"YulFunctionCall","src":"16131:52:139"},"nodeType":"YulExpressionStatement","src":"16131:52:139"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16055:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16066:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16077:4:139","type":""}],"src":"15987:202:139"},{"body":{"nodeType":"YulBlock","src":"16315:262:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16332:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16343:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16325:6:139"},"nodeType":"YulFunctionCall","src":"16325:21:139"},"nodeType":"YulExpressionStatement","src":"16325:21:139"},{"nodeType":"YulVariableDeclaration","src":"16355:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16375:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16369:5:139"},"nodeType":"YulFunctionCall","src":"16369:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16359:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16402:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16413:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16398:3:139"},"nodeType":"YulFunctionCall","src":"16398:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"16418:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16391:6:139"},"nodeType":"YulFunctionCall","src":"16391:34:139"},"nodeType":"YulExpressionStatement","src":"16391:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16460:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"16468:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16456:3:139"},"nodeType":"YulFunctionCall","src":"16456:15:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16477:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16488:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16473:3:139"},"nodeType":"YulFunctionCall","src":"16473:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"16493:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"16434:21:139"},"nodeType":"YulFunctionCall","src":"16434:66:139"},"nodeType":"YulExpressionStatement","src":"16434:66:139"},{"nodeType":"YulAssignment","src":"16509:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16525:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"16544:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"16552:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16540:3:139"},"nodeType":"YulFunctionCall","src":"16540:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16561:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16557:3:139"},"nodeType":"YulFunctionCall","src":"16557:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16536:3:139"},"nodeType":"YulFunctionCall","src":"16536:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16521:3:139"},"nodeType":"YulFunctionCall","src":"16521:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"16568:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16517:3:139"},"nodeType":"YulFunctionCall","src":"16517:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16509:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16284:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16295:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16306:4:139","type":""}],"src":"16194:383:139"},{"body":{"nodeType":"YulBlock","src":"16756:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16773:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16784:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16766:6:139"},"nodeType":"YulFunctionCall","src":"16766:21:139"},"nodeType":"YulExpressionStatement","src":"16766:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16807:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16818:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16803:3:139"},"nodeType":"YulFunctionCall","src":"16803:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16823:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16796:6:139"},"nodeType":"YulFunctionCall","src":"16796:30:139"},"nodeType":"YulExpressionStatement","src":"16796:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16846:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16857:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16842:3:139"},"nodeType":"YulFunctionCall","src":"16842:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16862:34:139","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16835:6:139"},"nodeType":"YulFunctionCall","src":"16835:62:139"},"nodeType":"YulExpressionStatement","src":"16835:62:139"},{"nodeType":"YulAssignment","src":"16906:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16918:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16929:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16914:3:139"},"nodeType":"YulFunctionCall","src":"16914:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16906:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16733:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16747:4:139","type":""}],"src":"16582:356:139"},{"body":{"nodeType":"YulBlock","src":"17117:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17134:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17145:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17127:6:139"},"nodeType":"YulFunctionCall","src":"17127:21:139"},"nodeType":"YulExpressionStatement","src":"17127:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17168:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17179:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17164:3:139"},"nodeType":"YulFunctionCall","src":"17164:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17184:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17157:6:139"},"nodeType":"YulFunctionCall","src":"17157:30:139"},"nodeType":"YulExpressionStatement","src":"17157:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17207:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17218:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17203:3:139"},"nodeType":"YulFunctionCall","src":"17203:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17223:34:139","type":"","value":"TimelockController: missing depe"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17196:6:139"},"nodeType":"YulFunctionCall","src":"17196:62:139"},"nodeType":"YulExpressionStatement","src":"17196:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17278:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17289:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17274:3:139"},"nodeType":"YulFunctionCall","src":"17274:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17294:8:139","type":"","value":"ndency"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17267:6:139"},"nodeType":"YulFunctionCall","src":"17267:36:139"},"nodeType":"YulExpressionStatement","src":"17267:36:139"},{"nodeType":"YulAssignment","src":"17312:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17324:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17335:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17320:3:139"},"nodeType":"YulFunctionCall","src":"17320:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17312:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17094:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17108:4:139","type":""}],"src":"16943:402:139"},{"body":{"nodeType":"YulBlock","src":"17524:225:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17541:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17552:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17534:6:139"},"nodeType":"YulFunctionCall","src":"17534:21:139"},"nodeType":"YulExpressionStatement","src":"17534:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17575:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17586:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17571:3:139"},"nodeType":"YulFunctionCall","src":"17571:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17591:2:139","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17564:6:139"},"nodeType":"YulFunctionCall","src":"17564:30:139"},"nodeType":"YulExpressionStatement","src":"17564:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17614:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17625:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17610:3:139"},"nodeType":"YulFunctionCall","src":"17610:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17630:34:139","type":"","value":"TimelockController: length misma"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17603:6:139"},"nodeType":"YulFunctionCall","src":"17603:62:139"},"nodeType":"YulExpressionStatement","src":"17603:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17685:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17696:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17681:3:139"},"nodeType":"YulFunctionCall","src":"17681:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17701:5:139","type":"","value":"tch"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17674:6:139"},"nodeType":"YulFunctionCall","src":"17674:33:139"},"nodeType":"YulExpressionStatement","src":"17674:33:139"},{"nodeType":"YulAssignment","src":"17716:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17728:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17739:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17724:3:139"},"nodeType":"YulFunctionCall","src":"17724:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17716:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17501:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17515:4:139","type":""}],"src":"17350:399:139"},{"body":{"nodeType":"YulBlock","src":"17928:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17945:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17956:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:139"},"nodeType":"YulFunctionCall","src":"17938:21:139"},"nodeType":"YulExpressionStatement","src":"17938:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17979:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17990:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17975:3:139"},"nodeType":"YulFunctionCall","src":"17975:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17995:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17968:6:139"},"nodeType":"YulFunctionCall","src":"17968:30:139"},"nodeType":"YulExpressionStatement","src":"17968:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18018:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18029:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18014:3:139"},"nodeType":"YulFunctionCall","src":"18014:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18034:34:139","type":"","value":"TimelockController: insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18007:6:139"},"nodeType":"YulFunctionCall","src":"18007:62:139"},"nodeType":"YulExpressionStatement","src":"18007:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18089:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18100:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18085:3:139"},"nodeType":"YulFunctionCall","src":"18085:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18105:8:139","type":"","value":" delay"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18078:6:139"},"nodeType":"YulFunctionCall","src":"18078:36:139"},"nodeType":"YulExpressionStatement","src":"18078:36:139"},{"nodeType":"YulAssignment","src":"18123:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18135:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18146:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18131:3:139"},"nodeType":"YulFunctionCall","src":"18131:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18123:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17905:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17919:4:139","type":""}],"src":"17754:402:139"},{"body":{"nodeType":"YulBlock","src":"18335:237:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18352:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18363:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18345:6:139"},"nodeType":"YulFunctionCall","src":"18345:21:139"},"nodeType":"YulExpressionStatement","src":"18345:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18386:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18397:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18382:3:139"},"nodeType":"YulFunctionCall","src":"18382:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18402:2:139","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18375:6:139"},"nodeType":"YulFunctionCall","src":"18375:30:139"},"nodeType":"YulExpressionStatement","src":"18375:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18425:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18436:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18421:3:139"},"nodeType":"YulFunctionCall","src":"18421:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18441:34:139","type":"","value":"TimelockController: operation al"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18414:6:139"},"nodeType":"YulFunctionCall","src":"18414:62:139"},"nodeType":"YulExpressionStatement","src":"18414:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18496:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18507:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18492:3:139"},"nodeType":"YulFunctionCall","src":"18492:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18512:17:139","type":"","value":"ready scheduled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18485:6:139"},"nodeType":"YulFunctionCall","src":"18485:45:139"},"nodeType":"YulExpressionStatement","src":"18485:45:139"},{"nodeType":"YulAssignment","src":"18539:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18551:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18562:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18547:3:139"},"nodeType":"YulFunctionCall","src":"18547:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18539:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18312:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18326:4:139","type":""}],"src":"18161:411:139"},{"body":{"nodeType":"YulBlock","src":"18751:232:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18768:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18779:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18761:6:139"},"nodeType":"YulFunctionCall","src":"18761:21:139"},"nodeType":"YulExpressionStatement","src":"18761:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18802:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18813:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18798:3:139"},"nodeType":"YulFunctionCall","src":"18798:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18818:2:139","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18791:6:139"},"nodeType":"YulFunctionCall","src":"18791:30:139"},"nodeType":"YulExpressionStatement","src":"18791:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18841:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18852:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18837:3:139"},"nodeType":"YulFunctionCall","src":"18837:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18857:34:139","type":"","value":"TimelockController: operation is"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18830:6:139"},"nodeType":"YulFunctionCall","src":"18830:62:139"},"nodeType":"YulExpressionStatement","src":"18830:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18912:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18923:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18908:3:139"},"nodeType":"YulFunctionCall","src":"18908:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18928:12:139","type":"","value":" not ready"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18901:6:139"},"nodeType":"YulFunctionCall","src":"18901:40:139"},"nodeType":"YulExpressionStatement","src":"18901:40:139"},{"nodeType":"YulAssignment","src":"18950:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18962:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18973:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18958:3:139"},"nodeType":"YulFunctionCall","src":"18958:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18950:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18728:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18742:4:139","type":""}],"src":"18577:406:139"},{"body":{"nodeType":"YulBlock","src":"19162:239:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19179:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19190:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19172:6:139"},"nodeType":"YulFunctionCall","src":"19172:21:139"},"nodeType":"YulExpressionStatement","src":"19172:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19213:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19224:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19209:3:139"},"nodeType":"YulFunctionCall","src":"19209:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19229:2:139","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19202:6:139"},"nodeType":"YulFunctionCall","src":"19202:30:139"},"nodeType":"YulExpressionStatement","src":"19202:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19252:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19263:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19248:3:139"},"nodeType":"YulFunctionCall","src":"19248:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19268:34:139","type":"","value":"TimelockController: operation ca"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19241:6:139"},"nodeType":"YulFunctionCall","src":"19241:62:139"},"nodeType":"YulExpressionStatement","src":"19241:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19323:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19334:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19319:3:139"},"nodeType":"YulFunctionCall","src":"19319:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19339:19:139","type":"","value":"nnot be cancelled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19312:6:139"},"nodeType":"YulFunctionCall","src":"19312:47:139"},"nodeType":"YulExpressionStatement","src":"19312:47:139"},{"nodeType":"YulAssignment","src":"19368:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19380:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19391:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19376:3:139"},"nodeType":"YulFunctionCall","src":"19376:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19368:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19139:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19153:4:139","type":""}],"src":"18988:413:139"},{"body":{"nodeType":"YulBlock","src":"19580:233:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19597:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19608:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19590:6:139"},"nodeType":"YulFunctionCall","src":"19590:21:139"},"nodeType":"YulExpressionStatement","src":"19590:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19631:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19642:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19627:3:139"},"nodeType":"YulFunctionCall","src":"19627:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19647:2:139","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19620:6:139"},"nodeType":"YulFunctionCall","src":"19620:30:139"},"nodeType":"YulExpressionStatement","src":"19620:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19670:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19681:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19666:3:139"},"nodeType":"YulFunctionCall","src":"19666:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19686:34:139","type":"","value":"TimelockController: caller must "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19659:6:139"},"nodeType":"YulFunctionCall","src":"19659:62:139"},"nodeType":"YulExpressionStatement","src":"19659:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19741:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19752:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19737:3:139"},"nodeType":"YulFunctionCall","src":"19737:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19757:13:139","type":"","value":"be timelock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19730:6:139"},"nodeType":"YulFunctionCall","src":"19730:41:139"},"nodeType":"YulExpressionStatement","src":"19730:41:139"},{"nodeType":"YulAssignment","src":"19780:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19792:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19803:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19788:3:139"},"nodeType":"YulFunctionCall","src":"19788:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19780:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19557:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19571:4:139","type":""}],"src":"19406:407:139"},{"body":{"nodeType":"YulBlock","src":"19992:237:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20009:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20020:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20002:6:139"},"nodeType":"YulFunctionCall","src":"20002:21:139"},"nodeType":"YulExpressionStatement","src":"20002:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20043:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20054:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20039:3:139"},"nodeType":"YulFunctionCall","src":"20039:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20059:2:139","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20032:6:139"},"nodeType":"YulFunctionCall","src":"20032:30:139"},"nodeType":"YulExpressionStatement","src":"20032:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20093:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20078:3:139"},"nodeType":"YulFunctionCall","src":"20078:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20098:34:139","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20071:6:139"},"nodeType":"YulFunctionCall","src":"20071:62:139"},"nodeType":"YulExpressionStatement","src":"20071:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20153:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20164:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20149:3:139"},"nodeType":"YulFunctionCall","src":"20149:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20169:17:139","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20142:6:139"},"nodeType":"YulFunctionCall","src":"20142:45:139"},"nodeType":"YulExpressionStatement","src":"20142:45:139"},{"nodeType":"YulAssignment","src":"20196:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20208:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20219:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20204:3:139"},"nodeType":"YulFunctionCall","src":"20204:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20196:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19969:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19983:4:139","type":""}],"src":"19818:411:139"},{"body":{"nodeType":"YulBlock","src":"20408:241:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20425:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20436:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20418:6:139"},"nodeType":"YulFunctionCall","src":"20418:21:139"},"nodeType":"YulExpressionStatement","src":"20418:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20459:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20470:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20455:3:139"},"nodeType":"YulFunctionCall","src":"20455:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20475:2:139","type":"","value":"51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20448:6:139"},"nodeType":"YulFunctionCall","src":"20448:30:139"},"nodeType":"YulExpressionStatement","src":"20448:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20498:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20509:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20494:3:139"},"nodeType":"YulFunctionCall","src":"20494:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20514:34:139","type":"","value":"TimelockController: underlying t"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20487:6:139"},"nodeType":"YulFunctionCall","src":"20487:62:139"},"nodeType":"YulExpressionStatement","src":"20487:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20569:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20580:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20565:3:139"},"nodeType":"YulFunctionCall","src":"20565:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20585:21:139","type":"","value":"ransaction reverted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20558:6:139"},"nodeType":"YulFunctionCall","src":"20558:49:139"},"nodeType":"YulExpressionStatement","src":"20558:49:139"},{"nodeType":"YulAssignment","src":"20616:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20628:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20639:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20624:3:139"},"nodeType":"YulFunctionCall","src":"20624:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20616:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20385:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20399:4:139","type":""}],"src":"20234:415:139"},{"body":{"nodeType":"YulBlock","src":"20755:76:139","statements":[{"nodeType":"YulAssignment","src":"20765:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20777:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20788:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20773:3:139"},"nodeType":"YulFunctionCall","src":"20773:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20765:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20807:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"20818:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20800:6:139"},"nodeType":"YulFunctionCall","src":"20800:25:139"},"nodeType":"YulExpressionStatement","src":"20800:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20724:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20735:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20746:4:139","type":""}],"src":"20654:177:139"},{"body":{"nodeType":"YulBlock","src":"20965:119:139","statements":[{"nodeType":"YulAssignment","src":"20975:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20987:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20998:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20983:3:139"},"nodeType":"YulFunctionCall","src":"20983:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20975:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21017:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"21028:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21010:6:139"},"nodeType":"YulFunctionCall","src":"21010:25:139"},"nodeType":"YulExpressionStatement","src":"21010:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21055:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21066:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21051:3:139"},"nodeType":"YulFunctionCall","src":"21051:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"21071:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21044:6:139"},"nodeType":"YulFunctionCall","src":"21044:34:139"},"nodeType":"YulExpressionStatement","src":"21044:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20926:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20937:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20945:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20956:4:139","type":""}],"src":"20836:248:139"},{"body":{"nodeType":"YulBlock","src":"21183:439:139","statements":[{"nodeType":"YulVariableDeclaration","src":"21193:51:139","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"21232:11:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"21219:12:139"},"nodeType":"YulFunctionCall","src":"21219:25:139"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"21197:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"21333:22:139","statements":[{"expression":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"21342:4:139"},{"name":"addr","nodeType":"YulIdentifier","src":"21348:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21335:6:139"},"nodeType":"YulFunctionCall","src":"21335:18:139"},"nodeType":"YulExpressionStatement","src":"21335:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"21267:18:139"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"21295:12:139"},"nodeType":"YulFunctionCall","src":"21295:14:139"},{"name":"base_ref","nodeType":"YulIdentifier","src":"21311:8:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21291:3:139"},"nodeType":"YulFunctionCall","src":"21291:29:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21326:2:139","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21322:3:139"},"nodeType":"YulFunctionCall","src":"21322:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21287:3:139"},"nodeType":"YulFunctionCall","src":"21287:43:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21263:3:139"},"nodeType":"YulFunctionCall","src":"21263:68:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21256:6:139"},"nodeType":"YulFunctionCall","src":"21256:76:139"},"nodeType":"YulIf","src":"21253:2:139"},{"nodeType":"YulVariableDeclaration","src":"21364:47:139","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"21382:8:139"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"21392:18:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21378:3:139"},"nodeType":"YulFunctionCall","src":"21378:33:139"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"21368:6:139","type":""}]},{"nodeType":"YulAssignment","src":"21420:30:139","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"21443:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"21430:12:139"},"nodeType":"YulFunctionCall","src":"21430:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"21420:6:139"}]},{"body":{"nodeType":"YulBlock","src":"21493:22:139","statements":[{"expression":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"21502:4:139"},{"name":"addr","nodeType":"YulIdentifier","src":"21508:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21495:6:139"},"nodeType":"YulFunctionCall","src":"21495:18:139"},"nodeType":"YulExpressionStatement","src":"21495:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"21465:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"21473:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21462:2:139"},"nodeType":"YulFunctionCall","src":"21462:30:139"},"nodeType":"YulIf","src":"21459:2:139"},{"nodeType":"YulAssignment","src":"21524:25:139","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"21536:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"21544:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21532:3:139"},"nodeType":"YulFunctionCall","src":"21532:17:139"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"21524:4:139"}]},{"body":{"nodeType":"YulBlock","src":"21600:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21609:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21612:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21602:6:139"},"nodeType":"YulFunctionCall","src":"21602:12:139"},"nodeType":"YulExpressionStatement","src":"21602:12:139"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"21565:4:139"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"21575:12:139"},"nodeType":"YulFunctionCall","src":"21575:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"21591:6:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21571:3:139"},"nodeType":"YulFunctionCall","src":"21571:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"21561:3:139"},"nodeType":"YulFunctionCall","src":"21561:38:139"},"nodeType":"YulIf","src":"21558:2:139"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"21140:8:139","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"21150:11:139","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"21166:4:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"21172:6:139","type":""}],"src":"21089:533:139"},{"body":{"nodeType":"YulBlock","src":"21672:230:139","statements":[{"nodeType":"YulAssignment","src":"21682:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21698:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21692:5:139"},"nodeType":"YulFunctionCall","src":"21692:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21682:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"21710:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21732:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"21748:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"21754:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21744:3:139"},"nodeType":"YulFunctionCall","src":"21744:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21763:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21759:3:139"},"nodeType":"YulFunctionCall","src":"21759:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21740:3:139"},"nodeType":"YulFunctionCall","src":"21740:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21728:3:139"},"nodeType":"YulFunctionCall","src":"21728:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"21714:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"21843:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"21845:16:139"},"nodeType":"YulFunctionCall","src":"21845:18:139"},"nodeType":"YulExpressionStatement","src":"21845:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21786:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"21798:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21783:2:139"},"nodeType":"YulFunctionCall","src":"21783:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21822:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"21834:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21819:2:139"},"nodeType":"YulFunctionCall","src":"21819:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21780:2:139"},"nodeType":"YulFunctionCall","src":"21780:62:139"},"nodeType":"YulIf","src":"21777:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21881:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21885:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21874:6:139"},"nodeType":"YulFunctionCall","src":"21874:22:139"},"nodeType":"YulExpressionStatement","src":"21874:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"21652:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"21661:6:139","type":""}],"src":"21627:275:139"},{"body":{"nodeType":"YulBlock","src":"21955:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"21982:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21984:16:139"},"nodeType":"YulFunctionCall","src":"21984:18:139"},"nodeType":"YulExpressionStatement","src":"21984:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21971:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21978:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21974:3:139"},"nodeType":"YulFunctionCall","src":"21974:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21968:2:139"},"nodeType":"YulFunctionCall","src":"21968:13:139"},"nodeType":"YulIf","src":"21965:2:139"},{"nodeType":"YulAssignment","src":"22013:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22024:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"22027:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22020:3:139"},"nodeType":"YulFunctionCall","src":"22020:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"22013:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21938:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"21941:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"21947:3:139","type":""}],"src":"21907:128:139"},{"body":{"nodeType":"YulBlock","src":"22092:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"22151:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22153:16:139"},"nodeType":"YulFunctionCall","src":"22153:18:139"},"nodeType":"YulExpressionStatement","src":"22153:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22123:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22116:6:139"},"nodeType":"YulFunctionCall","src":"22116:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22109:6:139"},"nodeType":"YulFunctionCall","src":"22109:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"22131:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22142:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22138:3:139"},"nodeType":"YulFunctionCall","src":"22138:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"22146:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"22134:3:139"},"nodeType":"YulFunctionCall","src":"22134:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22128:2:139"},"nodeType":"YulFunctionCall","src":"22128:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22105:3:139"},"nodeType":"YulFunctionCall","src":"22105:45:139"},"nodeType":"YulIf","src":"22102:2:139"},{"nodeType":"YulAssignment","src":"22182:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22197:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"22200:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"22193:3:139"},"nodeType":"YulFunctionCall","src":"22193:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"22182:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"22071:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"22074:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"22080:7:139","type":""}],"src":"22040:168:139"},{"body":{"nodeType":"YulBlock","src":"22262:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"22284:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22286:16:139"},"nodeType":"YulFunctionCall","src":"22286:18:139"},"nodeType":"YulExpressionStatement","src":"22286:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22278:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"22281:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22275:2:139"},"nodeType":"YulFunctionCall","src":"22275:8:139"},"nodeType":"YulIf","src":"22272:2:139"},{"nodeType":"YulAssignment","src":"22315:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22327:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"22330:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22323:3:139"},"nodeType":"YulFunctionCall","src":"22323:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"22315:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"22244:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"22247:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"22253:4:139","type":""}],"src":"22213:125:139"},{"body":{"nodeType":"YulBlock","src":"22396:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"22406:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"22415:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"22410:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"22475:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"22500:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"22505:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22496:3:139"},"nodeType":"YulFunctionCall","src":"22496:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"22519:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"22524:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22515:3:139"},"nodeType":"YulFunctionCall","src":"22515:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22509:5:139"},"nodeType":"YulFunctionCall","src":"22509:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22489:6:139"},"nodeType":"YulFunctionCall","src":"22489:39:139"},"nodeType":"YulExpressionStatement","src":"22489:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"22436:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"22439:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22433:2:139"},"nodeType":"YulFunctionCall","src":"22433:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"22447:19:139","statements":[{"nodeType":"YulAssignment","src":"22449:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"22458:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"22461:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22454:3:139"},"nodeType":"YulFunctionCall","src":"22454:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"22449:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"22429:3:139","statements":[]},"src":"22425:113:139"},{"body":{"nodeType":"YulBlock","src":"22564:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"22577:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"22582:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22573:3:139"},"nodeType":"YulFunctionCall","src":"22573:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"22591:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22566:6:139"},"nodeType":"YulFunctionCall","src":"22566:27:139"},"nodeType":"YulExpressionStatement","src":"22566:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"22553:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"22556:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22550:2:139"},"nodeType":"YulFunctionCall","src":"22550:13:139"},"nodeType":"YulIf","src":"22547:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"22374:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"22379:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"22384:6:139","type":""}],"src":"22343:258:139"},{"body":{"nodeType":"YulBlock","src":"22653:89:139","statements":[{"body":{"nodeType":"YulBlock","src":"22680:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22682:16:139"},"nodeType":"YulFunctionCall","src":"22682:18:139"},"nodeType":"YulExpressionStatement","src":"22682:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22673:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22666:6:139"},"nodeType":"YulFunctionCall","src":"22666:13:139"},"nodeType":"YulIf","src":"22663:2:139"},{"nodeType":"YulAssignment","src":"22711:25:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22722:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22733:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22729:3:139"},"nodeType":"YulFunctionCall","src":"22729:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22718:3:139"},"nodeType":"YulFunctionCall","src":"22718:18:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"22711:3:139"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22635:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"22645:3:139","type":""}],"src":"22606:136:139"},{"body":{"nodeType":"YulBlock","src":"22794:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"22825:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22827:16:139"},"nodeType":"YulFunctionCall","src":"22827:18:139"},"nodeType":"YulExpressionStatement","src":"22827:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22810:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22821:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22817:3:139"},"nodeType":"YulFunctionCall","src":"22817:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22807:2:139"},"nodeType":"YulFunctionCall","src":"22807:17:139"},"nodeType":"YulIf","src":"22804:2:139"},{"nodeType":"YulAssignment","src":"22856:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22867:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"22874:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22863:3:139"},"nodeType":"YulFunctionCall","src":"22863:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"22856:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22776:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"22786:3:139","type":""}],"src":"22747:135:139"},{"body":{"nodeType":"YulBlock","src":"22919:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22936:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22943:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22948:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22939:3:139"},"nodeType":"YulFunctionCall","src":"22939:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22929:6:139"},"nodeType":"YulFunctionCall","src":"22929:31:139"},"nodeType":"YulExpressionStatement","src":"22929:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22976:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22979:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22969:6:139"},"nodeType":"YulFunctionCall","src":"22969:15:139"},"nodeType":"YulExpressionStatement","src":"22969:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23000:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23003:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22993:6:139"},"nodeType":"YulFunctionCall","src":"22993:15:139"},"nodeType":"YulExpressionStatement","src":"22993:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"22887:127:139"},{"body":{"nodeType":"YulBlock","src":"23051:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23068:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23075:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23080:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23071:3:139"},"nodeType":"YulFunctionCall","src":"23071:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23061:6:139"},"nodeType":"YulFunctionCall","src":"23061:31:139"},"nodeType":"YulExpressionStatement","src":"23061:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23108:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23111:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23101:6:139"},"nodeType":"YulFunctionCall","src":"23101:15:139"},"nodeType":"YulExpressionStatement","src":"23101:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23132:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23135:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23125:6:139"},"nodeType":"YulFunctionCall","src":"23125:15:139"},"nodeType":"YulExpressionStatement","src":"23125:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"23019:127:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let _3 := shl(5, _1)\n        let dst := allocate_memory(add(_3, _2))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, _3), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), array)\n        array := array_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value5, value5) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value5, value5) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(value6, value6) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value6, value6) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n        value6 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value6, value6) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value6, value6) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value6, value6) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value6, value6) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(value6, value6) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value6, value6) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value6, value6) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value6, value6) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n        value8 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_array_bytes_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := value\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            let rel_offset_of_tail := calldataload(srcPtr)\n            if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(end, end) }\n            let value_1 := add(rel_offset_of_tail, value)\n            let length_1 := calldataload(value_1)\n            if gt(length_1, 0xffffffffffffffff) { revert(end, end) }\n            if sgt(value, sub(calldatasize(), length_1)) { revert(end, end) }\n            tail := abi_encode_bytes_calldata(add(value_1, _1), length_1, tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), end)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, end)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 160)\n        mstore(headStart, 160)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 192)\n        let srcPtr := value0\n        let i := tail\n        for { } lt(i, value1) { i := add(i, 1) }\n        {\n            mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n            let _1 := 0x20\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        mstore(pos, value3)\n        if gt(value3, sub(shl(251, 1), 1)) { revert(tail, tail) }\n        let length := shl(5, value3)\n        calldatacopy(add(pos, 0x20), value2, length)\n        let _2 := add(pos, length)\n        let _3 := add(_2, 0x20)\n        mstore(_3, tail)\n        mstore(add(headStart, 64), add(sub(_2, headStart), 0x20))\n        tail := abi_encode_array_bytes_calldata_dyn_calldata(value4, value5, _3)\n        mstore(add(headStart, 96), value6)\n        mstore(add(headStart, 128), value7)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: missing depe\")\n        mstore(add(headStart, 96), \"ndency\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"TimelockController: length misma\")\n        mstore(add(headStart, 96), \"tch\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: insufficient\")\n        mstore(add(headStart, 96), \" delay\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"TimelockController: operation al\")\n        mstore(add(headStart, 96), \"ready scheduled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"TimelockController: operation is\")\n        mstore(add(headStart, 96), \" not ready\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"TimelockController: operation ca\")\n        mstore(add(headStart, 96), \"nnot be cancelled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"TimelockController: caller must \")\n        mstore(add(headStart, 96), \"be timelock\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"TimelockController: underlying t\")\n        mstore(add(headStart, 96), \"ransaction reverted\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(addr, addr) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(addr, addr) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101915760003560e01c80638f2a0bb0116100d7578063bc197c8111610085578063bc197c81146104f2578063c4d252f51461051e578063ca15c8731461053e578063d45c44351461055e578063d547741f1461058b578063e38335e5146105ab578063f23a6e61146105be578063f27a0c92146105ea57600080fd5b80638f2a0bb0146103ef5780638f61f4f51461040f5780639010d07c1461043157806391d1485414610469578063a217fddf14610489578063b08e51c01461049e578063b1c5f427146104d257600080fd5b8063248a9ca31161013f578063248a9ca3146102cf5780632ab0f529146102ff5780632f2ff15d1461032f57806331d507501461034f57806336568abe1461036f578063584b153e1461038f57806364d62353146103af5780638065657f146103cf57600080fd5b806301d5062a1461019d57806301ffc9a7146101bf57806307bd0265146101f45780630d3cf6fc14610224578063134008d31461025857806313bc9f201461026b578063150b7a021461028b57600080fd5b3661019857005b600080fd5b3480156101a957600080fd5b506101bd6101b83660046119ab565b6105ff565b005b3480156101cb57600080fd5b506101df6101da366004611bd2565b610682565b60405190151581526020015b60405180910390f35b34801561020057600080fd5b5061021660008051602061207383398151915281565b6040519081526020016101eb565b34801561023057600080fd5b506102167f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101bd610266366004611942565b6106ad565b34801561027757600080fd5b506101df610286366004611b6e565b610750565b34801561029757600080fd5b506102b66102a636600461187b565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101eb565b3480156102db57600080fd5b506102166102ea366004611b6e565b60009081526020819052604090206001015490565b34801561030b57600080fd5b506101df61031a366004611b6e565b60009081526002602052604090205460011490565b34801561033b57600080fd5b506101bd61034a366004611b86565b610776565b34801561035b57600080fd5b506101df61036a366004611b6e565b6107a0565b34801561037b57600080fd5b506101bd61038a366004611b86565b6107b9565b34801561039b57600080fd5b506101df6103aa366004611b6e565b61083c565b3480156103bb57600080fd5b506101bd6103ca366004611b6e565b610853565b3480156103db57600080fd5b506102166103ea366004611942565b6108f7565b3480156103fb57600080fd5b506101bd61040a366004611ac1565b610936565b34801561041b57600080fd5b5061021660008051602061205383398151915281565b34801561043d57600080fd5b5061045161044c366004611bb1565b610aa0565b6040516001600160a01b0390911681526020016101eb565b34801561047557600080fd5b506101df610484366004611b86565b610ab8565b34801561049557600080fd5b50610216600081565b3480156104aa57600080fd5b506102167ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104de57600080fd5b506102166104ed366004611a1d565b610ae1565b3480156104fe57600080fd5b506102b661050d3660046117d6565b63bc197c8160e01b95945050505050565b34801561052a57600080fd5b506101bd610539366004611b6e565b610b26565b34801561054a57600080fd5b50610216610559366004611b6e565b610bfb565b34801561056a57600080fd5b50610216610579366004611b6e565b60009081526002602052604090205490565b34801561059757600080fd5b506101bd6105a6366004611b86565b610c12565b6101bd6105b9366004611a1d565b610c37565b3480156105ca57600080fd5b506102b66105d93660046118e0565b63f23a6e6160e01b95945050505050565b3480156105f657600080fd5b50600354610216565b60008051602061205383398151915261061781610e72565b60006106278989898989896108f7565b90506106338184610e7f565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161066f96959493929190611d60565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b14806106a757506106a782610f6e565b92915050565b6000805160206120738339815191526106c7816000610ab8565b6106d5576106d58133610f93565b60006106e58888888888886108f7565b90506106f18185610ff7565b6106fd88888888611092565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107359493929190611d2e565b60405180910390a361074681611165565b5050505050505050565b60008181526002602052604081205460018111801561076f5750428111155b9392505050565b60008281526020819052604090206001015461079181610e72565b61079b838361119e565b505050565b60008181526002602052604081205481905b1192915050565b6001600160a01b038116331461082e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61083882826111c0565b5050565b6000818152600260205260408120546001906107b2565b3330146108b65760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610825565b60035460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600355565b600086868686868660405160200161091496959493929190611d60565b6040516020818303038152906040528051906020012090509695505050505050565b60008051602061205383398151915261094e81610e72565b88871461096d5760405162461bcd60e51b815260040161082590611e75565b88851461098c5760405162461bcd60e51b815260040161082590611e75565b600061099e8b8b8b8b8b8b8b8b610ae1565b90506109aa8184610e7f565b60005b8a811015610a925780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e858181106109f857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610a0d91906117bc565b8d8d86818110610a2d57634e487b7160e01b600052603260045260246000fd5b905060200201358c8c87818110610a5457634e487b7160e01b600052603260045260246000fd5b9050602002810190610a669190611f02565b8c8b604051610a7a96959493929190611d60565b60405180910390a3610a8b8161200b565b90506109ad565b505050505050505050505050565b600082815260016020526040812061076f90836111e2565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610b02989796959493929190611d9d565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610b5081610e72565b610b598261083c565b610bbf5760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610825565b6000828152600260205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008181526001602052604081206106a7906111ee565b600082815260208190526040902060010154610c2d81610e72565b61079b83836111c0565b600080516020612073833981519152610c51816000610ab8565b610c5f57610c5f8133610f93565b878614610c7e5760405162461bcd60e51b815260040161082590611e75565b878414610c9d5760405162461bcd60e51b815260040161082590611e75565b6000610caf8a8a8a8a8a8a8a8a610ae1565b9050610cbb8185610ff7565b60005b89811015610dc35760008b8b83818110610ce857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfd91906117bc565b905060008a8a84818110610d2157634e487b7160e01b600052603260045260246000fd5b9050602002013590503660008a8a86818110610d4d57634e487b7160e01b600052603260045260246000fd5b9050602002810190610d5f9190611f02565b91509150610d6f84848484611092565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610da69493929190611d2e565b60405180910390a35050505080610dbc9061200b565b9050610cbe565b50610dcd81611165565b50505050505050505050565b610de38282610ab8565b610838576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610e193390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061076f836001600160a01b0384166111f8565b610e7c8133610f93565b50565b610e88826107a0565b15610eed5760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610825565b600354811015610f4e5760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610825565b610f588142611f76565b6000928352600260205260409092209190915550565b60006001600160e01b03198216635a05180f60e01b14806106a757506106a782611247565b610f9d8282610ab8565b61083857610fb5816001600160a01b0316601461127c565b610fc083602061127c565b604051602001610fd1929190611cbf565b60408051601f198184030181529082905262461bcd60e51b825261082591600401611e42565b61100082610750565b61101c5760405162461bcd60e51b815260040161082590611eb8565b80158061103757506000818152600260205260409020546001145b6108385760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610825565b6000846001600160a01b03168484846040516110af929190611caf565b60006040518083038185875af1925050503d80600081146110ec576040519150601f19603f3d011682016040523d82523d6000602084013e6110f1565b606091505b505090508061115e5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610825565b5050505050565b61116e81610750565b61118a5760405162461bcd60e51b815260040161082590611eb8565b600090815260026020526040902060019055565b6111a88282610dd9565b600082815260016020526040902061079b9082610e5d565b6111ca828261145d565b600082815260016020526040902061079b90826114c2565b600061076f83836114d7565b60006106a7825490565b600081815260018301602052604081205461123f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106a7565b5060006106a7565b60006001600160e01b03198216637965db0b60e01b14806106a757506301ffc9a760e01b6001600160e01b03198316146106a7565b6060600061128b836002611f8e565b611296906002611f76565b6001600160401b038111156112bb57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112e5576020820181803683370190505b509050600360fc1b8160008151811061130e57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061134b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061136f846002611f8e565b61137a906001611f76565b90505b600181111561140e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113bc57634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106113e057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361140781611ff4565b905061137d565b50831561076f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610825565b6114678282610ab8565b15610838576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061076f836001600160a01b03841661150f565b60008260000182815481106114fc57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611622576000611533600183611fad565b855490915060009061154790600190611fad565b90508181146115c857600086600001828154811061157557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115a657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115e757634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106a7565b60009150506106a7565b80356001600160a01b038116811461164357600080fd5b919050565b60008083601f840112611659578182fd5b5081356001600160401b0381111561166f578182fd5b6020830191508360208260051b850101111561168a57600080fd5b9250929050565b600082601f8301126116a1578081fd5b813560206001600160401b038211156116bc576116bc61203c565b8160051b6116cb828201611f46565b8381528281019086840183880185018910156116e5578687fd5b8693505b858410156117075780358352600193909301929184019184016116e9565b50979650505050505050565b60008083601f840112611724578182fd5b5081356001600160401b0381111561173a578182fd5b60208301915083602082850101111561168a57600080fd5b600082601f830112611762578081fd5b81356001600160401b0381111561177b5761177b61203c565b61178e601f8201601f1916602001611f46565b8181528460208386010111156117a2578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156117cd578081fd5b61076f8261162c565b600080600080600060a086880312156117ed578081fd5b6117f68661162c565b94506118046020870161162c565b935060408601356001600160401b038082111561181f578283fd5b61182b89838a01611691565b94506060880135915080821115611840578283fd5b61184c89838a01611691565b93506080880135915080821115611861578283fd5b5061186e88828901611752565b9150509295509295909350565b60008060008060808587031215611890578384fd5b6118998561162c565b93506118a76020860161162c565b92506040850135915060608501356001600160401b038111156118c8578182fd5b6118d487828801611752565b91505092959194509250565b600080600080600060a086880312156118f7578081fd5b6119008661162c565b945061190e6020870161162c565b9350604086013592506060860135915060808601356001600160401b03811115611936578182fd5b61186e88828901611752565b60008060008060008060a0878903121561195a578081fd5b6119638761162c565b95506020870135945060408701356001600160401b03811115611984578182fd5b61199089828a01611713565b979a9699509760608101359660809091013595509350505050565b600080600080600080600060c0888a0312156119c5578081fd5b6119ce8861162c565b96506020880135955060408801356001600160401b038111156119ef578182fd5b6119fb8a828b01611713565b989b979a50986060810135976080820135975060a09091013595509350505050565b60008060008060008060008060a0898b031215611a38578182fd5b88356001600160401b0380821115611a4e578384fd5b611a5a8c838d01611648565b909a50985060208b0135915080821115611a72578384fd5b611a7e8c838d01611648565b909850965060408b0135915080821115611a96578384fd5b50611aa38b828c01611648565b999c989b509699959896976060870135966080013595509350505050565b600080600080600080600080600060c08a8c031215611ade578283fd5b89356001600160401b0380821115611af4578485fd5b611b008d838e01611648565b909b50995060208c0135915080821115611b18578485fd5b611b248d838e01611648565b909950975060408c0135915080821115611b3c578485fd5b50611b498c828d01611648565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b600060208284031215611b7f578081fd5b5035919050565b60008060408385031215611b98578182fd5b82359150611ba86020840161162c565b90509250929050565b60008060408385031215611bc3578182fd5b50508035926020909101359150565b600060208284031215611be3578081fd5b81356001600160e01b03198116811461076f578182fd5b81835260006020808501808196508560051b8101915084845b87811015611c795782840389528135601e19883603018112611c33578687fd5b870180356001600160401b03811115611c4a578788fd5b803603891315611c58578788fd5b611c658682898501611c86565b9a87019a9550505090840190600101611c13565b5091979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8183823760009101908152919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611cf1816017850160208801611fc4565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d22816028840160208801611fc4565b01602801949350505050565b60018060a01b0385168152836020820152606060408201526000611d56606083018486611c86565b9695505050505050565b60018060a01b038716815285602082015260a060408201526000611d8860a083018688611c86565b60608301949094525060800152949350505050565b60a0808252810188905260008960c08301825b8b811015611dde576001600160a01b03611dc98461162c565b16825260209283019290910190600101611db0565b5083810360208501528881526001600160fb1b03891115611dfd578283fd5b8860051b9150818a60208301370160208181018381528483039091016040850152611e2981888a611bfa565b6060850196909652505050608001529695505050505050565b6020815260008251806020840152611e61816040850160208701611fc4565b601f01601f19169190910160400192915050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b6000808335601e19843603018112611f18578283fd5b8301803591506001600160401b03821115611f31578283fd5b60200191503681900382131561168a57600080fd5b604051601f8201601f191681016001600160401b0381118282101715611f6e57611f6e61203c565b604052919050565b60008219821115611f8957611f89612026565b500190565b6000816000190483118215151615611fa857611fa8612026565b500290565b600082821015611fbf57611fbf612026565b500390565b60005b83811015611fdf578181015183820152602001611fc7565b83811115611fee576000848401525b50505050565b60008161200357612003612026565b506000190190565b600060001982141561201f5761201f612026565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfeb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63a2646970667358221220b3e35e953a259c199a6d964cac74ce9c29824111cc10728e10f60fb31dd0457a64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x191 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8F2A0BB0 GT PUSH2 0xD7 JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x85 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x55E JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x5AB JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x40F JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x49E JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x4D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x13F JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x38F JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x8065657F EQ PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x19D JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x198 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x1B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x19AB JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1BD2 JUMP JUMPDEST PUSH2 0x682 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x200 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2073 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1BD PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x1942 JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x750 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x187B JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0x776 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x7A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x38A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x3AA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x83C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x3CA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x853 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1942 JUMP JUMPDEST PUSH2 0x8F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x40A CALLDATASIZE PUSH1 0x4 PUSH2 0x1AC1 JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2053 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x451 PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH2 0x484 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0xAB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x495 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x4ED CALLDATASIZE PUSH1 0x4 PUSH2 0x1A1D JUMP JUMPDEST PUSH2 0xAE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x17D6 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x539 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x559 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0xBFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x579 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6E JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B86 JUMP JUMPDEST PUSH2 0xC12 JUMP JUMPDEST PUSH2 0x1BD PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A1D JUMP JUMPDEST PUSH2 0xC37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x18E0 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x216 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2053 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x617 DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x627 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x633 DUP2 DUP5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x66F SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x6A7 JUMPI POP PUSH2 0x6A7 DUP3 PUSH2 0xF6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2073 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x6C7 DUP2 PUSH1 0x0 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x6D5 JUMPI PUSH2 0x6D5 DUP2 CALLER PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E5 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x6F1 DUP2 DUP6 PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x6FD DUP9 DUP9 DUP9 DUP9 PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x735 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x746 DUP2 PUSH2 0x1165 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x76F JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x791 DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x79B DUP4 DUP4 PUSH2 0x119E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x82E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP3 DUP3 PUSH2 0x11C0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 SWAP1 PUSH2 0x7B2 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x914 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D60 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 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2053 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x94E DUP2 PUSH2 0xE72 JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x96D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x98C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x99E DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xAE1 JUMP JUMPDEST SWAP1 POP PUSH2 0x9AA DUP2 DUP5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA92 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0x9F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA0D SWAP2 SWAP1 PUSH2 0x17BC JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0xA2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0xA54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA66 SWAP2 SWAP1 PUSH2 0x1F02 JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA7A SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA8B DUP2 PUSH2 0x200B JUMP JUMPDEST SWAP1 POP PUSH2 0x9AD JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76F SWAP1 DUP4 PUSH2 0x11E2 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB02 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D9D 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 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xB50 DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0xB59 DUP3 PUSH2 0x83C JUMP JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x6A7 SWAP1 PUSH2 0x11EE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC2D DUP2 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x79B DUP4 DUP4 PUSH2 0x11C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2073 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC51 DUP2 PUSH1 0x0 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0xC5F JUMPI PUSH2 0xC5F DUP2 CALLER PUSH2 0xF93 JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xC7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1E75 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCAF DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xAE1 JUMP JUMPDEST SWAP1 POP PUSH2 0xCBB DUP2 DUP6 PUSH2 0xFF7 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xDC3 JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xCE8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCFD SWAP2 SWAP1 PUSH2 0x17BC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xD21 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xD4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD5F SWAP2 SWAP1 PUSH2 0x1F02 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD6F DUP5 DUP5 DUP5 DUP5 PUSH2 0x1092 JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xDA6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xDBC SWAP1 PUSH2 0x200B JUMP JUMPDEST SWAP1 POP PUSH2 0xCBE JUMP JUMPDEST POP PUSH2 0xDCD DUP2 PUSH2 0x1165 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDE3 DUP3 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x838 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xE19 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76F DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x11F8 JUMP JUMPDEST PUSH2 0xE7C DUP2 CALLER PUSH2 0xF93 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE88 DUP3 PUSH2 0x7A0 JUMP JUMPDEST ISZERO PUSH2 0xEED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0xF4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH2 0xF58 DUP2 TIMESTAMP PUSH2 0x1F76 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5A05180F PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6A7 JUMPI POP PUSH2 0x6A7 DUP3 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0xF9D DUP3 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x838 JUMPI PUSH2 0xFB5 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x127C JUMP JUMPDEST PUSH2 0xFC0 DUP4 PUSH1 0x20 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFD1 SWAP3 SWAP2 SWAP1 PUSH2 0x1CBF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x825 SWAP2 PUSH1 0x4 ADD PUSH2 0x1E42 JUMP JUMPDEST PUSH2 0x1000 DUP3 PUSH2 0x750 JUMP JUMPDEST PUSH2 0x101C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1EB8 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0x1037 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 EQ JUMPDEST PUSH2 0x838 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x10AF SWAP3 SWAP2 SWAP1 PUSH2 0x1CAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x10EC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x10F1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x115E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x825 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x116E DUP2 PUSH2 0x750 JUMP JUMPDEST PUSH2 0x118A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x825 SWAP1 PUSH2 0x1EB8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11A8 DUP3 DUP3 PUSH2 0xDD9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x79B SWAP1 DUP3 PUSH2 0xE5D JUMP JUMPDEST PUSH2 0x11CA DUP3 DUP3 PUSH2 0x145D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x79B SWAP1 DUP3 PUSH2 0x14C2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76F DUP4 DUP4 PUSH2 0x14D7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A7 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x123F JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x6A7 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6A7 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x128B DUP4 PUSH1 0x2 PUSH2 0x1F8E JUMP JUMPDEST PUSH2 0x1296 SWAP1 PUSH1 0x2 PUSH2 0x1F76 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12E5 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x130E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x134B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x136F DUP5 PUSH1 0x2 PUSH2 0x1F8E JUMP JUMPDEST PUSH2 0x137A SWAP1 PUSH1 0x1 PUSH2 0x1F76 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x140E JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x13BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x13E0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1407 DUP2 PUSH2 0x1FF4 JUMP JUMPDEST SWAP1 POP PUSH2 0x137D JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x76F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x825 JUMP JUMPDEST PUSH2 0x1467 DUP3 DUP3 PUSH2 0xAB8 JUMP JUMPDEST ISZERO PUSH2 0x838 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76F DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x150F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x14FC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1622 JUMPI PUSH1 0x0 PUSH2 0x1533 PUSH1 0x1 DUP4 PUSH2 0x1FAD JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1547 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x15C8 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1575 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x15A6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x15E7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x6A7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1659 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x166F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16A1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16BC PUSH2 0x203C JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x16CB DUP3 DUP3 ADD PUSH2 0x1F46 JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 DUP2 ADD SWAP1 DUP7 DUP5 ADD DUP4 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x16E5 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP4 POP JUMPDEST DUP6 DUP5 LT ISZERO PUSH2 0x1707 JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 DUP5 ADD PUSH2 0x16E9 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1724 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x173A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1762 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x177B JUMPI PUSH2 0x177B PUSH2 0x203C JUMP JUMPDEST PUSH2 0x178E PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1F46 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x17A2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CD JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x76F DUP3 PUSH2 0x162C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x17ED JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x17F6 DUP7 PUSH2 0x162C JUMP JUMPDEST SWAP5 POP PUSH2 0x1804 PUSH1 0x20 DUP8 ADD PUSH2 0x162C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x181F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x182B DUP10 DUP4 DUP11 ADD PUSH2 0x1691 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1840 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x184C DUP10 DUP4 DUP11 ADD PUSH2 0x1691 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1861 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x186E DUP9 DUP3 DUP10 ADD PUSH2 0x1752 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1890 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1899 DUP6 PUSH2 0x162C JUMP JUMPDEST SWAP4 POP PUSH2 0x18A7 PUSH1 0x20 DUP7 ADD PUSH2 0x162C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x18C8 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x18D4 DUP8 DUP3 DUP9 ADD PUSH2 0x1752 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18F7 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1900 DUP7 PUSH2 0x162C JUMP JUMPDEST SWAP5 POP PUSH2 0x190E PUSH1 0x20 DUP8 ADD PUSH2 0x162C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1936 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x186E DUP9 DUP3 DUP10 ADD PUSH2 0x1752 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x195A JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1963 DUP8 PUSH2 0x162C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1984 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1990 DUP10 DUP3 DUP11 ADD PUSH2 0x1713 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x19C5 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x19CE DUP9 PUSH2 0x162C JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x19EF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x19FB DUP11 DUP3 DUP12 ADD PUSH2 0x1713 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1A38 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1A4E JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1A5A DUP13 DUP4 DUP14 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A72 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x1A7E DUP13 DUP4 DUP14 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A96 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x1AA3 DUP12 DUP3 DUP13 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1ADE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1AF4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1B00 DUP14 DUP4 DUP15 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1B18 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1B24 DUP14 DUP4 DUP15 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1B3C JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1B49 DUP13 DUP3 DUP14 ADD PUSH2 0x1648 JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B7F JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B98 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1BA8 PUSH1 0x20 DUP5 ADD PUSH2 0x162C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BC3 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BE3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x76F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 DUP5 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x1C79 JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1C33 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP8 ADD DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1C4A JUMPI DUP8 DUP9 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP10 SGT ISZERO PUSH2 0x1C58 JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x1C65 DUP7 DUP3 DUP10 DUP6 ADD PUSH2 0x1C86 JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1C13 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1CF1 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1FC4 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1D22 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1FC4 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1D56 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x1C86 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1D88 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x1C86 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1DDE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1DC9 DUP5 PUSH2 0x162C JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1DB0 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1DFD JUMPI DUP3 DUP4 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD PUSH1 0x20 DUP2 DUP2 ADD DUP4 DUP2 MSTORE DUP5 DUP4 SUB SWAP1 SWAP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1E29 DUP2 DUP9 DUP11 PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x60 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1E61 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1FC4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1F18 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1F31 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1F6E JUMPI PUSH2 0x1F6E PUSH2 0x203C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1F89 JUMPI PUSH2 0x1F89 PUSH2 0x2026 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1FA8 JUMPI PUSH2 0x1FA8 PUSH2 0x2026 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1FBF JUMPI PUSH2 0x1FBF PUSH2 0x2026 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FDF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1FC7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2003 JUMPI PUSH2 0x2003 PUSH2 0x2026 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x201F JUMPI PUSH2 0x201F PUSH2 0x2026 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0xB0 SWAP11 0xA5 0xAE 0xB3 PUSH17 0x2CFD50B6B62BC4532604938F21248A27A1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xA2646970 PUSH7 0x7358221220B3E3 0x5E SWAP6 GASPRICE 0x25 SWAP13 NOT SWAP11 PUSH14 0x964CAC74CE9C29824111CC10728E LT 0xF6 0xF 0xB3 SAR 0xD0 GASLIMIT PUSH27 0x64736F6C6343000804003300000000000000000000000000000000 ","sourceMap":"1124:14258:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:402;;;;;;;;;;-1:-1:-1;8069:402:67;;;;;:::i;:::-;;:::i;:::-;;4951:306;;;;;;;;;;-1:-1:-1;4951:306:67;;;;;:::i;:::-;;:::i;:::-;;;15778:14:139;;15771:22;15753:41;;15741:2;15726:18;4951:306:67;;;;;;;;1400:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1400:66:67;;;;;15951:25:139;;;15939:2;15924:18;1400:66:67;15906:76:139;1236:86:67;;;;;;;;;;;;1290:32;1236:86;;11033:459;;;;;;:::i;:::-;;:::i;5911:244::-;;;;;;;;;;-1:-1:-1;5911:244:67;;;;;:::i;:::-;;:::i;14557:200::-;;;;;;;;;;-1:-1:-1;14557:200:67;;;;;:::i;:::-;-1:-1:-1;;;14557:200:67;;;;;;;;;;-1:-1:-1;;;;;;16149:33:139;;;16131:52;;16119:2;16104:18;14557:200:67;16086:103:139;4391:129:0;;;;;;;;;;-1:-1:-1;4391:129:0;;;;;:::i;:::-;4465:7;4491:12;;;;;;;;;;:22;;;;4391:129;6234:172:67;;;;;;;;;;-1:-1:-1;6234:172:67;;;;;:::i;:::-;6332:9;6688:15;;;:11;:15;;;;;;1598:1;6364:35;;6234:172;4816:145:0;;;;;;;;;;-1:-1:-1;4816:145:0;;;;;:::i;:::-;;:::i;5413:159:67:-;;;;;;;;;;-1:-1:-1;5413:159:67;;;;;:::i;:::-;;:::i;5925:214:0:-;;;;;;;;;;-1:-1:-1;5925:214:0;;;;;:::i;:::-;;:::i;5654:177:67:-;;;;;;;;;;-1:-1:-1;5654:177:67;;;;;:::i;:::-;;:::i;14213:270::-;;;;;;;;;;-1:-1:-1;14213:270:67;;;;;:::i;:::-;;:::i;7112:284::-;;;;;;;;;;-1:-1:-1;7112:284:67;;;;;:::i;:::-;;:::i;8725:977::-;;;;;;;;;;-1:-1:-1;8725:977:67;;;;;:::i;:::-;;:::i;1328:66::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1328:66:67;;1431:151:1;;;;;;;;;;-1:-1:-1;1431:151:1;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;12575:32:139;;;12557:51;;12545:2;12530:18;1431:151:1;12512:102:139;2895:145:0;;;;;;;;;;-1:-1:-1;2895:145:0;;;;;:::i;:::-;;:::i;2027:49::-;;;;;;;;;;-1:-1:-1;2027:49:0;2072:4;2027:49;;1472:68:67;;;;;;;;;;;;1513:27;1472:68;;7512:337;;;;;;;;;;-1:-1:-1;7512:337:67;;;;;:::i;:::-;;:::i;15133:247::-;;;;;;;;;;-1:-1:-1;15133:247:67;;;;;:::i;:::-;-1:-1:-1;;;15133:247:67;;;;;;;;10295:264;;;;;;;;;;-1:-1:-1;10295:264:67;;;;;:::i;:::-;;:::i;1750:140:1:-;;;;;;;;;;-1:-1:-1;1750:140:1;;;;;:::i;:::-;;:::i;6553:157:67:-;;;;;;;;;;-1:-1:-1;6553:157:67;;;;;:::i;:::-;6648:17;6688:15;;;:11;:15;;;;;;;6553:157;5241:147:0;;;;;;;;;;-1:-1:-1;5241:147:0;;;;;:::i;:::-;;:::i;11752:1021:67:-;;;;;;:::i;:::-;;:::i;14833:219::-;;;;;;;;;;-1:-1:-1;14833:219:67;;;;;:::i;:::-;-1:-1:-1;;;14833:219:67;;;;;;;;6896:103;;;;;;;;;;-1:-1:-1;6983:9:67;;6896:103;;8069:402;-1:-1:-1;;;;;;;;;;;2505:16:0;2516:4;2505:10;:16::i;:::-;8292:10:67::1;8305:53;8319:6;8327:5;8334:4;;8340:11;8353:4;8305:13;:53::i;:::-;8292:66;;8368:20;8378:2;8382:5;8368:9;:20::i;:::-;8421:1;8417:2;8403:61;8424:6;8432:5;8439:4;;8445:11;8458:5;8403:61;;;;;;;;;;;:::i;:::-;;;;;;;;2531:1:0;8069:402:67::0;;;;;;;;:::o;4951:306::-;5110:4;-1:-1:-1;;;;;;5149:49:67;;-1:-1:-1;;;5149:49:67;;:101;;;5214:36;5238:11;5214:23;:36::i;:::-;5130:120;4951:306;-1:-1:-1;;4951:306:67:o;11033:459::-;-1:-1:-1;;;;;;;;;;;4654:25:67;4662:4;4676:1;4654:7;:25::i;:::-;4649:87;;4695:30;4706:4;719:10:38;4695::67;:30::i;:::-;11253:10:::1;11266:56;11280:6;11288:5;11295:7;;11304:11;11317:4;11266:13;:56::i;:::-;11253:69;;11333:28;11345:2;11349:11;11333;:28::i;:::-;11371:32;11380:6;11388:5;11395:7;;11371:8;:32::i;:::-;11435:1;11431:2;11418:43;11438:6;11446:5;11453:7;;11418:43;;;;;;;;;:::i;:::-;;;;;;;;11471:14;11482:2;11471:10;:14::i;:::-;4745:1;11033:459:::0;;;;;;;:::o;5911:244::-;6010:10;6688:15;;;:11;:15;;;;;;1598:1;6089:9;:27;:59;;;;;6133:15;6120:9;:28;;6089:59;6082:66;5911:244;-1:-1:-1;;;5911:244:67:o;4816:145:0:-;4465:7;4491:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;5413:159:67:-;5507:15;6688;;;:11;:15;;;;;;5507;;5545:16;:20;;5413:159;-1:-1:-1;;5413:159:67:o;5925:214:0:-;-1:-1:-1;;;;;6020:23:0;;719:10:38;6020:23:0;6012:83;;;;-1:-1:-1;;;6012:83:0;;20020:2:139;6012:83:0;;;20002:21:139;20059:2;20039:18;;;20032:30;20098:34;20078:18;;;20071:62;-1:-1:-1;;;20149:18:139;;;20142:45;20204:19;;6012:83:0;;;;;;;;;6106:26;6118:4;6124:7;6106:11;:26::i;:::-;5925:214;;:::o;5654:177:67:-;5755:12;6688:15;;;:11;:15;;;;;;1598:1;;5790:16;6553:157;14213:270;14300:10;14322:4;14300:27;14279:117;;;;-1:-1:-1;;;14279:117:67;;19608:2:139;14279:117:67;;;19590:21:139;19647:2;19627:18;;;19620:30;19686:34;19666:18;;;19659:62;-1:-1:-1;;;19737:18:139;;;19730:41;19788:19;;14279:117:67;19580:233:139;14279:117:67;14426:9;;14411:35;;;21010:25:139;;;21066:2;21051:18;;21044:34;;;14411:35:67;;20983:18:139;14411:35:67;;;;;;;14456:9;:20;14213:270::o;7112:284::-;7297:12;7349:6;7357:5;7364:4;;7370:11;7383:4;7338:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7328:61;;;;;;7321:68;;7112:284;;;;;;;;:::o;8725:977::-;-1:-1:-1;;;;;;;;;;;2505:16:0;2516:4;2505:10;:16::i;:::-;9004:31:67;;::::1;8983:113;;;;-1:-1:-1::0;;;8983:113:67::1;;;;;;;:::i;:::-;9127:33:::0;;::::1;9106:115;;;;-1:-1:-1::0;;;9106:115:67::1;;;;;;;:::i;:::-;9232:10;9245:134;9277:7;;9298:6;;9318:8;;9340:11;9365:4;9245:18;:134::i;:::-;9232:147;;9389:20;9399:2;9403:5;9389:9;:20::i;:::-;9424:9;9419:277;9439:18:::0;;::::1;9419:277;;;9534:1;9514:2;9483:202;9553:7;;9561:1;9553:10;;;;;-1:-1:-1::0;;;9553:10:67::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9581:6;;9588:1;9581:9;;;;;-1:-1:-1::0;;;9581:9:67::1;;;;;;;;;;;;;;;9608:8;;9617:1;9608:11;;;;;-1:-1:-1::0;;;9608:11:67::1;;;;;;;;;;;;;;;;;;;;:::i;:::-;9637;9666:5;9483:202;;;;;;;;;;;:::i;:::-;;;;;;;;9459:3;::::0;::::1;:::i;:::-;;;9419:277;;;;2531:1:0;8725:977:67::0;;;;;;;;;;:::o;1431:151:1:-;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;2895:145:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145::o;7512:337:67:-;7732:12;7796:7;;7805:6;;7813:8;;7823:11;7836:4;7785:56;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7775:67;;;;;;7756:86;;7512:337;;;;;;;;;;:::o;10295:264::-;1513:27;2505:16:0;2516:4;2505:10;:16::i;:::-;10394:22:67::1;10413:2;10394:18;:22::i;:::-;10373:118;;;::::0;-1:-1:-1;;;10373:118:67;;19190:2:139;10373:118:67::1;::::0;::::1;19172:21:139::0;19229:2;19209:18;;;19202:30;19268:34;19248:18;;;19241:62;-1:-1:-1;;;19319:18:139;;;19312:47;19376:19;;10373:118:67::1;19162:239:139::0;10373:118:67::1;10508:15;::::0;;;:11:::1;:15;::::0;;;;;10501:22;;;10539:13;10520:2;;10539:13:::1;::::0;::::1;10295:264:::0;;:::o;1750:140:1:-;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;5241:147:0:-;4465:7;4491:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;11752:1021:67:-:0;-1:-1:-1;;;;;;;;;;;4654:25:67;4662:4;4676:1;4654:7;:25::i;:::-;4649:87;;4695:30;4706:4;719:10:38;4695::67;:30::i;:::-;12025:31;;::::1;12004:113;;;;-1:-1:-1::0;;;12004:113:67::1;;;;;;;:::i;:::-;12148:33:::0;;::::1;12127:115;;;;-1:-1:-1::0;;;12127:115:67::1;;;;;;;:::i;:::-;12253:10;12266:134;12298:7;;12319:6;;12339:8;;12361:11;12386:4;12266:18;:134::i;:::-;12253:147;;12411:28;12423:2;12427:11;12411;:28::i;:::-;12454:9;12449:294;12469:18:::0;;::::1;12449:294;;;12508:14;12525:7;;12533:1;12525:10;;;;;-1:-1:-1::0;;;12525:10:67::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12508:27;;12549:13;12565:6;;12572:1;12565:9;;;;;-1:-1:-1::0;;;12565:9:67::1;;;;;;;;;;;;;;;12549:25;;12588:22;;12613:8;;12622:1;12613:11;;;;;-1:-1:-1::0;;;12613:11:67::1;;;;;;;;;;;;;;;;;;;;:::i;:::-;12588:36;;;;12638:32;12647:6;12655:5;12662:7;;12638:8;:32::i;:::-;12706:1;12702:2;12689:43;12709:6;12717:5;12724:7;;12689:43;;;;;;;;;:::i;:::-;;;;;;;;12449:294;;;;12489:3;;;;:::i;:::-;;;12449:294;;;;12752:14;12763:2;12752:10;:14::i;:::-;4745:1;11752:1021:::0;;;;;;;;;:::o;7474:233:0:-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;7627:4;7595:36;;;7677:12;719:10:38;;640:96;7677:12:0;-1:-1:-1;;;;;7650:40:0;7668:7;-1:-1:-1;;;;;7650:40:0;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;8028:150:51:-;8098:4;8121:50;8126:3;-1:-1:-1;;;;;8146:23:51;;8121:4;:50::i;3334:103:0:-;3400:30;3411:4;719:10:38;4695::67;:30::i;3400::0:-;3334:103;:::o;9804:349:67:-;9890:15;9902:2;9890:11;:15::i;:::-;9889:16;9868:110;;;;-1:-1:-1;;;9868:110:67;;18363:2:139;9868:110:67;;;18345:21:139;18402:2;18382:18;;;18375:30;18441:34;18421:18;;;18414:62;-1:-1:-1;;;18492:18:139;;;18485:45;18547:19;;9868:110:67;18335:237:139;9868:110:67;6983:9;;10009:5;:22;;9988:107;;;;-1:-1:-1;;;9988:107:67;;17956:2:139;9988:107:67;;;17938:21:139;17995:2;17975:18;;;17968:30;18034:34;18014:18;;;18007:62;-1:-1:-1;;;18085:18:139;;;18078:36;18131:19;;9988:107:67;17928:228:139;9988:107:67;10123:23;10141:5;10123:15;:23;:::i;:::-;10105:15;;;;:11;:15;;;;;;:41;;;;-1:-1:-1;9804:349:67:o;634:212:1:-;719:4;-1:-1:-1;;;;;;742:57:1;;-1:-1:-1;;;742:57:1;;:97;;;803:36;827:11;803:23;:36::i;3718:492:0:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:0;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:0;;;;;;;;;;-1:-1:-1;;;3844:349:0;;;;;;;:::i;13184:345:67:-;13282:20;13299:2;13282:16;:20::i;:::-;13261:109;;;;-1:-1:-1;;;13261:109:67;;;;;;;:::i;:::-;13401:25;;;:57;;-1:-1:-1;6332:9:67;6688:15;;;:11;:15;;;;;;1598:1;6364:35;13430:28;13380:142;;;;-1:-1:-1;;;13380:142:67;;17145:2:139;13380:142:67;;;17127:21:139;17184:2;17164:18;;;17157:30;17223:34;17203:18;;;17196:62;-1:-1:-1;;;17274:18:139;;;17267:36;17320:19;;13380:142:67;17117:228:139;12836:265:67;12964:12;12982:6;-1:-1:-1;;;;;12982:11:67;13001:5;13008:4;;12982:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12963:50;;;13031:7;13023:71;;;;-1:-1:-1;;;13023:71:67;;20436:2:139;13023:71:67;;;20418:21:139;20475:2;20455:18;;;20448:30;20514:34;20494:18;;;20487:62;-1:-1:-1;;;20565:18:139;;;20558:49;20624:19;;13023:71:67;20408:241:139;13023:71:67;12836:265;;;;;:::o;13611:209::-;13682:20;13699:2;13682:16;:20::i;:::-;13661:109;;;;-1:-1:-1;;;13661:109:67;;;;;;;:::i;:::-;13780:15;;;;:11;:15;;;;;1598:1;13780:33;;13611:209::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;9286:156:51:-;9360:7;9410:22;9414:3;9426:5;9410:3;:22::i;8829:115::-;8892:7;8918:19;8926:3;4444:18;;4362:107;2113:404;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:51;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:51;2488:12;;2606:202:0;2691:4;-1:-1:-1;;;;;;2714:47:0;;-1:-1:-1;;;2714:47:0;;:87;;-1:-1:-1;;;;;;;;;;937:40:45;;;2765:36:0;829:155:45;1652:441:40;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;-1:-1:-1;;;;;1774:25:40;;;;;-1:-1:-1;;;1774:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:40;;1752:47;;-1:-1:-1;;;1809:6:40;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:40;;;;;;;;;-1:-1:-1;;;1834:6:40;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:40;;;;;;;;-1:-1:-1;1864:9:40;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:40;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:40;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:40;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:40;;;;;;;;-1:-1:-1;1979:1:40;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:40;;2000:55;;;;-1:-1:-1;;;2000:55:40;;16784:2:139;2000:55:40;;;16766:21:139;;;16803:18;;;16796:30;16862:34;16842:18;;;16835:62;16914:18;;2000:55:40;16756:182:139;7878:234:0;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;;;;;;;;;-1:-1:-1;;;;;7999:29:0;;;;;;;;;;:37;;-1:-1:-1;;7999:37:0;;;8055:40;719:10:38;;7999:12:0;;8055:40;;8031:5;8055:40;7878:234;;:::o;8346:156:51:-;8419:4;8442:53;8450:3;-1:-1:-1;;;;;8470:23:51;;8442:7;:53::i;4811:118::-;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:51;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2685:1388::-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:51;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:51;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:51;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:51;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;14:173:139;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:395::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:2;;344:8;334;327:26;286:2;-1:-1:-1;374:20:139;;-1:-1:-1;;;;;406:30:139;;403:2;;;456:8;446;439:26;403:2;500:4;492:6;488:17;476:29;;560:3;553:4;543:6;540:1;536:14;528:6;524:27;520:38;517:47;514:2;;;577:1;574;567:12;514:2;276:311;;;;;:::o;592:743::-;646:5;699:3;692:4;684:6;680:17;676:27;666:2;;721:5;714;707:20;666:2;761:6;748:20;787:4;-1:-1:-1;;;;;806:2:139;803:26;800:2;;;832:18;;:::i;:::-;878:2;875:1;871:10;901:28;925:2;921;917:11;901:28;:::i;:::-;963:15;;;994:12;;;;1026:15;;;1060;;;1056:24;;1053:33;-1:-1:-1;1050:2:139;;;1103:5;1096;1089:20;1050:2;1129:5;1120:14;;1143:163;1157:2;1154:1;1151:9;1143:163;;;1214:17;;1202:30;;1175:1;1168:9;;;;;1252:12;;;;1284;;1143:163;;;-1:-1:-1;1324:5:139;656:679;-1:-1:-1;;;;;;;656:679:139:o;1340:375::-;1391:8;1401:6;1455:3;1448:4;1440:6;1436:17;1432:27;1422:2;;1480:8;1470;1463:26;1422:2;-1:-1:-1;1510:20:139;;-1:-1:-1;;;;;1542:30:139;;1539:2;;;1592:8;1582;1575:26;1539:2;1636:4;1628:6;1624:17;1612:29;;1688:3;1681:4;1672:6;1664;1660:19;1656:30;1653:39;1650:2;;;1705:1;1702;1695:12;1720:550;1762:5;1815:3;1808:4;1800:6;1796:17;1792:27;1782:2;;1837:5;1830;1823:20;1782:2;1877:6;1864:20;-1:-1:-1;;;;;1899:2:139;1896:26;1893:2;;;1925:18;;:::i;:::-;1969:55;2012:2;1993:13;;-1:-1:-1;;1989:27:139;2018:4;1985:38;1969:55;:::i;:::-;2049:2;2040:7;2033:19;2095:3;2088:4;2083:2;2075:6;2071:15;2067:26;2064:35;2061:2;;;2116:5;2109;2102:20;2061:2;2185;2178:4;2170:6;2166:17;2159:4;2150:7;2146:18;2133:55;2208:16;;;2226:4;2204:27;2197:42;;;;2212:7;1772:498;-1:-1:-1;;1772:498:139:o;2275:196::-;2334:6;2387:2;2375:9;2366:7;2362:23;2358:32;2355:2;;;2408:6;2400;2393:22;2355:2;2436:29;2455:9;2436:29;:::i;2476:983::-;2630:6;2638;2646;2654;2662;2715:3;2703:9;2694:7;2690:23;2686:33;2683:2;;;2737:6;2729;2722:22;2683:2;2765:29;2784:9;2765:29;:::i;:::-;2755:39;;2813:38;2847:2;2836:9;2832:18;2813:38;:::i;:::-;2803:48;;2902:2;2891:9;2887:18;2874:32;-1:-1:-1;;;;;2966:2:139;2958:6;2955:14;2952:2;;;2987:6;2979;2972:22;2952:2;3015:61;3068:7;3059:6;3048:9;3044:22;3015:61;:::i;:::-;3005:71;;3129:2;3118:9;3114:18;3101:32;3085:48;;3158:2;3148:8;3145:16;3142:2;;;3179:6;3171;3164:22;3142:2;3207:63;3262:7;3251:8;3240:9;3236:24;3207:63;:::i;:::-;3197:73;;3323:3;3312:9;3308:19;3295:33;3279:49;;3353:2;3343:8;3340:16;3337:2;;;3374:6;3366;3359:22;3337:2;;3402:51;3445:7;3434:8;3423:9;3419:24;3402:51;:::i;:::-;3392:61;;;2673:786;;;;;;;;:::o;3464:557::-;3559:6;3567;3575;3583;3636:3;3624:9;3615:7;3611:23;3607:33;3604:2;;;3658:6;3650;3643:22;3604:2;3686:29;3705:9;3686:29;:::i;:::-;3676:39;;3734:38;3768:2;3757:9;3753:18;3734:38;:::i;:::-;3724:48;;3819:2;3808:9;3804:18;3791:32;3781:42;;3874:2;3863:9;3859:18;3846:32;-1:-1:-1;;;;;3893:6:139;3890:30;3887:2;;;3938:6;3930;3923:22;3887:2;3966:49;4007:7;3998:6;3987:9;3983:22;3966:49;:::i;:::-;3956:59;;;3594:427;;;;;;;:::o;4026:626::-;4130:6;4138;4146;4154;4162;4215:3;4203:9;4194:7;4190:23;4186:33;4183:2;;;4237:6;4229;4222:22;4183:2;4265:29;4284:9;4265:29;:::i;:::-;4255:39;;4313:38;4347:2;4336:9;4332:18;4313:38;:::i;:::-;4303:48;;4398:2;4387:9;4383:18;4370:32;4360:42;;4449:2;4438:9;4434:18;4421:32;4411:42;;4504:3;4493:9;4489:19;4476:33;-1:-1:-1;;;;;4524:6:139;4521:30;4518:2;;;4569:6;4561;4554:22;4518:2;4597:49;4638:7;4629:6;4618:9;4614:22;4597:49;:::i;4657:709::-;4763:6;4771;4779;4787;4795;4803;4856:3;4844:9;4835:7;4831:23;4827:33;4824:2;;;4878:6;4870;4863:22;4824:2;4906:29;4925:9;4906:29;:::i;:::-;4896:39;;4982:2;4971:9;4967:18;4954:32;4944:42;;5037:2;5026:9;5022:18;5009:32;-1:-1:-1;;;;;5056:6:139;5053:30;5050:2;;;5101:6;5093;5086:22;5050:2;5145:58;5195:7;5186:6;5175:9;5171:22;5145:58;:::i;:::-;4814:552;;;;-1:-1:-1;5222:8:139;5304:2;5289:18;;5276:32;;5355:3;5340:19;;;5327:33;;-1:-1:-1;4814:552:139;-1:-1:-1;;;;4814:552:139:o;5371:778::-;5486:6;5494;5502;5510;5518;5526;5534;5587:3;5575:9;5566:7;5562:23;5558:33;5555:2;;;5609:6;5601;5594:22;5555:2;5637:29;5656:9;5637:29;:::i;:::-;5627:39;;5713:2;5702:9;5698:18;5685:32;5675:42;;5768:2;5757:9;5753:18;5740:32;-1:-1:-1;;;;;5787:6:139;5784:30;5781:2;;;5832:6;5824;5817:22;5781:2;5876:58;5926:7;5917:6;5906:9;5902:22;5876:58;:::i;:::-;5545:604;;;;-1:-1:-1;5953:8:139;6035:2;6020:18;;6007:32;;6086:3;6071:19;;6058:33;;-1:-1:-1;6138:3:139;6123:19;;;6110:33;;-1:-1:-1;5545:604:139;-1:-1:-1;;;;5545:604:139:o;6154:1277::-;6341:6;6349;6357;6365;6373;6381;6389;6397;6450:3;6438:9;6429:7;6425:23;6421:33;6418:2;;;6472:6;6464;6457:22;6418:2;6517:9;6504:23;-1:-1:-1;;;;;6587:2:139;6579:6;6576:14;6573:2;;;6608:6;6600;6593:22;6573:2;6652:70;6714:7;6705:6;6694:9;6690:22;6652:70;:::i;:::-;6741:8;;-1:-1:-1;6626:96:139;-1:-1:-1;6829:2:139;6814:18;;6801:32;;-1:-1:-1;6845:16:139;;;6842:2;;;6879:6;6871;6864:22;6842:2;6923:72;6987:7;6976:8;6965:9;6961:24;6923:72;:::i;:::-;7014:8;;-1:-1:-1;6897:98:139;-1:-1:-1;7102:2:139;7087:18;;7074:32;;-1:-1:-1;7118:16:139;;;7115:2;;;7152:6;7144;7137:22;7115:2;;7196:72;7260:7;7249:8;7238:9;7234:24;7196:72;:::i;:::-;6408:1023;;;;-1:-1:-1;6408:1023:139;;;;7287:8;;7369:2;7354:18;;7341:32;;7420:3;7405:19;7392:33;;-1:-1:-1;6408:1023:139;-1:-1:-1;;;;6408:1023:139:o;7436:1346::-;7632:6;7640;7648;7656;7664;7672;7680;7688;7696;7749:3;7737:9;7728:7;7724:23;7720:33;7717:2;;;7771:6;7763;7756:22;7717:2;7816:9;7803:23;-1:-1:-1;;;;;7886:2:139;7878:6;7875:14;7872:2;;;7907:6;7899;7892:22;7872:2;7951:70;8013:7;8004:6;7993:9;7989:22;7951:70;:::i;:::-;8040:8;;-1:-1:-1;7925:96:139;-1:-1:-1;8128:2:139;8113:18;;8100:32;;-1:-1:-1;8144:16:139;;;8141:2;;;8178:6;8170;8163:22;8141:2;8222:72;8286:7;8275:8;8264:9;8260:24;8222:72;:::i;:::-;8313:8;;-1:-1:-1;8196:98:139;-1:-1:-1;8401:2:139;8386:18;;8373:32;;-1:-1:-1;8417:16:139;;;8414:2;;;8451:6;8443;8436:22;8414:2;;8495:72;8559:7;8548:8;8537:9;8533:24;8495:72;:::i;:::-;7707:1075;;;;-1:-1:-1;7707:1075:139;;;;8586:8;;8668:2;8653:18;;8640:32;;8719:3;8704:19;;8691:33;;-1:-1:-1;8771:3:139;8756:19;8743:33;;-1:-1:-1;7707:1075:139;-1:-1:-1;;;;7707:1075:139:o;8787:190::-;8846:6;8899:2;8887:9;8878:7;8874:23;8870:32;8867:2;;;8920:6;8912;8905:22;8867:2;-1:-1:-1;8948:23:139;;8857:120;-1:-1:-1;8857:120:139:o;8982:264::-;9050:6;9058;9111:2;9099:9;9090:7;9086:23;9082:32;9079:2;;;9132:6;9124;9117:22;9079:2;9173:9;9160:23;9150:33;;9202:38;9236:2;9225:9;9221:18;9202:38;:::i;:::-;9192:48;;9069:177;;;;;:::o;9251:258::-;9319:6;9327;9380:2;9368:9;9359:7;9355:23;9351:32;9348:2;;;9401:6;9393;9386:22;9348:2;-1:-1:-1;;9429:23:139;;;9499:2;9484:18;;;9471:32;;-1:-1:-1;9338:171:139:o;9514:306::-;9572:6;9625:2;9613:9;9604:7;9600:23;9596:32;9593:2;;;9646:6;9638;9631:22;9593:2;9677:23;;-1:-1:-1;;;;;;9729:32:139;;9719:43;;9709:2;;9781:6;9773;9766:22;10020:1044;10127:6;10122:3;10115:19;10097:3;10153:4;10194:2;10189:3;10185:12;10219:11;10246;10239:18;;10296:6;10293:1;10289:14;10282:5;10278:26;10266:38;;10327:5;10350:3;10362:676;10376:6;10373:1;10370:13;10362:676;;;10447:5;10441:4;10437:16;10432:3;10425:29;10506:6;10493:20;10596:2;10592:7;10584:5;10568:14;10564:26;10560:40;10540:18;10536:65;10526:2;;10617:3;10612;10605:16;10526:2;10651:30;;10710:21;;-1:-1:-1;;;;;10747:32:139;;10744:2;;;10794:3;10789;10782:16;10744:2;10847:8;10831:14;10827:29;10820:5;10816:41;10813:2;;;10872:3;10867;10860:16;10813:2;10899:59;10953:4;10943:8;10938:2;10929:7;10925:16;10899:59;:::i;:::-;11016:12;;;;10891:67;-1:-1:-1;;;10981:15:139;;;;10398:1;10391:9;10362:676;;;-1:-1:-1;11054:4:139;;10105:959;-1:-1:-1;;;;;;;10105:959:139:o;11069:268::-;11157:6;11152:3;11145:19;11209:6;11202:5;11195:4;11190:3;11186:14;11173:43;-1:-1:-1;11127:3:139;11236:16;;;11254:4;11232:27;;;11225:40;;;;11319:2;11298:15;;;-1:-1:-1;;11294:29:139;11285:39;;;11281:50;;11135:202::o;11342:273::-;11525:6;11517;11512:3;11499:33;11481:3;11551:16;;11576:15;;;11551:16;11489:126;-1:-1:-1;11489:126:139:o;11620:786::-;-1:-1:-1;;;12026:3:139;12019:38;12001:3;12086:6;12080:13;12102:62;12157:6;12152:2;12147:3;12143:12;12136:4;12128:6;12124:17;12102:62;:::i;:::-;-1:-1:-1;;;12223:2:139;12183:16;;;12215:11;;;12208:40;12273:13;;12295:63;12273:13;12344:2;12336:11;;12329:4;12317:17;;12295:63;:::i;:::-;12378:17;12397:2;12374:26;;12009:397;-1:-1:-1;;;;12009:397:139:o;12619:412::-;12861:1;12857;12852:3;12848:11;12844:19;12836:6;12832:32;12821:9;12814:51;12901:6;12896:2;12885:9;12881:18;12874:34;12944:2;12939;12928:9;12924:18;12917:30;12795:4;12964:61;13021:2;13010:9;13006:18;12998:6;12990;12964:61;:::i;:::-;12956:69;12804:227;-1:-1:-1;;;;;;12804:227:139:o;13036:557::-;13334:1;13330;13325:3;13321:11;13317:19;13309:6;13305:32;13294:9;13287:51;13374:6;13369:2;13358:9;13354:18;13347:34;13417:3;13412:2;13401:9;13397:18;13390:31;13268:4;13438:62;13495:3;13484:9;13480:19;13472:6;13464;13438:62;:::i;:::-;13531:2;13516:18;;13509:34;;;;-1:-1:-1;13574:3:139;13559:19;13552:35;13430:70;13277:316;-1:-1:-1;;;;13277:316:139:o;14160:1448::-;14612:3;14625:22;;;14597:19;;14682:22;;;14564:4;14762:6;14735:3;14720:19;;14564:4;14799:235;14813:6;14810:1;14807:13;14799:235;;;-1:-1:-1;;;;;14878:26:139;14897:6;14878:26;:::i;:::-;14874:52;14862:65;;14950:4;15009:15;;;;14974:12;;;;14835:1;14828:9;14799:235;;;-1:-1:-1;15072:19:139;;;15065:4;15050:20;;15043:49;15101:19;;;-1:-1:-1;;;;;15132:31:139;;15129:2;;;15179:4;15173;15166:18;15129:2;15216:6;15213:1;15209:14;15195:28;;15269:6;15261;15254:4;15249:3;15245:14;15232:44;15295:16;15338:4;15330:13;;;15352:16;;;15408:18;;;15404:29;;;15399:2;15384:18;;15377:57;15451:64;15330:13;15504:6;15496;15451:64;:::i;:::-;15546:2;15531:18;;15524:34;;;;-1:-1:-1;;;15589:3:139;15574:19;15567:35;15443:72;14573:1035;-1:-1:-1;;;;;;14573:1035:139:o;16194:383::-;16343:2;16332:9;16325:21;16306:4;16375:6;16369:13;16418:6;16413:2;16402:9;16398:18;16391:34;16434:66;16493:6;16488:2;16477:9;16473:18;16468:2;16460:6;16456:15;16434:66;:::i;:::-;16561:2;16540:15;-1:-1:-1;;16536:29:139;16521:45;;;;16568:2;16517:54;;16315:262;-1:-1:-1;;16315:262:139:o;17350:399::-;17552:2;17534:21;;;17591:2;17571:18;;;17564:30;17630:34;17625:2;17610:18;;17603:62;-1:-1:-1;;;17696:2:139;17681:18;;17674:33;17739:3;17724:19;;17524:225::o;18577:406::-;18779:2;18761:21;;;18818:2;18798:18;;;18791:30;18857:34;18852:2;18837:18;;18830:62;-1:-1:-1;;;18923:2:139;18908:18;;18901:40;18973:3;18958:19;;18751:232::o;21089:533::-;21166:4;21172:6;21232:11;21219:25;21326:2;21322:7;21311:8;21295:14;21291:29;21287:43;21267:18;21263:68;21253:2;;21348:4;21342;21335:18;21253:2;21378:33;;21430:20;;;-1:-1:-1;;;;;;21462:30:139;;21459:2;;;21508:4;21502;21495:18;21459:2;21544:4;21532:17;;-1:-1:-1;21575:14:139;21571:27;;;21561:38;;21558:2;;;21612:1;21609;21602:12;21627:275;21698:2;21692:9;21763:2;21744:13;;-1:-1:-1;;21740:27:139;21728:40;;-1:-1:-1;;;;;21783:34:139;;21819:22;;;21780:62;21777:2;;;21845:18;;:::i;:::-;21881:2;21874:22;21672:230;;-1:-1:-1;21672:230:139:o;21907:128::-;21947:3;21978:1;21974:6;21971:1;21968:13;21965:2;;;21984:18;;:::i;:::-;-1:-1:-1;22020:9:139;;21955:80::o;22040:168::-;22080:7;22146:1;22142;22138:6;22134:14;22131:1;22128:21;22123:1;22116:9;22109:17;22105:45;22102:2;;;22153:18;;:::i;:::-;-1:-1:-1;22193:9:139;;22092:116::o;22213:125::-;22253:4;22281:1;22278;22275:8;22272:2;;;22286:18;;:::i;:::-;-1:-1:-1;22323:9:139;;22262:76::o;22343:258::-;22415:1;22425:113;22439:6;22436:1;22433:13;22425:113;;;22515:11;;;22509:18;22496:11;;;22489:39;22461:2;22454:10;22425:113;;;22556:6;22553:1;22550:13;22547:2;;;22591:1;22582:6;22577:3;22573:16;22566:27;22547:2;;22396:205;;;:::o;22606:136::-;22645:3;22673:5;22663:2;;22682:18;;:::i;:::-;-1:-1:-1;;;22718:18:139;;22653:89::o;22747:135::-;22786:3;-1:-1:-1;;22807:17:139;;22804:2;;;22827:18;;:::i;:::-;-1:-1:-1;22874:1:139;22863:13;;22794:88::o;22887:127::-;22948:10;22943:3;22939:20;22936:1;22929:31;22979:4;22976:1;22969:15;23003:4;23000:1;22993:15;23019:127;23080:10;23075:3;23071:20;23068:1;23061:31;23111:4;23108:1;23101:15;23135:4;23132:1;23125:15"},"methodIdentifiers":{"CANCELLER_ROLE()":"b08e51c0","DEFAULT_ADMIN_ROLE()":"a217fddf","EXECUTOR_ROLE()":"07bd0265","PROPOSER_ROLE()":"8f61f4f5","TIMELOCK_ADMIN_ROLE()":"0d3cf6fc","cancel(bytes32)":"c4d252f5","execute(address,uint256,bytes,bytes32,bytes32)":"134008d3","executeBatch(address[],uint256[],bytes[],bytes32,bytes32)":"e38335e5","getMinDelay()":"f27a0c92","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getTimestamp(bytes32)":"d45c4435","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hashOperation(address,uint256,bytes,bytes32,bytes32)":"8065657f","hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)":"b1c5f427","isOperation(bytes32)":"31d50750","isOperationDone(bytes32)":"2ab0f529","isOperationPending(bytes32)":"584b153e","isOperationReady(bytes32)":"13bc9f20","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","schedule(address,uint256,bytes,bytes32,bytes32,uint256)":"01d5062a","scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)":"8f2a0bb0","supportsInterface(bytes4)":"01ffc9a7","updateDelay(uint256)":"64d62353"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minDelay\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"cancellors\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CallExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"CallScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CANCELLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"executeBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"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\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperationBatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"registered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"scheduleBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"updateDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Contract module which acts as a timelocked controller. When set as the owner of an `Ownable` smart contract, it enforces a timelock on all `onlyOwner` maintenance operations. This gives time for users of the controlled contract to exit before a potentially dangerous maintenance operation is applied. By default, this contract is self administered, meaning administration tasks have to go through the timelock process. The proposer (resp executor) role is in charge of proposing (resp executing) operations. A common use case is to position this {TimelockController} as the owner of a smart contract, with a multisig or a DAO as the sole proposer. _Available since v3.3._\",\"events\":{\"CallExecuted(bytes32,uint256,address,uint256,bytes)\":{\"details\":\"Emitted when a call is performed as part of operation `id`.\"},\"CallScheduled(bytes32,uint256,address,uint256,bytes,bytes32,uint256)\":{\"details\":\"Emitted when a call is scheduled as part of operation `id`.\"},\"Cancelled(bytes32)\":{\"details\":\"Emitted when operation `id` is cancelled.\"},\"MinDelayChange(uint256,uint256)\":{\"details\":\"Emitted when the minimum delay for future operations is modified.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'canceller' role.\"},\"constructor\":{\"details\":\"Initializes the contract with a given `minDelay`, and a list of initial proposers and executors. The proposers receive both the proposer and the canceller role (for backward compatibility). The executors receive the executor role. NOTE: At construction, both the deployer and the timelock itself are administrators. This helps further configuration of the timelock by the deployer. After configuration is done, it is recommended that the deployer renounces its admin position and relies on timelocked operations to perform future maintenance.\"},\"execute(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.\"},\"executeBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getMinDelay()\":{\"details\":\"Returns the minimum delay for an operation to become valid. This value can be changed by executing an operation that calls `updateDelay`.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a single transaction.\"},\"hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"schedule(address,uint256,bytes,bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.\"},\"scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {CallScheduled} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateDelay(uint256)\":{\"details\":\"Changes the minimum timelock duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the timelock itself. This can only be achieved by scheduling and later executing an operation where the timelock is the target and the data is the ABI-encoded call to this function.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MAHATimelockController.sol\":\"MAHATimelockController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/MAHATimelockController.sol\":{\"keccak256\":\"0x6bd4748dd41aea5582ecede20811b57512b461aed850a083f750e84c49b872ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10920dfc05bf85821d1dacbf068478b3c44835a2d2e9242a9b8c6411b601024c\",\"dweb:/ipfs/QmNaDBQjqQDz9XTMygwn1sYYwd1fcauV6cnSGZHxgdBiD2\"]}},\"version\":1}"}},"contracts/MAHAXGovernor.sol":{"MAHAXGovernor":{"abi":[{"inputs":[{"internalType":"contract IRegistry","name":"_registry","type":"address"},{"internalType":"contract TimelockController","name":"_timelock","type":"address"},{"internalType":"uint64","name":"initialVoteExtension","type":"uint64"},{"internalType":"uint256","name":"initialVotingDelay","type":"uint256"},{"internalType":"uint256","name":"initialVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"initialProposalThreshold","type":"uint256"},{"internalType":"uint256","name":"initialQuorum","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"oldVoteExtension","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"newVoteExtension","type":"uint64"}],"name":"LateQuorumVoteExtensionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"extendedDeadline","type":"uint64"}],"name":"ProposalExtended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldQuorum","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newQuorum","type":"uint256"}],"name":"QuorumUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTimelock","type":"address"},{"indexed":false,"internalType":"address","name":"newTimelock","type":"address"}],"name":"TimelockChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lateQuorumVoteExtension","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalEta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalVotes","outputs":[{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"queue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"newVoteExtension","type":"uint64"}],"name":"setLateQuorumVoteExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newQuorum","type":"uint256"}],"name":"updateQuorum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TimelockController","name":"newTimelock","type":"address"}],"name":"updateTimelock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3210:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"242:666:139","statements":[{"body":{"nodeType":"YulBlock","src":"289:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"298:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"306:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"291:6:139"},"nodeType":"YulFunctionCall","src":"291:22:139"},"nodeType":"YulExpressionStatement","src":"291:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"263:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"272:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"259:3:139"},"nodeType":"YulFunctionCall","src":"259:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"284:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"255:3:139"},"nodeType":"YulFunctionCall","src":"255:33:139"},"nodeType":"YulIf","src":"252:2:139"},{"nodeType":"YulVariableDeclaration","src":"324:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"343:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"337:5:139"},"nodeType":"YulFunctionCall","src":"337:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"328:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"398:5:139"}],"functionName":{"name":"validator_revert_contract_IRegistry","nodeType":"YulIdentifier","src":"362:35:139"},"nodeType":"YulFunctionCall","src":"362:42:139"},"nodeType":"YulExpressionStatement","src":"362:42:139"},{"nodeType":"YulAssignment","src":"413:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"423:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"413:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"437:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"462:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"473:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"458:3:139"},"nodeType":"YulFunctionCall","src":"458:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"452:5:139"},"nodeType":"YulFunctionCall","src":"452:25:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"441:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"522:7:139"}],"functionName":{"name":"validator_revert_contract_IRegistry","nodeType":"YulIdentifier","src":"486:35:139"},"nodeType":"YulFunctionCall","src":"486:44:139"},"nodeType":"YulExpressionStatement","src":"486:44:139"},{"nodeType":"YulAssignment","src":"539:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"549:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"539:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"565:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"601:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"586:3:139"},"nodeType":"YulFunctionCall","src":"586:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"580:5:139"},"nodeType":"YulFunctionCall","src":"580:25:139"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"569:7:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"671:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"680:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"688:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"673:6:139"},"nodeType":"YulFunctionCall","src":"673:22:139"},"nodeType":"YulExpressionStatement","src":"673:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"627:7:139"},{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"640:7:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"657:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"661:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"653:3:139"},"nodeType":"YulFunctionCall","src":"653:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"665:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"649:3:139"},"nodeType":"YulFunctionCall","src":"649:18:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"636:3:139"},"nodeType":"YulFunctionCall","src":"636:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"624:2:139"},"nodeType":"YulFunctionCall","src":"624:45:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"617:6:139"},"nodeType":"YulFunctionCall","src":"617:53:139"},"nodeType":"YulIf","src":"614:2:139"},{"nodeType":"YulAssignment","src":"706:17:139","value":{"name":"value_2","nodeType":"YulIdentifier","src":"716:7:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"706:6:139"}]},{"nodeType":"YulAssignment","src":"732:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"752:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"763:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"748:3:139"},"nodeType":"YulFunctionCall","src":"748:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"742:5:139"},"nodeType":"YulFunctionCall","src":"742:25:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"732:6:139"}]},{"nodeType":"YulAssignment","src":"776:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"796:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"807:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"792:3:139"},"nodeType":"YulFunctionCall","src":"792:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"786:5:139"},"nodeType":"YulFunctionCall","src":"786:26:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"776:6:139"}]},{"nodeType":"YulAssignment","src":"821:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"841:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"852:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"837:3:139"},"nodeType":"YulFunctionCall","src":"837:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"831:5:139"},"nodeType":"YulFunctionCall","src":"831:26:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"821:6:139"}]},{"nodeType":"YulAssignment","src":"866:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"886:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"897:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"882:3:139"},"nodeType":"YulFunctionCall","src":"882:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"876:5:139"},"nodeType":"YulFunctionCall","src":"876:26:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"866:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_IRegistry_$35522t_contract$_TimelockController_$3154t_uint64t_uint256t_uint256t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"160:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"171:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"183:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"191:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"199:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"207:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"215:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"223:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"231:6:139","type":""}],"src":"14:894:139"},{"body":{"nodeType":"YulBlock","src":"1042:175:139","statements":[{"nodeType":"YulAssignment","src":"1052:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1064:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1075:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1060:3:139"},"nodeType":"YulFunctionCall","src":"1060:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1052:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"1087:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1105:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1110:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1101:3:139"},"nodeType":"YulFunctionCall","src":"1101:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1114:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1097:3:139"},"nodeType":"YulFunctionCall","src":"1097:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1091:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1132:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1147:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1155:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1143:3:139"},"nodeType":"YulFunctionCall","src":"1143:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1125:6:139"},"nodeType":"YulFunctionCall","src":"1125:34:139"},"nodeType":"YulExpressionStatement","src":"1125:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1179:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1190:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1175:3:139"},"nodeType":"YulFunctionCall","src":"1175:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1199:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1207:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1195:3:139"},"nodeType":"YulFunctionCall","src":"1195:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1168:6:139"},"nodeType":"YulFunctionCall","src":"1168:43:139"},"nodeType":"YulExpressionStatement","src":"1168:43:139"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1003:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1014:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1022:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1033:4:139","type":""}],"src":"913:304:139"},{"body":{"nodeType":"YulBlock","src":"1435:276:139","statements":[{"nodeType":"YulAssignment","src":"1445:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1457:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1468:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1453:3:139"},"nodeType":"YulFunctionCall","src":"1453:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1445:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1488:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1499:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1481:6:139"},"nodeType":"YulFunctionCall","src":"1481:25:139"},"nodeType":"YulExpressionStatement","src":"1481:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1526:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1537:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1522:3:139"},"nodeType":"YulFunctionCall","src":"1522:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1542:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1515:6:139"},"nodeType":"YulFunctionCall","src":"1515:34:139"},"nodeType":"YulExpressionStatement","src":"1515:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1569:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1580:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1565:3:139"},"nodeType":"YulFunctionCall","src":"1565:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"1585:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1558:6:139"},"nodeType":"YulFunctionCall","src":"1558:34:139"},"nodeType":"YulExpressionStatement","src":"1558:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1612:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1623:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1608:3:139"},"nodeType":"YulFunctionCall","src":"1608:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"1628:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1601:6:139"},"nodeType":"YulFunctionCall","src":"1601:34:139"},"nodeType":"YulExpressionStatement","src":"1601:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1655:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1666:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1651:3:139"},"nodeType":"YulFunctionCall","src":"1651:19:139"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1676:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1692:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1697:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1688:3:139"},"nodeType":"YulFunctionCall","src":"1688:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1701:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1684:3:139"},"nodeType":"YulFunctionCall","src":"1684:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1672:3:139"},"nodeType":"YulFunctionCall","src":"1672:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1644:6:139"},"nodeType":"YulFunctionCall","src":"1644:61:139"},"nodeType":"YulExpressionStatement","src":"1644:61:139"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1372:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1383:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1391:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1399:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1407:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1415:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1426:4:139","type":""}],"src":"1222:489:139"},{"body":{"nodeType":"YulBlock","src":"1890:229:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1907:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1918:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1900:6:139"},"nodeType":"YulFunctionCall","src":"1900:21:139"},"nodeType":"YulExpressionStatement","src":"1900:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1941:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1952:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1937:3:139"},"nodeType":"YulFunctionCall","src":"1937:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1957:2:139","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1930:6:139"},"nodeType":"YulFunctionCall","src":"1930:30:139"},"nodeType":"YulExpressionStatement","src":"1930:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1980:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1991:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:139"},"nodeType":"YulFunctionCall","src":"1976:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1996:34:139","type":"","value":"GovernorSettings: voting period "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1969:6:139"},"nodeType":"YulFunctionCall","src":"1969:62:139"},"nodeType":"YulExpressionStatement","src":"1969:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2051:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2062:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2047:3:139"},"nodeType":"YulFunctionCall","src":"2047:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2067:9:139","type":"","value":"too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2040:6:139"},"nodeType":"YulFunctionCall","src":"2040:37:139"},"nodeType":"YulExpressionStatement","src":"2040:37:139"},{"nodeType":"YulAssignment","src":"2086:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2098:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2109:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2094:3:139"},"nodeType":"YulFunctionCall","src":"2094:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2086:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1867:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1881:4:139","type":""}],"src":"1716:403:139"},{"body":{"nodeType":"YulBlock","src":"2253:119:139","statements":[{"nodeType":"YulAssignment","src":"2263:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2275:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2286:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2271:3:139"},"nodeType":"YulFunctionCall","src":"2271:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2263:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2316:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2298:6:139"},"nodeType":"YulFunctionCall","src":"2298:25:139"},"nodeType":"YulExpressionStatement","src":"2298:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2343:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2354:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2339:3:139"},"nodeType":"YulFunctionCall","src":"2339:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2359:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2332:6:139"},"nodeType":"YulFunctionCall","src":"2332:34:139"},"nodeType":"YulExpressionStatement","src":"2332:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2214:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2225:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2233:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2244:4:139","type":""}],"src":"2124:248:139"},{"body":{"nodeType":"YulBlock","src":"2502:174:139","statements":[{"nodeType":"YulAssignment","src":"2512:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2524:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2535:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2520:3:139"},"nodeType":"YulFunctionCall","src":"2520:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2512:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"2547:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2565:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2569:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2561:3:139"},"nodeType":"YulFunctionCall","src":"2561:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"2573:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2557:3:139"},"nodeType":"YulFunctionCall","src":"2557:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2551:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2591:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2606:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2614:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2602:3:139"},"nodeType":"YulFunctionCall","src":"2602:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2584:6:139"},"nodeType":"YulFunctionCall","src":"2584:34:139"},"nodeType":"YulExpressionStatement","src":"2584:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2638:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2649:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2634:3:139"},"nodeType":"YulFunctionCall","src":"2634:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2658:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2666:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2654:3:139"},"nodeType":"YulFunctionCall","src":"2654:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2627:6:139"},"nodeType":"YulFunctionCall","src":"2627:43:139"},"nodeType":"YulExpressionStatement","src":"2627:43:139"}]},"name":"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2463:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2474:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2482:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2493:4:139","type":""}],"src":"2377:299:139"},{"body":{"nodeType":"YulBlock","src":"2736:325:139","statements":[{"nodeType":"YulAssignment","src":"2746:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2760:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2763:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2756:3:139"},"nodeType":"YulFunctionCall","src":"2756:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2746:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2777:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2807:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"2813:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2803:3:139"},"nodeType":"YulFunctionCall","src":"2803:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2781:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2854:31:139","statements":[{"nodeType":"YulAssignment","src":"2856:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2870:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2878:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2866:3:139"},"nodeType":"YulFunctionCall","src":"2866:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2856:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2834:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2827:6:139"},"nodeType":"YulFunctionCall","src":"2827:26:139"},"nodeType":"YulIf","src":"2824:2:139"},{"body":{"nodeType":"YulBlock","src":"2944:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2965:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2972:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2977:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2968:3:139"},"nodeType":"YulFunctionCall","src":"2968:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2958:6:139"},"nodeType":"YulFunctionCall","src":"2958:31:139"},"nodeType":"YulExpressionStatement","src":"2958:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3009:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3012:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3002:6:139"},"nodeType":"YulFunctionCall","src":"3002:15:139"},"nodeType":"YulExpressionStatement","src":"3002:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3037:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3040:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3030:6:139"},"nodeType":"YulFunctionCall","src":"3030:15:139"},"nodeType":"YulExpressionStatement","src":"3030:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2900:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2923:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2931:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2920:2:139"},"nodeType":"YulFunctionCall","src":"2920:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2897:2:139"},"nodeType":"YulFunctionCall","src":"2897:38:139"},"nodeType":"YulIf","src":"2894:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2716:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2725:6:139","type":""}],"src":"2681:380:139"},{"body":{"nodeType":"YulBlock","src":"3122:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"3186:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3195:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3198:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3188:6:139"},"nodeType":"YulFunctionCall","src":"3188:12:139"},"nodeType":"YulExpressionStatement","src":"3188:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3145:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3156:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3171:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3176:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3167:3:139"},"nodeType":"YulFunctionCall","src":"3167:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3180:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3163:3:139"},"nodeType":"YulFunctionCall","src":"3163:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3152:3:139"},"nodeType":"YulFunctionCall","src":"3152:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3142:2:139"},"nodeType":"YulFunctionCall","src":"3142:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3135:6:139"},"nodeType":"YulFunctionCall","src":"3135:50:139"},"nodeType":"YulIf","src":"3132:2:139"}]},"name":"validator_revert_contract_IRegistry","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3111:5:139","type":""}],"src":"3066:142:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_IRegistry_$35522t_contract$_TimelockController_$3154t_uint64t_uint256t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value4, value4) }\n        let value := mload(headStart)\n        validator_revert_contract_IRegistry(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IRegistry(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        if iszero(eq(value_2, and(value_2, sub(shl(64, 1), 1)))) { revert(value4, value4) }\n        value2 := value_2\n        value3 := mload(add(headStart, 96))\n        value4 := mload(add(headStart, 128))\n        value5 := mload(add(headStart, 160))\n        value6 := mload(add(headStart, 192))\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorSettings: voting period \")\n        mstore(add(headStart, 96), \"too low\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(64, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function validator_revert_contract_IRegistry(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040523480156200001257600080fd5b5060405162003f7e38038062003f7e83398101604081905262000035916200048a565b85858585856040518060400160405280600d81526020016c26a0a420ac23b7bb32b93737b960991b81525080620000716200018a60201b60201c565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060601b60c05261012052505082516200011a9250600091506020840190620003e4565b5062000128905083620001a5565b6200013382620001e6565b6200013e816200028c565b5050506200015281620002cd60201b60201c565b506200015e8162000336565b506001600160601b0319606088901b16610140526200017d816200039f565b5050505050505062000564565b6040805180820190915260018152603160f81b602082015290565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b600081116200024b5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b606482015260840160405180910390fd5b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b600754604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a1600780546001600160401b0319166001600160401b0392909216919091179055565b600a54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600c80549082905560408051828152602081018490527f6784e9bcb845caaa98267d7b0918f97d3d17f7cb35a05b52010f7eb587a0acb0910160405180910390a15050565b828054620003f2906200050e565b90600052602060002090601f01602090048101928262000416576000855562000461565b82601f106200043157805160ff191683800117855562000461565b8280016001018555821562000461579182015b828111156200046157825182559160200191906001019062000444565b506200046f92915062000473565b5090565b5b808211156200046f576000815560010162000474565b600080600080600080600060e0888a031215620004a5578283fd5b8751620004b2816200054b565b6020890151909750620004c5816200054b565b60408901519096506001600160401b0381168114620004e2578384fd5b80955050606088015193506080880151925060a0880151915060c0880151905092959891949750929550565b600181811c908216806200052357607f821691505b602082108114156200054557634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03811681146200056157600080fd5b50565b60805160a05160c05160601c60e05161010051610120516101405160601c6139b2620005cc600039600081816105b10152611b6f01526000611f8c01526000611fdb01526000611fb601526000611f0f01526000611f3901526000611f6301526139b26000f3fe60806040526004361061023f5760003560e01c80637b1039991161012e578063c59057e4116100ab578063ea0217cf1161006f578063ea0217cf146107e4578063eb9019d414610804578063ece40cc114610824578063f23a6e6114610844578063f8ce560a1461087057600080fd5b8063c59057e41461070c578063d07f91e91461072c578063d33219b41461074c578063dd4e2ba51461076a578063deaaa7cc146107b057600080fd5b8063ab58fb8e116100f2578063ab58fb8e1461066b578063b58131b01461068b578063bc197c81146106a0578063c01f9e37146106cc578063c28bc2fa146106ec57600080fd5b80637b1039991461059f5780637b3c71d3146105eb5780637d5e81e21461060b5780639a802a6d1461062b578063a890c9101461064b57600080fd5b806335680dc2116101bc578063544ffc9c11610180578063544ffc9c146104c057806354fd4d5014610515578063567813881461053f5780635f398a141461055f57806370b0f6601461057f57600080fd5b806335680dc2146103f45780633932abb1146104145780633bccf4fd146104295780633e4f49e614610449578063438596321461047657600080fd5b8063160cbed711610203578063160cbed7146103455780632656227d146103655780632d63f693146103785780632fe3e2611461039857806332b8113e146103cc57600080fd5b806301ffc9a71461026757806302a251a31461029c57806303420181146102bf57806306fdde03146102df578063150b7a021461030157600080fd5b36610262573061024d610892565b6001600160a01b03161461026057600080fd5b005b600080fd5b34801561027357600080fd5b50610287610282366004613113565b6108ab565b60405190151581526020015b60405180910390f35b3480156102a857600080fd5b506102b16108bc565b604051908152602001610293565b3480156102cb57600080fd5b506102b16102da36600461326e565b6108c7565b3480156102eb57600080fd5b506102f46109bf565b60405161029391906135bc565b34801561030d57600080fd5b5061032c61031c366004612df9565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610293565b34801561035157600080fd5b506102b1610360366004612fa2565b610a51565b6102b1610373366004612fa2565b610c86565b34801561038457600080fd5b506102b1610393366004613157565b610d8f565b3480156103a457600080fd5b506102b17fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156103d857600080fd5b506007546040516001600160401b039091168152602001610293565b34801561040057600080fd5b5061026061040f366004613157565b610dc6565b34801561042057600080fd5b506102b1610e55565b34801561043557600080fd5b506102b1610444366004613311565b610e60565b34801561045557600080fd5b50610469610464366004613157565b610ed6565b6040516102939190613594565b34801561048257600080fd5b5061028761049136600461316f565b60008281526009602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b3480156104cc57600080fd5b506104fa6104db366004613157565b6000908152600960205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610293565b34801561052157600080fd5b506040805180820190915260018152603160f81b60208201526102f4565b34801561054b57600080fd5b506102b161055a36600461319e565b610ee1565b34801561056b57600080fd5b506102b161057a366004613208565b610f0a565b34801561058b57600080fd5b5061026061059a366004613157565b610f54565b3480156105ab57600080fd5b506105d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610293565b3480156105f757600080fd5b506102b16106063660046131c9565b610fe0565b34801561061757600080fd5b506102b161062636600461302d565b611032565b34801561063757600080fd5b506102b1610646366004612f4c565b611049565b34801561065757600080fd5b5061026061066636600461313b565b611060565b34801561067757600080fd5b506102b1610686366004613157565b6110ec565b34801561069757600080fd5b506102b1611195565b3480156106ac57600080fd5b5061032c6106bb366004612d50565b63bc197c8160e01b95945050505050565b3480156106d857600080fd5b506102b16106e7366004613157565b6111a0565b3480156106f857600080fd5b50610260610707366004612ef3565b6111ab565b34801561071857600080fd5b506102b1610727366004612fa2565b611277565b34801561073857600080fd5b5061026061074736600461335e565b6112b1565b34801561075857600080fd5b50600a546001600160a01b03166105d3565b34801561077657600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526102f4565b3480156107bc57600080fd5b506102b17f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b3480156107f057600080fd5b506102606107ff366004613157565b61133d565b34801561081057600080fd5b506102b161081f366004612ec8565b6113c9565b34801561083057600080fd5b5061026061083f366004613157565b6113ea565b34801561085057600080fd5b5061032c61085f366004612e62565b63f23a6e6160e01b95945050505050565b34801561087c57600080fd5b506102b161088b366004613157565b50600c5490565b60006108a6600a546001600160a01b031690565b905090565b60006108b682611476565b92915050565b60006108a660055490565b60008061096b6109637fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610903929190613477565b60405180910390208b80519060200120604051602001610948959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b6040516020818303038152906040528051906020012061149b565b8686866114e9565b90506109b18a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250611507915050565b9a9950505050505050505050565b6060600080546109ce906138bc565b80601f01602080910402602001604051908101604052809291908181526020018280546109fa906138bc565b8015610a475780601f10610a1c57610100808354040283529160200191610a47565b820191906000526020600020905b815481529060010190602001808311610a2a57829003601f168201915b5050505050905090565b600080610a6086868686611277565b90506004610a6d82610ed6565b6007811115610a8c57634e487b7160e01b600052602160045260246000fd5b14610ab25760405162461bcd60e51b8152600401610aa990613642565b60405180910390fd5b600a546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c92916004808301926020929190829003018186803b158015610af757600080fd5b505afa158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f91906130fb565b600a5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610b69908a908a908a906000908b906004016134ee565b60206040518083038186803b158015610b8157600080fd5b505afa158015610b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb991906130fb565b6000838152600b602052604080822092909255600a5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610c04918b918b918b91908b90899060040161353c565b600060405180830381600087803b158015610c1e57600080fd5b505af1158015610c32573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892828242610c649190613832565b6040805192835260208301919091520160405180910390a15095945050505050565b600080610c9586868686611277565b90506000610ca282610ed6565b90506004816007811115610cc657634e487b7160e01b600052602160045260246000fd5b1480610cf157506005816007811115610cef57634e487b7160e01b600052602160045260246000fd5b145b610d0d5760405162461bcd60e51b8152600401610aa990613642565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610d6b8288888888611516565b610d7882888888886115d4565b610d8582888888886115e1565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b610dce610892565b6001600160a01b0316336001600160a01b031614610dfe5760405162461bcd60e51b8152600401610aa9906135cf565b30610e07610892565b6001600160a01b031614610e495760008036604051610e27929190613477565b604051809103902090505b80610e3d600261161e565b14610e4757610e32565b505b610e52816116a1565b50565b60006108a660045490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610eae9061096390608001610948565b9050610ecb878288604051806020016040528060008152506116e6565b979650505050505050565b60006108b682611709565b600080339050610f02848285604051806020016040528060008152506116e6565b949350505050565b600080339050610ecb87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611507915050565b610f5c610892565b6001600160a01b0316336001600160a01b031614610f8c5760405162461bcd60e51b8152600401610aa9906135cf565b30610f95610892565b6001600160a01b031614610fd75760008036604051610fb5929190613477565b604051809103902090505b80610fcb600261161e565b14610fd557610fc0565b505b610e528161187f565b60008033905061102886828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9695505050505050565b6000611040858585856118c0565b95945050505050565b6000611056848484611b6b565b90505b9392505050565b611068610892565b6001600160a01b0316336001600160a01b0316146110985760405162461bcd60e51b8152600401610aa9906135cf565b306110a1610892565b6001600160a01b0316146110e357600080366040516110c1929190613477565b604051809103902090505b806110d7600261161e565b146110e1576110cc565b505b610e5281611c80565b600a546000828152600b602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c44359060240160206040518083038186803b15801561114457600080fd5b505afa158015611158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117c91906130fb565b90508060011461118c5780611059565b60009392505050565b60006108a660065490565b60006108b682611ce9565b6111b3610892565b6001600160a01b0316336001600160a01b0316146111e35760405162461bcd60e51b8152600401610aa9906135cf565b306111ec610892565b6001600160a01b03161461122e576000803660405161120c929190613477565b604051809103902090505b80611222600261161e565b1461122c57611217565b505b6112708483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250611d25915050565b5050505050565b60008484848460405160200161129094939291906134a3565b60408051601f19818403018152919052805160209091012095945050505050565b6112b9610892565b6001600160a01b0316336001600160a01b0316146112e95760405162461bcd60e51b8152600401610aa9906135cf565b306112f2610892565b6001600160a01b0316146113345760008036604051611312929190613477565b604051809103902090505b80611328600261161e565b146113325761131d565b505b610e5281611d4b565b611345610892565b6001600160a01b0316336001600160a01b0316146113755760405162461bcd60e51b8152600401610aa9906135cf565b3061137e610892565b6001600160a01b0316146113c0576000803660405161139e929190613477565b604051809103902090505b806113b4600261161e565b146113be576113a9565b505b610e5281611db5565b600061105983836113e560408051602081019091526000815290565b611b6b565b6113f2610892565b6001600160a01b0316336001600160a01b0316146114225760405162461bcd60e51b8152600401610aa9906135cf565b3061142b610892565b6001600160a01b03161461146d576000803660405161144b929190613477565b604051809103902090505b80611461600261161e565b1461146b57611456565b505b610e5281611e56565b60006001600160e01b03198216636e665ced60e01b14806108b657506108b682611e97565b60006108b66114a8611f02565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006114fa87878787612029565b91509150610d858161210c565b60006110288686868686612308565b3061151f610892565b6001600160a01b0316146112705760005b84518110156115cc57306001600160a01b031685828151811061156357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156115bc576115bc83828151811061159d57634e487b7160e01b600052603260045260246000fd5b60200260200101518051906020012060026123f390919063ffffffff16565b6115c5816138f7565b9050611530565b505050505050565b6112708585858585612439565b306115ea610892565b6001600160a01b03161461127057600254600f81810b810b600160801b909204810b900b1315611270576000600255611270565b600061163d8254600f81810b810b600160801b909204810b900b131590565b1561165b57604051631ed9509560e11b815260040160405180910390fd5b508054600f90810b80820b820b600090815260018085016020526040822080549290558454920190920b6001600160801b03166001600160801b03199091161790915590565b600c80549082905560408051828152602081018490527f6784e9bcb845caaa98267d7b0918f97d3d17f7cb35a05b52010f7eb587a0acb0910160405180910390a15050565b60006110408585858561170460408051602081019091526000815290565b611507565b600080611715836124ad565b9050600481600781111561173957634e487b7160e01b600052602160045260246000fd5b146117445792915050565b6000838152600b60205260409020548061175f575092915050565b600a54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f5299060240160206040518083038186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117db91906130db565b156117ea575060079392505050565b600a54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e9060240160206040518083038186803b15801561182e57600080fd5b505afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186691906130db565b15611875575060059392505050565b5060029392505050565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b60006118ca611195565b6118d93361081f600143613875565b10156119415760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610aa9565b60006119568686868680519060200120611277565b905084518651146119795760405162461bcd60e51b8152600401610aa990613601565b835186511461199a5760405162461bcd60e51b8152600401610aa990613601565b60008651116119e65760405162461bcd60e51b815260206004820152601860248201527711dbdd995c9b9bdc8e88195b5c1d1e481c1c9bdc1bdcd85b60421b6044820152606401610aa9565b600081815260016020908152604091829020825191820190925281546001600160401b03169081905215611a665760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610aa9565b6000611a78611a73610e55565b6125b9565b611a81436125b9565b611a8b919061384a565b90506000611a9a611a736108bc565b611aa4908361384a565b9050611ab08383612625565b611abd6001840182612625565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611b0957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611b3c57816020015b6060815260200190600190039081611b275790505b508c88888e604051611b5699989796959493929190613683565b60405180910390a15091979650505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfe9190612d34565b604051630748d63560e31b81526001600160a01b038681166004830152602482018690529190911690633a46b1a89060440160206040518083038186803b158015611c4857600080fd5b505afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105691906130fb565b600a54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006108b6611cf783612643565b600084815260086020908152604091829020825191820190925290546001600160401b031690819052612672565b606061105684848460405180606001604052806029815260200161395460299139612689565b600754604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a16007805467ffffffffffffffff19166001600160401b0392909216919091179055565b60008111611e155760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610aa9565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b60006001600160e01b0319821663bf26d89760e01b1480611ec857506001600160e01b031982166379dd796f60e01b145b80611ee357506001600160e01b03198216630271189760e51b145b806108b657506301ffc9a760e01b6001600160e01b03198316146108b6565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611f5b57507f000000000000000000000000000000000000000000000000000000000000000046145b15611f8557507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156120565750600090506003612103565b8460ff16601b1415801561206e57508460ff16601c14155b1561207f5750600090506004612103565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120d3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166120fc57600060019250925050612103565b9150600090505b94509492505050565b600081600481111561212e57634e487b7160e01b600052602160045260246000fd5b14156121375750565b600181600481111561215957634e487b7160e01b600052602160045260246000fd5b14156121a25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610aa9565b60028160048111156121c457634e487b7160e01b600052602160045260246000fd5b14156122125760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610aa9565b600381600481111561223457634e487b7160e01b600052602160045260246000fd5b141561228d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610aa9565b60048160048111156122af57634e487b7160e01b600052602160045260246000fd5b1415610e525760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610aa9565b60008061231887878787876127af565b600088815260086020908152604091829020825191820190925281546001600160401b0316908190529192509015801561235657506123568861291f565b156123e857600061236f6007546001600160401b031690565b612378436125b9565b612382919061384a565b905061238d896111a0565b816001600160401b031611156123dc576040516001600160401b038216815289907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b6123e68282612625565b505b509695505050505050565b8154600160801b90819004600f90810b80820b820b6000908152600180870160205260409091209490945584549301900b6001600160801b039081169091029116179055565b600a5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906124749088908890889060009089906004016134ee565b6000604051808303818588803b15801561248d57600080fd5b505af11580156124a1573d6000803e3d6000fd5b50505050505050505050565b6000818152600160205260408120600281015460ff16156124d15750600792915050565b6002810154610100900460ff16156124ec5750600292915050565b60006124f784610d8f565b9050806125465760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610aa9565b438110612557575060009392505050565b6000612562856111a0565b905043811061257657506001949350505050565b61257f8561291f565b801561259e575060008581526009602052604090208054600190910154115b156125ae57506004949350505050565b506003949350505050565b60006001600160401b038211156126215760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610aa9565b5090565b815467ffffffffffffffff19166001600160401b0391909116179055565b60008181526001602081815260408084208151928301909152909101546001600160401b031690819052610db7565b6000818310156126825781611059565b5090919050565b6060824710156126ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610aa9565b6001600160a01b0385163b6127415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa9565b600080866001600160a01b0316858760405161275d9190613487565b60006040518083038185875af1925050503d806000811461279a576040519150601f19603f3d011682016040523d82523d6000602084013e61279f565b606091505b5091509150610ecb828286612956565b60008581526001602081905260408220906127c988610ed6565b60078111156127e857634e487b7160e01b600052602160045260246000fd5b146128415760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610aa9565b604080516020810190915281546001600160401b03169081905260009061286a90889086611b6b565b9050612879888888848861298f565b83516128cb57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516128be9493929190613771565b60405180910390a2610ecb565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb8712898884898960405161290c959493929190613799565b60405180910390a2979650505050505050565b6000818152600960205260408120600281015460018201546129419190613832565b61294d61088b85610d8f565b11159392505050565b60608315612965575081611059565b8251156129755782518084602001fd5b8160405162461bcd60e51b8152600401610aa991906135bc565b60008581526009602090815260408083206001600160a01b0388168452600381019092529091205460ff1615612a175760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b6064820152608401610aa9565b6001600160a01b03851660009081526003820160205260408120805460ff1916600117905560ff168460ff161415612a685782816000016000828254612a5d9190613832565b909155506115cc9050565b60ff841660011415612a885782816001016000828254612a5d9190613832565b60ff841660021415612aa85782816002016000828254612a5d9190613832565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610aa9565b60006001600160401b03831115612b2757612b27613928565b612b3a601f8401601f19166020016137df565b9050828152838383011115612b4e57600080fd5b828260208301376000602084830101529392505050565b600082601f830112612b75578081fd5b81356020612b8a612b858361380f565b6137df565b80838252828201915082860187848660051b8901011115612ba9578586fd5b855b85811015612bd0578135612bbe8161393e565b84529284019290840190600101612bab565b5090979650505050505050565b600082601f830112612bed578081fd5b81356020612bfd612b858361380f565b80838252828201915082860187848660051b8901011115612c1c578586fd5b855b85811015612bd05781356001600160401b03811115612c3b578788fd5b612c498a87838c0101612cff565b8552509284019290840190600101612c1e565b600082601f830112612c6c578081fd5b81356020612c7c612b858361380f565b80838252828201915082860187848660051b8901011115612c9b578586fd5b855b85811015612bd057813584529284019290840190600101612c9d565b60008083601f840112612cca578182fd5b5081356001600160401b03811115612ce0578182fd5b602083019150836020828501011115612cf857600080fd5b9250929050565b600082601f830112612d0f578081fd5b61105983833560208501612b0e565b803560ff81168114612d2f57600080fd5b919050565b600060208284031215612d45578081fd5b81516110598161393e565b600080600080600060a08688031215612d67578081fd5b8535612d728161393e565b94506020860135612d828161393e565b935060408601356001600160401b0380821115612d9d578283fd5b612da989838a01612c5c565b94506060880135915080821115612dbe578283fd5b612dca89838a01612c5c565b93506080880135915080821115612ddf578283fd5b50612dec88828901612cff565b9150509295509295909350565b60008060008060808587031215612e0e578081fd5b8435612e198161393e565b93506020850135612e298161393e565b92506040850135915060608501356001600160401b03811115612e4a578182fd5b612e5687828801612cff565b91505092959194509250565b600080600080600060a08688031215612e79578283fd5b8535612e848161393e565b94506020860135612e948161393e565b9350604086013592506060860135915060808601356001600160401b03811115612ebc578182fd5b612dec88828901612cff565b60008060408385031215612eda578182fd5b8235612ee58161393e565b946020939093013593505050565b60008060008060608587031215612f08578182fd5b8435612f138161393e565b93506020850135925060408501356001600160401b03811115612f34578283fd5b612f4087828801612cb9565b95989497509550505050565b600080600060608486031215612f60578081fd5b8335612f6b8161393e565b92506020840135915060408401356001600160401b03811115612f8c578182fd5b612f9886828701612cff565b9150509250925092565b60008060008060808587031215612fb7578182fd5b84356001600160401b0380821115612fcd578384fd5b612fd988838901612b65565b95506020870135915080821115612fee578384fd5b612ffa88838901612c5c565b9450604087013591508082111561300f578384fd5b5061301c87828801612bdd565b949793965093946060013593505050565b60008060008060808587031215613042578182fd5b84356001600160401b0380821115613058578384fd5b61306488838901612b65565b95506020870135915080821115613079578384fd5b61308588838901612c5c565b9450604087013591508082111561309a578384fd5b6130a688838901612bdd565b935060608701359150808211156130bb578283fd5b508501601f810187136130cc578182fd5b612e5687823560208401612b0e565b6000602082840312156130ec578081fd5b81518015158114611059578182fd5b60006020828403121561310c578081fd5b5051919050565b600060208284031215613124578081fd5b81356001600160e01b031981168114611059578182fd5b60006020828403121561314c578081fd5b81356110598161393e565b600060208284031215613168578081fd5b5035919050565b60008060408385031215613181578182fd5b8235915060208301356131938161393e565b809150509250929050565b600080604083850312156131b0578182fd5b823591506131c060208401612d1e565b90509250929050565b600080600080606085870312156131de578182fd5b843593506131ee60208601612d1e565b925060408501356001600160401b03811115612f34578283fd5b60008060008060006080868803121561321f578283fd5b8535945061322f60208701612d1e565b935060408601356001600160401b038082111561324a578485fd5b61325689838a01612cb9565b90955093506060880135915080821115612ddf578283fd5b60008060008060008060008060e0898b031215613289578586fd5b8835975061329960208a01612d1e565b965060408901356001600160401b03808211156132b4578788fd5b6132c08c838d01612cb9565b909850965060608b01359150808211156132d8578485fd5b506132e58b828c01612cff565b9450506132f460808a01612d1e565b925060a0890135915060c089013590509295985092959890939650565b600080600080600060a08688031215613328578283fd5b8535945061333860208701612d1e565b935061334660408701612d1e565b94979396509394606081013594506080013592915050565b60006020828403121561336f578081fd5b81356001600160401b0381168114611059578182fd5b6000815180845260208085019450808401835b838110156133bd5781516001600160a01b031687529582019590820190600101613398565b509495945050505050565b600081518084526020808501808196508360051b81019150828601855b8581101561340f5782840389526133fd84835161344b565b988501989350908401906001016133e5565b5091979650505050505050565b6000815180845260208085019450808401835b838110156133bd5781518752958201959082019060010161342f565b6000815180845261346381602086016020860161388c565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161349981846020870161388c565b9190910192915050565b6080815260006134b66080830187613385565b82810360208401526134c8818761341c565b905082810360408401526134dc81866133c8565b91505082606083015295945050505050565b60a08152600061350160a0830188613385565b8281036020840152613513818861341c565b9050828103604084015261352781876133c8565b60608401959095525050608001529392505050565b60c08152600061354f60c0830189613385565b8281036020840152613561818961341c565b9050828103604084015261357581886133c8565b60608401969096525050608081019290925260a0909101529392505050565b60208101600883106135b657634e487b7160e01b600052602160045260246000fd5b91905290565b602081526000611059602083018461344b565b602080825260189082015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b604082015260600190565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006101208b8352602060018060a01b038c16818501528160408501526136ac8285018c613385565b915083820360608501526136c0828b61341c565b915083820360808501528189518084528284019150828160051b850101838c01865b8381101561371057601f198784030185526136fe83835161344b565b948601949250908501906001016136e2565b505086810360a0880152613724818c6133c8565b94505050505061373f60c08401876001600160401b03169052565b6001600160401b03851660e0840152828103610100840152613761818561344b565b9c9b505050505050505050505050565b84815260ff84166020820152826040820152608060608201526000611028608083018461344b565b85815260ff8516602082015283604082015260a0606082015260006137c160a083018561344b565b82810360808401526137d3818561344b565b98975050505050505050565b604051601f8201601f191681016001600160401b038111828210171561380757613807613928565b604052919050565b60006001600160401b0382111561382857613828613928565b5060051b60200190565b6000821982111561384557613845613912565b500190565b60006001600160401b0380831681851680830382111561386c5761386c613912565b01949350505050565b60008282101561388757613887613912565b500390565b60005b838110156138a757818101518382015260200161388f565b838111156138b6576000848401525b50505050565b600181811c908216806138d057607f821691505b602082108114156138f157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561390b5761390b613912565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e5257600080fdfe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220afbe54a25605b3b24baa7e442de657a4dd823e8db1463329faa215a9010c6a2c64736f6c63430008040033","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3F7E CODESIZE SUB DUP1 PUSH3 0x3F7E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0x48A JUMP JUMPDEST DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x26A0A420AC23B7BB32B93737B9 PUSH1 0x99 SHL DUP2 MSTORE POP DUP1 PUSH3 0x71 PUSH3 0x18A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 KECCAK256 DUP3 MLOAD DUP4 DUP4 ADD KECCAK256 PUSH1 0xE0 DUP3 SWAP1 MSTORE PUSH2 0x100 DUP2 SWAP1 MSTORE CHAINID PUSH1 0xA0 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP9 ADD DUP2 SWAP1 MSTORE DUP2 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE ADDRESS DUP2 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0xC0 ADD SWAP1 MSTORE DUP1 MLOAD SWAP5 ADD SWAP4 SWAP1 SWAP4 KECCAK256 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0x80 MSTORE ADDRESS PUSH1 0x60 SHL PUSH1 0xC0 MSTORE PUSH2 0x120 MSTORE POP POP DUP3 MLOAD PUSH3 0x11A SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x3E4 JUMP JUMPDEST POP PUSH3 0x128 SWAP1 POP DUP4 PUSH3 0x1A5 JUMP JUMPDEST PUSH3 0x133 DUP3 PUSH3 0x1E6 JUMP JUMPDEST PUSH3 0x13E DUP2 PUSH3 0x28C JUMP JUMPDEST POP POP POP PUSH3 0x152 DUP2 PUSH3 0x2CD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x15E DUP2 PUSH3 0x336 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP9 SWAP1 SHL AND PUSH2 0x140 MSTORE PUSH3 0x17D DUP2 PUSH3 0x39F JUMP JUMPDEST POP POP POP POP POP POP POP PUSH3 0x564 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH3 0x24B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7CA4AC117ED3CDCE75C1161D8207C440389B1A15D69D096831664657C07DAFC2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x8F74EA46EF7894F65EABFB5E6E695DE773A000B47C529AB559178069B226401 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xA 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 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x6784E9BCB845CAAA98267D7B0918F97D3D17F7CB35A05B52010F7EB587A0ACB0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x3F2 SWAP1 PUSH3 0x50E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x416 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x461 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x431 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x461 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x461 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x461 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x444 JUMP JUMPDEST POP PUSH3 0x46F SWAP3 SWAP2 POP PUSH3 0x473 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x46F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x474 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH3 0x4A5 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 MLOAD PUSH3 0x4B2 DUP2 PUSH3 0x54B JUMP JUMPDEST PUSH1 0x20 DUP10 ADD MLOAD SWAP1 SWAP8 POP PUSH3 0x4C5 DUP2 PUSH3 0x54B JUMP JUMPDEST PUSH1 0x40 DUP10 ADD MLOAD SWAP1 SWAP7 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x4E2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP1 SWAP6 POP POP PUSH1 0x60 DUP9 ADD MLOAD SWAP4 POP PUSH1 0x80 DUP9 ADD MLOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD MLOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD MLOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x523 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x545 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0x60 SHR PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH1 0x60 SHR PUSH2 0x39B2 PUSH3 0x5CC PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x5B1 ADD MSTORE PUSH2 0x1B6F ADD MSTORE PUSH1 0x0 PUSH2 0x1F8C ADD MSTORE PUSH1 0x0 PUSH2 0x1FDB ADD MSTORE PUSH1 0x0 PUSH2 0x1FB6 ADD MSTORE PUSH1 0x0 PUSH2 0x1F0F ADD MSTORE PUSH1 0x0 PUSH2 0x1F39 ADD MSTORE PUSH1 0x0 PUSH2 0x1F63 ADD MSTORE PUSH2 0x39B2 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x23F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x12E JUMPI DUP1 PUSH4 0xC59057E4 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xEA0217CF GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xEA0217CF EQ PUSH2 0x7E4 JUMPI DUP1 PUSH4 0xEB9019D4 EQ PUSH2 0x804 JUMPI DUP1 PUSH4 0xECE40CC1 EQ PUSH2 0x824 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x844 JUMPI DUP1 PUSH4 0xF8CE560A EQ PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC59057E4 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD07F91E9 EQ PUSH2 0x72C JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x74C JUMPI DUP1 PUSH4 0xDD4E2BA5 EQ PUSH2 0x76A JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAB58FB8E GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xAB58FB8E EQ PUSH2 0x66B JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xC01F9E37 EQ PUSH2 0x6CC JUMPI DUP1 PUSH4 0xC28BC2FA EQ PUSH2 0x6EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B103999 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x5EB JUMPI DUP1 PUSH4 0x7D5E81E2 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0x9A802A6D EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0xA890C910 EQ PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35680DC2 GT PUSH2 0x1BC JUMPI DUP1 PUSH4 0x544FFC9C GT PUSH2 0x180 JUMPI DUP1 PUSH4 0x544FFC9C EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x53F JUMPI DUP1 PUSH4 0x5F398A14 EQ PUSH2 0x55F JUMPI DUP1 PUSH4 0x70B0F660 EQ PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35680DC2 EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0x43859632 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x160CBED7 GT PUSH2 0x203 JUMPI DUP1 PUSH4 0x160CBED7 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x2656227D EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x2D63F693 EQ PUSH2 0x378 JUMPI DUP1 PUSH4 0x2FE3E261 EQ PUSH2 0x398 JUMPI DUP1 PUSH4 0x32B8113E EQ PUSH2 0x3CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x3420181 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x262 JUMPI ADDRESS PUSH2 0x24D PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x287 PUSH2 0x282 CALLDATASIZE PUSH1 0x4 PUSH2 0x3113 JUMP JUMPDEST PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x8BC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x2DA CALLDATASIZE PUSH1 0x4 PUSH2 0x326E JUMP JUMPDEST PUSH2 0x8C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F4 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x35BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32C PUSH2 0x31C CALLDATASIZE PUSH1 0x4 PUSH2 0x2DF9 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA2 JUMP JUMPDEST PUSH2 0xA51 JUMP JUMPDEST PUSH2 0x2B1 PUSH2 0x373 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA2 JUMP JUMPDEST PUSH2 0xC86 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x384 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x393 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xD8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0xE55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x444 CALLDATASIZE PUSH1 0x4 PUSH2 0x3311 JUMP JUMPDEST PUSH2 0xE60 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x469 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x3594 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x287 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x4DB CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x55A CALLDATASIZE PUSH1 0x4 PUSH2 0x319E JUMP JUMPDEST PUSH2 0xEE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x57A CALLDATASIZE PUSH1 0x4 PUSH2 0x3208 JUMP JUMPDEST PUSH2 0xF0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x59A CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xF54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D3 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x31C9 JUMP JUMPDEST PUSH2 0xFE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x626 CALLDATASIZE PUSH1 0x4 PUSH2 0x302D JUMP JUMPDEST PUSH2 0x1032 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x646 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x1049 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x666 CALLDATASIZE PUSH1 0x4 PUSH2 0x313B JUMP JUMPDEST PUSH2 0x1060 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x686 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x10EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x1195 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32C PUSH2 0x6BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2D50 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x6E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x11A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x707 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF3 JUMP JUMPDEST PUSH2 0x11AB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x727 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA2 JUMP JUMPDEST PUSH2 0x1277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x738 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x747 CALLDATASIZE PUSH1 0x4 PUSH2 0x335E JUMP JUMPDEST PUSH2 0x12B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x758 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x737570706F72743D627261766F2671756F72756D3D666F722C6162737461696E SWAP1 DUP3 ADD MSTORE PUSH2 0x2F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x7FF CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x133D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x81F CALLDATASIZE PUSH1 0x4 PUSH2 0x2EC8 JUMP JUMPDEST PUSH2 0x13C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x83F CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x13EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32C PUSH2 0x85F CALLDATASIZE PUSH1 0x4 PUSH2 0x2E62 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x88B CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST POP PUSH1 0xC SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 DUP3 PUSH2 0x1476 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x96B PUSH2 0x963 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x903 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP12 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x948 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x149B JUMP JUMPDEST DUP7 DUP7 DUP7 PUSH2 0x14E9 JUMP JUMPDEST SWAP1 POP PUSH2 0x9B1 DUP11 DUP3 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP14 SWAP3 POP PUSH2 0x1507 SWAP2 POP POP JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x9CE SWAP1 PUSH2 0x38BC 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 0x9FA SWAP1 PUSH2 0x38BC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA47 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA1C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA47 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA2A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA60 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 PUSH2 0xA6D DUP3 PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xA8C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x793D0649 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF27A0C92 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2F SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xB1C5F427 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB1C5F427 SWAP1 PUSH2 0xB69 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x34EE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB9 SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xA SLOAD SWAP2 MLOAD PUSH4 0x8F2A0BB PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8F2A0BB0 SWAP2 PUSH2 0xC04 SWAP2 DUP12 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 DUP3 DUP3 TIMESTAMP PUSH2 0xC64 SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC95 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCA2 DUP3 PUSH2 0xED6 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xCC6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0xCF1 JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xCEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0xD0D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 DUP2 MSTORE PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xD6B DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1516 JUMP JUMPDEST PUSH2 0xD78 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x15D4 JUMP JUMPDEST PUSH2 0xD85 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x15E1 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0xE07 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE49 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xE27 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0xE3D PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0xE47 JUMPI PUSH2 0xE32 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x16A1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xEAE SWAP1 PUSH2 0x963 SWAP1 PUSH1 0x80 ADD PUSH2 0x948 JUMP JUMPDEST SWAP1 POP PUSH2 0xECB DUP8 DUP3 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16E6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 DUP3 PUSH2 0x1709 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xF02 DUP5 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xECB DUP8 DUP3 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x1507 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF5C PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0xF95 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xFB5 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0xFCB PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0xFD5 JUMPI PUSH2 0xFC0 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x187F JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x1028 DUP7 DUP3 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16E6 SWAP3 POP POP POP JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1040 DUP6 DUP6 DUP6 DUP6 PUSH2 0x18C0 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1056 DUP5 DUP5 DUP5 PUSH2 0x1B6B JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1068 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1098 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x10A1 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10E3 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x10C1 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x10D7 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x10E1 JUMPI PUSH2 0x10CC JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1C80 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xD45C4435 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD45C4435 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1158 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x117C SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 EQ PUSH2 0x118C JUMPI DUP1 PUSH2 0x1059 JUMP JUMPDEST PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 DUP3 PUSH2 0x1CE9 JUMP JUMPDEST PUSH2 0x11B3 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x11E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x11EC PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x122E JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x120C SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1222 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x122C JUMPI PUSH2 0x1217 JUMP JUMPDEST POP JUMPDEST PUSH2 0x1270 DUP5 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x1D25 SWAP2 POP POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1290 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34A3 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 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x12B9 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x12E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x12F2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1334 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1312 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1328 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x1332 JUMPI PUSH2 0x131D JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1D4B JUMP JUMPDEST PUSH2 0x1345 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x137E PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13C0 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x139E SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x13B4 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x13BE JUMPI PUSH2 0x13A9 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1DB5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1059 DUP4 DUP4 PUSH2 0x13E5 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1B6B JUMP JUMPDEST PUSH2 0x13F2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1422 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x142B PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x146D JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x144B SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1461 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x146B JUMPI PUSH2 0x1456 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1E56 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x6E665CED PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8B6 JUMPI POP PUSH2 0x8B6 DUP3 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 PUSH2 0x14A8 PUSH2 0x1F02 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x14FA DUP8 DUP8 DUP8 DUP8 PUSH2 0x2029 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD85 DUP2 PUSH2 0x210C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1028 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2308 JUMP JUMPDEST ADDRESS PUSH2 0x151F PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1270 JUMPI PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x15CC JUMPI ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1563 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x15BC JUMPI PUSH2 0x15BC DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x159D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x2 PUSH2 0x23F3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15C5 DUP2 PUSH2 0x38F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x1530 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1270 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2439 JUMP JUMPDEST ADDRESS PUSH2 0x15EA PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1270 JUMPI PUSH1 0x2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SGT ISZERO PUSH2 0x1270 JUMPI PUSH1 0x0 PUSH1 0x2 SSTORE PUSH2 0x1270 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x163D DUP3 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SGT ISZERO SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x165B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ED95095 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SSTORE DUP5 SLOAD SWAP3 ADD SWAP1 SWAP3 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x6784E9BCB845CAAA98267D7B0918F97D3D17F7CB35A05B52010F7EB587A0ACB0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1040 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1704 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1507 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1715 DUP4 PUSH2 0x24AD JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1739 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1744 JUMPI SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x175F JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2AB0F529 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2AB0F529 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DB SWAP2 SWAP1 PUSH2 0x30DB JUMP JUMPDEST ISZERO PUSH2 0x17EA JUMPI POP PUSH1 0x7 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2C258A9F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x584B153E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x182E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1842 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1866 SWAP2 SWAP1 PUSH2 0x30DB JUMP JUMPDEST ISZERO PUSH2 0x1875 JUMPI POP PUSH1 0x5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP PUSH1 0x2 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18CA PUSH2 0x1195 JUMP JUMPDEST PUSH2 0x18D9 CALLER PUSH2 0x81F PUSH1 0x1 NUMBER PUSH2 0x3875 JUMP JUMPDEST LT ISZERO PUSH2 0x1941 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73657220766F7465732062656C6F772070 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1956 DUP7 DUP7 DUP7 DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP DUP5 MLOAD DUP7 MLOAD EQ PUSH2 0x1979 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3601 JUMP JUMPDEST DUP4 MLOAD DUP7 MLOAD EQ PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3601 JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD GT PUSH2 0x19E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x11DBDD995C9B9BDC8E88195B5C1D1E481C1C9BDC1BDCD85B PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C20616C7265616479206578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A78 PUSH2 0x1A73 PUSH2 0xE55 JUMP JUMPDEST PUSH2 0x25B9 JUMP JUMPDEST PUSH2 0x1A81 NUMBER PUSH2 0x25B9 JUMP JUMPDEST PUSH2 0x1A8B SWAP2 SWAP1 PUSH2 0x384A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A9A PUSH2 0x1A73 PUSH2 0x8BC JUMP JUMPDEST PUSH2 0x1AA4 SWAP1 DUP4 PUSH2 0x384A JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB0 DUP4 DUP4 PUSH2 0x2625 JUMP JUMPDEST PUSH2 0x1ABD PUSH1 0x1 DUP5 ADD DUP3 PUSH2 0x2625 JUMP JUMPDEST PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP5 CALLER DUP12 DUP12 DUP14 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1B3C JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1B27 JUMPI SWAP1 POP JUMPDEST POP DUP13 DUP9 DUP9 DUP15 PUSH1 0x40 MLOAD PUSH2 0x1B56 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3683 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BDA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BFE SWAP2 SWAP1 PUSH2 0x2D34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x748D635 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A46B1A8 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1056 SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x8F74EA46EF7894F65EABFB5E6E695DE773A000B47C529AB559178069B226401 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xA 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 0x0 PUSH2 0x8B6 PUSH2 0x1CF7 DUP4 PUSH2 0x2643 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0x2672 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1056 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3954 PUSH1 0x29 SWAP2 CODECOPY PUSH2 0x2689 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7CA4AC117ED3CDCE75C1161D8207C440389B1A15D69D096831664657C07DAFC2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1E15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xBF26D897 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x1EC8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x79DD796F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x1EE3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ JUMPDEST DUP1 PUSH2 0x8B6 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x8B6 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1F5B JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1F85 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 GT ISZERO PUSH2 0x2056 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x2103 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x206E JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x207F JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x2103 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20FC JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x2103 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x212E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2137 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2159 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x21A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x45434453413A20696E76616C6964207369676E6174757265 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x21C4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2212 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2234 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x228D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x22AF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xE52 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2318 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x27AF JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE SWAP2 SWAP3 POP SWAP1 ISZERO DUP1 ISZERO PUSH2 0x2356 JUMPI POP PUSH2 0x2356 DUP9 PUSH2 0x291F JUMP JUMPDEST ISZERO PUSH2 0x23E8 JUMPI PUSH1 0x0 PUSH2 0x236F PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x2378 NUMBER PUSH2 0x25B9 JUMP JUMPDEST PUSH2 0x2382 SWAP2 SWAP1 PUSH2 0x384A JUMP JUMPDEST SWAP1 POP PUSH2 0x238D DUP10 PUSH2 0x11A0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND GT ISZERO PUSH2 0x23DC JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND DUP2 MSTORE DUP10 SWAP1 PUSH32 0x541F725FB9F7C98A30CC9C0FF32FBB14358CD7159C847A3AA20A2BDC442BA511 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH2 0x23E6 DUP3 DUP3 PUSH2 0x2625 JUMP JUMPDEST POP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DUP2 SWAP1 DIV PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP8 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP5 SLOAD SWAP4 ADD SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MUL SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE38335E5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE38335E5 SWAP1 CALLVALUE SWAP1 PUSH2 0x2474 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x34EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x248D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x24D1 JUMPI POP PUSH1 0x7 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x24EC JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24F7 DUP5 PUSH2 0xD8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x2546 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20756E6B6E6F776E2070726F706F73616C206964000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST NUMBER DUP2 LT PUSH2 0x2557 JUMPI POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2562 DUP6 PUSH2 0x11A0 JUMP JUMPDEST SWAP1 POP NUMBER DUP2 LT PUSH2 0x2576 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x257F DUP6 PUSH2 0x291F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x259E JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0x25AE JUMPI POP PUSH1 0x4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x3 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2621 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0xDB7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2682 JUMPI DUP2 PUSH2 0x1059 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x26EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x2741 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x275D SWAP2 SWAP1 PUSH2 0x3487 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x279A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x279F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0xECB DUP3 DUP3 DUP7 PUSH2 0x2956 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH2 0x27C9 DUP9 PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x27E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2841 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20766F7465206E6F742063757272656E746C7920616374 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x697665 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x286A SWAP1 DUP9 SWAP1 DUP7 PUSH2 0x1B6B JUMP JUMPDEST SWAP1 POP PUSH2 0x2879 DUP9 DUP9 DUP9 DUP5 DUP9 PUSH2 0x298F JUMP JUMPDEST DUP4 MLOAD PUSH2 0x28CB JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP10 DUP9 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x28BE SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3771 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xECB JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE2BABFBAC5889A709B63BB7F598B324E08BC5A4FB9EC647FB3CBC9EC07EB8712 DUP10 DUP9 DUP5 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x290C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH2 0x2941 SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH2 0x294D PUSH2 0x88B DUP6 PUSH2 0xD8F JUMP JUMPDEST GT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2965 JUMPI POP DUP2 PUSH2 0x1059 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2975 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 0xAA9 SWAP2 SWAP1 PUSH2 0x35BC JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x3 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2A17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20766F746520616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x191E4818D85CDD PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xFF AND DUP5 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2A68 JUMPI DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2A5D SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x15CC SWAP1 POP JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x1 EQ ISZERO PUSH2 0x2A88 JUMPI DUP3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2A5D SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x2 EQ ISZERO PUSH2 0x2AA8 JUMPI DUP3 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2A5D SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20696E76616C6964207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH21 0x6C756520666F7220656E756D20566F746554797065 PUSH1 0x58 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x2B27 JUMPI PUSH2 0x2B27 PUSH2 0x3928 JUMP JUMPDEST PUSH2 0x2B3A PUSH1 0x1F DUP5 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x37DF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2B4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2B8A PUSH2 0x2B85 DUP4 PUSH2 0x380F JUMP JUMPDEST PUSH2 0x37DF JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2BA9 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BD0 JUMPI DUP2 CALLDATALOAD PUSH2 0x2BBE DUP2 PUSH2 0x393E JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BAB JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BED JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2BFD PUSH2 0x2B85 DUP4 PUSH2 0x380F JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2C1C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BD0 JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C3B JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x2C49 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x2CFF JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C1E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C6C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2C7C PUSH2 0x2B85 DUP4 PUSH2 0x380F JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2C9B JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BD0 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C9D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2CCA JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CE0 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2CF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D0F JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1059 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2B0E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2D2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D45 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1059 DUP2 PUSH2 0x393E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2D67 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2D72 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2D82 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2D9D JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2DA9 DUP10 DUP4 DUP11 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DBE JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2DCA DUP10 DUP4 DUP11 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DDF JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2DEC DUP9 DUP3 DUP10 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E0E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2E19 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2E29 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E4A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E56 DUP8 DUP3 DUP9 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2E79 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2E84 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2E94 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2EBC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2DEC DUP9 DUP3 DUP10 ADD PUSH2 0x2CFF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EDA JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EE5 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2F08 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2F13 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F34 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F40 DUP8 DUP3 DUP9 ADD PUSH2 0x2CB9 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F60 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2F6B DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F8C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2F98 DUP7 DUP3 DUP8 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2FB7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2FCD JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2FD9 DUP9 DUP4 DUP10 ADD PUSH2 0x2B65 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FEE JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2FFA DUP9 DUP4 DUP10 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x300F JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x301C DUP8 DUP3 DUP9 ADD PUSH2 0x2BDD JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3042 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x3058 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3064 DUP9 DUP4 DUP10 ADD PUSH2 0x2B65 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3079 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3085 DUP9 DUP4 DUP10 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x309A JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x30A6 DUP9 DUP4 DUP10 ADD PUSH2 0x2BDD JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x30BB JUMPI DUP3 DUP4 REVERT JUMPDEST POP DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x30CC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E56 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x2B0E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30EC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1059 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x310C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3124 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1059 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1059 DUP2 PUSH2 0x393E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3168 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3181 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3193 DUP2 PUSH2 0x393E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31B0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x31C0 PUSH1 0x20 DUP5 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31DE JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH2 0x31EE PUSH1 0x20 DUP7 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F34 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x321F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x322F PUSH1 0x20 DUP8 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x324A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3256 DUP10 DUP4 DUP11 ADD PUSH2 0x2CB9 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DDF JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x3289 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x3299 PUSH1 0x20 DUP11 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x32B4 JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x32C0 DUP13 DUP4 DUP14 ADD PUSH2 0x2CB9 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x32D8 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x32E5 DUP12 DUP3 DUP13 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP5 POP POP PUSH2 0x32F4 PUSH1 0x80 DUP11 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3328 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x3338 PUSH1 0x20 DUP8 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP4 POP PUSH2 0x3346 PUSH1 0x40 DUP8 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x336F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1059 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x33BD JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3398 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP4 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP3 DUP7 ADD DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x340F JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x33FD DUP5 DUP4 MLOAD PUSH2 0x344B JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x33E5 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x33BD JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x342F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3463 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x388C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3499 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x388C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x34B6 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3385 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x34C8 DUP2 DUP8 PUSH2 0x341C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x34DC DUP2 DUP7 PUSH2 0x33C8 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3501 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x3385 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3513 DUP2 DUP9 PUSH2 0x341C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3527 DUP2 DUP8 PUSH2 0x33C8 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x354F PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x3385 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3561 DUP2 DUP10 PUSH2 0x341C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3575 DUP2 DUP9 PUSH2 0x33C8 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x8 DUP4 LT PUSH2 0x35B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1059 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x344B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH24 0x476F7665726E6F723A206F6E6C79476F7665726E616E6365 PUSH1 0x40 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20696E76616C69642070726F706F73616C206C656E6774 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420737563636573736675 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP12 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP6 ADD MSTORE DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x36AC DUP3 DUP6 ADD DUP13 PUSH2 0x3385 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x36C0 DUP3 DUP12 PUSH2 0x341C JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x80 DUP6 ADD MSTORE DUP2 DUP10 MLOAD DUP1 DUP5 MSTORE DUP3 DUP5 ADD SWAP2 POP DUP3 DUP2 PUSH1 0x5 SHL DUP6 ADD ADD DUP4 DUP13 ADD DUP7 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3710 JUMPI PUSH1 0x1F NOT DUP8 DUP5 SUB ADD DUP6 MSTORE PUSH2 0x36FE DUP4 DUP4 MLOAD PUSH2 0x344B JUMP JUMPDEST SWAP5 DUP7 ADD SWAP5 SWAP3 POP SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36E2 JUMP JUMPDEST POP POP DUP7 DUP2 SUB PUSH1 0xA0 DUP9 ADD MSTORE PUSH2 0x3724 DUP2 DUP13 PUSH2 0x33C8 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x373F PUSH1 0xC0 DUP5 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0xE0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x3761 DUP2 DUP6 PUSH2 0x344B JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1028 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x344B JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x37C1 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x344B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x37D3 DUP2 DUP6 PUSH2 0x344B JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3807 JUMPI PUSH2 0x3807 PUSH2 0x3928 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3828 JUMPI PUSH2 0x3828 PUSH2 0x3928 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3845 JUMPI PUSH2 0x3845 PUSH2 0x3912 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x386C JUMPI PUSH2 0x386C PUSH2 0x3912 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3887 JUMPI PUSH2 0x3887 PUSH2 0x3912 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38A7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x388F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x38B6 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x38D0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x38F1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x390B JUMPI PUSH2 0x390B PUSH2 0x3912 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2063616C6C KECCAK256 PUSH24 0x6974682076616C7565206661696C6564A264697066735822 SLT KECCAK256 0xAF 0xBE SLOAD LOG2 JUMP SDIV 0xB3 0xB2 0x4B 0xAA PUSH31 0x442DE657A4DD823E8DB1463329FAA215A9010C6A2C64736F6C634300080400 CALLER ","sourceMap":"886:4916:68:-:0;;;1176:618;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1704:9;1650:20;1516:18;1548:19;1581:24;3447:88:5;;;;;;;;;;;;;-1:-1:-1;;;3447:88:5;;;3487:5;3494:9;:7;;;:9;;:::i;:::-;2541:22:44;;;;;;;;;;2597:25;;;;;;2778;;;;2813:31;;;;2873:13;2854:32;;;;-1:-1:-1;3633:73:44;;2651:117;3633:73;;;1481:25:139;;;1522:18;;;1515:34;;;-1:-1:-1;1565:18:139;;1558:34;;;1608:18;;;1601:34;;;;3700:4:44;1651:19:139;;;1644:61;3633:73:44;;;;;;;;;;1453:19:139;;3633:73:44;;3623:84;;;;;;;;2541:22;;2597:25;;2896:85;;3014:4;2991:28;;;;3029:21;;-1:-1:-1;;3515:13:5;;::::1;::::0;-1:-1:-1;3515:5:5::1;::::0;-1:-1:-1;3515:13:5::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;892:35:10;;-1:-1:-1;908:18:10;892:15;:35::i;:::-;937:37;954:19;937:16;:37::i;:::-;984:47;1006:24;984:21;:47::i;:::-;749:289;;;1770:49:9;1798:20;1770:27;;;:49;;:::i;:::-;-1:-1:-1;1780:32:11;1796:15;1780;:32::i;:::-;-1:-1:-1;;;;;;;1729:20:68::4;::::0;;;;::::4;::::0;1759:28:::4;1773:13:::0;1759::::4;:28::i;:::-;1176:618:::0;;;;;;;886:4916;;4786:99:5;4868:10;;;;;;;;;;;;-1:-1:-1;;;4868:10:5;;;;;4786:99::o;2622:171:10:-;2718:12;;2703:44;;;2298:25:139;;;2354:2;2339:18;;2332:34;;;2703:44:10;;2271:18:139;2703:44:10;;;;;;;2757:12;:29;2622:171::o;2913:316::-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:10;;1918:2:139;3048:71:10;;;1900:21:139;1957:2;1937:18;;;1930:30;1996:34;1976:18;;;1969:62;-1:-1:-1;;;2047:18:139;;;2040:37;2094:19;;3048:71:10;;;;;;;;3150:13;;3134:47;;;2298:25:139;;;2354:2;2339:18;;2332:34;;;3134:47:10;;2271:18:139;3134:47:10;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;2298:25:139;;;2354:2;2339:18;;2332:34;;;3452:62:10;;2271:18:139;3452:62:10;;;;;;;3524:18;:41;3359:213::o;4311:204:9:-;4432:14;;4405:60;;;-1:-1:-1;;;;;4432:14:9;;;2584:34:139;;2654:15;;;2649:2;2634:18;;2627:43;4405:60:9;;2520:18:139;4405:60:9;;;;;;;4475:14;:33;;-1:-1:-1;;;;;;4475:33:9;-1:-1:-1;;;;;4475:33:9;;;;;;;;;;4311:204::o;6386:176:11:-;6489:9;;6466:56;;;-1:-1:-1;;;;;6489:9:11;;;1125:34:139;;1195:15;;;1190:2;1175:18;;1168:43;6466:56:11;;1060:18:139;6466:56:11;;;;;;;6532:9;:23;;-1:-1:-1;;;;;;6532:23:11;-1:-1:-1;;;;;6532:23:11;;;;;;;;;;6386:176::o;5618:182:68:-;5707:7;;;5724:19;;;;5758:35;;;2298:25:139;;;2354:2;2339:18;;2332:34;;;5758:35:68;;2271:18:139;5758:35:68;;;;;;;5618:182;;:::o;886:4916::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;886:4916:68;;;-1:-1:-1;886:4916:68;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:894:139;183:6;191;199;207;215;223;231;284:3;272:9;263:7;259:23;255:33;252:2;;;306:6;298;291:22;252:2;343:9;337:16;362:42;398:5;362:42;:::i;:::-;473:2;458:18;;452:25;423:5;;-1:-1:-1;486:44:139;452:25;486:44;:::i;:::-;601:2;586:18;;580:25;549:7;;-1:-1:-1;;;;;;636:32:139;;624:45;;614:2;;688:6;680;673:22;614:2;716:7;706:17;;;763:2;752:9;748:18;742:25;732:35;;807:3;796:9;792:19;786:26;776:36;;852:3;841:9;837:19;831:26;821:36;;897:3;886:9;882:19;876:26;866:36;;242:666;;;;;;;;;;:::o;2681:380::-;2760:1;2756:12;;;;2803;;;2824:2;;2878:4;2870:6;2866:17;2856:27;;2824:2;2931;2923:6;2920:14;2900:18;2897:38;2894:2;;;2977:10;2972:3;2968:20;2965:1;2958:31;3012:4;3009:1;3002:15;3040:4;3037:1;3030:15;2894:2;;2736:325;;;:::o;3066:142::-;-1:-1:-1;;;;;3152:31:139;;3142:42;;3132:2;;3198:1;3195;3188:12;3132:2;3122:86;:::o;:::-;886:4916:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:37946:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"88:332:139","statements":[{"body":{"nodeType":"YulBlock","src":"132:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"134:16:139"},"nodeType":"YulFunctionCall","src":"134:18:139"},"nodeType":"YulExpressionStatement","src":"134:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"104:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"112:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"101:2:139"},"nodeType":"YulFunctionCall","src":"101:30:139"},"nodeType":"YulIf","src":"98:2:139"},{"nodeType":"YulAssignment","src":"163:66:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"200:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"208:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"196:3:139"},"nodeType":"YulFunctionCall","src":"196:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"217:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"213:3:139"},"nodeType":"YulFunctionCall","src":"213:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"192:3:139"},"nodeType":"YulFunctionCall","src":"192:29:139"},{"kind":"number","nodeType":"YulLiteral","src":"223:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"188:3:139"},"nodeType":"YulFunctionCall","src":"188:40:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"172:15:139"},"nodeType":"YulFunctionCall","src":"172:57:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"163:5:139"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"245:5:139"},{"name":"length","nodeType":"YulIdentifier","src":"252:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"238:6:139"},"nodeType":"YulFunctionCall","src":"238:21:139"},"nodeType":"YulExpressionStatement","src":"238:21:139"},{"body":{"nodeType":"YulBlock","src":"297:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"306:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"309:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"299:6:139"},"nodeType":"YulFunctionCall","src":"299:12:139"},"nodeType":"YulExpressionStatement","src":"299:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"278:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"283:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:139"},"nodeType":"YulFunctionCall","src":"274:16:139"},{"name":"end","nodeType":"YulIdentifier","src":"292:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"271:2:139"},"nodeType":"YulFunctionCall","src":"271:25:139"},"nodeType":"YulIf","src":"268:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"339:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"346:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"335:3:139"},"nodeType":"YulFunctionCall","src":"335:16:139"},{"name":"src","nodeType":"YulIdentifier","src":"353:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"358:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"322:12:139"},"nodeType":"YulFunctionCall","src":"322:43:139"},"nodeType":"YulExpressionStatement","src":"322:43:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"389:5:139"},{"name":"length","nodeType":"YulIdentifier","src":"396:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"385:3:139"},"nodeType":"YulFunctionCall","src":"385:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"405:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"381:3:139"},"nodeType":"YulFunctionCall","src":"381:29:139"},{"kind":"number","nodeType":"YulLiteral","src":"412:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"374:6:139"},"nodeType":"YulFunctionCall","src":"374:40:139"},"nodeType":"YulExpressionStatement","src":"374:40:139"}]},"name":"abi_decode_available_length_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"57:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"62:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"70:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"78:5:139","type":""}],"src":"14:406:139"},{"body":{"nodeType":"YulBlock","src":"489:704:139","statements":[{"body":{"nodeType":"YulBlock","src":"538:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"547:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"554:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"540:6:139"},"nodeType":"YulFunctionCall","src":"540:20:139"},"nodeType":"YulExpressionStatement","src":"540:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"517:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"525:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:139"},"nodeType":"YulFunctionCall","src":"513:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"532:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"509:3:139"},"nodeType":"YulFunctionCall","src":"509:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"502:6:139"},"nodeType":"YulFunctionCall","src":"502:35:139"},"nodeType":"YulIf","src":"499:2:139"},{"nodeType":"YulVariableDeclaration","src":"571:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"594:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"581:12:139"},"nodeType":"YulFunctionCall","src":"581:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"575:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"610:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"620:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"614:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"633:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"700:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"660:39:139"},"nodeType":"YulFunctionCall","src":"660:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"644:15:139"},"nodeType":"YulFunctionCall","src":"644:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"637:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"713:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"726:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"717:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"745:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"750:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"738:6:139"},"nodeType":"YulFunctionCall","src":"738:15:139"},"nodeType":"YulExpressionStatement","src":"738:15:139"},{"nodeType":"YulAssignment","src":"762:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"773:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"778:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:139"},"nodeType":"YulFunctionCall","src":"769:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"790:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"805:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"813:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"801:3:139"},"nodeType":"YulFunctionCall","src":"801:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"794:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"870:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"879:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"886:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"872:6:139"},"nodeType":"YulFunctionCall","src":"872:20:139"},"nodeType":"YulExpressionStatement","src":"872:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"839:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"851:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"854:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"847:3:139"},"nodeType":"YulFunctionCall","src":"847:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:139"},"nodeType":"YulFunctionCall","src":"835:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"860:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"831:3:139"},"nodeType":"YulFunctionCall","src":"831:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"865:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"828:2:139"},"nodeType":"YulFunctionCall","src":"828:41:139"},"nodeType":"YulIf","src":"825:2:139"},{"nodeType":"YulVariableDeclaration","src":"903:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"912:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"907:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"971:193:139","statements":[{"nodeType":"YulVariableDeclaration","src":"985:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1011:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"998:12:139"},"nodeType":"YulFunctionCall","src":"998:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"989:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1053:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1028:24:139"},"nodeType":"YulFunctionCall","src":"1028:31:139"},"nodeType":"YulExpressionStatement","src":"1028:31:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1079:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"1084:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1072:6:139"},"nodeType":"YulFunctionCall","src":"1072:18:139"},"nodeType":"YulExpressionStatement","src":"1072:18:139"},{"nodeType":"YulAssignment","src":"1103:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1114:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1119:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1110:3:139"},"nodeType":"YulFunctionCall","src":"1110:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1103:3:139"}]},{"nodeType":"YulAssignment","src":"1135:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1146:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1151:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1142:3:139"},"nodeType":"YulFunctionCall","src":"1142:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1135:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"937:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"940:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"934:2:139"},"nodeType":"YulFunctionCall","src":"934:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"944:18:139","statements":[{"nodeType":"YulAssignment","src":"946:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"955:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"958:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"951:3:139"},"nodeType":"YulFunctionCall","src":"951:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"946:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"930:3:139","statements":[]},"src":"926:238:139"},{"nodeType":"YulAssignment","src":"1173:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1182:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1173:5:139"}]}]},"name":"abi_decode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"463:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"471:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"479:5:139","type":""}],"src":"425:768:139"},{"body":{"nodeType":"YulBlock","src":"1260:793:139","statements":[{"body":{"nodeType":"YulBlock","src":"1309:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1318:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1325:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1311:6:139"},"nodeType":"YulFunctionCall","src":"1311:20:139"},"nodeType":"YulExpressionStatement","src":"1311:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1288:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1296:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1284:3:139"},"nodeType":"YulFunctionCall","src":"1284:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1303:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1280:3:139"},"nodeType":"YulFunctionCall","src":"1280:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1273:6:139"},"nodeType":"YulFunctionCall","src":"1273:35:139"},"nodeType":"YulIf","src":"1270:2:139"},{"nodeType":"YulVariableDeclaration","src":"1342:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1365:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1352:12:139"},"nodeType":"YulFunctionCall","src":"1352:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1346:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1381:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1391:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1385:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1404:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1471:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1431:39:139"},"nodeType":"YulFunctionCall","src":"1431:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1415:15:139"},"nodeType":"YulFunctionCall","src":"1415:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1408:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1484:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1497:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1488:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1516:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1521:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1509:6:139"},"nodeType":"YulFunctionCall","src":"1509:15:139"},"nodeType":"YulExpressionStatement","src":"1509:15:139"},{"nodeType":"YulAssignment","src":"1533:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1544:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1549:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1540:3:139"},"nodeType":"YulFunctionCall","src":"1540:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1533:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1561:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1576:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1584:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:139"},"nodeType":"YulFunctionCall","src":"1572:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1565:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1641:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1650:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1657:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1643:6:139"},"nodeType":"YulFunctionCall","src":"1643:20:139"},"nodeType":"YulExpressionStatement","src":"1643:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1610:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1622:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1625:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1618:3:139"},"nodeType":"YulFunctionCall","src":"1618:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1606:3:139"},"nodeType":"YulFunctionCall","src":"1606:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1631:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:139"},"nodeType":"YulFunctionCall","src":"1602:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"1636:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1599:2:139"},"nodeType":"YulFunctionCall","src":"1599:41:139"},"nodeType":"YulIf","src":"1596:2:139"},{"nodeType":"YulVariableDeclaration","src":"1674:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"1683:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1678:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1742:282:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1756:36:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1788:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1775:12:139"},"nodeType":"YulFunctionCall","src":"1775:17:139"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"1760:11:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1844:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1853:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1860:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1846:6:139"},"nodeType":"YulFunctionCall","src":"1846:20:139"},"nodeType":"YulExpressionStatement","src":"1846:20:139"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"1811:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1824:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1808:2:139"},"nodeType":"YulFunctionCall","src":"1808:35:139"},"nodeType":"YulIf","src":"1805:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1888:3:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1918:6:139"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"1926:11:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1914:3:139"},"nodeType":"YulFunctionCall","src":"1914:24:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1940:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:139"},"nodeType":"YulFunctionCall","src":"1910:33:139"},{"name":"end","nodeType":"YulIdentifier","src":"1945:3:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1893:16:139"},"nodeType":"YulFunctionCall","src":"1893:56:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1881:6:139"},"nodeType":"YulFunctionCall","src":"1881:69:139"},"nodeType":"YulExpressionStatement","src":"1881:69:139"},{"nodeType":"YulAssignment","src":"1963:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1974:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1979:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1970:3:139"},"nodeType":"YulFunctionCall","src":"1970:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1963:3:139"}]},{"nodeType":"YulAssignment","src":"1995:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2006:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2011:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:139"},"nodeType":"YulFunctionCall","src":"2002:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1995:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1708:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1711:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1705:2:139"},"nodeType":"YulFunctionCall","src":"1705:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1715:18:139","statements":[{"nodeType":"YulAssignment","src":"1717:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1726:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1729:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1722:3:139"},"nodeType":"YulFunctionCall","src":"1722:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1717:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1701:3:139","statements":[]},"src":"1697:327:139"},{"nodeType":"YulAssignment","src":"2033:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2042:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2033:5:139"}]}]},"name":"abi_decode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1234:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1242:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1250:5:139","type":""}],"src":"1198:855:139"},{"body":{"nodeType":"YulBlock","src":"2122:629:139","statements":[{"body":{"nodeType":"YulBlock","src":"2171:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2180:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2187:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2173:6:139"},"nodeType":"YulFunctionCall","src":"2173:20:139"},"nodeType":"YulExpressionStatement","src":"2173:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2150:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2158:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2146:3:139"},"nodeType":"YulFunctionCall","src":"2146:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"2165:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2142:3:139"},"nodeType":"YulFunctionCall","src":"2142:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2135:6:139"},"nodeType":"YulFunctionCall","src":"2135:35:139"},"nodeType":"YulIf","src":"2132:2:139"},{"nodeType":"YulVariableDeclaration","src":"2204:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2227:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2214:12:139"},"nodeType":"YulFunctionCall","src":"2214:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2208:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2243:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2253:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2247:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2266:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2333:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"2293:39:139"},"nodeType":"YulFunctionCall","src":"2293:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2277:15:139"},"nodeType":"YulFunctionCall","src":"2277:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2270:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2346:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"2359:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2350:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2378:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2383:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2371:6:139"},"nodeType":"YulFunctionCall","src":"2371:15:139"},"nodeType":"YulExpressionStatement","src":"2371:15:139"},{"nodeType":"YulAssignment","src":"2395:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2406:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2411:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:139"},"nodeType":"YulFunctionCall","src":"2402:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2395:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"2423:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2438:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2446:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2434:3:139"},"nodeType":"YulFunctionCall","src":"2434:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2427:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2503:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2512:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2519:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2505:6:139"},"nodeType":"YulFunctionCall","src":"2505:20:139"},"nodeType":"YulExpressionStatement","src":"2505:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2472:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"2487:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2480:3:139"},"nodeType":"YulFunctionCall","src":"2480:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2468:3:139"},"nodeType":"YulFunctionCall","src":"2468:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2493:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2464:3:139"},"nodeType":"YulFunctionCall","src":"2464:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"2498:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2461:2:139"},"nodeType":"YulFunctionCall","src":"2461:41:139"},"nodeType":"YulIf","src":"2458:2:139"},{"nodeType":"YulVariableDeclaration","src":"2536:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"2545:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2540:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2604:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2625:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2643:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2630:12:139"},"nodeType":"YulFunctionCall","src":"2630:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2618:6:139"},"nodeType":"YulFunctionCall","src":"2618:30:139"},"nodeType":"YulExpressionStatement","src":"2618:30:139"},{"nodeType":"YulAssignment","src":"2661:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2672:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2677:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2668:3:139"},"nodeType":"YulFunctionCall","src":"2668:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2661:3:139"}]},{"nodeType":"YulAssignment","src":"2693:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2704:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2709:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2700:3:139"},"nodeType":"YulFunctionCall","src":"2700:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2693:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2570:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2573:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2567:2:139"},"nodeType":"YulFunctionCall","src":"2567:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2577:18:139","statements":[{"nodeType":"YulAssignment","src":"2579:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2588:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"2591:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:139"},"nodeType":"YulFunctionCall","src":"2584:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2579:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"2563:3:139","statements":[]},"src":"2559:163:139"},{"nodeType":"YulAssignment","src":"2731:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2740:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2731:5:139"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2096:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"2104:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2112:5:139","type":""}],"src":"2058:693:139"},{"body":{"nodeType":"YulBlock","src":"2828:303:139","statements":[{"body":{"nodeType":"YulBlock","src":"2877:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"2886:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"2896:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2879:6:139"},"nodeType":"YulFunctionCall","src":"2879:26:139"},"nodeType":"YulExpressionStatement","src":"2879:26:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2856:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2864:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:139"},"nodeType":"YulFunctionCall","src":"2852:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"2871:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2848:3:139"},"nodeType":"YulFunctionCall","src":"2848:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2841:6:139"},"nodeType":"YulFunctionCall","src":"2841:35:139"},"nodeType":"YulIf","src":"2838:2:139"},{"nodeType":"YulAssignment","src":"2916:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2939:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2926:12:139"},"nodeType":"YulFunctionCall","src":"2926:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2916:6:139"}]},{"body":{"nodeType":"YulBlock","src":"2989:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"2998:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"3008:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2991:6:139"},"nodeType":"YulFunctionCall","src":"2991:26:139"},"nodeType":"YulExpressionStatement","src":"2991:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2961:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2969:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2958:2:139"},"nodeType":"YulFunctionCall","src":"2958:30:139"},"nodeType":"YulIf","src":"2955:2:139"},{"nodeType":"YulAssignment","src":"3028:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3044:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3052:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3040:3:139"},"nodeType":"YulFunctionCall","src":"3040:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"3028:8:139"}]},{"body":{"nodeType":"YulBlock","src":"3109:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3118:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3121:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3111:6:139"},"nodeType":"YulFunctionCall","src":"3111:12:139"},"nodeType":"YulExpressionStatement","src":"3111:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3080:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"3088:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3076:3:139"},"nodeType":"YulFunctionCall","src":"3076:19:139"},{"kind":"number","nodeType":"YulLiteral","src":"3097:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3072:3:139"},"nodeType":"YulFunctionCall","src":"3072:30:139"},{"name":"end","nodeType":"YulIdentifier","src":"3104:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3069:2:139"},"nodeType":"YulFunctionCall","src":"3069:39:139"},"nodeType":"YulIf","src":"3066:2:139"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2791:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"2799:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"2807:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"2817:6:139","type":""}],"src":"2756:375:139"},{"body":{"nodeType":"YulBlock","src":"3188:176:139","statements":[{"body":{"nodeType":"YulBlock","src":"3237:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3246:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"3253:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3239:6:139"},"nodeType":"YulFunctionCall","src":"3239:20:139"},"nodeType":"YulExpressionStatement","src":"3239:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3216:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3224:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3212:3:139"},"nodeType":"YulFunctionCall","src":"3212:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"3231:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3208:3:139"},"nodeType":"YulFunctionCall","src":"3208:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3201:6:139"},"nodeType":"YulFunctionCall","src":"3201:35:139"},"nodeType":"YulIf","src":"3198:2:139"},{"nodeType":"YulAssignment","src":"3270:88:139","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3317:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3325:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3313:3:139"},"nodeType":"YulFunctionCall","src":"3313:17:139"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3345:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3332:12:139"},"nodeType":"YulFunctionCall","src":"3332:20:139"},{"name":"end","nodeType":"YulIdentifier","src":"3354:3:139"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"3279:33:139"},"nodeType":"YulFunctionCall","src":"3279:79:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3270:5:139"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3162:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"3170:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3178:5:139","type":""}],"src":"3136:228:139"},{"body":{"nodeType":"YulBlock","src":"3416:109:139","statements":[{"nodeType":"YulAssignment","src":"3426:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3448:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3435:12:139"},"nodeType":"YulFunctionCall","src":"3435:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3426:5:139"}]},{"body":{"nodeType":"YulBlock","src":"3503:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3512:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3515:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3505:6:139"},"nodeType":"YulFunctionCall","src":"3505:12:139"},"nodeType":"YulExpressionStatement","src":"3505:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3477:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3488:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"3495:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3484:3:139"},"nodeType":"YulFunctionCall","src":"3484:16:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3474:2:139"},"nodeType":"YulFunctionCall","src":"3474:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3467:6:139"},"nodeType":"YulFunctionCall","src":"3467:35:139"},"nodeType":"YulIf","src":"3464:2:139"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3395:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3406:5:139","type":""}],"src":"3369:156:139"},{"body":{"nodeType":"YulBlock","src":"3611:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"3657:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3666:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3674:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3659:6:139"},"nodeType":"YulFunctionCall","src":"3659:22:139"},"nodeType":"YulExpressionStatement","src":"3659:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3632:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3641:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3628:3:139"},"nodeType":"YulFunctionCall","src":"3628:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3653:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3624:3:139"},"nodeType":"YulFunctionCall","src":"3624:32:139"},"nodeType":"YulIf","src":"3621:2:139"},{"nodeType":"YulVariableDeclaration","src":"3692:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3711:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3705:5:139"},"nodeType":"YulFunctionCall","src":"3705:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3696:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3755:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3730:24:139"},"nodeType":"YulFunctionCall","src":"3730:31:139"},"nodeType":"YulExpressionStatement","src":"3730:31:139"},{"nodeType":"YulAssignment","src":"3770:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3780:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3588:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3600:6:139","type":""}],"src":"3530:261:139"},{"body":{"nodeType":"YulBlock","src":"3993:914:139","statements":[{"body":{"nodeType":"YulBlock","src":"4040:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4049:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4057:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4042:6:139"},"nodeType":"YulFunctionCall","src":"4042:22:139"},"nodeType":"YulExpressionStatement","src":"4042:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4014:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4023:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4010:3:139"},"nodeType":"YulFunctionCall","src":"4010:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4035:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4006:3:139"},"nodeType":"YulFunctionCall","src":"4006:33:139"},"nodeType":"YulIf","src":"4003:2:139"},{"nodeType":"YulVariableDeclaration","src":"4075:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4101:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4088:12:139"},"nodeType":"YulFunctionCall","src":"4088:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4079:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4145:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4120:24:139"},"nodeType":"YulFunctionCall","src":"4120:31:139"},"nodeType":"YulExpressionStatement","src":"4120:31:139"},{"nodeType":"YulAssignment","src":"4160:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"4170:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4160:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4184:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4216:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4227:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4212:3:139"},"nodeType":"YulFunctionCall","src":"4212:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4199:12:139"},"nodeType":"YulFunctionCall","src":"4199:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4188:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4265:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4240:24:139"},"nodeType":"YulFunctionCall","src":"4240:33:139"},"nodeType":"YulExpressionStatement","src":"4240:33:139"},{"nodeType":"YulAssignment","src":"4282:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"4292:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4282:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4308:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4339:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4350:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4335:3:139"},"nodeType":"YulFunctionCall","src":"4335:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4322:12:139"},"nodeType":"YulFunctionCall","src":"4322:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4312:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4363:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"4373:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4367:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4418:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4427:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4435:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4420:6:139"},"nodeType":"YulFunctionCall","src":"4420:22:139"},"nodeType":"YulExpressionStatement","src":"4420:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4406:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4414:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4403:2:139"},"nodeType":"YulFunctionCall","src":"4403:14:139"},"nodeType":"YulIf","src":"4400:2:139"},{"nodeType":"YulAssignment","src":"4453:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4496:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4507:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4492:3:139"},"nodeType":"YulFunctionCall","src":"4492:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4516:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4463:28:139"},"nodeType":"YulFunctionCall","src":"4463:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4453:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4533:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4566:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4577:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4562:3:139"},"nodeType":"YulFunctionCall","src":"4562:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4549:12:139"},"nodeType":"YulFunctionCall","src":"4549:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4537:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4610:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4619:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4627:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4612:6:139"},"nodeType":"YulFunctionCall","src":"4612:22:139"},"nodeType":"YulExpressionStatement","src":"4612:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4596:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4606:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4593:2:139"},"nodeType":"YulFunctionCall","src":"4593:16:139"},"nodeType":"YulIf","src":"4590:2:139"},{"nodeType":"YulAssignment","src":"4645:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4699:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:139"},"nodeType":"YulFunctionCall","src":"4684:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4710:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4655:28:139"},"nodeType":"YulFunctionCall","src":"4655:63:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4645:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4727:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4760:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4771:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4756:3:139"},"nodeType":"YulFunctionCall","src":"4756:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4743:12:139"},"nodeType":"YulFunctionCall","src":"4743:33:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"4731:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4805:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4814:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4822:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4807:6:139"},"nodeType":"YulFunctionCall","src":"4807:22:139"},"nodeType":"YulExpressionStatement","src":"4807:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"4791:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4801:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4788:2:139"},"nodeType":"YulFunctionCall","src":"4788:16:139"},"nodeType":"YulIf","src":"4785:2:139"},{"nodeType":"YulAssignment","src":"4840:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4871:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"4882:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4867:3:139"},"nodeType":"YulFunctionCall","src":"4867:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4893:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4850:16:139"},"nodeType":"YulFunctionCall","src":"4850:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4840:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3927:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3938:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3950:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3958:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3966:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3974:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3982:6:139","type":""}],"src":"3796:1111:139"},{"body":{"nodeType":"YulBlock","src":"5042:555:139","statements":[{"body":{"nodeType":"YulBlock","src":"5089:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5098:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"5106:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5091:6:139"},"nodeType":"YulFunctionCall","src":"5091:22:139"},"nodeType":"YulExpressionStatement","src":"5091:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5063:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5072:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5059:3:139"},"nodeType":"YulFunctionCall","src":"5059:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5084:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5055:3:139"},"nodeType":"YulFunctionCall","src":"5055:33:139"},"nodeType":"YulIf","src":"5052:2:139"},{"nodeType":"YulVariableDeclaration","src":"5124:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5150:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5137:12:139"},"nodeType":"YulFunctionCall","src":"5137:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5128:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5194:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5169:24:139"},"nodeType":"YulFunctionCall","src":"5169:31:139"},"nodeType":"YulExpressionStatement","src":"5169:31:139"},{"nodeType":"YulAssignment","src":"5209:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5219:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5209:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5233:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5265:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5276:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5261:3:139"},"nodeType":"YulFunctionCall","src":"5261:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5248:12:139"},"nodeType":"YulFunctionCall","src":"5248:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5237:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5314:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5289:24:139"},"nodeType":"YulFunctionCall","src":"5289:33:139"},"nodeType":"YulExpressionStatement","src":"5289:33:139"},{"nodeType":"YulAssignment","src":"5331:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"5341:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5331:6:139"}]},{"nodeType":"YulAssignment","src":"5357:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5384:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5395:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5380:3:139"},"nodeType":"YulFunctionCall","src":"5380:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5367:12:139"},"nodeType":"YulFunctionCall","src":"5367:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5357:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5408:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5439:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5450:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5435:3:139"},"nodeType":"YulFunctionCall","src":"5435:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5422:12:139"},"nodeType":"YulFunctionCall","src":"5422:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5412:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5497:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5506:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"5514:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5499:6:139"},"nodeType":"YulFunctionCall","src":"5499:22:139"},"nodeType":"YulExpressionStatement","src":"5499:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5469:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5477:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5466:2:139"},"nodeType":"YulFunctionCall","src":"5466:30:139"},"nodeType":"YulIf","src":"5463:2:139"},{"nodeType":"YulAssignment","src":"5532:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5563:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5574:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5559:3:139"},"nodeType":"YulFunctionCall","src":"5559:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5583:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5542:16:139"},"nodeType":"YulFunctionCall","src":"5542:49:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5532:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4984:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4995:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5007:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5015:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5023:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5031:6:139","type":""}],"src":"4912:685:139"},{"body":{"nodeType":"YulBlock","src":"5749:607:139","statements":[{"body":{"nodeType":"YulBlock","src":"5796:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5805:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5813:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5798:6:139"},"nodeType":"YulFunctionCall","src":"5798:22:139"},"nodeType":"YulExpressionStatement","src":"5798:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5770:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5779:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5766:3:139"},"nodeType":"YulFunctionCall","src":"5766:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5791:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5762:3:139"},"nodeType":"YulFunctionCall","src":"5762:33:139"},"nodeType":"YulIf","src":"5759:2:139"},{"nodeType":"YulVariableDeclaration","src":"5831:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5857:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5844:12:139"},"nodeType":"YulFunctionCall","src":"5844:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5835:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5901:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5876:24:139"},"nodeType":"YulFunctionCall","src":"5876:31:139"},"nodeType":"YulExpressionStatement","src":"5876:31:139"},{"nodeType":"YulAssignment","src":"5916:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5926:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5916:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5940:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5972:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5983:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5968:3:139"},"nodeType":"YulFunctionCall","src":"5968:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5955:12:139"},"nodeType":"YulFunctionCall","src":"5955:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5944:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6021:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5996:24:139"},"nodeType":"YulFunctionCall","src":"5996:33:139"},"nodeType":"YulExpressionStatement","src":"5996:33:139"},{"nodeType":"YulAssignment","src":"6038:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6048:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6038:6:139"}]},{"nodeType":"YulAssignment","src":"6064:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6102:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6087:3:139"},"nodeType":"YulFunctionCall","src":"6087:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6074:12:139"},"nodeType":"YulFunctionCall","src":"6074:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6064:6:139"}]},{"nodeType":"YulAssignment","src":"6115:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6142:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6153:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6138:3:139"},"nodeType":"YulFunctionCall","src":"6138:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6125:12:139"},"nodeType":"YulFunctionCall","src":"6125:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6115:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6166:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6197:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6208:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6193:3:139"},"nodeType":"YulFunctionCall","src":"6193:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6180:12:139"},"nodeType":"YulFunctionCall","src":"6180:33:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6170:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6256:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6265:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"6273:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6258:6:139"},"nodeType":"YulFunctionCall","src":"6258:22:139"},"nodeType":"YulExpressionStatement","src":"6258:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6228:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6236:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6225:2:139"},"nodeType":"YulFunctionCall","src":"6225:30:139"},"nodeType":"YulIf","src":"6222:2:139"},{"nodeType":"YulAssignment","src":"6291:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6322:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"6333:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6318:3:139"},"nodeType":"YulFunctionCall","src":"6318:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6342:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6301:16:139"},"nodeType":"YulFunctionCall","src":"6301:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6291:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5683:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5694:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5706:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5714:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5722:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5730:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5738:6:139","type":""}],"src":"5602:754:139"},{"body":{"nodeType":"YulBlock","src":"6448:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"6494:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6503:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6511:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6496:6:139"},"nodeType":"YulFunctionCall","src":"6496:22:139"},"nodeType":"YulExpressionStatement","src":"6496:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6469:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6478:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6465:3:139"},"nodeType":"YulFunctionCall","src":"6465:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6490:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6461:3:139"},"nodeType":"YulFunctionCall","src":"6461:32:139"},"nodeType":"YulIf","src":"6458:2:139"},{"nodeType":"YulVariableDeclaration","src":"6529:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6555:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6542:12:139"},"nodeType":"YulFunctionCall","src":"6542:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6533:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6599:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6574:24:139"},"nodeType":"YulFunctionCall","src":"6574:31:139"},"nodeType":"YulExpressionStatement","src":"6574:31:139"},{"nodeType":"YulAssignment","src":"6614:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6624:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6614:6:139"}]},{"nodeType":"YulAssignment","src":"6638:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6665:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6676:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6661:3:139"},"nodeType":"YulFunctionCall","src":"6661:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6648:12:139"},"nodeType":"YulFunctionCall","src":"6648:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6638:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6406:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6417:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6429:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6437:6:139","type":""}],"src":"6361:325:139"},{"body":{"nodeType":"YulBlock","src":"6814:509:139","statements":[{"body":{"nodeType":"YulBlock","src":"6860:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6869:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"6877:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6862:6:139"},"nodeType":"YulFunctionCall","src":"6862:22:139"},"nodeType":"YulExpressionStatement","src":"6862:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6835:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6831:3:139"},"nodeType":"YulFunctionCall","src":"6831:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6856:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6827:3:139"},"nodeType":"YulFunctionCall","src":"6827:32:139"},"nodeType":"YulIf","src":"6824:2:139"},{"nodeType":"YulVariableDeclaration","src":"6895:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6921:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6908:12:139"},"nodeType":"YulFunctionCall","src":"6908:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6899:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6965:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6940:24:139"},"nodeType":"YulFunctionCall","src":"6940:31:139"},"nodeType":"YulExpressionStatement","src":"6940:31:139"},{"nodeType":"YulAssignment","src":"6980:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6990:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6980:6:139"}]},{"nodeType":"YulAssignment","src":"7004:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7031:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7042:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7027:3:139"},"nodeType":"YulFunctionCall","src":"7027:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7014:12:139"},"nodeType":"YulFunctionCall","src":"7014:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7004:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7055:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7086:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7097:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7082:3:139"},"nodeType":"YulFunctionCall","src":"7082:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7069:12:139"},"nodeType":"YulFunctionCall","src":"7069:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7059:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7144:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7153:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"7161:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7146:6:139"},"nodeType":"YulFunctionCall","src":"7146:22:139"},"nodeType":"YulExpressionStatement","src":"7146:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7116:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7124:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7113:2:139"},"nodeType":"YulFunctionCall","src":"7113:30:139"},"nodeType":"YulIf","src":"7110:2:139"},{"nodeType":"YulVariableDeclaration","src":"7179:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7235:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"7246:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7231:3:139"},"nodeType":"YulFunctionCall","src":"7231:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7255:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"7205:25:139"},"nodeType":"YulFunctionCall","src":"7205:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"7183:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"7193:8:139","type":""}]},{"nodeType":"YulAssignment","src":"7272:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7282:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7272:6:139"}]},{"nodeType":"YulAssignment","src":"7299:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7309:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7299:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6756:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6767:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6779:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6787:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6795:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6803:6:139","type":""}],"src":"6691:632:139"},{"body":{"nodeType":"YulBlock","src":"7441:430:139","statements":[{"body":{"nodeType":"YulBlock","src":"7487:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7496:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"7504:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7489:6:139"},"nodeType":"YulFunctionCall","src":"7489:22:139"},"nodeType":"YulExpressionStatement","src":"7489:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7462:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7471:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7458:3:139"},"nodeType":"YulFunctionCall","src":"7458:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7483:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7454:3:139"},"nodeType":"YulFunctionCall","src":"7454:32:139"},"nodeType":"YulIf","src":"7451:2:139"},{"nodeType":"YulVariableDeclaration","src":"7522:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7548:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7535:12:139"},"nodeType":"YulFunctionCall","src":"7535:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7526:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7592:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7567:24:139"},"nodeType":"YulFunctionCall","src":"7567:31:139"},"nodeType":"YulExpressionStatement","src":"7567:31:139"},{"nodeType":"YulAssignment","src":"7607:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"7617:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7607:6:139"}]},{"nodeType":"YulAssignment","src":"7631:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7658:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7669:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7654:3:139"},"nodeType":"YulFunctionCall","src":"7654:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7641:12:139"},"nodeType":"YulFunctionCall","src":"7641:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7631:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7682:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7713:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7724:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7709:3:139"},"nodeType":"YulFunctionCall","src":"7709:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7696:12:139"},"nodeType":"YulFunctionCall","src":"7696:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7686:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7771:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7780:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"7788:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7773:6:139"},"nodeType":"YulFunctionCall","src":"7773:22:139"},"nodeType":"YulExpressionStatement","src":"7773:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7743:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7751:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7740:2:139"},"nodeType":"YulFunctionCall","src":"7740:30:139"},"nodeType":"YulIf","src":"7737:2:139"},{"nodeType":"YulAssignment","src":"7806:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7837:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"7848:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7833:3:139"},"nodeType":"YulFunctionCall","src":"7833:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7857:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7816:16:139"},"nodeType":"YulFunctionCall","src":"7816:49:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7806:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7391:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7402:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7414:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7422:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7430:6:139","type":""}],"src":"7328:543:139"},{"body":{"nodeType":"YulBlock","src":"8081:732:139","statements":[{"body":{"nodeType":"YulBlock","src":"8128:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8137:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8145:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8130:6:139"},"nodeType":"YulFunctionCall","src":"8130:22:139"},"nodeType":"YulExpressionStatement","src":"8130:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8102:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8111:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8098:3:139"},"nodeType":"YulFunctionCall","src":"8098:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8123:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8094:3:139"},"nodeType":"YulFunctionCall","src":"8094:33:139"},"nodeType":"YulIf","src":"8091:2:139"},{"nodeType":"YulVariableDeclaration","src":"8163:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8190:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8177:12:139"},"nodeType":"YulFunctionCall","src":"8177:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8167:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8209:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"8219:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8213:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8264:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8273:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8281:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8266:6:139"},"nodeType":"YulFunctionCall","src":"8266:22:139"},"nodeType":"YulExpressionStatement","src":"8266:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8252:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8260:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8249:2:139"},"nodeType":"YulFunctionCall","src":"8249:14:139"},"nodeType":"YulIf","src":"8246:2:139"},{"nodeType":"YulAssignment","src":"8299:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8342:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"8353:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8338:3:139"},"nodeType":"YulFunctionCall","src":"8338:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8362:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"8309:28:139"},"nodeType":"YulFunctionCall","src":"8309:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8299:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8379:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8412:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8423:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8408:3:139"},"nodeType":"YulFunctionCall","src":"8408:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8395:12:139"},"nodeType":"YulFunctionCall","src":"8395:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8383:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8456:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8465:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8473:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8458:6:139"},"nodeType":"YulFunctionCall","src":"8458:22:139"},"nodeType":"YulExpressionStatement","src":"8458:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8442:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8452:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8439:2:139"},"nodeType":"YulFunctionCall","src":"8439:16:139"},"nodeType":"YulIf","src":"8436:2:139"},{"nodeType":"YulAssignment","src":"8491:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8534:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8545:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8530:3:139"},"nodeType":"YulFunctionCall","src":"8530:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8556:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"8501:28:139"},"nodeType":"YulFunctionCall","src":"8501:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8491:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8573:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8606:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8617:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8602:3:139"},"nodeType":"YulFunctionCall","src":"8602:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8589:12:139"},"nodeType":"YulFunctionCall","src":"8589:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"8577:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8650:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8659:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8667:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8652:6:139"},"nodeType":"YulFunctionCall","src":"8652:22:139"},"nodeType":"YulExpressionStatement","src":"8652:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"8636:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8646:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8633:2:139"},"nodeType":"YulFunctionCall","src":"8633:16:139"},"nodeType":"YulIf","src":"8630:2:139"},{"nodeType":"YulAssignment","src":"8685:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8726:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"8737:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8722:3:139"},"nodeType":"YulFunctionCall","src":"8722:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8748:7:139"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"8695:26:139"},"nodeType":"YulFunctionCall","src":"8695:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8685:6:139"}]},{"nodeType":"YulAssignment","src":"8765:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8792:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8803:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8788:3:139"},"nodeType":"YulFunctionCall","src":"8788:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8775:12:139"},"nodeType":"YulFunctionCall","src":"8775:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8765:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8023:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8034:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8046:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8054:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8062:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8070:6:139","type":""}],"src":"7876:937:139"},{"body":{"nodeType":"YulBlock","src":"9033:1002:139","statements":[{"body":{"nodeType":"YulBlock","src":"9080:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9089:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9097:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9082:6:139"},"nodeType":"YulFunctionCall","src":"9082:22:139"},"nodeType":"YulExpressionStatement","src":"9082:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9054:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9063:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9050:3:139"},"nodeType":"YulFunctionCall","src":"9050:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9075:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9046:3:139"},"nodeType":"YulFunctionCall","src":"9046:33:139"},"nodeType":"YulIf","src":"9043:2:139"},{"nodeType":"YulVariableDeclaration","src":"9115:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9142:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9129:12:139"},"nodeType":"YulFunctionCall","src":"9129:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9119:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9161:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"9171:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9165:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9216:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9225:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9233:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9218:6:139"},"nodeType":"YulFunctionCall","src":"9218:22:139"},"nodeType":"YulExpressionStatement","src":"9218:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9204:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9212:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9201:2:139"},"nodeType":"YulFunctionCall","src":"9201:14:139"},"nodeType":"YulIf","src":"9198:2:139"},{"nodeType":"YulAssignment","src":"9251:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9294:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"9305:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9290:3:139"},"nodeType":"YulFunctionCall","src":"9290:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9314:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"9261:28:139"},"nodeType":"YulFunctionCall","src":"9261:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9251:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9331:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9364:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9375:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9360:3:139"},"nodeType":"YulFunctionCall","src":"9360:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9347:12:139"},"nodeType":"YulFunctionCall","src":"9347:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9335:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9408:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9417:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9425:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9410:6:139"},"nodeType":"YulFunctionCall","src":"9410:22:139"},"nodeType":"YulExpressionStatement","src":"9410:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9394:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9404:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9391:2:139"},"nodeType":"YulFunctionCall","src":"9391:16:139"},"nodeType":"YulIf","src":"9388:2:139"},{"nodeType":"YulAssignment","src":"9443:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9486:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9497:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9482:3:139"},"nodeType":"YulFunctionCall","src":"9482:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9508:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"9453:28:139"},"nodeType":"YulFunctionCall","src":"9453:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9443:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9525:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9558:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9569:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9554:3:139"},"nodeType":"YulFunctionCall","src":"9554:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9541:12:139"},"nodeType":"YulFunctionCall","src":"9541:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"9529:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9602:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9611:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9619:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9604:6:139"},"nodeType":"YulFunctionCall","src":"9604:22:139"},"nodeType":"YulExpressionStatement","src":"9604:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"9588:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9598:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9585:2:139"},"nodeType":"YulFunctionCall","src":"9585:16:139"},"nodeType":"YulIf","src":"9582:2:139"},{"nodeType":"YulAssignment","src":"9637:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"9689:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:139"},"nodeType":"YulFunctionCall","src":"9674:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:139"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"9647:26:139"},"nodeType":"YulFunctionCall","src":"9647:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9637:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9717:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9750:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9761:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9746:3:139"},"nodeType":"YulFunctionCall","src":"9746:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9733:12:139"},"nodeType":"YulFunctionCall","src":"9733:32:139"},"variables":[{"name":"offset_3","nodeType":"YulTypedName","src":"9721:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9794:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9803:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"9811:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9796:6:139"},"nodeType":"YulFunctionCall","src":"9796:22:139"},"nodeType":"YulExpressionStatement","src":"9796:22:139"}]},"condition":{"arguments":[{"name":"offset_3","nodeType":"YulIdentifier","src":"9780:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9790:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9777:2:139"},"nodeType":"YulFunctionCall","src":"9777:16:139"},"nodeType":"YulIf","src":"9774:2:139"},{"nodeType":"YulVariableDeclaration","src":"9829:34:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9843:9:139"},{"name":"offset_3","nodeType":"YulIdentifier","src":"9854:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9839:3:139"},"nodeType":"YulFunctionCall","src":"9839:24:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9833:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9911:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9920:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"9928:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9913:6:139"},"nodeType":"YulFunctionCall","src":"9913:22:139"},"nodeType":"YulExpressionStatement","src":"9913:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9890:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"9894:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9886:3:139"},"nodeType":"YulFunctionCall","src":"9886:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9901:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9882:3:139"},"nodeType":"YulFunctionCall","src":"9882:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9875:6:139"},"nodeType":"YulFunctionCall","src":"9875:35:139"},"nodeType":"YulIf","src":"9872:2:139"},{"nodeType":"YulAssignment","src":"9946:83:139","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9994:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"9998:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9990:3:139"},"nodeType":"YulFunctionCall","src":"9990:11:139"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10016:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10003:12:139"},"nodeType":"YulFunctionCall","src":"10003:16:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10021:7:139"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"9956:33:139"},"nodeType":"YulFunctionCall","src":"9956:73:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9946:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8975:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8986:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8998:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9006:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9014:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9022:6:139","type":""}],"src":"8818:1217:139"},{"body":{"nodeType":"YulBlock","src":"10118:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"10164:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10173:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10181:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10166:6:139"},"nodeType":"YulFunctionCall","src":"10166:22:139"},"nodeType":"YulExpressionStatement","src":"10166:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10139:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10148:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10135:3:139"},"nodeType":"YulFunctionCall","src":"10135:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10160:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10131:3:139"},"nodeType":"YulFunctionCall","src":"10131:32:139"},"nodeType":"YulIf","src":"10128:2:139"},{"nodeType":"YulVariableDeclaration","src":"10199:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10218:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10212:5:139"},"nodeType":"YulFunctionCall","src":"10212:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10203:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10281:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10290:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10298:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10283:6:139"},"nodeType":"YulFunctionCall","src":"10283:22:139"},"nodeType":"YulExpressionStatement","src":"10283:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10250:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10271:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10264:6:139"},"nodeType":"YulFunctionCall","src":"10264:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10257:6:139"},"nodeType":"YulFunctionCall","src":"10257:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10247:2:139"},"nodeType":"YulFunctionCall","src":"10247:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10240:6:139"},"nodeType":"YulFunctionCall","src":"10240:40:139"},"nodeType":"YulIf","src":"10237:2:139"},{"nodeType":"YulAssignment","src":"10316:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"10326:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10316:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10084:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10095:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10107:6:139","type":""}],"src":"10040:297:139"},{"body":{"nodeType":"YulBlock","src":"10423:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"10469:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10478:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10486:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10471:6:139"},"nodeType":"YulFunctionCall","src":"10471:22:139"},"nodeType":"YulExpressionStatement","src":"10471:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10444:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10453:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10440:3:139"},"nodeType":"YulFunctionCall","src":"10440:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10465:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10436:3:139"},"nodeType":"YulFunctionCall","src":"10436:32:139"},"nodeType":"YulIf","src":"10433:2:139"},{"nodeType":"YulAssignment","src":"10504:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10520:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10514:5:139"},"nodeType":"YulFunctionCall","src":"10514:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10504:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10389:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10400:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10412:6:139","type":""}],"src":"10342:194:139"},{"body":{"nodeType":"YulBlock","src":"10610:237:139","statements":[{"body":{"nodeType":"YulBlock","src":"10656:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10665:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10673:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10658:6:139"},"nodeType":"YulFunctionCall","src":"10658:22:139"},"nodeType":"YulExpressionStatement","src":"10658:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10631:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10640:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10627:3:139"},"nodeType":"YulFunctionCall","src":"10627:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10652:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10623:3:139"},"nodeType":"YulFunctionCall","src":"10623:32:139"},"nodeType":"YulIf","src":"10620:2:139"},{"nodeType":"YulVariableDeclaration","src":"10691:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10717:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10704:12:139"},"nodeType":"YulFunctionCall","src":"10704:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10695:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10791:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10800:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10808:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10793:6:139"},"nodeType":"YulFunctionCall","src":"10793:22:139"},"nodeType":"YulExpressionStatement","src":"10793:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10749:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10760:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10771:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10776:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10767:3:139"},"nodeType":"YulFunctionCall","src":"10767:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10756:3:139"},"nodeType":"YulFunctionCall","src":"10756:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10746:2:139"},"nodeType":"YulFunctionCall","src":"10746:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10739:6:139"},"nodeType":"YulFunctionCall","src":"10739:51:139"},"nodeType":"YulIf","src":"10736:2:139"},{"nodeType":"YulAssignment","src":"10826:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"10836:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10826:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10576:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10587:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10599:6:139","type":""}],"src":"10541:306:139"},{"body":{"nodeType":"YulBlock","src":"10949:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"10995:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11004:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11012:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10997:6:139"},"nodeType":"YulFunctionCall","src":"10997:22:139"},"nodeType":"YulExpressionStatement","src":"10997:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10970:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10979:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10966:3:139"},"nodeType":"YulFunctionCall","src":"10966:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10991:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10962:3:139"},"nodeType":"YulFunctionCall","src":"10962:32:139"},"nodeType":"YulIf","src":"10959:2:139"},{"nodeType":"YulVariableDeclaration","src":"11030:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11056:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11043:12:139"},"nodeType":"YulFunctionCall","src":"11043:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11034:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11100:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"11075:24:139"},"nodeType":"YulFunctionCall","src":"11075:31:139"},"nodeType":"YulExpressionStatement","src":"11075:31:139"},{"nodeType":"YulAssignment","src":"11115:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"11125:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11115:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_TimelockController_$3154","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10915:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10926:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10938:6:139","type":""}],"src":"10852:284:139"},{"body":{"nodeType":"YulBlock","src":"11211:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"11257:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11266:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11274:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11259:6:139"},"nodeType":"YulFunctionCall","src":"11259:22:139"},"nodeType":"YulExpressionStatement","src":"11259:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11232:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"11241:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11228:3:139"},"nodeType":"YulFunctionCall","src":"11228:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"11253:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11224:3:139"},"nodeType":"YulFunctionCall","src":"11224:32:139"},"nodeType":"YulIf","src":"11221:2:139"},{"nodeType":"YulAssignment","src":"11292:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11315:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11302:12:139"},"nodeType":"YulFunctionCall","src":"11302:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11292:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11177:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11188:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11200:6:139","type":""}],"src":"11141:190:139"},{"body":{"nodeType":"YulBlock","src":"11417:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"11463:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11472:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11480:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11465:6:139"},"nodeType":"YulFunctionCall","src":"11465:22:139"},"nodeType":"YulExpressionStatement","src":"11465:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11438:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"11447:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11434:3:139"},"nodeType":"YulFunctionCall","src":"11434:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"11459:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11430:3:139"},"nodeType":"YulFunctionCall","src":"11430:32:139"},"nodeType":"YulIf","src":"11427:2:139"},{"nodeType":"YulAssignment","src":"11498:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11514:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11508:5:139"},"nodeType":"YulFunctionCall","src":"11508:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11498:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11383:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11394:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11406:6:139","type":""}],"src":"11336:194:139"},{"body":{"nodeType":"YulBlock","src":"11622:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"11668:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11677:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11685:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11670:6:139"},"nodeType":"YulFunctionCall","src":"11670:22:139"},"nodeType":"YulExpressionStatement","src":"11670:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11643:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11639:3:139"},"nodeType":"YulFunctionCall","src":"11639:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"11664:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11635:3:139"},"nodeType":"YulFunctionCall","src":"11635:32:139"},"nodeType":"YulIf","src":"11632:2:139"},{"nodeType":"YulAssignment","src":"11703:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11726:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11713:12:139"},"nodeType":"YulFunctionCall","src":"11713:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11703:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"11745:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11775:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11786:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11771:3:139"},"nodeType":"YulFunctionCall","src":"11771:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11758:12:139"},"nodeType":"YulFunctionCall","src":"11758:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11749:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11824:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"11799:24:139"},"nodeType":"YulFunctionCall","src":"11799:31:139"},"nodeType":"YulExpressionStatement","src":"11799:31:139"},{"nodeType":"YulAssignment","src":"11839:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"11849:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11839:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11580:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11591:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11603:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11611:6:139","type":""}],"src":"11535:325:139"},{"body":{"nodeType":"YulBlock","src":"11950:175:139","statements":[{"body":{"nodeType":"YulBlock","src":"11996:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12005:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"12013:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11998:6:139"},"nodeType":"YulFunctionCall","src":"11998:22:139"},"nodeType":"YulExpressionStatement","src":"11998:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11971:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"11980:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11967:3:139"},"nodeType":"YulFunctionCall","src":"11967:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"11992:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11963:3:139"},"nodeType":"YulFunctionCall","src":"11963:32:139"},"nodeType":"YulIf","src":"11960:2:139"},{"nodeType":"YulAssignment","src":"12031:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12054:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12041:12:139"},"nodeType":"YulFunctionCall","src":"12041:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12031:6:139"}]},{"nodeType":"YulAssignment","src":"12073:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12104:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12115:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12100:3:139"},"nodeType":"YulFunctionCall","src":"12100:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"12083:16:139"},"nodeType":"YulFunctionCall","src":"12083:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12073:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11908:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11919:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11931:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11939:6:139","type":""}],"src":"11865:260:139"},{"body":{"nodeType":"YulBlock","src":"12252:446:139","statements":[{"body":{"nodeType":"YulBlock","src":"12298:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12307:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"12315:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12300:6:139"},"nodeType":"YulFunctionCall","src":"12300:22:139"},"nodeType":"YulExpressionStatement","src":"12300:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12273:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"12282:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12269:3:139"},"nodeType":"YulFunctionCall","src":"12269:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"12294:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12265:3:139"},"nodeType":"YulFunctionCall","src":"12265:32:139"},"nodeType":"YulIf","src":"12262:2:139"},{"nodeType":"YulAssignment","src":"12333:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12356:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12343:12:139"},"nodeType":"YulFunctionCall","src":"12343:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12333:6:139"}]},{"nodeType":"YulAssignment","src":"12375:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12406:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12417:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12402:3:139"},"nodeType":"YulFunctionCall","src":"12402:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"12385:16:139"},"nodeType":"YulFunctionCall","src":"12385:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12375:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"12430:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12461:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12472:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12457:3:139"},"nodeType":"YulFunctionCall","src":"12457:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12444:12:139"},"nodeType":"YulFunctionCall","src":"12444:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12434:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"12519:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12528:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"12536:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12521:6:139"},"nodeType":"YulFunctionCall","src":"12521:22:139"},"nodeType":"YulExpressionStatement","src":"12521:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12491:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"12499:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12488:2:139"},"nodeType":"YulFunctionCall","src":"12488:30:139"},"nodeType":"YulIf","src":"12485:2:139"},{"nodeType":"YulVariableDeclaration","src":"12554:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12610:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"12621:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12606:3:139"},"nodeType":"YulFunctionCall","src":"12606:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12630:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12580:25:139"},"nodeType":"YulFunctionCall","src":"12580:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12558:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12568:8:139","type":""}]},{"nodeType":"YulAssignment","src":"12647:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12657:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12647:6:139"}]},{"nodeType":"YulAssignment","src":"12674:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12684:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12674:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12194:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12205:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12217:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12225:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12233:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12241:6:139","type":""}],"src":"12130:568:139"},{"body":{"nodeType":"YulBlock","src":"12851:650:139","statements":[{"body":{"nodeType":"YulBlock","src":"12898:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12907:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"12915:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12900:6:139"},"nodeType":"YulFunctionCall","src":"12900:22:139"},"nodeType":"YulExpressionStatement","src":"12900:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12872:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"12881:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12868:3:139"},"nodeType":"YulFunctionCall","src":"12868:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"12893:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12864:3:139"},"nodeType":"YulFunctionCall","src":"12864:33:139"},"nodeType":"YulIf","src":"12861:2:139"},{"nodeType":"YulAssignment","src":"12933:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12956:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12943:12:139"},"nodeType":"YulFunctionCall","src":"12943:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12933:6:139"}]},{"nodeType":"YulAssignment","src":"12975:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13006:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13017:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13002:3:139"},"nodeType":"YulFunctionCall","src":"13002:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"12985:16:139"},"nodeType":"YulFunctionCall","src":"12985:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12975:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"13030:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13061:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13072:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13057:3:139"},"nodeType":"YulFunctionCall","src":"13057:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13044:12:139"},"nodeType":"YulFunctionCall","src":"13044:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13034:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13085:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"13095:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13089:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13140:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13149:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"13157:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13142:6:139"},"nodeType":"YulFunctionCall","src":"13142:22:139"},"nodeType":"YulExpressionStatement","src":"13142:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13128:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13136:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13125:2:139"},"nodeType":"YulFunctionCall","src":"13125:14:139"},"nodeType":"YulIf","src":"13122:2:139"},{"nodeType":"YulVariableDeclaration","src":"13175:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13231:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"13242:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13227:3:139"},"nodeType":"YulFunctionCall","src":"13227:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13251:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"13201:25:139"},"nodeType":"YulFunctionCall","src":"13201:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"13179:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"13189:8:139","type":""}]},{"nodeType":"YulAssignment","src":"13268:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"13278:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13268:6:139"}]},{"nodeType":"YulAssignment","src":"13295:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"13305:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13295:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"13322:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13355:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13366:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13351:3:139"},"nodeType":"YulFunctionCall","src":"13351:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13338:12:139"},"nodeType":"YulFunctionCall","src":"13338:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"13326:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13399:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"13408:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"13416:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13401:6:139"},"nodeType":"YulFunctionCall","src":"13401:22:139"},"nodeType":"YulExpressionStatement","src":"13401:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"13385:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13395:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13382:2:139"},"nodeType":"YulFunctionCall","src":"13382:16:139"},"nodeType":"YulIf","src":"13379:2:139"},{"nodeType":"YulAssignment","src":"13434:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13465:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"13476:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13461:3:139"},"nodeType":"YulFunctionCall","src":"13461:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13487:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13444:16:139"},"nodeType":"YulFunctionCall","src":"13444:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"13434:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12785:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12796:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12808:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12816:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12824:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12832:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12840:6:139","type":""}],"src":"12703:798:139"},{"body":{"nodeType":"YulBlock","src":"13703:810:139","statements":[{"body":{"nodeType":"YulBlock","src":"13750:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13759:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"13767:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13752:6:139"},"nodeType":"YulFunctionCall","src":"13752:22:139"},"nodeType":"YulExpressionStatement","src":"13752:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13724:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"13733:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13720:3:139"},"nodeType":"YulFunctionCall","src":"13720:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"13745:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13716:3:139"},"nodeType":"YulFunctionCall","src":"13716:33:139"},"nodeType":"YulIf","src":"13713:2:139"},{"nodeType":"YulAssignment","src":"13785:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13808:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13795:12:139"},"nodeType":"YulFunctionCall","src":"13795:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13785:6:139"}]},{"nodeType":"YulAssignment","src":"13827:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13858:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13869:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13854:3:139"},"nodeType":"YulFunctionCall","src":"13854:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"13837:16:139"},"nodeType":"YulFunctionCall","src":"13837:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13827:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"13882:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13913:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13924:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13909:3:139"},"nodeType":"YulFunctionCall","src":"13909:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13896:12:139"},"nodeType":"YulFunctionCall","src":"13896:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13886:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13937:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"13947:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13941:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13992:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14001:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"14009:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13994:6:139"},"nodeType":"YulFunctionCall","src":"13994:22:139"},"nodeType":"YulExpressionStatement","src":"13994:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13980:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13988:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13977:2:139"},"nodeType":"YulFunctionCall","src":"13977:14:139"},"nodeType":"YulIf","src":"13974:2:139"},{"nodeType":"YulVariableDeclaration","src":"14027:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14083:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"14094:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14079:3:139"},"nodeType":"YulFunctionCall","src":"14079:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14103:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"14053:25:139"},"nodeType":"YulFunctionCall","src":"14053:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"14031:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"14041:8:139","type":""}]},{"nodeType":"YulAssignment","src":"14120:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"14130:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"14120:6:139"}]},{"nodeType":"YulAssignment","src":"14147:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"14157:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"14147:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"14174:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14207:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14218:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14203:3:139"},"nodeType":"YulFunctionCall","src":"14203:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14190:12:139"},"nodeType":"YulFunctionCall","src":"14190:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"14178:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"14251:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"14260:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"14268:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14253:6:139"},"nodeType":"YulFunctionCall","src":"14253:22:139"},"nodeType":"YulExpressionStatement","src":"14253:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"14237:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14247:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14234:2:139"},"nodeType":"YulFunctionCall","src":"14234:16:139"},"nodeType":"YulIf","src":"14231:2:139"},{"nodeType":"YulAssignment","src":"14286:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14317:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"14328:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14313:3:139"},"nodeType":"YulFunctionCall","src":"14313:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14339:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"14296:16:139"},"nodeType":"YulFunctionCall","src":"14296:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"14286:6:139"}]},{"nodeType":"YulAssignment","src":"14356:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14387:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14398:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14383:3:139"},"nodeType":"YulFunctionCall","src":"14383:19:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"14366:16:139"},"nodeType":"YulFunctionCall","src":"14366:37:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"14356:6:139"}]},{"nodeType":"YulAssignment","src":"14412:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14439:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14450:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14435:3:139"},"nodeType":"YulFunctionCall","src":"14435:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14422:12:139"},"nodeType":"YulFunctionCall","src":"14422:33:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"14412:6:139"}]},{"nodeType":"YulAssignment","src":"14464:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14491:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14502:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14487:3:139"},"nodeType":"YulFunctionCall","src":"14487:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14474:12:139"},"nodeType":"YulFunctionCall","src":"14474:33:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"14464:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptrt_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13613:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13624:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13636:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13644:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13652:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13660:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13668:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13676:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"13684:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"13692:6:139","type":""}],"src":"13506:1007:139"},{"body":{"nodeType":"YulBlock","src":"14652:334:139","statements":[{"body":{"nodeType":"YulBlock","src":"14699:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14708:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"14716:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14701:6:139"},"nodeType":"YulFunctionCall","src":"14701:22:139"},"nodeType":"YulExpressionStatement","src":"14701:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14673:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"14682:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14669:3:139"},"nodeType":"YulFunctionCall","src":"14669:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"14694:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14665:3:139"},"nodeType":"YulFunctionCall","src":"14665:33:139"},"nodeType":"YulIf","src":"14662:2:139"},{"nodeType":"YulAssignment","src":"14734:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14757:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14744:12:139"},"nodeType":"YulFunctionCall","src":"14744:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14734:6:139"}]},{"nodeType":"YulAssignment","src":"14776:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14807:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14818:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14803:3:139"},"nodeType":"YulFunctionCall","src":"14803:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"14786:16:139"},"nodeType":"YulFunctionCall","src":"14786:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"14776:6:139"}]},{"nodeType":"YulAssignment","src":"14831:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14862:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14873:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14858:3:139"},"nodeType":"YulFunctionCall","src":"14858:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"14841:16:139"},"nodeType":"YulFunctionCall","src":"14841:36:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"14831:6:139"}]},{"nodeType":"YulAssignment","src":"14886:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14913:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14924:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14909:3:139"},"nodeType":"YulFunctionCall","src":"14909:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14896:12:139"},"nodeType":"YulFunctionCall","src":"14896:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"14886:6:139"}]},{"nodeType":"YulAssignment","src":"14937:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14964:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14975:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14960:3:139"},"nodeType":"YulFunctionCall","src":"14960:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14947:12:139"},"nodeType":"YulFunctionCall","src":"14947:33:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"14937:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14586:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14597:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14609:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14617:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14625:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14633:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14641:6:139","type":""}],"src":"14518:468:139"},{"body":{"nodeType":"YulBlock","src":"15060:235:139","statements":[{"body":{"nodeType":"YulBlock","src":"15106:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15115:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"15123:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15108:6:139"},"nodeType":"YulFunctionCall","src":"15108:22:139"},"nodeType":"YulExpressionStatement","src":"15108:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15081:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"15090:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15077:3:139"},"nodeType":"YulFunctionCall","src":"15077:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"15102:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15073:3:139"},"nodeType":"YulFunctionCall","src":"15073:32:139"},"nodeType":"YulIf","src":"15070:2:139"},{"nodeType":"YulVariableDeclaration","src":"15141:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15167:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15154:12:139"},"nodeType":"YulFunctionCall","src":"15154:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15145:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"15239:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15248:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"15256:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15241:6:139"},"nodeType":"YulFunctionCall","src":"15241:22:139"},"nodeType":"YulExpressionStatement","src":"15241:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15199:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15210:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"15217:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15206:3:139"},"nodeType":"YulFunctionCall","src":"15206:30:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15196:2:139"},"nodeType":"YulFunctionCall","src":"15196:41:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15189:6:139"},"nodeType":"YulFunctionCall","src":"15189:49:139"},"nodeType":"YulIf","src":"15186:2:139"},{"nodeType":"YulAssignment","src":"15274:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"15284:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15274:6:139"}]}]},"name":"abi_decode_tuple_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15026:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15037:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15049:6:139","type":""}],"src":"14991:304:139"},{"body":{"nodeType":"YulBlock","src":"15361:402:139","statements":[{"nodeType":"YulVariableDeclaration","src":"15371:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15391:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15385:5:139"},"nodeType":"YulFunctionCall","src":"15385:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15375:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15413:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"15418:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15406:6:139"},"nodeType":"YulFunctionCall","src":"15406:19:139"},"nodeType":"YulExpressionStatement","src":"15406:19:139"},{"nodeType":"YulVariableDeclaration","src":"15434:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"15444:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15438:2:139","type":""}]},{"nodeType":"YulAssignment","src":"15457:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15468:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15473:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15464:3:139"},"nodeType":"YulFunctionCall","src":"15464:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15457:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"15485:28:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15503:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15510:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15499:3:139"},"nodeType":"YulFunctionCall","src":"15499:14:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"15489:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15522:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"15531:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15526:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"15592:146:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15613:3:139"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15628:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15622:5:139"},"nodeType":"YulFunctionCall","src":"15622:13:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15645:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15650:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15641:3:139"},"nodeType":"YulFunctionCall","src":"15641:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"15654:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15637:3:139"},"nodeType":"YulFunctionCall","src":"15637:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15618:3:139"},"nodeType":"YulFunctionCall","src":"15618:39:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15606:6:139"},"nodeType":"YulFunctionCall","src":"15606:52:139"},"nodeType":"YulExpressionStatement","src":"15606:52:139"},{"nodeType":"YulAssignment","src":"15671:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15682:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15687:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15678:3:139"},"nodeType":"YulFunctionCall","src":"15678:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15671:3:139"}]},{"nodeType":"YulAssignment","src":"15703:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15717:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15725:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15713:3:139"},"nodeType":"YulFunctionCall","src":"15713:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15703:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15554:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"15557:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15551:2:139"},"nodeType":"YulFunctionCall","src":"15551:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15565:18:139","statements":[{"nodeType":"YulAssignment","src":"15567:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15576:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"15579:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15572:3:139"},"nodeType":"YulFunctionCall","src":"15572:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15567:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"15547:3:139","statements":[]},"src":"15543:195:139"},{"nodeType":"YulAssignment","src":"15747:10:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"15754:3:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15747:3:139"}]}]},"name":"abi_encode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15338:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15345:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15353:3:139","type":""}],"src":"15300:463:139"},{"body":{"nodeType":"YulBlock","src":"15827:557:139","statements":[{"nodeType":"YulVariableDeclaration","src":"15837:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15857:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15851:5:139"},"nodeType":"YulFunctionCall","src":"15851:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15841:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15879:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"15884:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15872:6:139"},"nodeType":"YulFunctionCall","src":"15872:19:139"},"nodeType":"YulExpressionStatement","src":"15872:19:139"},{"nodeType":"YulVariableDeclaration","src":"15900:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"15910:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15904:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15923:31:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15946:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15951:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15942:3:139"},"nodeType":"YulFunctionCall","src":"15942:12:139"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"15927:11:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15963:24:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"15976:11:139"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"15967:5:139","type":""}]},{"nodeType":"YulAssignment","src":"15996:18:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"16003:11:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15996:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"16023:38:139","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"16039:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16050:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"16053:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16046:3:139"},"nodeType":"YulFunctionCall","src":"16046:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16035:3:139"},"nodeType":"YulFunctionCall","src":"16035:26:139"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"16027:4:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16070:28:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16088:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"16095:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16084:3:139"},"nodeType":"YulFunctionCall","src":"16084:14:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"16074:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16107:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"16116:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"16111:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"16177:181:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16198:3:139"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16207:4:139"},{"name":"pos_1","nodeType":"YulIdentifier","src":"16213:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16203:3:139"},"nodeType":"YulFunctionCall","src":"16203:16:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16191:6:139"},"nodeType":"YulFunctionCall","src":"16191:29:139"},"nodeType":"YulExpressionStatement","src":"16191:29:139"},{"nodeType":"YulAssignment","src":"16233:45:139","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16264:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16258:5:139"},"nodeType":"YulFunctionCall","src":"16258:13:139"},{"name":"tail","nodeType":"YulIdentifier","src":"16273:4:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"16241:16:139"},"nodeType":"YulFunctionCall","src":"16241:37:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16233:4:139"}]},{"nodeType":"YulAssignment","src":"16291:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16305:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"16313:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16301:3:139"},"nodeType":"YulFunctionCall","src":"16301:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16291:6:139"}]},{"nodeType":"YulAssignment","src":"16329:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16340:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"16345:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16336:3:139"},"nodeType":"YulFunctionCall","src":"16336:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16329:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16139:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"16142:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16136:2:139"},"nodeType":"YulFunctionCall","src":"16136:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"16150:18:139","statements":[{"nodeType":"YulAssignment","src":"16152:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16161:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"16164:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16157:3:139"},"nodeType":"YulFunctionCall","src":"16157:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"16152:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"16132:3:139","statements":[]},"src":"16128:230:139"},{"nodeType":"YulAssignment","src":"16367:11:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"16374:4:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16367:3:139"}]}]},"name":"abi_encode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15804:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15811:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15819:3:139","type":""}],"src":"15768:616:139"},{"body":{"nodeType":"YulBlock","src":"16450:376:139","statements":[{"nodeType":"YulVariableDeclaration","src":"16460:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16480:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16474:5:139"},"nodeType":"YulFunctionCall","src":"16474:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16464:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16502:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"16507:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16495:6:139"},"nodeType":"YulFunctionCall","src":"16495:19:139"},"nodeType":"YulExpressionStatement","src":"16495:19:139"},{"nodeType":"YulVariableDeclaration","src":"16523:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"16533:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16527:2:139","type":""}]},{"nodeType":"YulAssignment","src":"16546:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16557:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"16562:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16553:3:139"},"nodeType":"YulFunctionCall","src":"16553:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16546:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"16574:28:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16592:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"16599:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16588:3:139"},"nodeType":"YulFunctionCall","src":"16588:14:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"16578:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16611:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"16620:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"16615:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"16681:120:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16702:3:139"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16713:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16707:5:139"},"nodeType":"YulFunctionCall","src":"16707:13:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16695:6:139"},"nodeType":"YulFunctionCall","src":"16695:26:139"},"nodeType":"YulExpressionStatement","src":"16695:26:139"},{"nodeType":"YulAssignment","src":"16734:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16745:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"16750:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16741:3:139"},"nodeType":"YulFunctionCall","src":"16741:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16734:3:139"}]},{"nodeType":"YulAssignment","src":"16766:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16780:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"16788:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16776:3:139"},"nodeType":"YulFunctionCall","src":"16776:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16766:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16643:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"16646:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16640:2:139"},"nodeType":"YulFunctionCall","src":"16640:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"16654:18:139","statements":[{"nodeType":"YulAssignment","src":"16656:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16665:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"16668:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16661:3:139"},"nodeType":"YulFunctionCall","src":"16661:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"16656:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"16636:3:139","statements":[]},"src":"16632:169:139"},{"nodeType":"YulAssignment","src":"16810:10:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"16817:3:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16810:3:139"}]}]},"name":"abi_encode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"16427:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"16434:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16442:3:139","type":""}],"src":"16389:437:139"},{"body":{"nodeType":"YulBlock","src":"16880:208:139","statements":[{"nodeType":"YulVariableDeclaration","src":"16890:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16910:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16904:5:139"},"nodeType":"YulFunctionCall","src":"16904:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16894:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16932:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"16937:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16925:6:139"},"nodeType":"YulFunctionCall","src":"16925:19:139"},"nodeType":"YulExpressionStatement","src":"16925:19:139"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16979:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"16986:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16975:3:139"},"nodeType":"YulFunctionCall","src":"16975:16:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16997:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"17002:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16993:3:139"},"nodeType":"YulFunctionCall","src":"16993:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"17009:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"16953:21:139"},"nodeType":"YulFunctionCall","src":"16953:63:139"},"nodeType":"YulExpressionStatement","src":"16953:63:139"},{"nodeType":"YulAssignment","src":"17025:57:139","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17040:3:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"17053:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"17061:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17049:3:139"},"nodeType":"YulFunctionCall","src":"17049:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17070:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17066:3:139"},"nodeType":"YulFunctionCall","src":"17066:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17045:3:139"},"nodeType":"YulFunctionCall","src":"17045:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17036:3:139"},"nodeType":"YulFunctionCall","src":"17036:39:139"},{"kind":"number","nodeType":"YulLiteral","src":"17077:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17032:3:139"},"nodeType":"YulFunctionCall","src":"17032:50:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"17025:3:139"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"16857:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"16864:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16872:3:139","type":""}],"src":"16831:257:139"},{"body":{"nodeType":"YulBlock","src":"17136:59:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17153:3:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17162:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"17169:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17158:3:139"},"nodeType":"YulFunctionCall","src":"17158:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17146:6:139"},"nodeType":"YulFunctionCall","src":"17146:43:139"},"nodeType":"YulExpressionStatement","src":"17146:43:139"}]},"name":"abi_encode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17120:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"17127:3:139","type":""}],"src":"17093:102:139"},{"body":{"nodeType":"YulBlock","src":"17347:126:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17370:3:139"},{"name":"value0","nodeType":"YulIdentifier","src":"17375:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"17383:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"17357:12:139"},"nodeType":"YulFunctionCall","src":"17357:33:139"},"nodeType":"YulExpressionStatement","src":"17357:33:139"},{"nodeType":"YulVariableDeclaration","src":"17399:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17413:3:139"},{"name":"value1","nodeType":"YulIdentifier","src":"17418:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17409:3:139"},"nodeType":"YulFunctionCall","src":"17409:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17403:2:139","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17441:2:139"},{"name":"end","nodeType":"YulIdentifier","src":"17445:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17434:6:139"},"nodeType":"YulFunctionCall","src":"17434:15:139"},"nodeType":"YulExpressionStatement","src":"17434:15:139"},{"nodeType":"YulAssignment","src":"17458:9:139","value":{"name":"_1","nodeType":"YulIdentifier","src":"17465:2:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"17458:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"17315:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17320:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17328:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"17339:3:139","type":""}],"src":"17200:273:139"},{"body":{"nodeType":"YulBlock","src":"17615:137:139","statements":[{"nodeType":"YulVariableDeclaration","src":"17625:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17645:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17639:5:139"},"nodeType":"YulFunctionCall","src":"17639:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"17629:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17687:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"17695:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17683:3:139"},"nodeType":"YulFunctionCall","src":"17683:17:139"},{"name":"pos","nodeType":"YulIdentifier","src":"17702:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"17707:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"17661:21:139"},"nodeType":"YulFunctionCall","src":"17661:53:139"},"nodeType":"YulExpressionStatement","src":"17661:53:139"},{"nodeType":"YulAssignment","src":"17723:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17734:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"17739:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17730:3:139"},"nodeType":"YulFunctionCall","src":"17730:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"17723:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"17591:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17596:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"17607:3:139","type":""}],"src":"17478:274:139"},{"body":{"nodeType":"YulBlock","src":"18005:144:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18022:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18031:3:139","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"18036:4:139","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18027:3:139"},"nodeType":"YulFunctionCall","src":"18027:14:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18015:6:139"},"nodeType":"YulFunctionCall","src":"18015:27:139"},"nodeType":"YulExpressionStatement","src":"18015:27:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18062:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"18067:1:139","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18058:3:139"},"nodeType":"YulFunctionCall","src":"18058:11:139"},{"name":"value0","nodeType":"YulIdentifier","src":"18071:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18051:6:139"},"nodeType":"YulFunctionCall","src":"18051:27:139"},"nodeType":"YulExpressionStatement","src":"18051:27:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18098:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"18103:2:139","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18094:3:139"},"nodeType":"YulFunctionCall","src":"18094:12:139"},{"name":"value1","nodeType":"YulIdentifier","src":"18108:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18087:6:139"},"nodeType":"YulFunctionCall","src":"18087:28:139"},"nodeType":"YulExpressionStatement","src":"18087:28:139"},{"nodeType":"YulAssignment","src":"18124:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18135:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"18140:2:139","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18131:3:139"},"nodeType":"YulFunctionCall","src":"18131:12:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18124:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"17973:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17978:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17986:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"17997:3:139","type":""}],"src":"17757:392:139"},{"body":{"nodeType":"YulBlock","src":"18255:102:139","statements":[{"nodeType":"YulAssignment","src":"18265:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18277:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18288:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18273:3:139"},"nodeType":"YulFunctionCall","src":"18273:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18265:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18307:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18322:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18338:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18343:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18334:3:139"},"nodeType":"YulFunctionCall","src":"18334:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"18347:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18330:3:139"},"nodeType":"YulFunctionCall","src":"18330:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18318:3:139"},"nodeType":"YulFunctionCall","src":"18318:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18300:6:139"},"nodeType":"YulFunctionCall","src":"18300:51:139"},"nodeType":"YulExpressionStatement","src":"18300:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18224:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18235:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18246:4:139","type":""}],"src":"18154:203:139"},{"body":{"nodeType":"YulBlock","src":"18491:175:139","statements":[{"nodeType":"YulAssignment","src":"18501:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18513:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18524:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18509:3:139"},"nodeType":"YulFunctionCall","src":"18509:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18501:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"18536:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18554:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18559:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18550:3:139"},"nodeType":"YulFunctionCall","src":"18550:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"18563:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18546:3:139"},"nodeType":"YulFunctionCall","src":"18546:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18540:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18581:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18596:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"18604:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18592:3:139"},"nodeType":"YulFunctionCall","src":"18592:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18574:6:139"},"nodeType":"YulFunctionCall","src":"18574:34:139"},"nodeType":"YulExpressionStatement","src":"18574:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18628:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18639:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18624:3:139"},"nodeType":"YulFunctionCall","src":"18624:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18648:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"18656:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18644:3:139"},"nodeType":"YulFunctionCall","src":"18644:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18617:6:139"},"nodeType":"YulFunctionCall","src":"18617:43:139"},"nodeType":"YulExpressionStatement","src":"18617:43:139"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18452:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18463:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18471:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18482:4:139","type":""}],"src":"18362:304:139"},{"body":{"nodeType":"YulBlock","src":"18800:145:139","statements":[{"nodeType":"YulAssignment","src":"18810:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18822:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18833:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18818:3:139"},"nodeType":"YulFunctionCall","src":"18818:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18810:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18852:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18867:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18883:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18888:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18879:3:139"},"nodeType":"YulFunctionCall","src":"18879:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"18892:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18875:3:139"},"nodeType":"YulFunctionCall","src":"18875:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18863:3:139"},"nodeType":"YulFunctionCall","src":"18863:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18845:6:139"},"nodeType":"YulFunctionCall","src":"18845:51:139"},"nodeType":"YulExpressionStatement","src":"18845:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18916:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18927:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18912:3:139"},"nodeType":"YulFunctionCall","src":"18912:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"18932:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18905:6:139"},"nodeType":"YulFunctionCall","src":"18905:34:139"},"nodeType":"YulExpressionStatement","src":"18905:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18761:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18772:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18780:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18791:4:139","type":""}],"src":"18671:274:139"},{"body":{"nodeType":"YulBlock","src":"19303:405:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19320:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19331:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19313:6:139"},"nodeType":"YulFunctionCall","src":"19313:22:139"},"nodeType":"YulExpressionStatement","src":"19313:22:139"},{"nodeType":"YulVariableDeclaration","src":"19344:71:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19387:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19399:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19410:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19395:3:139"},"nodeType":"YulFunctionCall","src":"19395:19:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"19358:28:139"},"nodeType":"YulFunctionCall","src":"19358:57:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19348:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19435:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19446:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19431:3:139"},"nodeType":"YulFunctionCall","src":"19431:18:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19455:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"19463:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19451:3:139"},"nodeType":"YulFunctionCall","src":"19451:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19424:6:139"},"nodeType":"YulFunctionCall","src":"19424:50:139"},"nodeType":"YulExpressionStatement","src":"19424:50:139"},{"nodeType":"YulVariableDeclaration","src":"19483:58:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19526:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"19534:6:139"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"19497:28:139"},"nodeType":"YulFunctionCall","src":"19497:44:139"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"19487:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19561:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19572:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19557:3:139"},"nodeType":"YulFunctionCall","src":"19557:18:139"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"19581:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"19589:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19577:3:139"},"nodeType":"YulFunctionCall","src":"19577:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19550:6:139"},"nodeType":"YulFunctionCall","src":"19550:50:139"},"nodeType":"YulExpressionStatement","src":"19550:50:139"},{"nodeType":"YulAssignment","src":"19609:50:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19644:6:139"},{"name":"tail_2","nodeType":"YulIdentifier","src":"19652:6:139"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"19617:26:139"},"nodeType":"YulFunctionCall","src":"19617:42:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19609:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19679:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19690:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19675:3:139"},"nodeType":"YulFunctionCall","src":"19675:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"19695:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19668:6:139"},"nodeType":"YulFunctionCall","src":"19668:34:139"},"nodeType":"YulExpressionStatement","src":"19668:34:139"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19248:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19259:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19267:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19275:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19283:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19294:4:139","type":""}],"src":"18950:758:139"},{"body":{"nodeType":"YulBlock","src":"20102:449:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20119:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20130:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20112:6:139"},"nodeType":"YulFunctionCall","src":"20112:22:139"},"nodeType":"YulExpressionStatement","src":"20112:22:139"},{"nodeType":"YulVariableDeclaration","src":"20143:71:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20186:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20198:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20209:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20194:3:139"},"nodeType":"YulFunctionCall","src":"20194:19:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"20157:28:139"},"nodeType":"YulFunctionCall","src":"20157:57:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"20147:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20234:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20245:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20230:3:139"},"nodeType":"YulFunctionCall","src":"20230:18:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"20254:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"20262:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20250:3:139"},"nodeType":"YulFunctionCall","src":"20250:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20223:6:139"},"nodeType":"YulFunctionCall","src":"20223:50:139"},"nodeType":"YulExpressionStatement","src":"20223:50:139"},{"nodeType":"YulVariableDeclaration","src":"20282:58:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"20325:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"20333:6:139"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"20296:28:139"},"nodeType":"YulFunctionCall","src":"20296:44:139"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"20286:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20360:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20371:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20356:3:139"},"nodeType":"YulFunctionCall","src":"20356:18:139"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"20380:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"20388:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20376:3:139"},"nodeType":"YulFunctionCall","src":"20376:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20349:6:139"},"nodeType":"YulFunctionCall","src":"20349:50:139"},"nodeType":"YulExpressionStatement","src":"20349:50:139"},{"nodeType":"YulAssignment","src":"20408:50:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"20443:6:139"},{"name":"tail_2","nodeType":"YulIdentifier","src":"20451:6:139"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"20416:26:139"},"nodeType":"YulFunctionCall","src":"20416:42:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20408:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20478:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20489:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20474:3:139"},"nodeType":"YulFunctionCall","src":"20474:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"20494:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20467:6:139"},"nodeType":"YulFunctionCall","src":"20467:34:139"},"nodeType":"YulExpressionStatement","src":"20467:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20521:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20532:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20517:3:139"},"nodeType":"YulFunctionCall","src":"20517:19:139"},{"name":"value4","nodeType":"YulIdentifier","src":"20538:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20510:6:139"},"nodeType":"YulFunctionCall","src":"20510:35:139"},"nodeType":"YulExpressionStatement","src":"20510:35:139"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20039:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20050:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20058:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20066:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20074:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20082:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20093:4:139","type":""}],"src":"19713:838:139"},{"body":{"nodeType":"YulBlock","src":"20973:493:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20990:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21001:3:139","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20983:6:139"},"nodeType":"YulFunctionCall","src":"20983:22:139"},"nodeType":"YulExpressionStatement","src":"20983:22:139"},{"nodeType":"YulVariableDeclaration","src":"21014:71:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21057:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21069:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21080:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21065:3:139"},"nodeType":"YulFunctionCall","src":"21065:19:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"21028:28:139"},"nodeType":"YulFunctionCall","src":"21028:57:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"21018:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21105:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21116:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21101:3:139"},"nodeType":"YulFunctionCall","src":"21101:18:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"21125:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"21133:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21121:3:139"},"nodeType":"YulFunctionCall","src":"21121:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21094:6:139"},"nodeType":"YulFunctionCall","src":"21094:50:139"},"nodeType":"YulExpressionStatement","src":"21094:50:139"},{"nodeType":"YulVariableDeclaration","src":"21153:58:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21196:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"21204:6:139"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"21167:28:139"},"nodeType":"YulFunctionCall","src":"21167:44:139"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"21157:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21231:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21242:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21227:3:139"},"nodeType":"YulFunctionCall","src":"21227:18:139"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"21251:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"21259:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21247:3:139"},"nodeType":"YulFunctionCall","src":"21247:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21220:6:139"},"nodeType":"YulFunctionCall","src":"21220:50:139"},"nodeType":"YulExpressionStatement","src":"21220:50:139"},{"nodeType":"YulAssignment","src":"21279:50:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"21314:6:139"},{"name":"tail_2","nodeType":"YulIdentifier","src":"21322:6:139"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"21287:26:139"},"nodeType":"YulFunctionCall","src":"21287:42:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21279:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21349:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21360:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21345:3:139"},"nodeType":"YulFunctionCall","src":"21345:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"21365:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21338:6:139"},"nodeType":"YulFunctionCall","src":"21338:34:139"},"nodeType":"YulExpressionStatement","src":"21338:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21392:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21403:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21388:3:139"},"nodeType":"YulFunctionCall","src":"21388:19:139"},{"name":"value4","nodeType":"YulIdentifier","src":"21409:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21381:6:139"},"nodeType":"YulFunctionCall","src":"21381:35:139"},"nodeType":"YulExpressionStatement","src":"21381:35:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21436:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21447:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21432:3:139"},"nodeType":"YulFunctionCall","src":"21432:19:139"},{"name":"value5","nodeType":"YulIdentifier","src":"21453:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21425:6:139"},"nodeType":"YulFunctionCall","src":"21425:35:139"},"nodeType":"YulExpressionStatement","src":"21425:35:139"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32_t_uint256__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20902:9:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"20913:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20921:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20929:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20937:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20945:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20953:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20964:4:139","type":""}],"src":"20556:910:139"},{"body":{"nodeType":"YulBlock","src":"21566:92:139","statements":[{"nodeType":"YulAssignment","src":"21576:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21588:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21599:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21584:3:139"},"nodeType":"YulFunctionCall","src":"21584:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21576:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21618:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21643:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21636:6:139"},"nodeType":"YulFunctionCall","src":"21636:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21629:6:139"},"nodeType":"YulFunctionCall","src":"21629:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21611:6:139"},"nodeType":"YulFunctionCall","src":"21611:41:139"},"nodeType":"YulExpressionStatement","src":"21611:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21535:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21546:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21557:4:139","type":""}],"src":"21471:187:139"},{"body":{"nodeType":"YulBlock","src":"21764:76:139","statements":[{"nodeType":"YulAssignment","src":"21774:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21786:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21797:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21782:3:139"},"nodeType":"YulFunctionCall","src":"21782:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21774:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21816:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"21827:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21809:6:139"},"nodeType":"YulFunctionCall","src":"21809:25:139"},"nodeType":"YulExpressionStatement","src":"21809:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21733:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21744:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21755:4:139","type":""}],"src":"21663:177:139"},{"body":{"nodeType":"YulBlock","src":"22058:276:139","statements":[{"nodeType":"YulAssignment","src":"22068:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22080:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22091:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22076:3:139"},"nodeType":"YulFunctionCall","src":"22076:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22068:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22111:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"22122:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22104:6:139"},"nodeType":"YulFunctionCall","src":"22104:25:139"},"nodeType":"YulExpressionStatement","src":"22104:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22149:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22160:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22145:3:139"},"nodeType":"YulFunctionCall","src":"22145:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"22165:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22138:6:139"},"nodeType":"YulFunctionCall","src":"22138:34:139"},"nodeType":"YulExpressionStatement","src":"22138:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22192:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22203:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22188:3:139"},"nodeType":"YulFunctionCall","src":"22188:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"22208:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22181:6:139"},"nodeType":"YulFunctionCall","src":"22181:34:139"},"nodeType":"YulExpressionStatement","src":"22181:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22235:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22246:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22231:3:139"},"nodeType":"YulFunctionCall","src":"22231:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"22251:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22224:6:139"},"nodeType":"YulFunctionCall","src":"22224:34:139"},"nodeType":"YulExpressionStatement","src":"22224:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22278:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22289:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22274:3:139"},"nodeType":"YulFunctionCall","src":"22274:19:139"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"22299:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22315:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22320:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22311:3:139"},"nodeType":"YulFunctionCall","src":"22311:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"22324:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22307:3:139"},"nodeType":"YulFunctionCall","src":"22307:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22295:3:139"},"nodeType":"YulFunctionCall","src":"22295:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22267:6:139"},"nodeType":"YulFunctionCall","src":"22267:61:139"},"nodeType":"YulExpressionStatement","src":"22267:61:139"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21995:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22006:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22014:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22022:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22030:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22038:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22049:4:139","type":""}],"src":"21845:489:139"},{"body":{"nodeType":"YulBlock","src":"22492:173:139","statements":[{"nodeType":"YulAssignment","src":"22502:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22514:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22525:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22510:3:139"},"nodeType":"YulFunctionCall","src":"22510:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22502:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22544:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"22555:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22537:6:139"},"nodeType":"YulFunctionCall","src":"22537:25:139"},"nodeType":"YulExpressionStatement","src":"22537:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22582:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22593:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22578:3:139"},"nodeType":"YulFunctionCall","src":"22578:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"22598:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22571:6:139"},"nodeType":"YulFunctionCall","src":"22571:34:139"},"nodeType":"YulExpressionStatement","src":"22571:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22625:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22636:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22621:3:139"},"nodeType":"YulFunctionCall","src":"22621:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22645:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"22653:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22641:3:139"},"nodeType":"YulFunctionCall","src":"22641:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22614:6:139"},"nodeType":"YulFunctionCall","src":"22614:45:139"},"nodeType":"YulExpressionStatement","src":"22614:45:139"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint8__to_t_bytes32_t_uint256_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22445:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22456:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22464:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22472:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22483:4:139","type":""}],"src":"22339:326:139"},{"body":{"nodeType":"YulBlock","src":"22879:261:139","statements":[{"nodeType":"YulAssignment","src":"22889:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22901:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22912:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22897:3:139"},"nodeType":"YulFunctionCall","src":"22897:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22889:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22932:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"22943:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22925:6:139"},"nodeType":"YulFunctionCall","src":"22925:25:139"},"nodeType":"YulExpressionStatement","src":"22925:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22970:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22981:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22966:3:139"},"nodeType":"YulFunctionCall","src":"22966:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"22986:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22959:6:139"},"nodeType":"YulFunctionCall","src":"22959:34:139"},"nodeType":"YulExpressionStatement","src":"22959:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23013:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23024:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23009:3:139"},"nodeType":"YulFunctionCall","src":"23009:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23033:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"23041:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23029:3:139"},"nodeType":"YulFunctionCall","src":"23029:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23002:6:139"},"nodeType":"YulFunctionCall","src":"23002:45:139"},"nodeType":"YulExpressionStatement","src":"23002:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23067:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23078:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23063:3:139"},"nodeType":"YulFunctionCall","src":"23063:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"23083:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23056:6:139"},"nodeType":"YulFunctionCall","src":"23056:34:139"},"nodeType":"YulExpressionStatement","src":"23056:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23110:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23121:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23106:3:139"},"nodeType":"YulFunctionCall","src":"23106:19:139"},{"name":"value4","nodeType":"YulIdentifier","src":"23127:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23099:6:139"},"nodeType":"YulFunctionCall","src":"23099:35:139"},"nodeType":"YulExpressionStatement","src":"23099:35:139"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22816:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22827:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22835:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22843:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22851:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22859:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22870:4:139","type":""}],"src":"22670:470:139"},{"body":{"nodeType":"YulBlock","src":"23326:217:139","statements":[{"nodeType":"YulAssignment","src":"23336:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23348:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23359:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23344:3:139"},"nodeType":"YulFunctionCall","src":"23344:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23336:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23379:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"23390:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23372:6:139"},"nodeType":"YulFunctionCall","src":"23372:25:139"},"nodeType":"YulExpressionStatement","src":"23372:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23417:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23428:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23413:3:139"},"nodeType":"YulFunctionCall","src":"23413:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23437:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"23445:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23433:3:139"},"nodeType":"YulFunctionCall","src":"23433:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23406:6:139"},"nodeType":"YulFunctionCall","src":"23406:45:139"},"nodeType":"YulExpressionStatement","src":"23406:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23471:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23482:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23467:3:139"},"nodeType":"YulFunctionCall","src":"23467:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"23487:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23460:6:139"},"nodeType":"YulFunctionCall","src":"23460:34:139"},"nodeType":"YulExpressionStatement","src":"23460:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23514:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23525:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23510:3:139"},"nodeType":"YulFunctionCall","src":"23510:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"23530:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23503:6:139"},"nodeType":"YulFunctionCall","src":"23503:34:139"},"nodeType":"YulExpressionStatement","src":"23503:34:139"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23271:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23282:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23290:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23298:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23306:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23317:4:139","type":""}],"src":"23145:398:139"},{"body":{"nodeType":"YulBlock","src":"23647:103:139","statements":[{"nodeType":"YulAssignment","src":"23657:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23669:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23680:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23665:3:139"},"nodeType":"YulFunctionCall","src":"23665:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23657:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23699:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23714:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23726:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23731:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23722:3:139"},"nodeType":"YulFunctionCall","src":"23722:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23710:3:139"},"nodeType":"YulFunctionCall","src":"23710:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23692:6:139"},"nodeType":"YulFunctionCall","src":"23692:52:139"},"nodeType":"YulExpressionStatement","src":"23692:52:139"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23616:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23627:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23638:4:139","type":""}],"src":"23548:202:139"},{"body":{"nodeType":"YulBlock","src":"23875:102:139","statements":[{"nodeType":"YulAssignment","src":"23885:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23897:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23908:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23893:3:139"},"nodeType":"YulFunctionCall","src":"23893:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23885:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23927:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23942:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23958:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23963:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23954:3:139"},"nodeType":"YulFunctionCall","src":"23954:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"23967:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23950:3:139"},"nodeType":"YulFunctionCall","src":"23950:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23938:3:139"},"nodeType":"YulFunctionCall","src":"23938:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23920:6:139"},"nodeType":"YulFunctionCall","src":"23920:51:139"},"nodeType":"YulExpressionStatement","src":"23920:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23844:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23855:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23866:4:139","type":""}],"src":"23755:222:139"},{"body":{"nodeType":"YulBlock","src":"24099:229:139","statements":[{"nodeType":"YulAssignment","src":"24109:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24121:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24132:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24117:3:139"},"nodeType":"YulFunctionCall","src":"24117:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24109:4:139"}]},{"body":{"nodeType":"YulBlock","src":"24177:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24198:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24205:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24210:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24201:3:139"},"nodeType":"YulFunctionCall","src":"24201:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24191:6:139"},"nodeType":"YulFunctionCall","src":"24191:31:139"},"nodeType":"YulExpressionStatement","src":"24191:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24242:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24245:4:139","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24235:6:139"},"nodeType":"YulFunctionCall","src":"24235:15:139"},"nodeType":"YulExpressionStatement","src":"24235:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24270:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24273:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24263:6:139"},"nodeType":"YulFunctionCall","src":"24263:15:139"},"nodeType":"YulExpressionStatement","src":"24263:15:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24157:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"24165:1:139","type":"","value":"8"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24154:2:139"},"nodeType":"YulFunctionCall","src":"24154:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24147:6:139"},"nodeType":"YulFunctionCall","src":"24147:21:139"},"nodeType":"YulIf","src":"24144:2:139"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24304:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"24315:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24297:6:139"},"nodeType":"YulFunctionCall","src":"24297:25:139"},"nodeType":"YulExpressionStatement","src":"24297:25:139"}]},"name":"abi_encode_tuple_t_enum$_ProposalState_$1967__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24068:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24079:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24090:4:139","type":""}],"src":"23982:346:139"},{"body":{"nodeType":"YulBlock","src":"24454:98:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24471:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24482:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24464:6:139"},"nodeType":"YulFunctionCall","src":"24464:21:139"},"nodeType":"YulExpressionStatement","src":"24464:21:139"},{"nodeType":"YulAssignment","src":"24494:52:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24519:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24531:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24542:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24527:3:139"},"nodeType":"YulFunctionCall","src":"24527:18:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24502:16:139"},"nodeType":"YulFunctionCall","src":"24502:44:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24494:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24423:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24434:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24445:4:139","type":""}],"src":"24333:219:139"},{"body":{"nodeType":"YulBlock","src":"24731:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24748:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24759:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24741:6:139"},"nodeType":"YulFunctionCall","src":"24741:21:139"},"nodeType":"YulExpressionStatement","src":"24741:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24782:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24793:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24778:3:139"},"nodeType":"YulFunctionCall","src":"24778:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"24798:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24771:6:139"},"nodeType":"YulFunctionCall","src":"24771:30:139"},"nodeType":"YulExpressionStatement","src":"24771:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24821:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24832:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24817:3:139"},"nodeType":"YulFunctionCall","src":"24817:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24837:26:139","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24810:6:139"},"nodeType":"YulFunctionCall","src":"24810:54:139"},"nodeType":"YulExpressionStatement","src":"24810:54:139"},{"nodeType":"YulAssignment","src":"24873:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24885:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24896:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24881:3:139"},"nodeType":"YulFunctionCall","src":"24881:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24873:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24708:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24722:4:139","type":""}],"src":"24557:348:139"},{"body":{"nodeType":"YulBlock","src":"25084:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25101:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25112:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25094:6:139"},"nodeType":"YulFunctionCall","src":"25094:21:139"},"nodeType":"YulExpressionStatement","src":"25094:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25135:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25146:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25131:3:139"},"nodeType":"YulFunctionCall","src":"25131:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"25151:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25124:6:139"},"nodeType":"YulFunctionCall","src":"25124:30:139"},"nodeType":"YulExpressionStatement","src":"25124:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25174:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25185:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25170:3:139"},"nodeType":"YulFunctionCall","src":"25170:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25190:26:139","type":"","value":"Governor: onlyGovernance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25163:6:139"},"nodeType":"YulFunctionCall","src":"25163:54:139"},"nodeType":"YulExpressionStatement","src":"25163:54:139"},{"nodeType":"YulAssignment","src":"25226:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25238:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25249:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25234:3:139"},"nodeType":"YulFunctionCall","src":"25234:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25226:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25061:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25075:4:139","type":""}],"src":"24910:348:139"},{"body":{"nodeType":"YulBlock","src":"25437:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25454:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25465:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25447:6:139"},"nodeType":"YulFunctionCall","src":"25447:21:139"},"nodeType":"YulExpressionStatement","src":"25447:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25488:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25499:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25484:3:139"},"nodeType":"YulFunctionCall","src":"25484:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"25504:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25477:6:139"},"nodeType":"YulFunctionCall","src":"25477:30:139"},"nodeType":"YulExpressionStatement","src":"25477:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25527:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25538:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25523:3:139"},"nodeType":"YulFunctionCall","src":"25523:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25543:33:139","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25516:6:139"},"nodeType":"YulFunctionCall","src":"25516:61:139"},"nodeType":"YulExpressionStatement","src":"25516:61:139"},{"nodeType":"YulAssignment","src":"25586:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25598:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25609:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25594:3:139"},"nodeType":"YulFunctionCall","src":"25594:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25586:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25414:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25428:4:139","type":""}],"src":"25263:355:139"},{"body":{"nodeType":"YulBlock","src":"25797:223:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25814:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25825:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25807:6:139"},"nodeType":"YulFunctionCall","src":"25807:21:139"},"nodeType":"YulExpressionStatement","src":"25807:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25848:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25859:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25844:3:139"},"nodeType":"YulFunctionCall","src":"25844:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"25864:2:139","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25837:6:139"},"nodeType":"YulFunctionCall","src":"25837:30:139"},"nodeType":"YulExpressionStatement","src":"25837:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25887:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25898:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25883:3:139"},"nodeType":"YulFunctionCall","src":"25883:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25903:34:139","type":"","value":"Governor: invalid proposal lengt"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25876:6:139"},"nodeType":"YulFunctionCall","src":"25876:62:139"},"nodeType":"YulExpressionStatement","src":"25876:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25958:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25969:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25954:3:139"},"nodeType":"YulFunctionCall","src":"25954:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25974:3:139","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25947:6:139"},"nodeType":"YulFunctionCall","src":"25947:31:139"},"nodeType":"YulExpressionStatement","src":"25947:31:139"},{"nodeType":"YulAssignment","src":"25987:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25999:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26010:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25995:3:139"},"nodeType":"YulFunctionCall","src":"25995:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25987:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25774:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25788:4:139","type":""}],"src":"25623:397:139"},{"body":{"nodeType":"YulBlock","src":"26199:229:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26216:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26227:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26209:6:139"},"nodeType":"YulFunctionCall","src":"26209:21:139"},"nodeType":"YulExpressionStatement","src":"26209:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26250:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26261:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26246:3:139"},"nodeType":"YulFunctionCall","src":"26246:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"26266:2:139","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26239:6:139"},"nodeType":"YulFunctionCall","src":"26239:30:139"},"nodeType":"YulExpressionStatement","src":"26239:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26289:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26300:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26285:3:139"},"nodeType":"YulFunctionCall","src":"26285:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26305:34:139","type":"","value":"GovernorSettings: voting period "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26278:6:139"},"nodeType":"YulFunctionCall","src":"26278:62:139"},"nodeType":"YulExpressionStatement","src":"26278:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26360:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26371:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26356:3:139"},"nodeType":"YulFunctionCall","src":"26356:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26376:9:139","type":"","value":"too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26349:6:139"},"nodeType":"YulFunctionCall","src":"26349:37:139"},"nodeType":"YulExpressionStatement","src":"26349:37:139"},{"nodeType":"YulAssignment","src":"26395:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26407:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26418:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26403:3:139"},"nodeType":"YulFunctionCall","src":"26403:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26395:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26176:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26190:4:139","type":""}],"src":"26025:403:139"},{"body":{"nodeType":"YulBlock","src":"26607:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26624:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26635:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26617:6:139"},"nodeType":"YulFunctionCall","src":"26617:21:139"},"nodeType":"YulExpressionStatement","src":"26617:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26658:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26669:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26654:3:139"},"nodeType":"YulFunctionCall","src":"26654:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"26674:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26647:6:139"},"nodeType":"YulFunctionCall","src":"26647:30:139"},"nodeType":"YulExpressionStatement","src":"26647:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26697:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26708:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26693:3:139"},"nodeType":"YulFunctionCall","src":"26693:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26713:34:139","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26686:6:139"},"nodeType":"YulFunctionCall","src":"26686:62:139"},"nodeType":"YulExpressionStatement","src":"26686:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26768:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26779:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26764:3:139"},"nodeType":"YulFunctionCall","src":"26764:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26784:4:139","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26757:6:139"},"nodeType":"YulFunctionCall","src":"26757:32:139"},"nodeType":"YulExpressionStatement","src":"26757:32:139"},{"nodeType":"YulAssignment","src":"26798:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26810:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26821:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26806:3:139"},"nodeType":"YulFunctionCall","src":"26806:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26798:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26584:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26598:4:139","type":""}],"src":"26433:398:139"},{"body":{"nodeType":"YulBlock","src":"27010:229:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27027:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27038:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27020:6:139"},"nodeType":"YulFunctionCall","src":"27020:21:139"},"nodeType":"YulExpressionStatement","src":"27020:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27061:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27072:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27057:3:139"},"nodeType":"YulFunctionCall","src":"27057:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"27077:2:139","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27050:6:139"},"nodeType":"YulFunctionCall","src":"27050:30:139"},"nodeType":"YulExpressionStatement","src":"27050:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27100:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27111:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27096:3:139"},"nodeType":"YulFunctionCall","src":"27096:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27116:34:139","type":"","value":"GovernorVotingSimple: vote alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27089:6:139"},"nodeType":"YulFunctionCall","src":"27089:62:139"},"nodeType":"YulExpressionStatement","src":"27089:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27171:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27182:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27167:3:139"},"nodeType":"YulFunctionCall","src":"27167:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27187:9:139","type":"","value":"dy cast"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27160:6:139"},"nodeType":"YulFunctionCall","src":"27160:37:139"},"nodeType":"YulExpressionStatement","src":"27160:37:139"},{"nodeType":"YulAssignment","src":"27206:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27218:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27229:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27214:3:139"},"nodeType":"YulFunctionCall","src":"27214:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27206:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26987:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27001:4:139","type":""}],"src":"26836:403:139"},{"body":{"nodeType":"YulBlock","src":"27418:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27435:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27446:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27428:6:139"},"nodeType":"YulFunctionCall","src":"27428:21:139"},"nodeType":"YulExpressionStatement","src":"27428:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27469:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27480:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27465:3:139"},"nodeType":"YulFunctionCall","src":"27465:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"27485:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27458:6:139"},"nodeType":"YulFunctionCall","src":"27458:30:139"},"nodeType":"YulExpressionStatement","src":"27458:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27508:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27519:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27504:3:139"},"nodeType":"YulFunctionCall","src":"27504:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27524:34:139","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27497:6:139"},"nodeType":"YulFunctionCall","src":"27497:62:139"},"nodeType":"YulExpressionStatement","src":"27497:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27579:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27590:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27575:3:139"},"nodeType":"YulFunctionCall","src":"27575:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27595:8:139","type":"","value":"r call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27568:6:139"},"nodeType":"YulFunctionCall","src":"27568:36:139"},"nodeType":"YulExpressionStatement","src":"27568:36:139"},{"nodeType":"YulAssignment","src":"27613:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27625:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27636:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27621:3:139"},"nodeType":"YulFunctionCall","src":"27621:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27613:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27395:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27409:4:139","type":""}],"src":"27244:402:139"},{"body":{"nodeType":"YulBlock","src":"27825:225:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27842:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27853:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27835:6:139"},"nodeType":"YulFunctionCall","src":"27835:21:139"},"nodeType":"YulExpressionStatement","src":"27835:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27876:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27887:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27872:3:139"},"nodeType":"YulFunctionCall","src":"27872:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"27892:2:139","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27865:6:139"},"nodeType":"YulFunctionCall","src":"27865:30:139"},"nodeType":"YulExpressionStatement","src":"27865:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27915:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27926:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27911:3:139"},"nodeType":"YulFunctionCall","src":"27911:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27931:34:139","type":"","value":"Governor: vote not currently act"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27904:6:139"},"nodeType":"YulFunctionCall","src":"27904:62:139"},"nodeType":"YulExpressionStatement","src":"27904:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27986:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27997:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27982:3:139"},"nodeType":"YulFunctionCall","src":"27982:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"28002:5:139","type":"","value":"ive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27975:6:139"},"nodeType":"YulFunctionCall","src":"27975:33:139"},"nodeType":"YulExpressionStatement","src":"27975:33:139"},{"nodeType":"YulAssignment","src":"28017:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28029:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28040:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28025:3:139"},"nodeType":"YulFunctionCall","src":"28025:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28017:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27802:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27816:4:139","type":""}],"src":"27651:399:139"},{"body":{"nodeType":"YulBlock","src":"28229:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28246:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28257:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28239:6:139"},"nodeType":"YulFunctionCall","src":"28239:21:139"},"nodeType":"YulExpressionStatement","src":"28239:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28280:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28291:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28276:3:139"},"nodeType":"YulFunctionCall","src":"28276:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"28296:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28269:6:139"},"nodeType":"YulFunctionCall","src":"28269:30:139"},"nodeType":"YulExpressionStatement","src":"28269:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28319:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28330:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28315:3:139"},"nodeType":"YulFunctionCall","src":"28315:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"28335:26:139","type":"","value":"Governor: empty proposal"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28308:6:139"},"nodeType":"YulFunctionCall","src":"28308:54:139"},"nodeType":"YulExpressionStatement","src":"28308:54:139"},{"nodeType":"YulAssignment","src":"28371:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28383:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28394:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28379:3:139"},"nodeType":"YulFunctionCall","src":"28379:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28371:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28206:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28220:4:139","type":""}],"src":"28055:348:139"},{"body":{"nodeType":"YulBlock","src":"28582:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28599:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28610:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28592:6:139"},"nodeType":"YulFunctionCall","src":"28592:21:139"},"nodeType":"YulExpressionStatement","src":"28592:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28633:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28644:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28629:3:139"},"nodeType":"YulFunctionCall","src":"28629:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"28649:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28622:6:139"},"nodeType":"YulFunctionCall","src":"28622:30:139"},"nodeType":"YulExpressionStatement","src":"28622:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28672:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28683:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28668:3:139"},"nodeType":"YulFunctionCall","src":"28668:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"28688:34:139","type":"","value":"ECDSA: invalid signature 'v' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28661:6:139"},"nodeType":"YulFunctionCall","src":"28661:62:139"},"nodeType":"YulExpressionStatement","src":"28661:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28743:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28754:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28739:3:139"},"nodeType":"YulFunctionCall","src":"28739:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"28759:4:139","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28732:6:139"},"nodeType":"YulFunctionCall","src":"28732:32:139"},"nodeType":"YulExpressionStatement","src":"28732:32:139"},{"nodeType":"YulAssignment","src":"28773:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28785:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28796:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28781:3:139"},"nodeType":"YulFunctionCall","src":"28781:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28773:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28559:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28573:4:139","type":""}],"src":"28408:398:139"},{"body":{"nodeType":"YulBlock","src":"28985:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29002:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29013:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28995:6:139"},"nodeType":"YulFunctionCall","src":"28995:21:139"},"nodeType":"YulExpressionStatement","src":"28995:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29036:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29047:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29032:3:139"},"nodeType":"YulFunctionCall","src":"29032:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"29052:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29025:6:139"},"nodeType":"YulFunctionCall","src":"29025:30:139"},"nodeType":"YulExpressionStatement","src":"29025:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29075:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29086:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29071:3:139"},"nodeType":"YulFunctionCall","src":"29071:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"29091:34:139","type":"","value":"SafeCast: value doesn't fit in 6"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29064:6:139"},"nodeType":"YulFunctionCall","src":"29064:62:139"},"nodeType":"YulExpressionStatement","src":"29064:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29146:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29157:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29142:3:139"},"nodeType":"YulFunctionCall","src":"29142:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"29162:8:139","type":"","value":"4 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29135:6:139"},"nodeType":"YulFunctionCall","src":"29135:36:139"},"nodeType":"YulExpressionStatement","src":"29135:36:139"},{"nodeType":"YulAssignment","src":"29180:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29192:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29203:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29188:3:139"},"nodeType":"YulFunctionCall","src":"29188:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29180:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28962:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28976:4:139","type":""}],"src":"28811:402:139"},{"body":{"nodeType":"YulBlock","src":"29392:223:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29409:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29420:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29402:6:139"},"nodeType":"YulFunctionCall","src":"29402:21:139"},"nodeType":"YulExpressionStatement","src":"29402:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29443:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29454:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29439:3:139"},"nodeType":"YulFunctionCall","src":"29439:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"29459:2:139","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29432:6:139"},"nodeType":"YulFunctionCall","src":"29432:30:139"},"nodeType":"YulExpressionStatement","src":"29432:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29482:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29493:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29478:3:139"},"nodeType":"YulFunctionCall","src":"29478:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"29498:34:139","type":"","value":"Governor: proposal not successfu"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29471:6:139"},"nodeType":"YulFunctionCall","src":"29471:62:139"},"nodeType":"YulExpressionStatement","src":"29471:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29553:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29564:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29549:3:139"},"nodeType":"YulFunctionCall","src":"29549:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"29569:3:139","type":"","value":"l"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29542:6:139"},"nodeType":"YulFunctionCall","src":"29542:31:139"},"nodeType":"YulExpressionStatement","src":"29542:31:139"},{"nodeType":"YulAssignment","src":"29582:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29594:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29605:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29590:3:139"},"nodeType":"YulFunctionCall","src":"29590:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29582:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29369:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29383:4:139","type":""}],"src":"29218:397:139"},{"body":{"nodeType":"YulBlock","src":"29794:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29811:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29822:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29804:6:139"},"nodeType":"YulFunctionCall","src":"29804:21:139"},"nodeType":"YulExpressionStatement","src":"29804:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29845:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29856:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29841:3:139"},"nodeType":"YulFunctionCall","src":"29841:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"29861:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29834:6:139"},"nodeType":"YulFunctionCall","src":"29834:30:139"},"nodeType":"YulExpressionStatement","src":"29834:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29884:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29895:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29880:3:139"},"nodeType":"YulFunctionCall","src":"29880:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"29900:31:139","type":"","value":"Governor: unknown proposal id"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29873:6:139"},"nodeType":"YulFunctionCall","src":"29873:59:139"},"nodeType":"YulExpressionStatement","src":"29873:59:139"},{"nodeType":"YulAssignment","src":"29941:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29953:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29964:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29949:3:139"},"nodeType":"YulFunctionCall","src":"29949:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29941:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29771:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29785:4:139","type":""}],"src":"29620:353:139"},{"body":{"nodeType":"YulBlock","src":"30152:243:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30169:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30180:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30162:6:139"},"nodeType":"YulFunctionCall","src":"30162:21:139"},"nodeType":"YulExpressionStatement","src":"30162:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30203:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30214:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30199:3:139"},"nodeType":"YulFunctionCall","src":"30199:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"30219:2:139","type":"","value":"53"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30192:6:139"},"nodeType":"YulFunctionCall","src":"30192:30:139"},"nodeType":"YulExpressionStatement","src":"30192:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30242:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30253:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30238:3:139"},"nodeType":"YulFunctionCall","src":"30238:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"30258:34:139","type":"","value":"GovernorVotingSimple: invalid va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30231:6:139"},"nodeType":"YulFunctionCall","src":"30231:62:139"},"nodeType":"YulExpressionStatement","src":"30231:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30313:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30324:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30309:3:139"},"nodeType":"YulFunctionCall","src":"30309:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"30329:23:139","type":"","value":"lue for enum VoteType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30302:6:139"},"nodeType":"YulFunctionCall","src":"30302:51:139"},"nodeType":"YulExpressionStatement","src":"30302:51:139"},{"nodeType":"YulAssignment","src":"30362:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30374:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30385:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30370:3:139"},"nodeType":"YulFunctionCall","src":"30370:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30362:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30129:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30143:4:139","type":""}],"src":"29978:417:139"},{"body":{"nodeType":"YulBlock","src":"30574:223:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30591:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30602:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30584:6:139"},"nodeType":"YulFunctionCall","src":"30584:21:139"},"nodeType":"YulExpressionStatement","src":"30584:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30625:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30636:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30621:3:139"},"nodeType":"YulFunctionCall","src":"30621:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"30641:2:139","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30614:6:139"},"nodeType":"YulFunctionCall","src":"30614:30:139"},"nodeType":"YulExpressionStatement","src":"30614:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30664:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30675:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30660:3:139"},"nodeType":"YulFunctionCall","src":"30660:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"30680:34:139","type":"","value":"Governor: proposal already exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30653:6:139"},"nodeType":"YulFunctionCall","src":"30653:62:139"},"nodeType":"YulExpressionStatement","src":"30653:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30735:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30746:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30731:3:139"},"nodeType":"YulFunctionCall","src":"30731:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"30751:3:139","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30724:6:139"},"nodeType":"YulFunctionCall","src":"30724:31:139"},"nodeType":"YulExpressionStatement","src":"30724:31:139"},{"nodeType":"YulAssignment","src":"30764:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30776:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30787:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30772:3:139"},"nodeType":"YulFunctionCall","src":"30772:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30764:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30551:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30565:4:139","type":""}],"src":"30400:397:139"},{"body":{"nodeType":"YulBlock","src":"30976:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30993:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31004:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30986:6:139"},"nodeType":"YulFunctionCall","src":"30986:21:139"},"nodeType":"YulExpressionStatement","src":"30986:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31027:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31038:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31023:3:139"},"nodeType":"YulFunctionCall","src":"31023:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"31043:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31016:6:139"},"nodeType":"YulFunctionCall","src":"31016:30:139"},"nodeType":"YulExpressionStatement","src":"31016:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31066:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31077:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31062:3:139"},"nodeType":"YulFunctionCall","src":"31062:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"31082:31:139","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31055:6:139"},"nodeType":"YulFunctionCall","src":"31055:59:139"},"nodeType":"YulExpressionStatement","src":"31055:59:139"},{"nodeType":"YulAssignment","src":"31123:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31135:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31146:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31131:3:139"},"nodeType":"YulFunctionCall","src":"31131:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31123:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30953:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30967:4:139","type":""}],"src":"30802:353:139"},{"body":{"nodeType":"YulBlock","src":"31334:239:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31351:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31362:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31344:6:139"},"nodeType":"YulFunctionCall","src":"31344:21:139"},"nodeType":"YulExpressionStatement","src":"31344:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31385:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31396:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31381:3:139"},"nodeType":"YulFunctionCall","src":"31381:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"31401:2:139","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31374:6:139"},"nodeType":"YulFunctionCall","src":"31374:30:139"},"nodeType":"YulExpressionStatement","src":"31374:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31424:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31435:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31420:3:139"},"nodeType":"YulFunctionCall","src":"31420:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"31440:34:139","type":"","value":"Governor: proposer votes below p"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31413:6:139"},"nodeType":"YulFunctionCall","src":"31413:62:139"},"nodeType":"YulExpressionStatement","src":"31413:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31495:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31506:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31491:3:139"},"nodeType":"YulFunctionCall","src":"31491:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"31511:19:139","type":"","value":"roposal threshold"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31484:6:139"},"nodeType":"YulFunctionCall","src":"31484:47:139"},"nodeType":"YulExpressionStatement","src":"31484:47:139"},{"nodeType":"YulAssignment","src":"31540:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31552:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31563:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31548:3:139"},"nodeType":"YulFunctionCall","src":"31548:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31540:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31311:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31325:4:139","type":""}],"src":"31160:413:139"},{"body":{"nodeType":"YulBlock","src":"31679:76:139","statements":[{"nodeType":"YulAssignment","src":"31689:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31701:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31712:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31697:3:139"},"nodeType":"YulFunctionCall","src":"31697:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31689:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31731:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"31742:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31724:6:139"},"nodeType":"YulFunctionCall","src":"31724:25:139"},"nodeType":"YulExpressionStatement","src":"31724:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31648:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31659:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31670:4:139","type":""}],"src":"31578:177:139"},{"body":{"nodeType":"YulBlock","src":"32341:1304:139","statements":[{"nodeType":"YulVariableDeclaration","src":"32351:13:139","value":{"kind":"number","nodeType":"YulLiteral","src":"32361:3:139","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"32355:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32380:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"32391:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32373:6:139"},"nodeType":"YulFunctionCall","src":"32373:25:139"},"nodeType":"YulExpressionStatement","src":"32373:25:139"},{"nodeType":"YulVariableDeclaration","src":"32407:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"32417:2:139","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"32411:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32439:9:139"},{"name":"_2","nodeType":"YulIdentifier","src":"32450:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32435:3:139"},"nodeType":"YulFunctionCall","src":"32435:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"32459:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32475:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"32480:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32471:3:139"},"nodeType":"YulFunctionCall","src":"32471:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"32484:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32467:3:139"},"nodeType":"YulFunctionCall","src":"32467:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32455:3:139"},"nodeType":"YulFunctionCall","src":"32455:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32428:6:139"},"nodeType":"YulFunctionCall","src":"32428:60:139"},"nodeType":"YulExpressionStatement","src":"32428:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32508:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"32519:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32504:3:139"},"nodeType":"YulFunctionCall","src":"32504:18:139"},{"name":"_1","nodeType":"YulIdentifier","src":"32524:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32497:6:139"},"nodeType":"YulFunctionCall","src":"32497:30:139"},"nodeType":"YulExpressionStatement","src":"32497:30:139"},{"nodeType":"YulVariableDeclaration","src":"32536:70:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"32579:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32591:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"32602:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32587:3:139"},"nodeType":"YulFunctionCall","src":"32587:18:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"32550:28:139"},"nodeType":"YulFunctionCall","src":"32550:56:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"32540:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32626:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"32637:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32622:3:139"},"nodeType":"YulFunctionCall","src":"32622:18:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"32646:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"32654:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32642:3:139"},"nodeType":"YulFunctionCall","src":"32642:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32615:6:139"},"nodeType":"YulFunctionCall","src":"32615:50:139"},"nodeType":"YulExpressionStatement","src":"32615:50:139"},{"nodeType":"YulVariableDeclaration","src":"32674:58:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"32717:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"32725:6:139"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"32688:28:139"},"nodeType":"YulFunctionCall","src":"32688:44:139"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"32678:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32752:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"32763:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32748:3:139"},"nodeType":"YulFunctionCall","src":"32748:19:139"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"32773:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"32781:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32769:3:139"},"nodeType":"YulFunctionCall","src":"32769:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32741:6:139"},"nodeType":"YulFunctionCall","src":"32741:51:139"},"nodeType":"YulExpressionStatement","src":"32741:51:139"},{"nodeType":"YulVariableDeclaration","src":"32801:17:139","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"32812:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"32805:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"32827:27:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"32847:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"32841:5:139"},"nodeType":"YulFunctionCall","src":"32841:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"32831:6:139","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"32870:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"32878:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32863:6:139"},"nodeType":"YulFunctionCall","src":"32863:22:139"},"nodeType":"YulExpressionStatement","src":"32863:22:139"},{"nodeType":"YulAssignment","src":"32894:22:139","value":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"32905:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"32913:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32901:3:139"},"nodeType":"YulFunctionCall","src":"32901:15:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"32894:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"32925:50:139","value":{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"32947:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32959:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"32962:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32955:3:139"},"nodeType":"YulFunctionCall","src":"32955:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32943:3:139"},"nodeType":"YulFunctionCall","src":"32943:27:139"},{"name":"_2","nodeType":"YulIdentifier","src":"32972:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32939:3:139"},"nodeType":"YulFunctionCall","src":"32939:36:139"},"variables":[{"name":"tail_3","nodeType":"YulTypedName","src":"32929:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"32984:29:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"33002:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"33010:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32998:3:139"},"nodeType":"YulFunctionCall","src":"32998:15:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"32988:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"33022:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"33031:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"33026:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"33093:202:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33114:3:139"},{"arguments":[{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"33127:6:139"},{"name":"tail_2","nodeType":"YulIdentifier","src":"33135:6:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33123:3:139"},"nodeType":"YulFunctionCall","src":"33123:19:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33148:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"33144:3:139"},"nodeType":"YulFunctionCall","src":"33144:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33119:3:139"},"nodeType":"YulFunctionCall","src":"33119:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33107:6:139"},"nodeType":"YulFunctionCall","src":"33107:46:139"},"nodeType":"YulExpressionStatement","src":"33107:46:139"},{"nodeType":"YulAssignment","src":"33166:49:139","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"33199:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"33193:5:139"},"nodeType":"YulFunctionCall","src":"33193:13:139"},{"name":"tail_3","nodeType":"YulIdentifier","src":"33208:6:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"33176:16:139"},"nodeType":"YulFunctionCall","src":"33176:39:139"},"variableNames":[{"name":"tail_3","nodeType":"YulIdentifier","src":"33166:6:139"}]},{"nodeType":"YulAssignment","src":"33228:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"33242:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"33250:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33238:3:139"},"nodeType":"YulFunctionCall","src":"33238:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"33228:6:139"}]},{"nodeType":"YulAssignment","src":"33266:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33277:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"33282:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33273:3:139"},"nodeType":"YulFunctionCall","src":"33273:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"33266:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"33055:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"33058:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33052:2:139"},"nodeType":"YulFunctionCall","src":"33052:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"33066:18:139","statements":[{"nodeType":"YulAssignment","src":"33068:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"33077:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"33080:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33073:3:139"},"nodeType":"YulFunctionCall","src":"33073:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"33068:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"33048:3:139","statements":[]},"src":"33044:251:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33315:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"33326:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33311:3:139"},"nodeType":"YulFunctionCall","src":"33311:19:139"},{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"33336:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"33344:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33332:3:139"},"nodeType":"YulFunctionCall","src":"33332:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33304:6:139"},"nodeType":"YulFunctionCall","src":"33304:51:139"},"nodeType":"YulExpressionStatement","src":"33304:51:139"},{"nodeType":"YulVariableDeclaration","src":"33364:56:139","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"33405:6:139"},{"name":"tail_3","nodeType":"YulIdentifier","src":"33413:6:139"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"33378:26:139"},"nodeType":"YulFunctionCall","src":"33378:42:139"},"variables":[{"name":"tail_4","nodeType":"YulTypedName","src":"33368:6:139","type":""}]},{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"33447:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33459:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"33470:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33455:3:139"},"nodeType":"YulFunctionCall","src":"33455:19:139"}],"functionName":{"name":"abi_encode_uint64","nodeType":"YulIdentifier","src":"33429:17:139"},"nodeType":"YulFunctionCall","src":"33429:46:139"},"nodeType":"YulExpressionStatement","src":"33429:46:139"},{"expression":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"33502:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33514:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"33525:3:139","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33510:3:139"},"nodeType":"YulFunctionCall","src":"33510:19:139"}],"functionName":{"name":"abi_encode_uint64","nodeType":"YulIdentifier","src":"33484:17:139"},"nodeType":"YulFunctionCall","src":"33484:46:139"},"nodeType":"YulExpressionStatement","src":"33484:46:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33550:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"33561:3:139","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33546:3:139"},"nodeType":"YulFunctionCall","src":"33546:19:139"},{"arguments":[{"name":"tail_4","nodeType":"YulIdentifier","src":"33571:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"33579:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33567:3:139"},"nodeType":"YulFunctionCall","src":"33567:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33539:6:139"},"nodeType":"YulFunctionCall","src":"33539:51:139"},"nodeType":"YulExpressionStatement","src":"33539:51:139"},{"nodeType":"YulAssignment","src":"33599:40:139","value":{"arguments":[{"name":"value8","nodeType":"YulIdentifier","src":"33624:6:139"},{"name":"tail_4","nodeType":"YulIdentifier","src":"33632:6:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"33607:16:139"},"nodeType":"YulFunctionCall","src":"33607:32:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33599:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint64_t_uint64_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32246:9:139","type":""},{"name":"value8","nodeType":"YulTypedName","src":"32257:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"32265:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"32273:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"32281:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"32289:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"32297:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"32305:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32313:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32321:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32332:4:139","type":""}],"src":"31760:1885:139"},{"body":{"nodeType":"YulBlock","src":"33779:119:139","statements":[{"nodeType":"YulAssignment","src":"33789:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33801:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"33812:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33797:3:139"},"nodeType":"YulFunctionCall","src":"33797:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33789:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33831:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"33842:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33824:6:139"},"nodeType":"YulFunctionCall","src":"33824:25:139"},"nodeType":"YulExpressionStatement","src":"33824:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33869:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"33880:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33865:3:139"},"nodeType":"YulFunctionCall","src":"33865:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"33885:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33858:6:139"},"nodeType":"YulFunctionCall","src":"33858:34:139"},"nodeType":"YulExpressionStatement","src":"33858:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33740:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"33751:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"33759:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33770:4:139","type":""}],"src":"33650:248:139"},{"body":{"nodeType":"YulBlock","src":"34060:162:139","statements":[{"nodeType":"YulAssignment","src":"34070:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34093:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34078:3:139"},"nodeType":"YulFunctionCall","src":"34078:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34070:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34112:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"34123:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34105:6:139"},"nodeType":"YulFunctionCall","src":"34105:25:139"},"nodeType":"YulExpressionStatement","src":"34105:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34150:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34161:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34146:3:139"},"nodeType":"YulFunctionCall","src":"34146:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"34166:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34139:6:139"},"nodeType":"YulFunctionCall","src":"34139:34:139"},"nodeType":"YulExpressionStatement","src":"34139:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34193:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34204:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34189:3:139"},"nodeType":"YulFunctionCall","src":"34189:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"34209:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34182:6:139"},"nodeType":"YulFunctionCall","src":"34182:34:139"},"nodeType":"YulExpressionStatement","src":"34182:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34013:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"34024:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"34032:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"34040:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34051:4:139","type":""}],"src":"33903:319:139"},{"body":{"nodeType":"YulBlock","src":"34428:240:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34445:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"34456:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34438:6:139"},"nodeType":"YulFunctionCall","src":"34438:25:139"},"nodeType":"YulExpressionStatement","src":"34438:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34483:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34494:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34479:3:139"},"nodeType":"YulFunctionCall","src":"34479:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"34503:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"34511:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"34499:3:139"},"nodeType":"YulFunctionCall","src":"34499:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34472:6:139"},"nodeType":"YulFunctionCall","src":"34472:45:139"},"nodeType":"YulExpressionStatement","src":"34472:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34537:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34548:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34533:3:139"},"nodeType":"YulFunctionCall","src":"34533:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"34553:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34526:6:139"},"nodeType":"YulFunctionCall","src":"34526:34:139"},"nodeType":"YulExpressionStatement","src":"34526:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34580:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34591:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34576:3:139"},"nodeType":"YulFunctionCall","src":"34576:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"34596:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34569:6:139"},"nodeType":"YulFunctionCall","src":"34569:31:139"},"nodeType":"YulExpressionStatement","src":"34569:31:139"},{"nodeType":"YulAssignment","src":"34609:53:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"34634:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34646:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34657:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34642:3:139"},"nodeType":"YulFunctionCall","src":"34642:19:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"34617:16:139"},"nodeType":"YulFunctionCall","src":"34617:45:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34609:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34373:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"34384:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"34392:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"34400:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"34408:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34419:4:139","type":""}],"src":"34227:441:139"},{"body":{"nodeType":"YulBlock","src":"34920:355:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34937:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"34948:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34930:6:139"},"nodeType":"YulFunctionCall","src":"34930:25:139"},"nodeType":"YulExpressionStatement","src":"34930:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34975:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"34986:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34971:3:139"},"nodeType":"YulFunctionCall","src":"34971:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"34995:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"35003:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"34991:3:139"},"nodeType":"YulFunctionCall","src":"34991:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34964:6:139"},"nodeType":"YulFunctionCall","src":"34964:45:139"},"nodeType":"YulExpressionStatement","src":"34964:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35029:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"35040:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35025:3:139"},"nodeType":"YulFunctionCall","src":"35025:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"35045:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35018:6:139"},"nodeType":"YulFunctionCall","src":"35018:34:139"},"nodeType":"YulExpressionStatement","src":"35018:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35072:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"35083:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35068:3:139"},"nodeType":"YulFunctionCall","src":"35068:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"35088:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35061:6:139"},"nodeType":"YulFunctionCall","src":"35061:31:139"},"nodeType":"YulExpressionStatement","src":"35061:31:139"},{"nodeType":"YulVariableDeclaration","src":"35101:59:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"35132:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35144:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"35155:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35140:3:139"},"nodeType":"YulFunctionCall","src":"35140:19:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"35115:16:139"},"nodeType":"YulFunctionCall","src":"35115:45:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"35105:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35180:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"35191:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35176:3:139"},"nodeType":"YulFunctionCall","src":"35176:19:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"35201:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"35209:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"35197:3:139"},"nodeType":"YulFunctionCall","src":"35197:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35169:6:139"},"nodeType":"YulFunctionCall","src":"35169:51:139"},"nodeType":"YulExpressionStatement","src":"35169:51:139"},{"nodeType":"YulAssignment","src":"35229:40:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"35254:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"35262:6:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"35237:16:139"},"nodeType":"YulFunctionCall","src":"35237:32:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35229:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34857:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"34868:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"34876:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"34884:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"34892:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"34900:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34911:4:139","type":""}],"src":"34673:602:139"},{"body":{"nodeType":"YulBlock","src":"35379:101:139","statements":[{"nodeType":"YulAssignment","src":"35389:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35401:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"35412:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35397:3:139"},"nodeType":"YulFunctionCall","src":"35397:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35389:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35431:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35446:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"35454:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35442:3:139"},"nodeType":"YulFunctionCall","src":"35442:31:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35424:6:139"},"nodeType":"YulFunctionCall","src":"35424:50:139"},"nodeType":"YulExpressionStatement","src":"35424:50:139"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35348:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"35359:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35370:4:139","type":""}],"src":"35280:200:139"},{"body":{"nodeType":"YulBlock","src":"35610:174:139","statements":[{"nodeType":"YulAssignment","src":"35620:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35632:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"35643:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35628:3:139"},"nodeType":"YulFunctionCall","src":"35628:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35620:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"35655:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"35665:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"35659:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35699:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35714:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"35722:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35710:3:139"},"nodeType":"YulFunctionCall","src":"35710:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35692:6:139"},"nodeType":"YulFunctionCall","src":"35692:34:139"},"nodeType":"YulExpressionStatement","src":"35692:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35746:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"35757:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35742:3:139"},"nodeType":"YulFunctionCall","src":"35742:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"35766:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"35774:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35762:3:139"},"nodeType":"YulFunctionCall","src":"35762:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35735:6:139"},"nodeType":"YulFunctionCall","src":"35735:43:139"},"nodeType":"YulExpressionStatement","src":"35735:43:139"}]},"name":"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35571:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"35582:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"35590:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35601:4:139","type":""}],"src":"35485:299:139"},{"body":{"nodeType":"YulBlock","src":"35834:230:139","statements":[{"nodeType":"YulAssignment","src":"35844:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35860:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35854:5:139"},"nodeType":"YulFunctionCall","src":"35854:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"35844:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"35872:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"35894:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"35910:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"35916:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35906:3:139"},"nodeType":"YulFunctionCall","src":"35906:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35925:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"35921:3:139"},"nodeType":"YulFunctionCall","src":"35921:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35902:3:139"},"nodeType":"YulFunctionCall","src":"35902:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35890:3:139"},"nodeType":"YulFunctionCall","src":"35890:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"35876:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"36005:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"36007:16:139"},"nodeType":"YulFunctionCall","src":"36007:18:139"},"nodeType":"YulExpressionStatement","src":"36007:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"35948:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"35960:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"35945:2:139"},"nodeType":"YulFunctionCall","src":"35945:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"35984:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"35996:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"35981:2:139"},"nodeType":"YulFunctionCall","src":"35981:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"35942:2:139"},"nodeType":"YulFunctionCall","src":"35942:62:139"},"nodeType":"YulIf","src":"35939:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36043:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"36047:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36036:6:139"},"nodeType":"YulFunctionCall","src":"36036:22:139"},"nodeType":"YulExpressionStatement","src":"36036:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"35814:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"35823:6:139","type":""}],"src":"35789:275:139"},{"body":{"nodeType":"YulBlock","src":"36138:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"36182:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"36184:16:139"},"nodeType":"YulFunctionCall","src":"36184:18:139"},"nodeType":"YulExpressionStatement","src":"36184:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"36154:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"36162:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36151:2:139"},"nodeType":"YulFunctionCall","src":"36151:30:139"},"nodeType":"YulIf","src":"36148:2:139"},{"nodeType":"YulAssignment","src":"36213:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36229:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"36232:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"36225:3:139"},"nodeType":"YulFunctionCall","src":"36225:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"36241:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36221:3:139"},"nodeType":"YulFunctionCall","src":"36221:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"36213:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"36118:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"36129:4:139","type":""}],"src":"36069:183:139"},{"body":{"nodeType":"YulBlock","src":"36305:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"36332:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"36334:16:139"},"nodeType":"YulFunctionCall","src":"36334:18:139"},"nodeType":"YulExpressionStatement","src":"36334:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"36321:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"36328:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36324:3:139"},"nodeType":"YulFunctionCall","src":"36324:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36318:2:139"},"nodeType":"YulFunctionCall","src":"36318:13:139"},"nodeType":"YulIf","src":"36315:2:139"},{"nodeType":"YulAssignment","src":"36363:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"36374:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"36377:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36370:3:139"},"nodeType":"YulFunctionCall","src":"36370:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"36363:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"36288:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"36291:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"36297:3:139","type":""}],"src":"36257:128:139"},{"body":{"nodeType":"YulBlock","src":"36437:189:139","statements":[{"nodeType":"YulVariableDeclaration","src":"36447:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"36457:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"36451:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"36484:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"36499:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"36502:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36495:3:139"},"nodeType":"YulFunctionCall","src":"36495:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"36488:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"36514:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"36529:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"36532:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36525:3:139"},"nodeType":"YulFunctionCall","src":"36525:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"36518:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"36569:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"36571:16:139"},"nodeType":"YulFunctionCall","src":"36571:18:139"},"nodeType":"YulExpressionStatement","src":"36571:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"36550:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"36559:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"36563:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"36555:3:139"},"nodeType":"YulFunctionCall","src":"36555:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36547:2:139"},"nodeType":"YulFunctionCall","src":"36547:21:139"},"nodeType":"YulIf","src":"36544:2:139"},{"nodeType":"YulAssignment","src":"36600:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"36611:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"36616:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36607:3:139"},"nodeType":"YulFunctionCall","src":"36607:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"36600:3:139"}]}]},"name":"checked_add_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"36420:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"36423:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"36429:3:139","type":""}],"src":"36390:236:139"},{"body":{"nodeType":"YulBlock","src":"36680:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"36702:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"36704:16:139"},"nodeType":"YulFunctionCall","src":"36704:18:139"},"nodeType":"YulExpressionStatement","src":"36704:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"36696:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"36699:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"36693:2:139"},"nodeType":"YulFunctionCall","src":"36693:8:139"},"nodeType":"YulIf","src":"36690:2:139"},{"nodeType":"YulAssignment","src":"36733:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"36745:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"36748:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"36741:3:139"},"nodeType":"YulFunctionCall","src":"36741:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"36733:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"36662:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"36665:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"36671:4:139","type":""}],"src":"36631:125:139"},{"body":{"nodeType":"YulBlock","src":"36814:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"36824:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"36833:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"36828:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"36893:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"36918:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"36923:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36914:3:139"},"nodeType":"YulFunctionCall","src":"36914:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"36937:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"36942:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36933:3:139"},"nodeType":"YulFunctionCall","src":"36933:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"36927:5:139"},"nodeType":"YulFunctionCall","src":"36927:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36907:6:139"},"nodeType":"YulFunctionCall","src":"36907:39:139"},"nodeType":"YulExpressionStatement","src":"36907:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"36854:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"36857:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"36851:2:139"},"nodeType":"YulFunctionCall","src":"36851:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"36865:19:139","statements":[{"nodeType":"YulAssignment","src":"36867:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"36876:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"36879:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36872:3:139"},"nodeType":"YulFunctionCall","src":"36872:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"36867:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"36847:3:139","statements":[]},"src":"36843:113:139"},{"body":{"nodeType":"YulBlock","src":"36982:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"36995:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"37000:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36991:3:139"},"nodeType":"YulFunctionCall","src":"36991:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"37009:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36984:6:139"},"nodeType":"YulFunctionCall","src":"36984:27:139"},"nodeType":"YulExpressionStatement","src":"36984:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"36971:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"36974:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36968:2:139"},"nodeType":"YulFunctionCall","src":"36968:13:139"},"nodeType":"YulIf","src":"36965:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"36792:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"36797:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"36802:6:139","type":""}],"src":"36761:258:139"},{"body":{"nodeType":"YulBlock","src":"37079:325:139","statements":[{"nodeType":"YulAssignment","src":"37089:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37103:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"37106:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"37099:3:139"},"nodeType":"YulFunctionCall","src":"37099:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"37089:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"37120:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"37150:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"37156:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37146:3:139"},"nodeType":"YulFunctionCall","src":"37146:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"37124:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"37197:31:139","statements":[{"nodeType":"YulAssignment","src":"37199:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"37213:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"37221:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37209:3:139"},"nodeType":"YulFunctionCall","src":"37209:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"37199:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"37177:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37170:6:139"},"nodeType":"YulFunctionCall","src":"37170:26:139"},"nodeType":"YulIf","src":"37167:2:139"},{"body":{"nodeType":"YulBlock","src":"37287:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37308:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37315:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"37320:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37311:3:139"},"nodeType":"YulFunctionCall","src":"37311:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37301:6:139"},"nodeType":"YulFunctionCall","src":"37301:31:139"},"nodeType":"YulExpressionStatement","src":"37301:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37352:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"37355:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37345:6:139"},"nodeType":"YulFunctionCall","src":"37345:15:139"},"nodeType":"YulExpressionStatement","src":"37345:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37380:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37383:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37373:6:139"},"nodeType":"YulFunctionCall","src":"37373:15:139"},"nodeType":"YulExpressionStatement","src":"37373:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"37243:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"37266:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"37274:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"37263:2:139"},"nodeType":"YulFunctionCall","src":"37263:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"37240:2:139"},"nodeType":"YulFunctionCall","src":"37240:38:139"},"nodeType":"YulIf","src":"37237:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"37059:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"37068:6:139","type":""}],"src":"37024:380:139"},{"body":{"nodeType":"YulBlock","src":"37456:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"37487:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"37489:16:139"},"nodeType":"YulFunctionCall","src":"37489:18:139"},"nodeType":"YulExpressionStatement","src":"37489:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37472:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37483:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37479:3:139"},"nodeType":"YulFunctionCall","src":"37479:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"37469:2:139"},"nodeType":"YulFunctionCall","src":"37469:17:139"},"nodeType":"YulIf","src":"37466:2:139"},{"nodeType":"YulAssignment","src":"37518:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37529:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"37536:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37525:3:139"},"nodeType":"YulFunctionCall","src":"37525:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"37518:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37438:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"37448:3:139","type":""}],"src":"37409:135:139"},{"body":{"nodeType":"YulBlock","src":"37581:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37598:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37605:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"37610:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37601:3:139"},"nodeType":"YulFunctionCall","src":"37601:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37591:6:139"},"nodeType":"YulFunctionCall","src":"37591:31:139"},"nodeType":"YulExpressionStatement","src":"37591:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37638:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"37641:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37631:6:139"},"nodeType":"YulFunctionCall","src":"37631:15:139"},"nodeType":"YulExpressionStatement","src":"37631:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37662:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37665:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37655:6:139"},"nodeType":"YulFunctionCall","src":"37655:15:139"},"nodeType":"YulExpressionStatement","src":"37655:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"37549:127:139"},{"body":{"nodeType":"YulBlock","src":"37713:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37730:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37737:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"37742:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37733:3:139"},"nodeType":"YulFunctionCall","src":"37733:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37723:6:139"},"nodeType":"YulFunctionCall","src":"37723:31:139"},"nodeType":"YulExpressionStatement","src":"37723:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37770:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"37773:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37763:6:139"},"nodeType":"YulFunctionCall","src":"37763:15:139"},"nodeType":"YulExpressionStatement","src":"37763:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37794:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37797:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37787:6:139"},"nodeType":"YulFunctionCall","src":"37787:15:139"},"nodeType":"YulExpressionStatement","src":"37787:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"37681:127:139"},{"body":{"nodeType":"YulBlock","src":"37858:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"37922:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37931:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37934:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37924:6:139"},"nodeType":"YulFunctionCall","src":"37924:12:139"},"nodeType":"YulExpressionStatement","src":"37924:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37881:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37892:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37907:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"37912:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37903:3:139"},"nodeType":"YulFunctionCall","src":"37903:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"37916:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37899:3:139"},"nodeType":"YulFunctionCall","src":"37899:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37888:3:139"},"nodeType":"YulFunctionCall","src":"37888:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"37878:2:139"},"nodeType":"YulFunctionCall","src":"37878:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37871:6:139"},"nodeType":"YulFunctionCall","src":"37871:50:139"},"nodeType":"YulIf","src":"37868:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37847:5:139","type":""}],"src":"37813:131:139"}]},"contents":"{\n    { }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        array := allocate_memory(add(and(add(length, 31), not(31)), 0x20))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(array, array) }\n            mstore(dst, abi_decode_bytes(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        array := abi_decode_available_length_bytes(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_uint8(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value2, value2) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n        value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_bytes32(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value2, value2) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value2, value2) }\n        value2 := abi_decode_array_bytes_dyn(add(headStart, offset_2), dataEnd)\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value2, value2) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value2, value2) }\n        value2 := abi_decode_array_bytes_dyn(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(value3, value3) }\n        let _2 := add(headStart, offset_3)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n        value3 := abi_decode_available_length_bytes(add(_2, 32), calldataload(_2), dataEnd)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_TimelockController_$3154(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint8(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptrt_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value5, value5) }\n        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n        value5 := abi_decode_uint8(add(headStart, 128))\n        value6 := calldataload(add(headStart, 160))\n        value7 := calldataload(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        value2 := abi_decode_uint8(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_encode_array_address_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_array_bytes_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := add(value, _1)\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            tail := abi_encode_bytes(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_uint64(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, end)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, shl(240, 6401))\n        mstore(add(pos, 2), value0)\n        mstore(add(pos, 34), value1)\n        end := add(pos, 66)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_bytes_dyn(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 160)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 160))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_bytes_dyn(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32_t_uint256__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 192)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 192))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_bytes_dyn(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), value5)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint256_t_uint8__to_t_bytes32_t_uint256_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_enum$_ProposalState_$1967__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 8))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Governor: onlyGovernance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: invalid proposal lengt\")\n        mstore(add(headStart, 96), \"h\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorSettings: voting period \")\n        mstore(add(headStart, 96), \"too low\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorVotingSimple: vote alrea\")\n        mstore(add(headStart, 96), \"dy cast\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Governor: vote not currently act\")\n        mstore(add(headStart, 96), \"ive\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Governor: empty proposal\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 'v' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 6\")\n        mstore(add(headStart, 96), \"4 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: proposal not successfu\")\n        mstore(add(headStart, 96), \"l\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Governor: unknown proposal id\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 53)\n        mstore(add(headStart, 64), \"GovernorVotingSimple: invalid va\")\n        mstore(add(headStart, 96), \"lue for enum VoteType\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: proposal already exist\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Governor: proposer votes below p\")\n        mstore(add(headStart, 96), \"roposal threshold\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint64_t_uint64_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 288\n        mstore(headStart, value0)\n        let _2 := 32\n        mstore(add(headStart, _2), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), _1)\n        let tail_1 := abi_encode_array_address_dyn(value2, add(headStart, _1))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value3, tail_1)\n        mstore(add(headStart, 128), sub(tail_2, headStart))\n        let pos := tail_2\n        let length := mload(value4)\n        mstore(tail_2, length)\n        pos := add(tail_2, _2)\n        let tail_3 := add(add(tail_2, shl(5, length)), _2)\n        let srcPtr := add(value4, _2)\n        let i := tail\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_3, tail_2), not(31)))\n            tail_3 := abi_encode_bytes(mload(srcPtr), tail_3)\n            srcPtr := add(srcPtr, _2)\n            pos := add(pos, _2)\n        }\n        mstore(add(headStart, 160), sub(tail_3, headStart))\n        let tail_4 := abi_encode_array_bytes_dyn(value5, tail_3)\n        abi_encode_uint64(value6, add(headStart, 192))\n        abi_encode_uint64(value7, add(headStart, 224))\n        mstore(add(headStart, 256), sub(tail_4, headStart))\n        tail := abi_encode_bytes(value8, tail_4)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 160)\n        let tail_1 := abi_encode_bytes(value3, add(headStart, 160))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_add_t_uint64(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9665":[{"length":32,"start":8035}],"9667":[{"length":32,"start":7993}],"9669":[{"length":32,"start":7951}],"9671":[{"length":32,"start":8118}],"9673":[{"length":32,"start":8155}],"9675":[{"length":32,"start":8076}],"15665":[{"length":32,"start":1457},{"length":32,"start":7023}]},"linkReferences":{},"object":"60806040526004361061023f5760003560e01c80637b1039991161012e578063c59057e4116100ab578063ea0217cf1161006f578063ea0217cf146107e4578063eb9019d414610804578063ece40cc114610824578063f23a6e6114610844578063f8ce560a1461087057600080fd5b8063c59057e41461070c578063d07f91e91461072c578063d33219b41461074c578063dd4e2ba51461076a578063deaaa7cc146107b057600080fd5b8063ab58fb8e116100f2578063ab58fb8e1461066b578063b58131b01461068b578063bc197c81146106a0578063c01f9e37146106cc578063c28bc2fa146106ec57600080fd5b80637b1039991461059f5780637b3c71d3146105eb5780637d5e81e21461060b5780639a802a6d1461062b578063a890c9101461064b57600080fd5b806335680dc2116101bc578063544ffc9c11610180578063544ffc9c146104c057806354fd4d5014610515578063567813881461053f5780635f398a141461055f57806370b0f6601461057f57600080fd5b806335680dc2146103f45780633932abb1146104145780633bccf4fd146104295780633e4f49e614610449578063438596321461047657600080fd5b8063160cbed711610203578063160cbed7146103455780632656227d146103655780632d63f693146103785780632fe3e2611461039857806332b8113e146103cc57600080fd5b806301ffc9a71461026757806302a251a31461029c57806303420181146102bf57806306fdde03146102df578063150b7a021461030157600080fd5b36610262573061024d610892565b6001600160a01b03161461026057600080fd5b005b600080fd5b34801561027357600080fd5b50610287610282366004613113565b6108ab565b60405190151581526020015b60405180910390f35b3480156102a857600080fd5b506102b16108bc565b604051908152602001610293565b3480156102cb57600080fd5b506102b16102da36600461326e565b6108c7565b3480156102eb57600080fd5b506102f46109bf565b60405161029391906135bc565b34801561030d57600080fd5b5061032c61031c366004612df9565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610293565b34801561035157600080fd5b506102b1610360366004612fa2565b610a51565b6102b1610373366004612fa2565b610c86565b34801561038457600080fd5b506102b1610393366004613157565b610d8f565b3480156103a457600080fd5b506102b17fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156103d857600080fd5b506007546040516001600160401b039091168152602001610293565b34801561040057600080fd5b5061026061040f366004613157565b610dc6565b34801561042057600080fd5b506102b1610e55565b34801561043557600080fd5b506102b1610444366004613311565b610e60565b34801561045557600080fd5b50610469610464366004613157565b610ed6565b6040516102939190613594565b34801561048257600080fd5b5061028761049136600461316f565b60008281526009602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b3480156104cc57600080fd5b506104fa6104db366004613157565b6000908152600960205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610293565b34801561052157600080fd5b506040805180820190915260018152603160f81b60208201526102f4565b34801561054b57600080fd5b506102b161055a36600461319e565b610ee1565b34801561056b57600080fd5b506102b161057a366004613208565b610f0a565b34801561058b57600080fd5b5061026061059a366004613157565b610f54565b3480156105ab57600080fd5b506105d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610293565b3480156105f757600080fd5b506102b16106063660046131c9565b610fe0565b34801561061757600080fd5b506102b161062636600461302d565b611032565b34801561063757600080fd5b506102b1610646366004612f4c565b611049565b34801561065757600080fd5b5061026061066636600461313b565b611060565b34801561067757600080fd5b506102b1610686366004613157565b6110ec565b34801561069757600080fd5b506102b1611195565b3480156106ac57600080fd5b5061032c6106bb366004612d50565b63bc197c8160e01b95945050505050565b3480156106d857600080fd5b506102b16106e7366004613157565b6111a0565b3480156106f857600080fd5b50610260610707366004612ef3565b6111ab565b34801561071857600080fd5b506102b1610727366004612fa2565b611277565b34801561073857600080fd5b5061026061074736600461335e565b6112b1565b34801561075857600080fd5b50600a546001600160a01b03166105d3565b34801561077657600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526102f4565b3480156107bc57600080fd5b506102b17f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b3480156107f057600080fd5b506102606107ff366004613157565b61133d565b34801561081057600080fd5b506102b161081f366004612ec8565b6113c9565b34801561083057600080fd5b5061026061083f366004613157565b6113ea565b34801561085057600080fd5b5061032c61085f366004612e62565b63f23a6e6160e01b95945050505050565b34801561087c57600080fd5b506102b161088b366004613157565b50600c5490565b60006108a6600a546001600160a01b031690565b905090565b60006108b682611476565b92915050565b60006108a660055490565b60008061096b6109637fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610903929190613477565b60405180910390208b80519060200120604051602001610948959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b6040516020818303038152906040528051906020012061149b565b8686866114e9565b90506109b18a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250611507915050565b9a9950505050505050505050565b6060600080546109ce906138bc565b80601f01602080910402602001604051908101604052809291908181526020018280546109fa906138bc565b8015610a475780601f10610a1c57610100808354040283529160200191610a47565b820191906000526020600020905b815481529060010190602001808311610a2a57829003601f168201915b5050505050905090565b600080610a6086868686611277565b90506004610a6d82610ed6565b6007811115610a8c57634e487b7160e01b600052602160045260246000fd5b14610ab25760405162461bcd60e51b8152600401610aa990613642565b60405180910390fd5b600a546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c92916004808301926020929190829003018186803b158015610af757600080fd5b505afa158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f91906130fb565b600a5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610b69908a908a908a906000908b906004016134ee565b60206040518083038186803b158015610b8157600080fd5b505afa158015610b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb991906130fb565b6000838152600b602052604080822092909255600a5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610c04918b918b918b91908b90899060040161353c565b600060405180830381600087803b158015610c1e57600080fd5b505af1158015610c32573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892828242610c649190613832565b6040805192835260208301919091520160405180910390a15095945050505050565b600080610c9586868686611277565b90506000610ca282610ed6565b90506004816007811115610cc657634e487b7160e01b600052602160045260246000fd5b1480610cf157506005816007811115610cef57634e487b7160e01b600052602160045260246000fd5b145b610d0d5760405162461bcd60e51b8152600401610aa990613642565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610d6b8288888888611516565b610d7882888888886115d4565b610d8582888888886115e1565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b610dce610892565b6001600160a01b0316336001600160a01b031614610dfe5760405162461bcd60e51b8152600401610aa9906135cf565b30610e07610892565b6001600160a01b031614610e495760008036604051610e27929190613477565b604051809103902090505b80610e3d600261161e565b14610e4757610e32565b505b610e52816116a1565b50565b60006108a660045490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610eae9061096390608001610948565b9050610ecb878288604051806020016040528060008152506116e6565b979650505050505050565b60006108b682611709565b600080339050610f02848285604051806020016040528060008152506116e6565b949350505050565b600080339050610ecb87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611507915050565b610f5c610892565b6001600160a01b0316336001600160a01b031614610f8c5760405162461bcd60e51b8152600401610aa9906135cf565b30610f95610892565b6001600160a01b031614610fd75760008036604051610fb5929190613477565b604051809103902090505b80610fcb600261161e565b14610fd557610fc0565b505b610e528161187f565b60008033905061102886828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9695505050505050565b6000611040858585856118c0565b95945050505050565b6000611056848484611b6b565b90505b9392505050565b611068610892565b6001600160a01b0316336001600160a01b0316146110985760405162461bcd60e51b8152600401610aa9906135cf565b306110a1610892565b6001600160a01b0316146110e357600080366040516110c1929190613477565b604051809103902090505b806110d7600261161e565b146110e1576110cc565b505b610e5281611c80565b600a546000828152600b602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c44359060240160206040518083038186803b15801561114457600080fd5b505afa158015611158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117c91906130fb565b90508060011461118c5780611059565b60009392505050565b60006108a660065490565b60006108b682611ce9565b6111b3610892565b6001600160a01b0316336001600160a01b0316146111e35760405162461bcd60e51b8152600401610aa9906135cf565b306111ec610892565b6001600160a01b03161461122e576000803660405161120c929190613477565b604051809103902090505b80611222600261161e565b1461122c57611217565b505b6112708483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250611d25915050565b5050505050565b60008484848460405160200161129094939291906134a3565b60408051601f19818403018152919052805160209091012095945050505050565b6112b9610892565b6001600160a01b0316336001600160a01b0316146112e95760405162461bcd60e51b8152600401610aa9906135cf565b306112f2610892565b6001600160a01b0316146113345760008036604051611312929190613477565b604051809103902090505b80611328600261161e565b146113325761131d565b505b610e5281611d4b565b611345610892565b6001600160a01b0316336001600160a01b0316146113755760405162461bcd60e51b8152600401610aa9906135cf565b3061137e610892565b6001600160a01b0316146113c0576000803660405161139e929190613477565b604051809103902090505b806113b4600261161e565b146113be576113a9565b505b610e5281611db5565b600061105983836113e560408051602081019091526000815290565b611b6b565b6113f2610892565b6001600160a01b0316336001600160a01b0316146114225760405162461bcd60e51b8152600401610aa9906135cf565b3061142b610892565b6001600160a01b03161461146d576000803660405161144b929190613477565b604051809103902090505b80611461600261161e565b1461146b57611456565b505b610e5281611e56565b60006001600160e01b03198216636e665ced60e01b14806108b657506108b682611e97565b60006108b66114a8611f02565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006114fa87878787612029565b91509150610d858161210c565b60006110288686868686612308565b3061151f610892565b6001600160a01b0316146112705760005b84518110156115cc57306001600160a01b031685828151811061156357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156115bc576115bc83828151811061159d57634e487b7160e01b600052603260045260246000fd5b60200260200101518051906020012060026123f390919063ffffffff16565b6115c5816138f7565b9050611530565b505050505050565b6112708585858585612439565b306115ea610892565b6001600160a01b03161461127057600254600f81810b810b600160801b909204810b900b1315611270576000600255611270565b600061163d8254600f81810b810b600160801b909204810b900b131590565b1561165b57604051631ed9509560e11b815260040160405180910390fd5b508054600f90810b80820b820b600090815260018085016020526040822080549290558454920190920b6001600160801b03166001600160801b03199091161790915590565b600c80549082905560408051828152602081018490527f6784e9bcb845caaa98267d7b0918f97d3d17f7cb35a05b52010f7eb587a0acb0910160405180910390a15050565b60006110408585858561170460408051602081019091526000815290565b611507565b600080611715836124ad565b9050600481600781111561173957634e487b7160e01b600052602160045260246000fd5b146117445792915050565b6000838152600b60205260409020548061175f575092915050565b600a54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f5299060240160206040518083038186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117db91906130db565b156117ea575060079392505050565b600a54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e9060240160206040518083038186803b15801561182e57600080fd5b505afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186691906130db565b15611875575060059392505050565b5060029392505050565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b60006118ca611195565b6118d93361081f600143613875565b10156119415760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610aa9565b60006119568686868680519060200120611277565b905084518651146119795760405162461bcd60e51b8152600401610aa990613601565b835186511461199a5760405162461bcd60e51b8152600401610aa990613601565b60008651116119e65760405162461bcd60e51b815260206004820152601860248201527711dbdd995c9b9bdc8e88195b5c1d1e481c1c9bdc1bdcd85b60421b6044820152606401610aa9565b600081815260016020908152604091829020825191820190925281546001600160401b03169081905215611a665760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610aa9565b6000611a78611a73610e55565b6125b9565b611a81436125b9565b611a8b919061384a565b90506000611a9a611a736108bc565b611aa4908361384a565b9050611ab08383612625565b611abd6001840182612625565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611b0957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611b3c57816020015b6060815260200190600190039081611b275790505b508c88888e604051611b5699989796959493929190613683565b60405180910390a15091979650505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfe9190612d34565b604051630748d63560e31b81526001600160a01b038681166004830152602482018690529190911690633a46b1a89060440160206040518083038186803b158015611c4857600080fd5b505afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105691906130fb565b600a54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006108b6611cf783612643565b600084815260086020908152604091829020825191820190925290546001600160401b031690819052612672565b606061105684848460405180606001604052806029815260200161395460299139612689565b600754604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a16007805467ffffffffffffffff19166001600160401b0392909216919091179055565b60008111611e155760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610aa9565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b60006001600160e01b0319821663bf26d89760e01b1480611ec857506001600160e01b031982166379dd796f60e01b145b80611ee357506001600160e01b03198216630271189760e51b145b806108b657506301ffc9a760e01b6001600160e01b03198316146108b6565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611f5b57507f000000000000000000000000000000000000000000000000000000000000000046145b15611f8557507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156120565750600090506003612103565b8460ff16601b1415801561206e57508460ff16601c14155b1561207f5750600090506004612103565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120d3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166120fc57600060019250925050612103565b9150600090505b94509492505050565b600081600481111561212e57634e487b7160e01b600052602160045260246000fd5b14156121375750565b600181600481111561215957634e487b7160e01b600052602160045260246000fd5b14156121a25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610aa9565b60028160048111156121c457634e487b7160e01b600052602160045260246000fd5b14156122125760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610aa9565b600381600481111561223457634e487b7160e01b600052602160045260246000fd5b141561228d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610aa9565b60048160048111156122af57634e487b7160e01b600052602160045260246000fd5b1415610e525760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610aa9565b60008061231887878787876127af565b600088815260086020908152604091829020825191820190925281546001600160401b0316908190529192509015801561235657506123568861291f565b156123e857600061236f6007546001600160401b031690565b612378436125b9565b612382919061384a565b905061238d896111a0565b816001600160401b031611156123dc576040516001600160401b038216815289907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b6123e68282612625565b505b509695505050505050565b8154600160801b90819004600f90810b80820b820b6000908152600180870160205260409091209490945584549301900b6001600160801b039081169091029116179055565b600a5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906124749088908890889060009089906004016134ee565b6000604051808303818588803b15801561248d57600080fd5b505af11580156124a1573d6000803e3d6000fd5b50505050505050505050565b6000818152600160205260408120600281015460ff16156124d15750600792915050565b6002810154610100900460ff16156124ec5750600292915050565b60006124f784610d8f565b9050806125465760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610aa9565b438110612557575060009392505050565b6000612562856111a0565b905043811061257657506001949350505050565b61257f8561291f565b801561259e575060008581526009602052604090208054600190910154115b156125ae57506004949350505050565b506003949350505050565b60006001600160401b038211156126215760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610aa9565b5090565b815467ffffffffffffffff19166001600160401b0391909116179055565b60008181526001602081815260408084208151928301909152909101546001600160401b031690819052610db7565b6000818310156126825781611059565b5090919050565b6060824710156126ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610aa9565b6001600160a01b0385163b6127415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa9565b600080866001600160a01b0316858760405161275d9190613487565b60006040518083038185875af1925050503d806000811461279a576040519150601f19603f3d011682016040523d82523d6000602084013e61279f565b606091505b5091509150610ecb828286612956565b60008581526001602081905260408220906127c988610ed6565b60078111156127e857634e487b7160e01b600052602160045260246000fd5b146128415760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610aa9565b604080516020810190915281546001600160401b03169081905260009061286a90889086611b6b565b9050612879888888848861298f565b83516128cb57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516128be9493929190613771565b60405180910390a2610ecb565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb8712898884898960405161290c959493929190613799565b60405180910390a2979650505050505050565b6000818152600960205260408120600281015460018201546129419190613832565b61294d61088b85610d8f565b11159392505050565b60608315612965575081611059565b8251156129755782518084602001fd5b8160405162461bcd60e51b8152600401610aa991906135bc565b60008581526009602090815260408083206001600160a01b0388168452600381019092529091205460ff1615612a175760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b6064820152608401610aa9565b6001600160a01b03851660009081526003820160205260408120805460ff1916600117905560ff168460ff161415612a685782816000016000828254612a5d9190613832565b909155506115cc9050565b60ff841660011415612a885782816001016000828254612a5d9190613832565b60ff841660021415612aa85782816002016000828254612a5d9190613832565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610aa9565b60006001600160401b03831115612b2757612b27613928565b612b3a601f8401601f19166020016137df565b9050828152838383011115612b4e57600080fd5b828260208301376000602084830101529392505050565b600082601f830112612b75578081fd5b81356020612b8a612b858361380f565b6137df565b80838252828201915082860187848660051b8901011115612ba9578586fd5b855b85811015612bd0578135612bbe8161393e565b84529284019290840190600101612bab565b5090979650505050505050565b600082601f830112612bed578081fd5b81356020612bfd612b858361380f565b80838252828201915082860187848660051b8901011115612c1c578586fd5b855b85811015612bd05781356001600160401b03811115612c3b578788fd5b612c498a87838c0101612cff565b8552509284019290840190600101612c1e565b600082601f830112612c6c578081fd5b81356020612c7c612b858361380f565b80838252828201915082860187848660051b8901011115612c9b578586fd5b855b85811015612bd057813584529284019290840190600101612c9d565b60008083601f840112612cca578182fd5b5081356001600160401b03811115612ce0578182fd5b602083019150836020828501011115612cf857600080fd5b9250929050565b600082601f830112612d0f578081fd5b61105983833560208501612b0e565b803560ff81168114612d2f57600080fd5b919050565b600060208284031215612d45578081fd5b81516110598161393e565b600080600080600060a08688031215612d67578081fd5b8535612d728161393e565b94506020860135612d828161393e565b935060408601356001600160401b0380821115612d9d578283fd5b612da989838a01612c5c565b94506060880135915080821115612dbe578283fd5b612dca89838a01612c5c565b93506080880135915080821115612ddf578283fd5b50612dec88828901612cff565b9150509295509295909350565b60008060008060808587031215612e0e578081fd5b8435612e198161393e565b93506020850135612e298161393e565b92506040850135915060608501356001600160401b03811115612e4a578182fd5b612e5687828801612cff565b91505092959194509250565b600080600080600060a08688031215612e79578283fd5b8535612e848161393e565b94506020860135612e948161393e565b9350604086013592506060860135915060808601356001600160401b03811115612ebc578182fd5b612dec88828901612cff565b60008060408385031215612eda578182fd5b8235612ee58161393e565b946020939093013593505050565b60008060008060608587031215612f08578182fd5b8435612f138161393e565b93506020850135925060408501356001600160401b03811115612f34578283fd5b612f4087828801612cb9565b95989497509550505050565b600080600060608486031215612f60578081fd5b8335612f6b8161393e565b92506020840135915060408401356001600160401b03811115612f8c578182fd5b612f9886828701612cff565b9150509250925092565b60008060008060808587031215612fb7578182fd5b84356001600160401b0380821115612fcd578384fd5b612fd988838901612b65565b95506020870135915080821115612fee578384fd5b612ffa88838901612c5c565b9450604087013591508082111561300f578384fd5b5061301c87828801612bdd565b949793965093946060013593505050565b60008060008060808587031215613042578182fd5b84356001600160401b0380821115613058578384fd5b61306488838901612b65565b95506020870135915080821115613079578384fd5b61308588838901612c5c565b9450604087013591508082111561309a578384fd5b6130a688838901612bdd565b935060608701359150808211156130bb578283fd5b508501601f810187136130cc578182fd5b612e5687823560208401612b0e565b6000602082840312156130ec578081fd5b81518015158114611059578182fd5b60006020828403121561310c578081fd5b5051919050565b600060208284031215613124578081fd5b81356001600160e01b031981168114611059578182fd5b60006020828403121561314c578081fd5b81356110598161393e565b600060208284031215613168578081fd5b5035919050565b60008060408385031215613181578182fd5b8235915060208301356131938161393e565b809150509250929050565b600080604083850312156131b0578182fd5b823591506131c060208401612d1e565b90509250929050565b600080600080606085870312156131de578182fd5b843593506131ee60208601612d1e565b925060408501356001600160401b03811115612f34578283fd5b60008060008060006080868803121561321f578283fd5b8535945061322f60208701612d1e565b935060408601356001600160401b038082111561324a578485fd5b61325689838a01612cb9565b90955093506060880135915080821115612ddf578283fd5b60008060008060008060008060e0898b031215613289578586fd5b8835975061329960208a01612d1e565b965060408901356001600160401b03808211156132b4578788fd5b6132c08c838d01612cb9565b909850965060608b01359150808211156132d8578485fd5b506132e58b828c01612cff565b9450506132f460808a01612d1e565b925060a0890135915060c089013590509295985092959890939650565b600080600080600060a08688031215613328578283fd5b8535945061333860208701612d1e565b935061334660408701612d1e565b94979396509394606081013594506080013592915050565b60006020828403121561336f578081fd5b81356001600160401b0381168114611059578182fd5b6000815180845260208085019450808401835b838110156133bd5781516001600160a01b031687529582019590820190600101613398565b509495945050505050565b600081518084526020808501808196508360051b81019150828601855b8581101561340f5782840389526133fd84835161344b565b988501989350908401906001016133e5565b5091979650505050505050565b6000815180845260208085019450808401835b838110156133bd5781518752958201959082019060010161342f565b6000815180845261346381602086016020860161388c565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161349981846020870161388c565b9190910192915050565b6080815260006134b66080830187613385565b82810360208401526134c8818761341c565b905082810360408401526134dc81866133c8565b91505082606083015295945050505050565b60a08152600061350160a0830188613385565b8281036020840152613513818861341c565b9050828103604084015261352781876133c8565b60608401959095525050608001529392505050565b60c08152600061354f60c0830189613385565b8281036020840152613561818961341c565b9050828103604084015261357581886133c8565b60608401969096525050608081019290925260a0909101529392505050565b60208101600883106135b657634e487b7160e01b600052602160045260246000fd5b91905290565b602081526000611059602083018461344b565b602080825260189082015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b604082015260600190565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006101208b8352602060018060a01b038c16818501528160408501526136ac8285018c613385565b915083820360608501526136c0828b61341c565b915083820360808501528189518084528284019150828160051b850101838c01865b8381101561371057601f198784030185526136fe83835161344b565b948601949250908501906001016136e2565b505086810360a0880152613724818c6133c8565b94505050505061373f60c08401876001600160401b03169052565b6001600160401b03851660e0840152828103610100840152613761818561344b565b9c9b505050505050505050505050565b84815260ff84166020820152826040820152608060608201526000611028608083018461344b565b85815260ff8516602082015283604082015260a0606082015260006137c160a083018561344b565b82810360808401526137d3818561344b565b98975050505050505050565b604051601f8201601f191681016001600160401b038111828210171561380757613807613928565b604052919050565b60006001600160401b0382111561382857613828613928565b5060051b60200190565b6000821982111561384557613845613912565b500190565b60006001600160401b0380831681851680830382111561386c5761386c613912565b01949350505050565b60008282101561388757613887613912565b500390565b60005b838110156138a757818101518382015260200161388f565b838111156138b6576000848401525b50505050565b600181811c908216806138d057607f821691505b602082108114156138f157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561390b5761390b613912565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e5257600080fdfe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220afbe54a25605b3b24baa7e442de657a4dd823e8db1463329faa215a9010c6a2c64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x23F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x12E JUMPI DUP1 PUSH4 0xC59057E4 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xEA0217CF GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xEA0217CF EQ PUSH2 0x7E4 JUMPI DUP1 PUSH4 0xEB9019D4 EQ PUSH2 0x804 JUMPI DUP1 PUSH4 0xECE40CC1 EQ PUSH2 0x824 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x844 JUMPI DUP1 PUSH4 0xF8CE560A EQ PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC59057E4 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD07F91E9 EQ PUSH2 0x72C JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x74C JUMPI DUP1 PUSH4 0xDD4E2BA5 EQ PUSH2 0x76A JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAB58FB8E GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xAB58FB8E EQ PUSH2 0x66B JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xC01F9E37 EQ PUSH2 0x6CC JUMPI DUP1 PUSH4 0xC28BC2FA EQ PUSH2 0x6EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B103999 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x5EB JUMPI DUP1 PUSH4 0x7D5E81E2 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0x9A802A6D EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0xA890C910 EQ PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35680DC2 GT PUSH2 0x1BC JUMPI DUP1 PUSH4 0x544FFC9C GT PUSH2 0x180 JUMPI DUP1 PUSH4 0x544FFC9C EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x53F JUMPI DUP1 PUSH4 0x5F398A14 EQ PUSH2 0x55F JUMPI DUP1 PUSH4 0x70B0F660 EQ PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35680DC2 EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0x43859632 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x160CBED7 GT PUSH2 0x203 JUMPI DUP1 PUSH4 0x160CBED7 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x2656227D EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x2D63F693 EQ PUSH2 0x378 JUMPI DUP1 PUSH4 0x2FE3E261 EQ PUSH2 0x398 JUMPI DUP1 PUSH4 0x32B8113E EQ PUSH2 0x3CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x3420181 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x262 JUMPI ADDRESS PUSH2 0x24D PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x287 PUSH2 0x282 CALLDATASIZE PUSH1 0x4 PUSH2 0x3113 JUMP JUMPDEST PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x8BC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x2DA CALLDATASIZE PUSH1 0x4 PUSH2 0x326E JUMP JUMPDEST PUSH2 0x8C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F4 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x35BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32C PUSH2 0x31C CALLDATASIZE PUSH1 0x4 PUSH2 0x2DF9 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA2 JUMP JUMPDEST PUSH2 0xA51 JUMP JUMPDEST PUSH2 0x2B1 PUSH2 0x373 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA2 JUMP JUMPDEST PUSH2 0xC86 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x384 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x393 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xD8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0xE55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x444 CALLDATASIZE PUSH1 0x4 PUSH2 0x3311 JUMP JUMPDEST PUSH2 0xE60 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x469 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x3594 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x287 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x4DB CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x55A CALLDATASIZE PUSH1 0x4 PUSH2 0x319E JUMP JUMPDEST PUSH2 0xEE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x57A CALLDATASIZE PUSH1 0x4 PUSH2 0x3208 JUMP JUMPDEST PUSH2 0xF0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x59A CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0xF54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D3 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x293 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x31C9 JUMP JUMPDEST PUSH2 0xFE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x626 CALLDATASIZE PUSH1 0x4 PUSH2 0x302D JUMP JUMPDEST PUSH2 0x1032 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x646 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x1049 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x666 CALLDATASIZE PUSH1 0x4 PUSH2 0x313B JUMP JUMPDEST PUSH2 0x1060 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x686 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x10EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x1195 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32C PUSH2 0x6BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2D50 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x6E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x11A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x707 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF3 JUMP JUMPDEST PUSH2 0x11AB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x727 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA2 JUMP JUMPDEST PUSH2 0x1277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x738 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x747 CALLDATASIZE PUSH1 0x4 PUSH2 0x335E JUMP JUMPDEST PUSH2 0x12B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x758 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x737570706F72743D627261766F2671756F72756D3D666F722C6162737461696E SWAP1 DUP3 ADD MSTORE PUSH2 0x2F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x7FF CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x133D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x81F CALLDATASIZE PUSH1 0x4 PUSH2 0x2EC8 JUMP JUMPDEST PUSH2 0x13C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH2 0x83F CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST PUSH2 0x13EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32C PUSH2 0x85F CALLDATASIZE PUSH1 0x4 PUSH2 0x2E62 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B1 PUSH2 0x88B CALLDATASIZE PUSH1 0x4 PUSH2 0x3157 JUMP JUMPDEST POP PUSH1 0xC SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 DUP3 PUSH2 0x1476 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x96B PUSH2 0x963 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x903 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP12 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x948 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x149B JUMP JUMPDEST DUP7 DUP7 DUP7 PUSH2 0x14E9 JUMP JUMPDEST SWAP1 POP PUSH2 0x9B1 DUP11 DUP3 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP14 SWAP3 POP PUSH2 0x1507 SWAP2 POP POP JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x9CE SWAP1 PUSH2 0x38BC 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 0x9FA SWAP1 PUSH2 0x38BC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA47 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA1C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA47 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA2A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA60 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 PUSH2 0xA6D DUP3 PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xA8C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x793D0649 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF27A0C92 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2F SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xB1C5F427 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB1C5F427 SWAP1 PUSH2 0xB69 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x34EE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB9 SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xA SLOAD SWAP2 MLOAD PUSH4 0x8F2A0BB PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8F2A0BB0 SWAP2 PUSH2 0xC04 SWAP2 DUP12 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 DUP3 DUP3 TIMESTAMP PUSH2 0xC64 SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC95 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCA2 DUP3 PUSH2 0xED6 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xCC6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0xCF1 JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xCEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0xD0D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 DUP2 MSTORE PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xD6B DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1516 JUMP JUMPDEST PUSH2 0xD78 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x15D4 JUMP JUMPDEST PUSH2 0xD85 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x15E1 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0xE07 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE49 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xE27 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0xE3D PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0xE47 JUMPI PUSH2 0xE32 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x16A1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xEAE SWAP1 PUSH2 0x963 SWAP1 PUSH1 0x80 ADD PUSH2 0x948 JUMP JUMPDEST SWAP1 POP PUSH2 0xECB DUP8 DUP3 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16E6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 DUP3 PUSH2 0x1709 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xF02 DUP5 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xECB DUP8 DUP3 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x1507 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF5C PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0xF95 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xFB5 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0xFCB PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0xFD5 JUMPI PUSH2 0xFC0 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x187F JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x1028 DUP7 DUP3 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16E6 SWAP3 POP POP POP JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1040 DUP6 DUP6 DUP6 DUP6 PUSH2 0x18C0 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1056 DUP5 DUP5 DUP5 PUSH2 0x1B6B JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1068 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1098 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x10A1 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10E3 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x10C1 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x10D7 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x10E1 JUMPI PUSH2 0x10CC JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1C80 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xD45C4435 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD45C4435 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1158 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x117C SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 EQ PUSH2 0x118C JUMPI DUP1 PUSH2 0x1059 JUMP JUMPDEST PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A6 PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 DUP3 PUSH2 0x1CE9 JUMP JUMPDEST PUSH2 0x11B3 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x11E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x11EC PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x122E JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x120C SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1222 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x122C JUMPI PUSH2 0x1217 JUMP JUMPDEST POP JUMPDEST PUSH2 0x1270 DUP5 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x1D25 SWAP2 POP POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1290 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34A3 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 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x12B9 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x12E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x12F2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1334 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1312 SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1328 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x1332 JUMPI PUSH2 0x131D JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1D4B JUMP JUMPDEST PUSH2 0x1345 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x137E PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13C0 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x139E SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x13B4 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x13BE JUMPI PUSH2 0x13A9 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1DB5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1059 DUP4 DUP4 PUSH2 0x13E5 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1B6B JUMP JUMPDEST PUSH2 0x13F2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1422 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x35CF JUMP JUMPDEST ADDRESS PUSH2 0x142B PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x146D JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x144B SWAP3 SWAP2 SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1461 PUSH1 0x2 PUSH2 0x161E JUMP JUMPDEST EQ PUSH2 0x146B JUMPI PUSH2 0x1456 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE52 DUP2 PUSH2 0x1E56 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x6E665CED PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8B6 JUMPI POP PUSH2 0x8B6 DUP3 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B6 PUSH2 0x14A8 PUSH2 0x1F02 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x14FA DUP8 DUP8 DUP8 DUP8 PUSH2 0x2029 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD85 DUP2 PUSH2 0x210C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1028 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2308 JUMP JUMPDEST ADDRESS PUSH2 0x151F PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1270 JUMPI PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x15CC JUMPI ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1563 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x15BC JUMPI PUSH2 0x15BC DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x159D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x2 PUSH2 0x23F3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15C5 DUP2 PUSH2 0x38F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x1530 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1270 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2439 JUMP JUMPDEST ADDRESS PUSH2 0x15EA PUSH2 0x892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1270 JUMPI PUSH1 0x2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SGT ISZERO PUSH2 0x1270 JUMPI PUSH1 0x0 PUSH1 0x2 SSTORE PUSH2 0x1270 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x163D DUP3 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SGT ISZERO SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x165B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ED95095 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SSTORE DUP5 SLOAD SWAP3 ADD SWAP1 SWAP3 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x6784E9BCB845CAAA98267D7B0918F97D3D17F7CB35A05B52010F7EB587A0ACB0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1040 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1704 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1507 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1715 DUP4 PUSH2 0x24AD JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1739 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1744 JUMPI SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x175F JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2AB0F529 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2AB0F529 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DB SWAP2 SWAP1 PUSH2 0x30DB JUMP JUMPDEST ISZERO PUSH2 0x17EA JUMPI POP PUSH1 0x7 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2C258A9F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x584B153E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x182E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1842 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1866 SWAP2 SWAP1 PUSH2 0x30DB JUMP JUMPDEST ISZERO PUSH2 0x1875 JUMPI POP PUSH1 0x5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP PUSH1 0x2 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18CA PUSH2 0x1195 JUMP JUMPDEST PUSH2 0x18D9 CALLER PUSH2 0x81F PUSH1 0x1 NUMBER PUSH2 0x3875 JUMP JUMPDEST LT ISZERO PUSH2 0x1941 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73657220766F7465732062656C6F772070 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1956 DUP7 DUP7 DUP7 DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP DUP5 MLOAD DUP7 MLOAD EQ PUSH2 0x1979 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3601 JUMP JUMPDEST DUP4 MLOAD DUP7 MLOAD EQ PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAA9 SWAP1 PUSH2 0x3601 JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD GT PUSH2 0x19E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x11DBDD995C9B9BDC8E88195B5C1D1E481C1C9BDC1BDCD85B PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C20616C7265616479206578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A78 PUSH2 0x1A73 PUSH2 0xE55 JUMP JUMPDEST PUSH2 0x25B9 JUMP JUMPDEST PUSH2 0x1A81 NUMBER PUSH2 0x25B9 JUMP JUMPDEST PUSH2 0x1A8B SWAP2 SWAP1 PUSH2 0x384A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A9A PUSH2 0x1A73 PUSH2 0x8BC JUMP JUMPDEST PUSH2 0x1AA4 SWAP1 DUP4 PUSH2 0x384A JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB0 DUP4 DUP4 PUSH2 0x2625 JUMP JUMPDEST PUSH2 0x1ABD PUSH1 0x1 DUP5 ADD DUP3 PUSH2 0x2625 JUMP JUMPDEST PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP5 CALLER DUP12 DUP12 DUP14 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1B3C JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1B27 JUMPI SWAP1 POP JUMPDEST POP DUP13 DUP9 DUP9 DUP15 PUSH1 0x40 MLOAD PUSH2 0x1B56 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3683 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BDA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BFE SWAP2 SWAP1 PUSH2 0x2D34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x748D635 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A46B1A8 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1056 SWAP2 SWAP1 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x8F74EA46EF7894F65EABFB5E6E695DE773A000B47C529AB559178069B226401 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xA 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 0x0 PUSH2 0x8B6 PUSH2 0x1CF7 DUP4 PUSH2 0x2643 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0x2672 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1056 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3954 PUSH1 0x29 SWAP2 CODECOPY PUSH2 0x2689 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7CA4AC117ED3CDCE75C1161D8207C440389B1A15D69D096831664657C07DAFC2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1E15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xBF26D897 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x1EC8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x79DD796F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x1EE3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ JUMPDEST DUP1 PUSH2 0x8B6 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x8B6 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1F5B JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1F85 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 GT ISZERO PUSH2 0x2056 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x2103 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x206E JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x207F JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x2103 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20FC JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x2103 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x212E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2137 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2159 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x21A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x45434453413A20696E76616C6964207369676E6174757265 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x21C4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2212 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2234 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x228D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x22AF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xE52 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2318 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x27AF JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE SWAP2 SWAP3 POP SWAP1 ISZERO DUP1 ISZERO PUSH2 0x2356 JUMPI POP PUSH2 0x2356 DUP9 PUSH2 0x291F JUMP JUMPDEST ISZERO PUSH2 0x23E8 JUMPI PUSH1 0x0 PUSH2 0x236F PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x2378 NUMBER PUSH2 0x25B9 JUMP JUMPDEST PUSH2 0x2382 SWAP2 SWAP1 PUSH2 0x384A JUMP JUMPDEST SWAP1 POP PUSH2 0x238D DUP10 PUSH2 0x11A0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND GT ISZERO PUSH2 0x23DC JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND DUP2 MSTORE DUP10 SWAP1 PUSH32 0x541F725FB9F7C98A30CC9C0FF32FBB14358CD7159C847A3AA20A2BDC442BA511 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH2 0x23E6 DUP3 DUP3 PUSH2 0x2625 JUMP JUMPDEST POP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DUP2 SWAP1 DIV PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP8 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP5 SLOAD SWAP4 ADD SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MUL SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE38335E5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE38335E5 SWAP1 CALLVALUE SWAP1 PUSH2 0x2474 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x34EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x248D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x24D1 JUMPI POP PUSH1 0x7 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x24EC JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24F7 DUP5 PUSH2 0xD8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x2546 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20756E6B6E6F776E2070726F706F73616C206964000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST NUMBER DUP2 LT PUSH2 0x2557 JUMPI POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2562 DUP6 PUSH2 0x11A0 JUMP JUMPDEST SWAP1 POP NUMBER DUP2 LT PUSH2 0x2576 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x257F DUP6 PUSH2 0x291F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x259E JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0x25AE JUMPI POP PUSH1 0x4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x3 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2621 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0xDB7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2682 JUMPI DUP2 PUSH2 0x1059 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x26EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x2741 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x275D SWAP2 SWAP1 PUSH2 0x3487 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x279A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x279F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0xECB DUP3 DUP3 DUP7 PUSH2 0x2956 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH2 0x27C9 DUP9 PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x27E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2841 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20766F7465206E6F742063757272656E746C7920616374 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x697665 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x286A SWAP1 DUP9 SWAP1 DUP7 PUSH2 0x1B6B JUMP JUMPDEST SWAP1 POP PUSH2 0x2879 DUP9 DUP9 DUP9 DUP5 DUP9 PUSH2 0x298F JUMP JUMPDEST DUP4 MLOAD PUSH2 0x28CB JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP10 DUP9 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x28BE SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3771 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xECB JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE2BABFBAC5889A709B63BB7F598B324E08BC5A4FB9EC647FB3CBC9EC07EB8712 DUP10 DUP9 DUP5 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x290C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH2 0x2941 SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH2 0x294D PUSH2 0x88B DUP6 PUSH2 0xD8F JUMP JUMPDEST GT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2965 JUMPI POP DUP2 PUSH2 0x1059 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2975 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 0xAA9 SWAP2 SWAP1 PUSH2 0x35BC JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x3 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2A17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20766F746520616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x191E4818D85CDD PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xFF AND DUP5 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2A68 JUMPI DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2A5D SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x15CC SWAP1 POP JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x1 EQ ISZERO PUSH2 0x2A88 JUMPI DUP3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2A5D SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x2 EQ ISZERO PUSH2 0x2AA8 JUMPI DUP3 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2A5D SWAP2 SWAP1 PUSH2 0x3832 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20696E76616C6964207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH21 0x6C756520666F7220656E756D20566F746554797065 PUSH1 0x58 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x2B27 JUMPI PUSH2 0x2B27 PUSH2 0x3928 JUMP JUMPDEST PUSH2 0x2B3A PUSH1 0x1F DUP5 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x37DF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2B4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2B8A PUSH2 0x2B85 DUP4 PUSH2 0x380F JUMP JUMPDEST PUSH2 0x37DF JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2BA9 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BD0 JUMPI DUP2 CALLDATALOAD PUSH2 0x2BBE DUP2 PUSH2 0x393E JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BAB JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BED JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2BFD PUSH2 0x2B85 DUP4 PUSH2 0x380F JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2C1C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BD0 JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C3B JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x2C49 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x2CFF JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C1E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C6C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2C7C PUSH2 0x2B85 DUP4 PUSH2 0x380F JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2C9B JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BD0 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C9D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2CCA JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CE0 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2CF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D0F JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1059 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2B0E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2D2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D45 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1059 DUP2 PUSH2 0x393E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2D67 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2D72 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2D82 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2D9D JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2DA9 DUP10 DUP4 DUP11 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DBE JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2DCA DUP10 DUP4 DUP11 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DDF JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2DEC DUP9 DUP3 DUP10 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E0E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2E19 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2E29 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E4A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E56 DUP8 DUP3 DUP9 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2E79 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2E84 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2E94 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2EBC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2DEC DUP9 DUP3 DUP10 ADD PUSH2 0x2CFF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EDA JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EE5 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2F08 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2F13 DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F34 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F40 DUP8 DUP3 DUP9 ADD PUSH2 0x2CB9 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F60 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2F6B DUP2 PUSH2 0x393E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F8C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2F98 DUP7 DUP3 DUP8 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2FB7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2FCD JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2FD9 DUP9 DUP4 DUP10 ADD PUSH2 0x2B65 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FEE JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2FFA DUP9 DUP4 DUP10 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x300F JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x301C DUP8 DUP3 DUP9 ADD PUSH2 0x2BDD JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3042 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x3058 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3064 DUP9 DUP4 DUP10 ADD PUSH2 0x2B65 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3079 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3085 DUP9 DUP4 DUP10 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x309A JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x30A6 DUP9 DUP4 DUP10 ADD PUSH2 0x2BDD JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x30BB JUMPI DUP3 DUP4 REVERT JUMPDEST POP DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x30CC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E56 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x2B0E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30EC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1059 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x310C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3124 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1059 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1059 DUP2 PUSH2 0x393E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3168 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3181 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3193 DUP2 PUSH2 0x393E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31B0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x31C0 PUSH1 0x20 DUP5 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31DE JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH2 0x31EE PUSH1 0x20 DUP7 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F34 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x321F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x322F PUSH1 0x20 DUP8 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x324A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3256 DUP10 DUP4 DUP11 ADD PUSH2 0x2CB9 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DDF JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x3289 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x3299 PUSH1 0x20 DUP11 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x32B4 JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x32C0 DUP13 DUP4 DUP14 ADD PUSH2 0x2CB9 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x32D8 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x32E5 DUP12 DUP3 DUP13 ADD PUSH2 0x2CFF JUMP JUMPDEST SWAP5 POP POP PUSH2 0x32F4 PUSH1 0x80 DUP11 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3328 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x3338 PUSH1 0x20 DUP8 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP4 POP PUSH2 0x3346 PUSH1 0x40 DUP8 ADD PUSH2 0x2D1E JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x336F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1059 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x33BD JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3398 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP4 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP3 DUP7 ADD DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x340F JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x33FD DUP5 DUP4 MLOAD PUSH2 0x344B JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x33E5 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x33BD JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x342F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3463 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x388C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3499 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x388C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x34B6 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3385 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x34C8 DUP2 DUP8 PUSH2 0x341C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x34DC DUP2 DUP7 PUSH2 0x33C8 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3501 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x3385 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3513 DUP2 DUP9 PUSH2 0x341C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3527 DUP2 DUP8 PUSH2 0x33C8 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x354F PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x3385 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3561 DUP2 DUP10 PUSH2 0x341C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3575 DUP2 DUP9 PUSH2 0x33C8 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x8 DUP4 LT PUSH2 0x35B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1059 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x344B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH24 0x476F7665726E6F723A206F6E6C79476F7665726E616E6365 PUSH1 0x40 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20696E76616C69642070726F706F73616C206C656E6774 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420737563636573736675 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP12 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP6 ADD MSTORE DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x36AC DUP3 DUP6 ADD DUP13 PUSH2 0x3385 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x36C0 DUP3 DUP12 PUSH2 0x341C JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x80 DUP6 ADD MSTORE DUP2 DUP10 MLOAD DUP1 DUP5 MSTORE DUP3 DUP5 ADD SWAP2 POP DUP3 DUP2 PUSH1 0x5 SHL DUP6 ADD ADD DUP4 DUP13 ADD DUP7 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3710 JUMPI PUSH1 0x1F NOT DUP8 DUP5 SUB ADD DUP6 MSTORE PUSH2 0x36FE DUP4 DUP4 MLOAD PUSH2 0x344B JUMP JUMPDEST SWAP5 DUP7 ADD SWAP5 SWAP3 POP SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36E2 JUMP JUMPDEST POP POP DUP7 DUP2 SUB PUSH1 0xA0 DUP9 ADD MSTORE PUSH2 0x3724 DUP2 DUP13 PUSH2 0x33C8 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x373F PUSH1 0xC0 DUP5 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0xE0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x3761 DUP2 DUP6 PUSH2 0x344B JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1028 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x344B JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x37C1 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x344B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x37D3 DUP2 DUP6 PUSH2 0x344B JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3807 JUMPI PUSH2 0x3807 PUSH2 0x3928 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3828 JUMPI PUSH2 0x3828 PUSH2 0x3928 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3845 JUMPI PUSH2 0x3845 PUSH2 0x3912 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x386C JUMPI PUSH2 0x386C PUSH2 0x3912 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3887 JUMPI PUSH2 0x3887 PUSH2 0x3912 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38A7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x388F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x38B6 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x38D0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x38F1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x390B JUMPI PUSH2 0x390B PUSH2 0x3912 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2063616C6C KECCAK256 PUSH24 0x6974682076616C7565206661696C6564A264697066735822 SLT KECCAK256 0xAF 0xBE SLOAD LOG2 JUMP SDIV 0xB3 0xB2 0x4B 0xAA PUSH31 0x442DE657A4DD823E8DB1463329FAA215A9010C6A2C64736F6C634300080400 CALLER ","sourceMap":"886:4916:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3755:4:5;3732:11;:9;:11::i;:::-;-1:-1:-1;;;;;3732:28:5;;3724:37;;;;;;886:4916:68;;;;;4711:214;;;;;;;;;;-1:-1:-1;4711:214:68;;;;;:::i;:::-;;:::i;:::-;;;21636:14:139;;21629:22;21611:41;;21599:2;21584:18;4711:214:68;;;;;;;;2414:172;;;;;;;;;;;;;:::i;:::-;;;21809:25:139;;;21797:2;21782:18;2414:172:68;21764:76:139;16338:784:5;;;;;;;;;;-1:-1:-1;16338:784:5;;;;;:::i;:::-;;:::i;4629:98::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19744:200::-;;;;;;;;;;-1:-1:-1;19744:200:5;;;;;:::i;:::-;-1:-1:-1;;;19744:200:5;;;;;;;;;;-1:-1:-1;;;;;;23710:33:139;;;23692:52;;23680:2;23665:18;19744:200:5;23647:103:139;3610:739:11;;;;;;;;;;-1:-1:-1;3610:739:11;;;;;:::i;:::-;;:::i;10763:867:5:-;;;;;;:::i;:::-;;:::i;7177:163::-;;;;;;;;;;-1:-1:-1;7177:163:5;;;;;:::i;:::-;;:::i;1347:147::-;;;;;;;;;;;;1406:88;1347:147;;3515:110:9;;;;;;;;;;-1:-1:-1;3604:14:9;;3515:110;;-1:-1:-1;;;;;3604:14:9;;;35424:50:139;;35412:2;35397:18;3515:110:9;35379:101:139;5395:114:68;;;;;;;;;;-1:-1:-1;5395:114:68;;;;;:::i;:::-;;:::i;2238:170::-;;;;;;;;;;;;;:::i;15827:427:5:-;;;;;;;;;;-1:-1:-1;15827:427:5;;;;;:::i;:::-;;:::i;2825:198:68:-;;;;;;;;;;-1:-1:-1;2825:198:68;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1039:167:8:-;;;;;;;;;;-1:-1:-1;1039:167:8;;;;;:::i;:::-;1132:4;1155:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;1155:44:8;;;;:35;;:44;;;;;;;;1039:167;;;;;1278:389;;;;;;;;;;-1:-1:-1;1278:389:8;;;;;:::i;:::-;1395:20;1540:26;;;:14;:26;;;;;1584:25;;1611:21;;;;1634:25;;;;;1584;;1278:389;;;;;34105:25:139;;;34161:2;34146:18;;34139:34;;;;34189:18;;;34182:34;34093:2;34078:18;1278:389:8;34060:162:139;4786:99:5;;;;;;;;;;-1:-1:-1;4868:10:5;;;;;;;;;;;;-1:-1:-1;;;4868:10:5;;;;4786:99;;14837:198;;;;;;;;;;-1:-1:-1;14837:198:5;;;;;:::i;:::-;;:::i;15450:312::-;;;;;;;;;;-1:-1:-1;15450:312:5;;;;;:::i;:::-;;:::i;1738:126:10:-;;;;;;;;;;-1:-1:-1;1738:126:10;;;;;:::i;:::-;;:::i;1041:35:68:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18318:32:139;;;18300:51;;18288:2;18273:18;1041:35:68;18255:102:139;15105:266:5;;;;;;;;;;-1:-1:-1;15105:266:5;;;;;:::i;:::-;;:::i;3029:292:68:-;;;;;;;;;;-1:-1:-1;3029:292:68;;;;;:::i;:::-;;:::i;14550:227:5:-;;;;;;;;;;-1:-1:-1;14550:227:5;;;;;:::i;:::-;;:::i;6247:133:11:-;;;;;;;;;;-1:-1:-1;6247:133:11;;;;;:::i;:::-;;:::i;3271:259::-;;;;;;;;;;-1:-1:-1;3271:259:11;;;;;:::i;:::-;;:::i;3327:181:68:-;;;;;;;;;;;;;:::i;20320:247:5:-;;;;;;;;;;-1:-1:-1;20320:247:5;;;;;:::i;:::-;-1:-1:-1;;;20320:247:5;;;;;;;;2592:227:68;;;;;;;;;;-1:-1:-1;2592:227:68;;;;;:::i;:::-;;:::i;19188:196:5:-;;;;;;;;;;-1:-1:-1;19188:196:5;;;;;:::i;:::-;;:::i;5830:308::-;;;;;;;;;;-1:-1:-1;5830:308:5;;;;;:::i;:::-;;:::i;3869:153:9:-;;;;;;;;;;-1:-1:-1;3869:153:9;;;;;:::i;:::-;;:::i;3074:109:11:-;;;;;;;;;;-1:-1:-1;3166:9:11;;-1:-1:-1;;;;;3166:9:11;3074:109;;843:136:8;;;;;;;;;;-1:-1:-1;931:41:8;;;;;;;;;;;;;;;;;;843:136;;1246:95:5;;;;;;;;;;;;1288:53;1246:95;;2039:130:10;;;;;;;;;;-1:-1:-1;2039:130:10;;;;;:::i;:::-;;:::i;14304:176:5:-;;;;;;;;;;-1:-1:-1;14304:176:5;;;;;:::i;:::-;;:::i;2354:150:10:-;;;;;;;;;;-1:-1:-1;2354:150:10;;;;;:::i;:::-;;:::i;20020:219:5:-;;;;;;;;;;-1:-1:-1;20020:219:5;;;;;:::i;:::-;-1:-1:-1;;;20020:219:5;;;;;;;;5063:143:68;;;;;;;;;;-1:-1:-1;5063:143:68;;;;;:::i;:::-;-1:-1:-1;5192:7:68;;;5063:143;4531:174;4651:7;4681:17;3166:9:11;;-1:-1:-1;;;;;3166:9:11;;3074:109;4681:17:68;4674:24;;4531:174;:::o;4711:214::-;4855:4;4882:36;4906:11;4882:23;:36::i;:::-;4875:43;4711:214;-1:-1:-1;;4711:214:68:o;2414:172::-;2529:7;2559:20;1359:13:10;;;1271:108;16338:784:5;16586:7;16605:13;16621:423;16648:341;1406:88;16799:10;16835:7;16884:6;;16868:24;;;;;;;:::i;:::-;;;;;;;;16928:6;16918:17;;;;;;16713:244;;;;;;;;;;;22925:25:139;;;22981:2;22966:18;;22959:34;;;;23041:4;23029:17;;;;23024:2;23009:18;;23002:45;23078:2;23063:18;;23056:34;23121:3;23106:19;;23099:35;22912:3;22897:19;;22879:261;16713:244:5;;;;;;;;;;;;;16682:293;;;;;;16648:16;:341::i;:::-;17003:1;17018;17033;16621:13;:423::i;:::-;16605:439;;17062:53;17072:10;17084:5;17091:7;17100:6;;17062:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17108:6:5;;-1:-1:-1;17062:9:5;;-1:-1:-1;;17062:53:5:i;:::-;17055:60;16338:784;-1:-1:-1;;;;;;;;;;16338:784:5:o;4629:98::-;4683:13;4715:5;4708:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4629:98;:::o;3610:739:11:-;3798:7;3817:18;3838:57;3851:7;3860:6;3868:9;3879:15;3838:12;:57::i;:::-;3817:78;-1:-1:-1;3935:23:11;3914:17;3920:10;3914:5;:17::i;:::-;:44;;;;;;-1:-1:-1;;;3914:44:11;;;;;;;;;;3906:90;;;;-1:-1:-1;;;3906:90:11;;;;;;;:::i;:::-;;;;;;;;;4023:9;;:23;;;-1:-1:-1;;;4023:23:11;;;;4007:13;;-1:-1:-1;;;;;4023:9:11;;:21;;:23;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4083:9;;:76;;-1:-1:-1;;;4083:76:11;;4007:39;;-1:-1:-1;;;;;;4083:9:11;;:28;;:76;;4112:7;;4121:6;;4129:9;;4083;;4143:15;;4083:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4056:24;;;;:12;:24;;;;;;:103;;;;4169:9;;:78;;-1:-1:-1;;;4169:78:11;;-1:-1:-1;;;;;4169:9:11;;;;:23;;:78;;4193:7;;4202:6;;4210:9;;4056:24;4224:15;;4241:5;;4169:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:51;4278:10;4308:5;4290:15;:23;;;;:::i;:::-;4263:51;;;33824:25:139;;;33880:2;33865:18;;33858:34;;;;33797:18;4263:51:11;;;;;;;-1:-1:-1;4332:10:11;3610:739;-1:-1:-1;;;;;3610:739:11:o;10763:867:5:-;10961:7;10980:18;11001:57;11014:7;11023:6;11031:9;11042:15;11001:12;:57::i;:::-;10980:78;;11069:20;11092:17;11098:10;11092:5;:17::i;:::-;11069:40;-1:-1:-1;11150:23:5;11140:6;:33;;;;;;-1:-1:-1;;;11140:33:5;;;;;;;;;;:67;;;-1:-1:-1;11187:20:5;11177:6;:30;;;;;;-1:-1:-1;;;11177:30:5;;;;;;;;;;11140:67;11119:147;;;;-1:-1:-1;;;11119:147:5;;;;;;;:::i;:::-;11276:22;;;;11310:4;11276:22;;;;;;;;;:31;;:38;;-1:-1:-1;;11276:38:5;;;;;;;11330:28;;21809:25:139;;;11330:28:5;;21782:18:139;11330:28:5;;;;;;;11369:71;11384:10;11396:7;11405:6;11413:9;11424:15;11369:14;:71::i;:::-;11450:65;11459:10;11471:7;11480:6;11488:9;11499:15;11450:8;:65::i;:::-;11525:70;11539:10;11551:7;11560:6;11568:9;11579:15;11525:13;:70::i;:::-;-1:-1:-1;11613:10:5;10763:867;-1:-1:-1;;;;;10763:867:5:o;7177:163::-;7261:7;7287:22;;;:10;:22;;;;;;;;:44;;;;;;;;;-1:-1:-1;;;;;7287:44:5;;;;;:46;-1:-1:-1;;;;;7280:53:5;;7177:163;-1:-1:-1;;7177:163:5:o;5395:114:68:-;3029:11:5;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:5;719:10:38;-1:-1:-1;;;;;3013:27:5;;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:5;;3079:277;;3127:19;;793:14:38;3149:21:5;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;5478:24:68::1;5492:9;5478:13;:24::i;:::-;5395:114:::0;:::o;2238:170::-;2352:7;2382:19;1188:12:10;;;1101:106;15827:427:5;16084:48;;;1288:53;16084:48;;;22537:25:139;22578:18;;;22571:34;;;22653:4;22641:17;;22621:18;;;22614:45;15995:7:5;;;;16030:159;;16057:77;;22510:18:139;;16084:48:5;22492:173:139;16030:159:5;16014:175;;16206:41;16216:10;16228:5;16235:7;16206:41;;;;;;;;;;;;:9;:41::i;:::-;16199:48;15827:427;-1:-1:-1;;;;;;;15827:427:5:o;2825:198:68:-;2957:13;2993:23;3005:10;2993:11;:23::i;14837:198:5:-;14923:7;;719:10:38;14942:28:5;;14987:41;14997:10;15009:5;15016:7;14987:41;;;;;;;;;;;;:9;:41::i;:::-;14980:48;14837:198;-1:-1:-1;;;;14837:198:5:o;15450:312::-;15638:7;;719:10:38;15657:28:5;;15702:53;15712:10;15724:5;15731:7;15740:6;;15702:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15748:6:5;;-1:-1:-1;15702:9:5;;-1:-1:-1;;15702:53:5:i;1738:126:10:-;3029:11:5;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:5;719:10:38;-1:-1:-1;;;;;3013:27:5;;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:5;;3079:277;;3127:19;;793:14:38;3149:21:5;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;1826:31:10::1;1842:14;1826:15;:31::i;15105:266:5:-:0;15255:7;;719:10:38;15274:28:5;;15319:45;15329:10;15341:5;15348:7;15357:6;;15319:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15319:9:5;;-1:-1:-1;;;15319:45:5:i;:::-;15312:52;15105:266;-1:-1:-1;;;;;;15105:266:5:o;3029:292:68:-;3234:7;3260:54;3274:7;3283:6;3291:9;3302:11;3260:13;:54::i;:::-;3253:61;3029:292;-1:-1:-1;;;;;3029:292:68:o;14550:227:5:-;14705:7;14731:39;14741:7;14750:11;14763:6;14731:9;:39::i;:::-;14724:46;;14550:227;;;;;;:::o;6247:133:11:-;3029:11:5;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:5;719:10:38;-1:-1:-1;;;;;3013:27:5;;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:5;;3079:277;;3127:19;;793:14:38;3149:21:5;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;6345:28:11::1;6361:11;6345:15;:28::i;3271:259::-:0;3383:9;;3350:7;3406:24;;;:12;:24;;;;;;;3383:48;;-1:-1:-1;;;3383:48:11;;;;;21809:25:139;;;;3350:7:11;;;;-1:-1:-1;;;;;3383:9:11;;;;:22;;21782:18:139;;3383:48:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3369:62;;3448:3;3455:1;3448:8;:18;;3463:3;3448:18;;;3459:1;3441:25;3271:259;-1:-1:-1;;;3271:259:11:o;3327:181:68:-;3446:7;3476:25;1540:18:10;;;1447:118;2592:227:68;2748:7;2778:34;2801:10;2778:22;:34::i;19188:196:5:-;3029:11;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:5;719:10:38;-1:-1:-1;;;;;3013:27:5;;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:5;;3079:277;;3127:19;;793:14:38;3149:21:5;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;19327:50:::1;19357:6;19365:4;;19327:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;19371:5:5;;-1:-1:-1;19327:29:5::1;::::0;-1:-1:-1;;19327:50:5:i:1;:::-;;19188:196:::0;;;;:::o;5830:308::-;6030:7;6085;6094:6;6102:9;6113:15;6074:55;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6074:55:5;;;;;;;;;6064:66;;6074:55;6064:66;;;;;5830:308;-1:-1:-1;;;;;5830:308:5:o;3869:153:9:-;3029:11:5;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:5;719:10:38;-1:-1:-1;;;;;3013:27:5;;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:5;;3079:277;;3127:19;;793:14:38;3149:21:5;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;3970:45:9::1;3998:16;3970:27;:45::i;2039:130:10:-:0;3029:11:5;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:5;719:10:38;-1:-1:-1;;;;;3013:27:5;;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:5;;3079:277;;3127:19;;793:14:38;3149:21:5;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;2129:33:10::1;2146:15;2129:16;:33::i;14304:176:5:-:0;14398:7;14424:49;14434:7;14443:11;14456:16;9221:9;;;;;;;;;-1:-1:-1;9221:9:5;;;9140:97;14456:16;14424:9;:49::i;2354:150:10:-;3029:11:5;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:5;719:10:38;-1:-1:-1;;;;;3013:27:5;;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:5;;3079:277;;3127:19;;793:14:38;3149:21:5;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;2454:43:10::1;2476:20;2454:21;:43::i;1886:224:11:-:0;1990:4;-1:-1:-1;;;;;;2013:50:11;;-1:-1:-1;;;2013:50:11;;:90;;;2067:36;2091:11;2067:23;:36::i;4339:165:44:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;8677:57:42;;-1:-1:-1;;;8677:57:42;;;18015:27:139;18058:11;;;18051:27;;;18094:12;;;18087:28;;;8641:7:42;;18131:12:139;;8677:57:42;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;6903:270;7026:7;7046:17;7065:18;7087:25;7098:4;7104:1;7107;7110;7087:10;:25::i;:::-;7045:67;;;;7122:18;7134:5;7122:11;:18::i;3514:362:68:-;3778:7;3808:61;3824:10;3836:7;3845;3854:6;3862;3808:15;:61::i;12366:499:5:-;12628:4;12605:11;:9;:11::i;:::-;-1:-1:-1;;;;;12605:28:5;;12601:258;;12654:9;12649:200;12673:7;:14;12669:1;:18;12649:200;;;12738:4;-1:-1:-1;;;;;12716:27:5;:7;12724:1;12716:10;;;;;;-1:-1:-1;;;12716:10:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;12716:27:5;;12712:123;;;12767:49;12802:9;12812:1;12802:12;;;;;;-1:-1:-1;;;12802:12:5;;;;;;;;;;;;;;;12792:23;;;;;;12767:15;:24;;:49;;;;:::i;:::-;12689:3;;;:::i;:::-;;;12649:200;;;;12366:499;;;;;:::o;3882:327:68:-;4131:71;4146:10;4158:7;4167:6;4175:9;4186:15;4131:14;:71::i;12934:396:5:-;13207:4;13184:11;:9;:11::i;:::-;-1:-1:-1;;;;;13184:28:5;;13180:144;;13233:15;5880:12:50;;;;;5866:26;;-1:-1:-1;;;5866:10:50;;;;;:26;;;;13228:86:5;;5236:1:50;13276:15:5;5247:14:50;13276:23:5;5159:109:50;3287:324;3351:13;3380:12;3386:5;5880:12;;;;;5866:26;;-1:-1:-1;;;5866:10:50;;;;;:26;;;;;5777:122;3380:12;3376:32;;;3401:7;;-1:-1:-1;;;3401:7:50;;;;;;;;;;;3376:32;-1:-1:-1;3438:12:50;;;;;;3468:23;;;;;3418:17;3468:23;;;3438:12;3468:11;;;:23;;;;;;;3501:30;;;3565:29;;3580:14;;3565:29;;;-1:-1:-1;;;;;3565:29:50;-1:-1:-1;;;;;;3565:29:50;;;;;;;3468:23;3287:324::o;5618:182:68:-;5707:7;;;5724:19;;;;5758:35;;;33824:25:139;;;33880:2;33865:18;;33858:34;;;5758:35:68;;33797:18:139;5758:35:68;;;;;;;5618:182;;:::o;17431:255:5:-;17588:7;17614:65;17624:10;17636:7;17645;17654:6;17662:16;9221:9;;;;;;;;;-1:-1:-1;9221:9:5;;;9140:97;17662:16;17614:9;:65::i;2240:747:11:-;2334:13;2359:20;2382:23;2394:10;2382:11;:23::i;:::-;2359:46;-1:-1:-1;2430:23:11;2420:6;:33;;;;;;-1:-1:-1;;;2420:33:11;;;;;;;;;;2416:77;;2476:6;2240:747;-1:-1:-1;;2240:747:11:o;2416:77::-;2603:15;2621:24;;;:12;:24;;;;;;2659:21;2655:326;;-1:-1:-1;2703:6:11;2240:747;-1:-1:-1;;2240:747:11:o;2655:326::-;2730:9;;:34;;-1:-1:-1;;;2730:34:11;;;;;21809:25:139;;;-1:-1:-1;;;;;2730:9:11;;;;:25;;21782:18:139;;2730:34:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2726:255;;;-1:-1:-1;2787:22:11;;2240:747;-1:-1:-1;;;2240:747:11:o;2726:255::-;2830:9;;:37;;-1:-1:-1;;;2830:37:11;;;;;21809:25:139;;;-1:-1:-1;;;;;2830:9:11;;;;:28;;21782:18:139;;2830:37:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2826:155;;;-1:-1:-1;2890:20:11;;2240:747;-1:-1:-1;;;2240:747:11:o;2826:155::-;-1:-1:-1;2948:22:11;;2240:747;-1:-1:-1;;;2240:747:11:o;2622:171:10:-;2718:12;;2703:44;;;33824:25:139;;;33880:2;33865:18;;33858:34;;;2703:44:10;;33797:18:139;2703:44:10;;;;;;;2757:12;:29;2622:171::o;9296:1408:5:-;9488:7;9572:19;:17;:19::i;:::-;9528:40;719:10:38;9551:16:5;9566:1;9551:12;:16;:::i;9528:40::-;:63;;9507:159;;;;-1:-1:-1;;;9507:159:5;;31362:2:139;9507:159:5;;;31344:21:139;31401:2;31381:18;;;31374:30;31440:34;31420:18;;;31413:62;-1:-1:-1;;;31491:18:139;;;31484:47;31548:19;;9507:159:5;31334:239:139;9507:159:5;9677:18;9698:71;9711:7;9720:6;9728:9;9755:11;9739:29;;;;;;9698:12;:71::i;:::-;9677:92;;9806:6;:13;9788:7;:14;:31;9780:77;;;;-1:-1:-1;;;9780:77:5;;;;;;;:::i;:::-;9893:9;:16;9875:7;:14;:34;9867:80;;;;-1:-1:-1;;;9867:80:5;;;;;;;:::i;:::-;9982:1;9965:7;:14;:18;9957:55;;;;-1:-1:-1;;;9957:55:5;;28257:2:139;9957:55:5;;;28239:21:139;28296:2;28276:18;;;28269:30;-1:-1:-1;;;28315:18:139;;;28308:54;28379:18;;9957:55:5;28229:174:139;9957:55:5;10023:29;10055:22;;;:10;:22;;;;;;;;;10095:26;;;;;;;;;;-1:-1:-1;;;;;10095:26:5;;;;;1600:20:41;10087:74:5;;;;-1:-1:-1;;;10087:74:5;;30602:2:139;10087:74:5;;;30584:21:139;30641:2;30621:18;;;30614:30;30680:34;30660:18;;;30653:62;-1:-1:-1;;;30731:18:139;;;30724:31;30772:19;;10087:74:5;30574:223:139;10087:74:5;10172:15;10216:24;:13;:11;:13::i;:::-;:22;:24::i;:::-;10190:23;:12;:21;:23::i;:::-;:50;;;;:::i;:::-;10172:68;;10250:15;10279:25;:14;:12;:14::i;:25::-;10268:36;;:8;:36;:::i;:::-;10250:54;-1:-1:-1;10315:40:5;:8;10346;10315:30;:40::i;:::-;10365:38;:16;;;10394:8;10365:28;:38::i;:::-;10419:250;10448:10;719::38;10498:7:5;10519:6;10552:7;:14;-1:-1:-1;;;;;10539:28:5;;;;;-1:-1:-1;;;10539:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10581:9;10604:8;10626;10648:11;10419:250;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10687:10:5;;9296:1408;-1:-1:-1;;;;;;;9296:1408:5:o;1987:245:68:-;2139:7;2172:8;-1:-1:-1;;;;;2172:15:68;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2165:60;;-1:-1:-1;;;2165:60:68;;-1:-1:-1;;;;;18863:32:139;;;2165:60:68;;;18845:51:139;18912:18;;;18905:34;;;2165:38:68;;;;;;;18818:18:139;;2165:60:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6386:176:11:-;6489:9;;6466:56;;;-1:-1:-1;;;;;6489:9:11;;;18574:34:139;;18644:15;;;18639:2;18624:18;;18617:43;6466:56:11;;18509:18:139;6466:56:11;;;;;;;6532:9;:23;;-1:-1:-1;;;;;;6532:23:11;-1:-1:-1;;;;;6532:23:11;;;;;;;;;;6386:176::o;2056:207:9:-;2140:7;2166:90;2175:34;2198:10;2175:22;:34::i;:::-;2211:30;;;;:18;:30;;;;;;;;;:42;;;;;;;;;;-1:-1:-1;;;;;2211:42:9;;;;;2166:8;:90::i;4446:254:36:-;4575:12;4606:87;4628:6;4636:4;4642:5;4606:87;;;;;;;;;;;;;;;;;:21;:87::i;4311:204:9:-;4432:14;;4405:60;;;-1:-1:-1;;;;;4432:14:9;;;35692:34:139;;35762:15;;;35757:2;35742:18;;35735:43;4405:60:9;;35628:18:139;4405:60:9;;;;;;;4475:14;:33;;-1:-1:-1;;4475:33:9;-1:-1:-1;;;;;4475:33:9;;;;;;;;;;4311:204::o;2913:316:10:-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:10;;26227:2:139;3048:71:10;;;26209:21:139;26266:2;26246:18;;;26239:30;26305:34;26285:18;;;26278:62;-1:-1:-1;;;26356:18:139;;;26349:37;26403:19;;3048:71:10;26199:229:139;3048:71:10;3150:13;;3134:47;;;33824:25:139;;;33880:2;33865:18;;33858:34;;;3134:47:10;;33797:18:139;3134:47:10;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;33824:25:139;;;33880:2;33865:18;;33858:34;;;3452:62:10;;33797:18:139;3452:62:10;;;;;;;3524:18;:41;3359:213::o;3835:738:5:-;3937:4;-1:-1:-1;;;;;;4159:232:5;;-1:-1:-1;;;4159:232:5;;:290;;-1:-1:-1;;;;;;;4407:42:5;;-1:-1:-1;;;4407:42:5;4159:290;:355;;;-1:-1:-1;;;;;;;4465:49:5;;-1:-1:-1;;;4465:49:5;4159:355;:407;;;-1:-1:-1;;;;;;;;;;937:40:45;;;4530:36:5;829:155:45;3143:308:44;3196:7;3227:4;-1:-1:-1;;;;;3236:12:44;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:44;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:44;;;3392:10;3633:73;;;;22104:25:139;;;;3404:12:44;22145:18:139;;;22138:34;3418:15:44;22188:18:139;;;22181:34;3677:13:44;22231:18:139;;;22224:34;3700:4:44;22274:19:139;;;;22267:61;;;;3633:73:44;;;;;;;;;;22076:19:139;;;;3633:73:44;;;3623:84;;;;;;4531:174:68:o;5167:1603:42:-;5293:7;;-1:-1:-1;;;;;6204:79:42;;6200:161;;;-1:-1:-1;6315:1:42;;-1:-1:-1;6319:30:42;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:42;;-1:-1:-1;6428:30:42;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;23372:25:139;;;23445:4;23433:17;;23413:18;;;23406:45;;;;23467:18;;;23460:34;;;23510:18;;;23503:34;;;6581:24:42;;23344:19:139;;6581:24:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:42;;-1:-1:-1;;6581:24:42;;;-1:-1:-1;;;;;;;6619:20:42;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:42;;-1:-1:-1;5167:1603:42;;;;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;-1:-1:-1;;;616:29:42;;;;;;;;;;612:561;;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;-1:-1:-1;;;712:38:42;;;;;;;;;;708:465;;;766:34;;-1:-1:-1;;;766:34:42;;24759:2:139;766:34:42;;;24741:21:139;24798:2;24778:18;;;24771:30;-1:-1:-1;;;24817:18:139;;;24810:54;24881:18;;766:34:42;24731:174:139;708:465:42;830:35;821:5;:44;;;;;;-1:-1:-1;;;821:44:42;;;;;;;;;;817:356;;;881:41;;-1:-1:-1;;;881:41:42;;25465:2:139;881:41:42;;;25447:21:139;25504:2;25484:18;;;25477:30;25543:33;25523:18;;;25516:61;25594:18;;881:41:42;25437:181:139;817:356:42;952:30;943:5;:39;;;;;;-1:-1:-1;;;943:39:42;;;;;;;;;;939:234;;;998:44;;-1:-1:-1;;;998:44:42;;26635:2:139;998:44:42;;;26617:21:139;26674:2;26654:18;;;26647:30;26713:34;26693:18;;;26686:62;-1:-1:-1;;;26764:18:139;;;26757:32;26806:19;;998:44:42;26607:224:139;939:234:42;1072:30;1063:5;:39;;;;;;-1:-1:-1;;;1063:39:42;;;;;;;;;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:42;;28610:2:139;1118:44:42;;;28592:21:139;28649:2;28629:18;;;28622:30;28688:34;28668:18;;;28661:62;-1:-1:-1;;;28739:18:139;;;28732:32;28781:19;;1118:44:42;28582:224:139;2482:816:9;2677:7;2696:14;2713:61;2729:10;2741:7;2750;2759:6;2767;2713:15;:61::i;:::-;2785:43;2831:30;;;:18;:30;;;;;;;;;2876:24;;;;;;;;;;-1:-1:-1;;;;;2876:24:9;;;;;2696:78;;-1:-1:-1;2831:30:9;1600:20:41;2876:56:9;;;;;2906:26;2921:10;2906:14;:26::i;:::-;2872:396;;;2948:28;3005:25;3604:14;;-1:-1:-1;;;;;3604:14:9;;3515:110;3005:25;2979:23;:12;:21;:23::i;:::-;:51;;;;:::i;:::-;2948:82;;3073:28;3090:10;3073:16;:28::i;:::-;3049:21;-1:-1:-1;;;;;3049:52:9;;3045:147;;;3126:51;;-1:-1:-1;;;;;35442:31:139;;35424:50;;3143:10:9;;3126:51;;35412:2:139;35397:18;3126:51:9;;;;;;;3045:147;3206:51;:16;3235:21;3206:28;:51::i;:::-;2872:396;;-1:-1:-1;3285:6:9;2482:816;-1:-1:-1;;;;;;2482:816:9:o;2088:226:50:-;2187:10;;-1:-1:-1;;;2187:10:50;;;;;;;;2207:22;;;;;2168:16;2207:22;;;:11;;;;:22;;;;;;:30;;;;2271:26;;2284:13;;2271:26;;-1:-1:-1;;;;;2271:26:50;;;;;;;;;;;2088:226::o;4470:323:11:-;4698:9;;:88;;-1:-1:-1;;;4698:88:11;;-1:-1:-1;;;;;4698:9:11;;;;:22;;4728:9;;4698:88;;4739:7;;4748:6;;4756:9;;4698;;4770:15;;4698:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4470:323;;;;;:::o;6195:914:5:-;6268:13;6325:22;;;:10;:22;;;;;6362:17;;;;;;6358:77;;;-1:-1:-1;6402:22:5;;6195:914;-1:-1:-1;;6195:914:5:o;6358:77::-;6449:17;;;;;;;;;6445:77;;;-1:-1:-1;6489:22:5;;6195:914;-1:-1:-1;;6195:914:5:o;6445:77::-;6532:16;6551:28;6568:10;6551:16;:28::i;:::-;6532:47;-1:-1:-1;6594:13:5;6590:83;;6623:39;;-1:-1:-1;;;6623:39:5;;29822:2:139;6623:39:5;;;29804:21:139;29861:2;29841:18;;;29834:30;29900:31;29880:18;;;29873:59;29949:18;;6623:39:5;29794:179:139;6590:83:5;6699:12;6687:8;:24;6683:83;;-1:-1:-1;6734:21:5;;6195:914;-1:-1:-1;;;6195:914:5:o;6683:83::-;6776:16;6795:28;6812:10;6795:16;:28::i;:::-;6776:47;;6850:12;6838:8;:24;6834:82;;-1:-1:-1;6885:20:5;;6195:914;-1:-1:-1;;;;6195:914:5:o;6834:82::-;6930:26;6945:10;6930:14;:26::i;:::-;:56;;;;-1:-1:-1;2226:4:8;2278:26;;;:14;:26;;;;;2346:25;;2322:21;;;;;:49;6960:26:5;6926:177;;;-1:-1:-1;7009:23:5;;6195:914;-1:-1:-1;;;;6195:914:5:o;6926:177::-;-1:-1:-1;7070:22:5;;6195:914;-1:-1:-1;;;;6195:914:5:o;13131:187:48:-;13187:6;-1:-1:-1;;;;;13213:25:48;;;13205:76;;;;-1:-1:-1;;;13205:76:48;;29013:2:139;13205:76:48;;;28995:21:139;29052:2;29032:18;;;29025:30;29091:34;29071:18;;;29064:62;-1:-1:-1;;;29142:18:139;;;29135:36;29188:19;;13205:76:48;28985:228:139;13205:76:48;-1:-1:-1;13305:5:48;13131:187::o;1293:119:41:-;1378:27;;-1:-1:-1;;1378:27:41;-1:-1:-1;;;;;1378:27:41;;;;;;;1293:119::o;7408:161:5:-;7492:7;7518:22;;;:10;:22;;;;;;;;:42;;;;;;;;:30;;;:42;-1:-1:-1;;;;;7518:42:5;;;;;:44;1170:117:41;413:105:47;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:47;;413:105;-1:-1:-1;413:105:47:o;4948:499:36:-;5113:12;5170:5;5145:21;:30;;5137:81;;;;-1:-1:-1;;;5137:81:36;;27446:2:139;5137:81:36;;;27428:21:139;27485:2;27465:18;;;27458:30;27524:34;27504:18;;;27497:62;-1:-1:-1;;;27575:18:139;;;27568:36;27621:19;;5137:81:36;27418:228:139;5137:81:36;-1:-1:-1;;;;;1465:19:36;;;5228:60;;;;-1:-1:-1;;;5228:60:36;;31004:2:139;5228:60:36;;;30986:21:139;31043:2;31023:18;;;31016:30;31082:31;31062:18;;;31055:59;31131:18;;5228:60:36;30976:179:139;5228:60:36;5300:12;5314:23;5341:6;-1:-1:-1;;;;;5341:11:36;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;17968:769:5:-;18154:7;18205:22;;;:10;:22;;;;;;;;18245:17;18251:10;18245:5;:17::i;:::-;:41;;;;;;-1:-1:-1;;;18245:41:5;;;;;;;;;;18237:89;;;;-1:-1:-1;;;18237:89:5;;27853:2:139;18237:89:5;;;27835:21:139;27892:2;27872:18;;;27865:30;27931:34;27911:18;;;27904:62;-1:-1:-1;;;27982:18:139;;;27975:33;28025:19;;18237:89:5;27825:225:139;18237:89:5;18373:30;;;;;;;;;;;-1:-1:-1;;;;;18373:30:5;;;;;-1:-1:-1;;18354:60:5;;18364:7;;18407:6;18354:9;:60::i;:::-;18337:77;;18424:56;18435:10;18447:7;18456;18465:6;18473;18424:10;:56::i;:::-;18495:13;;18491:216;;18543:7;-1:-1:-1;;;;;18534:54:5;;18552:10;18564:7;18573:6;18581;18534:54;;;;;;;;;:::i;:::-;;;;;;;;18491:216;;;18643:7;-1:-1:-1;;;;;18624:72:5;;18652:10;18664:7;18673:6;18681;18689;18624:72;;;;;;;;;;:::i;:::-;;;;;;;;18724:6;17968:769;-1:-1:-1;;;;;;;17968:769:5:o;1732:276:8:-;1816:4;1868:26;;;:14;:26;;;;;1976:25;;;;1952:21;;;;:49;;1976:25;1952:49;:::i;:::-;1912:36;1919:28;1936:10;1919:16;:28::i;1912:36::-;:89;;;1732:276;-1:-1:-1;;;1732:276:8:o;7561:742:36:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:36;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:36;;;;;;;;:::i;2518:812:8:-;2712:33;2748:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;2794:30:8;;;;:21;;;:30;;;;;;;;;2793:31;2785:83;;;;-1:-1:-1;;;2785:83:8;;27038:2:139;2785:83:8;;;27020:21:139;27077:2;27057:18;;;27050:30;27116:34;27096:18;;;27089:62;-1:-1:-1;;;27167:18:139;;;27160:37;27214:19;;2785:83:8;27010:229:139;2785:83:8;-1:-1:-1;;;;;2878:30:8;;;;;;:21;;;:30;;;;;:37;;-1:-1:-1;;2878:37:8;2911:4;2878:37;;;2930:34;;:7;:34;;;2926:398;;;3009:6;2980:12;:25;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;2926:398:8;;-1:-1:-1;2926:398:8;;3036:30;;;3053:12;3036:30;3032:292;;;3107:6;3082:12;:21;;;:31;;;;;;;:::i;3032:292::-;3134:34;;;3151:16;3134:34;3130:194;;;3213:6;3184:12;:25;;;:35;;;;;;;:::i;3130:194::-;3250:63;;-1:-1:-1;;;3250:63:8;;30180:2:139;3250:63:8;;;30162:21:139;30219:2;30199:18;;;30192:30;30258:34;30238:18;;;30231:62;-1:-1:-1;;;30309:18:139;;;30302:51;30370:19;;3250:63:8;30152:243:139;14:406;78:5;-1:-1:-1;;;;;104:6:139;101:30;98:2;;;134:18;;:::i;:::-;172:57;217:2;196:15;;-1:-1:-1;;192:29:139;223:4;188:40;172:57;:::i;:::-;163:66;;252:6;245:5;238:21;292:3;283:6;278:3;274:16;271:25;268:2;;;309:1;306;299:12;268:2;358:6;353:3;346:4;339:5;335:16;322:43;412:1;405:4;396:6;389:5;385:18;381:29;374:40;88:332;;;;;:::o;425:768::-;479:5;532:3;525:4;517:6;513:17;509:27;499:2;;554:5;547;540:20;499:2;594:6;581:20;620:4;644:60;660:43;700:2;660:43;:::i;:::-;644:60;:::i;:::-;726:3;750:2;745:3;738:15;778:2;773:3;769:12;762:19;;813:2;805:6;801:15;865:3;860:2;854;851:1;847:10;839:6;835:23;831:32;828:41;825:2;;;886:5;879;872:20;825:2;912:5;926:238;940:2;937:1;934:9;926:238;;;1011:3;998:17;1028:31;1053:5;1028:31;:::i;:::-;1072:18;;1110:12;;;;1142;;;;958:1;951:9;926:238;;;-1:-1:-1;1182:5:139;;489:704;-1:-1:-1;;;;;;;489:704:139:o;1198:855::-;1250:5;1303:3;1296:4;1288:6;1284:17;1280:27;1270:2;;1325:5;1318;1311:20;1270:2;1365:6;1352:20;1391:4;1415:60;1431:43;1471:2;1431:43;:::i;1415:60::-;1497:3;1521:2;1516:3;1509:15;1549:2;1544:3;1540:12;1533:19;;1584:2;1576:6;1572:15;1636:3;1631:2;1625;1622:1;1618:10;1610:6;1606:23;1602:32;1599:41;1596:2;;;1657:5;1650;1643:20;1596:2;1683:5;1697:327;1711:2;1708:1;1705:9;1697:327;;;1788:3;1775:17;-1:-1:-1;;;;;1811:11:139;1808:35;1805:2;;;1860:5;1853;1846:20;1805:2;1893:56;1945:3;1940:2;1926:11;1918:6;1914:24;1910:33;1893:56;:::i;:::-;1881:69;;-1:-1:-1;1970:12:139;;;;2002;;;;1729:1;1722:9;1697:327;;2058:693;2112:5;2165:3;2158:4;2150:6;2146:17;2142:27;2132:2;;2187:5;2180;2173:20;2132:2;2227:6;2214:20;2253:4;2277:60;2293:43;2333:2;2293:43;:::i;2277:60::-;2359:3;2383:2;2378:3;2371:15;2411:2;2406:3;2402:12;2395:19;;2446:2;2438:6;2434:15;2498:3;2493:2;2487;2484:1;2480:10;2472:6;2468:23;2464:32;2461:41;2458:2;;;2519:5;2512;2505:20;2458:2;2545:5;2559:163;2573:2;2570:1;2567:9;2559:163;;;2630:17;;2618:30;;2668:12;;;;2700;;;;2591:1;2584:9;2559:163;;2756:375;2807:8;2817:6;2871:3;2864:4;2856:6;2852:17;2848:27;2838:2;;2896:8;2886;2879:26;2838:2;-1:-1:-1;2926:20:139;;-1:-1:-1;;;;;2958:30:139;;2955:2;;;3008:8;2998;2991:26;2955:2;3052:4;3044:6;3040:17;3028:29;;3104:3;3097:4;3088:6;3080;3076:19;3072:30;3069:39;3066:2;;;3121:1;3118;3111:12;3066:2;2828:303;;;;;:::o;3136:228::-;3178:5;3231:3;3224:4;3216:6;3212:17;3208:27;3198:2;;3253:5;3246;3239:20;3198:2;3279:79;3354:3;3345:6;3332:20;3325:4;3317:6;3313:17;3279:79;:::i;3369:156::-;3435:20;;3495:4;3484:16;;3474:27;;3464:2;;3515:1;3512;3505:12;3464:2;3416:109;;;:::o;3530:261::-;3600:6;3653:2;3641:9;3632:7;3628:23;3624:32;3621:2;;;3674:6;3666;3659:22;3621:2;3711:9;3705:16;3730:31;3755:5;3730:31;:::i;3796:1111::-;3950:6;3958;3966;3974;3982;4035:3;4023:9;4014:7;4010:23;4006:33;4003:2;;;4057:6;4049;4042:22;4003:2;4101:9;4088:23;4120:31;4145:5;4120:31;:::i;:::-;4170:5;-1:-1:-1;4227:2:139;4212:18;;4199:32;4240:33;4199:32;4240:33;:::i;:::-;4292:7;-1:-1:-1;4350:2:139;4335:18;;4322:32;-1:-1:-1;;;;;4403:14:139;;;4400:2;;;4435:6;4427;4420:22;4400:2;4463:61;4516:7;4507:6;4496:9;4492:22;4463:61;:::i;:::-;4453:71;;4577:2;4566:9;4562:18;4549:32;4533:48;;4606:2;4596:8;4593:16;4590:2;;;4627:6;4619;4612:22;4590:2;4655:63;4710:7;4699:8;4688:9;4684:24;4655:63;:::i;:::-;4645:73;;4771:3;4760:9;4756:19;4743:33;4727:49;;4801:2;4791:8;4788:16;4785:2;;;4822:6;4814;4807:22;4785:2;;4850:51;4893:7;4882:8;4871:9;4867:24;4850:51;:::i;:::-;4840:61;;;3993:914;;;;;;;;:::o;4912:685::-;5007:6;5015;5023;5031;5084:3;5072:9;5063:7;5059:23;5055:33;5052:2;;;5106:6;5098;5091:22;5052:2;5150:9;5137:23;5169:31;5194:5;5169:31;:::i;:::-;5219:5;-1:-1:-1;5276:2:139;5261:18;;5248:32;5289:33;5248:32;5289:33;:::i;:::-;5341:7;-1:-1:-1;5395:2:139;5380:18;;5367:32;;-1:-1:-1;5450:2:139;5435:18;;5422:32;-1:-1:-1;;;;;5466:30:139;;5463:2;;;5514:6;5506;5499:22;5463:2;5542:49;5583:7;5574:6;5563:9;5559:22;5542:49;:::i;:::-;5532:59;;;5042:555;;;;;;;:::o;5602:754::-;5706:6;5714;5722;5730;5738;5791:3;5779:9;5770:7;5766:23;5762:33;5759:2;;;5813:6;5805;5798:22;5759:2;5857:9;5844:23;5876:31;5901:5;5876:31;:::i;:::-;5926:5;-1:-1:-1;5983:2:139;5968:18;;5955:32;5996:33;5955:32;5996:33;:::i;:::-;6048:7;-1:-1:-1;6102:2:139;6087:18;;6074:32;;-1:-1:-1;6153:2:139;6138:18;;6125:32;;-1:-1:-1;6208:3:139;6193:19;;6180:33;-1:-1:-1;;;;;6225:30:139;;6222:2;;;6273:6;6265;6258:22;6222:2;6301:49;6342:7;6333:6;6322:9;6318:22;6301:49;:::i;6361:325::-;6429:6;6437;6490:2;6478:9;6469:7;6465:23;6461:32;6458:2;;;6511:6;6503;6496:22;6458:2;6555:9;6542:23;6574:31;6599:5;6574:31;:::i;:::-;6624:5;6676:2;6661:18;;;;6648:32;;-1:-1:-1;;;6448:238:139:o;6691:632::-;6779:6;6787;6795;6803;6856:2;6844:9;6835:7;6831:23;6827:32;6824:2;;;6877:6;6869;6862:22;6824:2;6921:9;6908:23;6940:31;6965:5;6940:31;:::i;:::-;6990:5;-1:-1:-1;7042:2:139;7027:18;;7014:32;;-1:-1:-1;7097:2:139;7082:18;;7069:32;-1:-1:-1;;;;;7113:30:139;;7110:2;;;7161:6;7153;7146:22;7110:2;7205:58;7255:7;7246:6;7235:9;7231:22;7205:58;:::i;:::-;6814:509;;;;-1:-1:-1;7282:8:139;-1:-1:-1;;;;6814:509:139:o;7328:543::-;7414:6;7422;7430;7483:2;7471:9;7462:7;7458:23;7454:32;7451:2;;;7504:6;7496;7489:22;7451:2;7548:9;7535:23;7567:31;7592:5;7567:31;:::i;:::-;7617:5;-1:-1:-1;7669:2:139;7654:18;;7641:32;;-1:-1:-1;7724:2:139;7709:18;;7696:32;-1:-1:-1;;;;;7740:30:139;;7737:2;;;7788:6;7780;7773:22;7737:2;7816:49;7857:7;7848:6;7837:9;7833:22;7816:49;:::i;:::-;7806:59;;;7441:430;;;;;:::o;7876:937::-;8046:6;8054;8062;8070;8123:3;8111:9;8102:7;8098:23;8094:33;8091:2;;;8145:6;8137;8130:22;8091:2;8190:9;8177:23;-1:-1:-1;;;;;8260:2:139;8252:6;8249:14;8246:2;;;8281:6;8273;8266:22;8246:2;8309:61;8362:7;8353:6;8342:9;8338:22;8309:61;:::i;:::-;8299:71;;8423:2;8412:9;8408:18;8395:32;8379:48;;8452:2;8442:8;8439:16;8436:2;;;8473:6;8465;8458:22;8436:2;8501:63;8556:7;8545:8;8534:9;8530:24;8501:63;:::i;:::-;8491:73;;8617:2;8606:9;8602:18;8589:32;8573:48;;8646:2;8636:8;8633:16;8630:2;;;8667:6;8659;8652:22;8630:2;;8695:61;8748:7;8737:8;8726:9;8722:24;8695:61;:::i;:::-;8081:732;;;;-1:-1:-1;8685:71:139;;8803:2;8788:18;8775:32;;-1:-1:-1;;;8081:732:139:o;8818:1217::-;8998:6;9006;9014;9022;9075:3;9063:9;9054:7;9050:23;9046:33;9043:2;;;9097:6;9089;9082:22;9043:2;9142:9;9129:23;-1:-1:-1;;;;;9212:2:139;9204:6;9201:14;9198:2;;;9233:6;9225;9218:22;9198:2;9261:61;9314:7;9305:6;9294:9;9290:22;9261:61;:::i;:::-;9251:71;;9375:2;9364:9;9360:18;9347:32;9331:48;;9404:2;9394:8;9391:16;9388:2;;;9425:6;9417;9410:22;9388:2;9453:63;9508:7;9497:8;9486:9;9482:24;9453:63;:::i;:::-;9443:73;;9569:2;9558:9;9554:18;9541:32;9525:48;;9598:2;9588:8;9585:16;9582:2;;;9619:6;9611;9604:22;9582:2;9647:61;9700:7;9689:8;9678:9;9674:24;9647:61;:::i;:::-;9637:71;;9761:2;9750:9;9746:18;9733:32;9717:48;;9790:2;9780:8;9777:16;9774:2;;;9811:6;9803;9796:22;9774:2;-1:-1:-1;9839:24:139;;9894:4;9886:13;;9882:27;-1:-1:-1;9872:2:139;;9928:6;9920;9913:22;9872:2;9956:73;10021:7;10016:2;10003:16;9998:2;9994;9990:11;9956:73;:::i;10040:297::-;10107:6;10160:2;10148:9;10139:7;10135:23;10131:32;10128:2;;;10181:6;10173;10166:22;10128:2;10218:9;10212:16;10271:5;10264:13;10257:21;10250:5;10247:32;10237:2;;10298:6;10290;10283:22;10342:194;10412:6;10465:2;10453:9;10444:7;10440:23;10436:32;10433:2;;;10486:6;10478;10471:22;10433:2;-1:-1:-1;10514:16:139;;10423:113;-1:-1:-1;10423:113:139:o;10541:306::-;10599:6;10652:2;10640:9;10631:7;10627:23;10623:32;10620:2;;;10673:6;10665;10658:22;10620:2;10704:23;;-1:-1:-1;;;;;;10756:32:139;;10746:43;;10736:2;;10808:6;10800;10793:22;10852:284;10938:6;10991:2;10979:9;10970:7;10966:23;10962:32;10959:2;;;11012:6;11004;10997:22;10959:2;11056:9;11043:23;11075:31;11100:5;11075:31;:::i;11141:190::-;11200:6;11253:2;11241:9;11232:7;11228:23;11224:32;11221:2;;;11274:6;11266;11259:22;11221:2;-1:-1:-1;11302:23:139;;11211:120;-1:-1:-1;11211:120:139:o;11535:325::-;11603:6;11611;11664:2;11652:9;11643:7;11639:23;11635:32;11632:2;;;11685:6;11677;11670:22;11632:2;11726:9;11713:23;11703:33;;11786:2;11775:9;11771:18;11758:32;11799:31;11824:5;11799:31;:::i;:::-;11849:5;11839:15;;;11622:238;;;;;:::o;11865:260::-;11931:6;11939;11992:2;11980:9;11971:7;11967:23;11963:32;11960:2;;;12013:6;12005;11998:22;11960:2;12054:9;12041:23;12031:33;;12083:36;12115:2;12104:9;12100:18;12083:36;:::i;:::-;12073:46;;11950:175;;;;;:::o;12130:568::-;12217:6;12225;12233;12241;12294:2;12282:9;12273:7;12269:23;12265:32;12262:2;;;12315:6;12307;12300:22;12262:2;12356:9;12343:23;12333:33;;12385:36;12417:2;12406:9;12402:18;12385:36;:::i;:::-;12375:46;;12472:2;12461:9;12457:18;12444:32;-1:-1:-1;;;;;12491:6:139;12488:30;12485:2;;;12536:6;12528;12521:22;12703:798;12808:6;12816;12824;12832;12840;12893:3;12881:9;12872:7;12868:23;12864:33;12861:2;;;12915:6;12907;12900:22;12861:2;12956:9;12943:23;12933:33;;12985:36;13017:2;13006:9;13002:18;12985:36;:::i;:::-;12975:46;;13072:2;13061:9;13057:18;13044:32;-1:-1:-1;;;;;13136:2:139;13128:6;13125:14;13122:2;;;13157:6;13149;13142:22;13122:2;13201:58;13251:7;13242:6;13231:9;13227:22;13201:58;:::i;:::-;13278:8;;-1:-1:-1;13175:84:139;-1:-1:-1;13366:2:139;13351:18;;13338:32;;-1:-1:-1;13382:16:139;;;13379:2;;;13416:6;13408;13401:22;13506:1007;13636:6;13644;13652;13660;13668;13676;13684;13692;13745:3;13733:9;13724:7;13720:23;13716:33;13713:2;;;13767:6;13759;13752:22;13713:2;13808:9;13795:23;13785:33;;13837:36;13869:2;13858:9;13854:18;13837:36;:::i;:::-;13827:46;;13924:2;13913:9;13909:18;13896:32;-1:-1:-1;;;;;13988:2:139;13980:6;13977:14;13974:2;;;14009:6;14001;13994:22;13974:2;14053:58;14103:7;14094:6;14083:9;14079:22;14053:58;:::i;:::-;14130:8;;-1:-1:-1;14027:84:139;-1:-1:-1;14218:2:139;14203:18;;14190:32;;-1:-1:-1;14234:16:139;;;14231:2;;;14268:6;14260;14253:22;14231:2;;14296:51;14339:7;14328:8;14317:9;14313:24;14296:51;:::i;:::-;14286:61;;;14366:37;14398:3;14387:9;14383:19;14366:37;:::i;:::-;14356:47;;14450:3;14439:9;14435:19;14422:33;14412:43;;14502:3;14491:9;14487:19;14474:33;14464:43;;13703:810;;;;;;;;;;;:::o;14518:468::-;14609:6;14617;14625;14633;14641;14694:3;14682:9;14673:7;14669:23;14665:33;14662:2;;;14716:6;14708;14701:22;14662:2;14757:9;14744:23;14734:33;;14786:36;14818:2;14807:9;14803:18;14786:36;:::i;:::-;14776:46;;14841:36;14873:2;14862:9;14858:18;14841:36;:::i;:::-;14652:334;;;;-1:-1:-1;14831:46:139;;14924:2;14909:18;;14896:32;;-1:-1:-1;14975:3:139;14960:19;14947:33;;14652:334;-1:-1:-1;;14652:334:139:o;14991:304::-;15049:6;15102:2;15090:9;15081:7;15077:23;15073:32;15070:2;;;15123:6;15115;15108:22;15070:2;15167:9;15154:23;-1:-1:-1;;;;;15210:5:139;15206:30;15199:5;15196:41;15186:2;;15256:6;15248;15241:22;15300:463;15353:3;15391:5;15385:12;15418:6;15413:3;15406:19;15444:4;15473:2;15468:3;15464:12;15457:19;;15510:2;15503:5;15499:14;15531:3;15543:195;15557:6;15554:1;15551:13;15543:195;;;15622:13;;-1:-1:-1;;;;;15618:39:139;15606:52;;15678:12;;;;15713:15;;;;15654:1;15572:9;15543:195;;;-1:-1:-1;15754:3:139;;15361:402;-1:-1:-1;;;;;15361:402:139:o;15768:616::-;15819:3;15857:5;15851:12;15884:6;15879:3;15872:19;15910:4;15951:2;15946:3;15942:12;15976:11;16003;15996:18;;16053:6;16050:1;16046:14;16039:5;16035:26;16023:38;;16095:2;16088:5;16084:14;16116:3;16128:230;16142:6;16139:1;16136:13;16128:230;;;16213:5;16207:4;16203:16;16198:3;16191:29;16241:37;16273:4;16264:6;16258:13;16241:37;:::i;:::-;16336:12;;;;16233:45;-1:-1:-1;16301:15:139;;;;16164:1;16157:9;16128:230;;;-1:-1:-1;16374:4:139;;15827:557;-1:-1:-1;;;;;;;15827:557:139:o;16389:437::-;16442:3;16480:5;16474:12;16507:6;16502:3;16495:19;16533:4;16562:2;16557:3;16553:12;16546:19;;16599:2;16592:5;16588:14;16620:3;16632:169;16646:6;16643:1;16640:13;16632:169;;;16707:13;;16695:26;;16741:12;;;;16776:15;;;;16668:1;16661:9;16632:169;;16831:257;16872:3;16910:5;16904:12;16937:6;16932:3;16925:19;16953:63;17009:6;17002:4;16997:3;16993:14;16986:4;16979:5;16975:16;16953:63;:::i;:::-;17070:2;17049:15;-1:-1:-1;;17045:29:139;17036:39;;;;17077:4;17032:50;;16880:208;-1:-1:-1;;16880:208:139:o;17200:273::-;17383:6;17375;17370:3;17357:33;17339:3;17409:16;;17434:15;;;17409:16;17347:126;-1:-1:-1;17347:126:139:o;17478:274::-;17607:3;17645:6;17639:13;17661:53;17707:6;17702:3;17695:4;17687:6;17683:17;17661:53;:::i;:::-;17730:16;;;;;17615:137;-1:-1:-1;;17615:137:139:o;18950:758::-;19331:3;19320:9;19313:22;19294:4;19358:57;19410:3;19399:9;19395:19;19387:6;19358:57;:::i;:::-;19463:9;19455:6;19451:22;19446:2;19435:9;19431:18;19424:50;19497:44;19534:6;19526;19497:44;:::i;:::-;19483:58;;19589:9;19581:6;19577:22;19572:2;19561:9;19557:18;19550:50;19617:42;19652:6;19644;19617:42;:::i;:::-;19609:50;;;19695:6;19690:2;19679:9;19675:18;19668:34;19303:405;;;;;;;:::o;19713:838::-;20130:3;20119:9;20112:22;20093:4;20157:57;20209:3;20198:9;20194:19;20186:6;20157:57;:::i;:::-;20262:9;20254:6;20250:22;20245:2;20234:9;20230:18;20223:50;20296:44;20333:6;20325;20296:44;:::i;:::-;20282:58;;20388:9;20380:6;20376:22;20371:2;20360:9;20356:18;20349:50;20416:42;20451:6;20443;20416:42;:::i;:::-;20489:2;20474:18;;20467:34;;;;-1:-1:-1;;20532:3:139;20517:19;20510:35;20408:50;20102:449;-1:-1:-1;;;20102:449:139:o;20556:910::-;21001:3;20990:9;20983:22;20964:4;21028:57;21080:3;21069:9;21065:19;21057:6;21028:57;:::i;:::-;21133:9;21125:6;21121:22;21116:2;21105:9;21101:18;21094:50;21167:44;21204:6;21196;21167:44;:::i;:::-;21153:58;;21259:9;21251:6;21247:22;21242:2;21231:9;21227:18;21220:50;21287:42;21322:6;21314;21287:42;:::i;:::-;21360:2;21345:18;;21338:34;;;;-1:-1:-1;;21403:3:139;21388:19;;21381:35;;;;21447:3;21432:19;;;21425:35;21279:50;20973:493;-1:-1:-1;;;20973:493:139:o;23982:346::-;24132:2;24117:18;;24165:1;24154:13;;24144:2;;24210:10;24205:3;24201:20;24198:1;24191:31;24245:4;24242:1;24235:15;24273:4;24270:1;24263:15;24144:2;24297:25;;;24099:229;:::o;24333:219::-;24482:2;24471:9;24464:21;24445:4;24502:44;24542:2;24531:9;24527:18;24519:6;24502:44;:::i;24910:348::-;25112:2;25094:21;;;25151:2;25131:18;;;25124:30;-1:-1:-1;;;25185:2:139;25170:18;;25163:54;25249:2;25234:18;;25084:174::o;25623:397::-;25825:2;25807:21;;;25864:2;25844:18;;;25837:30;25903:34;25898:2;25883:18;;25876:62;-1:-1:-1;;;25969:2:139;25954:18;;25947:31;26010:3;25995:19;;25797:223::o;29218:397::-;29420:2;29402:21;;;29459:2;29439:18;;;29432:30;29498:34;29493:2;29478:18;;29471:62;-1:-1:-1;;;29564:2:139;29549:18;;29542:31;29605:3;29590:19;;29392:223::o;31760:1885::-;32332:4;32361:3;32391:6;32380:9;32373:25;32417:2;32484:1;32480;32475:3;32471:11;32467:19;32459:6;32455:32;32450:2;32439:9;32435:18;32428:60;32524:2;32519;32508:9;32504:18;32497:30;32550:56;32602:2;32591:9;32587:18;32579:6;32550:56;:::i;:::-;32536:70;;32654:9;32646:6;32642:22;32637:2;32626:9;32622:18;32615:50;32688:44;32725:6;32717;32688:44;:::i;:::-;32674:58;;32781:9;32773:6;32769:22;32763:3;32752:9;32748:19;32741:51;32812:6;32847;32841:13;32878:6;32870;32863:22;32913:2;32905:6;32901:15;32894:22;;32972:2;32962:6;32959:1;32955:14;32947:6;32943:27;32939:36;33010:2;33002:6;32998:15;33031:4;33044:251;33058:6;33055:1;33052:13;33044:251;;;33148:2;33144:7;33135:6;33127;33123:19;33119:33;33114:3;33107:46;33176:39;33208:6;33199;33193:13;33176:39;:::i;:::-;33273:12;;;;33166:49;-1:-1:-1;33238:15:139;;;;33080:1;33073:9;33044:251;;;33048:3;;33344:9;33336:6;33332:22;33326:3;33315:9;33311:19;33304:51;33378:42;33413:6;33405;33378:42;:::i;:::-;33364:56;;;;;;33429:46;33470:3;33459:9;33455:19;33447:6;-1:-1:-1;;;;;17158:30:139;17146:43;;17136:59;33429:46;-1:-1:-1;;;;;17158:30:139;;33525:3;33510:19;;17146:43;33579:9;33571:6;33567:22;33561:3;33550:9;33546:19;33539:51;33607:32;33632:6;33624;33607:32;:::i;:::-;33599:40;32341:1304;-1:-1:-1;;;;;;;;;;;;32341:1304:139:o;34227:441::-;34456:6;34445:9;34438:25;34511:4;34503:6;34499:17;34494:2;34483:9;34479:18;34472:45;34553:6;34548:2;34537:9;34533:18;34526:34;34596:3;34591:2;34580:9;34576:18;34569:31;34419:4;34617:45;34657:3;34646:9;34642:19;34634:6;34617:45;:::i;34673:602::-;34948:6;34937:9;34930:25;35003:4;34995:6;34991:17;34986:2;34975:9;34971:18;34964:45;35045:6;35040:2;35029:9;35025:18;35018:34;35088:3;35083:2;35072:9;35068:18;35061:31;34911:4;35115:45;35155:3;35144:9;35140:19;35132:6;35115:45;:::i;:::-;35209:9;35201:6;35197:22;35191:3;35180:9;35176:19;35169:51;35237:32;35262:6;35254;35237:32;:::i;:::-;35229:40;34920:355;-1:-1:-1;;;;;;;;34920:355:139:o;35789:275::-;35860:2;35854:9;35925:2;35906:13;;-1:-1:-1;;35902:27:139;35890:40;;-1:-1:-1;;;;;35945:34:139;;35981:22;;;35942:62;35939:2;;;36007:18;;:::i;:::-;36043:2;36036:22;35834:230;;-1:-1:-1;35834:230:139:o;36069:183::-;36129:4;-1:-1:-1;;;;;36154:6:139;36151:30;36148:2;;;36184:18;;:::i;:::-;-1:-1:-1;36229:1:139;36225:14;36241:4;36221:25;;36138:114::o;36257:128::-;36297:3;36328:1;36324:6;36321:1;36318:13;36315:2;;;36334:18;;:::i;:::-;-1:-1:-1;36370:9:139;;36305:80::o;36390:236::-;36429:3;-1:-1:-1;;;;;36502:2:139;36499:1;36495:10;36532:2;36529:1;36525:10;36563:3;36559:2;36555:12;36550:3;36547:21;36544:2;;;36571:18;;:::i;:::-;36607:13;;36437:189;-1:-1:-1;;;;36437:189:139:o;36631:125::-;36671:4;36699:1;36696;36693:8;36690:2;;;36704:18;;:::i;:::-;-1:-1:-1;36741:9:139;;36680:76::o;36761:258::-;36833:1;36843:113;36857:6;36854:1;36851:13;36843:113;;;36933:11;;;36927:18;36914:11;;;36907:39;36879:2;36872:10;36843:113;;;36974:6;36971:1;36968:13;36965:2;;;37009:1;37000:6;36995:3;36991:16;36984:27;36965:2;;36814:205;;;:::o;37024:380::-;37103:1;37099:12;;;;37146;;;37167:2;;37221:4;37213:6;37209:17;37199:27;;37167:2;37274;37266:6;37263:14;37243:18;37240:38;37237:2;;;37320:10;37315:3;37311:20;37308:1;37301:31;37355:4;37352:1;37345:15;37383:4;37380:1;37373:15;37237:2;;37079:325;;;:::o;37409:135::-;37448:3;-1:-1:-1;;37469:17:139;;37466:2;;;37489:18;;:::i;:::-;-1:-1:-1;37536:1:139;37525:13;;37456:88::o;37549:127::-;37610:10;37605:3;37601:20;37598:1;37591:31;37641:4;37638:1;37631:15;37665:4;37662:1;37655:15;37681:127;37742:10;37737:3;37733:20;37730:1;37723:31;37773:4;37770:1;37763:15;37797:4;37794:1;37787:15;37813:131;-1:-1:-1;;;;;37888:31:139;;37878:42;;37868:2;;37934:1;37931;37924:12"},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","lateQuorumVoteExtension()":"32b8113e","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalEta(uint256)":"ab58fb8e","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","proposalVotes(uint256)":"544ffc9c","propose(address[],uint256[],bytes[],string)":"7d5e81e2","queue(address[],uint256[],bytes[],bytes32)":"160cbed7","quorum(uint256)":"f8ce560a","registry()":"7b103999","relay(address,uint256,bytes)":"c28bc2fa","setLateQuorumVoteExtension(uint64)":"d07f91e9","setProposalThreshold(uint256)":"ece40cc1","setVotingDelay(uint256)":"70b0f660","setVotingPeriod(uint256)":"ea0217cf","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","timelock()":"d33219b4","updateQuorum(uint256)":"35680dc2","updateTimelock(address)":"a890c910","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"contract TimelockController\",\"name\":\"_timelock\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"initialVoteExtension\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"initialVotingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialProposalThreshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialQuorum\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"oldVoteExtension\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVoteExtension\",\"type\":\"uint64\"}],\"name\":\"LateQuorumVoteExtensionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"extendedDeadline\",\"type\":\"uint64\"}],\"name\":\"ProposalExtended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldQuorum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"QuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldTimelock\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"TimelockChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lateQuorumVoteExtension\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVoteExtension\",\"type\":\"uint64\"}],\"name\":\"setLateQuorumVoteExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"setProposalThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"updateQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TimelockController\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"updateTimelock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:security-contact\":\"security@mahadao.com\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"See {IGovernor-hasVoted}.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"lateQuorumVoteExtension()\":{\"details\":\"Returns the current value of the vote extension parameter: the number of blocks that are required to pass from the time a proposal reaches quorum until its voting period ends.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalEta(uint256)\":{\"details\":\"Public accessor to check the eta of a queued proposal\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts.\"},\"queue(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Function to queue a proposal to the timelock.\"},\"quorum(uint256)\":{\"details\":\"Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`.\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"setLateQuorumVoteExtension(uint64)\":{\"details\":\"Changes the {lateQuorumVoteExtension}. This operation can only be performed by the governance executor, generally through a governance proposal. Emits a {LateQuorumVoteExtensionSet} event.\"},\"setProposalThreshold(uint256)\":{\"details\":\"Update the proposal threshold. This operation can only be performed through a governance proposal. Emits a {ProposalThresholdSet} event.\"},\"setVotingDelay(uint256)\":{\"details\":\"Update the voting delay. This operation can only be performed through a governance proposal. Emits a {VotingDelaySet} event.\"},\"setVotingPeriod(uint256)\":{\"details\":\"Update the voting period. This operation can only be performed through a governance proposal. Emits a {VotingPeriodSet} event.\"},\"timelock()\":{\"details\":\"Public accessor to check the address of the timelock\"},\"updateQuorum(uint256)\":{\"details\":\"Changes the quorum. Emits a {QuorumUpdated} event. Requirements: - Must be called through a governance proposal.\"},\"updateTimelock(address)\":{\"details\":\"Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MAHAXGovernor.sol\":\"MAHAXGovernor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/TimelockController.sol\":{\"keccak256\":\"0x6d9ec0025a3e257dee17550c0c6ce94ff200d1a646d2ebe951309ad179f0df18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dabd0b4e8ddaa72eb291e3f1511374464fd99ca8aa2fe397423294a0fb8e4f18\",\"dweb:/ipfs/QmSnvxGEug7UxvJJbgvUAYKsT1gw31M19YKgPRfXtMN3he\"]},\"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0xcb82f3524bea8631d077934fe0a250d321440a1528135c8adaf896bcdf92351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0733314f732fb18258801143f3809257045885e364e228289cfab1067a2cb6\",\"dweb:/ipfs/QmWXjD2MMmATDcxDN8tThnwEHXypanpQJTAiZWdiEBVra8\"]},\"@openzeppelin/contracts/governance/extensions/GovernorPreventLateQuorum.sol\":{\"keccak256\":\"0x3e1bfe525856a653adc11e9bcc7f696388836367a7a44d61ef4bfa39f77c2956\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e11a995fe4320817af5ce55bc3b82ce25c65485cb9f86271489d2bd8bbd27\",\"dweb:/ipfs/QmZj9YxUVNGe68cADcoiuPGW2M5mWf3SedCdfdzabfVowR\"]},\"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0xab3781f09dfb447d0c2f5bbb2aafc9ff86333f16c61580ab85d7c8a87491eab9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58571bc89cd0e54fa9af6b41e53e2110c6f5767eb691af8ad88759dbde07b3fd\",\"dweb:/ipfs/QmbeoatuYT5ukpGLWZh4DHb7yrC3TpBbm9hDdWwkdUuUy4\"]},\"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\":{\"keccak256\":\"0xde79bde0691601228cdf27fc2fdc85cb01eea836d41780e6e73f778e0a886a5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490f0e0d12ff73a9f891930c842630d4d50f0088562801d635a68319a772e19\",\"dweb:/ipfs/QmeSBTTHkxiXQ5hnJyhpCGAA42XFGfNPZxfRnkK28x4Aii\"]},\"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\":{\"keccak256\":\"0xf818ee82b0faf7938ced9fcc851600b17202c8f6b1b33e01035702cadda684bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aaea7133e6c40ce2c9c2235c72ffec8befbe50c6df0414565675f2648562484\",\"dweb:/ipfs/QmSvUuPuorTqpscvfmhV4PCJCjJDFpMmjcxTnJUB64cj98\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]},\"contracts/MAHAXGovernor.sol\":{\"keccak256\":\"0xc5649847077edbdc26944f794db25ba876a7ccaac863bba0e5e120323c65f538\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03fa3a6b33694305368a0b0c9d8507929f2043ed1e0d67ee1c60a6c373f4248b\",\"dweb:/ipfs/Qmb1bjFf32sDo33W5htzxUK5xBuYQKjzLHLb8KP8uWttkD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/MAHAXLocker.sol":{"MAHAXLocker":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_royaltyRcv","type":"address"},{"internalType":"address","name":"_renderingContract","type":"address"},{"internalType":"uint96","name":"_royaltyFeeNumerator","type":"uint96"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"locktime","type":"uint256"},{"indexed":false,"internalType":"enum INFTLocker.DepositType","name":"deposit_type","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"Supply","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIGRATION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_block","type":"uint256"}],"name":"balanceOfAtNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"balanceOfNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_t","type":"uint256"}],"name":"balanceOfNFTAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"bool","name":"_stakeNFT","type":"bool"}],"name":"createLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bool","name":"_stakeNFT","type":"bool"}],"name":"createLockFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"depositFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"emergencyRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getLastUserSlope","outputs":[{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inBootstrapMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"increaseAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"}],"name":"increaseUnlockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"isApprovedOrOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"locked","outputs":[{"internalType":"int128","name":"amount","type":"int128"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"lockedEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_from","type":"uint256"},{"internalType":"uint256","name":"_to","type":"uint256"}],"name":"merge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"migrateTokenFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minLockAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownershipChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"pointHistory","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct INFTLocker.Point","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renderingContract","outputs":[{"internalType":"contract ITokenURIGenerator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minLockAmount","type":"uint256"}],"name":"setMinLockAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITokenURIGenerator","name":"_contract","type":"address"}],"name":"setRenderingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_royaltyRcv","type":"address"},{"internalType":"uint96","name":"_royaltyFeeNumerator","type":"uint96"}],"name":"setRoyaltyInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"slopeChanges","outputs":[{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stopBootstrapMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_tokenIndex","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","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":"uint256","name":"_block","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"t","type":"uint256"}],"name":"totalSupplyAtT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyWithoutDecay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"},{"internalType":"uint256[]","name":"_value","type":"uint256[]"},{"internalType":"uint256[]","name":"_lockDuration","type":"uint256[]"},{"internalType":"bool","name":"_stakeNFT","type":"bool"}],"name":"uploadUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userPointEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"},{"internalType":"uint256","name":"loc","type":"uint256"}],"name":"userPointHistory","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct INFTLocker.Point","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"userPointHistoryTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"votingPowerOf","outputs":[{"internalType":"uint256","name":"_power","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1527:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"327:433:139","statements":[{"body":{"nodeType":"YulBlock","src":"374:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"383:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"391:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"376:6:139"},"nodeType":"YulFunctionCall","src":"376:22:139"},"nodeType":"YulExpressionStatement","src":"376:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"348:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"357:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"344:3:139"},"nodeType":"YulFunctionCall","src":"344:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"369:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"340:3:139"},"nodeType":"YulFunctionCall","src":"340:33:139"},"nodeType":"YulIf","src":"337:2:139"},{"nodeType":"YulAssignment","src":"409:50:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"449:9:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"419:29:139"},"nodeType":"YulFunctionCall","src":"419:40:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"409:6:139"}]},{"nodeType":"YulAssignment","src":"468:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"512:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"523:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"508:3:139"},"nodeType":"YulFunctionCall","src":"508:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"478:29:139"},"nodeType":"YulFunctionCall","src":"478:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"468:6:139"}]},{"nodeType":"YulAssignment","src":"536:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"580:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"591:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"576:3:139"},"nodeType":"YulFunctionCall","src":"576:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"546:29:139"},"nodeType":"YulFunctionCall","src":"546:49:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"536:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"604:38:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"627:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"638:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"623:3:139"},"nodeType":"YulFunctionCall","src":"623:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"617:5:139"},"nodeType":"YulFunctionCall","src":"617:25:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"608:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"704:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"713:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"721:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"706:6:139"},"nodeType":"YulFunctionCall","src":"706:22:139"},"nodeType":"YulExpressionStatement","src":"706:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"664:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"690:2:139","type":"","value":"96"},{"kind":"number","nodeType":"YulLiteral","src":"694:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"686:3:139"},"nodeType":"YulFunctionCall","src":"686:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"698:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"682:3:139"},"nodeType":"YulFunctionCall","src":"682:18:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"671:3:139"},"nodeType":"YulFunctionCall","src":"671:30:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"661:2:139"},"nodeType":"YulFunctionCall","src":"661:41:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"654:6:139"},"nodeType":"YulFunctionCall","src":"654:49:139"},"nodeType":"YulIf","src":"651:2:139"},{"nodeType":"YulAssignment","src":"739:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"749:5:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"739:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint96_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"280:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"292:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"300:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"308:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"316:6:139","type":""}],"src":"196:564:139"},{"body":{"nodeType":"YulBlock","src":"939:232:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"956:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"967:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"949:6:139"},"nodeType":"YulFunctionCall","src":"949:21:139"},"nodeType":"YulExpressionStatement","src":"949:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"990:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1001:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"986:3:139"},"nodeType":"YulFunctionCall","src":"986:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1006:2:139","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"979:6:139"},"nodeType":"YulFunctionCall","src":"979:30:139"},"nodeType":"YulExpressionStatement","src":"979:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1029:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1040:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1025:3:139"},"nodeType":"YulFunctionCall","src":"1025:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1045:34:139","type":"","value":"ERC2981: royalty fee will exceed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1018:6:139"},"nodeType":"YulFunctionCall","src":"1018:62:139"},"nodeType":"YulExpressionStatement","src":"1018:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1100:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1111:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1096:3:139"},"nodeType":"YulFunctionCall","src":"1096:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1116:12:139","type":"","value":" salePrice"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1089:6:139"},"nodeType":"YulFunctionCall","src":"1089:40:139"},"nodeType":"YulExpressionStatement","src":"1089:40:139"},{"nodeType":"YulAssignment","src":"1138:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1150:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1161:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1146:3:139"},"nodeType":"YulFunctionCall","src":"1146:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1138:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"916:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"930:4:139","type":""}],"src":"765:406:139"},{"body":{"nodeType":"YulBlock","src":"1350:175:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1367:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1378:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1360:6:139"},"nodeType":"YulFunctionCall","src":"1360:21:139"},"nodeType":"YulExpressionStatement","src":"1360:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1401:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1412:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1397:3:139"},"nodeType":"YulFunctionCall","src":"1397:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:139","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1390:6:139"},"nodeType":"YulFunctionCall","src":"1390:30:139"},"nodeType":"YulExpressionStatement","src":"1390:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:139"},"nodeType":"YulFunctionCall","src":"1436:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1456:27:139","type":"","value":"ERC2981: invalid receiver"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:139"},"nodeType":"YulFunctionCall","src":"1429:55:139"},"nodeType":"YulExpressionStatement","src":"1429:55:139"},{"nodeType":"YulAssignment","src":"1493:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1505:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1516:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1501:3:139"},"nodeType":"YulFunctionCall","src":"1501:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1493:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1327:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1341:4:139","type":""}],"src":"1176:349:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint96_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n        let value := mload(add(headStart, 96))\n        if iszero(eq(value, and(value, sub(shl(96, 1), 1)))) { revert(value3, value3) }\n        value3 := value\n    }\n    function abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC2981: royalty fee will exceed\")\n        mstore(add(headStart, 96), \" salePrice\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC2981: invalid receiver\")\n        tail := add(headStart, 96)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526004805460ff60a01b1916600160a01b17905568055de6a779bbac0000600e553480156200003157600080fd5b5060405162004fbe38038062004fbe8339810160408190526200005491620002ec565b60016000908155600480546001600160a01b0319166001600160a01b038716179055808052600a602052437f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e555427f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e455620000d0903362000132565b620000fc7f9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829e3362000132565b62000108838262000142565b50600580546001600160a01b0319166001600160a01b039290921691909117905550620003559050565b6200013e828262000247565b5050565b6127106001600160601b0382161115620001b65760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b0382166200020e5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620001ad565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600255565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166200013e5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b80516001600160a01b0381168114620002e757600080fd5b919050565b6000806000806080858703121562000302578384fd5b6200030d85620002cf565b93506200031d60208601620002cf565b92506200032d60408601620002cf565b60608601519092506001600160601b03811681146200034a578182fd5b939692955090935050565b614c5980620003656000396000f3fe608060405234801561001057600080fd5b506004361061035b5760003560e01c80636352211e116101ca578063b45a3c0e11610105578063d1c2babb116100a8578063d1c2babb146108c9578063d490dbca146108dc578063d547741f146108e4578063d60371a7146108f7578063e0514aba1461090a578063e58f59471461091d578063e7e242d41461093d578063e985e9c514610950578063f52a36f71461098c57600080fd5b8063b45a3c0e146107fb578063b7f1d0721461084f578063b88d4fde14610862578063baa51f8614610875578063bcc3f3bd14610888578063c2c4c5c11461089b578063c7fecbcc146108a3578063c87b56dd146108b657600080fd5b806391d148541161016d57806391d148541461075d57806395d89b4114610770578063981b24d0146107945780639d507b8b146107a7578063a217fddf146107ba578063a22cb465146107c2578063b128fd86146107d5578063b2383e55146107e857600080fd5b80636352211e146106cf57806370a08231146106e25780637116c60c146106f55780637b103999146107085780638ad4c4471461071b5780638c2c9baf1461072e5780638df4b13b14610741578063900cf0cf1461075457600080fd5b8063248a9ca31161029a57806342842e0e1161023d57806342842e0e146105d1578063430c2081146105e457806344acb42a146105f75780634bd2d9b31461064857806354fd4d501461065c5780635633e0a61461068057806357e871e7146106a6578063626944df146106ac57600080fd5b8063248a9ca3146104ee5780632a55205a146105125780632e1a7d4d146105335780632f2ff15d146105465780632f745c5914610559578063313ce5671461058f57806336568abe146105a957806339c6d4cb146105bc57600080fd5b8063095ea7b311610302578063095ea7b31461045f5780630a2abdb3146104725780630ec84dda146104855780630f68ae401461049857806318160ddd146104ab5780632277cdc2146104b357806323857d51146104bb57806323b872dd146104db57600080fd5b806301ffc9a71461036057806302fa7c4714610388578063045f70191461039d578063047fc9aa146103b057806305ae4f8c146103c757806306fdde03146103da578063081812fc146104155780630880427514610456575b600080fd5b61037361036e3660046143f4565b6109af565b60405190151581526020015b60405180910390f35b61039b61039636600461426e565b610a10565b005b61039b6103ab3660046140c5565b610a4e565b6103b960065481565b60405190815260200161037f565b6103b96103d53660046144b6565b610cbd565b6104086040518060400160405280600f81526020016e131bd8dad959081350521048139195608a1b81525081565b60405161037f919061466c565b61043e6104233660046143b8565b6000908152601160205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161037f565b6103b9600e5481565b61039b61046d366004614243565b610cfd565b6103b961048036600461450f565b610d07565b61039b6104933660046144b6565b610d4d565b61039b6104a63660046143b8565b610e5d565b6103b9610e89565b61039b610e99565b6103b96104c93660046143b8565b60086020526000908152604090205481565b61039b6104e9366004614135565b610ecf565b6103b96104fc3660046143b8565b6000908152600160208190526040909120015490565b6105256105203660046144b6565b610ee0565b60405161037f929190614653565b61039b6105413660046143b8565b610f8c565b61039b6105543660046143d0565b6112ce565b6103b9610567366004614243565b6001600160a01b03919091166000908152601360209081526040808320938352929052205490565b610597601281565b60405160ff909116815260200161037f565b61039b6105b73660046143d0565b6112f4565b6103b9600080516020614be483398151915281565b61039b6105df366004614135565b61136e565b6103736105f2366004614243565b611389565b61060a6106053660046144b6565b61139c565b60405161037f919060006080820190508251600f0b82526020830151600f0b6020830152604083015160408301526060830151606083015292915050565b60045461037390600160a01b900460ff1681565b610408604051806040016040528060058152602001640312e302e360dc1b81525081565b61069361068e3660046143b8565b611426565b604051600f9190910b815260200161037f565b436103b9565b6103b96106ba3660046143b8565b60009081526007602052604090206001015490565b61043e6106dd3660046143b8565b611477565b6103b96106f03660046140c5565b611494565b6103b96107033660046143b8565b61149f565b60045461043e906001600160a01b031681565b61060a6107293660046143b8565b611507565b6103b961073c3660046144b6565b611566565b6103b961074f3660046144d7565b611572565b6103b960095481565b61037361076b3660046143d0565b6115b7565b6104086040518060400160405280600581526020016409a829082b60db1b81525081565b6103b96107a23660046143b8565b6115e2565b61039b6107b53660046144b6565b6117a2565b6103b9600081565b61039b6107d0366004614216565b6119b5565b61039b6107e33660046142a6565b611a48565b61039b6107f63660046144b6565b611b67565b61082f6108093660046143b8565b600760205260009081526040902080546001820154600290920154600f9190910b919083565b60408051600f9490940b845260208401929092529082015260600161037f565b61039b61085d3660046140c5565b611c6d565b61039b610870366004614175565b611cb6565b6103736108833660046143b8565b611df0565b6103b96108963660046140c5565b611dfb565b61039b611e73565b60055461043e906001600160a01b031681565b6104086108c43660046143b8565b611ec1565b61039b6108d73660046144b6565b611f42565b6006546103b9565b61039b6108f23660046143d0565b6121c5565b6103b9610905366004614558565b6121eb565b6103b96109183660046144b6565b612230565b6103b961092b3660046143b8565b600c6020526000908152604090205481565b6103b961094b3660046143b8565b61223c565b61037361095e3660046140fd565b6001600160a01b03918216600090815260156020908152604080832093909416825291909152205460ff1690565b61069361099a3660046143b8565b600d60205260009081526040902054600f0b81565b60006301ffc9a760e01b6001600160e01b0319831614806109e057506380ac58cd60e01b6001600160e01b03198316145b806109fb5750635b5e139f60e01b6001600160e01b03198316145b80610a0a5750610a0a82612264565b92915050565b610a1b6000336115b7565b610a405760405162461bcd60e51b8152600401610a3790614818565b60405180910390fd5b610a4a8282612289565b5050565b610a596000336115b7565b610a755760405162461bcd60e51b8152600401610a3790614818565b600454600160a01b900460ff16610ac65760405162461bcd60e51b81526020600482015260156024820152746e6f7420696e20626f6f747374726170206d6f646560581b6044820152606401610a37565b6004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b158015610b0857600080fd5b505afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4091906140e1565b6001600160a01b031663a9059cbb82600460009054906101000a90046001600160a01b03166001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd591906140e1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b158015610c1657600080fd5b505afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e919061449e565b6040518363ffffffff1660e01b8152600401610c6b929190614653565b602060405180830381600087803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a919061439c565b6000828152600b6020526040812082633b9aca008110610ced57634e487b7160e01b600052603260045260246000fd5b6003020160010154905092915050565b610a4a8282612382565b600060026000541415610d2c5760405162461bcd60e51b8152600401610a37906147e1565b6002600055610d3f858585600186612500565b600160005595945050505050565b60026000541415610d705760405162461bcd60e51b8152600401610a37906147e1565b600260008181558381526007602090815260409182902082516060810184528154600f90810b810b900b81526001820154928101929092529092015490820152610db983612714565b15610dd65760405162461bcd60e51b8152600401610a37906146b6565b60008211610df65760405162461bcd60e51b8152600401610a37906146d6565b60008160000151600f0b13610e1d5760405162461bcd60e51b8152600401610a3790614765565b42816020015111610e405760405162461bcd60e51b8152600401610a379061467f565b610e538383600084600060016000612819565b5050600160005550565b610e686000336115b7565b610e845760405162461bcd60e51b8152600401610a3790614818565b600e55565b6000610e944261149f565b905090565b610ea46000336115b7565b610ec05760405162461bcd60e51b8152600401610a3790614818565b6004805460ff60a01b19169055565b610edb83838333612c3c565b505050565b60008281526003602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610f555750604080518082019091526002546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610f74906001600160601b031687614a45565b610f7e919061499f565b915196919550909350505050565b60026000541415610faf5760405162461bcd60e51b8152600401610a37906147e1565b6002600055610fbe3382612d08565b610fda5760405162461bcd60e51b8152600401610a3790614730565b610fe381612714565b156110005760405162461bcd60e51b8152600401610a37906146b6565b60008181526007602090815260409182902082516060810184528154600f90810b810b900b81526001820154928101839052600290910154928101929092524210156110875760405162461bcd60e51b8152602060048201526016602482015275546865206c6f636b206469646e27742065787069726560501b6044820152606401610a37565b80516040805160608101825260008082526020808301828152838501838152888452600790925293909120915182546001600160801b0319166001600160801b03600f92830b16178355925160018301555160029091015560065491900b906110f08282614af3565b600681905550611121848460405180606001604052806000600f0b8152602001600081526020016000815250612d6b565b6004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b15801561116357600080fd5b505afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906140e1565b6001600160a01b031663a9059cbb33846040518363ffffffff1660e01b81526004016111c8929190614653565b602060405180830381600087803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a919061439c565b61123457634e487b7160e01b600052600160045260246000fd5b61123d846133a4565b60408051858152602081018490524281830152905133917f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca94919081900360600190a27f5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5c816112ab8482614af3565b6040805192835260208301919091520160405180910390a1505060016000555050565b600082815260016020819052604090912001546112ea81613421565b610edb838361342e565b6001600160a01b03811633146113645760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a37565b610a4a8282613499565b610edb83838360405180602001604052806000815250611cb6565b60006113958383612d08565b9392505050565b6113a4614018565b6000838152600b6020526040902082633b9aca0081106113d457634e487b7160e01b600052603260045260246000fd5b60408051608081018252600392909202929092018054600f81810b810b810b8452600160801b909104810b810b900b602083015260018101549282019290925260029091015460608201529392505050565b6000818152600c6020908152604080832054600b909252822081633b9aca00811061146157634e487b7160e01b600052603260045260246000fd5b6003020154600160801b9004600f0b9392505050565b6000818152601060205260408120546001600160a01b0316610a0a565b6000610a0a82613500565b6009546000818152600a6020908152604080832081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608201529091906114ff818561351b565b949350505050565b61150f614018565b506000908152600a602090815260409182902082516080810184528154600f81810b810b810b8352600160801b909104810b810b900b92810192909252600181015492820192909252600290910154606082015290565b60006113958383613625565b600061158c600080516020614be4833981519152336115b7565b6115a85760405162461bcd60e51b8152600401610a3790614795565b6114ff84848460006001612500565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60004382111561160257634e487b7160e01b600052600160045260246000fd5b60095460006116118483613946565b6000818152600a6020908152604080832081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b9381019390935260018101549183019190915260020154606082015291925083831015611730576000600a8161167c866001614949565b8152602080820192909252604090810160002081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608083018290528501519192501461172a57826060015181606001516116f09190614af3565b836040015182604001516117049190614af3565b6060850151611713908a614af3565b61171d9190614a45565b611727919061499f565b91505b5061177f565b4382606001511461177f57606082015161174a9043614af3565b60408301516117599042614af3565b60608401516117689089614af3565b6117729190614a45565b61177c919061499f565b90505b611798828284604001516117939190614949565b61351b565b9695505050505050565b600260005414156117c55760405162461bcd60e51b8152600401610a37906147e1565b60026000556117d43383612d08565b6117f05760405162461bcd60e51b8152600401610a3790614730565b600082815260076020908152604080832081516060810183528154600f90810b810b900b815260018201549381019390935260020154908201529062093a808061183a8542614949565b611844919061499f565b61184e9190614a45565b9050428260200151116118925760405162461bcd60e51b815260206004820152600c60248201526b131bd8dac8195e1c1a5c995960a21b6044820152606401610a37565b60008260000151600f0b136118dd5760405162461bcd60e51b8152602060048201526011602482015270139bdd1a1a5b99c81a5cc81b1bd8dad959607a1b6044820152606401610a37565b816020015181116119305760405162461bcd60e51b815260206004820152601f60248201527f43616e206f6e6c7920696e637265617365206c6f636b206475726174696f6e006044820152606401610a37565b61193e630784ce0042614949565b81111561195d5760405162461bcd60e51b8152600401610a37906146f9565b630784ce0082604001516119719190614949565b8111156119905760405162461bcd60e51b8152600401610a37906146f9565b6119aa8460008385600360006119a58b612714565b612819565b505060016000555050565b6001600160a01b0382163314156119dc57634e487b7160e01b600052600160045260246000fd5b3360008181526015602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611a60600080516020614be4833981519152336115b7565b611a7c5760405162461bcd60e51b8152600401610a3790614795565b8151835114611a9d5760405162461bcd60e51b8152600401610a37906147bb565b8251845114611abe5760405162461bcd60e51b8152600401610a37906147bb565b60005b8451811015611b6057611b4d848281518110611aed57634e487b7160e01b600052603260045260246000fd5b6020026020010151848381518110611b1557634e487b7160e01b600052603260045260246000fd5b6020026020010151878481518110611b3d57634e487b7160e01b600052603260045260246000fd5b6020026020010151600086612500565b5080611b5881614b4d565b915050611ac1565b5050505050565b60026000541415611b8a5760405162461bcd60e51b8152600401610a37906147e1565b6002600055611b993383612d08565b611bb55760405162461bcd60e51b8152600401610a3790614730565b60008281526007602090815260409182902082516060810184528154600f90810b810b900b8152600182015492810192909252600201549181019190915281611c0e57634e487b7160e01b600052600160045260246000fd5b60008160000151600f0b13611c355760405162461bcd60e51b8152600401610a3790614765565b42816020015111611c585760405162461bcd60e51b8152600401610a379061467f565b610e538383600084600260016119a58a612714565b611c786000336115b7565b611c945760405162461bcd60e51b8152600401610a3790614818565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611cc284848433612c3c565b823b15611dea57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611cfb903390889087908790600401614620565b602060405180830381600087803b158015611d1557600080fd5b505af1925050508015611d45575060408051601f3d908101601f19168201909252611d4291810190614410565b60015b611b60573d808015611d73576040519150601f19603f3d011682016040523d82523d6000602084013e611d78565b606091505b508051611de25760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610a37565b805181602001fd5b50505050565b6000610a0a82612714565b6000805b6001600160a01b038316600090815260126020526040902054811015611e6d576001600160a01b0383166000908152601360209081526040808320848452909152902054611e4d81426139d0565b611e579084614949565b9250508080611e6590614b4d565b915050611dff565b50919050565b611ebf600060405180606001604052806000600f0b815260200160008152602001600081525060405180606001604052806000600f0b8152602001600081526020016000815250612d6b565b565b60055460405163c87b56dd60e01b8152600481018390526060916001600160a01b03169063c87b56dd9060240160006040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a0a919081019061442c565b611f4b82612714565b15611f865760405162461bcd60e51b815260206004820152600b60248201526a199c9bdb481cdd185ad95960aa1b6044820152606401610a37565b611f8f81612714565b15611fc85760405162461bcd60e51b81526020600482015260096024820152681d1bc81cdd185ad95960ba1b6044820152606401610a37565b808214156120035760405162461bcd60e51b81526020600482015260086024820152671cd85b59481b999d60c21b6044820152606401610a37565b61200d3383612d08565b61204d5760405162461bcd60e51b8152602060048201526011602482015270199c9bdb481b9bdd08185c1c1c9bdd9959607a1b6044820152606401610a37565b6120573382612d08565b6120955760405162461bcd60e51b815260206004820152600f60248201526e1d1bc81b9bdd08185c1c1c9bdd9959608a1b6044820152606401610a37565b60008281526007602081815260408084208151606080820184528254600f90810b810b810b8352600180850154848801908152600295860154858801528a8a52978752858920865193840187528054830b830b830b8452908101549683018790529093015493810193909352805194519095929490910b92111561211d578260200151612123565b83602001515b6040805160608082018352600080835260208084018281528486018381528d84526007835286842095518654600f9190910b6001600160801b03166001600160801b0319909116178655905160018601555160029094019390935583519182018452808252918101829052918201529091506121a29087908690612d6b565b6121ab866133a4565b6121bd85838386600460016000612819565b505050505050565b600082815260016020819052604090912001546121e181613421565b610edb8383613499565b6000600260005414156122105760405162461bcd60e51b8152600401610a37906147e1565b6002600055612223848433600186612500565b6001600055949350505050565b600061139583836139d0565b60008181526008602052604081205443141561225a57506000919050565b610a0a82426139d0565b60006001600160e01b0319821663152a902d60e11b1480610a0a5750610a0a82613aba565b6127106001600160601b03821611156122f75760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610a37565b6001600160a01b0382166123495760405162461bcd60e51b815260206004820152601960248201527822a921991c9c189d1034b73b30b634b2103932b1b2b4bb32b960391b6044820152606401610a37565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600255565b6000818152601060205260409020546001600160a01b0316806123d65760405162461bcd60e51b815260206004820152600c60248201526b06f776e6572206973203078360a41b6044820152606401610a37565b806001600160a01b0316836001600160a01b031614156124245760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606401610a37565b6000828152601060209081526040808320546001600160a01b0385811685526015845282852033808752945291909320549216149060ff1681806124655750805b6124a25760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b2b73232b960911b6044820152606401610a37565b60008481526011602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918716917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050505050565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561255257600080fd5b505af1158015612566573d6000803e3d6000fd5b50505050600062093a8080874261257d9190614949565b612587919061499f565b6125919190614a45565b9050600087116125b35760405162461bcd60e51b8152600401610a37906146d6565b4281116126025760405162461bcd60e51b815260206004820152601b60248201527f43616e206f6e6c79206c6f636b20696e207468652066757475726500000000006044820152606401610a37565b612610630784ce0042614949565b81111561262f5760405162461bcd60e51b8152600401610a37906146f9565b600f6000815461263e90614b4d565b90915550600f5461264f8682613aef565b506126ae818984600760008681526020019081526020016000206040518060600160405290816000820160009054906101000a9004600f0b600f0b600f0b81526020016001820154815260200160028201548152505060018a8a612819565b600e546126bb82426139d0565b10156127095760405162461bcd60e51b815260206004820152601a60248201527f6d696e20616d6f756e7420666f72206e6674206e6f74206d65740000000000006044820152606401610a37565b979650505050505050565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561276457600080fd5b505afa158015612778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279c91906140e1565b6001600160a01b031663baa51f86836040518263ffffffff1660e01b81526004016127c991815260200190565b60206040518083038186803b1580156127e157600080fd5b505afa1580156127f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a919061439c565b600480546040805163f9fa212360e01b815290516001600160a01b039092169263f9fa212392828201926000929082900301818387803b15801561285c57600080fd5b505af1158015612870573d6000803e3d6000fd5b505060065486925090506128848882614949565b6006556040805160608101825260008082526020820181905291810191909152825160208085015190830152600f90810b900b81528251899084906128ca9083906148f8565b600f90810b900b90525087156128e257602083018890525b600186600481111561290457634e487b7160e01b600052602160045260246000fd5b1415612911574260408401525b60008a81526007602090815260409182902085518154600f9190910b6001600160801b03166001600160801b0319909116178155908501516001820155908401516002909101556129638a8285612d6b565b3389158015906129935750600487600481111561299057634e487b7160e01b600052602160045260246000fd5b14155b801561299c5750855b15612abf576004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b1580156129e357600080fd5b505afa1580156129f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1b91906140e1565b6040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018d905291909116906323b872dd90606401602060405180830381600087803b158015612a6d57600080fd5b505af1158015612a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa5919061439c565b612abf57634e487b7160e01b600052600160045260246000fd5b8415612b9f576004805460408051635ebaf1db60e01b815290516001600160a01b0390921692635ebaf1db928282019260209290829003018186803b158015612b0757600080fd5b505afa158015612b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3f91906140e1565b6001600160a01b031663630b4b908c6040518263ffffffff1660e01b8152600401612b6c91815260200190565b600060405180830381600087803b158015612b8657600080fd5b505af1158015612b9a573d6000803e3d6000fd5b505050505b8360200151816001600160a01b03167fff04ccafc360e16b67d682d17bd9503c4c6b9a131f6be6325762dc9ffc7de6248d8d8b42604051612be39493929190614840565b60405180910390a37f5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5c83612c178c82614949565b6040805192835260208301919091520160405180910390a15050505050505050505050565b612c4582612714565b15612c625760405162461bcd60e51b8152600401610a37906146b6565b612c6c8183612d08565b612cae5760405162461bcd60e51b81526020600482015260136024820152723737ba1030b8383937bb32b21039b2b73232b960691b6044820152606401610a37565b612cb88483613b4e565b612cc28483613bc1565b612ccc8383613c50565b6000828152600860205260408082204390555183916001600160a01b038087169290881691600080516020614c0483398151915291a450505050565b60008181526010602090815260408083205460118352818420546001600160a01b039182168086526015855283862088841680885295529285205492938085149392909116149060ff168280612d5b5750815b8061270957509695505050505050565b612d73614018565b612d7b614018565b60095460009081908715612eaf57428760200151118015612da3575060008760000151600f0b135b15612df0578651612db990630784ce0090614961565b600f90810b900b602080870191909152870151612dd7904290614af3565b8560200151612de691906149b3565b600f90810b900b85525b428660200151118015612e0a575060008660000151600f0b135b15612e57578551612e2090630784ce0090614961565b600f90810b900b602080860191909152860151612e3e904290614af3565b8460200151612e4d91906149b3565b600f90810b900b84525b6020808801516000908152600d8252604090205490870151600f9190910b935015612eaf57866020015186602001511415612e9457829150612eaf565b6020808701516000908152600d9091526040902054600f0b91505b604080516080810182526000808252602082015242918101919091524360608201528115612f2c57506000818152600a602090815260409182902082516080810184528154600f81810b810b810b8352600160801b909104810b810b900b9281019290925260018101549282019290925260029091015460608201525b604081015181600042831015612f79576040840151612f4b9042614af3565b6060850151612f5a9043614af3565b612f6c90670de0b6b3a7640000614a45565b612f76919061499f565b90505b600062093a80612f89818661499f565b612f939190614a45565b905060005b60ff81101561311c57612fae62093a8083614949565b9150600042831115612fc257429250612fd6565b506000828152600d6020526040902054600f0b5b612fe08684614af3565b8760200151612fef91906149b3565b87518890612ffe908390614a64565b600f90810b900b90525060208701805182919061301c9083906148f8565b600f90810b810b90915288516000910b1215905061303957600087525b60008760200151600f0b121561305157600060208801525b60408088018490528501519295508592670de0b6b3a7640000906130759085614af3565b61307f9086614a45565b613089919061499f565b85606001516130989190614949565b60608801526130a8600189614949565b9750428314156130be575043606087015261311c565b6000888152600a60209081526040918290208951918a0151600f90810b6001600160801b03908116600160801b029390910b1691909117815590880151600182015560608801516002909101555061311581614b4d565b9050612f98565b505060098590558b156131ad578860200151886020015161313d9190614a64565b8460200181815161314e91906148f8565b600f90810b900b905250885188516131669190614a64565b845185906131759083906148f8565b600f90810b810b90915260208601516000910b1215905061319857600060208501525b60008460000151600f0b12156131ad57600084525b6000858152600a6020908152604091829020865191870151600f90810b6001600160801b03908116600160801b029390910b1691909117815590850151600182015560608501516002909101558b1561339657428b60200151111561327157602089015161321b90886148f8565b96508a602001518a60200151141561323f57602088015161323c9088614a64565b96505b60208b8101516000908152600d9091526040902080546001600160801b0319166001600160801b03600f8a900b161790555b428a6020015111156132d0578a602001518a6020015111156132d057602088015161329c9087614a64565b60208b8101516000908152600d9091526040902080546001600160801b0319166001600160801b03600f84900b1617905595505b60008c8152600c60205260408120546132ea906001614949565b905080600c60008f815260200190815260200160002081905550428960400181815250504389606001818152505088600b60008f815260200190815260200160002082633b9aca00811061334e57634e487b7160e01b600052603260045260246000fd5b82516020840151600f90810b6001600160801b03908116600160801b029290910b16176003919091029190910190815560408201516001820155606090910151600290910155505b505050505050505050505050565b6133ae3382612d08565b6133ca5760405162461bcd60e51b8152600401610a3790614730565b6000818152601060205260408120546001600160a01b0316906133ed9083612382565b6133f73383613bc1565b60405182906000906001600160a01b03841690600080516020614c04833981519152908390a45050565b61342b8133613cdd565b50565b61343882826115b7565b610a4a5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6134a382826115b7565b15610a4a5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b031660009081526012602052604090205490565b600080839050600062093a80808360400151613537919061499f565b6135419190614a45565b905060005b60ff8110156135fd5761355c62093a8083614949565b915060008583111561357057859250613584565b506000828152600d6020526040902054600f0b5b60408401516135939084614af3565b84602001516135a291906149b3565b845185906135b1908390614a64565b600f90810b900b905250828614156135c957506135fd565b80846020018181516135db91906148f8565b600f90810b900b90525050604083018290526135f681614b4d565b9050613546565b5060008260000151600f0b121561361357600082525b50516001600160801b03169392505050565b60004382111561364557634e487b7160e01b600052600160045260246000fd5b6000838152600c6020526040812054815b60808110156136f75781831061366b576136f7565b600060026136798486614949565b613684906001614949565b61368e919061499f565b6000888152600b60205260409020909150869082633b9aca0081106136c357634e487b7160e01b600052603260045260246000fd5b6003020160020154116136d8578093506136e6565b6136e3600182614af3565b92505b506136f081614b4d565b9050613656565b506000858152600b6020526040812083633b9aca00811061372857634e487b7160e01b600052603260045260246000fd5b60408051608081018252600392909202929092018054600f81810b810b810b8452600160801b909104810b810b900b6020830152600181015492820192909252600290910154606082015260095490915060006137858783613946565b6000818152600a6020908152604080832081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608201529192508084841015613874576000600a816137f1876001614949565b8152602080820192909252604090810160002081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608083018290528601519192506138569190614af3565b92508360400151816040015161386c9190614af3565b915050613898565b60608301516138839043614af3565b91508260400151426138959190614af3565b90505b604083015182156138d5578284606001518c6138b49190614af3565b6138be9084614a45565b6138c8919061499f565b6138d29082614949565b90505b60408701516138e49082614af3565b87602001516138f391906149b3565b87518890613902908390614a64565b600f90810b810b90915288516000910b12905061393457505093516001600160801b03169650610a0a95505050505050565b60009950505050505050505050610a0a565b60008082815b60808110156139c657818310613961576139c6565b6000600261396f8486614949565b61397a906001614949565b613984919061499f565b6000818152600a602052604090206002015490915087106139a7578093506139b5565b6139b2600182614af3565b92505b506139bf81614b4d565b905061394c565b5090949350505050565b6000828152600c6020526040812054806139ee576000915050610a0a565b6000848152600b6020526040812082633b9aca008110613a1e57634e487b7160e01b600052603260045260246000fd5b60408051608081018252600392909202929092018054600f81810b810b810b8452600160801b909104810b810b900b602083015260018101549282018390526002015460608201529150613a729085614ab4565b8160200151613a8191906149b3565b81518290613a90908390614a64565b600f90810b810b90915282516000910b12159050613aad57600081525b51600f0b9150610a0a9050565b60006001600160e01b03198216637965db0b60e01b1480610a0a57506301ffc9a760e01b6001600160e01b0319831614610a0a565b60006001600160a01b038316613b1557634e487b7160e01b600052600160045260246000fd5b613b1f8383613c50565b60405182906001600160a01b03851690600090600080516020614c04833981519152908290a450600192915050565b6000818152601060205260409020546001600160a01b03838116911614613b8557634e487b7160e01b600052600160045260246000fd5b6000818152601160205260409020546001600160a01b031615610a4a57600090815260116020526040902080546001600160a01b031916905550565b6000818152601060205260409020546001600160a01b03838116911614613bf857634e487b7160e01b600052600160045260246000fd5b600081815260106020526040902080546001600160a01b0319169055613c1e8282613d41565b6001600160a01b0382166000908152601260205260408120805460019290613c47908490614af3565b90915550505050565b6000818152601060205260409020546001600160a01b031615613c8357634e487b7160e01b600052600160045260246000fd5b600081815260106020526040902080546001600160a01b0319166001600160a01b038416179055613cb48282613df3565b6001600160a01b0382166000908152601260205260408120805460019290613c47908490614949565b613ce782826115b7565b610a4a57613cff816001600160a01b03166014613e37565b613d0a836020613e37565b604051602001613d1b9291906145b1565b60408051601f198184030181529082905262461bcd60e51b8252610a379160040161466c565b60006001613d4e84613500565b613d589190614af3565b60008381526014602052604090205490915080821415613da8576001600160a01b038416600090815260136020908152604080832085845282528083208390558583526014909152812055611dea565b6001600160a01b039390931660009081526013602090815260408083209383529281528282208054868452848420819055835260149091528282209490945592839055908252812055565b6000613dfe83613500565b6001600160a01b039093166000908152601360209081526040808320868452825280832085905593825260149052919091209190915550565b60606000613e46836002614a45565b613e51906002614949565b6001600160401b03811115613e7657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613ea0576020820181803683370190505b509050600360fc1b81600081518110613ec957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f0657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000613f2a846002614a45565b613f35906001614949565b90505b6001811115613fc9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613f7757634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110613f9b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93613fc281614b36565b9050613f38565b5083156113955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a37565b60405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525090565b600082601f830112614056578081fd5b8135602061406b614066836148ae565b61487e565b80838252828201915082860187848660051b890101111561408a578586fd5b855b858110156140a85781358452928401929084019060010161408c565b5090979650505050505050565b80356140c081614bbf565b919050565b6000602082840312156140d6578081fd5b813561139581614baa565b6000602082840312156140f2578081fd5b815161139581614baa565b6000806040838503121561410f578081fd5b823561411a81614baa565b9150602083013561412a81614baa565b809150509250929050565b600080600060608486031215614149578081fd5b833561415481614baa565b9250602084013561416481614baa565b929592945050506040919091013590565b6000806000806080858703121561418a578081fd5b843561419581614baa565b935060208501356141a581614baa565b92506040850135915060608501356001600160401b038111156141c6578182fd5b8501601f810187136141d6578182fd5b80356141e4614066826148d1565b8181528860208385010111156141f8578384fd5b81602084016020830137908101602001929092525092959194509250565b60008060408385031215614228578182fd5b823561423381614baa565b9150602083013561412a81614bbf565b60008060408385031215614255578182fd5b823561426081614baa565b946020939093013593505050565b60008060408385031215614280578182fd5b823561428b81614baa565b915060208301356001600160601b038116811461412a578182fd5b600080600080608085870312156142bb578182fd5b84356001600160401b03808211156142d1578384fd5b818701915087601f8301126142e4578384fd5b813560206142f4614066836148ae565b8083825282820191508286018c848660051b8901011115614313578889fd5b8896505b8487101561433e57803561432a81614baa565b835260019690960195918301918301614317565b5098505088013592505080821115614354578384fd5b61436088838901614046565b94506040870135915080821115614375578384fd5b5061438287828801614046565b925050614391606086016140b5565b905092959194509250565b6000602082840312156143ad578081fd5b815161139581614bbf565b6000602082840312156143c9578081fd5b5035919050565b600080604083850312156143e2578182fd5b82359150602083013561412a81614baa565b600060208284031215614405578081fd5b813561139581614bcd565b600060208284031215614421578081fd5b815161139581614bcd565b60006020828403121561443d578081fd5b81516001600160401b03811115614452578182fd5b8201601f81018413614462578182fd5b8051614470614066826148d1565b818152856020838501011115614484578384fd5b614495826020830160208601614b0a565b95945050505050565b6000602082840312156144af578081fd5b5051919050565b600080604083850312156144c8578182fd5b50508035926020909101359150565b6000806000606084860312156144eb578081fd5b8335925060208401359150604084013561450481614baa565b809150509250925092565b60008060008060808587031215614524578182fd5b8435935060208501359250604085013561453d81614baa565b9150606085013561454d81614bbf565b939692955090935050565b60008060006060848603121561456c578081fd5b8335925060208401359150604084013561450481614bbf565b6000815180845261459d816020860160208601614b0a565b601f01601f19169290920160200192915050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516145e3816017850160208801614b0a565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614614816028840160208801614b0a565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061179890830184614585565b6001600160a01b03929092168252602082015260400190565b6020815260006113956020830184614585565b6020808252601b908201527f43616e6e6f742061646420746f2065787069726564206c6f636b2e0000000000604082015260600190565b6020808252600690820152651cdd185ad95960d21b604082015260600190565b602080825260099082015268076616c7565203d20360bc1b604082015260600190565b6020808252601e908201527f566f74696e67206c6f636b2063616e2062652034207965617273206d61780000604082015260600190565b6020808252818101527f63616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564604082015260600190565b602080825260169082015275139bc8195e1a5cdd1a5b99c81b1bd8dac8199bdd5b9960521b604082015260600190565b6020808252600c908201526b3737ba1036b4b3b930ba37b960a11b604082015260600190565b6020808252600c908201526b696e76616c6964206461746160a01b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600e908201526d6e6f7420676f7665726e616e636560901b604082015260600190565b84815260208101849052608081016005841061486c57634e487b7160e01b600052602160045260246000fd5b60408201939093526060015292915050565b604051601f8201601f191681016001600160401b03811182821017156148a6576148a6614b94565b604052919050565b60006001600160401b038211156148c7576148c7614b94565b5060051b60200190565b60006001600160401b038211156148ea576148ea614b94565b50601f01601f191660200190565b6000600f82810b9084900b828212801560016001607f1b038490038313161561492357614923614b68565b60016001607f1b0319839003821281161561494057614940614b68565b50019392505050565b6000821982111561495c5761495c614b68565b500190565b600081600f0b83600f0b8061497857614978614b7e565b60016001607f1b031982146000198214161561499657614996614b68565b90059392505050565b6000826149ae576149ae614b7e565b500490565b6000600f82810b9084900b60016001607f1b03838213848413808216848404861116156149e2576149e2614b68565b60016001607f1b031986851282811687830587121615614a0457614a04614b68565b878712925085820587128484161615614a1f57614a1f614b68565b85850587128184161615614a3557614a35614b68565b5050509290910295945050505050565b6000816000190483118215151615614a5f57614a5f614b68565b500290565b6000600f82810b9084900b828112801560016001607f1b0319830184121615614a8f57614a8f614b68565b60016001607f1b0382018313811615614aaa57614aaa614b68565b5090039392505050565b60008083128015600160ff1b850184121615614ad257614ad2614b68565b6001600160ff1b0384018313811615614aed57614aed614b68565b50500390565b600082821015614b0557614b05614b68565b500390565b60005b83811015614b25578181015183820152602001614b0d565b83811115611dea5750506000910152565b600081614b4557614b45614b68565b506000190190565b6000600019821415614b6157614b61614b68565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461342b57600080fd5b801515811461342b57600080fd5b6001600160e01b03198116811461342b57600080fdfe9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206388773be12479f96825d9aac10d932b2a88383cffb4091d994f4d4f62fef7ad64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH9 0x55DE6A779BBAC0000 PUSH1 0xE SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4FBE CODESIZE SUB DUP1 PUSH3 0x4FBE DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x54 SWAP2 PUSH3 0x2EC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP1 DUP1 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE NUMBER PUSH32 0x13DA86008BA1C6922DAEE3E07DB95305EF49EBCED9F5467A0B8613FCC6B343E5 SSTORE TIMESTAMP PUSH32 0x13DA86008BA1C6922DAEE3E07DB95305EF49EBCED9F5467A0B8613FCC6B343E4 SSTORE PUSH3 0xD0 SWAP1 CALLER PUSH3 0x132 JUMP JUMPDEST PUSH3 0xFC PUSH32 0x9D7B1CF62E8376E2EF102E20D4E487B829FF44D58DDB1F416EE01CF2ED26829E CALLER PUSH3 0x132 JUMP JUMPDEST PUSH3 0x108 DUP4 DUP3 PUSH3 0x142 JUMP JUMPDEST POP PUSH1 0x5 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 PUSH3 0x355 SWAP1 POP JUMP JUMPDEST PUSH3 0x13E DUP3 DUP3 PUSH3 0x247 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2710 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 AND GT ISZERO PUSH3 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20726F79616C7479206665652077696C6C20657863656564 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2073616C655072696365 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x20E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20696E76616C696420726563656976657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x1AD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 MUL OR PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x13E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP1 DUP7 MSTORE SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x2E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x302 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x30D DUP6 PUSH3 0x2CF JUMP JUMPDEST SWAP4 POP PUSH3 0x31D PUSH1 0x20 DUP7 ADD PUSH3 0x2CF JUMP JUMPDEST SWAP3 POP PUSH3 0x32D PUSH1 0x40 DUP7 ADD PUSH3 0x2CF JUMP JUMPDEST PUSH1 0x60 DUP7 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x34A JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH2 0x4C59 DUP1 PUSH3 0x365 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x1CA JUMPI DUP1 PUSH4 0xB45A3C0E GT PUSH2 0x105 JUMPI DUP1 PUSH4 0xD1C2BABB GT PUSH2 0xA8 JUMPI DUP1 PUSH4 0xD1C2BABB EQ PUSH2 0x8C9 JUMPI DUP1 PUSH4 0xD490DBCA EQ PUSH2 0x8DC JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x8E4 JUMPI DUP1 PUSH4 0xD60371A7 EQ PUSH2 0x8F7 JUMPI DUP1 PUSH4 0xE0514ABA EQ PUSH2 0x90A JUMPI DUP1 PUSH4 0xE58F5947 EQ PUSH2 0x91D JUMPI DUP1 PUSH4 0xE7E242D4 EQ PUSH2 0x93D JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x950 JUMPI DUP1 PUSH4 0xF52A36F7 EQ PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB45A3C0E EQ PUSH2 0x7FB JUMPI DUP1 PUSH4 0xB7F1D072 EQ PUSH2 0x84F JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xBAA51F86 EQ PUSH2 0x875 JUMPI DUP1 PUSH4 0xBCC3F3BD EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC2C4C5C1 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0xC7FECBCC EQ PUSH2 0x8A3 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x8B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x16D JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x981B24D0 EQ PUSH2 0x794 JUMPI DUP1 PUSH4 0x9D507B8B EQ PUSH2 0x7A7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x7C2 JUMPI DUP1 PUSH4 0xB128FD86 EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xB2383E55 EQ PUSH2 0x7E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x6CF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0x7116C60C EQ PUSH2 0x6F5 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x708 JUMPI DUP1 PUSH4 0x8AD4C447 EQ PUSH2 0x71B JUMPI DUP1 PUSH4 0x8C2C9BAF EQ PUSH2 0x72E JUMPI DUP1 PUSH4 0x8DF4B13B EQ PUSH2 0x741 JUMPI DUP1 PUSH4 0x900CF0CF EQ PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x29A JUMPI DUP1 PUSH4 0x42842E0E GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x5D1 JUMPI DUP1 PUSH4 0x430C2081 EQ PUSH2 0x5E4 JUMPI DUP1 PUSH4 0x44ACB42A EQ PUSH2 0x5F7 JUMPI DUP1 PUSH4 0x4BD2D9B3 EQ PUSH2 0x648 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x65C JUMPI DUP1 PUSH4 0x5633E0A6 EQ PUSH2 0x680 JUMPI DUP1 PUSH4 0x57E871E7 EQ PUSH2 0x6A6 JUMPI DUP1 PUSH4 0x626944DF EQ PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0x2A55205A EQ PUSH2 0x512 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x533 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x559 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0x39C6D4CB EQ PUSH2 0x5BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x302 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x45F JUMPI DUP1 PUSH4 0xA2ABDB3 EQ PUSH2 0x472 JUMPI DUP1 PUSH4 0xEC84DDA EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0xF68AE40 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x4AB JUMPI DUP1 PUSH4 0x2277CDC2 EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0x23857D51 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x2FA7C47 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x45F7019 EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x47FC9AA EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x5AE4F8C EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x8804275 EQ PUSH2 0x456 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x373 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0x43F4 JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0x396 CALLDATASIZE PUSH1 0x4 PUSH2 0x426E JUMP JUMPDEST PUSH2 0xA10 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39B PUSH2 0x3AB CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0xCBD JUMP JUMPDEST PUSH2 0x408 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x131BD8DAD959081350521048139195 PUSH1 0x8A SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH2 0x466C JUMP JUMPDEST PUSH2 0x43E PUSH2 0x423 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x46D CALLDATASIZE PUSH1 0x4 PUSH2 0x4243 JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x480 CALLDATASIZE PUSH1 0x4 PUSH2 0x450F JUMP JUMPDEST PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x493 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0xD4D JUMP JUMPDEST PUSH2 0x39B PUSH2 0x4A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0xE5D JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xE89 JUMP JUMPDEST PUSH2 0x39B PUSH2 0xE99 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x4E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4135 JUMP JUMPDEST PUSH2 0xECF JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x4FC CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x525 PUSH2 0x520 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP3 SWAP2 SWAP1 PUSH2 0x4653 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x541 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0xF8C JUMP JUMPDEST PUSH2 0x39B PUSH2 0x554 CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x12CE JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x567 CALLDATASIZE PUSH1 0x4 PUSH2 0x4243 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x597 PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x5B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x12F4 JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4BE4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x5DF CALLDATASIZE PUSH1 0x4 PUSH2 0x4135 JUMP JUMPDEST PUSH2 0x136E JUMP JUMPDEST PUSH2 0x373 PUSH2 0x5F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4243 JUMP JUMPDEST PUSH2 0x1389 JUMP JUMPDEST PUSH2 0x60A PUSH2 0x605 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x139C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP3 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x373 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x693 PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1426 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST NUMBER PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x6BA CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x6DD CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1477 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x6F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0x1494 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x703 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x149F JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x43E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x60A PUSH2 0x729 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1507 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x73C CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x1566 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x74F CALLDATASIZE PUSH1 0x4 PUSH2 0x44D7 JUMP JUMPDEST PUSH2 0x1572 JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x373 PUSH2 0x76B CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x9A829082B PUSH1 0xDB SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x7A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x15E2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x17A2 JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4216 JUMP JUMPDEST PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x42A6 JUMP JUMPDEST PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x1B67 JUMP JUMPDEST PUSH2 0x82F PUSH2 0x809 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP5 SWAP1 SWAP5 SIGNEXTEND DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x85D CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0x1C6D JUMP JUMPDEST PUSH2 0x39B PUSH2 0x870 CALLDATASIZE PUSH1 0x4 PUSH2 0x4175 JUMP JUMPDEST PUSH2 0x1CB6 JUMP JUMPDEST PUSH2 0x373 PUSH2 0x883 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1DF0 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x896 CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0x1DFB JUMP JUMPDEST PUSH2 0x39B PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x43E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x408 PUSH2 0x8C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1EC1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x8D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x1F42 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x8F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x21C5 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x905 CALLDATASIZE PUSH1 0x4 PUSH2 0x4558 JUMP JUMPDEST PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x918 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x2230 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x92B CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x94B CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x223C JUMP JUMPDEST PUSH2 0x373 PUSH2 0x95E CALLDATASIZE PUSH1 0x4 PUSH2 0x40FD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x693 PUSH2 0x99A CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ DUP1 PUSH2 0x9E0 JUMPI POP PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST DUP1 PUSH2 0x9FB JUMPI POP PUSH4 0x5B5E139F PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST DUP1 PUSH2 0xA0A JUMPI POP PUSH2 0xA0A DUP3 PUSH2 0x2264 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA1B PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA4A DUP3 DUP3 PUSH2 0x2289 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xA59 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xAC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x6E6F7420696E20626F6F747374726170206D6F6465 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB40 SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD5 SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC4E SWAP2 SWAP1 PUSH2 0x449E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC6B SWAP3 SWAP2 SWAP1 PUSH2 0x4653 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA4A SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0xCED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 MUL ADD PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA4A DUP3 DUP3 PUSH2 0x2382 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xD3F DUP6 DUP6 DUP6 PUSH1 0x1 DUP7 PUSH2 0x2500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 DUP2 SSTORE DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 ADD SLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0xDB9 DUP4 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0xDD6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46B6 JUMP JUMPDEST PUSH1 0x0 DUP3 GT PUSH2 0xDF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT PUSH2 0xE1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4765 JUMP JUMPDEST TIMESTAMP DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0xE40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x467F JUMP JUMPDEST PUSH2 0xE53 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH2 0x2819 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH2 0xE68 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0xE SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE94 TIMESTAMP PUSH2 0x149F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xEA4 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xEC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 DUP4 CALLER PUSH2 0x2C3C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0xF55 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xF74 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP8 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0xF7E SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP2 MLOAD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xFBE CALLER DUP3 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0xFDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH2 0xFE3 DUP2 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46B6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE TIMESTAMP LT ISZERO PUSH2 0x1087 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x546865206C6F636B206469646E277420657870697265 PUSH1 0x50 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 DUP2 MSTORE DUP4 DUP6 ADD DUP4 DUP2 MSTORE DUP9 DUP5 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE SWAP4 SWAP1 SWAP2 KECCAK256 SWAP2 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0xF SWAP3 DUP4 SIGNEXTEND AND OR DUP4 SSTORE SWAP3 MLOAD PUSH1 0x1 DUP4 ADD SSTORE MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x6 SLOAD SWAP2 SWAP1 SIGNEXTEND SWAP1 PUSH2 0x10F0 DUP3 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH2 0x1121 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2D6B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x119B SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB CALLER DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C8 SWAP3 SWAP2 SWAP1 PUSH2 0x4653 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x121A SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH2 0x1234 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x123D DUP5 PUSH2 0x33A4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE TIMESTAMP DUP2 DUP4 ADD MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x2F25270A4D87BEA75DB541CDFE559334A275B4A233520ED6C0A2429667CCA94 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH32 0x5E2AA66EFD74CCE82B21852E317E5490D9ECC9E6BB953AE24D90851258CC2F5C DUP2 PUSH2 0x12AB DUP5 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0x12EA DUP2 PUSH2 0x3421 JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 PUSH2 0x342E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1364 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0xA4A DUP3 DUP3 PUSH2 0x3499 JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1CB6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1395 DUP4 DUP4 PUSH2 0x2D08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13A4 PUSH2 0x4018 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x13D4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP3 SWAP1 SWAP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP5 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP2 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x1461 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 MUL ADD SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0xF SIGNEXTEND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0A DUP3 PUSH2 0x3500 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH2 0x14FF DUP2 DUP6 PUSH2 0x351B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x150F PUSH2 0x4018 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1395 DUP4 DUP4 PUSH2 0x3625 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x158C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4BE4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x15A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4795 JUMP JUMPDEST PUSH2 0x14FF DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x1 PUSH2 0x2500 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 GT ISZERO PUSH2 0x1602 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 PUSH2 0x1611 DUP5 DUP4 PUSH2 0x3946 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP4 DUP4 LT ISZERO PUSH2 0x1730 JUMPI PUSH1 0x0 PUSH1 0xA DUP2 PUSH2 0x167C DUP7 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP6 ADD MLOAD SWAP2 SWAP3 POP EQ PUSH2 0x172A JUMPI DUP3 PUSH1 0x60 ADD MLOAD DUP2 PUSH1 0x60 ADD MLOAD PUSH2 0x16F0 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x1704 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD PUSH2 0x1713 SWAP1 DUP11 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x171D SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x1727 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH2 0x177F JUMP JUMPDEST NUMBER DUP3 PUSH1 0x60 ADD MLOAD EQ PUSH2 0x177F JUMPI PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x174A SWAP1 NUMBER PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1759 SWAP1 TIMESTAMP PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MLOAD PUSH2 0x1768 SWAP1 DUP10 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x1772 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x177C SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x1798 DUP3 DUP3 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x1793 SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x351B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0x17D4 CALLER DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x17F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 ADD SLOAD SWAP1 DUP3 ADD MSTORE SWAP1 PUSH3 0x93A80 DUP1 PUSH2 0x183A DUP6 TIMESTAMP PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x1844 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x184E SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP3 PUSH1 0x20 ADD MLOAD GT PUSH2 0x1892 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x131BD8DAC8195E1C1A5C9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT PUSH2 0x18DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x139BDD1A1A5B99C81A5CC81B1BD8DAD959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD DUP2 GT PUSH2 0x1930 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E206F6E6C7920696E637265617365206C6F636B206475726174696F6E00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x193E PUSH4 0x784CE00 TIMESTAMP PUSH2 0x4949 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46F9 JUMP JUMPDEST PUSH4 0x784CE00 DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x1971 SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1990 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46F9 JUMP JUMPDEST PUSH2 0x19AA DUP5 PUSH1 0x0 DUP4 DUP6 PUSH1 0x3 PUSH1 0x0 PUSH2 0x19A5 DUP12 PUSH2 0x2714 JUMP JUMPDEST PUSH2 0x2819 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER EQ ISZERO PUSH2 0x19DC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1A60 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4BE4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x1A7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4795 JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1A9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47BB JUMP JUMPDEST DUP3 MLOAD DUP5 MLOAD EQ PUSH2 0x1ABE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47BB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1B60 JUMPI PUSH2 0x1B4D DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1B15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 DUP7 PUSH2 0x2500 JUMP JUMPDEST POP DUP1 PUSH2 0x1B58 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1AC1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0x1B99 CALLER DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x1BB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 PUSH2 0x1C0E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT PUSH2 0x1C35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4765 JUMP JUMPDEST TIMESTAMP DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x1C58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x467F JUMP JUMPDEST PUSH2 0xE53 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x2 PUSH1 0x1 PUSH2 0x19A5 DUP11 PUSH2 0x2714 JUMP JUMPDEST PUSH2 0x1C78 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x1C94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x5 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 PUSH2 0x1CC2 DUP5 DUP5 DUP5 CALLER PUSH2 0x2C3C JUMP JUMPDEST DUP3 EXTCODESIZE ISZERO PUSH2 0x1DEA JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x1CFB SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4620 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1D45 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1D42 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4410 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1B60 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1D73 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D78 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x1DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0A DUP3 PUSH2 0x2714 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x1E6D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x1E4D DUP2 TIMESTAMP PUSH2 0x39D0 JUMP JUMPDEST PUSH2 0x1E57 SWAP1 DUP5 PUSH2 0x4949 JUMP JUMPDEST SWAP3 POP POP DUP1 DUP1 PUSH2 0x1E65 SWAP1 PUSH2 0x4B4D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DFF JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EBF PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2D6B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC87B56DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC87B56DD SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xA0A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x442C JUMP JUMPDEST PUSH2 0x1F4B DUP3 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x1F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x199C9BDB481CDD185AD959 PUSH1 0xAA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x1F8F DUP2 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x1FC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x1D1BC81CDD185AD959 PUSH1 0xBA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 DUP3 EQ ISZERO PUSH2 0x2003 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x8 PUSH1 0x24 DUP3 ADD MSTORE PUSH8 0x1CD85B59481B999D PUSH1 0xC2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x200D CALLER DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x204D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x199C9BDB481B9BDD08185C1C1C9BDD9959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x2057 CALLER DUP3 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x2095 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1BC81B9BDD08185C1C1C9BDD9959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP1 DUP3 ADD DUP5 MSTORE DUP3 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 DUP1 DUP6 ADD SLOAD DUP5 DUP9 ADD SWAP1 DUP2 MSTORE PUSH1 0x2 SWAP6 DUP7 ADD SLOAD DUP6 DUP9 ADD MSTORE DUP11 DUP11 MSTORE SWAP8 DUP8 MSTORE DUP6 DUP10 KECCAK256 DUP7 MLOAD SWAP4 DUP5 ADD DUP8 MSTORE DUP1 SLOAD DUP4 SIGNEXTEND DUP4 SIGNEXTEND DUP4 SIGNEXTEND DUP5 MSTORE SWAP1 DUP2 ADD SLOAD SWAP7 DUP4 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP4 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP1 MLOAD SWAP5 MLOAD SWAP1 SWAP6 SWAP3 SWAP5 SWAP1 SWAP2 SIGNEXTEND SWAP3 GT ISZERO PUSH2 0x211D JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2123 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 DUP2 MSTORE DUP5 DUP7 ADD DUP4 DUP2 MSTORE DUP14 DUP5 MSTORE PUSH1 0x7 DUP4 MSTORE DUP7 DUP5 KECCAK256 SWAP6 MLOAD DUP7 SLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR DUP7 SSTORE SWAP1 MLOAD PUSH1 0x1 DUP7 ADD SSTORE MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP4 MLOAD SWAP2 DUP3 ADD DUP5 MSTORE DUP1 DUP3 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x21A2 SWAP1 DUP8 SWAP1 DUP7 SWAP1 PUSH2 0x2D6B JUMP JUMPDEST PUSH2 0x21AB DUP7 PUSH2 0x33A4 JUMP JUMPDEST PUSH2 0x21BD DUP6 DUP4 DUP4 DUP7 PUSH1 0x4 PUSH1 0x1 PUSH1 0x0 PUSH2 0x2819 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0x21E1 DUP2 PUSH2 0x3421 JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 PUSH2 0x3499 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x2210 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0x2223 DUP5 DUP5 CALLER PUSH1 0x1 DUP7 PUSH2 0x2500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1395 DUP4 DUP4 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD NUMBER EQ ISZERO PUSH2 0x225A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA0A DUP3 TIMESTAMP PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x152A902D PUSH1 0xE1 SHL EQ DUP1 PUSH2 0xA0A JUMPI POP PUSH2 0xA0A DUP3 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x2710 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 AND GT ISZERO PUSH2 0x22F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20726F79616C7479206665652077696C6C20657863656564 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2073616C655072696365 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x22A921991C9C189D1034B73B30B634B2103932B1B2B4BB32B9 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 MUL OR PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x23D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x6F776E65722069732030783 PUSH1 0xA4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x2424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x3737BA1037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP6 MSTORE PUSH1 0x15 DUP5 MSTORE DUP3 DUP6 KECCAK256 CALLER DUP1 DUP8 MSTORE SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP3 AND EQ SWAP1 PUSH1 0xFF AND DUP2 DUP1 PUSH2 0x2465 JUMPI POP DUP1 JUMPDEST PUSH2 0x24A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x34B73B30B634B21039B2B73232B9 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2566 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH3 0x93A80 DUP1 DUP8 TIMESTAMP PUSH2 0x257D SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x2587 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x2591 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 GT PUSH2 0x25B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST TIMESTAMP DUP2 GT PUSH2 0x2602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E206F6E6C79206C6F636B20696E20746865206675747572650000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x2610 PUSH4 0x784CE00 TIMESTAMP PUSH2 0x4949 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x262F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46F9 JUMP JUMPDEST PUSH1 0xF PUSH1 0x0 DUP2 SLOAD PUSH2 0x263E SWAP1 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0xF SLOAD PUSH2 0x264F DUP7 DUP3 PUSH2 0x3AEF JUMP JUMPDEST POP PUSH2 0x26AE DUP2 DUP10 DUP5 PUSH1 0x7 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF SIGNEXTEND PUSH1 0xF SIGNEXTEND PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH1 0x1 DUP11 DUP11 PUSH2 0x2819 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x26BB DUP3 TIMESTAMP PUSH2 0x39D0 JUMP JUMPDEST LT ISZERO PUSH2 0x2709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D696E20616D6F756E7420666F72206E6674206E6F74206D6574000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2778 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x279C SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBAA51F86 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27C9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0A SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xF9FA2123 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xF9FA2123 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x285C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2870 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x6 SLOAD DUP7 SWAP3 POP SWAP1 POP PUSH2 0x2884 DUP9 DUP3 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x6 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE DUP3 MLOAD DUP10 SWAP1 DUP5 SWAP1 PUSH2 0x28CA SWAP1 DUP4 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP DUP8 ISZERO PUSH2 0x28E2 JUMPI PUSH1 0x20 DUP4 ADD DUP9 SWAP1 MSTORE JUMPDEST PUSH1 0x1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2904 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2911 JUMPI TIMESTAMP PUSH1 0x40 DUP5 ADD MSTORE JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP6 MLOAD DUP2 SLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR DUP2 SSTORE SWAP1 DUP6 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE PUSH2 0x2963 DUP11 DUP3 DUP6 PUSH2 0x2D6B JUMP JUMPDEST CALLER DUP10 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2993 JUMPI POP PUSH1 0x4 DUP8 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2990 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x299C JUMPI POP DUP6 JUMPDEST ISZERO PUSH2 0x2ABF JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A1B SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A81 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AA5 SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH2 0x2ABF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP5 ISZERO PUSH2 0x2B9F JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5EBAF1DB PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x5EBAF1DB SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B3F SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x630B4B90 DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B6C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B9A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xFF04CCAFC360E16B67D682D17BD9503C4C6B9A131F6BE6325762DC9FFC7DE624 DUP14 DUP14 DUP12 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x2BE3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4840 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH32 0x5E2AA66EFD74CCE82B21852E317E5490D9ECC9E6BB953AE24D90851258CC2F5C DUP4 PUSH2 0x2C17 DUP13 DUP3 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2C45 DUP3 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x2C62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46B6 JUMP JUMPDEST PUSH2 0x2C6C DUP2 DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x2CAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x3737BA1030B8383937BB32B21039B2B73232B9 PUSH1 0x69 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x2CB8 DUP5 DUP4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x2CC2 DUP5 DUP4 PUSH2 0x3BC1 JUMP JUMPDEST PUSH2 0x2CCC DUP4 DUP4 PUSH2 0x3C50 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 NUMBER SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND SWAP3 SWAP1 DUP9 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4C04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x11 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP1 DUP7 MSTORE PUSH1 0x15 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP9 DUP5 AND DUP1 DUP9 MSTORE SWAP6 MSTORE SWAP3 DUP6 KECCAK256 SLOAD SWAP3 SWAP4 DUP1 DUP6 EQ SWAP4 SWAP3 SWAP1 SWAP2 AND EQ SWAP1 PUSH1 0xFF AND DUP3 DUP1 PUSH2 0x2D5B JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x2709 JUMPI POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2D73 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x2D7B PUSH2 0x4018 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP8 ISZERO PUSH2 0x2EAF JUMPI TIMESTAMP DUP8 PUSH1 0x20 ADD MLOAD GT DUP1 ISZERO PUSH2 0x2DA3 JUMPI POP PUSH1 0x0 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT JUMPDEST ISZERO PUSH2 0x2DF0 JUMPI DUP7 MLOAD PUSH2 0x2DB9 SWAP1 PUSH4 0x784CE00 SWAP1 PUSH2 0x4961 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP1 DUP8 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP8 ADD MLOAD PUSH2 0x2DD7 SWAP1 TIMESTAMP SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x2DE6 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP6 MSTORE JUMPDEST TIMESTAMP DUP7 PUSH1 0x20 ADD MLOAD GT DUP1 ISZERO PUSH2 0x2E0A JUMPI POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT JUMPDEST ISZERO PUSH2 0x2E57 JUMPI DUP6 MLOAD PUSH2 0x2E20 SWAP1 PUSH4 0x784CE00 SWAP1 PUSH2 0x4961 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD PUSH2 0x2E3E SWAP1 TIMESTAMP SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2E4D SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP5 MSTORE JUMPDEST PUSH1 0x20 DUP1 DUP9 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD DUP3 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 DUP8 ADD MLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND SWAP4 POP ISZERO PUSH2 0x2EAF JUMPI DUP7 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x20 ADD MLOAD EQ ISZERO PUSH2 0x2E94 JUMPI DUP3 SWAP2 POP PUSH2 0x2EAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND SWAP2 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE TIMESTAMP SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE NUMBER PUSH1 0x60 DUP3 ADD MSTORE DUP2 ISZERO PUSH2 0x2F2C JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP2 PUSH1 0x0 TIMESTAMP DUP4 LT ISZERO PUSH2 0x2F79 JUMPI PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x2F4B SWAP1 TIMESTAMP PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD PUSH2 0x2F5A SWAP1 NUMBER PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x2F6C SWAP1 PUSH8 0xDE0B6B3A7640000 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x2F76 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH3 0x93A80 PUSH2 0x2F89 DUP2 DUP7 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x2F93 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP2 LT ISZERO PUSH2 0x311C JUMPI PUSH2 0x2FAE PUSH3 0x93A80 DUP4 PUSH2 0x4949 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 TIMESTAMP DUP4 GT ISZERO PUSH2 0x2FC2 JUMPI TIMESTAMP SWAP3 POP PUSH2 0x2FD6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND JUMPDEST PUSH2 0x2FE0 DUP7 DUP5 PUSH2 0x4AF3 JUMP JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0x2FEF SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP8 MLOAD DUP9 SWAP1 PUSH2 0x2FFE SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP PUSH1 0x20 DUP8 ADD DUP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x301C SWAP1 DUP4 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE DUP9 MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT ISZERO SWAP1 POP PUSH2 0x3039 JUMPI PUSH1 0x0 DUP8 MSTORE JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0xF SIGNEXTEND SLT ISZERO PUSH2 0x3051 JUMPI PUSH1 0x0 PUSH1 0x20 DUP9 ADD MSTORE JUMPDEST PUSH1 0x40 DUP1 DUP9 ADD DUP5 SWAP1 MSTORE DUP6 ADD MLOAD SWAP3 SWAP6 POP DUP6 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x3075 SWAP1 DUP6 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x307F SWAP1 DUP7 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x3089 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST DUP6 PUSH1 0x60 ADD MLOAD PUSH2 0x3098 SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MSTORE PUSH2 0x30A8 PUSH1 0x1 DUP10 PUSH2 0x4949 JUMP JUMPDEST SWAP8 POP TIMESTAMP DUP4 EQ ISZERO PUSH2 0x30BE JUMPI POP NUMBER PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x311C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP10 MLOAD SWAP2 DUP11 ADD MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP4 SWAP1 SWAP2 SIGNEXTEND AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP1 DUP9 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x60 DUP9 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE POP PUSH2 0x3115 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x2F98 JUMP JUMPDEST POP POP PUSH1 0x9 DUP6 SWAP1 SSTORE DUP12 ISZERO PUSH2 0x31AD JUMPI DUP9 PUSH1 0x20 ADD MLOAD DUP9 PUSH1 0x20 ADD MLOAD PUSH2 0x313D SWAP2 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD DUP2 DUP2 MLOAD PUSH2 0x314E SWAP2 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP DUP9 MLOAD DUP9 MLOAD PUSH2 0x3166 SWAP2 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST DUP5 MLOAD DUP6 SWAP1 PUSH2 0x3175 SWAP1 DUP4 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT ISZERO SWAP1 POP PUSH2 0x3198 JUMPI PUSH1 0x0 PUSH1 0x20 DUP6 ADD MSTORE JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SLT ISZERO PUSH2 0x31AD JUMPI PUSH1 0x0 DUP5 MSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP4 SWAP1 SWAP2 SIGNEXTEND AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP1 DUP6 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE DUP12 ISZERO PUSH2 0x3396 JUMPI TIMESTAMP DUP12 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x3271 JUMPI PUSH1 0x20 DUP10 ADD MLOAD PUSH2 0x321B SWAP1 DUP9 PUSH2 0x48F8 JUMP JUMPDEST SWAP7 POP DUP11 PUSH1 0x20 ADD MLOAD DUP11 PUSH1 0x20 ADD MLOAD EQ ISZERO PUSH2 0x323F JUMPI PUSH1 0x20 DUP9 ADD MLOAD PUSH2 0x323C SWAP1 DUP9 PUSH2 0x4A64 JUMP JUMPDEST SWAP7 POP JUMPDEST PUSH1 0x20 DUP12 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0xF DUP11 SWAP1 SIGNEXTEND AND OR SWAP1 SSTORE JUMPDEST TIMESTAMP DUP11 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x32D0 JUMPI DUP11 PUSH1 0x20 ADD MLOAD DUP11 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x32D0 JUMPI PUSH1 0x20 DUP9 ADD MLOAD PUSH2 0x329C SWAP1 DUP8 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0x20 DUP12 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0xF DUP5 SWAP1 SIGNEXTEND AND OR SWAP1 SSTORE SWAP6 POP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x32EA SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xC PUSH1 0x0 DUP16 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP TIMESTAMP DUP10 PUSH1 0x40 ADD DUP2 DUP2 MSTORE POP POP NUMBER DUP10 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP9 PUSH1 0xB PUSH1 0x0 DUP16 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x334E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP3 SWAP1 SWAP2 SIGNEXTEND AND OR PUSH1 0x3 SWAP2 SWAP1 SWAP2 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x33AE CALLER DUP3 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x33CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x33ED SWAP1 DUP4 PUSH2 0x2382 JUMP JUMPDEST PUSH2 0x33F7 CALLER DUP4 PUSH2 0x3BC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4C04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP4 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x342B DUP2 CALLER PUSH2 0x3CDD JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3438 DUP3 DUP3 PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA4A JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP1 DUP7 MSTORE SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x34A3 DUP3 DUP3 PUSH2 0x15B7 JUMP JUMPDEST ISZERO PUSH2 0xA4A JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SWAP1 POP PUSH1 0x0 PUSH3 0x93A80 DUP1 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x3537 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x3541 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP2 LT ISZERO PUSH2 0x35FD JUMPI PUSH2 0x355C PUSH3 0x93A80 DUP4 PUSH2 0x4949 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP6 DUP4 GT ISZERO PUSH2 0x3570 JUMPI DUP6 SWAP3 POP PUSH2 0x3584 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND JUMPDEST PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x3593 SWAP1 DUP5 PUSH2 0x4AF3 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x35A2 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP5 MLOAD DUP6 SWAP1 PUSH2 0x35B1 SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP DUP3 DUP7 EQ ISZERO PUSH2 0x35C9 JUMPI POP PUSH2 0x35FD JUMP JUMPDEST DUP1 DUP5 PUSH1 0x20 ADD DUP2 DUP2 MLOAD PUSH2 0x35DB SWAP2 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP POP PUSH1 0x40 DUP4 ADD DUP3 SWAP1 MSTORE PUSH2 0x35F6 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x3546 JUMP JUMPDEST POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SLT ISZERO PUSH2 0x3613 JUMPI PUSH1 0x0 DUP3 MSTORE JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 GT ISZERO PUSH2 0x3645 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x36F7 JUMPI DUP2 DUP4 LT PUSH2 0x366B JUMPI PUSH2 0x36F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x3679 DUP5 DUP7 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x3684 SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x368E SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP DUP7 SWAP1 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x36C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 MUL ADD PUSH1 0x2 ADD SLOAD GT PUSH2 0x36D8 JUMPI DUP1 SWAP4 POP PUSH2 0x36E6 JUMP JUMPDEST PUSH2 0x36E3 PUSH1 0x1 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x36F0 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x3656 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x3728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP3 SWAP1 SWAP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP5 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x3785 DUP8 DUP4 PUSH2 0x3946 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP1 DUP5 DUP5 LT ISZERO PUSH2 0x3874 JUMPI PUSH1 0x0 PUSH1 0xA DUP2 PUSH2 0x37F1 DUP8 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0x3856 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP3 POP DUP4 PUSH1 0x40 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x386C SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x3898 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x3883 SWAP1 NUMBER PUSH2 0x4AF3 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x40 ADD MLOAD TIMESTAMP PUSH2 0x3895 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD DUP3 ISZERO PUSH2 0x38D5 JUMPI DUP3 DUP5 PUSH1 0x60 ADD MLOAD DUP13 PUSH2 0x38B4 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x38BE SWAP1 DUP5 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x38C8 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x38D2 SWAP1 DUP3 PUSH2 0x4949 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD PUSH2 0x38E4 SWAP1 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0x38F3 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP8 MLOAD DUP9 SWAP1 PUSH2 0x3902 SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE DUP9 MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT SWAP1 POP PUSH2 0x3934 JUMPI POP POP SWAP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP7 POP PUSH2 0xA0A SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x39C6 JUMPI DUP2 DUP4 LT PUSH2 0x3961 JUMPI PUSH2 0x39C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x396F DUP5 DUP7 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x397A SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x3984 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 POP DUP8 LT PUSH2 0x39A7 JUMPI DUP1 SWAP4 POP PUSH2 0x39B5 JUMP JUMPDEST PUSH2 0x39B2 PUSH1 0x1 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x39BF DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x394C JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x39EE JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x3A1E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP3 SWAP1 SWAP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP5 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3A72 SWAP1 DUP6 PUSH2 0x4AB4 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x3A81 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH2 0x3A90 SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE DUP3 MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT ISZERO SWAP1 POP PUSH2 0x3AAD JUMPI PUSH1 0x0 DUP2 MSTORE JUMPDEST MLOAD PUSH1 0xF SIGNEXTEND SWAP2 POP PUSH2 0xA0A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xA0A JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3B15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x3B1F DUP4 DUP4 PUSH2 0x3C50 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4C04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP3 SWAP1 LOG4 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x3B85 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xA4A JUMPI PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x3BF8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x3C1E DUP3 DUP3 PUSH2 0x3D41 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x3C47 SWAP1 DUP5 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x3C83 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x3CB4 DUP3 DUP3 PUSH2 0x3DF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x3C47 SWAP1 DUP5 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x3CE7 DUP3 DUP3 PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA4A JUMPI PUSH2 0x3CFF DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x3E37 JUMP JUMPDEST PUSH2 0x3D0A DUP4 PUSH1 0x20 PUSH2 0x3E37 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D1B SWAP3 SWAP2 SWAP1 PUSH2 0x45B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0xA37 SWAP2 PUSH1 0x4 ADD PUSH2 0x466C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x3D4E DUP5 PUSH2 0x3500 JUMP JUMPDEST PUSH2 0x3D58 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ ISZERO PUSH2 0x3DA8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE DUP6 DUP4 MSTORE PUSH1 0x14 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SSTORE PUSH2 0x1DEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 DUP2 MSTORE DUP3 DUP3 KECCAK256 DUP1 SLOAD DUP7 DUP5 MSTORE DUP5 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0x14 SWAP1 SWAP2 MSTORE DUP3 DUP3 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 DUP4 SWAP1 SSTORE SWAP1 DUP3 MSTORE DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DFE DUP4 PUSH2 0x3500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE SWAP4 DUP3 MSTORE PUSH1 0x14 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x3E46 DUP4 PUSH1 0x2 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x3E51 SWAP1 PUSH1 0x2 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E76 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3EA0 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3EC9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x3F06 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x3F2A DUP5 PUSH1 0x2 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x3F35 SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3FC9 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x3F77 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3F9B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3FC2 DUP2 PUSH2 0x4B36 JUMP JUMPDEST SWAP1 POP PUSH2 0x3F38 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1395 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4056 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x406B PUSH2 0x4066 DUP4 PUSH2 0x48AE JUMP JUMPDEST PUSH2 0x487E JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x408A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x40A8 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x408C JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x40C0 DUP2 PUSH2 0x4BBF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40D6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1395 DUP2 PUSH2 0x4BAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40F2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1395 DUP2 PUSH2 0x4BAA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x410F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x411A DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x412A DUP2 PUSH2 0x4BAA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4149 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4154 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4164 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x418A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4195 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x41A5 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41C6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x41D6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x41E4 PUSH2 0x4066 DUP3 PUSH2 0x48D1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x41F8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4228 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4233 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x412A DUP2 PUSH2 0x4BBF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4255 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4260 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4280 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x428B DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x412A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x42BB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x42D1 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42E4 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x42F4 PUSH2 0x4066 DUP4 PUSH2 0x48AE JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP13 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x4313 JUMPI DUP9 DUP10 REVERT JUMPDEST DUP9 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0x433E JUMPI DUP1 CALLDATALOAD PUSH2 0x432A DUP2 PUSH2 0x4BAA JUMP JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x4317 JUMP JUMPDEST POP SWAP9 POP POP DUP9 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0x4354 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x4360 DUP9 DUP4 DUP10 ADD PUSH2 0x4046 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4375 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x4382 DUP8 DUP3 DUP9 ADD PUSH2 0x4046 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x4391 PUSH1 0x60 DUP7 ADD PUSH2 0x40B5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1395 DUP2 PUSH2 0x4BBF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43E2 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x412A DUP2 PUSH2 0x4BAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4405 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1395 DUP2 PUSH2 0x4BCD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4421 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1395 DUP2 PUSH2 0x4BCD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x443D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4452 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x4462 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x4470 PUSH2 0x4066 DUP3 PUSH2 0x48D1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x4484 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x4495 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4B0A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44AF JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x44C8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x44EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4504 DUP2 PUSH2 0x4BAA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4524 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x453D DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0x454D DUP2 PUSH2 0x4BBF JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x456C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4504 DUP2 PUSH2 0x4BBF JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x459D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4B0A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x45E3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4B0A JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4614 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4B0A JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1798 SWAP1 DUP4 ADD DUP5 PUSH2 0x4585 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1395 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4585 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x43616E6E6F742061646420746F2065787069726564206C6F636B2E0000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x6 SWAP1 DUP3 ADD MSTORE PUSH6 0x1CDD185AD959 PUSH1 0xD2 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x76616C7565203D203 PUSH1 0xBC SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x566F74696E67206C6F636B2063616E2062652034207965617273206D61780000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x63616C6C6572206973206E6F74206F776E6572206E6F7220617070726F766564 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x16 SWAP1 DUP3 ADD MSTORE PUSH22 0x139BC8195E1A5CDD1A5B99C81B1BD8DAC8199BDD5B99 PUSH1 0x52 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x3737BA1036B4B3B930BA37B9 PUSH1 0xA1 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x696E76616C69642064617461 PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xE SWAP1 DUP3 ADD MSTORE PUSH14 0x6E6F7420676F7665726E616E6365 PUSH1 0x90 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x5 DUP5 LT PUSH2 0x486C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x48A6 JUMPI PUSH2 0x48A6 PUSH2 0x4B94 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x48C7 JUMPI PUSH2 0x48C7 PUSH2 0x4B94 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x48EA JUMPI PUSH2 0x48EA PUSH2 0x4B94 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND DUP3 DUP3 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP5 SWAP1 SUB DUP4 SGT AND ISZERO PUSH2 0x4923 JUMPI PUSH2 0x4923 PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP4 SWAP1 SUB DUP3 SLT DUP2 AND ISZERO PUSH2 0x4940 JUMPI PUSH2 0x4940 PUSH2 0x4B68 JUMP JUMPDEST POP ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x495C JUMPI PUSH2 0x495C PUSH2 0x4B68 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND DUP1 PUSH2 0x4978 JUMPI PUSH2 0x4978 PUSH2 0x4B7E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP3 EQ PUSH1 0x0 NOT DUP3 EQ AND ISZERO PUSH2 0x4996 JUMPI PUSH2 0x4996 PUSH2 0x4B68 JUMP JUMPDEST SWAP1 SDIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x49AE JUMPI PUSH2 0x49AE PUSH2 0x4B7E JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP4 DUP3 SGT DUP5 DUP5 SGT DUP1 DUP3 AND DUP5 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x49E2 JUMPI PUSH2 0x49E2 PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP7 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x4A04 JUMPI PUSH2 0x4A04 PUSH2 0x4B68 JUMP JUMPDEST DUP8 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x4A1F JUMPI PUSH2 0x4A1F PUSH2 0x4B68 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x4A35 JUMPI PUSH2 0x4A35 PUSH2 0x4B68 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x4A5F JUMPI PUSH2 0x4A5F PUSH2 0x4B68 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND DUP3 DUP2 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP4 ADD DUP5 SLT AND ISZERO PUSH2 0x4A8F JUMPI PUSH2 0x4A8F PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP3 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x4AAA JUMPI PUSH2 0x4AAA PUSH2 0x4B68 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0xFF SHL DUP6 ADD DUP5 SLT AND ISZERO PUSH2 0x4AD2 JUMPI PUSH2 0x4AD2 PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x4AED JUMPI PUSH2 0x4AED PUSH2 0x4B68 JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x4B05 JUMPI PUSH2 0x4B05 PUSH2 0x4B68 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4B25 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4B0D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1DEA JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x4B45 JUMPI PUSH2 0x4B45 PUSH2 0x4B68 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4B61 JUMPI PUSH2 0x4B61 PUSH2 0x4B68 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x342B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x342B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x342B JUMPI PUSH1 0x0 DUP1 REVERT INVALID SWAP14 PUSH28 0x1CF62E8376E2EF102E20D4E487B829FF44D58DDB1F416EE01CF2ED26 DUP3 SWAP15 0xDD CALLCODE MSTORE 0xAD SHL 0xE2 0xC8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 CREATE2 GAS 0x4D CREATE2 0x23 0xB3 0xEF LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH4 0x88773BE1 0x24 PUSH26 0xF96825D9AAC10D932B2A88383CFFB4091D994F4D4F62FEF7AD64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"1471:46973:69:-:0;;;1807:34;;;-1:-1:-1;;;;1807:34:69;-1:-1:-1;;;1807:34:69;;;2615:9;2584:40;;3797:521;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:22;1806:7;:22;;;3954:8:69;:31;;-1:-1:-1;;;;;;3954:31:69;-1:-1:-1;;;;;3954:31:69;;;;;3996:16;;;:13;:16;;4019:12;3996:20;:35;4063:15;4041:19;:37;4089:42;;4120:10;4089;:42::i;:::-;4141:38;3519:27;4168:10;4141;:38::i;:::-;4190:53;4209:11;4222:20;4190:18;:53::i;:::-;-1:-1:-1;4253:17:69;:58;;-1:-1:-1;;;;;;4253:58:69;-1:-1:-1;;;;;4253:58:69;;;;;;;;;;-1:-1:-1;1471:46973:69;;-1:-1:-1;1471:46973:69;6824:110:0;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;2734:327:35:-;2461:5;-1:-1:-1;;;;;2836:33:35;;;;2828:88;;;;-1:-1:-1;;;2828:88:35;;967:2:139;2828:88:35;;;949:21:139;1006:2;986:18;;;979:30;1045:34;1025:18;;;1018:62;-1:-1:-1;;;1096:18:139;;;1089:40;1146:19;;2828:88:35;;;;;;;;;-1:-1:-1;;;;;2934:22:35;;2926:60;;;;-1:-1:-1;;;2926:60:35;;1378:2:139;2926:60:35;;;1360:21:139;1417:2;1397:18;;;1390:30;1456:27;1436:18;;;1429:55;1501:18;;2926:60:35;1350:175:139;2926:60:35;3019:35;;;;;;;;;-1:-1:-1;;;;;3019:35:35;;;;;;-1:-1:-1;;;;;3019:35:35;;;;;;;;;;-1:-1:-1;;;2997:57:35;;;;:19;:57;2734:327::o;7474:233:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7552:149;;7595:12;;;;7627:4;7595:12;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;;;;;;;7650:40;;719:10:38;;7595:12:0;;7650:40;;7595:12;7650:40;7474:233;;:::o;14:177:139:-;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:564::-;292:6;300;308;316;369:3;357:9;348:7;344:23;340:33;337:2;;;391:6;383;376:22;337:2;419:40;449:9;419:40;:::i;:::-;409:50;;478:49;523:2;512:9;508:18;478:49;:::i;:::-;468:59;;546:49;591:2;580:9;576:18;546:49;:::i;:::-;638:2;623:18;;617:25;536:59;;-1:-1:-1;;;;;;671:30:139;;661:41;;651:2;;721:6;713;706:22;651:2;327:433;;;;-1:-1:-1;327:433:139;;-1:-1:-1;;327:433:139:o;1350:175::-;1471:46973:69;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:31873:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:629:139","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:139"},"nodeType":"YulFunctionCall","src":"129:20:139"},"nodeType":"YulExpressionStatement","src":"129:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:139"},"nodeType":"YulFunctionCall","src":"102:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:139"},"nodeType":"YulFunctionCall","src":"98:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:139"},"nodeType":"YulFunctionCall","src":"91:35:139"},"nodeType":"YulIf","src":"88:2:139"},{"nodeType":"YulVariableDeclaration","src":"160:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"183:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"170:12:139"},"nodeType":"YulFunctionCall","src":"170:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"199:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"209:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"203:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"222:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"289:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"249:39:139"},"nodeType":"YulFunctionCall","src":"249:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"233:15:139"},"nodeType":"YulFunctionCall","src":"233:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"226:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"302:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"315:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"306:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"334:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"339:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"327:6:139"},"nodeType":"YulFunctionCall","src":"327:15:139"},"nodeType":"YulExpressionStatement","src":"327:15:139"},{"nodeType":"YulAssignment","src":"351:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"362:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"367:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"358:3:139"},"nodeType":"YulFunctionCall","src":"358:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"351:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"379:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"394:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"402:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"390:3:139"},"nodeType":"YulFunctionCall","src":"390:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"383:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"459:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"468:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"475:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"461:6:139"},"nodeType":"YulFunctionCall","src":"461:20:139"},"nodeType":"YulExpressionStatement","src":"461:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"428:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"443:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"436:3:139"},"nodeType":"YulFunctionCall","src":"436:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"424:3:139"},"nodeType":"YulFunctionCall","src":"424:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"449:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"420:3:139"},"nodeType":"YulFunctionCall","src":"420:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"454:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"417:2:139"},"nodeType":"YulFunctionCall","src":"417:41:139"},"nodeType":"YulIf","src":"414:2:139"},{"nodeType":"YulVariableDeclaration","src":"492:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"501:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"496:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"560:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"581:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"599:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"586:12:139"},"nodeType":"YulFunctionCall","src":"586:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"574:6:139"},"nodeType":"YulFunctionCall","src":"574:30:139"},"nodeType":"YulExpressionStatement","src":"574:30:139"},{"nodeType":"YulAssignment","src":"617:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"628:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"633:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"624:3:139"},"nodeType":"YulFunctionCall","src":"624:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"617:3:139"}]},{"nodeType":"YulAssignment","src":"649:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"660:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"665:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"656:3:139"},"nodeType":"YulFunctionCall","src":"656:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"649:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"526:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"529:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"523:2:139"},"nodeType":"YulFunctionCall","src":"523:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"533:18:139","statements":[{"nodeType":"YulAssignment","src":"535:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"544:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"547:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"540:3:139"},"nodeType":"YulFunctionCall","src":"540:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"535:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"519:3:139","statements":[]},"src":"515:163:139"},{"nodeType":"YulAssignment","src":"687:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"696:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"687:5:139"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:139","type":""}],"src":"14:693:139"},{"body":{"nodeType":"YulBlock","src":"758:82:139","statements":[{"nodeType":"YulAssignment","src":"768:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"790:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"777:12:139"},"nodeType":"YulFunctionCall","src":"777:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"768:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"828:5:139"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"806:21:139"},"nodeType":"YulFunctionCall","src":"806:28:139"},"nodeType":"YulExpressionStatement","src":"806:28:139"}]},"name":"abi_decode_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"737:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"748:5:139","type":""}],"src":"712:128:139"},{"body":{"nodeType":"YulBlock","src":"915:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"961:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"970:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"978:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"963:6:139"},"nodeType":"YulFunctionCall","src":"963:22:139"},"nodeType":"YulExpressionStatement","src":"963:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"936:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"945:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"932:3:139"},"nodeType":"YulFunctionCall","src":"932:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"957:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"928:3:139"},"nodeType":"YulFunctionCall","src":"928:32:139"},"nodeType":"YulIf","src":"925:2:139"},{"nodeType":"YulVariableDeclaration","src":"996:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1022:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1009:12:139"},"nodeType":"YulFunctionCall","src":"1009:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1000:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1066:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1041:24:139"},"nodeType":"YulFunctionCall","src":"1041:31:139"},"nodeType":"YulExpressionStatement","src":"1041:31:139"},{"nodeType":"YulAssignment","src":"1081:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1091:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1081:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"881:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"892:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"904:6:139","type":""}],"src":"845:257:139"},{"body":{"nodeType":"YulBlock","src":"1188:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"1234:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1243:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1251:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1236:6:139"},"nodeType":"YulFunctionCall","src":"1236:22:139"},"nodeType":"YulExpressionStatement","src":"1236:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1209:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1218:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1205:3:139"},"nodeType":"YulFunctionCall","src":"1205:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1230:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1201:3:139"},"nodeType":"YulFunctionCall","src":"1201:32:139"},"nodeType":"YulIf","src":"1198:2:139"},{"nodeType":"YulVariableDeclaration","src":"1269:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1288:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1282:5:139"},"nodeType":"YulFunctionCall","src":"1282:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1273:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1332:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1307:24:139"},"nodeType":"YulFunctionCall","src":"1307:31:139"},"nodeType":"YulExpressionStatement","src":"1307:31:139"},{"nodeType":"YulAssignment","src":"1347:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1357:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1347:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1154:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1165:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1177:6:139","type":""}],"src":"1107:261:139"},{"body":{"nodeType":"YulBlock","src":"1460:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"1506:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1515:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1523:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1508:6:139"},"nodeType":"YulFunctionCall","src":"1508:22:139"},"nodeType":"YulExpressionStatement","src":"1508:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1481:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1490:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1477:3:139"},"nodeType":"YulFunctionCall","src":"1477:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1502:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1473:3:139"},"nodeType":"YulFunctionCall","src":"1473:32:139"},"nodeType":"YulIf","src":"1470:2:139"},{"nodeType":"YulVariableDeclaration","src":"1541:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1567:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1554:12:139"},"nodeType":"YulFunctionCall","src":"1554:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1545:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1611:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1586:24:139"},"nodeType":"YulFunctionCall","src":"1586:31:139"},"nodeType":"YulExpressionStatement","src":"1586:31:139"},{"nodeType":"YulAssignment","src":"1626:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1636:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1626:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1650:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1682:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1693:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1678:3:139"},"nodeType":"YulFunctionCall","src":"1678:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1665:12:139"},"nodeType":"YulFunctionCall","src":"1665:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1654:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1731:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1706:24:139"},"nodeType":"YulFunctionCall","src":"1706:33:139"},"nodeType":"YulExpressionStatement","src":"1706:33:139"},{"nodeType":"YulAssignment","src":"1748:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1758:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1748:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1418:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1429:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1441:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1449:6:139","type":""}],"src":"1373:398:139"},{"body":{"nodeType":"YulBlock","src":"1880:362:139","statements":[{"body":{"nodeType":"YulBlock","src":"1926:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1935:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"1943:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1928:6:139"},"nodeType":"YulFunctionCall","src":"1928:22:139"},"nodeType":"YulExpressionStatement","src":"1928:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1901:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1910:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1897:3:139"},"nodeType":"YulFunctionCall","src":"1897:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1922:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1893:3:139"},"nodeType":"YulFunctionCall","src":"1893:32:139"},"nodeType":"YulIf","src":"1890:2:139"},{"nodeType":"YulVariableDeclaration","src":"1961:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1987:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1974:12:139"},"nodeType":"YulFunctionCall","src":"1974:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1965:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2031:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2006:24:139"},"nodeType":"YulFunctionCall","src":"2006:31:139"},"nodeType":"YulExpressionStatement","src":"2006:31:139"},{"nodeType":"YulAssignment","src":"2046:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2056:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2046:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2070:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2102:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2113:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2098:3:139"},"nodeType":"YulFunctionCall","src":"2098:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2085:12:139"},"nodeType":"YulFunctionCall","src":"2085:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2074:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2151:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2126:24:139"},"nodeType":"YulFunctionCall","src":"2126:33:139"},"nodeType":"YulExpressionStatement","src":"2126:33:139"},{"nodeType":"YulAssignment","src":"2168:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2178:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2168:6:139"}]},{"nodeType":"YulAssignment","src":"2194:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2221:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2232:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2217:3:139"},"nodeType":"YulFunctionCall","src":"2217:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2204:12:139"},"nodeType":"YulFunctionCall","src":"2204:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2194:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1830:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1841:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1853:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1861:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1869:6:139","type":""}],"src":"1776:466:139"},{"body":{"nodeType":"YulBlock","src":"2377:931:139","statements":[{"body":{"nodeType":"YulBlock","src":"2424:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2433:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2441:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2426:6:139"},"nodeType":"YulFunctionCall","src":"2426:22:139"},"nodeType":"YulExpressionStatement","src":"2426:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2398:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2407:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2394:3:139"},"nodeType":"YulFunctionCall","src":"2394:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2419:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2390:3:139"},"nodeType":"YulFunctionCall","src":"2390:33:139"},"nodeType":"YulIf","src":"2387:2:139"},{"nodeType":"YulVariableDeclaration","src":"2459:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2485:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2472:12:139"},"nodeType":"YulFunctionCall","src":"2472:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2463:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2529:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2504:24:139"},"nodeType":"YulFunctionCall","src":"2504:31:139"},"nodeType":"YulExpressionStatement","src":"2504:31:139"},{"nodeType":"YulAssignment","src":"2544:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2554:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2544:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2568:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2600:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2611:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2596:3:139"},"nodeType":"YulFunctionCall","src":"2596:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2583:12:139"},"nodeType":"YulFunctionCall","src":"2583:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2572:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2649:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2624:24:139"},"nodeType":"YulFunctionCall","src":"2624:33:139"},"nodeType":"YulExpressionStatement","src":"2624:33:139"},{"nodeType":"YulAssignment","src":"2666:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2676:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2666:6:139"}]},{"nodeType":"YulAssignment","src":"2692:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2719:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2715:3:139"},"nodeType":"YulFunctionCall","src":"2715:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2702:12:139"},"nodeType":"YulFunctionCall","src":"2702:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2692:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2743:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2774:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2785:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2770:3:139"},"nodeType":"YulFunctionCall","src":"2770:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2757:12:139"},"nodeType":"YulFunctionCall","src":"2757:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2747:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2832:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2841:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2849:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2834:6:139"},"nodeType":"YulFunctionCall","src":"2834:22:139"},"nodeType":"YulExpressionStatement","src":"2834:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2804:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2812:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2801:2:139"},"nodeType":"YulFunctionCall","src":"2801:30:139"},"nodeType":"YulIf","src":"2798:2:139"},{"nodeType":"YulVariableDeclaration","src":"2867:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2881:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2892:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2877:3:139"},"nodeType":"YulFunctionCall","src":"2877:22:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2871:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2947:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2956:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2964:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2949:6:139"},"nodeType":"YulFunctionCall","src":"2949:22:139"},"nodeType":"YulExpressionStatement","src":"2949:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2926:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2930:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2922:3:139"},"nodeType":"YulFunctionCall","src":"2922:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2937:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2918:3:139"},"nodeType":"YulFunctionCall","src":"2918:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2911:6:139"},"nodeType":"YulFunctionCall","src":"2911:35:139"},"nodeType":"YulIf","src":"2908:2:139"},{"nodeType":"YulVariableDeclaration","src":"2982:26:139","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3005:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2992:12:139"},"nodeType":"YulFunctionCall","src":"2992:16:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2986:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3017:61:139","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3074:2:139"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"3046:27:139"},"nodeType":"YulFunctionCall","src":"3046:31:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3030:15:139"},"nodeType":"YulFunctionCall","src":"3030:48:139"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"3021:5:139","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3094:5:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3101:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3087:6:139"},"nodeType":"YulFunctionCall","src":"3087:17:139"},"nodeType":"YulExpressionStatement","src":"3087:17:139"},{"body":{"nodeType":"YulBlock","src":"3150:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3159:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"3167:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3152:6:139"},"nodeType":"YulFunctionCall","src":"3152:22:139"},"nodeType":"YulExpressionStatement","src":"3152:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3127:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3131:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3123:3:139"},"nodeType":"YulFunctionCall","src":"3123:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3136:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3119:3:139"},"nodeType":"YulFunctionCall","src":"3119:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3141:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3116:2:139"},"nodeType":"YulFunctionCall","src":"3116:33:139"},"nodeType":"YulIf","src":"3113:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3202:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"3209:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3198:3:139"},"nodeType":"YulFunctionCall","src":"3198:14:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3218:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3214:3:139"},"nodeType":"YulFunctionCall","src":"3214:11:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3227:2:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3185:12:139"},"nodeType":"YulFunctionCall","src":"3185:45:139"},"nodeType":"YulExpressionStatement","src":"3185:45:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3254:5:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3261:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3250:3:139"},"nodeType":"YulFunctionCall","src":"3250:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"3266:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3246:3:139"},"nodeType":"YulFunctionCall","src":"3246:23:139"},{"name":"value3","nodeType":"YulIdentifier","src":"3271:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3239:6:139"},"nodeType":"YulFunctionCall","src":"3239:39:139"},"nodeType":"YulExpressionStatement","src":"3239:39:139"},{"nodeType":"YulAssignment","src":"3287:15:139","value":{"name":"array","nodeType":"YulIdentifier","src":"3297:5:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3287:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2319:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2330:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2342:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2350:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2358:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2366:6:139","type":""}],"src":"2247:1061:139"},{"body":{"nodeType":"YulBlock","src":"3397:308:139","statements":[{"body":{"nodeType":"YulBlock","src":"3443:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3452:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3460:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3445:6:139"},"nodeType":"YulFunctionCall","src":"3445:22:139"},"nodeType":"YulExpressionStatement","src":"3445:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3418:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3427:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3414:3:139"},"nodeType":"YulFunctionCall","src":"3414:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3439:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3410:3:139"},"nodeType":"YulFunctionCall","src":"3410:32:139"},"nodeType":"YulIf","src":"3407:2:139"},{"nodeType":"YulVariableDeclaration","src":"3478:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3504:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3491:12:139"},"nodeType":"YulFunctionCall","src":"3491:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3482:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3548:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3523:24:139"},"nodeType":"YulFunctionCall","src":"3523:31:139"},"nodeType":"YulExpressionStatement","src":"3523:31:139"},{"nodeType":"YulAssignment","src":"3563:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3573:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3563:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3587:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3619:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3630:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3615:3:139"},"nodeType":"YulFunctionCall","src":"3615:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3602:12:139"},"nodeType":"YulFunctionCall","src":"3602:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3591:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3665:7:139"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3643:21:139"},"nodeType":"YulFunctionCall","src":"3643:30:139"},"nodeType":"YulExpressionStatement","src":"3643:30:139"},{"nodeType":"YulAssignment","src":"3682:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"3692:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3682:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3355:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3366:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3378:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3386:6:139","type":""}],"src":"3313:392:139"},{"body":{"nodeType":"YulBlock","src":"3797:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"3843:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3852:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3860:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3845:6:139"},"nodeType":"YulFunctionCall","src":"3845:22:139"},"nodeType":"YulExpressionStatement","src":"3845:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3818:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3827:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3814:3:139"},"nodeType":"YulFunctionCall","src":"3814:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3839:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3810:3:139"},"nodeType":"YulFunctionCall","src":"3810:32:139"},"nodeType":"YulIf","src":"3807:2:139"},{"nodeType":"YulVariableDeclaration","src":"3878:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3904:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3891:12:139"},"nodeType":"YulFunctionCall","src":"3891:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3882:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3948:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3923:24:139"},"nodeType":"YulFunctionCall","src":"3923:31:139"},"nodeType":"YulExpressionStatement","src":"3923:31:139"},{"nodeType":"YulAssignment","src":"3963:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3973:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3963:6:139"}]},{"nodeType":"YulAssignment","src":"3987:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4014:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4025:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4010:3:139"},"nodeType":"YulFunctionCall","src":"4010:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3997:12:139"},"nodeType":"YulFunctionCall","src":"3997:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3987:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3755:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3766:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3778:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3786:6:139","type":""}],"src":"3710:325:139"},{"body":{"nodeType":"YulBlock","src":"4126:369:139","statements":[{"body":{"nodeType":"YulBlock","src":"4172:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4181:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4189:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4174:6:139"},"nodeType":"YulFunctionCall","src":"4174:22:139"},"nodeType":"YulExpressionStatement","src":"4174:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4147:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4156:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4143:3:139"},"nodeType":"YulFunctionCall","src":"4143:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4168:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4139:3:139"},"nodeType":"YulFunctionCall","src":"4139:32:139"},"nodeType":"YulIf","src":"4136:2:139"},{"nodeType":"YulVariableDeclaration","src":"4207:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4233:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4220:12:139"},"nodeType":"YulFunctionCall","src":"4220:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4211:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4277:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4252:24:139"},"nodeType":"YulFunctionCall","src":"4252:31:139"},"nodeType":"YulExpressionStatement","src":"4252:31:139"},{"nodeType":"YulAssignment","src":"4292:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"4302:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4292:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4316:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4348:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4359:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4344:3:139"},"nodeType":"YulFunctionCall","src":"4344:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4331:12:139"},"nodeType":"YulFunctionCall","src":"4331:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4320:7:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4437:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4446:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4454:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4439:6:139"},"nodeType":"YulFunctionCall","src":"4439:22:139"},"nodeType":"YulExpressionStatement","src":"4439:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4385:7:139"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4398:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"4407:26:139","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4394:3:139"},"nodeType":"YulFunctionCall","src":"4394:40:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4382:2:139"},"nodeType":"YulFunctionCall","src":"4382:53:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4375:6:139"},"nodeType":"YulFunctionCall","src":"4375:61:139"},"nodeType":"YulIf","src":"4372:2:139"},{"nodeType":"YulAssignment","src":"4472:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"4482:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4472:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4084:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4095:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4107:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4115:6:139","type":""}],"src":"4040:455:139"},{"body":{"nodeType":"YulBlock","src":"4693:1393:139","statements":[{"body":{"nodeType":"YulBlock","src":"4740:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4749:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"4757:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4742:6:139"},"nodeType":"YulFunctionCall","src":"4742:22:139"},"nodeType":"YulExpressionStatement","src":"4742:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4714:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4723:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4710:3:139"},"nodeType":"YulFunctionCall","src":"4710:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4735:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4706:3:139"},"nodeType":"YulFunctionCall","src":"4706:33:139"},"nodeType":"YulIf","src":"4703:2:139"},{"nodeType":"YulVariableDeclaration","src":"4775:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4802:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4789:12:139"},"nodeType":"YulFunctionCall","src":"4789:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4779:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4821:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"4831:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4825:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4876:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4885:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"4893:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4878:6:139"},"nodeType":"YulFunctionCall","src":"4878:22:139"},"nodeType":"YulExpressionStatement","src":"4878:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4864:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4872:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4861:2:139"},"nodeType":"YulFunctionCall","src":"4861:14:139"},"nodeType":"YulIf","src":"4858:2:139"},{"nodeType":"YulVariableDeclaration","src":"4911:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4925:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4936:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4921:3:139"},"nodeType":"YulFunctionCall","src":"4921:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4915:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4991:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5000:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5008:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4993:6:139"},"nodeType":"YulFunctionCall","src":"4993:22:139"},"nodeType":"YulExpressionStatement","src":"4993:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4970:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"4974:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4966:3:139"},"nodeType":"YulFunctionCall","src":"4966:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4981:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4962:3:139"},"nodeType":"YulFunctionCall","src":"4962:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4955:6:139"},"nodeType":"YulFunctionCall","src":"4955:35:139"},"nodeType":"YulIf","src":"4952:2:139"},{"nodeType":"YulVariableDeclaration","src":"5026:26:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5049:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5036:12:139"},"nodeType":"YulFunctionCall","src":"5036:16:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5030:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5061:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"5071:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5065:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5084:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5151:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"5111:39:139"},"nodeType":"YulFunctionCall","src":"5111:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5095:15:139"},"nodeType":"YulFunctionCall","src":"5095:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"5088:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5164:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"5177:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"5168:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5196:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"5201:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5189:6:139"},"nodeType":"YulFunctionCall","src":"5189:15:139"},"nodeType":"YulExpressionStatement","src":"5189:15:139"},{"nodeType":"YulAssignment","src":"5213:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5224:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5229:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5220:3:139"},"nodeType":"YulFunctionCall","src":"5220:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5213:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"5241:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5256:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5260:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5252:3:139"},"nodeType":"YulFunctionCall","src":"5252:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"5245:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5317:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5326:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5334:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5319:6:139"},"nodeType":"YulFunctionCall","src":"5319:22:139"},"nodeType":"YulExpressionStatement","src":"5319:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5286:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5294:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"5297:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5290:3:139"},"nodeType":"YulFunctionCall","src":"5290:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5282:3:139"},"nodeType":"YulFunctionCall","src":"5282:19:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5303:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5278:3:139"},"nodeType":"YulFunctionCall","src":"5278:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5308:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5275:2:139"},"nodeType":"YulFunctionCall","src":"5275:41:139"},"nodeType":"YulIf","src":"5272:2:139"},{"nodeType":"YulVariableDeclaration","src":"5352:15:139","value":{"name":"value2","nodeType":"YulIdentifier","src":"5361:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5356:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5421:193:139","statements":[{"nodeType":"YulVariableDeclaration","src":"5435:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5461:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5448:12:139"},"nodeType":"YulFunctionCall","src":"5448:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5439:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5503:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5478:24:139"},"nodeType":"YulFunctionCall","src":"5478:31:139"},"nodeType":"YulExpressionStatement","src":"5478:31:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5529:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"5534:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5522:6:139"},"nodeType":"YulFunctionCall","src":"5522:18:139"},"nodeType":"YulExpressionStatement","src":"5522:18:139"},{"nodeType":"YulAssignment","src":"5553:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5564:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5569:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5560:3:139"},"nodeType":"YulFunctionCall","src":"5560:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5553:3:139"}]},{"nodeType":"YulAssignment","src":"5585:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5596:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5601:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:139"},"nodeType":"YulFunctionCall","src":"5592:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"5585:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5387:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"5390:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5384:2:139"},"nodeType":"YulFunctionCall","src":"5384:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5394:18:139","statements":[{"nodeType":"YulAssignment","src":"5396:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5405:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"5408:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5401:3:139"},"nodeType":"YulFunctionCall","src":"5401:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5396:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"5380:3:139","statements":[]},"src":"5376:238:139"},{"nodeType":"YulAssignment","src":"5623:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"5633:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5623:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5647:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5680:9:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5691:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5676:3:139"},"nodeType":"YulFunctionCall","src":"5676:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5663:12:139"},"nodeType":"YulFunctionCall","src":"5663:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5651:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5724:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5733:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5741:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5726:6:139"},"nodeType":"YulFunctionCall","src":"5726:22:139"},"nodeType":"YulExpressionStatement","src":"5726:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5710:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5720:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5707:2:139"},"nodeType":"YulFunctionCall","src":"5707:16:139"},"nodeType":"YulIf","src":"5704:2:139"},{"nodeType":"YulAssignment","src":"5759:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5802:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5813:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5798:3:139"},"nodeType":"YulFunctionCall","src":"5798:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5824:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"5769:28:139"},"nodeType":"YulFunctionCall","src":"5769:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5759:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5841:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5874:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5885:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5870:3:139"},"nodeType":"YulFunctionCall","src":"5870:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5857:12:139"},"nodeType":"YulFunctionCall","src":"5857:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"5845:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5918:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5927:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5935:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5920:6:139"},"nodeType":"YulFunctionCall","src":"5920:22:139"},"nodeType":"YulExpressionStatement","src":"5920:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"5904:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5914:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5901:2:139"},"nodeType":"YulFunctionCall","src":"5901:16:139"},"nodeType":"YulIf","src":"5898:2:139"},{"nodeType":"YulAssignment","src":"5953:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5996:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"6007:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5992:3:139"},"nodeType":"YulFunctionCall","src":"5992:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6018:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"5963:28:139"},"nodeType":"YulFunctionCall","src":"5963:63:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5953:6:139"}]},{"nodeType":"YulAssignment","src":"6035:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6065:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6076:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6061:3:139"},"nodeType":"YulFunctionCall","src":"6061:18:139"}],"functionName":{"name":"abi_decode_bool","nodeType":"YulIdentifier","src":"6045:15:139"},"nodeType":"YulFunctionCall","src":"6045:35:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6035:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4635:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4646:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4658:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4666:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4674:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4682:6:139","type":""}],"src":"4500:1586:139"},{"body":{"nodeType":"YulBlock","src":"6169:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"6215:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6224:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6232:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6217:6:139"},"nodeType":"YulFunctionCall","src":"6217:22:139"},"nodeType":"YulExpressionStatement","src":"6217:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6190:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6199:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6186:3:139"},"nodeType":"YulFunctionCall","src":"6186:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6211:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6182:3:139"},"nodeType":"YulFunctionCall","src":"6182:32:139"},"nodeType":"YulIf","src":"6179:2:139"},{"nodeType":"YulVariableDeclaration","src":"6250:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6269:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6263:5:139"},"nodeType":"YulFunctionCall","src":"6263:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6254:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6310:5:139"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"6288:21:139"},"nodeType":"YulFunctionCall","src":"6288:28:139"},"nodeType":"YulExpressionStatement","src":"6288:28:139"},{"nodeType":"YulAssignment","src":"6325:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6335:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6325:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6135:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6146:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6158:6:139","type":""}],"src":"6091:255:139"},{"body":{"nodeType":"YulBlock","src":"6421:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"6467:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6476:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6484:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6469:6:139"},"nodeType":"YulFunctionCall","src":"6469:22:139"},"nodeType":"YulExpressionStatement","src":"6469:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6442:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6451:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6438:3:139"},"nodeType":"YulFunctionCall","src":"6438:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6463:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6434:3:139"},"nodeType":"YulFunctionCall","src":"6434:32:139"},"nodeType":"YulIf","src":"6431:2:139"},{"nodeType":"YulAssignment","src":"6502:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6525:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6512:12:139"},"nodeType":"YulFunctionCall","src":"6512:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6502:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6387:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6398:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6410:6:139","type":""}],"src":"6351:190:139"},{"body":{"nodeType":"YulBlock","src":"6633:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"6679:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6688:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6696:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6681:6:139"},"nodeType":"YulFunctionCall","src":"6681:22:139"},"nodeType":"YulExpressionStatement","src":"6681:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6654:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6663:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6650:3:139"},"nodeType":"YulFunctionCall","src":"6650:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6675:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6646:3:139"},"nodeType":"YulFunctionCall","src":"6646:32:139"},"nodeType":"YulIf","src":"6643:2:139"},{"nodeType":"YulAssignment","src":"6714:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6737:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6724:12:139"},"nodeType":"YulFunctionCall","src":"6724:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6714:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6756:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6786:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6797:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6782:3:139"},"nodeType":"YulFunctionCall","src":"6782:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6769:12:139"},"nodeType":"YulFunctionCall","src":"6769:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6760:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6835:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6810:24:139"},"nodeType":"YulFunctionCall","src":"6810:31:139"},"nodeType":"YulExpressionStatement","src":"6810:31:139"},{"nodeType":"YulAssignment","src":"6850:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6860:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6850:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6591:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6602:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6614:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6622:6:139","type":""}],"src":"6546:325:139"},{"body":{"nodeType":"YulBlock","src":"6945:186:139","statements":[{"body":{"nodeType":"YulBlock","src":"6991:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7000:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7008:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6993:6:139"},"nodeType":"YulFunctionCall","src":"6993:22:139"},"nodeType":"YulExpressionStatement","src":"6993:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6966:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6975:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6962:3:139"},"nodeType":"YulFunctionCall","src":"6962:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6987:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6958:3:139"},"nodeType":"YulFunctionCall","src":"6958:32:139"},"nodeType":"YulIf","src":"6955:2:139"},{"nodeType":"YulVariableDeclaration","src":"7026:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7052:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7039:12:139"},"nodeType":"YulFunctionCall","src":"7039:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7030:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7095:5:139"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"7071:23:139"},"nodeType":"YulFunctionCall","src":"7071:30:139"},"nodeType":"YulExpressionStatement","src":"7071:30:139"},{"nodeType":"YulAssignment","src":"7110:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"7120:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7110:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6911:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6922:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6934:6:139","type":""}],"src":"6876:255:139"},{"body":{"nodeType":"YulBlock","src":"7216:179:139","statements":[{"body":{"nodeType":"YulBlock","src":"7262:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7271:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7279:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7264:6:139"},"nodeType":"YulFunctionCall","src":"7264:22:139"},"nodeType":"YulExpressionStatement","src":"7264:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7237:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7246:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7233:3:139"},"nodeType":"YulFunctionCall","src":"7233:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7258:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7229:3:139"},"nodeType":"YulFunctionCall","src":"7229:32:139"},"nodeType":"YulIf","src":"7226:2:139"},{"nodeType":"YulVariableDeclaration","src":"7297:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7316:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7310:5:139"},"nodeType":"YulFunctionCall","src":"7310:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7301:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7359:5:139"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"7335:23:139"},"nodeType":"YulFunctionCall","src":"7335:30:139"},"nodeType":"YulExpressionStatement","src":"7335:30:139"},{"nodeType":"YulAssignment","src":"7374:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"7384:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7374:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7182:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7193:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7205:6:139","type":""}],"src":"7136:259:139"},{"body":{"nodeType":"YulBlock","src":"7498:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"7544:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7553:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7561:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7546:6:139"},"nodeType":"YulFunctionCall","src":"7546:22:139"},"nodeType":"YulExpressionStatement","src":"7546:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7519:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7528:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7515:3:139"},"nodeType":"YulFunctionCall","src":"7515:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7540:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7511:3:139"},"nodeType":"YulFunctionCall","src":"7511:32:139"},"nodeType":"YulIf","src":"7508:2:139"},{"nodeType":"YulVariableDeclaration","src":"7579:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7605:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7592:12:139"},"nodeType":"YulFunctionCall","src":"7592:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7583:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7649:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7624:24:139"},"nodeType":"YulFunctionCall","src":"7624:31:139"},"nodeType":"YulExpressionStatement","src":"7624:31:139"},{"nodeType":"YulAssignment","src":"7664:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"7674:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7664:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_ITokenURIGenerator_$35664","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7464:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7475:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7487:6:139","type":""}],"src":"7400:285:139"},{"body":{"nodeType":"YulBlock","src":"7781:584:139","statements":[{"body":{"nodeType":"YulBlock","src":"7827:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7836:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7844:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7829:6:139"},"nodeType":"YulFunctionCall","src":"7829:22:139"},"nodeType":"YulExpressionStatement","src":"7829:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7802:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7811:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7798:3:139"},"nodeType":"YulFunctionCall","src":"7798:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7823:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7794:3:139"},"nodeType":"YulFunctionCall","src":"7794:32:139"},"nodeType":"YulIf","src":"7791:2:139"},{"nodeType":"YulVariableDeclaration","src":"7862:30:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7882:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7876:5:139"},"nodeType":"YulFunctionCall","src":"7876:16:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7866:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7935:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7944:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7952:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7937:6:139"},"nodeType":"YulFunctionCall","src":"7937:22:139"},"nodeType":"YulExpressionStatement","src":"7937:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7907:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7915:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7904:2:139"},"nodeType":"YulFunctionCall","src":"7904:30:139"},"nodeType":"YulIf","src":"7901:2:139"},{"nodeType":"YulVariableDeclaration","src":"7970:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7984:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"7995:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7980:3:139"},"nodeType":"YulFunctionCall","src":"7980:22:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7974:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8050:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8059:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8067:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8052:6:139"},"nodeType":"YulFunctionCall","src":"8052:22:139"},"nodeType":"YulExpressionStatement","src":"8052:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8029:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"8033:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8025:3:139"},"nodeType":"YulFunctionCall","src":"8025:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8040:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8021:3:139"},"nodeType":"YulFunctionCall","src":"8021:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8014:6:139"},"nodeType":"YulFunctionCall","src":"8014:35:139"},"nodeType":"YulIf","src":"8011:2:139"},{"nodeType":"YulVariableDeclaration","src":"8085:19:139","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8101:2:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8095:5:139"},"nodeType":"YulFunctionCall","src":"8095:9:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8089:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8113:61:139","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8170:2:139"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"8142:27:139"},"nodeType":"YulFunctionCall","src":"8142:31:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8126:15:139"},"nodeType":"YulFunctionCall","src":"8126:48:139"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"8117:5:139","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"8190:5:139"},{"name":"_2","nodeType":"YulIdentifier","src":"8197:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8183:6:139"},"nodeType":"YulFunctionCall","src":"8183:17:139"},"nodeType":"YulExpressionStatement","src":"8183:17:139"},{"body":{"nodeType":"YulBlock","src":"8246:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8255:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8263:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8248:6:139"},"nodeType":"YulFunctionCall","src":"8248:22:139"},"nodeType":"YulExpressionStatement","src":"8248:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8223:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"8227:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8219:3:139"},"nodeType":"YulFunctionCall","src":"8219:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"8232:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8215:3:139"},"nodeType":"YulFunctionCall","src":"8215:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8237:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8212:2:139"},"nodeType":"YulFunctionCall","src":"8212:33:139"},"nodeType":"YulIf","src":"8209:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8307:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"8311:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8303:3:139"},"nodeType":"YulFunctionCall","src":"8303:11:139"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"8320:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"8327:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8316:3:139"},"nodeType":"YulFunctionCall","src":"8316:14:139"},{"name":"_2","nodeType":"YulIdentifier","src":"8332:2:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8281:21:139"},"nodeType":"YulFunctionCall","src":"8281:54:139"},"nodeType":"YulExpressionStatement","src":"8281:54:139"},{"nodeType":"YulAssignment","src":"8344:15:139","value":{"name":"array","nodeType":"YulIdentifier","src":"8354:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8344:6:139"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7747:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7758:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7770:6:139","type":""}],"src":"7690:675:139"},{"body":{"nodeType":"YulBlock","src":"8440:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"8486:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8495:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8503:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8488:6:139"},"nodeType":"YulFunctionCall","src":"8488:22:139"},"nodeType":"YulExpressionStatement","src":"8488:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8461:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8470:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8457:3:139"},"nodeType":"YulFunctionCall","src":"8457:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8482:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8453:3:139"},"nodeType":"YulFunctionCall","src":"8453:32:139"},"nodeType":"YulIf","src":"8450:2:139"},{"nodeType":"YulAssignment","src":"8521:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8544:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8531:12:139"},"nodeType":"YulFunctionCall","src":"8531:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8521:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8406:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8417:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8429:6:139","type":""}],"src":"8370:190:139"},{"body":{"nodeType":"YulBlock","src":"8646:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"8692:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8701:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8709:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8694:6:139"},"nodeType":"YulFunctionCall","src":"8694:22:139"},"nodeType":"YulExpressionStatement","src":"8694:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8667:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8676:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8663:3:139"},"nodeType":"YulFunctionCall","src":"8663:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8688:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8659:3:139"},"nodeType":"YulFunctionCall","src":"8659:32:139"},"nodeType":"YulIf","src":"8656:2:139"},{"nodeType":"YulAssignment","src":"8727:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8743:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8737:5:139"},"nodeType":"YulFunctionCall","src":"8737:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8727:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8612:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8623:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8635:6:139","type":""}],"src":"8565:194:139"},{"body":{"nodeType":"YulBlock","src":"8851:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"8897:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8906:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8914:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8899:6:139"},"nodeType":"YulFunctionCall","src":"8899:22:139"},"nodeType":"YulExpressionStatement","src":"8899:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8872:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8881:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8868:3:139"},"nodeType":"YulFunctionCall","src":"8868:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8893:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8864:3:139"},"nodeType":"YulFunctionCall","src":"8864:32:139"},"nodeType":"YulIf","src":"8861:2:139"},{"nodeType":"YulAssignment","src":"8932:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8955:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8942:12:139"},"nodeType":"YulFunctionCall","src":"8942:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8932:6:139"}]},{"nodeType":"YulAssignment","src":"8974:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9001:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9012:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:139"},"nodeType":"YulFunctionCall","src":"8997:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8984:12:139"},"nodeType":"YulFunctionCall","src":"8984:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8974:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8809:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8820:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8832:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8840:6:139","type":""}],"src":"8764:258:139"},{"body":{"nodeType":"YulBlock","src":"9131:289:139","statements":[{"body":{"nodeType":"YulBlock","src":"9177:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9186:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9194:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9179:6:139"},"nodeType":"YulFunctionCall","src":"9179:22:139"},"nodeType":"YulExpressionStatement","src":"9179:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9152:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9161:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9148:3:139"},"nodeType":"YulFunctionCall","src":"9148:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9173:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9144:3:139"},"nodeType":"YulFunctionCall","src":"9144:32:139"},"nodeType":"YulIf","src":"9141:2:139"},{"nodeType":"YulAssignment","src":"9212:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9235:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9222:12:139"},"nodeType":"YulFunctionCall","src":"9222:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9212:6:139"}]},{"nodeType":"YulAssignment","src":"9254:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9281:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9292:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9277:3:139"},"nodeType":"YulFunctionCall","src":"9277:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9264:12:139"},"nodeType":"YulFunctionCall","src":"9264:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9254:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9305:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9335:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9346:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9331:3:139"},"nodeType":"YulFunctionCall","src":"9331:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9318:12:139"},"nodeType":"YulFunctionCall","src":"9318:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9309:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9384:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9359:24:139"},"nodeType":"YulFunctionCall","src":"9359:31:139"},"nodeType":"YulExpressionStatement","src":"9359:31:139"},{"nodeType":"YulAssignment","src":"9399:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"9409:5:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9399:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9081:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9092:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9104:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9112:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9120:6:139","type":""}],"src":"9027:393:139"},{"body":{"nodeType":"YulBlock","src":"9543:411:139","statements":[{"body":{"nodeType":"YulBlock","src":"9590:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9599:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9607:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9592:6:139"},"nodeType":"YulFunctionCall","src":"9592:22:139"},"nodeType":"YulExpressionStatement","src":"9592:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9564:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9573:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9560:3:139"},"nodeType":"YulFunctionCall","src":"9560:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9585:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9556:3:139"},"nodeType":"YulFunctionCall","src":"9556:33:139"},"nodeType":"YulIf","src":"9553:2:139"},{"nodeType":"YulAssignment","src":"9625:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9648:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9635:12:139"},"nodeType":"YulFunctionCall","src":"9635:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9625:6:139"}]},{"nodeType":"YulAssignment","src":"9667:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9694:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9705:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9690:3:139"},"nodeType":"YulFunctionCall","src":"9690:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9677:12:139"},"nodeType":"YulFunctionCall","src":"9677:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9667:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9718:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9748:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9759:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9744:3:139"},"nodeType":"YulFunctionCall","src":"9744:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9731:12:139"},"nodeType":"YulFunctionCall","src":"9731:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9722:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9797:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9772:24:139"},"nodeType":"YulFunctionCall","src":"9772:31:139"},"nodeType":"YulExpressionStatement","src":"9772:31:139"},{"nodeType":"YulAssignment","src":"9812:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"9822:5:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9812:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9836:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9868:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9879:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9864:3:139"},"nodeType":"YulFunctionCall","src":"9864:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9851:12:139"},"nodeType":"YulFunctionCall","src":"9851:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9840:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9914:7:139"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"9892:21:139"},"nodeType":"YulFunctionCall","src":"9892:30:139"},"nodeType":"YulExpressionStatement","src":"9892:30:139"},{"nodeType":"YulAssignment","src":"9931:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"9941:7:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9931:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9485:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9496:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9508:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9516:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9524:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9532:6:139","type":""}],"src":"9425:529:139"},{"body":{"nodeType":"YulBlock","src":"10060:286:139","statements":[{"body":{"nodeType":"YulBlock","src":"10106:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10115:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"10123:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10108:6:139"},"nodeType":"YulFunctionCall","src":"10108:22:139"},"nodeType":"YulExpressionStatement","src":"10108:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10081:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10090:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10077:3:139"},"nodeType":"YulFunctionCall","src":"10077:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10102:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10073:3:139"},"nodeType":"YulFunctionCall","src":"10073:32:139"},"nodeType":"YulIf","src":"10070:2:139"},{"nodeType":"YulAssignment","src":"10141:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10164:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10151:12:139"},"nodeType":"YulFunctionCall","src":"10151:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10141:6:139"}]},{"nodeType":"YulAssignment","src":"10183:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10210:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10221:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10206:3:139"},"nodeType":"YulFunctionCall","src":"10206:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10193:12:139"},"nodeType":"YulFunctionCall","src":"10193:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10183:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"10234:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10264:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10275:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10260:3:139"},"nodeType":"YulFunctionCall","src":"10260:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10247:12:139"},"nodeType":"YulFunctionCall","src":"10247:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10238:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10310:5:139"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"10288:21:139"},"nodeType":"YulFunctionCall","src":"10288:28:139"},"nodeType":"YulExpressionStatement","src":"10288:28:139"},{"nodeType":"YulAssignment","src":"10325:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"10335:5:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10325:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10010:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10021:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10033:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10041:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10049:6:139","type":""}],"src":"9959:387:139"},{"body":{"nodeType":"YulBlock","src":"10400:208:139","statements":[{"nodeType":"YulVariableDeclaration","src":"10410:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10430:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10424:5:139"},"nodeType":"YulFunctionCall","src":"10424:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10414:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10452:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"10457:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10445:6:139"},"nodeType":"YulFunctionCall","src":"10445:19:139"},"nodeType":"YulExpressionStatement","src":"10445:19:139"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10499:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"10506:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10495:3:139"},"nodeType":"YulFunctionCall","src":"10495:16:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10517:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"10522:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10513:3:139"},"nodeType":"YulFunctionCall","src":"10513:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"10529:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10473:21:139"},"nodeType":"YulFunctionCall","src":"10473:63:139"},"nodeType":"YulExpressionStatement","src":"10473:63:139"},{"nodeType":"YulAssignment","src":"10545:57:139","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10560:3:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10573:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"10581:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10569:3:139"},"nodeType":"YulFunctionCall","src":"10569:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10590:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10586:3:139"},"nodeType":"YulFunctionCall","src":"10586:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10565:3:139"},"nodeType":"YulFunctionCall","src":"10565:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10556:3:139"},"nodeType":"YulFunctionCall","src":"10556:39:139"},{"kind":"number","nodeType":"YulLiteral","src":"10597:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10552:3:139"},"nodeType":"YulFunctionCall","src":"10552:50:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10545:3:139"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10377:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10384:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10392:3:139","type":""}],"src":"10351:257:139"},{"body":{"nodeType":"YulBlock","src":"11002:397:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11019:3:139"},{"kind":"string","nodeType":"YulLiteral","src":"11024:25:139","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11012:6:139"},"nodeType":"YulFunctionCall","src":"11012:38:139"},"nodeType":"YulExpressionStatement","src":"11012:38:139"},{"nodeType":"YulVariableDeclaration","src":"11059:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11079:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11073:5:139"},"nodeType":"YulFunctionCall","src":"11073:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11063:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11121:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"11129:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11117:3:139"},"nodeType":"YulFunctionCall","src":"11117:17:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11140:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"11145:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11136:3:139"},"nodeType":"YulFunctionCall","src":"11136:12:139"},{"name":"length","nodeType":"YulIdentifier","src":"11150:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11095:21:139"},"nodeType":"YulFunctionCall","src":"11095:62:139"},"nodeType":"YulExpressionStatement","src":"11095:62:139"},{"nodeType":"YulVariableDeclaration","src":"11166:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11180:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"11185:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11176:3:139"},"nodeType":"YulFunctionCall","src":"11176:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11170:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11212:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"11216:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11208:3:139"},"nodeType":"YulFunctionCall","src":"11208:11:139"},{"kind":"string","nodeType":"YulLiteral","src":"11221:19:139","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11201:6:139"},"nodeType":"YulFunctionCall","src":"11201:40:139"},"nodeType":"YulExpressionStatement","src":"11201:40:139"},{"nodeType":"YulVariableDeclaration","src":"11250:29:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11272:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11266:5:139"},"nodeType":"YulFunctionCall","src":"11266:13:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"11254:8:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11314:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"11322:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11310:3:139"},"nodeType":"YulFunctionCall","src":"11310:17:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11333:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"11337:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11329:3:139"},"nodeType":"YulFunctionCall","src":"11329:11:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"11342:8:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11288:21:139"},"nodeType":"YulFunctionCall","src":"11288:63:139"},"nodeType":"YulExpressionStatement","src":"11288:63:139"},{"nodeType":"YulAssignment","src":"11360:33:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11375:2:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"11379:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11371:3:139"},"nodeType":"YulFunctionCall","src":"11371:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"11390:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11367:3:139"},"nodeType":"YulFunctionCall","src":"11367:26:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11360:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10970:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10975:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10983:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10994:3:139","type":""}],"src":"10613:786:139"},{"body":{"nodeType":"YulBlock","src":"11505:102:139","statements":[{"nodeType":"YulAssignment","src":"11515:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11527:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11538:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11523:3:139"},"nodeType":"YulFunctionCall","src":"11523:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11515:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11557:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11572:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11588:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11593:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11584:3:139"},"nodeType":"YulFunctionCall","src":"11584:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11597:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11580:3:139"},"nodeType":"YulFunctionCall","src":"11580:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11568:3:139"},"nodeType":"YulFunctionCall","src":"11568:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11550:6:139"},"nodeType":"YulFunctionCall","src":"11550:51:139"},"nodeType":"YulExpressionStatement","src":"11550:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11474:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11485:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11496:4:139","type":""}],"src":"11404:203:139"},{"body":{"nodeType":"YulBlock","src":"11769:218:139","statements":[{"nodeType":"YulAssignment","src":"11779:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11791:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11802:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11787:3:139"},"nodeType":"YulFunctionCall","src":"11787:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11779:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"11814:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11832:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11837:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11828:3:139"},"nodeType":"YulFunctionCall","src":"11828:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11841:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11824:3:139"},"nodeType":"YulFunctionCall","src":"11824:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11818:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11859:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11874:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"11882:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11870:3:139"},"nodeType":"YulFunctionCall","src":"11870:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11852:6:139"},"nodeType":"YulFunctionCall","src":"11852:34:139"},"nodeType":"YulExpressionStatement","src":"11852:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11906:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11917:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11902:3:139"},"nodeType":"YulFunctionCall","src":"11902:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11926:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"11934:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11922:3:139"},"nodeType":"YulFunctionCall","src":"11922:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11895:6:139"},"nodeType":"YulFunctionCall","src":"11895:43:139"},"nodeType":"YulExpressionStatement","src":"11895:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11958:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11969:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11954:3:139"},"nodeType":"YulFunctionCall","src":"11954:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"11974:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11947:6:139"},"nodeType":"YulFunctionCall","src":"11947:34:139"},"nodeType":"YulExpressionStatement","src":"11947:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11722:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11733:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11741:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11749:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11760:4:139","type":""}],"src":"11612:375:139"},{"body":{"nodeType":"YulBlock","src":"12195:285:139","statements":[{"nodeType":"YulVariableDeclaration","src":"12205:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12223:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12228:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12219:3:139"},"nodeType":"YulFunctionCall","src":"12219:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12232:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12215:3:139"},"nodeType":"YulFunctionCall","src":"12215:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12209:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12250:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12265:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12273:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12261:3:139"},"nodeType":"YulFunctionCall","src":"12261:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12243:6:139"},"nodeType":"YulFunctionCall","src":"12243:34:139"},"nodeType":"YulExpressionStatement","src":"12243:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12297:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12308:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12293:3:139"},"nodeType":"YulFunctionCall","src":"12293:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12317:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12325:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12313:3:139"},"nodeType":"YulFunctionCall","src":"12313:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12286:6:139"},"nodeType":"YulFunctionCall","src":"12286:43:139"},"nodeType":"YulExpressionStatement","src":"12286:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12349:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12360:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12345:3:139"},"nodeType":"YulFunctionCall","src":"12345:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"12365:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12338:6:139"},"nodeType":"YulFunctionCall","src":"12338:34:139"},"nodeType":"YulExpressionStatement","src":"12338:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12392:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12403:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12388:3:139"},"nodeType":"YulFunctionCall","src":"12388:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12408:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12381:6:139"},"nodeType":"YulFunctionCall","src":"12381:31:139"},"nodeType":"YulExpressionStatement","src":"12381:31:139"},{"nodeType":"YulAssignment","src":"12421:53:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"12446:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12458:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12469:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12454:3:139"},"nodeType":"YulFunctionCall","src":"12454:19:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12429:16:139"},"nodeType":"YulFunctionCall","src":"12429:45:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12421:4:139"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12140:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12151:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12159:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12167:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12175:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12186:4:139","type":""}],"src":"11992:488:139"},{"body":{"nodeType":"YulBlock","src":"12614:145:139","statements":[{"nodeType":"YulAssignment","src":"12624:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12636:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12647:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12632:3:139"},"nodeType":"YulFunctionCall","src":"12632:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12624:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12666:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12681:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12697:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12702:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12693:3:139"},"nodeType":"YulFunctionCall","src":"12693:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12706:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12689:3:139"},"nodeType":"YulFunctionCall","src":"12689:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12677:3:139"},"nodeType":"YulFunctionCall","src":"12677:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12659:6:139"},"nodeType":"YulFunctionCall","src":"12659:51:139"},"nodeType":"YulExpressionStatement","src":"12659:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12730:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12741:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12726:3:139"},"nodeType":"YulFunctionCall","src":"12726:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"12746:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12719:6:139"},"nodeType":"YulFunctionCall","src":"12719:34:139"},"nodeType":"YulExpressionStatement","src":"12719:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12575:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12586:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12594:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12605:4:139","type":""}],"src":"12485:274:139"},{"body":{"nodeType":"YulBlock","src":"12859:92:139","statements":[{"nodeType":"YulAssignment","src":"12869:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12881:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12892:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12877:3:139"},"nodeType":"YulFunctionCall","src":"12877:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12869:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12911:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12936:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12929:6:139"},"nodeType":"YulFunctionCall","src":"12929:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12922:6:139"},"nodeType":"YulFunctionCall","src":"12922:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12904:6:139"},"nodeType":"YulFunctionCall","src":"12904:41:139"},"nodeType":"YulExpressionStatement","src":"12904:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12828:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12839:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12850:4:139","type":""}],"src":"12764:187:139"},{"body":{"nodeType":"YulBlock","src":"13057:76:139","statements":[{"nodeType":"YulAssignment","src":"13067:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13079:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13090:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13075:3:139"},"nodeType":"YulFunctionCall","src":"13075:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13067:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13109:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"13120:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13102:6:139"},"nodeType":"YulFunctionCall","src":"13102:25:139"},"nodeType":"YulExpressionStatement","src":"13102:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13026:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13037:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13048:4:139","type":""}],"src":"12956:177:139"},{"body":{"nodeType":"YulBlock","src":"13258:102:139","statements":[{"nodeType":"YulAssignment","src":"13268:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13280:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13291:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13276:3:139"},"nodeType":"YulFunctionCall","src":"13276:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13268:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13310:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13325:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13341:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13346:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13337:3:139"},"nodeType":"YulFunctionCall","src":"13337:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"13350:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13333:3:139"},"nodeType":"YulFunctionCall","src":"13333:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13321:3:139"},"nodeType":"YulFunctionCall","src":"13321:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13303:6:139"},"nodeType":"YulFunctionCall","src":"13303:51:139"},"nodeType":"YulExpressionStatement","src":"13303:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13227:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13238:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13249:4:139","type":""}],"src":"13138:222:139"},{"body":{"nodeType":"YulBlock","src":"13494:102:139","statements":[{"nodeType":"YulAssignment","src":"13504:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13516:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13527:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13512:3:139"},"nodeType":"YulFunctionCall","src":"13512:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13504:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13546:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13561:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13577:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13582:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13573:3:139"},"nodeType":"YulFunctionCall","src":"13573:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"13586:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13569:3:139"},"nodeType":"YulFunctionCall","src":"13569:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13557:3:139"},"nodeType":"YulFunctionCall","src":"13557:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13539:6:139"},"nodeType":"YulFunctionCall","src":"13539:51:139"},"nodeType":"YulExpressionStatement","src":"13539:51:139"}]},"name":"abi_encode_tuple_t_contract$_ITokenURIGenerator_$35664__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13463:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13474:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13485:4:139","type":""}],"src":"13365:231:139"},{"body":{"nodeType":"YulBlock","src":"13700:92:139","statements":[{"nodeType":"YulAssignment","src":"13710:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13722:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13733:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13718:3:139"},"nodeType":"YulFunctionCall","src":"13718:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13710:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13752:9:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13774:2:139","type":"","value":"15"},{"name":"value0","nodeType":"YulIdentifier","src":"13778:6:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"13763:10:139"},"nodeType":"YulFunctionCall","src":"13763:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13745:6:139"},"nodeType":"YulFunctionCall","src":"13745:41:139"},"nodeType":"YulExpressionStatement","src":"13745:41:139"}]},"name":"abi_encode_tuple_t_int128__to_t_int128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13669:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13680:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13691:4:139","type":""}],"src":"13601:191:139"},{"body":{"nodeType":"YulBlock","src":"13952:178:139","statements":[{"nodeType":"YulAssignment","src":"13962:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13974:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13985:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13970:3:139"},"nodeType":"YulFunctionCall","src":"13970:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13962:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14004:9:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14026:2:139","type":"","value":"15"},{"name":"value0","nodeType":"YulIdentifier","src":"14030:6:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"14015:10:139"},"nodeType":"YulFunctionCall","src":"14015:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13997:6:139"},"nodeType":"YulFunctionCall","src":"13997:41:139"},"nodeType":"YulExpressionStatement","src":"13997:41:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14058:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14069:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14054:3:139"},"nodeType":"YulFunctionCall","src":"14054:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"14074:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14047:6:139"},"nodeType":"YulFunctionCall","src":"14047:34:139"},"nodeType":"YulExpressionStatement","src":"14047:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14101:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14112:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14097:3:139"},"nodeType":"YulFunctionCall","src":"14097:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"14117:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14090:6:139"},"nodeType":"YulFunctionCall","src":"14090:34:139"},"nodeType":"YulExpressionStatement","src":"14090:34:139"}]},"name":"abi_encode_tuple_t_int128_t_uint256_t_uint256__to_t_int128_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13905:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13916:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13924:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13932:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13943:4:139","type":""}],"src":"13797:333:139"},{"body":{"nodeType":"YulBlock","src":"14256:98:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14273:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14284:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14266:6:139"},"nodeType":"YulFunctionCall","src":"14266:21:139"},"nodeType":"YulExpressionStatement","src":"14266:21:139"},{"nodeType":"YulAssignment","src":"14296:52:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14321:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14333:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14344:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14329:3:139"},"nodeType":"YulFunctionCall","src":"14329:18:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14304:16:139"},"nodeType":"YulFunctionCall","src":"14304:44:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14296:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14225:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14236:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14247:4:139","type":""}],"src":"14135:219:139"},{"body":{"nodeType":"YulBlock","src":"14533:177:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14550:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14561:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14543:6:139"},"nodeType":"YulFunctionCall","src":"14543:21:139"},"nodeType":"YulExpressionStatement","src":"14543:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14584:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14595:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14580:3:139"},"nodeType":"YulFunctionCall","src":"14580:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14600:2:139","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14573:6:139"},"nodeType":"YulFunctionCall","src":"14573:30:139"},"nodeType":"YulExpressionStatement","src":"14573:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14623:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14634:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14619:3:139"},"nodeType":"YulFunctionCall","src":"14619:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14639:29:139","type":"","value":"Cannot add to expired lock."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14612:6:139"},"nodeType":"YulFunctionCall","src":"14612:57:139"},"nodeType":"YulExpressionStatement","src":"14612:57:139"},{"nodeType":"YulAssignment","src":"14678:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14690:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14701:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14686:3:139"},"nodeType":"YulFunctionCall","src":"14686:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14678:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_01173bbfe002a8916184f8f7c88b55bac2bc68ac2fbd9efd2306289847e45408__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14510:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14524:4:139","type":""}],"src":"14359:351:139"},{"body":{"nodeType":"YulBlock","src":"14889:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14906:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14917:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14899:6:139"},"nodeType":"YulFunctionCall","src":"14899:21:139"},"nodeType":"YulExpressionStatement","src":"14899:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14940:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14951:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14936:3:139"},"nodeType":"YulFunctionCall","src":"14936:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14956:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14929:6:139"},"nodeType":"YulFunctionCall","src":"14929:30:139"},"nodeType":"YulExpressionStatement","src":"14929:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14979:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14990:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14975:3:139"},"nodeType":"YulFunctionCall","src":"14975:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14995:34:139","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14968:6:139"},"nodeType":"YulFunctionCall","src":"14968:62:139"},"nodeType":"YulExpressionStatement","src":"14968:62:139"},{"nodeType":"YulAssignment","src":"15039:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15051:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15062:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15047:3:139"},"nodeType":"YulFunctionCall","src":"15047:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15039:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14866:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14880:4:139","type":""}],"src":"14715:356:139"},{"body":{"nodeType":"YulBlock","src":"15250:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15267:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15278:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15260:6:139"},"nodeType":"YulFunctionCall","src":"15260:21:139"},"nodeType":"YulExpressionStatement","src":"15260:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15301:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15312:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15297:3:139"},"nodeType":"YulFunctionCall","src":"15297:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15317:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15290:6:139"},"nodeType":"YulFunctionCall","src":"15290:30:139"},"nodeType":"YulExpressionStatement","src":"15290:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15340:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15351:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15336:3:139"},"nodeType":"YulFunctionCall","src":"15336:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15356:17:139","type":"","value":"to not approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15329:6:139"},"nodeType":"YulFunctionCall","src":"15329:45:139"},"nodeType":"YulExpressionStatement","src":"15329:45:139"},{"nodeType":"YulAssignment","src":"15383:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15395:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15406:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15391:3:139"},"nodeType":"YulFunctionCall","src":"15391:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15383:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0830384f93797c3d64b307ea246e9d2dd60221bf54ff98eee2de1ffaffe73152__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15227:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15241:4:139","type":""}],"src":"15076:339:139"},{"body":{"nodeType":"YulBlock","src":"15594:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15611:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15622:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15604:6:139"},"nodeType":"YulFunctionCall","src":"15604:21:139"},"nodeType":"YulExpressionStatement","src":"15604:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15645:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15656:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15641:3:139"},"nodeType":"YulFunctionCall","src":"15641:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15661:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15634:6:139"},"nodeType":"YulFunctionCall","src":"15634:30:139"},"nodeType":"YulExpressionStatement","src":"15634:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15684:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15695:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15680:3:139"},"nodeType":"YulFunctionCall","src":"15680:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15700:16:139","type":"","value":"invalid sender"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15673:6:139"},"nodeType":"YulFunctionCall","src":"15673:44:139"},"nodeType":"YulExpressionStatement","src":"15673:44:139"},{"nodeType":"YulAssignment","src":"15726:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15738:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15749:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15734:3:139"},"nodeType":"YulFunctionCall","src":"15734:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15726:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_175ad23f068aed3ab88ee19620d541e9ae3d91161407ed4bb90c97cce31b0783__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15571:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15585:4:139","type":""}],"src":"15420:338:139"},{"body":{"nodeType":"YulBlock","src":"15937:240:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15954:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15965:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15947:6:139"},"nodeType":"YulFunctionCall","src":"15947:21:139"},"nodeType":"YulExpressionStatement","src":"15947:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15988:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15999:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15984:3:139"},"nodeType":"YulFunctionCall","src":"15984:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16004:2:139","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15977:6:139"},"nodeType":"YulFunctionCall","src":"15977:30:139"},"nodeType":"YulExpressionStatement","src":"15977:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16027:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16038:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16023:3:139"},"nodeType":"YulFunctionCall","src":"16023:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16043:34:139","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16016:6:139"},"nodeType":"YulFunctionCall","src":"16016:62:139"},"nodeType":"YulExpressionStatement","src":"16016:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16098:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16109:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16094:3:139"},"nodeType":"YulFunctionCall","src":"16094:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16114:20:139","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16087:6:139"},"nodeType":"YulFunctionCall","src":"16087:48:139"},"nodeType":"YulExpressionStatement","src":"16087:48:139"},{"nodeType":"YulAssignment","src":"16144:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16156:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16167:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16152:3:139"},"nodeType":"YulFunctionCall","src":"16152:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16144:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15914:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15928:4:139","type":""}],"src":"15763:414:139"},{"body":{"nodeType":"YulBlock","src":"16356:155:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16373:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16384:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16366:6:139"},"nodeType":"YulFunctionCall","src":"16366:21:139"},"nodeType":"YulExpressionStatement","src":"16366:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16407:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16418:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16403:3:139"},"nodeType":"YulFunctionCall","src":"16403:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16423:1:139","type":"","value":"6"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16396:6:139"},"nodeType":"YulFunctionCall","src":"16396:29:139"},"nodeType":"YulExpressionStatement","src":"16396:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16445:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16456:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16441:3:139"},"nodeType":"YulFunctionCall","src":"16441:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16461:8:139","type":"","value":"staked"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16434:6:139"},"nodeType":"YulFunctionCall","src":"16434:36:139"},"nodeType":"YulExpressionStatement","src":"16434:36:139"},{"nodeType":"YulAssignment","src":"16479:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16491:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16502:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16487:3:139"},"nodeType":"YulFunctionCall","src":"16487:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16479:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16333:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16347:4:139","type":""}],"src":"16182:329:139"},{"body":{"nodeType":"YulBlock","src":"16690:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16707:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16718:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16700:6:139"},"nodeType":"YulFunctionCall","src":"16700:21:139"},"nodeType":"YulExpressionStatement","src":"16700:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16741:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16752:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16737:3:139"},"nodeType":"YulFunctionCall","src":"16737:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16757:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16730:6:139"},"nodeType":"YulFunctionCall","src":"16730:29:139"},"nodeType":"YulExpressionStatement","src":"16730:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16779:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16790:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16775:3:139"},"nodeType":"YulFunctionCall","src":"16775:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16795:11:139","type":"","value":"to staked"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16768:6:139"},"nodeType":"YulFunctionCall","src":"16768:39:139"},"nodeType":"YulExpressionStatement","src":"16768:39:139"},{"nodeType":"YulAssignment","src":"16816:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16828:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16839:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16824:3:139"},"nodeType":"YulFunctionCall","src":"16824:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16816:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_40dc61cd9e9572b82bea40e63ead03a91c61be507c3d4ce513923bc1f13a7d53__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16667:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16681:4:139","type":""}],"src":"16516:332:139"},{"body":{"nodeType":"YulBlock","src":"17027:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17044:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17055:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17037:6:139"},"nodeType":"YulFunctionCall","src":"17037:21:139"},"nodeType":"YulExpressionStatement","src":"17037:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17078:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17089:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17074:3:139"},"nodeType":"YulFunctionCall","src":"17074:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17094:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17067:6:139"},"nodeType":"YulFunctionCall","src":"17067:30:139"},"nodeType":"YulExpressionStatement","src":"17067:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17117:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17128:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17113:3:139"},"nodeType":"YulFunctionCall","src":"17113:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17133:21:139","type":"","value":"not approved sender"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17106:6:139"},"nodeType":"YulFunctionCall","src":"17106:49:139"},"nodeType":"YulExpressionStatement","src":"17106:49:139"},{"nodeType":"YulAssignment","src":"17164:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17176:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17187:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17172:3:139"},"nodeType":"YulFunctionCall","src":"17172:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17164:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_42d3f0f5990ed3a2cdc2a6bcc5d4731942076e9e813c5a0ff1f3a8b8b2fd993e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17004:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17018:4:139","type":""}],"src":"16853:343:139"},{"body":{"nodeType":"YulBlock","src":"17375:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17392:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17403:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17385:6:139"},"nodeType":"YulFunctionCall","src":"17385:21:139"},"nodeType":"YulExpressionStatement","src":"17385:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17426:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17437:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17422:3:139"},"nodeType":"YulFunctionCall","src":"17422:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17442:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17415:6:139"},"nodeType":"YulFunctionCall","src":"17415:30:139"},"nodeType":"YulExpressionStatement","src":"17415:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17465:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17476:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17461:3:139"},"nodeType":"YulFunctionCall","src":"17461:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17481:33:139","type":"","value":"Can only increase lock duration"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17454:6:139"},"nodeType":"YulFunctionCall","src":"17454:61:139"},"nodeType":"YulExpressionStatement","src":"17454:61:139"},{"nodeType":"YulAssignment","src":"17524:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17536:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17547:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17532:3:139"},"nodeType":"YulFunctionCall","src":"17532:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17524:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_49af1ad93488656fe0ec6138293fb681e49fb69c915cd81c5194d0d0d5b795c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17352:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17366:4:139","type":""}],"src":"17201:355:139"},{"body":{"nodeType":"YulBlock","src":"17735:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17752:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17763:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17745:6:139"},"nodeType":"YulFunctionCall","src":"17745:21:139"},"nodeType":"YulExpressionStatement","src":"17745:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17786:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17797:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17782:3:139"},"nodeType":"YulFunctionCall","src":"17782:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17802:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17775:6:139"},"nodeType":"YulFunctionCall","src":"17775:29:139"},"nodeType":"YulExpressionStatement","src":"17775:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17824:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17835:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17820:3:139"},"nodeType":"YulFunctionCall","src":"17820:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17840:11:139","type":"","value":"value = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17813:6:139"},"nodeType":"YulFunctionCall","src":"17813:39:139"},"nodeType":"YulExpressionStatement","src":"17813:39:139"},{"nodeType":"YulAssignment","src":"17861:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17873:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17884:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17869:3:139"},"nodeType":"YulFunctionCall","src":"17869:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17861:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_6792364c76b84c5d56829f533e59e20448b466cf28642751aa61cd020c6822ee__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17712:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17726:4:139","type":""}],"src":"17561:332:139"},{"body":{"nodeType":"YulBlock","src":"18072:167:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18089:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18100:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18082:6:139"},"nodeType":"YulFunctionCall","src":"18082:21:139"},"nodeType":"YulExpressionStatement","src":"18082:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18123:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18134:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18119:3:139"},"nodeType":"YulFunctionCall","src":"18119:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18139:2:139","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18112:6:139"},"nodeType":"YulFunctionCall","src":"18112:30:139"},"nodeType":"YulExpressionStatement","src":"18112:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18162:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18173:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18158:3:139"},"nodeType":"YulFunctionCall","src":"18158:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18178:19:139","type":"","value":"Nothing is locked"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18151:6:139"},"nodeType":"YulFunctionCall","src":"18151:47:139"},"nodeType":"YulExpressionStatement","src":"18151:47:139"},{"nodeType":"YulAssignment","src":"18207:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18219:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18230:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18215:3:139"},"nodeType":"YulFunctionCall","src":"18215:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18207:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8f2f0d45ca70854308f4586d0e5a6a00dd2cffcf3c63fac8bf45e216c4725cc7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18049:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18063:4:139","type":""}],"src":"17898:341:139"},{"body":{"nodeType":"YulBlock","src":"18418:180:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18435:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18446:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18428:6:139"},"nodeType":"YulFunctionCall","src":"18428:21:139"},"nodeType":"YulExpressionStatement","src":"18428:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18469:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18480:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18465:3:139"},"nodeType":"YulFunctionCall","src":"18465:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18485:2:139","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18458:6:139"},"nodeType":"YulFunctionCall","src":"18458:30:139"},"nodeType":"YulExpressionStatement","src":"18458:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18508:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18519:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18504:3:139"},"nodeType":"YulFunctionCall","src":"18504:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18524:32:139","type":"","value":"Voting lock can be 4 years max"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18497:6:139"},"nodeType":"YulFunctionCall","src":"18497:60:139"},"nodeType":"YulExpressionStatement","src":"18497:60:139"},{"nodeType":"YulAssignment","src":"18566:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18578:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18589:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18574:3:139"},"nodeType":"YulFunctionCall","src":"18574:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18566:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18395:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18409:4:139","type":""}],"src":"18244:354:139"},{"body":{"nodeType":"YulBlock","src":"18777:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18794:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18805:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18787:6:139"},"nodeType":"YulFunctionCall","src":"18787:21:139"},"nodeType":"YulExpressionStatement","src":"18787:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18828:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18839:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18824:3:139"},"nodeType":"YulFunctionCall","src":"18824:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18844:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18817:6:139"},"nodeType":"YulFunctionCall","src":"18817:30:139"},"nodeType":"YulExpressionStatement","src":"18817:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18867:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18878:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18863:3:139"},"nodeType":"YulFunctionCall","src":"18863:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18883:34:139","type":"","value":"caller is not owner nor approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18856:6:139"},"nodeType":"YulFunctionCall","src":"18856:62:139"},"nodeType":"YulExpressionStatement","src":"18856:62:139"},{"nodeType":"YulAssignment","src":"18927:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18939:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18950:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18935:3:139"},"nodeType":"YulFunctionCall","src":"18935:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18927:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18754:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18768:4:139","type":""}],"src":"18603:356:139"},{"body":{"nodeType":"YulBlock","src":"19138:157:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19155:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19166:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19148:6:139"},"nodeType":"YulFunctionCall","src":"19148:21:139"},"nodeType":"YulExpressionStatement","src":"19148:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19189:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19200:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19185:3:139"},"nodeType":"YulFunctionCall","src":"19185:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19205:1:139","type":"","value":"8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19178:6:139"},"nodeType":"YulFunctionCall","src":"19178:29:139"},"nodeType":"YulExpressionStatement","src":"19178:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19227:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19238:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19223:3:139"},"nodeType":"YulFunctionCall","src":"19223:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19243:10:139","type":"","value":"same nft"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19216:6:139"},"nodeType":"YulFunctionCall","src":"19216:38:139"},"nodeType":"YulExpressionStatement","src":"19216:38:139"},{"nodeType":"YulAssignment","src":"19263:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19275:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19286:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19271:3:139"},"nodeType":"YulFunctionCall","src":"19271:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19263:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b25bcc673a215e3a5bde352ef92ddbe03cbf317e969573af50a3f9bdce18e368__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19115:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19129:4:139","type":""}],"src":"18964:331:139"},{"body":{"nodeType":"YulBlock","src":"19474:161:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19491:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19502:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19484:6:139"},"nodeType":"YulFunctionCall","src":"19484:21:139"},"nodeType":"YulExpressionStatement","src":"19484:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19525:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19536:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19521:3:139"},"nodeType":"YulFunctionCall","src":"19521:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19541:2:139","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19514:6:139"},"nodeType":"YulFunctionCall","src":"19514:30:139"},"nodeType":"YulExpressionStatement","src":"19514:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19564:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19575:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19560:3:139"},"nodeType":"YulFunctionCall","src":"19560:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19580:13:139","type":"","value":"from staked"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19553:6:139"},"nodeType":"YulFunctionCall","src":"19553:41:139"},"nodeType":"YulExpressionStatement","src":"19553:41:139"},{"nodeType":"YulAssignment","src":"19603:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19615:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19626:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19611:3:139"},"nodeType":"YulFunctionCall","src":"19611:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19603:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b4dbbb1ecdfd4d206737946fa769f0b57321dbc69ead975edb1109fceab4e63a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19451:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19465:4:139","type":""}],"src":"19300:335:139"},{"body":{"nodeType":"YulBlock","src":"19814:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19831:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19842:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19824:6:139"},"nodeType":"YulFunctionCall","src":"19824:21:139"},"nodeType":"YulExpressionStatement","src":"19824:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19865:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19876:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19861:3:139"},"nodeType":"YulFunctionCall","src":"19861:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19881:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19854:6:139"},"nodeType":"YulFunctionCall","src":"19854:30:139"},"nodeType":"YulExpressionStatement","src":"19854:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19904:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19915:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19900:3:139"},"nodeType":"YulFunctionCall","src":"19900:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19920:14:139","type":"","value":"Lock expired"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19893:6:139"},"nodeType":"YulFunctionCall","src":"19893:42:139"},"nodeType":"YulExpressionStatement","src":"19893:42:139"},{"nodeType":"YulAssignment","src":"19944:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19956:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19967:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19952:3:139"},"nodeType":"YulFunctionCall","src":"19952:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19944:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b7fe084aded7705802811ee701eb2a306a550b2e89cc56b1a5172f4f09d82aa9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19791:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19805:4:139","type":""}],"src":"19640:336:139"},{"body":{"nodeType":"YulBlock","src":"20155:172:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20172:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20183:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20165:6:139"},"nodeType":"YulFunctionCall","src":"20165:21:139"},"nodeType":"YulExpressionStatement","src":"20165:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20206:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20217:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20202:3:139"},"nodeType":"YulFunctionCall","src":"20202:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20222:2:139","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20195:6:139"},"nodeType":"YulFunctionCall","src":"20195:30:139"},"nodeType":"YulExpressionStatement","src":"20195:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20245:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20256:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20241:3:139"},"nodeType":"YulFunctionCall","src":"20241:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20261:24:139","type":"","value":"No existing lock found"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20234:6:139"},"nodeType":"YulFunctionCall","src":"20234:52:139"},"nodeType":"YulExpressionStatement","src":"20234:52:139"},{"nodeType":"YulAssignment","src":"20295:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20307:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20318:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20303:3:139"},"nodeType":"YulFunctionCall","src":"20303:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20295:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ba31947ee23d0ae2490516d3f699e2ca3cc97701b736b2a4df65fb6df8601a0f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20132:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20146:4:139","type":""}],"src":"19981:346:139"},{"body":{"nodeType":"YulBlock","src":"20506:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20523:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20534:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20516:6:139"},"nodeType":"YulFunctionCall","src":"20516:21:139"},"nodeType":"YulExpressionStatement","src":"20516:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20557:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20568:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20553:3:139"},"nodeType":"YulFunctionCall","src":"20553:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20573:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20546:6:139"},"nodeType":"YulFunctionCall","src":"20546:30:139"},"nodeType":"YulExpressionStatement","src":"20546:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20596:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20607:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20592:3:139"},"nodeType":"YulFunctionCall","src":"20592:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20612:14:139","type":"","value":"owner is 0x0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20585:6:139"},"nodeType":"YulFunctionCall","src":"20585:42:139"},"nodeType":"YulExpressionStatement","src":"20585:42:139"},{"nodeType":"YulAssignment","src":"20636:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20648:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20659:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20644:3:139"},"nodeType":"YulFunctionCall","src":"20644:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20636:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_bdea70ca58d45c47d88ee4f1bb4df5d8575d20650a8c655e8066379cdac05e60__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20483:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20497:4:139","type":""}],"src":"20332:336:139"},{"body":{"nodeType":"YulBlock","src":"20847:176:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20864:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20875:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20857:6:139"},"nodeType":"YulFunctionCall","src":"20857:21:139"},"nodeType":"YulExpressionStatement","src":"20857:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20898:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20909:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20894:3:139"},"nodeType":"YulFunctionCall","src":"20894:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20914:2:139","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20887:6:139"},"nodeType":"YulFunctionCall","src":"20887:30:139"},"nodeType":"YulExpressionStatement","src":"20887:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20937:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20948:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20933:3:139"},"nodeType":"YulFunctionCall","src":"20933:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20953:28:139","type":"","value":"min amount for nft not met"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20926:6:139"},"nodeType":"YulFunctionCall","src":"20926:56:139"},"nodeType":"YulExpressionStatement","src":"20926:56:139"},{"nodeType":"YulAssignment","src":"20991:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21003:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21014:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20999:3:139"},"nodeType":"YulFunctionCall","src":"20999:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20991:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c698d0407b72c92210ffcd4a7d9f5f135b1ab7423509eb34a8a0b6740e7f2092__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20824:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20838:4:139","type":""}],"src":"20673:350:139"},{"body":{"nodeType":"YulBlock","src":"21202:167:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21219:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21230:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21212:6:139"},"nodeType":"YulFunctionCall","src":"21212:21:139"},"nodeType":"YulExpressionStatement","src":"21212:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21253:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21264:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21249:3:139"},"nodeType":"YulFunctionCall","src":"21249:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21269:2:139","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21242:6:139"},"nodeType":"YulFunctionCall","src":"21242:30:139"},"nodeType":"YulExpressionStatement","src":"21242:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21292:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21303:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21288:3:139"},"nodeType":"YulFunctionCall","src":"21288:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21308:19:139","type":"","value":"from not approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21281:6:139"},"nodeType":"YulFunctionCall","src":"21281:47:139"},"nodeType":"YulExpressionStatement","src":"21281:47:139"},{"nodeType":"YulAssignment","src":"21337:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21349:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21360:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21345:3:139"},"nodeType":"YulFunctionCall","src":"21345:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21337:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d2a2fd435e7ecd614d2f7e78d15eda818a4e6b1586e14106486480d5130a0840__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21179:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21193:4:139","type":""}],"src":"21028:341:139"},{"body":{"nodeType":"YulBlock","src":"21548:177:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21565:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21576:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21558:6:139"},"nodeType":"YulFunctionCall","src":"21558:21:139"},"nodeType":"YulExpressionStatement","src":"21558:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21599:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21610:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21595:3:139"},"nodeType":"YulFunctionCall","src":"21595:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21615:2:139","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21588:6:139"},"nodeType":"YulFunctionCall","src":"21588:30:139"},"nodeType":"YulExpressionStatement","src":"21588:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21638:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21649:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21634:3:139"},"nodeType":"YulFunctionCall","src":"21634:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21654:29:139","type":"","value":"Can only lock in the future"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21627:6:139"},"nodeType":"YulFunctionCall","src":"21627:57:139"},"nodeType":"YulExpressionStatement","src":"21627:57:139"},{"nodeType":"YulAssignment","src":"21693:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21705:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21716:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21701:3:139"},"nodeType":"YulFunctionCall","src":"21701:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21693:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d42d49df137fca74f731d619e6cd0b2b6bf7c7da1fcb6425e89873e4209ba1c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21525:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21539:4:139","type":""}],"src":"21374:351:139"},{"body":{"nodeType":"YulBlock","src":"21904:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21921:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21932:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21914:6:139"},"nodeType":"YulFunctionCall","src":"21914:21:139"},"nodeType":"YulExpressionStatement","src":"21914:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21955:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21966:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21951:3:139"},"nodeType":"YulFunctionCall","src":"21951:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21971:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21944:6:139"},"nodeType":"YulFunctionCall","src":"21944:30:139"},"nodeType":"YulExpressionStatement","src":"21944:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21994:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22005:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21990:3:139"},"nodeType":"YulFunctionCall","src":"21990:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22010:14:139","type":"","value":"not migrator"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21983:6:139"},"nodeType":"YulFunctionCall","src":"21983:42:139"},"nodeType":"YulExpressionStatement","src":"21983:42:139"},{"nodeType":"YulAssignment","src":"22034:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22046:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22057:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22042:3:139"},"nodeType":"YulFunctionCall","src":"22042:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22034:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d446171ee7f95efe390a43478cb30c0775338aa36cae102e91df323bf3b643e0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21881:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21895:4:139","type":""}],"src":"21730:336:139"},{"body":{"nodeType":"YulBlock","src":"22245:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22262:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22273:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22255:6:139"},"nodeType":"YulFunctionCall","src":"22255:21:139"},"nodeType":"YulExpressionStatement","src":"22255:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22296:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22307:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22292:3:139"},"nodeType":"YulFunctionCall","src":"22292:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"22312:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22285:6:139"},"nodeType":"YulFunctionCall","src":"22285:30:139"},"nodeType":"YulExpressionStatement","src":"22285:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22335:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22346:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22331:3:139"},"nodeType":"YulFunctionCall","src":"22331:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22351:14:139","type":"","value":"invalid data"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22324:6:139"},"nodeType":"YulFunctionCall","src":"22324:42:139"},"nodeType":"YulExpressionStatement","src":"22324:42:139"},{"nodeType":"YulAssignment","src":"22375:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22387:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22398:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22383:3:139"},"nodeType":"YulFunctionCall","src":"22383:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22375:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_daa7483749cacd5db6e6dbf39797c99e92fae0480149c43b2eb0bdcda7a1bf59__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22222:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22236:4:139","type":""}],"src":"22071:336:139"},{"body":{"nodeType":"YulBlock","src":"22586:232:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22603:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22614:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22596:6:139"},"nodeType":"YulFunctionCall","src":"22596:21:139"},"nodeType":"YulExpressionStatement","src":"22596:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22637:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22648:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22633:3:139"},"nodeType":"YulFunctionCall","src":"22633:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"22653:2:139","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22626:6:139"},"nodeType":"YulFunctionCall","src":"22626:30:139"},"nodeType":"YulExpressionStatement","src":"22626:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22676:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22687:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22672:3:139"},"nodeType":"YulFunctionCall","src":"22672:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22692:34:139","type":"","value":"ERC2981: royalty fee will exceed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22665:6:139"},"nodeType":"YulFunctionCall","src":"22665:62:139"},"nodeType":"YulExpressionStatement","src":"22665:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22747:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22758:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22743:3:139"},"nodeType":"YulFunctionCall","src":"22743:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22763:12:139","type":"","value":" salePrice"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22736:6:139"},"nodeType":"YulFunctionCall","src":"22736:40:139"},"nodeType":"YulExpressionStatement","src":"22736:40:139"},{"nodeType":"YulAssignment","src":"22785:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22797:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22808:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22793:3:139"},"nodeType":"YulFunctionCall","src":"22793:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22785:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22563:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22577:4:139","type":""}],"src":"22412:406:139"},{"body":{"nodeType":"YulBlock","src":"22997:171:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23014:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23025:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23007:6:139"},"nodeType":"YulFunctionCall","src":"23007:21:139"},"nodeType":"YulExpressionStatement","src":"23007:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23048:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23059:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23044:3:139"},"nodeType":"YulFunctionCall","src":"23044:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"23064:2:139","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23037:6:139"},"nodeType":"YulFunctionCall","src":"23037:30:139"},"nodeType":"YulExpressionStatement","src":"23037:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23087:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23098:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23083:3:139"},"nodeType":"YulFunctionCall","src":"23083:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23103:23:139","type":"","value":"not in bootstrap mode"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23076:6:139"},"nodeType":"YulFunctionCall","src":"23076:51:139"},"nodeType":"YulExpressionStatement","src":"23076:51:139"},{"nodeType":"YulAssignment","src":"23136:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23148:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23159:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23144:3:139"},"nodeType":"YulFunctionCall","src":"23144:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23136:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebc02eeff58ffa8f8de6abcdca4003e5fae11ac28f00f89c23c763b81a058e64__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22974:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22988:4:139","type":""}],"src":"22823:345:139"},{"body":{"nodeType":"YulBlock","src":"23347:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23364:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23375:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23357:6:139"},"nodeType":"YulFunctionCall","src":"23357:21:139"},"nodeType":"YulExpressionStatement","src":"23357:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23398:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23409:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23394:3:139"},"nodeType":"YulFunctionCall","src":"23394:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"23414:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23387:6:139"},"nodeType":"YulFunctionCall","src":"23387:30:139"},"nodeType":"YulExpressionStatement","src":"23387:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23437:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23448:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23433:3:139"},"nodeType":"YulFunctionCall","src":"23433:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23453:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23426:6:139"},"nodeType":"YulFunctionCall","src":"23426:61:139"},"nodeType":"YulExpressionStatement","src":"23426:61:139"},{"nodeType":"YulAssignment","src":"23496:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23508:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23519:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23504:3:139"},"nodeType":"YulFunctionCall","src":"23504:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23496:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23324:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23338:4:139","type":""}],"src":"23173:355:139"},{"body":{"nodeType":"YulBlock","src":"23707:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23724:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23735:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23717:6:139"},"nodeType":"YulFunctionCall","src":"23717:21:139"},"nodeType":"YulExpressionStatement","src":"23717:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23758:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23769:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23754:3:139"},"nodeType":"YulFunctionCall","src":"23754:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"23774:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23747:6:139"},"nodeType":"YulFunctionCall","src":"23747:29:139"},"nodeType":"YulExpressionStatement","src":"23747:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23796:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23807:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23792:3:139"},"nodeType":"YulFunctionCall","src":"23792:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23812:11:139","type":"","value":"not owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23785:6:139"},"nodeType":"YulFunctionCall","src":"23785:39:139"},"nodeType":"YulExpressionStatement","src":"23785:39:139"},{"nodeType":"YulAssignment","src":"23833:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23845:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23856:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23841:3:139"},"nodeType":"YulFunctionCall","src":"23841:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23833:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23684:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23698:4:139","type":""}],"src":"23533:332:139"},{"body":{"nodeType":"YulBlock","src":"24044:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24061:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24072:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24054:6:139"},"nodeType":"YulFunctionCall","src":"24054:21:139"},"nodeType":"YulExpressionStatement","src":"24054:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24095:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24106:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24091:3:139"},"nodeType":"YulFunctionCall","src":"24091:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"24111:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24084:6:139"},"nodeType":"YulFunctionCall","src":"24084:30:139"},"nodeType":"YulExpressionStatement","src":"24084:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24134:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24145:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24130:3:139"},"nodeType":"YulFunctionCall","src":"24130:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24150:16:139","type":"","value":"not governance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24123:6:139"},"nodeType":"YulFunctionCall","src":"24123:44:139"},"nodeType":"YulExpressionStatement","src":"24123:44:139"},{"nodeType":"YulAssignment","src":"24176:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24188:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24199:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24184:3:139"},"nodeType":"YulFunctionCall","src":"24184:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24176:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24021:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24035:4:139","type":""}],"src":"23870:338:139"},{"body":{"nodeType":"YulBlock","src":"24387:175:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24404:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24415:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24397:6:139"},"nodeType":"YulFunctionCall","src":"24397:21:139"},"nodeType":"YulExpressionStatement","src":"24397:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24438:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24449:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24434:3:139"},"nodeType":"YulFunctionCall","src":"24434:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"24454:2:139","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24427:6:139"},"nodeType":"YulFunctionCall","src":"24427:30:139"},"nodeType":"YulExpressionStatement","src":"24427:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24477:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24488:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24473:3:139"},"nodeType":"YulFunctionCall","src":"24473:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24493:27:139","type":"","value":"ERC2981: invalid receiver"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24466:6:139"},"nodeType":"YulFunctionCall","src":"24466:55:139"},"nodeType":"YulExpressionStatement","src":"24466:55:139"},{"nodeType":"YulAssignment","src":"24530:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24542:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24553:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24538:3:139"},"nodeType":"YulFunctionCall","src":"24538:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24530:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24364:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24378:4:139","type":""}],"src":"24213:349:139"},{"body":{"nodeType":"YulBlock","src":"24741:237:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24758:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24769:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24751:6:139"},"nodeType":"YulFunctionCall","src":"24751:21:139"},"nodeType":"YulExpressionStatement","src":"24751:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24792:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24803:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24788:3:139"},"nodeType":"YulFunctionCall","src":"24788:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"24808:2:139","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24781:6:139"},"nodeType":"YulFunctionCall","src":"24781:30:139"},"nodeType":"YulExpressionStatement","src":"24781:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24831:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24842:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24827:3:139"},"nodeType":"YulFunctionCall","src":"24827:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24847:34:139","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24820:6:139"},"nodeType":"YulFunctionCall","src":"24820:62:139"},"nodeType":"YulExpressionStatement","src":"24820:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24902:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24913:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24898:3:139"},"nodeType":"YulFunctionCall","src":"24898:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24918:17:139","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24891:6:139"},"nodeType":"YulFunctionCall","src":"24891:45:139"},"nodeType":"YulExpressionStatement","src":"24891:45:139"},{"nodeType":"YulAssignment","src":"24945:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24957:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24968:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24953:3:139"},"nodeType":"YulFunctionCall","src":"24953:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24945:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24718:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24732:4:139","type":""}],"src":"24567:411:139"},{"body":{"nodeType":"YulBlock","src":"25157:172:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25174:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25185:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25167:6:139"},"nodeType":"YulFunctionCall","src":"25167:21:139"},"nodeType":"YulExpressionStatement","src":"25167:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25208:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25219:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25204:3:139"},"nodeType":"YulFunctionCall","src":"25204:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"25224:2:139","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25197:6:139"},"nodeType":"YulFunctionCall","src":"25197:30:139"},"nodeType":"YulExpressionStatement","src":"25197:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25247:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25258:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25243:3:139"},"nodeType":"YulFunctionCall","src":"25243:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25263:24:139","type":"","value":"The lock didn't expire"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25236:6:139"},"nodeType":"YulFunctionCall","src":"25236:52:139"},"nodeType":"YulExpressionStatement","src":"25236:52:139"},{"nodeType":"YulAssignment","src":"25297:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25309:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25320:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25305:3:139"},"nodeType":"YulFunctionCall","src":"25305:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25297:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fd1d0bc28fa2c92449d40df20cd3a58eba7687f39f6e0f26d29f6bd7e450cebe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25134:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25148:4:139","type":""}],"src":"24983:346:139"},{"body":{"nodeType":"YulBlock","src":"25483:305:139","statements":[{"nodeType":"YulAssignment","src":"25493:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25505:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25516:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25501:3:139"},"nodeType":"YulFunctionCall","src":"25501:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25493:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25536:9:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25558:2:139","type":"","value":"15"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25568:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25562:5:139"},"nodeType":"YulFunctionCall","src":"25562:13:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"25547:10:139"},"nodeType":"YulFunctionCall","src":"25547:29:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25529:6:139"},"nodeType":"YulFunctionCall","src":"25529:48:139"},"nodeType":"YulExpressionStatement","src":"25529:48:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25597:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25608:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25593:3:139"},"nodeType":"YulFunctionCall","src":"25593:20:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25626:2:139","type":"","value":"15"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25640:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"25648:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25636:3:139"},"nodeType":"YulFunctionCall","src":"25636:17:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25630:5:139"},"nodeType":"YulFunctionCall","src":"25630:24:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"25615:10:139"},"nodeType":"YulFunctionCall","src":"25615:40:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25586:6:139"},"nodeType":"YulFunctionCall","src":"25586:70:139"},"nodeType":"YulExpressionStatement","src":"25586:70:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25676:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25687:4:139","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25672:3:139"},"nodeType":"YulFunctionCall","src":"25672:20:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25704:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"25712:4:139","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25700:3:139"},"nodeType":"YulFunctionCall","src":"25700:17:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25694:5:139"},"nodeType":"YulFunctionCall","src":"25694:24:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25665:6:139"},"nodeType":"YulFunctionCall","src":"25665:54:139"},"nodeType":"YulExpressionStatement","src":"25665:54:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25739:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25750:4:139","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25735:3:139"},"nodeType":"YulFunctionCall","src":"25735:20:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25767:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"25775:4:139","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25763:3:139"},"nodeType":"YulFunctionCall","src":"25763:17:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25757:5:139"},"nodeType":"YulFunctionCall","src":"25757:24:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25728:6:139"},"nodeType":"YulFunctionCall","src":"25728:54:139"},"nodeType":"YulExpressionStatement","src":"25728:54:139"}]},"name":"abi_encode_tuple_t_struct$_Point_$34884_memory_ptr__to_t_struct$_Point_$34884_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25452:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25463:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25474:4:139","type":""}],"src":"25334:454:139"},{"body":{"nodeType":"YulBlock","src":"25894:76:139","statements":[{"nodeType":"YulAssignment","src":"25904:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25916:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25927:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25912:3:139"},"nodeType":"YulFunctionCall","src":"25912:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25904:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25946:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"25957:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25939:6:139"},"nodeType":"YulFunctionCall","src":"25939:25:139"},"nodeType":"YulExpressionStatement","src":"25939:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25863:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25874:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25885:4:139","type":""}],"src":"25793:177:139"},{"body":{"nodeType":"YulBlock","src":"26104:119:139","statements":[{"nodeType":"YulAssignment","src":"26114:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26126:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26137:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26122:3:139"},"nodeType":"YulFunctionCall","src":"26122:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26114:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26156:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"26167:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26149:6:139"},"nodeType":"YulFunctionCall","src":"26149:25:139"},"nodeType":"YulExpressionStatement","src":"26149:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26194:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26205:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26190:3:139"},"nodeType":"YulFunctionCall","src":"26190:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"26210:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26183:6:139"},"nodeType":"YulFunctionCall","src":"26183:34:139"},"nodeType":"YulExpressionStatement","src":"26183:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26065:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26076:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26084:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26095:4:139","type":""}],"src":"25975:248:139"},{"body":{"nodeType":"YulBlock","src":"26428:359:139","statements":[{"nodeType":"YulAssignment","src":"26438:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26450:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26461:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26446:3:139"},"nodeType":"YulFunctionCall","src":"26446:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26438:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26481:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"26492:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26474:6:139"},"nodeType":"YulFunctionCall","src":"26474:25:139"},"nodeType":"YulExpressionStatement","src":"26474:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26519:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26530:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26515:3:139"},"nodeType":"YulFunctionCall","src":"26515:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"26535:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26508:6:139"},"nodeType":"YulFunctionCall","src":"26508:34:139"},"nodeType":"YulExpressionStatement","src":"26508:34:139"},{"body":{"nodeType":"YulBlock","src":"26584:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26605:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26612:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26617:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26608:3:139"},"nodeType":"YulFunctionCall","src":"26608:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26598:6:139"},"nodeType":"YulFunctionCall","src":"26598:31:139"},"nodeType":"YulExpressionStatement","src":"26598:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26649:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26652:4:139","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26642:6:139"},"nodeType":"YulFunctionCall","src":"26642:15:139"},"nodeType":"YulExpressionStatement","src":"26642:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26677:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26680:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26670:6:139"},"nodeType":"YulFunctionCall","src":"26670:15:139"},"nodeType":"YulExpressionStatement","src":"26670:15:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"26564:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"26572:1:139","type":"","value":"5"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26561:2:139"},"nodeType":"YulFunctionCall","src":"26561:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26554:6:139"},"nodeType":"YulFunctionCall","src":"26554:21:139"},"nodeType":"YulIf","src":"26551:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26715:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26726:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26711:3:139"},"nodeType":"YulFunctionCall","src":"26711:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"26731:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26704:6:139"},"nodeType":"YulFunctionCall","src":"26704:34:139"},"nodeType":"YulExpressionStatement","src":"26704:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26758:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26769:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26754:3:139"},"nodeType":"YulFunctionCall","src":"26754:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"26774:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26747:6:139"},"nodeType":"YulFunctionCall","src":"26747:34:139"},"nodeType":"YulExpressionStatement","src":"26747:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_enum$_DepositType_$34875_t_uint256__to_t_uint256_t_uint256_t_uint8_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26373:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"26384:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"26392:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26400:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26408:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26419:4:139","type":""}],"src":"26228:559:139"},{"body":{"nodeType":"YulBlock","src":"26949:162:139","statements":[{"nodeType":"YulAssignment","src":"26959:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26971:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26982:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26967:3:139"},"nodeType":"YulFunctionCall","src":"26967:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26959:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27001:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"27012:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26994:6:139"},"nodeType":"YulFunctionCall","src":"26994:25:139"},"nodeType":"YulExpressionStatement","src":"26994:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27039:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27050:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27035:3:139"},"nodeType":"YulFunctionCall","src":"27035:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"27055:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27028:6:139"},"nodeType":"YulFunctionCall","src":"27028:34:139"},"nodeType":"YulExpressionStatement","src":"27028:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27093:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27078:3:139"},"nodeType":"YulFunctionCall","src":"27078:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"27098:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27071:6:139"},"nodeType":"YulFunctionCall","src":"27071:34:139"},"nodeType":"YulExpressionStatement","src":"27071:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26902:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"26913:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26921:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26929:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26940:4:139","type":""}],"src":"26792:319:139"},{"body":{"nodeType":"YulBlock","src":"27213:87:139","statements":[{"nodeType":"YulAssignment","src":"27223:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27235:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27246:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27231:3:139"},"nodeType":"YulFunctionCall","src":"27231:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27223:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27265:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"27280:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"27288:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27276:3:139"},"nodeType":"YulFunctionCall","src":"27276:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27258:6:139"},"nodeType":"YulFunctionCall","src":"27258:36:139"},"nodeType":"YulExpressionStatement","src":"27258:36:139"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27182:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"27193:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27204:4:139","type":""}],"src":"27116:184:139"},{"body":{"nodeType":"YulBlock","src":"27350:230:139","statements":[{"nodeType":"YulAssignment","src":"27360:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27376:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27370:5:139"},"nodeType":"YulFunctionCall","src":"27370:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"27360:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"27388:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"27410:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"27426:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"27432:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27422:3:139"},"nodeType":"YulFunctionCall","src":"27422:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27441:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27437:3:139"},"nodeType":"YulFunctionCall","src":"27437:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27418:3:139"},"nodeType":"YulFunctionCall","src":"27418:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27406:3:139"},"nodeType":"YulFunctionCall","src":"27406:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"27392:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"27521:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"27523:16:139"},"nodeType":"YulFunctionCall","src":"27523:18:139"},"nodeType":"YulExpressionStatement","src":"27523:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"27464:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"27476:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27461:2:139"},"nodeType":"YulFunctionCall","src":"27461:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"27500:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"27512:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27497:2:139"},"nodeType":"YulFunctionCall","src":"27497:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"27458:2:139"},"nodeType":"YulFunctionCall","src":"27458:62:139"},"nodeType":"YulIf","src":"27455:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27559:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"27563:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27552:6:139"},"nodeType":"YulFunctionCall","src":"27552:22:139"},"nodeType":"YulExpressionStatement","src":"27552:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"27330:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"27339:6:139","type":""}],"src":"27305:275:139"},{"body":{"nodeType":"YulBlock","src":"27654:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"27698:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"27700:16:139"},"nodeType":"YulFunctionCall","src":"27700:18:139"},"nodeType":"YulExpressionStatement","src":"27700:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"27670:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"27678:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27667:2:139"},"nodeType":"YulFunctionCall","src":"27667:30:139"},"nodeType":"YulIf","src":"27664:2:139"},{"nodeType":"YulAssignment","src":"27729:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27745:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"27748:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27741:3:139"},"nodeType":"YulFunctionCall","src":"27741:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"27757:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27737:3:139"},"nodeType":"YulFunctionCall","src":"27737:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"27729:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"27634:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"27645:4:139","type":""}],"src":"27585:183:139"},{"body":{"nodeType":"YulBlock","src":"27830:129:139","statements":[{"body":{"nodeType":"YulBlock","src":"27874:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"27876:16:139"},"nodeType":"YulFunctionCall","src":"27876:18:139"},"nodeType":"YulExpressionStatement","src":"27876:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"27846:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"27854:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27843:2:139"},"nodeType":"YulFunctionCall","src":"27843:30:139"},"nodeType":"YulIf","src":"27840:2:139"},{"nodeType":"YulAssignment","src":"27905:48:139","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"27925:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"27933:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27921:3:139"},"nodeType":"YulFunctionCall","src":"27921:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27942:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27938:3:139"},"nodeType":"YulFunctionCall","src":"27938:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27917:3:139"},"nodeType":"YulFunctionCall","src":"27917:29:139"},{"kind":"number","nodeType":"YulLiteral","src":"27948:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27913:3:139"},"nodeType":"YulFunctionCall","src":"27913:40:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"27905:4:139"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"27810:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"27821:4:139","type":""}],"src":"27773:186:139"},{"body":{"nodeType":"YulBlock","src":"28011:321:139","statements":[{"nodeType":"YulVariableDeclaration","src":"28021:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28043:2:139","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"28047:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"28032:10:139"},"nodeType":"YulFunctionCall","src":"28032:17:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"28025:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28058:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28080:2:139","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"28084:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"28069:10:139"},"nodeType":"YulFunctionCall","src":"28069:17:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"28062:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28095:23:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"28109:3:139"},{"name":"sum","nodeType":"YulIdentifier","src":"28114:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"28105:3:139"},"nodeType":"YulFunctionCall","src":"28105:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"28099:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"28187:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"28189:16:139"},"nodeType":"YulFunctionCall","src":"28189:18:139"},"nodeType":"YulExpressionStatement","src":"28189:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"28141:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28134:6:139"},"nodeType":"YulFunctionCall","src":"28134:10:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"28150:3:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28167:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"28172:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"28163:3:139"},"nodeType":"YulFunctionCall","src":"28163:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"28176:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28159:3:139"},"nodeType":"YulFunctionCall","src":"28159:19:139"},{"name":"x_1","nodeType":"YulIdentifier","src":"28180:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28155:3:139"},"nodeType":"YulFunctionCall","src":"28155:29:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"28146:3:139"},"nodeType":"YulFunctionCall","src":"28146:39:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"28130:3:139"},"nodeType":"YulFunctionCall","src":"28130:56:139"},"nodeType":"YulIf","src":"28127:2:139"},{"body":{"nodeType":"YulBlock","src":"28275:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"28277:16:139"},"nodeType":"YulFunctionCall","src":"28277:18:139"},"nodeType":"YulExpressionStatement","src":"28277:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"28225:2:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"28233:3:139"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28254:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"28259:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"28250:3:139"},"nodeType":"YulFunctionCall","src":"28250:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"28263:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28246:3:139"},"nodeType":"YulFunctionCall","src":"28246:19:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"28242:3:139"},"nodeType":"YulFunctionCall","src":"28242:24:139"},{"name":"x_1","nodeType":"YulIdentifier","src":"28268:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28238:3:139"},"nodeType":"YulFunctionCall","src":"28238:34:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"28229:3:139"},"nodeType":"YulFunctionCall","src":"28229:44:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"28221:3:139"},"nodeType":"YulFunctionCall","src":"28221:53:139"},"nodeType":"YulIf","src":"28218:2:139"},{"nodeType":"YulAssignment","src":"28306:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"28317:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"28322:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28313:3:139"},"nodeType":"YulFunctionCall","src":"28313:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"28306:3:139"}]}]},"name":"checked_add_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"27994:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"27997:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"28003:3:139","type":""}],"src":"27964:368:139"},{"body":{"nodeType":"YulBlock","src":"28385:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"28412:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"28414:16:139"},"nodeType":"YulFunctionCall","src":"28414:18:139"},"nodeType":"YulExpressionStatement","src":"28414:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"28401:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"28408:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"28404:3:139"},"nodeType":"YulFunctionCall","src":"28404:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"28398:2:139"},"nodeType":"YulFunctionCall","src":"28398:13:139"},"nodeType":"YulIf","src":"28395:2:139"},{"nodeType":"YulAssignment","src":"28443:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"28454:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"28457:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28450:3:139"},"nodeType":"YulFunctionCall","src":"28450:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"28443:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"28368:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"28371:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"28377:3:139","type":""}],"src":"28337:128:139"},{"body":{"nodeType":"YulBlock","src":"28515:245:139","statements":[{"nodeType":"YulVariableDeclaration","src":"28525:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28547:2:139","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"28551:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"28536:10:139"},"nodeType":"YulFunctionCall","src":"28536:17:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"28529:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28562:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28584:2:139","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"28588:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"28573:10:139"},"nodeType":"YulFunctionCall","src":"28573:17:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"28566:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"28614:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"28616:16:139"},"nodeType":"YulFunctionCall","src":"28616:18:139"},"nodeType":"YulExpressionStatement","src":"28616:18:139"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"28609:3:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28602:6:139"},"nodeType":"YulFunctionCall","src":"28602:11:139"},"nodeType":"YulIf","src":"28599:2:139"},{"body":{"nodeType":"YulBlock","src":"28704:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"28706:16:139"},"nodeType":"YulFunctionCall","src":"28706:18:139"},"nodeType":"YulExpressionStatement","src":"28706:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"28655:3:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28672:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"28677:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"28668:3:139"},"nodeType":"YulFunctionCall","src":"28668:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"28681:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28664:3:139"},"nodeType":"YulFunctionCall","src":"28664:19:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"28660:3:139"},"nodeType":"YulFunctionCall","src":"28660:24:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"28652:2:139"},"nodeType":"YulFunctionCall","src":"28652:33:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"28690:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28699:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"28695:3:139"},"nodeType":"YulFunctionCall","src":"28695:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"28687:2:139"},"nodeType":"YulFunctionCall","src":"28687:15:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"28648:3:139"},"nodeType":"YulFunctionCall","src":"28648:55:139"},"nodeType":"YulIf","src":"28645:2:139"},{"nodeType":"YulAssignment","src":"28735:19:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"28745:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"28750:3:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"28740:4:139"},"nodeType":"YulFunctionCall","src":"28740:14:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"28735:1:139"}]}]},"name":"checked_div_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"28500:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"28503:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"28509:1:139","type":""}],"src":"28470:290:139"},{"body":{"nodeType":"YulBlock","src":"28811:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"28834:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"28836:16:139"},"nodeType":"YulFunctionCall","src":"28836:18:139"},"nodeType":"YulExpressionStatement","src":"28836:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"28831:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28824:6:139"},"nodeType":"YulFunctionCall","src":"28824:9:139"},"nodeType":"YulIf","src":"28821:2:139"},{"nodeType":"YulAssignment","src":"28865:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"28874:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"28877:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"28870:3:139"},"nodeType":"YulFunctionCall","src":"28870:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"28865:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"28796:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"28799:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"28805:1:139","type":""}],"src":"28765:120:139"},{"body":{"nodeType":"YulBlock","src":"28941:641:139","statements":[{"nodeType":"YulVariableDeclaration","src":"28951:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28973:2:139","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"28977:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"28962:10:139"},"nodeType":"YulFunctionCall","src":"28962:17:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"28955:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28988:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29010:2:139","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"29014:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"28999:10:139"},"nodeType":"YulFunctionCall","src":"28999:17:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"28992:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29025:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29043:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"29048:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29039:3:139"},"nodeType":"YulFunctionCall","src":"29039:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"29052:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29035:3:139"},"nodeType":"YulFunctionCall","src":"29035:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29029:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29063:27:139","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"29077:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"29082:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"29073:3:139"},"nodeType":"YulFunctionCall","src":"29073:17:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"29067:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29099:27:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"29113:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"29118:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"29109:3:139"},"nodeType":"YulFunctionCall","src":"29109:17:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"29103:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"29178:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29180:16:139"},"nodeType":"YulFunctionCall","src":"29180:18:139"},"nodeType":"YulExpressionStatement","src":"29180:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"29146:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29150:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29142:3:139"},"nodeType":"YulFunctionCall","src":"29142:11:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"29158:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"29167:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"29171:3:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"29163:3:139"},"nodeType":"YulFunctionCall","src":"29163:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"29155:2:139"},"nodeType":"YulFunctionCall","src":"29155:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29138:3:139"},"nodeType":"YulFunctionCall","src":"29138:39:139"},"nodeType":"YulIf","src":"29135:2:139"},{"nodeType":"YulVariableDeclaration","src":"29209:34:139","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29231:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"29236:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29227:3:139"},"nodeType":"YulFunctionCall","src":"29227:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"29240:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29223:3:139"},"nodeType":"YulFunctionCall","src":"29223:19:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"29219:3:139"},"nodeType":"YulFunctionCall","src":"29219:24:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"29213:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29252:27:139","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"29266:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"29271:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"29262:3:139"},"nodeType":"YulFunctionCall","src":"29262:17:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"29256:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"29333:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29335:16:139"},"nodeType":"YulFunctionCall","src":"29335:18:139"},"nodeType":"YulExpressionStatement","src":"29335:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"29299:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"29303:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29295:3:139"},"nodeType":"YulFunctionCall","src":"29295:11:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"29312:3:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"29322:2:139"},{"name":"x_1","nodeType":"YulIdentifier","src":"29326:3:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"29317:4:139"},"nodeType":"YulFunctionCall","src":"29317:13:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"29308:3:139"},"nodeType":"YulFunctionCall","src":"29308:23:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29291:3:139"},"nodeType":"YulFunctionCall","src":"29291:41:139"},"nodeType":"YulIf","src":"29288:2:139"},{"nodeType":"YulVariableDeclaration","src":"29364:27:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"29378:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"29383:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"29374:3:139"},"nodeType":"YulFunctionCall","src":"29374:17:139"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"29368:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"29445:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29447:16:139"},"nodeType":"YulFunctionCall","src":"29447:18:139"},"nodeType":"YulExpressionStatement","src":"29447:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"29411:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29415:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29407:3:139"},"nodeType":"YulFunctionCall","src":"29407:11:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"29424:3:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"29434:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"29438:3:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"29429:4:139"},"nodeType":"YulFunctionCall","src":"29429:13:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"29420:3:139"},"nodeType":"YulFunctionCall","src":"29420:23:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29403:3:139"},"nodeType":"YulFunctionCall","src":"29403:41:139"},"nodeType":"YulIf","src":"29400:2:139"},{"body":{"nodeType":"YulBlock","src":"29521:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29523:16:139"},"nodeType":"YulFunctionCall","src":"29523:18:139"},"nodeType":"YulExpressionStatement","src":"29523:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"29487:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"29491:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29483:3:139"},"nodeType":"YulFunctionCall","src":"29483:11:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"29500:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"29510:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"29514:3:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"29505:4:139"},"nodeType":"YulFunctionCall","src":"29505:13:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"29496:3:139"},"nodeType":"YulFunctionCall","src":"29496:23:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29479:3:139"},"nodeType":"YulFunctionCall","src":"29479:41:139"},"nodeType":"YulIf","src":"29476:2:139"},{"nodeType":"YulAssignment","src":"29552:24:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"29567:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"29572:3:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"29563:3:139"},"nodeType":"YulFunctionCall","src":"29563:13:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"29552:7:139"}]}]},"name":"checked_mul_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"28920:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"28923:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"28929:7:139","type":""}],"src":"28890:692:139"},{"body":{"nodeType":"YulBlock","src":"29639:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"29698:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29700:16:139"},"nodeType":"YulFunctionCall","src":"29700:18:139"},"nodeType":"YulExpressionStatement","src":"29700:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"29670:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29663:6:139"},"nodeType":"YulFunctionCall","src":"29663:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29656:6:139"},"nodeType":"YulFunctionCall","src":"29656:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"29678:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29689:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"29685:3:139"},"nodeType":"YulFunctionCall","src":"29685:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"29693:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"29681:3:139"},"nodeType":"YulFunctionCall","src":"29681:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"29675:2:139"},"nodeType":"YulFunctionCall","src":"29675:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29652:3:139"},"nodeType":"YulFunctionCall","src":"29652:45:139"},"nodeType":"YulIf","src":"29649:2:139"},{"nodeType":"YulAssignment","src":"29729:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"29744:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"29747:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"29740:3:139"},"nodeType":"YulFunctionCall","src":"29740:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"29729:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"29618:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"29621:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"29627:7:139","type":""}],"src":"29587:168:139"},{"body":{"nodeType":"YulBlock","src":"29808:323:139","statements":[{"nodeType":"YulVariableDeclaration","src":"29818:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29840:2:139","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"29844:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"29829:10:139"},"nodeType":"YulFunctionCall","src":"29829:17:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"29822:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29855:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29877:2:139","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"29881:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"29866:10:139"},"nodeType":"YulFunctionCall","src":"29866:17:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"29859:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29892:24:139","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"29906:3:139"},{"name":"diff","nodeType":"YulIdentifier","src":"29911:4:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"29902:3:139"},"nodeType":"YulFunctionCall","src":"29902:14:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29896:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"29990:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29992:16:139"},"nodeType":"YulFunctionCall","src":"29992:18:139"},"nodeType":"YulExpressionStatement","src":"29992:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"29939:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29932:6:139"},"nodeType":"YulFunctionCall","src":"29932:10:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"29948:3:139"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29969:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"29974:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29965:3:139"},"nodeType":"YulFunctionCall","src":"29965:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"29978:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29961:3:139"},"nodeType":"YulFunctionCall","src":"29961:19:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"29957:3:139"},"nodeType":"YulFunctionCall","src":"29957:24:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"29983:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29953:3:139"},"nodeType":"YulFunctionCall","src":"29953:34:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"29944:3:139"},"nodeType":"YulFunctionCall","src":"29944:44:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29928:3:139"},"nodeType":"YulFunctionCall","src":"29928:61:139"},"nodeType":"YulIf","src":"29925:2:139"},{"body":{"nodeType":"YulBlock","src":"30073:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"30075:16:139"},"nodeType":"YulFunctionCall","src":"30075:18:139"},"nodeType":"YulExpressionStatement","src":"30075:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"30028:2:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"30036:3:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30053:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"30058:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"30049:3:139"},"nodeType":"YulFunctionCall","src":"30049:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"30062:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30045:3:139"},"nodeType":"YulFunctionCall","src":"30045:19:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"30066:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30041:3:139"},"nodeType":"YulFunctionCall","src":"30041:29:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"30032:3:139"},"nodeType":"YulFunctionCall","src":"30032:39:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"30024:3:139"},"nodeType":"YulFunctionCall","src":"30024:48:139"},"nodeType":"YulIf","src":"30021:2:139"},{"nodeType":"YulAssignment","src":"30104:21:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"30116:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"30121:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30112:3:139"},"nodeType":"YulFunctionCall","src":"30112:13:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"30104:4:139"}]}]},"name":"checked_sub_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"29790:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"29793:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"29799:4:139","type":""}],"src":"29760:371:139"},{"body":{"nodeType":"YulBlock","src":"30184:222:139","statements":[{"nodeType":"YulVariableDeclaration","src":"30194:22:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"30208:1:139"},{"name":"diff","nodeType":"YulIdentifier","src":"30211:4:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"30204:3:139"},"nodeType":"YulFunctionCall","src":"30204:12:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"30198:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"30273:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"30275:16:139"},"nodeType":"YulFunctionCall","src":"30275:18:139"},"nodeType":"YulExpressionStatement","src":"30275:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"30239:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"30232:6:139"},"nodeType":"YulFunctionCall","src":"30232:10:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"30248:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30259:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"30264:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"30255:3:139"},"nodeType":"YulFunctionCall","src":"30255:11:139"},{"name":"y","nodeType":"YulIdentifier","src":"30268:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30251:3:139"},"nodeType":"YulFunctionCall","src":"30251:19:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"30244:3:139"},"nodeType":"YulFunctionCall","src":"30244:27:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"30228:3:139"},"nodeType":"YulFunctionCall","src":"30228:44:139"},"nodeType":"YulIf","src":"30225:2:139"},{"body":{"nodeType":"YulBlock","src":"30352:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"30354:16:139"},"nodeType":"YulFunctionCall","src":"30354:18:139"},"nodeType":"YulExpressionStatement","src":"30354:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"30311:2:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"30319:1:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30334:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"30339:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"30330:3:139"},"nodeType":"YulFunctionCall","src":"30330:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"30343:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30326:3:139"},"nodeType":"YulFunctionCall","src":"30326:19:139"},{"name":"y","nodeType":"YulIdentifier","src":"30347:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30322:3:139"},"nodeType":"YulFunctionCall","src":"30322:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"30315:3:139"},"nodeType":"YulFunctionCall","src":"30315:35:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"30307:3:139"},"nodeType":"YulFunctionCall","src":"30307:44:139"},"nodeType":"YulIf","src":"30304:2:139"},{"nodeType":"YulAssignment","src":"30383:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"30395:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"30398:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30391:3:139"},"nodeType":"YulFunctionCall","src":"30391:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"30383:4:139"}]}]},"name":"checked_sub_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"30166:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"30169:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"30175:4:139","type":""}],"src":"30136:270:139"},{"body":{"nodeType":"YulBlock","src":"30460:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"30482:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"30484:16:139"},"nodeType":"YulFunctionCall","src":"30484:18:139"},"nodeType":"YulExpressionStatement","src":"30484:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"30476:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"30479:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"30473:2:139"},"nodeType":"YulFunctionCall","src":"30473:8:139"},"nodeType":"YulIf","src":"30470:2:139"},{"nodeType":"YulAssignment","src":"30513:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"30525:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"30528:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30521:3:139"},"nodeType":"YulFunctionCall","src":"30521:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"30513:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"30442:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"30445:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"30451:4:139","type":""}],"src":"30411:125:139"},{"body":{"nodeType":"YulBlock","src":"30594:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"30604:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"30613:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"30608:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"30673:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"30698:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"30703:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30694:3:139"},"nodeType":"YulFunctionCall","src":"30694:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"30717:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"30722:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30713:3:139"},"nodeType":"YulFunctionCall","src":"30713:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30707:5:139"},"nodeType":"YulFunctionCall","src":"30707:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30687:6:139"},"nodeType":"YulFunctionCall","src":"30687:39:139"},"nodeType":"YulExpressionStatement","src":"30687:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"30634:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"30637:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"30631:2:139"},"nodeType":"YulFunctionCall","src":"30631:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"30645:19:139","statements":[{"nodeType":"YulAssignment","src":"30647:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"30656:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"30659:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30652:3:139"},"nodeType":"YulFunctionCall","src":"30652:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"30647:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"30627:3:139","statements":[]},"src":"30623:113:139"},{"body":{"nodeType":"YulBlock","src":"30762:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"30775:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"30780:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30771:3:139"},"nodeType":"YulFunctionCall","src":"30771:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"30789:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30764:6:139"},"nodeType":"YulFunctionCall","src":"30764:27:139"},"nodeType":"YulExpressionStatement","src":"30764:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"30751:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"30754:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"30748:2:139"},"nodeType":"YulFunctionCall","src":"30748:13:139"},"nodeType":"YulIf","src":"30745:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"30572:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"30577:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"30582:6:139","type":""}],"src":"30541:258:139"},{"body":{"nodeType":"YulBlock","src":"30851:89:139","statements":[{"body":{"nodeType":"YulBlock","src":"30878:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"30880:16:139"},"nodeType":"YulFunctionCall","src":"30880:18:139"},"nodeType":"YulExpressionStatement","src":"30880:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30871:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"30864:6:139"},"nodeType":"YulFunctionCall","src":"30864:13:139"},"nodeType":"YulIf","src":"30861:2:139"},{"nodeType":"YulAssignment","src":"30909:25:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30920:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30931:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"30927:3:139"},"nodeType":"YulFunctionCall","src":"30927:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30916:3:139"},"nodeType":"YulFunctionCall","src":"30916:18:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"30909:3:139"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"30833:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"30843:3:139","type":""}],"src":"30804:136:139"},{"body":{"nodeType":"YulBlock","src":"30992:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"31023:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"31025:16:139"},"nodeType":"YulFunctionCall","src":"31025:18:139"},"nodeType":"YulExpressionStatement","src":"31025:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31008:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31019:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"31015:3:139"},"nodeType":"YulFunctionCall","src":"31015:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"31005:2:139"},"nodeType":"YulFunctionCall","src":"31005:17:139"},"nodeType":"YulIf","src":"31002:2:139"},{"nodeType":"YulAssignment","src":"31054:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31065:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"31072:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31061:3:139"},"nodeType":"YulFunctionCall","src":"31061:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"31054:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"30974:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"30984:3:139","type":""}],"src":"30945:135:139"},{"body":{"nodeType":"YulBlock","src":"31117:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31134:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31141:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"31146:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31137:3:139"},"nodeType":"YulFunctionCall","src":"31137:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31127:6:139"},"nodeType":"YulFunctionCall","src":"31127:31:139"},"nodeType":"YulExpressionStatement","src":"31127:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31174:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"31177:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31167:6:139"},"nodeType":"YulFunctionCall","src":"31167:15:139"},"nodeType":"YulExpressionStatement","src":"31167:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31198:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"31201:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"31191:6:139"},"nodeType":"YulFunctionCall","src":"31191:15:139"},"nodeType":"YulExpressionStatement","src":"31191:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"31085:127:139"},{"body":{"nodeType":"YulBlock","src":"31249:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31266:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31273:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"31278:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31269:3:139"},"nodeType":"YulFunctionCall","src":"31269:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31259:6:139"},"nodeType":"YulFunctionCall","src":"31259:31:139"},"nodeType":"YulExpressionStatement","src":"31259:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31306:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"31309:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31299:6:139"},"nodeType":"YulFunctionCall","src":"31299:15:139"},"nodeType":"YulExpressionStatement","src":"31299:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31330:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"31333:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"31323:6:139"},"nodeType":"YulFunctionCall","src":"31323:15:139"},"nodeType":"YulExpressionStatement","src":"31323:15:139"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"31217:127:139"},{"body":{"nodeType":"YulBlock","src":"31381:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31398:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31405:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"31410:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31401:3:139"},"nodeType":"YulFunctionCall","src":"31401:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31391:6:139"},"nodeType":"YulFunctionCall","src":"31391:31:139"},"nodeType":"YulExpressionStatement","src":"31391:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31438:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"31441:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31431:6:139"},"nodeType":"YulFunctionCall","src":"31431:15:139"},"nodeType":"YulExpressionStatement","src":"31431:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31462:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"31465:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"31455:6:139"},"nodeType":"YulFunctionCall","src":"31455:15:139"},"nodeType":"YulExpressionStatement","src":"31455:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"31349:127:139"},{"body":{"nodeType":"YulBlock","src":"31526:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"31590:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31599:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"31602:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"31592:6:139"},"nodeType":"YulFunctionCall","src":"31592:12:139"},"nodeType":"YulExpressionStatement","src":"31592:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31549:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31560:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31575:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"31580:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31571:3:139"},"nodeType":"YulFunctionCall","src":"31571:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"31584:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31567:3:139"},"nodeType":"YulFunctionCall","src":"31567:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31556:3:139"},"nodeType":"YulFunctionCall","src":"31556:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"31546:2:139"},"nodeType":"YulFunctionCall","src":"31546:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"31539:6:139"},"nodeType":"YulFunctionCall","src":"31539:50:139"},"nodeType":"YulIf","src":"31536:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"31515:5:139","type":""}],"src":"31481:131:139"},{"body":{"nodeType":"YulBlock","src":"31659:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"31713:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31722:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"31725:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"31715:6:139"},"nodeType":"YulFunctionCall","src":"31715:12:139"},"nodeType":"YulExpressionStatement","src":"31715:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31682:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31703:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"31696:6:139"},"nodeType":"YulFunctionCall","src":"31696:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"31689:6:139"},"nodeType":"YulFunctionCall","src":"31689:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"31679:2:139"},"nodeType":"YulFunctionCall","src":"31679:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"31672:6:139"},"nodeType":"YulFunctionCall","src":"31672:40:139"},"nodeType":"YulIf","src":"31669:2:139"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"31648:5:139","type":""}],"src":"31617:118:139"},{"body":{"nodeType":"YulBlock","src":"31784:87:139","statements":[{"body":{"nodeType":"YulBlock","src":"31849:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31858:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"31861:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"31851:6:139"},"nodeType":"YulFunctionCall","src":"31851:12:139"},"nodeType":"YulExpressionStatement","src":"31851:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31807:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31818:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31829:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"31834:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31825:3:139"},"nodeType":"YulFunctionCall","src":"31825:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31814:3:139"},"nodeType":"YulFunctionCall","src":"31814:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"31804:2:139"},"nodeType":"YulFunctionCall","src":"31804:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"31797:6:139"},"nodeType":"YulFunctionCall","src":"31797:51:139"},"nodeType":"YulIf","src":"31794:2:139"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"31773:5:139","type":""}],"src":"31740:131:139"}]},"contents":"{\n    { }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_bool(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_bool(value)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(value3, value3) }\n        let _2 := calldataload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(value3, value3) }\n        calldatacopy(add(array, 32), add(_1, 32), _2)\n        mstore(add(add(array, _2), 32), value3)\n        value3 := array\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_uint96(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        if iszero(eq(value_1, and(value_1, 0xffffffffffffffffffffffff))) { revert(value1, value1) }\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bool(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value2, value2) }\n        let _3 := calldataload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let src := add(_2, _4)\n        if gt(add(add(_2, shl(5, _3)), _4), dataEnd) { revert(value2, value2) }\n        let i := value2\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n            src := add(src, _4)\n        }\n        value0 := dst_1\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(value2, value2) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value2, value2) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset_2), dataEnd)\n        value3 := abi_decode_bool(add(headStart, 96))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_ITokenURIGenerator_$35664(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _2 := mload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(value0, value0) }\n        copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n        value0 := array\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value2 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_addresst_bool(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value2 := value\n        let value_1 := calldataload(add(headStart, 96))\n        validator_revert_bool(value_1)\n        value3 := value_1\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_ITokenURIGenerator_$35664__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_int128__to_t_int128__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, signextend(15, value0))\n    }\n    function abi_encode_tuple_t_int128_t_uint256_t_uint256__to_t_int128_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, signextend(15, value0))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_01173bbfe002a8916184f8f7c88b55bac2bc68ac2fbd9efd2306289847e45408__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"Cannot add to expired lock.\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0830384f93797c3d64b307ea246e9d2dd60221bf54ff98eee2de1ffaffe73152__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"to not approved\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_175ad23f068aed3ab88ee19620d541e9ae3d91161407ed4bb90c97cce31b0783__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"invalid sender\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4008fd5ad7acf888b1ace16d44fc4662c9aa79bc457792bb4b657bfe6dd7d8db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 6)\n        mstore(add(headStart, 64), \"staked\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_40dc61cd9e9572b82bea40e63ead03a91c61be507c3d4ce513923bc1f13a7d53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"to staked\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_42d3f0f5990ed3a2cdc2a6bcc5d4731942076e9e813c5a0ff1f3a8b8b2fd993e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"not approved sender\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_49af1ad93488656fe0ec6138293fb681e49fb69c915cd81c5194d0d0d5b795c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"Can only increase lock duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6792364c76b84c5d56829f533e59e20448b466cf28642751aa61cd020c6822ee__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"value = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8f2f0d45ca70854308f4586d0e5a6a00dd2cffcf3c63fac8bf45e216c4725cc7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Nothing is locked\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_981d829dd5f0de3da913001d5b1a8ece815c3c8ad72bf506f7cda115bb0a2e3c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"Voting lock can be 4 years max\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a4809fad421eb8d4af92593cf5120cfa909c493f3cfeef8e22867033eb787aad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"caller is not owner nor approved\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b25bcc673a215e3a5bde352ef92ddbe03cbf317e969573af50a3f9bdce18e368__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 8)\n        mstore(add(headStart, 64), \"same nft\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b4dbbb1ecdfd4d206737946fa769f0b57321dbc69ead975edb1109fceab4e63a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"from staked\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b7fe084aded7705802811ee701eb2a306a550b2e89cc56b1a5172f4f09d82aa9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"Lock expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ba31947ee23d0ae2490516d3f699e2ca3cc97701b736b2a4df65fb6df8601a0f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"No existing lock found\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_bdea70ca58d45c47d88ee4f1bb4df5d8575d20650a8c655e8066379cdac05e60__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"owner is 0x0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c698d0407b72c92210ffcd4a7d9f5f135b1ab7423509eb34a8a0b6740e7f2092__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"min amount for nft not met\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d2a2fd435e7ecd614d2f7e78d15eda818a4e6b1586e14106486480d5130a0840__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"from not approved\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d42d49df137fca74f731d619e6cd0b2b6bf7c7da1fcb6425e89873e4209ba1c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"Can only lock in the future\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d446171ee7f95efe390a43478cb30c0775338aa36cae102e91df323bf3b643e0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"not migrator\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_daa7483749cacd5db6e6dbf39797c99e92fae0480149c43b2eb0bdcda7a1bf59__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"invalid data\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC2981: royalty fee will exceed\")\n        mstore(add(headStart, 96), \" salePrice\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_ebc02eeff58ffa8f8de6abcdca4003e5fae11ac28f00f89c23c763b81a058e64__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"not in bootstrap mode\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"not owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"not governance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC2981: invalid receiver\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fd1d0bc28fa2c92449d40df20cd3a58eba7687f39f6e0f26d29f6bd7e450cebe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"The lock didn't expire\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_struct$_Point_$34884_memory_ptr__to_t_struct$_Point_$34884_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, signextend(15, mload(value0)))\n        mstore(add(headStart, 0x20), signextend(15, mload(add(value0, 0x20))))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_enum$_DepositType_$34875_t_uint256__to_t_uint256_t_uint256_t_uint8_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        if iszero(lt(value2, 5))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function checked_add_t_int128(x, y) -> sum\n    {\n        let x_1 := signextend(15, x)\n        let y_1 := signextend(15, y)\n        let _1 := slt(x_1, sum)\n        if and(iszero(_1), sgt(y_1, sub(sub(shl(127, 1), 1), x_1))) { panic_error_0x11() }\n        if and(_1, slt(y_1, sub(not(sub(shl(127, 1), 1)), x_1))) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_int128(x, y) -> r\n    {\n        let x_1 := signextend(15, x)\n        let y_1 := signextend(15, y)\n        if iszero(y_1) { panic_error_0x12() }\n        if and(eq(x_1, not(sub(shl(127, 1), 1))), eq(y_1, not(0))) { panic_error_0x11() }\n        r := sdiv(x_1, y_1)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_mul_t_int128(x, y) -> product\n    {\n        let x_1 := signextend(15, x)\n        let y_1 := signextend(15, y)\n        let _1 := sub(shl(127, 1), 1)\n        let _2 := sgt(y_1, product)\n        let _3 := sgt(x_1, product)\n        if and(and(_3, _2), gt(x_1, div(_1, y_1))) { panic_error_0x11() }\n        let _4 := not(sub(shl(127, 1), 1))\n        let _5 := slt(y_1, product)\n        if and(and(_3, _5), slt(y_1, sdiv(_4, x_1))) { panic_error_0x11() }\n        let _6 := slt(x_1, product)\n        if and(and(_6, _2), slt(x_1, sdiv(_4, y_1))) { panic_error_0x11() }\n        if and(and(_6, _5), slt(x_1, sdiv(_1, y_1))) { panic_error_0x11() }\n        product := mul(x_1, y_1)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_int128(x, y) -> diff\n    {\n        let x_1 := signextend(15, x)\n        let y_1 := signextend(15, y)\n        let _1 := slt(y_1, diff)\n        if and(iszero(_1), slt(x_1, add(not(sub(shl(127, 1), 1)), y_1))) { panic_error_0x11() }\n        if and(_1, sgt(x_1, add(sub(shl(127, 1), 1), y_1))) { panic_error_0x11() }\n        diff := sub(x_1, y_1)\n    }\n    function checked_sub_t_int256(x, y) -> diff\n    {\n        let _1 := slt(y, diff)\n        if and(iszero(_1), slt(x, add(shl(255, 1), y))) { panic_error_0x11() }\n        if and(_1, sgt(x, add(sub(shl(255, 1), 1), y))) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061035b5760003560e01c80636352211e116101ca578063b45a3c0e11610105578063d1c2babb116100a8578063d1c2babb146108c9578063d490dbca146108dc578063d547741f146108e4578063d60371a7146108f7578063e0514aba1461090a578063e58f59471461091d578063e7e242d41461093d578063e985e9c514610950578063f52a36f71461098c57600080fd5b8063b45a3c0e146107fb578063b7f1d0721461084f578063b88d4fde14610862578063baa51f8614610875578063bcc3f3bd14610888578063c2c4c5c11461089b578063c7fecbcc146108a3578063c87b56dd146108b657600080fd5b806391d148541161016d57806391d148541461075d57806395d89b4114610770578063981b24d0146107945780639d507b8b146107a7578063a217fddf146107ba578063a22cb465146107c2578063b128fd86146107d5578063b2383e55146107e857600080fd5b80636352211e146106cf57806370a08231146106e25780637116c60c146106f55780637b103999146107085780638ad4c4471461071b5780638c2c9baf1461072e5780638df4b13b14610741578063900cf0cf1461075457600080fd5b8063248a9ca31161029a57806342842e0e1161023d57806342842e0e146105d1578063430c2081146105e457806344acb42a146105f75780634bd2d9b31461064857806354fd4d501461065c5780635633e0a61461068057806357e871e7146106a6578063626944df146106ac57600080fd5b8063248a9ca3146104ee5780632a55205a146105125780632e1a7d4d146105335780632f2ff15d146105465780632f745c5914610559578063313ce5671461058f57806336568abe146105a957806339c6d4cb146105bc57600080fd5b8063095ea7b311610302578063095ea7b31461045f5780630a2abdb3146104725780630ec84dda146104855780630f68ae401461049857806318160ddd146104ab5780632277cdc2146104b357806323857d51146104bb57806323b872dd146104db57600080fd5b806301ffc9a71461036057806302fa7c4714610388578063045f70191461039d578063047fc9aa146103b057806305ae4f8c146103c757806306fdde03146103da578063081812fc146104155780630880427514610456575b600080fd5b61037361036e3660046143f4565b6109af565b60405190151581526020015b60405180910390f35b61039b61039636600461426e565b610a10565b005b61039b6103ab3660046140c5565b610a4e565b6103b960065481565b60405190815260200161037f565b6103b96103d53660046144b6565b610cbd565b6104086040518060400160405280600f81526020016e131bd8dad959081350521048139195608a1b81525081565b60405161037f919061466c565b61043e6104233660046143b8565b6000908152601160205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161037f565b6103b9600e5481565b61039b61046d366004614243565b610cfd565b6103b961048036600461450f565b610d07565b61039b6104933660046144b6565b610d4d565b61039b6104a63660046143b8565b610e5d565b6103b9610e89565b61039b610e99565b6103b96104c93660046143b8565b60086020526000908152604090205481565b61039b6104e9366004614135565b610ecf565b6103b96104fc3660046143b8565b6000908152600160208190526040909120015490565b6105256105203660046144b6565b610ee0565b60405161037f929190614653565b61039b6105413660046143b8565b610f8c565b61039b6105543660046143d0565b6112ce565b6103b9610567366004614243565b6001600160a01b03919091166000908152601360209081526040808320938352929052205490565b610597601281565b60405160ff909116815260200161037f565b61039b6105b73660046143d0565b6112f4565b6103b9600080516020614be483398151915281565b61039b6105df366004614135565b61136e565b6103736105f2366004614243565b611389565b61060a6106053660046144b6565b61139c565b60405161037f919060006080820190508251600f0b82526020830151600f0b6020830152604083015160408301526060830151606083015292915050565b60045461037390600160a01b900460ff1681565b610408604051806040016040528060058152602001640312e302e360dc1b81525081565b61069361068e3660046143b8565b611426565b604051600f9190910b815260200161037f565b436103b9565b6103b96106ba3660046143b8565b60009081526007602052604090206001015490565b61043e6106dd3660046143b8565b611477565b6103b96106f03660046140c5565b611494565b6103b96107033660046143b8565b61149f565b60045461043e906001600160a01b031681565b61060a6107293660046143b8565b611507565b6103b961073c3660046144b6565b611566565b6103b961074f3660046144d7565b611572565b6103b960095481565b61037361076b3660046143d0565b6115b7565b6104086040518060400160405280600581526020016409a829082b60db1b81525081565b6103b96107a23660046143b8565b6115e2565b61039b6107b53660046144b6565b6117a2565b6103b9600081565b61039b6107d0366004614216565b6119b5565b61039b6107e33660046142a6565b611a48565b61039b6107f63660046144b6565b611b67565b61082f6108093660046143b8565b600760205260009081526040902080546001820154600290920154600f9190910b919083565b60408051600f9490940b845260208401929092529082015260600161037f565b61039b61085d3660046140c5565b611c6d565b61039b610870366004614175565b611cb6565b6103736108833660046143b8565b611df0565b6103b96108963660046140c5565b611dfb565b61039b611e73565b60055461043e906001600160a01b031681565b6104086108c43660046143b8565b611ec1565b61039b6108d73660046144b6565b611f42565b6006546103b9565b61039b6108f23660046143d0565b6121c5565b6103b9610905366004614558565b6121eb565b6103b96109183660046144b6565b612230565b6103b961092b3660046143b8565b600c6020526000908152604090205481565b6103b961094b3660046143b8565b61223c565b61037361095e3660046140fd565b6001600160a01b03918216600090815260156020908152604080832093909416825291909152205460ff1690565b61069361099a3660046143b8565b600d60205260009081526040902054600f0b81565b60006301ffc9a760e01b6001600160e01b0319831614806109e057506380ac58cd60e01b6001600160e01b03198316145b806109fb5750635b5e139f60e01b6001600160e01b03198316145b80610a0a5750610a0a82612264565b92915050565b610a1b6000336115b7565b610a405760405162461bcd60e51b8152600401610a3790614818565b60405180910390fd5b610a4a8282612289565b5050565b610a596000336115b7565b610a755760405162461bcd60e51b8152600401610a3790614818565b600454600160a01b900460ff16610ac65760405162461bcd60e51b81526020600482015260156024820152746e6f7420696e20626f6f747374726170206d6f646560581b6044820152606401610a37565b6004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b158015610b0857600080fd5b505afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4091906140e1565b6001600160a01b031663a9059cbb82600460009054906101000a90046001600160a01b03166001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd591906140e1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b158015610c1657600080fd5b505afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e919061449e565b6040518363ffffffff1660e01b8152600401610c6b929190614653565b602060405180830381600087803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a919061439c565b6000828152600b6020526040812082633b9aca008110610ced57634e487b7160e01b600052603260045260246000fd5b6003020160010154905092915050565b610a4a8282612382565b600060026000541415610d2c5760405162461bcd60e51b8152600401610a37906147e1565b6002600055610d3f858585600186612500565b600160005595945050505050565b60026000541415610d705760405162461bcd60e51b8152600401610a37906147e1565b600260008181558381526007602090815260409182902082516060810184528154600f90810b810b900b81526001820154928101929092529092015490820152610db983612714565b15610dd65760405162461bcd60e51b8152600401610a37906146b6565b60008211610df65760405162461bcd60e51b8152600401610a37906146d6565b60008160000151600f0b13610e1d5760405162461bcd60e51b8152600401610a3790614765565b42816020015111610e405760405162461bcd60e51b8152600401610a379061467f565b610e538383600084600060016000612819565b5050600160005550565b610e686000336115b7565b610e845760405162461bcd60e51b8152600401610a3790614818565b600e55565b6000610e944261149f565b905090565b610ea46000336115b7565b610ec05760405162461bcd60e51b8152600401610a3790614818565b6004805460ff60a01b19169055565b610edb83838333612c3c565b505050565b60008281526003602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610f555750604080518082019091526002546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610f74906001600160601b031687614a45565b610f7e919061499f565b915196919550909350505050565b60026000541415610faf5760405162461bcd60e51b8152600401610a37906147e1565b6002600055610fbe3382612d08565b610fda5760405162461bcd60e51b8152600401610a3790614730565b610fe381612714565b156110005760405162461bcd60e51b8152600401610a37906146b6565b60008181526007602090815260409182902082516060810184528154600f90810b810b900b81526001820154928101839052600290910154928101929092524210156110875760405162461bcd60e51b8152602060048201526016602482015275546865206c6f636b206469646e27742065787069726560501b6044820152606401610a37565b80516040805160608101825260008082526020808301828152838501838152888452600790925293909120915182546001600160801b0319166001600160801b03600f92830b16178355925160018301555160029091015560065491900b906110f08282614af3565b600681905550611121848460405180606001604052806000600f0b8152602001600081526020016000815250612d6b565b6004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b15801561116357600080fd5b505afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906140e1565b6001600160a01b031663a9059cbb33846040518363ffffffff1660e01b81526004016111c8929190614653565b602060405180830381600087803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a919061439c565b61123457634e487b7160e01b600052600160045260246000fd5b61123d846133a4565b60408051858152602081018490524281830152905133917f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca94919081900360600190a27f5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5c816112ab8482614af3565b6040805192835260208301919091520160405180910390a1505060016000555050565b600082815260016020819052604090912001546112ea81613421565b610edb838361342e565b6001600160a01b03811633146113645760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a37565b610a4a8282613499565b610edb83838360405180602001604052806000815250611cb6565b60006113958383612d08565b9392505050565b6113a4614018565b6000838152600b6020526040902082633b9aca0081106113d457634e487b7160e01b600052603260045260246000fd5b60408051608081018252600392909202929092018054600f81810b810b810b8452600160801b909104810b810b900b602083015260018101549282019290925260029091015460608201529392505050565b6000818152600c6020908152604080832054600b909252822081633b9aca00811061146157634e487b7160e01b600052603260045260246000fd5b6003020154600160801b9004600f0b9392505050565b6000818152601060205260408120546001600160a01b0316610a0a565b6000610a0a82613500565b6009546000818152600a6020908152604080832081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608201529091906114ff818561351b565b949350505050565b61150f614018565b506000908152600a602090815260409182902082516080810184528154600f81810b810b810b8352600160801b909104810b810b900b92810192909252600181015492820192909252600290910154606082015290565b60006113958383613625565b600061158c600080516020614be4833981519152336115b7565b6115a85760405162461bcd60e51b8152600401610a3790614795565b6114ff84848460006001612500565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60004382111561160257634e487b7160e01b600052600160045260246000fd5b60095460006116118483613946565b6000818152600a6020908152604080832081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b9381019390935260018101549183019190915260020154606082015291925083831015611730576000600a8161167c866001614949565b8152602080820192909252604090810160002081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608083018290528501519192501461172a57826060015181606001516116f09190614af3565b836040015182604001516117049190614af3565b6060850151611713908a614af3565b61171d9190614a45565b611727919061499f565b91505b5061177f565b4382606001511461177f57606082015161174a9043614af3565b60408301516117599042614af3565b60608401516117689089614af3565b6117729190614a45565b61177c919061499f565b90505b611798828284604001516117939190614949565b61351b565b9695505050505050565b600260005414156117c55760405162461bcd60e51b8152600401610a37906147e1565b60026000556117d43383612d08565b6117f05760405162461bcd60e51b8152600401610a3790614730565b600082815260076020908152604080832081516060810183528154600f90810b810b900b815260018201549381019390935260020154908201529062093a808061183a8542614949565b611844919061499f565b61184e9190614a45565b9050428260200151116118925760405162461bcd60e51b815260206004820152600c60248201526b131bd8dac8195e1c1a5c995960a21b6044820152606401610a37565b60008260000151600f0b136118dd5760405162461bcd60e51b8152602060048201526011602482015270139bdd1a1a5b99c81a5cc81b1bd8dad959607a1b6044820152606401610a37565b816020015181116119305760405162461bcd60e51b815260206004820152601f60248201527f43616e206f6e6c7920696e637265617365206c6f636b206475726174696f6e006044820152606401610a37565b61193e630784ce0042614949565b81111561195d5760405162461bcd60e51b8152600401610a37906146f9565b630784ce0082604001516119719190614949565b8111156119905760405162461bcd60e51b8152600401610a37906146f9565b6119aa8460008385600360006119a58b612714565b612819565b505060016000555050565b6001600160a01b0382163314156119dc57634e487b7160e01b600052600160045260246000fd5b3360008181526015602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611a60600080516020614be4833981519152336115b7565b611a7c5760405162461bcd60e51b8152600401610a3790614795565b8151835114611a9d5760405162461bcd60e51b8152600401610a37906147bb565b8251845114611abe5760405162461bcd60e51b8152600401610a37906147bb565b60005b8451811015611b6057611b4d848281518110611aed57634e487b7160e01b600052603260045260246000fd5b6020026020010151848381518110611b1557634e487b7160e01b600052603260045260246000fd5b6020026020010151878481518110611b3d57634e487b7160e01b600052603260045260246000fd5b6020026020010151600086612500565b5080611b5881614b4d565b915050611ac1565b5050505050565b60026000541415611b8a5760405162461bcd60e51b8152600401610a37906147e1565b6002600055611b993383612d08565b611bb55760405162461bcd60e51b8152600401610a3790614730565b60008281526007602090815260409182902082516060810184528154600f90810b810b900b8152600182015492810192909252600201549181019190915281611c0e57634e487b7160e01b600052600160045260246000fd5b60008160000151600f0b13611c355760405162461bcd60e51b8152600401610a3790614765565b42816020015111611c585760405162461bcd60e51b8152600401610a379061467f565b610e538383600084600260016119a58a612714565b611c786000336115b7565b611c945760405162461bcd60e51b8152600401610a3790614818565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611cc284848433612c3c565b823b15611dea57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611cfb903390889087908790600401614620565b602060405180830381600087803b158015611d1557600080fd5b505af1925050508015611d45575060408051601f3d908101601f19168201909252611d4291810190614410565b60015b611b60573d808015611d73576040519150601f19603f3d011682016040523d82523d6000602084013e611d78565b606091505b508051611de25760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610a37565b805181602001fd5b50505050565b6000610a0a82612714565b6000805b6001600160a01b038316600090815260126020526040902054811015611e6d576001600160a01b0383166000908152601360209081526040808320848452909152902054611e4d81426139d0565b611e579084614949565b9250508080611e6590614b4d565b915050611dff565b50919050565b611ebf600060405180606001604052806000600f0b815260200160008152602001600081525060405180606001604052806000600f0b8152602001600081526020016000815250612d6b565b565b60055460405163c87b56dd60e01b8152600481018390526060916001600160a01b03169063c87b56dd9060240160006040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a0a919081019061442c565b611f4b82612714565b15611f865760405162461bcd60e51b815260206004820152600b60248201526a199c9bdb481cdd185ad95960aa1b6044820152606401610a37565b611f8f81612714565b15611fc85760405162461bcd60e51b81526020600482015260096024820152681d1bc81cdd185ad95960ba1b6044820152606401610a37565b808214156120035760405162461bcd60e51b81526020600482015260086024820152671cd85b59481b999d60c21b6044820152606401610a37565b61200d3383612d08565b61204d5760405162461bcd60e51b8152602060048201526011602482015270199c9bdb481b9bdd08185c1c1c9bdd9959607a1b6044820152606401610a37565b6120573382612d08565b6120955760405162461bcd60e51b815260206004820152600f60248201526e1d1bc81b9bdd08185c1c1c9bdd9959608a1b6044820152606401610a37565b60008281526007602081815260408084208151606080820184528254600f90810b810b810b8352600180850154848801908152600295860154858801528a8a52978752858920865193840187528054830b830b830b8452908101549683018790529093015493810193909352805194519095929490910b92111561211d578260200151612123565b83602001515b6040805160608082018352600080835260208084018281528486018381528d84526007835286842095518654600f9190910b6001600160801b03166001600160801b0319909116178655905160018601555160029094019390935583519182018452808252918101829052918201529091506121a29087908690612d6b565b6121ab866133a4565b6121bd85838386600460016000612819565b505050505050565b600082815260016020819052604090912001546121e181613421565b610edb8383613499565b6000600260005414156122105760405162461bcd60e51b8152600401610a37906147e1565b6002600055612223848433600186612500565b6001600055949350505050565b600061139583836139d0565b60008181526008602052604081205443141561225a57506000919050565b610a0a82426139d0565b60006001600160e01b0319821663152a902d60e11b1480610a0a5750610a0a82613aba565b6127106001600160601b03821611156122f75760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610a37565b6001600160a01b0382166123495760405162461bcd60e51b815260206004820152601960248201527822a921991c9c189d1034b73b30b634b2103932b1b2b4bb32b960391b6044820152606401610a37565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600255565b6000818152601060205260409020546001600160a01b0316806123d65760405162461bcd60e51b815260206004820152600c60248201526b06f776e6572206973203078360a41b6044820152606401610a37565b806001600160a01b0316836001600160a01b031614156124245760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606401610a37565b6000828152601060209081526040808320546001600160a01b0385811685526015845282852033808752945291909320549216149060ff1681806124655750805b6124a25760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b2b73232b960911b6044820152606401610a37565b60008481526011602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918716917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050505050565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561255257600080fd5b505af1158015612566573d6000803e3d6000fd5b50505050600062093a8080874261257d9190614949565b612587919061499f565b6125919190614a45565b9050600087116125b35760405162461bcd60e51b8152600401610a37906146d6565b4281116126025760405162461bcd60e51b815260206004820152601b60248201527f43616e206f6e6c79206c6f636b20696e207468652066757475726500000000006044820152606401610a37565b612610630784ce0042614949565b81111561262f5760405162461bcd60e51b8152600401610a37906146f9565b600f6000815461263e90614b4d565b90915550600f5461264f8682613aef565b506126ae818984600760008681526020019081526020016000206040518060600160405290816000820160009054906101000a9004600f0b600f0b600f0b81526020016001820154815260200160028201548152505060018a8a612819565b600e546126bb82426139d0565b10156127095760405162461bcd60e51b815260206004820152601a60248201527f6d696e20616d6f756e7420666f72206e6674206e6f74206d65740000000000006044820152606401610a37565b979650505050505050565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561276457600080fd5b505afa158015612778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279c91906140e1565b6001600160a01b031663baa51f86836040518263ffffffff1660e01b81526004016127c991815260200190565b60206040518083038186803b1580156127e157600080fd5b505afa1580156127f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a919061439c565b600480546040805163f9fa212360e01b815290516001600160a01b039092169263f9fa212392828201926000929082900301818387803b15801561285c57600080fd5b505af1158015612870573d6000803e3d6000fd5b505060065486925090506128848882614949565b6006556040805160608101825260008082526020820181905291810191909152825160208085015190830152600f90810b900b81528251899084906128ca9083906148f8565b600f90810b900b90525087156128e257602083018890525b600186600481111561290457634e487b7160e01b600052602160045260246000fd5b1415612911574260408401525b60008a81526007602090815260409182902085518154600f9190910b6001600160801b03166001600160801b0319909116178155908501516001820155908401516002909101556129638a8285612d6b565b3389158015906129935750600487600481111561299057634e487b7160e01b600052602160045260246000fd5b14155b801561299c5750855b15612abf576004805460408051631ef0061b60e11b815290516001600160a01b0390921692633de00c36928282019260209290829003018186803b1580156129e357600080fd5b505afa1580156129f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1b91906140e1565b6040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018d905291909116906323b872dd90606401602060405180830381600087803b158015612a6d57600080fd5b505af1158015612a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa5919061439c565b612abf57634e487b7160e01b600052600160045260246000fd5b8415612b9f576004805460408051635ebaf1db60e01b815290516001600160a01b0390921692635ebaf1db928282019260209290829003018186803b158015612b0757600080fd5b505afa158015612b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3f91906140e1565b6001600160a01b031663630b4b908c6040518263ffffffff1660e01b8152600401612b6c91815260200190565b600060405180830381600087803b158015612b8657600080fd5b505af1158015612b9a573d6000803e3d6000fd5b505050505b8360200151816001600160a01b03167fff04ccafc360e16b67d682d17bd9503c4c6b9a131f6be6325762dc9ffc7de6248d8d8b42604051612be39493929190614840565b60405180910390a37f5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5c83612c178c82614949565b6040805192835260208301919091520160405180910390a15050505050505050505050565b612c4582612714565b15612c625760405162461bcd60e51b8152600401610a37906146b6565b612c6c8183612d08565b612cae5760405162461bcd60e51b81526020600482015260136024820152723737ba1030b8383937bb32b21039b2b73232b960691b6044820152606401610a37565b612cb88483613b4e565b612cc28483613bc1565b612ccc8383613c50565b6000828152600860205260408082204390555183916001600160a01b038087169290881691600080516020614c0483398151915291a450505050565b60008181526010602090815260408083205460118352818420546001600160a01b039182168086526015855283862088841680885295529285205492938085149392909116149060ff168280612d5b5750815b8061270957509695505050505050565b612d73614018565b612d7b614018565b60095460009081908715612eaf57428760200151118015612da3575060008760000151600f0b135b15612df0578651612db990630784ce0090614961565b600f90810b900b602080870191909152870151612dd7904290614af3565b8560200151612de691906149b3565b600f90810b900b85525b428660200151118015612e0a575060008660000151600f0b135b15612e57578551612e2090630784ce0090614961565b600f90810b900b602080860191909152860151612e3e904290614af3565b8460200151612e4d91906149b3565b600f90810b900b84525b6020808801516000908152600d8252604090205490870151600f9190910b935015612eaf57866020015186602001511415612e9457829150612eaf565b6020808701516000908152600d9091526040902054600f0b91505b604080516080810182526000808252602082015242918101919091524360608201528115612f2c57506000818152600a602090815260409182902082516080810184528154600f81810b810b810b8352600160801b909104810b810b900b9281019290925260018101549282019290925260029091015460608201525b604081015181600042831015612f79576040840151612f4b9042614af3565b6060850151612f5a9043614af3565b612f6c90670de0b6b3a7640000614a45565b612f76919061499f565b90505b600062093a80612f89818661499f565b612f939190614a45565b905060005b60ff81101561311c57612fae62093a8083614949565b9150600042831115612fc257429250612fd6565b506000828152600d6020526040902054600f0b5b612fe08684614af3565b8760200151612fef91906149b3565b87518890612ffe908390614a64565b600f90810b900b90525060208701805182919061301c9083906148f8565b600f90810b810b90915288516000910b1215905061303957600087525b60008760200151600f0b121561305157600060208801525b60408088018490528501519295508592670de0b6b3a7640000906130759085614af3565b61307f9086614a45565b613089919061499f565b85606001516130989190614949565b60608801526130a8600189614949565b9750428314156130be575043606087015261311c565b6000888152600a60209081526040918290208951918a0151600f90810b6001600160801b03908116600160801b029390910b1691909117815590880151600182015560608801516002909101555061311581614b4d565b9050612f98565b505060098590558b156131ad578860200151886020015161313d9190614a64565b8460200181815161314e91906148f8565b600f90810b900b905250885188516131669190614a64565b845185906131759083906148f8565b600f90810b810b90915260208601516000910b1215905061319857600060208501525b60008460000151600f0b12156131ad57600084525b6000858152600a6020908152604091829020865191870151600f90810b6001600160801b03908116600160801b029390910b1691909117815590850151600182015560608501516002909101558b1561339657428b60200151111561327157602089015161321b90886148f8565b96508a602001518a60200151141561323f57602088015161323c9088614a64565b96505b60208b8101516000908152600d9091526040902080546001600160801b0319166001600160801b03600f8a900b161790555b428a6020015111156132d0578a602001518a6020015111156132d057602088015161329c9087614a64565b60208b8101516000908152600d9091526040902080546001600160801b0319166001600160801b03600f84900b1617905595505b60008c8152600c60205260408120546132ea906001614949565b905080600c60008f815260200190815260200160002081905550428960400181815250504389606001818152505088600b60008f815260200190815260200160002082633b9aca00811061334e57634e487b7160e01b600052603260045260246000fd5b82516020840151600f90810b6001600160801b03908116600160801b029290910b16176003919091029190910190815560408201516001820155606090910151600290910155505b505050505050505050505050565b6133ae3382612d08565b6133ca5760405162461bcd60e51b8152600401610a3790614730565b6000818152601060205260408120546001600160a01b0316906133ed9083612382565b6133f73383613bc1565b60405182906000906001600160a01b03841690600080516020614c04833981519152908390a45050565b61342b8133613cdd565b50565b61343882826115b7565b610a4a5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6134a382826115b7565b15610a4a5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b031660009081526012602052604090205490565b600080839050600062093a80808360400151613537919061499f565b6135419190614a45565b905060005b60ff8110156135fd5761355c62093a8083614949565b915060008583111561357057859250613584565b506000828152600d6020526040902054600f0b5b60408401516135939084614af3565b84602001516135a291906149b3565b845185906135b1908390614a64565b600f90810b900b905250828614156135c957506135fd565b80846020018181516135db91906148f8565b600f90810b900b90525050604083018290526135f681614b4d565b9050613546565b5060008260000151600f0b121561361357600082525b50516001600160801b03169392505050565b60004382111561364557634e487b7160e01b600052600160045260246000fd5b6000838152600c6020526040812054815b60808110156136f75781831061366b576136f7565b600060026136798486614949565b613684906001614949565b61368e919061499f565b6000888152600b60205260409020909150869082633b9aca0081106136c357634e487b7160e01b600052603260045260246000fd5b6003020160020154116136d8578093506136e6565b6136e3600182614af3565b92505b506136f081614b4d565b9050613656565b506000858152600b6020526040812083633b9aca00811061372857634e487b7160e01b600052603260045260246000fd5b60408051608081018252600392909202929092018054600f81810b810b810b8452600160801b909104810b810b900b6020830152600181015492820192909252600290910154606082015260095490915060006137858783613946565b6000818152600a6020908152604080832081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608201529192508084841015613874576000600a816137f1876001614949565b8152602080820192909252604090810160002081516080810183528154600f81810b810b810b8352600160801b909104810b810b900b938101939093526001810154918301919091526002015460608083018290528601519192506138569190614af3565b92508360400151816040015161386c9190614af3565b915050613898565b60608301516138839043614af3565b91508260400151426138959190614af3565b90505b604083015182156138d5578284606001518c6138b49190614af3565b6138be9084614a45565b6138c8919061499f565b6138d29082614949565b90505b60408701516138e49082614af3565b87602001516138f391906149b3565b87518890613902908390614a64565b600f90810b810b90915288516000910b12905061393457505093516001600160801b03169650610a0a95505050505050565b60009950505050505050505050610a0a565b60008082815b60808110156139c657818310613961576139c6565b6000600261396f8486614949565b61397a906001614949565b613984919061499f565b6000818152600a602052604090206002015490915087106139a7578093506139b5565b6139b2600182614af3565b92505b506139bf81614b4d565b905061394c565b5090949350505050565b6000828152600c6020526040812054806139ee576000915050610a0a565b6000848152600b6020526040812082633b9aca008110613a1e57634e487b7160e01b600052603260045260246000fd5b60408051608081018252600392909202929092018054600f81810b810b810b8452600160801b909104810b810b900b602083015260018101549282018390526002015460608201529150613a729085614ab4565b8160200151613a8191906149b3565b81518290613a90908390614a64565b600f90810b810b90915282516000910b12159050613aad57600081525b51600f0b9150610a0a9050565b60006001600160e01b03198216637965db0b60e01b1480610a0a57506301ffc9a760e01b6001600160e01b0319831614610a0a565b60006001600160a01b038316613b1557634e487b7160e01b600052600160045260246000fd5b613b1f8383613c50565b60405182906001600160a01b03851690600090600080516020614c04833981519152908290a450600192915050565b6000818152601060205260409020546001600160a01b03838116911614613b8557634e487b7160e01b600052600160045260246000fd5b6000818152601160205260409020546001600160a01b031615610a4a57600090815260116020526040902080546001600160a01b031916905550565b6000818152601060205260409020546001600160a01b03838116911614613bf857634e487b7160e01b600052600160045260246000fd5b600081815260106020526040902080546001600160a01b0319169055613c1e8282613d41565b6001600160a01b0382166000908152601260205260408120805460019290613c47908490614af3565b90915550505050565b6000818152601060205260409020546001600160a01b031615613c8357634e487b7160e01b600052600160045260246000fd5b600081815260106020526040902080546001600160a01b0319166001600160a01b038416179055613cb48282613df3565b6001600160a01b0382166000908152601260205260408120805460019290613c47908490614949565b613ce782826115b7565b610a4a57613cff816001600160a01b03166014613e37565b613d0a836020613e37565b604051602001613d1b9291906145b1565b60408051601f198184030181529082905262461bcd60e51b8252610a379160040161466c565b60006001613d4e84613500565b613d589190614af3565b60008381526014602052604090205490915080821415613da8576001600160a01b038416600090815260136020908152604080832085845282528083208390558583526014909152812055611dea565b6001600160a01b039390931660009081526013602090815260408083209383529281528282208054868452848420819055835260149091528282209490945592839055908252812055565b6000613dfe83613500565b6001600160a01b039093166000908152601360209081526040808320868452825280832085905593825260149052919091209190915550565b60606000613e46836002614a45565b613e51906002614949565b6001600160401b03811115613e7657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613ea0576020820181803683370190505b509050600360fc1b81600081518110613ec957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f0657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000613f2a846002614a45565b613f35906001614949565b90505b6001811115613fc9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613f7757634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110613f9b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93613fc281614b36565b9050613f38565b5083156113955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a37565b60405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525090565b600082601f830112614056578081fd5b8135602061406b614066836148ae565b61487e565b80838252828201915082860187848660051b890101111561408a578586fd5b855b858110156140a85781358452928401929084019060010161408c565b5090979650505050505050565b80356140c081614bbf565b919050565b6000602082840312156140d6578081fd5b813561139581614baa565b6000602082840312156140f2578081fd5b815161139581614baa565b6000806040838503121561410f578081fd5b823561411a81614baa565b9150602083013561412a81614baa565b809150509250929050565b600080600060608486031215614149578081fd5b833561415481614baa565b9250602084013561416481614baa565b929592945050506040919091013590565b6000806000806080858703121561418a578081fd5b843561419581614baa565b935060208501356141a581614baa565b92506040850135915060608501356001600160401b038111156141c6578182fd5b8501601f810187136141d6578182fd5b80356141e4614066826148d1565b8181528860208385010111156141f8578384fd5b81602084016020830137908101602001929092525092959194509250565b60008060408385031215614228578182fd5b823561423381614baa565b9150602083013561412a81614bbf565b60008060408385031215614255578182fd5b823561426081614baa565b946020939093013593505050565b60008060408385031215614280578182fd5b823561428b81614baa565b915060208301356001600160601b038116811461412a578182fd5b600080600080608085870312156142bb578182fd5b84356001600160401b03808211156142d1578384fd5b818701915087601f8301126142e4578384fd5b813560206142f4614066836148ae565b8083825282820191508286018c848660051b8901011115614313578889fd5b8896505b8487101561433e57803561432a81614baa565b835260019690960195918301918301614317565b5098505088013592505080821115614354578384fd5b61436088838901614046565b94506040870135915080821115614375578384fd5b5061438287828801614046565b925050614391606086016140b5565b905092959194509250565b6000602082840312156143ad578081fd5b815161139581614bbf565b6000602082840312156143c9578081fd5b5035919050565b600080604083850312156143e2578182fd5b82359150602083013561412a81614baa565b600060208284031215614405578081fd5b813561139581614bcd565b600060208284031215614421578081fd5b815161139581614bcd565b60006020828403121561443d578081fd5b81516001600160401b03811115614452578182fd5b8201601f81018413614462578182fd5b8051614470614066826148d1565b818152856020838501011115614484578384fd5b614495826020830160208601614b0a565b95945050505050565b6000602082840312156144af578081fd5b5051919050565b600080604083850312156144c8578182fd5b50508035926020909101359150565b6000806000606084860312156144eb578081fd5b8335925060208401359150604084013561450481614baa565b809150509250925092565b60008060008060808587031215614524578182fd5b8435935060208501359250604085013561453d81614baa565b9150606085013561454d81614bbf565b939692955090935050565b60008060006060848603121561456c578081fd5b8335925060208401359150604084013561450481614bbf565b6000815180845261459d816020860160208601614b0a565b601f01601f19169290920160200192915050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516145e3816017850160208801614b0a565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614614816028840160208801614b0a565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061179890830184614585565b6001600160a01b03929092168252602082015260400190565b6020815260006113956020830184614585565b6020808252601b908201527f43616e6e6f742061646420746f2065787069726564206c6f636b2e0000000000604082015260600190565b6020808252600690820152651cdd185ad95960d21b604082015260600190565b602080825260099082015268076616c7565203d20360bc1b604082015260600190565b6020808252601e908201527f566f74696e67206c6f636b2063616e2062652034207965617273206d61780000604082015260600190565b6020808252818101527f63616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564604082015260600190565b602080825260169082015275139bc8195e1a5cdd1a5b99c81b1bd8dac8199bdd5b9960521b604082015260600190565b6020808252600c908201526b3737ba1036b4b3b930ba37b960a11b604082015260600190565b6020808252600c908201526b696e76616c6964206461746160a01b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600e908201526d6e6f7420676f7665726e616e636560901b604082015260600190565b84815260208101849052608081016005841061486c57634e487b7160e01b600052602160045260246000fd5b60408201939093526060015292915050565b604051601f8201601f191681016001600160401b03811182821017156148a6576148a6614b94565b604052919050565b60006001600160401b038211156148c7576148c7614b94565b5060051b60200190565b60006001600160401b038211156148ea576148ea614b94565b50601f01601f191660200190565b6000600f82810b9084900b828212801560016001607f1b038490038313161561492357614923614b68565b60016001607f1b0319839003821281161561494057614940614b68565b50019392505050565b6000821982111561495c5761495c614b68565b500190565b600081600f0b83600f0b8061497857614978614b7e565b60016001607f1b031982146000198214161561499657614996614b68565b90059392505050565b6000826149ae576149ae614b7e565b500490565b6000600f82810b9084900b60016001607f1b03838213848413808216848404861116156149e2576149e2614b68565b60016001607f1b031986851282811687830587121615614a0457614a04614b68565b878712925085820587128484161615614a1f57614a1f614b68565b85850587128184161615614a3557614a35614b68565b5050509290910295945050505050565b6000816000190483118215151615614a5f57614a5f614b68565b500290565b6000600f82810b9084900b828112801560016001607f1b0319830184121615614a8f57614a8f614b68565b60016001607f1b0382018313811615614aaa57614aaa614b68565b5090039392505050565b60008083128015600160ff1b850184121615614ad257614ad2614b68565b6001600160ff1b0384018313811615614aed57614aed614b68565b50500390565b600082821015614b0557614b05614b68565b500390565b60005b83811015614b25578181015183820152602001614b0d565b83811115611dea5750506000910152565b600081614b4557614b45614b68565b506000190190565b6000600019821415614b6157614b61614b68565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461342b57600080fd5b801515811461342b57600080fd5b6001600160e01b03198116811461342b57600080fdfe9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206388773be12479f96825d9aac10d932b2a88383cffb4091d994f4d4f62fef7ad64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x1CA JUMPI DUP1 PUSH4 0xB45A3C0E GT PUSH2 0x105 JUMPI DUP1 PUSH4 0xD1C2BABB GT PUSH2 0xA8 JUMPI DUP1 PUSH4 0xD1C2BABB EQ PUSH2 0x8C9 JUMPI DUP1 PUSH4 0xD490DBCA EQ PUSH2 0x8DC JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x8E4 JUMPI DUP1 PUSH4 0xD60371A7 EQ PUSH2 0x8F7 JUMPI DUP1 PUSH4 0xE0514ABA EQ PUSH2 0x90A JUMPI DUP1 PUSH4 0xE58F5947 EQ PUSH2 0x91D JUMPI DUP1 PUSH4 0xE7E242D4 EQ PUSH2 0x93D JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x950 JUMPI DUP1 PUSH4 0xF52A36F7 EQ PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB45A3C0E EQ PUSH2 0x7FB JUMPI DUP1 PUSH4 0xB7F1D072 EQ PUSH2 0x84F JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xBAA51F86 EQ PUSH2 0x875 JUMPI DUP1 PUSH4 0xBCC3F3BD EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC2C4C5C1 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0xC7FECBCC EQ PUSH2 0x8A3 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x8B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x16D JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x981B24D0 EQ PUSH2 0x794 JUMPI DUP1 PUSH4 0x9D507B8B EQ PUSH2 0x7A7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x7C2 JUMPI DUP1 PUSH4 0xB128FD86 EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xB2383E55 EQ PUSH2 0x7E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x6CF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0x7116C60C EQ PUSH2 0x6F5 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x708 JUMPI DUP1 PUSH4 0x8AD4C447 EQ PUSH2 0x71B JUMPI DUP1 PUSH4 0x8C2C9BAF EQ PUSH2 0x72E JUMPI DUP1 PUSH4 0x8DF4B13B EQ PUSH2 0x741 JUMPI DUP1 PUSH4 0x900CF0CF EQ PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x29A JUMPI DUP1 PUSH4 0x42842E0E GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x5D1 JUMPI DUP1 PUSH4 0x430C2081 EQ PUSH2 0x5E4 JUMPI DUP1 PUSH4 0x44ACB42A EQ PUSH2 0x5F7 JUMPI DUP1 PUSH4 0x4BD2D9B3 EQ PUSH2 0x648 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x65C JUMPI DUP1 PUSH4 0x5633E0A6 EQ PUSH2 0x680 JUMPI DUP1 PUSH4 0x57E871E7 EQ PUSH2 0x6A6 JUMPI DUP1 PUSH4 0x626944DF EQ PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0x2A55205A EQ PUSH2 0x512 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x533 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x559 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0x39C6D4CB EQ PUSH2 0x5BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x302 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x45F JUMPI DUP1 PUSH4 0xA2ABDB3 EQ PUSH2 0x472 JUMPI DUP1 PUSH4 0xEC84DDA EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0xF68AE40 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x4AB JUMPI DUP1 PUSH4 0x2277CDC2 EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0x23857D51 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x2FA7C47 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x45F7019 EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x47FC9AA EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x5AE4F8C EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x8804275 EQ PUSH2 0x456 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x373 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0x43F4 JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39B PUSH2 0x396 CALLDATASIZE PUSH1 0x4 PUSH2 0x426E JUMP JUMPDEST PUSH2 0xA10 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39B PUSH2 0x3AB CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0xCBD JUMP JUMPDEST PUSH2 0x408 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x131BD8DAD959081350521048139195 PUSH1 0x8A SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH2 0x466C JUMP JUMPDEST PUSH2 0x43E PUSH2 0x423 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x46D CALLDATASIZE PUSH1 0x4 PUSH2 0x4243 JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x480 CALLDATASIZE PUSH1 0x4 PUSH2 0x450F JUMP JUMPDEST PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x493 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0xD4D JUMP JUMPDEST PUSH2 0x39B PUSH2 0x4A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0xE5D JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xE89 JUMP JUMPDEST PUSH2 0x39B PUSH2 0xE99 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x4E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4135 JUMP JUMPDEST PUSH2 0xECF JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x4FC CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x525 PUSH2 0x520 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP3 SWAP2 SWAP1 PUSH2 0x4653 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x541 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0xF8C JUMP JUMPDEST PUSH2 0x39B PUSH2 0x554 CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x12CE JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x567 CALLDATASIZE PUSH1 0x4 PUSH2 0x4243 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x597 PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x5B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x12F4 JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4BE4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x5DF CALLDATASIZE PUSH1 0x4 PUSH2 0x4135 JUMP JUMPDEST PUSH2 0x136E JUMP JUMPDEST PUSH2 0x373 PUSH2 0x5F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4243 JUMP JUMPDEST PUSH2 0x1389 JUMP JUMPDEST PUSH2 0x60A PUSH2 0x605 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x139C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP3 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x373 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x693 PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1426 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x37F JUMP JUMPDEST NUMBER PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x6BA CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x6DD CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1477 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x6F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0x1494 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x703 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x149F JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x43E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x60A PUSH2 0x729 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1507 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x73C CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x1566 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x74F CALLDATASIZE PUSH1 0x4 PUSH2 0x44D7 JUMP JUMPDEST PUSH2 0x1572 JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x373 PUSH2 0x76B CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x9A829082B PUSH1 0xDB SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x7A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x15E2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x17A2 JUMP JUMPDEST PUSH2 0x3B9 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4216 JUMP JUMPDEST PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x42A6 JUMP JUMPDEST PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x1B67 JUMP JUMPDEST PUSH2 0x82F PUSH2 0x809 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP5 SWAP1 SWAP5 SIGNEXTEND DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x37F JUMP JUMPDEST PUSH2 0x39B PUSH2 0x85D CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0x1C6D JUMP JUMPDEST PUSH2 0x39B PUSH2 0x870 CALLDATASIZE PUSH1 0x4 PUSH2 0x4175 JUMP JUMPDEST PUSH2 0x1CB6 JUMP JUMPDEST PUSH2 0x373 PUSH2 0x883 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1DF0 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x896 CALLDATASIZE PUSH1 0x4 PUSH2 0x40C5 JUMP JUMPDEST PUSH2 0x1DFB JUMP JUMPDEST PUSH2 0x39B PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x43E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x408 PUSH2 0x8C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x1EC1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x8D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x1F42 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x8F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x43D0 JUMP JUMPDEST PUSH2 0x21C5 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x905 CALLDATASIZE PUSH1 0x4 PUSH2 0x4558 JUMP JUMPDEST PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x918 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x2230 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x92B CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x94B CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH2 0x223C JUMP JUMPDEST PUSH2 0x373 PUSH2 0x95E CALLDATASIZE PUSH1 0x4 PUSH2 0x40FD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x693 PUSH2 0x99A CALLDATASIZE PUSH1 0x4 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ DUP1 PUSH2 0x9E0 JUMPI POP PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST DUP1 PUSH2 0x9FB JUMPI POP PUSH4 0x5B5E139F PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST DUP1 PUSH2 0xA0A JUMPI POP PUSH2 0xA0A DUP3 PUSH2 0x2264 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA1B PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA4A DUP3 DUP3 PUSH2 0x2289 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xA59 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xAC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x6E6F7420696E20626F6F747374726170206D6F6465 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB40 SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD5 SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC4E SWAP2 SWAP1 PUSH2 0x449E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC6B SWAP3 SWAP2 SWAP1 PUSH2 0x4653 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA4A SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0xCED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 MUL ADD PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA4A DUP3 DUP3 PUSH2 0x2382 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xD3F DUP6 DUP6 DUP6 PUSH1 0x1 DUP7 PUSH2 0x2500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 DUP2 SSTORE DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 ADD SLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0xDB9 DUP4 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0xDD6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46B6 JUMP JUMPDEST PUSH1 0x0 DUP3 GT PUSH2 0xDF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT PUSH2 0xE1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4765 JUMP JUMPDEST TIMESTAMP DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0xE40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x467F JUMP JUMPDEST PUSH2 0xE53 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH2 0x2819 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH2 0xE68 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0xE SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE94 TIMESTAMP PUSH2 0x149F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xEA4 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xEC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 DUP4 CALLER PUSH2 0x2C3C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0xF55 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xF74 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP8 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0xF7E SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP2 MLOAD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xFBE CALLER DUP3 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0xFDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH2 0xFE3 DUP2 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46B6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE TIMESTAMP LT ISZERO PUSH2 0x1087 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x546865206C6F636B206469646E277420657870697265 PUSH1 0x50 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 DUP2 MSTORE DUP4 DUP6 ADD DUP4 DUP2 MSTORE DUP9 DUP5 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE SWAP4 SWAP1 SWAP2 KECCAK256 SWAP2 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0xF SWAP3 DUP4 SIGNEXTEND AND OR DUP4 SSTORE SWAP3 MLOAD PUSH1 0x1 DUP4 ADD SSTORE MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x6 SLOAD SWAP2 SWAP1 SIGNEXTEND SWAP1 PUSH2 0x10F0 DUP3 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH2 0x1121 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2D6B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x119B SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB CALLER DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C8 SWAP3 SWAP2 SWAP1 PUSH2 0x4653 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x121A SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH2 0x1234 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x123D DUP5 PUSH2 0x33A4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE TIMESTAMP DUP2 DUP4 ADD MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x2F25270A4D87BEA75DB541CDFE559334A275B4A233520ED6C0A2429667CCA94 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH32 0x5E2AA66EFD74CCE82B21852E317E5490D9ECC9E6BB953AE24D90851258CC2F5C DUP2 PUSH2 0x12AB DUP5 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0x12EA DUP2 PUSH2 0x3421 JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 PUSH2 0x342E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1364 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0xA4A DUP3 DUP3 PUSH2 0x3499 JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1CB6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1395 DUP4 DUP4 PUSH2 0x2D08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13A4 PUSH2 0x4018 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x13D4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP3 SWAP1 SWAP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP5 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP2 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x1461 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 MUL ADD SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0xF SIGNEXTEND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0A DUP3 PUSH2 0x3500 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH2 0x14FF DUP2 DUP6 PUSH2 0x351B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x150F PUSH2 0x4018 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1395 DUP4 DUP4 PUSH2 0x3625 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x158C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4BE4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x15A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4795 JUMP JUMPDEST PUSH2 0x14FF DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x1 PUSH2 0x2500 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 GT ISZERO PUSH2 0x1602 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 PUSH2 0x1611 DUP5 DUP4 PUSH2 0x3946 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP4 DUP4 LT ISZERO PUSH2 0x1730 JUMPI PUSH1 0x0 PUSH1 0xA DUP2 PUSH2 0x167C DUP7 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP6 ADD MLOAD SWAP2 SWAP3 POP EQ PUSH2 0x172A JUMPI DUP3 PUSH1 0x60 ADD MLOAD DUP2 PUSH1 0x60 ADD MLOAD PUSH2 0x16F0 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x1704 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD PUSH2 0x1713 SWAP1 DUP11 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x171D SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x1727 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH2 0x177F JUMP JUMPDEST NUMBER DUP3 PUSH1 0x60 ADD MLOAD EQ PUSH2 0x177F JUMPI PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x174A SWAP1 NUMBER PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1759 SWAP1 TIMESTAMP PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MLOAD PUSH2 0x1768 SWAP1 DUP10 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x1772 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x177C SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x1798 DUP3 DUP3 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x1793 SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x351B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0x17D4 CALLER DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x17F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 ADD SLOAD SWAP1 DUP3 ADD MSTORE SWAP1 PUSH3 0x93A80 DUP1 PUSH2 0x183A DUP6 TIMESTAMP PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x1844 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x184E SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP3 PUSH1 0x20 ADD MLOAD GT PUSH2 0x1892 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x131BD8DAC8195E1C1A5C9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT PUSH2 0x18DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x139BDD1A1A5B99C81A5CC81B1BD8DAD959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD DUP2 GT PUSH2 0x1930 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E206F6E6C7920696E637265617365206C6F636B206475726174696F6E00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x193E PUSH4 0x784CE00 TIMESTAMP PUSH2 0x4949 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46F9 JUMP JUMPDEST PUSH4 0x784CE00 DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x1971 SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1990 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46F9 JUMP JUMPDEST PUSH2 0x19AA DUP5 PUSH1 0x0 DUP4 DUP6 PUSH1 0x3 PUSH1 0x0 PUSH2 0x19A5 DUP12 PUSH2 0x2714 JUMP JUMPDEST PUSH2 0x2819 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER EQ ISZERO PUSH2 0x19DC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1A60 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4BE4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x1A7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4795 JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1A9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47BB JUMP JUMPDEST DUP3 MLOAD DUP5 MLOAD EQ PUSH2 0x1ABE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47BB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1B60 JUMPI PUSH2 0x1B4D DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1B15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 DUP7 PUSH2 0x2500 JUMP JUMPDEST POP DUP1 PUSH2 0x1B58 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1AC1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0x1B99 CALLER DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x1BB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 PUSH2 0x1C0E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT PUSH2 0x1C35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4765 JUMP JUMPDEST TIMESTAMP DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x1C58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x467F JUMP JUMPDEST PUSH2 0xE53 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x2 PUSH1 0x1 PUSH2 0x19A5 DUP11 PUSH2 0x2714 JUMP JUMPDEST PUSH2 0x1C78 PUSH1 0x0 CALLER PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0x1C94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4818 JUMP JUMPDEST PUSH1 0x5 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 PUSH2 0x1CC2 DUP5 DUP5 DUP5 CALLER PUSH2 0x2C3C JUMP JUMPDEST DUP3 EXTCODESIZE ISZERO PUSH2 0x1DEA JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x1CFB SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4620 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1D45 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1D42 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4410 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1B60 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1D73 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D78 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x1DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0A DUP3 PUSH2 0x2714 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x1E6D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x1E4D DUP2 TIMESTAMP PUSH2 0x39D0 JUMP JUMPDEST PUSH2 0x1E57 SWAP1 DUP5 PUSH2 0x4949 JUMP JUMPDEST SWAP3 POP POP DUP1 DUP1 PUSH2 0x1E65 SWAP1 PUSH2 0x4B4D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DFF JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EBF PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2D6B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC87B56DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC87B56DD SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xA0A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x442C JUMP JUMPDEST PUSH2 0x1F4B DUP3 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x1F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x199C9BDB481CDD185AD959 PUSH1 0xAA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x1F8F DUP2 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x1FC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x1D1BC81CDD185AD959 PUSH1 0xBA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 DUP3 EQ ISZERO PUSH2 0x2003 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x8 PUSH1 0x24 DUP3 ADD MSTORE PUSH8 0x1CD85B59481B999D PUSH1 0xC2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x200D CALLER DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x204D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x199C9BDB481B9BDD08185C1C1C9BDD9959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x2057 CALLER DUP3 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x2095 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1BC81B9BDD08185C1C1C9BDD9959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP1 DUP3 ADD DUP5 MSTORE DUP3 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 DUP1 DUP6 ADD SLOAD DUP5 DUP9 ADD SWAP1 DUP2 MSTORE PUSH1 0x2 SWAP6 DUP7 ADD SLOAD DUP6 DUP9 ADD MSTORE DUP11 DUP11 MSTORE SWAP8 DUP8 MSTORE DUP6 DUP10 KECCAK256 DUP7 MLOAD SWAP4 DUP5 ADD DUP8 MSTORE DUP1 SLOAD DUP4 SIGNEXTEND DUP4 SIGNEXTEND DUP4 SIGNEXTEND DUP5 MSTORE SWAP1 DUP2 ADD SLOAD SWAP7 DUP4 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP4 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP1 MLOAD SWAP5 MLOAD SWAP1 SWAP6 SWAP3 SWAP5 SWAP1 SWAP2 SIGNEXTEND SWAP3 GT ISZERO PUSH2 0x211D JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2123 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 DUP2 MSTORE DUP5 DUP7 ADD DUP4 DUP2 MSTORE DUP14 DUP5 MSTORE PUSH1 0x7 DUP4 MSTORE DUP7 DUP5 KECCAK256 SWAP6 MLOAD DUP7 SLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR DUP7 SSTORE SWAP1 MLOAD PUSH1 0x1 DUP7 ADD SSTORE MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP4 MLOAD SWAP2 DUP3 ADD DUP5 MSTORE DUP1 DUP3 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x21A2 SWAP1 DUP8 SWAP1 DUP7 SWAP1 PUSH2 0x2D6B JUMP JUMPDEST PUSH2 0x21AB DUP7 PUSH2 0x33A4 JUMP JUMPDEST PUSH2 0x21BD DUP6 DUP4 DUP4 DUP7 PUSH1 0x4 PUSH1 0x1 PUSH1 0x0 PUSH2 0x2819 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0x21E1 DUP2 PUSH2 0x3421 JUMP JUMPDEST PUSH2 0xEDB DUP4 DUP4 PUSH2 0x3499 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x2210 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x47E1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0x2223 DUP5 DUP5 CALLER PUSH1 0x1 DUP7 PUSH2 0x2500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1395 DUP4 DUP4 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD NUMBER EQ ISZERO PUSH2 0x225A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA0A DUP3 TIMESTAMP PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x152A902D PUSH1 0xE1 SHL EQ DUP1 PUSH2 0xA0A JUMPI POP PUSH2 0xA0A DUP3 PUSH2 0x3ABA JUMP JUMPDEST PUSH2 0x2710 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 AND GT ISZERO PUSH2 0x22F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20726F79616C7479206665652077696C6C20657863656564 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2073616C655072696365 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x22A921991C9C189D1034B73B30B634B2103932B1B2B4BB32B9 PUSH1 0x39 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 MUL OR PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x23D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x6F776E65722069732030783 PUSH1 0xA4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x2424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x3737BA1037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP6 MSTORE PUSH1 0x15 DUP5 MSTORE DUP3 DUP6 KECCAK256 CALLER DUP1 DUP8 MSTORE SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP3 AND EQ SWAP1 PUSH1 0xFF AND DUP2 DUP1 PUSH2 0x2465 JUMPI POP DUP1 JUMPDEST PUSH2 0x24A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x34B73B30B634B21039B2B73232B9 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2566 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH3 0x93A80 DUP1 DUP8 TIMESTAMP PUSH2 0x257D SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x2587 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x2591 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 GT PUSH2 0x25B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST TIMESTAMP DUP2 GT PUSH2 0x2602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E206F6E6C79206C6F636B20696E20746865206675747572650000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x2610 PUSH4 0x784CE00 TIMESTAMP PUSH2 0x4949 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x262F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46F9 JUMP JUMPDEST PUSH1 0xF PUSH1 0x0 DUP2 SLOAD PUSH2 0x263E SWAP1 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0xF SLOAD PUSH2 0x264F DUP7 DUP3 PUSH2 0x3AEF JUMP JUMPDEST POP PUSH2 0x26AE DUP2 DUP10 DUP5 PUSH1 0x7 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF SIGNEXTEND PUSH1 0xF SIGNEXTEND PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH1 0x1 DUP11 DUP11 PUSH2 0x2819 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x26BB DUP3 TIMESTAMP PUSH2 0x39D0 JUMP JUMPDEST LT ISZERO PUSH2 0x2709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D696E20616D6F756E7420666F72206E6674206E6F74206D6574000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2778 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x279C SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBAA51F86 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27C9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0A SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xF9FA2123 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xF9FA2123 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x285C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2870 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x6 SLOAD DUP7 SWAP3 POP SWAP1 POP PUSH2 0x2884 DUP9 DUP3 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x6 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP2 MSTORE DUP3 MLOAD DUP10 SWAP1 DUP5 SWAP1 PUSH2 0x28CA SWAP1 DUP4 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP DUP8 ISZERO PUSH2 0x28E2 JUMPI PUSH1 0x20 DUP4 ADD DUP9 SWAP1 MSTORE JUMPDEST PUSH1 0x1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2904 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2911 JUMPI TIMESTAMP PUSH1 0x40 DUP5 ADD MSTORE JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP6 MLOAD DUP2 SLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR DUP2 SSTORE SWAP1 DUP6 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE PUSH2 0x2963 DUP11 DUP3 DUP6 PUSH2 0x2D6B JUMP JUMPDEST CALLER DUP10 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2993 JUMPI POP PUSH1 0x4 DUP8 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2990 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x299C JUMPI POP DUP6 JUMPDEST ISZERO PUSH2 0x2ABF JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A1B SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A81 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AA5 SWAP2 SWAP1 PUSH2 0x439C JUMP JUMPDEST PUSH2 0x2ABF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP5 ISZERO PUSH2 0x2B9F JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5EBAF1DB PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x5EBAF1DB SWAP3 DUP3 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B3F SWAP2 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x630B4B90 DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B6C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B9A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xFF04CCAFC360E16B67D682D17BD9503C4C6B9A131F6BE6325762DC9FFC7DE624 DUP14 DUP14 DUP12 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x2BE3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4840 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH32 0x5E2AA66EFD74CCE82B21852E317E5490D9ECC9E6BB953AE24D90851258CC2F5C DUP4 PUSH2 0x2C17 DUP13 DUP3 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2C45 DUP3 PUSH2 0x2714 JUMP JUMPDEST ISZERO PUSH2 0x2C62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x46B6 JUMP JUMPDEST PUSH2 0x2C6C DUP2 DUP4 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x2CAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x3737BA1030B8383937BB32B21039B2B73232B9 PUSH1 0x69 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x2CB8 DUP5 DUP4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x2CC2 DUP5 DUP4 PUSH2 0x3BC1 JUMP JUMPDEST PUSH2 0x2CCC DUP4 DUP4 PUSH2 0x3C50 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 NUMBER SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND SWAP3 SWAP1 DUP9 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4C04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x11 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP1 DUP7 MSTORE PUSH1 0x15 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP9 DUP5 AND DUP1 DUP9 MSTORE SWAP6 MSTORE SWAP3 DUP6 KECCAK256 SLOAD SWAP3 SWAP4 DUP1 DUP6 EQ SWAP4 SWAP3 SWAP1 SWAP2 AND EQ SWAP1 PUSH1 0xFF AND DUP3 DUP1 PUSH2 0x2D5B JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x2709 JUMPI POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2D73 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x2D7B PUSH2 0x4018 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP8 ISZERO PUSH2 0x2EAF JUMPI TIMESTAMP DUP8 PUSH1 0x20 ADD MLOAD GT DUP1 ISZERO PUSH2 0x2DA3 JUMPI POP PUSH1 0x0 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT JUMPDEST ISZERO PUSH2 0x2DF0 JUMPI DUP7 MLOAD PUSH2 0x2DB9 SWAP1 PUSH4 0x784CE00 SWAP1 PUSH2 0x4961 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP1 DUP8 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP8 ADD MLOAD PUSH2 0x2DD7 SWAP1 TIMESTAMP SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x2DE6 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP6 MSTORE JUMPDEST TIMESTAMP DUP7 PUSH1 0x20 ADD MLOAD GT DUP1 ISZERO PUSH2 0x2E0A JUMPI POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SGT JUMPDEST ISZERO PUSH2 0x2E57 JUMPI DUP6 MLOAD PUSH2 0x2E20 SWAP1 PUSH4 0x784CE00 SWAP1 PUSH2 0x4961 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD PUSH2 0x2E3E SWAP1 TIMESTAMP SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2E4D SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND DUP5 MSTORE JUMPDEST PUSH1 0x20 DUP1 DUP9 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD DUP3 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 DUP8 ADD MLOAD PUSH1 0xF SWAP2 SWAP1 SWAP2 SIGNEXTEND SWAP4 POP ISZERO PUSH2 0x2EAF JUMPI DUP7 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x20 ADD MLOAD EQ ISZERO PUSH2 0x2E94 JUMPI DUP3 SWAP2 POP PUSH2 0x2EAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND SWAP2 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE TIMESTAMP SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE NUMBER PUSH1 0x60 DUP3 ADD MSTORE DUP2 ISZERO PUSH2 0x2F2C JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP2 PUSH1 0x0 TIMESTAMP DUP4 LT ISZERO PUSH2 0x2F79 JUMPI PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x2F4B SWAP1 TIMESTAMP PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD PUSH2 0x2F5A SWAP1 NUMBER PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x2F6C SWAP1 PUSH8 0xDE0B6B3A7640000 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x2F76 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH3 0x93A80 PUSH2 0x2F89 DUP2 DUP7 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x2F93 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP2 LT ISZERO PUSH2 0x311C JUMPI PUSH2 0x2FAE PUSH3 0x93A80 DUP4 PUSH2 0x4949 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 TIMESTAMP DUP4 GT ISZERO PUSH2 0x2FC2 JUMPI TIMESTAMP SWAP3 POP PUSH2 0x2FD6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND JUMPDEST PUSH2 0x2FE0 DUP7 DUP5 PUSH2 0x4AF3 JUMP JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0x2FEF SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP8 MLOAD DUP9 SWAP1 PUSH2 0x2FFE SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP PUSH1 0x20 DUP8 ADD DUP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x301C SWAP1 DUP4 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE DUP9 MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT ISZERO SWAP1 POP PUSH2 0x3039 JUMPI PUSH1 0x0 DUP8 MSTORE JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0xF SIGNEXTEND SLT ISZERO PUSH2 0x3051 JUMPI PUSH1 0x0 PUSH1 0x20 DUP9 ADD MSTORE JUMPDEST PUSH1 0x40 DUP1 DUP9 ADD DUP5 SWAP1 MSTORE DUP6 ADD MLOAD SWAP3 SWAP6 POP DUP6 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x3075 SWAP1 DUP6 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x307F SWAP1 DUP7 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x3089 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST DUP6 PUSH1 0x60 ADD MLOAD PUSH2 0x3098 SWAP2 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MSTORE PUSH2 0x30A8 PUSH1 0x1 DUP10 PUSH2 0x4949 JUMP JUMPDEST SWAP8 POP TIMESTAMP DUP4 EQ ISZERO PUSH2 0x30BE JUMPI POP NUMBER PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x311C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP10 MLOAD SWAP2 DUP11 ADD MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP4 SWAP1 SWAP2 SIGNEXTEND AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP1 DUP9 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x60 DUP9 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE POP PUSH2 0x3115 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x2F98 JUMP JUMPDEST POP POP PUSH1 0x9 DUP6 SWAP1 SSTORE DUP12 ISZERO PUSH2 0x31AD JUMPI DUP9 PUSH1 0x20 ADD MLOAD DUP9 PUSH1 0x20 ADD MLOAD PUSH2 0x313D SWAP2 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD DUP2 DUP2 MLOAD PUSH2 0x314E SWAP2 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP DUP9 MLOAD DUP9 MLOAD PUSH2 0x3166 SWAP2 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST DUP5 MLOAD DUP6 SWAP1 PUSH2 0x3175 SWAP1 DUP4 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT ISZERO SWAP1 POP PUSH2 0x3198 JUMPI PUSH1 0x0 PUSH1 0x20 DUP6 ADD MSTORE JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SLT ISZERO PUSH2 0x31AD JUMPI PUSH1 0x0 DUP5 MSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP4 SWAP1 SWAP2 SIGNEXTEND AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP1 DUP6 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE DUP12 ISZERO PUSH2 0x3396 JUMPI TIMESTAMP DUP12 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x3271 JUMPI PUSH1 0x20 DUP10 ADD MLOAD PUSH2 0x321B SWAP1 DUP9 PUSH2 0x48F8 JUMP JUMPDEST SWAP7 POP DUP11 PUSH1 0x20 ADD MLOAD DUP11 PUSH1 0x20 ADD MLOAD EQ ISZERO PUSH2 0x323F JUMPI PUSH1 0x20 DUP9 ADD MLOAD PUSH2 0x323C SWAP1 DUP9 PUSH2 0x4A64 JUMP JUMPDEST SWAP7 POP JUMPDEST PUSH1 0x20 DUP12 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0xF DUP11 SWAP1 SIGNEXTEND AND OR SWAP1 SSTORE JUMPDEST TIMESTAMP DUP11 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x32D0 JUMPI DUP11 PUSH1 0x20 ADD MLOAD DUP11 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x32D0 JUMPI PUSH1 0x20 DUP9 ADD MLOAD PUSH2 0x329C SWAP1 DUP8 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0x20 DUP12 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0xF DUP5 SWAP1 SIGNEXTEND AND OR SWAP1 SSTORE SWAP6 POP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x32EA SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xC PUSH1 0x0 DUP16 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP TIMESTAMP DUP10 PUSH1 0x40 ADD DUP2 DUP2 MSTORE POP POP NUMBER DUP10 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP9 PUSH1 0xB PUSH1 0x0 DUP16 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x334E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP3 SWAP1 SWAP2 SIGNEXTEND AND OR PUSH1 0x3 SWAP2 SWAP1 SWAP2 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x33AE CALLER DUP3 PUSH2 0x2D08 JUMP JUMPDEST PUSH2 0x33CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA37 SWAP1 PUSH2 0x4730 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x33ED SWAP1 DUP4 PUSH2 0x2382 JUMP JUMPDEST PUSH2 0x33F7 CALLER DUP4 PUSH2 0x3BC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4C04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP4 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x342B DUP2 CALLER PUSH2 0x3CDD JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3438 DUP3 DUP3 PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA4A JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP1 DUP7 MSTORE SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x34A3 DUP3 DUP3 PUSH2 0x15B7 JUMP JUMPDEST ISZERO PUSH2 0xA4A JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SWAP1 POP PUSH1 0x0 PUSH3 0x93A80 DUP1 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x3537 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x3541 SWAP2 SWAP1 PUSH2 0x4A45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP2 LT ISZERO PUSH2 0x35FD JUMPI PUSH2 0x355C PUSH3 0x93A80 DUP4 PUSH2 0x4949 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP6 DUP4 GT ISZERO PUSH2 0x3570 JUMPI DUP6 SWAP3 POP PUSH2 0x3584 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xF SIGNEXTEND JUMPDEST PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x3593 SWAP1 DUP5 PUSH2 0x4AF3 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x35A2 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP5 MLOAD DUP6 SWAP1 PUSH2 0x35B1 SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP DUP3 DUP7 EQ ISZERO PUSH2 0x35C9 JUMPI POP PUSH2 0x35FD JUMP JUMPDEST DUP1 DUP5 PUSH1 0x20 ADD DUP2 DUP2 MLOAD PUSH2 0x35DB SWAP2 SWAP1 PUSH2 0x48F8 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP1 MSTORE POP POP PUSH1 0x40 DUP4 ADD DUP3 SWAP1 MSTORE PUSH2 0x35F6 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x3546 JUMP JUMPDEST POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0xF SIGNEXTEND SLT ISZERO PUSH2 0x3613 JUMPI PUSH1 0x0 DUP3 MSTORE JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 GT ISZERO PUSH2 0x3645 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x36F7 JUMPI DUP2 DUP4 LT PUSH2 0x366B JUMPI PUSH2 0x36F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x3679 DUP5 DUP7 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x3684 SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x368E SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP DUP7 SWAP1 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x36C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 MUL ADD PUSH1 0x2 ADD SLOAD GT PUSH2 0x36D8 JUMPI DUP1 SWAP4 POP PUSH2 0x36E6 JUMP JUMPDEST PUSH2 0x36E3 PUSH1 0x1 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x36F0 DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x3656 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x3728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP3 SWAP1 SWAP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP5 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x3785 DUP8 DUP4 PUSH2 0x3946 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP1 DUP5 DUP5 LT ISZERO PUSH2 0x3874 JUMPI PUSH1 0x0 PUSH1 0xA DUP2 PUSH2 0x37F1 DUP8 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0x3856 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP3 POP DUP4 PUSH1 0x40 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x386C SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x3898 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x3883 SWAP1 NUMBER PUSH2 0x4AF3 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x40 ADD MLOAD TIMESTAMP PUSH2 0x3895 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD DUP3 ISZERO PUSH2 0x38D5 JUMPI DUP3 DUP5 PUSH1 0x60 ADD MLOAD DUP13 PUSH2 0x38B4 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST PUSH2 0x38BE SWAP1 DUP5 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x38C8 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH2 0x38D2 SWAP1 DUP3 PUSH2 0x4949 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD PUSH2 0x38E4 SWAP1 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0x38F3 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP8 MLOAD DUP9 SWAP1 PUSH2 0x3902 SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE DUP9 MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT SWAP1 POP PUSH2 0x3934 JUMPI POP POP SWAP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP7 POP PUSH2 0xA0A SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x39C6 JUMPI DUP2 DUP4 LT PUSH2 0x3961 JUMPI PUSH2 0x39C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x396F DUP5 DUP7 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x397A SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x3984 SWAP2 SWAP1 PUSH2 0x499F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 POP DUP8 LT PUSH2 0x39A7 JUMPI DUP1 SWAP4 POP PUSH2 0x39B5 JUMP JUMPDEST PUSH2 0x39B2 PUSH1 0x1 DUP3 PUSH2 0x4AF3 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x39BF DUP2 PUSH2 0x4B4D JUMP JUMPDEST SWAP1 POP PUSH2 0x394C JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x39EE JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 PUSH4 0x3B9ACA00 DUP2 LT PUSH2 0x3A1E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP3 SWAP1 SWAP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP5 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3A72 SWAP1 DUP6 PUSH2 0x4AB4 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x3A81 SWAP2 SWAP1 PUSH2 0x49B3 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH2 0x3A90 SWAP1 DUP4 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP1 SWAP2 MSTORE DUP3 MLOAD PUSH1 0x0 SWAP2 SIGNEXTEND SLT ISZERO SWAP1 POP PUSH2 0x3AAD JUMPI PUSH1 0x0 DUP2 MSTORE JUMPDEST MLOAD PUSH1 0xF SIGNEXTEND SWAP2 POP PUSH2 0xA0A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xA0A JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3B15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x3B1F DUP4 DUP4 PUSH2 0x3C50 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4C04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP3 SWAP1 LOG4 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x3B85 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xA4A JUMPI PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ PUSH2 0x3BF8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x3C1E DUP3 DUP3 PUSH2 0x3D41 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x3C47 SWAP1 DUP5 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x3C83 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x3CB4 DUP3 DUP3 PUSH2 0x3DF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x3C47 SWAP1 DUP5 SWAP1 PUSH2 0x4949 JUMP JUMPDEST PUSH2 0x3CE7 DUP3 DUP3 PUSH2 0x15B7 JUMP JUMPDEST PUSH2 0xA4A JUMPI PUSH2 0x3CFF DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x3E37 JUMP JUMPDEST PUSH2 0x3D0A DUP4 PUSH1 0x20 PUSH2 0x3E37 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D1B SWAP3 SWAP2 SWAP1 PUSH2 0x45B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0xA37 SWAP2 PUSH1 0x4 ADD PUSH2 0x466C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x3D4E DUP5 PUSH2 0x3500 JUMP JUMPDEST PUSH2 0x3D58 SWAP2 SWAP1 PUSH2 0x4AF3 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ ISZERO PUSH2 0x3DA8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE DUP6 DUP4 MSTORE PUSH1 0x14 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SSTORE PUSH2 0x1DEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 DUP2 MSTORE DUP3 DUP3 KECCAK256 DUP1 SLOAD DUP7 DUP5 MSTORE DUP5 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0x14 SWAP1 SWAP2 MSTORE DUP3 DUP3 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 DUP4 SWAP1 SSTORE SWAP1 DUP3 MSTORE DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DFE DUP4 PUSH2 0x3500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE SWAP4 DUP3 MSTORE PUSH1 0x14 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x3E46 DUP4 PUSH1 0x2 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x3E51 SWAP1 PUSH1 0x2 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E76 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3EA0 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3EC9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x3F06 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x3F2A DUP5 PUSH1 0x2 PUSH2 0x4A45 JUMP JUMPDEST PUSH2 0x3F35 SWAP1 PUSH1 0x1 PUSH2 0x4949 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3FC9 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x3F77 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3F9B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3FC2 DUP2 PUSH2 0x4B36 JUMP JUMPDEST SWAP1 POP PUSH2 0x3F38 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1395 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4056 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x406B PUSH2 0x4066 DUP4 PUSH2 0x48AE JUMP JUMPDEST PUSH2 0x487E JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x408A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x40A8 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x408C JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x40C0 DUP2 PUSH2 0x4BBF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40D6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1395 DUP2 PUSH2 0x4BAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40F2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1395 DUP2 PUSH2 0x4BAA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x410F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x411A DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x412A DUP2 PUSH2 0x4BAA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4149 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4154 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4164 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x418A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4195 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x41A5 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41C6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x41D6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x41E4 PUSH2 0x4066 DUP3 PUSH2 0x48D1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x41F8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4228 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4233 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x412A DUP2 PUSH2 0x4BBF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4255 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4260 DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4280 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x428B DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x412A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x42BB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x42D1 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42E4 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x42F4 PUSH2 0x4066 DUP4 PUSH2 0x48AE JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP13 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x4313 JUMPI DUP9 DUP10 REVERT JUMPDEST DUP9 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0x433E JUMPI DUP1 CALLDATALOAD PUSH2 0x432A DUP2 PUSH2 0x4BAA JUMP JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x4317 JUMP JUMPDEST POP SWAP9 POP POP DUP9 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0x4354 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x4360 DUP9 DUP4 DUP10 ADD PUSH2 0x4046 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4375 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x4382 DUP8 DUP3 DUP9 ADD PUSH2 0x4046 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x4391 PUSH1 0x60 DUP7 ADD PUSH2 0x40B5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1395 DUP2 PUSH2 0x4BBF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43E2 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x412A DUP2 PUSH2 0x4BAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4405 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1395 DUP2 PUSH2 0x4BCD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4421 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1395 DUP2 PUSH2 0x4BCD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x443D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4452 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x4462 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x4470 PUSH2 0x4066 DUP3 PUSH2 0x48D1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x4484 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x4495 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4B0A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44AF JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x44C8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x44EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4504 DUP2 PUSH2 0x4BAA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4524 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x453D DUP2 PUSH2 0x4BAA JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0x454D DUP2 PUSH2 0x4BBF JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x456C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4504 DUP2 PUSH2 0x4BBF JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x459D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4B0A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x45E3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4B0A JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4614 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4B0A JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1798 SWAP1 DUP4 ADD DUP5 PUSH2 0x4585 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1395 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4585 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x43616E6E6F742061646420746F2065787069726564206C6F636B2E0000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x6 SWAP1 DUP3 ADD MSTORE PUSH6 0x1CDD185AD959 PUSH1 0xD2 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x76616C7565203D203 PUSH1 0xBC SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x566F74696E67206C6F636B2063616E2062652034207965617273206D61780000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x63616C6C6572206973206E6F74206F776E6572206E6F7220617070726F766564 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x16 SWAP1 DUP3 ADD MSTORE PUSH22 0x139BC8195E1A5CDD1A5B99C81B1BD8DAC8199BDD5B99 PUSH1 0x52 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x3737BA1036B4B3B930BA37B9 PUSH1 0xA1 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x696E76616C69642064617461 PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xE SWAP1 DUP3 ADD MSTORE PUSH14 0x6E6F7420676F7665726E616E6365 PUSH1 0x90 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x5 DUP5 LT PUSH2 0x486C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x48A6 JUMPI PUSH2 0x48A6 PUSH2 0x4B94 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x48C7 JUMPI PUSH2 0x48C7 PUSH2 0x4B94 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x48EA JUMPI PUSH2 0x48EA PUSH2 0x4B94 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND DUP3 DUP3 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP5 SWAP1 SUB DUP4 SGT AND ISZERO PUSH2 0x4923 JUMPI PUSH2 0x4923 PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP4 SWAP1 SUB DUP3 SLT DUP2 AND ISZERO PUSH2 0x4940 JUMPI PUSH2 0x4940 PUSH2 0x4B68 JUMP JUMPDEST POP ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x495C JUMPI PUSH2 0x495C PUSH2 0x4B68 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND DUP1 PUSH2 0x4978 JUMPI PUSH2 0x4978 PUSH2 0x4B7E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP3 EQ PUSH1 0x0 NOT DUP3 EQ AND ISZERO PUSH2 0x4996 JUMPI PUSH2 0x4996 PUSH2 0x4B68 JUMP JUMPDEST SWAP1 SDIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x49AE JUMPI PUSH2 0x49AE PUSH2 0x4B7E JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP4 DUP3 SGT DUP5 DUP5 SGT DUP1 DUP3 AND DUP5 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x49E2 JUMPI PUSH2 0x49E2 PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP7 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x4A04 JUMPI PUSH2 0x4A04 PUSH2 0x4B68 JUMP JUMPDEST DUP8 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x4A1F JUMPI PUSH2 0x4A1F PUSH2 0x4B68 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x4A35 JUMPI PUSH2 0x4A35 PUSH2 0x4B68 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x4A5F JUMPI PUSH2 0x4A5F PUSH2 0x4B68 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND DUP3 DUP2 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP4 ADD DUP5 SLT AND ISZERO PUSH2 0x4A8F JUMPI PUSH2 0x4A8F PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP3 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x4AAA JUMPI PUSH2 0x4AAA PUSH2 0x4B68 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0xFF SHL DUP6 ADD DUP5 SLT AND ISZERO PUSH2 0x4AD2 JUMPI PUSH2 0x4AD2 PUSH2 0x4B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x4AED JUMPI PUSH2 0x4AED PUSH2 0x4B68 JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x4B05 JUMPI PUSH2 0x4B05 PUSH2 0x4B68 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4B25 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4B0D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1DEA JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x4B45 JUMPI PUSH2 0x4B45 PUSH2 0x4B68 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4B61 JUMPI PUSH2 0x4B61 PUSH2 0x4B68 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x342B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x342B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x342B JUMPI PUSH1 0x0 DUP1 REVERT INVALID SWAP14 PUSH28 0x1CF62E8376E2EF102E20D4E487B829FF44D58DDB1F416EE01CF2ED26 DUP3 SWAP15 0xDD CALLCODE MSTORE 0xAD SHL 0xE2 0xC8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 CREATE2 GAS 0x4D CREATE2 0x23 0xB3 0xEF LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH4 0x88773BE1 0x24 PUSH26 0xF96825D9AAC10D932B2A88383CFFB4091D994F4D4F62FEF7AD64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"1471:46973:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:414;;;;;;:::i;:::-;;:::i;:::-;;;12929:14:139;;12922:22;12904:41;;12892:2;12877:18;4435:414:69;;;;;;;;35859:188;;;;;;:::i;:::-;;:::i;:::-;;47314:257;;;;;;:::i;:::-;;:::i;1898:21::-;;;;;;;;;13102:25:139;;;13090:2;13075:18;1898:21:69;13057:76:139;5919:180:69;;;;;;:::i;:::-;;:::i;2399:47::-;;;;;;;;;;;;;;;-1:-1:-1;;;2399:47:69;;;;;;;;;;;;:::i;8296:163::-;;;;;;:::i;:::-;8399:7;8429:23;;;:13;:23;;;;;;-1:-1:-1;;;;;8429:23:69;;8296:163;;;;-1:-1:-1;;;;;11568:32:139;;;11550:51;;11538:2;11523:18;8296:163:69;11505:102:139;2584:40:69;;;;;;19926:118;;;;;;:::i;:::-;;:::i;33866:258::-;;;;;;:::i;:::-;;:::i;31480:627::-;;;;;;:::i;:::-;;:::i;36150:121::-;;;;;;:::i;:::-;;:::i;45899:119::-;;;:::i;47662:93::-;;;:::i;1979:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;14902:180;;;;;;:::i;:::-;;:::i;4391:129:0:-;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;;;;:22;;;4391:129;1671:432:35;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;38470:1016:69:-;;;;;;:::i;:::-;;:::i;4816:145:0:-;;;;;;:::i;:::-;;:::i;8898:191:69:-;;;;;;:::i;:::-;-1:-1:-1;;;;;9041:28:69;;;;9011:7;9041:28;;;:20;:28;;;;;;;;:41;;;;;;;;;8898:191;2543:35;;2576:2;2543:35;;;;;27288:4:139;27276:17;;;27258:36;;27246:2;27231:18;2543:35:69;27213:87:139;5925:214:0;;;;;;:::i;:::-;;:::i;3478:68:69:-;;-1:-1:-1;;;;;;;;;;;3478:68:69;;17953:179;;;;;;:::i;:::-;;:::i;9882:199::-;;;;;;:::i;:::-;;:::i;5168:185::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;25474:4:139;25516:3;25505:9;25501:19;25493:27;;25568:6;25562:13;25558:2;25547:29;25536:9;25529:48;25648:4;25640:6;25636:17;25630:24;25626:2;25615:40;25608:4;25597:9;25593:20;25586:70;25712:4;25704:6;25700:17;25694:24;25687:4;25676:9;25672:20;25665:54;25775:4;25767:6;25763:17;25757:24;25750:4;25739:9;25735:20;25728:54;25483:305;;;;;1807:34:69;;;;;-1:-1:-1;;;1807:34:69;;;;;;2497:40;;;;;;;;;;;;;;;-1:-1:-1;;;2497:40:69;;;;;5527:191;;;;;;:::i;:::-;;:::i;:::-;;;13774:2:139;13763:22;;;;13745:41;;13733:2;13718:18;5527:191:69;13700:92:139;30888:100:69;30969:12;30888:100;;6243:113;;;;;;:::i;:::-;6303:7;6329:16;;;:6;:16;;;;;:20;;;;6243:113;7440:154;;;;;;:::i;:::-;;:::i;6947:152::-;;;;;;:::i;:::-;;:::i;45693:200::-;;;;;;:::i;:::-;;:::i;1553:34::-;;;;;-1:-1:-1;;;;;1553:34:69;;;5003:159;;;;;;:::i;:::-;;:::i;44278:175::-;;;;;;:::i;:::-;;:::i;34130:232::-;;;;;;:::i;:::-;;:::i;2036:29::-;;;;;;2895:145:0;;;;;;:::i;:::-;;:::i;2452:39:69:-;;;;;;;;;;;;;;;-1:-1:-1;;;2452:39:69;;;;;46209:990;;;;;;:::i;:::-;;:::i;37277:1085::-;;;;;;:::i;:::-;;:::i;2027:49:0:-;;2072:4;2027:49;;20548:325:69;;;;;;:::i;:::-;;:::i;35096:565::-;;;;;;:::i;:::-;;:::i;36447:699::-;;;;;;:::i;:::-;;:::i;1925:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14026:2:139;14015:22;;;;13997:41;;14069:2;14054:18;;14047:34;;;;14097:18;;;14090:34;13985:2;13970:18;1925:47:69;13952:178:139;39554:150:69;;;;;;:::i;:::-;;:::i;16269:966::-;;;;;;:::i;:::-;;:::i;48181:117::-;;;;;;:::i;:::-;;:::i;7835:335::-;;;;;;:::i;:::-;;:::i;31043:119::-;;;:::i;1848:43::-;;;;;-1:-1:-1;;;;;1848:43:69;;;39866:132;;;;;;:::i;:::-;;:::i;29935:947::-;;;;;;:::i;:::-;;:::i;4855:142::-;4984:6;;4855:142;;5241:147:0;;;;;;:::i;:::-;;:::i;34654:241:69:-;;;;;;:::i;:::-;;:::i;42125:165::-;;;;;;:::i;:::-;;:::i;2251:58::-;;;;;;:::i;:::-;;;;;;;;;;;;;;41873:246;;;;;;:::i;:::-;;:::i;8663:196::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8816:24:69;;;8788:4;8816:24;;;:16;:24;;;;;;;;8815:37;;;;;;;;;;;;;;;8663:196;2315:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4435:414;4578:4;-1:-1:-1;;;;;;;;;4617:34:69;;;;:94;;-1:-1:-1;;;;;;;;;;4677:34:69;;;4617:94;:154;;;-1:-1:-1;;;;;;;;;;4737:34:69;;;4617:154;:225;;;;4805:37;4829:12;4805:23;:37::i;:::-;4598:244;4435:414;-1:-1:-1;;4435:414:69:o;35859:188::-;3597:39;2072:4:0;3625:10:69;3597:7;:39::i;:::-;3589:66;;;;-1:-1:-1;;;3589:66:69;;;;;;;:::i;:::-;;;;;;;;;35987:53:::1;36006:11;36019:20;35987:18;:53::i;:::-;35859:188:::0;;:::o;47314:257::-;3597:39;2072:4:0;3625:10:69;3597:7;:39::i;:::-;3589:66;;;;-1:-1:-1;;;3589:66:69;;;;;;;:::i;:::-;47393:15:::1;::::0;-1:-1:-1;;;47393:15:69;::::1;;;47385:49;;;::::0;-1:-1:-1;;;47385:49:69;;23025:2:139;47385:49:69::1;::::0;::::1;23007:21:139::0;23064:2;23044:18;;;23037:30;-1:-1:-1;;;23083:18:139;;;23076:51;23144:18;;47385:49:69::1;22997:171:139::0;47385:49:69::1;47451:8;::::0;;:15:::1;::::0;;-1:-1:-1;;;47451:15:69;;;;-1:-1:-1;;;;;47451:8:69;;::::1;::::0;:13:::1;::::0;:15;;::::1;::::0;::::1;::::0;;;;;;;:8;:15;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;47444:32:69::1;;47490:2;47513:8;;;;;;;;;-1:-1:-1::0;;;;;47513:8:69::1;-1:-1:-1::0;;;;;47513:13:69::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47506:48;::::0;-1:-1:-1;;;47506:48:69;;47548:4:::1;47506:48;::::0;::::1;11550:51:139::0;-1:-1:-1;;;;;47506:33:69;;;::::1;::::0;::::1;::::0;11523:18:139;;47506:48:69::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47444:120;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5919:180::-:0;6026:7;6056:27;;;:17;:27;;;;;6084:4;6056:33;;;;;-1:-1:-1;;;6056:33:69;;;;;;;;;;;;:36;;;6049:43;;5919:180;;;;:::o;19926:118::-;20008:29;20017:9;20028:8;20008;:29::i;33866:258::-;34035:7;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;34061:56:69::1;34073:6:::0;34081:13;34096:3;34101:4:::1;34107:9:::0;34061:11:::1;:56::i;:::-;1701:1:22::0;2628:7;:22;34054:63:69;33866:258;-1:-1:-1;;;;;33866:258:69:o;31480:627::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;;;31634:16:69;;;:6:::1;:16;::::0;;;;;;;;31603:47;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;31670:19:::1;31641:8:::0;31670:9:::1;:19::i;:::-;31669:20;31661:39;;;;-1:-1:-1::0;;;31661:39:69::1;;;;;;;:::i;:::-;31727:1;31718:6;:10;31710:32;;;;-1:-1:-1::0;;;31710:32:69::1;;;;;;;:::i;:::-;31805:1;31788:7;:14;;;:18;;;31780:53;;;;-1:-1:-1::0;;;31780:53:69::1;;;;;;;:::i;:::-;31865:15;31851:7;:11;;;:29;31843:69;;;;-1:-1:-1::0;;;31843:69:69::1;;;;;;;:::i;:::-;31922:178;31947:8;31969:6;31989:1;32004:7;32025:28;32067:4;32085:5;31922:11;:178::i;:::-;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;31480:627:69:o;36150:121::-;3597:39;2072:4:0;3625:10:69;3597:7;:39::i;:::-;3589:66;;;;-1:-1:-1;;;3589:66:69;;;;;;;:::i;:::-;36234:13:::1;:30:::0;36150:121::o;45899:119::-;45954:7;45980:31;45995:15;45980:14;:31::i;:::-;45973:38;;45899:119;:::o;47662:93::-;3597:39;2072:4:0;3625:10:69;3597:7;:39::i;:::-;3589:66;;;;-1:-1:-1;;;3589:66:69;;;;;;;:::i;:::-;47725:15:::1;:23:::0;;-1:-1:-1;;;;47725:23:69::1;::::0;;47662:93::o;14902:180::-;15028:47;15042:5;15049:3;15054:8;15064:10;15028:13;:47::i;:::-;14902:180;;;:::o;1671:432:35:-;1768:7;1825:27;;;:17;:27;;;;;;;;1796:56;;;;;;;;;-1:-1:-1;;;;;1796:56:35;;;;;-1:-1:-1;;;1796:56:35;;;-1:-1:-1;;;;;1796:56:35;;;;;;;;1768:7;;1863:90;;-1:-1:-1;1913:29:35;;;;;;;;;1923:19;1913:29;-1:-1:-1;;;;;1913:29:35;;;;-1:-1:-1;;;1913:29:35;;-1:-1:-1;;;;;1913:29:35;;;;;1863:90;2001:23;;;;1963:21;;2461:5;;1988:36;;-1:-1:-1;;;;;1988:36:35;:10;:36;:::i;:::-;1987:58;;;;:::i;:::-;2064:16;;;;;-1:-1:-1;1671:432:35;;-1:-1:-1;;;;1671:432:35:o;38470:1016:69:-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;38559:40:69::1;38578:10;38590:8:::0;38559:18:::1;:40::i;:::-;38538:119;;;;-1:-1:-1::0;;;38538:119:69::1;;;;;;;:::i;:::-;38676:19;38686:8;38676:9;:19::i;:::-;38675:20;38667:39;;;;-1:-1:-1::0;;;38667:39:69::1;;;;;;;:::i;:::-;38717:28;38748:16:::0;;;:6:::1;:16;::::0;;;;;;;;38717:47;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;38782:15:::1;:30;;38774:65;;;::::0;-1:-1:-1;;;38774:65:69;;25185:2:139;38774:65:69::1;::::0;::::1;25167:21:139::0;25224:2;25204:18;;;25197:30;-1:-1:-1;;;25243:18:139;;;25236:52;25305:18;;38774:65:69::1;25157:172:139::0;38774:65:69::1;38880:14:::0;;38926:22:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;38926:22:69;;;::::1;::::0;;::::1;::::0;;;;;;;;;38907:16;;;:6:::1;:16:::0;;;;;;;:41;;;;-1:-1:-1;;;;;;38907:41:69::1;-1:-1:-1::0;;;;;38873:22:69::1;38907:41:::0;;::::1;;;::::0;;;;-1:-1:-1;38907:41:69;::::1;::::0;;::::1;::::0;;::::1;::::0;38981:6:::1;::::0;38873:22;;::::1;::::0;39006:20:::1;38873:22:::0;38981:6;39006:20:::1;:::i;:::-;38997:6;:29;;;;39178:54;39190:8;39200:7;39209:22;;;;;;;;39223:1;39209:22;;;;;;39226:1;39209:22;;;;39229:1;39209:22;;::::0;39178:11:::1;:54::i;:::-;39257:8;::::0;;:15:::1;::::0;;-1:-1:-1;;;39257:15:69;;;;-1:-1:-1;;;;;39257:8:69;;::::1;::::0;:13:::1;::::0;:15;;::::1;::::0;::::1;::::0;;;;;;;:8;:15;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;39250:32:69::1;;39283:10;39295:5;39250:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39243:59;;-1:-1:-1::0;;;39243:59:69::1;;;;;;;;;39337:15;39343:8;39337:5;:15::i;:::-;39368:54;::::0;;26994:25:139;;;27050:2;27035:18;;27028:34;;;39406:15:69::1;27078:18:139::0;;;27071:34;39368:54:69;;39377:10:::1;::::0;39368:54:::1;::::0;;;;;26982:2:139;39368:54:69;;::::1;39437:42;39444:12:::0;39458:20:::1;39473:5:::0;39444:12;39458:20:::1;:::i;:::-;39437:42;::::0;;26149:25:139;;;26205:2;26190:18;;26183:34;;;;26122:18;39437:42:69::1;;;;;;;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;;38470:1016:69:o;4816:145:0:-;4465:7;4491:12;;;:6;:12;;;;;;;;:22;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;5925:214::-:0;-1:-1:-1;;;;;6020:23:0;;719:10:38;6020:23:0;6012:83;;;;-1:-1:-1;;;6012:83:0;;24769:2:139;6012:83:0;;;24751:21:139;24808:2;24788:18;;;24781:30;24847:34;24827:18;;;24820:62;-1:-1:-1;;;24898:18:139;;;24891:45;24953:19;;6012:83:0;24741:237:139;6012:83:0;6106:26;6118:4;6124:7;6106:11;:26::i;17953:179:69:-;18083:42;18100:5;18107:3;18112:8;18083:42;;;;;;;;;;;;:16;:42::i;9882:199::-;10009:4;10036:38;10055:8;10065;10036:18;:38::i;:::-;10029:45;9882:199;-1:-1:-1;;;9882:199:69:o;5168:185::-;5284:12;;:::i;:::-;5319:22;;;;:17;:22;;;;;5342:3;5319:27;;;;;-1:-1:-1;;;5319:27:69;;;;;;;;;5312:34;;;;;;;;5319:27;;;;;;;;;5312:34;;;;;;;;;;;;-1:-1:-1;;;5312:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5168:185;-1:-1:-1;;;5168:185:69:o;5527:191::-;5594:6;5629:24;;;:14;:24;;;;;;;;;5670:17;:27;;;;;5629:24;5670:35;;;;;-1:-1:-1;;;5670:35:69;;;;;;;;;;;;:41;-1:-1:-1;;;5670:41:69;;;;;5527:191;-1:-1:-1;;;5527:191:69:o;7440:154::-;7539:7;7299:19;;;:9;:19;;;;;;-1:-1:-1;;;;;7299:19:69;7569:18;7214:111;6947:152;7046:7;7076:16;7085:6;7076:8;:16::i;45693:200::-;45785:5;;45749:7;45825:21;;;:13;:21;;;;;;;;45800:46;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;45800:46:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45749:7;;45785:5;45863:23;45800:46;45884:1;45863:9;:23::i;:::-;45856:30;45693:200;-1:-1:-1;;;;45693:200:69:o;5003:159::-;5102:12;;:::i;:::-;-1:-1:-1;5137:18:69;;;;:13;:18;;;;;;;;;5130:25;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5130:25:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5003:159::o;44278:175::-;44383:7;44413:33;44429:8;44439:6;44413:15;:33::i;34130:232::-;34277:7;3721:35;-1:-1:-1;;;;;;;;;;;3745:10:69;3721:7;:35::i;:::-;3713:60;;;;-1:-1:-1;;;3713:60:69;;;;;;;:::i;:::-;34303:52:::1;34315:6;34323:13;34338:3;34343:5;34350:4;34303:11;:52::i;2895:145:0:-:0;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145::o;46209:990:69:-;46312:7;46352:12;46342:6;:22;;46335:30;;-1:-1:-1;;;46335:30:69;;;;;;;;;46392:5;;46375:14;46429:31;46445:6;46392:5;46429:15;:31::i;:::-;46471:18;46492:26;;;:13;:26;;;;;;;;46471:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;46471:47:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46407:53;;-1:-1:-1;46556:20:69;;;46552:530;;;46592:22;46617:13;46592:22;46631:15;:11;46645:1;46631:15;:::i;:::-;46617:30;;;;;;;;;;;;;;-1:-1:-1;46617:30:69;46592:55;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;46592:55:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46665:9;;;46592:55;;-1:-1:-1;46665:26:69;46661:190;;46826:5;:9;;;46810;:13;;;:25;;;;:::i;:::-;46776:5;:8;;;46761:9;:12;;;:23;;;;:::i;:::-;46747:9;;;;46738:18;;:6;:18;:::i;:::-;46737:48;;;;:::i;:::-;46736:100;;;;:::i;:::-;46711:125;;46661:190;46552:530;;;;46898:12;46885:5;:9;;;:25;46881:191;;47047:9;;;;47032:24;;:12;:24;:::i;:::-;46998:8;;;;46980:26;;:15;:26;:::i;:::-;46966:9;;;;46957:18;;:6;:18;:::i;:::-;46956:51;;;;:::i;:::-;46955:102;;;;:::i;:::-;46930:127;;46881:191;47161:31;47171:5;47189:2;47178:5;:8;;;:13;;;;:::i;:::-;47161:9;:31::i;:::-;47154:38;46209:990;-1:-1:-1;;;;;;46209:990:69:o;37277:1085::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;37419:40:69::1;37438:10;37450:8:::0;37419:18:::1;:40::i;:::-;37398:119;;;;-1:-1:-1::0;;;37398:119:69::1;;;;;;;:::i;:::-;37528:28;37559:16:::0;;;:6:::1;:16;::::0;;;;;;;37528:47;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;;;;;;1627:7:::1;::::0;37608:31:::1;37626:13:::0;37608:15:::1;:31;:::i;:::-;37607:40;;;;:::i;:::-;37606:49;;;;:::i;:::-;37585:70;;37725:15;37711:7;:11;;;:29;37703:54;;;::::0;-1:-1:-1;;;37703:54:69;;19842:2:139;37703:54:69::1;::::0;::::1;19824:21:139::0;19881:2;19861:18;;;19854:30;-1:-1:-1;;;19900:18:139;;;19893:42;19952:18;;37703:54:69::1;19814:162:139::0;37703:54:69::1;37792:1;37775:7;:14;;;:18;;;37767:48;;;::::0;-1:-1:-1;;;37767:48:69;;18100:2:139;37767:48:69::1;::::0;::::1;18082:21:139::0;18139:2;18119:18;;;18112:30;-1:-1:-1;;;18158:18:139;;;18151:47;18215:18;;37767:48:69::1;18072:167:139::0;37767:48:69::1;37846:7;:11;;;37833:10;:24;37825:68;;;::::0;-1:-1:-1;;;37825:68:69;;17403:2:139;37825:68:69::1;::::0;::::1;17385:21:139::0;17442:2;17422:18;;;17415:30;17481:33;17461:18;;;17454:61;17532:18;;37825:68:69::1;17375:181:139::0;37825:68:69::1;37938:25;1676:15;37938;:25;:::i;:::-;37924:10;:39;;37903:116;;;;-1:-1:-1::0;;;37903:116:69::1;;;;;;;:::i;:::-;1676:15;38064:7;:13;;;:23;;;;:::i;:::-;38050:10;:37;;38029:114;;;;-1:-1:-1::0;;;38029:114:69::1;;;;;;;:::i;:::-;38154:201;38179:8;38201:1;38216:10;38240:7;38261:32;38307:5;38326:19;38336:8;38326:9;:19::i;:::-;38154:11;:201::i;:::-;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;;37277:1085:69:o;20548:325::-;-1:-1:-1;;;;;20718:23:69;;20731:10;20718:23;;20711:31;;-1:-1:-1;;;20711:31:69;;;;;;;;;20769:10;20752:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;20752:39:69;;;;;;;;;;;;:51;;-1:-1:-1;;20752:51:69;;;;;;;;;;20818:48;;12904:41:139;;;20752:39:69;;20769:10;20818:48;;12877:18:139;20818:48:69;;;;;;;20548:325;;:::o;35096:565::-;3721:35;-1:-1:-1;;;;;;;;;;;3745:10:69;3721:7;:35::i;:::-;3713:60;;;;-1:-1:-1;;;3713:60:69;;;;;;;:::i;:::-;35310:13:::1;:20;35293:6;:13;:37;35285:62;;;;-1:-1:-1::0;;;35285:62:69::1;;;;;;;:::i;:::-;35382:6;:13;35365:6;:13;:30;35357:55;;;;-1:-1:-1::0;;;35357:55:69::1;;;;;;;:::i;:::-;35428:9;35423:232;35447:6;:13;35443:1;:17;35423:232;;;35481:163;35510:6;35517:1;35510:9;;;;;;-1:-1:-1::0;;;35510:9:69::1;;;;;;;;;;;;;;;35537:13;35551:1;35537:16;;;;;;-1:-1:-1::0;;;35537:16:69::1;;;;;;;;;;;;;;;35571:6;35578:1;35571:9;;;;;;-1:-1:-1::0;;;35571:9:69::1;;;;;;;;;;;;;;;35598:5;35621:9;35481:11;:163::i;:::-;-1:-1:-1::0;35462:3:69;::::1;::::0;::::1;:::i;:::-;;;;35423:232;;;;35096:565:::0;;;;:::o;36447:699::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;36578:40:69::1;36597:10;36609:8:::0;36578:18:::1;:40::i;:::-;36557:119;;;;-1:-1:-1::0;;;36557:119:69::1;;;;;;;:::i;:::-;36686:28;36717:16:::0;;;:6:::1;:16;::::0;;;;;;;;36686:47;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;;;;;;;;36751:10;36744:18:::1;;-1:-1:-1::0;;;36744:18:69::1;;;;;;;;;36825:1;36808:7;:14;;;:18;;;36800:53;;;;-1:-1:-1::0;;;36800:53:69::1;;;;;;;:::i;:::-;36885:15;36871:7;:11;;;:29;36863:69;;;;-1:-1:-1::0;;;36863:69:69::1;;;;;;;:::i;:::-;36943:196;36968:8;36990:6;37010:1;37025:7;37046:32;37092:4;37110:19;37120:8;37110:9;:19::i;39554:150::-:0;3597:39;2072:4:0;3625:10:69;3597:7;:39::i;:::-;3589:66;;;;-1:-1:-1;;;3589:66:69;;;;;;;:::i;:::-;39668:17:::1;:29:::0;;-1:-1:-1;;;;;;39668:29:69::1;-1:-1:-1::0;;;;;39668:29:69;;;::::1;::::0;;;::::1;::::0;;39554:150::o;16269:966::-;16425:47;16439:5;16446:3;16451:8;16461:10;16425:13;:47::i;:::-;15404:20;;15450:8;16483:746;;16643:171;;-1:-1:-1;;;16643:171:69;;-1:-1:-1;;;;;16643:37:69;;;;;:171;;16702:10;;16734:5;;16761:8;;16791:5;;16643:171;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16643:171:69;;;;;;;;-1:-1:-1;;16643:171:69;;;;;;;;;;;;:::i;:::-;;;16623:596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16897:13:69;;16893:312;;16939:106;;-1:-1:-1;;;16939:106:69;;15965:2:139;16939:106:69;;;15947:21:139;16004:2;15984:18;;;15977:30;16043:34;16023:18;;;16016:62;-1:-1:-1;;;16094:18:139;;;16087:48;16152:19;;16939:106:69;15937:240:139;16893:312:69;17157:6;17151:13;17142:6;17138:2;17134:15;17127:38;16623:596;16269:966;;;;:::o;48181:117::-;48249:4;48272:19;48282:8;48272:9;:19::i;7835:335::-;7921:14;;7951:213;-1:-1:-1;;;;;7983:27:69;;;;;;:19;:27;;;;;;7975:35;;7951:213;;;-1:-1:-1;;;;;8054:28:69;;8035:16;8054:28;;;:20;:28;;;;;;;;:35;;;;;;;;;8113:40;8054:35;8137:15;8113:13;:40::i;:::-;8103:50;;;;:::i;:::-;;;7951:213;8012:7;;;;;:::i;:::-;;;;7951:213;;;;7835:335;;;:::o;31043:119::-;31093:62;31105:1;31108:22;;;;;;;;31122:1;31108:22;;;;;;31125:1;31108:22;;;;31128:1;31108:22;;;31132;;;;;;;;31146:1;31132:22;;;;;;31149:1;31132:22;;;;31152:1;31132:22;;;31093:11;:62::i;:::-;31043:119::o;39866:132::-;39955:17;;:36;;-1:-1:-1;;;39955:36:69;;;;;13102:25:139;;;39923:13:69;;-1:-1:-1;;;;;39955:17:69;;:26;;13075:18:139;;39955:36:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;39955:36:69;;;;;;;;;;;;:::i;29935:947::-;30015:16;30025:5;30015:9;:16::i;:::-;30014:17;30006:41;;;;-1:-1:-1;;;30006:41:69;;19502:2:139;30006:41:69;;;19484:21:139;19541:2;19521:18;;;19514:30;-1:-1:-1;;;19560:18:139;;;19553:41;19611:18;;30006:41:69;19474:161:139;30006:41:69;30066:14;30076:3;30066:9;:14::i;:::-;30065:15;30057:37;;;;-1:-1:-1;;;30057:37:69;;16718:2:139;30057:37:69;;;16700:21:139;16757:1;16737:18;;;16730:29;-1:-1:-1;;;16775:18:139;;;16768:39;16824:18;;30057:37:69;16690:158:139;30057:37:69;30122:3;30113:5;:12;;30105:33;;;;-1:-1:-1;;;30105:33:69;;19166:2:139;30105:33:69;;;19148:21:139;19205:1;19185:18;;;19178:29;-1:-1:-1;;;19223:18:139;;;19216:38;19271:18;;30105:33:69;19138:157:139;30105:33:69;30156:37;30175:10;30187:5;30156:18;:37::i;:::-;30148:67;;;;-1:-1:-1;;;30148:67:69;;21230:2:139;30148:67:69;;;21212:21:139;21269:2;21249:18;;;21242:30;-1:-1:-1;;;21288:18:139;;;21281:47;21345:18;;30148:67:69;21202:167:139;30148:67:69;30233:35;30252:10;30264:3;30233:18;:35::i;:::-;30225:63;;;;-1:-1:-1;;;30225:63:69;;15278:2:139;30225:63:69;;;15260:21:139;15317:2;15297:18;;;15290:30;-1:-1:-1;;;15336:18:139;;;15329:45;15391:18;;30225:63:69;15250:165:139;30225:63:69;30299:29;30331:13;;;:6;:13;;;;;;;;30299:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30386:11;;;;;;;;;30354:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30439:15;;30480:12;;30299:45;;30354:43;;30432:23;;;;-1:-1:-1;30480:28:69;:82;;30550:8;:12;;;30480:82;;;30523:8;:12;;;30480:82;30589:22;;;;;;;;;-1:-1:-1;30589:22:69;;;;;;;;;;;;;;;;30573:13;;;:6;:13;;;;;:38;;;;30589:22;30573:38;;;;-1:-1:-1;;;;;30573:38:69;-1:-1:-1;;;;;;30573:38:69;;;;;;;;;;;;;;;;;;;;;30650:22;;;;;;;;;;;;;;;;;;;;30466:96;;-1:-1:-1;30621:52:69;;30580:5;;30640:8;;30621:11;:52::i;:::-;30683:12;30689:5;30683;:12::i;:::-;30705:170;30730:3;30747:6;30767:3;30784:8;30806:22;30842:4;30860:5;30705:11;:170::i;:::-;29935:947;;;;;;:::o;5241:147:0:-;4465:7;4491:12;;;:6;:12;;;;;;;;:22;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;34654:241:69:-:0;34799:7;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;34825:63:69::1;34837:6:::0;34845:13;34860:10:::1;34872:4;34878:9:::0;34825:11:::1;:63::i;:::-;1701:1:22::0;2628:7;:22;34818:70:69;34654:241;-1:-1:-1;;;;34654:241:69:o;42125:165::-;42226:7;42256:27;42270:8;42280:2;42256:13;:27::i;41873:246::-;41977:7;42004:25;;;:15;:25;;;;;;42033:12;42004:41;42000:55;;;-1:-1:-1;42054:1:69;;41873:246;-1:-1:-1;41873:246:69:o;42000:55::-;42072:40;42086:8;42096:15;42072:13;:40::i;1408:213:35:-;1510:4;-1:-1:-1;;;;;;1533:41:35;;-1:-1:-1;;;1533:41:35;;:81;;;1578:36;1602:11;1578:23;:36::i;2734:327::-;2461:5;-1:-1:-1;;;;;2836:33:35;;;;2828:88;;;;-1:-1:-1;;;2828:88:35;;22614:2:139;2828:88:35;;;22596:21:139;22653:2;22633:18;;;22626:30;22692:34;22672:18;;;22665:62;-1:-1:-1;;;22743:18:139;;;22736:40;22793:19;;2828:88:35;22586:232:139;2828:88:35;-1:-1:-1;;;;;2934:22:35;;2926:60;;;;-1:-1:-1;;;2926:60:35;;24415:2:139;2926:60:35;;;24397:21:139;24454:2;24434:18;;;24427:30;-1:-1:-1;;;24473:18:139;;;24466:55;24538:18;;2926:60:35;24387:175:139;2926:60:35;3019:35;;;;;;;;;-1:-1:-1;;;;;3019:35:35;;;;;;-1:-1:-1;;;;;3019:35:35;;;;;;;;;;-1:-1:-1;;;2997:57:35;;;;:19;:57;2734:327::o;18680:698:69:-;18754:13;18770:19;;;:9;:19;;;;;;-1:-1:-1;;;;;18770:19:69;18858;18850:44;;;;-1:-1:-1;;;18850:44:69;;20534:2:139;18850:44:69;;;20516:21:139;20573:2;20553:18;;;20546:30;-1:-1:-1;;;20592:18:139;;;20585:42;20644:18;;18850:44:69;20506:162:139;18850:44:69;18979:5;-1:-1:-1;;;;;18966:18:69;:9;-1:-1:-1;;;;;18966:18:69;;;18958:40;;;;-1:-1:-1;;;18958:40:69;;23735:2:139;18958:40:69;;;23717:21:139;23774:1;23754:18;;;23747:29;-1:-1:-1;;;23792:18:139;;;23785:39;23841:18;;18958:40:69;23707:158:139;18958:40:69;19038:18;19060:19;;;:9;:19;;;;;;;;;-1:-1:-1;;;;;19135:23:69;;;;;:16;:23;;;;;19083:10;19134:37;;;;;;;;;;19060:19;;:33;;19134:37;;19060:33;;19189:39;;;19206:22;19189:39;19181:66;;;;-1:-1:-1;;;19181:66:69;;15622:2:139;19181:66:69;;;15604:21:139;15661:2;15641:18;;;15634:30;-1:-1:-1;;;15680:18:139;;;15673:44;15734:18;;19181:66:69;15594:164:139;19181:66:69;19285:23;;;;:13;:23;;;;;;:35;;-1:-1:-1;;;;;;19285:35:69;-1:-1:-1;;;;;19285:35:69;;;;;;;;;19335:36;;19285:23;;19335:36;;;;;;;18680:698;;;;;:::o;32503:1103::-;32682:7;32701:8;;;;;;;;;-1:-1:-1;;;;;32701:8:69;-1:-1:-1;;;;;32701:24:69;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32738:18;1627:7;;32779:13;32761:15;:31;;;;:::i;:::-;32760:40;;;;:::i;:::-;32759:49;;;;:::i;:::-;32738:70;;32873:1;32864:6;:10;32856:32;;;;-1:-1:-1;;;32856:32:69;;;;;;;:::i;:::-;32947:15;32934:10;:28;32926:68;;;;-1:-1:-1;;;32926:68:69;;21576:2:139;32926:68:69;;;21558:21:139;21615:2;21595:18;;;21588:30;21654:29;21634:18;;;21627:57;21701:18;;32926:68:69;21548:177:139;32926:68:69;33039:25;1676:15;33039;:25;:::i;:::-;33025:10;:39;;33004:116;;;;-1:-1:-1;;;33004:116:69;;;;;;;:::i;:::-;33133:7;;33131:9;;;;;:::i;:::-;;;;-1:-1:-1;33169:7:69;;33186:20;33192:3;33169:7;33186:5;:20::i;:::-;;33217:215;33242:8;33264:6;33284:10;33308:6;:16;33315:8;33308:16;;;;;;;;;;;33217:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33338:28;33380:19;33413:9;33217:11;:215::i;:::-;33508:13;;33464:40;33478:8;33488:15;33464:13;:40::i;:::-;:57;;33443:130;;;;-1:-1:-1;;;33443:130:69;;20875:2:139;33443:130:69;;;20857:21:139;20914:2;20894:18;;;20887:30;20953:28;20933:18;;;20926:56;20999:18;;33443:130:69;20847:176:139;33443:130:69;33591:8;32503:1103;-1:-1:-1;;;;;;;32503:1103:69:o;48304:138::-;48364:4;48398:8;;;;;;;;;-1:-1:-1;;;;;48398:8:69;-1:-1:-1;;;;;48398:15:69;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;48387:38:69;;48426:8;48387:48;;;;;;;;;;;;;13102:25:139;;13090:2;13075:18;;13057:76;48387:48:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28051:1878::-;28310:8;;;:26;;;-1:-1:-1;;;28310:26:69;;;;-1:-1:-1;;;;;28310:8:69;;;;:24;;:26;;;;:8;;:26;;;;;;:8;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28424:6:69;;28378:13;;-1:-1:-1;28424:6:69;-1:-1:-1;28450:21:69;28465:6;28424;28450:21;:::i;:::-;28441:6;:30;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;28558:14:69;;28574:11;;;;;28540:13;;;28521:65;;;;;;;;;28678:40;;28710:6;;28558:7;;28678:40;;28710:6;;28678:40;:::i;:::-;;;;;;;;;-1:-1:-1;28732:15:69;;28728:70;;28763:11;;;:24;;;28728:70;28826:28;28811:11;:43;;;;;;-1:-1:-1;;;28811:43:69;;;;;;;;;;28807:105;;;28886:15;28870:13;;;:31;28807:105;28922:16;;;;:6;:16;;;;;;;;;:26;;;;;;;;;-1:-1:-1;;;;;28922:26:69;-1:-1:-1;;;;;;28922:26:69;;;;;;;;;;;;;;;;;;;;;;;29193:41;28929:8;29215:9;28941:7;29193:11;:41::i;:::-;29260:10;29297:11;;;;;:64;;-1:-1:-1;29339:22:69;29324:11;:37;;;;;;-1:-1:-1;;;29324:37:69;;;;;;;;;;;29297:64;:99;;;;;29377:19;29297:99;29280:333;;;29452:8;;;:15;;;-1:-1:-1;;;29452:15:69;;;;-1:-1:-1;;;;;29452:8:69;;;;:13;;:15;;;;;;;;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29445:143;;-1:-1:-1;;;29445:143:69;;-1:-1:-1;;;;;11870:15:139;;;29445:143:69;;;11852:34:139;29537:4:69;11902:18:139;;;11895:43;11954:18;;;11947:34;;;29445:36:69;;;;;;;11787:18:139;;29445:143:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29421:181;;-1:-1:-1;;;29421:181:69;;;;;;;;;29627:9;29623:69;;;29649:8;;;:17;;;-1:-1:-1;;;29649:17:69;;;;-1:-1:-1;;;;;29649:8:69;;;;:15;;:17;;;;;;;;;;;;:8;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29638:44:69;;29683:8;29638:54;;;;;;;;;;;;;13102:25:139;;13090:2;13075:18;;13057:76;29638:54:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29623:69;29789:7;:11;;;29729:4;-1:-1:-1;;;;;29708:156:69;;29747:8;29769:6;29814:11;29839:15;29708:156;;;;;;;;;:::i;:::-;;;;;;;;29879:43;29886:12;29900:21;29915:6;29886:12;29900:21;:::i;:::-;29879:43;;;26149:25:139;;;26205:2;26190:18;;26183:34;;;;26122:18;29879:43:69;;;;;;;28051:1878;;;;;;;;;;;:::o;13537:767::-;13719:19;13729:8;13719:9;:19::i;:::-;13718:20;13710:39;;;;-1:-1:-1;;;13710:39:69;;;;;;;:::i;:::-;13767:37;13786:7;13795:8;13767:18;:37::i;:::-;13759:69;;;;-1:-1:-1;;;13759:69:69;;17055:2:139;13759:69:69;;;17037:21:139;17094:2;17074:18;;;17067:30;-1:-1:-1;;;17113:18:139;;;17106:49;17172:18;;13759:69:69;17027:169:139;13759:69:69;13908:31;13923:5;13930:8;13908:14;:31::i;:::-;14012:33;14029:5;14036:8;14012:16;:33::i;:::-;14074:26;14086:3;14091:8;14074:11;:26::i;:::-;14184:25;;;;:15;:25;;;;;;14212:12;14184:40;;14267:30;14200:8;;-1:-1:-1;;;;;14267:30:69;;;;;;;;-1:-1:-1;;;;;;;;;;;14267:30:69;;13537:767;;;;:::o;9429:447::-;9540:4;9576:19;;;:9;:19;;;;;;;;;9691:13;:23;;;;;;-1:-1:-1;;;;;9576:19:69;;;9756:23;;;:16;:23;;;;;9627:17;;;9755:35;;;;;;;;;9576:19;;9627:17;;;;9691:23;;;;9679:35;;9755;;9627:17;;9807:35;;;9825:17;9807:35;:62;;;-1:-1:-1;9846:23:69;9800:69;-1:-1:-1;;;;;;9429:447:69:o;21806:5913::-;21958:17;;:::i;:::-;21985;;:::i;:::-;22089:5;;22012:16;;;;22109:13;;22105:1200;;22247:15;22231:9;:13;;;:31;:55;;;;;22285:1;22266:9;:16;;;:20;;;22231:55;22227:264;;;22319:16;;:27;;1733:15;;22319:27;:::i;:::-;22306:40;;;;;;:10;;;;:40;;;;22443:13;;;:31;;22459:15;;22443:31;:::i;:::-;22396:4;:10;;;:80;;;;:::i;:::-;22364:112;;;;;;;;22227:264;22524:15;22508:9;:13;;;:31;:55;;;;;22562:1;22543:9;:16;;;:20;;;22508:55;22504:264;;;22596:16;;:27;;1733:15;;22596:27;:::i;:::-;22583:40;;;;;;:10;;;;:40;;;;22720:13;;;:31;;22736:15;;22720:31;:::i;:::-;22673:4;:10;;;:80;;;;:::i;:::-;22641:112;;;;;;;;22504:264;23027:13;;;;;23014:27;;;;:12;:27;;;;;;23059:13;;;;23014:27;;;;;;-1:-1:-1;23059:18:69;23055:240;;23118:9;:13;;;23101:9;:13;;;:30;23097:184;;;23167:9;23155:21;;23097:184;;;23248:13;;;;;23235:27;;;;:12;:27;;;;;;;;;;-1:-1:-1;23097:184:69;23340:124;;;;;;;;23315:22;23340:124;;;;;;;23407:15;23340:124;;;;;;;23441:12;23340:124;;;;23478:10;;23474:74;;-1:-1:-1;23516:21:69;;;;:13;:21;;;;;;;;;23504:33;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23504:33:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23474:74;23582:12;;;;:9;23557:22;23915:15;:30;-1:-1:-1;23911:186:69;;;24073:12;;;;24055:30;;:15;:30;:::i;:::-;24020:13;;;;24005:28;;:12;:28;:::i;:::-;23991:43;;1793:7;23991:43;:::i;:::-;23990:96;;;;:::i;:::-;23961:125;;23911:186;24330:10;1627:7;24344:21;1627:7;24344:14;:21;:::i;:::-;24343:30;;;;:::i;:::-;24330:43;;24392:9;24387:1425;24411:3;24407:1;:7;24387:1425;;;24614:10;1627:7;24614:10;;:::i;:::-;;;24642:13;24686:15;24681:2;:20;24677:159;;;24730:15;24725:20;;24677:159;;;-1:-1:-1;24801:16:69;;;;:12;:16;;;;;;;;24677:159;24943:19;24948:14;24943:2;:19;:::i;:::-;24891:9;:15;;;:73;;;;:::i;:::-;24853:111;;:9;;:111;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;24982:15:69;;;:25;;25001:6;;24982:15;:25;;25001:6;;24982:25;:::i;:::-;;;;;;;;;;25029:14;;25046:1;25029:18;;;25025:122;;-1:-1:-1;25025:122:69;;25127:1;25110:18;;25025:122;25186:1;25168:9;:15;;;:19;;;25164:142;;;25286:1;25268:15;;;:19;25164:142;25360:12;;;;:17;;;25494:19;;;25340:2;;-1:-1:-1;25340:2:69;;1793:7;;25489:24;;25340:2;25489:24;:::i;:::-;25475:39;;:10;:39;:::i;:::-;25474:74;;;;:::i;:::-;25431:16;:20;;;:117;;;;:::i;:::-;25395:13;;;:153;25566:11;25576:1;25566:11;;:::i;:::-;;;25605:15;25599:2;:21;25595:203;;;-1:-1:-1;25660:12:69;25644:13;;;:28;25694:5;;25595:203;25746:21;;;;:13;:21;;;;;;;;;:33;;;;;;;;;;-1:-1:-1;;;;;25746:33:69;;;-1:-1:-1;;;25746:33:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24416:3:69;;;:::i;:::-;;;24387:1425;;;-1:-1:-1;;25832:5:69;:14;;;25912:13;;25908:462;;26115:4;:10;;;26102:4;:10;;;:23;;;;:::i;:::-;26082:9;:15;;:44;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;26171:9:69;;26159;;:21;;26171:9;26159:21;:::i;:::-;26140:41;;:9;;:41;;;;;:::i;:::-;;;;;;;;;;26199:15;;;;26217:1;26199:19;;;26195:77;;-1:-1:-1;26195:77:69;;26256:1;26238:15;;;:19;26195:77;26306:1;26289:9;:14;;;:18;;;26285:75;;;26344:1;26327:18;;26285:75;26429:21;;;;:13;:21;;;;;;;;;:33;;;;;;;;;;-1:-1:-1;;;;;26429:33:69;;;-1:-1:-1;;;26429:33:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26477:13;;26473:1240;;26710:15;26694:9;:13;;;:31;26690:383;;;26835:10;;;;26822:23;;;;:::i;:::-;;;26884:9;:13;;;26867:9;:13;;;:30;26863:139;;;26934:10;;;;26921:23;;;;:::i;:::-;;;26863:139;27032:13;;;;;27019:27;;;;:12;:27;;;;;;:39;;-1:-1:-1;;;;;;27019:39:69;-1:-1:-1;;;;;27019:39:69;;;;;;;;26690:383;27107:15;27091:9;:13;;;:31;27087:329;;;27162:9;:13;;;27146:9;:13;;;:29;27142:199;;;27212:10;;;;27199:23;;;;:::i;:::-;27296:13;;;;;27283:27;;;;:12;:27;;;;;;:39;;-1:-1:-1;;;;;;27283:39:69;-1:-1:-1;;;;;27283:39:69;;;;;;;;;-1:-1:-1;27142:199:69;27468:17;27488:24;;;:14;:24;;;;;;:28;;27515:1;27488:28;:::i;:::-;27468:48;;27558:9;27531:14;:24;27546:8;27531:24;;;;;;;;;;;:36;;;;27591:15;27581:4;:7;;:25;;;;;27631:12;27620:4;:8;;:23;;;;;27698:4;27657:17;:27;27675:8;27657:27;;;;;;;;;;;27685:9;27657:38;;;;;-1:-1:-1;;;27657:38:69;;;;;;;;;:45;;;;;;;;;;-1:-1:-1;;;;;27657:45:69;;;-1:-1:-1;;;27657:45:69;;;;;;;:38;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26473:1240:69;21806:5913;;;;;;;;;;;;:::o;47761:414::-;47834:40;47853:10;47865:8;47834:18;:40::i;:::-;47813:119;;;;-1:-1:-1;;;47813:119:69;;;;;;;:::i;:::-;47943:13;7299:19;;;:9;:19;;;;;;-1:-1:-1;;;;;7299:19:69;;48014:30;;7299:19;48014:8;:30::i;:::-;48078:38;48095:10;48107:8;48078:16;:38::i;:::-;48131:37;;48159:8;;48155:1;;-1:-1:-1;;;;;48131:37:69;;;-1:-1:-1;;;;;;;;;;;48131:37:69;48155:1;;48131:37;47761:414;;:::o;3334:103:0:-;3400:30;3411:4;719:10:38;3400::0;:30::i;:::-;3334:103;:::o;7474:233::-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;7627:4;7595:12;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;;;;;;;7650:40;;719:10:38;;7595:12:0;;7650:40;;7595:12;7650:40;7474:233;;:::o;7878:234::-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:0;;;;;;;;;;:37;;-1:-1:-1;;7999:37:0;;;8055:40;719:10:38;;7999:12:0;;8055:40;;8031:5;8055:40;7878:234;;:::o;6593:117:69:-;-1:-1:-1;;;;;6676:27:69;6650:7;6676:27;;;:19;:27;;;;;;;6593:117::o;44704:820::-;44801:7;44824:22;44849:5;44824:30;;44864:10;1627:7;;44878:9;:12;;;:19;;;;:::i;:::-;44877:28;;;;:::i;:::-;44864:41;;44920:9;44915:477;44939:3;44935:1;:7;44915:477;;;44963:10;1627:7;44963:10;;:::i;:::-;;;44987:13;45027:1;45022:2;:6;45018:115;;;45053:1;45048:6;;45018:115;;;-1:-1:-1;45102:16:69;;;;:12;:16;;;;;;;;45018:115;45233:12;;;;45228:17;;:2;:17;:::i;:::-;45180:9;:15;;;:67;;;;:::i;:::-;45146:101;;:9;;:101;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;45265:7:69;;;45261:51;;;45292:5;;;45261:51;45344:6;45325:9;:15;;:25;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;45364:12:69;;;:17;;;44944:3;;;:::i;:::-;;;44915:477;;;;45423:1;45406:9;:14;;;:18;;;45402:67;;;45457:1;45440:18;;45402:67;-1:-1:-1;45501:14:69;-1:-1:-1;;;;;45485:32:69;;44704:820;-1:-1:-1;;;44704:820:69:o;42593:1679::-;42699:7;42841:12;42831:6;:22;;42824:30;;-1:-1:-1;;;42824:30:69;;;;;;;;;42890:12;42931:24;;;:14;:24;;;;;;42890:12;42965:385;42989:3;42985:1;:7;42965:385;;;43082:4;43074;:12;43070:56;;43106:5;;43070:56;43139:12;43174:1;43155:11;43162:4;43155;:11;:::i;:::-;:15;;43169:1;43155:15;:::i;:::-;43154:21;;;;:::i;:::-;43193:27;;;;:17;:27;;;;;43139:36;;-1:-1:-1;43234:6:69;;43139:36;43193:33;;;;;-1:-1:-1;;;43193:33:69;;;;;;;;;;;;:37;;;:47;43189:151;;43267:4;43260:11;;43189:151;;;43317:8;43324:1;43317:4;:8;:::i;:::-;43310:15;;43189:151;-1:-1:-1;42994:3:69;;;:::i;:::-;;;42965:385;;;-1:-1:-1;43360:19:69;43382:27;;;:17;:27;;;;;43410:4;43382:33;;;;;-1:-1:-1;;;43382:33:69;;;;;;;;;43360:55;;;;;;;;43382:33;;;;;;;;;43360:55;;;;;;;;;;;;-1:-1:-1;;;43360:55:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43445:5;;43360:55;;-1:-1:-1;;43477:33:69;43493:6;43445:5;43477:15;:33::i;:::-;43520:19;43542:21;;;:13;:21;;;;;;;;43520:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;43520:43:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43460:50;;-1:-1:-1;43520:19:69;43629:17;;;43625:292;;;43662:19;43684:13;43662:19;43698:10;:6;43707:1;43698:10;:::i;:::-;43684:25;;;;;;;;;;;;;;-1:-1:-1;43684:25:69;43662:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;43662:47:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43745:10;;;43662:47;;-1:-1:-1;43732:23:69;;43745:10;43732:23;:::i;:::-;43723:32;;43786:6;:9;;;43774:6;:9;;;:21;;;;:::i;:::-;43769:26;;43625:292;;;;43850:10;;;;43835:25;;:12;:25;:::i;:::-;43826:34;;43897:6;:9;;;43879:15;:27;;;;:::i;:::-;43874:32;;43625:292;43946:9;;;;43969:11;;43965:92;;44040:6;44025;:10;;;44016:6;:19;;;;:::i;:::-;44010:26;;:2;:26;:::i;:::-;44009:37;;;;:::i;:::-;43996:50;;;;:::i;:::-;;;43965:92;44123:9;;;;44111:21;;:9;:21;:::i;:::-;44082:6;:12;;;:52;;;;:::i;:::-;44067:67;;:6;;:67;;;;;:::i;:::-;;;;;;;;;;44148:11;;44163:1;44148:16;;;;-1:-1:-1;44144:122:69;;-1:-1:-1;;44203:11:69;;-1:-1:-1;;;;;44187:29:69;;-1:-1:-1;44180:36:69;;-1:-1:-1;;;;;;44180:36:69;44144:122;44254:1;44247:8;;;;;;;;;;;;;40399:611;40505:7;;40594:8;40505:7;40612:371;40636:3;40632:1;:7;40612:371;;;40729:4;40721;:12;40717:56;;40753:5;;40717:56;40786:12;40821:1;40802:11;40809:4;40802;:11;:::i;:::-;:15;;40816:1;40802:15;:::i;:::-;40801:21;;;;:::i;:::-;40840:19;;;;:13;:19;;;;;:23;;;40786:36;;-1:-1:-1;40840:33:69;-1:-1:-1;40836:137:69;;40900:4;40893:11;;40836:137;;;40950:8;40957:1;40950:4;:8;:::i;:::-;40943:15;;40836:137;-1:-1:-1;40641:3:69;;;:::i;:::-;;;40612:371;;;-1:-1:-1;40999:4:69;;40399:611;-1:-1:-1;;;;40399:611:69:o;41283:584::-;41383:7;41423:24;;;:14;:24;;;;;;41461:11;41457:404;;41495:1;41488:8;;;;;41457:404;41527:22;41552:27;;;:17;:27;;;;;41580:6;41552:35;;;;;-1:-1:-1;;;41552:35:69;;;;;;;;;41527:60;;;;;;;;41552:35;;;;;;;;;41527:60;;;;;;;;;;;;-1:-1:-1;;;41527:60:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41676:33:69;;41683:2;41676:33;:::i;:::-;41635:9;:15;;;:75;;;;:::i;:::-;41601:109;;:9;;:109;;;;;:::i;:::-;;;;;;;;;;41728:14;;41745:1;41728:18;;;41724:75;;-1:-1:-1;41724:75:69;;41783:1;41766:18;;41724:75;41834:14;41827:22;;;-1:-1:-1;41812:38:69;;-1:-1:-1;41812:38:69;2606:202:0;2691:4;-1:-1:-1;;;;;;2714:47:0;;-1:-1:-1;;;2714:47:0;;:87;;-1:-1:-1;;;;;;;;;;937:40:45;;;2765:36:0;829:155:45;21205:323:69;21269:4;-1:-1:-1;;;;;21335:17:69;;21328:25;;-1:-1:-1;;;21328:25:69;;;;;;;;;21424:26;21436:3;21441:8;21424:11;:26::i;:::-;21465:35;;21491:8;;-1:-1:-1;;;;;21465:35:69;;;21482:1;;-1:-1:-1;;;;;;;;;;;21465:35:69;21482:1;;21465:35;-1:-1:-1;21517:4:69;21205:323;;;;:::o;12801:320::-;12940:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;12940:29:69;;;:19;;:29;12933:37;;-1:-1:-1;;;12933:37:69;;;;;;;;;13019:1;12984:23;;;:13;:23;;;;;;-1:-1:-1;;;;;12984:23:69;:37;12980:135;;13102:1;13068:23;;;:13;:23;;;;;:36;;-1:-1:-1;;;;;;13068:36:69;;;-1:-1:-1;12801:320:69:o;12271:416::-;12410:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;12410:28:69;;;:19;;:28;12403:36;;-1:-1:-1;;;12403:36:69;;;;;;;;;12507:1;12477:19;;;:9;:19;;;;;:32;;-1:-1:-1;;;;;;12477:32:69;;;12564:42;12590:5;12487:8;12564:25;:42::i;:::-;-1:-1:-1;;;;;12649:26:69;;;;;;:19;:26;;;;;:31;;12679:1;;12649:26;:31;;12679:1;;12649:31;:::i;:::-;;;;-1:-1:-1;;;;12271:416:69:o;11765:396::-;11926:1;11895:19;;;:9;:19;;;;;;-1:-1:-1;;;;;11895:19:69;:33;11888:41;;-1:-1:-1;;;11888:41:69;;;;;;;;;11967:19;;;;:9;:19;;;;;:25;;-1:-1:-1;;;;;;11967:25:69;-1:-1:-1;;;;;11967:25:69;;;;;12047:35;11967:25;:19;12047:20;:35::i;:::-;-1:-1:-1;;;;;12125:24:69;;;;;;:19;:24;;;;;:29;;12153:1;;12125:24;:29;;12153:1;;12125:29;:::i;3718:492:0:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:0;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:0;;;;;;;;;;-1:-1:-1;;;3844:349:0;;;;;;;:::i;10659:1003:69:-;10776:20;10817:1;10799:15;10808:5;10799:8;:15::i;:::-;:19;;;;:::i;:::-;10828:20;10851:27;;;:17;:27;;;;;;10776:42;;-1:-1:-1;10893:28:69;;;10889:767;;;-1:-1:-1;;;;;10980:27:69;;11024:1;10980:27;;;:20;:27;;;;;;;;:41;;;;;;;;:45;;;11079:27;;;:17;:27;;;;;:31;10889:767;;;-1:-1:-1;;;;;11163:27:69;;;;11141:19;11163:27;;;:20;:27;;;;;;;;:41;;;;;;;;;;;11281;;;;;;:55;;;11390:30;;:17;:30;;;;;;:45;;;;11515;;;;11614:27;;;;;:31;10659:1003::o;10249:235::-;10329:20;10352:13;10361:3;10352:8;:13::i;:::-;-1:-1:-1;;;;;10375:25:69;;;;;;;:20;:25;;;;;;;;:39;;;;;;;;:50;;;10435:27;;;:17;:27;;;;;;:42;;;;-1:-1:-1;10249:235:69:o;1652:441:40:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;-1:-1:-1;;;;;1774:25:40;;;;;-1:-1:-1;;;1774:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:40;;1752:47;;-1:-1:-1;;;1809:6:40;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:40;;;;;;;;;-1:-1:-1;;;1834:6:40;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:40;;;;;;;;-1:-1:-1;1864:9:40;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:40;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:40;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:40;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:40;;;;;;;;-1:-1:-1;1979:1:40;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:40;;2000:55;;;;-1:-1:-1;;;2000:55:40;;14917:2:139;2000:55:40;;;14899:21:139;;;14936:18;;;14929:30;14995:34;14975:18;;;14968:62;15047:18;;2000:55:40;14889:182:139;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:693:139:-;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;183:6;170:20;209:4;233:60;249:43;289:2;249:43;:::i;:::-;233:60;:::i;:::-;315:3;339:2;334:3;327:15;367:2;362:3;358:12;351:19;;402:2;394:6;390:15;454:3;449:2;443;440:1;436:10;428:6;424:23;420:32;417:41;414:2;;;475:5;468;461:20;414:2;501:5;515:163;529:2;526:1;523:9;515:163;;;586:17;;574:30;;624:12;;;;656;;;;547:1;540:9;515:163;;;-1:-1:-1;696:5:139;;78:629;-1:-1:-1;;;;;;;78:629:139:o;712:128::-;777:20;;806:28;777:20;806:28;:::i;:::-;758:82;;;:::o;845:257::-;904:6;957:2;945:9;936:7;932:23;928:32;925:2;;;978:6;970;963:22;925:2;1022:9;1009:23;1041:31;1066:5;1041:31;:::i;1107:261::-;1177:6;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1251:6;1243;1236:22;1198:2;1288:9;1282:16;1307:31;1332:5;1307:31;:::i;1373:398::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:2;;;1523:6;1515;1508:22;1470:2;1567:9;1554:23;1586:31;1611:5;1586:31;:::i;:::-;1636:5;-1:-1:-1;1693:2:139;1678:18;;1665:32;1706:33;1665:32;1706:33;:::i;:::-;1758:7;1748:17;;;1460:311;;;;;:::o;1776:466::-;1853:6;1861;1869;1922:2;1910:9;1901:7;1897:23;1893:32;1890:2;;;1943:6;1935;1928:22;1890:2;1987:9;1974:23;2006:31;2031:5;2006:31;:::i;:::-;2056:5;-1:-1:-1;2113:2:139;2098:18;;2085:32;2126:33;2085:32;2126:33;:::i;:::-;1880:362;;2178:7;;-1:-1:-1;;;2232:2:139;2217:18;;;;2204:32;;1880:362::o;2247:1061::-;2342:6;2350;2358;2366;2419:3;2407:9;2398:7;2394:23;2390:33;2387:2;;;2441:6;2433;2426:22;2387:2;2485:9;2472:23;2504:31;2529:5;2504:31;:::i;:::-;2554:5;-1:-1:-1;2611:2:139;2596:18;;2583:32;2624:33;2583:32;2624:33;:::i;:::-;2676:7;-1:-1:-1;2730:2:139;2715:18;;2702:32;;-1:-1:-1;2785:2:139;2770:18;;2757:32;-1:-1:-1;;;;;2801:30:139;;2798:2;;;2849:6;2841;2834:22;2798:2;2877:22;;2930:4;2922:13;;2918:27;-1:-1:-1;2908:2:139;;2964:6;2956;2949:22;2908:2;3005;2992:16;3030:48;3046:31;3074:2;3046:31;:::i;3030:48::-;3101:2;3094:5;3087:17;3141:7;3136:2;3131;3127;3123:11;3119:20;3116:33;3113:2;;;3167:6;3159;3152:22;3113:2;3227;3222;3218;3214:11;3209:2;3202:5;3198:14;3185:45;3250:14;;;3266:2;3246:23;3239:39;;;;-1:-1:-1;2377:931:139;;;;-1:-1:-1;2377:931:139;-1:-1:-1;2377:931:139:o;3313:392::-;3378:6;3386;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3460:6;3452;3445:22;3407:2;3504:9;3491:23;3523:31;3548:5;3523:31;:::i;:::-;3573:5;-1:-1:-1;3630:2:139;3615:18;;3602:32;3643:30;3602:32;3643:30;:::i;3710:325::-;3778:6;3786;3839:2;3827:9;3818:7;3814:23;3810:32;3807:2;;;3860:6;3852;3845:22;3807:2;3904:9;3891:23;3923:31;3948:5;3923:31;:::i;:::-;3973:5;4025:2;4010:18;;;;3997:32;;-1:-1:-1;;;3797:238:139:o;4040:455::-;4107:6;4115;4168:2;4156:9;4147:7;4143:23;4139:32;4136:2;;;4189:6;4181;4174:22;4136:2;4233:9;4220:23;4252:31;4277:5;4252:31;:::i;:::-;4302:5;-1:-1:-1;4359:2:139;4344:18;;4331:32;-1:-1:-1;;;;;4394:40:139;;4382:53;;4372:2;;4454:6;4446;4439:22;4500:1586;4658:6;4666;4674;4682;4735:3;4723:9;4714:7;4710:23;4706:33;4703:2;;;4757:6;4749;4742:22;4703:2;4802:9;4789:23;-1:-1:-1;;;;;4872:2:139;4864:6;4861:14;4858:2;;;4893:6;4885;4878:22;4858:2;4936:6;4925:9;4921:22;4911:32;;4981:7;4974:4;4970:2;4966:13;4962:27;4952:2;;5008:6;5000;4993:22;4952:2;5049;5036:16;5071:4;5095:60;5111:43;5151:2;5111:43;:::i;5095:60::-;5177:3;5201:2;5196:3;5189:15;5229:2;5224:3;5220:12;5213:19;;5260:2;5256;5252:11;5308:7;5303:2;5297;5294:1;5290:10;5286:2;5282:19;5278:28;5275:41;5272:2;;;5334:6;5326;5319:22;5272:2;5361:6;5352:15;;5376:238;5390:2;5387:1;5384:9;5376:238;;;5461:3;5448:17;5478:31;5503:5;5478:31;:::i;:::-;5522:18;;5408:1;5401:9;;;;;5560:12;;;;5592;;5376:238;;;-1:-1:-1;5633:5:139;-1:-1:-1;;5676:18:139;;5663:32;;-1:-1:-1;;5707:16:139;;;5704:2;;;5741:6;5733;5726:22;5704:2;5769:63;5824:7;5813:8;5802:9;5798:24;5769:63;:::i;:::-;5759:73;;5885:2;5874:9;5870:18;5857:32;5841:48;;5914:2;5904:8;5901:16;5898:2;;;5935:6;5927;5920:22;5898:2;;5963:63;6018:7;6007:8;5996:9;5992:24;5963:63;:::i;:::-;5953:73;;;6045:35;6076:2;6065:9;6061:18;6045:35;:::i;:::-;6035:45;;4693:1393;;;;;;;:::o;6091:255::-;6158:6;6211:2;6199:9;6190:7;6186:23;6182:32;6179:2;;;6232:6;6224;6217:22;6179:2;6269:9;6263:16;6288:28;6310:5;6288:28;:::i;6351:190::-;6410:6;6463:2;6451:9;6442:7;6438:23;6434:32;6431:2;;;6484:6;6476;6469:22;6431:2;-1:-1:-1;6512:23:139;;6421:120;-1:-1:-1;6421:120:139:o;6546:325::-;6614:6;6622;6675:2;6663:9;6654:7;6650:23;6646:32;6643:2;;;6696:6;6688;6681:22;6643:2;6737:9;6724:23;6714:33;;6797:2;6786:9;6782:18;6769:32;6810:31;6835:5;6810:31;:::i;6876:255::-;6934:6;6987:2;6975:9;6966:7;6962:23;6958:32;6955:2;;;7008:6;7000;6993:22;6955:2;7052:9;7039:23;7071:30;7095:5;7071:30;:::i;7136:259::-;7205:6;7258:2;7246:9;7237:7;7233:23;7229:32;7226:2;;;7279:6;7271;7264:22;7226:2;7316:9;7310:16;7335:30;7359:5;7335:30;:::i;7690:675::-;7770:6;7823:2;7811:9;7802:7;7798:23;7794:32;7791:2;;;7844:6;7836;7829:22;7791:2;7882:9;7876:16;-1:-1:-1;;;;;7907:6:139;7904:30;7901:2;;;7952:6;7944;7937:22;7901:2;7980:22;;8033:4;8025:13;;8021:27;-1:-1:-1;8011:2:139;;8067:6;8059;8052:22;8011:2;8101;8095:9;8126:48;8142:31;8170:2;8142:31;:::i;8126:48::-;8197:2;8190:5;8183:17;8237:7;8232:2;8227;8223;8219:11;8215:20;8212:33;8209:2;;;8263:6;8255;8248:22;8209:2;8281:54;8332:2;8327;8320:5;8316:14;8311:2;8307;8303:11;8281:54;:::i;:::-;8354:5;7781:584;-1:-1:-1;;;;;7781:584:139:o;8565:194::-;8635:6;8688:2;8676:9;8667:7;8663:23;8659:32;8656:2;;;8709:6;8701;8694:22;8656:2;-1:-1:-1;8737:16:139;;8646:113;-1:-1:-1;8646:113:139:o;8764:258::-;8832:6;8840;8893:2;8881:9;8872:7;8868:23;8864:32;8861:2;;;8914:6;8906;8899:22;8861:2;-1:-1:-1;;8942:23:139;;;9012:2;8997:18;;;8984:32;;-1:-1:-1;8851:171:139:o;9027:393::-;9104:6;9112;9120;9173:2;9161:9;9152:7;9148:23;9144:32;9141:2;;;9194:6;9186;9179:22;9141:2;9235:9;9222:23;9212:33;;9292:2;9281:9;9277:18;9264:32;9254:42;;9346:2;9335:9;9331:18;9318:32;9359:31;9384:5;9359:31;:::i;:::-;9409:5;9399:15;;;9131:289;;;;;:::o;9425:529::-;9508:6;9516;9524;9532;9585:3;9573:9;9564:7;9560:23;9556:33;9553:2;;;9607:6;9599;9592:22;9553:2;9648:9;9635:23;9625:33;;9705:2;9694:9;9690:18;9677:32;9667:42;;9759:2;9748:9;9744:18;9731:32;9772:31;9797:5;9772:31;:::i;:::-;9822:5;-1:-1:-1;9879:2:139;9864:18;;9851:32;9892:30;9851:32;9892:30;:::i;:::-;9543:411;;;;-1:-1:-1;9543:411:139;;-1:-1:-1;;9543:411:139:o;9959:387::-;10033:6;10041;10049;10102:2;10090:9;10081:7;10077:23;10073:32;10070:2;;;10123:6;10115;10108:22;10070:2;10164:9;10151:23;10141:33;;10221:2;10210:9;10206:18;10193:32;10183:42;;10275:2;10264:9;10260:18;10247:32;10288:28;10310:5;10288:28;:::i;10351:257::-;10392:3;10430:5;10424:12;10457:6;10452:3;10445:19;10473:63;10529:6;10522:4;10517:3;10513:14;10506:4;10499:5;10495:16;10473:63;:::i;:::-;10590:2;10569:15;-1:-1:-1;;10565:29:139;10556:39;;;;10597:4;10552:50;;10400:208;-1:-1:-1;;10400:208:139:o;10613:786::-;-1:-1:-1;;;11019:3:139;11012:38;10994:3;11079:6;11073:13;11095:62;11150:6;11145:2;11140:3;11136:12;11129:4;11121:6;11117:17;11095:62;:::i;:::-;-1:-1:-1;;;11216:2:139;11176:16;;;11208:11;;;11201:40;11266:13;;11288:63;11266:13;11337:2;11329:11;;11322:4;11310:17;;11288:63;:::i;:::-;11371:17;11390:2;11367:26;;11002:397;-1:-1:-1;;;;11002:397:139:o;11992:488::-;-1:-1:-1;;;;;12261:15:139;;;12243:34;;12313:15;;12308:2;12293:18;;12286:43;12360:2;12345:18;;12338:34;;;12408:3;12403:2;12388:18;;12381:31;;;12186:4;;12429:45;;12454:19;;12446:6;12429:45;:::i;12485:274::-;-1:-1:-1;;;;;12677:32:139;;;;12659:51;;12741:2;12726:18;;12719:34;12647:2;12632:18;;12614:145::o;14135:219::-;14284:2;14273:9;14266:21;14247:4;14304:44;14344:2;14333:9;14329:18;14321:6;14304:44;:::i;14359:351::-;14561:2;14543:21;;;14600:2;14580:18;;;14573:30;14639:29;14634:2;14619:18;;14612:57;14701:2;14686:18;;14533:177::o;16182:329::-;16384:2;16366:21;;;16423:1;16403:18;;;16396:29;-1:-1:-1;;;16456:2:139;16441:18;;16434:36;16502:2;16487:18;;16356:155::o;17561:332::-;17763:2;17745:21;;;17802:1;17782:18;;;17775:29;-1:-1:-1;;;17835:2:139;17820:18;;17813:39;17884:2;17869:18;;17735:158::o;18244:354::-;18446:2;18428:21;;;18485:2;18465:18;;;18458:30;18524:32;18519:2;18504:18;;18497:60;18589:2;18574:18;;18418:180::o;18603:356::-;18805:2;18787:21;;;18824:18;;;18817:30;18883:34;18878:2;18863:18;;18856:62;18950:2;18935:18;;18777:182::o;19981:346::-;20183:2;20165:21;;;20222:2;20202:18;;;20195:30;-1:-1:-1;;;20256:2:139;20241:18;;20234:52;20318:2;20303:18;;20155:172::o;21730:336::-;21932:2;21914:21;;;21971:2;21951:18;;;21944:30;-1:-1:-1;;;22005:2:139;21990:18;;21983:42;22057:2;22042:18;;21904:162::o;22071:336::-;22273:2;22255:21;;;22312:2;22292:18;;;22285:30;-1:-1:-1;;;22346:2:139;22331:18;;22324:42;22398:2;22383:18;;22245:162::o;23173:355::-;23375:2;23357:21;;;23414:2;23394:18;;;23387:30;23453:33;23448:2;23433:18;;23426:61;23519:2;23504:18;;23347:181::o;23870:338::-;24072:2;24054:21;;;24111:2;24091:18;;;24084:30;-1:-1:-1;;;24145:2:139;24130:18;;24123:44;24199:2;24184:18;;24044:164::o;26228:559::-;26474:25;;;26530:2;26515:18;;26508:34;;;26461:3;26446:19;;26572:1;26561:13;;26551:2;;26617:10;26612:3;26608:20;26605:1;26598:31;26652:4;26649:1;26642:15;26680:4;26677:1;26670:15;26551:2;26726;26711:18;;26704:34;;;;26769:2;26754:18;26747:34;26428:359;;-1:-1:-1;;26428:359:139:o;27305:275::-;27376:2;27370:9;27441:2;27422:13;;-1:-1:-1;;27418:27:139;27406:40;;-1:-1:-1;;;;;27461:34:139;;27497:22;;;27458:62;27455:2;;;27523:18;;:::i;:::-;27559:2;27552:22;27350:230;;-1:-1:-1;27350:230:139:o;27585:183::-;27645:4;-1:-1:-1;;;;;27670:6:139;27667:30;27664:2;;;27700:18;;:::i;:::-;-1:-1:-1;27745:1:139;27741:14;27757:4;27737:25;;27654:114::o;27773:186::-;27821:4;-1:-1:-1;;;;;27846:6:139;27843:30;27840:2;;;27876:18;;:::i;:::-;-1:-1:-1;27942:2:139;27921:15;-1:-1:-1;;27917:29:139;27948:4;27913:40;;27830:129::o;27964:368::-;28003:3;28043:2;28032:17;;;;28069;;;28105:13;;;28134:10;;-1:-1:-1;;;;;28155:29:139;;;28146:39;;28130:56;28127:2;;;28189:18;;:::i;:::-;-1:-1:-1;;;;;;28238:34:139;;;28229:44;;28221:53;;28218:2;;;28277:18;;:::i;:::-;-1:-1:-1;28313:13:139;;28011:321;-1:-1:-1;;;28011:321:139:o;28337:128::-;28377:3;28408:1;28404:6;28401:1;28398:13;28395:2;;;28414:18;;:::i;:::-;-1:-1:-1;28450:9:139;;28385:80::o;28470:290::-;28509:1;28551;28547:2;28536:17;28588:1;28584:2;28573:17;28609:3;28599:2;;28616:18;;:::i;:::-;-1:-1:-1;;;;;;28652:33:139;;-1:-1:-1;;28687:15:139;;28648:55;28645:2;;;28706:18;;:::i;:::-;28740:14;;;28515:245;-1:-1:-1;;;28515:245:139:o;28765:120::-;28805:1;28831;28821:2;;28836:18;;:::i;:::-;-1:-1:-1;28870:9:139;;28811:74::o;28890:692::-;28929:7;28973:2;28962:17;;;;28999;;;-1:-1:-1;;;;;29073:17:139;;;29109;;;29142:11;;;29163:12;;;29155:21;;29138:39;29135:2;;;29180:18;;:::i;:::-;-1:-1:-1;;;;;;29262:17:139;;;29295:11;;;29317:13;;;29308:23;;29291:41;29288:2;;;29335:18;;:::i;:::-;29383:7;29378:3;29374:17;29364:27;;29438:3;29434:2;29429:13;29424:3;29420:23;29415:2;29411;29407:11;29403:41;29400:2;;;29447:18;;:::i;:::-;29514:3;29510:2;29505:13;29500:3;29496:23;29491:2;29487;29483:11;29479:41;29476:2;;;29523:18;;:::i;:::-;-1:-1:-1;;;29563:13:139;;;;;28941:641;-1:-1:-1;;;;;28941:641:139:o;29587:168::-;29627:7;29693:1;29689;29685:6;29681:14;29678:1;29675:21;29670:1;29663:9;29656:17;29652:45;29649:2;;;29700:18;;:::i;:::-;-1:-1:-1;29740:9:139;;29639:116::o;29760:371::-;29799:4;29840:2;29829:17;;;;29866;;;29902:14;;;29932:10;;-1:-1:-1;;;;;;29953:34:139;;29944:44;;29928:61;29925:2;;;29992:18;;:::i;:::-;-1:-1:-1;;;;;30041:29:139;;30032:39;;30024:48;;30021:2;;;30075:18;;:::i;:::-;-1:-1:-1;30112:13:139;;;29808:323;-1:-1:-1;;;29808:323:139:o;30136:270::-;30175:4;30204:12;;;30232:10;;-1:-1:-1;;;30251:19:139;;30244:27;;30228:44;30225:2;;;30275:18;;:::i;:::-;-1:-1:-1;;;;;30322:27:139;;30315:35;;30307:44;;30304:2;;;30354:18;;:::i;:::-;-1:-1:-1;;30391:9:139;;30184:222::o;30411:125::-;30451:4;30479:1;30476;30473:8;30470:2;;;30484:18;;:::i;:::-;-1:-1:-1;30521:9:139;;30460:76::o;30541:258::-;30613:1;30623:113;30637:6;30634:1;30631:13;30623:113;;;30713:11;;;30707:18;30694:11;;;30687:39;30659:2;30652:10;30623:113;;;30754:6;30751:1;30748:13;30745:2;;;-1:-1:-1;;30789:1:139;30771:16;;30764:27;30594:205::o;30804:136::-;30843:3;30871:5;30861:2;;30880:18;;:::i;:::-;-1:-1:-1;;;30916:18:139;;30851:89::o;30945:135::-;30984:3;-1:-1:-1;;31005:17:139;;31002:2;;;31025:18;;:::i;:::-;-1:-1:-1;31072:1:139;31061:13;;30992:88::o;31085:127::-;31146:10;31141:3;31137:20;31134:1;31127:31;31177:4;31174:1;31167:15;31201:4;31198:1;31191:15;31217:127;31278:10;31273:3;31269:20;31266:1;31259:31;31309:4;31306:1;31299:15;31333:4;31330:1;31323:15;31349:127;31410:10;31405:3;31401:20;31398:1;31391:31;31441:4;31438:1;31431:15;31465:4;31462:1;31455:15;31481:131;-1:-1:-1;;;;;31556:31:139;;31546:42;;31536:2;;31602:1;31599;31592:12;31617:118;31703:5;31696:13;31689:21;31682:5;31679:32;31669:2;;31725:1;31722;31715:12;31740:131;-1:-1:-1;;;;;;31814:32:139;;31804:43;;31794:2;;31861:1;31858;31851:12"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","MIGRATION_ROLE()":"39c6d4cb","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","balanceOfAtNFT(uint256,uint256)":"8c2c9baf","balanceOfNFT(uint256)":"e7e242d4","balanceOfNFTAt(uint256,uint256)":"e0514aba","blockNumber()":"57e871e7","checkpoint()":"c2c4c5c1","createLock(uint256,uint256,bool)":"d60371a7","createLockFor(uint256,uint256,address,bool)":"0a2abdb3","decimals()":"313ce567","depositFor(uint256,uint256)":"0ec84dda","emergencyRefund(address)":"045f7019","epoch()":"900cf0cf","getApproved(uint256)":"081812fc","getLastUserSlope(uint256)":"5633e0a6","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","inBootstrapMode()":"4bd2d9b3","increaseAmount(uint256,uint256)":"b2383e55","increaseUnlockTime(uint256,uint256)":"9d507b8b","isApprovedForAll(address,address)":"e985e9c5","isApprovedOrOwner(address,uint256)":"430c2081","isStaked(uint256)":"baa51f86","locked(uint256)":"b45a3c0e","lockedEnd(uint256)":"626944df","merge(uint256,uint256)":"d1c2babb","migrateTokenFor(uint256,uint256,address)":"8df4b13b","minLockAmount()":"08804275","name()":"06fdde03","ownerOf(uint256)":"6352211e","ownershipChange(uint256)":"23857d51","pointHistory(uint256)":"8ad4c447","registry()":"7b103999","renderingContract()":"c7fecbcc","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","royaltyInfo(uint256,uint256)":"2a55205a","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setMinLockAmount(uint256)":"0f68ae40","setRenderingContract(address)":"b7f1d072","setRoyaltyInfo(address,uint96)":"02fa7c47","slopeChanges(uint256)":"f52a36f7","stopBootstrapMode()":"2277cdc2","supply()":"047fc9aa","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","totalSupplyAt(uint256)":"981b24d0","totalSupplyAtT(uint256)":"7116c60c","totalSupplyWithoutDecay()":"d490dbca","transferFrom(address,address,uint256)":"23b872dd","uploadUsers(address[],uint256[],uint256[],bool)":"b128fd86","userPointEpoch(uint256)":"e58f5947","userPointHistory(uint256,uint256)":"44acb42a","userPointHistoryTs(uint256,uint256)":"05ae4f8c","version()":"54fd4d50","votingPowerOf(address)":"bcc3f3bd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_royaltyRcv\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_renderingContract\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"_royaltyFeeNumerator\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"locktime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum INFTLocker.DepositType\",\"name\":\"deposit_type\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"prevSupply\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"name\":\"Supply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIGRATION_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"balanceOfAtNFT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"balanceOfNFT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_t\",\"type\":\"uint256\"}],\"name\":\"balanceOfNFTAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_stakeNFT\",\"type\":\"bool\"}],\"name\":\"createLock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_stakeNFT\",\"type\":\"bool\"}],\"name\":\"createLockFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"depositFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"emergencyRefund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getLastUserSlope\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"\",\"type\":\"int128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inBootstrapMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"increaseAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"}],\"name\":\"increaseUnlockTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"isApprovedOrOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"locked\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"amount\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"lockedEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_to\",\"type\":\"uint256\"}],\"name\":\"merge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"migrateTokenFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minLockAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ownershipChange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"pointHistory\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct INFTLocker.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renderingContract\",\"outputs\":[{\"internalType\":\"contract ITokenURIGenerator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minLockAmount\",\"type\":\"uint256\"}],\"name\":\"setMinLockAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITokenURIGenerator\",\"name\":\"_contract\",\"type\":\"address\"}],\"name\":\"setRenderingContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_royaltyRcv\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"_royaltyFeeNumerator\",\"type\":\"uint96\"}],\"name\":\"setRoyaltyInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slopeChanges\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"\",\"type\":\"int128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBootstrapMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenIndex\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"totalSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"t\",\"type\":\"uint256\"}],\"name\":\"totalSupplyAtT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupplyWithoutDecay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_users\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_value\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_lockDuration\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"_stakeNFT\",\"type\":\"bool\"}],\"name\":\"uploadUsers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userPointEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"loc\",\"type\":\"uint256\"}],\"name\":\"userPointHistory\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct INFTLocker.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_idx\",\"type\":\"uint256\"}],\"name\":\"userPointHistoryTs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"votingPowerOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Curve Finance\",\"details\":\"Vote weight decays linearly over time. Lock time cannot be more than `MAXTIME` (4 years). # Voting escrow to have time-weighted votes # Votes have a weight depending on time, so that users are committed # to the future of (whatever they are voting for). # The weight in this implementation is linear, and lock cannot be more than maxtime: # w ^ # 1 +        / #   |      / #   |    / #   |  / #   |/ # 0 +--------+------> time # maxtime (4 years?)\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Set or reaffirm the approved address for an NFT. The zero address indicates there is no approved address.      Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.      Throws if `_tokenId` is not a valid NFT. (NOTE: This is not written the EIP)      Throws if `_approved` is the current owner. (NOTE: This is not written the EIP)\",\"params\":{\"_approved\":\"Address to be approved for the given NFT ID.\",\"_tokenId\":\"ID of the token to be approved.\"}},\"balanceOf(address)\":{\"details\":\"Returns the number of NFTs owned by `_owner`.      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\",\"params\":{\"_owner\":\"Address for whom to query the balance.\"}},\"createLock(uint256,uint256,bool)\":{\"params\":{\"_lockDuration\":\"Number of seconds to lock tokens for (rounded down to nearest week)\",\"_stakeNFT\":\"Should we also stake the NFT as well?\",\"_value\":\"Amount to deposit\"}},\"createLockFor(uint256,uint256,address,bool)\":{\"params\":{\"_lockDuration\":\"Number of seconds to lock tokens for (rounded down to nearest week)\",\"_to\":\"Address to deposit\",\"_value\":\"Amount to deposit\"}},\"depositFor(uint256,uint256)\":{\"details\":\"Anyone (even a smart contract) can deposit for someone else, but      cannot extend their locktime and deposit for a brand new user\",\"params\":{\"_tokenId\":\"lock NFT\",\"_value\":\"Amount to add to user's lock\"}},\"emergencyRefund(address)\":{\"details\":\"A refund code that triggers a refund of maha; only used for the bootstrapping period of the DAO\"},\"getApproved(uint256)\":{\"details\":\"Get the approved address for a single NFT.\",\"params\":{\"_tokenId\":\"ID of the NFT to query the approval of.\"}},\"getLastUserSlope(uint256)\":{\"params\":{\"_tokenId\":\"token of the NFT\"},\"returns\":{\"_0\":\"Value of the slope\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"increaseAmount(uint256,uint256)\":{\"params\":{\"_value\":\"Amount of tokens to deposit and add to the lock\"}},\"increaseUnlockTime(uint256,uint256)\":{\"params\":{\"_lockDuration\":\"New number of seconds until tokens unlock\"}},\"isApprovedForAll(address,address)\":{\"details\":\"Checks if `_operator` is an approved operator for `_owner`.\",\"params\":{\"_operator\":\"The address that acts on behalf of the owner.\",\"_owner\":\"The address that owns the NFTs.\"}},\"lockedEnd(uint256)\":{\"params\":{\"_tokenId\":\"User NFT\"},\"returns\":{\"_0\":\"Epoch time of the lock end\"}},\"ownerOf(uint256)\":{\"details\":\"Returns the address of the owner of the NFT.\",\"params\":{\"_tokenId\":\"The identifier for an NFT.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of an NFT from one address to another address.      Throws unless `msg.sender` is the current owner, an authorized operator, or the      approved address for this NFT.      Throws if `_from` is not the current owner.      Throws if `_to` is the zero address.      Throws if `_tokenId` is not a valid NFT.      If `_to` is a smart contract, it calls `onERC721Received` on `_to` and throws if      the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT.\",\"_to\":\"The new owner.\",\"_tokenId\":\"The NFT to transfer.\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Transfers the ownership of an NFT from one address to another address.      Throws unless `msg.sender` is the current owner, an authorized operator, or the      approved address for this NFT.      Throws if `_from` is not the current owner.      Throws if `_to` is the zero address.      Throws if `_tokenId` is not a valid NFT.      If `_to` is a smart contract, it calls `onERC721Received` on `_to` and throws if      the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint,bytes)\\\"))`.\",\"params\":{\"_data\":\"Additional data with no specified format, sent in call to `_to`.\",\"_from\":\"The current owner of the NFT.\",\"_to\":\"The new owner.\",\"_tokenId\":\"The NFT to transfer.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Enables or disables approval for a third party (\\\"operator\\\") to manage all of      `msg.sender`'s assets. It also emits the ApprovalForAll event.      Throws if `_operator` is the `msg.sender`. (NOTE: This is not written the EIP)\",\"params\":{\"_approved\":\"True if the operators is approved, false to revoke approval.\",\"_operator\":\"Address to add to the set of authorized operators.\"}},\"setMinLockAmount(uint256)\":{\"params\":{\"_minLockAmount\":\"The min amount to lock\"}},\"setRoyaltyInfo(address,uint96)\":{\"params\":{\"_royaltyFeeNumerator\":\"The amount of royalty to recieve\",\"_royaltyRcv\":\"The address to recieve royalties\"}},\"stopBootstrapMode()\":{\"details\":\"stop the bootstrap mode that allows governance to take all the maha out\"},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165.\",\"params\":{\"_interfaceID\":\"Id of the interface\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Get token by index\"},\"totalSupplyAt(uint256)\":{\"params\":{\"_block\":\"Block to calculate the total voting power at\"},\"returns\":{\"_0\":\"Total voting power at `_block`\"}},\"totalSupplyAtT(uint256)\":{\"details\":\"Adheres to the ERC20 `totalSupply` interface for Aragon compatibility\",\"returns\":{\"_0\":\"Total voting power\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT.      Throws if `_from` is not the current owner.      Throws if `_to` is the zero address.      Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT.\",\"_to\":\"The new owner.\",\"_tokenId\":\"The NFT to transfer.\"}},\"uploadUsers(address[],uint256[],uint256[],bool)\":{\"params\":{\"_lockDuration\":\"The lock duration for users.\",\"_users\":\"The users for whose lock is to be added.\",\"_value\":\"The values for users.\"}},\"userPointHistoryTs(uint256,uint256)\":{\"params\":{\"_idx\":\"User epoch number\",\"_tokenId\":\"token of the NFT\"},\"returns\":{\"_0\":\"Epoch time of the checkpoint\"}},\"votingPowerOf(address)\":{\"details\":\"Returns the voting power of the `_owner`.      Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.\",\"params\":{\"_owner\":\"Address for whom to query the voting power of.\"}},\"withdraw(uint256)\":{\"details\":\"Only possible if the lock has expired\"}},\"stateVariables\":{\"idToApprovals\":{\"details\":\"Mapping from NFT ID to approved address.\"},\"idToOwner\":{\"details\":\"Mapping from NFT ID to the address that owns it.\"},\"ownerToNFTokenCount\":{\"details\":\"Mapping from owner address to count of his tokens.\"},\"ownerToNFTokenIdList\":{\"details\":\"Mapping from owner address to mapping of index to tokenIds\"},\"ownerToOperators\":{\"details\":\"Mapping from owner address to mapping of operator addresses.\"},\"tokenId\":{\"details\":\"Current count of token\"},\"tokenToOwnerIndex\":{\"details\":\"Mapping from NFT ID to index of owner\"}},\"title\":\"Voting Escrow\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"checkpoint()\":{\"notice\":\"Record global data to checkpoint\"},\"createLock(uint256,uint256,bool)\":{\"notice\":\"Deposit `_value` tokens for `msg.sender` and lock for `_lockDuration`\"},\"createLockFor(uint256,uint256,address,bool)\":{\"notice\":\"Deposit `_value` tokens for `_to` and lock for `_lockDuration`\"},\"depositFor(uint256,uint256)\":{\"notice\":\"Deposit `_value` tokens for `_tokenId` and add to the lock\"},\"getLastUserSlope(uint256)\":{\"notice\":\"Get the most recently recorded rate of voting power decrease for `_tokenId`\"},\"increaseAmount(uint256,uint256)\":{\"notice\":\"Deposit `_value` additional tokens for `_tokenId` without modifying the unlock time\"},\"increaseUnlockTime(uint256,uint256)\":{\"notice\":\"Extend the unlock time for `_tokenId`\"},\"lockedEnd(uint256)\":{\"notice\":\"Get timestamp when `_tokenId`'s lock finishes\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"This works even if sender doesn't own any tokens at the time.\"},\"setMinLockAmount(uint256)\":{\"notice\":\"Sets the min amount to lock\"},\"setRenderingContract(address)\":{\"notice\":\"Sets the optional tokenURI override contract.\"},\"setRoyaltyInfo(address,uint96)\":{\"notice\":\"Sets the royalty info for all NFT marketplaces\"},\"tokenURI(uint256)\":{\"notice\":\"If renderingContract is set then returns its tokenURI(tokenId) return value, otherwise returns the standard baseTokenURI + tokenId.\"},\"totalSupplyAt(uint256)\":{\"notice\":\"Calculate total voting power at some point in the past\"},\"totalSupplyAtT(uint256)\":{\"notice\":\"Calculate total voting power\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"The caller is responsible to confirm that `_to` is capable of receiving NFTs or else        they maybe be permanently lost.\"},\"uploadUsers(address[],uint256[],uint256[],bool)\":{\"notice\":\"Upload users.\"},\"userPointHistoryTs(uint256,uint256)\":{\"notice\":\"Get the timestamp for checkpoint `_idx` for `_tokenId`\"},\"withdraw(uint256)\":{\"notice\":\"Withdraw all tokens for `_tokenId`\"}},\"notice\":\"Votes have a weight depending on time, so that users are committed to the future of (whatever they are voting for)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MAHAXLocker.sol\":\"MAHAXLocker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0xa812eed728198acd2c30d06950a5bea8d68436e4f694dd892273266ec2f79f5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5522afc5c222c810d9ad67c45f37cb7169452fcf76692cad10ac8153c068daa\",\"dweb:/ipfs/QmX4XgnDp7pyvojQ6g5tacrUMCf7TED2qC2vERH9Xh9feZ\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0x0a79511df8151b10b0a0004d6a76ad956582d32824af4c0f4886bdbdfe5746e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afbedcf17f31db719e6fdc56caa8f458799c5fa2eb94cb1e94ef18f89af85768\",\"dweb:/ipfs/QmVmqRdBfbgYThpZSoAJ5o9mnAMjx8mCHHjv3Rh8cQAAg3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/token/common/ERC2981.sol\":{\"keccak256\":\"0x9bc4d7eb03c4e87fd5122e03cdff5f60fa360d76925980ad022b2c6fac9876f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c6d7cfaac6b54599068126b75474c86ccbbaf386c3581abf82d9cda21b35c81\",\"dweb:/ipfs/QmPZteoCvkiUgv4TZxv2wiEKR5KqM83UCohHnSGw1RytpM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/MAHAXLocker.sol\":{\"keccak256\":\"0x2525d9078577aec8dd32192ea60fe16b674a7c2d10cac3831f069d1cb56a806b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56029f8d2eb594bc5661d38194cca64ecfe4163df5117560acb2c842ca70738f\",\"dweb:/ipfs/QmaHaDXne7KFVosKA4sqf1NtjPyYL4kx15vA7ECXXf4USf\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/interfaces/ITokenURIGenerator.sol\":{\"keccak256\":\"0x0f72861fd31dfdee12160368e5a801020f679e433ceb4686376ef446e4032777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7bd5d3a2e68f296237033b91dca4212b81e32bda249a4f4dccada4174bcd2bf\",\"dweb:/ipfs/QmX8hdt5rTyTqbVCrX54K1Vur46M9VsyfxmDUB4vH71QEZ\"]}},\"version\":1}"}},"contracts/MAHAXStaker.sol":{"MAHAXStaker":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_governance","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StakeNFT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UnstakeNFT","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KICK_FROM_STAKE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"_stakeFromLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"banFromStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableAttachmentCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"getStakedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"tokenId","type":"uint256"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakedBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedBalancesNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleAttachmentCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:995:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"294:205:139","statements":[{"body":{"nodeType":"YulBlock","src":"340:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"349:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"357:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:139"},"nodeType":"YulFunctionCall","src":"342:22:139"},"nodeType":"YulExpressionStatement","src":"342:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:139"},"nodeType":"YulFunctionCall","src":"311:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:139"},"nodeType":"YulFunctionCall","src":"307:32:139"},"nodeType":"YulIf","src":"304:2:139"},{"nodeType":"YulAssignment","src":"375:50:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"415:9:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"385:29:139"},"nodeType":"YulFunctionCall","src":"385:40:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"375:6:139"}]},{"nodeType":"YulAssignment","src":"434:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"478:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"489:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:139"},"nodeType":"YulFunctionCall","src":"474:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"444:29:139"},"nodeType":"YulFunctionCall","src":"444:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"434:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:139","type":""}],"src":"196:303:139"},{"body":{"nodeType":"YulBlock","src":"717:276:139","statements":[{"nodeType":"YulAssignment","src":"727:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"739:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"750:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"735:3:139"},"nodeType":"YulFunctionCall","src":"735:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"727:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"770:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"781:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"763:6:139"},"nodeType":"YulFunctionCall","src":"763:25:139"},"nodeType":"YulExpressionStatement","src":"763:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"808:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"819:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:139"},"nodeType":"YulFunctionCall","src":"804:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"824:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"797:6:139"},"nodeType":"YulFunctionCall","src":"797:34:139"},"nodeType":"YulExpressionStatement","src":"797:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"862:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"847:3:139"},"nodeType":"YulFunctionCall","src":"847:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"867:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"840:6:139"},"nodeType":"YulFunctionCall","src":"840:34:139"},"nodeType":"YulExpressionStatement","src":"840:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"894:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"905:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"890:3:139"},"nodeType":"YulFunctionCall","src":"890:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"910:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"883:6:139"},"nodeType":"YulFunctionCall","src":"883:34:139"},"nodeType":"YulExpressionStatement","src":"883:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"937:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"948:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"933:3:139"},"nodeType":"YulFunctionCall","src":"933:19:139"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"958:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"974:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"979:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"970:3:139"},"nodeType":"YulFunctionCall","src":"970:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"983:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"966:3:139"},"nodeType":"YulFunctionCall","src":"966:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"954:3:139"},"nodeType":"YulFunctionCall","src":"954:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"926:6:139"},"nodeType":"YulFunctionCall","src":"926:61:139"},"nodeType":"YulExpressionStatement","src":"926:61:139"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"654:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"665:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"673:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"681:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"689:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"697:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"708:4:139","type":""}],"src":"504:489:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040523480156200001257600080fd5b506040516200289d3803806200289d8339810160408190526200003591620001f6565b604080518082018252600b81526a26a0a420ac29ba30b5b2b960a91b6020808301918252835180850185526001808252603160f81b918301919091526000908155925190912060e08190527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66101008190524660a081815286517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81870181905281890195909552606081810194909452608080820193909352308183018190528851808303909301835260c091820190985281519190950120905293841b909152610120529083901b6001600160601b0319166101405262000139908262000141565b50506200022d565b6200014d828262000151565b5050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166200014d5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b80516001600160a01b0381168114620001f157600080fd5b919050565b6000806040838503121562000209578182fd5b6200021483620001d9565b91506200022460208401620001d9565b90509250929050565b60805160a05160c05160601c60e05161010051610120516101405160601c6125d7620002c6600039600081816103b701528181610532015281816105d20152818161097b01528181610b6e01528181610e3501528181610f8f0152818161155d01526115d2015260006112370152600061128601526000611261015260006111ba015260006111e40152600061120e01526125d76000f3fe608060405234801561001057600080fd5b50600436106101c65760003560e01c806370a08231116100fa57806395d89b411161009d57806395d89b411461044157806396c82e57146104645780639ab24eb01461037f578063a217fddf1461046d578063a694fc3a14610475578063baa51f8614610488578063c3cda5201461049b578063d547741f146104ae578063e7a324dc146104c157600080fd5b806370a082311461037f57806379f250c9146103925780637b103999146103b25780637ecebe00146103d95780638dd6878b146103ec5780638e539e8c146103f457806391d148541461040757806394aa08fb1461041a57600080fd5b80633644e5151161016d5780633644e515146102c257806336568abe146102ca5780633a02a42d146102dd5780633a46b1a8146103065780633ab958fc14610319578063487c8aa714610326578063587cde1e146103395780635c19a95c14610359578063630b4b901461036c57600080fd5b806301ffc9a7146101cb57806306fdde03146101f35780631460fa871461023157806318160ddd1461025f578063248a9ca3146102675780632e17de781461028b5780632f2ff15d146102a0578063313ce567146102b3575b600080fd5b6101de6101d93660046123a6565b6104e8565b60405190151581526020015b60405180910390f35b60408051808201909152601981527826a0a420ac1029ba30b5b2b2102b37ba34b733902837bbb2b960391b60208201525b6040516101ea9190612469565b61025161023f36600461227c565b60096020526000908152604090205481565b6040519081526020016101ea565b61025161051f565b61025161027536600461235f565b6000908152600160208190526040909120015490565b61029e61029936600461235f565b61052e565b005b61029e6102ae366004612377565b610842565b604051601281526020016101ea565b61025161086d565b61029e6102d8366004612377565b610877565b6102516102eb36600461227c565b6001600160a01b031660009081526009602052604090205490565b6102516103143660046122b4565b6108f1565b6007546101de9060ff1681565b61029e61033436600461235f565b61091a565b61034c61034736600461227c565b610950565b6040516101ea9190612455565b61029e61036736600461227c565b61096e565b61029e61037a36600461235f565b610979565b61025161038d36600461227c565b610a85565b6102516103a036600461235f565b60086020526000908152604090205481565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b6102516103e736600461227c565b610aa6565b61029e610ac4565b61025161040236600461235f565b610ae3565b6101de610415366004612377565b610b3f565b6102517fcec4caaca6dc71dd44bec893d0eeda5d5a8d93f807f83245eabb2c24c25a43fe81565b60408051808201909152600781526604d4148415876760cc1b6020820152610224565b61025160065481565b610251600081565b61029e61048336600461235f565b610b6a565b6101de61049636600461235f565b610ca3565b61029e6104a93660046122df565b610cb9565b61029e6104bc366004612377565b610dff565b6102517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b60006001600160e01b03198216637965db0b60e01b148061051957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610529610e25565b905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561058957600080fd5b505afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c19190612298565b60075490915060ff1661079b5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190612298565b9050806001600160a01b0316636405eacd836001600160a01b0316636352211e866040518263ffffffff1660e01b81526004016106a091815260200190565b60206040518083038186803b1580156106b857600080fd5b505afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f09190612298565b6040518263ffffffff1660e01b815260040161070c9190612455565b60206040518083038186803b15801561072457600080fd5b505afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c91906123ce565b156107995760405162461bcd60e51b8152602060048201526008602482015267185d1d1858da195960c21b60448201526064015b60405180910390fd5b505b60405163430c208160e01b8152336004820152602481018390526001600160a01b0382169063430c20819060440160206040518083038186803b1580156107e157600080fd5b505afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610819919061233f565b6108355760405162461bcd60e51b81526004016107909061249c565b61083e82610e31565b5050565b6000828152600160208190526040909120015461085e81611138565b6108688383611142565b505050565b60006105296111ad565b6001600160a01b03811633146108e75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610790565b61083e82826112d4565b6001600160a01b0382166000908152600360205260408120610913908361133b565b9392505050565b6109447fcec4caaca6dc71dd44bec893d0eeda5d5a8d93f807f83245eabb2c24c25a43fe33611466565b61094d81610e31565b50565b6001600160a01b039081166000908152600260205260409020541690565b3361083e81836114ca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d257600080fd5b505afa1580156109e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a9190612298565b6001600160a01b0316336001600160a01b031614610a575760405162461bcd60e51b815260206004820152600a6024820152693737ba103637b1b5b2b960b11b6044820152606401610790565b600081815260086020526040902054610a735761094d8161155b565b610a7c81610e31565b61094d8161155b565b6001600160a01b038116600090815260036020526040812061051990611882565b6001600160a01b038116600090815260056020526040812054610519565b610acf600033611466565b6007805460ff19811660ff90911615179055565b6000438210610b345760405162461bcd60e51b815260206004820152601a60248201527f566f7465733a20626c6f636b206e6f7420796574206d696e65640000000000006044820152606401610790565b61051960048361133b565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc557600080fd5b505afa158015610bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfd9190612298565b60405163430c208160e01b8152336004820152602481018490529091506001600160a01b0382169063430c20819060440160206040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e919061233f565b610c9a5760405162461bcd60e51b81526004016107909061249c565b61083e8261155b565b6000818152600860205260408120541515610519565b83421115610d045760405162461bcd60e51b8152602060048201526018602482015277159bdd195cce881cda59db985d1d5c9948195e1c1a5c995960421b6044820152606401610790565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d7e90610d769060a001604051602081830303815290604052805190602001206118ec565b85858561193a565b9050610da7816001600160a01b0316600090815260056020526040902080546001810190915590565b8614610dec5760405162461bcd60e51b8152602060048201526014602482015273566f7465733a20696e76616c6964206e6f6e636560601b6044820152606401610790565b610df681886114ca565b50505050505050565b60008281526001602081905260409091200154610e1b81611138565b61086883836112d4565b60006105296004611882565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8c57600080fd5b505afa158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190612298565b6040516331a9108f60e11b8152600481018490529091506000906001600160a01b03831690636352211e9060240160206040518083038186803b158015610f0a57600080fd5b505afa158015610f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f429190612298565b600084815260086020526040902054909150610f8d5760405162461bcd60e51b815260206004820152600a6024820152691b9bdd081cdd185ad95960b21b6044820152606401610790565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe657600080fd5b505afa158015610ffa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101e9190612298565b6001600160a01b03166320217176826040518263ffffffff1660e01b81526004016110499190612455565b600060405180830381600087803b15801561106357600080fd5b505af1158015611077573d6000803e3d6000fd5b505050600084815260086020526040812054915061109790839083611962565b60008481526008602090815260408083208390556001600160a01b03851683526009909152812080548392906110ce90849061251c565b9250508190555080600660008282546110e7919061251c565b909155505060408051858152602081018390526001600160a01b0384169133917f27157fa484da42f9840cfcb25cad5ed17300f578a34b8d4ceac3ba9d582b37cb910160405180910390a350505050565b61094d8133611466565b61114c8282610b3f565b61083e5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561120657507f000000000000000000000000000000000000000000000000000000000000000046145b1561123057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6112de8282610b3f565b1561083e5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600043821061138c5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610790565b825460005b818110156113ff5760006113a582846119bb565b9050848660000182815481106113cb57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff1611156113eb578092506113f9565b6113f68160016124c5565b91505b50611391565b8115611451578461141160018461251c565b8154811061142f57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316611454565b60005b6001600160e01b031695945050505050565b6114708282610b3f565b61083e57611488816001600160a01b031660146119d6565b6114938360206119d6565b6040516020016114a49291906123e6565b60408051601f198184030181529082905262461bcd60e51b825261079091600401612469565b60006114d583610950565b6001600160a01b0384811660008181526002602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46108688183611556866001600160a01b031660009081526009602052604090205490565b611bb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561162957600080fd5b505afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116619190612298565b600083815260086020526040902054909150156116b15760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481cdd185ad95960921b6044820152606401610790565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03831690636352211e9060240160206040518083038186803b1580156116f457600080fd5b505afa158015611708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172c9190612298565b6040516339f890b560e21b8152600481018590529091506000906001600160a01b0384169063e7e242d49060240160206040518083038186803b15801561177257600080fd5b505afa158015611786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117aa91906123ce565b90506117b860008383611962565b60008481526008602090815260408083208490556001600160a01b03851683526009909152812080548392906117ef9084906124c5565b92505081905550806006600082825461180891906124c5565b909155505060408051858152602081018390526001600160a01b0384169133917fb4f010c1d447300a6996242a1a4b8401b847c25c906beccd1d3ec9e2b504d26c910160405180910390a36001600160a01b038281166000908152600260205260409020541661187c5761187c82836114ca565b50505050565b805460009080156118d9578261189960018361251c565b815481106118b757634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b03166118dc565b60005b6001600160e01b03169392505050565b60006105196118f96111ad565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061194b87878787611d43565b9150915061195881611e26565b5095945050505050565b6001600160a01b0383166119815761197e60046120228361202e565b50505b6001600160a01b0382166119a05761199d600461205c8361202e565b50505b6108686119ac84610950565b6119b584610950565b83611bb8565b60006119ca60028484186124dd565b610913908484166124c5565b606060006119e58360026124fd565b6119f09060026124c5565b67ffffffffffffffff811115611a1657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a40576020820181803683370190505b509050600360fc1b81600081518110611a6957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611aa657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611aca8460026124fd565b611ad59060016124c5565b90505b6001811115611b69576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b1757634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110611b3b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611b628161255f565b9050611ad8565b5083156109135760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610790565b816001600160a01b0316836001600160a01b031614158015611bda5750600081115b15610868576001600160a01b03831615611c68576001600160a01b03831660009081526003602052604081208190611c159061205c8561202e565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611c5d929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611cf1576001600160a01b03821660009081526003602052604081208190611c9e906120228561202e565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611ce6929190918252602082015260400190565b60405180910390a250505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d3691815260200190565b60405180910390a3505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115611d705750600090506003611e1d565b8460ff16601b14158015611d8857508460ff16601c14155b15611d995750600090506004611e1d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611ded573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611e1657600060019250925050611e1d565b9150600090505b94509492505050565b6000816004811115611e4857634e487b7160e01b600052602160045260246000fd5b1415611e515750565b6001816004811115611e7357634e487b7160e01b600052602160045260246000fd5b1415611ebc5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610790565b6002816004811115611ede57634e487b7160e01b600052602160045260246000fd5b1415611f2c5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610790565b6003816004811115611f4e57634e487b7160e01b600052602160045260246000fd5b1415611fa75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610790565b6004816004811115611fc957634e487b7160e01b600052602160045260246000fd5b141561094d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610790565b600061091382846124c5565b6000806120508561204b61204188611882565b868863ffffffff16565b612068565b91509150935093915050565b6000610913828461251c565b815460009081908161207986611882565b90506000821180156120c55750438661209360018561251c565b815481106120b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b15612133576120d3856121aa565b866120df60018561251c565b815481106120fd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506121a1565b85600001604051806040016040528061214b43612217565b63ffffffff16815260200161215f886121aa565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b95939450505050565b60006001600160e01b038211156122135760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610790565b5090565b600063ffffffff8211156122135760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610790565b60006020828403121561228d578081fd5b81356109138161258c565b6000602082840312156122a9578081fd5b81516109138161258c565b600080604083850312156122c6578081fd5b82356122d18161258c565b946020939093013593505050565b60008060008060008060c087890312156122f7578182fd5b86356123028161258c565b95506020870135945060408701359350606087013560ff81168114612325578283fd5b9598949750929560808101359460a0909101359350915050565b600060208284031215612350578081fd5b81518015158114610913578182fd5b600060208284031215612370578081fd5b5035919050565b60008060408385031215612389578182fd5b82359150602083013561239b8161258c565b809150509250929050565b6000602082840312156123b7578081fd5b81356001600160e01b031981168114610913578182fd5b6000602082840312156123df578081fd5b5051919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351612418816017850160208801612533565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612449816028840160208801612533565b01602801949350505050565b6001600160a01b0391909116815260200190565b6020815260008251806020840152612488816040850160208701612533565b601f01601f19169190910160400192915050565b6020808252600f908201526e3737ba103a37b5b2b71037bbb732b960891b604082015260600190565b600082198211156124d8576124d8612576565b500190565b6000826124f857634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561251757612517612576565b500290565b60008282101561252e5761252e612576565b500390565b60005b8381101561254e578181015183820152602001612536565b8381111561187c5750506000910152565b60008161256e5761256e612576565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461094d57600080fdfea2646970667358221220a3eaec3399442434962ecb9af6f23e68fd0ce9516d0674c16517f1e59d7abd6a64736f6c63430008040033","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x289D CODESIZE SUB DUP1 PUSH3 0x289D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0x1F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xB DUP2 MSTORE PUSH11 0x26A0A420AC29BA30B5B2B9 PUSH1 0xA9 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x1 DUP1 DUP3 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 SSTORE SWAP3 MLOAD SWAP1 SWAP2 KECCAK256 PUSH1 0xE0 DUP2 SWAP1 MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH2 0x100 DUP2 SWAP1 MSTORE CHAINID PUSH1 0xA0 DUP2 DUP2 MSTORE DUP7 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP8 ADD DUP2 SWAP1 MSTORE DUP2 DUP10 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP2 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE ADDRESS DUP2 DUP4 ADD DUP2 SWAP1 MSTORE DUP9 MLOAD DUP1 DUP4 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0xC0 SWAP2 DUP3 ADD SWAP1 SWAP9 MSTORE DUP2 MLOAD SWAP2 SWAP1 SWAP6 ADD KECCAK256 SWAP1 MSTORE SWAP4 DUP5 SHL SWAP1 SWAP2 MSTORE PUSH2 0x120 MSTORE SWAP1 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH2 0x140 MSTORE PUSH3 0x139 SWAP1 DUP3 PUSH3 0x141 JUMP JUMPDEST POP POP PUSH3 0x22D JUMP JUMPDEST PUSH3 0x14D DUP3 DUP3 PUSH3 0x151 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x14D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP1 DUP7 MSTORE SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x1F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x209 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH3 0x214 DUP4 PUSH3 0x1D9 JUMP JUMPDEST SWAP2 POP PUSH3 0x224 PUSH1 0x20 DUP5 ADD PUSH3 0x1D9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0x60 SHR PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH1 0x60 SHR PUSH2 0x25D7 PUSH3 0x2C6 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3B7 ADD MSTORE DUP2 DUP2 PUSH2 0x532 ADD MSTORE DUP2 DUP2 PUSH2 0x5D2 ADD MSTORE DUP2 DUP2 PUSH2 0x97B ADD MSTORE DUP2 DUP2 PUSH2 0xB6E ADD MSTORE DUP2 DUP2 PUSH2 0xE35 ADD MSTORE DUP2 DUP2 PUSH2 0xF8F ADD MSTORE DUP2 DUP2 PUSH2 0x155D ADD MSTORE PUSH2 0x15D2 ADD MSTORE PUSH1 0x0 PUSH2 0x1237 ADD MSTORE PUSH1 0x0 PUSH2 0x1286 ADD MSTORE PUSH1 0x0 PUSH2 0x1261 ADD MSTORE PUSH1 0x0 PUSH2 0x11BA ADD MSTORE PUSH1 0x0 PUSH2 0x11E4 ADD MSTORE PUSH1 0x0 PUSH2 0x120E ADD MSTORE PUSH2 0x25D7 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x9D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x9AB24EB0 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0xBAA51F86 EQ PUSH2 0x488 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xE7A324DC EQ PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0x79F250C9 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0x8DD6878B EQ PUSH2 0x3EC JUMPI DUP1 PUSH4 0x8E539E8C EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x407 JUMPI DUP1 PUSH4 0x94AA08FB EQ PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 GT PUSH2 0x16D JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x3A02A42D EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x3A46B1A8 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x3AB958FC EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x487C8AA7 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x339 JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x359 JUMPI DUP1 PUSH4 0x630B4B90 EQ PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x1460FA87 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x2E17DE78 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x2B3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x23A6 JUMP JUMPDEST PUSH2 0x4E8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH25 0x26A0A420AC1029BA30B5B2B2102B37BA34B733902837BBB2B9 PUSH1 0x39 SHL PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x2469 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EA JUMP JUMPDEST PUSH2 0x251 PUSH2 0x51F JUMP JUMPDEST PUSH2 0x251 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x299 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0x52E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29E PUSH2 0x2AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x842 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EA JUMP JUMPDEST PUSH2 0x251 PUSH2 0x86D JUMP JUMPDEST PUSH2 0x29E PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B4 JUMP JUMPDEST PUSH2 0x8F1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x1DE SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x334 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0x91A JUMP JUMPDEST PUSH2 0x34C PUSH2 0x347 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x2455 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0x96E JUMP JUMPDEST PUSH2 0x29E PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0x979 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x34C PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0xAA6 JUMP JUMPDEST PUSH2 0x29E PUSH2 0xAC4 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x402 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x415 CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0xB3F JUMP JUMPDEST PUSH2 0x251 PUSH32 0xCEC4CAACA6DC71DD44BEC893D0EEDA5D5A8D93F807F83245EABB2C24C25A43FE DUP2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP2 MSTORE PUSH7 0x4D41484158767 PUSH1 0xCC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x224 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x483 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0xB6A JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x4A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0xCB9 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x4BC CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x251 PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x519 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x529 PUSH2 0xE25 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x59D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x79B JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x63D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x661 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6405EACD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6A0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6CC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6F0 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x70C SWAP2 SWAP1 PUSH2 0x2455 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x738 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x75C SWAP2 SWAP1 PUSH2 0x23CE JUMP JUMPDEST ISZERO PUSH2 0x799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x8 PUSH1 0x24 DUP3 ADD MSTORE PUSH8 0x185D1D1858DA1959 PUSH1 0xC2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x819 SWAP2 SWAP1 PUSH2 0x233F JUMP JUMPDEST PUSH2 0x835 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x790 SWAP1 PUSH2 0x249C JUMP JUMPDEST PUSH2 0x83E DUP3 PUSH2 0xE31 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0x85E DUP2 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x868 DUP4 DUP4 PUSH2 0x1142 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x529 PUSH2 0x11AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x8E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH2 0x83E DUP3 DUP3 PUSH2 0x12D4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x913 SWAP1 DUP4 PUSH2 0x133B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x944 PUSH32 0xCEC4CAACA6DC71DD44BEC893D0EEDA5D5A8D93F807F83245EABB2C24C25A43FE CALLER PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x94D DUP2 PUSH2 0xE31 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST CALLER PUSH2 0x83E DUP2 DUP4 PUSH2 0x14CA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0A SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x3737BA103637B1B5B2B9 PUSH1 0xB1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xA73 JUMPI PUSH2 0x94D DUP2 PUSH2 0x155B JUMP JUMPDEST PUSH2 0xA7C DUP2 PUSH2 0xE31 JUMP JUMPDEST PUSH2 0x94D DUP2 PUSH2 0x155B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x519 SWAP1 PUSH2 0x1882 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x519 JUMP JUMPDEST PUSH2 0xACF PUSH1 0x0 CALLER PUSH2 0x1466 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xB34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x566F7465733A20626C6F636B206E6F7420796574206D696E6564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH2 0x519 PUSH1 0x4 DUP4 PUSH2 0x133B JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBD9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBFD SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC7E SWAP2 SWAP1 PUSH2 0x233F JUMP JUMPDEST PUSH2 0xC9A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x790 SWAP1 PUSH2 0x249C JUMP JUMPDEST PUSH2 0x83E DUP3 PUSH2 0x155B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x519 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0xD04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x159BDD195CCE881CDA59DB985D1D5C9948195E1C1A5C9959 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD7E SWAP1 PUSH2 0xD76 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x18EC JUMP JUMPDEST DUP6 DUP6 DUP6 PUSH2 0x193A JUMP JUMPDEST SWAP1 POP PUSH2 0xDA7 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST DUP7 EQ PUSH2 0xDEC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x566F7465733A20696E76616C6964206E6F6E6365 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH2 0xDF6 DUP2 DUP9 PUSH2 0x14CA JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0xE1B DUP2 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x868 DUP4 DUP4 PUSH2 0x12D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x529 PUSH1 0x4 PUSH2 0x1882 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEA0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEC4 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF42 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0xF8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x1B9BDD081CDD185AD959 PUSH1 0xB2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x101E SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x20217176 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1049 SWAP2 SWAP1 PUSH2 0x2455 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1077 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 POP PUSH2 0x1097 SWAP1 DUP4 SWAP1 DUP4 PUSH2 0x1962 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP4 MSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x10CE SWAP1 DUP5 SWAP1 PUSH2 0x251C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x10E7 SWAP2 SWAP1 PUSH2 0x251C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 CALLER SWAP2 PUSH32 0x27157FA484DA42F9840CFCB25CAD5ED17300F578A34B8D4CEAC3BA9D582B37CB SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0x94D DUP2 CALLER PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x114C DUP3 DUP3 PUSH2 0xB3F JUMP JUMPDEST PUSH2 0x83E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP1 DUP7 MSTORE SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1206 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1230 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x12DE DUP3 DUP3 PUSH2 0xB3F JUMP JUMPDEST ISZERO PUSH2 0x83E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436865636B706F696E74733A20626C6F636B206E6F7420796574206D696E6564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 PUSH2 0x13A5 DUP3 DUP5 PUSH2 0x19BB JUMP JUMPDEST SWAP1 POP DUP5 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x13CB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x13EB JUMPI DUP1 SWAP3 POP PUSH2 0x13F9 JUMP JUMPDEST PUSH2 0x13F6 DUP2 PUSH1 0x1 PUSH2 0x24C5 JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH2 0x1391 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1451 JUMPI DUP5 PUSH2 0x1411 PUSH1 0x1 DUP5 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x142F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1454 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1470 DUP3 DUP3 PUSH2 0xB3F JUMP JUMPDEST PUSH2 0x83E JUMPI PUSH2 0x1488 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x19D6 JUMP JUMPDEST PUSH2 0x1493 DUP4 PUSH1 0x20 PUSH2 0x19D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x14A4 SWAP3 SWAP2 SWAP1 PUSH2 0x23E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x790 SWAP2 PUSH1 0x4 ADD PUSH2 0x2469 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14D5 DUP4 PUSH2 0x950 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP9 DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP5 SWAP6 POP SWAP4 SWAP3 DUP6 AND SWAP3 PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F SWAP2 SWAP1 LOG4 PUSH2 0x868 DUP2 DUP4 PUSH2 0x1556 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1BB8 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x163D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1661 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x16B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481CDD185AD959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1708 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x172C SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x39F890B5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0xE7E242D4 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1786 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17AA SWAP2 SWAP1 PUSH2 0x23CE JUMP JUMPDEST SWAP1 POP PUSH2 0x17B8 PUSH1 0x0 DUP4 DUP4 PUSH2 0x1962 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP4 MSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x17EF SWAP1 DUP5 SWAP1 PUSH2 0x24C5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1808 SWAP2 SWAP1 PUSH2 0x24C5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 CALLER SWAP2 PUSH32 0xB4F010C1D447300A6996242A1A4B8401B847C25C906BECCD1D3EC9E2B504D26C SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND PUSH2 0x187C JUMPI PUSH2 0x187C DUP3 DUP4 PUSH2 0x14CA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 DUP1 ISZERO PUSH2 0x18D9 JUMPI DUP3 PUSH2 0x1899 PUSH1 0x1 DUP4 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x18B7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x18DC JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x519 PUSH2 0x18F9 PUSH2 0x11AD JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x194B DUP8 DUP8 DUP8 DUP8 PUSH2 0x1D43 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1958 DUP2 PUSH2 0x1E26 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1981 JUMPI PUSH2 0x197E PUSH1 0x4 PUSH2 0x2022 DUP4 PUSH2 0x202E JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x19A0 JUMPI PUSH2 0x199D PUSH1 0x4 PUSH2 0x205C DUP4 PUSH2 0x202E JUMP JUMPDEST POP POP JUMPDEST PUSH2 0x868 PUSH2 0x19AC DUP5 PUSH2 0x950 JUMP JUMPDEST PUSH2 0x19B5 DUP5 PUSH2 0x950 JUMP JUMPDEST DUP4 PUSH2 0x1BB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19CA PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x24DD JUMP JUMPDEST PUSH2 0x913 SWAP1 DUP5 DUP5 AND PUSH2 0x24C5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x19E5 DUP4 PUSH1 0x2 PUSH2 0x24FD JUMP JUMPDEST PUSH2 0x19F0 SWAP1 PUSH1 0x2 PUSH2 0x24C5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A16 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1A40 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1A69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1AA6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x1ACA DUP5 PUSH1 0x2 PUSH2 0x24FD JUMP JUMPDEST PUSH2 0x1AD5 SWAP1 PUSH1 0x1 PUSH2 0x24C5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1B69 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1B17 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1B3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1B62 DUP2 PUSH2 0x255F JUMP JUMPDEST SWAP1 POP PUSH2 0x1AD8 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x913 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 ISZERO PUSH2 0x1BDA JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0x868 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1C15 SWAP1 PUSH2 0x205C DUP6 PUSH2 0x202E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C5D SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x1CF1 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1C9E SWAP1 PUSH2 0x2022 DUP6 PUSH2 0x202E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1CE6 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x1D36 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 GT ISZERO PUSH2 0x1D70 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x1E1D JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x1D88 JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x1D99 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1E16 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x1E1D JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1E48 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1E51 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1E73 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1EBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x45434453413A20696E76616C6964207369676E6174757265 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1F4E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1FA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1FC9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x94D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x913 DUP3 DUP5 PUSH2 0x24C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2050 DUP6 PUSH2 0x204B PUSH2 0x2041 DUP9 PUSH2 0x1882 JUMP JUMPDEST DUP7 DUP9 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2068 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x913 DUP3 DUP5 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 PUSH2 0x2079 DUP7 PUSH2 0x1882 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH2 0x20C5 JUMPI POP NUMBER DUP7 PUSH2 0x2093 PUSH1 0x1 DUP6 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x20B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH4 0xFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x2133 JUMPI PUSH2 0x20D3 DUP6 PUSH2 0x21AA JUMP JUMPDEST DUP7 PUSH2 0x20DF PUSH1 0x1 DUP6 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x20FD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x21A1 JUMP JUMPDEST DUP6 PUSH1 0x0 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x214B NUMBER PUSH2 0x2217 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215F DUP9 PUSH2 0x21AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP5 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 ADD SSTORE JUMPDEST SWAP6 SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32342062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x228D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x913 DUP2 PUSH2 0x258C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22A9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x913 DUP2 PUSH2 0x258C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22C6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x22D1 DUP2 PUSH2 0x258C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x2302 DUP2 PUSH2 0x258C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2325 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP5 PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2350 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x913 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2370 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2389 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x239B DUP2 PUSH2 0x258C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x913 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23DF JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x2418 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x2533 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2449 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x2533 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2488 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2533 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xF SWAP1 DUP3 ADD MSTORE PUSH15 0x3737BA103A37B5B2B71037BBB732B9 PUSH1 0x89 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x24D8 JUMPI PUSH2 0x24D8 PUSH2 0x2576 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x24F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2517 JUMPI PUSH2 0x2517 PUSH2 0x2576 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x252E JUMPI PUSH2 0x252E PUSH2 0x2576 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x254E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2536 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x187C JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x256E JUMPI PUSH2 0x256E PUSH2 0x2576 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x94D JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 0xEA 0xEC CALLER SWAP10 DIFFICULTY 0x24 CALLVALUE SWAP7 0x2E 0xCB SWAP11 0xF6 CALLCODE RETURNDATACOPY PUSH9 0xFD0CE9516D0674C165 OR CALL 0xE5 SWAP14 PUSH27 0xBD6A64736F6C634300080400330000000000000000000000000000 ","sourceMap":"1268:11226:70:-:0;;;2248:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2455:602:44;;;;;;;;;;;-1:-1:-1;;;2455:602:44;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2455:602:44;;;;;;;-1:-1:-1;1806:22:22;;;2541::44;;;;;2778:25;;;;2597;2813:31;;;;2873:13;2854:32;;;;3633:73;;2651:117;3633:73;;;763:25:139;;;804:18;;;797:34;;;;-1:-1:-1;847:18:139;;;840:34;;;;890:18;;;;883:34;;;;3700:4:44;933:19:139;;;926:61;;;3633:73:44;;;;;;;;;;735:19:139;;;;3633:73:44;;;3623:84;;;;;;;2896:85;;2991:28;;;;;;3029:21;;2349:31:70;;;;-1:-1:-1;;;;;;2349:31:70;::::1;::::0;2390:43:::1;::::0;2421:11;2390:10:::1;:43::i;:::-;2248:192:::0;;1268:11226;;6824:110:0;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;7474:233::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7552:149;;7595:12;;;;7627:4;7595:12;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;;;;;;;7650:40;;719:10:38;;7595:12:0;;7650:40;;7595:12;7650:40;7474:233;;:::o;14:177:139:-;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:303::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:2;;;357:6;349;342:22;304:2;385:40;415:9;385:40;:::i;:::-;375:50;;444:49;489:2;478:9;474:18;444:49;:::i;:::-;434:59;;294:205;;;;;:::o;717:276::-;1268:11226:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15280:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulVariableDeclaration","src":"165:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:139"},"nodeType":"YulFunctionCall","src":"178:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:139"},"nodeType":"YulFunctionCall","src":"210:31:139"},"nodeType":"YulExpressionStatement","src":"210:31:139"},{"nodeType":"YulAssignment","src":"250:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:257:139"},{"body":{"nodeType":"YulBlock","src":"357:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:139"},"nodeType":"YulFunctionCall","src":"405:22:139"},"nodeType":"YulExpressionStatement","src":"405:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:139"},"nodeType":"YulFunctionCall","src":"374:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:139"},"nodeType":"YulFunctionCall","src":"370:32:139"},"nodeType":"YulIf","src":"367:2:139"},{"nodeType":"YulVariableDeclaration","src":"438:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:139"},"nodeType":"YulFunctionCall","src":"451:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:139"},"nodeType":"YulFunctionCall","src":"476:31:139"},"nodeType":"YulExpressionStatement","src":"476:31:139"},{"nodeType":"YulAssignment","src":"516:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:139","type":""}],"src":"276:261:139"},{"body":{"nodeType":"YulBlock","src":"629:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"675:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"684:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"692:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:139"},"nodeType":"YulFunctionCall","src":"677:22:139"},"nodeType":"YulExpressionStatement","src":"677:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"650:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"646:3:139"},"nodeType":"YulFunctionCall","src":"646:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"642:3:139"},"nodeType":"YulFunctionCall","src":"642:32:139"},"nodeType":"YulIf","src":"639:2:139"},{"nodeType":"YulVariableDeclaration","src":"710:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"736:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"723:12:139"},"nodeType":"YulFunctionCall","src":"723:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"714:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"780:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"755:24:139"},"nodeType":"YulFunctionCall","src":"755:31:139"},"nodeType":"YulExpressionStatement","src":"755:31:139"},{"nodeType":"YulAssignment","src":"795:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"805:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"795:6:139"}]},{"nodeType":"YulAssignment","src":"819:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"846:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"857:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"842:3:139"},"nodeType":"YulFunctionCall","src":"842:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"829:12:139"},"nodeType":"YulFunctionCall","src":"829:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"819:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"587:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"598:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"610:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"618:6:139","type":""}],"src":"542:325:139"},{"body":{"nodeType":"YulBlock","src":"1025:554:139","statements":[{"body":{"nodeType":"YulBlock","src":"1072:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1081:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"1089:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1074:6:139"},"nodeType":"YulFunctionCall","src":"1074:22:139"},"nodeType":"YulExpressionStatement","src":"1074:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1046:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1042:3:139"},"nodeType":"YulFunctionCall","src":"1042:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1067:3:139","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1038:3:139"},"nodeType":"YulFunctionCall","src":"1038:33:139"},"nodeType":"YulIf","src":"1035:2:139"},{"nodeType":"YulVariableDeclaration","src":"1107:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1133:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1120:12:139"},"nodeType":"YulFunctionCall","src":"1120:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1111:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1177:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1152:24:139"},"nodeType":"YulFunctionCall","src":"1152:31:139"},"nodeType":"YulExpressionStatement","src":"1152:31:139"},{"nodeType":"YulAssignment","src":"1192:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1202:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1192:6:139"}]},{"nodeType":"YulAssignment","src":"1216:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1243:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1254:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1239:3:139"},"nodeType":"YulFunctionCall","src":"1239:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1226:12:139"},"nodeType":"YulFunctionCall","src":"1226:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1216:6:139"}]},{"nodeType":"YulAssignment","src":"1267:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1294:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1305:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1290:3:139"},"nodeType":"YulFunctionCall","src":"1290:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1277:12:139"},"nodeType":"YulFunctionCall","src":"1277:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1267:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1318:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1350:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1361:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1346:3:139"},"nodeType":"YulFunctionCall","src":"1346:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1333:12:139"},"nodeType":"YulFunctionCall","src":"1333:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1322:7:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1417:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1426:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"1434:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1419:6:139"},"nodeType":"YulFunctionCall","src":"1419:22:139"},"nodeType":"YulExpressionStatement","src":"1419:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1387:7:139"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1400:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"1409:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1396:3:139"},"nodeType":"YulFunctionCall","src":"1396:18:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1384:2:139"},"nodeType":"YulFunctionCall","src":"1384:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1377:6:139"},"nodeType":"YulFunctionCall","src":"1377:39:139"},"nodeType":"YulIf","src":"1374:2:139"},{"nodeType":"YulAssignment","src":"1452:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1462:7:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1452:6:139"}]},{"nodeType":"YulAssignment","src":"1478:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1505:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1516:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1501:3:139"},"nodeType":"YulFunctionCall","src":"1501:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1488:12:139"},"nodeType":"YulFunctionCall","src":"1488:33:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1478:6:139"}]},{"nodeType":"YulAssignment","src":"1530:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1557:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1568:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1553:3:139"},"nodeType":"YulFunctionCall","src":"1553:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1540:12:139"},"nodeType":"YulFunctionCall","src":"1540:33:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1530:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"951:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"962:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"974:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"982:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"990:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"998:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1006:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1014:6:139","type":""}],"src":"872:707:139"},{"body":{"nodeType":"YulBlock","src":"1662:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"1708:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1717:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1725:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1710:6:139"},"nodeType":"YulFunctionCall","src":"1710:22:139"},"nodeType":"YulExpressionStatement","src":"1710:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1683:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1692:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1679:3:139"},"nodeType":"YulFunctionCall","src":"1679:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1704:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1675:3:139"},"nodeType":"YulFunctionCall","src":"1675:32:139"},"nodeType":"YulIf","src":"1672:2:139"},{"nodeType":"YulVariableDeclaration","src":"1743:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1762:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1756:5:139"},"nodeType":"YulFunctionCall","src":"1756:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1747:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1825:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1834:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1842:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1827:6:139"},"nodeType":"YulFunctionCall","src":"1827:22:139"},"nodeType":"YulExpressionStatement","src":"1827:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1794:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1815:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1808:6:139"},"nodeType":"YulFunctionCall","src":"1808:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1801:6:139"},"nodeType":"YulFunctionCall","src":"1801:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1791:2:139"},"nodeType":"YulFunctionCall","src":"1791:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1784:6:139"},"nodeType":"YulFunctionCall","src":"1784:40:139"},"nodeType":"YulIf","src":"1781:2:139"},{"nodeType":"YulAssignment","src":"1860:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1870:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1860:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1628:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1639:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1651:6:139","type":""}],"src":"1584:297:139"},{"body":{"nodeType":"YulBlock","src":"1956:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"2002:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2011:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2019:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2004:6:139"},"nodeType":"YulFunctionCall","src":"2004:22:139"},"nodeType":"YulExpressionStatement","src":"2004:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1977:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1986:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1973:3:139"},"nodeType":"YulFunctionCall","src":"1973:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1998:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1969:3:139"},"nodeType":"YulFunctionCall","src":"1969:32:139"},"nodeType":"YulIf","src":"1966:2:139"},{"nodeType":"YulAssignment","src":"2037:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2060:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2047:12:139"},"nodeType":"YulFunctionCall","src":"2047:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2037:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1922:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1933:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1945:6:139","type":""}],"src":"1886:190:139"},{"body":{"nodeType":"YulBlock","src":"2168:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"2214:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2223:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2231:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2216:6:139"},"nodeType":"YulFunctionCall","src":"2216:22:139"},"nodeType":"YulExpressionStatement","src":"2216:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2189:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2198:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2185:3:139"},"nodeType":"YulFunctionCall","src":"2185:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2210:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2181:3:139"},"nodeType":"YulFunctionCall","src":"2181:32:139"},"nodeType":"YulIf","src":"2178:2:139"},{"nodeType":"YulAssignment","src":"2249:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2272:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2259:12:139"},"nodeType":"YulFunctionCall","src":"2259:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2249:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2291:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2321:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2332:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2317:3:139"},"nodeType":"YulFunctionCall","src":"2317:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2304:12:139"},"nodeType":"YulFunctionCall","src":"2304:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2295:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2370:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2345:24:139"},"nodeType":"YulFunctionCall","src":"2345:31:139"},"nodeType":"YulExpressionStatement","src":"2345:31:139"},{"nodeType":"YulAssignment","src":"2385:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2395:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2385:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2126:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2137:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2149:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2157:6:139","type":""}],"src":"2081:325:139"},{"body":{"nodeType":"YulBlock","src":"2480:237:139","statements":[{"body":{"nodeType":"YulBlock","src":"2526:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2535:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2543:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2528:6:139"},"nodeType":"YulFunctionCall","src":"2528:22:139"},"nodeType":"YulExpressionStatement","src":"2528:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2501:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2510:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2497:3:139"},"nodeType":"YulFunctionCall","src":"2497:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2522:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2493:3:139"},"nodeType":"YulFunctionCall","src":"2493:32:139"},"nodeType":"YulIf","src":"2490:2:139"},{"nodeType":"YulVariableDeclaration","src":"2561:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2587:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2574:12:139"},"nodeType":"YulFunctionCall","src":"2574:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2565:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2661:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2670:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2678:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2663:6:139"},"nodeType":"YulFunctionCall","src":"2663:22:139"},"nodeType":"YulExpressionStatement","src":"2663:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2619:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2630:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2641:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2646:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2637:3:139"},"nodeType":"YulFunctionCall","src":"2637:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2626:3:139"},"nodeType":"YulFunctionCall","src":"2626:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2616:2:139"},"nodeType":"YulFunctionCall","src":"2616:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2609:6:139"},"nodeType":"YulFunctionCall","src":"2609:51:139"},"nodeType":"YulIf","src":"2606:2:139"},{"nodeType":"YulAssignment","src":"2696:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2706:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2696:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2446:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2457:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2469:6:139","type":""}],"src":"2411:306:139"},{"body":{"nodeType":"YulBlock","src":"2792:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"2838:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2847:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2855:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2840:6:139"},"nodeType":"YulFunctionCall","src":"2840:22:139"},"nodeType":"YulExpressionStatement","src":"2840:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2813:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2822:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2809:3:139"},"nodeType":"YulFunctionCall","src":"2809:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2834:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2805:3:139"},"nodeType":"YulFunctionCall","src":"2805:32:139"},"nodeType":"YulIf","src":"2802:2:139"},{"nodeType":"YulAssignment","src":"2873:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2896:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2883:12:139"},"nodeType":"YulFunctionCall","src":"2883:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2873:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2758:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2769:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2781:6:139","type":""}],"src":"2722:190:139"},{"body":{"nodeType":"YulBlock","src":"2998:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"3044:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3053:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3061:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3046:6:139"},"nodeType":"YulFunctionCall","src":"3046:22:139"},"nodeType":"YulExpressionStatement","src":"3046:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3019:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3028:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3015:3:139"},"nodeType":"YulFunctionCall","src":"3015:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3040:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3011:3:139"},"nodeType":"YulFunctionCall","src":"3011:32:139"},"nodeType":"YulIf","src":"3008:2:139"},{"nodeType":"YulAssignment","src":"3079:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3095:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3089:5:139"},"nodeType":"YulFunctionCall","src":"3089:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3079:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2964:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2975:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2987:6:139","type":""}],"src":"2917:194:139"},{"body":{"nodeType":"YulBlock","src":"3364:144:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3381:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3390:3:139","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"3395:4:139","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3386:3:139"},"nodeType":"YulFunctionCall","src":"3386:14:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3374:6:139"},"nodeType":"YulFunctionCall","src":"3374:27:139"},"nodeType":"YulExpressionStatement","src":"3374:27:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3421:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"3426:1:139","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3417:3:139"},"nodeType":"YulFunctionCall","src":"3417:11:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3430:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3410:6:139"},"nodeType":"YulFunctionCall","src":"3410:27:139"},"nodeType":"YulExpressionStatement","src":"3410:27:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3457:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"3462:2:139","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3453:3:139"},"nodeType":"YulFunctionCall","src":"3453:12:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3467:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3446:6:139"},"nodeType":"YulFunctionCall","src":"3446:28:139"},"nodeType":"YulExpressionStatement","src":"3446:28:139"},{"nodeType":"YulAssignment","src":"3483:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3494:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"3499:2:139","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3490:3:139"},"nodeType":"YulFunctionCall","src":"3490:12:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3483:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3332:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3337:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3345:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3356:3:139","type":""}],"src":"3116:392:139"},{"body":{"nodeType":"YulBlock","src":"3902:397:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3919:3:139"},{"kind":"string","nodeType":"YulLiteral","src":"3924:25:139","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3912:6:139"},"nodeType":"YulFunctionCall","src":"3912:38:139"},"nodeType":"YulExpressionStatement","src":"3912:38:139"},{"nodeType":"YulVariableDeclaration","src":"3959:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3979:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3973:5:139"},"nodeType":"YulFunctionCall","src":"3973:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3963:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4021:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4029:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4017:3:139"},"nodeType":"YulFunctionCall","src":"4017:17:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4040:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"4045:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4036:3:139"},"nodeType":"YulFunctionCall","src":"4036:12:139"},{"name":"length","nodeType":"YulIdentifier","src":"4050:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3995:21:139"},"nodeType":"YulFunctionCall","src":"3995:62:139"},"nodeType":"YulExpressionStatement","src":"3995:62:139"},{"nodeType":"YulVariableDeclaration","src":"4066:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4080:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4085:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4076:3:139"},"nodeType":"YulFunctionCall","src":"4076:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4070:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4112:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"4116:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4108:3:139"},"nodeType":"YulFunctionCall","src":"4108:11:139"},{"kind":"string","nodeType":"YulLiteral","src":"4121:19:139","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4101:6:139"},"nodeType":"YulFunctionCall","src":"4101:40:139"},"nodeType":"YulExpressionStatement","src":"4101:40:139"},{"nodeType":"YulVariableDeclaration","src":"4150:29:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4172:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4166:5:139"},"nodeType":"YulFunctionCall","src":"4166:13:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4154:8:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4214:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4222:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4210:3:139"},"nodeType":"YulFunctionCall","src":"4210:17:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4233:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"4237:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4229:3:139"},"nodeType":"YulFunctionCall","src":"4229:11:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"4242:8:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4188:21:139"},"nodeType":"YulFunctionCall","src":"4188:63:139"},"nodeType":"YulExpressionStatement","src":"4188:63:139"},{"nodeType":"YulAssignment","src":"4260:33:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4275:2:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"4279:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4271:3:139"},"nodeType":"YulFunctionCall","src":"4271:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"4290:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4267:3:139"},"nodeType":"YulFunctionCall","src":"4267:26:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4260:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3870:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3875:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3883:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3894:3:139","type":""}],"src":"3513:786:139"},{"body":{"nodeType":"YulBlock","src":"4405:102:139","statements":[{"nodeType":"YulAssignment","src":"4415:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4427:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4438:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4423:3:139"},"nodeType":"YulFunctionCall","src":"4423:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4415:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4457:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4472:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4488:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4493:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4484:3:139"},"nodeType":"YulFunctionCall","src":"4484:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4497:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4480:3:139"},"nodeType":"YulFunctionCall","src":"4480:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4468:3:139"},"nodeType":"YulFunctionCall","src":"4468:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4450:6:139"},"nodeType":"YulFunctionCall","src":"4450:51:139"},"nodeType":"YulExpressionStatement","src":"4450:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4374:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4385:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4396:4:139","type":""}],"src":"4304:203:139"},{"body":{"nodeType":"YulBlock","src":"4641:145:139","statements":[{"nodeType":"YulAssignment","src":"4651:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4663:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4674:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4659:3:139"},"nodeType":"YulFunctionCall","src":"4659:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4651:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4693:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4708:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4724:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4729:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4720:3:139"},"nodeType":"YulFunctionCall","src":"4720:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4733:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4716:3:139"},"nodeType":"YulFunctionCall","src":"4716:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4704:3:139"},"nodeType":"YulFunctionCall","src":"4704:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4686:6:139"},"nodeType":"YulFunctionCall","src":"4686:51:139"},"nodeType":"YulExpressionStatement","src":"4686:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4757:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4768:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4753:3:139"},"nodeType":"YulFunctionCall","src":"4753:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4773:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4746:6:139"},"nodeType":"YulFunctionCall","src":"4746:34:139"},"nodeType":"YulExpressionStatement","src":"4746:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4602:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4613:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4621:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4632:4:139","type":""}],"src":"4512:274:139"},{"body":{"nodeType":"YulBlock","src":"4886:92:139","statements":[{"nodeType":"YulAssignment","src":"4896:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4908:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4919:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4904:3:139"},"nodeType":"YulFunctionCall","src":"4904:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4896:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4938:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4963:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4956:6:139"},"nodeType":"YulFunctionCall","src":"4956:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4949:6:139"},"nodeType":"YulFunctionCall","src":"4949:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4931:6:139"},"nodeType":"YulFunctionCall","src":"4931:41:139"},"nodeType":"YulExpressionStatement","src":"4931:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4855:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4866:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4877:4:139","type":""}],"src":"4791:187:139"},{"body":{"nodeType":"YulBlock","src":"5084:76:139","statements":[{"nodeType":"YulAssignment","src":"5094:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5106:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5117:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5102:3:139"},"nodeType":"YulFunctionCall","src":"5102:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5094:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5136:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5147:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5129:6:139"},"nodeType":"YulFunctionCall","src":"5129:25:139"},"nodeType":"YulExpressionStatement","src":"5129:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5053:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5064:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5075:4:139","type":""}],"src":"4983:177:139"},{"body":{"nodeType":"YulBlock","src":"5350:232:139","statements":[{"nodeType":"YulAssignment","src":"5360:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5372:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5383:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5368:3:139"},"nodeType":"YulFunctionCall","src":"5368:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5360:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5403:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5414:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5396:6:139"},"nodeType":"YulFunctionCall","src":"5396:25:139"},"nodeType":"YulExpressionStatement","src":"5396:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5441:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5452:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5437:3:139"},"nodeType":"YulFunctionCall","src":"5437:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5461:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5477:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5482:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5473:3:139"},"nodeType":"YulFunctionCall","src":"5473:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5486:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5469:3:139"},"nodeType":"YulFunctionCall","src":"5469:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5457:3:139"},"nodeType":"YulFunctionCall","src":"5457:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5430:6:139"},"nodeType":"YulFunctionCall","src":"5430:60:139"},"nodeType":"YulExpressionStatement","src":"5430:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5510:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5521:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5506:3:139"},"nodeType":"YulFunctionCall","src":"5506:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5526:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5499:6:139"},"nodeType":"YulFunctionCall","src":"5499:34:139"},"nodeType":"YulExpressionStatement","src":"5499:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5553:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5564:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5549:3:139"},"nodeType":"YulFunctionCall","src":"5549:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"5569:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5542:6:139"},"nodeType":"YulFunctionCall","src":"5542:34:139"},"nodeType":"YulExpressionStatement","src":"5542:34:139"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5295:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5306:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5314:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5322:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5330:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5341:4:139","type":""}],"src":"5165:417:139"},{"body":{"nodeType":"YulBlock","src":"5800:276:139","statements":[{"nodeType":"YulAssignment","src":"5810:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5822:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5833:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5818:3:139"},"nodeType":"YulFunctionCall","src":"5818:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5810:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5853:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5864:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5846:6:139"},"nodeType":"YulFunctionCall","src":"5846:25:139"},"nodeType":"YulExpressionStatement","src":"5846:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5891:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5902:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5887:3:139"},"nodeType":"YulFunctionCall","src":"5887:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5907:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5880:6:139"},"nodeType":"YulFunctionCall","src":"5880:34:139"},"nodeType":"YulExpressionStatement","src":"5880:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5934:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5945:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5930:3:139"},"nodeType":"YulFunctionCall","src":"5930:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5950:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5923:6:139"},"nodeType":"YulFunctionCall","src":"5923:34:139"},"nodeType":"YulExpressionStatement","src":"5923:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5977:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5988:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5973:3:139"},"nodeType":"YulFunctionCall","src":"5973:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"5993:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5966:6:139"},"nodeType":"YulFunctionCall","src":"5966:34:139"},"nodeType":"YulExpressionStatement","src":"5966:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6020:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6031:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6016:3:139"},"nodeType":"YulFunctionCall","src":"6016:19:139"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6041:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6057:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6062:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6053:3:139"},"nodeType":"YulFunctionCall","src":"6053:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6066:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6049:3:139"},"nodeType":"YulFunctionCall","src":"6049:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6037:3:139"},"nodeType":"YulFunctionCall","src":"6037:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6009:6:139"},"nodeType":"YulFunctionCall","src":"6009:61:139"},"nodeType":"YulExpressionStatement","src":"6009:61:139"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5737:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5748:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5756:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5764:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5772:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5780:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5791:4:139","type":""}],"src":"5587:489:139"},{"body":{"nodeType":"YulBlock","src":"6262:217:139","statements":[{"nodeType":"YulAssignment","src":"6272:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6284:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6295:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6280:3:139"},"nodeType":"YulFunctionCall","src":"6280:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6272:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6315:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6326:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6308:6:139"},"nodeType":"YulFunctionCall","src":"6308:25:139"},"nodeType":"YulExpressionStatement","src":"6308:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6353:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6364:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6349:3:139"},"nodeType":"YulFunctionCall","src":"6349:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6373:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6381:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6369:3:139"},"nodeType":"YulFunctionCall","src":"6369:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6342:6:139"},"nodeType":"YulFunctionCall","src":"6342:45:139"},"nodeType":"YulExpressionStatement","src":"6342:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6407:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6418:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6403:3:139"},"nodeType":"YulFunctionCall","src":"6403:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"6423:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6396:6:139"},"nodeType":"YulFunctionCall","src":"6396:34:139"},"nodeType":"YulExpressionStatement","src":"6396:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6450:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6461:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6446:3:139"},"nodeType":"YulFunctionCall","src":"6446:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"6466:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6439:6:139"},"nodeType":"YulFunctionCall","src":"6439:34:139"},"nodeType":"YulExpressionStatement","src":"6439:34:139"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6207:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6218:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6226:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6234:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6242:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6253:4:139","type":""}],"src":"6081:398:139"},{"body":{"nodeType":"YulBlock","src":"6604:102:139","statements":[{"nodeType":"YulAssignment","src":"6614:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6626:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6637:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6622:3:139"},"nodeType":"YulFunctionCall","src":"6622:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6614:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6656:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6671:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6687:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6692:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6683:3:139"},"nodeType":"YulFunctionCall","src":"6683:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6696:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6679:3:139"},"nodeType":"YulFunctionCall","src":"6679:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6667:3:139"},"nodeType":"YulFunctionCall","src":"6667:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6649:6:139"},"nodeType":"YulFunctionCall","src":"6649:51:139"},"nodeType":"YulExpressionStatement","src":"6649:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6573:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6584:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6595:4:139","type":""}],"src":"6484:222:139"},{"body":{"nodeType":"YulBlock","src":"6832:262:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6849:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6860:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6842:6:139"},"nodeType":"YulFunctionCall","src":"6842:21:139"},"nodeType":"YulExpressionStatement","src":"6842:21:139"},{"nodeType":"YulVariableDeclaration","src":"6872:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6892:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6886:5:139"},"nodeType":"YulFunctionCall","src":"6886:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6876:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6919:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6930:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6915:3:139"},"nodeType":"YulFunctionCall","src":"6915:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"6935:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6908:6:139"},"nodeType":"YulFunctionCall","src":"6908:34:139"},"nodeType":"YulExpressionStatement","src":"6908:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6977:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6985:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6973:3:139"},"nodeType":"YulFunctionCall","src":"6973:15:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6994:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7005:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6990:3:139"},"nodeType":"YulFunctionCall","src":"6990:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"7010:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6951:21:139"},"nodeType":"YulFunctionCall","src":"6951:66:139"},"nodeType":"YulExpressionStatement","src":"6951:66:139"},{"nodeType":"YulAssignment","src":"7026:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7042:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7061:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7069:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7057:3:139"},"nodeType":"YulFunctionCall","src":"7057:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7078:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7074:3:139"},"nodeType":"YulFunctionCall","src":"7074:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7053:3:139"},"nodeType":"YulFunctionCall","src":"7053:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7038:3:139"},"nodeType":"YulFunctionCall","src":"7038:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"7085:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7034:3:139"},"nodeType":"YulFunctionCall","src":"7034:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7026:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6801:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6812:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6823:4:139","type":""}],"src":"6711:383:139"},{"body":{"nodeType":"YulBlock","src":"7273:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7290:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7301:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7283:6:139"},"nodeType":"YulFunctionCall","src":"7283:21:139"},"nodeType":"YulExpressionStatement","src":"7283:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7324:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7335:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7320:3:139"},"nodeType":"YulFunctionCall","src":"7320:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7340:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7313:6:139"},"nodeType":"YulFunctionCall","src":"7313:30:139"},"nodeType":"YulExpressionStatement","src":"7313:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7363:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7374:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7359:3:139"},"nodeType":"YulFunctionCall","src":"7359:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7379:26:139","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7352:6:139"},"nodeType":"YulFunctionCall","src":"7352:54:139"},"nodeType":"YulExpressionStatement","src":"7352:54:139"},{"nodeType":"YulAssignment","src":"7415:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7427:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7438:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7423:3:139"},"nodeType":"YulFunctionCall","src":"7423:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7415:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7250:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7264:4:139","type":""}],"src":"7099:348:139"},{"body":{"nodeType":"YulBlock","src":"7626:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7643:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7654:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7636:6:139"},"nodeType":"YulFunctionCall","src":"7636:21:139"},"nodeType":"YulExpressionStatement","src":"7636:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7677:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7688:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7673:3:139"},"nodeType":"YulFunctionCall","src":"7673:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7693:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7666:6:139"},"nodeType":"YulFunctionCall","src":"7666:30:139"},"nodeType":"YulExpressionStatement","src":"7666:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7716:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7727:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7712:3:139"},"nodeType":"YulFunctionCall","src":"7712:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7732:34:139","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7705:6:139"},"nodeType":"YulFunctionCall","src":"7705:62:139"},"nodeType":"YulExpressionStatement","src":"7705:62:139"},{"nodeType":"YulAssignment","src":"7776:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7788:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7799:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7784:3:139"},"nodeType":"YulFunctionCall","src":"7784:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7776:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7603:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7617:4:139","type":""}],"src":"7452:356:139"},{"body":{"nodeType":"YulBlock","src":"7987:170:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8004:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8015:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7997:6:139"},"nodeType":"YulFunctionCall","src":"7997:21:139"},"nodeType":"YulExpressionStatement","src":"7997:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8038:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8049:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8034:3:139"},"nodeType":"YulFunctionCall","src":"8034:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8054:2:139","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8027:6:139"},"nodeType":"YulFunctionCall","src":"8027:30:139"},"nodeType":"YulExpressionStatement","src":"8027:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8077:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8088:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8073:3:139"},"nodeType":"YulFunctionCall","src":"8073:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8093:22:139","type":"","value":"Votes: invalid nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8066:6:139"},"nodeType":"YulFunctionCall","src":"8066:50:139"},"nodeType":"YulExpressionStatement","src":"8066:50:139"},{"nodeType":"YulAssignment","src":"8125:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8137:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8148:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8133:3:139"},"nodeType":"YulFunctionCall","src":"8133:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8125:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_13ff7ccc79996334a065c9426876e6554e1ae6a3f574e0ced02fc6062a794b0c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7964:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7978:4:139","type":""}],"src":"7813:344:139"},{"body":{"nodeType":"YulBlock","src":"8336:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8353:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8364:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8346:6:139"},"nodeType":"YulFunctionCall","src":"8346:21:139"},"nodeType":"YulExpressionStatement","src":"8346:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8387:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8398:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8383:3:139"},"nodeType":"YulFunctionCall","src":"8383:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8403:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8376:6:139"},"nodeType":"YulFunctionCall","src":"8376:30:139"},"nodeType":"YulExpressionStatement","src":"8376:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8426:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8437:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8422:3:139"},"nodeType":"YulFunctionCall","src":"8422:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8442:33:139","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8415:6:139"},"nodeType":"YulFunctionCall","src":"8415:61:139"},"nodeType":"YulExpressionStatement","src":"8415:61:139"},{"nodeType":"YulAssignment","src":"8485:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8497:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8508:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8493:3:139"},"nodeType":"YulFunctionCall","src":"8493:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8485:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8313:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8327:4:139","type":""}],"src":"8162:355:139"},{"body":{"nodeType":"YulBlock","src":"8696:157:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8713:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8724:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8706:6:139"},"nodeType":"YulFunctionCall","src":"8706:21:139"},"nodeType":"YulExpressionStatement","src":"8706:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8747:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8758:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8743:3:139"},"nodeType":"YulFunctionCall","src":"8743:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8763:1:139","type":"","value":"8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8736:6:139"},"nodeType":"YulFunctionCall","src":"8736:29:139"},"nodeType":"YulExpressionStatement","src":"8736:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8785:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8796:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8781:3:139"},"nodeType":"YulFunctionCall","src":"8781:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8801:10:139","type":"","value":"attached"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8774:6:139"},"nodeType":"YulFunctionCall","src":"8774:38:139"},"nodeType":"YulExpressionStatement","src":"8774:38:139"},{"nodeType":"YulAssignment","src":"8821:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8833:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8844:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8829:3:139"},"nodeType":"YulFunctionCall","src":"8829:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8821:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_34d973a22471465a9c64a4222e0e7d8bed4617e72f1a613664553e7a7ba70bc6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8673:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8687:4:139","type":""}],"src":"8522:331:139"},{"body":{"nodeType":"YulBlock","src":"9032:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9049:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9060:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9042:6:139"},"nodeType":"YulFunctionCall","src":"9042:21:139"},"nodeType":"YulExpressionStatement","src":"9042:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9083:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9094:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9079:3:139"},"nodeType":"YulFunctionCall","src":"9079:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9099:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9072:6:139"},"nodeType":"YulFunctionCall","src":"9072:30:139"},"nodeType":"YulExpressionStatement","src":"9072:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9122:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9133:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9118:3:139"},"nodeType":"YulFunctionCall","src":"9118:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9138:34:139","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9111:6:139"},"nodeType":"YulFunctionCall","src":"9111:62:139"},"nodeType":"YulExpressionStatement","src":"9111:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9193:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9204:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9189:3:139"},"nodeType":"YulFunctionCall","src":"9189:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9209:4:139","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9182:6:139"},"nodeType":"YulFunctionCall","src":"9182:32:139"},"nodeType":"YulExpressionStatement","src":"9182:32:139"},{"nodeType":"YulAssignment","src":"9223:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9235:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9246:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9231:3:139"},"nodeType":"YulFunctionCall","src":"9231:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9223:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9009:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9023:4:139","type":""}],"src":"8858:398:139"},{"body":{"nodeType":"YulBlock","src":"9435:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9452:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9463:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9445:6:139"},"nodeType":"YulFunctionCall","src":"9445:21:139"},"nodeType":"YulExpressionStatement","src":"9445:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9486:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9497:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9482:3:139"},"nodeType":"YulFunctionCall","src":"9482:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9502:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9475:6:139"},"nodeType":"YulFunctionCall","src":"9475:30:139"},"nodeType":"YulExpressionStatement","src":"9475:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9525:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9536:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9521:3:139"},"nodeType":"YulFunctionCall","src":"9521:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9541:34:139","type":"","value":"Checkpoints: block not yet mined"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9514:6:139"},"nodeType":"YulFunctionCall","src":"9514:62:139"},"nodeType":"YulExpressionStatement","src":"9514:62:139"},{"nodeType":"YulAssignment","src":"9585:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9597:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9608:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9593:3:139"},"nodeType":"YulFunctionCall","src":"9593:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9585:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9412:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9426:4:139","type":""}],"src":"9261:356:139"},{"body":{"nodeType":"YulBlock","src":"9796:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9813:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9824:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9806:6:139"},"nodeType":"YulFunctionCall","src":"9806:21:139"},"nodeType":"YulExpressionStatement","src":"9806:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9847:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9858:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9843:3:139"},"nodeType":"YulFunctionCall","src":"9843:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9863:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9836:6:139"},"nodeType":"YulFunctionCall","src":"9836:30:139"},"nodeType":"YulExpressionStatement","src":"9836:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9886:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9897:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9882:3:139"},"nodeType":"YulFunctionCall","src":"9882:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9902:26:139","type":"","value":"Votes: signature expired"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9875:6:139"},"nodeType":"YulFunctionCall","src":"9875:54:139"},"nodeType":"YulExpressionStatement","src":"9875:54:139"},{"nodeType":"YulAssignment","src":"9938:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9950:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9961:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9946:3:139"},"nodeType":"YulFunctionCall","src":"9946:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9938:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d5ff3f347872d51f9a2d63fc6e49268c6b2f830105a4897008d3883d68bc66f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9773:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9787:4:139","type":""}],"src":"9622:348:139"},{"body":{"nodeType":"YulBlock","src":"10149:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10166:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10177:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10159:6:139"},"nodeType":"YulFunctionCall","src":"10159:21:139"},"nodeType":"YulExpressionStatement","src":"10159:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10200:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10211:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10196:3:139"},"nodeType":"YulFunctionCall","src":"10196:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10216:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10189:6:139"},"nodeType":"YulFunctionCall","src":"10189:30:139"},"nodeType":"YulExpressionStatement","src":"10189:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10239:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10250:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10235:3:139"},"nodeType":"YulFunctionCall","src":"10235:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10255:12:139","type":"","value":"not locker"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10228:6:139"},"nodeType":"YulFunctionCall","src":"10228:40:139"},"nodeType":"YulExpressionStatement","src":"10228:40:139"},{"nodeType":"YulAssignment","src":"10277:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10289:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10300:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10285:3:139"},"nodeType":"YulFunctionCall","src":"10285:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10277:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_734825a39fbb7ac31bdc2cdfafda8d851d9d880f78ef2a131a023ecdbe007ee8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10126:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10140:4:139","type":""}],"src":"9975:334:139"},{"body":{"nodeType":"YulBlock","src":"10488:176:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10505:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10516:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10498:6:139"},"nodeType":"YulFunctionCall","src":"10498:21:139"},"nodeType":"YulExpressionStatement","src":"10498:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10539:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10550:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10535:3:139"},"nodeType":"YulFunctionCall","src":"10535:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10555:2:139","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10528:6:139"},"nodeType":"YulFunctionCall","src":"10528:30:139"},"nodeType":"YulExpressionStatement","src":"10528:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10578:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10589:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10574:3:139"},"nodeType":"YulFunctionCall","src":"10574:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10594:28:139","type":"","value":"Votes: block not yet mined"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10567:6:139"},"nodeType":"YulFunctionCall","src":"10567:56:139"},"nodeType":"YulExpressionStatement","src":"10567:56:139"},{"nodeType":"YulAssignment","src":"10632:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10644:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10655:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10640:3:139"},"nodeType":"YulFunctionCall","src":"10640:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10632:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_83c09804cf777c619c7ba082380b263866073c54e541883e3b7cb00a4aa7fe69__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10465:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10479:4:139","type":""}],"src":"10314:350:139"},{"body":{"nodeType":"YulBlock","src":"10843:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10860:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10871:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10853:6:139"},"nodeType":"YulFunctionCall","src":"10853:21:139"},"nodeType":"YulExpressionStatement","src":"10853:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10894:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10905:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10890:3:139"},"nodeType":"YulFunctionCall","src":"10890:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10910:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10883:6:139"},"nodeType":"YulFunctionCall","src":"10883:30:139"},"nodeType":"YulExpressionStatement","src":"10883:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10933:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10944:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10929:3:139"},"nodeType":"YulFunctionCall","src":"10929:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10949:34:139","type":"","value":"ECDSA: invalid signature 'v' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10922:6:139"},"nodeType":"YulFunctionCall","src":"10922:62:139"},"nodeType":"YulExpressionStatement","src":"10922:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11004:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11015:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11000:3:139"},"nodeType":"YulFunctionCall","src":"11000:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11020:4:139","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10993:6:139"},"nodeType":"YulFunctionCall","src":"10993:32:139"},"nodeType":"YulExpressionStatement","src":"10993:32:139"},{"nodeType":"YulAssignment","src":"11034:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11046:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11057:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11042:3:139"},"nodeType":"YulFunctionCall","src":"11042:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11034:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10820:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10834:4:139","type":""}],"src":"10669:398:139"},{"body":{"nodeType":"YulBlock","src":"11246:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11263:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11274:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11256:6:139"},"nodeType":"YulFunctionCall","src":"11256:21:139"},"nodeType":"YulExpressionStatement","src":"11256:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11297:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11308:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11293:3:139"},"nodeType":"YulFunctionCall","src":"11293:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11313:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11286:6:139"},"nodeType":"YulFunctionCall","src":"11286:30:139"},"nodeType":"YulExpressionStatement","src":"11286:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11336:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11347:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11332:3:139"},"nodeType":"YulFunctionCall","src":"11332:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11352:12:139","type":"","value":"not staked"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11325:6:139"},"nodeType":"YulFunctionCall","src":"11325:40:139"},"nodeType":"YulExpressionStatement","src":"11325:40:139"},{"nodeType":"YulAssignment","src":"11374:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11386:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11397:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11382:3:139"},"nodeType":"YulFunctionCall","src":"11382:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11374:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8d1fe892c4e34e50852d9473d3c9854eedeef3b324fbe99dc34a39c1c505db12__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11223:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11237:4:139","type":""}],"src":"11072:334:139"},{"body":{"nodeType":"YulBlock","src":"11585:229:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11602:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11613:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11595:6:139"},"nodeType":"YulFunctionCall","src":"11595:21:139"},"nodeType":"YulExpressionStatement","src":"11595:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11636:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11647:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11632:3:139"},"nodeType":"YulFunctionCall","src":"11632:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11652:2:139","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11625:6:139"},"nodeType":"YulFunctionCall","src":"11625:30:139"},"nodeType":"YulExpressionStatement","src":"11625:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11675:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11686:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11671:3:139"},"nodeType":"YulFunctionCall","src":"11671:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11691:34:139","type":"","value":"SafeCast: value doesn't fit in 2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11664:6:139"},"nodeType":"YulFunctionCall","src":"11664:62:139"},"nodeType":"YulExpressionStatement","src":"11664:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11746:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11757:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11742:3:139"},"nodeType":"YulFunctionCall","src":"11742:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11762:9:139","type":"","value":"24 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11735:6:139"},"nodeType":"YulFunctionCall","src":"11735:37:139"},"nodeType":"YulExpressionStatement","src":"11735:37:139"},{"nodeType":"YulAssignment","src":"11781:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11793:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11804:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11789:3:139"},"nodeType":"YulFunctionCall","src":"11789:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11781:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11562:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11576:4:139","type":""}],"src":"11411:403:139"},{"body":{"nodeType":"YulBlock","src":"11993:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12010:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12021:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12003:6:139"},"nodeType":"YulFunctionCall","src":"12003:21:139"},"nodeType":"YulExpressionStatement","src":"12003:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12044:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12055:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12040:3:139"},"nodeType":"YulFunctionCall","src":"12040:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12060:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12033:6:139"},"nodeType":"YulFunctionCall","src":"12033:30:139"},"nodeType":"YulExpressionStatement","src":"12033:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12083:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12094:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12079:3:139"},"nodeType":"YulFunctionCall","src":"12079:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12099:34:139","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12072:6:139"},"nodeType":"YulFunctionCall","src":"12072:62:139"},"nodeType":"YulExpressionStatement","src":"12072:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12154:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12165:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12150:3:139"},"nodeType":"YulFunctionCall","src":"12150:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12170:8:139","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12143:6:139"},"nodeType":"YulFunctionCall","src":"12143:36:139"},"nodeType":"YulExpressionStatement","src":"12143:36:139"},{"nodeType":"YulAssignment","src":"12188:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12200:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12211:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12196:3:139"},"nodeType":"YulFunctionCall","src":"12196:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12188:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11970:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11984:4:139","type":""}],"src":"11819:402:139"},{"body":{"nodeType":"YulBlock","src":"12400:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12417:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12428:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12410:6:139"},"nodeType":"YulFunctionCall","src":"12410:21:139"},"nodeType":"YulExpressionStatement","src":"12410:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12451:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12462:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12447:3:139"},"nodeType":"YulFunctionCall","src":"12447:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12467:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12440:6:139"},"nodeType":"YulFunctionCall","src":"12440:30:139"},"nodeType":"YulExpressionStatement","src":"12440:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12490:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12501:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12486:3:139"},"nodeType":"YulFunctionCall","src":"12486:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12506:16:139","type":"","value":"already staked"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12479:6:139"},"nodeType":"YulFunctionCall","src":"12479:44:139"},"nodeType":"YulExpressionStatement","src":"12479:44:139"},{"nodeType":"YulAssignment","src":"12532:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12544:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12555:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12540:3:139"},"nodeType":"YulFunctionCall","src":"12540:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12532:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f48e9ee35b4b58fa13482d62c181c78b90904a6bafe3530d970f9a6bf221977e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12377:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12391:4:139","type":""}],"src":"12226:338:139"},{"body":{"nodeType":"YulBlock","src":"12743:237:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12760:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12771:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12753:6:139"},"nodeType":"YulFunctionCall","src":"12753:21:139"},"nodeType":"YulExpressionStatement","src":"12753:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12794:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12805:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12790:3:139"},"nodeType":"YulFunctionCall","src":"12790:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12810:2:139","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12783:6:139"},"nodeType":"YulFunctionCall","src":"12783:30:139"},"nodeType":"YulExpressionStatement","src":"12783:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12833:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12844:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12829:3:139"},"nodeType":"YulFunctionCall","src":"12829:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12849:34:139","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12822:6:139"},"nodeType":"YulFunctionCall","src":"12822:62:139"},"nodeType":"YulExpressionStatement","src":"12822:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12904:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12915:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12900:3:139"},"nodeType":"YulFunctionCall","src":"12900:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12920:17:139","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12893:6:139"},"nodeType":"YulFunctionCall","src":"12893:45:139"},"nodeType":"YulExpressionStatement","src":"12893:45:139"},{"nodeType":"YulAssignment","src":"12947:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12959:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12970:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12955:3:139"},"nodeType":"YulFunctionCall","src":"12955:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12947:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12720:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12734:4:139","type":""}],"src":"12569:411:139"},{"body":{"nodeType":"YulBlock","src":"13159:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13176:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13187:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13169:6:139"},"nodeType":"YulFunctionCall","src":"13169:21:139"},"nodeType":"YulExpressionStatement","src":"13169:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13210:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13221:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13206:3:139"},"nodeType":"YulFunctionCall","src":"13206:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13226:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13199:6:139"},"nodeType":"YulFunctionCall","src":"13199:30:139"},"nodeType":"YulExpressionStatement","src":"13199:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13249:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13260:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13245:3:139"},"nodeType":"YulFunctionCall","src":"13245:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"13265:17:139","type":"","value":"not token owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13238:6:139"},"nodeType":"YulFunctionCall","src":"13238:45:139"},"nodeType":"YulExpressionStatement","src":"13238:45:139"},{"nodeType":"YulAssignment","src":"13292:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13304:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13315:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13300:3:139"},"nodeType":"YulFunctionCall","src":"13300:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13292:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13136:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13150:4:139","type":""}],"src":"12985:339:139"},{"body":{"nodeType":"YulBlock","src":"13430:76:139","statements":[{"nodeType":"YulAssignment","src":"13440:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13452:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13463:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13448:3:139"},"nodeType":"YulFunctionCall","src":"13448:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13440:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13482:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"13493:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13475:6:139"},"nodeType":"YulFunctionCall","src":"13475:25:139"},"nodeType":"YulExpressionStatement","src":"13475:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13399:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13410:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13421:4:139","type":""}],"src":"13329:177:139"},{"body":{"nodeType":"YulBlock","src":"13640:119:139","statements":[{"nodeType":"YulAssignment","src":"13650:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13662:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13673:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13658:3:139"},"nodeType":"YulFunctionCall","src":"13658:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13650:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13692:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"13703:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13685:6:139"},"nodeType":"YulFunctionCall","src":"13685:25:139"},"nodeType":"YulExpressionStatement","src":"13685:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13730:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13741:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13726:3:139"},"nodeType":"YulFunctionCall","src":"13726:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"13746:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13719:6:139"},"nodeType":"YulFunctionCall","src":"13719:34:139"},"nodeType":"YulExpressionStatement","src":"13719:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13601:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13612:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13620:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13631:4:139","type":""}],"src":"13511:248:139"},{"body":{"nodeType":"YulBlock","src":"13861:87:139","statements":[{"nodeType":"YulAssignment","src":"13871:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13883:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13894:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13879:3:139"},"nodeType":"YulFunctionCall","src":"13879:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13871:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13913:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13928:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"13936:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13924:3:139"},"nodeType":"YulFunctionCall","src":"13924:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13906:6:139"},"nodeType":"YulFunctionCall","src":"13906:36:139"},"nodeType":"YulExpressionStatement","src":"13906:36:139"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13830:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13841:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13852:4:139","type":""}],"src":"13764:184:139"},{"body":{"nodeType":"YulBlock","src":"14001:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"14028:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14030:16:139"},"nodeType":"YulFunctionCall","src":"14030:18:139"},"nodeType":"YulExpressionStatement","src":"14030:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14017:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14024:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14020:3:139"},"nodeType":"YulFunctionCall","src":"14020:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14014:2:139"},"nodeType":"YulFunctionCall","src":"14014:13:139"},"nodeType":"YulIf","src":"14011:2:139"},{"nodeType":"YulAssignment","src":"14059:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14070:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"14073:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14066:3:139"},"nodeType":"YulFunctionCall","src":"14066:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14059:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13984:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"13987:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"13993:3:139","type":""}],"src":"13953:128:139"},{"body":{"nodeType":"YulBlock","src":"14132:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"14163:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"14184:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14191:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14196:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14187:3:139"},"nodeType":"YulFunctionCall","src":"14187:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14177:6:139"},"nodeType":"YulFunctionCall","src":"14177:31:139"},"nodeType":"YulExpressionStatement","src":"14177:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14228:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14231:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14221:6:139"},"nodeType":"YulFunctionCall","src":"14221:15:139"},"nodeType":"YulExpressionStatement","src":"14221:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"14256:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"14259:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14249:6:139"},"nodeType":"YulFunctionCall","src":"14249:15:139"},"nodeType":"YulExpressionStatement","src":"14249:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14152:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14145:6:139"},"nodeType":"YulFunctionCall","src":"14145:9:139"},"nodeType":"YulIf","src":"14142:2:139"},{"nodeType":"YulAssignment","src":"14283:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14292:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"14295:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14288:3:139"},"nodeType":"YulFunctionCall","src":"14288:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"14283:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14117:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"14120:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"14126:1:139","type":""}],"src":"14086:217:139"},{"body":{"nodeType":"YulBlock","src":"14360:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"14419:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14421:16:139"},"nodeType":"YulFunctionCall","src":"14421:18:139"},"nodeType":"YulExpressionStatement","src":"14421:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14391:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14384:6:139"},"nodeType":"YulFunctionCall","src":"14384:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14377:6:139"},"nodeType":"YulFunctionCall","src":"14377:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14399:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14410:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14406:3:139"},"nodeType":"YulFunctionCall","src":"14406:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"14414:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14402:3:139"},"nodeType":"YulFunctionCall","src":"14402:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14396:2:139"},"nodeType":"YulFunctionCall","src":"14396:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14373:3:139"},"nodeType":"YulFunctionCall","src":"14373:45:139"},"nodeType":"YulIf","src":"14370:2:139"},{"nodeType":"YulAssignment","src":"14450:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14465:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"14468:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"14461:3:139"},"nodeType":"YulFunctionCall","src":"14461:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"14450:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14339:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"14342:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"14348:7:139","type":""}],"src":"14308:168:139"},{"body":{"nodeType":"YulBlock","src":"14530:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"14552:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14554:16:139"},"nodeType":"YulFunctionCall","src":"14554:18:139"},"nodeType":"YulExpressionStatement","src":"14554:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14546:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"14549:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14543:2:139"},"nodeType":"YulFunctionCall","src":"14543:8:139"},"nodeType":"YulIf","src":"14540:2:139"},{"nodeType":"YulAssignment","src":"14583:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14595:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"14598:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14591:3:139"},"nodeType":"YulFunctionCall","src":"14591:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"14583:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14512:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"14515:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"14521:4:139","type":""}],"src":"14481:125:139"},{"body":{"nodeType":"YulBlock","src":"14664:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"14674:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"14683:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14678:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"14743:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14768:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"14773:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14764:3:139"},"nodeType":"YulFunctionCall","src":"14764:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14787:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"14792:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14783:3:139"},"nodeType":"YulFunctionCall","src":"14783:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14777:5:139"},"nodeType":"YulFunctionCall","src":"14777:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14757:6:139"},"nodeType":"YulFunctionCall","src":"14757:39:139"},"nodeType":"YulExpressionStatement","src":"14757:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14704:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"14707:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14701:2:139"},"nodeType":"YulFunctionCall","src":"14701:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14715:19:139","statements":[{"nodeType":"YulAssignment","src":"14717:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14726:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"14729:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14722:3:139"},"nodeType":"YulFunctionCall","src":"14722:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14717:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"14697:3:139","statements":[]},"src":"14693:113:139"},{"body":{"nodeType":"YulBlock","src":"14832:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14845:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"14850:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14841:3:139"},"nodeType":"YulFunctionCall","src":"14841:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"14859:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14834:6:139"},"nodeType":"YulFunctionCall","src":"14834:27:139"},"nodeType":"YulExpressionStatement","src":"14834:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14821:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"14824:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14818:2:139"},"nodeType":"YulFunctionCall","src":"14818:13:139"},"nodeType":"YulIf","src":"14815:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"14642:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"14647:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"14652:6:139","type":""}],"src":"14611:258:139"},{"body":{"nodeType":"YulBlock","src":"14921:89:139","statements":[{"body":{"nodeType":"YulBlock","src":"14948:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14950:16:139"},"nodeType":"YulFunctionCall","src":"14950:18:139"},"nodeType":"YulExpressionStatement","src":"14950:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14941:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14934:6:139"},"nodeType":"YulFunctionCall","src":"14934:13:139"},"nodeType":"YulIf","src":"14931:2:139"},{"nodeType":"YulAssignment","src":"14979:25:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14990:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15001:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14997:3:139"},"nodeType":"YulFunctionCall","src":"14997:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14986:3:139"},"nodeType":"YulFunctionCall","src":"14986:18:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14979:3:139"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14903:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14913:3:139","type":""}],"src":"14874:136:139"},{"body":{"nodeType":"YulBlock","src":"15047:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15064:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15071:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15076:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15067:3:139"},"nodeType":"YulFunctionCall","src":"15067:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15057:6:139"},"nodeType":"YulFunctionCall","src":"15057:31:139"},"nodeType":"YulExpressionStatement","src":"15057:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15104:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15107:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15097:6:139"},"nodeType":"YulFunctionCall","src":"15097:15:139"},"nodeType":"YulExpressionStatement","src":"15097:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15128:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15131:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15121:6:139"},"nodeType":"YulFunctionCall","src":"15121:15:139"},"nodeType":"YulExpressionStatement","src":"15121:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"15015:127:139"},{"body":{"nodeType":"YulBlock","src":"15192:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"15256:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15265:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15268:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15258:6:139"},"nodeType":"YulFunctionCall","src":"15258:12:139"},"nodeType":"YulExpressionStatement","src":"15258:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15215:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15226:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15241:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15246:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15237:3:139"},"nodeType":"YulFunctionCall","src":"15237:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"15250:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15233:3:139"},"nodeType":"YulFunctionCall","src":"15233:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15222:3:139"},"nodeType":"YulFunctionCall","src":"15222:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15212:2:139"},"nodeType":"YulFunctionCall","src":"15212:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15205:6:139"},"nodeType":"YulFunctionCall","src":"15205:50:139"},"nodeType":"YulIf","src":"15202:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15181:5:139","type":""}],"src":"15147:131:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let value_1 := calldataload(add(headStart, 96))\n        if iszero(eq(value_1, and(value_1, 0xff))) { revert(value4, value4) }\n        value3 := value_1\n        value4 := calldataload(add(headStart, 128))\n        value5 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, shl(240, 6401))\n        mstore(add(pos, 2), value0)\n        mstore(add(pos, 34), value1)\n        end := add(pos, 66)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_13ff7ccc79996334a065c9426876e6554e1ae6a3f574e0ced02fc6062a794b0c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Votes: invalid nonce\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_34d973a22471465a9c64a4222e0e7d8bed4617e72f1a613664553e7a7ba70bc6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 8)\n        mstore(add(headStart, 64), \"attached\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Checkpoints: block not yet mined\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d5ff3f347872d51f9a2d63fc6e49268c6b2f830105a4897008d3883d68bc66f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Votes: signature expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_734825a39fbb7ac31bdc2cdfafda8d851d9d880f78ef2a131a023ecdbe007ee8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"not locker\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_83c09804cf777c619c7ba082380b263866073c54e541883e3b7cb00a4aa7fe69__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Votes: block not yet mined\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 'v' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8d1fe892c4e34e50852d9473d3c9854eedeef3b324fbe99dc34a39c1c505db12__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"not staked\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 2\")\n        mstore(add(headStart, 96), \"24 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f48e9ee35b4b58fa13482d62c181c78b90904a6bafe3530d970f9a6bf221977e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"already staked\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"not token owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9665":[{"length":32,"start":4622}],"9667":[{"length":32,"start":4580}],"9669":[{"length":32,"start":4538}],"9671":[{"length":32,"start":4705}],"9673":[{"length":32,"start":4742}],"9675":[{"length":32,"start":4663}],"19458":[{"length":32,"start":951},{"length":32,"start":1330},{"length":32,"start":1490},{"length":32,"start":2427},{"length":32,"start":2926},{"length":32,"start":3637},{"length":32,"start":3983},{"length":32,"start":5469},{"length":32,"start":5586}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101c65760003560e01c806370a08231116100fa57806395d89b411161009d57806395d89b411461044157806396c82e57146104645780639ab24eb01461037f578063a217fddf1461046d578063a694fc3a14610475578063baa51f8614610488578063c3cda5201461049b578063d547741f146104ae578063e7a324dc146104c157600080fd5b806370a082311461037f57806379f250c9146103925780637b103999146103b25780637ecebe00146103d95780638dd6878b146103ec5780638e539e8c146103f457806391d148541461040757806394aa08fb1461041a57600080fd5b80633644e5151161016d5780633644e515146102c257806336568abe146102ca5780633a02a42d146102dd5780633a46b1a8146103065780633ab958fc14610319578063487c8aa714610326578063587cde1e146103395780635c19a95c14610359578063630b4b901461036c57600080fd5b806301ffc9a7146101cb57806306fdde03146101f35780631460fa871461023157806318160ddd1461025f578063248a9ca3146102675780632e17de781461028b5780632f2ff15d146102a0578063313ce567146102b3575b600080fd5b6101de6101d93660046123a6565b6104e8565b60405190151581526020015b60405180910390f35b60408051808201909152601981527826a0a420ac1029ba30b5b2b2102b37ba34b733902837bbb2b960391b60208201525b6040516101ea9190612469565b61025161023f36600461227c565b60096020526000908152604090205481565b6040519081526020016101ea565b61025161051f565b61025161027536600461235f565b6000908152600160208190526040909120015490565b61029e61029936600461235f565b61052e565b005b61029e6102ae366004612377565b610842565b604051601281526020016101ea565b61025161086d565b61029e6102d8366004612377565b610877565b6102516102eb36600461227c565b6001600160a01b031660009081526009602052604090205490565b6102516103143660046122b4565b6108f1565b6007546101de9060ff1681565b61029e61033436600461235f565b61091a565b61034c61034736600461227c565b610950565b6040516101ea9190612455565b61029e61036736600461227c565b61096e565b61029e61037a36600461235f565b610979565b61025161038d36600461227c565b610a85565b6102516103a036600461235f565b60086020526000908152604090205481565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b6102516103e736600461227c565b610aa6565b61029e610ac4565b61025161040236600461235f565b610ae3565b6101de610415366004612377565b610b3f565b6102517fcec4caaca6dc71dd44bec893d0eeda5d5a8d93f807f83245eabb2c24c25a43fe81565b60408051808201909152600781526604d4148415876760cc1b6020820152610224565b61025160065481565b610251600081565b61029e61048336600461235f565b610b6a565b6101de61049636600461235f565b610ca3565b61029e6104a93660046122df565b610cb9565b61029e6104bc366004612377565b610dff565b6102517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b60006001600160e01b03198216637965db0b60e01b148061051957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610529610e25565b905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561058957600080fd5b505afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c19190612298565b60075490915060ff1661079b5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190612298565b9050806001600160a01b0316636405eacd836001600160a01b0316636352211e866040518263ffffffff1660e01b81526004016106a091815260200190565b60206040518083038186803b1580156106b857600080fd5b505afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f09190612298565b6040518263ffffffff1660e01b815260040161070c9190612455565b60206040518083038186803b15801561072457600080fd5b505afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c91906123ce565b156107995760405162461bcd60e51b8152602060048201526008602482015267185d1d1858da195960c21b60448201526064015b60405180910390fd5b505b60405163430c208160e01b8152336004820152602481018390526001600160a01b0382169063430c20819060440160206040518083038186803b1580156107e157600080fd5b505afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610819919061233f565b6108355760405162461bcd60e51b81526004016107909061249c565b61083e82610e31565b5050565b6000828152600160208190526040909120015461085e81611138565b6108688383611142565b505050565b60006105296111ad565b6001600160a01b03811633146108e75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610790565b61083e82826112d4565b6001600160a01b0382166000908152600360205260408120610913908361133b565b9392505050565b6109447fcec4caaca6dc71dd44bec893d0eeda5d5a8d93f807f83245eabb2c24c25a43fe33611466565b61094d81610e31565b50565b6001600160a01b039081166000908152600260205260409020541690565b3361083e81836114ca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d257600080fd5b505afa1580156109e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a9190612298565b6001600160a01b0316336001600160a01b031614610a575760405162461bcd60e51b815260206004820152600a6024820152693737ba103637b1b5b2b960b11b6044820152606401610790565b600081815260086020526040902054610a735761094d8161155b565b610a7c81610e31565b61094d8161155b565b6001600160a01b038116600090815260036020526040812061051990611882565b6001600160a01b038116600090815260056020526040812054610519565b610acf600033611466565b6007805460ff19811660ff90911615179055565b6000438210610b345760405162461bcd60e51b815260206004820152601a60248201527f566f7465733a20626c6f636b206e6f7420796574206d696e65640000000000006044820152606401610790565b61051960048361133b565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc557600080fd5b505afa158015610bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfd9190612298565b60405163430c208160e01b8152336004820152602481018490529091506001600160a01b0382169063430c20819060440160206040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e919061233f565b610c9a5760405162461bcd60e51b81526004016107909061249c565b61083e8261155b565b6000818152600860205260408120541515610519565b83421115610d045760405162461bcd60e51b8152602060048201526018602482015277159bdd195cce881cda59db985d1d5c9948195e1c1a5c995960421b6044820152606401610790565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d7e90610d769060a001604051602081830303815290604052805190602001206118ec565b85858561193a565b9050610da7816001600160a01b0316600090815260056020526040902080546001810190915590565b8614610dec5760405162461bcd60e51b8152602060048201526014602482015273566f7465733a20696e76616c6964206e6f6e636560601b6044820152606401610790565b610df681886114ca565b50505050505050565b60008281526001602081905260409091200154610e1b81611138565b61086883836112d4565b60006105296004611882565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8c57600080fd5b505afa158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190612298565b6040516331a9108f60e11b8152600481018490529091506000906001600160a01b03831690636352211e9060240160206040518083038186803b158015610f0a57600080fd5b505afa158015610f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f429190612298565b600084815260086020526040902054909150610f8d5760405162461bcd60e51b815260206004820152600a6024820152691b9bdd081cdd185ad95960b21b6044820152606401610790565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe657600080fd5b505afa158015610ffa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101e9190612298565b6001600160a01b03166320217176826040518263ffffffff1660e01b81526004016110499190612455565b600060405180830381600087803b15801561106357600080fd5b505af1158015611077573d6000803e3d6000fd5b505050600084815260086020526040812054915061109790839083611962565b60008481526008602090815260408083208390556001600160a01b03851683526009909152812080548392906110ce90849061251c565b9250508190555080600660008282546110e7919061251c565b909155505060408051858152602081018390526001600160a01b0384169133917f27157fa484da42f9840cfcb25cad5ed17300f578a34b8d4ceac3ba9d582b37cb910160405180910390a350505050565b61094d8133611466565b61114c8282610b3f565b61083e5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561120657507f000000000000000000000000000000000000000000000000000000000000000046145b1561123057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6112de8282610b3f565b1561083e5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600043821061138c5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610790565b825460005b818110156113ff5760006113a582846119bb565b9050848660000182815481106113cb57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff1611156113eb578092506113f9565b6113f68160016124c5565b91505b50611391565b8115611451578461141160018461251c565b8154811061142f57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316611454565b60005b6001600160e01b031695945050505050565b6114708282610b3f565b61083e57611488816001600160a01b031660146119d6565b6114938360206119d6565b6040516020016114a49291906123e6565b60408051601f198184030181529082905262461bcd60e51b825261079091600401612469565b60006114d583610950565b6001600160a01b0384811660008181526002602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46108688183611556866001600160a01b031660009081526009602052604090205490565b611bb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561162957600080fd5b505afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116619190612298565b600083815260086020526040902054909150156116b15760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481cdd185ad95960921b6044820152606401610790565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03831690636352211e9060240160206040518083038186803b1580156116f457600080fd5b505afa158015611708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172c9190612298565b6040516339f890b560e21b8152600481018590529091506000906001600160a01b0384169063e7e242d49060240160206040518083038186803b15801561177257600080fd5b505afa158015611786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117aa91906123ce565b90506117b860008383611962565b60008481526008602090815260408083208490556001600160a01b03851683526009909152812080548392906117ef9084906124c5565b92505081905550806006600082825461180891906124c5565b909155505060408051858152602081018390526001600160a01b0384169133917fb4f010c1d447300a6996242a1a4b8401b847c25c906beccd1d3ec9e2b504d26c910160405180910390a36001600160a01b038281166000908152600260205260409020541661187c5761187c82836114ca565b50505050565b805460009080156118d9578261189960018361251c565b815481106118b757634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b03166118dc565b60005b6001600160e01b03169392505050565b60006105196118f96111ad565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061194b87878787611d43565b9150915061195881611e26565b5095945050505050565b6001600160a01b0383166119815761197e60046120228361202e565b50505b6001600160a01b0382166119a05761199d600461205c8361202e565b50505b6108686119ac84610950565b6119b584610950565b83611bb8565b60006119ca60028484186124dd565b610913908484166124c5565b606060006119e58360026124fd565b6119f09060026124c5565b67ffffffffffffffff811115611a1657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a40576020820181803683370190505b509050600360fc1b81600081518110611a6957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611aa657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611aca8460026124fd565b611ad59060016124c5565b90505b6001811115611b69576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b1757634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110611b3b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611b628161255f565b9050611ad8565b5083156109135760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610790565b816001600160a01b0316836001600160a01b031614158015611bda5750600081115b15610868576001600160a01b03831615611c68576001600160a01b03831660009081526003602052604081208190611c159061205c8561202e565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611c5d929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611cf1576001600160a01b03821660009081526003602052604081208190611c9e906120228561202e565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611ce6929190918252602082015260400190565b60405180910390a250505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d3691815260200190565b60405180910390a3505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115611d705750600090506003611e1d565b8460ff16601b14158015611d8857508460ff16601c14155b15611d995750600090506004611e1d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611ded573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611e1657600060019250925050611e1d565b9150600090505b94509492505050565b6000816004811115611e4857634e487b7160e01b600052602160045260246000fd5b1415611e515750565b6001816004811115611e7357634e487b7160e01b600052602160045260246000fd5b1415611ebc5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610790565b6002816004811115611ede57634e487b7160e01b600052602160045260246000fd5b1415611f2c5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610790565b6003816004811115611f4e57634e487b7160e01b600052602160045260246000fd5b1415611fa75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610790565b6004816004811115611fc957634e487b7160e01b600052602160045260246000fd5b141561094d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610790565b600061091382846124c5565b6000806120508561204b61204188611882565b868863ffffffff16565b612068565b91509150935093915050565b6000610913828461251c565b815460009081908161207986611882565b90506000821180156120c55750438661209360018561251c565b815481106120b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b15612133576120d3856121aa565b866120df60018561251c565b815481106120fd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506121a1565b85600001604051806040016040528061214b43612217565b63ffffffff16815260200161215f886121aa565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b95939450505050565b60006001600160e01b038211156122135760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610790565b5090565b600063ffffffff8211156122135760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610790565b60006020828403121561228d578081fd5b81356109138161258c565b6000602082840312156122a9578081fd5b81516109138161258c565b600080604083850312156122c6578081fd5b82356122d18161258c565b946020939093013593505050565b60008060008060008060c087890312156122f7578182fd5b86356123028161258c565b95506020870135945060408701359350606087013560ff81168114612325578283fd5b9598949750929560808101359460a0909101359350915050565b600060208284031215612350578081fd5b81518015158114610913578182fd5b600060208284031215612370578081fd5b5035919050565b60008060408385031215612389578182fd5b82359150602083013561239b8161258c565b809150509250929050565b6000602082840312156123b7578081fd5b81356001600160e01b031981168114610913578182fd5b6000602082840312156123df578081fd5b5051919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351612418816017850160208801612533565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612449816028840160208801612533565b01602801949350505050565b6001600160a01b0391909116815260200190565b6020815260008251806020840152612488816040850160208701612533565b601f01601f19169190910160400192915050565b6020808252600f908201526e3737ba103a37b5b2b71037bbb732b960891b604082015260600190565b600082198211156124d8576124d8612576565b500190565b6000826124f857634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561251757612517612576565b500290565b60008282101561252e5761252e612576565b500390565b60005b8381101561254e578181015183820152602001612536565b8381111561187c5750506000910152565b60008161256e5761256e612576565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461094d57600080fdfea2646970667358221220a3eaec3399442434962ecb9af6f23e68fd0ce9516d0674c16517f1e59d7abd6a64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x9D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x9AB24EB0 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0xBAA51F86 EQ PUSH2 0x488 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xE7A324DC EQ PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0x79F250C9 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0x8DD6878B EQ PUSH2 0x3EC JUMPI DUP1 PUSH4 0x8E539E8C EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x407 JUMPI DUP1 PUSH4 0x94AA08FB EQ PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 GT PUSH2 0x16D JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x3A02A42D EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x3A46B1A8 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x3AB958FC EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x487C8AA7 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x339 JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x359 JUMPI DUP1 PUSH4 0x630B4B90 EQ PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x1460FA87 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x2E17DE78 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x2B3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x23A6 JUMP JUMPDEST PUSH2 0x4E8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH25 0x26A0A420AC1029BA30B5B2B2102B37BA34B733902837BBB2B9 PUSH1 0x39 SHL PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x2469 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EA JUMP JUMPDEST PUSH2 0x251 PUSH2 0x51F JUMP JUMPDEST PUSH2 0x251 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x299 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0x52E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29E PUSH2 0x2AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x842 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EA JUMP JUMPDEST PUSH2 0x251 PUSH2 0x86D JUMP JUMPDEST PUSH2 0x29E PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B4 JUMP JUMPDEST PUSH2 0x8F1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x1DE SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x334 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0x91A JUMP JUMPDEST PUSH2 0x34C PUSH2 0x347 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x2455 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0x96E JUMP JUMPDEST PUSH2 0x29E PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0x979 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x34C PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0xAA6 JUMP JUMPDEST PUSH2 0x29E PUSH2 0xAC4 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x402 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x415 CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0xB3F JUMP JUMPDEST PUSH2 0x251 PUSH32 0xCEC4CAACA6DC71DD44BEC893D0EEDA5D5A8D93F807F83245EABB2C24C25A43FE DUP2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP2 MSTORE PUSH7 0x4D41484158767 PUSH1 0xCC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x224 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x483 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0xB6A JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x235F JUMP JUMPDEST PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x4A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0xCB9 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x4BC CALLDATASIZE PUSH1 0x4 PUSH2 0x2377 JUMP JUMPDEST PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x251 PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x519 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x529 PUSH2 0xE25 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x59D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x79B JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x63D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x661 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6405EACD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6A0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6CC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6F0 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x70C SWAP2 SWAP1 PUSH2 0x2455 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x738 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x75C SWAP2 SWAP1 PUSH2 0x23CE JUMP JUMPDEST ISZERO PUSH2 0x799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x8 PUSH1 0x24 DUP3 ADD MSTORE PUSH8 0x185D1D1858DA1959 PUSH1 0xC2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x819 SWAP2 SWAP1 PUSH2 0x233F JUMP JUMPDEST PUSH2 0x835 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x790 SWAP1 PUSH2 0x249C JUMP JUMPDEST PUSH2 0x83E DUP3 PUSH2 0xE31 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0x85E DUP2 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x868 DUP4 DUP4 PUSH2 0x1142 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x529 PUSH2 0x11AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x8E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH2 0x83E DUP3 DUP3 PUSH2 0x12D4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x913 SWAP1 DUP4 PUSH2 0x133B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x944 PUSH32 0xCEC4CAACA6DC71DD44BEC893D0EEDA5D5A8D93F807F83245EABB2C24C25A43FE CALLER PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x94D DUP2 PUSH2 0xE31 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST CALLER PUSH2 0x83E DUP2 DUP4 PUSH2 0x14CA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0A SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x3737BA103637B1B5B2B9 PUSH1 0xB1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xA73 JUMPI PUSH2 0x94D DUP2 PUSH2 0x155B JUMP JUMPDEST PUSH2 0xA7C DUP2 PUSH2 0xE31 JUMP JUMPDEST PUSH2 0x94D DUP2 PUSH2 0x155B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x519 SWAP1 PUSH2 0x1882 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x519 JUMP JUMPDEST PUSH2 0xACF PUSH1 0x0 CALLER PUSH2 0x1466 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xB34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x566F7465733A20626C6F636B206E6F7420796574206D696E6564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH2 0x519 PUSH1 0x4 DUP4 PUSH2 0x133B JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBD9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBFD SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC7E SWAP2 SWAP1 PUSH2 0x233F JUMP JUMPDEST PUSH2 0xC9A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x790 SWAP1 PUSH2 0x249C JUMP JUMPDEST PUSH2 0x83E DUP3 PUSH2 0x155B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x519 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0xD04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x159BDD195CCE881CDA59DB985D1D5C9948195E1C1A5C9959 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD7E SWAP1 PUSH2 0xD76 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x18EC JUMP JUMPDEST DUP6 DUP6 DUP6 PUSH2 0x193A JUMP JUMPDEST SWAP1 POP PUSH2 0xDA7 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST DUP7 EQ PUSH2 0xDEC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x566F7465733A20696E76616C6964206E6F6E6365 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH2 0xDF6 DUP2 DUP9 PUSH2 0x14CA JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH2 0xE1B DUP2 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x868 DUP4 DUP4 PUSH2 0x12D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x529 PUSH1 0x4 PUSH2 0x1882 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEA0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEC4 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF42 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0xF8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x1B9BDD081CDD185AD959 PUSH1 0xB2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x101E SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x20217176 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1049 SWAP2 SWAP1 PUSH2 0x2455 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1077 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 POP PUSH2 0x1097 SWAP1 DUP4 SWAP1 DUP4 PUSH2 0x1962 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP4 MSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x10CE SWAP1 DUP5 SWAP1 PUSH2 0x251C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x10E7 SWAP2 SWAP1 PUSH2 0x251C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 CALLER SWAP2 PUSH32 0x27157FA484DA42F9840CFCB25CAD5ED17300F578A34B8D4CEAC3BA9D582B37CB SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0x94D DUP2 CALLER PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x114C DUP3 DUP3 PUSH2 0xB3F JUMP JUMPDEST PUSH2 0x83E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP1 DUP7 MSTORE SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1206 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1230 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x12DE DUP3 DUP3 PUSH2 0xB3F JUMP JUMPDEST ISZERO PUSH2 0x83E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436865636B706F696E74733A20626C6F636B206E6F7420796574206D696E6564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 PUSH2 0x13A5 DUP3 DUP5 PUSH2 0x19BB JUMP JUMPDEST SWAP1 POP DUP5 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x13CB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x13EB JUMPI DUP1 SWAP3 POP PUSH2 0x13F9 JUMP JUMPDEST PUSH2 0x13F6 DUP2 PUSH1 0x1 PUSH2 0x24C5 JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH2 0x1391 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1451 JUMPI DUP5 PUSH2 0x1411 PUSH1 0x1 DUP5 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x142F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1454 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1470 DUP3 DUP3 PUSH2 0xB3F JUMP JUMPDEST PUSH2 0x83E JUMPI PUSH2 0x1488 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x19D6 JUMP JUMPDEST PUSH2 0x1493 DUP4 PUSH1 0x20 PUSH2 0x19D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x14A4 SWAP3 SWAP2 SWAP1 PUSH2 0x23E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x790 SWAP2 PUSH1 0x4 ADD PUSH2 0x2469 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14D5 DUP4 PUSH2 0x950 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP9 DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP5 SWAP6 POP SWAP4 SWAP3 DUP6 AND SWAP3 PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F SWAP2 SWAP1 LOG4 PUSH2 0x868 DUP2 DUP4 PUSH2 0x1556 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1BB8 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x163D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1661 SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x16B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481CDD185AD959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1708 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x172C SWAP2 SWAP1 PUSH2 0x2298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x39F890B5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0xE7E242D4 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1786 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17AA SWAP2 SWAP1 PUSH2 0x23CE JUMP JUMPDEST SWAP1 POP PUSH2 0x17B8 PUSH1 0x0 DUP4 DUP4 PUSH2 0x1962 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP4 MSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x17EF SWAP1 DUP5 SWAP1 PUSH2 0x24C5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1808 SWAP2 SWAP1 PUSH2 0x24C5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 CALLER SWAP2 PUSH32 0xB4F010C1D447300A6996242A1A4B8401B847C25C906BECCD1D3EC9E2B504D26C SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND PUSH2 0x187C JUMPI PUSH2 0x187C DUP3 DUP4 PUSH2 0x14CA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 DUP1 ISZERO PUSH2 0x18D9 JUMPI DUP3 PUSH2 0x1899 PUSH1 0x1 DUP4 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x18B7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x18DC JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x519 PUSH2 0x18F9 PUSH2 0x11AD JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x194B DUP8 DUP8 DUP8 DUP8 PUSH2 0x1D43 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1958 DUP2 PUSH2 0x1E26 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1981 JUMPI PUSH2 0x197E PUSH1 0x4 PUSH2 0x2022 DUP4 PUSH2 0x202E JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x19A0 JUMPI PUSH2 0x199D PUSH1 0x4 PUSH2 0x205C DUP4 PUSH2 0x202E JUMP JUMPDEST POP POP JUMPDEST PUSH2 0x868 PUSH2 0x19AC DUP5 PUSH2 0x950 JUMP JUMPDEST PUSH2 0x19B5 DUP5 PUSH2 0x950 JUMP JUMPDEST DUP4 PUSH2 0x1BB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19CA PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x24DD JUMP JUMPDEST PUSH2 0x913 SWAP1 DUP5 DUP5 AND PUSH2 0x24C5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x19E5 DUP4 PUSH1 0x2 PUSH2 0x24FD JUMP JUMPDEST PUSH2 0x19F0 SWAP1 PUSH1 0x2 PUSH2 0x24C5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A16 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1A40 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1A69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1AA6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x1ACA DUP5 PUSH1 0x2 PUSH2 0x24FD JUMP JUMPDEST PUSH2 0x1AD5 SWAP1 PUSH1 0x1 PUSH2 0x24C5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1B69 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1B17 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1B3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1B62 DUP2 PUSH2 0x255F JUMP JUMPDEST SWAP1 POP PUSH2 0x1AD8 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x913 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 ISZERO PUSH2 0x1BDA JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0x868 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1C15 SWAP1 PUSH2 0x205C DUP6 PUSH2 0x202E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C5D SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x1CF1 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1C9E SWAP1 PUSH2 0x2022 DUP6 PUSH2 0x202E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1CE6 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x1D36 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 GT ISZERO PUSH2 0x1D70 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x1E1D JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x1D88 JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x1D99 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1E16 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x1E1D JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1E48 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1E51 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1E73 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1EBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x45434453413A20696E76616C6964207369676E6174757265 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1F4E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1FA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1FC9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x94D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x913 DUP3 DUP5 PUSH2 0x24C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2050 DUP6 PUSH2 0x204B PUSH2 0x2041 DUP9 PUSH2 0x1882 JUMP JUMPDEST DUP7 DUP9 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2068 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x913 DUP3 DUP5 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 PUSH2 0x2079 DUP7 PUSH2 0x1882 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH2 0x20C5 JUMPI POP NUMBER DUP7 PUSH2 0x2093 PUSH1 0x1 DUP6 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x20B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH4 0xFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x2133 JUMPI PUSH2 0x20D3 DUP6 PUSH2 0x21AA JUMP JUMPDEST DUP7 PUSH2 0x20DF PUSH1 0x1 DUP6 PUSH2 0x251C JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x20FD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x21A1 JUMP JUMPDEST DUP6 PUSH1 0x0 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x214B NUMBER PUSH2 0x2217 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215F DUP9 PUSH2 0x21AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP5 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 ADD SSTORE JUMPDEST SWAP6 SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32342062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x790 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x228D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x913 DUP2 PUSH2 0x258C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22A9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x913 DUP2 PUSH2 0x258C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22C6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x22D1 DUP2 PUSH2 0x258C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x2302 DUP2 PUSH2 0x258C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2325 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP5 PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2350 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x913 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2370 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2389 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x239B DUP2 PUSH2 0x258C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x913 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23DF JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x2418 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x2533 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2449 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x2533 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2488 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2533 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xF SWAP1 DUP3 ADD MSTORE PUSH15 0x3737BA103A37B5B2B71037BBB732B9 PUSH1 0x89 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x24D8 JUMPI PUSH2 0x24D8 PUSH2 0x2576 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x24F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2517 JUMPI PUSH2 0x2517 PUSH2 0x2576 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x252E JUMPI PUSH2 0x252E PUSH2 0x2576 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x254E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2536 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x187C JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x256E JUMPI PUSH2 0x256E PUSH2 0x2576 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x94D JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 0xEA 0xEC CALLER SWAP10 DIFFICULTY 0x24 CALLVALUE SWAP7 0x2E 0xCB SWAP11 0xF6 CALLCODE RETURNDATACOPY PUSH9 0xFD0CE9516D0674C165 OR CALL 0xE5 SWAP14 PUSH27 0xBD6A64736F6C634300080400330000000000000000000000000000 ","sourceMap":"1268:11226:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:0;;;;;;:::i;:::-;;:::i;:::-;;;4956:14:139;;4949:22;4931:41;;4919:2;4904:18;2606:202:0;;;;;;;;12159:122:70;12240:34;;;;;;;;;;;;-1:-1:-1;;;12240:34:70;;;;12159:122;;;;;;;:::i;2168:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5129:25:139;;;5117:2;5102:18;2168:49:70;5084:76:139;6067:113:70;;;:::i;4391:129:0:-;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;;;;:22;;;4391:129;2713:582:70;;;;;;:::i;:::-;;:::i;:::-;;4816:145:0;;;;;;:::i;:::-;;:::i;12399:93:70:-;;;12483:2;13906:36:139;;13894:2;13879:18;12399:93:70;13861:87:139;12049:104:70;;;:::i;5925:214:0:-;;;;;;:::i;:::-;;:::i;5697:175:70:-;;;;;;:::i;:::-;-1:-1:-1;;;;;5846:19:70;5816:7;5846:19;;;:14;:19;;;;;;;5697:175;6976:228;;;;;;:::i;:::-;;:::i;2009:34::-;;;;;;;;;5069:138;;;;;;:::i;:::-;;:::i;8223:171::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8476:147::-;;;;;;:::i;:::-;;:::i;3301:270::-;;;;;;:::i;:::-;;:::i;5878:183::-;;;;;;:::i;:::-;;:::i;2086:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1438:44;;;;;11795:117;;;;;;:::i;:::-;;:::i;5369:159::-;;;:::i;7667:280::-;;;;;;:::i;:::-;;:::i;2895:145:0:-;;;;;;:::i;:::-;;:::i;1621:88:70:-;;1676:33;1621:88;;12287:106;12370:16;;;;;;;;;;;;-1:-1:-1;;;12370:16:70;;;;12287:106;;1954:26;;;;;;2027:49:0;;2072:4;2027:49;;2446:261:70;;;;;;:::i;:::-;;:::i;6186:167::-;;;;;;:::i;:::-;;:::i;8701:631::-;;;;;;:::i;:::-;;:::i;5241:147:0:-;;;;;;:::i;:::-;;:::i;1489:125:70:-;;1543:71;1489:125;;2606:202:0;2691:4;-1:-1:-1;;;;;;2714:47:0;;-1:-1:-1;;;2714:47:0;;:87;;-1:-1:-1;;;;;;;;;;937:40:45;;;2765:36:0;2707:94;2606:202;-1:-1:-1;;2606:202:0:o;6067:113:70:-;6130:7;6156:17;:15;:17::i;:::-;6149:24;;6067:113;:::o;2713:582::-;2776:17;2807:8;-1:-1:-1;;;;;2807:15:70;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2896:22;;2776:49;;-1:-1:-1;2896:22:70;;2891:251;;2934:24;2975:8;-1:-1:-1;;;;;2975:19:70;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2934:63;;3036:10;-1:-1:-1;;;;;3036:22:70;;3059:6;-1:-1:-1;;;;;3059:14:70;;3074:8;3059:24;;;;;;;;;;;;;5129:25:139;;5117:2;5102:18;;5084:76;3059:24:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3036:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;3011:120;;;;-1:-1:-1;;;3011:120:70;;8724:2:139;3011:120:70;;;8706:21:139;8763:1;8743:18;;;8736:29;-1:-1:-1;;;8781:18:139;;;8774:38;8829:18;;3011:120:70;;;;;;;;;2891:251;;3173:46;;-1:-1:-1;;;3173:46:70;;3198:10;3173:46;;;4686:51:139;4753:18;;;4746:34;;;-1:-1:-1;;;;;3173:24:70;;;;;4659:18:139;;3173:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3152:108;;;;-1:-1:-1;;;3152:108:70;;;;;;;:::i;:::-;3270:18;3279:8;3270;:18::i;:::-;2713:582;;:::o;4816:145:0:-;4465:7;4491:12;;;:6;:12;;;;;;;;:22;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;12049:104:70:-;12100:7;12126:20;:18;:20::i;5925:214:0:-;-1:-1:-1;;;;;6020:23:0;;719:10:38;6020:23:0;6012:83;;;;-1:-1:-1;;;6012:83:0;;12771:2:139;6012:83:0;;;12753:21:139;12810:2;12790:18;;;12783:30;12849:34;12829:18;;;12822:62;-1:-1:-1;;;12900:18:139;;;12893:45;12955:19;;6012:83:0;12743:237:139;6012:83:0;6106:26;6118:4;6124:7;6106:11;:26::i;6976:228:70:-;-1:-1:-1;;;;;7144:29:70;;7114:7;7144:29;;;:20;:29;;;;;:53;;7185:11;7144:40;:53::i;:::-;7137:60;6976:228;-1:-1:-1;;;6976:228:70:o;5069:138::-;5128:44;1676:33;5161:10;5128;:44::i;:::-;5182:18;5191:8;5182;:18::i;:::-;5069:138;:::o;8223:171::-;-1:-1:-1;;;;;8367:20:70;;;8337:7;8367:20;;;:11;:20;;;;;;;;8223:171::o;8476:147::-;719:10:38;8587:29:70;719:10:38;8606:9:70;8587;:29::i;3301:270::-;3393:8;-1:-1:-1;;;;;3393:15:70;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3379:31:70;:10;-1:-1:-1;;;;;3379:31:70;;3371:54;;;;-1:-1:-1;;;3371:54:70;;10177:2:139;3371:54:70;;;10159:21:139;10216:2;10196:18;;;10189:30;-1:-1:-1;;;10235:18:139;;;10228:40;10285:18;;3371:54:70;10149:160:139;3371:54:70;6426:4;6449:26;;;:17;:26;;;;;;3435:130;;3461:16;3468:8;3461:6;:16::i;3435:130::-;3506:18;3515:8;3506;:18::i;:::-;3538:16;3545:8;3538:6;:16::i;5878:183::-;-1:-1:-1;;;;;6020:25:70;;5990:7;6020:25;;;:20;:25;;;;;:34;;:32;:34::i;11795:117::-;-1:-1:-1;;;;;11881:14:70;;11855:7;11881:14;;;:7;:14;;;;;918::39;11881:24:70;827:112:39;5369:159:70;5421:42;2072:4:0;5452:10:70;5421;:42::i;:::-;5499:22;;;-1:-1:-1;;5473:48:70;;5499:22;;;;5498:23;5473:48;;;5369:159::o;7667:280::-;7794:7;7839:12;7825:11;:26;7817:65;;;;-1:-1:-1;;;7817:65:70;;10516:2:139;7817:65:70;;;10498:21:139;10555:2;10535:18;;;10528:30;10594:28;10574:18;;;10567:56;10640:18;;7817:65:70;10488:176:139;7817:65:70;7899:41;:17;7928:11;7899:28;:41::i;2895:145:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145::o;2446:261:70:-;2507:17;2538:8;-1:-1:-1;;;;;2538:15:70;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2587:46;;-1:-1:-1;;;2587:46:70;;2612:10;2587:46;;;4686:51:139;4753:18;;;4746:34;;;2507:49:70;;-1:-1:-1;;;;;;2587:24:70;;;;;4659:18:139;;2587:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2566:108;;;;-1:-1:-1;;;2566:108:70;;;;;;;:::i;:::-;2684:16;2691:8;2684:6;:16::i;6186:167::-;6301:4;6449:26;;;:17;:26;;;;;;:30;;6328:18;6359:127;8701:631;8920:6;8901:15;:25;;8893:62;;;;-1:-1:-1;;;8893:62:70;;9824:2:139;8893:62:70;;;9806:21:139;9863:2;9843:18;;;9836:30;-1:-1:-1;;;9882:18:139;;;9875:54;9946:18;;8893:62:70;9796:174:139;8893:62:70;9074:57;;;1543:71;9074:57;;;5396:25:139;-1:-1:-1;;;;;5457:32:139;;5437:18;;;5430:60;;;;5506:18;;;5499:34;;;5549:18;;;5542:34;;;8965:14:70;;8982:236;;9009:154;;5368:19:139;;9074:57:70;;;;;;;;;;;;9043:106;;;;;;9009:16;:154::i;:::-;9177:1;9192;9207;8982:13;:236::i;:::-;8965:253;;9245:17;9255:6;-1:-1:-1;;;;;11652:14:70;11588:15;11652:14;;;:7;:14;;;;;918::39;;1050:1;1032:19;;;;;918:14;11504:231:70;9245:17;9236:5;:26;9228:59;;;;-1:-1:-1;;;9228:59:70;;8015:2:139;9228:59:70;;;7997:21:139;8054:2;8034:18;;;8027:30;-1:-1:-1;;;8073:18:139;;;8066:50;8133:18;;9228:59:70;7987:170:139;9228:59:70;9297:28;9307:6;9315:9;9297;:28::i;:::-;8701:631;;;;;;;:::o;5241:147:0:-;4465:7;4491:12;;;:6;:12;;;;;;;;:22;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;8024:117:70:-:0;8082:7;8108:26;:17;:24;:26::i;4322:587::-;4377:17;4408:8;-1:-1:-1;;;;;4408:15:70;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4453:24;;-1:-1:-1;;;4453:24:70;;;;;5129:25:139;;;4377:49:70;;-1:-1:-1;4436:14:70;;-1:-1:-1;;;;;4453:14:70;;;;;5102:18:139;;4453:24:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4526:1;4496:27;;;:17;:27;;;;;;4436:41;;-1:-1:-1;4488:54:70;;;;-1:-1:-1;;;4488:54:70;;11274:2:139;4488:54:70;;;11256:21:139;11313:2;11293:18;;;11286:30;-1:-1:-1;;;11332:18:139;;;11325:40;11382:18;;4488:54:70;11246:160:139;4488:54:70;4566:8;-1:-1:-1;;;;;4566:19:70;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4552:45:70;;4598:6;4552:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4616:15:70;4634:27;;;:17;:27;;;;;;;-1:-1:-1;4671:49:70;;4692:6;;4634:27;4671:20;:49::i;:::-;4761:1;4731:27;;;:17;:27;;;;;;;;:31;;;-1:-1:-1;;;;;4772:22:70;;;;:14;:22;;;;;:33;;4798:7;;4761:1;4772:33;;4798:7;;4772:33;:::i;:::-;;;;;;;;4830:7;4815:11;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;4853:49:70;;;13685:25:139;;;13741:2;13726:18;;13719:34;;;-1:-1:-1;;;;;4853:49:70;;;4864:10;;4853:49;;13658:18:139;4853:49:70;;;;;;;4322:587;;;;:::o;3334:103:0:-;3400:30;3411:4;719:10:38;3400::0;:30::i;7474:233::-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;7627:4;7595:12;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;;;;;;;7650:40;;719:10:38;;7595:12:0;;7650:40;;7595:12;7650:40;7474:233;;:::o;3143:308:44:-;3196:7;3227:4;-1:-1:-1;;;;;3236:12:44;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:44;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:44;;;3392:10;3633:73;;;;5846:25:139;;;;3404:12:44;5887:18:139;;;5880:34;3418:15:44;5930:18:139;;;5923:34;3677:13:44;5973:18:139;;;5966:34;3700:4:44;6016:19:139;;;;6009:61;;;;3633:73:44;;;;;;;;;;5818:19:139;;;;3633:73:44;;;3623:84;;;;;;6067:113:70:o;7878:234:0:-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:0;;;;;;;;;;:37;;-1:-1:-1;;7999:37:0;;;8055:40;719:10:38;;7999:12:0;;8055:40;;8031:5;8055:40;7878:234;;:::o;1281:578:37:-;1367:7;1408:12;1394:11;:26;1386:71;;;;-1:-1:-1;;;1386:71:37;;9463:2:139;1386:71:37;;;9445:21:139;;;9482:18;;;9475:30;9541:34;9521:18;;;9514:62;9593:18;;1386:71:37;9435:182:139;1386:71:37;1483:24;;1468:12;1542:244;1555:4;1549:3;:10;1542:244;;;1575:11;1589:23;1602:3;1607:4;1589:12;:23::i;:::-;1575:37;;1668:11;1630:4;:17;;1648:3;1630:22;;;;;;-1:-1:-1;;;1630:22:37;;;;;;;;;;;;;;;;;;:35;;;:49;1626:150;;;1706:3;1699:10;;1626:150;;;1754:7;:3;1760:1;1754:7;:::i;:::-;1748:13;;1626:150;1542:244;;;;1802:9;;:50;;1818:4;1836:8;1843:1;1836:4;:8;:::i;:::-;1818:27;;;;;;-1:-1:-1;;;1818:27:37;;;;;;;;;;;;;;;;;;:34;;;;-1:-1:-1;;;;;1818:34:37;1802:50;;;1814:1;1802:50;-1:-1:-1;;;;;1795:57:37;;1281:578;-1:-1:-1;;;;;1281:578:37:o;3718:492:0:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:0;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:0;;;;;;;;;;-1:-1:-1;;;3844:349:0;;;;;;;:::i;9496:313:70:-;9578:19;9600:18;9610:7;9600:9;:18::i;:::-;-1:-1:-1;;;;;9628:20:70;;;;;;;:11;:20;;;;;;:32;;-1:-1:-1;;;;;;9628:32:70;;;;;;;;;;9676:48;;9578:40;;-1:-1:-1;9628:32:70;9676:48;;;;;;9628:20;9676:48;9734:68;9753:11;9766:9;9777:24;9793:7;-1:-1:-1;;;;;5846:19:70;5816:7;5846:19;;;:14;:19;;;;;;;5697:175;9777:24;9734:18;:68::i;3577:739::-;3630:8;-1:-1:-1;;;;;3630:24:70;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3667:17;3698:8;-1:-1:-1;;;;;3698:15:70;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3734:27;;;;:17;:27;;;;;;3667:49;;-1:-1:-1;3734:32:70;3726:59;;;;-1:-1:-1;;;3726:59:70;;12428:2:139;3726:59:70;;;12410:21:139;12467:2;12447:18;;;12440:30;-1:-1:-1;;;12486:18:139;;;12479:44;12540:18;;3726:59:70;12400:164:139;3726:59:70;3813:24;;-1:-1:-1;;;3813:24:70;;;;;5129:25:139;;;3796:14:70;;-1:-1:-1;;;;;3813:14:70;;;;;5102:18:139;;3813:24:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3866:29;;-1:-1:-1;;;3866:29:70;;;;;5129:25:139;;;3796:41:70;;-1:-1:-1;3848:15:70;;-1:-1:-1;;;;;3866:19:70;;;;;5102:18:139;;3866:29:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3848:47;;3905:49;3934:1;3938:6;3946:7;3905:20;:49::i;:::-;3965:27;;;;:17;:27;;;;;;;;:37;;;-1:-1:-1;;;;;4012:22:70;;;;:14;:22;;;;;:33;;3995:7;;3965:27;4012:33;;3995:7;;4012:33;:::i;:::-;;;;;;;;4070:7;4055:11;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;4093:47:70;;;13685:25:139;;;13741:2;13726:18;;13719:34;;;-1:-1:-1;;;;;4093:47:70;;;4102:10;;4093:47;;13658:18:139;4093:47:70;;;;;;;-1:-1:-1;;;;;4249:19:70;;;4280:1;4249:19;;;:11;:19;;;;;;;4245:64;;4284:25;4294:6;4302;4284:9;:25::i;:::-;3577:739;;;;:::o;901:190:37:-;995:24;;962:7;;1036:8;;:48;;1051:4;1069:7;1075:1;1069:3;:7;:::i;:::-;1051:26;;;;;;-1:-1:-1;;;1051:26:37;;;;;;;;;;;;;;;;;;:33;;;;-1:-1:-1;;;;;1051:33:37;1036:48;;;1047:1;1036:48;-1:-1:-1;;;;;1029:55:37;;901:190;-1:-1:-1;;;901:190:37:o;4339:165:44:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;8677:57:42;;-1:-1:-1;;;8677:57:42;;;3374:27:139;3417:11;;;3410:27;;;3453:12;;;3446:28;;;8641:7:42;;3490:12:139;;8677:57:42;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;6903:270;7026:7;7046:17;7065:18;7087:25;7098:4;7104:1;7107;7110;7087:10;:25::i;:::-;7045:67;;;;7122:18;7134:5;7122:11;:18::i;:::-;-1:-1:-1;7157:9:42;6903:270;-1:-1:-1;;;;;6903:270:42:o;10043:338:70:-;-1:-1:-1;;;;;10176:18:70;;10172:60;;10196:36;:17;10219:4;10225:6;10196:22;:36::i;:::-;;;10172:60;-1:-1:-1;;;;;10246:16:70;;10242:63;;10264:41;:17;10287:9;10298:6;10264:22;:41::i;:::-;;;10242:63;10316:58;10335:15;10345:4;10335:9;:15::i;:::-;10352:13;10362:2;10352:9;:13::i;:::-;10367:6;10316:18;:58::i;806:153:47:-;868:7;941:11;951:1;942:5;;;941:11;:::i;:::-;931:21;;932:5;;;931:21;:::i;1652:441:40:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:40;;1752:47;;-1:-1:-1;;;1809:6:40;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:40;;;;;;;;;-1:-1:-1;;;1834:6:40;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:40;;;;;;;;-1:-1:-1;1864:9:40;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:40;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:40;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:40;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:40;;;;;;;;-1:-1:-1;1979:1:40;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:40;;2000:55;;;;-1:-1:-1;;;2000:55:40;;7654:2:139;2000:55:40;;;7636:21:139;;;7673:18;;;7666:30;7732:34;7712:18;;;7705:62;7784:18;;2000:55:40;7626:182:139;10467:714:70;10597:2;-1:-1:-1;;;;;10589:10:70;:4;-1:-1:-1;;;;;10589:10:70;;;:24;;;;;10612:1;10603:6;:10;10589:24;10585:590;;;-1:-1:-1;;;;;10633:18:70;;;10629:253;;-1:-1:-1;;;;;10710:64:70;;10672:16;10710:64;;;:20;:64;;;;;10672:16;;10710:88;;10780:9;10791:6;10710:69;:88::i;:::-;10671:127;;;;10842:4;-1:-1:-1;;;;;10821:46:70;;10848:8;10858;10821:46;;;;;;13685:25:139;;;13741:2;13726:18;;13719:34;13673:2;13658:18;;13640:119;10821:46:70;;;;;;;;10629:253;;;-1:-1:-1;;;;;10899:16:70;;;10895:225;;-1:-1:-1;;;;;10974:24:70;;10936:16;10974:24;;;:20;:24;;;;;10936:16;;10974:64;;11025:4;11031:6;10974:50;:64::i;:::-;10935:103;;;;11082:2;-1:-1:-1;;;;;11061:44:70;;11086:8;11096;11061:44;;;;;;13685:25:139;;;13741:2;13726:18;;13719:34;13673:2;13658:18;;13640:119;11061:44:70;;;;;;;;10895:225;;;11153:2;-1:-1:-1;;;;;11138:26:70;11147:4;-1:-1:-1;;;;;11138:26:70;;11157:6;11138:26;;;;5129:25:139;;5117:2;5102:18;;5084:76;11138:26:70;;;;;;;;10467:714;;;:::o;5167:1603:42:-;5293:7;;-1:-1:-1;;;;;6204:79:42;;6200:161;;;-1:-1:-1;6315:1:42;;-1:-1:-1;6319:30:42;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:42;;-1:-1:-1;6428:30:42;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;6308:25:139;;;6381:4;6369:17;;6349:18;;;6342:45;;;;6403:18;;;6396:34;;;6446:18;;;6439:34;;;6581:24:42;;6280:19:139;;6581:24:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:42;;-1:-1:-1;;6581:24:42;;;-1:-1:-1;;;;;;;6619:20:42;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:42;;-1:-1:-1;5167:1603:42;;;;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;-1:-1:-1;;;616:29:42;;;;;;;;;;612:561;;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;-1:-1:-1;;;712:38:42;;;;;;;;;;708:465;;;766:34;;-1:-1:-1;;;766:34:42;;7301:2:139;766:34:42;;;7283:21:139;7340:2;7320:18;;;7313:30;-1:-1:-1;;;7359:18:139;;;7352:54;7423:18;;766:34:42;7273:174:139;708:465:42;830:35;821:5;:44;;;;;;-1:-1:-1;;;821:44:42;;;;;;;;;;817:356;;;881:41;;-1:-1:-1;;;881:41:42;;8364:2:139;881:41:42;;;8346:21:139;8403:2;8383:18;;;8376:30;8442:33;8422:18;;;8415:61;8493:18;;881:41:42;8336:181:139;817:356:42;952:30;943:5;:39;;;;;;-1:-1:-1;;;943:39:42;;;;;;;;;;939:234;;;998:44;;-1:-1:-1;;;998:44:42;;9060:2:139;998:44:42;;;9042:21:139;9099:2;9079:18;;;9072:30;9138:34;9118:18;;;9111:62;-1:-1:-1;;;9189:18:139;;;9182:32;9231:19;;998:44:42;9032:224:139;939:234:42;1072:30;1063:5;:39;;;;;;-1:-1:-1;;;1063:39:42;;;;;;;;;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:42;;10871:2:139;1118:44:42;;;10853:21:139;10910:2;10890:18;;;10883:30;10949:34;10929:18;;;10922:62;-1:-1:-1;;;11000:18:139;;;10993:32;11042:19;;1118:44:42;10843:224:139;11187:96:70;11245:7;11271:5;11275:1;11271;:5;:::i;2822:230:37:-;2975:7;2984;3010:35;3015:4;3021:23;3024:12;3031:4;3024:6;:12::i;:::-;3038:5;3021:2;:23;;:::i;:::-;3010:4;:35::i;:::-;3003:42;;;;2822:230;;;;;;:::o;11289:101:70:-;11352:7;11378:5;11382:1;11378;:5;:::i;2037:553:37:-;2148:24;;2106:7;;;;;2196:12;2148:4;2196:6;:12::i;:::-;2182:26;;2228:1;2222:3;:7;:66;;;;-1:-1:-1;2276:12:37;2233:4;2251:7;2257:1;2251:3;:7;:::i;:::-;2233:26;;;;;;-1:-1:-1;;;2233:26:37;;;;;;;;;;;;;;;;;;:39;;;:55;2222:66;2218:337;;;2340:25;2359:5;2340:18;:25::i;:::-;2304:4;2322:7;2328:1;2322:3;:7;:::i;:::-;2304:26;;;;;;-1:-1:-1;;;2304:26:37;;;;;;;;;;;;;;;;:33;;;:61;;;;;-1:-1:-1;;;;;2304:61:37;;;;;-1:-1:-1;;;;;2304:61:37;;;;;;2218:337;;;2396:4;:17;;2436:94;;;;;;;;2462:31;2480:12;2462:17;:31::i;:::-;2436:94;;;;;;2503:25;2522:5;2503:18;:25::i;:::-;-1:-1:-1;;;;;2436:94:37;;;;;;2396:148;;;;;;;-1:-1:-1;2396:148:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2218:337;2572:3;2577:5;;-1:-1:-1;;;;2037:553:37:o;2751:192:48:-;2808:7;-1:-1:-1;;;;;2835:26:48;;;2827:78;;;;-1:-1:-1;;;2827:78:48;;11613:2:139;2827:78:48;;;11595:21:139;11652:2;11632:18;;;11625:30;11691:34;11671:18;;;11664:62;-1:-1:-1;;;11742:18:139;;;11735:37;11789:19;;2827:78:48;11585:229:139;2827:78:48;-1:-1:-1;2930:5:48;2751:192::o;15179:187::-;15235:6;15270:16;15261:25;;;15253:76;;;;-1:-1:-1;;;15253:76:48;;12021:2:139;15253:76:48;;;12003:21:139;12060:2;12040:18;;;12033:30;12099:34;12079:18;;;12072:62;-1:-1:-1;;;12150:18:139;;;12143:36;12196:19;;15253:76:48;11993:228:139;14:257;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:325::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;857:2;842:18;;;;829:32;;-1:-1:-1;;;629:238:139:o;872:707::-;974:6;982;990;998;1006;1014;1067:3;1055:9;1046:7;1042:23;1038:33;1035:2;;;1089:6;1081;1074:22;1035:2;1133:9;1120:23;1152:31;1177:5;1152:31;:::i;:::-;1202:5;-1:-1:-1;1254:2:139;1239:18;;1226:32;;-1:-1:-1;1305:2:139;1290:18;;1277:32;;-1:-1:-1;1361:2:139;1346:18;;1333:32;1409:4;1396:18;;1384:31;;1374:2;;1434:6;1426;1419:22;1374:2;1025:554;;;;-1:-1:-1;1025:554:139;;1516:3;1501:19;;1488:33;;1568:3;1553:19;;;1540:33;;-1:-1:-1;1025:554:139;-1:-1:-1;;1025:554:139:o;1584:297::-;1651:6;1704:2;1692:9;1683:7;1679:23;1675:32;1672:2;;;1725:6;1717;1710:22;1672:2;1762:9;1756:16;1815:5;1808:13;1801:21;1794:5;1791:32;1781:2;;1842:6;1834;1827:22;1886:190;1945:6;1998:2;1986:9;1977:7;1973:23;1969:32;1966:2;;;2019:6;2011;2004:22;1966:2;-1:-1:-1;2047:23:139;;1956:120;-1:-1:-1;1956:120:139:o;2081:325::-;2149:6;2157;2210:2;2198:9;2189:7;2185:23;2181:32;2178:2;;;2231:6;2223;2216:22;2178:2;2272:9;2259:23;2249:33;;2332:2;2321:9;2317:18;2304:32;2345:31;2370:5;2345:31;:::i;:::-;2395:5;2385:15;;;2168:238;;;;;:::o;2411:306::-;2469:6;2522:2;2510:9;2501:7;2497:23;2493:32;2490:2;;;2543:6;2535;2528:22;2490:2;2574:23;;-1:-1:-1;;;;;;2626:32:139;;2616:43;;2606:2;;2678:6;2670;2663:22;2917:194;2987:6;3040:2;3028:9;3019:7;3015:23;3011:32;3008:2;;;3061:6;3053;3046:22;3008:2;-1:-1:-1;3089:16:139;;2998:113;-1:-1:-1;2998:113:139:o;3513:786::-;-1:-1:-1;;;3919:3:139;3912:38;3894:3;3979:6;3973:13;3995:62;4050:6;4045:2;4040:3;4036:12;4029:4;4021:6;4017:17;3995:62;:::i;:::-;-1:-1:-1;;;4116:2:139;4076:16;;;4108:11;;;4101:40;4166:13;;4188:63;4166:13;4237:2;4229:11;;4222:4;4210:17;;4188:63;:::i;:::-;4271:17;4290:2;4267:26;;3902:397;-1:-1:-1;;;;3902:397:139:o;4304:203::-;-1:-1:-1;;;;;4468:32:139;;;;4450:51;;4438:2;4423:18;;4405:102::o;6711:383::-;6860:2;6849:9;6842:21;6823:4;6892:6;6886:13;6935:6;6930:2;6919:9;6915:18;6908:34;6951:66;7010:6;7005:2;6994:9;6990:18;6985:2;6977:6;6973:15;6951:66;:::i;:::-;7078:2;7057:15;-1:-1:-1;;7053:29:139;7038:45;;;;7085:2;7034:54;;6832:262;-1:-1:-1;;6832:262:139:o;12985:339::-;13187:2;13169:21;;;13226:2;13206:18;;;13199:30;-1:-1:-1;;;13260:2:139;13245:18;;13238:45;13315:2;13300:18;;13159:165::o;13953:128::-;13993:3;14024:1;14020:6;14017:1;14014:13;14011:2;;;14030:18;;:::i;:::-;-1:-1:-1;14066:9:139;;14001:80::o;14086:217::-;14126:1;14152;14142:2;;-1:-1:-1;;;14177:31:139;;14231:4;14228:1;14221:15;14259:4;14184:1;14249:15;14142:2;-1:-1:-1;14288:9:139;;14132:171::o;14308:168::-;14348:7;14414:1;14410;14406:6;14402:14;14399:1;14396:21;14391:1;14384:9;14377:17;14373:45;14370:2;;;14421:18;;:::i;:::-;-1:-1:-1;14461:9:139;;14360:116::o;14481:125::-;14521:4;14549:1;14546;14543:8;14540:2;;;14554:18;;:::i;:::-;-1:-1:-1;14591:9:139;;14530:76::o;14611:258::-;14683:1;14693:113;14707:6;14704:1;14701:13;14693:113;;;14783:11;;;14777:18;14764:11;;;14757:39;14729:2;14722:10;14693:113;;;14824:6;14821:1;14818:13;14815:2;;;-1:-1:-1;;14859:1:139;14841:16;;14834:27;14664:205::o;14874:136::-;14913:3;14941:5;14931:2;;14950:18;;:::i;:::-;-1:-1:-1;;;14986:18:139;;14921:89::o;15015:127::-;15076:10;15071:3;15067:20;15064:1;15057:31;15107:4;15104:1;15097:15;15131:4;15128:1;15121:15;15147:131;-1:-1:-1;;;;;15222:31:139;;15212:42;;15202:2;;15268:1;15265;15258:12"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATION_TYPEHASH()":"e7a324dc","DOMAIN_SEPARATOR()":"3644e515","KICK_FROM_STAKE_ROLE()":"94aa08fb","_stakeFromLock(uint256)":"630b4b90","balanceOf(address)":"70a08231","banFromStake(uint256)":"487c8aa7","decimals()":"313ce567","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","disableAttachmentCheck()":"3ab958fc","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getRoleAdmin(bytes32)":"248a9ca3","getStakedBalance(address)":"3a02a42d","getVotes(address)":"9ab24eb0","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isStaked(uint256)":"baa51f86","name()":"06fdde03","nonces(address)":"7ecebe00","registry()":"7b103999","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","stake(uint256)":"a694fc3a","stakedBalances(address)":"1460fa87","stakedBalancesNFT(uint256)":"79f250c9","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","toggleAttachmentCheck()":"8dd6878b","totalSupply()":"18160ddd","totalWeight()":"96c82e57","unstake(uint256)":"2e17de78"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_governance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeNFT\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnstakeNFT\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"KICK_FROM_STAKE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"_stakeFromLock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"banFromStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableAttachmentCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"getStakedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stakedBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakedBalancesNFT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"toggleAttachmentCheck\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Steven Enamakel <enamakel@mahadao.com>\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the contract's {EIP712} domain separator.\"},\"banFromStake(uint256)\":{\"details\":\"ban a NFT from stake; ideally should be used with NFTs that are staked but listed on opensea. Should be called from a smart contract\"},\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote. Requirements: - `blockNumber` must have been already mined\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`). Requirements: - `blockNumber` must have been already mined\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"nonces(address)\":{\"details\":\"Returns an address nonce.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"toggleAttachmentCheck()\":{\"details\":\"in the unlikely event of some kind of issue with the gauge voter, we disable the attachment check so that NFTs can safely by unstaked.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract stakes an NFT and captures it's voting power. It is an extension of openzepplin's Votes contract that also allows delegration. All benefits such as voting, protocol fees, rewards, special access etc.. accure to NFT stakers. When you stake your NFT, your voting power is locked in and stops decreasing over time. TODO: Ensure we limit the amount of delegation power a wallet can have.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MAHAXStaker.sol\":\"MAHAXStaker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0x2e109f03a05809288a1478d4d9fcd0804229207e18d1164ce0597fb0958a159c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9495415607fcbd1c940e726f396c46892af8c8772247c002650deacaf5199fb\",\"dweb:/ipfs/QmagLfEk1NCaJEMVDP3ix9BmXy6mccVUMfKAbWQFtjkjvJ\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"contracts/MAHAXStaker.sol\":{\"keccak256\":\"0xaebfc5fcad5d9bac19aeeb2d67d52849f16e62ccdb7cdc134243f288d19c5321\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ed98fba17f20a4e015d2048e67877e7f7a57a9202b22833bf237f74b8363a33\",\"dweb:/ipfs/Qmdo9m4fcZCP7X73CFnTFecH3osGbrh4mQW4HMPjPLQitL\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/MAHAXVetoGovernor.sol":{"MAHAXVetoGovernor":{"abi":[{"inputs":[{"internalType":"contract IRegistry","name":"_registry","type":"address"},{"internalType":"uint256","name":"_initialVotingDelay","type":"uint256"},{"internalType":"uint256","name":"_initialVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"_initialProposalThreshold","type":"uint256"},{"internalType":"uint256","name":"__quorum","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldQuorum","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newQuorum","type":"uint256"}],"name":"QuorumUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalVotes","outputs":[{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newQuorum","type":"uint256"}],"name":"updateQuorum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2131:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"182:407:139","statements":[{"body":{"nodeType":"YulBlock","src":"229:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"238:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"246:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"231:6:139"},"nodeType":"YulFunctionCall","src":"231:22:139"},"nodeType":"YulExpressionStatement","src":"231:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"203:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"212:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"199:3:139"},"nodeType":"YulFunctionCall","src":"199:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"224:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"195:3:139"},"nodeType":"YulFunctionCall","src":"195:33:139"},"nodeType":"YulIf","src":"192:2:139"},{"nodeType":"YulVariableDeclaration","src":"264:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"283:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"277:5:139"},"nodeType":"YulFunctionCall","src":"277:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"268:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"356:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"365:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"373:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"358:6:139"},"nodeType":"YulFunctionCall","src":"358:22:139"},"nodeType":"YulExpressionStatement","src":"358:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"315:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"326:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"341:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"346:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"337:3:139"},"nodeType":"YulFunctionCall","src":"337:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"350:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"333:3:139"},"nodeType":"YulFunctionCall","src":"333:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"322:3:139"},"nodeType":"YulFunctionCall","src":"322:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"312:2:139"},"nodeType":"YulFunctionCall","src":"312:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"305:6:139"},"nodeType":"YulFunctionCall","src":"305:50:139"},"nodeType":"YulIf","src":"302:2:139"},{"nodeType":"YulAssignment","src":"391:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"401:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"391:6:139"}]},{"nodeType":"YulAssignment","src":"415:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"435:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"446:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"431:3:139"},"nodeType":"YulFunctionCall","src":"431:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"425:5:139"},"nodeType":"YulFunctionCall","src":"425:25:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"415:6:139"}]},{"nodeType":"YulAssignment","src":"459:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"479:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"490:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"475:3:139"},"nodeType":"YulFunctionCall","src":"475:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"469:5:139"},"nodeType":"YulFunctionCall","src":"469:25:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"459:6:139"}]},{"nodeType":"YulAssignment","src":"503:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"523:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"534:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"519:3:139"},"nodeType":"YulFunctionCall","src":"519:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"513:5:139"},"nodeType":"YulFunctionCall","src":"513:25:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"503:6:139"}]},{"nodeType":"YulAssignment","src":"547:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"567:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"578:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"563:3:139"},"nodeType":"YulFunctionCall","src":"563:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"557:5:139"},"nodeType":"YulFunctionCall","src":"557:26:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"547:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_IRegistry_$35522t_uint256t_uint256t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"116:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"127:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"139:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"147:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"155:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"163:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"171:6:139","type":""}],"src":"14:575:139"},{"body":{"nodeType":"YulBlock","src":"807:276:139","statements":[{"nodeType":"YulAssignment","src":"817:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"829:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"840:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"825:3:139"},"nodeType":"YulFunctionCall","src":"825:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"817:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"860:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"871:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"853:6:139"},"nodeType":"YulFunctionCall","src":"853:25:139"},"nodeType":"YulExpressionStatement","src":"853:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"898:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"909:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"894:3:139"},"nodeType":"YulFunctionCall","src":"894:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"914:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"887:6:139"},"nodeType":"YulFunctionCall","src":"887:34:139"},"nodeType":"YulExpressionStatement","src":"887:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"941:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"952:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"937:3:139"},"nodeType":"YulFunctionCall","src":"937:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"957:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"930:6:139"},"nodeType":"YulFunctionCall","src":"930:34:139"},"nodeType":"YulExpressionStatement","src":"930:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"984:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"995:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"980:3:139"},"nodeType":"YulFunctionCall","src":"980:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"1000:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"973:6:139"},"nodeType":"YulFunctionCall","src":"973:34:139"},"nodeType":"YulExpressionStatement","src":"973:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1038:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:139"},"nodeType":"YulFunctionCall","src":"1023:19:139"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1048:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1064:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1069:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1060:3:139"},"nodeType":"YulFunctionCall","src":"1060:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1073:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1056:3:139"},"nodeType":"YulFunctionCall","src":"1056:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1044:3:139"},"nodeType":"YulFunctionCall","src":"1044:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1016:6:139"},"nodeType":"YulFunctionCall","src":"1016:61:139"},"nodeType":"YulExpressionStatement","src":"1016:61:139"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"744:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"755:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"763:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"771:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"779:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"787:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"798:4:139","type":""}],"src":"594:489:139"},{"body":{"nodeType":"YulBlock","src":"1262:229:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1279:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1290:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1272:6:139"},"nodeType":"YulFunctionCall","src":"1272:21:139"},"nodeType":"YulExpressionStatement","src":"1272:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1313:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1324:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1309:3:139"},"nodeType":"YulFunctionCall","src":"1309:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1329:2:139","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1302:6:139"},"nodeType":"YulFunctionCall","src":"1302:30:139"},"nodeType":"YulExpressionStatement","src":"1302:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1352:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1363:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1348:3:139"},"nodeType":"YulFunctionCall","src":"1348:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1368:34:139","type":"","value":"GovernorSettings: voting period "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1341:6:139"},"nodeType":"YulFunctionCall","src":"1341:62:139"},"nodeType":"YulExpressionStatement","src":"1341:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1423:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1434:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1419:3:139"},"nodeType":"YulFunctionCall","src":"1419:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1439:9:139","type":"","value":"too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1412:6:139"},"nodeType":"YulFunctionCall","src":"1412:37:139"},"nodeType":"YulExpressionStatement","src":"1412:37:139"},{"nodeType":"YulAssignment","src":"1458:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1470:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1481:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1466:3:139"},"nodeType":"YulFunctionCall","src":"1466:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1458:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1239:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1253:4:139","type":""}],"src":"1088:403:139"},{"body":{"nodeType":"YulBlock","src":"1625:119:139","statements":[{"nodeType":"YulAssignment","src":"1635:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1647:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1658:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1643:3:139"},"nodeType":"YulFunctionCall","src":"1643:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1635:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1677:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1688:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1670:6:139"},"nodeType":"YulFunctionCall","src":"1670:25:139"},"nodeType":"YulExpressionStatement","src":"1670:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1715:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1726:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1711:3:139"},"nodeType":"YulFunctionCall","src":"1711:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1731:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1704:6:139"},"nodeType":"YulFunctionCall","src":"1704:34:139"},"nodeType":"YulExpressionStatement","src":"1704:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1586:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1597:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1605:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1616:4:139","type":""}],"src":"1496:248:139"},{"body":{"nodeType":"YulBlock","src":"1804:325:139","statements":[{"nodeType":"YulAssignment","src":"1814:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1828:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1831:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1824:3:139"},"nodeType":"YulFunctionCall","src":"1824:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1814:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1845:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1875:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"1881:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:139"},"nodeType":"YulFunctionCall","src":"1871:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1849:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1922:31:139","statements":[{"nodeType":"YulAssignment","src":"1924:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1938:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1946:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1934:3:139"},"nodeType":"YulFunctionCall","src":"1934:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1924:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1902:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1895:6:139"},"nodeType":"YulFunctionCall","src":"1895:26:139"},"nodeType":"YulIf","src":"1892:2:139"},{"body":{"nodeType":"YulBlock","src":"2012:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2033:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2040:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2045:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2036:3:139"},"nodeType":"YulFunctionCall","src":"2036:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2026:6:139"},"nodeType":"YulFunctionCall","src":"2026:31:139"},"nodeType":"YulExpressionStatement","src":"2026:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2077:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2080:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2070:6:139"},"nodeType":"YulFunctionCall","src":"2070:15:139"},"nodeType":"YulExpressionStatement","src":"2070:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2105:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2108:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2098:6:139"},"nodeType":"YulFunctionCall","src":"2098:15:139"},"nodeType":"YulExpressionStatement","src":"2098:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1968:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1991:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1999:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1988:2:139"},"nodeType":"YulFunctionCall","src":"1988:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1965:2:139"},"nodeType":"YulFunctionCall","src":"1965:38:139"},"nodeType":"YulIf","src":"1962:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1784:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1793:6:139","type":""}],"src":"1749:380:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_IRegistry_$35522t_uint256t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value4, value4) }\n        value0 := value\n        value1 := mload(add(headStart, 32))\n        value2 := mload(add(headStart, 64))\n        value3 := mload(add(headStart, 96))\n        value4 := mload(add(headStart, 128))\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorSettings: voting period \")\n        mstore(add(headStart, 96), \"too low\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040523480156200001257600080fd5b50604051620032f6380380620032f683398101604081905262000035916200039a565b8383836040518060400160405280601181526020017026a0a420ac2b32ba37a3b7bb32b93737b960791b81525080620000736200016c60201b60201c565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060601b60c05261012052505082516200011c9250600091506020840190620002f4565b506200012a90508362000187565b6200013582620001c8565b62000140816200026e565b5050506001600160601b0319606086901b16610140526200016181620002af565b50505050506200042c565b6040805180820190915260018152603160f81b602082015290565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b600081116200022d5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b606482015260840160405180910390fd5b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b600880549082905560408051828152602081018490527f6784e9bcb845caaa98267d7b0918f97d3d17f7cb35a05b52010f7eb587a0acb0910160405180910390a15050565b8280546200030290620003ef565b90600052602060002090601f01602090048101928262000326576000855562000371565b82601f106200034157805160ff191683800117855562000371565b8280016001018555821562000371579182015b828111156200037157825182559160200191906001019062000354565b506200037f92915062000383565b5090565b5b808211156200037f576000815560010162000384565b600080600080600060a08688031215620003b2578081fd5b85516001600160a01b0381168114620003c9578182fd5b602087015160408801516060890151608090990151929a91995097965090945092505050565b600181811c908216806200040457607f821691505b602082108114156200042657634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160601c60e05161010051610120516101405160601c612e6262000494600039600081816104cd015261179e01526000611a4101526000611a9001526000611a6b015260006119c4015260006119ee01526000611a180152612e626000f3fe6080604052600436106101bd5760003560e01c806370b0f660116100ed578063c28bc2fa11610090578063c28bc2fa146105c8578063c59057e4146105e8578063dd4e2ba514610608578063deaaa7cc1461064e578063ea0217cf14610682578063eb9019d4146106a2578063ece40cc1146106c2578063f23a6e61146106e2578063f8ce560a1461070e57600080fd5b806370b0f6601461049b5780637b103999146104bb5780637b3c71d3146105075780637d5e81e2146105275780639a802a6d14610547578063b58131b014610567578063bc197c811461057c578063c01f9e37146105a857600080fd5b806335680dc21161016057806335680dc2146103105780633932abb1146103305780633bccf4fd146103455780633e4f49e6146103655780634385963214610392578063544ffc9c146103dc57806354fd4d5014610431578063567813881461045b5780635f398a141461047b57600080fd5b806301ffc9a7146101cb57806302a251a314610200578063034201811461022357806306fdde0314610243578063150b7a02146102655780632656227d146102a95780632d63f693146102bc5780632fe3e261146102dc57600080fd5b366101c657005b005b600080fd5b3480156101d757600080fd5b506101eb6101e63660046126ae565b610730565b60405190151581526020015b60405180910390f35b34801561020c57600080fd5b5061021561079d565b6040519081526020016101f7565b34801561022f57600080fd5b5061021561023e366004612805565b6107ad565b34801561024f57600080fd5b506102586108a5565b6040516101f79190612a86565b34801561027157600080fd5b506102906102803660046123cc565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101f7565b6102156102b7366004612575565b610937565b3480156102c857600080fd5b506102156102d73660046126d6565b610a7f565b3480156102e857600080fd5b506102157fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561031c57600080fd5b506101c461032b3660046126d6565b610ab6565b34801561033c57600080fd5b50610215610afd565b34801561035157600080fd5b506102156103603660046128a8565b610b08565b34801561037157600080fd5b506103856103803660046126d6565b610b7e565b6040516101f79190612a5e565b34801561039e57600080fd5b506101eb6103ad366004612706565b60008281526007602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b3480156103e857600080fd5b506104166103f73660046126d6565b6000908152600760205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016101f7565b34801561043d57600080fd5b506040805180820190915260018152603160f81b6020820152610258565b34801561046757600080fd5b50610215610476366004612735565b610c8a565b34801561048757600080fd5b5061021561049636600461279f565b610cb3565b3480156104a757600080fd5b506101c46104b63660046126d6565b610cfd565b3480156104c757600080fd5b506104ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101f7565b34801561051357600080fd5b50610215610522366004612760565b610d41565b34801561053357600080fd5b50610215610542366004612600565b610d93565b34801561055357600080fd5b5061021561056236600461251f565b61103e565b34801561057357600080fd5b50610215611055565b34801561058857600080fd5b50610290610597366004612323565b63bc197c8160e01b95945050505050565b3480156105b457600080fd5b506102156105c33660046126d6565b611060565b3480156105d457600080fd5b506101c46105e33660046124c6565b61108f565b3480156105f457600080fd5b50610215610603366004612575565b611113565b34801561061457600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e90820152610258565b34801561065a57600080fd5b506102157f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561068e57600080fd5b506101c461069d3660046126d6565b61114d565b3480156106ae57600080fd5b506102156106bd36600461249b565b611191565b3480156106ce57600080fd5b506101c46106dd3660046126d6565b6111b2565b3480156106ee57600080fd5b506102906106fd366004612435565b63f23a6e6160e01b95945050505050565b34801561071a57600080fd5b506102156107293660046126d6565b5060085490565b60006001600160e01b0319821663bf26d89760e01b148061076157506001600160e01b031982166379dd796f60e01b145b8061077c57506001600160e01b03198216630271189760e51b145b8061079757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006107a860055490565b905090565b6000806108516108497fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c6040516107e99291906129e7565b60405180910390208b8051906020012060405160200161082e959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b604051602081830303815290604052805190602001206111f6565b868686611244565b90506108978a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250611262915050565b9a9950505050505050505050565b6060600080546108b490612d45565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090612d45565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b5050505050905090565b60008061094686868686611113565b9050600061095382610b7e565b9050600481600781111561097757634e487b7160e01b600052602160045260246000fd5b14806109a2575060058160078111156109a057634e487b7160e01b600052602160045260246000fd5b145b6109fd5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084015b60405180910390fd5b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610a5b82888888886113d2565b610a68828888888861147b565b610a7582888888886113d2565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b333014610ad55760405162461bcd60e51b81526004016109f490612a99565b610af1565b80610ae560026115a4565b14610aef57610ada565b505b610afa81611627565b50565b60006107a860045490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610b56906108499060800161082e565b9050610b738782886040518060200160405280600081525061166c565b979650505050505050565b6000818152600160205260408120600281015460ff1615610ba25750600792915050565b6002810154610100900460ff1615610bbd5750600292915050565b6000610bc884610a7f565b905080610c175760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016109f4565b438110610c28575060009392505050565b6000610c3385611060565b9050438110610c4757506001949350505050565b610c5085611698565b8015610c6f575060008581526007602052604090208054600190910154115b15610c7f57506004949350505050565b506003949350505050565b600080339050610cab8482856040518060200160405280600081525061166c565b949350505050565b600080339050610b7387828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611262915050565b333014610d1c5760405162461bcd60e51b81526004016109f490612a99565b610d38565b80610d2c60026115a4565b14610d3657610d21565b505b610afa816116cf565b600080339050610d8986828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166c92505050565b9695505050505050565b6000610d9d611055565b610dac336106bd600143612cfe565b1015610e145760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b60648201526084016109f4565b6000610e298686868680519060200120611113565b90508451865114610e4c5760405162461bcd60e51b81526004016109f490612acb565b8351865114610e6d5760405162461bcd60e51b81526004016109f490612acb565b6000865111610eb95760405162461bcd60e51b815260206004820152601860248201527711dbdd995c9b9bdc8e88195b5c1d1e481c1c9bdc1bdcd85b60421b60448201526064016109f4565b600081815260016020908152604091829020825191820190925281546001600160401b03169081905215610f395760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016109f4565b6000610f4b610f46610afd565b611710565b610f5443611710565b610f5e9190612cd3565b90506000610f6d610f4661079d565b610f779083612cd3565b9050610f83838361177c565b610f90600184018261177c565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115610fdc57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561100f57816020015b6060815260200190600190039081610ffa5790505b508c88888e60405161102999989796959493929190612b0c565b60405180910390a15091979650505050505050565b600061104b84848461179a565b90505b9392505050565b60006107a860065490565b60008181526001602081815260408084208151928301909152909101546001600160401b031690819052610aa7565b3330146110ae5760405162461bcd60e51b81526004016109f490612a99565b6110ca565b806110be60026115a4565b146110c8576110b3565b505b61110c8483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506118af915050565b5050505050565b60008484848460405160200161112c9493929190612a13565b60408051601f19818403018152919052805160209091012095945050505050565b33301461116c5760405162461bcd60e51b81526004016109f490612a99565b611188565b8061117c60026115a4565b1461118657611171565b505b610afa816118d5565b600061104e83836111ad60408051602081019091526000815290565b61179a565b3330146111d15760405162461bcd60e51b81526004016109f490612a99565b6111ed565b806111e160026115a4565b146111eb576111d6565b505b610afa81611976565b60006107976112036119b7565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061125587878787611ade565b91509150610a7581611bc1565b600085815260016020819052604082209061127c88610b7e565b600781111561129b57634e487b7160e01b600052602160045260246000fd5b146112f45760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016109f4565b604080516020810190915281546001600160401b03169081905260009061131d9088908661179a565b905061132c8888888488611dbd565b835161137e57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516113719493929190612bfa565b60405180910390a2610b73565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516113bf959493929190612c22565b60405180910390a2979650505050505050565b61110c565b845181101561147357306001600160a01b031685828151811061140a57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156114635761146383828151811061144457634e487b7160e01b600052603260045260246000fd5b6020026020010151805190602001206002611f3c90919063ffffffff16565b61146c81612d80565b90506113d7565b505050505050565b6000604051806060016040528060278152602001612ddd60279139905060005b855181101561159b576000808783815181106114c757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168784815181106114f857634e487b7160e01b600052603260045260246000fd5b602002602001015187858151811061152057634e487b7160e01b600052603260045260246000fd5b602002602001015160405161153591906129f7565b60006040518083038185875af1925050503d8060008114611572576040519150601f19603f3d011682016040523d82523d6000602084013e611577565b606091505b5091509150611587828286611f82565b5050508061159490612d80565b905061149b565b50505050505050565b60006115c38254600f81810b810b600160801b909204810b900b131590565b156115e157604051631ed9509560e11b815260040160405180910390fd5b508054600f90810b80820b820b600090815260018085016020526040822080549290558454920190920b6001600160801b03166001600160801b03199091161790915590565b600880549082905560408051828152602081018490527f6784e9bcb845caaa98267d7b0918f97d3d17f7cb35a05b52010f7eb587a0acb0910160405180910390a15050565b600061168f8585858561168a60408051602081019091526000815290565b611262565b95945050505050565b6000818152600760205260408120600281015460018201546116ba9190612cbb565b6116c661072985610a7f565b11159392505050565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b60006001600160401b038211156117785760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016109f4565b5090565b815467ffffffffffffffff19166001600160401b0391909116179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f557600080fd5b505afa158015611809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182d9190612307565b604051630748d63560e31b81526001600160a01b038681166004830152602482018690529190911690633a46b1a89060440160206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906126ee565b606061104b848484604051806060016040528060298152602001612e0460299139611fbb565b600081116119355760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016109f4565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611a1057507f000000000000000000000000000000000000000000000000000000000000000046145b15611a3a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115611b0b5750600090506003611bb8565b8460ff16601b14158015611b2357508460ff16601c14155b15611b345750600090506004611bb8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b88573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611bb157600060019250925050611bb8565b9150600090505b94509492505050565b6000816004811115611be357634e487b7160e01b600052602160045260246000fd5b1415611bec5750565b6001816004811115611c0e57634e487b7160e01b600052602160045260246000fd5b1415611c575760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016109f4565b6002816004811115611c7957634e487b7160e01b600052602160045260246000fd5b1415611cc75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f4565b6003816004811115611ce957634e487b7160e01b600052602160045260246000fd5b1415611d425760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f4565b6004816004811115611d6457634e487b7160e01b600052602160045260246000fd5b1415610afa5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016109f4565b60008581526007602090815260408083206001600160a01b0388168452600381019092529091205460ff1615611e455760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016109f4565b6001600160a01b03851660009081526003820160205260408120805460ff1916600117905560ff168460ff161415611e965782816000016000828254611e8b9190612cbb565b909155506114739050565b60ff841660011415611eb65782816001016000828254611e8b9190612cbb565b60ff841660021415611ed65782816002016000828254611e8b9190612cbb565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016109f4565b8154600160801b90819004600f90810b80820b820b6000908152600180870160205260409091209490945584549301900b6001600160801b039081169091029116179055565b60608315611f9157508161104e565b825115611fa15782518084602001fd5b8160405162461bcd60e51b81526004016109f49190612a86565b60608247101561201c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109f4565b6001600160a01b0385163b6120735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f4565b600080866001600160a01b0316858760405161208f91906129f7565b60006040518083038185875af1925050503d80600081146120cc576040519150601f19603f3d011682016040523d82523d6000602084013e6120d1565b606091505b5091509150610b73828286611f82565b60006001600160401b038311156120fa576120fa612db1565b61210d601f8401601f1916602001612c68565b905082815283838301111561212157600080fd5b828260208301376000602084830101529392505050565b600082601f830112612148578081fd5b8135602061215d61215883612c98565b612c68565b80838252828201915082860187848660051b890101111561217c578586fd5b855b858110156121a357813561219181612dc7565b8452928401929084019060010161217e565b5090979650505050505050565b600082601f8301126121c0578081fd5b813560206121d061215883612c98565b80838252828201915082860187848660051b89010111156121ef578586fd5b855b858110156121a35781356001600160401b0381111561220e578788fd5b61221c8a87838c01016122d2565b85525092840192908401906001016121f1565b600082601f83011261223f578081fd5b8135602061224f61215883612c98565b80838252828201915082860187848660051b890101111561226e578586fd5b855b858110156121a357813584529284019290840190600101612270565b60008083601f84011261229d578182fd5b5081356001600160401b038111156122b3578182fd5b6020830191508360208285010111156122cb57600080fd5b9250929050565b600082601f8301126122e2578081fd5b61104e838335602085016120e1565b803560ff8116811461230257600080fd5b919050565b600060208284031215612318578081fd5b815161104e81612dc7565b600080600080600060a0868803121561233a578081fd5b853561234581612dc7565b9450602086013561235581612dc7565b935060408601356001600160401b0380821115612370578283fd5b61237c89838a0161222f565b94506060880135915080821115612391578283fd5b61239d89838a0161222f565b935060808801359150808211156123b2578283fd5b506123bf888289016122d2565b9150509295509295909350565b600080600080608085870312156123e1578384fd5b84356123ec81612dc7565b935060208501356123fc81612dc7565b92506040850135915060608501356001600160401b0381111561241d578182fd5b612429878288016122d2565b91505092959194509250565b600080600080600060a0868803121561244c578081fd5b853561245781612dc7565b9450602086013561246781612dc7565b9350604086013592506060860135915060808601356001600160401b0381111561248f578182fd5b6123bf888289016122d2565b600080604083850312156124ad578182fd5b82356124b881612dc7565b946020939093013593505050565b600080600080606085870312156124db578182fd5b84356124e681612dc7565b93506020850135925060408501356001600160401b03811115612507578283fd5b6125138782880161228c565b95989497509550505050565b600080600060608486031215612533578081fd5b833561253e81612dc7565b92506020840135915060408401356001600160401b0381111561255f578182fd5b61256b868287016122d2565b9150509250925092565b6000806000806080858703121561258a578182fd5b84356001600160401b03808211156125a0578384fd5b6125ac88838901612138565b955060208701359150808211156125c1578384fd5b6125cd8883890161222f565b945060408701359150808211156125e2578384fd5b506125ef878288016121b0565b949793965093946060013593505050565b60008060008060808587031215612615578182fd5b84356001600160401b038082111561262b578384fd5b61263788838901612138565b9550602087013591508082111561264c578384fd5b6126588883890161222f565b9450604087013591508082111561266d578384fd5b612679888389016121b0565b9350606087013591508082111561268e578283fd5b508501601f8101871361269f578182fd5b612429878235602084016120e1565b6000602082840312156126bf578081fd5b81356001600160e01b03198116811461104e578182fd5b6000602082840312156126e7578081fd5b5035919050565b6000602082840312156126ff578081fd5b5051919050565b60008060408385031215612718578182fd5b82359150602083013561272a81612dc7565b809150509250929050565b60008060408385031215612747578182fd5b82359150612757602084016122f1565b90509250929050565b60008060008060608587031215612775578182fd5b84359350612785602086016122f1565b925060408501356001600160401b03811115612507578283fd5b6000806000806000608086880312156127b6578283fd5b853594506127c6602087016122f1565b935060408601356001600160401b03808211156127e1578485fd5b6127ed89838a0161228c565b909550935060608801359150808211156123b2578283fd5b60008060008060008060008060e0898b031215612820578586fd5b8835975061283060208a016122f1565b965060408901356001600160401b038082111561284b578788fd5b6128578c838d0161228c565b909850965060608b013591508082111561286f578485fd5b5061287c8b828c016122d2565b94505061288b60808a016122f1565b925060a0890135915060c089013590509295985092959890939650565b600080600080600060a086880312156128bf578283fd5b853594506128cf602087016122f1565b93506128dd604087016122f1565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b8381101561292d5781516001600160a01b031687529582019590820190600101612908565b509495945050505050565b600081518084526020808501808196508360051b81019150828601855b8581101561297f57828403895261296d8483516129bb565b98850198935090840190600101612955565b5091979650505050505050565b6000815180845260208085019450808401835b8381101561292d5781518752958201959082019060010161299f565b600081518084526129d3816020860160208601612d15565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b60008251612a09818460208701612d15565b9190910192915050565b608081526000612a2660808301876128f5565b8281036020840152612a38818761298c565b90508281036040840152612a4c8186612938565b91505082606083015295945050505050565b6020810160088310612a8057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600061104e60208301846129bb565b602080825260189082015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b604082015260600190565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60006101208b8352602060018060a01b038c1681850152816040850152612b358285018c6128f5565b91508382036060850152612b49828b61298c565b915083820360808501528189518084528284019150828160051b850101838c01865b83811015612b9957601f19878403018552612b878383516129bb565b94860194925090850190600101612b6b565b505086810360a0880152612bad818c612938565b945050505050612bc860c08401876001600160401b03169052565b6001600160401b03851660e0840152828103610100840152612bea81856129bb565b9c9b505050505050505050505050565b84815260ff84166020820152826040820152608060608201526000610d8960808301846129bb565b85815260ff8516602082015283604082015260a060608201526000612c4a60a08301856129bb565b8281036080840152612c5c81856129bb565b98975050505050505050565b604051601f8201601f191681016001600160401b0381118282101715612c9057612c90612db1565b604052919050565b60006001600160401b03821115612cb157612cb1612db1565b5060051b60200190565b60008219821115612cce57612cce612d9b565b500190565b60006001600160401b03808316818516808303821115612cf557612cf5612d9b565b01949350505050565b600082821015612d1057612d10612d9b565b500390565b60005b83811015612d30578181015183820152602001612d18565b83811115612d3f576000848401525b50505050565b600181811c90821680612d5957607f821691505b60208210811415612d7a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612d9457612d94612d9b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610afa57600080fdfe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212208d65a78adba0c644f58c109bb3ede1e03ed5dda766bcccae353f0ae8cab04f3b64736f6c63430008040033","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x32F6 CODESIZE SUB DUP1 PUSH3 0x32F6 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0x39A JUMP JUMPDEST DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH17 0x26A0A420AC2B32BA37A3B7BB32B93737B9 PUSH1 0x79 SHL DUP2 MSTORE POP DUP1 PUSH3 0x73 PUSH3 0x16C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 KECCAK256 DUP3 MLOAD DUP4 DUP4 ADD KECCAK256 PUSH1 0xE0 DUP3 SWAP1 MSTORE PUSH2 0x100 DUP2 SWAP1 MSTORE CHAINID PUSH1 0xA0 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP9 ADD DUP2 SWAP1 MSTORE DUP2 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE ADDRESS DUP2 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0xC0 ADD SWAP1 MSTORE DUP1 MLOAD SWAP5 ADD SWAP4 SWAP1 SWAP4 KECCAK256 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0x80 MSTORE ADDRESS PUSH1 0x60 SHL PUSH1 0xC0 MSTORE PUSH2 0x120 MSTORE POP POP DUP3 MLOAD PUSH3 0x11C SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x2F4 JUMP JUMPDEST POP PUSH3 0x12A SWAP1 POP DUP4 PUSH3 0x187 JUMP JUMPDEST PUSH3 0x135 DUP3 PUSH3 0x1C8 JUMP JUMPDEST PUSH3 0x140 DUP2 PUSH3 0x26E JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP7 SWAP1 SHL AND PUSH2 0x140 MSTORE PUSH3 0x161 DUP2 PUSH3 0x2AF JUMP JUMPDEST POP POP POP POP POP PUSH3 0x42C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH3 0x22D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x6784E9BCB845CAAA98267D7B0918F97D3D17F7CB35A05B52010F7EB587A0ACB0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x302 SWAP1 PUSH3 0x3EF JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x326 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x371 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x341 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x371 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x371 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x371 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x354 JUMP JUMPDEST POP PUSH3 0x37F SWAP3 SWAP2 POP PUSH3 0x383 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x37F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x384 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x3B2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x3C9 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP9 ADD MLOAD PUSH1 0x60 DUP10 ADD MLOAD PUSH1 0x80 SWAP1 SWAP10 ADD MLOAD SWAP3 SWAP11 SWAP2 SWAP10 POP SWAP8 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x404 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x426 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0x60 SHR PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH1 0x60 SHR PUSH2 0x2E62 PUSH3 0x494 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4CD ADD MSTORE PUSH2 0x179E ADD MSTORE PUSH1 0x0 PUSH2 0x1A41 ADD MSTORE PUSH1 0x0 PUSH2 0x1A90 ADD MSTORE PUSH1 0x0 PUSH2 0x1A6B ADD MSTORE PUSH1 0x0 PUSH2 0x19C4 ADD MSTORE PUSH1 0x0 PUSH2 0x19EE ADD MSTORE PUSH1 0x0 PUSH2 0x1A18 ADD MSTORE PUSH2 0x2E62 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BD JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70B0F660 GT PUSH2 0xED JUMPI DUP1 PUSH4 0xC28BC2FA GT PUSH2 0x90 JUMPI DUP1 PUSH4 0xC28BC2FA EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0xC59057E4 EQ PUSH2 0x5E8 JUMPI DUP1 PUSH4 0xDD4E2BA5 EQ PUSH2 0x608 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0xEA0217CF EQ PUSH2 0x682 JUMPI DUP1 PUSH4 0xEB9019D4 EQ PUSH2 0x6A2 JUMPI DUP1 PUSH4 0xECE40CC1 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xF8CE560A EQ PUSH2 0x70E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70B0F660 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x7D5E81E2 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0x9A802A6D EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0xC01F9E37 EQ PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35680DC2 GT PUSH2 0x160 JUMPI DUP1 PUSH4 0x35680DC2 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x43859632 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x544FFC9C EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x45B JUMPI DUP1 PUSH4 0x5F398A14 EQ PUSH2 0x47B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x3420181 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x2656227D EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x2D63F693 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0x2FE3E261 EQ PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1C6 JUMPI STOP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EB PUSH2 0x1E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x26AE JUMP JUMPDEST PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x79D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x2805 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x258 PUSH2 0x8A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CC JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x2B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2575 JUMP JUMPDEST PUSH2 0x937 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xA7F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x32B CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xAB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0xAFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x28A8 JUMP JUMPDEST PUSH2 0xB08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x385 PUSH2 0x380 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xB7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x2A5E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EB PUSH2 0x3AD CALLDATASIZE PUSH1 0x4 PUSH2 0x2706 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x416 PUSH2 0x3F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x476 CALLDATASIZE PUSH1 0x4 PUSH2 0x2735 JUMP JUMPDEST PUSH2 0xC8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x279F JUMP JUMPDEST PUSH2 0xCB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EF PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2760 JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x533 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x2600 JUMP JUMPDEST PUSH2 0xD93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x251F JUMP JUMPDEST PUSH2 0x103E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x1055 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x588 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x597 CALLDATASIZE PUSH1 0x4 PUSH2 0x2323 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x5C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0x1060 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x5E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x24C6 JUMP JUMPDEST PUSH2 0x108F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x603 CALLDATASIZE PUSH1 0x4 PUSH2 0x2575 JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x737570706F72743D627261766F2671756F72756D3D666F722C6162737461696E SWAP1 DUP3 ADD MSTORE PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x69D CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0x114D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x249B JUMP JUMPDEST PUSH2 0x1191 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x6DD CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0x11B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x6FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2435 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x729 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xBF26D897 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x761 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x79DD796F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x77C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ JUMPDEST DUP1 PUSH2 0x797 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x851 PUSH2 0x849 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x29E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP12 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x82E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x11F6 JUMP JUMPDEST DUP7 DUP7 DUP7 PUSH2 0x1244 JUMP JUMPDEST SWAP1 POP PUSH2 0x897 DUP11 DUP3 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP14 SWAP3 POP PUSH2 0x1262 SWAP2 POP POP JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x8B4 SWAP1 PUSH2 0x2D45 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 0x8E0 SWAP1 PUSH2 0x2D45 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x92D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x902 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x92D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x910 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x946 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1113 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x953 DUP3 PUSH2 0xB7E JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x977 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x9A2 JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x9A0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x9FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420737563636573736675 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 DUP2 MSTORE PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xA5B DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x13D2 JUMP JUMPDEST PUSH2 0xA68 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x147B JUMP JUMPDEST PUSH2 0xA75 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x13D2 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xAD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0xAF1 JUMP JUMPDEST DUP1 PUSH2 0xAE5 PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0xAEF JUMPI PUSH2 0xADA JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x1627 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xB56 SWAP1 PUSH2 0x849 SWAP1 PUSH1 0x80 ADD PUSH2 0x82E JUMP JUMPDEST SWAP1 POP PUSH2 0xB73 DUP8 DUP3 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x166C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xBA2 JUMPI POP PUSH1 0x7 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xBBD JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC8 DUP5 PUSH2 0xA7F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xC17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20756E6B6E6F776E2070726F706F73616C206964000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST NUMBER DUP2 LT PUSH2 0xC28 JUMPI POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC33 DUP6 PUSH2 0x1060 JUMP JUMPDEST SWAP1 POP NUMBER DUP2 LT PUSH2 0xC47 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC50 DUP6 PUSH2 0x1698 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC6F JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0xC7F JUMPI POP PUSH1 0x4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x3 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xCAB DUP5 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x166C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xB73 DUP8 DUP3 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x1262 SWAP2 POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xD1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0xD38 JUMP JUMPDEST DUP1 PUSH2 0xD2C PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0xD36 JUMPI PUSH2 0xD21 JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x16CF JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xD89 DUP7 DUP3 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x166C SWAP3 POP POP POP JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD9D PUSH2 0x1055 JUMP JUMPDEST PUSH2 0xDAC CALLER PUSH2 0x6BD PUSH1 0x1 NUMBER PUSH2 0x2CFE JUMP JUMPDEST LT ISZERO PUSH2 0xE14 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73657220766F7465732062656C6F772070 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE29 DUP7 DUP7 DUP7 DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1113 JUMP JUMPDEST SWAP1 POP DUP5 MLOAD DUP7 MLOAD EQ PUSH2 0xE4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2ACB JUMP JUMPDEST DUP4 MLOAD DUP7 MLOAD EQ PUSH2 0xE6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2ACB JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD GT PUSH2 0xEB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x11DBDD995C9B9BDC8E88195B5C1D1E481C1C9BDC1BDCD85B PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE ISZERO PUSH2 0xF39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C20616C7265616479206578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF4B PUSH2 0xF46 PUSH2 0xAFD JUMP JUMPDEST PUSH2 0x1710 JUMP JUMPDEST PUSH2 0xF54 NUMBER PUSH2 0x1710 JUMP JUMPDEST PUSH2 0xF5E SWAP2 SWAP1 PUSH2 0x2CD3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF6D PUSH2 0xF46 PUSH2 0x79D JUMP JUMPDEST PUSH2 0xF77 SWAP1 DUP4 PUSH2 0x2CD3 JUMP JUMPDEST SWAP1 POP PUSH2 0xF83 DUP4 DUP4 PUSH2 0x177C JUMP JUMPDEST PUSH2 0xF90 PUSH1 0x1 DUP5 ADD DUP3 PUSH2 0x177C JUMP JUMPDEST PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP5 CALLER DUP12 DUP12 DUP14 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xFDC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x100F JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xFFA JUMPI SWAP1 POP JUMPDEST POP DUP13 DUP9 DUP9 DUP15 PUSH1 0x40 MLOAD PUSH2 0x1029 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x104B DUP5 DUP5 DUP5 PUSH2 0x179A JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0xAA7 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x10AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0x10CA JUMP JUMPDEST DUP1 PUSH2 0x10BE PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0x10C8 JUMPI PUSH2 0x10B3 JUMP JUMPDEST POP JUMPDEST PUSH2 0x110C DUP5 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x18AF SWAP2 POP POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x112C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A13 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 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x116C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0x1188 JUMP JUMPDEST DUP1 PUSH2 0x117C PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0x1186 JUMPI PUSH2 0x1171 JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x18D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x104E DUP4 DUP4 PUSH2 0x11AD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x179A JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST DUP1 PUSH2 0x11E1 PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0x11EB JUMPI PUSH2 0x11D6 JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x1976 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x797 PUSH2 0x1203 PUSH2 0x19B7 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1255 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1ADE JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xA75 DUP2 PUSH2 0x1BC1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH2 0x127C DUP9 PUSH2 0xB7E JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x129B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x12F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20766F7465206E6F742063757272656E746C7920616374 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x697665 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x131D SWAP1 DUP9 SWAP1 DUP7 PUSH2 0x179A JUMP JUMPDEST SWAP1 POP PUSH2 0x132C DUP9 DUP9 DUP9 DUP5 DUP9 PUSH2 0x1DBD JUMP JUMPDEST DUP4 MLOAD PUSH2 0x137E JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP10 DUP9 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x1371 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xB73 JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE2BABFBAC5889A709B63BB7F598B324E08BC5A4FB9EC647FB3CBC9EC07EB8712 DUP10 DUP9 DUP5 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x13BF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x110C JUMP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1473 JUMPI ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x140A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1463 JUMPI PUSH2 0x1463 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1444 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x2 PUSH2 0x1F3C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x146C DUP2 PUSH2 0x2D80 JUMP JUMPDEST SWAP1 POP PUSH2 0x13D7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2DDD PUSH1 0x27 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 DUP8 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x14C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x14F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1520 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1535 SWAP2 SWAP1 PUSH2 0x29F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1572 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1587 DUP3 DUP3 DUP7 PUSH2 0x1F82 JUMP JUMPDEST POP POP POP DUP1 PUSH2 0x1594 SWAP1 PUSH2 0x2D80 JUMP JUMPDEST SWAP1 POP PUSH2 0x149B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15C3 DUP3 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SGT ISZERO SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x15E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ED95095 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SSTORE DUP5 SLOAD SWAP3 ADD SWAP1 SWAP3 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x6784E9BCB845CAAA98267D7B0918F97D3D17F7CB35A05B52010F7EB587A0ACB0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168F DUP6 DUP6 DUP6 DUP6 PUSH2 0x168A PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1262 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH2 0x16BA SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST PUSH2 0x16C6 PUSH2 0x729 DUP6 PUSH2 0xA7F JUMP JUMPDEST GT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x182D SWAP2 SWAP1 PUSH2 0x2307 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x748D635 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A46B1A8 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x188B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x104B SWAP2 SWAP1 PUSH2 0x26EE JUMP JUMPDEST PUSH1 0x60 PUSH2 0x104B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2E04 PUSH1 0x29 SWAP2 CODECOPY PUSH2 0x1FBB JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1935 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1A10 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1A3A JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 GT ISZERO PUSH2 0x1B0B JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x1BB8 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x1B23 JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x1B34 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x1BB8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BB1 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x1BB8 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1BE3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1BEC JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1C0E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1C57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x45434453413A20696E76616C6964207369676E6174757265 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1C79 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1CC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1CE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1D42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1D64 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xAFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x3 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1E45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20766F746520616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x191E4818D85CDD PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xFF AND DUP5 PUSH1 0xFF AND EQ ISZERO PUSH2 0x1E96 JUMPI DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E8B SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1473 SWAP1 POP JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x1 EQ ISZERO PUSH2 0x1EB6 JUMPI DUP3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E8B SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x2 EQ ISZERO PUSH2 0x1ED6 JUMPI DUP3 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E8B SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20696E76616C6964207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH21 0x6C756520666F7220656E756D20566F746554797065 PUSH1 0x58 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DUP2 SWAP1 DIV PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP8 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP5 SLOAD SWAP4 ADD SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MUL SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1F91 JUMPI POP DUP2 PUSH2 0x104E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1FA1 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 0x9F4 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x201C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x2073 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x208F SWAP2 SWAP1 PUSH2 0x29F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20CC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x20D1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0xB73 DUP3 DUP3 DUP7 PUSH2 0x1F82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x20FA JUMPI PUSH2 0x20FA PUSH2 0x2DB1 JUMP JUMPDEST PUSH2 0x210D PUSH1 0x1F DUP5 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2C68 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2148 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x215D PUSH2 0x2158 DUP4 PUSH2 0x2C98 JUMP JUMPDEST PUSH2 0x2C68 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x217C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x21A3 JUMPI DUP2 CALLDATALOAD PUSH2 0x2191 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x217E JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21C0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x21D0 PUSH2 0x2158 DUP4 PUSH2 0x2C98 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x21EF JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x21A3 JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x220E JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x221C DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x22D2 JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x21F1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x223F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x224F PUSH2 0x2158 DUP4 PUSH2 0x2C98 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x226E JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x21A3 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x229D JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x22B3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x22CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x22E2 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x104E DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x20E1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2318 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x104E DUP2 PUSH2 0x2DC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x233A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2345 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2355 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2370 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x237C DUP10 DUP4 DUP11 ADD PUSH2 0x222F JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2391 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x239D DUP10 DUP4 DUP11 ADD PUSH2 0x222F JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x23B2 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x23BF DUP9 DUP3 DUP10 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x23E1 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x23EC DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x23FC DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x241D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2429 DUP8 DUP3 DUP9 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x244C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2457 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2467 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x248F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x23BF DUP9 DUP3 DUP10 ADD PUSH2 0x22D2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24AD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x24B8 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24DB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x24E6 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2507 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2513 DUP8 DUP3 DUP9 ADD PUSH2 0x228C JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2533 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x253E DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x255F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x256B DUP7 DUP3 DUP8 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x258A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x25A0 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x25AC DUP9 DUP4 DUP10 ADD PUSH2 0x2138 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25C1 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x25CD DUP9 DUP4 DUP10 ADD PUSH2 0x222F JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25E2 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x25EF DUP8 DUP3 DUP9 ADD PUSH2 0x21B0 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2615 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x262B JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2637 DUP9 DUP4 DUP10 ADD PUSH2 0x2138 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x264C JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2658 DUP9 DUP4 DUP10 ADD PUSH2 0x222F JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x266D JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2679 DUP9 DUP4 DUP10 ADD PUSH2 0x21B0 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x268E JUMPI DUP3 DUP4 REVERT JUMPDEST POP DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x269F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2429 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x20E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26BF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x104E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26E7 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26FF JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2718 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x272A DUP2 PUSH2 0x2DC7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2747 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x2757 PUSH1 0x20 DUP5 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2775 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH2 0x2785 PUSH1 0x20 DUP7 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2507 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x27B6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x27C6 PUSH1 0x20 DUP8 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27E1 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x27ED DUP10 DUP4 DUP11 ADD PUSH2 0x228C JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x23B2 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2820 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x2830 PUSH1 0x20 DUP11 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x284B JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x2857 DUP13 DUP4 DUP14 ADD PUSH2 0x228C JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x286F JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x287C DUP12 DUP3 DUP13 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP5 POP POP PUSH2 0x288B PUSH1 0x80 DUP11 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x28BF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x28CF PUSH1 0x20 DUP8 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x28DD PUSH1 0x40 DUP8 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x292D JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2908 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP4 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP3 DUP7 ADD DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x297F JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x296D DUP5 DUP4 MLOAD PUSH2 0x29BB JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2955 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x292D JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x299F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x29D3 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2D15 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2A09 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2D15 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2A26 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x28F5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2A38 DUP2 DUP8 PUSH2 0x298C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2A4C DUP2 DUP7 PUSH2 0x2938 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x8 DUP4 LT PUSH2 0x2A80 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x104E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH24 0x476F7665726E6F723A206F6E6C79476F7665726E616E6365 PUSH1 0x40 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20696E76616C69642070726F706F73616C206C656E6774 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP12 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP6 ADD MSTORE DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x2B35 DUP3 DUP6 ADD DUP13 PUSH2 0x28F5 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x2B49 DUP3 DUP12 PUSH2 0x298C JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x80 DUP6 ADD MSTORE DUP2 DUP10 MLOAD DUP1 DUP5 MSTORE DUP3 DUP5 ADD SWAP2 POP DUP3 DUP2 PUSH1 0x5 SHL DUP6 ADD ADD DUP4 DUP13 ADD DUP7 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B99 JUMPI PUSH1 0x1F NOT DUP8 DUP5 SUB ADD DUP6 MSTORE PUSH2 0x2B87 DUP4 DUP4 MLOAD PUSH2 0x29BB JUMP JUMPDEST SWAP5 DUP7 ADD SWAP5 SWAP3 POP SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B6B JUMP JUMPDEST POP POP DUP7 DUP2 SUB PUSH1 0xA0 DUP9 ADD MSTORE PUSH2 0x2BAD DUP2 DUP13 PUSH2 0x2938 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x2BC8 PUSH1 0xC0 DUP5 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0xE0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x2BEA DUP2 DUP6 PUSH2 0x29BB JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xD89 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x29BB JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C4A PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x29BB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C5C DUP2 DUP6 PUSH2 0x29BB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C90 JUMPI PUSH2 0x2C90 PUSH2 0x2DB1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2CB1 JUMPI PUSH2 0x2CB1 PUSH2 0x2DB1 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2CCE JUMPI PUSH2 0x2CCE PUSH2 0x2D9B JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2CF5 JUMPI PUSH2 0x2CF5 PUSH2 0x2D9B JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2D10 JUMPI PUSH2 0x2D10 PUSH2 0x2D9B JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2D30 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2D18 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2D3F JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2D59 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2D7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2D94 JUMPI PUSH2 0x2D94 PUSH2 0x2D9B JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAFA JUMPI PUSH1 0x0 DUP1 REVERT INVALID SELFBALANCE PUSH16 0x7665726E6F723A2063616C6C20726576 PUSH6 0x727465642077 PUSH10 0x74686F7574206D657373 PUSH2 0x6765 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2063616C6C KECCAK256 PUSH24 0x6974682076616C7565206661696C6564A264697066735822 SLT KECCAK256 DUP14 PUSH6 0xA78ADBA0C644 CREATE2 DUP13 LT SWAP12 0xB3 0xED 0xE1 0xE0 RETURNDATACOPY 0xD5 0xDD 0xA7 PUSH7 0xBCCCAE353F0AE8 0xCA 0xB0 0x4F EXTCODESIZE PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"537:2466:71:-:0;;;771:444;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1038:19;1071:20;1105:25;3447:88:5;;;;;;;;;;;;;-1:-1:-1;;;3447:88:5;;;3487:5;3494:9;:7;;;:9;;:::i;:::-;2541:22:44;;;;;;;;;;2597:25;;;;;;2778;;;;2813:31;;;;2873:13;2854:32;;;;-1:-1:-1;3633:73:44;;2651:117;3633:73;;;853:25:139;;;894:18;;;887:34;;;-1:-1:-1;937:18:139;;930:34;;;980:18;;;973:34;;;;3700:4:44;1023:19:139;;;1016:61;3633:73:44;;;;;;;;;;825:19:139;;3633:73:44;;3623:84;;;;;;;;2541:22;;2597:25;;2896:85;;3014:4;2991:28;;;;3029:21;;-1:-1:-1;;3515:13:5;;::::1;::::0;-1:-1:-1;3515:5:5::1;::::0;-1:-1:-1;3515:13:5::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;892:35:10;;-1:-1:-1;908:18:10;892:15;:35::i;:::-;937:37;954:19;937:16;:37::i;:::-;984:47;1006:24;984:21;:47::i;:::-;-1:-1:-1;;;;;;;;;1155:20:71::2;::::0;;;;::::2;::::0;1185:23:::2;1199:8:::0;1185:13:::2;:23::i;:::-;771:444:::0;;;;;537:2466;;4786:99:5;4868:10;;;;;;;;;;;;-1:-1:-1;;;4868:10:5;;;;;4786:99::o;2622:171:10:-;2718:12;;2703:44;;;1670:25:139;;;1726:2;1711:18;;1704:34;;;2703:44:10;;1643:18:139;2703:44:10;;;;;;;2757:12;:29;2622:171::o;2913:316::-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:10;;1290:2:139;3048:71:10;;;1272:21:139;1329:2;1309:18;;;1302:30;1368:34;1348:18;;;1341:62;-1:-1:-1;;;1419:18:139;;;1412:37;1466:19;;3048:71:10;;;;;;;;3150:13;;3134:47;;;1670:25:139;;;1726:2;1711:18;;1704:34;;;3134:47:10;;1643:18:139;3134:47:10;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;1670:25:139;;;1726:2;1711:18;;1704:34;;;3452:62:10;;1643:18:139;3452:62:10;;;;;;;3524:18;:41;3359:213::o;2819:182:71:-;2908:7;;;2925:19;;;;2959:35;;;1670:25:139;;;1726:2;1711:18;;1704:34;;;2959:35:71;;1643:18:139;2959:35:71;;;;;;;2819:182;;:::o;537:2466::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;537:2466:71;;;-1:-1:-1;537:2466:71;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:575:139;139:6;147;155;163;171;224:3;212:9;203:7;199:23;195:33;192:2;;;246:6;238;231:22;192:2;277:16;;-1:-1:-1;;;;;322:31:139;;312:42;;302:2;;373:6;365;358:22;302:2;446;431:18;;425:25;490:2;475:18;;469:25;534:2;519:18;;513:25;578:3;563:19;;;557:26;401:5;;425:25;;-1:-1:-1;469:25:139;513;-1:-1:-1;557:26:139;;-1:-1:-1;182:407:139;-1:-1:-1;;;182:407:139:o;1749:380::-;1828:1;1824:12;;;;1871;;;1892:2;;1946:4;1938:6;1934:17;1924:27;;1892:2;1999;1991:6;1988:14;1968:18;1965:38;1962:2;;;2045:10;2040:3;2036:20;2033:1;2026:31;2080:4;2077:1;2070:15;2108:4;2105:1;2098:15;1962:2;;1804:325;;;:::o;:::-;537:2466:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:34063:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"88:332:139","statements":[{"body":{"nodeType":"YulBlock","src":"132:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"134:16:139"},"nodeType":"YulFunctionCall","src":"134:18:139"},"nodeType":"YulExpressionStatement","src":"134:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"104:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"112:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"101:2:139"},"nodeType":"YulFunctionCall","src":"101:30:139"},"nodeType":"YulIf","src":"98:2:139"},{"nodeType":"YulAssignment","src":"163:66:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"200:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"208:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"196:3:139"},"nodeType":"YulFunctionCall","src":"196:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"217:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"213:3:139"},"nodeType":"YulFunctionCall","src":"213:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"192:3:139"},"nodeType":"YulFunctionCall","src":"192:29:139"},{"kind":"number","nodeType":"YulLiteral","src":"223:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"188:3:139"},"nodeType":"YulFunctionCall","src":"188:40:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"172:15:139"},"nodeType":"YulFunctionCall","src":"172:57:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"163:5:139"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"245:5:139"},{"name":"length","nodeType":"YulIdentifier","src":"252:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"238:6:139"},"nodeType":"YulFunctionCall","src":"238:21:139"},"nodeType":"YulExpressionStatement","src":"238:21:139"},{"body":{"nodeType":"YulBlock","src":"297:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"306:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"309:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"299:6:139"},"nodeType":"YulFunctionCall","src":"299:12:139"},"nodeType":"YulExpressionStatement","src":"299:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"278:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"283:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:139"},"nodeType":"YulFunctionCall","src":"274:16:139"},{"name":"end","nodeType":"YulIdentifier","src":"292:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"271:2:139"},"nodeType":"YulFunctionCall","src":"271:25:139"},"nodeType":"YulIf","src":"268:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"339:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"346:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"335:3:139"},"nodeType":"YulFunctionCall","src":"335:16:139"},{"name":"src","nodeType":"YulIdentifier","src":"353:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"358:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"322:12:139"},"nodeType":"YulFunctionCall","src":"322:43:139"},"nodeType":"YulExpressionStatement","src":"322:43:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"389:5:139"},{"name":"length","nodeType":"YulIdentifier","src":"396:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"385:3:139"},"nodeType":"YulFunctionCall","src":"385:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"405:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"381:3:139"},"nodeType":"YulFunctionCall","src":"381:29:139"},{"kind":"number","nodeType":"YulLiteral","src":"412:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"374:6:139"},"nodeType":"YulFunctionCall","src":"374:40:139"},"nodeType":"YulExpressionStatement","src":"374:40:139"}]},"name":"abi_decode_available_length_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"57:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"62:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"70:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"78:5:139","type":""}],"src":"14:406:139"},{"body":{"nodeType":"YulBlock","src":"489:704:139","statements":[{"body":{"nodeType":"YulBlock","src":"538:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"547:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"554:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"540:6:139"},"nodeType":"YulFunctionCall","src":"540:20:139"},"nodeType":"YulExpressionStatement","src":"540:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"517:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"525:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:139"},"nodeType":"YulFunctionCall","src":"513:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"532:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"509:3:139"},"nodeType":"YulFunctionCall","src":"509:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"502:6:139"},"nodeType":"YulFunctionCall","src":"502:35:139"},"nodeType":"YulIf","src":"499:2:139"},{"nodeType":"YulVariableDeclaration","src":"571:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"594:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"581:12:139"},"nodeType":"YulFunctionCall","src":"581:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"575:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"610:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"620:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"614:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"633:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"700:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"660:39:139"},"nodeType":"YulFunctionCall","src":"660:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"644:15:139"},"nodeType":"YulFunctionCall","src":"644:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"637:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"713:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"726:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"717:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"745:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"750:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"738:6:139"},"nodeType":"YulFunctionCall","src":"738:15:139"},"nodeType":"YulExpressionStatement","src":"738:15:139"},{"nodeType":"YulAssignment","src":"762:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"773:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"778:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:139"},"nodeType":"YulFunctionCall","src":"769:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"790:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"805:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"813:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"801:3:139"},"nodeType":"YulFunctionCall","src":"801:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"794:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"870:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"879:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"886:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"872:6:139"},"nodeType":"YulFunctionCall","src":"872:20:139"},"nodeType":"YulExpressionStatement","src":"872:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"839:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"851:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"854:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"847:3:139"},"nodeType":"YulFunctionCall","src":"847:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:139"},"nodeType":"YulFunctionCall","src":"835:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"860:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"831:3:139"},"nodeType":"YulFunctionCall","src":"831:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"865:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"828:2:139"},"nodeType":"YulFunctionCall","src":"828:41:139"},"nodeType":"YulIf","src":"825:2:139"},{"nodeType":"YulVariableDeclaration","src":"903:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"912:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"907:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"971:193:139","statements":[{"nodeType":"YulVariableDeclaration","src":"985:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1011:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"998:12:139"},"nodeType":"YulFunctionCall","src":"998:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"989:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1053:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1028:24:139"},"nodeType":"YulFunctionCall","src":"1028:31:139"},"nodeType":"YulExpressionStatement","src":"1028:31:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1079:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"1084:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1072:6:139"},"nodeType":"YulFunctionCall","src":"1072:18:139"},"nodeType":"YulExpressionStatement","src":"1072:18:139"},{"nodeType":"YulAssignment","src":"1103:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1114:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1119:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1110:3:139"},"nodeType":"YulFunctionCall","src":"1110:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1103:3:139"}]},{"nodeType":"YulAssignment","src":"1135:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1146:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1151:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1142:3:139"},"nodeType":"YulFunctionCall","src":"1142:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1135:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"937:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"940:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"934:2:139"},"nodeType":"YulFunctionCall","src":"934:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"944:18:139","statements":[{"nodeType":"YulAssignment","src":"946:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"955:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"958:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"951:3:139"},"nodeType":"YulFunctionCall","src":"951:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"946:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"930:3:139","statements":[]},"src":"926:238:139"},{"nodeType":"YulAssignment","src":"1173:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1182:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1173:5:139"}]}]},"name":"abi_decode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"463:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"471:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"479:5:139","type":""}],"src":"425:768:139"},{"body":{"nodeType":"YulBlock","src":"1260:793:139","statements":[{"body":{"nodeType":"YulBlock","src":"1309:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1318:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1325:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1311:6:139"},"nodeType":"YulFunctionCall","src":"1311:20:139"},"nodeType":"YulExpressionStatement","src":"1311:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1288:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1296:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1284:3:139"},"nodeType":"YulFunctionCall","src":"1284:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1303:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1280:3:139"},"nodeType":"YulFunctionCall","src":"1280:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1273:6:139"},"nodeType":"YulFunctionCall","src":"1273:35:139"},"nodeType":"YulIf","src":"1270:2:139"},{"nodeType":"YulVariableDeclaration","src":"1342:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1365:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1352:12:139"},"nodeType":"YulFunctionCall","src":"1352:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1346:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1381:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1391:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1385:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1404:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1471:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1431:39:139"},"nodeType":"YulFunctionCall","src":"1431:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1415:15:139"},"nodeType":"YulFunctionCall","src":"1415:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1408:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1484:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1497:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1488:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1516:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1521:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1509:6:139"},"nodeType":"YulFunctionCall","src":"1509:15:139"},"nodeType":"YulExpressionStatement","src":"1509:15:139"},{"nodeType":"YulAssignment","src":"1533:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1544:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1549:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1540:3:139"},"nodeType":"YulFunctionCall","src":"1540:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1533:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1561:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1576:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1584:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:139"},"nodeType":"YulFunctionCall","src":"1572:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1565:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1641:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1650:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1657:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1643:6:139"},"nodeType":"YulFunctionCall","src":"1643:20:139"},"nodeType":"YulExpressionStatement","src":"1643:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1610:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1622:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1625:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1618:3:139"},"nodeType":"YulFunctionCall","src":"1618:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1606:3:139"},"nodeType":"YulFunctionCall","src":"1606:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1631:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:139"},"nodeType":"YulFunctionCall","src":"1602:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"1636:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1599:2:139"},"nodeType":"YulFunctionCall","src":"1599:41:139"},"nodeType":"YulIf","src":"1596:2:139"},{"nodeType":"YulVariableDeclaration","src":"1674:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"1683:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1678:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1742:282:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1756:36:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1788:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1775:12:139"},"nodeType":"YulFunctionCall","src":"1775:17:139"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"1760:11:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1844:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1853:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1860:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1846:6:139"},"nodeType":"YulFunctionCall","src":"1846:20:139"},"nodeType":"YulExpressionStatement","src":"1846:20:139"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"1811:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1824:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1808:2:139"},"nodeType":"YulFunctionCall","src":"1808:35:139"},"nodeType":"YulIf","src":"1805:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1888:3:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1918:6:139"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"1926:11:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1914:3:139"},"nodeType":"YulFunctionCall","src":"1914:24:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1940:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:139"},"nodeType":"YulFunctionCall","src":"1910:33:139"},{"name":"end","nodeType":"YulIdentifier","src":"1945:3:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1893:16:139"},"nodeType":"YulFunctionCall","src":"1893:56:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1881:6:139"},"nodeType":"YulFunctionCall","src":"1881:69:139"},"nodeType":"YulExpressionStatement","src":"1881:69:139"},{"nodeType":"YulAssignment","src":"1963:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1974:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1979:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1970:3:139"},"nodeType":"YulFunctionCall","src":"1970:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1963:3:139"}]},{"nodeType":"YulAssignment","src":"1995:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2006:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2011:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:139"},"nodeType":"YulFunctionCall","src":"2002:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1995:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1708:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1711:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1705:2:139"},"nodeType":"YulFunctionCall","src":"1705:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1715:18:139","statements":[{"nodeType":"YulAssignment","src":"1717:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1726:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1729:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1722:3:139"},"nodeType":"YulFunctionCall","src":"1722:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1717:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1701:3:139","statements":[]},"src":"1697:327:139"},{"nodeType":"YulAssignment","src":"2033:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2042:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2033:5:139"}]}]},"name":"abi_decode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1234:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1242:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1250:5:139","type":""}],"src":"1198:855:139"},{"body":{"nodeType":"YulBlock","src":"2122:629:139","statements":[{"body":{"nodeType":"YulBlock","src":"2171:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2180:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2187:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2173:6:139"},"nodeType":"YulFunctionCall","src":"2173:20:139"},"nodeType":"YulExpressionStatement","src":"2173:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2150:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2158:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2146:3:139"},"nodeType":"YulFunctionCall","src":"2146:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"2165:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2142:3:139"},"nodeType":"YulFunctionCall","src":"2142:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2135:6:139"},"nodeType":"YulFunctionCall","src":"2135:35:139"},"nodeType":"YulIf","src":"2132:2:139"},{"nodeType":"YulVariableDeclaration","src":"2204:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2227:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2214:12:139"},"nodeType":"YulFunctionCall","src":"2214:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2208:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2243:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2253:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2247:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2266:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2333:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"2293:39:139"},"nodeType":"YulFunctionCall","src":"2293:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2277:15:139"},"nodeType":"YulFunctionCall","src":"2277:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2270:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2346:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"2359:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2350:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2378:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2383:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2371:6:139"},"nodeType":"YulFunctionCall","src":"2371:15:139"},"nodeType":"YulExpressionStatement","src":"2371:15:139"},{"nodeType":"YulAssignment","src":"2395:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2406:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2411:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:139"},"nodeType":"YulFunctionCall","src":"2402:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2395:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"2423:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2438:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2446:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2434:3:139"},"nodeType":"YulFunctionCall","src":"2434:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2427:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2503:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2512:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"2519:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2505:6:139"},"nodeType":"YulFunctionCall","src":"2505:20:139"},"nodeType":"YulExpressionStatement","src":"2505:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2472:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"2487:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2480:3:139"},"nodeType":"YulFunctionCall","src":"2480:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2468:3:139"},"nodeType":"YulFunctionCall","src":"2468:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2493:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2464:3:139"},"nodeType":"YulFunctionCall","src":"2464:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"2498:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2461:2:139"},"nodeType":"YulFunctionCall","src":"2461:41:139"},"nodeType":"YulIf","src":"2458:2:139"},{"nodeType":"YulVariableDeclaration","src":"2536:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"2545:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2540:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2604:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2625:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2643:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2630:12:139"},"nodeType":"YulFunctionCall","src":"2630:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2618:6:139"},"nodeType":"YulFunctionCall","src":"2618:30:139"},"nodeType":"YulExpressionStatement","src":"2618:30:139"},{"nodeType":"YulAssignment","src":"2661:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2672:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2677:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2668:3:139"},"nodeType":"YulFunctionCall","src":"2668:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2661:3:139"}]},{"nodeType":"YulAssignment","src":"2693:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2704:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2709:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2700:3:139"},"nodeType":"YulFunctionCall","src":"2700:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2693:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2570:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2573:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2567:2:139"},"nodeType":"YulFunctionCall","src":"2567:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2577:18:139","statements":[{"nodeType":"YulAssignment","src":"2579:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2588:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"2591:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:139"},"nodeType":"YulFunctionCall","src":"2584:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2579:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"2563:3:139","statements":[]},"src":"2559:163:139"},{"nodeType":"YulAssignment","src":"2731:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2740:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2731:5:139"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2096:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"2104:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2112:5:139","type":""}],"src":"2058:693:139"},{"body":{"nodeType":"YulBlock","src":"2828:303:139","statements":[{"body":{"nodeType":"YulBlock","src":"2877:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"2886:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"2896:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2879:6:139"},"nodeType":"YulFunctionCall","src":"2879:26:139"},"nodeType":"YulExpressionStatement","src":"2879:26:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2856:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2864:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:139"},"nodeType":"YulFunctionCall","src":"2852:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"2871:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2848:3:139"},"nodeType":"YulFunctionCall","src":"2848:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2841:6:139"},"nodeType":"YulFunctionCall","src":"2841:35:139"},"nodeType":"YulIf","src":"2838:2:139"},{"nodeType":"YulAssignment","src":"2916:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2939:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2926:12:139"},"nodeType":"YulFunctionCall","src":"2926:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2916:6:139"}]},{"body":{"nodeType":"YulBlock","src":"2989:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"2998:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"3008:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2991:6:139"},"nodeType":"YulFunctionCall","src":"2991:26:139"},"nodeType":"YulExpressionStatement","src":"2991:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2961:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2969:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2958:2:139"},"nodeType":"YulFunctionCall","src":"2958:30:139"},"nodeType":"YulIf","src":"2955:2:139"},{"nodeType":"YulAssignment","src":"3028:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3044:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3052:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3040:3:139"},"nodeType":"YulFunctionCall","src":"3040:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"3028:8:139"}]},{"body":{"nodeType":"YulBlock","src":"3109:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3118:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3121:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3111:6:139"},"nodeType":"YulFunctionCall","src":"3111:12:139"},"nodeType":"YulExpressionStatement","src":"3111:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3080:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"3088:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3076:3:139"},"nodeType":"YulFunctionCall","src":"3076:19:139"},{"kind":"number","nodeType":"YulLiteral","src":"3097:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3072:3:139"},"nodeType":"YulFunctionCall","src":"3072:30:139"},{"name":"end","nodeType":"YulIdentifier","src":"3104:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3069:2:139"},"nodeType":"YulFunctionCall","src":"3069:39:139"},"nodeType":"YulIf","src":"3066:2:139"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2791:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"2799:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"2807:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"2817:6:139","type":""}],"src":"2756:375:139"},{"body":{"nodeType":"YulBlock","src":"3188:176:139","statements":[{"body":{"nodeType":"YulBlock","src":"3237:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3246:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"3253:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3239:6:139"},"nodeType":"YulFunctionCall","src":"3239:20:139"},"nodeType":"YulExpressionStatement","src":"3239:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3216:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3224:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3212:3:139"},"nodeType":"YulFunctionCall","src":"3212:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"3231:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3208:3:139"},"nodeType":"YulFunctionCall","src":"3208:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3201:6:139"},"nodeType":"YulFunctionCall","src":"3201:35:139"},"nodeType":"YulIf","src":"3198:2:139"},{"nodeType":"YulAssignment","src":"3270:88:139","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3317:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3325:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3313:3:139"},"nodeType":"YulFunctionCall","src":"3313:17:139"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3345:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3332:12:139"},"nodeType":"YulFunctionCall","src":"3332:20:139"},{"name":"end","nodeType":"YulIdentifier","src":"3354:3:139"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"3279:33:139"},"nodeType":"YulFunctionCall","src":"3279:79:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3270:5:139"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3162:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"3170:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3178:5:139","type":""}],"src":"3136:228:139"},{"body":{"nodeType":"YulBlock","src":"3416:109:139","statements":[{"nodeType":"YulAssignment","src":"3426:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3448:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3435:12:139"},"nodeType":"YulFunctionCall","src":"3435:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3426:5:139"}]},{"body":{"nodeType":"YulBlock","src":"3503:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3512:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3515:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3505:6:139"},"nodeType":"YulFunctionCall","src":"3505:12:139"},"nodeType":"YulExpressionStatement","src":"3505:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3477:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3488:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"3495:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3484:3:139"},"nodeType":"YulFunctionCall","src":"3484:16:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3474:2:139"},"nodeType":"YulFunctionCall","src":"3474:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3467:6:139"},"nodeType":"YulFunctionCall","src":"3467:35:139"},"nodeType":"YulIf","src":"3464:2:139"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3395:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3406:5:139","type":""}],"src":"3369:156:139"},{"body":{"nodeType":"YulBlock","src":"3611:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"3657:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3666:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3674:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3659:6:139"},"nodeType":"YulFunctionCall","src":"3659:22:139"},"nodeType":"YulExpressionStatement","src":"3659:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3632:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3641:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3628:3:139"},"nodeType":"YulFunctionCall","src":"3628:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3653:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3624:3:139"},"nodeType":"YulFunctionCall","src":"3624:32:139"},"nodeType":"YulIf","src":"3621:2:139"},{"nodeType":"YulVariableDeclaration","src":"3692:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3711:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3705:5:139"},"nodeType":"YulFunctionCall","src":"3705:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3696:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3755:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3730:24:139"},"nodeType":"YulFunctionCall","src":"3730:31:139"},"nodeType":"YulExpressionStatement","src":"3730:31:139"},{"nodeType":"YulAssignment","src":"3770:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3780:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3588:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3600:6:139","type":""}],"src":"3530:261:139"},{"body":{"nodeType":"YulBlock","src":"3993:914:139","statements":[{"body":{"nodeType":"YulBlock","src":"4040:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4049:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4057:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4042:6:139"},"nodeType":"YulFunctionCall","src":"4042:22:139"},"nodeType":"YulExpressionStatement","src":"4042:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4014:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4023:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4010:3:139"},"nodeType":"YulFunctionCall","src":"4010:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4035:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4006:3:139"},"nodeType":"YulFunctionCall","src":"4006:33:139"},"nodeType":"YulIf","src":"4003:2:139"},{"nodeType":"YulVariableDeclaration","src":"4075:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4101:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4088:12:139"},"nodeType":"YulFunctionCall","src":"4088:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4079:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4145:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4120:24:139"},"nodeType":"YulFunctionCall","src":"4120:31:139"},"nodeType":"YulExpressionStatement","src":"4120:31:139"},{"nodeType":"YulAssignment","src":"4160:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"4170:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4160:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4184:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4216:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4227:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4212:3:139"},"nodeType":"YulFunctionCall","src":"4212:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4199:12:139"},"nodeType":"YulFunctionCall","src":"4199:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4188:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4265:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4240:24:139"},"nodeType":"YulFunctionCall","src":"4240:33:139"},"nodeType":"YulExpressionStatement","src":"4240:33:139"},{"nodeType":"YulAssignment","src":"4282:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"4292:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4282:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4308:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4339:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4350:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4335:3:139"},"nodeType":"YulFunctionCall","src":"4335:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4322:12:139"},"nodeType":"YulFunctionCall","src":"4322:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4312:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4363:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"4373:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4367:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4418:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4427:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4435:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4420:6:139"},"nodeType":"YulFunctionCall","src":"4420:22:139"},"nodeType":"YulExpressionStatement","src":"4420:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4406:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4414:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4403:2:139"},"nodeType":"YulFunctionCall","src":"4403:14:139"},"nodeType":"YulIf","src":"4400:2:139"},{"nodeType":"YulAssignment","src":"4453:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4496:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4507:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4492:3:139"},"nodeType":"YulFunctionCall","src":"4492:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4516:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4463:28:139"},"nodeType":"YulFunctionCall","src":"4463:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4453:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4533:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4566:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4577:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4562:3:139"},"nodeType":"YulFunctionCall","src":"4562:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4549:12:139"},"nodeType":"YulFunctionCall","src":"4549:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4537:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4610:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4619:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4627:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4612:6:139"},"nodeType":"YulFunctionCall","src":"4612:22:139"},"nodeType":"YulExpressionStatement","src":"4612:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4596:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4606:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4593:2:139"},"nodeType":"YulFunctionCall","src":"4593:16:139"},"nodeType":"YulIf","src":"4590:2:139"},{"nodeType":"YulAssignment","src":"4645:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4699:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:139"},"nodeType":"YulFunctionCall","src":"4684:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4710:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4655:28:139"},"nodeType":"YulFunctionCall","src":"4655:63:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4645:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4727:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4760:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4771:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4756:3:139"},"nodeType":"YulFunctionCall","src":"4756:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4743:12:139"},"nodeType":"YulFunctionCall","src":"4743:33:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"4731:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4805:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4814:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"4822:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4807:6:139"},"nodeType":"YulFunctionCall","src":"4807:22:139"},"nodeType":"YulExpressionStatement","src":"4807:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"4791:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4801:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4788:2:139"},"nodeType":"YulFunctionCall","src":"4788:16:139"},"nodeType":"YulIf","src":"4785:2:139"},{"nodeType":"YulAssignment","src":"4840:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4871:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"4882:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4867:3:139"},"nodeType":"YulFunctionCall","src":"4867:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4893:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4850:16:139"},"nodeType":"YulFunctionCall","src":"4850:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4840:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3927:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3938:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3950:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3958:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3966:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3974:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3982:6:139","type":""}],"src":"3796:1111:139"},{"body":{"nodeType":"YulBlock","src":"5042:555:139","statements":[{"body":{"nodeType":"YulBlock","src":"5089:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5098:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5106:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5091:6:139"},"nodeType":"YulFunctionCall","src":"5091:22:139"},"nodeType":"YulExpressionStatement","src":"5091:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5063:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5072:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5059:3:139"},"nodeType":"YulFunctionCall","src":"5059:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5084:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5055:3:139"},"nodeType":"YulFunctionCall","src":"5055:33:139"},"nodeType":"YulIf","src":"5052:2:139"},{"nodeType":"YulVariableDeclaration","src":"5124:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5150:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5137:12:139"},"nodeType":"YulFunctionCall","src":"5137:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5128:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5194:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5169:24:139"},"nodeType":"YulFunctionCall","src":"5169:31:139"},"nodeType":"YulExpressionStatement","src":"5169:31:139"},{"nodeType":"YulAssignment","src":"5209:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5219:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5209:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5233:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5265:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5276:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5261:3:139"},"nodeType":"YulFunctionCall","src":"5261:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5248:12:139"},"nodeType":"YulFunctionCall","src":"5248:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5237:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5314:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5289:24:139"},"nodeType":"YulFunctionCall","src":"5289:33:139"},"nodeType":"YulExpressionStatement","src":"5289:33:139"},{"nodeType":"YulAssignment","src":"5331:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"5341:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5331:6:139"}]},{"nodeType":"YulAssignment","src":"5357:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5384:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5395:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5380:3:139"},"nodeType":"YulFunctionCall","src":"5380:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5367:12:139"},"nodeType":"YulFunctionCall","src":"5367:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5357:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5408:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5439:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5450:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5435:3:139"},"nodeType":"YulFunctionCall","src":"5435:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5422:12:139"},"nodeType":"YulFunctionCall","src":"5422:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5412:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5497:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5506:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"5514:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5499:6:139"},"nodeType":"YulFunctionCall","src":"5499:22:139"},"nodeType":"YulExpressionStatement","src":"5499:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5469:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5477:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5466:2:139"},"nodeType":"YulFunctionCall","src":"5466:30:139"},"nodeType":"YulIf","src":"5463:2:139"},{"nodeType":"YulAssignment","src":"5532:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5563:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5574:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5559:3:139"},"nodeType":"YulFunctionCall","src":"5559:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5583:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5542:16:139"},"nodeType":"YulFunctionCall","src":"5542:49:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5532:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4984:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4995:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5007:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5015:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5023:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5031:6:139","type":""}],"src":"4912:685:139"},{"body":{"nodeType":"YulBlock","src":"5749:607:139","statements":[{"body":{"nodeType":"YulBlock","src":"5796:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"5805:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"5813:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5798:6:139"},"nodeType":"YulFunctionCall","src":"5798:22:139"},"nodeType":"YulExpressionStatement","src":"5798:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5770:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5779:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5766:3:139"},"nodeType":"YulFunctionCall","src":"5766:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5791:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5762:3:139"},"nodeType":"YulFunctionCall","src":"5762:33:139"},"nodeType":"YulIf","src":"5759:2:139"},{"nodeType":"YulVariableDeclaration","src":"5831:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5857:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5844:12:139"},"nodeType":"YulFunctionCall","src":"5844:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5835:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5901:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5876:24:139"},"nodeType":"YulFunctionCall","src":"5876:31:139"},"nodeType":"YulExpressionStatement","src":"5876:31:139"},{"nodeType":"YulAssignment","src":"5916:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5926:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5916:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5940:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5972:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5983:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5968:3:139"},"nodeType":"YulFunctionCall","src":"5968:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5955:12:139"},"nodeType":"YulFunctionCall","src":"5955:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5944:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6021:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5996:24:139"},"nodeType":"YulFunctionCall","src":"5996:33:139"},"nodeType":"YulExpressionStatement","src":"5996:33:139"},{"nodeType":"YulAssignment","src":"6038:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6048:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6038:6:139"}]},{"nodeType":"YulAssignment","src":"6064:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6102:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6087:3:139"},"nodeType":"YulFunctionCall","src":"6087:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6074:12:139"},"nodeType":"YulFunctionCall","src":"6074:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6064:6:139"}]},{"nodeType":"YulAssignment","src":"6115:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6142:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6153:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6138:3:139"},"nodeType":"YulFunctionCall","src":"6138:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6125:12:139"},"nodeType":"YulFunctionCall","src":"6125:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6115:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6166:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6197:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6208:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6193:3:139"},"nodeType":"YulFunctionCall","src":"6193:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6180:12:139"},"nodeType":"YulFunctionCall","src":"6180:33:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6170:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6256:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6265:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"6273:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6258:6:139"},"nodeType":"YulFunctionCall","src":"6258:22:139"},"nodeType":"YulExpressionStatement","src":"6258:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6228:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6236:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6225:2:139"},"nodeType":"YulFunctionCall","src":"6225:30:139"},"nodeType":"YulIf","src":"6222:2:139"},{"nodeType":"YulAssignment","src":"6291:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6322:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"6333:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6318:3:139"},"nodeType":"YulFunctionCall","src":"6318:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6342:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6301:16:139"},"nodeType":"YulFunctionCall","src":"6301:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6291:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5683:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5694:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5706:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5714:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5722:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5730:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5738:6:139","type":""}],"src":"5602:754:139"},{"body":{"nodeType":"YulBlock","src":"6448:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"6494:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6503:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6511:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6496:6:139"},"nodeType":"YulFunctionCall","src":"6496:22:139"},"nodeType":"YulExpressionStatement","src":"6496:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6469:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6478:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6465:3:139"},"nodeType":"YulFunctionCall","src":"6465:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6490:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6461:3:139"},"nodeType":"YulFunctionCall","src":"6461:32:139"},"nodeType":"YulIf","src":"6458:2:139"},{"nodeType":"YulVariableDeclaration","src":"6529:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6555:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6542:12:139"},"nodeType":"YulFunctionCall","src":"6542:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6533:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6599:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6574:24:139"},"nodeType":"YulFunctionCall","src":"6574:31:139"},"nodeType":"YulExpressionStatement","src":"6574:31:139"},{"nodeType":"YulAssignment","src":"6614:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6624:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6614:6:139"}]},{"nodeType":"YulAssignment","src":"6638:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6665:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6676:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6661:3:139"},"nodeType":"YulFunctionCall","src":"6661:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6648:12:139"},"nodeType":"YulFunctionCall","src":"6648:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6638:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6406:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6417:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6429:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6437:6:139","type":""}],"src":"6361:325:139"},{"body":{"nodeType":"YulBlock","src":"6814:509:139","statements":[{"body":{"nodeType":"YulBlock","src":"6860:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6869:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"6877:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6862:6:139"},"nodeType":"YulFunctionCall","src":"6862:22:139"},"nodeType":"YulExpressionStatement","src":"6862:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6835:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6831:3:139"},"nodeType":"YulFunctionCall","src":"6831:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6856:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6827:3:139"},"nodeType":"YulFunctionCall","src":"6827:32:139"},"nodeType":"YulIf","src":"6824:2:139"},{"nodeType":"YulVariableDeclaration","src":"6895:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6921:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6908:12:139"},"nodeType":"YulFunctionCall","src":"6908:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6899:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6965:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6940:24:139"},"nodeType":"YulFunctionCall","src":"6940:31:139"},"nodeType":"YulExpressionStatement","src":"6940:31:139"},{"nodeType":"YulAssignment","src":"6980:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6990:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6980:6:139"}]},{"nodeType":"YulAssignment","src":"7004:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7031:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7042:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7027:3:139"},"nodeType":"YulFunctionCall","src":"7027:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7014:12:139"},"nodeType":"YulFunctionCall","src":"7014:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7004:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7055:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7086:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7097:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7082:3:139"},"nodeType":"YulFunctionCall","src":"7082:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7069:12:139"},"nodeType":"YulFunctionCall","src":"7069:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7059:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7144:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7153:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"7161:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7146:6:139"},"nodeType":"YulFunctionCall","src":"7146:22:139"},"nodeType":"YulExpressionStatement","src":"7146:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7116:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7124:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7113:2:139"},"nodeType":"YulFunctionCall","src":"7113:30:139"},"nodeType":"YulIf","src":"7110:2:139"},{"nodeType":"YulVariableDeclaration","src":"7179:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7235:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"7246:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7231:3:139"},"nodeType":"YulFunctionCall","src":"7231:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7255:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"7205:25:139"},"nodeType":"YulFunctionCall","src":"7205:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"7183:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"7193:8:139","type":""}]},{"nodeType":"YulAssignment","src":"7272:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7282:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7272:6:139"}]},{"nodeType":"YulAssignment","src":"7299:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7309:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7299:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6756:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6767:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6779:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6787:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6795:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6803:6:139","type":""}],"src":"6691:632:139"},{"body":{"nodeType":"YulBlock","src":"7441:430:139","statements":[{"body":{"nodeType":"YulBlock","src":"7487:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7496:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"7504:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7489:6:139"},"nodeType":"YulFunctionCall","src":"7489:22:139"},"nodeType":"YulExpressionStatement","src":"7489:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7462:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7471:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7458:3:139"},"nodeType":"YulFunctionCall","src":"7458:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7483:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7454:3:139"},"nodeType":"YulFunctionCall","src":"7454:32:139"},"nodeType":"YulIf","src":"7451:2:139"},{"nodeType":"YulVariableDeclaration","src":"7522:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7548:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7535:12:139"},"nodeType":"YulFunctionCall","src":"7535:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7526:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7592:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7567:24:139"},"nodeType":"YulFunctionCall","src":"7567:31:139"},"nodeType":"YulExpressionStatement","src":"7567:31:139"},{"nodeType":"YulAssignment","src":"7607:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"7617:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7607:6:139"}]},{"nodeType":"YulAssignment","src":"7631:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7658:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7669:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7654:3:139"},"nodeType":"YulFunctionCall","src":"7654:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7641:12:139"},"nodeType":"YulFunctionCall","src":"7641:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7631:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7682:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7713:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7724:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7709:3:139"},"nodeType":"YulFunctionCall","src":"7709:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7696:12:139"},"nodeType":"YulFunctionCall","src":"7696:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7686:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7771:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7780:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"7788:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7773:6:139"},"nodeType":"YulFunctionCall","src":"7773:22:139"},"nodeType":"YulExpressionStatement","src":"7773:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7743:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7751:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7740:2:139"},"nodeType":"YulFunctionCall","src":"7740:30:139"},"nodeType":"YulIf","src":"7737:2:139"},{"nodeType":"YulAssignment","src":"7806:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7837:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"7848:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7833:3:139"},"nodeType":"YulFunctionCall","src":"7833:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7857:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7816:16:139"},"nodeType":"YulFunctionCall","src":"7816:49:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7806:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7391:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7402:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7414:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7422:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7430:6:139","type":""}],"src":"7328:543:139"},{"body":{"nodeType":"YulBlock","src":"8081:732:139","statements":[{"body":{"nodeType":"YulBlock","src":"8128:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8137:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8145:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8130:6:139"},"nodeType":"YulFunctionCall","src":"8130:22:139"},"nodeType":"YulExpressionStatement","src":"8130:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8102:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8111:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8098:3:139"},"nodeType":"YulFunctionCall","src":"8098:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8123:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8094:3:139"},"nodeType":"YulFunctionCall","src":"8094:33:139"},"nodeType":"YulIf","src":"8091:2:139"},{"nodeType":"YulVariableDeclaration","src":"8163:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8190:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8177:12:139"},"nodeType":"YulFunctionCall","src":"8177:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8167:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8209:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"8219:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8213:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8264:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8273:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8281:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8266:6:139"},"nodeType":"YulFunctionCall","src":"8266:22:139"},"nodeType":"YulExpressionStatement","src":"8266:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8252:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8260:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8249:2:139"},"nodeType":"YulFunctionCall","src":"8249:14:139"},"nodeType":"YulIf","src":"8246:2:139"},{"nodeType":"YulAssignment","src":"8299:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8342:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"8353:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8338:3:139"},"nodeType":"YulFunctionCall","src":"8338:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8362:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"8309:28:139"},"nodeType":"YulFunctionCall","src":"8309:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8299:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8379:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8412:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8423:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8408:3:139"},"nodeType":"YulFunctionCall","src":"8408:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8395:12:139"},"nodeType":"YulFunctionCall","src":"8395:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8383:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8456:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8465:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8473:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8458:6:139"},"nodeType":"YulFunctionCall","src":"8458:22:139"},"nodeType":"YulExpressionStatement","src":"8458:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8442:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8452:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8439:2:139"},"nodeType":"YulFunctionCall","src":"8439:16:139"},"nodeType":"YulIf","src":"8436:2:139"},{"nodeType":"YulAssignment","src":"8491:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8534:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8545:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8530:3:139"},"nodeType":"YulFunctionCall","src":"8530:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8556:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"8501:28:139"},"nodeType":"YulFunctionCall","src":"8501:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8491:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8573:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8606:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8617:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8602:3:139"},"nodeType":"YulFunctionCall","src":"8602:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8589:12:139"},"nodeType":"YulFunctionCall","src":"8589:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"8577:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8650:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8659:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"8667:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8652:6:139"},"nodeType":"YulFunctionCall","src":"8652:22:139"},"nodeType":"YulExpressionStatement","src":"8652:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"8636:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8646:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8633:2:139"},"nodeType":"YulFunctionCall","src":"8633:16:139"},"nodeType":"YulIf","src":"8630:2:139"},{"nodeType":"YulAssignment","src":"8685:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8726:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"8737:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8722:3:139"},"nodeType":"YulFunctionCall","src":"8722:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8748:7:139"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"8695:26:139"},"nodeType":"YulFunctionCall","src":"8695:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8685:6:139"}]},{"nodeType":"YulAssignment","src":"8765:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8792:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8803:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8788:3:139"},"nodeType":"YulFunctionCall","src":"8788:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8775:12:139"},"nodeType":"YulFunctionCall","src":"8775:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8765:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8023:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8034:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8046:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8054:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8062:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8070:6:139","type":""}],"src":"7876:937:139"},{"body":{"nodeType":"YulBlock","src":"9033:1002:139","statements":[{"body":{"nodeType":"YulBlock","src":"9080:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9089:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9097:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9082:6:139"},"nodeType":"YulFunctionCall","src":"9082:22:139"},"nodeType":"YulExpressionStatement","src":"9082:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9054:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"9063:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9050:3:139"},"nodeType":"YulFunctionCall","src":"9050:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"9075:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9046:3:139"},"nodeType":"YulFunctionCall","src":"9046:33:139"},"nodeType":"YulIf","src":"9043:2:139"},{"nodeType":"YulVariableDeclaration","src":"9115:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9142:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9129:12:139"},"nodeType":"YulFunctionCall","src":"9129:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9119:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9161:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"9171:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9165:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9216:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9225:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9233:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9218:6:139"},"nodeType":"YulFunctionCall","src":"9218:22:139"},"nodeType":"YulExpressionStatement","src":"9218:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9204:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9212:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9201:2:139"},"nodeType":"YulFunctionCall","src":"9201:14:139"},"nodeType":"YulIf","src":"9198:2:139"},{"nodeType":"YulAssignment","src":"9251:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9294:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"9305:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9290:3:139"},"nodeType":"YulFunctionCall","src":"9290:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9314:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"9261:28:139"},"nodeType":"YulFunctionCall","src":"9261:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9251:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9331:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9364:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9375:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9360:3:139"},"nodeType":"YulFunctionCall","src":"9360:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9347:12:139"},"nodeType":"YulFunctionCall","src":"9347:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9335:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9408:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9417:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9425:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9410:6:139"},"nodeType":"YulFunctionCall","src":"9410:22:139"},"nodeType":"YulExpressionStatement","src":"9410:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9394:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9404:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9391:2:139"},"nodeType":"YulFunctionCall","src":"9391:16:139"},"nodeType":"YulIf","src":"9388:2:139"},{"nodeType":"YulAssignment","src":"9443:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9486:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9497:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9482:3:139"},"nodeType":"YulFunctionCall","src":"9482:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9508:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"9453:28:139"},"nodeType":"YulFunctionCall","src":"9453:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9443:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9525:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9558:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9569:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9554:3:139"},"nodeType":"YulFunctionCall","src":"9554:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9541:12:139"},"nodeType":"YulFunctionCall","src":"9541:32:139"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"9529:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9602:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9611:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9619:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9604:6:139"},"nodeType":"YulFunctionCall","src":"9604:22:139"},"nodeType":"YulExpressionStatement","src":"9604:22:139"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"9588:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9598:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9585:2:139"},"nodeType":"YulFunctionCall","src":"9585:16:139"},"nodeType":"YulIf","src":"9582:2:139"},{"nodeType":"YulAssignment","src":"9637:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:139"},{"name":"offset_2","nodeType":"YulIdentifier","src":"9689:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:139"},"nodeType":"YulFunctionCall","src":"9674:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:139"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"9647:26:139"},"nodeType":"YulFunctionCall","src":"9647:61:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9637:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"9717:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9750:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9761:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9746:3:139"},"nodeType":"YulFunctionCall","src":"9746:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9733:12:139"},"nodeType":"YulFunctionCall","src":"9733:32:139"},"variables":[{"name":"offset_3","nodeType":"YulTypedName","src":"9721:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9794:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9803:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"9811:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9796:6:139"},"nodeType":"YulFunctionCall","src":"9796:22:139"},"nodeType":"YulExpressionStatement","src":"9796:22:139"}]},"condition":{"arguments":[{"name":"offset_3","nodeType":"YulIdentifier","src":"9780:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9790:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9777:2:139"},"nodeType":"YulFunctionCall","src":"9777:16:139"},"nodeType":"YulIf","src":"9774:2:139"},{"nodeType":"YulVariableDeclaration","src":"9829:34:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9843:9:139"},{"name":"offset_3","nodeType":"YulIdentifier","src":"9854:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9839:3:139"},"nodeType":"YulFunctionCall","src":"9839:24:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9833:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9911:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9920:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"9928:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9913:6:139"},"nodeType":"YulFunctionCall","src":"9913:22:139"},"nodeType":"YulExpressionStatement","src":"9913:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9890:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"9894:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9886:3:139"},"nodeType":"YulFunctionCall","src":"9886:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9901:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9882:3:139"},"nodeType":"YulFunctionCall","src":"9882:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9875:6:139"},"nodeType":"YulFunctionCall","src":"9875:35:139"},"nodeType":"YulIf","src":"9872:2:139"},{"nodeType":"YulAssignment","src":"9946:83:139","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9994:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"9998:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9990:3:139"},"nodeType":"YulFunctionCall","src":"9990:11:139"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10016:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10003:12:139"},"nodeType":"YulFunctionCall","src":"10003:16:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10021:7:139"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"9956:33:139"},"nodeType":"YulFunctionCall","src":"9956:73:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9946:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8975:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8986:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8998:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9006:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9014:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9022:6:139","type":""}],"src":"8818:1217:139"},{"body":{"nodeType":"YulBlock","src":"10109:237:139","statements":[{"body":{"nodeType":"YulBlock","src":"10155:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10164:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10172:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10157:6:139"},"nodeType":"YulFunctionCall","src":"10157:22:139"},"nodeType":"YulExpressionStatement","src":"10157:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10130:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10139:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10126:3:139"},"nodeType":"YulFunctionCall","src":"10126:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10151:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10122:3:139"},"nodeType":"YulFunctionCall","src":"10122:32:139"},"nodeType":"YulIf","src":"10119:2:139"},{"nodeType":"YulVariableDeclaration","src":"10190:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10216:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10203:12:139"},"nodeType":"YulFunctionCall","src":"10203:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10194:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10290:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10299:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10307:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10292:6:139"},"nodeType":"YulFunctionCall","src":"10292:22:139"},"nodeType":"YulExpressionStatement","src":"10292:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10248:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10259:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10270:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10275:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10266:3:139"},"nodeType":"YulFunctionCall","src":"10266:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10255:3:139"},"nodeType":"YulFunctionCall","src":"10255:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10245:2:139"},"nodeType":"YulFunctionCall","src":"10245:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10238:6:139"},"nodeType":"YulFunctionCall","src":"10238:51:139"},"nodeType":"YulIf","src":"10235:2:139"},{"nodeType":"YulAssignment","src":"10325:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"10335:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10325:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10075:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10086:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10098:6:139","type":""}],"src":"10040:306:139"},{"body":{"nodeType":"YulBlock","src":"10421:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"10467:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10476:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10484:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10469:6:139"},"nodeType":"YulFunctionCall","src":"10469:22:139"},"nodeType":"YulExpressionStatement","src":"10469:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10442:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10451:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10438:3:139"},"nodeType":"YulFunctionCall","src":"10438:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10463:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10434:3:139"},"nodeType":"YulFunctionCall","src":"10434:32:139"},"nodeType":"YulIf","src":"10431:2:139"},{"nodeType":"YulAssignment","src":"10502:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10525:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10512:12:139"},"nodeType":"YulFunctionCall","src":"10512:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10502:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10387:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10398:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10410:6:139","type":""}],"src":"10351:190:139"},{"body":{"nodeType":"YulBlock","src":"10627:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"10673:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10682:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10690:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10675:6:139"},"nodeType":"YulFunctionCall","src":"10675:22:139"},"nodeType":"YulExpressionStatement","src":"10675:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10648:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10657:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10644:3:139"},"nodeType":"YulFunctionCall","src":"10644:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10669:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10640:3:139"},"nodeType":"YulFunctionCall","src":"10640:32:139"},"nodeType":"YulIf","src":"10637:2:139"},{"nodeType":"YulAssignment","src":"10708:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10724:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10718:5:139"},"nodeType":"YulFunctionCall","src":"10718:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10708:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10593:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10604:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10616:6:139","type":""}],"src":"10546:194:139"},{"body":{"nodeType":"YulBlock","src":"10832:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"10878:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10887:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10895:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10880:6:139"},"nodeType":"YulFunctionCall","src":"10880:22:139"},"nodeType":"YulExpressionStatement","src":"10880:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10853:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"10862:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10849:3:139"},"nodeType":"YulFunctionCall","src":"10849:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"10874:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10845:3:139"},"nodeType":"YulFunctionCall","src":"10845:32:139"},"nodeType":"YulIf","src":"10842:2:139"},{"nodeType":"YulAssignment","src":"10913:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10936:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10923:12:139"},"nodeType":"YulFunctionCall","src":"10923:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10913:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"10955:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10985:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10996:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10981:3:139"},"nodeType":"YulFunctionCall","src":"10981:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10968:12:139"},"nodeType":"YulFunctionCall","src":"10968:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10959:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11034:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"11009:24:139"},"nodeType":"YulFunctionCall","src":"11009:31:139"},"nodeType":"YulExpressionStatement","src":"11009:31:139"},{"nodeType":"YulAssignment","src":"11049:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"11059:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11049:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10790:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10801:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10813:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10821:6:139","type":""}],"src":"10745:325:139"},{"body":{"nodeType":"YulBlock","src":"11160:175:139","statements":[{"body":{"nodeType":"YulBlock","src":"11206:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11215:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11223:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11208:6:139"},"nodeType":"YulFunctionCall","src":"11208:22:139"},"nodeType":"YulExpressionStatement","src":"11208:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11181:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"11190:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11177:3:139"},"nodeType":"YulFunctionCall","src":"11177:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"11202:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11173:3:139"},"nodeType":"YulFunctionCall","src":"11173:32:139"},"nodeType":"YulIf","src":"11170:2:139"},{"nodeType":"YulAssignment","src":"11241:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11264:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11251:12:139"},"nodeType":"YulFunctionCall","src":"11251:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11241:6:139"}]},{"nodeType":"YulAssignment","src":"11283:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11314:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11325:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11310:3:139"},"nodeType":"YulFunctionCall","src":"11310:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"11293:16:139"},"nodeType":"YulFunctionCall","src":"11293:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11283:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11118:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11129:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11141:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11149:6:139","type":""}],"src":"11075:260:139"},{"body":{"nodeType":"YulBlock","src":"11462:446:139","statements":[{"body":{"nodeType":"YulBlock","src":"11508:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11517:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"11525:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11510:6:139"},"nodeType":"YulFunctionCall","src":"11510:22:139"},"nodeType":"YulExpressionStatement","src":"11510:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11483:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"11492:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11479:3:139"},"nodeType":"YulFunctionCall","src":"11479:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"11504:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11475:3:139"},"nodeType":"YulFunctionCall","src":"11475:32:139"},"nodeType":"YulIf","src":"11472:2:139"},{"nodeType":"YulAssignment","src":"11543:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11566:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11553:12:139"},"nodeType":"YulFunctionCall","src":"11553:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11543:6:139"}]},{"nodeType":"YulAssignment","src":"11585:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11616:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11627:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11612:3:139"},"nodeType":"YulFunctionCall","src":"11612:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"11595:16:139"},"nodeType":"YulFunctionCall","src":"11595:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11585:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"11640:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11671:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11682:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11667:3:139"},"nodeType":"YulFunctionCall","src":"11667:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11654:12:139"},"nodeType":"YulFunctionCall","src":"11654:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11644:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"11729:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11738:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"11746:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11731:6:139"},"nodeType":"YulFunctionCall","src":"11731:22:139"},"nodeType":"YulExpressionStatement","src":"11731:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11701:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"11709:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11698:2:139"},"nodeType":"YulFunctionCall","src":"11698:30:139"},"nodeType":"YulIf","src":"11695:2:139"},{"nodeType":"YulVariableDeclaration","src":"11764:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11820:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"11831:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:139"},"nodeType":"YulFunctionCall","src":"11816:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11840:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"11790:25:139"},"nodeType":"YulFunctionCall","src":"11790:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"11768:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"11778:8:139","type":""}]},{"nodeType":"YulAssignment","src":"11857:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"11867:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11857:6:139"}]},{"nodeType":"YulAssignment","src":"11884:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"11894:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11884:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11404:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11415:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11427:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11435:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11443:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11451:6:139","type":""}],"src":"11340:568:139"},{"body":{"nodeType":"YulBlock","src":"12061:650:139","statements":[{"body":{"nodeType":"YulBlock","src":"12108:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12117:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"12125:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12110:6:139"},"nodeType":"YulFunctionCall","src":"12110:22:139"},"nodeType":"YulExpressionStatement","src":"12110:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12082:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"12091:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12078:3:139"},"nodeType":"YulFunctionCall","src":"12078:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"12103:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12074:3:139"},"nodeType":"YulFunctionCall","src":"12074:33:139"},"nodeType":"YulIf","src":"12071:2:139"},{"nodeType":"YulAssignment","src":"12143:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12166:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12153:12:139"},"nodeType":"YulFunctionCall","src":"12153:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12143:6:139"}]},{"nodeType":"YulAssignment","src":"12185:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12216:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12227:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12212:3:139"},"nodeType":"YulFunctionCall","src":"12212:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"12195:16:139"},"nodeType":"YulFunctionCall","src":"12195:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12185:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"12240:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12271:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12282:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12267:3:139"},"nodeType":"YulFunctionCall","src":"12267:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12254:12:139"},"nodeType":"YulFunctionCall","src":"12254:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12244:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12295:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"12305:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12299:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"12350:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12359:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"12367:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12352:6:139"},"nodeType":"YulFunctionCall","src":"12352:22:139"},"nodeType":"YulExpressionStatement","src":"12352:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12338:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12346:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12335:2:139"},"nodeType":"YulFunctionCall","src":"12335:14:139"},"nodeType":"YulIf","src":"12332:2:139"},{"nodeType":"YulVariableDeclaration","src":"12385:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12441:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"12452:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12437:3:139"},"nodeType":"YulFunctionCall","src":"12437:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12461:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12411:25:139"},"nodeType":"YulFunctionCall","src":"12411:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12389:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12399:8:139","type":""}]},{"nodeType":"YulAssignment","src":"12478:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12488:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12478:6:139"}]},{"nodeType":"YulAssignment","src":"12505:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12515:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12505:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"12532:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12565:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12576:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12561:3:139"},"nodeType":"YulFunctionCall","src":"12561:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12548:12:139"},"nodeType":"YulFunctionCall","src":"12548:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"12536:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"12609:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"12618:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"12626:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12611:6:139"},"nodeType":"YulFunctionCall","src":"12611:22:139"},"nodeType":"YulExpressionStatement","src":"12611:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12595:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12605:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12592:2:139"},"nodeType":"YulFunctionCall","src":"12592:16:139"},"nodeType":"YulIf","src":"12589:2:139"},{"nodeType":"YulAssignment","src":"12644:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12675:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12686:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12671:3:139"},"nodeType":"YulFunctionCall","src":"12671:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12697:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"12654:16:139"},"nodeType":"YulFunctionCall","src":"12654:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"12644:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11995:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12006:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12018:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12026:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12034:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12042:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12050:6:139","type":""}],"src":"11913:798:139"},{"body":{"nodeType":"YulBlock","src":"12913:810:139","statements":[{"body":{"nodeType":"YulBlock","src":"12960:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12969:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"12977:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12962:6:139"},"nodeType":"YulFunctionCall","src":"12962:22:139"},"nodeType":"YulExpressionStatement","src":"12962:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12934:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"12943:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12930:3:139"},"nodeType":"YulFunctionCall","src":"12930:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"12955:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12926:3:139"},"nodeType":"YulFunctionCall","src":"12926:33:139"},"nodeType":"YulIf","src":"12923:2:139"},{"nodeType":"YulAssignment","src":"12995:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13018:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13005:12:139"},"nodeType":"YulFunctionCall","src":"13005:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12995:6:139"}]},{"nodeType":"YulAssignment","src":"13037:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13068:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13079:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13064:3:139"},"nodeType":"YulFunctionCall","src":"13064:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"13047:16:139"},"nodeType":"YulFunctionCall","src":"13047:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13037:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"13092:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13123:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13134:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13119:3:139"},"nodeType":"YulFunctionCall","src":"13119:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13106:12:139"},"nodeType":"YulFunctionCall","src":"13106:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13096:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13147:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"13157:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13151:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13202:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13211:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"13219:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13204:6:139"},"nodeType":"YulFunctionCall","src":"13204:22:139"},"nodeType":"YulExpressionStatement","src":"13204:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13190:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13198:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13187:2:139"},"nodeType":"YulFunctionCall","src":"13187:14:139"},"nodeType":"YulIf","src":"13184:2:139"},{"nodeType":"YulVariableDeclaration","src":"13237:84:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13293:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"13304:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13289:3:139"},"nodeType":"YulFunctionCall","src":"13289:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13313:7:139"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"13263:25:139"},"nodeType":"YulFunctionCall","src":"13263:58:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"13241:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"13251:8:139","type":""}]},{"nodeType":"YulAssignment","src":"13330:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"13340:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13330:6:139"}]},{"nodeType":"YulAssignment","src":"13357:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"13367:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13357:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"13384:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13417:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13428:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13413:3:139"},"nodeType":"YulFunctionCall","src":"13413:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13400:12:139"},"nodeType":"YulFunctionCall","src":"13400:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"13388:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13461:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"13470:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"13478:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13463:6:139"},"nodeType":"YulFunctionCall","src":"13463:22:139"},"nodeType":"YulExpressionStatement","src":"13463:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"13447:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13457:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13444:2:139"},"nodeType":"YulFunctionCall","src":"13444:16:139"},"nodeType":"YulIf","src":"13441:2:139"},{"nodeType":"YulAssignment","src":"13496:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13527:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"13538:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13523:3:139"},"nodeType":"YulFunctionCall","src":"13523:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13549:7:139"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13506:16:139"},"nodeType":"YulFunctionCall","src":"13506:51:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"13496:6:139"}]},{"nodeType":"YulAssignment","src":"13566:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13597:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13608:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13593:3:139"},"nodeType":"YulFunctionCall","src":"13593:19:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"13576:16:139"},"nodeType":"YulFunctionCall","src":"13576:37:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"13566:6:139"}]},{"nodeType":"YulAssignment","src":"13622:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13649:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13660:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13645:3:139"},"nodeType":"YulFunctionCall","src":"13645:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13632:12:139"},"nodeType":"YulFunctionCall","src":"13632:33:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"13622:6:139"}]},{"nodeType":"YulAssignment","src":"13674:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13701:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13712:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13697:3:139"},"nodeType":"YulFunctionCall","src":"13697:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13684:12:139"},"nodeType":"YulFunctionCall","src":"13684:33:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"13674:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptrt_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12823:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12834:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12846:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12854:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12862:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12870:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12878:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"12886:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"12894:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"12902:6:139","type":""}],"src":"12716:1007:139"},{"body":{"nodeType":"YulBlock","src":"13862:334:139","statements":[{"body":{"nodeType":"YulBlock","src":"13909:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13918:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"13926:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13911:6:139"},"nodeType":"YulFunctionCall","src":"13911:22:139"},"nodeType":"YulExpressionStatement","src":"13911:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13883:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"13892:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13879:3:139"},"nodeType":"YulFunctionCall","src":"13879:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"13904:3:139","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13875:3:139"},"nodeType":"YulFunctionCall","src":"13875:33:139"},"nodeType":"YulIf","src":"13872:2:139"},{"nodeType":"YulAssignment","src":"13944:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13967:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13954:12:139"},"nodeType":"YulFunctionCall","src":"13954:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13944:6:139"}]},{"nodeType":"YulAssignment","src":"13986:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14017:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14028:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14013:3:139"},"nodeType":"YulFunctionCall","src":"14013:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"13996:16:139"},"nodeType":"YulFunctionCall","src":"13996:36:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13986:6:139"}]},{"nodeType":"YulAssignment","src":"14041:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14072:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14083:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14068:3:139"},"nodeType":"YulFunctionCall","src":"14068:18:139"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"14051:16:139"},"nodeType":"YulFunctionCall","src":"14051:36:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"14041:6:139"}]},{"nodeType":"YulAssignment","src":"14096:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14123:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14134:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14119:3:139"},"nodeType":"YulFunctionCall","src":"14119:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14106:12:139"},"nodeType":"YulFunctionCall","src":"14106:32:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"14096:6:139"}]},{"nodeType":"YulAssignment","src":"14147:43:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14174:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14185:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14170:3:139"},"nodeType":"YulFunctionCall","src":"14170:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14157:12:139"},"nodeType":"YulFunctionCall","src":"14157:33:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"14147:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13796:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13807:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13819:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13827:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13835:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13843:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13851:6:139","type":""}],"src":"13728:468:139"},{"body":{"nodeType":"YulBlock","src":"14262:402:139","statements":[{"nodeType":"YulVariableDeclaration","src":"14272:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14292:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14286:5:139"},"nodeType":"YulFunctionCall","src":"14286:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14276:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14314:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"14319:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14307:6:139"},"nodeType":"YulFunctionCall","src":"14307:19:139"},"nodeType":"YulExpressionStatement","src":"14307:19:139"},{"nodeType":"YulVariableDeclaration","src":"14335:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"14345:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14339:2:139","type":""}]},{"nodeType":"YulAssignment","src":"14358:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14369:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14374:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14365:3:139"},"nodeType":"YulFunctionCall","src":"14365:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14358:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"14386:28:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14404:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14411:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14400:3:139"},"nodeType":"YulFunctionCall","src":"14400:14:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"14390:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14423:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"14432:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14427:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"14493:146:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14514:3:139"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14529:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14523:5:139"},"nodeType":"YulFunctionCall","src":"14523:13:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14546:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14551:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14542:3:139"},"nodeType":"YulFunctionCall","src":"14542:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14555:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14538:3:139"},"nodeType":"YulFunctionCall","src":"14538:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14519:3:139"},"nodeType":"YulFunctionCall","src":"14519:39:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14507:6:139"},"nodeType":"YulFunctionCall","src":"14507:52:139"},"nodeType":"YulExpressionStatement","src":"14507:52:139"},{"nodeType":"YulAssignment","src":"14572:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14583:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14588:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14579:3:139"},"nodeType":"YulFunctionCall","src":"14579:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14572:3:139"}]},{"nodeType":"YulAssignment","src":"14604:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14618:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14626:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14614:3:139"},"nodeType":"YulFunctionCall","src":"14614:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14604:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14455:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"14458:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14452:2:139"},"nodeType":"YulFunctionCall","src":"14452:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14466:18:139","statements":[{"nodeType":"YulAssignment","src":"14468:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14477:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"14480:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14473:3:139"},"nodeType":"YulFunctionCall","src":"14473:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14468:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"14448:3:139","statements":[]},"src":"14444:195:139"},{"nodeType":"YulAssignment","src":"14648:10:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"14655:3:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14648:3:139"}]}]},"name":"abi_encode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14239:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14246:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14254:3:139","type":""}],"src":"14201:463:139"},{"body":{"nodeType":"YulBlock","src":"14728:557:139","statements":[{"nodeType":"YulVariableDeclaration","src":"14738:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14758:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14752:5:139"},"nodeType":"YulFunctionCall","src":"14752:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14742:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14780:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"14785:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14773:6:139"},"nodeType":"YulFunctionCall","src":"14773:19:139"},"nodeType":"YulExpressionStatement","src":"14773:19:139"},{"nodeType":"YulVariableDeclaration","src":"14801:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"14811:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14805:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14824:31:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14847:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14852:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14843:3:139"},"nodeType":"YulFunctionCall","src":"14843:12:139"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"14828:11:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14864:24:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"14877:11:139"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"14868:5:139","type":""}]},{"nodeType":"YulAssignment","src":"14897:18:139","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"14904:11:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14897:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"14924:38:139","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"14940:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14951:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"14954:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14947:3:139"},"nodeType":"YulFunctionCall","src":"14947:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14936:3:139"},"nodeType":"YulFunctionCall","src":"14936:26:139"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"14928:4:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14971:28:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14989:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"14996:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14985:3:139"},"nodeType":"YulFunctionCall","src":"14985:14:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"14975:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15008:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"15017:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15012:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"15078:181:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15099:3:139"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15108:4:139"},{"name":"pos_1","nodeType":"YulIdentifier","src":"15114:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15104:3:139"},"nodeType":"YulFunctionCall","src":"15104:16:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15092:6:139"},"nodeType":"YulFunctionCall","src":"15092:29:139"},"nodeType":"YulExpressionStatement","src":"15092:29:139"},{"nodeType":"YulAssignment","src":"15134:45:139","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15165:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15159:5:139"},"nodeType":"YulFunctionCall","src":"15159:13:139"},{"name":"tail","nodeType":"YulIdentifier","src":"15174:4:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"15142:16:139"},"nodeType":"YulFunctionCall","src":"15142:37:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15134:4:139"}]},{"nodeType":"YulAssignment","src":"15192:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15206:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15214:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15202:3:139"},"nodeType":"YulFunctionCall","src":"15202:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15192:6:139"}]},{"nodeType":"YulAssignment","src":"15230:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15241:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15246:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15237:3:139"},"nodeType":"YulFunctionCall","src":"15237:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15230:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15040:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"15043:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15037:2:139"},"nodeType":"YulFunctionCall","src":"15037:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15051:18:139","statements":[{"nodeType":"YulAssignment","src":"15053:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15062:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"15065:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15058:3:139"},"nodeType":"YulFunctionCall","src":"15058:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15053:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"15033:3:139","statements":[]},"src":"15029:230:139"},{"nodeType":"YulAssignment","src":"15268:11:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"15275:4:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15268:3:139"}]}]},"name":"abi_encode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14705:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14712:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14720:3:139","type":""}],"src":"14669:616:139"},{"body":{"nodeType":"YulBlock","src":"15351:376:139","statements":[{"nodeType":"YulVariableDeclaration","src":"15361:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15381:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15375:5:139"},"nodeType":"YulFunctionCall","src":"15375:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15365:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15403:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"15408:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15396:6:139"},"nodeType":"YulFunctionCall","src":"15396:19:139"},"nodeType":"YulExpressionStatement","src":"15396:19:139"},{"nodeType":"YulVariableDeclaration","src":"15424:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"15434:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15428:2:139","type":""}]},{"nodeType":"YulAssignment","src":"15447:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15458:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15463:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15454:3:139"},"nodeType":"YulFunctionCall","src":"15454:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15447:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"15475:28:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15493:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15500:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15489:3:139"},"nodeType":"YulFunctionCall","src":"15489:14:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"15479:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15512:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"15521:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15516:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"15582:120:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15603:3:139"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15614:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15608:5:139"},"nodeType":"YulFunctionCall","src":"15608:13:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15596:6:139"},"nodeType":"YulFunctionCall","src":"15596:26:139"},"nodeType":"YulExpressionStatement","src":"15596:26:139"},{"nodeType":"YulAssignment","src":"15635:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15646:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15651:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15642:3:139"},"nodeType":"YulFunctionCall","src":"15642:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15635:3:139"}]},{"nodeType":"YulAssignment","src":"15667:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15681:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"15689:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15677:3:139"},"nodeType":"YulFunctionCall","src":"15677:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15667:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15544:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"15547:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15541:2:139"},"nodeType":"YulFunctionCall","src":"15541:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15555:18:139","statements":[{"nodeType":"YulAssignment","src":"15557:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15566:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"15569:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15562:3:139"},"nodeType":"YulFunctionCall","src":"15562:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15557:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"15537:3:139","statements":[]},"src":"15533:169:139"},{"nodeType":"YulAssignment","src":"15711:10:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"15718:3:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15711:3:139"}]}]},"name":"abi_encode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15328:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15335:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15343:3:139","type":""}],"src":"15290:437:139"},{"body":{"nodeType":"YulBlock","src":"15781:208:139","statements":[{"nodeType":"YulVariableDeclaration","src":"15791:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15811:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15805:5:139"},"nodeType":"YulFunctionCall","src":"15805:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15795:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15833:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"15838:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15826:6:139"},"nodeType":"YulFunctionCall","src":"15826:19:139"},"nodeType":"YulExpressionStatement","src":"15826:19:139"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15880:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"15887:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15876:3:139"},"nodeType":"YulFunctionCall","src":"15876:16:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15898:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"15903:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15894:3:139"},"nodeType":"YulFunctionCall","src":"15894:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"15910:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"15854:21:139"},"nodeType":"YulFunctionCall","src":"15854:63:139"},"nodeType":"YulExpressionStatement","src":"15854:63:139"},{"nodeType":"YulAssignment","src":"15926:57:139","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15941:3:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15954:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"15962:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15950:3:139"},"nodeType":"YulFunctionCall","src":"15950:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15971:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15967:3:139"},"nodeType":"YulFunctionCall","src":"15967:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15946:3:139"},"nodeType":"YulFunctionCall","src":"15946:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15937:3:139"},"nodeType":"YulFunctionCall","src":"15937:39:139"},{"kind":"number","nodeType":"YulLiteral","src":"15978:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15933:3:139"},"nodeType":"YulFunctionCall","src":"15933:50:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15926:3:139"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15758:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15765:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15773:3:139","type":""}],"src":"15732:257:139"},{"body":{"nodeType":"YulBlock","src":"16037:59:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16054:3:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16063:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"16070:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16059:3:139"},"nodeType":"YulFunctionCall","src":"16059:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16047:6:139"},"nodeType":"YulFunctionCall","src":"16047:43:139"},"nodeType":"YulExpressionStatement","src":"16047:43:139"}]},"name":"abi_encode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"16021:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"16028:3:139","type":""}],"src":"15994:102:139"},{"body":{"nodeType":"YulBlock","src":"16248:126:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16271:3:139"},{"name":"value0","nodeType":"YulIdentifier","src":"16276:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"16284:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"16258:12:139"},"nodeType":"YulFunctionCall","src":"16258:33:139"},"nodeType":"YulExpressionStatement","src":"16258:33:139"},{"nodeType":"YulVariableDeclaration","src":"16300:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16314:3:139"},{"name":"value1","nodeType":"YulIdentifier","src":"16319:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16310:3:139"},"nodeType":"YulFunctionCall","src":"16310:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16304:2:139","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16342:2:139"},{"name":"end","nodeType":"YulIdentifier","src":"16346:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16335:6:139"},"nodeType":"YulFunctionCall","src":"16335:15:139"},"nodeType":"YulExpressionStatement","src":"16335:15:139"},{"nodeType":"YulAssignment","src":"16359:9:139","value":{"name":"_1","nodeType":"YulIdentifier","src":"16366:2:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16359:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16216:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16221:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16229:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16240:3:139","type":""}],"src":"16101:273:139"},{"body":{"nodeType":"YulBlock","src":"16516:137:139","statements":[{"nodeType":"YulVariableDeclaration","src":"16526:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16546:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16540:5:139"},"nodeType":"YulFunctionCall","src":"16540:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16530:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16588:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"16596:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16584:3:139"},"nodeType":"YulFunctionCall","src":"16584:17:139"},{"name":"pos","nodeType":"YulIdentifier","src":"16603:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"16608:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"16562:21:139"},"nodeType":"YulFunctionCall","src":"16562:53:139"},"nodeType":"YulExpressionStatement","src":"16562:53:139"},{"nodeType":"YulAssignment","src":"16624:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16635:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"16640:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16631:3:139"},"nodeType":"YulFunctionCall","src":"16631:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16624:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16492:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16497:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16508:3:139","type":""}],"src":"16379:274:139"},{"body":{"nodeType":"YulBlock","src":"16906:144:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16923:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16932:3:139","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"16937:4:139","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16928:3:139"},"nodeType":"YulFunctionCall","src":"16928:14:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16916:6:139"},"nodeType":"YulFunctionCall","src":"16916:27:139"},"nodeType":"YulExpressionStatement","src":"16916:27:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16963:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"16968:1:139","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16959:3:139"},"nodeType":"YulFunctionCall","src":"16959:11:139"},{"name":"value0","nodeType":"YulIdentifier","src":"16972:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16952:6:139"},"nodeType":"YulFunctionCall","src":"16952:27:139"},"nodeType":"YulExpressionStatement","src":"16952:27:139"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16999:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"17004:2:139","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16995:3:139"},"nodeType":"YulFunctionCall","src":"16995:12:139"},{"name":"value1","nodeType":"YulIdentifier","src":"17009:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16988:6:139"},"nodeType":"YulFunctionCall","src":"16988:28:139"},"nodeType":"YulExpressionStatement","src":"16988:28:139"},{"nodeType":"YulAssignment","src":"17025:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17036:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"17041:2:139","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17032:3:139"},"nodeType":"YulFunctionCall","src":"17032:12:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"17025:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16874:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16879:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16887:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16898:3:139","type":""}],"src":"16658:392:139"},{"body":{"nodeType":"YulBlock","src":"17184:145:139","statements":[{"nodeType":"YulAssignment","src":"17194:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17206:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17217:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17202:3:139"},"nodeType":"YulFunctionCall","src":"17202:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17194:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17236:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17251:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17267:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17272:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17263:3:139"},"nodeType":"YulFunctionCall","src":"17263:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"17276:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17259:3:139"},"nodeType":"YulFunctionCall","src":"17259:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17247:3:139"},"nodeType":"YulFunctionCall","src":"17247:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17229:6:139"},"nodeType":"YulFunctionCall","src":"17229:51:139"},"nodeType":"YulExpressionStatement","src":"17229:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17300:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17311:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17296:3:139"},"nodeType":"YulFunctionCall","src":"17296:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"17316:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17289:6:139"},"nodeType":"YulFunctionCall","src":"17289:34:139"},"nodeType":"YulExpressionStatement","src":"17289:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17145:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17156:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17164:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17175:4:139","type":""}],"src":"17055:274:139"},{"body":{"nodeType":"YulBlock","src":"17687:405:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17704:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17715:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17697:6:139"},"nodeType":"YulFunctionCall","src":"17697:22:139"},"nodeType":"YulExpressionStatement","src":"17697:22:139"},{"nodeType":"YulVariableDeclaration","src":"17728:71:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17771:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17783:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17794:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17779:3:139"},"nodeType":"YulFunctionCall","src":"17779:19:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"17742:28:139"},"nodeType":"YulFunctionCall","src":"17742:57:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"17732:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17819:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17830:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17815:3:139"},"nodeType":"YulFunctionCall","src":"17815:18:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17839:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"17847:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17835:3:139"},"nodeType":"YulFunctionCall","src":"17835:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17808:6:139"},"nodeType":"YulFunctionCall","src":"17808:50:139"},"nodeType":"YulExpressionStatement","src":"17808:50:139"},{"nodeType":"YulVariableDeclaration","src":"17867:58:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17910:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17918:6:139"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"17881:28:139"},"nodeType":"YulFunctionCall","src":"17881:44:139"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"17871:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17945:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17956:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17941:3:139"},"nodeType":"YulFunctionCall","src":"17941:18:139"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"17965:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"17973:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17961:3:139"},"nodeType":"YulFunctionCall","src":"17961:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17934:6:139"},"nodeType":"YulFunctionCall","src":"17934:50:139"},"nodeType":"YulExpressionStatement","src":"17934:50:139"},{"nodeType":"YulAssignment","src":"17993:50:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18028:6:139"},{"name":"tail_2","nodeType":"YulIdentifier","src":"18036:6:139"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"18001:26:139"},"nodeType":"YulFunctionCall","src":"18001:42:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17993:4:139"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18063:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18074:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18059:3:139"},"nodeType":"YulFunctionCall","src":"18059:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"18079:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18052:6:139"},"nodeType":"YulFunctionCall","src":"18052:34:139"},"nodeType":"YulExpressionStatement","src":"18052:34:139"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17632:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17643:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17651:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17659:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17667:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17678:4:139","type":""}],"src":"17334:758:139"},{"body":{"nodeType":"YulBlock","src":"18192:92:139","statements":[{"nodeType":"YulAssignment","src":"18202:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18214:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18225:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18210:3:139"},"nodeType":"YulFunctionCall","src":"18210:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18202:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18244:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18269:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18262:6:139"},"nodeType":"YulFunctionCall","src":"18262:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18255:6:139"},"nodeType":"YulFunctionCall","src":"18255:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18237:6:139"},"nodeType":"YulFunctionCall","src":"18237:41:139"},"nodeType":"YulExpressionStatement","src":"18237:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18161:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18172:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18183:4:139","type":""}],"src":"18097:187:139"},{"body":{"nodeType":"YulBlock","src":"18390:76:139","statements":[{"nodeType":"YulAssignment","src":"18400:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18412:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18423:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18408:3:139"},"nodeType":"YulFunctionCall","src":"18408:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18400:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18442:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"18453:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18435:6:139"},"nodeType":"YulFunctionCall","src":"18435:25:139"},"nodeType":"YulExpressionStatement","src":"18435:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18359:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18370:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18381:4:139","type":""}],"src":"18289:177:139"},{"body":{"nodeType":"YulBlock","src":"18684:276:139","statements":[{"nodeType":"YulAssignment","src":"18694:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18706:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18717:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18702:3:139"},"nodeType":"YulFunctionCall","src":"18702:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18694:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18737:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"18748:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18730:6:139"},"nodeType":"YulFunctionCall","src":"18730:25:139"},"nodeType":"YulExpressionStatement","src":"18730:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18775:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18786:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18771:3:139"},"nodeType":"YulFunctionCall","src":"18771:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"18791:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18764:6:139"},"nodeType":"YulFunctionCall","src":"18764:34:139"},"nodeType":"YulExpressionStatement","src":"18764:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18818:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18829:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18814:3:139"},"nodeType":"YulFunctionCall","src":"18814:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"18834:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18807:6:139"},"nodeType":"YulFunctionCall","src":"18807:34:139"},"nodeType":"YulExpressionStatement","src":"18807:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18861:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18872:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18857:3:139"},"nodeType":"YulFunctionCall","src":"18857:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"18877:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18850:6:139"},"nodeType":"YulFunctionCall","src":"18850:34:139"},"nodeType":"YulExpressionStatement","src":"18850:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18904:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18915:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18900:3:139"},"nodeType":"YulFunctionCall","src":"18900:19:139"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18925:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18941:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18946:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18937:3:139"},"nodeType":"YulFunctionCall","src":"18937:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"18950:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18933:3:139"},"nodeType":"YulFunctionCall","src":"18933:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18921:3:139"},"nodeType":"YulFunctionCall","src":"18921:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18893:6:139"},"nodeType":"YulFunctionCall","src":"18893:61:139"},"nodeType":"YulExpressionStatement","src":"18893:61:139"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18621:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"18632:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18640:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18648:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18656:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18664:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18675:4:139","type":""}],"src":"18471:489:139"},{"body":{"nodeType":"YulBlock","src":"19118:173:139","statements":[{"nodeType":"YulAssignment","src":"19128:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19140:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19151:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19136:3:139"},"nodeType":"YulFunctionCall","src":"19136:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19128:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19170:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"19181:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19163:6:139"},"nodeType":"YulFunctionCall","src":"19163:25:139"},"nodeType":"YulExpressionStatement","src":"19163:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19208:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19219:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19204:3:139"},"nodeType":"YulFunctionCall","src":"19204:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"19224:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19197:6:139"},"nodeType":"YulFunctionCall","src":"19197:34:139"},"nodeType":"YulExpressionStatement","src":"19197:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19251:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19262:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19247:3:139"},"nodeType":"YulFunctionCall","src":"19247:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19271:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"19279:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19267:3:139"},"nodeType":"YulFunctionCall","src":"19267:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19240:6:139"},"nodeType":"YulFunctionCall","src":"19240:45:139"},"nodeType":"YulExpressionStatement","src":"19240:45:139"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint8__to_t_bytes32_t_uint256_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19071:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19082:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19090:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19098:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19109:4:139","type":""}],"src":"18965:326:139"},{"body":{"nodeType":"YulBlock","src":"19505:261:139","statements":[{"nodeType":"YulAssignment","src":"19515:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19527:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19538:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19523:3:139"},"nodeType":"YulFunctionCall","src":"19523:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19515:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19558:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"19569:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19551:6:139"},"nodeType":"YulFunctionCall","src":"19551:25:139"},"nodeType":"YulExpressionStatement","src":"19551:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19596:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19607:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19592:3:139"},"nodeType":"YulFunctionCall","src":"19592:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"19612:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19585:6:139"},"nodeType":"YulFunctionCall","src":"19585:34:139"},"nodeType":"YulExpressionStatement","src":"19585:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19639:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19650:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19635:3:139"},"nodeType":"YulFunctionCall","src":"19635:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19659:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"19667:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19655:3:139"},"nodeType":"YulFunctionCall","src":"19655:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19628:6:139"},"nodeType":"YulFunctionCall","src":"19628:45:139"},"nodeType":"YulExpressionStatement","src":"19628:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19693:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19704:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19689:3:139"},"nodeType":"YulFunctionCall","src":"19689:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"19709:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19682:6:139"},"nodeType":"YulFunctionCall","src":"19682:34:139"},"nodeType":"YulExpressionStatement","src":"19682:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19736:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19747:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19732:3:139"},"nodeType":"YulFunctionCall","src":"19732:19:139"},{"name":"value4","nodeType":"YulIdentifier","src":"19753:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19725:6:139"},"nodeType":"YulFunctionCall","src":"19725:35:139"},"nodeType":"YulExpressionStatement","src":"19725:35:139"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19442:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19453:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19461:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19469:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19477:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19485:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19496:4:139","type":""}],"src":"19296:470:139"},{"body":{"nodeType":"YulBlock","src":"19952:217:139","statements":[{"nodeType":"YulAssignment","src":"19962:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19974:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19985:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19970:3:139"},"nodeType":"YulFunctionCall","src":"19970:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19962:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20005:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"20016:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19998:6:139"},"nodeType":"YulFunctionCall","src":"19998:25:139"},"nodeType":"YulExpressionStatement","src":"19998:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20043:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20054:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20039:3:139"},"nodeType":"YulFunctionCall","src":"20039:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"20063:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"20071:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20059:3:139"},"nodeType":"YulFunctionCall","src":"20059:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20032:6:139"},"nodeType":"YulFunctionCall","src":"20032:45:139"},"nodeType":"YulExpressionStatement","src":"20032:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20097:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20108:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20093:3:139"},"nodeType":"YulFunctionCall","src":"20093:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"20113:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20086:6:139"},"nodeType":"YulFunctionCall","src":"20086:34:139"},"nodeType":"YulExpressionStatement","src":"20086:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20140:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20151:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20136:3:139"},"nodeType":"YulFunctionCall","src":"20136:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"20156:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20129:6:139"},"nodeType":"YulFunctionCall","src":"20129:34:139"},"nodeType":"YulExpressionStatement","src":"20129:34:139"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19897:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19908:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19916:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19924:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19932:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19943:4:139","type":""}],"src":"19771:398:139"},{"body":{"nodeType":"YulBlock","src":"20273:103:139","statements":[{"nodeType":"YulAssignment","src":"20283:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20295:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20306:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20291:3:139"},"nodeType":"YulFunctionCall","src":"20291:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20283:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20325:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20340:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20352:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20357:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20348:3:139"},"nodeType":"YulFunctionCall","src":"20348:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20336:3:139"},"nodeType":"YulFunctionCall","src":"20336:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20318:6:139"},"nodeType":"YulFunctionCall","src":"20318:52:139"},"nodeType":"YulExpressionStatement","src":"20318:52:139"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20242:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20253:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20264:4:139","type":""}],"src":"20174:202:139"},{"body":{"nodeType":"YulBlock","src":"20501:102:139","statements":[{"nodeType":"YulAssignment","src":"20511:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20523:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20534:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20519:3:139"},"nodeType":"YulFunctionCall","src":"20519:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20511:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20553:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20568:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20584:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20589:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20580:3:139"},"nodeType":"YulFunctionCall","src":"20580:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"20593:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20576:3:139"},"nodeType":"YulFunctionCall","src":"20576:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20564:3:139"},"nodeType":"YulFunctionCall","src":"20564:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20546:6:139"},"nodeType":"YulFunctionCall","src":"20546:51:139"},"nodeType":"YulExpressionStatement","src":"20546:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20470:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20481:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20492:4:139","type":""}],"src":"20381:222:139"},{"body":{"nodeType":"YulBlock","src":"20725:229:139","statements":[{"nodeType":"YulAssignment","src":"20735:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20747:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20758:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20743:3:139"},"nodeType":"YulFunctionCall","src":"20743:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20735:4:139"}]},{"body":{"nodeType":"YulBlock","src":"20803:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20824:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20831:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20836:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20827:3:139"},"nodeType":"YulFunctionCall","src":"20827:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20817:6:139"},"nodeType":"YulFunctionCall","src":"20817:31:139"},"nodeType":"YulExpressionStatement","src":"20817:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20868:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20871:4:139","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20861:6:139"},"nodeType":"YulFunctionCall","src":"20861:15:139"},"nodeType":"YulExpressionStatement","src":"20861:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20896:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20899:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20889:6:139"},"nodeType":"YulFunctionCall","src":"20889:15:139"},"nodeType":"YulExpressionStatement","src":"20889:15:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20783:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"20791:1:139","type":"","value":"8"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20780:2:139"},"nodeType":"YulFunctionCall","src":"20780:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20773:6:139"},"nodeType":"YulFunctionCall","src":"20773:21:139"},"nodeType":"YulIf","src":"20770:2:139"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20930:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"20941:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20923:6:139"},"nodeType":"YulFunctionCall","src":"20923:25:139"},"nodeType":"YulExpressionStatement","src":"20923:25:139"}]},"name":"abi_encode_tuple_t_enum$_ProposalState_$1967__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20694:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20705:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20716:4:139","type":""}],"src":"20608:346:139"},{"body":{"nodeType":"YulBlock","src":"21080:98:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21097:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21108:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21090:6:139"},"nodeType":"YulFunctionCall","src":"21090:21:139"},"nodeType":"YulExpressionStatement","src":"21090:21:139"},{"nodeType":"YulAssignment","src":"21120:52:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21145:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21157:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21168:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21153:3:139"},"nodeType":"YulFunctionCall","src":"21153:18:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"21128:16:139"},"nodeType":"YulFunctionCall","src":"21128:44:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21120:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21049:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21060:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21071:4:139","type":""}],"src":"20959:219:139"},{"body":{"nodeType":"YulBlock","src":"21357:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21374:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21385:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21367:6:139"},"nodeType":"YulFunctionCall","src":"21367:21:139"},"nodeType":"YulExpressionStatement","src":"21367:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21408:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21419:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21404:3:139"},"nodeType":"YulFunctionCall","src":"21404:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21424:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21397:6:139"},"nodeType":"YulFunctionCall","src":"21397:30:139"},"nodeType":"YulExpressionStatement","src":"21397:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21447:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21458:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21443:3:139"},"nodeType":"YulFunctionCall","src":"21443:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21463:26:139","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21436:6:139"},"nodeType":"YulFunctionCall","src":"21436:54:139"},"nodeType":"YulExpressionStatement","src":"21436:54:139"},{"nodeType":"YulAssignment","src":"21499:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21511:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21522:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21507:3:139"},"nodeType":"YulFunctionCall","src":"21507:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21499:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21334:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21348:4:139","type":""}],"src":"21183:348:139"},{"body":{"nodeType":"YulBlock","src":"21710:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21727:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21738:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21720:6:139"},"nodeType":"YulFunctionCall","src":"21720:21:139"},"nodeType":"YulExpressionStatement","src":"21720:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21761:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21772:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21757:3:139"},"nodeType":"YulFunctionCall","src":"21757:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21777:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21750:6:139"},"nodeType":"YulFunctionCall","src":"21750:30:139"},"nodeType":"YulExpressionStatement","src":"21750:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21800:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21811:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21796:3:139"},"nodeType":"YulFunctionCall","src":"21796:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21816:26:139","type":"","value":"Governor: onlyGovernance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21789:6:139"},"nodeType":"YulFunctionCall","src":"21789:54:139"},"nodeType":"YulExpressionStatement","src":"21789:54:139"},{"nodeType":"YulAssignment","src":"21852:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21864:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21875:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21860:3:139"},"nodeType":"YulFunctionCall","src":"21860:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21852:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21687:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21701:4:139","type":""}],"src":"21536:348:139"},{"body":{"nodeType":"YulBlock","src":"22063:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22080:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22091:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22073:6:139"},"nodeType":"YulFunctionCall","src":"22073:21:139"},"nodeType":"YulExpressionStatement","src":"22073:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22114:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22125:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22110:3:139"},"nodeType":"YulFunctionCall","src":"22110:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"22130:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22103:6:139"},"nodeType":"YulFunctionCall","src":"22103:30:139"},"nodeType":"YulExpressionStatement","src":"22103:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22153:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22164:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22149:3:139"},"nodeType":"YulFunctionCall","src":"22149:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22169:33:139","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22142:6:139"},"nodeType":"YulFunctionCall","src":"22142:61:139"},"nodeType":"YulExpressionStatement","src":"22142:61:139"},{"nodeType":"YulAssignment","src":"22212:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22224:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22235:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22220:3:139"},"nodeType":"YulFunctionCall","src":"22220:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22212:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22040:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22054:4:139","type":""}],"src":"21889:355:139"},{"body":{"nodeType":"YulBlock","src":"22423:223:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22440:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22451:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22433:6:139"},"nodeType":"YulFunctionCall","src":"22433:21:139"},"nodeType":"YulExpressionStatement","src":"22433:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22474:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22485:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22470:3:139"},"nodeType":"YulFunctionCall","src":"22470:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"22490:2:139","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22463:6:139"},"nodeType":"YulFunctionCall","src":"22463:30:139"},"nodeType":"YulExpressionStatement","src":"22463:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22513:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22524:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22509:3:139"},"nodeType":"YulFunctionCall","src":"22509:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22529:34:139","type":"","value":"Governor: invalid proposal lengt"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22502:6:139"},"nodeType":"YulFunctionCall","src":"22502:62:139"},"nodeType":"YulExpressionStatement","src":"22502:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22584:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22595:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22580:3:139"},"nodeType":"YulFunctionCall","src":"22580:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22600:3:139","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22573:6:139"},"nodeType":"YulFunctionCall","src":"22573:31:139"},"nodeType":"YulExpressionStatement","src":"22573:31:139"},{"nodeType":"YulAssignment","src":"22613:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22625:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22636:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22621:3:139"},"nodeType":"YulFunctionCall","src":"22621:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22613:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22400:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22414:4:139","type":""}],"src":"22249:397:139"},{"body":{"nodeType":"YulBlock","src":"22825:229:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22842:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22853:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22835:6:139"},"nodeType":"YulFunctionCall","src":"22835:21:139"},"nodeType":"YulExpressionStatement","src":"22835:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22876:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22887:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22872:3:139"},"nodeType":"YulFunctionCall","src":"22872:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"22892:2:139","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22865:6:139"},"nodeType":"YulFunctionCall","src":"22865:30:139"},"nodeType":"YulExpressionStatement","src":"22865:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22915:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22926:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22911:3:139"},"nodeType":"YulFunctionCall","src":"22911:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22931:34:139","type":"","value":"GovernorSettings: voting period "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22904:6:139"},"nodeType":"YulFunctionCall","src":"22904:62:139"},"nodeType":"YulExpressionStatement","src":"22904:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22986:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22997:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22982:3:139"},"nodeType":"YulFunctionCall","src":"22982:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23002:9:139","type":"","value":"too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22975:6:139"},"nodeType":"YulFunctionCall","src":"22975:37:139"},"nodeType":"YulExpressionStatement","src":"22975:37:139"},{"nodeType":"YulAssignment","src":"23021:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23033:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23044:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23029:3:139"},"nodeType":"YulFunctionCall","src":"23029:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23021:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22802:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22816:4:139","type":""}],"src":"22651:403:139"},{"body":{"nodeType":"YulBlock","src":"23233:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23250:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23261:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23243:6:139"},"nodeType":"YulFunctionCall","src":"23243:21:139"},"nodeType":"YulExpressionStatement","src":"23243:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23284:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23295:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23280:3:139"},"nodeType":"YulFunctionCall","src":"23280:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"23300:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23273:6:139"},"nodeType":"YulFunctionCall","src":"23273:30:139"},"nodeType":"YulExpressionStatement","src":"23273:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23323:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23334:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23319:3:139"},"nodeType":"YulFunctionCall","src":"23319:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23339:34:139","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23312:6:139"},"nodeType":"YulFunctionCall","src":"23312:62:139"},"nodeType":"YulExpressionStatement","src":"23312:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23394:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23405:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23390:3:139"},"nodeType":"YulFunctionCall","src":"23390:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23410:4:139","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23383:6:139"},"nodeType":"YulFunctionCall","src":"23383:32:139"},"nodeType":"YulExpressionStatement","src":"23383:32:139"},{"nodeType":"YulAssignment","src":"23424:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23436:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23447:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23432:3:139"},"nodeType":"YulFunctionCall","src":"23432:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23424:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23210:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23224:4:139","type":""}],"src":"23059:398:139"},{"body":{"nodeType":"YulBlock","src":"23636:229:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23653:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23664:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23646:6:139"},"nodeType":"YulFunctionCall","src":"23646:21:139"},"nodeType":"YulExpressionStatement","src":"23646:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23687:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23698:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23683:3:139"},"nodeType":"YulFunctionCall","src":"23683:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"23703:2:139","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23676:6:139"},"nodeType":"YulFunctionCall","src":"23676:30:139"},"nodeType":"YulExpressionStatement","src":"23676:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23726:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23737:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23722:3:139"},"nodeType":"YulFunctionCall","src":"23722:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23742:34:139","type":"","value":"GovernorVotingSimple: vote alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23715:6:139"},"nodeType":"YulFunctionCall","src":"23715:62:139"},"nodeType":"YulExpressionStatement","src":"23715:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23797:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23808:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23793:3:139"},"nodeType":"YulFunctionCall","src":"23793:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"23813:9:139","type":"","value":"dy cast"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23786:6:139"},"nodeType":"YulFunctionCall","src":"23786:37:139"},"nodeType":"YulExpressionStatement","src":"23786:37:139"},{"nodeType":"YulAssignment","src":"23832:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23844:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23855:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23840:3:139"},"nodeType":"YulFunctionCall","src":"23840:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23832:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23613:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23627:4:139","type":""}],"src":"23462:403:139"},{"body":{"nodeType":"YulBlock","src":"24044:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24061:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24072:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24054:6:139"},"nodeType":"YulFunctionCall","src":"24054:21:139"},"nodeType":"YulExpressionStatement","src":"24054:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24095:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24106:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24091:3:139"},"nodeType":"YulFunctionCall","src":"24091:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"24111:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24084:6:139"},"nodeType":"YulFunctionCall","src":"24084:30:139"},"nodeType":"YulExpressionStatement","src":"24084:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24134:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24145:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24130:3:139"},"nodeType":"YulFunctionCall","src":"24130:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24150:34:139","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24123:6:139"},"nodeType":"YulFunctionCall","src":"24123:62:139"},"nodeType":"YulExpressionStatement","src":"24123:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24205:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24216:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24201:3:139"},"nodeType":"YulFunctionCall","src":"24201:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24221:8:139","type":"","value":"r call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24194:6:139"},"nodeType":"YulFunctionCall","src":"24194:36:139"},"nodeType":"YulExpressionStatement","src":"24194:36:139"},{"nodeType":"YulAssignment","src":"24239:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24251:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24262:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24247:3:139"},"nodeType":"YulFunctionCall","src":"24247:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24239:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24021:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24035:4:139","type":""}],"src":"23870:402:139"},{"body":{"nodeType":"YulBlock","src":"24451:225:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24468:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24479:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24461:6:139"},"nodeType":"YulFunctionCall","src":"24461:21:139"},"nodeType":"YulExpressionStatement","src":"24461:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24502:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24513:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24498:3:139"},"nodeType":"YulFunctionCall","src":"24498:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"24518:2:139","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24491:6:139"},"nodeType":"YulFunctionCall","src":"24491:30:139"},"nodeType":"YulExpressionStatement","src":"24491:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24541:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24552:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24537:3:139"},"nodeType":"YulFunctionCall","src":"24537:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24557:34:139","type":"","value":"Governor: vote not currently act"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24530:6:139"},"nodeType":"YulFunctionCall","src":"24530:62:139"},"nodeType":"YulExpressionStatement","src":"24530:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24612:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24623:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24608:3:139"},"nodeType":"YulFunctionCall","src":"24608:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24628:5:139","type":"","value":"ive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24601:6:139"},"nodeType":"YulFunctionCall","src":"24601:33:139"},"nodeType":"YulExpressionStatement","src":"24601:33:139"},{"nodeType":"YulAssignment","src":"24643:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24655:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24666:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24651:3:139"},"nodeType":"YulFunctionCall","src":"24651:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24643:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24428:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24442:4:139","type":""}],"src":"24277:399:139"},{"body":{"nodeType":"YulBlock","src":"24855:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24872:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24883:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24865:6:139"},"nodeType":"YulFunctionCall","src":"24865:21:139"},"nodeType":"YulExpressionStatement","src":"24865:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24906:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24917:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24902:3:139"},"nodeType":"YulFunctionCall","src":"24902:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"24922:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24895:6:139"},"nodeType":"YulFunctionCall","src":"24895:30:139"},"nodeType":"YulExpressionStatement","src":"24895:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24945:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"24956:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24941:3:139"},"nodeType":"YulFunctionCall","src":"24941:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"24961:26:139","type":"","value":"Governor: empty proposal"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24934:6:139"},"nodeType":"YulFunctionCall","src":"24934:54:139"},"nodeType":"YulExpressionStatement","src":"24934:54:139"},{"nodeType":"YulAssignment","src":"24997:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25009:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25020:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25005:3:139"},"nodeType":"YulFunctionCall","src":"25005:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24997:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24832:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24846:4:139","type":""}],"src":"24681:348:139"},{"body":{"nodeType":"YulBlock","src":"25208:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25225:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25236:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25218:6:139"},"nodeType":"YulFunctionCall","src":"25218:21:139"},"nodeType":"YulExpressionStatement","src":"25218:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25259:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25270:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25255:3:139"},"nodeType":"YulFunctionCall","src":"25255:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"25275:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25248:6:139"},"nodeType":"YulFunctionCall","src":"25248:30:139"},"nodeType":"YulExpressionStatement","src":"25248:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25298:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25309:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25294:3:139"},"nodeType":"YulFunctionCall","src":"25294:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25314:34:139","type":"","value":"ECDSA: invalid signature 'v' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25287:6:139"},"nodeType":"YulFunctionCall","src":"25287:62:139"},"nodeType":"YulExpressionStatement","src":"25287:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25369:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25380:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25365:3:139"},"nodeType":"YulFunctionCall","src":"25365:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25385:4:139","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25358:6:139"},"nodeType":"YulFunctionCall","src":"25358:32:139"},"nodeType":"YulExpressionStatement","src":"25358:32:139"},{"nodeType":"YulAssignment","src":"25399:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25411:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25422:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25407:3:139"},"nodeType":"YulFunctionCall","src":"25407:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25399:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25185:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25199:4:139","type":""}],"src":"25034:398:139"},{"body":{"nodeType":"YulBlock","src":"25611:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25628:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25639:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25621:6:139"},"nodeType":"YulFunctionCall","src":"25621:21:139"},"nodeType":"YulExpressionStatement","src":"25621:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25662:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25673:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25658:3:139"},"nodeType":"YulFunctionCall","src":"25658:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"25678:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25651:6:139"},"nodeType":"YulFunctionCall","src":"25651:30:139"},"nodeType":"YulExpressionStatement","src":"25651:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25701:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25712:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25697:3:139"},"nodeType":"YulFunctionCall","src":"25697:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25717:34:139","type":"","value":"SafeCast: value doesn't fit in 6"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25690:6:139"},"nodeType":"YulFunctionCall","src":"25690:62:139"},"nodeType":"YulExpressionStatement","src":"25690:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25772:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25783:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25768:3:139"},"nodeType":"YulFunctionCall","src":"25768:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"25788:8:139","type":"","value":"4 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25761:6:139"},"nodeType":"YulFunctionCall","src":"25761:36:139"},"nodeType":"YulExpressionStatement","src":"25761:36:139"},{"nodeType":"YulAssignment","src":"25806:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25818:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"25829:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25814:3:139"},"nodeType":"YulFunctionCall","src":"25814:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25806:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25588:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25602:4:139","type":""}],"src":"25437:402:139"},{"body":{"nodeType":"YulBlock","src":"26018:223:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26035:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26046:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26028:6:139"},"nodeType":"YulFunctionCall","src":"26028:21:139"},"nodeType":"YulExpressionStatement","src":"26028:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26069:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26080:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26065:3:139"},"nodeType":"YulFunctionCall","src":"26065:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"26085:2:139","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26058:6:139"},"nodeType":"YulFunctionCall","src":"26058:30:139"},"nodeType":"YulExpressionStatement","src":"26058:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26108:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26119:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26104:3:139"},"nodeType":"YulFunctionCall","src":"26104:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26124:34:139","type":"","value":"Governor: proposal not successfu"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26097:6:139"},"nodeType":"YulFunctionCall","src":"26097:62:139"},"nodeType":"YulExpressionStatement","src":"26097:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26179:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26190:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26175:3:139"},"nodeType":"YulFunctionCall","src":"26175:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26195:3:139","type":"","value":"l"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26168:6:139"},"nodeType":"YulFunctionCall","src":"26168:31:139"},"nodeType":"YulExpressionStatement","src":"26168:31:139"},{"nodeType":"YulAssignment","src":"26208:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26220:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26231:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26216:3:139"},"nodeType":"YulFunctionCall","src":"26216:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26208:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25995:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26009:4:139","type":""}],"src":"25844:397:139"},{"body":{"nodeType":"YulBlock","src":"26420:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26437:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26448:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26430:6:139"},"nodeType":"YulFunctionCall","src":"26430:21:139"},"nodeType":"YulExpressionStatement","src":"26430:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26471:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26482:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26467:3:139"},"nodeType":"YulFunctionCall","src":"26467:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"26487:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26460:6:139"},"nodeType":"YulFunctionCall","src":"26460:30:139"},"nodeType":"YulExpressionStatement","src":"26460:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26510:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26521:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26506:3:139"},"nodeType":"YulFunctionCall","src":"26506:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26526:31:139","type":"","value":"Governor: unknown proposal id"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26499:6:139"},"nodeType":"YulFunctionCall","src":"26499:59:139"},"nodeType":"YulExpressionStatement","src":"26499:59:139"},{"nodeType":"YulAssignment","src":"26567:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26579:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26590:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26575:3:139"},"nodeType":"YulFunctionCall","src":"26575:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26567:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26397:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26411:4:139","type":""}],"src":"26246:353:139"},{"body":{"nodeType":"YulBlock","src":"26778:243:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26795:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26806:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26788:6:139"},"nodeType":"YulFunctionCall","src":"26788:21:139"},"nodeType":"YulExpressionStatement","src":"26788:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26829:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26840:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26825:3:139"},"nodeType":"YulFunctionCall","src":"26825:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"26845:2:139","type":"","value":"53"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26818:6:139"},"nodeType":"YulFunctionCall","src":"26818:30:139"},"nodeType":"YulExpressionStatement","src":"26818:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26868:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26879:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26864:3:139"},"nodeType":"YulFunctionCall","src":"26864:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26884:34:139","type":"","value":"GovernorVotingSimple: invalid va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26857:6:139"},"nodeType":"YulFunctionCall","src":"26857:62:139"},"nodeType":"YulExpressionStatement","src":"26857:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26939:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"26950:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26935:3:139"},"nodeType":"YulFunctionCall","src":"26935:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"26955:23:139","type":"","value":"lue for enum VoteType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26928:6:139"},"nodeType":"YulFunctionCall","src":"26928:51:139"},"nodeType":"YulExpressionStatement","src":"26928:51:139"},{"nodeType":"YulAssignment","src":"26988:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27000:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27011:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26996:3:139"},"nodeType":"YulFunctionCall","src":"26996:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26988:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26755:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26769:4:139","type":""}],"src":"26604:417:139"},{"body":{"nodeType":"YulBlock","src":"27200:223:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27217:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27228:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27210:6:139"},"nodeType":"YulFunctionCall","src":"27210:21:139"},"nodeType":"YulExpressionStatement","src":"27210:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27251:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27262:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27247:3:139"},"nodeType":"YulFunctionCall","src":"27247:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"27267:2:139","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27240:6:139"},"nodeType":"YulFunctionCall","src":"27240:30:139"},"nodeType":"YulExpressionStatement","src":"27240:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27290:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27301:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27286:3:139"},"nodeType":"YulFunctionCall","src":"27286:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27306:34:139","type":"","value":"Governor: proposal already exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27279:6:139"},"nodeType":"YulFunctionCall","src":"27279:62:139"},"nodeType":"YulExpressionStatement","src":"27279:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27361:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27372:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27357:3:139"},"nodeType":"YulFunctionCall","src":"27357:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27377:3:139","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27350:6:139"},"nodeType":"YulFunctionCall","src":"27350:31:139"},"nodeType":"YulExpressionStatement","src":"27350:31:139"},{"nodeType":"YulAssignment","src":"27390:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27402:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27413:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27398:3:139"},"nodeType":"YulFunctionCall","src":"27398:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27390:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27177:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27191:4:139","type":""}],"src":"27026:397:139"},{"body":{"nodeType":"YulBlock","src":"27602:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27619:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27630:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27612:6:139"},"nodeType":"YulFunctionCall","src":"27612:21:139"},"nodeType":"YulExpressionStatement","src":"27612:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27653:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27664:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27649:3:139"},"nodeType":"YulFunctionCall","src":"27649:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"27669:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27642:6:139"},"nodeType":"YulFunctionCall","src":"27642:30:139"},"nodeType":"YulExpressionStatement","src":"27642:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27692:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27703:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27688:3:139"},"nodeType":"YulFunctionCall","src":"27688:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"27708:31:139","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27681:6:139"},"nodeType":"YulFunctionCall","src":"27681:59:139"},"nodeType":"YulExpressionStatement","src":"27681:59:139"},{"nodeType":"YulAssignment","src":"27749:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27761:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27772:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27757:3:139"},"nodeType":"YulFunctionCall","src":"27757:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27749:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27579:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27593:4:139","type":""}],"src":"27428:353:139"},{"body":{"nodeType":"YulBlock","src":"27960:239:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27977:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"27988:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27970:6:139"},"nodeType":"YulFunctionCall","src":"27970:21:139"},"nodeType":"YulExpressionStatement","src":"27970:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28011:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28022:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28007:3:139"},"nodeType":"YulFunctionCall","src":"28007:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"28027:2:139","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28000:6:139"},"nodeType":"YulFunctionCall","src":"28000:30:139"},"nodeType":"YulExpressionStatement","src":"28000:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28050:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28061:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28046:3:139"},"nodeType":"YulFunctionCall","src":"28046:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"28066:34:139","type":"","value":"Governor: proposer votes below p"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28039:6:139"},"nodeType":"YulFunctionCall","src":"28039:62:139"},"nodeType":"YulExpressionStatement","src":"28039:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28121:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28132:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28117:3:139"},"nodeType":"YulFunctionCall","src":"28117:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"28137:19:139","type":"","value":"roposal threshold"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28110:6:139"},"nodeType":"YulFunctionCall","src":"28110:47:139"},"nodeType":"YulExpressionStatement","src":"28110:47:139"},{"nodeType":"YulAssignment","src":"28166:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28178:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28189:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28174:3:139"},"nodeType":"YulFunctionCall","src":"28174:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28166:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27937:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27951:4:139","type":""}],"src":"27786:413:139"},{"body":{"nodeType":"YulBlock","src":"28305:76:139","statements":[{"nodeType":"YulAssignment","src":"28315:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28327:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"28338:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28323:3:139"},"nodeType":"YulFunctionCall","src":"28323:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28315:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28357:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"28368:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28350:6:139"},"nodeType":"YulFunctionCall","src":"28350:25:139"},"nodeType":"YulExpressionStatement","src":"28350:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28274:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"28285:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28296:4:139","type":""}],"src":"28204:177:139"},{"body":{"nodeType":"YulBlock","src":"28967:1304:139","statements":[{"nodeType":"YulVariableDeclaration","src":"28977:13:139","value":{"kind":"number","nodeType":"YulLiteral","src":"28987:3:139","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"28981:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29006:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"29017:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28999:6:139"},"nodeType":"YulFunctionCall","src":"28999:25:139"},"nodeType":"YulExpressionStatement","src":"28999:25:139"},{"nodeType":"YulVariableDeclaration","src":"29033:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"29043:2:139","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"29037:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29065:9:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29076:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29061:3:139"},"nodeType":"YulFunctionCall","src":"29061:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"29085:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29101:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"29106:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29097:3:139"},"nodeType":"YulFunctionCall","src":"29097:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"29110:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29093:3:139"},"nodeType":"YulFunctionCall","src":"29093:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29081:3:139"},"nodeType":"YulFunctionCall","src":"29081:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29054:6:139"},"nodeType":"YulFunctionCall","src":"29054:60:139"},"nodeType":"YulExpressionStatement","src":"29054:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29134:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29145:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29130:3:139"},"nodeType":"YulFunctionCall","src":"29130:18:139"},{"name":"_1","nodeType":"YulIdentifier","src":"29150:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29123:6:139"},"nodeType":"YulFunctionCall","src":"29123:30:139"},"nodeType":"YulExpressionStatement","src":"29123:30:139"},{"nodeType":"YulVariableDeclaration","src":"29162:70:139","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"29205:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29217:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"29228:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29213:3:139"},"nodeType":"YulFunctionCall","src":"29213:18:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"29176:28:139"},"nodeType":"YulFunctionCall","src":"29176:56:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"29166:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29252:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29263:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29248:3:139"},"nodeType":"YulFunctionCall","src":"29248:18:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"29272:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"29280:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29268:3:139"},"nodeType":"YulFunctionCall","src":"29268:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29241:6:139"},"nodeType":"YulFunctionCall","src":"29241:50:139"},"nodeType":"YulExpressionStatement","src":"29241:50:139"},{"nodeType":"YulVariableDeclaration","src":"29300:58:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"29343:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"29351:6:139"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"29314:28:139"},"nodeType":"YulFunctionCall","src":"29314:44:139"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"29304:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29378:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29389:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29374:3:139"},"nodeType":"YulFunctionCall","src":"29374:19:139"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"29399:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"29407:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29395:3:139"},"nodeType":"YulFunctionCall","src":"29395:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29367:6:139"},"nodeType":"YulFunctionCall","src":"29367:51:139"},"nodeType":"YulExpressionStatement","src":"29367:51:139"},{"nodeType":"YulVariableDeclaration","src":"29427:17:139","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"29438:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"29431:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29453:27:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"29473:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29467:5:139"},"nodeType":"YulFunctionCall","src":"29467:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"29457:6:139","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"29496:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"29504:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29489:6:139"},"nodeType":"YulFunctionCall","src":"29489:22:139"},"nodeType":"YulExpressionStatement","src":"29489:22:139"},{"nodeType":"YulAssignment","src":"29520:22:139","value":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"29531:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29539:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29527:3:139"},"nodeType":"YulFunctionCall","src":"29527:15:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"29520:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"29551:50:139","value":{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"29573:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29585:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"29588:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29581:3:139"},"nodeType":"YulFunctionCall","src":"29581:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29569:3:139"},"nodeType":"YulFunctionCall","src":"29569:27:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29598:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29565:3:139"},"nodeType":"YulFunctionCall","src":"29565:36:139"},"variables":[{"name":"tail_3","nodeType":"YulTypedName","src":"29555:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29610:29:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"29628:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29636:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29624:3:139"},"nodeType":"YulFunctionCall","src":"29624:15:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"29614:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29648:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"29657:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"29652:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"29719:202:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29740:3:139"},{"arguments":[{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"29753:6:139"},{"name":"tail_2","nodeType":"YulIdentifier","src":"29761:6:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29749:3:139"},"nodeType":"YulFunctionCall","src":"29749:19:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29774:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"29770:3:139"},"nodeType":"YulFunctionCall","src":"29770:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29745:3:139"},"nodeType":"YulFunctionCall","src":"29745:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29733:6:139"},"nodeType":"YulFunctionCall","src":"29733:46:139"},"nodeType":"YulExpressionStatement","src":"29733:46:139"},{"nodeType":"YulAssignment","src":"29792:49:139","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29825:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29819:5:139"},"nodeType":"YulFunctionCall","src":"29819:13:139"},{"name":"tail_3","nodeType":"YulIdentifier","src":"29834:6:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"29802:16:139"},"nodeType":"YulFunctionCall","src":"29802:39:139"},"variableNames":[{"name":"tail_3","nodeType":"YulIdentifier","src":"29792:6:139"}]},{"nodeType":"YulAssignment","src":"29854:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29868:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29876:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29864:3:139"},"nodeType":"YulFunctionCall","src":"29864:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29854:6:139"}]},{"nodeType":"YulAssignment","src":"29892:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29903:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"29908:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29899:3:139"},"nodeType":"YulFunctionCall","src":"29899:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"29892:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"29681:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"29684:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"29678:2:139"},"nodeType":"YulFunctionCall","src":"29678:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"29692:18:139","statements":[{"nodeType":"YulAssignment","src":"29694:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"29703:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"29706:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29699:3:139"},"nodeType":"YulFunctionCall","src":"29699:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"29694:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"29674:3:139","statements":[]},"src":"29670:251:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29941:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"29952:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29937:3:139"},"nodeType":"YulFunctionCall","src":"29937:19:139"},{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"29962:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"29970:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29958:3:139"},"nodeType":"YulFunctionCall","src":"29958:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29930:6:139"},"nodeType":"YulFunctionCall","src":"29930:51:139"},"nodeType":"YulExpressionStatement","src":"29930:51:139"},{"nodeType":"YulVariableDeclaration","src":"29990:56:139","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"30031:6:139"},{"name":"tail_3","nodeType":"YulIdentifier","src":"30039:6:139"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"30004:26:139"},"nodeType":"YulFunctionCall","src":"30004:42:139"},"variables":[{"name":"tail_4","nodeType":"YulTypedName","src":"29994:6:139","type":""}]},{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"30073:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30085:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30096:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30081:3:139"},"nodeType":"YulFunctionCall","src":"30081:19:139"}],"functionName":{"name":"abi_encode_uint64","nodeType":"YulIdentifier","src":"30055:17:139"},"nodeType":"YulFunctionCall","src":"30055:46:139"},"nodeType":"YulExpressionStatement","src":"30055:46:139"},{"expression":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"30128:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30140:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30151:3:139","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30136:3:139"},"nodeType":"YulFunctionCall","src":"30136:19:139"}],"functionName":{"name":"abi_encode_uint64","nodeType":"YulIdentifier","src":"30110:17:139"},"nodeType":"YulFunctionCall","src":"30110:46:139"},"nodeType":"YulExpressionStatement","src":"30110:46:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30176:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30187:3:139","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30172:3:139"},"nodeType":"YulFunctionCall","src":"30172:19:139"},{"arguments":[{"name":"tail_4","nodeType":"YulIdentifier","src":"30197:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"30205:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30193:3:139"},"nodeType":"YulFunctionCall","src":"30193:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30165:6:139"},"nodeType":"YulFunctionCall","src":"30165:51:139"},"nodeType":"YulExpressionStatement","src":"30165:51:139"},{"nodeType":"YulAssignment","src":"30225:40:139","value":{"arguments":[{"name":"value8","nodeType":"YulIdentifier","src":"30250:6:139"},{"name":"tail_4","nodeType":"YulIdentifier","src":"30258:6:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"30233:16:139"},"nodeType":"YulFunctionCall","src":"30233:32:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30225:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint64_t_uint64_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28872:9:139","type":""},{"name":"value8","nodeType":"YulTypedName","src":"28883:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"28891:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"28899:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"28907:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"28915:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"28923:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"28931:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"28939:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"28947:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28958:4:139","type":""}],"src":"28386:1885:139"},{"body":{"nodeType":"YulBlock","src":"30405:119:139","statements":[{"nodeType":"YulAssignment","src":"30415:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30427:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30438:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30423:3:139"},"nodeType":"YulFunctionCall","src":"30423:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30415:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30457:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"30468:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30450:6:139"},"nodeType":"YulFunctionCall","src":"30450:25:139"},"nodeType":"YulExpressionStatement","src":"30450:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30495:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30506:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30491:3:139"},"nodeType":"YulFunctionCall","src":"30491:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"30511:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30484:6:139"},"nodeType":"YulFunctionCall","src":"30484:34:139"},"nodeType":"YulExpressionStatement","src":"30484:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30366:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"30377:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30385:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30396:4:139","type":""}],"src":"30276:248:139"},{"body":{"nodeType":"YulBlock","src":"30686:162:139","statements":[{"nodeType":"YulAssignment","src":"30696:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30708:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30719:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30704:3:139"},"nodeType":"YulFunctionCall","src":"30704:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30696:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30738:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"30749:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30731:6:139"},"nodeType":"YulFunctionCall","src":"30731:25:139"},"nodeType":"YulExpressionStatement","src":"30731:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30776:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30787:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30772:3:139"},"nodeType":"YulFunctionCall","src":"30772:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"30792:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30765:6:139"},"nodeType":"YulFunctionCall","src":"30765:34:139"},"nodeType":"YulExpressionStatement","src":"30765:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30819:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"30830:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30815:3:139"},"nodeType":"YulFunctionCall","src":"30815:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"30835:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30808:6:139"},"nodeType":"YulFunctionCall","src":"30808:34:139"},"nodeType":"YulExpressionStatement","src":"30808:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30639:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"30650:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"30658:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30666:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30677:4:139","type":""}],"src":"30529:319:139"},{"body":{"nodeType":"YulBlock","src":"31054:240:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31071:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"31082:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31064:6:139"},"nodeType":"YulFunctionCall","src":"31064:25:139"},"nodeType":"YulExpressionStatement","src":"31064:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31109:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31120:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31105:3:139"},"nodeType":"YulFunctionCall","src":"31105:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"31129:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"31137:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31125:3:139"},"nodeType":"YulFunctionCall","src":"31125:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31098:6:139"},"nodeType":"YulFunctionCall","src":"31098:45:139"},"nodeType":"YulExpressionStatement","src":"31098:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31163:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31174:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31159:3:139"},"nodeType":"YulFunctionCall","src":"31159:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"31179:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31152:6:139"},"nodeType":"YulFunctionCall","src":"31152:34:139"},"nodeType":"YulExpressionStatement","src":"31152:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31206:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31217:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31202:3:139"},"nodeType":"YulFunctionCall","src":"31202:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"31222:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31195:6:139"},"nodeType":"YulFunctionCall","src":"31195:31:139"},"nodeType":"YulExpressionStatement","src":"31195:31:139"},{"nodeType":"YulAssignment","src":"31235:53:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"31260:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31272:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31283:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31268:3:139"},"nodeType":"YulFunctionCall","src":"31268:19:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"31243:16:139"},"nodeType":"YulFunctionCall","src":"31243:45:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31235:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30999:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"31010:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"31018:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31026:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31034:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31045:4:139","type":""}],"src":"30853:441:139"},{"body":{"nodeType":"YulBlock","src":"31546:355:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31563:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"31574:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31556:6:139"},"nodeType":"YulFunctionCall","src":"31556:25:139"},"nodeType":"YulExpressionStatement","src":"31556:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31601:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31612:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31597:3:139"},"nodeType":"YulFunctionCall","src":"31597:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"31621:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"31629:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31617:3:139"},"nodeType":"YulFunctionCall","src":"31617:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31590:6:139"},"nodeType":"YulFunctionCall","src":"31590:45:139"},"nodeType":"YulExpressionStatement","src":"31590:45:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31655:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31666:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31651:3:139"},"nodeType":"YulFunctionCall","src":"31651:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"31671:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31644:6:139"},"nodeType":"YulFunctionCall","src":"31644:34:139"},"nodeType":"YulExpressionStatement","src":"31644:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31698:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31709:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31694:3:139"},"nodeType":"YulFunctionCall","src":"31694:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"31714:3:139","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31687:6:139"},"nodeType":"YulFunctionCall","src":"31687:31:139"},"nodeType":"YulExpressionStatement","src":"31687:31:139"},{"nodeType":"YulVariableDeclaration","src":"31727:59:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"31758:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31770:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31781:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31766:3:139"},"nodeType":"YulFunctionCall","src":"31766:19:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"31741:16:139"},"nodeType":"YulFunctionCall","src":"31741:45:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"31731:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31806:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"31817:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31802:3:139"},"nodeType":"YulFunctionCall","src":"31802:19:139"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"31827:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"31835:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31823:3:139"},"nodeType":"YulFunctionCall","src":"31823:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31795:6:139"},"nodeType":"YulFunctionCall","src":"31795:51:139"},"nodeType":"YulExpressionStatement","src":"31795:51:139"},{"nodeType":"YulAssignment","src":"31855:40:139","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"31880:6:139"},{"name":"tail_1","nodeType":"YulIdentifier","src":"31888:6:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"31863:16:139"},"nodeType":"YulFunctionCall","src":"31863:32:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31855:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31483:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"31494:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"31502:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"31510:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31518:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31526:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31537:4:139","type":""}],"src":"31299:602:139"},{"body":{"nodeType":"YulBlock","src":"31951:230:139","statements":[{"nodeType":"YulAssignment","src":"31961:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31977:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31971:5:139"},"nodeType":"YulFunctionCall","src":"31971:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"31961:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"31989:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"32011:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"32027:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"32033:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32023:3:139"},"nodeType":"YulFunctionCall","src":"32023:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32042:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"32038:3:139"},"nodeType":"YulFunctionCall","src":"32038:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32019:3:139"},"nodeType":"YulFunctionCall","src":"32019:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32007:3:139"},"nodeType":"YulFunctionCall","src":"32007:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"31993:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"32122:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"32124:16:139"},"nodeType":"YulFunctionCall","src":"32124:18:139"},"nodeType":"YulExpressionStatement","src":"32124:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"32065:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"32077:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"32062:2:139"},"nodeType":"YulFunctionCall","src":"32062:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"32101:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"32113:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"32098:2:139"},"nodeType":"YulFunctionCall","src":"32098:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"32059:2:139"},"nodeType":"YulFunctionCall","src":"32059:62:139"},"nodeType":"YulIf","src":"32056:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32160:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"32164:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32153:6:139"},"nodeType":"YulFunctionCall","src":"32153:22:139"},"nodeType":"YulExpressionStatement","src":"32153:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"31931:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"31940:6:139","type":""}],"src":"31906:275:139"},{"body":{"nodeType":"YulBlock","src":"32255:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"32299:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"32301:16:139"},"nodeType":"YulFunctionCall","src":"32301:18:139"},"nodeType":"YulExpressionStatement","src":"32301:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"32271:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"32279:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"32268:2:139"},"nodeType":"YulFunctionCall","src":"32268:30:139"},"nodeType":"YulIf","src":"32265:2:139"},{"nodeType":"YulAssignment","src":"32330:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32346:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"32349:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32342:3:139"},"nodeType":"YulFunctionCall","src":"32342:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"32358:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32338:3:139"},"nodeType":"YulFunctionCall","src":"32338:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"32330:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"32235:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"32246:4:139","type":""}],"src":"32186:183:139"},{"body":{"nodeType":"YulBlock","src":"32422:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"32449:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"32451:16:139"},"nodeType":"YulFunctionCall","src":"32451:18:139"},"nodeType":"YulExpressionStatement","src":"32451:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"32438:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"32445:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"32441:3:139"},"nodeType":"YulFunctionCall","src":"32441:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"32435:2:139"},"nodeType":"YulFunctionCall","src":"32435:13:139"},"nodeType":"YulIf","src":"32432:2:139"},{"nodeType":"YulAssignment","src":"32480:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"32491:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"32494:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32487:3:139"},"nodeType":"YulFunctionCall","src":"32487:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"32480:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"32405:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"32408:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"32414:3:139","type":""}],"src":"32374:128:139"},{"body":{"nodeType":"YulBlock","src":"32554:189:139","statements":[{"nodeType":"YulVariableDeclaration","src":"32564:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"32574:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"32568:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"32601:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"32616:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"32619:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32612:3:139"},"nodeType":"YulFunctionCall","src":"32612:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"32605:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"32631:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"32646:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"32649:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32642:3:139"},"nodeType":"YulFunctionCall","src":"32642:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"32635:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"32686:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"32688:16:139"},"nodeType":"YulFunctionCall","src":"32688:18:139"},"nodeType":"YulExpressionStatement","src":"32688:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"32667:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"32676:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"32680:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32672:3:139"},"nodeType":"YulFunctionCall","src":"32672:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"32664:2:139"},"nodeType":"YulFunctionCall","src":"32664:21:139"},"nodeType":"YulIf","src":"32661:2:139"},{"nodeType":"YulAssignment","src":"32717:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"32728:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"32733:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32724:3:139"},"nodeType":"YulFunctionCall","src":"32724:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"32717:3:139"}]}]},"name":"checked_add_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"32537:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"32540:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"32546:3:139","type":""}],"src":"32507:236:139"},{"body":{"nodeType":"YulBlock","src":"32797:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"32819:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"32821:16:139"},"nodeType":"YulFunctionCall","src":"32821:18:139"},"nodeType":"YulExpressionStatement","src":"32821:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"32813:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"32816:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"32810:2:139"},"nodeType":"YulFunctionCall","src":"32810:8:139"},"nodeType":"YulIf","src":"32807:2:139"},{"nodeType":"YulAssignment","src":"32850:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"32862:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"32865:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32858:3:139"},"nodeType":"YulFunctionCall","src":"32858:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"32850:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"32779:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"32782:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"32788:4:139","type":""}],"src":"32748:125:139"},{"body":{"nodeType":"YulBlock","src":"32931:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"32941:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"32950:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"32945:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"33010:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"33035:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"33040:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33031:3:139"},"nodeType":"YulFunctionCall","src":"33031:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"33054:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"33059:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33050:3:139"},"nodeType":"YulFunctionCall","src":"33050:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"33044:5:139"},"nodeType":"YulFunctionCall","src":"33044:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33024:6:139"},"nodeType":"YulFunctionCall","src":"33024:39:139"},"nodeType":"YulExpressionStatement","src":"33024:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"32971:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"32974:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"32968:2:139"},"nodeType":"YulFunctionCall","src":"32968:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"32982:19:139","statements":[{"nodeType":"YulAssignment","src":"32984:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"32993:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"32996:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32989:3:139"},"nodeType":"YulFunctionCall","src":"32989:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"32984:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"32964:3:139","statements":[]},"src":"32960:113:139"},{"body":{"nodeType":"YulBlock","src":"33099:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"33112:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"33117:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33108:3:139"},"nodeType":"YulFunctionCall","src":"33108:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"33126:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33101:6:139"},"nodeType":"YulFunctionCall","src":"33101:27:139"},"nodeType":"YulExpressionStatement","src":"33101:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"33088:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"33091:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"33085:2:139"},"nodeType":"YulFunctionCall","src":"33085:13:139"},"nodeType":"YulIf","src":"33082:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"32909:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"32914:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"32919:6:139","type":""}],"src":"32878:258:139"},{"body":{"nodeType":"YulBlock","src":"33196:325:139","statements":[{"nodeType":"YulAssignment","src":"33206:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33220:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"33223:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"33216:3:139"},"nodeType":"YulFunctionCall","src":"33216:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"33206:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"33237:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"33267:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"33273:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"33263:3:139"},"nodeType":"YulFunctionCall","src":"33263:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"33241:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"33314:31:139","statements":[{"nodeType":"YulAssignment","src":"33316:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"33330:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"33338:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"33326:3:139"},"nodeType":"YulFunctionCall","src":"33326:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"33316:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"33294:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33287:6:139"},"nodeType":"YulFunctionCall","src":"33287:26:139"},"nodeType":"YulIf","src":"33284:2:139"},{"body":{"nodeType":"YulBlock","src":"33404:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33425:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33432:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"33437:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"33428:3:139"},"nodeType":"YulFunctionCall","src":"33428:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33418:6:139"},"nodeType":"YulFunctionCall","src":"33418:31:139"},"nodeType":"YulExpressionStatement","src":"33418:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33469:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"33472:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33462:6:139"},"nodeType":"YulFunctionCall","src":"33462:15:139"},"nodeType":"YulExpressionStatement","src":"33462:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33497:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"33500:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"33490:6:139"},"nodeType":"YulFunctionCall","src":"33490:15:139"},"nodeType":"YulExpressionStatement","src":"33490:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"33360:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"33383:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"33391:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33380:2:139"},"nodeType":"YulFunctionCall","src":"33380:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"33357:2:139"},"nodeType":"YulFunctionCall","src":"33357:38:139"},"nodeType":"YulIf","src":"33354:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"33176:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"33185:6:139","type":""}],"src":"33141:380:139"},{"body":{"nodeType":"YulBlock","src":"33573:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"33604:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"33606:16:139"},"nodeType":"YulFunctionCall","src":"33606:18:139"},"nodeType":"YulExpressionStatement","src":"33606:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"33589:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33600:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"33596:3:139"},"nodeType":"YulFunctionCall","src":"33596:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"33586:2:139"},"nodeType":"YulFunctionCall","src":"33586:17:139"},"nodeType":"YulIf","src":"33583:2:139"},{"nodeType":"YulAssignment","src":"33635:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"33646:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"33653:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33642:3:139"},"nodeType":"YulFunctionCall","src":"33642:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"33635:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"33555:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"33565:3:139","type":""}],"src":"33526:135:139"},{"body":{"nodeType":"YulBlock","src":"33698:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33715:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33722:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"33727:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"33718:3:139"},"nodeType":"YulFunctionCall","src":"33718:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33708:6:139"},"nodeType":"YulFunctionCall","src":"33708:31:139"},"nodeType":"YulExpressionStatement","src":"33708:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33755:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"33758:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33748:6:139"},"nodeType":"YulFunctionCall","src":"33748:15:139"},"nodeType":"YulExpressionStatement","src":"33748:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33779:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"33782:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"33772:6:139"},"nodeType":"YulFunctionCall","src":"33772:15:139"},"nodeType":"YulExpressionStatement","src":"33772:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"33666:127:139"},{"body":{"nodeType":"YulBlock","src":"33830:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33847:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33854:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"33859:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"33850:3:139"},"nodeType":"YulFunctionCall","src":"33850:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33840:6:139"},"nodeType":"YulFunctionCall","src":"33840:31:139"},"nodeType":"YulExpressionStatement","src":"33840:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33887:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"33890:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33880:6:139"},"nodeType":"YulFunctionCall","src":"33880:15:139"},"nodeType":"YulExpressionStatement","src":"33880:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33911:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"33914:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"33904:6:139"},"nodeType":"YulFunctionCall","src":"33904:15:139"},"nodeType":"YulExpressionStatement","src":"33904:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"33798:127:139"},{"body":{"nodeType":"YulBlock","src":"33975:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"34039:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34048:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"34051:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"34041:6:139"},"nodeType":"YulFunctionCall","src":"34041:12:139"},"nodeType":"YulExpressionStatement","src":"34041:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"33998:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"34009:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34024:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"34029:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"34020:3:139"},"nodeType":"YulFunctionCall","src":"34020:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"34033:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"34016:3:139"},"nodeType":"YulFunctionCall","src":"34016:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"34005:3:139"},"nodeType":"YulFunctionCall","src":"34005:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"33995:2:139"},"nodeType":"YulFunctionCall","src":"33995:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33988:6:139"},"nodeType":"YulFunctionCall","src":"33988:50:139"},"nodeType":"YulIf","src":"33985:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"33964:5:139","type":""}],"src":"33930:131:139"}]},"contents":"{\n    { }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        array := allocate_memory(add(and(add(length, 31), not(31)), 0x20))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(array, array) }\n            mstore(dst, abi_decode_bytes(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        array := abi_decode_available_length_bytes(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_uint8(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n        value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_bytes32(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value2, value2) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value2, value2) }\n        value2 := abi_decode_array_bytes_dyn(add(headStart, offset_2), dataEnd)\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value2, value2) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(value2, value2) }\n        value2 := abi_decode_array_bytes_dyn(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(value3, value3) }\n        let _2 := add(headStart, offset_3)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n        value3 := abi_decode_available_length_bytes(add(_2, 32), calldataload(_2), dataEnd)\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint8(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptrt_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value2, value2) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(value5, value5) }\n        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n        value5 := abi_decode_uint8(add(headStart, 128))\n        value6 := calldataload(add(headStart, 160))\n        value7 := calldataload(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        value2 := abi_decode_uint8(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n    }\n    function abi_encode_array_address_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_array_bytes_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := add(value, _1)\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            tail := abi_encode_bytes(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_uint64(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, end)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, shl(240, 6401))\n        mstore(add(pos, 2), value0)\n        mstore(add(pos, 34), value1)\n        end := add(pos, 66)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_bytes_dyn(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint256_t_uint8__to_t_bytes32_t_uint256_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_enum$_ProposalState_$1967__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 8))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Governor: onlyGovernance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: invalid proposal lengt\")\n        mstore(add(headStart, 96), \"h\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorSettings: voting period \")\n        mstore(add(headStart, 96), \"too low\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorVotingSimple: vote alrea\")\n        mstore(add(headStart, 96), \"dy cast\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Governor: vote not currently act\")\n        mstore(add(headStart, 96), \"ive\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Governor: empty proposal\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8522ee1b53216f595394db8e80a64d9e7d9bd512c0811c18debe9f40858597e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 'v' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 6\")\n        mstore(add(headStart, 96), \"4 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: proposal not successfu\")\n        mstore(add(headStart, 96), \"l\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Governor: unknown proposal id\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 53)\n        mstore(add(headStart, 64), \"GovernorVotingSimple: invalid va\")\n        mstore(add(headStart, 96), \"lue for enum VoteType\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: proposal already exist\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Governor: proposer votes below p\")\n        mstore(add(headStart, 96), \"roposal threshold\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint64_t_uint64_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 288\n        mstore(headStart, value0)\n        let _2 := 32\n        mstore(add(headStart, _2), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), _1)\n        let tail_1 := abi_encode_array_address_dyn(value2, add(headStart, _1))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value3, tail_1)\n        mstore(add(headStart, 128), sub(tail_2, headStart))\n        let pos := tail_2\n        let length := mload(value4)\n        mstore(tail_2, length)\n        pos := add(tail_2, _2)\n        let tail_3 := add(add(tail_2, shl(5, length)), _2)\n        let srcPtr := add(value4, _2)\n        let i := tail\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_3, tail_2), not(31)))\n            tail_3 := abi_encode_bytes(mload(srcPtr), tail_3)\n            srcPtr := add(srcPtr, _2)\n            pos := add(pos, _2)\n        }\n        mstore(add(headStart, 160), sub(tail_3, headStart))\n        let tail_4 := abi_encode_array_bytes_dyn(value5, tail_3)\n        abi_encode_uint64(value6, add(headStart, 192))\n        abi_encode_uint64(value7, add(headStart, 224))\n        mstore(add(headStart, 256), sub(tail_4, headStart))\n        tail := abi_encode_bytes(value8, tail_4)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 160)\n        let tail_1 := abi_encode_bytes(value3, add(headStart, 160))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_add_t_uint64(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9665":[{"length":32,"start":6680}],"9667":[{"length":32,"start":6638}],"9669":[{"length":32,"start":6596}],"9671":[{"length":32,"start":6763}],"9673":[{"length":32,"start":6800}],"9675":[{"length":32,"start":6721}],"20376":[{"length":32,"start":1229},{"length":32,"start":6046}]},"linkReferences":{},"object":"6080604052600436106101bd5760003560e01c806370b0f660116100ed578063c28bc2fa11610090578063c28bc2fa146105c8578063c59057e4146105e8578063dd4e2ba514610608578063deaaa7cc1461064e578063ea0217cf14610682578063eb9019d4146106a2578063ece40cc1146106c2578063f23a6e61146106e2578063f8ce560a1461070e57600080fd5b806370b0f6601461049b5780637b103999146104bb5780637b3c71d3146105075780637d5e81e2146105275780639a802a6d14610547578063b58131b014610567578063bc197c811461057c578063c01f9e37146105a857600080fd5b806335680dc21161016057806335680dc2146103105780633932abb1146103305780633bccf4fd146103455780633e4f49e6146103655780634385963214610392578063544ffc9c146103dc57806354fd4d5014610431578063567813881461045b5780635f398a141461047b57600080fd5b806301ffc9a7146101cb57806302a251a314610200578063034201811461022357806306fdde0314610243578063150b7a02146102655780632656227d146102a95780632d63f693146102bc5780632fe3e261146102dc57600080fd5b366101c657005b005b600080fd5b3480156101d757600080fd5b506101eb6101e63660046126ae565b610730565b60405190151581526020015b60405180910390f35b34801561020c57600080fd5b5061021561079d565b6040519081526020016101f7565b34801561022f57600080fd5b5061021561023e366004612805565b6107ad565b34801561024f57600080fd5b506102586108a5565b6040516101f79190612a86565b34801561027157600080fd5b506102906102803660046123cc565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101f7565b6102156102b7366004612575565b610937565b3480156102c857600080fd5b506102156102d73660046126d6565b610a7f565b3480156102e857600080fd5b506102157fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561031c57600080fd5b506101c461032b3660046126d6565b610ab6565b34801561033c57600080fd5b50610215610afd565b34801561035157600080fd5b506102156103603660046128a8565b610b08565b34801561037157600080fd5b506103856103803660046126d6565b610b7e565b6040516101f79190612a5e565b34801561039e57600080fd5b506101eb6103ad366004612706565b60008281526007602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b3480156103e857600080fd5b506104166103f73660046126d6565b6000908152600760205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016101f7565b34801561043d57600080fd5b506040805180820190915260018152603160f81b6020820152610258565b34801561046757600080fd5b50610215610476366004612735565b610c8a565b34801561048757600080fd5b5061021561049636600461279f565b610cb3565b3480156104a757600080fd5b506101c46104b63660046126d6565b610cfd565b3480156104c757600080fd5b506104ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101f7565b34801561051357600080fd5b50610215610522366004612760565b610d41565b34801561053357600080fd5b50610215610542366004612600565b610d93565b34801561055357600080fd5b5061021561056236600461251f565b61103e565b34801561057357600080fd5b50610215611055565b34801561058857600080fd5b50610290610597366004612323565b63bc197c8160e01b95945050505050565b3480156105b457600080fd5b506102156105c33660046126d6565b611060565b3480156105d457600080fd5b506101c46105e33660046124c6565b61108f565b3480156105f457600080fd5b50610215610603366004612575565b611113565b34801561061457600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e90820152610258565b34801561065a57600080fd5b506102157f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561068e57600080fd5b506101c461069d3660046126d6565b61114d565b3480156106ae57600080fd5b506102156106bd36600461249b565b611191565b3480156106ce57600080fd5b506101c46106dd3660046126d6565b6111b2565b3480156106ee57600080fd5b506102906106fd366004612435565b63f23a6e6160e01b95945050505050565b34801561071a57600080fd5b506102156107293660046126d6565b5060085490565b60006001600160e01b0319821663bf26d89760e01b148061076157506001600160e01b031982166379dd796f60e01b145b8061077c57506001600160e01b03198216630271189760e51b145b8061079757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006107a860055490565b905090565b6000806108516108497fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c6040516107e99291906129e7565b60405180910390208b8051906020012060405160200161082e959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b604051602081830303815290604052805190602001206111f6565b868686611244565b90506108978a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250611262915050565b9a9950505050505050505050565b6060600080546108b490612d45565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090612d45565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b5050505050905090565b60008061094686868686611113565b9050600061095382610b7e565b9050600481600781111561097757634e487b7160e01b600052602160045260246000fd5b14806109a2575060058160078111156109a057634e487b7160e01b600052602160045260246000fd5b145b6109fd5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084015b60405180910390fd5b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610a5b82888888886113d2565b610a68828888888861147b565b610a7582888888886113d2565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b333014610ad55760405162461bcd60e51b81526004016109f490612a99565b610af1565b80610ae560026115a4565b14610aef57610ada565b505b610afa81611627565b50565b60006107a860045490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610b56906108499060800161082e565b9050610b738782886040518060200160405280600081525061166c565b979650505050505050565b6000818152600160205260408120600281015460ff1615610ba25750600792915050565b6002810154610100900460ff1615610bbd5750600292915050565b6000610bc884610a7f565b905080610c175760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016109f4565b438110610c28575060009392505050565b6000610c3385611060565b9050438110610c4757506001949350505050565b610c5085611698565b8015610c6f575060008581526007602052604090208054600190910154115b15610c7f57506004949350505050565b506003949350505050565b600080339050610cab8482856040518060200160405280600081525061166c565b949350505050565b600080339050610b7387828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611262915050565b333014610d1c5760405162461bcd60e51b81526004016109f490612a99565b610d38565b80610d2c60026115a4565b14610d3657610d21565b505b610afa816116cf565b600080339050610d8986828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166c92505050565b9695505050505050565b6000610d9d611055565b610dac336106bd600143612cfe565b1015610e145760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b60648201526084016109f4565b6000610e298686868680519060200120611113565b90508451865114610e4c5760405162461bcd60e51b81526004016109f490612acb565b8351865114610e6d5760405162461bcd60e51b81526004016109f490612acb565b6000865111610eb95760405162461bcd60e51b815260206004820152601860248201527711dbdd995c9b9bdc8e88195b5c1d1e481c1c9bdc1bdcd85b60421b60448201526064016109f4565b600081815260016020908152604091829020825191820190925281546001600160401b03169081905215610f395760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016109f4565b6000610f4b610f46610afd565b611710565b610f5443611710565b610f5e9190612cd3565b90506000610f6d610f4661079d565b610f779083612cd3565b9050610f83838361177c565b610f90600184018261177c565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115610fdc57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561100f57816020015b6060815260200190600190039081610ffa5790505b508c88888e60405161102999989796959493929190612b0c565b60405180910390a15091979650505050505050565b600061104b84848461179a565b90505b9392505050565b60006107a860065490565b60008181526001602081815260408084208151928301909152909101546001600160401b031690819052610aa7565b3330146110ae5760405162461bcd60e51b81526004016109f490612a99565b6110ca565b806110be60026115a4565b146110c8576110b3565b505b61110c8483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506118af915050565b5050505050565b60008484848460405160200161112c9493929190612a13565b60408051601f19818403018152919052805160209091012095945050505050565b33301461116c5760405162461bcd60e51b81526004016109f490612a99565b611188565b8061117c60026115a4565b1461118657611171565b505b610afa816118d5565b600061104e83836111ad60408051602081019091526000815290565b61179a565b3330146111d15760405162461bcd60e51b81526004016109f490612a99565b6111ed565b806111e160026115a4565b146111eb576111d6565b505b610afa81611976565b60006107976112036119b7565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061125587878787611ade565b91509150610a7581611bc1565b600085815260016020819052604082209061127c88610b7e565b600781111561129b57634e487b7160e01b600052602160045260246000fd5b146112f45760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016109f4565b604080516020810190915281546001600160401b03169081905260009061131d9088908661179a565b905061132c8888888488611dbd565b835161137e57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516113719493929190612bfa565b60405180910390a2610b73565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516113bf959493929190612c22565b60405180910390a2979650505050505050565b61110c565b845181101561147357306001600160a01b031685828151811061140a57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156114635761146383828151811061144457634e487b7160e01b600052603260045260246000fd5b6020026020010151805190602001206002611f3c90919063ffffffff16565b61146c81612d80565b90506113d7565b505050505050565b6000604051806060016040528060278152602001612ddd60279139905060005b855181101561159b576000808783815181106114c757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168784815181106114f857634e487b7160e01b600052603260045260246000fd5b602002602001015187858151811061152057634e487b7160e01b600052603260045260246000fd5b602002602001015160405161153591906129f7565b60006040518083038185875af1925050503d8060008114611572576040519150601f19603f3d011682016040523d82523d6000602084013e611577565b606091505b5091509150611587828286611f82565b5050508061159490612d80565b905061149b565b50505050505050565b60006115c38254600f81810b810b600160801b909204810b900b131590565b156115e157604051631ed9509560e11b815260040160405180910390fd5b508054600f90810b80820b820b600090815260018085016020526040822080549290558454920190920b6001600160801b03166001600160801b03199091161790915590565b600880549082905560408051828152602081018490527f6784e9bcb845caaa98267d7b0918f97d3d17f7cb35a05b52010f7eb587a0acb0910160405180910390a15050565b600061168f8585858561168a60408051602081019091526000815290565b611262565b95945050505050565b6000818152600760205260408120600281015460018201546116ba9190612cbb565b6116c661072985610a7f565b11159392505050565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b60006001600160401b038211156117785760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016109f4565b5090565b815467ffffffffffffffff19166001600160401b0391909116179055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f557600080fd5b505afa158015611809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182d9190612307565b604051630748d63560e31b81526001600160a01b038681166004830152602482018690529190911690633a46b1a89060440160206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b91906126ee565b606061104b848484604051806060016040528060298152602001612e0460299139611fbb565b600081116119355760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016109f4565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611a1057507f000000000000000000000000000000000000000000000000000000000000000046145b15611a3a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115611b0b5750600090506003611bb8565b8460ff16601b14158015611b2357508460ff16601c14155b15611b345750600090506004611bb8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b88573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611bb157600060019250925050611bb8565b9150600090505b94509492505050565b6000816004811115611be357634e487b7160e01b600052602160045260246000fd5b1415611bec5750565b6001816004811115611c0e57634e487b7160e01b600052602160045260246000fd5b1415611c575760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016109f4565b6002816004811115611c7957634e487b7160e01b600052602160045260246000fd5b1415611cc75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f4565b6003816004811115611ce957634e487b7160e01b600052602160045260246000fd5b1415611d425760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f4565b6004816004811115611d6457634e487b7160e01b600052602160045260246000fd5b1415610afa5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016109f4565b60008581526007602090815260408083206001600160a01b0388168452600381019092529091205460ff1615611e455760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016109f4565b6001600160a01b03851660009081526003820160205260408120805460ff1916600117905560ff168460ff161415611e965782816000016000828254611e8b9190612cbb565b909155506114739050565b60ff841660011415611eb65782816001016000828254611e8b9190612cbb565b60ff841660021415611ed65782816002016000828254611e8b9190612cbb565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016109f4565b8154600160801b90819004600f90810b80820b820b6000908152600180870160205260409091209490945584549301900b6001600160801b039081169091029116179055565b60608315611f9157508161104e565b825115611fa15782518084602001fd5b8160405162461bcd60e51b81526004016109f49190612a86565b60608247101561201c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109f4565b6001600160a01b0385163b6120735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f4565b600080866001600160a01b0316858760405161208f91906129f7565b60006040518083038185875af1925050503d80600081146120cc576040519150601f19603f3d011682016040523d82523d6000602084013e6120d1565b606091505b5091509150610b73828286611f82565b60006001600160401b038311156120fa576120fa612db1565b61210d601f8401601f1916602001612c68565b905082815283838301111561212157600080fd5b828260208301376000602084830101529392505050565b600082601f830112612148578081fd5b8135602061215d61215883612c98565b612c68565b80838252828201915082860187848660051b890101111561217c578586fd5b855b858110156121a357813561219181612dc7565b8452928401929084019060010161217e565b5090979650505050505050565b600082601f8301126121c0578081fd5b813560206121d061215883612c98565b80838252828201915082860187848660051b89010111156121ef578586fd5b855b858110156121a35781356001600160401b0381111561220e578788fd5b61221c8a87838c01016122d2565b85525092840192908401906001016121f1565b600082601f83011261223f578081fd5b8135602061224f61215883612c98565b80838252828201915082860187848660051b890101111561226e578586fd5b855b858110156121a357813584529284019290840190600101612270565b60008083601f84011261229d578182fd5b5081356001600160401b038111156122b3578182fd5b6020830191508360208285010111156122cb57600080fd5b9250929050565b600082601f8301126122e2578081fd5b61104e838335602085016120e1565b803560ff8116811461230257600080fd5b919050565b600060208284031215612318578081fd5b815161104e81612dc7565b600080600080600060a0868803121561233a578081fd5b853561234581612dc7565b9450602086013561235581612dc7565b935060408601356001600160401b0380821115612370578283fd5b61237c89838a0161222f565b94506060880135915080821115612391578283fd5b61239d89838a0161222f565b935060808801359150808211156123b2578283fd5b506123bf888289016122d2565b9150509295509295909350565b600080600080608085870312156123e1578384fd5b84356123ec81612dc7565b935060208501356123fc81612dc7565b92506040850135915060608501356001600160401b0381111561241d578182fd5b612429878288016122d2565b91505092959194509250565b600080600080600060a0868803121561244c578081fd5b853561245781612dc7565b9450602086013561246781612dc7565b9350604086013592506060860135915060808601356001600160401b0381111561248f578182fd5b6123bf888289016122d2565b600080604083850312156124ad578182fd5b82356124b881612dc7565b946020939093013593505050565b600080600080606085870312156124db578182fd5b84356124e681612dc7565b93506020850135925060408501356001600160401b03811115612507578283fd5b6125138782880161228c565b95989497509550505050565b600080600060608486031215612533578081fd5b833561253e81612dc7565b92506020840135915060408401356001600160401b0381111561255f578182fd5b61256b868287016122d2565b9150509250925092565b6000806000806080858703121561258a578182fd5b84356001600160401b03808211156125a0578384fd5b6125ac88838901612138565b955060208701359150808211156125c1578384fd5b6125cd8883890161222f565b945060408701359150808211156125e2578384fd5b506125ef878288016121b0565b949793965093946060013593505050565b60008060008060808587031215612615578182fd5b84356001600160401b038082111561262b578384fd5b61263788838901612138565b9550602087013591508082111561264c578384fd5b6126588883890161222f565b9450604087013591508082111561266d578384fd5b612679888389016121b0565b9350606087013591508082111561268e578283fd5b508501601f8101871361269f578182fd5b612429878235602084016120e1565b6000602082840312156126bf578081fd5b81356001600160e01b03198116811461104e578182fd5b6000602082840312156126e7578081fd5b5035919050565b6000602082840312156126ff578081fd5b5051919050565b60008060408385031215612718578182fd5b82359150602083013561272a81612dc7565b809150509250929050565b60008060408385031215612747578182fd5b82359150612757602084016122f1565b90509250929050565b60008060008060608587031215612775578182fd5b84359350612785602086016122f1565b925060408501356001600160401b03811115612507578283fd5b6000806000806000608086880312156127b6578283fd5b853594506127c6602087016122f1565b935060408601356001600160401b03808211156127e1578485fd5b6127ed89838a0161228c565b909550935060608801359150808211156123b2578283fd5b60008060008060008060008060e0898b031215612820578586fd5b8835975061283060208a016122f1565b965060408901356001600160401b038082111561284b578788fd5b6128578c838d0161228c565b909850965060608b013591508082111561286f578485fd5b5061287c8b828c016122d2565b94505061288b60808a016122f1565b925060a0890135915060c089013590509295985092959890939650565b600080600080600060a086880312156128bf578283fd5b853594506128cf602087016122f1565b93506128dd604087016122f1565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b8381101561292d5781516001600160a01b031687529582019590820190600101612908565b509495945050505050565b600081518084526020808501808196508360051b81019150828601855b8581101561297f57828403895261296d8483516129bb565b98850198935090840190600101612955565b5091979650505050505050565b6000815180845260208085019450808401835b8381101561292d5781518752958201959082019060010161299f565b600081518084526129d3816020860160208601612d15565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b60008251612a09818460208701612d15565b9190910192915050565b608081526000612a2660808301876128f5565b8281036020840152612a38818761298c565b90508281036040840152612a4c8186612938565b91505082606083015295945050505050565b6020810160088310612a8057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600061104e60208301846129bb565b602080825260189082015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b604082015260600190565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60006101208b8352602060018060a01b038c1681850152816040850152612b358285018c6128f5565b91508382036060850152612b49828b61298c565b915083820360808501528189518084528284019150828160051b850101838c01865b83811015612b9957601f19878403018552612b878383516129bb565b94860194925090850190600101612b6b565b505086810360a0880152612bad818c612938565b945050505050612bc860c08401876001600160401b03169052565b6001600160401b03851660e0840152828103610100840152612bea81856129bb565b9c9b505050505050505050505050565b84815260ff84166020820152826040820152608060608201526000610d8960808301846129bb565b85815260ff8516602082015283604082015260a060608201526000612c4a60a08301856129bb565b8281036080840152612c5c81856129bb565b98975050505050505050565b604051601f8201601f191681016001600160401b0381118282101715612c9057612c90612db1565b604052919050565b60006001600160401b03821115612cb157612cb1612db1565b5060051b60200190565b60008219821115612cce57612cce612d9b565b500190565b60006001600160401b03808316818516808303821115612cf557612cf5612d9b565b01949350505050565b600082821015612d1057612d10612d9b565b500390565b60005b83811015612d30578181015183820152602001612d18565b83811115612d3f576000848401525b50505050565b600181811c90821680612d5957607f821691505b60208210811415612d7a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612d9457612d94612d9b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610afa57600080fdfe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212208d65a78adba0c644f58c109bb3ede1e03ed5dda766bcccae353f0ae8cab04f3b64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BD JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70B0F660 GT PUSH2 0xED JUMPI DUP1 PUSH4 0xC28BC2FA GT PUSH2 0x90 JUMPI DUP1 PUSH4 0xC28BC2FA EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0xC59057E4 EQ PUSH2 0x5E8 JUMPI DUP1 PUSH4 0xDD4E2BA5 EQ PUSH2 0x608 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0xEA0217CF EQ PUSH2 0x682 JUMPI DUP1 PUSH4 0xEB9019D4 EQ PUSH2 0x6A2 JUMPI DUP1 PUSH4 0xECE40CC1 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xF8CE560A EQ PUSH2 0x70E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70B0F660 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x7D5E81E2 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0x9A802A6D EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0xC01F9E37 EQ PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35680DC2 GT PUSH2 0x160 JUMPI DUP1 PUSH4 0x35680DC2 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x43859632 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x544FFC9C EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x45B JUMPI DUP1 PUSH4 0x5F398A14 EQ PUSH2 0x47B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x3420181 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x2656227D EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x2D63F693 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0x2FE3E261 EQ PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1C6 JUMPI STOP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EB PUSH2 0x1E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x26AE JUMP JUMPDEST PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x79D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x2805 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x258 PUSH2 0x8A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CC JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x2B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2575 JUMP JUMPDEST PUSH2 0x937 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xA7F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x32B CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xAB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0xAFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x28A8 JUMP JUMPDEST PUSH2 0xB08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x385 PUSH2 0x380 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xB7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x2A5E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EB PUSH2 0x3AD CALLDATASIZE PUSH1 0x4 PUSH2 0x2706 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x416 PUSH2 0x3F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x476 CALLDATASIZE PUSH1 0x4 PUSH2 0x2735 JUMP JUMPDEST PUSH2 0xC8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x279F JUMP JUMPDEST PUSH2 0xCB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EF PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2760 JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x533 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x2600 JUMP JUMPDEST PUSH2 0xD93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x251F JUMP JUMPDEST PUSH2 0x103E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x1055 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x588 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x597 CALLDATASIZE PUSH1 0x4 PUSH2 0x2323 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x5C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0x1060 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x5E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x24C6 JUMP JUMPDEST PUSH2 0x108F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x603 CALLDATASIZE PUSH1 0x4 PUSH2 0x2575 JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x737570706F72743D627261766F2671756F72756D3D666F722C6162737461696E SWAP1 DUP3 ADD MSTORE PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x69D CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0x114D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x249B JUMP JUMPDEST PUSH2 0x1191 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C4 PUSH2 0x6DD CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST PUSH2 0x11B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x6FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2435 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x729 CALLDATASIZE PUSH1 0x4 PUSH2 0x26D6 JUMP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xBF26D897 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x761 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x79DD796F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x77C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ JUMPDEST DUP1 PUSH2 0x797 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x851 PUSH2 0x849 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x29E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP12 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x82E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x11F6 JUMP JUMPDEST DUP7 DUP7 DUP7 PUSH2 0x1244 JUMP JUMPDEST SWAP1 POP PUSH2 0x897 DUP11 DUP3 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP14 SWAP3 POP PUSH2 0x1262 SWAP2 POP POP JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x8B4 SWAP1 PUSH2 0x2D45 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 0x8E0 SWAP1 PUSH2 0x2D45 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x92D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x902 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x92D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x910 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x946 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1113 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x953 DUP3 PUSH2 0xB7E JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x977 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x9A2 JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x9A0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x9FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420737563636573736675 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 DUP2 MSTORE PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xA5B DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x13D2 JUMP JUMPDEST PUSH2 0xA68 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x147B JUMP JUMPDEST PUSH2 0xA75 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x13D2 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xAD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0xAF1 JUMP JUMPDEST DUP1 PUSH2 0xAE5 PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0xAEF JUMPI PUSH2 0xADA JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x1627 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xB56 SWAP1 PUSH2 0x849 SWAP1 PUSH1 0x80 ADD PUSH2 0x82E JUMP JUMPDEST SWAP1 POP PUSH2 0xB73 DUP8 DUP3 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x166C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xBA2 JUMPI POP PUSH1 0x7 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xBBD JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC8 DUP5 PUSH2 0xA7F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xC17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20756E6B6E6F776E2070726F706F73616C206964000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST NUMBER DUP2 LT PUSH2 0xC28 JUMPI POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC33 DUP6 PUSH2 0x1060 JUMP JUMPDEST SWAP1 POP NUMBER DUP2 LT PUSH2 0xC47 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC50 DUP6 PUSH2 0x1698 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC6F JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0xC7F JUMPI POP PUSH1 0x4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x3 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xCAB DUP5 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x166C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xB73 DUP8 DUP3 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x1262 SWAP2 POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xD1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0xD38 JUMP JUMPDEST DUP1 PUSH2 0xD2C PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0xD36 JUMPI PUSH2 0xD21 JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x16CF JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xD89 DUP7 DUP3 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x166C SWAP3 POP POP POP JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD9D PUSH2 0x1055 JUMP JUMPDEST PUSH2 0xDAC CALLER PUSH2 0x6BD PUSH1 0x1 NUMBER PUSH2 0x2CFE JUMP JUMPDEST LT ISZERO PUSH2 0xE14 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73657220766F7465732062656C6F772070 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE29 DUP7 DUP7 DUP7 DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1113 JUMP JUMPDEST SWAP1 POP DUP5 MLOAD DUP7 MLOAD EQ PUSH2 0xE4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2ACB JUMP JUMPDEST DUP4 MLOAD DUP7 MLOAD EQ PUSH2 0xE6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2ACB JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD GT PUSH2 0xEB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x11DBDD995C9B9BDC8E88195B5C1D1E481C1C9BDC1BDCD85B PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE ISZERO PUSH2 0xF39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C20616C7265616479206578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF4B PUSH2 0xF46 PUSH2 0xAFD JUMP JUMPDEST PUSH2 0x1710 JUMP JUMPDEST PUSH2 0xF54 NUMBER PUSH2 0x1710 JUMP JUMPDEST PUSH2 0xF5E SWAP2 SWAP1 PUSH2 0x2CD3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF6D PUSH2 0xF46 PUSH2 0x79D JUMP JUMPDEST PUSH2 0xF77 SWAP1 DUP4 PUSH2 0x2CD3 JUMP JUMPDEST SWAP1 POP PUSH2 0xF83 DUP4 DUP4 PUSH2 0x177C JUMP JUMPDEST PUSH2 0xF90 PUSH1 0x1 DUP5 ADD DUP3 PUSH2 0x177C JUMP JUMPDEST PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP5 CALLER DUP12 DUP12 DUP14 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xFDC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x100F JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xFFA JUMPI SWAP1 POP JUMPDEST POP DUP13 DUP9 DUP9 DUP15 PUSH1 0x40 MLOAD PUSH2 0x1029 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x104B DUP5 DUP5 DUP5 PUSH2 0x179A JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0xAA7 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x10AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0x10CA JUMP JUMPDEST DUP1 PUSH2 0x10BE PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0x10C8 JUMPI PUSH2 0x10B3 JUMP JUMPDEST POP JUMPDEST PUSH2 0x110C DUP5 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x18AF SWAP2 POP POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x112C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A13 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 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x116C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0x1188 JUMP JUMPDEST DUP1 PUSH2 0x117C PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0x1186 JUMPI PUSH2 0x1171 JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x18D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x104E DUP4 DUP4 PUSH2 0x11AD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x179A JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F4 SWAP1 PUSH2 0x2A99 JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST DUP1 PUSH2 0x11E1 PUSH1 0x2 PUSH2 0x15A4 JUMP JUMPDEST EQ PUSH2 0x11EB JUMPI PUSH2 0x11D6 JUMP JUMPDEST POP JUMPDEST PUSH2 0xAFA DUP2 PUSH2 0x1976 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x797 PUSH2 0x1203 PUSH2 0x19B7 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1255 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1ADE JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xA75 DUP2 PUSH2 0x1BC1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH2 0x127C DUP9 PUSH2 0xB7E JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x129B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x12F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20766F7465206E6F742063757272656E746C7920616374 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x697665 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x131D SWAP1 DUP9 SWAP1 DUP7 PUSH2 0x179A JUMP JUMPDEST SWAP1 POP PUSH2 0x132C DUP9 DUP9 DUP9 DUP5 DUP9 PUSH2 0x1DBD JUMP JUMPDEST DUP4 MLOAD PUSH2 0x137E JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP10 DUP9 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x1371 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xB73 JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE2BABFBAC5889A709B63BB7F598B324E08BC5A4FB9EC647FB3CBC9EC07EB8712 DUP10 DUP9 DUP5 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x13BF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x110C JUMP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1473 JUMPI ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x140A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1463 JUMPI PUSH2 0x1463 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1444 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x2 PUSH2 0x1F3C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x146C DUP2 PUSH2 0x2D80 JUMP JUMPDEST SWAP1 POP PUSH2 0x13D7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2DDD PUSH1 0x27 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 DUP8 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x14C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x14F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1520 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1535 SWAP2 SWAP1 PUSH2 0x29F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1572 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1587 DUP3 DUP3 DUP7 PUSH2 0x1F82 JUMP JUMPDEST POP POP POP DUP1 PUSH2 0x1594 SWAP1 PUSH2 0x2D80 JUMP JUMPDEST SWAP1 POP PUSH2 0x149B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15C3 DUP3 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP2 SIGNEXTEND SWAP1 SIGNEXTEND SGT ISZERO SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x15E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ED95095 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SSTORE DUP5 SLOAD SWAP3 ADD SWAP1 SWAP3 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP2 AND OR SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x6784E9BCB845CAAA98267D7B0918F97D3D17F7CB35A05B52010F7EB587A0ACB0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168F DUP6 DUP6 DUP6 DUP6 PUSH2 0x168A PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1262 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH2 0x16BA SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST PUSH2 0x16C6 PUSH2 0x729 DUP6 PUSH2 0xA7F JUMP JUMPDEST GT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x182D SWAP2 SWAP1 PUSH2 0x2307 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x748D635 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A46B1A8 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x188B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x104B SWAP2 SWAP1 PUSH2 0x26EE JUMP JUMPDEST PUSH1 0x60 PUSH2 0x104B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2E04 PUSH1 0x29 SWAP2 CODECOPY PUSH2 0x1FBB JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1935 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1A10 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1A3A JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 GT ISZERO PUSH2 0x1B0B JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x1BB8 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x1B23 JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x1B34 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x1BB8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BB1 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x1BB8 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1BE3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1BEC JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1C0E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1C57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x45434453413A20696E76616C6964207369676E6174757265 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1C79 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1CC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1CE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1D42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1D64 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xAFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x3 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1E45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20766F746520616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x191E4818D85CDD PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xFF AND DUP5 PUSH1 0xFF AND EQ ISZERO PUSH2 0x1E96 JUMPI DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E8B SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1473 SWAP1 POP JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x1 EQ ISZERO PUSH2 0x1EB6 JUMPI DUP3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E8B SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST PUSH1 0xFF DUP5 AND PUSH1 0x2 EQ ISZERO PUSH2 0x1ED6 JUMPI DUP3 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E8B SWAP2 SWAP1 PUSH2 0x2CBB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20696E76616C6964207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH21 0x6C756520666F7220656E756D20566F746554797065 PUSH1 0x58 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DUP2 SWAP1 DIV PUSH1 0xF SWAP1 DUP2 SIGNEXTEND DUP1 DUP3 SIGNEXTEND DUP3 SIGNEXTEND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 DUP8 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP5 SLOAD SWAP4 ADD SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MUL SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1F91 JUMPI POP DUP2 PUSH2 0x104E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1FA1 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 0x9F4 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x201C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x2073 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x208F SWAP2 SWAP1 PUSH2 0x29F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20CC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x20D1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0xB73 DUP3 DUP3 DUP7 PUSH2 0x1F82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x20FA JUMPI PUSH2 0x20FA PUSH2 0x2DB1 JUMP JUMPDEST PUSH2 0x210D PUSH1 0x1F DUP5 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2C68 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2148 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x215D PUSH2 0x2158 DUP4 PUSH2 0x2C98 JUMP JUMPDEST PUSH2 0x2C68 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x217C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x21A3 JUMPI DUP2 CALLDATALOAD PUSH2 0x2191 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x217E JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21C0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x21D0 PUSH2 0x2158 DUP4 PUSH2 0x2C98 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x21EF JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x21A3 JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x220E JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x221C DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x22D2 JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x21F1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x223F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x224F PUSH2 0x2158 DUP4 PUSH2 0x2C98 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x226E JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x21A3 JUMPI DUP2 CALLDATALOAD DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x229D JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x22B3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x22CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x22E2 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x104E DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x20E1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2318 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x104E DUP2 PUSH2 0x2DC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x233A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2345 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2355 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2370 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x237C DUP10 DUP4 DUP11 ADD PUSH2 0x222F JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2391 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x239D DUP10 DUP4 DUP11 ADD PUSH2 0x222F JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x23B2 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x23BF DUP9 DUP3 DUP10 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x23E1 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x23EC DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x23FC DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x241D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2429 DUP8 DUP3 DUP9 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x244C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2457 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2467 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x248F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x23BF DUP9 DUP3 DUP10 ADD PUSH2 0x22D2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24AD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x24B8 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24DB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x24E6 DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2507 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2513 DUP8 DUP3 DUP9 ADD PUSH2 0x228C JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2533 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x253E DUP2 PUSH2 0x2DC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x255F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x256B DUP7 DUP3 DUP8 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x258A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x25A0 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x25AC DUP9 DUP4 DUP10 ADD PUSH2 0x2138 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25C1 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x25CD DUP9 DUP4 DUP10 ADD PUSH2 0x222F JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25E2 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x25EF DUP8 DUP3 DUP9 ADD PUSH2 0x21B0 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2615 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x262B JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2637 DUP9 DUP4 DUP10 ADD PUSH2 0x2138 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x264C JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2658 DUP9 DUP4 DUP10 ADD PUSH2 0x222F JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x266D JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2679 DUP9 DUP4 DUP10 ADD PUSH2 0x21B0 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x268E JUMPI DUP3 DUP4 REVERT JUMPDEST POP DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x269F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2429 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x20E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26BF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x104E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26E7 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26FF JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2718 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x272A DUP2 PUSH2 0x2DC7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2747 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x2757 PUSH1 0x20 DUP5 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2775 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH2 0x2785 PUSH1 0x20 DUP7 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2507 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x27B6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x27C6 PUSH1 0x20 DUP8 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27E1 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x27ED DUP10 DUP4 DUP11 ADD PUSH2 0x228C JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x23B2 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2820 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x2830 PUSH1 0x20 DUP11 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x284B JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x2857 DUP13 DUP4 DUP14 ADD PUSH2 0x228C JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x286F JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x287C DUP12 DUP3 DUP13 ADD PUSH2 0x22D2 JUMP JUMPDEST SWAP5 POP POP PUSH2 0x288B PUSH1 0x80 DUP11 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x28BF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x28CF PUSH1 0x20 DUP8 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x28DD PUSH1 0x40 DUP8 ADD PUSH2 0x22F1 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x292D JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2908 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP4 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP3 DUP7 ADD DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x297F JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x296D DUP5 DUP4 MLOAD PUSH2 0x29BB JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2955 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x292D JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x299F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x29D3 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2D15 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2A09 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2D15 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2A26 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x28F5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2A38 DUP2 DUP8 PUSH2 0x298C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2A4C DUP2 DUP7 PUSH2 0x2938 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x8 DUP4 LT PUSH2 0x2A80 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x104E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH24 0x476F7665726E6F723A206F6E6C79476F7665726E616E6365 PUSH1 0x40 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20696E76616C69642070726F706F73616C206C656E6774 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP12 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP6 ADD MSTORE DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x2B35 DUP3 DUP6 ADD DUP13 PUSH2 0x28F5 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x2B49 DUP3 DUP12 PUSH2 0x298C JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x80 DUP6 ADD MSTORE DUP2 DUP10 MLOAD DUP1 DUP5 MSTORE DUP3 DUP5 ADD SWAP2 POP DUP3 DUP2 PUSH1 0x5 SHL DUP6 ADD ADD DUP4 DUP13 ADD DUP7 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B99 JUMPI PUSH1 0x1F NOT DUP8 DUP5 SUB ADD DUP6 MSTORE PUSH2 0x2B87 DUP4 DUP4 MLOAD PUSH2 0x29BB JUMP JUMPDEST SWAP5 DUP7 ADD SWAP5 SWAP3 POP SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B6B JUMP JUMPDEST POP POP DUP7 DUP2 SUB PUSH1 0xA0 DUP9 ADD MSTORE PUSH2 0x2BAD DUP2 DUP13 PUSH2 0x2938 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x2BC8 PUSH1 0xC0 DUP5 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0xE0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x2BEA DUP2 DUP6 PUSH2 0x29BB JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xD89 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x29BB JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C4A PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x29BB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C5C DUP2 DUP6 PUSH2 0x29BB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C90 JUMPI PUSH2 0x2C90 PUSH2 0x2DB1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2CB1 JUMPI PUSH2 0x2CB1 PUSH2 0x2DB1 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2CCE JUMPI PUSH2 0x2CCE PUSH2 0x2D9B JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2CF5 JUMPI PUSH2 0x2CF5 PUSH2 0x2D9B JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2D10 JUMPI PUSH2 0x2D10 PUSH2 0x2D9B JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2D30 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2D18 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2D3F JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2D59 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2D7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2D94 JUMPI PUSH2 0x2D94 PUSH2 0x2D9B JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAFA JUMPI PUSH1 0x0 DUP1 REVERT INVALID SELFBALANCE PUSH16 0x7665726E6F723A2063616C6C20726576 PUSH6 0x727465642077 PUSH10 0x74686F7574206D657373 PUSH2 0x6765 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2063616C6C KECCAK256 PUSH24 0x6974682076616C7565206661696C6564A264697066735822 SLT KECCAK256 DUP14 PUSH6 0xA78ADBA0C644 CREATE2 DUP13 LT SWAP12 0xB3 0xED 0xE1 0xE0 RETURNDATACOPY 0xD5 0xDD 0xA7 PUSH7 0xBCCCAE353F0AE8 0xCA 0xB0 0x4F EXTCODESIZE PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"537:2466:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3724:37:5;537:2466:71;;;;;3835:738:5;;;;;;;;;;-1:-1:-1;3835:738:5;;;;;:::i;:::-;;:::i;:::-;;;18262:14:139;;18255:22;18237:41;;18225:2;18210:18;3835:738:5;;;;;;;;1767:172:71;;;;;;;;;;;;;:::i;:::-;;;18435:25:139;;;18423:2;18408:18;1767:172:71;18390:76:139;16338:784:5;;;;;;;;;;-1:-1:-1;16338:784:5;;;;;:::i;:::-;;:::i;4629:98::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19744:200::-;;;;;;;;;;-1:-1:-1;19744:200:5;;;;;:::i;:::-;-1:-1:-1;;;19744:200:5;;;;;;;;;;-1:-1:-1;;;;;;20336:33:139;;;20318:52;;20306:2;20291:18;19744:200:5;20273:103:139;10763:867:5;;;;;;:::i;:::-;;:::i;7177:163::-;;;;;;;;;;-1:-1:-1;7177:163:5;;;;;:::i;:::-;;:::i;1347:147::-;;;;;;;;;;;;1406:88;1347:147;;2596:114:71;;;;;;;;;;-1:-1:-1;2596:114:71;;;;;:::i;:::-;;:::i;1591:170::-;;;;;;;;;;;;;:::i;15827:427:5:-;;;;;;;;;;-1:-1:-1;15827:427:5;;;;;:::i;:::-;;:::i;6195:914::-;;;;;;;;;;-1:-1:-1;6195:914:5;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1039:167:8:-;;;;;;;;;;-1:-1:-1;1039:167:8;;;;;:::i;:::-;1132:4;1155:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;1155:44:8;;;;:35;;:44;;;;;;;;1039:167;;;;;1278:389;;;;;;;;;;-1:-1:-1;1278:389:8;;;;;:::i;:::-;1395:20;1540:26;;;:14;:26;;;;;1584:25;;1611:21;;;;1634:25;;;;;1584;;1278:389;;;;;30731:25:139;;;30787:2;30772:18;;30765:34;;;;30815:18;;;30808:34;30719:2;30704:18;1278:389:8;30686:162:139;4786:99:5;;;;;;;;;;-1:-1:-1;4868:10:5;;;;;;;;;;;;-1:-1:-1;;;4868:10:5;;;;4786:99;;14837:198;;;;;;;;;;-1:-1:-1;14837:198:5;;;;;:::i;:::-;;:::i;15450:312::-;;;;;;;;;;-1:-1:-1;15450:312:5;;;;;:::i;:::-;;:::i;1738:126:10:-;;;;;;;;;;-1:-1:-1;1738:126:10;;;;;:::i;:::-;;:::i;636:35:71:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20564:32:139;;;20546:51;;20534:2;20519:18;636:35:71;20501:102:139;15105:266:5;;;;;;;;;;-1:-1:-1;15105:266:5;;;;;:::i;:::-;;:::i;9296:1408::-;;;;;;;;;;-1:-1:-1;9296:1408:5;;;;;:::i;:::-;;:::i;14550:227::-;;;;;;;;;;-1:-1:-1;14550:227:5;;;;;:::i;:::-;;:::i;1945:181:71:-;;;;;;;;;;;;;:::i;20320:247:5:-;;;;;;;;;;-1:-1:-1;20320:247:5;;;;;:::i;:::-;-1:-1:-1;;;20320:247:5;;;;;;;;7408:161;;;;;;;;;;-1:-1:-1;7408:161:5;;;;;:::i;:::-;;:::i;19188:196::-;;;;;;;;;;-1:-1:-1;19188:196:5;;;;;:::i;:::-;;:::i;5830:308::-;;;;;;;;;;-1:-1:-1;5830:308:5;;;;;:::i;:::-;;:::i;843:136:8:-;;;;;;;;;;-1:-1:-1;931:41:8;;;;;;;;;;;;;;;;;;843:136;;1246:95:5;;;;;;;;;;;;1288:53;1246:95;;2039:130:10;;;;;;;;;;-1:-1:-1;2039:130:10;;;;;:::i;:::-;;:::i;14304:176:5:-;;;;;;;;;;-1:-1:-1;14304:176:5;;;;;:::i;:::-;;:::i;2354:150:10:-;;;;;;;;;;-1:-1:-1;2354:150:10;;;;;:::i;:::-;;:::i;20020:219:5:-;;;;;;;;;;-1:-1:-1;20020:219:5;;;;;:::i;:::-;-1:-1:-1;;;20020:219:5;;;;;;;;2264:143:71;;;;;;;;;;-1:-1:-1;2264:143:71;;;;;:::i;:::-;-1:-1:-1;2393:7:71;;;2264:143;3835:738:5;3937:4;-1:-1:-1;;;;;;4159:232:5;;-1:-1:-1;;;4159:232:5;;:290;;-1:-1:-1;;;;;;;4407:42:5;;-1:-1:-1;;;4407:42:5;4159:290;:355;;;-1:-1:-1;;;;;;;4465:49:5;;-1:-1:-1;;;4465:49:5;4159:355;:407;;;-1:-1:-1;;;;;;;;;;937:40:45;;;4530:36:5;4140:426;3835:738;-1:-1:-1;;3835:738:5:o;1767:172:71:-;1882:7;1912:20;1359:13:10;;;1271:108;1912:20:71;1905:27;;1767:172;:::o;16338:784:5:-;16586:7;16605:13;16621:423;16648:341;1406:88;16799:10;16835:7;16884:6;;16868:24;;;;;;;:::i;:::-;;;;;;;;16928:6;16918:17;;;;;;16713:244;;;;;;;;;;;19551:25:139;;;19607:2;19592:18;;19585:34;;;;19667:4;19655:17;;;;19650:2;19635:18;;19628:45;19704:2;19689:18;;19682:34;19747:3;19732:19;;19725:35;19538:3;19523:19;;19505:261;16713:244:5;;;;;;;;;;;;;16682:293;;;;;;16648:16;:341::i;:::-;17003:1;17018;17033;16621:13;:423::i;:::-;16605:439;;17062:53;17072:10;17084:5;17091:7;17100:6;;17062:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17108:6:5;;-1:-1:-1;17062:9:5;;-1:-1:-1;;17062:53:5:i;:::-;17055:60;16338:784;-1:-1:-1;;;;;;;;;;16338:784:5:o;4629:98::-;4683:13;4715:5;4708:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4629:98;:::o;10763:867::-;10961:7;10980:18;11001:57;11014:7;11023:6;11031:9;11042:15;11001:12;:57::i;:::-;10980:78;;11069:20;11092:17;11098:10;11092:5;:17::i;:::-;11069:40;-1:-1:-1;11150:23:5;11140:6;:33;;;;;;-1:-1:-1;;;11140:33:5;;;;;;;;;;:67;;;-1:-1:-1;11187:20:5;11177:6;:30;;;;;;-1:-1:-1;;;11177:30:5;;;;;;;;;;11140:67;11119:147;;;;-1:-1:-1;;;11119:147:5;;26046:2:139;11119:147:5;;;26028:21:139;26085:2;26065:18;;;26058:30;26124:34;26104:18;;;26097:62;-1:-1:-1;;;26175:18:139;;;26168:31;26216:19;;11119:147:5;;;;;;;;;11276:22;;;;11310:4;11276:22;;;;;;;;;:31;;:38;;-1:-1:-1;;11276:38:5;;;;;;;11330:28;;18435:25:139;;;11330:28:5;;18408:18:139;11330:28:5;;;;;;;11369:71;11384:10;11396:7;11405:6;11413:9;11424:15;11369:14;:71::i;:::-;11450:65;11459:10;11471:7;11480:6;11488:9;11499:15;11450:8;:65::i;:::-;11525:70;11539:10;11551:7;11560:6;11568:9;11579:15;11525:13;:70::i;:::-;-1:-1:-1;11613:10:5;10763:867;-1:-1:-1;;;;;10763:867:5:o;7177:163::-;7261:7;7287:22;;;:10;:22;;;;;;;;:44;;;;;;;;;-1:-1:-1;;;;;7287:44:5;;;;;:46;-1:-1:-1;;;;;7280:53:5;;7177:163;-1:-1:-1;;7177:163:5:o;2596:114:71:-;719:10:38;19658:4:5;3013:27;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3079:277;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;2679:24:71::1;2693:9;2679:13;:24::i;:::-;2596:114:::0;:::o;1591:170::-;1705:7;1735:19;1188:12:10;;;1101:106;15827:427:5;16084:48;;;1288:53;16084:48;;;19163:25:139;19204:18;;;19197:34;;;19279:4;19267:17;;19247:18;;;19240:45;15995:7:5;;;;16030:159;;16057:77;;19136:18:139;;16084:48:5;19118:173:139;16030:159:5;16014:175;;16206:41;16216:10;16228:5;16235:7;16206:41;;;;;;;;;;;;:9;:41::i;:::-;16199:48;15827:427;-1:-1:-1;;;;;;;15827:427:5:o;6195:914::-;6268:13;6325:22;;;:10;:22;;;;;6362:17;;;;;;6358:77;;;-1:-1:-1;6402:22:5;;6195:914;-1:-1:-1;;6195:914:5:o;6358:77::-;6449:17;;;;;;;;;6445:77;;;-1:-1:-1;6489:22:5;;6195:914;-1:-1:-1;;6195:914:5:o;6445:77::-;6532:16;6551:28;6568:10;6551:16;:28::i;:::-;6532:47;-1:-1:-1;6594:13:5;6590:83;;6623:39;;-1:-1:-1;;;6623:39:5;;26448:2:139;6623:39:5;;;26430:21:139;26487:2;26467:18;;;26460:30;26526:31;26506:18;;;26499:59;26575:18;;6623:39:5;26420:179:139;6590:83:5;6699:12;6687:8;:24;6683:83;;-1:-1:-1;6734:21:5;;6195:914;-1:-1:-1;;;6195:914:5:o;6683:83::-;6776:16;6795:28;6812:10;6795:16;:28::i;:::-;6776:47;;6850:12;6838:8;:24;6834:82;;-1:-1:-1;6885:20:5;;6195:914;-1:-1:-1;;;;6195:914:5:o;6834:82::-;6930:26;6945:10;6930:14;:26::i;:::-;:56;;;;-1:-1:-1;2226:4:8;2278:26;;;:14;:26;;;;;2346:25;;2322:21;;;;;:49;6960:26:5;6926:177;;;-1:-1:-1;7009:23:5;;6195:914;-1:-1:-1;;;;6195:914:5:o;6926:177::-;-1:-1:-1;7070:22:5;;6195:914;-1:-1:-1;;;;6195:914:5:o;14837:198::-;14923:7;;719:10:38;14942:28:5;;14987:41;14997:10;15009:5;15016:7;14987:41;;;;;;;;;;;;:9;:41::i;:::-;14980:48;14837:198;-1:-1:-1;;;;14837:198:5:o;15450:312::-;15638:7;;719:10:38;15657:28:5;;15702:53;15712:10;15724:5;15731:7;15740:6;;15702:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15748:6:5;;-1:-1:-1;15702:9:5;;-1:-1:-1;;15702:53:5:i;1738:126:10:-;719:10:38;19658:4:5;3013:27;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3079:277;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;1826:31:10::1;1842:14;1826:15;:31::i;15105:266:5:-:0;15255:7;;719:10:38;15274:28:5;;15319:45;15329:10;15341:5;15348:7;15357:6;;15319:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15319:9:5;;-1:-1:-1;;;15319:45:5:i;:::-;15312:52;15105:266;-1:-1:-1;;;;;;15105:266:5:o;9296:1408::-;9488:7;9572:19;:17;:19::i;:::-;9528:40;719:10:38;9551:16:5;9566:1;9551:12;:16;:::i;9528:40::-;:63;;9507:159;;;;-1:-1:-1;;;9507:159:5;;27988:2:139;9507:159:5;;;27970:21:139;28027:2;28007:18;;;28000:30;28066:34;28046:18;;;28039:62;-1:-1:-1;;;28117:18:139;;;28110:47;28174:19;;9507:159:5;27960:239:139;9507:159:5;9677:18;9698:71;9711:7;9720:6;9728:9;9755:11;9739:29;;;;;;9698:12;:71::i;:::-;9677:92;;9806:6;:13;9788:7;:14;:31;9780:77;;;;-1:-1:-1;;;9780:77:5;;;;;;;:::i;:::-;9893:9;:16;9875:7;:14;:34;9867:80;;;;-1:-1:-1;;;9867:80:5;;;;;;;:::i;:::-;9982:1;9965:7;:14;:18;9957:55;;;;-1:-1:-1;;;9957:55:5;;24883:2:139;9957:55:5;;;24865:21:139;24922:2;24902:18;;;24895:30;-1:-1:-1;;;24941:18:139;;;24934:54;25005:18;;9957:55:5;24855:174:139;9957:55:5;10023:29;10055:22;;;:10;:22;;;;;;;;;10095:26;;;;;;;;;;-1:-1:-1;;;;;10095:26:5;;;;;1600:20:41;10087:74:5;;;;-1:-1:-1;;;10087:74:5;;27228:2:139;10087:74:5;;;27210:21:139;27267:2;27247:18;;;27240:30;27306:34;27286:18;;;27279:62;-1:-1:-1;;;27357:18:139;;;27350:31;27398:19;;10087:74:5;27200:223:139;10087:74:5;10172:15;10216:24;:13;:11;:13::i;:::-;:22;:24::i;:::-;10190:23;:12;:21;:23::i;:::-;:50;;;;:::i;:::-;10172:68;;10250:15;10279:25;:14;:12;:14::i;:25::-;10268:36;;:8;:36;:::i;:::-;10250:54;-1:-1:-1;10315:40:5;:8;10346;10315:30;:40::i;:::-;10365:38;:16;;;10394:8;10365:28;:38::i;:::-;10419:250;10448:10;719::38;10498:7:5;10519:6;10552:7;:14;-1:-1:-1;;;;;10539:28:5;;;;;-1:-1:-1;;;10539:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10581:9;10604:8;10626;10648:11;10419:250;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10687:10:5;;9296:1408;-1:-1:-1;;;;;;;9296:1408:5:o;14550:227::-;14705:7;14731:39;14741:7;14750:11;14763:6;14731:9;:39::i;:::-;14724:46;;14550:227;;;;;;:::o;1945:181:71:-;2064:7;2094:25;1540:18:10;;;1447:118;7408:161:5;7492:7;7518:22;;;:10;:22;;;;;;;;:42;;;;;;;;:30;;;:42;-1:-1:-1;;;;;7518:42:5;;;;;:44;1170:117:41;19188:196:5;719:10:38;19658:4:5;3013:27;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3079:277;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;19327:50:::1;19357:6;19365:4;;19327:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;19371:5:5;;-1:-1:-1;19327:29:5::1;::::0;-1:-1:-1;;19327:50:5:i:1;:::-;;19188:196:::0;;;;:::o;5830:308::-;6030:7;6085;6094:6;6102:9;6113:15;6074:55;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6074:55:5;;;;;;;;;6064:66;;6074:55;6064:66;;;;;5830:308;-1:-1:-1;;;;;5830:308:5:o;2039:130:10:-;719:10:38;19658:4:5;3013:27;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3079:277;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;2129:33:10::1;2146:15;2129:16;:33::i;14304:176:5:-:0;14398:7;14424:49;14434:7;14443:11;14456:16;9221:9;;;;;;;;;-1:-1:-1;9221:9:5;;;9140:97;14456:16;14424:9;:49::i;2354:150:10:-;719:10:38;19658:4:5;3013:27;3005:64;;;;-1:-1:-1;;;3005:64:5;;;;;;;:::i;:::-;3079:277;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;;;;3079:277;;2454:43:10::1;2476:20;2454:21;:43::i;4339:165:44:-:0;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;8677:57:42;;-1:-1:-1;;;8677:57:42;;;16916:27:139;16959:11;;;16952:27;;;16995:12;;;16988:28;;;8641:7:42;;17032:12:139;;8677:57:42;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;6903:270;7026:7;7046:17;7065:18;7087:25;7098:4;7104:1;7107;7110;7087:10;:25::i;:::-;7045:67;;;;7122:18;7134:5;7122:11;:18::i;17968:769:5:-;18154:7;18205:22;;;:10;:22;;;;;;;;18245:17;18251:10;18245:5;:17::i;:::-;:41;;;;;;-1:-1:-1;;;18245:41:5;;;;;;;;;;18237:89;;;;-1:-1:-1;;;18237:89:5;;24479:2:139;18237:89:5;;;24461:21:139;24518:2;24498:18;;;24491:30;24557:34;24537:18;;;24530:62;-1:-1:-1;;;24608:18:139;;;24601:33;24651:19;;18237:89:5;24451:225:139;18237:89:5;18373:30;;;;;;;;;;;-1:-1:-1;;;;;18373:30:5;;;;;-1:-1:-1;;18354:60:5;;18364:7;;18407:6;18354:9;:60::i;:::-;18337:77;;18424:56;18435:10;18447:7;18456;18465:6;18473;18424:10;:56::i;:::-;18495:13;;18491:216;;18543:7;-1:-1:-1;;;;;18534:54:5;;18552:10;18564:7;18573:6;18581;18534:54;;;;;;;;;:::i;:::-;;;;;;;;18491:216;;;18643:7;-1:-1:-1;;;;;18624:72:5;;18652:10;18664:7;18673:6;18681;18689;18624:72;;;;;;;;;;:::i;:::-;;;;;;;;18724:6;17968:769;-1:-1:-1;;;;;;;17968:769:5:o;12366:499::-;12601:258;;12649:200;12673:7;:14;12669:1;:18;12649:200;;;12738:4;-1:-1:-1;;;;;12716:27:5;:7;12724:1;12716:10;;;;;;-1:-1:-1;;;12716:10:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;12716:27:5;;12712:123;;;12767:49;12802:9;12812:1;12802:12;;;;;;-1:-1:-1;;;12802:12:5;;;;;;;;;;;;;;;12792:23;;;;;;12767:15;:24;;:49;;;;:::i;:::-;12689:3;;;:::i;:::-;;;12649:200;;;;12366:499;;;;;:::o;11755:541::-;11978:26;:70;;;;;;;;;;;;;;;;;;;12063:9;12058:232;12082:7;:14;12078:1;:18;12058:232;;;12118:12;12132:23;12159:7;12167:1;12159:10;;;;;;-1:-1:-1;;;12159:10:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;12159:15:5;12182:6;12189:1;12182:9;;;;;;-1:-1:-1;;;12182:9:5;;;;;;;;;;;;;;;12193;12203:1;12193:12;;;;;;-1:-1:-1;;;12193:12:5;;;;;;;;;;;;;;;12159:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12117:89;;;;12220:59;12245:7;12254:10;12266:12;12220:24;:59::i;:::-;;12058:232;;12098:3;;;;:::i;:::-;;;12058:232;;;;11755:541;;;;;;:::o;3287:324:50:-;3351:13;3380:12;3386:5;5880:12;;;;;5866:26;;-1:-1:-1;;;5866:10:50;;;;;:26;;;;;5777:122;3380:12;3376:32;;;3401:7;;-1:-1:-1;;;3401:7:50;;;;;;;;;;;3376:32;-1:-1:-1;3438:12:50;;;;;;3468:23;;;;;3418:17;3468:23;;;3438:12;3468:11;;;:23;;;;;;;3501:30;;;3565:29;;3580:14;;3565:29;;;-1:-1:-1;;;;;3565:29:50;-1:-1:-1;;;;;;3565:29:50;;;;;;;3468:23;3287:324::o;2819:182:71:-;2908:7;;;2925:19;;;;2959:35;;;30450:25:139;;;30506:2;30491:18;;30484:34;;;2959:35:71;;30423:18:139;2959:35:71;;;;;;;2819:182;;:::o;17431:255:5:-;17588:7;17614:65;17624:10;17636:7;17645;17654:6;17662:16;9221:9;;;;;;;;;-1:-1:-1;9221:9:5;;;9140:97;17662:16;17614:9;:65::i;:::-;17607:72;17431:255;-1:-1:-1;;;;;17431:255:5:o;1732:276:8:-;1816:4;1868:26;;;:14;:26;;;;;1976:25;;;;1952:21;;;;:49;;1976:25;1952:49;:::i;:::-;1912:36;1919:28;1936:10;1919:16;:28::i;1912:36::-;:89;;;1732:276;-1:-1:-1;;;1732:276:8:o;2622:171:10:-;2718:12;;2703:44;;;30450:25:139;;;30506:2;30491:18;;30484:34;;;2703:44:10;;30423:18:139;2703:44:10;;;;;;;2757:12;:29;2622:171::o;13131:187:48:-;13187:6;-1:-1:-1;;;;;13213:25:48;;;13205:76;;;;-1:-1:-1;;;13205:76:48;;25639:2:139;13205:76:48;;;25621:21:139;25678:2;25658:18;;;25651:30;25717:34;25697:18;;;25690:62;-1:-1:-1;;;25768:18:139;;;25761:36;25814:19;;13205:76:48;25611:228:139;13205:76:48;-1:-1:-1;13305:5:48;13131:187::o;1293:119:41:-;1378:27;;-1:-1:-1;;1378:27:41;-1:-1:-1;;;;;1378:27:41;;;;;;;1293:119::o;1340:245:71:-;1492:7;1525:8;-1:-1:-1;;;;;1525:15:71;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1518:60;;-1:-1:-1;;;1518:60:71;;-1:-1:-1;;;;;17247:32:139;;;1518:60:71;;;17229:51:139;17296:18;;;17289:34;;;1518:38:71;;;;;;;17202:18:139;;1518:60:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4446:254:36:-;4575:12;4606:87;4628:6;4636:4;4642:5;4606:87;;;;;;;;;;;;;;;;;:21;:87::i;2913:316:10:-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:10;;22853:2:139;3048:71:10;;;22835:21:139;22892:2;22872:18;;;22865:30;22931:34;22911:18;;;22904:62;-1:-1:-1;;;22982:18:139;;;22975:37;23029:19;;3048:71:10;22825:229:139;3048:71:10;3150:13;;3134:47;;;30450:25:139;;;30506:2;30491:18;;30484:34;;;3134:47:10;;30423:18:139;3134:47:10;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;30450:25:139;;;30506:2;30491:18;;30484:34;;;3452:62:10;;30423:18:139;3452:62:10;;;;;;;3524:18;:41;3359:213::o;3143:308:44:-;3196:7;3227:4;-1:-1:-1;;;;;3236:12:44;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:44;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:44;;;3392:10;3633:73;;;;18730:25:139;;;;3404:12:44;18771:18:139;;;18764:34;3418:15:44;18814:18:139;;;18807:34;3677:13:44;18857:18:139;;;18850:34;3700:4:44;18900:19:139;;;;18893:61;;;;3633:73:44;;;;;;;;;;18702:19:139;;;;3633:73:44;;;3623:84;;;;;;1767:172:71:o;5167:1603:42:-;5293:7;;-1:-1:-1;;;;;6204:79:42;;6200:161;;;-1:-1:-1;6315:1:42;;-1:-1:-1;6319:30:42;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:42;;-1:-1:-1;6428:30:42;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;19998:25:139;;;20071:4;20059:17;;20039:18;;;20032:45;;;;20093:18;;;20086:34;;;20136:18;;;20129:34;;;6581:24:42;;19970:19:139;;6581:24:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:42;;-1:-1:-1;;6581:24:42;;;-1:-1:-1;;;;;;;6619:20:42;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:42;;-1:-1:-1;5167:1603:42;;;;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;-1:-1:-1;;;616:29:42;;;;;;;;;;612:561;;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;-1:-1:-1;;;712:38:42;;;;;;;;;;708:465;;;766:34;;-1:-1:-1;;;766:34:42;;21385:2:139;766:34:42;;;21367:21:139;21424:2;21404:18;;;21397:30;-1:-1:-1;;;21443:18:139;;;21436:54;21507:18;;766:34:42;21357:174:139;708:465:42;830:35;821:5;:44;;;;;;-1:-1:-1;;;821:44:42;;;;;;;;;;817:356;;;881:41;;-1:-1:-1;;;881:41:42;;22091:2:139;881:41:42;;;22073:21:139;22130:2;22110:18;;;22103:30;22169:33;22149:18;;;22142:61;22220:18;;881:41:42;22063:181:139;817:356:42;952:30;943:5;:39;;;;;;-1:-1:-1;;;943:39:42;;;;;;;;;;939:234;;;998:44;;-1:-1:-1;;;998:44:42;;23261:2:139;998:44:42;;;23243:21:139;23300:2;23280:18;;;23273:30;23339:34;23319:18;;;23312:62;-1:-1:-1;;;23390:18:139;;;23383:32;23432:19;;998:44:42;23233:224:139;939:234:42;1072:30;1063:5;:39;;;;;;-1:-1:-1;;;1063:39:42;;;;;;;;;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:42;;25236:2:139;1118:44:42;;;25218:21:139;25275:2;25255:18;;;25248:30;25314:34;25294:18;;;25287:62;-1:-1:-1;;;25365:18:139;;;25358:32;25407:19;;1118:44:42;25208:224:139;2518:812:8;2712:33;2748:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;2794:30:8;;;;:21;;;:30;;;;;;;;;2793:31;2785:83;;;;-1:-1:-1;;;2785:83:8;;23664:2:139;2785:83:8;;;23646:21:139;23703:2;23683:18;;;23676:30;23742:34;23722:18;;;23715:62;-1:-1:-1;;;23793:18:139;;;23786:37;23840:19;;2785:83:8;23636:229:139;2785:83:8;-1:-1:-1;;;;;2878:30:8;;;;;;:21;;;:30;;;;;:37;;-1:-1:-1;;2878:37:8;2911:4;2878:37;;;2930:34;;:7;:34;;;2926:398;;;3009:6;2980:12;:25;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;2926:398:8;;-1:-1:-1;2926:398:8;;3036:30;;;3053:12;3036:30;3032:292;;;3107:6;3082:12;:21;;;:31;;;;;;;:::i;3032:292::-;3134:34;;;3151:16;3134:34;3130:194;;;3213:6;3184:12;:25;;;:35;;;;;;;:::i;3130:194::-;3250:63;;-1:-1:-1;;;3250:63:8;;26806:2:139;3250:63:8;;;26788:21:139;26845:2;26825:18;;;26818:30;26884:34;26864:18;;;26857:62;-1:-1:-1;;;26935:18:139;;;26928:51;26996:19;;3250:63:8;26778:243:139;2088:226:50;2187:10;;-1:-1:-1;;;2187:10:50;;;;;;;;2207:22;;;;;2168:16;2207:22;;;:11;;;;:22;;;;;;:30;;;;2271:26;;2284:13;;2271:26;;-1:-1:-1;;;;;2271:26:50;;;;;;;;;;;2088:226::o;7561:742:36:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:36;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:36;;;;;;;;:::i;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;-1:-1:-1;;;5137:81:36;;24072:2:139;5137:81:36;;;24054:21:139;24111:2;24091:18;;;24084:30;24150:34;24130:18;;;24123:62;-1:-1:-1;;;24201:18:139;;;24194:36;24247:19;;5137:81:36;24044:228:139;5137:81:36;-1:-1:-1;;;;;1465:19:36;;;5228:60;;;;-1:-1:-1;;;5228:60:36;;27630:2:139;5228:60:36;;;27612:21:139;27669:2;27649:18;;;27642:30;27708:31;27688:18;;;27681:59;27757:18;;5228:60:36;27602:179:139;5228:60:36;5300:12;5314:23;5341:6;-1:-1:-1;;;;;5341:11:36;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;14:406:139:-;78:5;-1:-1:-1;;;;;104:6:139;101:30;98:2;;;134:18;;:::i;:::-;172:57;217:2;196:15;;-1:-1:-1;;192:29:139;223:4;188:40;172:57;:::i;:::-;163:66;;252:6;245:5;238:21;292:3;283:6;278:3;274:16;271:25;268:2;;;309:1;306;299:12;268:2;358:6;353:3;346:4;339:5;335:16;322:43;412:1;405:4;396:6;389:5;385:18;381:29;374:40;88:332;;;;;:::o;425:768::-;479:5;532:3;525:4;517:6;513:17;509:27;499:2;;554:5;547;540:20;499:2;594:6;581:20;620:4;644:60;660:43;700:2;660:43;:::i;:::-;644:60;:::i;:::-;726:3;750:2;745:3;738:15;778:2;773:3;769:12;762:19;;813:2;805:6;801:15;865:3;860:2;854;851:1;847:10;839:6;835:23;831:32;828:41;825:2;;;886:5;879;872:20;825:2;912:5;926:238;940:2;937:1;934:9;926:238;;;1011:3;998:17;1028:31;1053:5;1028:31;:::i;:::-;1072:18;;1110:12;;;;1142;;;;958:1;951:9;926:238;;;-1:-1:-1;1182:5:139;;489:704;-1:-1:-1;;;;;;;489:704:139:o;1198:855::-;1250:5;1303:3;1296:4;1288:6;1284:17;1280:27;1270:2;;1325:5;1318;1311:20;1270:2;1365:6;1352:20;1391:4;1415:60;1431:43;1471:2;1431:43;:::i;1415:60::-;1497:3;1521:2;1516:3;1509:15;1549:2;1544:3;1540:12;1533:19;;1584:2;1576:6;1572:15;1636:3;1631:2;1625;1622:1;1618:10;1610:6;1606:23;1602:32;1599:41;1596:2;;;1657:5;1650;1643:20;1596:2;1683:5;1697:327;1711:2;1708:1;1705:9;1697:327;;;1788:3;1775:17;-1:-1:-1;;;;;1811:11:139;1808:35;1805:2;;;1860:5;1853;1846:20;1805:2;1893:56;1945:3;1940:2;1926:11;1918:6;1914:24;1910:33;1893:56;:::i;:::-;1881:69;;-1:-1:-1;1970:12:139;;;;2002;;;;1729:1;1722:9;1697:327;;2058:693;2112:5;2165:3;2158:4;2150:6;2146:17;2142:27;2132:2;;2187:5;2180;2173:20;2132:2;2227:6;2214:20;2253:4;2277:60;2293:43;2333:2;2293:43;:::i;2277:60::-;2359:3;2383:2;2378:3;2371:15;2411:2;2406:3;2402:12;2395:19;;2446:2;2438:6;2434:15;2498:3;2493:2;2487;2484:1;2480:10;2472:6;2468:23;2464:32;2461:41;2458:2;;;2519:5;2512;2505:20;2458:2;2545:5;2559:163;2573:2;2570:1;2567:9;2559:163;;;2630:17;;2618:30;;2668:12;;;;2700;;;;2591:1;2584:9;2559:163;;2756:375;2807:8;2817:6;2871:3;2864:4;2856:6;2852:17;2848:27;2838:2;;2896:8;2886;2879:26;2838:2;-1:-1:-1;2926:20:139;;-1:-1:-1;;;;;2958:30:139;;2955:2;;;3008:8;2998;2991:26;2955:2;3052:4;3044:6;3040:17;3028:29;;3104:3;3097:4;3088:6;3080;3076:19;3072:30;3069:39;3066:2;;;3121:1;3118;3111:12;3066:2;2828:303;;;;;:::o;3136:228::-;3178:5;3231:3;3224:4;3216:6;3212:17;3208:27;3198:2;;3253:5;3246;3239:20;3198:2;3279:79;3354:3;3345:6;3332:20;3325:4;3317:6;3313:17;3279:79;:::i;3369:156::-;3435:20;;3495:4;3484:16;;3474:27;;3464:2;;3515:1;3512;3505:12;3464:2;3416:109;;;:::o;3530:261::-;3600:6;3653:2;3641:9;3632:7;3628:23;3624:32;3621:2;;;3674:6;3666;3659:22;3621:2;3711:9;3705:16;3730:31;3755:5;3730:31;:::i;3796:1111::-;3950:6;3958;3966;3974;3982;4035:3;4023:9;4014:7;4010:23;4006:33;4003:2;;;4057:6;4049;4042:22;4003:2;4101:9;4088:23;4120:31;4145:5;4120:31;:::i;:::-;4170:5;-1:-1:-1;4227:2:139;4212:18;;4199:32;4240:33;4199:32;4240:33;:::i;:::-;4292:7;-1:-1:-1;4350:2:139;4335:18;;4322:32;-1:-1:-1;;;;;4403:14:139;;;4400:2;;;4435:6;4427;4420:22;4400:2;4463:61;4516:7;4507:6;4496:9;4492:22;4463:61;:::i;:::-;4453:71;;4577:2;4566:9;4562:18;4549:32;4533:48;;4606:2;4596:8;4593:16;4590:2;;;4627:6;4619;4612:22;4590:2;4655:63;4710:7;4699:8;4688:9;4684:24;4655:63;:::i;:::-;4645:73;;4771:3;4760:9;4756:19;4743:33;4727:49;;4801:2;4791:8;4788:16;4785:2;;;4822:6;4814;4807:22;4785:2;;4850:51;4893:7;4882:8;4871:9;4867:24;4850:51;:::i;:::-;4840:61;;;3993:914;;;;;;;;:::o;4912:685::-;5007:6;5015;5023;5031;5084:3;5072:9;5063:7;5059:23;5055:33;5052:2;;;5106:6;5098;5091:22;5052:2;5150:9;5137:23;5169:31;5194:5;5169:31;:::i;:::-;5219:5;-1:-1:-1;5276:2:139;5261:18;;5248:32;5289:33;5248:32;5289:33;:::i;:::-;5341:7;-1:-1:-1;5395:2:139;5380:18;;5367:32;;-1:-1:-1;5450:2:139;5435:18;;5422:32;-1:-1:-1;;;;;5466:30:139;;5463:2;;;5514:6;5506;5499:22;5463:2;5542:49;5583:7;5574:6;5563:9;5559:22;5542:49;:::i;:::-;5532:59;;;5042:555;;;;;;;:::o;5602:754::-;5706:6;5714;5722;5730;5738;5791:3;5779:9;5770:7;5766:23;5762:33;5759:2;;;5813:6;5805;5798:22;5759:2;5857:9;5844:23;5876:31;5901:5;5876:31;:::i;:::-;5926:5;-1:-1:-1;5983:2:139;5968:18;;5955:32;5996:33;5955:32;5996:33;:::i;:::-;6048:7;-1:-1:-1;6102:2:139;6087:18;;6074:32;;-1:-1:-1;6153:2:139;6138:18;;6125:32;;-1:-1:-1;6208:3:139;6193:19;;6180:33;-1:-1:-1;;;;;6225:30:139;;6222:2;;;6273:6;6265;6258:22;6222:2;6301:49;6342:7;6333:6;6322:9;6318:22;6301:49;:::i;6361:325::-;6429:6;6437;6490:2;6478:9;6469:7;6465:23;6461:32;6458:2;;;6511:6;6503;6496:22;6458:2;6555:9;6542:23;6574:31;6599:5;6574:31;:::i;:::-;6624:5;6676:2;6661:18;;;;6648:32;;-1:-1:-1;;;6448:238:139:o;6691:632::-;6779:6;6787;6795;6803;6856:2;6844:9;6835:7;6831:23;6827:32;6824:2;;;6877:6;6869;6862:22;6824:2;6921:9;6908:23;6940:31;6965:5;6940:31;:::i;:::-;6990:5;-1:-1:-1;7042:2:139;7027:18;;7014:32;;-1:-1:-1;7097:2:139;7082:18;;7069:32;-1:-1:-1;;;;;7113:30:139;;7110:2;;;7161:6;7153;7146:22;7110:2;7205:58;7255:7;7246:6;7235:9;7231:22;7205:58;:::i;:::-;6814:509;;;;-1:-1:-1;7282:8:139;-1:-1:-1;;;;6814:509:139:o;7328:543::-;7414:6;7422;7430;7483:2;7471:9;7462:7;7458:23;7454:32;7451:2;;;7504:6;7496;7489:22;7451:2;7548:9;7535:23;7567:31;7592:5;7567:31;:::i;:::-;7617:5;-1:-1:-1;7669:2:139;7654:18;;7641:32;;-1:-1:-1;7724:2:139;7709:18;;7696:32;-1:-1:-1;;;;;7740:30:139;;7737:2;;;7788:6;7780;7773:22;7737:2;7816:49;7857:7;7848:6;7837:9;7833:22;7816:49;:::i;:::-;7806:59;;;7441:430;;;;;:::o;7876:937::-;8046:6;8054;8062;8070;8123:3;8111:9;8102:7;8098:23;8094:33;8091:2;;;8145:6;8137;8130:22;8091:2;8190:9;8177:23;-1:-1:-1;;;;;8260:2:139;8252:6;8249:14;8246:2;;;8281:6;8273;8266:22;8246:2;8309:61;8362:7;8353:6;8342:9;8338:22;8309:61;:::i;:::-;8299:71;;8423:2;8412:9;8408:18;8395:32;8379:48;;8452:2;8442:8;8439:16;8436:2;;;8473:6;8465;8458:22;8436:2;8501:63;8556:7;8545:8;8534:9;8530:24;8501:63;:::i;:::-;8491:73;;8617:2;8606:9;8602:18;8589:32;8573:48;;8646:2;8636:8;8633:16;8630:2;;;8667:6;8659;8652:22;8630:2;;8695:61;8748:7;8737:8;8726:9;8722:24;8695:61;:::i;:::-;8081:732;;;;-1:-1:-1;8685:71:139;;8803:2;8788:18;8775:32;;-1:-1:-1;;;8081:732:139:o;8818:1217::-;8998:6;9006;9014;9022;9075:3;9063:9;9054:7;9050:23;9046:33;9043:2;;;9097:6;9089;9082:22;9043:2;9142:9;9129:23;-1:-1:-1;;;;;9212:2:139;9204:6;9201:14;9198:2;;;9233:6;9225;9218:22;9198:2;9261:61;9314:7;9305:6;9294:9;9290:22;9261:61;:::i;:::-;9251:71;;9375:2;9364:9;9360:18;9347:32;9331:48;;9404:2;9394:8;9391:16;9388:2;;;9425:6;9417;9410:22;9388:2;9453:63;9508:7;9497:8;9486:9;9482:24;9453:63;:::i;:::-;9443:73;;9569:2;9558:9;9554:18;9541:32;9525:48;;9598:2;9588:8;9585:16;9582:2;;;9619:6;9611;9604:22;9582:2;9647:61;9700:7;9689:8;9678:9;9674:24;9647:61;:::i;:::-;9637:71;;9761:2;9750:9;9746:18;9733:32;9717:48;;9790:2;9780:8;9777:16;9774:2;;;9811:6;9803;9796:22;9774:2;-1:-1:-1;9839:24:139;;9894:4;9886:13;;9882:27;-1:-1:-1;9872:2:139;;9928:6;9920;9913:22;9872:2;9956:73;10021:7;10016:2;10003:16;9998:2;9994;9990:11;9956:73;:::i;10040:306::-;10098:6;10151:2;10139:9;10130:7;10126:23;10122:32;10119:2;;;10172:6;10164;10157:22;10119:2;10203:23;;-1:-1:-1;;;;;;10255:32:139;;10245:43;;10235:2;;10307:6;10299;10292:22;10351:190;10410:6;10463:2;10451:9;10442:7;10438:23;10434:32;10431:2;;;10484:6;10476;10469:22;10431:2;-1:-1:-1;10512:23:139;;10421:120;-1:-1:-1;10421:120:139:o;10546:194::-;10616:6;10669:2;10657:9;10648:7;10644:23;10640:32;10637:2;;;10690:6;10682;10675:22;10637:2;-1:-1:-1;10718:16:139;;10627:113;-1:-1:-1;10627:113:139:o;10745:325::-;10813:6;10821;10874:2;10862:9;10853:7;10849:23;10845:32;10842:2;;;10895:6;10887;10880:22;10842:2;10936:9;10923:23;10913:33;;10996:2;10985:9;10981:18;10968:32;11009:31;11034:5;11009:31;:::i;:::-;11059:5;11049:15;;;10832:238;;;;;:::o;11075:260::-;11141:6;11149;11202:2;11190:9;11181:7;11177:23;11173:32;11170:2;;;11223:6;11215;11208:22;11170:2;11264:9;11251:23;11241:33;;11293:36;11325:2;11314:9;11310:18;11293:36;:::i;:::-;11283:46;;11160:175;;;;;:::o;11340:568::-;11427:6;11435;11443;11451;11504:2;11492:9;11483:7;11479:23;11475:32;11472:2;;;11525:6;11517;11510:22;11472:2;11566:9;11553:23;11543:33;;11595:36;11627:2;11616:9;11612:18;11595:36;:::i;:::-;11585:46;;11682:2;11671:9;11667:18;11654:32;-1:-1:-1;;;;;11701:6:139;11698:30;11695:2;;;11746:6;11738;11731:22;11913:798;12018:6;12026;12034;12042;12050;12103:3;12091:9;12082:7;12078:23;12074:33;12071:2;;;12125:6;12117;12110:22;12071:2;12166:9;12153:23;12143:33;;12195:36;12227:2;12216:9;12212:18;12195:36;:::i;:::-;12185:46;;12282:2;12271:9;12267:18;12254:32;-1:-1:-1;;;;;12346:2:139;12338:6;12335:14;12332:2;;;12367:6;12359;12352:22;12332:2;12411:58;12461:7;12452:6;12441:9;12437:22;12411:58;:::i;:::-;12488:8;;-1:-1:-1;12385:84:139;-1:-1:-1;12576:2:139;12561:18;;12548:32;;-1:-1:-1;12592:16:139;;;12589:2;;;12626:6;12618;12611:22;12716:1007;12846:6;12854;12862;12870;12878;12886;12894;12902;12955:3;12943:9;12934:7;12930:23;12926:33;12923:2;;;12977:6;12969;12962:22;12923:2;13018:9;13005:23;12995:33;;13047:36;13079:2;13068:9;13064:18;13047:36;:::i;:::-;13037:46;;13134:2;13123:9;13119:18;13106:32;-1:-1:-1;;;;;13198:2:139;13190:6;13187:14;13184:2;;;13219:6;13211;13204:22;13184:2;13263:58;13313:7;13304:6;13293:9;13289:22;13263:58;:::i;:::-;13340:8;;-1:-1:-1;13237:84:139;-1:-1:-1;13428:2:139;13413:18;;13400:32;;-1:-1:-1;13444:16:139;;;13441:2;;;13478:6;13470;13463:22;13441:2;;13506:51;13549:7;13538:8;13527:9;13523:24;13506:51;:::i;:::-;13496:61;;;13576:37;13608:3;13597:9;13593:19;13576:37;:::i;:::-;13566:47;;13660:3;13649:9;13645:19;13632:33;13622:43;;13712:3;13701:9;13697:19;13684:33;13674:43;;12913:810;;;;;;;;;;;:::o;13728:468::-;13819:6;13827;13835;13843;13851;13904:3;13892:9;13883:7;13879:23;13875:33;13872:2;;;13926:6;13918;13911:22;13872:2;13967:9;13954:23;13944:33;;13996:36;14028:2;14017:9;14013:18;13996:36;:::i;:::-;13986:46;;14051:36;14083:2;14072:9;14068:18;14051:36;:::i;:::-;13862:334;;;;-1:-1:-1;14041:46:139;;14134:2;14119:18;;14106:32;;-1:-1:-1;14185:3:139;14170:19;14157:33;;13862:334;-1:-1:-1;;13862:334:139:o;14201:463::-;14254:3;14292:5;14286:12;14319:6;14314:3;14307:19;14345:4;14374:2;14369:3;14365:12;14358:19;;14411:2;14404:5;14400:14;14432:3;14444:195;14458:6;14455:1;14452:13;14444:195;;;14523:13;;-1:-1:-1;;;;;14519:39:139;14507:52;;14579:12;;;;14614:15;;;;14555:1;14473:9;14444:195;;;-1:-1:-1;14655:3:139;;14262:402;-1:-1:-1;;;;;14262:402:139:o;14669:616::-;14720:3;14758:5;14752:12;14785:6;14780:3;14773:19;14811:4;14852:2;14847:3;14843:12;14877:11;14904;14897:18;;14954:6;14951:1;14947:14;14940:5;14936:26;14924:38;;14996:2;14989:5;14985:14;15017:3;15029:230;15043:6;15040:1;15037:13;15029:230;;;15114:5;15108:4;15104:16;15099:3;15092:29;15142:37;15174:4;15165:6;15159:13;15142:37;:::i;:::-;15237:12;;;;15134:45;-1:-1:-1;15202:15:139;;;;15065:1;15058:9;15029:230;;;-1:-1:-1;15275:4:139;;14728:557;-1:-1:-1;;;;;;;14728:557:139:o;15290:437::-;15343:3;15381:5;15375:12;15408:6;15403:3;15396:19;15434:4;15463:2;15458:3;15454:12;15447:19;;15500:2;15493:5;15489:14;15521:3;15533:169;15547:6;15544:1;15541:13;15533:169;;;15608:13;;15596:26;;15642:12;;;;15677:15;;;;15569:1;15562:9;15533:169;;15732:257;15773:3;15811:5;15805:12;15838:6;15833:3;15826:19;15854:63;15910:6;15903:4;15898:3;15894:14;15887:4;15880:5;15876:16;15854:63;:::i;:::-;15971:2;15950:15;-1:-1:-1;;15946:29:139;15937:39;;;;15978:4;15933:50;;15781:208;-1:-1:-1;;15781:208:139:o;16101:273::-;16284:6;16276;16271:3;16258:33;16240:3;16310:16;;16335:15;;;16310:16;16248:126;-1:-1:-1;16248:126:139:o;16379:274::-;16508:3;16546:6;16540:13;16562:53;16608:6;16603:3;16596:4;16588:6;16584:17;16562:53;:::i;:::-;16631:16;;;;;16516:137;-1:-1:-1;;16516:137:139:o;17334:758::-;17715:3;17704:9;17697:22;17678:4;17742:57;17794:3;17783:9;17779:19;17771:6;17742:57;:::i;:::-;17847:9;17839:6;17835:22;17830:2;17819:9;17815:18;17808:50;17881:44;17918:6;17910;17881:44;:::i;:::-;17867:58;;17973:9;17965:6;17961:22;17956:2;17945:9;17941:18;17934:50;18001:42;18036:6;18028;18001:42;:::i;:::-;17993:50;;;18079:6;18074:2;18063:9;18059:18;18052:34;17687:405;;;;;;;:::o;20608:346::-;20758:2;20743:18;;20791:1;20780:13;;20770:2;;20836:10;20831:3;20827:20;20824:1;20817:31;20871:4;20868:1;20861:15;20899:4;20896:1;20889:15;20770:2;20923:25;;;20725:229;:::o;20959:219::-;21108:2;21097:9;21090:21;21071:4;21128:44;21168:2;21157:9;21153:18;21145:6;21128:44;:::i;21536:348::-;21738:2;21720:21;;;21777:2;21757:18;;;21750:30;-1:-1:-1;;;21811:2:139;21796:18;;21789:54;21875:2;21860:18;;21710:174::o;22249:397::-;22451:2;22433:21;;;22490:2;22470:18;;;22463:30;22529:34;22524:2;22509:18;;22502:62;-1:-1:-1;;;22595:2:139;22580:18;;22573:31;22636:3;22621:19;;22423:223::o;28386:1885::-;28958:4;28987:3;29017:6;29006:9;28999:25;29043:2;29110:1;29106;29101:3;29097:11;29093:19;29085:6;29081:32;29076:2;29065:9;29061:18;29054:60;29150:2;29145;29134:9;29130:18;29123:30;29176:56;29228:2;29217:9;29213:18;29205:6;29176:56;:::i;:::-;29162:70;;29280:9;29272:6;29268:22;29263:2;29252:9;29248:18;29241:50;29314:44;29351:6;29343;29314:44;:::i;:::-;29300:58;;29407:9;29399:6;29395:22;29389:3;29378:9;29374:19;29367:51;29438:6;29473;29467:13;29504:6;29496;29489:22;29539:2;29531:6;29527:15;29520:22;;29598:2;29588:6;29585:1;29581:14;29573:6;29569:27;29565:36;29636:2;29628:6;29624:15;29657:4;29670:251;29684:6;29681:1;29678:13;29670:251;;;29774:2;29770:7;29761:6;29753;29749:19;29745:33;29740:3;29733:46;29802:39;29834:6;29825;29819:13;29802:39;:::i;:::-;29899:12;;;;29792:49;-1:-1:-1;29864:15:139;;;;29706:1;29699:9;29670:251;;;29674:3;;29970:9;29962:6;29958:22;29952:3;29941:9;29937:19;29930:51;30004:42;30039:6;30031;30004:42;:::i;:::-;29990:56;;;;;;30055:46;30096:3;30085:9;30081:19;30073:6;-1:-1:-1;;;;;16059:30:139;16047:43;;16037:59;30055:46;-1:-1:-1;;;;;16059:30:139;;30151:3;30136:19;;16047:43;30205:9;30197:6;30193:22;30187:3;30176:9;30172:19;30165:51;30233:32;30258:6;30250;30233:32;:::i;:::-;30225:40;28967:1304;-1:-1:-1;;;;;;;;;;;;28967:1304:139:o;30853:441::-;31082:6;31071:9;31064:25;31137:4;31129:6;31125:17;31120:2;31109:9;31105:18;31098:45;31179:6;31174:2;31163:9;31159:18;31152:34;31222:3;31217:2;31206:9;31202:18;31195:31;31045:4;31243:45;31283:3;31272:9;31268:19;31260:6;31243:45;:::i;31299:602::-;31574:6;31563:9;31556:25;31629:4;31621:6;31617:17;31612:2;31601:9;31597:18;31590:45;31671:6;31666:2;31655:9;31651:18;31644:34;31714:3;31709:2;31698:9;31694:18;31687:31;31537:4;31741:45;31781:3;31770:9;31766:19;31758:6;31741:45;:::i;:::-;31835:9;31827:6;31823:22;31817:3;31806:9;31802:19;31795:51;31863:32;31888:6;31880;31863:32;:::i;:::-;31855:40;31546:355;-1:-1:-1;;;;;;;;31546:355:139:o;31906:275::-;31977:2;31971:9;32042:2;32023:13;;-1:-1:-1;;32019:27:139;32007:40;;-1:-1:-1;;;;;32062:34:139;;32098:22;;;32059:62;32056:2;;;32124:18;;:::i;:::-;32160:2;32153:22;31951:230;;-1:-1:-1;31951:230:139:o;32186:183::-;32246:4;-1:-1:-1;;;;;32271:6:139;32268:30;32265:2;;;32301:18;;:::i;:::-;-1:-1:-1;32346:1:139;32342:14;32358:4;32338:25;;32255:114::o;32374:128::-;32414:3;32445:1;32441:6;32438:1;32435:13;32432:2;;;32451:18;;:::i;:::-;-1:-1:-1;32487:9:139;;32422:80::o;32507:236::-;32546:3;-1:-1:-1;;;;;32619:2:139;32616:1;32612:10;32649:2;32646:1;32642:10;32680:3;32676:2;32672:12;32667:3;32664:21;32661:2;;;32688:18;;:::i;:::-;32724:13;;32554:189;-1:-1:-1;;;;32554:189:139:o;32748:125::-;32788:4;32816:1;32813;32810:8;32807:2;;;32821:18;;:::i;:::-;-1:-1:-1;32858:9:139;;32797:76::o;32878:258::-;32950:1;32960:113;32974:6;32971:1;32968:13;32960:113;;;33050:11;;;33044:18;33031:11;;;33024:39;32996:2;32989:10;32960:113;;;33091:6;33088:1;33085:13;33082:2;;;33126:1;33117:6;33112:3;33108:16;33101:27;33082:2;;32931:205;;;:::o;33141:380::-;33220:1;33216:12;;;;33263;;;33284:2;;33338:4;33330:6;33326:17;33316:27;;33284:2;33391;33383:6;33380:14;33360:18;33357:38;33354:2;;;33437:10;33432:3;33428:20;33425:1;33418:31;33472:4;33469:1;33462:15;33500:4;33497:1;33490:15;33354:2;;33196:325;;;:::o;33526:135::-;33565:3;-1:-1:-1;;33586:17:139;;33583:2;;;33606:18;;:::i;:::-;-1:-1:-1;33653:1:139;33642:13;;33573:88::o;33666:127::-;33727:10;33722:3;33718:20;33715:1;33708:31;33758:4;33755:1;33748:15;33782:4;33779:1;33772:15;33798:127;33859:10;33854:3;33850:20;33847:1;33840:31;33890:4;33887:1;33880:15;33914:4;33911:1;33904:15;33930:131;-1:-1:-1;;;;;34005:31:139;;33995:42;;33985:2;;34051:1;34048;34041:12"},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","proposalVotes(uint256)":"544ffc9c","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","registry()":"7b103999","relay(address,uint256,bytes)":"c28bc2fa","setProposalThreshold(uint256)":"ece40cc1","setVotingDelay(uint256)":"70b0f660","setVotingPeriod(uint256)":"ea0217cf","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","updateQuorum(uint256)":"35680dc2","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialVotingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_initialVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_initialProposalThreshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"__quorum\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldQuorum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"QuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"setProposalThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"updateQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:security-contact\":\"security@mahadao.com\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"See {IGovernor-hasVoted}.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`.\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"setProposalThreshold(uint256)\":{\"details\":\"Update the proposal threshold. This operation can only be performed through a governance proposal. Emits a {ProposalThresholdSet} event.\"},\"setVotingDelay(uint256)\":{\"details\":\"Update the voting delay. This operation can only be performed through a governance proposal. Emits a {VotingDelaySet} event.\"},\"setVotingPeriod(uint256)\":{\"details\":\"Update the voting period. This operation can only be performed through a governance proposal. Emits a {VotingPeriodSet} event.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateQuorum(uint256)\":{\"details\":\"Changes the quorum. Emits a {QuorumUpdated} event. Requirements: - Must be called through a governance proposal.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MAHAXVetoGovernor.sol\":\"MAHAXVetoGovernor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x0db2a6141fa677ae237b5f954d7af76553aa436855d32abca3110d92e9b56ec4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7af446b3a4212749257751ba805faec614b481eea69a2a49c931c9b38a6c7e1c\",\"dweb:/ipfs/QmchQ5ruA6pvh9aGKeQuez9PmuZ7FGQigivYTCSgx7CHj6\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0xcb82f3524bea8631d077934fe0a250d321440a1528135c8adaf896bcdf92351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0733314f732fb18258801143f3809257045885e364e228289cfab1067a2cb6\",\"dweb:/ipfs/QmWXjD2MMmATDcxDN8tThnwEHXypanpQJTAiZWdiEBVra8\"]},\"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0xab3781f09dfb447d0c2f5bbb2aafc9ff86333f16c61580ab85d7c8a87491eab9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58571bc89cd0e54fa9af6b41e53e2110c6f5767eb691af8ad88759dbde07b3fd\",\"dweb:/ipfs/QmbeoatuYT5ukpGLWZh4DHb7yrC3TpBbm9hDdWwkdUuUy4\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]},\"contracts/MAHAXVetoGovernor.sol\":{\"keccak256\":\"0xc26133445d8920914c3fad660fc33ef83715f19f38e0f321321b338b7aafb943\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf58f354200b65e96dad912ea163803acb8f49ef8f7be111c6632f2942c6091b\",\"dweb:/ipfs/QmPg6H7s6VYe9Fvcb5ySyHRiiZiXJttWT3ipNkjLeQGEQy\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/Regsitry.sol":{"Registry":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"EmissionControllerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"GovernorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"LockerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"MahaChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"StakerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"VoterChanged","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EMERGENCY_STOP_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emissionController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ensureNotPaused","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gaugeVoter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllAddresses","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"address","name":"_maha","type":"address"},{"internalType":"address","name":"_gaugeVoter","type":"address"},{"internalType":"address","name":"_locker","type":"address"},{"internalType":"address","name":"_governor","type":"address"},{"internalType":"address","name":"_staker","type":"address"},{"internalType":"address","name":"_emissionController","type":"address"},{"internalType":"address","name":"_governance","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"locker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maha","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setEmissionController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setLocker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setMAHA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50611058806100206000396000f3fe608060405234801561001057600080fd5b50600436106101635760003560e01c80636dee2012116100ce578063a29a43bb11610087578063a29a43bb1461032f578063b641522e14610342578063be21c02614610355578063c42cf53514610368578063d547741f1461037b578063d7b96d4e1461038e578063f9fa2123146103a157600080fd5b80636dee20121461029c57806372233e69146102af57806381ca29a1146102b757806391d14854146102ca5780639516a104146102dd578063a217fddf1461032757600080fd5b80633587647611610120578063358764761461022957806336568abe1461023c5780633de00c361461024f5780634bc2a657146102625780635c975abb146102755780635ebaf1db1461028957600080fd5b806301ffc9a7146101685780630c340a2414610190578063171060ec146101bb5780631bc10541146101d0578063248a9ca3146101f35780632f2ff15d14610216575b600080fd5b61017b610176366004610e62565b6103a9565b60405190151581526020015b60405180910390f35b6004546101a3906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b6101ce6101c9366004610d80565b6103e0565b005b6101e560008051602061100383398151915281565b604051908152602001610187565b6101e5610201366004610e1f565b60009081526020819052604090206001015490565b6101ce610224366004610e37565b610479565b6101ce610237366004610d9a565b6104a3565b6101ce61024a366004610e37565b610594565b6001546101a3906001600160a01b031681565b6101ce610270366004610d80565b610612565b60065461017b90600160a01b900460ff1681565b6005546101a3906001600160a01b031681565b6006546101a3906001600160a01b031681565b6101ce6106a2565b6003546101a3906001600160a01b031681565b61017b6102d8366004610e37565b610738565b600154600354600254600454600554604080516001600160a01b0396871681529486166020860152928516928401929092528316606083015291909116608082015260a001610187565b6101e5600081565b6101ce61033d366004610d80565b610761565b6101ce610350366004610d80565b6107f1565b6101ce610363366004610d80565b610881565b6101ce610376366004610d80565b610911565b6101ce610389366004610e37565b6109a1565b6002546101a3906001600160a01b031681565b6101ce6109c6565b60006001600160e01b03198216637965db0b60e01b14806103da57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6103eb600033610738565b6104105760405162461bcd60e51b815260040161040790610f46565b60405180910390fd5b60025460405133917f38ba5bee517df7d94bdc1c81ffad22fb4124b56002795c6c9c9689d092f22aff9161044f916001600160a01b0316908590610ef9565b60405180910390a2600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526020819052604090206001015461049481610a17565b61049e8383610a24565b505050565b600654600160a81b900460ff16156104f35760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610407565b600180546001600160a01b03199081166001600160a01b038a81169190911790925560038054821689841617905560028054821688841617905560048054821687841617905560058054821686841617905560068054909116918416919091179055610560600082610aa8565b61057860008051602061100383398151915282610aa8565b50506006805460ff60a81b1916600160a81b1790555050505050565b6001600160a01b03811633146106045760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b61060e8282610ab2565b5050565b61061d600033610738565b6106395760405162461bcd60e51b815260040161040790610f46565b60035460405133917f9268b9726f38824965649bfcf3b0d32ff50816216bf7cdbd57abc3cc8c5dab1291610678916001600160a01b0316908590610ef9565b60405180910390a2600380546001600160a01b0319166001600160a01b0392909216919091179055565b6106ba60008051602061100383398151915233610738565b806106cb57506106cb600033610738565b6107175760405162461bcd60e51b815260206004820152601b60248201527f6e6f7420676f7665726e616e6365206f7220656d657267656e637900000000006044820152606401610407565b6006805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61076c600033610738565b6107885760405162461bcd60e51b815260040161040790610f46565b60045460405133917f3f1ade8bca28c25684c7fa434465858b42fa8aaade31c7ad794683f8cb136838916107c7916001600160a01b0316908590610ef9565b60405180910390a2600580546001600160a01b0319166001600160a01b0392909216919091179055565b6107fc600033610738565b6108185760405162461bcd60e51b815260040161040790610f46565b60065460405133917f7ecd2f20be54e11699d4206d8493b655613619c8a602b1d28e399ba32a68f08d91610857916001600160a01b0316908590610ef9565b60405180910390a2600680546001600160a01b0319166001600160a01b0392909216919091179055565b61088c600033610738565b6108a85760405162461bcd60e51b815260040161040790610f46565b60015460405133917f2fcfd75e963279beb99392c5e58156adfe8455b1c38d14e8b39aab9952e1588e916108e7916001600160a01b0316908590610ef9565b60405180910390a2600180546001600160a01b0319166001600160a01b0392909216919091179055565b61091c600033610738565b6109385760405162461bcd60e51b815260040161040790610f46565b60045460405133917f3f1ade8bca28c25684c7fa434465858b42fa8aaade31c7ad794683f8cb13683891610977916001600160a01b0316908590610ef9565b60405180910390a2600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081905260409020600101546109bc81610a17565b61049e8383610ab2565b600654600160a01b900460ff1615610a155760405162461bcd60e51b81526020600482015260126024820152711c1c9bdd1bd8dbdb081a5cc81c185d5cd95960721b6044820152606401610407565b565b610a218133610b17565b50565b610a2e8282610738565b61060e576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610a643390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61060e8282610a24565b610abc8282610738565b1561060e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b610b218282610738565b61060e57610b39816001600160a01b03166014610b7b565b610b44836020610b7b565b604051602001610b55929190610e8a565b60408051601f198184030181529082905262461bcd60e51b825261040791600401610f13565b60606000610b8a836002610f86565b610b95906002610f6e565b67ffffffffffffffff811115610bbb57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be5576020820181803683370190505b509050600360fc1b81600081518110610c0e57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610c4b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000610c6f846002610f86565b610c7a906001610f6e565b90505b6001811115610d0e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610cbc57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110610ce057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93610d0781610fd5565b9050610c7d565b508315610d5d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b9392505050565b80356001600160a01b0381168114610d7b57600080fd5b919050565b600060208284031215610d91578081fd5b610d5d82610d64565b600080600080600080600060e0888a031215610db4578283fd5b610dbd88610d64565b9650610dcb60208901610d64565b9550610dd960408901610d64565b9450610de760608901610d64565b9350610df560808901610d64565b9250610e0360a08901610d64565b9150610e1160c08901610d64565b905092959891949750929550565b600060208284031215610e30578081fd5b5035919050565b60008060408385031215610e49578182fd5b82359150610e5960208401610d64565b90509250929050565b600060208284031215610e73578081fd5b81356001600160e01b031981168114610d5d578182fd5b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351610ebc816017850160208801610fa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610eed816028840160208801610fa5565b01602801949350505050565b6001600160a01b0392831681529116602082015260400190565b6020815260008251806020840152610f32816040850160208701610fa5565b601f01601f19169190910160400192915050565b6020808252600e908201526d6e6f7420676f7665726e616e636560901b604082015260600190565b60008219821115610f8157610f81610fec565b500190565b6000816000190483118215151615610fa057610fa0610fec565b500290565b60005b83811015610fc0578181015183820152602001610fa8565b83811115610fcf576000848401525b50505050565b600081610fe457610fe4610fec565b506000190190565b634e487b7160e01b600052601160045260246000fdfe06cefb154850384cb30eee1ae7140a3a258768948e755679865172f7ed51edfaa2646970667358221220897db087024e45bd4da507439e16954b35b16e67813ac3c8aa9962577911ad0964736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1058 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x163 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6DEE2012 GT PUSH2 0xCE JUMPI DUP1 PUSH4 0xA29A43BB GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xA29A43BB EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xB641522E EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xBE21C026 EQ PUSH2 0x355 JUMPI DUP1 PUSH4 0xC42CF535 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xD7B96D4E EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xF9FA2123 EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6DEE2012 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x72233E69 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x81CA29A1 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x9516A104 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35876476 GT PUSH2 0x120 JUMPI DUP1 PUSH4 0x35876476 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0x4BC2A657 EQ PUSH2 0x262 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x275 JUMPI DUP1 PUSH4 0x5EBAF1DB EQ PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0xC340A24 EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x171060EC EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x1BC10541 EQ PUSH2 0x1D0 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x216 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17B PUSH2 0x176 CALLDATASIZE PUSH1 0x4 PUSH2 0xE62 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x187 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x3E0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E5 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1003 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x187 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0xE1F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x479 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x237 CALLDATASIZE PUSH1 0x4 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x594 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x17B SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x6A2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x17B PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x738 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 DUP6 AND SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x187 JUMP JUMPDEST PUSH2 0x1E5 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x350 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x7F1 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x881 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3DA JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3EB PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x410 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x38BA5BEE517DF7D94BDC1C81FFAD22FB4124B56002795C6C9C9689D092F22AFF SWAP2 PUSH2 0x44F SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x494 DUP2 PUSH2 0xA17 JUMP JUMPDEST PUSH2 0x49E DUP4 DUP4 PUSH2 0xA24 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x185B1C9958591E481A5B9A5D1A585B1A5E9959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP1 SLOAD DUP3 AND DUP10 DUP5 AND OR SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP3 AND DUP9 DUP5 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP3 AND DUP8 DUP5 AND OR SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD DUP3 AND DUP7 DUP5 AND OR SWAP1 SSTORE PUSH1 0x6 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 DUP5 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x560 PUSH1 0x0 DUP3 PUSH2 0xAA8 JUMP JUMPDEST PUSH2 0x578 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1003 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 PUSH2 0xAA8 JUMP JUMPDEST POP POP PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA8 SHL NOT AND PUSH1 0x1 PUSH1 0xA8 SHL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x604 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x407 JUMP JUMPDEST PUSH2 0x60E DUP3 DUP3 PUSH2 0xAB2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x61D PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x9268B9726F38824965649BFCF3B0D32FF50816216BF7CDBD57ABC3CC8C5DAB12 SWAP2 PUSH2 0x678 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x3 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 PUSH2 0x6BA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1003 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER PUSH2 0x738 JUMP JUMPDEST DUP1 PUSH2 0x6CB JUMPI POP PUSH2 0x6CB PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x717 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7420676F7665726E616E6365206F7220656D657267656E63790000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT DUP2 AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 DUP3 SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 SWAP2 MUL OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x76C PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x788 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x3F1ADE8BCA28C25684C7FA434465858B42FA8AAADE31C7AD794683F8CB136838 SWAP2 PUSH2 0x7C7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x5 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 PUSH2 0x7FC PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x7ECD2F20BE54E11699D4206D8493B655613619C8A602B1D28E399BA32A68F08D SWAP2 PUSH2 0x857 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 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 PUSH2 0x88C PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x8A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x2FCFD75E963279BEB99392C5E58156ADFE8455B1C38D14E8B39AAB9952E1588E SWAP2 PUSH2 0x8E7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x91C PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x938 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x3F1ADE8BCA28C25684C7FA434465858B42FA8AAADE31C7AD794683F8CB136838 SWAP2 PUSH2 0x977 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x4 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 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x9BC DUP2 PUSH2 0xA17 JUMP JUMPDEST PUSH2 0x49E DUP4 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xA15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C1C9BDD1BD8DBDB081A5CC81C185D5CD959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA21 DUP2 CALLER PUSH2 0xB17 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA2E DUP3 DUP3 PUSH2 0x738 JUMP JUMPDEST PUSH2 0x60E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xA64 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x60E DUP3 DUP3 PUSH2 0xA24 JUMP JUMPDEST PUSH2 0xABC DUP3 DUP3 PUSH2 0x738 JUMP JUMPDEST ISZERO PUSH2 0x60E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0xB21 DUP3 DUP3 PUSH2 0x738 JUMP JUMPDEST PUSH2 0x60E JUMPI PUSH2 0xB39 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0xB44 DUP4 PUSH1 0x20 PUSH2 0xB7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB55 SWAP3 SWAP2 SWAP1 PUSH2 0xE8A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x407 SWAP2 PUSH1 0x4 ADD PUSH2 0xF13 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB8A DUP4 PUSH1 0x2 PUSH2 0xF86 JUMP JUMPDEST PUSH2 0xB95 SWAP1 PUSH1 0x2 PUSH2 0xF6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBBB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBE5 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xC0E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xC4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0xC6F DUP5 PUSH1 0x2 PUSH2 0xF86 JUMP JUMPDEST PUSH2 0xC7A SWAP1 PUSH1 0x1 PUSH2 0xF6E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xD0E JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0xCBC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCE0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0xD07 DUP2 PUSH2 0xFD5 JUMP JUMPDEST SWAP1 POP PUSH2 0xC7D JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xD5D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD91 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD5D DUP3 PUSH2 0xD64 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xDB4 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xDBD DUP9 PUSH2 0xD64 JUMP JUMPDEST SWAP7 POP PUSH2 0xDCB PUSH1 0x20 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP6 POP PUSH2 0xDD9 PUSH1 0x40 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP5 POP PUSH2 0xDE7 PUSH1 0x60 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP4 POP PUSH2 0xDF5 PUSH1 0x80 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP3 POP PUSH2 0xE03 PUSH1 0xA0 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP2 POP PUSH2 0xE11 PUSH1 0xC0 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE30 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE49 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xE59 PUSH1 0x20 DUP5 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE73 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xD5D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xEBC DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xEED DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xFA5 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF32 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xE SWAP1 DUP3 ADD MSTORE PUSH14 0x6E6F7420676F7665726E616E6365 PUSH1 0x90 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF81 JUMPI PUSH2 0xF81 PUSH2 0xFEC JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xFA0 JUMPI PUSH2 0xFA0 PUSH2 0xFEC JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xFC0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFA8 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xFCF JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xFE4 JUMPI PUSH2 0xFE4 PUSH2 0xFEC JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID MOD 0xCE 0xFB ISZERO 0x48 POP CODESIZE 0x4C 0xB3 0xE 0xEE BYTE 0xE7 EQ EXP GASPRICE 0x25 DUP8 PUSH9 0x948E755679865172F7 0xED MLOAD 0xED STATICCALL LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 PUSH30 0xB087024E45BD4DA507439E16954B35B16E67813AC3C8AA9962577911AD09 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"193:2853:72:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7448:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"262:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:139"},"nodeType":"YulFunctionCall","src":"310:22:139"},"nodeType":"YulExpressionStatement","src":"310:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:139"},"nodeType":"YulFunctionCall","src":"279:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:139"},"nodeType":"YulFunctionCall","src":"275:32:139"},"nodeType":"YulIf","src":"272:2:139"},{"nodeType":"YulAssignment","src":"343:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:139"},"nodeType":"YulFunctionCall","src":"353:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:139","type":""}],"src":"192:196:139"},{"body":{"nodeType":"YulBlock","src":"565:472:139","statements":[{"body":{"nodeType":"YulBlock","src":"612:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"621:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"629:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"614:6:139"},"nodeType":"YulFunctionCall","src":"614:22:139"},"nodeType":"YulExpressionStatement","src":"614:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"586:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"595:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"582:3:139"},"nodeType":"YulFunctionCall","src":"582:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"607:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"578:3:139"},"nodeType":"YulFunctionCall","src":"578:33:139"},"nodeType":"YulIf","src":"575:2:139"},{"nodeType":"YulAssignment","src":"647:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"676:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"657:18:139"},"nodeType":"YulFunctionCall","src":"657:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"647:6:139"}]},{"nodeType":"YulAssignment","src":"695:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"728:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"739:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"724:3:139"},"nodeType":"YulFunctionCall","src":"724:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"705:18:139"},"nodeType":"YulFunctionCall","src":"705:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"695:6:139"}]},{"nodeType":"YulAssignment","src":"752:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"785:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"796:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"781:3:139"},"nodeType":"YulFunctionCall","src":"781:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"762:18:139"},"nodeType":"YulFunctionCall","src":"762:38:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"752:6:139"}]},{"nodeType":"YulAssignment","src":"809:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"842:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"853:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"838:3:139"},"nodeType":"YulFunctionCall","src":"838:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"819:18:139"},"nodeType":"YulFunctionCall","src":"819:38:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"809:6:139"}]},{"nodeType":"YulAssignment","src":"866:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"899:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"910:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"895:3:139"},"nodeType":"YulFunctionCall","src":"895:19:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"876:18:139"},"nodeType":"YulFunctionCall","src":"876:39:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"866:6:139"}]},{"nodeType":"YulAssignment","src":"924:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"957:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"968:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"953:3:139"},"nodeType":"YulFunctionCall","src":"953:19:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"934:18:139"},"nodeType":"YulFunctionCall","src":"934:39:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"924:6:139"}]},{"nodeType":"YulAssignment","src":"982:49:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1015:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1026:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1011:3:139"},"nodeType":"YulFunctionCall","src":"1011:19:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"992:18:139"},"nodeType":"YulFunctionCall","src":"992:39:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"982:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_addresst_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"483:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"494:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"506:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"514:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"522:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"530:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"538:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"546:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"554:6:139","type":""}],"src":"393:644:139"},{"body":{"nodeType":"YulBlock","src":"1112:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"1158:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1167:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1175:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1160:6:139"},"nodeType":"YulFunctionCall","src":"1160:22:139"},"nodeType":"YulExpressionStatement","src":"1160:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1133:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1142:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1129:3:139"},"nodeType":"YulFunctionCall","src":"1129:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1154:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1125:3:139"},"nodeType":"YulFunctionCall","src":"1125:32:139"},"nodeType":"YulIf","src":"1122:2:139"},{"nodeType":"YulAssignment","src":"1193:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1216:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1203:12:139"},"nodeType":"YulFunctionCall","src":"1203:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1193:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1078:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1089:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1101:6:139","type":""}],"src":"1042:190:139"},{"body":{"nodeType":"YulBlock","src":"1324:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"1370:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1379:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1387:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1372:6:139"},"nodeType":"YulFunctionCall","src":"1372:22:139"},"nodeType":"YulExpressionStatement","src":"1372:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1345:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1354:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1341:3:139"},"nodeType":"YulFunctionCall","src":"1341:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1366:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1337:3:139"},"nodeType":"YulFunctionCall","src":"1337:32:139"},"nodeType":"YulIf","src":"1334:2:139"},{"nodeType":"YulAssignment","src":"1405:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1428:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1415:12:139"},"nodeType":"YulFunctionCall","src":"1415:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1405:6:139"}]},{"nodeType":"YulAssignment","src":"1447:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1480:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1491:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1476:3:139"},"nodeType":"YulFunctionCall","src":"1476:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1457:18:139"},"nodeType":"YulFunctionCall","src":"1457:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1447:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1282:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1293:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1305:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1313:6:139","type":""}],"src":"1237:264:139"},{"body":{"nodeType":"YulBlock","src":"1575:237:139","statements":[{"body":{"nodeType":"YulBlock","src":"1621:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1630:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1638:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1623:6:139"},"nodeType":"YulFunctionCall","src":"1623:22:139"},"nodeType":"YulExpressionStatement","src":"1623:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1596:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1605:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1592:3:139"},"nodeType":"YulFunctionCall","src":"1592:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1617:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1588:3:139"},"nodeType":"YulFunctionCall","src":"1588:32:139"},"nodeType":"YulIf","src":"1585:2:139"},{"nodeType":"YulVariableDeclaration","src":"1656:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1682:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1669:12:139"},"nodeType":"YulFunctionCall","src":"1669:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1660:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1756:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1765:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1773:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1758:6:139"},"nodeType":"YulFunctionCall","src":"1758:22:139"},"nodeType":"YulExpressionStatement","src":"1758:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1714:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1725:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1736:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1741:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1732:3:139"},"nodeType":"YulFunctionCall","src":"1732:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1721:3:139"},"nodeType":"YulFunctionCall","src":"1721:32:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1711:2:139"},"nodeType":"YulFunctionCall","src":"1711:43:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1704:6:139"},"nodeType":"YulFunctionCall","src":"1704:51:139"},"nodeType":"YulIf","src":"1701:2:139"},{"nodeType":"YulAssignment","src":"1791:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1801:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1791:6:139"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1541:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1552:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1564:6:139","type":""}],"src":"1506:306:139"},{"body":{"nodeType":"YulBlock","src":"2206:397:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2223:3:139"},{"kind":"string","nodeType":"YulLiteral","src":"2228:25:139","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2216:6:139"},"nodeType":"YulFunctionCall","src":"2216:38:139"},"nodeType":"YulExpressionStatement","src":"2216:38:139"},{"nodeType":"YulVariableDeclaration","src":"2263:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2283:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2277:5:139"},"nodeType":"YulFunctionCall","src":"2277:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2267:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2325:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2333:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2321:3:139"},"nodeType":"YulFunctionCall","src":"2321:17:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2344:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"2349:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:139"},"nodeType":"YulFunctionCall","src":"2340:12:139"},{"name":"length","nodeType":"YulIdentifier","src":"2354:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2299:21:139"},"nodeType":"YulFunctionCall","src":"2299:62:139"},"nodeType":"YulExpressionStatement","src":"2299:62:139"},{"nodeType":"YulVariableDeclaration","src":"2370:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2384:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"2389:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2380:3:139"},"nodeType":"YulFunctionCall","src":"2380:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2374:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2416:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2420:2:139","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2412:3:139"},"nodeType":"YulFunctionCall","src":"2412:11:139"},{"kind":"string","nodeType":"YulLiteral","src":"2425:19:139","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2405:6:139"},"nodeType":"YulFunctionCall","src":"2405:40:139"},"nodeType":"YulExpressionStatement","src":"2405:40:139"},{"nodeType":"YulVariableDeclaration","src":"2454:29:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2476:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2470:5:139"},"nodeType":"YulFunctionCall","src":"2470:13:139"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"2458:8:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2518:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2526:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2514:3:139"},"nodeType":"YulFunctionCall","src":"2514:17:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2537:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2541:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2533:3:139"},"nodeType":"YulFunctionCall","src":"2533:11:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"2546:8:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2492:21:139"},"nodeType":"YulFunctionCall","src":"2492:63:139"},"nodeType":"YulExpressionStatement","src":"2492:63:139"},{"nodeType":"YulAssignment","src":"2564:33:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2579:2:139"},{"name":"length_1","nodeType":"YulIdentifier","src":"2583:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2575:3:139"},"nodeType":"YulFunctionCall","src":"2575:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"2594:2:139","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2571:3:139"},"nodeType":"YulFunctionCall","src":"2571:26:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2564:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2174:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2179:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2187:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2198:3:139","type":""}],"src":"1817:786:139"},{"body":{"nodeType":"YulBlock","src":"2709:102:139","statements":[{"nodeType":"YulAssignment","src":"2719:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2731:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2742:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2727:3:139"},"nodeType":"YulFunctionCall","src":"2727:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2719:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2761:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2776:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2792:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2797:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2788:3:139"},"nodeType":"YulFunctionCall","src":"2788:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2801:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2784:3:139"},"nodeType":"YulFunctionCall","src":"2784:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2772:3:139"},"nodeType":"YulFunctionCall","src":"2772:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2754:6:139"},"nodeType":"YulFunctionCall","src":"2754:51:139"},"nodeType":"YulExpressionStatement","src":"2754:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2678:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2689:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2700:4:139","type":""}],"src":"2608:203:139"},{"body":{"nodeType":"YulBlock","src":"2945:175:139","statements":[{"nodeType":"YulAssignment","src":"2955:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2967:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2978:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2963:3:139"},"nodeType":"YulFunctionCall","src":"2963:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2955:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"2990:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3008:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3013:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3004:3:139"},"nodeType":"YulFunctionCall","src":"3004:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3017:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3000:3:139"},"nodeType":"YulFunctionCall","src":"3000:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2994:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3035:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3050:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3058:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3046:3:139"},"nodeType":"YulFunctionCall","src":"3046:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3028:6:139"},"nodeType":"YulFunctionCall","src":"3028:34:139"},"nodeType":"YulExpressionStatement","src":"3028:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3093:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3078:3:139"},"nodeType":"YulFunctionCall","src":"3078:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3102:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3110:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3098:3:139"},"nodeType":"YulFunctionCall","src":"3098:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:139"},"nodeType":"YulFunctionCall","src":"3071:43:139"},"nodeType":"YulExpressionStatement","src":"3071:43:139"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2906:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2917:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2925:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2936:4:139","type":""}],"src":"2816:304:139"},{"body":{"nodeType":"YulBlock","src":"3338:333:139","statements":[{"nodeType":"YulAssignment","src":"3348:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3360:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3371:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3356:3:139"},"nodeType":"YulFunctionCall","src":"3356:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3348:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"3384:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3402:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3407:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3398:3:139"},"nodeType":"YulFunctionCall","src":"3398:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3411:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3394:3:139"},"nodeType":"YulFunctionCall","src":"3394:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3388:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3429:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3444:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3452:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3440:3:139"},"nodeType":"YulFunctionCall","src":"3440:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3422:6:139"},"nodeType":"YulFunctionCall","src":"3422:34:139"},"nodeType":"YulExpressionStatement","src":"3422:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3476:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3487:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3472:3:139"},"nodeType":"YulFunctionCall","src":"3472:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3496:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3504:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3492:3:139"},"nodeType":"YulFunctionCall","src":"3492:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3465:6:139"},"nodeType":"YulFunctionCall","src":"3465:43:139"},"nodeType":"YulExpressionStatement","src":"3465:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3528:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3539:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3524:3:139"},"nodeType":"YulFunctionCall","src":"3524:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3548:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3556:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3544:3:139"},"nodeType":"YulFunctionCall","src":"3544:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3517:6:139"},"nodeType":"YulFunctionCall","src":"3517:43:139"},"nodeType":"YulExpressionStatement","src":"3517:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:139"},"nodeType":"YulFunctionCall","src":"3576:18:139"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3600:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3608:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3596:3:139"},"nodeType":"YulFunctionCall","src":"3596:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:139"},"nodeType":"YulFunctionCall","src":"3569:43:139"},"nodeType":"YulExpressionStatement","src":"3569:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3632:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3643:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3628:3:139"},"nodeType":"YulFunctionCall","src":"3628:19:139"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3653:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3661:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3649:3:139"},"nodeType":"YulFunctionCall","src":"3649:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3621:6:139"},"nodeType":"YulFunctionCall","src":"3621:44:139"},"nodeType":"YulExpressionStatement","src":"3621:44:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3275:9:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3286:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3294:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3302:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3310:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3318:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3329:4:139","type":""}],"src":"3125:546:139"},{"body":{"nodeType":"YulBlock","src":"3771:92:139","statements":[{"nodeType":"YulAssignment","src":"3781:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3793:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3804:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3789:3:139"},"nodeType":"YulFunctionCall","src":"3789:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3781:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3823:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3848:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3841:6:139"},"nodeType":"YulFunctionCall","src":"3841:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3834:6:139"},"nodeType":"YulFunctionCall","src":"3834:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3816:6:139"},"nodeType":"YulFunctionCall","src":"3816:41:139"},"nodeType":"YulExpressionStatement","src":"3816:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3740:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3751:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3762:4:139","type":""}],"src":"3676:187:139"},{"body":{"nodeType":"YulBlock","src":"3969:76:139","statements":[{"nodeType":"YulAssignment","src":"3979:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3991:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4002:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3987:3:139"},"nodeType":"YulFunctionCall","src":"3987:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3979:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4021:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4032:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4014:6:139"},"nodeType":"YulFunctionCall","src":"4014:25:139"},"nodeType":"YulExpressionStatement","src":"4014:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3938:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3949:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3960:4:139","type":""}],"src":"3868:177:139"},{"body":{"nodeType":"YulBlock","src":"4171:262:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4188:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4199:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4181:6:139"},"nodeType":"YulFunctionCall","src":"4181:21:139"},"nodeType":"YulExpressionStatement","src":"4181:21:139"},{"nodeType":"YulVariableDeclaration","src":"4211:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4231:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4225:5:139"},"nodeType":"YulFunctionCall","src":"4225:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4215:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4258:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4269:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4254:3:139"},"nodeType":"YulFunctionCall","src":"4254:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"4274:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4247:6:139"},"nodeType":"YulFunctionCall","src":"4247:34:139"},"nodeType":"YulExpressionStatement","src":"4247:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4316:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4324:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4312:3:139"},"nodeType":"YulFunctionCall","src":"4312:15:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4333:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4344:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4329:3:139"},"nodeType":"YulFunctionCall","src":"4329:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"4349:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4290:21:139"},"nodeType":"YulFunctionCall","src":"4290:66:139"},"nodeType":"YulExpressionStatement","src":"4290:66:139"},{"nodeType":"YulAssignment","src":"4365:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4381:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4400:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4408:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4396:3:139"},"nodeType":"YulFunctionCall","src":"4396:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4417:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4413:3:139"},"nodeType":"YulFunctionCall","src":"4413:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4392:3:139"},"nodeType":"YulFunctionCall","src":"4392:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4377:3:139"},"nodeType":"YulFunctionCall","src":"4377:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"4424:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4373:3:139"},"nodeType":"YulFunctionCall","src":"4373:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4365:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4140:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4151:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4162:4:139","type":""}],"src":"4050:383:139"},{"body":{"nodeType":"YulBlock","src":"4612:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4629:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4640:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4622:6:139"},"nodeType":"YulFunctionCall","src":"4622:21:139"},"nodeType":"YulExpressionStatement","src":"4622:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4663:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4674:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4659:3:139"},"nodeType":"YulFunctionCall","src":"4659:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4679:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4652:6:139"},"nodeType":"YulFunctionCall","src":"4652:30:139"},"nodeType":"YulExpressionStatement","src":"4652:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4702:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4713:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4698:3:139"},"nodeType":"YulFunctionCall","src":"4698:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4718:34:139","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4691:6:139"},"nodeType":"YulFunctionCall","src":"4691:62:139"},"nodeType":"YulExpressionStatement","src":"4691:62:139"},{"nodeType":"YulAssignment","src":"4762:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4774:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4785:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4770:3:139"},"nodeType":"YulFunctionCall","src":"4770:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4762:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4589:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4603:4:139","type":""}],"src":"4438:356:139"},{"body":{"nodeType":"YulBlock","src":"4973:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4990:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5001:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4983:6:139"},"nodeType":"YulFunctionCall","src":"4983:21:139"},"nodeType":"YulExpressionStatement","src":"4983:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5024:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5035:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5020:3:139"},"nodeType":"YulFunctionCall","src":"5020:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5040:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5013:6:139"},"nodeType":"YulFunctionCall","src":"5013:30:139"},"nodeType":"YulExpressionStatement","src":"5013:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5063:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5074:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5059:3:139"},"nodeType":"YulFunctionCall","src":"5059:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5079:20:139","type":"","value":"protocol is paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5052:6:139"},"nodeType":"YulFunctionCall","src":"5052:48:139"},"nodeType":"YulExpressionStatement","src":"5052:48:139"},{"nodeType":"YulAssignment","src":"5109:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5121:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5132:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5117:3:139"},"nodeType":"YulFunctionCall","src":"5117:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5109:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_2cfcb6b9da730cc246682aafeddd8cdd8d228e8c8ae891bb53dc77280239b687__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4950:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4964:4:139","type":""}],"src":"4799:342:139"},{"body":{"nodeType":"YulBlock","src":"5320:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5337:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5348:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5330:6:139"},"nodeType":"YulFunctionCall","src":"5330:21:139"},"nodeType":"YulExpressionStatement","src":"5330:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5371:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5382:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5367:3:139"},"nodeType":"YulFunctionCall","src":"5367:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5387:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5360:6:139"},"nodeType":"YulFunctionCall","src":"5360:30:139"},"nodeType":"YulExpressionStatement","src":"5360:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5410:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5421:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5406:3:139"},"nodeType":"YulFunctionCall","src":"5406:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5426:21:139","type":"","value":"already initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5399:6:139"},"nodeType":"YulFunctionCall","src":"5399:49:139"},"nodeType":"YulExpressionStatement","src":"5399:49:139"},{"nodeType":"YulAssignment","src":"5457:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5469:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5480:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5465:3:139"},"nodeType":"YulFunctionCall","src":"5465:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5457:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5297:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5311:4:139","type":""}],"src":"5146:343:139"},{"body":{"nodeType":"YulBlock","src":"5668:177:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5685:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5696:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5678:6:139"},"nodeType":"YulFunctionCall","src":"5678:21:139"},"nodeType":"YulExpressionStatement","src":"5678:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5719:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5730:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5715:3:139"},"nodeType":"YulFunctionCall","src":"5715:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5735:2:139","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5708:6:139"},"nodeType":"YulFunctionCall","src":"5708:30:139"},"nodeType":"YulExpressionStatement","src":"5708:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5758:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5769:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5754:3:139"},"nodeType":"YulFunctionCall","src":"5754:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5774:29:139","type":"","value":"not governance or emergency"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5747:6:139"},"nodeType":"YulFunctionCall","src":"5747:57:139"},"nodeType":"YulExpressionStatement","src":"5747:57:139"},{"nodeType":"YulAssignment","src":"5813:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5825:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5836:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5821:3:139"},"nodeType":"YulFunctionCall","src":"5821:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5813:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_db2d489ced6ed56a09a369d9bcb101d8a1db6cd5a54e6be59f06f473c55ed904__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5645:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5659:4:139","type":""}],"src":"5494:351:139"},{"body":{"nodeType":"YulBlock","src":"6024:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6041:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6052:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6034:6:139"},"nodeType":"YulFunctionCall","src":"6034:21:139"},"nodeType":"YulExpressionStatement","src":"6034:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6075:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6086:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:139"},"nodeType":"YulFunctionCall","src":"6071:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6091:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6064:6:139"},"nodeType":"YulFunctionCall","src":"6064:30:139"},"nodeType":"YulExpressionStatement","src":"6064:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6114:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6125:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6110:3:139"},"nodeType":"YulFunctionCall","src":"6110:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6130:16:139","type":"","value":"not governance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6103:6:139"},"nodeType":"YulFunctionCall","src":"6103:44:139"},"nodeType":"YulExpressionStatement","src":"6103:44:139"},{"nodeType":"YulAssignment","src":"6156:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6168:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6179:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6164:3:139"},"nodeType":"YulFunctionCall","src":"6164:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6156:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6001:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6015:4:139","type":""}],"src":"5850:338:139"},{"body":{"nodeType":"YulBlock","src":"6367:237:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6384:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6395:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6377:6:139"},"nodeType":"YulFunctionCall","src":"6377:21:139"},"nodeType":"YulExpressionStatement","src":"6377:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6418:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6429:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6414:3:139"},"nodeType":"YulFunctionCall","src":"6414:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6434:2:139","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6407:6:139"},"nodeType":"YulFunctionCall","src":"6407:30:139"},"nodeType":"YulExpressionStatement","src":"6407:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6457:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6468:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6453:3:139"},"nodeType":"YulFunctionCall","src":"6453:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6473:34:139","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6446:6:139"},"nodeType":"YulFunctionCall","src":"6446:62:139"},"nodeType":"YulExpressionStatement","src":"6446:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6528:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6539:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6524:3:139"},"nodeType":"YulFunctionCall","src":"6524:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6544:17:139","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6517:6:139"},"nodeType":"YulFunctionCall","src":"6517:45:139"},"nodeType":"YulExpressionStatement","src":"6517:45:139"},{"nodeType":"YulAssignment","src":"6571:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6583:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6594:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6579:3:139"},"nodeType":"YulFunctionCall","src":"6579:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6571:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6344:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6358:4:139","type":""}],"src":"6193:411:139"},{"body":{"nodeType":"YulBlock","src":"6657:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"6684:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6686:16:139"},"nodeType":"YulFunctionCall","src":"6686:18:139"},"nodeType":"YulExpressionStatement","src":"6686:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6673:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6680:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6676:3:139"},"nodeType":"YulFunctionCall","src":"6676:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6670:2:139"},"nodeType":"YulFunctionCall","src":"6670:13:139"},"nodeType":"YulIf","src":"6667:2:139"},{"nodeType":"YulAssignment","src":"6715:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6726:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"6729:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6722:3:139"},"nodeType":"YulFunctionCall","src":"6722:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6715:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6640:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"6643:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6649:3:139","type":""}],"src":"6609:128:139"},{"body":{"nodeType":"YulBlock","src":"6794:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"6853:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6855:16:139"},"nodeType":"YulFunctionCall","src":"6855:18:139"},"nodeType":"YulExpressionStatement","src":"6855:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6825:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6818:6:139"},"nodeType":"YulFunctionCall","src":"6818:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6811:6:139"},"nodeType":"YulFunctionCall","src":"6811:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6833:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6844:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6840:3:139"},"nodeType":"YulFunctionCall","src":"6840:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"6848:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6836:3:139"},"nodeType":"YulFunctionCall","src":"6836:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6830:2:139"},"nodeType":"YulFunctionCall","src":"6830:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6807:3:139"},"nodeType":"YulFunctionCall","src":"6807:45:139"},"nodeType":"YulIf","src":"6804:2:139"},{"nodeType":"YulAssignment","src":"6884:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6899:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"6902:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6895:3:139"},"nodeType":"YulFunctionCall","src":"6895:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"6884:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6773:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"6776:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"6782:7:139","type":""}],"src":"6742:168:139"},{"body":{"nodeType":"YulBlock","src":"6968:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"6978:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"6987:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6982:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7047:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7072:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"7077:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7068:3:139"},"nodeType":"YulFunctionCall","src":"7068:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7091:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"7096:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7087:3:139"},"nodeType":"YulFunctionCall","src":"7087:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7081:5:139"},"nodeType":"YulFunctionCall","src":"7081:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7061:6:139"},"nodeType":"YulFunctionCall","src":"7061:39:139"},"nodeType":"YulExpressionStatement","src":"7061:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7008:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"7011:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7005:2:139"},"nodeType":"YulFunctionCall","src":"7005:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7019:19:139","statements":[{"nodeType":"YulAssignment","src":"7021:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7030:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"7033:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7026:3:139"},"nodeType":"YulFunctionCall","src":"7026:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7021:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"7001:3:139","statements":[]},"src":"6997:113:139"},{"body":{"nodeType":"YulBlock","src":"7136:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7149:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"7154:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7145:3:139"},"nodeType":"YulFunctionCall","src":"7145:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"7163:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7138:6:139"},"nodeType":"YulFunctionCall","src":"7138:27:139"},"nodeType":"YulExpressionStatement","src":"7138:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7125:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"7128:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7122:2:139"},"nodeType":"YulFunctionCall","src":"7122:13:139"},"nodeType":"YulIf","src":"7119:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"6946:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"6951:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"6956:6:139","type":""}],"src":"6915:258:139"},{"body":{"nodeType":"YulBlock","src":"7225:89:139","statements":[{"body":{"nodeType":"YulBlock","src":"7252:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7254:16:139"},"nodeType":"YulFunctionCall","src":"7254:18:139"},"nodeType":"YulExpressionStatement","src":"7254:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7245:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7238:6:139"},"nodeType":"YulFunctionCall","src":"7238:13:139"},"nodeType":"YulIf","src":"7235:2:139"},{"nodeType":"YulAssignment","src":"7283:25:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7294:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7305:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7301:3:139"},"nodeType":"YulFunctionCall","src":"7301:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7290:3:139"},"nodeType":"YulFunctionCall","src":"7290:18:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"7283:3:139"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7207:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"7217:3:139","type":""}],"src":"7178:136:139"},{"body":{"nodeType":"YulBlock","src":"7351:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7368:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7375:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7380:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7371:3:139"},"nodeType":"YulFunctionCall","src":"7371:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7361:6:139"},"nodeType":"YulFunctionCall","src":"7361:31:139"},"nodeType":"YulExpressionStatement","src":"7361:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7408:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7411:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7401:6:139"},"nodeType":"YulFunctionCall","src":"7401:15:139"},"nodeType":"YulExpressionStatement","src":"7401:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7432:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7435:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7425:6:139"},"nodeType":"YulFunctionCall","src":"7425:15:139"},"nodeType":"YulExpressionStatement","src":"7425:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"7319:127:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_addresst_addresst_addresst_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value4, value4) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := abi_decode_address(add(headStart, 64))\n        value3 := abi_decode_address(add(headStart, 96))\n        value4 := abi_decode_address(add(headStart, 128))\n        value5 := abi_decode_address(add(headStart, 160))\n        value6 := abi_decode_address(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), and(value3, _1))\n        mstore(add(headStart, 128), and(value4, _1))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2cfcb6b9da730cc246682aafeddd8cdd8d228e8c8ae891bb53dc77280239b687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"protocol is paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"already initialized\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_db2d489ced6ed56a09a369d9bcb101d8a1db6cd5a54e6be59f06f473c55ed904__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"not governance or emergency\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f5a9a5bb42895767239b3ccc7622db4be979400d19fb10bbf8003179a901d180__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"not governance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101635760003560e01c80636dee2012116100ce578063a29a43bb11610087578063a29a43bb1461032f578063b641522e14610342578063be21c02614610355578063c42cf53514610368578063d547741f1461037b578063d7b96d4e1461038e578063f9fa2123146103a157600080fd5b80636dee20121461029c57806372233e69146102af57806381ca29a1146102b757806391d14854146102ca5780639516a104146102dd578063a217fddf1461032757600080fd5b80633587647611610120578063358764761461022957806336568abe1461023c5780633de00c361461024f5780634bc2a657146102625780635c975abb146102755780635ebaf1db1461028957600080fd5b806301ffc9a7146101685780630c340a2414610190578063171060ec146101bb5780631bc10541146101d0578063248a9ca3146101f35780632f2ff15d14610216575b600080fd5b61017b610176366004610e62565b6103a9565b60405190151581526020015b60405180910390f35b6004546101a3906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b6101ce6101c9366004610d80565b6103e0565b005b6101e560008051602061100383398151915281565b604051908152602001610187565b6101e5610201366004610e1f565b60009081526020819052604090206001015490565b6101ce610224366004610e37565b610479565b6101ce610237366004610d9a565b6104a3565b6101ce61024a366004610e37565b610594565b6001546101a3906001600160a01b031681565b6101ce610270366004610d80565b610612565b60065461017b90600160a01b900460ff1681565b6005546101a3906001600160a01b031681565b6006546101a3906001600160a01b031681565b6101ce6106a2565b6003546101a3906001600160a01b031681565b61017b6102d8366004610e37565b610738565b600154600354600254600454600554604080516001600160a01b0396871681529486166020860152928516928401929092528316606083015291909116608082015260a001610187565b6101e5600081565b6101ce61033d366004610d80565b610761565b6101ce610350366004610d80565b6107f1565b6101ce610363366004610d80565b610881565b6101ce610376366004610d80565b610911565b6101ce610389366004610e37565b6109a1565b6002546101a3906001600160a01b031681565b6101ce6109c6565b60006001600160e01b03198216637965db0b60e01b14806103da57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6103eb600033610738565b6104105760405162461bcd60e51b815260040161040790610f46565b60405180910390fd5b60025460405133917f38ba5bee517df7d94bdc1c81ffad22fb4124b56002795c6c9c9689d092f22aff9161044f916001600160a01b0316908590610ef9565b60405180910390a2600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526020819052604090206001015461049481610a17565b61049e8383610a24565b505050565b600654600160a81b900460ff16156104f35760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610407565b600180546001600160a01b03199081166001600160a01b038a81169190911790925560038054821689841617905560028054821688841617905560048054821687841617905560058054821686841617905560068054909116918416919091179055610560600082610aa8565b61057860008051602061100383398151915282610aa8565b50506006805460ff60a81b1916600160a81b1790555050505050565b6001600160a01b03811633146106045760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b61060e8282610ab2565b5050565b61061d600033610738565b6106395760405162461bcd60e51b815260040161040790610f46565b60035460405133917f9268b9726f38824965649bfcf3b0d32ff50816216bf7cdbd57abc3cc8c5dab1291610678916001600160a01b0316908590610ef9565b60405180910390a2600380546001600160a01b0319166001600160a01b0392909216919091179055565b6106ba60008051602061100383398151915233610738565b806106cb57506106cb600033610738565b6107175760405162461bcd60e51b815260206004820152601b60248201527f6e6f7420676f7665726e616e6365206f7220656d657267656e637900000000006044820152606401610407565b6006805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61076c600033610738565b6107885760405162461bcd60e51b815260040161040790610f46565b60045460405133917f3f1ade8bca28c25684c7fa434465858b42fa8aaade31c7ad794683f8cb136838916107c7916001600160a01b0316908590610ef9565b60405180910390a2600580546001600160a01b0319166001600160a01b0392909216919091179055565b6107fc600033610738565b6108185760405162461bcd60e51b815260040161040790610f46565b60065460405133917f7ecd2f20be54e11699d4206d8493b655613619c8a602b1d28e399ba32a68f08d91610857916001600160a01b0316908590610ef9565b60405180910390a2600680546001600160a01b0319166001600160a01b0392909216919091179055565b61088c600033610738565b6108a85760405162461bcd60e51b815260040161040790610f46565b60015460405133917f2fcfd75e963279beb99392c5e58156adfe8455b1c38d14e8b39aab9952e1588e916108e7916001600160a01b0316908590610ef9565b60405180910390a2600180546001600160a01b0319166001600160a01b0392909216919091179055565b61091c600033610738565b6109385760405162461bcd60e51b815260040161040790610f46565b60045460405133917f3f1ade8bca28c25684c7fa434465858b42fa8aaade31c7ad794683f8cb13683891610977916001600160a01b0316908590610ef9565b60405180910390a2600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081905260409020600101546109bc81610a17565b61049e8383610ab2565b600654600160a01b900460ff1615610a155760405162461bcd60e51b81526020600482015260126024820152711c1c9bdd1bd8dbdb081a5cc81c185d5cd95960721b6044820152606401610407565b565b610a218133610b17565b50565b610a2e8282610738565b61060e576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610a643390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61060e8282610a24565b610abc8282610738565b1561060e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b610b218282610738565b61060e57610b39816001600160a01b03166014610b7b565b610b44836020610b7b565b604051602001610b55929190610e8a565b60408051601f198184030181529082905262461bcd60e51b825261040791600401610f13565b60606000610b8a836002610f86565b610b95906002610f6e565b67ffffffffffffffff811115610bbb57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be5576020820181803683370190505b509050600360fc1b81600081518110610c0e57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610c4b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000610c6f846002610f86565b610c7a906001610f6e565b90505b6001811115610d0e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610cbc57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110610ce057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93610d0781610fd5565b9050610c7d565b508315610d5d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b9392505050565b80356001600160a01b0381168114610d7b57600080fd5b919050565b600060208284031215610d91578081fd5b610d5d82610d64565b600080600080600080600060e0888a031215610db4578283fd5b610dbd88610d64565b9650610dcb60208901610d64565b9550610dd960408901610d64565b9450610de760608901610d64565b9350610df560808901610d64565b9250610e0360a08901610d64565b9150610e1160c08901610d64565b905092959891949750929550565b600060208284031215610e30578081fd5b5035919050565b60008060408385031215610e49578182fd5b82359150610e5960208401610d64565b90509250929050565b600060208284031215610e73578081fd5b81356001600160e01b031981168114610d5d578182fd5b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351610ebc816017850160208801610fa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610eed816028840160208801610fa5565b01602801949350505050565b6001600160a01b0392831681529116602082015260400190565b6020815260008251806020840152610f32816040850160208701610fa5565b601f01601f19169190910160400192915050565b6020808252600e908201526d6e6f7420676f7665726e616e636560901b604082015260600190565b60008219821115610f8157610f81610fec565b500190565b6000816000190483118215151615610fa057610fa0610fec565b500290565b60005b83811015610fc0578181015183820152602001610fa8565b83811115610fcf576000848401525b50505050565b600081610fe457610fe4610fec565b506000190190565b634e487b7160e01b600052601160045260246000fdfe06cefb154850384cb30eee1ae7140a3a258768948e755679865172f7ed51edfaa2646970667358221220897db087024e45bd4da507439e16954b35b16e67813ac3c8aa9962577911ad0964736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x163 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6DEE2012 GT PUSH2 0xCE JUMPI DUP1 PUSH4 0xA29A43BB GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xA29A43BB EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xB641522E EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xBE21C026 EQ PUSH2 0x355 JUMPI DUP1 PUSH4 0xC42CF535 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xD7B96D4E EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xF9FA2123 EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6DEE2012 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x72233E69 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x81CA29A1 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x9516A104 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x35876476 GT PUSH2 0x120 JUMPI DUP1 PUSH4 0x35876476 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0x4BC2A657 EQ PUSH2 0x262 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x275 JUMPI DUP1 PUSH4 0x5EBAF1DB EQ PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0xC340A24 EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x171060EC EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x1BC10541 EQ PUSH2 0x1D0 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x216 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17B PUSH2 0x176 CALLDATASIZE PUSH1 0x4 PUSH2 0xE62 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x187 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x3E0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E5 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1003 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x187 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0xE1F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x479 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x237 CALLDATASIZE PUSH1 0x4 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x594 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x612 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x17B SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x6A2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x17B PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x738 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 DUP6 AND SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x187 JUMP JUMPDEST PUSH2 0x1E5 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x350 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x7F1 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x881 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1A3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1CE PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3DA JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3EB PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x410 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x38BA5BEE517DF7D94BDC1C81FFAD22FB4124B56002795C6C9C9689D092F22AFF SWAP2 PUSH2 0x44F SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x494 DUP2 PUSH2 0xA17 JUMP JUMPDEST PUSH2 0x49E DUP4 DUP4 PUSH2 0xA24 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x185B1C9958591E481A5B9A5D1A585B1A5E9959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP1 SLOAD DUP3 AND DUP10 DUP5 AND OR SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP3 AND DUP9 DUP5 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP3 AND DUP8 DUP5 AND OR SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD DUP3 AND DUP7 DUP5 AND OR SWAP1 SSTORE PUSH1 0x6 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 DUP5 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x560 PUSH1 0x0 DUP3 PUSH2 0xAA8 JUMP JUMPDEST PUSH2 0x578 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1003 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 PUSH2 0xAA8 JUMP JUMPDEST POP POP PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA8 SHL NOT AND PUSH1 0x1 PUSH1 0xA8 SHL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x604 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x407 JUMP JUMPDEST PUSH2 0x60E DUP3 DUP3 PUSH2 0xAB2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x61D PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x9268B9726F38824965649BFCF3B0D32FF50816216BF7CDBD57ABC3CC8C5DAB12 SWAP2 PUSH2 0x678 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x3 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 PUSH2 0x6BA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1003 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER PUSH2 0x738 JUMP JUMPDEST DUP1 PUSH2 0x6CB JUMPI POP PUSH2 0x6CB PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x717 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7420676F7665726E616E6365206F7220656D657267656E63790000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT DUP2 AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 DUP3 SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 SWAP2 MUL OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x76C PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x788 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x3F1ADE8BCA28C25684C7FA434465858B42FA8AAADE31C7AD794683F8CB136838 SWAP2 PUSH2 0x7C7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x5 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 PUSH2 0x7FC PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x7ECD2F20BE54E11699D4206D8493B655613619C8A602B1D28E399BA32A68F08D SWAP2 PUSH2 0x857 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 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 PUSH2 0x88C PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x8A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x2FCFD75E963279BEB99392C5E58156ADFE8455B1C38D14E8B39AAB9952E1588E SWAP2 PUSH2 0x8E7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x91C PUSH1 0x0 CALLER PUSH2 0x738 JUMP JUMPDEST PUSH2 0x938 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x407 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 PUSH32 0x3F1ADE8BCA28C25684C7FA434465858B42FA8AAADE31C7AD794683F8CB136838 SWAP2 PUSH2 0x977 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 SWAP1 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x4 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 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x9BC DUP2 PUSH2 0xA17 JUMP JUMPDEST PUSH2 0x49E DUP4 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xA15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C1C9BDD1BD8DBDB081A5CC81C185D5CD959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA21 DUP2 CALLER PUSH2 0xB17 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA2E DUP3 DUP3 PUSH2 0x738 JUMP JUMPDEST PUSH2 0x60E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xA64 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x60E DUP3 DUP3 PUSH2 0xA24 JUMP JUMPDEST PUSH2 0xABC DUP3 DUP3 PUSH2 0x738 JUMP JUMPDEST ISZERO PUSH2 0x60E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0xB21 DUP3 DUP3 PUSH2 0x738 JUMP JUMPDEST PUSH2 0x60E JUMPI PUSH2 0xB39 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0xB44 DUP4 PUSH1 0x20 PUSH2 0xB7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB55 SWAP3 SWAP2 SWAP1 PUSH2 0xE8A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x407 SWAP2 PUSH1 0x4 ADD PUSH2 0xF13 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB8A DUP4 PUSH1 0x2 PUSH2 0xF86 JUMP JUMPDEST PUSH2 0xB95 SWAP1 PUSH1 0x2 PUSH2 0xF6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBBB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBE5 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xC0E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xC4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0xC6F DUP5 PUSH1 0x2 PUSH2 0xF86 JUMP JUMPDEST PUSH2 0xC7A SWAP1 PUSH1 0x1 PUSH2 0xF6E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xD0E JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0xCBC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCE0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0xD07 DUP2 PUSH2 0xFD5 JUMP JUMPDEST SWAP1 POP PUSH2 0xC7D JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xD5D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x407 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD91 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD5D DUP3 PUSH2 0xD64 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xDB4 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xDBD DUP9 PUSH2 0xD64 JUMP JUMPDEST SWAP7 POP PUSH2 0xDCB PUSH1 0x20 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP6 POP PUSH2 0xDD9 PUSH1 0x40 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP5 POP PUSH2 0xDE7 PUSH1 0x60 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP4 POP PUSH2 0xDF5 PUSH1 0x80 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP3 POP PUSH2 0xE03 PUSH1 0xA0 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP2 POP PUSH2 0xE11 PUSH1 0xC0 DUP10 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE30 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE49 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xE59 PUSH1 0x20 DUP5 ADD PUSH2 0xD64 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE73 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xD5D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH23 0x20B1B1B2B9B9A1B7B73A3937B61D1030B1B1B7BAB73A1 PUSH1 0x4D SHL DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xEBC DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xEED DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xFA5 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF32 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xE SWAP1 DUP3 ADD MSTORE PUSH14 0x6E6F7420676F7665726E616E6365 PUSH1 0x90 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF81 JUMPI PUSH2 0xF81 PUSH2 0xFEC JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xFA0 JUMPI PUSH2 0xFA0 PUSH2 0xFEC JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xFC0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFA8 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xFCF JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xFE4 JUMPI PUSH2 0xFE4 PUSH2 0xFEC JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID MOD 0xCE 0xFB ISZERO 0x48 POP CODESIZE 0x4C 0xB3 0xE 0xEE BYTE 0xE7 EQ EXP GASPRICE 0x25 DUP8 PUSH9 0x948E755679865172F7 0xED MLOAD 0xED STATICCALL LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 PUSH30 0xB087024E45BD4DA507439E16954B35B16E67813AC3C8AA9962577911AD09 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"193:2853:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:0;;;;;;:::i;:::-;;:::i;:::-;;;3841:14:139;;3834:22;3816:41;;3804:2;3789:18;2606:202:0;;;;;;;;355:32:72;;;;;-1:-1:-1;;;;;355:32:72;;;;;;-1:-1:-1;;;;;2772:32:139;;;2754:51;;2742:2;2727:18;355:32:72;2709:102:139;2338:150:72;;;;;;:::i;:::-;;:::i;:::-;;534:86;;-1:-1:-1;;;;;;;;;;;534:86:72;;;;;4014:25:139;;;4002:2;3987:18;534:86:72;3969:76:139;4391:129:0;;;;;;:::i;:::-;4465:7;4491:12;;;;;;;;;;:22;;;;4391:129;4816:145;;;;;;:::i;:::-;;:::i;627:617:72:-;;;;;;:::i;:::-;;:::i;5925:214:0:-;;;;;;:::i;:::-;;:::i;245:28:72:-;;;;;-1:-1:-1;;;;;245:28:72;;;2176:156;;;;;;:::i;:::-;;:::i;477:18::-;;;;;-1:-1:-1;;;477:18:72;;;;;;393:30;;;;;-1:-1:-1;;;;;393:30:72;;;429:42;;;;;-1:-1:-1;;;;;429:42:72;;;1376:251;;;:::i;315:34::-;;;;;-1:-1:-1;;;;;315:34:72;;;2895:145:0;;;;;;:::i;:::-;;:::i;1744:278:72:-;1972:4;;1978:10;;1990:6;;1998:8;;2008:6;;1744:278;;;-1:-1:-1;;;;;1972:4:72;;;3422:34:139;;1978:10:72;;;3487:2:139;3472:18;;3465:43;1990:6:72;;;3524:18:139;;;3517:43;;;;1998:8:72;;3591:2:139;3576:18;;3569:43;2008:6:72;;;;3643:3:139;3628:19;;3621:44;3371:3;3356:19;1744:278:72;3338:333:139;2027:49:0;;2072:4;2027:49;;2890:154:72;;;;;;:::i;:::-;;:::i;2658:226::-;;;;;;:::i;:::-;;:::i;2028:142::-;;;;;;:::i;:::-;;:::i;2494:158::-;;;;;;:::i;:::-;;:::i;5241:147:0:-;;;;;;:::i;:::-;;:::i;279:30:72:-;;;;;-1:-1:-1;;;;;279:30:72;;;1633:105;;;:::i;2606:202:0:-;2691:4;-1:-1:-1;;;;;;2714:47:0;;-1:-1:-1;;;2714:47:0;;:87;;-1:-1:-1;;;;;;;;;;937:40:45;;;2765:36:0;2707:94;2606:202;-1:-1:-1;;2606:202:0:o;2338:150:72:-;1294:39;2072:4:0;1322:10:72;1294:7;:39::i;:::-;1286:66;;;;-1:-1:-1;;;1286:66:72;;;;;;;:::i;:::-;;;;;;;;;2445:6:::1;::::0;2419:39:::1;::::0;2433:10:::1;::::0;2419:39:::1;::::0;::::1;::::0;-1:-1:-1;;;;;2445:6:72::1;::::0;2453:4;;2419:39:::1;:::i;:::-;;;;;;;;2468:6;:13:::0;;-1:-1:-1;;;;;;2468:13:72::1;-1:-1:-1::0;;;;;2468:13:72;;;::::1;::::0;;;::::1;::::0;;2338:150::o;4816:145:0:-;4465:7;4491:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;627:617:72:-;876:11;;-1:-1:-1;;;876:11:72;;;;875:12;867:44;;;;-1:-1:-1;;;867:44:72;;5348:2:139;867:44:72;;;5330:21:139;5387:2;5367:18;;;5360:30;-1:-1:-1;;;5406:18:139;;;5399:49;5465:18;;867:44:72;5320:169:139;867:44:72;922:4;:12;;-1:-1:-1;;;;;;922:12:72;;;-1:-1:-1;;;;;922:12:72;;;;;;;;;;944:10;:24;;;;;;;;;;978:6;:16;;;;;;;;;;1004:8;:20;;;;;;;;;;1034:6;:16;;;;;;;;;;1060:18;:40;;;;;;;;;;;;;;1111:43;-1:-1:-1;1142:11:72;1111:10;:43::i;:::-;1164:44;-1:-1:-1;;;;;;;;;;;1196:11:72;1164:10;:44::i;:::-;-1:-1:-1;;1219:11:72;:18;;-1:-1:-1;;;;1219:18:72;-1:-1:-1;;;1219:18:72;;;-1:-1:-1;;;;;627:617:72:o;5925:214:0:-;-1:-1:-1;;;;;6020:23:0;;719:10:38;6020:23:0;6012:83;;;;-1:-1:-1;;;6012:83:0;;6395:2:139;6012:83:0;;;6377:21:139;6434:2;6414:18;;;6407:30;6473:34;6453:18;;;6446:62;-1:-1:-1;;;6524:18:139;;;6517:45;6579:19;;6012:83:0;6367:237:139;6012:83:0;6106:26;6118:4;6124:7;6106:11;:26::i;:::-;5925:214;;:::o;2176:156:72:-;1294:39;2072:4:0;1322:10:72;1294:7;:39::i;:::-;1286:66;;;;-1:-1:-1;;;1286:66:72;;;;;;;:::i;:::-;2281:10:::1;::::0;2256:42:::1;::::0;2269:10:::1;::::0;2256:42:::1;::::0;::::1;::::0;-1:-1:-1;;;;;2281:10:72::1;::::0;2293:4;;2256:42:::1;:::i;:::-;;;;;;;;2308:10;:17:::0;;-1:-1:-1;;;;;;2308:17:72::1;-1:-1:-1::0;;;;;2308:17:72;;;::::1;::::0;;;::::1;::::0;;2176:156::o;1376:251::-;1442:40;-1:-1:-1;;;;;;;;;;;1471:10:72;1442:7;:40::i;:::-;:99;;;-1:-1:-1;1502:39:72;2072:4:0;1530:10:72;1502:7;:39::i;:::-;1421:173;;;;-1:-1:-1;;;1421:173:72;;5696:2:139;1421:173:72;;;5678:21:139;5735:2;5715:18;;;5708:30;5774:29;5754:18;;;5747:57;5821:18;;1421:173:72;5668:177:139;1421:173:72;1614:6;;;-1:-1:-1;;;;1604:16:72;;-1:-1:-1;;;1614:6:72;;;;;;1613:7;1604:16;;;;;;1376:251::o;2895:145:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145::o;2890:154:72:-;1294:39;2072:4:0;1322:10:72;1294:7;:39::i;:::-;1286:66;;;;-1:-1:-1;;;1286:66:72;;;;;;;:::i;:::-;2999:8:::1;::::0;2971:43:::1;::::0;2987:10:::1;::::0;2971:43:::1;::::0;::::1;::::0;-1:-1:-1;;;;;2999:8:72::1;::::0;3009:4;;2971:43:::1;:::i;:::-;;;;;;;;3024:6;:13:::0;;-1:-1:-1;;;;;;3024:13:72::1;-1:-1:-1::0;;;;;3024:13:72;;;::::1;::::0;;;::::1;::::0;;2890:154::o;2658:226::-;1294:39;2072:4:0;1322:10:72;1294:7;:39::i;:::-;1286:66;;;;-1:-1:-1;;;1286:66:72;;;;;;;:::i;:::-;2817:18:::1;::::0;2779:63:::1;::::0;2805:10:::1;::::0;2779:63:::1;::::0;::::1;::::0;-1:-1:-1;;;;;2817:18:72::1;::::0;2837:4;;2779:63:::1;:::i;:::-;;;;;;;;2852:18;:25:::0;;-1:-1:-1;;;;;;2852:25:72::1;-1:-1:-1::0;;;;;2852:25:72;;;::::1;::::0;;;::::1;::::0;;2658:226::o;2028:142::-;1294:39;2072:4:0;1322:10:72;1294:7;:39::i;:::-;1286:66;;;;-1:-1:-1;;;1286:66:72;;;;;;;:::i;:::-;2131:4:::1;::::0;2107:35:::1;::::0;2119:10:::1;::::0;2107:35:::1;::::0;::::1;::::0;-1:-1:-1;;;;;2131:4:72::1;::::0;2137;;2107:35:::1;:::i;:::-;;;;;;;;2152:4;:11:::0;;-1:-1:-1;;;;;;2152:11:72::1;-1:-1:-1::0;;;;;2152:11:72;;;::::1;::::0;;;::::1;::::0;;2028:142::o;2494:158::-;1294:39;2072:4:0;1322:10:72;1294:7;:39::i;:::-;1286:66;;;;-1:-1:-1;;;1286:66:72;;;;;;;:::i;:::-;2605:8:::1;::::0;2577:43:::1;::::0;2593:10:::1;::::0;2577:43:::1;::::0;::::1;::::0;-1:-1:-1;;;;;2605:8:72::1;::::0;2615:4;;2577:43:::1;:::i;:::-;;;;;;;;2630:8;:15:::0;;-1:-1:-1;;;;;;2630:15:72::1;-1:-1:-1::0;;;;;2630:15:72;;;::::1;::::0;;;::::1;::::0;;2494:158::o;5241:147:0:-;4465:7;4491:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;1633:105:72:-:0;1702:6;;-1:-1:-1;;;1702:6:72;;;;1701:7;1693:38;;;;-1:-1:-1;;;1693:38:72;;5001:2:139;1693:38:72;;;4983:21:139;5040:2;5020:18;;;5013:30;-1:-1:-1;;;5059:18:139;;;5052:48;5117:18;;1693:38:72;4973:168:139;1693:38:72;1633:105::o;3334:103:0:-;3400:30;3411:4;719:10:38;3400::0;:30::i;:::-;3334:103;:::o;7474:233::-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7595:29:0;;;;;;;;;:36;;-1:-1:-1;;7595:36:0;7627:4;7595:36;;;7677:12;719:10:38;;640:96;7677:12:0;-1:-1:-1;;;;;7650:40:0;7668:7;-1:-1:-1;;;;;7650:40:0;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;6824:110::-;6902:25;6913:4;6919:7;6902:10;:25::i;7878:234::-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;;;;;;;;;-1:-1:-1;;;;;7999:29:0;;;;;;;;;;:37;;-1:-1:-1;;7999:37:0;;;8055:40;719:10:38;;7999:12:0;;8055:40;;8031:5;8055:40;7878:234;;:::o;3718:492::-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:0;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:0;;;;;;;;;;-1:-1:-1;;;3844:349:0;;;;;;;:::i;1652:441:40:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:40;;1752:47;;-1:-1:-1;;;1809:6:40;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:40;;;;;;;;;-1:-1:-1;;;1834:6:40;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:40;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:40;;;;;;;;-1:-1:-1;1864:9:40;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:40;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:40;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:40;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:40;;;;;;;;-1:-1:-1;1979:1:40;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:40;;2000:55;;;;-1:-1:-1;;;2000:55:40;;4640:2:139;2000:55:40;;;4622:21:139;;;4659:18;;;4652:30;4718:34;4698:18;;;4691:62;4770:18;;2000:55:40;4612:182:139;2000:55:40;2079:6;1652:441;-1:-1:-1;;;1652:441:40:o;14:173:139:-;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:644::-;506:6;514;522;530;538;546;554;607:3;595:9;586:7;582:23;578:33;575:2;;;629:6;621;614:22;575:2;657:29;676:9;657:29;:::i;:::-;647:39;;705:38;739:2;728:9;724:18;705:38;:::i;:::-;695:48;;762:38;796:2;785:9;781:18;762:38;:::i;:::-;752:48;;819:38;853:2;842:9;838:18;819:38;:::i;:::-;809:48;;876:39;910:3;899:9;895:19;876:39;:::i;:::-;866:49;;934:39;968:3;957:9;953:19;934:39;:::i;:::-;924:49;;992:39;1026:3;1015:9;1011:19;992:39;:::i;:::-;982:49;;565:472;;;;;;;;;;:::o;1042:190::-;1101:6;1154:2;1142:9;1133:7;1129:23;1125:32;1122:2;;;1175:6;1167;1160:22;1122:2;-1:-1:-1;1203:23:139;;1112:120;-1:-1:-1;1112:120:139:o;1237:264::-;1305:6;1313;1366:2;1354:9;1345:7;1341:23;1337:32;1334:2;;;1387:6;1379;1372:22;1334:2;1428:9;1415:23;1405:33;;1457:38;1491:2;1480:9;1476:18;1457:38;:::i;:::-;1447:48;;1324:177;;;;;:::o;1506:306::-;1564:6;1617:2;1605:9;1596:7;1592:23;1588:32;1585:2;;;1638:6;1630;1623:22;1585:2;1669:23;;-1:-1:-1;;;;;;1721:32:139;;1711:43;;1701:2;;1773:6;1765;1758:22;1817:786;-1:-1:-1;;;2223:3:139;2216:38;2198:3;2283:6;2277:13;2299:62;2354:6;2349:2;2344:3;2340:12;2333:4;2325:6;2321:17;2299:62;:::i;:::-;-1:-1:-1;;;2420:2:139;2380:16;;;2412:11;;;2405:40;2470:13;;2492:63;2470:13;2541:2;2533:11;;2526:4;2514:17;;2492:63;:::i;:::-;2575:17;2594:2;2571:26;;2206:397;-1:-1:-1;;;;2206:397:139:o;2816:304::-;-1:-1:-1;;;;;3046:15:139;;;3028:34;;3098:15;;3093:2;3078:18;;3071:43;2978:2;2963:18;;2945:175::o;4050:383::-;4199:2;4188:9;4181:21;4162:4;4231:6;4225:13;4274:6;4269:2;4258:9;4254:18;4247:34;4290:66;4349:6;4344:2;4333:9;4329:18;4324:2;4316:6;4312:15;4290:66;:::i;:::-;4417:2;4396:15;-1:-1:-1;;4392:29:139;4377:45;;;;4424:2;4373:54;;4171:262;-1:-1:-1;;4171:262:139:o;5850:338::-;6052:2;6034:21;;;6091:2;6071:18;;;6064:30;-1:-1:-1;;;6125:2:139;6110:18;;6103:44;6179:2;6164:18;;6024:164::o;6609:128::-;6649:3;6680:1;6676:6;6673:1;6670:13;6667:2;;;6686:18;;:::i;:::-;-1:-1:-1;6722:9:139;;6657:80::o;6742:168::-;6782:7;6848:1;6844;6840:6;6836:14;6833:1;6830:21;6825:1;6818:9;6811:17;6807:45;6804:2;;;6855:18;;:::i;:::-;-1:-1:-1;6895:9:139;;6794:116::o;6915:258::-;6987:1;6997:113;7011:6;7008:1;7005:13;6997:113;;;7087:11;;;7081:18;7068:11;;;7061:39;7033:2;7026:10;6997:113;;;7128:6;7125:1;7122:13;7119:2;;;7163:1;7154:6;7149:3;7145:16;7138:27;7119:2;;6968:205;;;:::o;7178:136::-;7217:3;7245:5;7235:2;;7254:18;;:::i;:::-;-1:-1:-1;;;7290:18:139;;7225:89::o;7319:127::-;7380:10;7375:3;7371:20;7368:1;7361:31;7411:4;7408:1;7401:15;7435:4;7432:1;7425:15"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","EMERGENCY_STOP_ROLE()":"1bc10541","emissionController()":"6dee2012","ensureNotPaused()":"f9fa2123","gaugeVoter()":"81ca29a1","getAllAddresses()":"9516a104","getRoleAdmin(bytes32)":"248a9ca3","governor()":"0c340a24","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address,address,address,address,address,address)":"35876476","locker()":"d7b96d4e","maha()":"3de00c36","paused()":"5c975abb","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setEmissionController(address)":"b641522e","setGovernor(address)":"c42cf535","setLocker(address)":"171060ec","setMAHA(address)":"be21c026","setStaker(address)":"a29a43bb","setVoter(address)":"4bc2a657","staker()":"5ebaf1db","supportsInterface(bytes4)":"01ffc9a7","toggleProtocol()":"72233e69"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"EmissionControllerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"GovernorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"LockerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"MahaChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"StakerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"VoterChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EMERGENCY_STOP_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emissionController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ensureNotPaused\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gaugeVoter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"_maha\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gaugeVoter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_locker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_governor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_emissionController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_governance\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"locker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maha\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setEmissionController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setGovernor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setLocker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setMAHA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"toggleProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Regsitry.sol\":\"Registry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Regsitry.sol\":{\"keccak256\":\"0x115e89ce03bdd25cc478c71016ae81fcf0dc3faf23a02e174441bf32c296a88e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c7e0a1ae4e9204f28790b9c91b8b69c16891be7c69c50d783e9f6aab28f3d69\",\"dweb:/ipfs/QmUE5rFDc467nKJKDXuM1Ln9aEVMtqJsy5c3XTpjkV2Lyq\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/RenderingContract.sol":{"RenderingContract":{"abi":[{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061034f806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c87b56dd14610030575b600080fd5b61004361003e3660046101ac565b610059565b6040516100509190610218565b60405180910390f35b60606100648261008a565b60405160200161007491906101c4565b6040516020818303038152906040529050919050565b6060816100ae5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100d857806100c2816102be565b91506100d19050600a83610263565b91506100b2565b60008167ffffffffffffffff81111561010157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561012b576020820181803683370190505b5090505b84156101a457610140600183610277565b915061014d600a866102d9565b61015890603061024b565b60f81b81838151811061017b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535061019d600a86610263565b945061012f565b949350505050565b6000602082840312156101bd578081fd5b5035919050565b7f68747470733a2f2f696d616765732e6d61686170656f706c652e636f6d2f00008152600082516101fc81601e85016020870161028e565b64173539b7b760d91b601e939091019283015250602301919050565b602081526000825180602084015261023781604085016020870161028e565b601f01601f19169190910160400192915050565b6000821982111561025e5761025e6102ed565b500190565b60008261027257610272610303565b500490565b600082821015610289576102896102ed565b500390565b60005b838110156102a9578181015183820152602001610291565b838111156102b8576000848401525b50505050565b60006000198214156102d2576102d26102ed565b5060010190565b6000826102e8576102e8610303565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfea2646970667358221220c41590d23feffa7553712236d901ce3ef3fb6061d4ebdd47b0e966a0ff5cf02c64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34F DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x1AC JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x218 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH2 0x64 DUP3 PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0xAE JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xD8 JUMPI DUP1 PUSH2 0xC2 DUP2 PUSH2 0x2BE JUMP JUMPDEST SWAP2 POP PUSH2 0xD1 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x263 JUMP JUMPDEST SWAP2 POP PUSH2 0xB2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x101 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x1A4 JUMPI PUSH2 0x140 PUSH1 0x1 DUP4 PUSH2 0x277 JUMP JUMPDEST SWAP2 POP PUSH2 0x14D PUSH1 0xA DUP7 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0x158 SWAP1 PUSH1 0x30 PUSH2 0x24B JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x17B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x19D PUSH1 0xA DUP7 PUSH2 0x263 JUMP JUMPDEST SWAP5 POP PUSH2 0x12F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BD JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F696D616765732E6D61686170656F706C652E636F6D2F0000 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x1FC DUP2 PUSH1 0x1E DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x28E JUMP JUMPDEST PUSH5 0x173539B7B7 PUSH1 0xD9 SHL PUSH1 0x1E SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 ADD MSTORE POP PUSH1 0x23 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x237 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x25E JUMPI PUSH2 0x25E PUSH2 0x2ED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x272 JUMPI PUSH2 0x272 PUSH2 0x303 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x289 JUMPI PUSH2 0x289 PUSH2 0x2ED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A9 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x291 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2D2 JUMPI PUSH2 0x2D2 PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2E8 JUMPI PUSH2 0x2E8 PUSH2 0x303 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC4 ISZERO SWAP1 0xD2 EXTCODEHASH 0xEF STATICCALL PUSH22 0x53712236D901CE3EF3FB6061D4EBDD47B0E966A0FF5C CREATE 0x2C PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"130:1215:73:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2379:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulAssignment","src":"165:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"188:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"175:12:139"},"nodeType":"YulFunctionCall","src":"175:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"165:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:190:139"},{"body":{"nodeType":"YulBlock","src":"550:267:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"567:3:139"},{"kind":"string","nodeType":"YulLiteral","src":"572:32:139","type":"","value":"https://images.mahapeople.com/"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"560:6:139"},"nodeType":"YulFunctionCall","src":"560:45:139"},"nodeType":"YulExpressionStatement","src":"560:45:139"},{"nodeType":"YulVariableDeclaration","src":"614:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"634:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"628:5:139"},"nodeType":"YulFunctionCall","src":"628:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"618:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"676:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"684:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"672:3:139"},"nodeType":"YulFunctionCall","src":"672:17:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"695:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"700:2:139","type":"","value":"30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"691:3:139"},"nodeType":"YulFunctionCall","src":"691:12:139"},{"name":"length","nodeType":"YulIdentifier","src":"705:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"650:21:139"},"nodeType":"YulFunctionCall","src":"650:62:139"},"nodeType":"YulExpressionStatement","src":"650:62:139"},{"nodeType":"YulVariableDeclaration","src":"721:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"735:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"740:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"731:3:139"},"nodeType":"YulFunctionCall","src":"731:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"725:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"767:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"771:2:139","type":"","value":"30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"763:3:139"},"nodeType":"YulFunctionCall","src":"763:11:139"},{"kind":"string","nodeType":"YulLiteral","src":"776:7:139","type":"","value":".json"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"756:6:139"},"nodeType":"YulFunctionCall","src":"756:28:139"},"nodeType":"YulExpressionStatement","src":"756:28:139"},{"nodeType":"YulAssignment","src":"793:18:139","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"804:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"808:2:139","type":"","value":"35"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"800:3:139"},"nodeType":"YulFunctionCall","src":"800:11:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"793:3:139"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_238e7c570a85fcdb12e3621c9854c40a954398e3863a3dfcfec20148bfa4c22d_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"526:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"531:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"542:3:139","type":""}],"src":"209:608:139"},{"body":{"nodeType":"YulBlock","src":"943:262:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"960:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"971:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"953:6:139"},"nodeType":"YulFunctionCall","src":"953:21:139"},"nodeType":"YulExpressionStatement","src":"953:21:139"},{"nodeType":"YulVariableDeclaration","src":"983:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1003:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"997:5:139"},"nodeType":"YulFunctionCall","src":"997:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"987:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1030:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1041:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1026:3:139"},"nodeType":"YulFunctionCall","src":"1026:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"1046:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1019:6:139"},"nodeType":"YulFunctionCall","src":"1019:34:139"},"nodeType":"YulExpressionStatement","src":"1019:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1088:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1096:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1084:3:139"},"nodeType":"YulFunctionCall","src":"1084:15:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1105:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1116:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1101:3:139"},"nodeType":"YulFunctionCall","src":"1101:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"1121:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1062:21:139"},"nodeType":"YulFunctionCall","src":"1062:66:139"},"nodeType":"YulExpressionStatement","src":"1062:66:139"},{"nodeType":"YulAssignment","src":"1137:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1153:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1172:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1180:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1168:3:139"},"nodeType":"YulFunctionCall","src":"1168:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1189:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1185:3:139"},"nodeType":"YulFunctionCall","src":"1185:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1164:3:139"},"nodeType":"YulFunctionCall","src":"1164:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1149:3:139"},"nodeType":"YulFunctionCall","src":"1149:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1145:3:139"},"nodeType":"YulFunctionCall","src":"1145:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1137:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"912:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"923:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"934:4:139","type":""}],"src":"822:383:139"},{"body":{"nodeType":"YulBlock","src":"1258:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"1285:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1287:16:139"},"nodeType":"YulFunctionCall","src":"1287:18:139"},"nodeType":"YulExpressionStatement","src":"1287:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1274:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1281:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1277:3:139"},"nodeType":"YulFunctionCall","src":"1277:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1271:2:139"},"nodeType":"YulFunctionCall","src":"1271:13:139"},"nodeType":"YulIf","src":"1268:2:139"},{"nodeType":"YulAssignment","src":"1316:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1327:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"1330:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1323:3:139"},"nodeType":"YulFunctionCall","src":"1323:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1316:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1241:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"1244:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"1250:3:139","type":""}],"src":"1210:128:139"},{"body":{"nodeType":"YulBlock","src":"1389:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"1412:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"1414:16:139"},"nodeType":"YulFunctionCall","src":"1414:18:139"},"nodeType":"YulExpressionStatement","src":"1414:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1409:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1402:6:139"},"nodeType":"YulFunctionCall","src":"1402:9:139"},"nodeType":"YulIf","src":"1399:2:139"},{"nodeType":"YulAssignment","src":"1443:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1452:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"1455:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1448:3:139"},"nodeType":"YulFunctionCall","src":"1448:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1443:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1374:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"1377:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1383:1:139","type":""}],"src":"1343:120:139"},{"body":{"nodeType":"YulBlock","src":"1517:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"1539:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1541:16:139"},"nodeType":"YulFunctionCall","src":"1541:18:139"},"nodeType":"YulExpressionStatement","src":"1541:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1533:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"1536:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1530:2:139"},"nodeType":"YulFunctionCall","src":"1530:8:139"},"nodeType":"YulIf","src":"1527:2:139"},{"nodeType":"YulAssignment","src":"1570:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1582:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"1585:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1578:3:139"},"nodeType":"YulFunctionCall","src":"1578:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"1570:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1499:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"1502:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"1508:4:139","type":""}],"src":"1468:125:139"},{"body":{"nodeType":"YulBlock","src":"1651:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1661:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1670:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1665:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1730:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1755:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"1760:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1751:3:139"},"nodeType":"YulFunctionCall","src":"1751:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1774:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"1779:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1770:3:139"},"nodeType":"YulFunctionCall","src":"1770:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1764:5:139"},"nodeType":"YulFunctionCall","src":"1764:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1744:6:139"},"nodeType":"YulFunctionCall","src":"1744:39:139"},"nodeType":"YulExpressionStatement","src":"1744:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1691:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"1694:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1688:2:139"},"nodeType":"YulFunctionCall","src":"1688:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1702:19:139","statements":[{"nodeType":"YulAssignment","src":"1704:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1713:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1716:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1709:3:139"},"nodeType":"YulFunctionCall","src":"1709:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1704:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1684:3:139","statements":[]},"src":"1680:113:139"},{"body":{"nodeType":"YulBlock","src":"1819:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1832:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"1837:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1828:3:139"},"nodeType":"YulFunctionCall","src":"1828:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"1846:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1821:6:139"},"nodeType":"YulFunctionCall","src":"1821:27:139"},"nodeType":"YulExpressionStatement","src":"1821:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1808:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"1811:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1805:2:139"},"nodeType":"YulFunctionCall","src":"1805:13:139"},"nodeType":"YulIf","src":"1802:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1629:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1634:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"1639:6:139","type":""}],"src":"1598:258:139"},{"body":{"nodeType":"YulBlock","src":"1908:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"1939:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1941:16:139"},"nodeType":"YulFunctionCall","src":"1941:18:139"},"nodeType":"YulExpressionStatement","src":"1941:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1924:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1935:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1931:3:139"},"nodeType":"YulFunctionCall","src":"1931:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1921:2:139"},"nodeType":"YulFunctionCall","src":"1921:17:139"},"nodeType":"YulIf","src":"1918:2:139"},{"nodeType":"YulAssignment","src":"1970:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1981:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"1988:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1977:3:139"},"nodeType":"YulFunctionCall","src":"1977:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1970:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1890:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"1900:3:139","type":""}],"src":"1861:135:139"},{"body":{"nodeType":"YulBlock","src":"2039:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"2062:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"2064:16:139"},"nodeType":"YulFunctionCall","src":"2064:18:139"},"nodeType":"YulExpressionStatement","src":"2064:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2059:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2052:6:139"},"nodeType":"YulFunctionCall","src":"2052:9:139"},"nodeType":"YulIf","src":"2049:2:139"},{"nodeType":"YulAssignment","src":"2093:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2102:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"2105:1:139"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"2098:3:139"},"nodeType":"YulFunctionCall","src":"2098:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2093:1:139"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2024:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"2027:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"2033:1:139","type":""}],"src":"2001:112:139"},{"body":{"nodeType":"YulBlock","src":"2150:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2167:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2174:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2179:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2170:3:139"},"nodeType":"YulFunctionCall","src":"2170:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2160:6:139"},"nodeType":"YulFunctionCall","src":"2160:31:139"},"nodeType":"YulExpressionStatement","src":"2160:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2207:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2210:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2200:6:139"},"nodeType":"YulFunctionCall","src":"2200:15:139"},"nodeType":"YulExpressionStatement","src":"2200:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2231:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2234:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2224:6:139"},"nodeType":"YulFunctionCall","src":"2224:15:139"},"nodeType":"YulExpressionStatement","src":"2224:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"2118:127:139"},{"body":{"nodeType":"YulBlock","src":"2282:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2299:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2306:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2311:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2302:3:139"},"nodeType":"YulFunctionCall","src":"2302:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2292:6:139"},"nodeType":"YulFunctionCall","src":"2292:31:139"},"nodeType":"YulExpressionStatement","src":"2292:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2339:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2342:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2332:6:139"},"nodeType":"YulFunctionCall","src":"2332:15:139"},"nodeType":"YulExpressionStatement","src":"2332:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2363:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2366:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2356:6:139"},"nodeType":"YulFunctionCall","src":"2356:15:139"},"nodeType":"YulExpressionStatement","src":"2356:15:139"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"2250:127:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_238e7c570a85fcdb12e3621c9854c40a954398e3863a3dfcfec20148bfa4c22d_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, \"https://images.mahapeople.com/\")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 30), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 30), \".json\")\n        end := add(_1, 35)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c87b56dd14610030575b600080fd5b61004361003e3660046101ac565b610059565b6040516100509190610218565b60405180910390f35b60606100648261008a565b60405160200161007491906101c4565b6040516020818303038152906040529050919050565b6060816100ae5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100d857806100c2816102be565b91506100d19050600a83610263565b91506100b2565b60008167ffffffffffffffff81111561010157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561012b576020820181803683370190505b5090505b84156101a457610140600183610277565b915061014d600a866102d9565b61015890603061024b565b60f81b81838151811061017b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535061019d600a86610263565b945061012f565b949350505050565b6000602082840312156101bd578081fd5b5035919050565b7f68747470733a2f2f696d616765732e6d61686170656f706c652e636f6d2f00008152600082516101fc81601e85016020870161028e565b64173539b7b760d91b601e939091019283015250602301919050565b602081526000825180602084015261023781604085016020870161028e565b601f01601f19169190910160400192915050565b6000821982111561025e5761025e6102ed565b500190565b60008261027257610272610303565b500490565b600082821015610289576102896102ed565b500390565b60005b838110156102a9578181015183820152602001610291565b838111156102b8576000848401525b50505050565b60006000198214156102d2576102d26102ed565b5060010190565b6000826102e8576102e8610303565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfea2646970667358221220c41590d23feffa7553712236d901ce3ef3fb6061d4ebdd47b0e966a0ff5cf02c64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x1AC JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x218 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH2 0x64 DUP3 PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0xAE JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xD8 JUMPI DUP1 PUSH2 0xC2 DUP2 PUSH2 0x2BE JUMP JUMPDEST SWAP2 POP PUSH2 0xD1 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x263 JUMP JUMPDEST SWAP2 POP PUSH2 0xB2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x101 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x1A4 JUMPI PUSH2 0x140 PUSH1 0x1 DUP4 PUSH2 0x277 JUMP JUMPDEST SWAP2 POP PUSH2 0x14D PUSH1 0xA DUP7 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0x158 SWAP1 PUSH1 0x30 PUSH2 0x24B JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x17B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x19D PUSH1 0xA DUP7 PUSH2 0x263 JUMP JUMPDEST SWAP5 POP PUSH2 0x12F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BD JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F696D616765732E6D61686170656F706C652E636F6D2F0000 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x1FC DUP2 PUSH1 0x1E DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x28E JUMP JUMPDEST PUSH5 0x173539B7B7 PUSH1 0xD9 SHL PUSH1 0x1E SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 ADD MSTORE POP PUSH1 0x23 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x237 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x25E JUMPI PUSH2 0x25E PUSH2 0x2ED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x272 JUMPI PUSH2 0x272 PUSH2 0x303 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x289 JUMPI PUSH2 0x289 PUSH2 0x2ED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A9 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x291 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2D2 JUMPI PUSH2 0x2D2 PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2E8 JUMPI PUSH2 0x2E8 PUSH2 0x303 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC4 ISZERO SWAP1 0xD2 EXTCODEHASH 0xEF STATICCALL PUSH22 0x53712236D901CE3EF3FB6061D4EBDD47B0E966A0FF5C CREATE 0x2C PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"130:1215:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;284:350;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;384:13;548:18;557:8;548;:18::i;:::-;456:157;;;;;;;;:::i;:::-;;;;;;;;;;;;;413:214;;284:350;;;:::o;640:703::-;696:13;913:10;909:51;;-1:-1:-1;;939:10:73;;;;;;;;;;;;-1:-1:-1;;;939:10:73;;;;;640:703::o;909:51::-;984:5;969:12;1023:75;1030:9;;1023:75;;1055:8;;;;:::i;:::-;;-1:-1:-1;1077:10:73;;-1:-1:-1;1085:2:73;1077:10;;:::i;:::-;;;1023:75;;;1107:19;1139:6;1129:17;;;;;;-1:-1:-1;;;1129:17:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1129:17:73;;1107:39;;1156:150;1163:10;;1156:150;;1189:11;1199:1;1189:11;;:::i;:::-;;-1:-1:-1;1257:10:73;1265:2;1257:5;:10;:::i;:::-;1244:24;;:2;:24;:::i;:::-;1231:39;;1214:6;1221;1214:14;;;;;;-1:-1:-1;;;1214:14:73;;;;;;;;;;;;:56;-1:-1:-1;;;;;1214:56:73;;;;;;;;-1:-1:-1;1284:11:73;1293:2;1284:11;;:::i;:::-;;;1156:150;;;1329:6;640:703;-1:-1:-1;;;;640:703:73:o;14:190:139:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;-1:-1:-1;175:23:139;;84:120;-1:-1:-1;84:120:139:o;209:608::-;572:32;567:3;560:45;542:3;634:6;628:13;650:62;705:6;700:2;695:3;691:12;684:4;676:6;672:17;650:62;:::i;:::-;-1:-1:-1;;;771:2:139;731:16;;;;763:11;;;756:28;-1:-1:-1;808:2:139;800:11;;550:267;-1:-1:-1;550:267:139:o;822:383::-;971:2;960:9;953:21;934:4;1003:6;997:13;1046:6;1041:2;1030:9;1026:18;1019:34;1062:66;1121:6;1116:2;1105:9;1101:18;1096:2;1088:6;1084:15;1062:66;:::i;:::-;1189:2;1168:15;-1:-1:-1;;1164:29:139;1149:45;;;;1196:2;1145:54;;943:262;-1:-1:-1;;943:262:139:o;1210:128::-;1250:3;1281:1;1277:6;1274:1;1271:13;1268:2;;;1287:18;;:::i;:::-;-1:-1:-1;1323:9:139;;1258:80::o;1343:120::-;1383:1;1409;1399:2;;1414:18;;:::i;:::-;-1:-1:-1;1448:9:139;;1389:74::o;1468:125::-;1508:4;1536:1;1533;1530:8;1527:2;;;1541:18;;:::i;:::-;-1:-1:-1;1578:9:139;;1517:76::o;1598:258::-;1670:1;1680:113;1694:6;1691:1;1688:13;1680:113;;;1770:11;;;1764:18;1751:11;;;1744:39;1716:2;1709:10;1680:113;;;1811:6;1808:1;1805:13;1802:2;;;1846:1;1837:6;1832:3;1828:16;1821:27;1802:2;;1651:205;;;:::o;1861:135::-;1900:3;-1:-1:-1;;1921:17:139;;1918:2;;;1941:18;;:::i;:::-;-1:-1:-1;1988:1:139;1977:13;;1908:88::o;2001:112::-;2033:1;2059;2049:2;;2064:18;;:::i;:::-;-1:-1:-1;2098:9:139;;2039:74::o;2118:127::-;2179:10;2174:3;2170:20;2167:1;2160:31;2210:4;2207:1;2200:15;2234:4;2231:1;2224:15;2250:127;2311:10;2306:3;2302:20;2299:1;2292:31;2342:4;2339:1;2332:15;2366:4;2363:1;2356:15"},"methodIdentifiers":{"tokenURI(uint256)":"c87b56dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"tokenURI(uint256)\":{\"details\":\"Returns current token URI metadata\",\"params\":{\"_tokenId\":\"Token ID to fetch URI for.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RenderingContract.sol\":\"RenderingContract\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/RenderingContract.sol\":{\"keccak256\":\"0xdce7924c418147f528189a087c6ab2972fc548348dce97068c377003f8440d33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b9f02ba46a5602171cc8648b70e5ffeac1306772b45893699328a584d1317f7\",\"dweb:/ipfs/QmQ9xQuL7YNj6xvh7EJvwzYRTVQM1byFnGNvn45xCJpMSt\"]},\"contracts/interfaces/ITokenURIGenerator.sol\":{\"keccak256\":\"0x0f72861fd31dfdee12160368e5a801020f679e433ceb4686376ef446e4032777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7bd5d3a2e68f296237033b91dca4212b81e32bda249a4f4dccada4174bcd2bf\",\"dweb:/ipfs/QmX8hdt5rTyTqbVCrX54K1Vur46M9VsyfxmDUB4vH71QEZ\"]}},\"version\":1}"}},"contracts/bribes/BaseV1Bribes.sol":{"BaseV1Bribes":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"maxRuns","type":"uint256"}],"name":"batchRewardPerToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"checkpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"balanceOf","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorBalanceIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorRewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorSupplyIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getRewardForOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastEarn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"numCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardPerTokenCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"rewardPerToken","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenNumCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supplyCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supplyNumCheckpoints","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":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userRewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:139","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:139"},"nodeType":"YulFunctionCall","src":"143:22:139"},"nodeType":"YulExpressionStatement","src":"143:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:139"},"nodeType":"YulFunctionCall","src":"112:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:139"},"nodeType":"YulFunctionCall","src":"108:32:139"},"nodeType":"YulIf","src":"105:2:139"},{"nodeType":"YulVariableDeclaration","src":"176:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:139"},"nodeType":"YulFunctionCall","src":"189:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:139"},"nodeType":"YulFunctionCall","src":"270:22:139"},"nodeType":"YulExpressionStatement","src":"270:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:139"},"nodeType":"YulFunctionCall","src":"249:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:139"},"nodeType":"YulFunctionCall","src":"245:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:139"},"nodeType":"YulFunctionCall","src":"234:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:139"},"nodeType":"YulFunctionCall","src":"224:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:139"},"nodeType":"YulFunctionCall","src":"217:50:139"},"nodeType":"YulIf","src":"214:2:139"},{"nodeType":"YulAssignment","src":"303:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:139","type":""}],"src":"14:310:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n        value0 := value\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b5060405162002c3638038062002c3683398101604081905262000034916200004f565b600160005560601b6001600160601b0319166080526200007f565b60006020828403121562000061578081fd5b81516001600160a01b038116811462000078578182fd5b9392505050565b60805160601c612b67620000cf60003960008181610370015281816109c301528181610a3601528181610d0a01528181610dcd015281816116a60152818161171901526118990152612b676000f3fe608060405234801561001057600080fd5b50600436106101bb5760003560e01c80639ce43f90116100fa578063e68863961161009d578063e688639614610498578063e8111a12146104a0578063f1229777146104a9578063f25e55a5146104bc578063f301af42146104e7578063f3207723146104fa578063f5f8d3651461050d578063f7412baf14610520578063fd3140981461054757600080fd5b80639ce43f90146103dd5780639e2bf22c146103fd578063a28d4c9c14610410578063a7852afa14610423578063aa47965214610436578063aaf5eb6814610456578063b66503cf14610465578063da09d19d1461047857600080fd5b80634d5ce038116101625780634d5ce038146102dd57806350589793146103105780635a45d05214610330578063638634ee1461034557806376f4be36146103585780637b1039991461036b57806399bcc052146103aa5780639cc7f708146103bd57600080fd5b806301316ddf146101c057806318160ddd1461020c5780631be0528914610223578063221ca18c1461022d5780632ce9aead1461024d5780633b8819991461026d5780633e491d471461029857806349dcc204146102ab575b600080fd5b6101f26101ce366004612836565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61021560095481565b604051908152602001610203565b61021562093a8081565b61021561023b3660046127fe565b60016020526000908152604090205481565b61021561025b3660046127fe565b60036020526000908152604090205481565b61021561027b366004612836565b600660209081526000928352604080842090915290825290205481565b6102156102a6366004612836565b61055a565b6101f26102b9366004612984565b600b6020908152600092835260408084209091529082529020805460019091015482565b6103006102eb3660046127fe565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b61021561031e366004612881565b600c6020526000908152604090205481565b61034361033e366004612836565b6107c2565b005b6102156103533660046127fe565b6107fa565b610215610366366004612881565b61081e565b6103927f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102156103b83660046127fe565b610950565b6102156103cb366004612881565b600a6020526000908152604090205481565b6102156103eb3660046127fe565b60046020526000908152604090205481565b61034361040b366004612984565b6109c1565b61021561041e366004612984565b610b9a565b6103436104313660046128b1565b610cdd565b6102156104443660046127fe565b60106020526000908152604090205481565b610215670de0b6b3a764000081565b610343610473366004612836565b6111c2565b6102156104863660046127fe565b60026020526000908152604090205481565b600754610215565b610215600e5481565b6102156104b73660046127fe565b6115ba565b6102156104ca366004612836565b600560209081526000928352604080842090915290825290205481565b6103926104f5366004612881565b61167a565b610343610508366004612984565b6116a4565b61034361051b3660046128b1565b61186c565b6101f261052e366004612881565b600d602052600090815260409020805460019091015482565b6101f2610555366004612836565b611cc5565b6001600160a01b0382166000818152600560209081526040808320858452825280832054938352600f82528083208380529091528120549091829161059f9190611ee4565b6000848152600c60205260409020549091506105bf5760009150506107bc565b60006105cb8483610b9a565b6000858152600c6020526040812054919250906105ea90600190612abb565b9050600060016105fa8484612abb565b111561070057825b61060d600184612abb565b8110156106fe576000878152600b60208181526040808420858552808352818520825180840190935280548352600190810154838501528c8652939092529291829061065a908690612a64565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006106998b8460000151611cc5565b50905060006106ac8c8460000151611cc5565b509050670de0b6b3a76400006106c28383612abb565b85602001516106d19190612a9c565b6106db9190612a7c565b6106e59087612a64565b95505050505080806106f690612ad2565b915050610602565b505b6000868152600b60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610740908a90611cc5565b506001600160a01b038a1660009081526006602090815260408083208c8452909152902054909150670de0b6b3a76400009061077d908390611ee4565b6107868b6115ba565b6107909190612abb565b836020015161079f9190612a9c565b6107a99190612a7c565b6107b39084612a64565b96505050505050505b92915050565b6107cc8282611efb565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546107bc90429061205a565b600e54600090806108325750600092915050565b82600d6000610842600185612abb565b8152602001908152602001600020600001541161086b57610864600182612abb565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee548310156108a65750600092915050565b6000806108b4600184612abb565b90505b8181111561094857600060026108cd8484612abb565b6108d79190612a7c565b6108e19083612abb565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610922575095945050505050565b805187111561093357819350610941565b61093e600183612abb565b92505b50506108b7565b509392505050565b6001600160a01b038116600090815260026020526040812054421061097757506000919050565b6001600160a01b03821660009081526002602052604081205461099b904290612abb565b6001600160a01b0384166000908152600160205260409020549091506108649082612a9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8d57600080fd5b505afa158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac5919061281a565b6001600160a01b0316336001600160a01b031614610afe5760405162461bcd60e51b8152600401610af5906129de565b60405180910390fd5b8160096000828254610b109190612abb565b90915550506000818152600a602052604081208054849290610b33908490612abb565b90915550506000818152600a6020526040902054610b52908290612069565b610b5a612142565b604080518281526020810184905233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a25050565b6000828152600c602052604081205480610bb85760009150506107bc565b6000848152600b602052604081208491610bd3600185612abb565b81526020019081526020016000206000015411610bfd57610bf5600182612abb565b9150506107bc565b6000848152600b60209081526040808320838052909152902054831015610c285760009150506107bc565b600080610c36600184612abb565b90505b81811115610cd45760006002610c4f8484612abb565b610c599190612a7c565b610c639083612abb565b6000888152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610cae575093506107bc92505050565b8051871115610cbf57819350610ccd565b610cca600183612abb565b92505b5050610c39565b50949350505050565b60026000541415610d005760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6157600080fd5b505afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d99919061281a565b6001600160a01b0316336001600160a01b031614610dc95760405162461bcd60e51b8152600401610af5906129de565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c919061281a565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610e8991815260200190565b60206040518083038186803b158015610ea157600080fd5b505afa158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed9919061281a565b905060005b82518110156111b757610f17838281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60200260200101516121e6565b60046000868581518110610f3b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000888781518110610f8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff2848381518110610fe457634e487b7160e01b600052603260045260246000fd5b60200260200101518661055a565b9050426005600086858151811061101957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000878152602001908152602001600020819055506004600085848151811061107a57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008685815181106110c757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812089825290925290205580156111305761113084838151811061112157634e487b7160e01b600052603260045260246000fd5b602002602001015184836123c9565b83828151811061115057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316836001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161119c91815260200190565b60405180910390a350806111af81612ad2565b915050610ede565b505060016000555050565b600260005414156111e55760405162461bcd60e51b8152600401610af590612a2d565b6002600055806112245760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610af5565b6001600160a01b03821660009081526001602052604090205461124d5761124d82600042612500565b611256826121e6565b6001600160a01b03841660009081526004602090815260408083206003835281842094909455939092556002909152205442106112c457611299823330846125ef565b6112a662093a8082612a7c565b6001600160a01b038316600090815260016020526040902055611390565b6001600160a01b0382166000908152600260205260408120546112e8904290612abb565b6001600160a01b0384166000908152600160205260408120549192509061130f9083612a9c565b90508083116113505760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610af5565b61135c843330866125ef565b62093a8061136a8285612a64565b6113749190612a7c565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b0382166000908152600160205260409020546113e65760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610af5565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561142857600080fd5b505afa15801561143c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114609190612899565b905061146f62093a8082612a7c565b6001600160a01b03841660009081526001602052604090205411156114d15760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610af5565b6114de62093a8042612a64565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff16611570576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b6000600954600014156115e357506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a764000092916116269161205a565b61162f866107fa565b6116399190612abb565b6116439190612a9c565b61164d9190612a9c565b6116579190612a7c565b6001600160a01b0383166000908152600460205260409020546107bc9190612a64565b6007818154811061168a57600080fd5b6000918252602090912001546001600160a01b0316905081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561177057600080fd5b505afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a8919061281a565b6001600160a01b0316336001600160a01b0316146117d85760405162461bcd60e51b8152600401610af5906129de565b81600960008282546117ea9190612a64565b90915550506000818152600a60205260408120805484929061180d908490612a64565b90915550506000818152600a602052604090205461182c908290612069565b611834612142565b604080518281526020810184905233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159101610b8e565b6002600054141561188f5760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118f057600080fd5b505afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611928919061281a565b60405163430c208160e01b8152336004820152602481018490526001600160a01b03919091169063430c20819060440160206040518083038186803b15801561197057600080fd5b505afa158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a89190612861565b6119ec5760405162461bcd60e51b81526020600482015260156024820152743737ba103b329030b8383937bb32b21037bbb732b960591b6044820152606401610af5565b60005b8151811015611cbb57611a1b828281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60046000858581518110611a3f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110611a8d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000611af6838381518110611ae857634e487b7160e01b600052603260045260246000fd5b60200260200101518561055a565b90504260056000858581518110611b1d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008681526020019081526020016000208190555060046000848481518110611b7e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460066000858581518110611bcb57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281810192909252604090810160009081208882529092529020558015611c3457611c34838381518110611c2557634e487b7160e01b600052603260045260246000fd5b602002602001015133836123c9565b828281518110611c5457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc983604051611ca091815260200190565b60405180910390a35080611cb381612ad2565b9150506119ef565b5050600160005550565b6001600160a01b038216600090815260106020526040812054819080611cf2576000809250925050611edd565b6001600160a01b0385166000908152600f602052604081208591611d17600185612abb565b81526020019081526020016000206000015411611db4576001600160a01b0385166000908152600f6020526040812090611d52600184612abb565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611d989190612abb565b8152602001908152602001600020600001549250925050611edd565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611dec576000809250925050611edd565b600080611dfa600184612abb565b90505b81811115611eac5760006002611e138484612abb565b611e1d9190612a7c565b611e279083612abb565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611e8657602081015190519096509450611edd9350505050565b8051881115611e9757819350611ea5565b611ea2600183612abb565b92505b5050611dfd565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611ef45781610864565b5090919050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f335792509050611edd565b6001600160a01b038616600090815260016020526040902054611f5c579250429150611edd9050565b6000611f678361081e565b90506000611f836001600e54611f7d9190612abb565b8861205a565b9050815b8181101561204b576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612038576000600d81611fcc856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120178d8460000151866000015187602001518d612733565b90925090506120268289612a64565b97506120338d8983612500565b975050505b508061204381612ad2565b915050611f87565b50919792965091945050505050565b6000818310611ef45781610864565b6000828152600c6020526040902054429080158015906120b357506000848152600b60205260408120839161209f600185612abb565b815260200190815260200160002060000154145b156120ec576000848152600b6020526040812084916120d3600185612abb565b815260208101919091526040016000206001015561213c565b60408051808201825283815260208082018681526000888152600b835284812086825290925292902090518155905160019182015561212c908290612a64565b6000858152600c60205260409020555b50505050565b600e54428115801590612174575080600d6000612160600186612abb565b815260200190815260200160002060000154145b156121a357600954600d600061218b600186612abb565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d909152929092209051815590516001918201556121df908390612a64565b600e555050565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e548392919061221e5794909350915050565b6001600160a01b038516600090815260016020526040902054612245579442945092505050565b60006122508361081e565b905060006001600e546122639190612abb565b905060016122718383612abb565b111561234957815b612284600183612abb565b811015612347576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612334576000600d816122c8856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806123138c8460000151866000015187602001518d612733565b90925090506123228289612a64565b975061232f8c8983612500565b975050505b508061233f81612ad2565b915050612279565b505b6000818152600d602090815260409182902082518084019093528054835260010154908201819052156123bb57600061239c896123858b6107fa565b8451612391908a611ee4565b85602001518a612733565b5090506123a98186612a64565b94506123b6898642612500565b429550505b509196929550919350505050565b6000836001600160a01b03163b116123f35760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161244f91906129a5565b6000604051808303816000865af19150503d806000811461248c576040519150601f19603f3d011682016040523d82523d6000602084013e612491565b606091505b50915091508180156124bb5750805115806124bb5750808060200190518101906124bb9190612861565b6124f95760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610af5565b5050505050565b6001600160a01b038316600090815260106020526040902054801580159061255c57506001600160a01b0384166000908152600f602052604081208391612548600185612abb565b815260200190815260200160002060000154145b15612586576001600160a01b0384166000908152600f6020526040812084916120d3600185612abb565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f83528481208682529092529290209051815590516001918201556125d0908290612a64565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116126195760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161267d91906129a5565b6000604051808303816000865af19150503d80600081146126ba576040519150601f19603f3d011682016040523d82523d6000602084013e6126bf565b606091505b50915091508180156126e95750805115806126e95750808060200190518101906126e99190612861565b61272b5760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610af5565b505050505050565b60008060006127428785611ee4565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906127956127778a89611ee4565b6001600160a01b038d1660009081526002602052604090205461205a565b6001600160a01b038c166000908152600260205260409020546127b990869061205a565b6127c39190612abb565b6127cd9190612a9c565b6127d79190612a9c565b6127e19190612a7c565b9890975095505050505050565b80356127f981612b19565b919050565b60006020828403121561280f578081fd5b813561086481612b19565b60006020828403121561282b578081fd5b815161086481612b19565b60008060408385031215612848578081fd5b823561285381612b19565b946020939093013593505050565b600060208284031215612872578081fd5b81518015158114610864578182fd5b600060208284031215612892578081fd5b5035919050565b6000602082840312156128aa578081fd5b5051919050565b600080604083850312156128c3578182fd5b8235915060208084013567ffffffffffffffff808211156128e2578384fd5b818601915086601f8301126128f5578384fd5b81358181111561290757612907612b03565b8060051b604051601f19603f8301168101818110858211171561292c5761292c612b03565b604052828152858101935084860182860187018b101561294a578788fd5b8795505b838610156129735761295f816127ee565b85526001959095019493860193860161294e565b508096505050505050509250929050565b60008060408385031215612996578182fd5b50508035926020909101359150565b60008251815b818110156129c557602081860181015185830152016129ab565b818111156129d35782828501525b509190910192915050565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008219821115612a7757612a77612aed565b500190565b600082612a9757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612ab657612ab6612aed565b500290565b600082821015612acd57612acd612aed565b500390565b6000600019821415612ae657612ae6612aed565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612b2e57600080fd5b5056fea2646970667358221220096bfcc92c3019eef9e8f3ae2328fca435bc272aae41d44647b280c78dfd130464736f6c63430008040033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2C36 CODESIZE SUB DUP1 PUSH3 0x2C36 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x61 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x78 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x2B67 PUSH3 0xCF PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x370 ADD MSTORE DUP2 DUP2 PUSH2 0x9C3 ADD MSTORE DUP2 DUP2 PUSH2 0xA36 ADD MSTORE DUP2 DUP2 PUSH2 0xD0A ADD MSTORE DUP2 DUP2 PUSH2 0xDCD ADD MSTORE DUP2 DUP2 PUSH2 0x16A6 ADD MSTORE DUP2 DUP2 PUSH2 0x1719 ADD MSTORE PUSH2 0x1899 ADD MSTORE PUSH2 0x2B67 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9CE43F90 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xF25E55A5 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF3207723 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF5F8D365 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x9E2BF22C EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA28D4C9C EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA7852AFA EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4D5CE038 GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x50589793 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x9CC7F708 EQ PUSH2 0x3BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x3B881999 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3E491D47 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49DCC204 EQ PUSH2 0x2AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x215 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x300 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x31E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x33E CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x7C2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x215 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x81E JUMP JUMPDEST PUSH2 0x392 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0xCDD JUMP JUMPDEST PUSH2 0x215 PUSH2 0x444 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x11C2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x486 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x215 JUMP JUMPDEST PUSH2 0x215 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x167A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x16A4 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0x186C JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x1CC5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP4 DUP4 MSTORE PUSH1 0xF DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x5BF JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CB DUP5 DUP4 PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x5EA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x5FA DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x700 JUMPI DUP3 JUMPDEST PUSH2 0x60D PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP6 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE DUP13 DUP7 MSTORE SWAP4 SWAP1 SWAP3 MSTORE SWAP3 SWAP2 DUP3 SWAP1 PUSH2 0x65A SWAP1 DUP7 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x699 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x6AC DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x6C2 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x6D1 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x6DB SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x6E5 SWAP1 DUP8 PUSH2 0x2A64 JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x6F6 SWAP1 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x602 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x740 SWAP1 DUP11 SWAP1 PUSH2 0x1CC5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP13 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x77D SWAP1 DUP4 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH2 0x786 DUP12 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x790 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x79F SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x7A9 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x7B3 SWAP1 DUP5 PUSH2 0x2A64 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7CC DUP3 DUP3 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7BC SWAP1 TIMESTAMP SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x832 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0x842 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x86B JUMPI PUSH2 0x864 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0x8A6 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B4 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x8CD DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x8D7 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x8E1 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x922 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x933 JUMPI DUP2 SWAP4 POP PUSH2 0x941 JUMP JUMPDEST PUSH2 0x93E PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x8B7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x977 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x99B SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x864 SWAP1 DUP3 PUSH2 0x2A9C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC5 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB10 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xB33 SWAP1 DUP5 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xB52 SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0xB5A PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0xF279E6A1F5E320CCA91135676D9CB6E44CA8A08C0B88342BCDB1144F6511B568 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0xBB8 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0xBD3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xBFD JUMPI PUSH2 0xBF5 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0xC28 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC36 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xC4F DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0xC59 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0xC63 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xCAE JUMPI POP SWAP4 POP PUSH2 0x7BC SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xCBF JUMPI DUP2 SWAP4 POP PUSH2 0xCCD JUMP JUMPDEST PUSH2 0xCCA PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xC39 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD99 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE89 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xED9 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x11B7 JUMPI PUSH2 0xF17 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF2 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1019 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x107A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP10 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1130 JUMPI PUSH2 0x1130 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1121 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1150 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x119C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11AF DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEDE JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x11E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x1224 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x124D JUMPI PUSH2 0x124D DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST PUSH2 0x1256 DUP3 PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x12C4 JUMPI PUSH2 0x1299 DUP3 CALLER ADDRESS DUP5 PUSH2 0x25EF JUMP JUMPDEST PUSH2 0x12A6 PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12E8 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x130F SWAP1 DUP4 PUSH2 0x2A9C JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x1350 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x135C DUP5 CALLER ADDRESS DUP7 PUSH2 0x25EF JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x136A DUP3 DUP6 PUSH2 0x2A64 JUMP JUMPDEST PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x13E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x143C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1460 SWAP2 SWAP1 PUSH2 0x2899 JUMP JUMPDEST SWAP1 POP PUSH2 0x146F PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x14D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x14DE PUSH3 0x93A80 TIMESTAMP PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1570 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x15E3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1626 SWAP2 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x162F DUP7 PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x1639 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1643 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x164D SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x1657 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7BC SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17A8 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17EA SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x180D SWAP1 DUP5 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x182C SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0x1834 PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 SWAP2 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x188F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1904 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1928 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A8 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x19EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x3737BA103B329030B8383937BB32B21037BBB732B9 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1CBB JUMPI PUSH2 0x1A1B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A3F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x1A8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1AF6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1AE8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1B1D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B7E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1BCB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP9 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1C34 JUMPI PUSH2 0x1C34 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C25 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1C54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1CA0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1CB3 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x19EF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1CF2 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1D17 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1DB4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1D52 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1D98 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1DEC JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1DFA PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1E13 DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1E1D SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x1E27 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1EDD SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1E97 JUMPI DUP2 SWAP4 POP PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x1EA2 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1DFD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F33 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F5C JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1EDD SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F67 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F83 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F7D SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP9 PUSH2 0x205A JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x204B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2038 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FCC DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2017 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2026 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x2033 DUP14 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2043 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F87 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20B3 JUMPI POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x209F PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x20EC JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x213C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x212C SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2174 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x2160 PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x21A3 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x218B PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x21DF SWAP1 DUP4 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x221E JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2245 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2250 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x2263 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x2271 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x2349 JUMPI DUP2 JUMPDEST PUSH2 0x2284 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2334 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x22C8 DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2313 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2322 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x232F DUP13 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x233F DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2279 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x23BB JUMPI PUSH1 0x0 PUSH2 0x239C DUP10 PUSH2 0x2385 DUP12 PUSH2 0x7FA JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2391 SWAP1 DUP11 PUSH2 0x1EE4 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2733 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x23A9 DUP2 DUP7 PUSH2 0x2A64 JUMP JUMPDEST SWAP5 POP PUSH2 0x23B6 DUP10 DUP7 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x23F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x244F SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x248C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x24BB JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x24BB JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24BB SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x24F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x255C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2548 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x25D0 SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2619 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x267D SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x26E9 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x26E9 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x26E9 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x272B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2742 DUP8 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2795 PUSH2 0x2777 DUP11 DUP10 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x205A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x27B9 SWAP1 DUP7 SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x27C3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x27CD SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27D7 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27E1 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x27F9 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2848 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2853 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2872 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x864 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2892 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28C3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28E2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28F5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH2 0x2907 PUSH2 0x2B03 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x292C JUMPI PUSH2 0x292C PUSH2 0x2B03 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x294A JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2973 JUMPI PUSH2 0x295F DUP2 PUSH2 0x27EE JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x294E JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2996 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x29C5 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x29AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x29D3 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2A77 JUMPI PUSH2 0x2A77 PUSH2 0x2AED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2A97 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2AB6 JUMPI PUSH2 0x2AB6 PUSH2 0x2AED JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x2AED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2AE6 JUMPI PUSH2 0x2AE6 PUSH2 0x2AED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2B2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD PUSH12 0xFCC92C3019EEF9E8F3AE2328 0xFC LOG4 CALLDATALOAD 0xBC 0x27 0x2A 0xAE COINBASE 0xD4 CHAINID SELFBALANCE 0xB2 DUP1 0xC7 DUP14 REVERT SGT DIV PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"641:20289:74:-:0;;;2704:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:22;1806:7;:22;2745:31:74;;-1:-1:-1;;2745:31:74;;;641:20289;;14:310:139;84:6;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:139;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:139:o;:::-;641:20289:74;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10034:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:85:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"136:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"111:24:139"},"nodeType":"YulFunctionCall","src":"111:31:139"},"nodeType":"YulExpressionStatement","src":"111:31:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:134:139"},{"body":{"nodeType":"YulBlock","src":"223:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"269:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"278:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"286:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"271:6:139"},"nodeType":"YulFunctionCall","src":"271:22:139"},"nodeType":"YulExpressionStatement","src":"271:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"244:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"253:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"240:3:139"},"nodeType":"YulFunctionCall","src":"240:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"265:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"236:3:139"},"nodeType":"YulFunctionCall","src":"236:32:139"},"nodeType":"YulIf","src":"233:2:139"},{"nodeType":"YulVariableDeclaration","src":"304:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"330:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"317:12:139"},"nodeType":"YulFunctionCall","src":"317:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"308:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"374:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"349:24:139"},"nodeType":"YulFunctionCall","src":"349:31:139"},"nodeType":"YulExpressionStatement","src":"349:31:139"},{"nodeType":"YulAssignment","src":"389:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"399:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"389:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"189:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"200:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"212:6:139","type":""}],"src":"153:257:139"},{"body":{"nodeType":"YulBlock","src":"496:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"542:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"551:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"559:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"544:6:139"},"nodeType":"YulFunctionCall","src":"544:22:139"},"nodeType":"YulExpressionStatement","src":"544:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"517:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"526:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"513:3:139"},"nodeType":"YulFunctionCall","src":"513:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"538:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"509:3:139"},"nodeType":"YulFunctionCall","src":"509:32:139"},"nodeType":"YulIf","src":"506:2:139"},{"nodeType":"YulVariableDeclaration","src":"577:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"596:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"590:5:139"},"nodeType":"YulFunctionCall","src":"590:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"581:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"640:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"615:24:139"},"nodeType":"YulFunctionCall","src":"615:31:139"},"nodeType":"YulExpressionStatement","src":"615:31:139"},{"nodeType":"YulAssignment","src":"655:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"665:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"655:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"462:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"473:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"485:6:139","type":""}],"src":"415:261:139"},{"body":{"nodeType":"YulBlock","src":"768:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"814:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"823:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"831:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"816:6:139"},"nodeType":"YulFunctionCall","src":"816:22:139"},"nodeType":"YulExpressionStatement","src":"816:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"789:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"798:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"785:3:139"},"nodeType":"YulFunctionCall","src":"785:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"810:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"781:3:139"},"nodeType":"YulFunctionCall","src":"781:32:139"},"nodeType":"YulIf","src":"778:2:139"},{"nodeType":"YulVariableDeclaration","src":"849:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"875:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"862:12:139"},"nodeType":"YulFunctionCall","src":"862:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"853:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"919:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"894:24:139"},"nodeType":"YulFunctionCall","src":"894:31:139"},"nodeType":"YulExpressionStatement","src":"894:31:139"},{"nodeType":"YulAssignment","src":"934:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"944:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"934:6:139"}]},{"nodeType":"YulAssignment","src":"958:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:139"},"nodeType":"YulFunctionCall","src":"981:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:139"},"nodeType":"YulFunctionCall","src":"968:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"958:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"726:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"737:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"749:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"757:6:139","type":""}],"src":"681:325:139"},{"body":{"nodeType":"YulBlock","src":"1089:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"1135:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1144:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1152:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1137:6:139"},"nodeType":"YulFunctionCall","src":"1137:22:139"},"nodeType":"YulExpressionStatement","src":"1137:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1110:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1119:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1106:3:139"},"nodeType":"YulFunctionCall","src":"1106:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1131:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1102:3:139"},"nodeType":"YulFunctionCall","src":"1102:32:139"},"nodeType":"YulIf","src":"1099:2:139"},{"nodeType":"YulVariableDeclaration","src":"1170:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1189:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1183:5:139"},"nodeType":"YulFunctionCall","src":"1183:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1174:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1252:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1261:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1269:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1254:6:139"},"nodeType":"YulFunctionCall","src":"1254:22:139"},"nodeType":"YulExpressionStatement","src":"1254:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1221:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1242:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1235:6:139"},"nodeType":"YulFunctionCall","src":"1235:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1228:6:139"},"nodeType":"YulFunctionCall","src":"1228:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1218:2:139"},"nodeType":"YulFunctionCall","src":"1218:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:139"},"nodeType":"YulFunctionCall","src":"1211:40:139"},"nodeType":"YulIf","src":"1208:2:139"},{"nodeType":"YulAssignment","src":"1287:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1297:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1287:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1055:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1066:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1078:6:139","type":""}],"src":"1011:297:139"},{"body":{"nodeType":"YulBlock","src":"1383:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"1429:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1438:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1446:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1431:6:139"},"nodeType":"YulFunctionCall","src":"1431:22:139"},"nodeType":"YulExpressionStatement","src":"1431:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1404:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1413:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1400:3:139"},"nodeType":"YulFunctionCall","src":"1400:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1425:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1396:3:139"},"nodeType":"YulFunctionCall","src":"1396:32:139"},"nodeType":"YulIf","src":"1393:2:139"},{"nodeType":"YulAssignment","src":"1464:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1487:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1474:12:139"},"nodeType":"YulFunctionCall","src":"1474:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1464:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1349:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1360:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1372:6:139","type":""}],"src":"1313:190:139"},{"body":{"nodeType":"YulBlock","src":"1589:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"1635:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1644:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1652:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1637:6:139"},"nodeType":"YulFunctionCall","src":"1637:22:139"},"nodeType":"YulExpressionStatement","src":"1637:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1610:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1619:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1606:3:139"},"nodeType":"YulFunctionCall","src":"1606:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1631:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1602:3:139"},"nodeType":"YulFunctionCall","src":"1602:32:139"},"nodeType":"YulIf","src":"1599:2:139"},{"nodeType":"YulAssignment","src":"1670:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1686:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1680:5:139"},"nodeType":"YulFunctionCall","src":"1680:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1670:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1555:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1566:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1578:6:139","type":""}],"src":"1508:194:139"},{"body":{"nodeType":"YulBlock","src":"1819:1133:139","statements":[{"body":{"nodeType":"YulBlock","src":"1865:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1874:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1882:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1867:6:139"},"nodeType":"YulFunctionCall","src":"1867:22:139"},"nodeType":"YulExpressionStatement","src":"1867:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1840:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1849:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1836:3:139"},"nodeType":"YulFunctionCall","src":"1836:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1861:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1832:3:139"},"nodeType":"YulFunctionCall","src":"1832:32:139"},"nodeType":"YulIf","src":"1829:2:139"},{"nodeType":"YulAssignment","src":"1900:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1923:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1910:12:139"},"nodeType":"YulFunctionCall","src":"1910:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1900:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1942:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1952:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1946:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1963:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1994:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2005:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1990:3:139"},"nodeType":"YulFunctionCall","src":"1990:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1977:12:139"},"nodeType":"YulFunctionCall","src":"1977:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1967:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2018:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2028:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2022:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2073:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2082:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2090:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2075:6:139"},"nodeType":"YulFunctionCall","src":"2075:22:139"},"nodeType":"YulExpressionStatement","src":"2075:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2061:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2069:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2058:2:139"},"nodeType":"YulFunctionCall","src":"2058:14:139"},"nodeType":"YulIf","src":"2055:2:139"},{"nodeType":"YulVariableDeclaration","src":"2108:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2122:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2133:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2118:3:139"},"nodeType":"YulFunctionCall","src":"2118:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2112:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2188:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2197:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2205:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2190:6:139"},"nodeType":"YulFunctionCall","src":"2190:22:139"},"nodeType":"YulExpressionStatement","src":"2190:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2167:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2171:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2163:3:139"},"nodeType":"YulFunctionCall","src":"2163:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2178:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2159:3:139"},"nodeType":"YulFunctionCall","src":"2159:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2152:6:139"},"nodeType":"YulFunctionCall","src":"2152:35:139"},"nodeType":"YulIf","src":"2149:2:139"},{"nodeType":"YulVariableDeclaration","src":"2223:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2246:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2233:12:139"},"nodeType":"YulFunctionCall","src":"2233:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2227:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2272:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2274:16:139"},"nodeType":"YulFunctionCall","src":"2274:18:139"},"nodeType":"YulExpressionStatement","src":"2274:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2264:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2268:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2261:2:139"},"nodeType":"YulFunctionCall","src":"2261:10:139"},"nodeType":"YulIf","src":"2258:2:139"},{"nodeType":"YulVariableDeclaration","src":"2303:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2317:1:139","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"2320:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2313:3:139"},"nodeType":"YulFunctionCall","src":"2313:10:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2307:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2332:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2352:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2346:5:139"},"nodeType":"YulFunctionCall","src":"2346:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2336:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2364:56:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2386:6:139"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"2402:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2406:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2398:3:139"},"nodeType":"YulFunctionCall","src":"2398:11:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2415:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2411:3:139"},"nodeType":"YulFunctionCall","src":"2411:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2394:3:139"},"nodeType":"YulFunctionCall","src":"2394:25:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2382:3:139"},"nodeType":"YulFunctionCall","src":"2382:38:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2368:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2479:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2481:16:139"},"nodeType":"YulFunctionCall","src":"2481:18:139"},"nodeType":"YulExpressionStatement","src":"2481:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2438:10:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2450:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2435:2:139"},"nodeType":"YulFunctionCall","src":"2435:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2458:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2470:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2455:2:139"},"nodeType":"YulFunctionCall","src":"2455:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2432:2:139"},"nodeType":"YulFunctionCall","src":"2432:46:139"},"nodeType":"YulIf","src":"2429:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2517:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2521:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2510:6:139"},"nodeType":"YulFunctionCall","src":"2510:22:139"},"nodeType":"YulExpressionStatement","src":"2510:22:139"},{"nodeType":"YulVariableDeclaration","src":"2541:17:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2552:6:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2545:3:139","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2574:6:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2582:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2567:6:139"},"nodeType":"YulFunctionCall","src":"2567:18:139"},"nodeType":"YulExpressionStatement","src":"2567:18:139"},{"nodeType":"YulAssignment","src":"2594:22:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2605:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2613:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2601:3:139"},"nodeType":"YulFunctionCall","src":"2601:15:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2594:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"2625:22:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2640:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2644:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2636:3:139"},"nodeType":"YulFunctionCall","src":"2636:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2629:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2693:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2702:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2710:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2695:6:139"},"nodeType":"YulFunctionCall","src":"2695:22:139"},"nodeType":"YulExpressionStatement","src":"2695:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2670:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2674:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2666:3:139"},"nodeType":"YulFunctionCall","src":"2666:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2679:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2662:3:139"},"nodeType":"YulFunctionCall","src":"2662:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2684:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2659:2:139"},"nodeType":"YulFunctionCall","src":"2659:33:139"},"nodeType":"YulIf","src":"2656:2:139"},{"nodeType":"YulVariableDeclaration","src":"2728:15:139","value":{"name":"value1","nodeType":"YulIdentifier","src":"2737:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2732:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2797:124:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2818:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2842:3:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2823:18:139"},"nodeType":"YulFunctionCall","src":"2823:23:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2811:6:139"},"nodeType":"YulFunctionCall","src":"2811:36:139"},"nodeType":"YulExpressionStatement","src":"2811:36:139"},{"nodeType":"YulAssignment","src":"2860:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2871:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2876:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2867:3:139"},"nodeType":"YulFunctionCall","src":"2867:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2860:3:139"}]},{"nodeType":"YulAssignment","src":"2892:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2903:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2908:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2899:3:139"},"nodeType":"YulFunctionCall","src":"2899:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2892:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2763:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2766:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2760:2:139"},"nodeType":"YulFunctionCall","src":"2760:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2770:18:139","statements":[{"nodeType":"YulAssignment","src":"2772:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2781:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"2784:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2777:3:139"},"nodeType":"YulFunctionCall","src":"2777:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2772:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"2756:3:139","statements":[]},"src":"2752:169:139"},{"nodeType":"YulAssignment","src":"2930:16:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2940:6:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2930:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1788:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1800:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1808:6:139","type":""}],"src":"1707:1245:139"},{"body":{"nodeType":"YulBlock","src":"3044:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"3090:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3099:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3107:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3092:6:139"},"nodeType":"YulFunctionCall","src":"3092:22:139"},"nodeType":"YulExpressionStatement","src":"3092:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3065:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3074:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3061:3:139"},"nodeType":"YulFunctionCall","src":"3061:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3086:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3057:3:139"},"nodeType":"YulFunctionCall","src":"3057:32:139"},"nodeType":"YulIf","src":"3054:2:139"},{"nodeType":"YulAssignment","src":"3125:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3148:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3135:12:139"},"nodeType":"YulFunctionCall","src":"3135:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3125:6:139"}]},{"nodeType":"YulAssignment","src":"3167:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3194:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3205:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3190:3:139"},"nodeType":"YulFunctionCall","src":"3190:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3177:12:139"},"nodeType":"YulFunctionCall","src":"3177:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3167:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3002:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3013:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3025:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3033:6:139","type":""}],"src":"2957:258:139"},{"body":{"nodeType":"YulBlock","src":"3357:293:139","statements":[{"nodeType":"YulVariableDeclaration","src":"3367:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3387:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3381:5:139"},"nodeType":"YulFunctionCall","src":"3381:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3371:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3403:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"3412:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3407:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3476:77:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3501:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"3506:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3497:3:139"},"nodeType":"YulFunctionCall","src":"3497:11:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3524:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"3532:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3520:3:139"},"nodeType":"YulFunctionCall","src":"3520:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"3536:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3516:3:139"},"nodeType":"YulFunctionCall","src":"3516:25:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3510:5:139"},"nodeType":"YulFunctionCall","src":"3510:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3490:6:139"},"nodeType":"YulFunctionCall","src":"3490:53:139"},"nodeType":"YulExpressionStatement","src":"3490:53:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3435:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"3438:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3432:2:139"},"nodeType":"YulFunctionCall","src":"3432:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3446:21:139","statements":[{"nodeType":"YulAssignment","src":"3448:17:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3457:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"3460:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3453:3:139"},"nodeType":"YulFunctionCall","src":"3453:12:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3448:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"3428:3:139","statements":[]},"src":"3424:129:139"},{"body":{"nodeType":"YulBlock","src":"3579:33:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3592:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"3597:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3588:3:139"},"nodeType":"YulFunctionCall","src":"3588:16:139"},{"name":"end","nodeType":"YulIdentifier","src":"3606:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3581:6:139"},"nodeType":"YulFunctionCall","src":"3581:29:139"},"nodeType":"YulExpressionStatement","src":"3581:29:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3568:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"3571:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3565:2:139"},"nodeType":"YulFunctionCall","src":"3565:13:139"},"nodeType":"YulIf","src":"3562:2:139"},{"nodeType":"YulAssignment","src":"3621:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3632:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"3637:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3628:3:139"},"nodeType":"YulFunctionCall","src":"3628:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3621:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3333:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3338:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3349:3:139","type":""}],"src":"3220:430:139"},{"body":{"nodeType":"YulBlock","src":"3756:102:139","statements":[{"nodeType":"YulAssignment","src":"3766:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3778:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3789:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3774:3:139"},"nodeType":"YulFunctionCall","src":"3774:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3766:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3808:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3823:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3839:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3844:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3835:3:139"},"nodeType":"YulFunctionCall","src":"3835:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3848:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3831:3:139"},"nodeType":"YulFunctionCall","src":"3831:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3819:3:139"},"nodeType":"YulFunctionCall","src":"3819:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3801:6:139"},"nodeType":"YulFunctionCall","src":"3801:51:139"},"nodeType":"YulExpressionStatement","src":"3801:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3725:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3736:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3747:4:139","type":""}],"src":"3655:203:139"},{"body":{"nodeType":"YulBlock","src":"4020:218:139","statements":[{"nodeType":"YulAssignment","src":"4030:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4042:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4053:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4038:3:139"},"nodeType":"YulFunctionCall","src":"4038:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4030:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"4065:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4083:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4088:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4079:3:139"},"nodeType":"YulFunctionCall","src":"4079:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4092:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4075:3:139"},"nodeType":"YulFunctionCall","src":"4075:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4069:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4110:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4125:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4133:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4121:3:139"},"nodeType":"YulFunctionCall","src":"4121:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4103:6:139"},"nodeType":"YulFunctionCall","src":"4103:34:139"},"nodeType":"YulExpressionStatement","src":"4103:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4157:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4168:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4153:3:139"},"nodeType":"YulFunctionCall","src":"4153:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4177:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4185:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4173:3:139"},"nodeType":"YulFunctionCall","src":"4173:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4146:6:139"},"nodeType":"YulFunctionCall","src":"4146:43:139"},"nodeType":"YulExpressionStatement","src":"4146:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4209:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4220:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4205:3:139"},"nodeType":"YulFunctionCall","src":"4205:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"4225:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4198:6:139"},"nodeType":"YulFunctionCall","src":"4198:34:139"},"nodeType":"YulExpressionStatement","src":"4198:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3973:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3984:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3992:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4000:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4011:4:139","type":""}],"src":"3863:375:139"},{"body":{"nodeType":"YulBlock","src":"4372:145:139","statements":[{"nodeType":"YulAssignment","src":"4382:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4394:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4405:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4390:3:139"},"nodeType":"YulFunctionCall","src":"4390:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4382:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4424:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4439:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4455:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4460:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4451:3:139"},"nodeType":"YulFunctionCall","src":"4451:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4464:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4447:3:139"},"nodeType":"YulFunctionCall","src":"4447:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4435:3:139"},"nodeType":"YulFunctionCall","src":"4435:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4417:6:139"},"nodeType":"YulFunctionCall","src":"4417:51:139"},"nodeType":"YulExpressionStatement","src":"4417:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4488:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4499:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4484:3:139"},"nodeType":"YulFunctionCall","src":"4484:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4504:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4477:6:139"},"nodeType":"YulFunctionCall","src":"4477:34:139"},"nodeType":"YulExpressionStatement","src":"4477:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4333:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4344:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4352:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4363:4:139","type":""}],"src":"4243:274:139"},{"body":{"nodeType":"YulBlock","src":"4617:92:139","statements":[{"nodeType":"YulAssignment","src":"4627:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4639:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4650:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4635:3:139"},"nodeType":"YulFunctionCall","src":"4635:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4627:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4669:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4694:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4687:6:139"},"nodeType":"YulFunctionCall","src":"4687:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4680:6:139"},"nodeType":"YulFunctionCall","src":"4680:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4662:6:139"},"nodeType":"YulFunctionCall","src":"4662:41:139"},"nodeType":"YulExpressionStatement","src":"4662:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4586:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4597:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4608:4:139","type":""}],"src":"4522:187:139"},{"body":{"nodeType":"YulBlock","src":"4834:102:139","statements":[{"nodeType":"YulAssignment","src":"4844:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:139"},"nodeType":"YulFunctionCall","src":"4852:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4844:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4886:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4901:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4917:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4922:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4913:3:139"},"nodeType":"YulFunctionCall","src":"4913:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4926:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4909:3:139"},"nodeType":"YulFunctionCall","src":"4909:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4897:3:139"},"nodeType":"YulFunctionCall","src":"4897:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4879:6:139"},"nodeType":"YulFunctionCall","src":"4879:51:139"},"nodeType":"YulExpressionStatement","src":"4879:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4803:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4814:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4825:4:139","type":""}],"src":"4714:222:139"},{"body":{"nodeType":"YulBlock","src":"5115:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5132:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5143:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5125:6:139"},"nodeType":"YulFunctionCall","src":"5125:21:139"},"nodeType":"YulExpressionStatement","src":"5125:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5166:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5177:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5162:3:139"},"nodeType":"YulFunctionCall","src":"5162:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5182:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5155:6:139"},"nodeType":"YulFunctionCall","src":"5155:29:139"},"nodeType":"YulExpressionStatement","src":"5155:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5204:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5215:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5200:3:139"},"nodeType":"YulFunctionCall","src":"5200:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5220:11:139","type":"","value":"not voter"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:139"},"nodeType":"YulFunctionCall","src":"5193:39:139"},"nodeType":"YulExpressionStatement","src":"5193:39:139"},{"nodeType":"YulAssignment","src":"5241:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5253:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5264:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5249:3:139"},"nodeType":"YulFunctionCall","src":"5249:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5241:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5092:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5106:4:139","type":""}],"src":"4941:332:139"},{"body":{"nodeType":"YulBlock","src":"5452:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5469:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5480:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5462:6:139"},"nodeType":"YulFunctionCall","src":"5462:21:139"},"nodeType":"YulExpressionStatement","src":"5462:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5503:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5514:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5499:3:139"},"nodeType":"YulFunctionCall","src":"5499:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5519:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5492:6:139"},"nodeType":"YulFunctionCall","src":"5492:30:139"},"nodeType":"YulExpressionStatement","src":"5492:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5542:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5553:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5538:3:139"},"nodeType":"YulFunctionCall","src":"5538:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5558:16:139","type":"","value":"rewardRate = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5531:6:139"},"nodeType":"YulFunctionCall","src":"5531:44:139"},"nodeType":"YulExpressionStatement","src":"5531:44:139"},{"nodeType":"YulAssignment","src":"5584:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5596:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5607:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:139"},"nodeType":"YulFunctionCall","src":"5592:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5584:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5429:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5443:4:139","type":""}],"src":"5278:338:139"},{"body":{"nodeType":"YulBlock","src":"5795:171:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5812:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5823:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5805:6:139"},"nodeType":"YulFunctionCall","src":"5805:21:139"},"nodeType":"YulExpressionStatement","src":"5805:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5846:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5857:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5842:3:139"},"nodeType":"YulFunctionCall","src":"5842:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5862:2:139","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5835:6:139"},"nodeType":"YulFunctionCall","src":"5835:30:139"},"nodeType":"YulExpressionStatement","src":"5835:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5885:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5896:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5881:3:139"},"nodeType":"YulFunctionCall","src":"5881:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5901:23:139","type":"","value":"not ve approved owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5874:6:139"},"nodeType":"YulFunctionCall","src":"5874:51:139"},"nodeType":"YulExpressionStatement","src":"5874:51:139"},{"nodeType":"YulAssignment","src":"5934:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5946:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5957:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5942:3:139"},"nodeType":"YulFunctionCall","src":"5942:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5934:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_70c9179e1ee681f9739862498a1f804b5e460fb0bd86bf2b2fd229fa563cb29f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5772:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5786:4:139","type":""}],"src":"5621:345:139"},{"body":{"nodeType":"YulBlock","src":"6145:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6162:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6173:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6155:6:139"},"nodeType":"YulFunctionCall","src":"6155:21:139"},"nodeType":"YulExpressionStatement","src":"6155:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6196:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6207:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6192:3:139"},"nodeType":"YulFunctionCall","src":"6192:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6212:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6185:6:139"},"nodeType":"YulFunctionCall","src":"6185:30:139"},"nodeType":"YulExpressionStatement","src":"6185:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6235:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6246:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6231:3:139"},"nodeType":"YulFunctionCall","src":"6231:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6251:21:139","type":"","value":"transferFrom failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6224:6:139"},"nodeType":"YulFunctionCall","src":"6224:49:139"},"nodeType":"YulExpressionStatement","src":"6224:49:139"},{"nodeType":"YulAssignment","src":"6282:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6294:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6305:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6290:3:139"},"nodeType":"YulFunctionCall","src":"6290:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6282:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6122:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6136:4:139","type":""}],"src":"5971:343:139"},{"body":{"nodeType":"YulBlock","src":"6493:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6510:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6521:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6503:6:139"},"nodeType":"YulFunctionCall","src":"6503:21:139"},"nodeType":"YulExpressionStatement","src":"6503:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6544:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6555:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6540:3:139"},"nodeType":"YulFunctionCall","src":"6540:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6560:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6533:6:139"},"nodeType":"YulFunctionCall","src":"6533:30:139"},"nodeType":"YulExpressionStatement","src":"6533:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6583:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6594:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6579:3:139"},"nodeType":"YulFunctionCall","src":"6579:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6599:26:139","type":"","value":"Provided reward too high"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6572:6:139"},"nodeType":"YulFunctionCall","src":"6572:54:139"},"nodeType":"YulExpressionStatement","src":"6572:54:139"},{"nodeType":"YulAssignment","src":"6635:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6647:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6658:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6643:3:139"},"nodeType":"YulFunctionCall","src":"6643:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6635:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6470:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6484:4:139","type":""}],"src":"6319:348:139"},{"body":{"nodeType":"YulBlock","src":"6846:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6863:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6874:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6856:6:139"},"nodeType":"YulFunctionCall","src":"6856:21:139"},"nodeType":"YulExpressionStatement","src":"6856:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6897:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6908:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6893:3:139"},"nodeType":"YulFunctionCall","src":"6893:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6913:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6886:6:139"},"nodeType":"YulFunctionCall","src":"6886:30:139"},"nodeType":"YulExpressionStatement","src":"6886:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6936:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6947:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6932:3:139"},"nodeType":"YulFunctionCall","src":"6932:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6952:20:139","type":"","value":"invalid token code"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6925:6:139"},"nodeType":"YulFunctionCall","src":"6925:48:139"},"nodeType":"YulExpressionStatement","src":"6925:48:139"},{"nodeType":"YulAssignment","src":"6982:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6994:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7005:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6990:3:139"},"nodeType":"YulFunctionCall","src":"6990:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6982:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6823:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6837:4:139","type":""}],"src":"6672:342:139"},{"body":{"nodeType":"YulBlock","src":"7193:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7210:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7221:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7203:6:139"},"nodeType":"YulFunctionCall","src":"7203:21:139"},"nodeType":"YulExpressionStatement","src":"7203:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7244:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7255:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7240:3:139"},"nodeType":"YulFunctionCall","src":"7240:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7260:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7233:6:139"},"nodeType":"YulFunctionCall","src":"7233:30:139"},"nodeType":"YulExpressionStatement","src":"7233:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7283:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7294:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7279:3:139"},"nodeType":"YulFunctionCall","src":"7279:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7299:17:139","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7272:6:139"},"nodeType":"YulFunctionCall","src":"7272:45:139"},"nodeType":"YulExpressionStatement","src":"7272:45:139"},{"nodeType":"YulAssignment","src":"7326:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7338:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7349:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7334:3:139"},"nodeType":"YulFunctionCall","src":"7334:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7326:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7170:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7184:4:139","type":""}],"src":"7019:339:139"},{"body":{"nodeType":"YulBlock","src":"7537:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7554:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7565:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7547:6:139"},"nodeType":"YulFunctionCall","src":"7547:21:139"},"nodeType":"YulExpressionStatement","src":"7547:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7588:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7599:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7584:3:139"},"nodeType":"YulFunctionCall","src":"7584:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7604:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7577:6:139"},"nodeType":"YulFunctionCall","src":"7577:30:139"},"nodeType":"YulExpressionStatement","src":"7577:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7627:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7638:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7623:3:139"},"nodeType":"YulFunctionCall","src":"7623:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7643:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7616:6:139"},"nodeType":"YulFunctionCall","src":"7616:61:139"},"nodeType":"YulExpressionStatement","src":"7616:61:139"},{"nodeType":"YulAssignment","src":"7686:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7698:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7709:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7694:3:139"},"nodeType":"YulFunctionCall","src":"7694:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7686:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7514:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7528:4:139","type":""}],"src":"7363:355:139"},{"body":{"nodeType":"YulBlock","src":"7897:163:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7914:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7925:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7907:6:139"},"nodeType":"YulFunctionCall","src":"7907:21:139"},"nodeType":"YulExpressionStatement","src":"7907:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7948:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7959:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7944:3:139"},"nodeType":"YulFunctionCall","src":"7944:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7964:2:139","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7937:6:139"},"nodeType":"YulFunctionCall","src":"7937:30:139"},"nodeType":"YulExpressionStatement","src":"7937:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7987:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7998:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7983:3:139"},"nodeType":"YulFunctionCall","src":"7983:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8003:15:139","type":"","value":"amount < left"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7976:6:139"},"nodeType":"YulFunctionCall","src":"7976:43:139"},"nodeType":"YulExpressionStatement","src":"7976:43:139"},{"nodeType":"YulAssignment","src":"8028:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8040:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8051:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8036:3:139"},"nodeType":"YulFunctionCall","src":"8036:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8028:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7874:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7888:4:139","type":""}],"src":"7723:337:139"},{"body":{"nodeType":"YulBlock","src":"8239:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8256:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8267:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8249:6:139"},"nodeType":"YulFunctionCall","src":"8249:21:139"},"nodeType":"YulExpressionStatement","src":"8249:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8290:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8301:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8286:3:139"},"nodeType":"YulFunctionCall","src":"8286:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8306:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8279:6:139"},"nodeType":"YulFunctionCall","src":"8279:30:139"},"nodeType":"YulExpressionStatement","src":"8279:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8329:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8340:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8325:3:139"},"nodeType":"YulFunctionCall","src":"8325:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8345:12:139","type":"","value":"amount = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8318:6:139"},"nodeType":"YulFunctionCall","src":"8318:40:139"},"nodeType":"YulExpressionStatement","src":"8318:40:139"},{"nodeType":"YulAssignment","src":"8367:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8379:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8390:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8375:3:139"},"nodeType":"YulFunctionCall","src":"8375:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8367:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8216:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8230:4:139","type":""}],"src":"8065:334:139"},{"body":{"nodeType":"YulBlock","src":"8505:76:139","statements":[{"nodeType":"YulAssignment","src":"8515:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8527:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8538:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8523:3:139"},"nodeType":"YulFunctionCall","src":"8523:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8515:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8557:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8568:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8550:6:139"},"nodeType":"YulFunctionCall","src":"8550:25:139"},"nodeType":"YulExpressionStatement","src":"8550:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8474:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8485:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8496:4:139","type":""}],"src":"8404:177:139"},{"body":{"nodeType":"YulBlock","src":"8715:119:139","statements":[{"nodeType":"YulAssignment","src":"8725:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8737:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8748:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8733:3:139"},"nodeType":"YulFunctionCall","src":"8733:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8725:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8767:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8778:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8760:6:139"},"nodeType":"YulFunctionCall","src":"8760:25:139"},"nodeType":"YulExpressionStatement","src":"8760:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8805:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8816:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8801:3:139"},"nodeType":"YulFunctionCall","src":"8801:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"8821:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8794:6:139"},"nodeType":"YulFunctionCall","src":"8794:34:139"},"nodeType":"YulExpressionStatement","src":"8794:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8676:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8687:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8695:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8706:4:139","type":""}],"src":"8586:248:139"},{"body":{"nodeType":"YulBlock","src":"8887:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"8914:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8916:16:139"},"nodeType":"YulFunctionCall","src":"8916:18:139"},"nodeType":"YulExpressionStatement","src":"8916:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8903:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8910:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8906:3:139"},"nodeType":"YulFunctionCall","src":"8906:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8900:2:139"},"nodeType":"YulFunctionCall","src":"8900:13:139"},"nodeType":"YulIf","src":"8897:2:139"},{"nodeType":"YulAssignment","src":"8945:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8956:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"8959:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8952:3:139"},"nodeType":"YulFunctionCall","src":"8952:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"8945:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8870:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"8873:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"8879:3:139","type":""}],"src":"8839:128:139"},{"body":{"nodeType":"YulBlock","src":"9018:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"9049:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"9070:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9077:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9082:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9073:3:139"},"nodeType":"YulFunctionCall","src":"9073:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9063:6:139"},"nodeType":"YulFunctionCall","src":"9063:31:139"},"nodeType":"YulExpressionStatement","src":"9063:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9114:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9117:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9107:6:139"},"nodeType":"YulFunctionCall","src":"9107:15:139"},"nodeType":"YulExpressionStatement","src":"9107:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"9142:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"9145:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9135:6:139"},"nodeType":"YulFunctionCall","src":"9135:15:139"},"nodeType":"YulExpressionStatement","src":"9135:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9038:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9031:6:139"},"nodeType":"YulFunctionCall","src":"9031:9:139"},"nodeType":"YulIf","src":"9028:2:139"},{"nodeType":"YulAssignment","src":"9169:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9178:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9181:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9174:3:139"},"nodeType":"YulFunctionCall","src":"9174:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"9169:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9003:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9006:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"9012:1:139","type":""}],"src":"8972:217:139"},{"body":{"nodeType":"YulBlock","src":"9246:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"9305:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9307:16:139"},"nodeType":"YulFunctionCall","src":"9307:18:139"},"nodeType":"YulExpressionStatement","src":"9307:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9277:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9270:6:139"},"nodeType":"YulFunctionCall","src":"9270:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9263:6:139"},"nodeType":"YulFunctionCall","src":"9263:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9285:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9296:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9292:3:139"},"nodeType":"YulFunctionCall","src":"9292:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"9300:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9288:3:139"},"nodeType":"YulFunctionCall","src":"9288:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9282:2:139"},"nodeType":"YulFunctionCall","src":"9282:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9259:3:139"},"nodeType":"YulFunctionCall","src":"9259:45:139"},"nodeType":"YulIf","src":"9256:2:139"},{"nodeType":"YulAssignment","src":"9336:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9351:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9354:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9347:3:139"},"nodeType":"YulFunctionCall","src":"9347:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"9336:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9225:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9228:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"9234:7:139","type":""}],"src":"9194:168:139"},{"body":{"nodeType":"YulBlock","src":"9416:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"9438:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9440:16:139"},"nodeType":"YulFunctionCall","src":"9440:18:139"},"nodeType":"YulExpressionStatement","src":"9440:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9432:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9435:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9429:2:139"},"nodeType":"YulFunctionCall","src":"9429:8:139"},"nodeType":"YulIf","src":"9426:2:139"},{"nodeType":"YulAssignment","src":"9469:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9481:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9484:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9477:3:139"},"nodeType":"YulFunctionCall","src":"9477:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9469:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9398:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9401:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9407:4:139","type":""}],"src":"9367:125:139"},{"body":{"nodeType":"YulBlock","src":"9544:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"9575:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9577:16:139"},"nodeType":"YulFunctionCall","src":"9577:18:139"},"nodeType":"YulExpressionStatement","src":"9577:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9560:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9571:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9567:3:139"},"nodeType":"YulFunctionCall","src":"9567:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9557:2:139"},"nodeType":"YulFunctionCall","src":"9557:17:139"},"nodeType":"YulIf","src":"9554:2:139"},{"nodeType":"YulAssignment","src":"9606:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9617:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"9624:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9613:3:139"},"nodeType":"YulFunctionCall","src":"9613:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9606:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9526:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9536:3:139","type":""}],"src":"9497:135:139"},{"body":{"nodeType":"YulBlock","src":"9669:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9686:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9693:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9698:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9689:3:139"},"nodeType":"YulFunctionCall","src":"9689:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9679:6:139"},"nodeType":"YulFunctionCall","src":"9679:31:139"},"nodeType":"YulExpressionStatement","src":"9679:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9726:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9729:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9719:6:139"},"nodeType":"YulFunctionCall","src":"9719:15:139"},"nodeType":"YulExpressionStatement","src":"9719:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9750:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9753:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9743:6:139"},"nodeType":"YulFunctionCall","src":"9743:15:139"},"nodeType":"YulExpressionStatement","src":"9743:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9637:127:139"},{"body":{"nodeType":"YulBlock","src":"9801:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9818:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9825:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9830:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9821:3:139"},"nodeType":"YulFunctionCall","src":"9821:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9811:6:139"},"nodeType":"YulFunctionCall","src":"9811:31:139"},"nodeType":"YulExpressionStatement","src":"9811:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9858:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9861:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9851:6:139"},"nodeType":"YulFunctionCall","src":"9851:15:139"},"nodeType":"YulExpressionStatement","src":"9851:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9882:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9885:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9875:6:139"},"nodeType":"YulFunctionCall","src":"9875:15:139"},"nodeType":"YulExpressionStatement","src":"9875:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"9769:127:139"},{"body":{"nodeType":"YulBlock","src":"9946:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"10010:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10019:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10022:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10012:6:139"},"nodeType":"YulFunctionCall","src":"10012:12:139"},"nodeType":"YulExpressionStatement","src":"10012:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9969:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9980:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9995:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10000:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9991:3:139"},"nodeType":"YulFunctionCall","src":"9991:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10004:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9987:3:139"},"nodeType":"YulFunctionCall","src":"9987:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9976:3:139"},"nodeType":"YulFunctionCall","src":"9976:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9966:2:139"},"nodeType":"YulFunctionCall","src":"9966:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9959:6:139"},"nodeType":"YulFunctionCall","src":"9959:50:139"},"nodeType":"YulIf","src":"9956:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9935:5:139","type":""}],"src":"9901:131:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value1, value1) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _4)\n        dst := add(memPtr, _1)\n        let src := add(_3, _1)\n        if gt(add(add(_3, _5), _1), dataEnd) { revert(value1, value1) }\n        let i := value1\n        for { } lt(i, _4) { i := add(i, 1) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value1 := memPtr\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        let i := end\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n        }\n        if gt(i, length) { mstore(add(pos, length), end) }\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"not voter\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"rewardRate = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_70c9179e1ee681f9739862498a1f804b5e460fb0bd86bf2b2fd229fa563cb29f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"not ve approved owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"transferFrom failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Provided reward too high\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"invalid token code\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"transfer failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"amount < left\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"amount = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"20945":[{"length":32,"start":880},{"length":32,"start":2499},{"length":32,"start":2614},{"length":32,"start":3338},{"length":32,"start":3533},{"length":32,"start":5798},{"length":32,"start":5913},{"length":32,"start":6297}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101bb5760003560e01c80639ce43f90116100fa578063e68863961161009d578063e688639614610498578063e8111a12146104a0578063f1229777146104a9578063f25e55a5146104bc578063f301af42146104e7578063f3207723146104fa578063f5f8d3651461050d578063f7412baf14610520578063fd3140981461054757600080fd5b80639ce43f90146103dd5780639e2bf22c146103fd578063a28d4c9c14610410578063a7852afa14610423578063aa47965214610436578063aaf5eb6814610456578063b66503cf14610465578063da09d19d1461047857600080fd5b80634d5ce038116101625780634d5ce038146102dd57806350589793146103105780635a45d05214610330578063638634ee1461034557806376f4be36146103585780637b1039991461036b57806399bcc052146103aa5780639cc7f708146103bd57600080fd5b806301316ddf146101c057806318160ddd1461020c5780631be0528914610223578063221ca18c1461022d5780632ce9aead1461024d5780633b8819991461026d5780633e491d471461029857806349dcc204146102ab575b600080fd5b6101f26101ce366004612836565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61021560095481565b604051908152602001610203565b61021562093a8081565b61021561023b3660046127fe565b60016020526000908152604090205481565b61021561025b3660046127fe565b60036020526000908152604090205481565b61021561027b366004612836565b600660209081526000928352604080842090915290825290205481565b6102156102a6366004612836565b61055a565b6101f26102b9366004612984565b600b6020908152600092835260408084209091529082529020805460019091015482565b6103006102eb3660046127fe565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b61021561031e366004612881565b600c6020526000908152604090205481565b61034361033e366004612836565b6107c2565b005b6102156103533660046127fe565b6107fa565b610215610366366004612881565b61081e565b6103927f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102156103b83660046127fe565b610950565b6102156103cb366004612881565b600a6020526000908152604090205481565b6102156103eb3660046127fe565b60046020526000908152604090205481565b61034361040b366004612984565b6109c1565b61021561041e366004612984565b610b9a565b6103436104313660046128b1565b610cdd565b6102156104443660046127fe565b60106020526000908152604090205481565b610215670de0b6b3a764000081565b610343610473366004612836565b6111c2565b6102156104863660046127fe565b60026020526000908152604090205481565b600754610215565b610215600e5481565b6102156104b73660046127fe565b6115ba565b6102156104ca366004612836565b600560209081526000928352604080842090915290825290205481565b6103926104f5366004612881565b61167a565b610343610508366004612984565b6116a4565b61034361051b3660046128b1565b61186c565b6101f261052e366004612881565b600d602052600090815260409020805460019091015482565b6101f2610555366004612836565b611cc5565b6001600160a01b0382166000818152600560209081526040808320858452825280832054938352600f82528083208380529091528120549091829161059f9190611ee4565b6000848152600c60205260409020549091506105bf5760009150506107bc565b60006105cb8483610b9a565b6000858152600c6020526040812054919250906105ea90600190612abb565b9050600060016105fa8484612abb565b111561070057825b61060d600184612abb565b8110156106fe576000878152600b60208181526040808420858552808352818520825180840190935280548352600190810154838501528c8652939092529291829061065a908690612a64565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006106998b8460000151611cc5565b50905060006106ac8c8460000151611cc5565b509050670de0b6b3a76400006106c28383612abb565b85602001516106d19190612a9c565b6106db9190612a7c565b6106e59087612a64565b95505050505080806106f690612ad2565b915050610602565b505b6000868152600b60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610740908a90611cc5565b506001600160a01b038a1660009081526006602090815260408083208c8452909152902054909150670de0b6b3a76400009061077d908390611ee4565b6107868b6115ba565b6107909190612abb565b836020015161079f9190612a9c565b6107a99190612a7c565b6107b39084612a64565b96505050505050505b92915050565b6107cc8282611efb565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546107bc90429061205a565b600e54600090806108325750600092915050565b82600d6000610842600185612abb565b8152602001908152602001600020600001541161086b57610864600182612abb565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee548310156108a65750600092915050565b6000806108b4600184612abb565b90505b8181111561094857600060026108cd8484612abb565b6108d79190612a7c565b6108e19083612abb565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610922575095945050505050565b805187111561093357819350610941565b61093e600183612abb565b92505b50506108b7565b509392505050565b6001600160a01b038116600090815260026020526040812054421061097757506000919050565b6001600160a01b03821660009081526002602052604081205461099b904290612abb565b6001600160a01b0384166000908152600160205260409020549091506108649082612a9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8d57600080fd5b505afa158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac5919061281a565b6001600160a01b0316336001600160a01b031614610afe5760405162461bcd60e51b8152600401610af5906129de565b60405180910390fd5b8160096000828254610b109190612abb565b90915550506000818152600a602052604081208054849290610b33908490612abb565b90915550506000818152600a6020526040902054610b52908290612069565b610b5a612142565b604080518281526020810184905233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a25050565b6000828152600c602052604081205480610bb85760009150506107bc565b6000848152600b602052604081208491610bd3600185612abb565b81526020019081526020016000206000015411610bfd57610bf5600182612abb565b9150506107bc565b6000848152600b60209081526040808320838052909152902054831015610c285760009150506107bc565b600080610c36600184612abb565b90505b81811115610cd45760006002610c4f8484612abb565b610c599190612a7c565b610c639083612abb565b6000888152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610cae575093506107bc92505050565b8051871115610cbf57819350610ccd565b610cca600183612abb565b92505b5050610c39565b50949350505050565b60026000541415610d005760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6157600080fd5b505afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d99919061281a565b6001600160a01b0316336001600160a01b031614610dc95760405162461bcd60e51b8152600401610af5906129de565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c919061281a565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610e8991815260200190565b60206040518083038186803b158015610ea157600080fd5b505afa158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed9919061281a565b905060005b82518110156111b757610f17838281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60200260200101516121e6565b60046000868581518110610f3b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000888781518110610f8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff2848381518110610fe457634e487b7160e01b600052603260045260246000fd5b60200260200101518661055a565b9050426005600086858151811061101957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000878152602001908152602001600020819055506004600085848151811061107a57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008685815181106110c757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812089825290925290205580156111305761113084838151811061112157634e487b7160e01b600052603260045260246000fd5b602002602001015184836123c9565b83828151811061115057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316836001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161119c91815260200190565b60405180910390a350806111af81612ad2565b915050610ede565b505060016000555050565b600260005414156111e55760405162461bcd60e51b8152600401610af590612a2d565b6002600055806112245760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610af5565b6001600160a01b03821660009081526001602052604090205461124d5761124d82600042612500565b611256826121e6565b6001600160a01b03841660009081526004602090815260408083206003835281842094909455939092556002909152205442106112c457611299823330846125ef565b6112a662093a8082612a7c565b6001600160a01b038316600090815260016020526040902055611390565b6001600160a01b0382166000908152600260205260408120546112e8904290612abb565b6001600160a01b0384166000908152600160205260408120549192509061130f9083612a9c565b90508083116113505760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610af5565b61135c843330866125ef565b62093a8061136a8285612a64565b6113749190612a7c565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b0382166000908152600160205260409020546113e65760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610af5565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561142857600080fd5b505afa15801561143c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114609190612899565b905061146f62093a8082612a7c565b6001600160a01b03841660009081526001602052604090205411156114d15760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610af5565b6114de62093a8042612a64565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff16611570576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b6000600954600014156115e357506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a764000092916116269161205a565b61162f866107fa565b6116399190612abb565b6116439190612a9c565b61164d9190612a9c565b6116579190612a7c565b6001600160a01b0383166000908152600460205260409020546107bc9190612a64565b6007818154811061168a57600080fd5b6000918252602090912001546001600160a01b0316905081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561177057600080fd5b505afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a8919061281a565b6001600160a01b0316336001600160a01b0316146117d85760405162461bcd60e51b8152600401610af5906129de565b81600960008282546117ea9190612a64565b90915550506000818152600a60205260408120805484929061180d908490612a64565b90915550506000818152600a602052604090205461182c908290612069565b611834612142565b604080518281526020810184905233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159101610b8e565b6002600054141561188f5760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118f057600080fd5b505afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611928919061281a565b60405163430c208160e01b8152336004820152602481018490526001600160a01b03919091169063430c20819060440160206040518083038186803b15801561197057600080fd5b505afa158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a89190612861565b6119ec5760405162461bcd60e51b81526020600482015260156024820152743737ba103b329030b8383937bb32b21037bbb732b960591b6044820152606401610af5565b60005b8151811015611cbb57611a1b828281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60046000858581518110611a3f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110611a8d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000611af6838381518110611ae857634e487b7160e01b600052603260045260246000fd5b60200260200101518561055a565b90504260056000858581518110611b1d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008681526020019081526020016000208190555060046000848481518110611b7e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460066000858581518110611bcb57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281810192909252604090810160009081208882529092529020558015611c3457611c34838381518110611c2557634e487b7160e01b600052603260045260246000fd5b602002602001015133836123c9565b828281518110611c5457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc983604051611ca091815260200190565b60405180910390a35080611cb381612ad2565b9150506119ef565b5050600160005550565b6001600160a01b038216600090815260106020526040812054819080611cf2576000809250925050611edd565b6001600160a01b0385166000908152600f602052604081208591611d17600185612abb565b81526020019081526020016000206000015411611db4576001600160a01b0385166000908152600f6020526040812090611d52600184612abb565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611d989190612abb565b8152602001908152602001600020600001549250925050611edd565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611dec576000809250925050611edd565b600080611dfa600184612abb565b90505b81811115611eac5760006002611e138484612abb565b611e1d9190612a7c565b611e279083612abb565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611e8657602081015190519096509450611edd9350505050565b8051881115611e9757819350611ea5565b611ea2600183612abb565b92505b5050611dfd565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611ef45781610864565b5090919050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f335792509050611edd565b6001600160a01b038616600090815260016020526040902054611f5c579250429150611edd9050565b6000611f678361081e565b90506000611f836001600e54611f7d9190612abb565b8861205a565b9050815b8181101561204b576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612038576000600d81611fcc856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120178d8460000151866000015187602001518d612733565b90925090506120268289612a64565b97506120338d8983612500565b975050505b508061204381612ad2565b915050611f87565b50919792965091945050505050565b6000818310611ef45781610864565b6000828152600c6020526040902054429080158015906120b357506000848152600b60205260408120839161209f600185612abb565b815260200190815260200160002060000154145b156120ec576000848152600b6020526040812084916120d3600185612abb565b815260208101919091526040016000206001015561213c565b60408051808201825283815260208082018681526000888152600b835284812086825290925292902090518155905160019182015561212c908290612a64565b6000858152600c60205260409020555b50505050565b600e54428115801590612174575080600d6000612160600186612abb565b815260200190815260200160002060000154145b156121a357600954600d600061218b600186612abb565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d909152929092209051815590516001918201556121df908390612a64565b600e555050565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e548392919061221e5794909350915050565b6001600160a01b038516600090815260016020526040902054612245579442945092505050565b60006122508361081e565b905060006001600e546122639190612abb565b905060016122718383612abb565b111561234957815b612284600183612abb565b811015612347576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612334576000600d816122c8856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806123138c8460000151866000015187602001518d612733565b90925090506123228289612a64565b975061232f8c8983612500565b975050505b508061233f81612ad2565b915050612279565b505b6000818152600d602090815260409182902082518084019093528054835260010154908201819052156123bb57600061239c896123858b6107fa565b8451612391908a611ee4565b85602001518a612733565b5090506123a98186612a64565b94506123b6898642612500565b429550505b509196929550919350505050565b6000836001600160a01b03163b116123f35760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161244f91906129a5565b6000604051808303816000865af19150503d806000811461248c576040519150601f19603f3d011682016040523d82523d6000602084013e612491565b606091505b50915091508180156124bb5750805115806124bb5750808060200190518101906124bb9190612861565b6124f95760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610af5565b5050505050565b6001600160a01b038316600090815260106020526040902054801580159061255c57506001600160a01b0384166000908152600f602052604081208391612548600185612abb565b815260200190815260200160002060000154145b15612586576001600160a01b0384166000908152600f6020526040812084916120d3600185612abb565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f83528481208682529092529290209051815590516001918201556125d0908290612a64565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116126195760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161267d91906129a5565b6000604051808303816000865af19150503d80600081146126ba576040519150601f19603f3d011682016040523d82523d6000602084013e6126bf565b606091505b50915091508180156126e95750805115806126e95750808060200190518101906126e99190612861565b61272b5760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610af5565b505050505050565b60008060006127428785611ee4565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906127956127778a89611ee4565b6001600160a01b038d1660009081526002602052604090205461205a565b6001600160a01b038c166000908152600260205260409020546127b990869061205a565b6127c39190612abb565b6127cd9190612a9c565b6127d79190612a9c565b6127e19190612a7c565b9890975095505050505050565b80356127f981612b19565b919050565b60006020828403121561280f578081fd5b813561086481612b19565b60006020828403121561282b578081fd5b815161086481612b19565b60008060408385031215612848578081fd5b823561285381612b19565b946020939093013593505050565b600060208284031215612872578081fd5b81518015158114610864578182fd5b600060208284031215612892578081fd5b5035919050565b6000602082840312156128aa578081fd5b5051919050565b600080604083850312156128c3578182fd5b8235915060208084013567ffffffffffffffff808211156128e2578384fd5b818601915086601f8301126128f5578384fd5b81358181111561290757612907612b03565b8060051b604051601f19603f8301168101818110858211171561292c5761292c612b03565b604052828152858101935084860182860187018b101561294a578788fd5b8795505b838610156129735761295f816127ee565b85526001959095019493860193860161294e565b508096505050505050509250929050565b60008060408385031215612996578182fd5b50508035926020909101359150565b60008251815b818110156129c557602081860181015185830152016129ab565b818111156129d35782828501525b509190910192915050565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008219821115612a7757612a77612aed565b500190565b600082612a9757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612ab657612ab6612aed565b500290565b600082821015612acd57612acd612aed565b500390565b6000600019821415612ae657612ae6612aed565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612b2e57600080fd5b5056fea2646970667358221220096bfcc92c3019eef9e8f3ae2328fca435bc272aae41d44647b280c78dfd130464736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9CE43F90 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xF25E55A5 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF3207723 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF5F8D365 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x9E2BF22C EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA28D4C9C EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA7852AFA EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4D5CE038 GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x50589793 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x9CC7F708 EQ PUSH2 0x3BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x3B881999 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3E491D47 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49DCC204 EQ PUSH2 0x2AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x215 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x300 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x31E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x33E CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x7C2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x215 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x81E JUMP JUMPDEST PUSH2 0x392 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0xCDD JUMP JUMPDEST PUSH2 0x215 PUSH2 0x444 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x11C2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x486 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x215 JUMP JUMPDEST PUSH2 0x215 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x167A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x16A4 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0x186C JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x1CC5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP4 DUP4 MSTORE PUSH1 0xF DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x5BF JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CB DUP5 DUP4 PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x5EA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x5FA DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x700 JUMPI DUP3 JUMPDEST PUSH2 0x60D PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP6 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE DUP13 DUP7 MSTORE SWAP4 SWAP1 SWAP3 MSTORE SWAP3 SWAP2 DUP3 SWAP1 PUSH2 0x65A SWAP1 DUP7 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x699 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x6AC DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x6C2 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x6D1 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x6DB SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x6E5 SWAP1 DUP8 PUSH2 0x2A64 JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x6F6 SWAP1 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x602 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x740 SWAP1 DUP11 SWAP1 PUSH2 0x1CC5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP13 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x77D SWAP1 DUP4 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH2 0x786 DUP12 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x790 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x79F SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x7A9 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x7B3 SWAP1 DUP5 PUSH2 0x2A64 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7CC DUP3 DUP3 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7BC SWAP1 TIMESTAMP SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x832 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0x842 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x86B JUMPI PUSH2 0x864 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0x8A6 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B4 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x8CD DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x8D7 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x8E1 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x922 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x933 JUMPI DUP2 SWAP4 POP PUSH2 0x941 JUMP JUMPDEST PUSH2 0x93E PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x8B7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x977 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x99B SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x864 SWAP1 DUP3 PUSH2 0x2A9C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC5 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB10 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xB33 SWAP1 DUP5 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xB52 SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0xB5A PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0xF279E6A1F5E320CCA91135676D9CB6E44CA8A08C0B88342BCDB1144F6511B568 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0xBB8 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0xBD3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xBFD JUMPI PUSH2 0xBF5 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0xC28 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC36 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xC4F DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0xC59 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0xC63 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xCAE JUMPI POP SWAP4 POP PUSH2 0x7BC SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xCBF JUMPI DUP2 SWAP4 POP PUSH2 0xCCD JUMP JUMPDEST PUSH2 0xCCA PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xC39 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD99 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE89 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xED9 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x11B7 JUMPI PUSH2 0xF17 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF2 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1019 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x107A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP10 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1130 JUMPI PUSH2 0x1130 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1121 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1150 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x119C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11AF DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEDE JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x11E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x1224 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x124D JUMPI PUSH2 0x124D DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST PUSH2 0x1256 DUP3 PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x12C4 JUMPI PUSH2 0x1299 DUP3 CALLER ADDRESS DUP5 PUSH2 0x25EF JUMP JUMPDEST PUSH2 0x12A6 PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12E8 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x130F SWAP1 DUP4 PUSH2 0x2A9C JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x1350 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x135C DUP5 CALLER ADDRESS DUP7 PUSH2 0x25EF JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x136A DUP3 DUP6 PUSH2 0x2A64 JUMP JUMPDEST PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x13E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x143C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1460 SWAP2 SWAP1 PUSH2 0x2899 JUMP JUMPDEST SWAP1 POP PUSH2 0x146F PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x14D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x14DE PUSH3 0x93A80 TIMESTAMP PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1570 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x15E3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1626 SWAP2 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x162F DUP7 PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x1639 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1643 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x164D SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x1657 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7BC SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17A8 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17EA SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x180D SWAP1 DUP5 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x182C SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0x1834 PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 SWAP2 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x188F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1904 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1928 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A8 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x19EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x3737BA103B329030B8383937BB32B21037BBB732B9 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1CBB JUMPI PUSH2 0x1A1B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A3F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x1A8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1AF6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1AE8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1B1D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B7E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1BCB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP9 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1C34 JUMPI PUSH2 0x1C34 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C25 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1C54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1CA0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1CB3 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x19EF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1CF2 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1D17 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1DB4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1D52 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1D98 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1DEC JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1DFA PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1E13 DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1E1D SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x1E27 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1EDD SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1E97 JUMPI DUP2 SWAP4 POP PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x1EA2 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1DFD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F33 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F5C JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1EDD SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F67 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F83 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F7D SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP9 PUSH2 0x205A JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x204B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2038 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FCC DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2017 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2026 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x2033 DUP14 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2043 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F87 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20B3 JUMPI POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x209F PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x20EC JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x213C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x212C SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2174 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x2160 PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x21A3 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x218B PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x21DF SWAP1 DUP4 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x221E JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2245 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2250 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x2263 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x2271 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x2349 JUMPI DUP2 JUMPDEST PUSH2 0x2284 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2334 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x22C8 DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2313 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2322 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x232F DUP13 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x233F DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2279 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x23BB JUMPI PUSH1 0x0 PUSH2 0x239C DUP10 PUSH2 0x2385 DUP12 PUSH2 0x7FA JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2391 SWAP1 DUP11 PUSH2 0x1EE4 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2733 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x23A9 DUP2 DUP7 PUSH2 0x2A64 JUMP JUMPDEST SWAP5 POP PUSH2 0x23B6 DUP10 DUP7 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x23F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x244F SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x248C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x24BB JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x24BB JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24BB SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x24F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x255C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2548 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x25D0 SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2619 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x267D SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x26E9 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x26E9 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x26E9 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x272B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2742 DUP8 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2795 PUSH2 0x2777 DUP11 DUP10 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x205A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x27B9 SWAP1 DUP7 SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x27C3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x27CD SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27D7 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27E1 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x27F9 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2848 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2853 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2872 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x864 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2892 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28C3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28E2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28F5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH2 0x2907 PUSH2 0x2B03 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x292C JUMPI PUSH2 0x292C PUSH2 0x2B03 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x294A JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2973 JUMPI PUSH2 0x295F DUP2 PUSH2 0x27EE JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x294E JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2996 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x29C5 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x29AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x29D3 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2A77 JUMPI PUSH2 0x2A77 PUSH2 0x2AED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2A97 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2AB6 JUMPI PUSH2 0x2AB6 PUSH2 0x2AED JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x2AED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2AE6 JUMPI PUSH2 0x2AE6 PUSH2 0x2AED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2B2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD PUSH12 0xFCC92C3019EEF9E8F3AE2328 0xFC LOG4 CALLDATALOAD 0xBC 0x27 0x2A 0xAE COINBASE 0xD4 CHAINID SELFBALANCE 0xB2 DUP1 0xC7 DUP14 REVERT SGT DIV PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"641:20289:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2465:105;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8760:25:139;;;8816:2;8801:18;;8794:34;;;;8733:18;2465:105:74;;;;;;;;1391:26;;;;;;;;;8550:25:139;;;8538:2;8523:18;1391:26:74;8505:76:139;747:41:74;;782:6;747:41;;930:45;;;;;;:::i;:::-;;;;;;;;;;;;;;1034:49;;;;;;:::i;:::-;;;;;;;;;;;;;;1220:87;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15473:1750;;;;;;:::i;:::-;;:::i;1976:69::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1344:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4687:14:139;;4680:22;4662:41;;4650:2;4635:18;1344:40:74;4617:92:139;2111:49:74;;;;;;:::i;:::-;;;;;;;;;;;;;;11470:212;;;;;;:::i;:::-;;:::i;:::-;;8963:177;;;;;;:::i;:::-;;:::i;4253:1050::-;;;;;;:::i;:::-;;:::i;696:44::-;;;;;;;;-1:-1:-1;;;;;3819:32:139;;;;3801:51;;3789:2;3774:18;696:44:74;3756:102:139;18151:254:74;;;;;;:::i;:::-;;:::i;1423:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1089:55;;;;;;:::i;:::-;;;;;;;;;;;;;;17752:393;;;;;;:::i;:::-;;:::i;3173:1074::-;;;;;;:::i;:::-;;:::i;10168:867::-;;;;;;:::i;:::-;;:::i;2634:63::-;;;;;;:::i;:::-;;;;;;;;;;;;;;830:42;;866:6;830:42;;18520:1396;;;;;;:::i;:::-;;:::i;981:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;8765:99;8843:7;:14;8765:99;;2350:35;;;;;;11041:423;;;;;;:::i;:::-;;:::i;1151:63::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1314:24;;;;;;:::i;:::-;;:::i;17355:391::-;;;;;;:::i;:::-;;:::i;9202:902::-;;;;;;:::i;:::-;;:::i;2240:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;5309:1560;;;;;;:::i;:::-;;:::i;15473:1750::-;-1:-1:-1;;;;;15637:15:74;;15566:7;15637:15;;;:8;:15;;;;;;;;:24;;;;;;;;;15675:32;;;:25;:32;;;;;:35;;;;;;;;:45;15566:7;;;;15615:115;;15637:24;15615:8;:115::i;:::-;15744:23;;;;:14;:23;;;;;;15589:141;;-1:-1:-1;15740:67:74;;15795:1;15788:8;;;;;15740:67;15817:19;15839:46;15860:7;15869:15;15839:20;:46::i;:::-;15895:17;15915:23;;;:14;:23;;;;;;15817:68;;-1:-1:-1;15895:17:74;15915:27;;15941:1;;15915:27;:::i;:::-;15895:47;-1:-1:-1;15953:14:74;16012:1;15986:23;15998:11;15895:47;15986:23;:::i;:::-;:27;15982:745;;;16046:11;16029:688;16063:13;16075:1;16063:9;:13;:::i;:::-;16059:1;:17;16029:688;;;16101:21;16125:20;;;:11;:20;;;;;;;;:23;;;;;;;;;16101:47;;;;;;;;;;;;;;;;;;;;;16190:20;;;;;;;16101:47;:21;;;16211:5;;16146:1;;16211:5;:::i;:::-;16190:27;;;;;;;;;;;16166:51;;;;;;;;;;;;;;;;;;;;;;;;;;;16236:30;16272:102;16316:5;16343:3;:13;;;16272:22;:102::i;:::-;16235:139;;;16393:30;16429:102;16473:5;16500:3;:13;;;16429:22;:102::i;:::-;-1:-1:-1;16392:139:74;-1:-1:-1;866:6:74;16621:47;16646:22;16392:139;16621:47;:::i;:::-;16580:3;:13;;;:89;;;;:::i;:::-;16579:123;;;;:::i;:::-;16549:153;;;;:::i;:::-;;;16029:688;;;;16078:3;;;;;:::i;:::-;;;;16029:688;;;;15982:745;16737:20;16760;;;:11;:20;;;;;;;;:31;;;;;;;;16737:54;;;;;;;;;;;;;;;;;;;;;;;;;;:20;16837:77;;16873:5;;16837:22;:77::i;:::-;-1:-1:-1;;;;;;17104:31:74;;;;;;:24;:31;;;;;;;;:40;;;;;;;;;16801:113;;-1:-1:-1;866:6:74;;17023:143;;16801:113;;17023:8;:143::i;:::-;16979:21;16994:5;16979:14;:21::i;:::-;:187;;;;:::i;:::-;16947:2;:12;;;:220;;;;:::i;:::-;16946:246;;;;:::i;:::-;16924:268;;;;:::i;:::-;;-1:-1:-1;;;;;;;15473:1750:74;;;;;:::o;11470:212::-;11639:36;11660:5;11667:7;11639:20;:36::i;:::-;-1:-1:-1;;;;;11564:27:74;;;;;;;;:20;:27;;;;;;;;11605:14;:21;;;;;;11550:125;;;;;;;-1:-1:-1;11470:212:74:o;8963:177::-;-1:-1:-1;;;;;9113:19:74;;9057:7;9113:19;;;:12;:19;;;;;;9087:46;;9096:15;;9087:8;:46::i;4253:1050::-;4392:20;;4346:7;;4426:17;4422:56;;-1:-1:-1;4466:1:74;;4253:1050;-1:-1:-1;;4253:1050:74:o;4422:56::-;4584:9;4535:17;:35;4553:16;4568:1;4553:12;:16;:::i;:::-;4535:35;;;;;;;;;;;:45;;;:58;4531:114;;4617:16;4632:1;4617:12;:16;:::i;:::-;4609:25;4253:1050;-1:-1:-1;;;4253:1050:74:o;4531:114::-;4703:20;;;:17;:20;;;:30;:42;-1:-1:-1;4699:81:74;;;-1:-1:-1;4768:1:74;;4253:1050;-1:-1:-1;;4253:1050:74:o;4699:81::-;4790:13;;4833:16;4848:1;4833:12;:16;:::i;:::-;4817:32;;4859:416;4874:5;4866;:13;4859:416;;;4895:14;4938:1;4921:13;4929:5;4921;:13;:::i;:::-;4920:19;;;;:::i;:::-;4912:27;;:5;:27;:::i;:::-;4980:26;5009:25;;;:17;:25;;;;;;;;;4980:54;;;;;;;;;;;;;;;;;;;;;;;;;4895:44;;-1:-1:-1;4980:54:74;5052:25;;5048:217;;;-1:-1:-1;5104:6:74;4253:1050;-1:-1:-1;;;;;4253:1050:74:o;5048:217::-;5135:12;;:24;-1:-1:-1;5131:134:74;;;5187:6;5179:14;;5131:134;;;5240:10;5249:1;5240:6;:10;:::i;:::-;5232:18;;5131:134;4859:416;;;;;-1:-1:-1;5291:5:74;4253:1050;-1:-1:-1;;;4253:1050:74:o;18151:254::-;-1:-1:-1;;;;;18254:19:74;;18212:7;18254:19;;;:12;:19;;;;;;18235:15;:38;18231:52;;-1:-1:-1;18282:1:74;;18151:254;-1:-1:-1;18151:254:74:o;18231:52::-;-1:-1:-1;;;;;18314:19:74;;18293:18;18314:19;;;:12;:19;;;;;;:37;;18336:15;;18314:37;:::i;:::-;-1:-1:-1;;;;;18381:17:74;;;;;;-1:-1:-1;18381:17:74;;;;;;18293:58;;-1:-1:-1;18368:30:74;;18293:58;18368:30;:::i;17752:393::-;17832:8;-1:-1:-1;;;;;17832:24:74;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17891:8;-1:-1:-1;;;;;17891:19:74;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17877:35:74;:10;:35;17869:57;;;;-1:-1:-1;;;17869:57:74;;;;;;;:::i;:::-;;;;;;;;;17951:6;17936:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;17967:18:74;;;;:9;:18;;;;;:28;;17989:6;;17967:18;:28;;17989:6;;17967:28;:::i;:::-;;;;-1:-1:-1;;18032:18:74;;;;:9;:18;;;;;;18006:45;;18023:7;;18006:16;:45::i;:::-;18061:24;:22;:24::i;:::-;18101:37;;;8760:25:139;;;8816:2;8801:18;;8794:34;;;18110:10:74;;18101:37;;8733:18:139;18101:37:74;;;;;;;;17752:393;;:::o;3173:1074::-;3284:7;3330:23;;;:14;:23;;;;;;3367:17;3363:56;;3407:1;3400:8;;;;;3363:56;3476:20;;;;:11;:20;;;;;3528:9;;3497:16;3512:1;3497:12;:16;:::i;:::-;3476:38;;;;;;;;;;;:48;;;:61;3472:117;;3561:16;3576:1;3561:12;:16;:::i;:::-;3553:25;;;;;3472:117;3647:20;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:45;-1:-1:-1;3643:84:74;;;3715:1;3708:8;;;;;3643:84;3737:13;;3780:16;3795:1;3780:12;:16;:::i;:::-;3764:32;;3806:413;3821:5;3813;:13;3806:413;;;3842:14;3885:1;3868:13;3876:5;3868;:13;:::i;:::-;3867:19;;;;:::i;:::-;3859:27;;:5;:27;:::i;:::-;3927:20;3950;;;:11;:20;;;;;;;;:28;;;;;;;;;3927:51;;;;;;;;;;;;;;;;;;;;;;;;;3842:44;;-1:-1:-1;3927:51:74;3996:25;;3992:217;;;-1:-1:-1;4048:6:74;-1:-1:-1;4041:13:74;;-1:-1:-1;;;4041:13:74;3992:217;4079:12;;:24;-1:-1:-1;4075:134:74;;;4131:6;4123:14;;4075:134;;;4184:10;4193:1;4184:6;:10;:::i;:::-;4176:18;;4075:134;3806:413;;;;;-1:-1:-1;4235:5:74;3173:1074;-1:-1:-1;;;;3173:1074:74:o;10168:867::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;10328:21:74::1;::::0;;-1:-1:-1;;;10328:21:74;;;;-1:-1:-1;;;;;10328:8:74::1;:19;::::0;::::1;::::0;:21:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:19;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10314:35:74::1;:10;:35;10306:57;;;::::0;-1:-1:-1;;;10306:57:74;;::::1;::::0;::::1;;;:::i;:::-;10373:14;10401:8;-1:-1:-1::0;;;;;10401:15:74::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10390:46;::::0;-1:-1:-1;;;10390:46:74;;::::1;::::0;::::1;8550:25:139::0;;;-1:-1:-1;;;;;10390:37:74;;;::::1;::::0;::::1;::::0;8523:18:139;;10390:46:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10373:63;;10451:9;10446:583;10470:6;:13;10466:1;:17;10446:583;;;10613:32;10635:6;10642:1;10635:9;;;;;;-1:-1:-1::0;;;10635:9:74::1;;;;;;;;;;;;;;;10613:21;:32::i;:::-;10522:20;:31;10543:6;10550:1;10543:9;;;;;;-1:-1:-1::0;;;10543:9:74::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10522:31:74::1;-1:-1:-1::0;;;;;10522:31:74::1;;;;;;;;;;;;;10571:14;:25;10586:6;10593:1;10586:9;;;;;;-1:-1:-1::0;;;10586:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10571:25:74::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10571:25:74;;;10504:141;;;;-1:-1:-1;10504:141:74;;;;10685:9;;10678:26:::1;::::0;10685:6;;10692:1;;10685:9;::::1;;;-1:-1:-1::0;;;10685:9:74::1;;;;;;;;;;;;;;;10696:7;10678:6;:26::i;:::-;10660:44;;10749:15;10718:8;:19;10727:6;10734:1;10727:9;;;;;;-1:-1:-1::0;;;10727:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10718:19:74::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;10718:19:74;;;:28;;;;;;;;:46;;;;10863:9;;10825:20:::1;::::0;-1:-1:-1;10863:6:74;;10870:1;;10863:9;::::1;;;-1:-1:-1::0;;;10863:9:74::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10825:61:74::1;-1:-1:-1::0;;;;;10825:61:74::1;;;;;;;;;;;;;10778:24;:35;10803:6;10810:1;10803:9;;;;;;-1:-1:-1::0;;;10803:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10778:35:74::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;10778:35:74;;;:44;;;;;;;;:108;10904:11;;10900:58:::1;;10917:41;10931:6;10938:1;10931:9;;;;;;-1:-1:-1::0;;;10931:9:74::1;;;;;;;;;;;;;;;10942:6;10950:7;10917:13;:41::i;:::-;10999:6;11006:1;10999:9;;;;;;-1:-1:-1::0;;;10999:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;10978:40:::1;::::0;8550:25:139;;;-1:-1:-1;;;;;10978:40:74;;::::1;::::0;;;::::1;::::0;::::1;::::0;8523:18:139;10978:40:74::1;;;;;;;-1:-1:-1::0;10485:3:74;::::1;::::0;::::1;:::i;:::-;;;;10446:583;;;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;;10168:867:74:o;18520:1396::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;18656:10:74;18648:33:::1;;;::::0;-1:-1:-1;;;18648:33:74;;8267:2:139;18648:33:74::1;::::0;::::1;8249:21:139::0;8306:2;8286:18;;;8279:30;-1:-1:-1;;;8325:18:139;;;8318:40;8375:18;;18648:33:74::1;8239:160:139::0;18648:33:74::1;-1:-1:-1::0;;;;;18695:17:74;::::1;;::::0;;;-1:-1:-1;18695:17:74::1;::::0;;;;;18691:97:::1;;18731:57;18762:5;18769:1;18772:15;18731:30;:57::i;:::-;18887:28;18909:5;18887:21;:28::i;:::-;-1:-1:-1::0;;;;;18812:27:74;::::1;;::::0;;;:20:::1;:27;::::0;;;;;;;18853:14:::1;:21:::0;;;;;18798:117;;;;;;;;18949:12:::1;:19:::0;;;;;18930:15:::1;:38;18926:516;;18984:59;19002:5;19009:10;19029:4;19036:6;18984:17;:59::i;:::-;19077:17;782:6;19077::::0;:17:::1;:::i;:::-;-1:-1:-1::0;;;;;19057:17:74;::::1;;::::0;;;-1:-1:-1;19057:17:74::1;::::0;;;;:37;18926:516:::1;;;-1:-1:-1::0;;;;;19146:19:74;::::1;19125:18;19146:19:::0;;;:12:::1;:19;::::0;;;;;:37:::1;::::0;19168:15:::1;::::0;19146:37:::1;:::i;:::-;-1:-1:-1::0;;;;;19226:17:74;::::1;19197:13;19226:17:::0;;;-1:-1:-1;19226:17:74::1;::::0;;;;;19125:58;;-1:-1:-1;19197:13:74;19213:30:::1;::::0;19125:58;19213:30:::1;:::i;:::-;19197:46;;19274:5;19265:6;:14;19257:40;;;::::0;-1:-1:-1;;;19257:40:74;;7925:2:139;19257:40:74::1;::::0;::::1;7907:21:139::0;7964:2;7944:18;;;7937:30;-1:-1:-1;;;7983:18:139;;;7976:43;8036:18;;19257:40:74::1;7897:163:139::0;19257:40:74::1;19311:59;19329:5;19336:10;19356:4;19363:6;19311:17;:59::i;:::-;782:6;19405:14;19414:5:::0;19405:6;:14:::1;:::i;:::-;19404:27;;;;:::i;:::-;-1:-1:-1::0;;;;;19384:17:74;::::1;;::::0;;;-1:-1:-1;19384:17:74::1;::::0;;;;:47;-1:-1:-1;;18926:516:74::1;-1:-1:-1::0;;;;;19459:17:74;::::1;19479:1;19459:17:::0;;;-1:-1:-1;19459:17:74::1;::::0;;;;;19451:48:::1;;;::::0;-1:-1:-1;;;19451:48:74;;5480:2:139;19451:48:74::1;::::0;::::1;5462:21:139::0;5519:2;5499:18;;;5492:30;-1:-1:-1;;;5538:18:139;;;5531:44;5592:18;;19451:48:74::1;5452:164:139::0;19451:48:74::1;19527:38;::::0;-1:-1:-1;;;19527:38:74;;19559:4:::1;19527:38;::::0;::::1;3801:51:139::0;19509:15:74::1;::::0;-1:-1:-1;;;;;19527:23:74;::::1;::::0;::::1;::::0;3774:18:139;;19527:38:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19509:56:::0;-1:-1:-1;19617:18:74::1;782:6;19509:56:::0;19617:18:::1;:::i;:::-;-1:-1:-1::0;;;;;19596:17:74;::::1;;::::0;;;-1:-1:-1;19596:17:74::1;::::0;;;;;:39:::1;;19575:110;;;::::0;-1:-1:-1;;;19575:110:74;;6521:2:139;19575:110:74::1;::::0;::::1;6503:21:139::0;6560:2;6540:18;;;6533:30;-1:-1:-1;;;6579:18:139;;;6572:54;6643:18;;19575:110:74::1;6493:174:139::0;19575:110:74::1;19717:26;782:6;19717:15;:26;:::i;:::-;-1:-1:-1::0;;;;;19695:19:74;::::1;;::::0;;;:12:::1;:19;::::0;;;;;;;:48;;;;19758:8:::1;:15:::0;;;;::::1;;19753:102;;-1:-1:-1::0;;;;;19789:15:74;::::1;;::::0;;;:8:::1;:15;::::0;;;;:22;;-1:-1:-1;;19789:22:74::1;-1:-1:-1::0;19789:22:74;;::::1;::::0;;;19825:7:::1;:19:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;19825:19:74::1;::::0;;::::1;::::0;;19753:102:::1;19870:39;::::0;;8550:25:139;;;19870:39:74;;-1:-1:-1;;;;;19870:39:74;::::1;::::0;19883:10:::1;::::0;19870:39:::1;::::0;;;;8538:2:139;19870:39:74;;::::1;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;18520:1396:74:o;11041:423::-;11101:7;11124:11;;11139:1;11124:16;11120:81;;;-1:-1:-1;;;;;;11163:27:74;;;;;:20;:27;;;;;;;11041:423::o;11120:81::-;11445:11;;-1:-1:-1;;;;;11396:17:74;;;;;;-1:-1:-1;11396:17:74;;;;;;;;;11333:14;:21;;;;;;11356:12;:19;;;;;;866:6;;11396:17;11324:52;;:8;:52::i;:::-;11274:31;11299:5;11274:24;:31::i;:::-;:102;;;;:::i;:::-;11273:140;;;;:::i;:::-;:168;;;;:::i;:::-;11272:184;;;;:::i;:::-;-1:-1:-1;;;;;11229:27:74;;;;;;:20;:27;;;;;;:228;;;;:::i;1314:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1314:24:74;;-1:-1:-1;1314:24:74;:::o;17355:391::-;17434:8;-1:-1:-1;;;;;17434:24:74;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17493:8;-1:-1:-1;;;;;17493:19:74;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17479:35:74;:10;:35;17471:57;;;;-1:-1:-1;;;17471:57:74;;;;;;;:::i;:::-;17553:6;17538:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;17569:18:74;;;;:9;:18;;;;;:28;;17591:6;;17569:18;:28;;17591:6;;17569:28;:::i;:::-;;;;-1:-1:-1;;17634:18:74;;;;:9;:18;;;;;;17608:45;;17625:7;;17608:16;:45::i;:::-;17663:24;:22;:24::i;:::-;17703:36;;;8760:25:139;;;8816:2;8801:18;;8794:34;;;17711:10:74;;17703:36;;8733:18:139;17703:36:74;8715:119:139;9202:902:74;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;9347:17:74::1;::::0;;-1:-1:-1;;;9347:17:74;;;;-1:-1:-1;;;;;9347:8:74::1;:15;::::0;::::1;::::0;:17:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:17;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9336:114;::::0;-1:-1:-1;;;9336:114:74;;9401:10:::1;9336:114;::::0;::::1;4417:51:139::0;4484:18;;;4477:34;;;-1:-1:-1;;;;;9336:47:74;;;::::1;::::0;::::1;::::0;4390:18:139;;9336:114:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9315:182;;;::::0;-1:-1:-1;;;9315:182:74;;5823:2:139;9315:182:74::1;::::0;::::1;5805:21:139::0;5862:2;5842:18;;;5835:30;-1:-1:-1;;;5881:18:139;;;5874:51;5942:18;;9315:182:74::1;5795:171:139::0;9315:182:74::1;9512:9;9507:591;9531:6;:13;9527:1;:17;9507:591;;;9674:32;9696:6;9703:1;9696:9;;;;;;-1:-1:-1::0;;;9696:9:74::1;;;;;;;;9674:32;9583:20;:31;9604:6;9611:1;9604:9;;;;;;-1:-1:-1::0;;;9604:9:74::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9583:31:74::1;-1:-1:-1::0;;;;;9583:31:74::1;;;;;;;;;;;;;9632:14;:25;9647:6;9654:1;9647:9;;;;;;-1:-1:-1::0;;;9647:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9632:25:74::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9632:25:74;;;9565:141;;;;-1:-1:-1;9565:141:74;;;;9746:9;;9739:26:::1;::::0;9746:6;;9753:1;;9746:9;::::1;;;-1:-1:-1::0;;;9746:9:74::1;;;;;;;;;;;;;;;9757:7;9739:6;:26::i;:::-;9721:44;;9810:15;9779:8;:19;9788:6;9795:1;9788:9;;;;;;-1:-1:-1::0;;;9788:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9779:19:74::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;9779:19:74;;;:28;;;;;;;;:46;;;;9924:9;;9886:20:::1;::::0;-1:-1:-1;9924:6:74;;9931:1;;9924:9;::::1;;;-1:-1:-1::0;;;9924:9:74::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9886:61:74::1;-1:-1:-1::0;;;;;9886:61:74::1;;;;;;;;;;;;;9839:24;:35;9864:6;9871:1;9864:9;;;;;;-1:-1:-1::0;;;9864:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9839:35:74::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;9839:35:74;;;:44;;;;;;;;:108;9965:11;;9961:62:::1;;9978:45;9992:6;9999:1;9992:9;;;;;;-1:-1:-1::0;;;9992:9:74::1;;;;;;;;;;;;;;;10003:10;10015:7;9978:13;:45::i;:::-;10068:6;10075:1;10068:9;;;;;;-1:-1:-1::0;;;10068:9:74::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;10043:44:::1;::::0;8550:25:139;;;-1:-1:-1;;;;;10043:44:74;;::::1;::::0;10056:10:::1;::::0;10043:44:::1;::::0;8523:18:139;10043:44:74::1;;;;;;;-1:-1:-1::0;9546:3:74;::::1;::::0;::::1;:::i;:::-;;;;9507:591;;;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;9202:902:74:o;5309:1560::-;-1:-1:-1;;;;;5475:35:74;;5420:7;5475:35;;;:28;:35;;;;;;5420:7;;5475:35;5520:61;;5565:1;5568;5557:13;;;;;;;5520:61;-1:-1:-1;;;;;5651:32:74;;;;;;:25;:32;;;;;5727:9;;5684:16;-1:-1:-1;5684:12:74;:16;:::i;:::-;5651:50;;;;;;;;;;;:60;;;:85;5634:341;;-1:-1:-1;;;;;5786:32:74;;;;;;:25;:32;;;;;;5819:16;-1:-1:-1;5819:12:74;:16;:::i;:::-;5786:50;;;;;;;;;;;;;;-1:-1:-1;5786:50:74;;;:86;;;;;-1:-1:-1;;;;;5890:32:74;;;;:25;:32;;;;;;;5923:16;;:12;:16;:::i;:::-;5890:50;;;;;;;;;;;:60;;;5761:203;;;;;;;5634:341;-1:-1:-1;;;;;6033:32:74;;;;;;:25;:32;;;;;;;;:35;;;;;;;;:45;-1:-1:-1;;6029:101:74;;;6114:1;6117;6106:13;;;;;;;6029:101;6140:13;;6183:16;6198:1;6183:12;:16;:::i;:::-;6167:32;;6209:496;6224:5;6216;:13;6209:496;;;6245:14;6288:1;6271:13;6279:5;6271;:13;:::i;:::-;6270:19;;;;:::i;:::-;6262:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;6367:62:74;;6330:34;6367:62;;;:25;:62;;;;;;;;:70;;;;;;;;;6330:107;;;;;;;;;;;;;-1:-1:-1;6330:107:74;;;;;;;;;;;6367:70;;-1:-1:-1;6330:107:74;6455:25;;6451:244;;;6508:17;;;;6527:12;;6508:17;;-1:-1:-1;6527:12:74;-1:-1:-1;6500:40:74;;-1:-1:-1;;;;6500:40:74;6451:244;6565:12;;:24;-1:-1:-1;6561:134:74;;;6617:6;6609:14;;6561:134;;;6670:10;6679:1;6670:6;:10;:::i;:::-;6662:18;;6561:134;6209:496;;;;;-1:-1:-1;;;;;;6735:32:74;;;;;;:25;:32;;;;;;;;:39;;;;;;;-1:-1:-1;6735:54:74;;;6803:49;;6735:54;;-1:-1:-1;6803:49:74;-1:-1:-1;;5309:1560:74;;;;;;:::o;413:105:47:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:47;;490:21;-1:-1:-1;413:105:47:o;11688:1277:74:-;-1:-1:-1;;;;;11842:21:74;;11784:7;11842:21;;;:14;:21;;;;;;;;;11890:20;:27;;;;;;11932:20;;11784:7;;11842:21;11890:27;11928:88;;11981:6;-1:-1:-1;11989:15:74;-1:-1:-1;11973:32:74;;11928:88;-1:-1:-1;;;;;12030:17:74;;;;;;-1:-1:-1;12030:17:74;;;;;;12026:85;;12076:6;-1:-1:-1;12084:15:74;;-1:-1:-1;12068:32:74;;-1:-1:-1;12068:32:74;12026:85;12121:19;12143:36;12163:15;12143:19;:36::i;:::-;12121:58;;12189:17;12209:43;12241:1;12218:20;;:24;;;;:::i;:::-;12244:7;12209:8;:43::i;:::-;12189:63;-1:-1:-1;12280:11:74;12263:653;12297:9;12293:1;:13;12263:653;;;12327:27;12357:20;;;:17;:20;;;;;;;;;12327:50;;;;;;;;;;;;;;;;;;;;;12395:14;12391:515;;12429:27;12459:17;12429:27;12477:5;:1;12481;12477:5;:::i;:::-;12459:24;;;;;;;;;;;12429:54;;;;;;;;;;;;;;;;;;;;;;;;;;;12502:15;12519;12538:203;12579:5;12606:3;:13;;;12641:3;:13;;;12676:3;:10;;;12708:15;12538:19;:203::i;:::-;12501:240;;-1:-1:-1;12501:240:74;-1:-1:-1;12759:17:74;12501:240;12759:17;;:::i;:::-;;;12794:54;12825:5;12832:6;12840:7;12794:30;:54::i;:::-;12884:7;-1:-1:-1;;;12391:515:74;-1:-1:-1;12308:3:74;;;;:::i;:::-;;;;12263:653;;;-1:-1:-1;12934:6:74;;12942:15;;-1:-1:-1;11688:1277:74;;-1:-1:-1;;;;;11688:1277:74:o;589:104:47:-;647:7;677:1;673;:5;:13;;685:1;673:13;;6875:600:74;6954:18;7024:23;;;:14;:23;;;;;;6975:15;;7075:17;;;;;:96;;-1:-1:-1;7108:20:74;;;;:11;:20;;;;;7161:10;;7129:17;7145:1;7129:13;:17;:::i;:::-;7108:39;;;;;;;;;;;:49;;;:63;7075:96;7058:411;;;7196:20;;;;:11;:20;;;;;7248:7;;7217:17;7233:1;7217:13;:17;:::i;:::-;7196:39;;;;;;;;;;;-1:-1:-1;7196:39:74;:49;;:59;7058:411;;;7324:77;;;;;;;;;;;;;;;;;;-1:-1:-1;7286:20:74;;;:11;:20;;;;;:35;;;;;;;;;:115;;;;;;;;;;;7441:17;;7307:13;;7441:17;:::i;:::-;7415:23;;;;:14;:23;;;;;:43;7058:411;6875:600;;;;:::o;8189:570::-;8266:20;;8317:15;8360:17;;;;;:93;;-1:-1:-1;8443:10:74;8393:17;:36;8411:17;8427:1;8411:13;:17;:::i;:::-;8393:36;;;;;;;;;;;:46;;;:60;8360:93;8343:410;;;8524:11;;8478:17;:36;8496:17;8512:1;8496:13;:17;:::i;:::-;8478:36;;;;;;;;;;;-1:-1:-1;8478:36:74;:43;;:57;8189:570;;:::o;8343:410::-;8601:87;;;;;;;;;;;8663:11;;8601:87;;;;;;;-1:-1:-1;8566:32:74;;;:17;:32;;;;;;;:122;;;;;;;;;;;8725:17;;8584:13;;8725:17;:::i;:::-;8702:20;:40;8189:570;;:::o;13582:1885::-;-1:-1:-1;;;;;13720:21:74;;13662:7;13720:21;;;:14;:21;;;;;;;;;13768:20;:27;;;;;;13810:20;;13662:7;;13720:21;13768:27;13806:88;;13859:6;13867:15;;-1:-1:-1;13582:1885:74;-1:-1:-1;;13582:1885:74:o;13806:88::-;-1:-1:-1;;;;;13908:17:74;;;;;;-1:-1:-1;13908:17:74;;;;;;13904:85;;13954:6;13962:15;;-1:-1:-1;13582:1885:74;-1:-1:-1;;;13582:1885:74:o;13904:85::-;13999:19;14021:36;14041:15;14021:19;:36::i;:::-;13999:58;;14067:17;14110:1;14087:20;;:24;;;;:::i;:::-;14067:44;-1:-1:-1;14152:1:74;14126:23;14138:11;14067:44;14126:23;:::i;:::-;:27;14122:777;;;14186:11;14169:720;14203:13;14215:1;14203:9;:13;:::i;:::-;14199:1;:17;14169:720;;;14241:27;14271:20;;;:17;:20;;;;;;;;;14241:50;;;;;;;;;;;;;;;;;;;;;14313:14;14309:566;;14351:27;14381:17;14351:27;14399:5;:1;14403;14399:5;:::i;:::-;14381:24;;;;;;;;;;;14351:54;;;;;;;;;;;;;;;;;;;;;;;;;;;14428:15;14445:16;14465:227;14510:5;14541:3;:13;;;14580:3;:13;;;14619:3;:10;;;14655:15;14465:19;:227::i;:::-;14427:265;;-1:-1:-1;14427:265:74;-1:-1:-1;14714:17:74;14427:265;14714:17;;:::i;:::-;;;14753:55;14784:5;14791:6;14799:8;14753:30;:55::i;:::-;14848:8;-1:-1:-1;;;14309:566:74;-1:-1:-1;14218:3:74;;;;:::i;:::-;;;;14169:720;;;;14122:777;14909:26;14938:28;;;:17;:28;;;;;;;;;14909:57;;;;;;;;;;;;;;;;;;;;;14980:13;14976:442;;15010:15;15031:222;15068:5;15091:31;15116:5;15091:24;:31::i;:::-;15149:12;;15140:39;;15163:15;15140:8;:39::i;:::-;15197:2;:9;;;15224:15;15031:19;:222::i;:::-;-1:-1:-1;15009:244:74;-1:-1:-1;15267:17:74;15009:244;15267:17;;:::i;:::-;;;15298:62;15329:5;15336:6;15344:15;15298:30;:62::i;:::-;15392:15;15374:33;;14976:442;;-1:-1:-1;15436:6:74;;15444:15;;-1:-1:-1;13582:1885:74;;-1:-1:-1;;;;13582:1885:74:o;19922:441::-;-1:-1:-1;;;;;20044:17:74;;;20036:52;;;;-1:-1:-1;;;20036:52:74;;;;;;;:::i;:::-;20158:59;;;-1:-1:-1;;;;;4435:32:139;;;20158:59:74;;;4417:51:139;4484:18;;;;4477:34;;;20158:59:74;;;;;;;;;;4390:18:139;;;;20158:59:74;;;;;;;-1:-1:-1;;;;;20158:59:74;-1:-1:-1;;;20158:59:74;;;20134:93;;-1:-1:-1;;;;20134:10:74;;;;:93;;20158:59;20134:93;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20098:129;;;;20258:7;:57;;;;-1:-1:-1;20270:11:74;;:16;;:44;;;20301:4;20290:24;;;;;;;;;;;;:::i;:::-;20237:119;;;;-1:-1:-1;;;20237:119:74;;7221:2:139;20237:119:74;;;7203:21:139;7260:2;7240:18;;;7233:30;-1:-1:-1;;;7279:18:139;;;7272:45;7334:18;;20237:119:74;7193:165:139;20237:119:74;19922:441;;;;;:::o;7481:702::-;-1:-1:-1;;;;;7644:35:74;;7620:21;7644:35;;;:28;:35;;;;;;7707:17;;;;;:119;;-1:-1:-1;;;;;;7740:32:74;;;;;;:25;:32;;;;;7817:9;;7773:17;-1:-1:-1;7773:13:74;:17;:::i;:::-;7740:51;;;;;;;;;;;:61;;;:86;7707:119;7690:487;;;-1:-1:-1;;;;;7851:32:74;;;;;;:25;:32;;;;;7937:6;;7884:17;-1:-1:-1;7884:13:74;:17;:::i;7690:487::-;8054:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7974:32:74;;-1:-1:-1;7974:32:74;;;:25;:32;;;;;:77;;;;;;;;;:123;;;;;;-1:-1:-1;7974:123:74;;;;8149:17;;7974:77;;8149:17;:::i;:::-;-1:-1:-1;;;;;8111:35:74;;;;;;:28;:35;;;;;:55;7481:702;;;;:::o;20369:559::-;-1:-1:-1;;;;;20517:17:74;;;20509:52;;;;-1:-1:-1;;;20509:52:74;;;;;;;:::i;:::-;20631:147;;;-1:-1:-1;;;;;4121:15:139;;;20631:147:74;;;4103:34:139;4173:15;;;4153:18;;;4146:43;4205:18;;;;4198:34;;;20631:147:74;;;;;;;;;;4038:18:139;;;;20631:147:74;;;;;;;-1:-1:-1;;;;;20631:147:74;-1:-1:-1;;;20631:147:74;;;20607:181;;-1:-1:-1;;;;20607:10:74;;;;:181;;20631:147;20607:181;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20571:217;;;;20819:7;:57;;;;-1:-1:-1;20831:11:74;;:16;;:44;;;20862:4;20851:24;;;;;;;;;;;;:::i;:::-;20798:123;;;;-1:-1:-1;;;20798:123:74;;6173:2:139;20798:123:74;;;6155:21:139;6212:2;6192:18;;;6185:30;-1:-1:-1;;;6231:18:139;;;6224:49;6290:18;;20798:123:74;6145:169:139;20798:123:74;20369:559;;;;;;:::o;12971:605::-;13164:7;13173;13192:15;13210:36;13219:10;13231:14;13210:8;:36::i;:::-;-1:-1:-1;;;;;13482:17:74;;;;;;-1:-1:-1;13482:17:74;;;;;;13192:54;;-1:-1:-1;13531:6:74;;866;;13337:125;13367:36;13376:10;13388:14;13367:8;:36::i;:::-;-1:-1:-1;;;;;13425:19:74;;;;;;:12;:19;;;;;;13337:8;:125::i;:::-;-1:-1:-1;;;;;13298:19:74;;;;;;:12;:19;;;;;;13280:38;;13289:7;;13280:8;:38::i;:::-;:182;;;;:::i;:::-;13279:220;;;;:::i;:::-;:248;;;;:::i;:::-;13278:259;;;;:::i;:::-;13256:313;13552:7;;-1:-1:-1;12971:605:74;-1:-1:-1;;;;;;12971:605:74:o;14:134:139:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:325::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;996:2;981:18;;;;968:32;;-1:-1:-1;;;768:238:139:o;1011:297::-;1078:6;1131:2;1119:9;1110:7;1106:23;1102:32;1099:2;;;1152:6;1144;1137:22;1099:2;1189:9;1183:16;1242:5;1235:13;1228:21;1221:5;1218:32;1208:2;;1269:6;1261;1254:22;1313:190;1372:6;1425:2;1413:9;1404:7;1400:23;1396:32;1393:2;;;1446:6;1438;1431:22;1393:2;-1:-1:-1;1474:23:139;;1383:120;-1:-1:-1;1383:120:139:o;1508:194::-;1578:6;1631:2;1619:9;1610:7;1606:23;1602:32;1599:2;;;1652:6;1644;1637:22;1599:2;-1:-1:-1;1680:16:139;;1589:113;-1:-1:-1;1589:113:139:o;1707:1245::-;1800:6;1808;1861:2;1849:9;1840:7;1836:23;1832:32;1829:2;;;1882:6;1874;1867:22;1829:2;1923:9;1910:23;1900:33;;1952:2;2005;1994:9;1990:18;1977:32;2028:18;2069:2;2061:6;2058:14;2055:2;;;2090:6;2082;2075:22;2055:2;2133:6;2122:9;2118:22;2108:32;;2178:7;2171:4;2167:2;2163:13;2159:27;2149:2;;2205:6;2197;2190:22;2149:2;2246;2233:16;2268:2;2264;2261:10;2258:2;;;2274:18;;:::i;:::-;2320:2;2317:1;2313:10;2352:2;2346:9;2415:2;2411:7;2406:2;2402;2398:11;2394:25;2386:6;2382:38;2470:6;2458:10;2455:22;2450:2;2438:10;2435:18;2432:46;2429:2;;;2481:18;;:::i;:::-;2517:2;2510:22;2567:18;;;2601:15;;;;-1:-1:-1;2636:11:139;;;2666;;;2662:20;;2659:33;-1:-1:-1;2656:2:139;;;2710:6;2702;2695:22;2656:2;2737:6;2728:15;;2752:169;2766:2;2763:1;2760:9;2752:169;;;2823:23;2842:3;2823:23;:::i;:::-;2811:36;;2784:1;2777:9;;;;;2867:12;;;;2899;;2752:169;;;2756:3;2940:6;2930:16;;;;;;;;1819:1133;;;;;:::o;2957:258::-;3025:6;3033;3086:2;3074:9;3065:7;3061:23;3057:32;3054:2;;;3107:6;3099;3092:22;3054:2;-1:-1:-1;;3135:23:139;;;3205:2;3190:18;;;3177:32;;-1:-1:-1;3044:171:139:o;3220:430::-;3349:3;3387:6;3381:13;3412:3;3424:129;3438:6;3435:1;3432:13;3424:129;;;3536:4;3520:14;;;3516:25;;3510:32;3497:11;;;3490:53;3453:12;3424:129;;;3571:6;3568:1;3565:13;3562:2;;;3606:3;3597:6;3592:3;3588:16;3581:29;3562:2;-1:-1:-1;3628:16:139;;;;;3357:293;-1:-1:-1;;3357:293:139:o;4941:332::-;5143:2;5125:21;;;5182:1;5162:18;;;5155:29;-1:-1:-1;;;5215:2:139;5200:18;;5193:39;5264:2;5249:18;;5115:158::o;6672:342::-;6874:2;6856:21;;;6913:2;6893:18;;;6886:30;-1:-1:-1;;;6947:2:139;6932:18;;6925:48;7005:2;6990:18;;6846:168::o;7363:355::-;7565:2;7547:21;;;7604:2;7584:18;;;7577:30;7643:33;7638:2;7623:18;;7616:61;7709:2;7694:18;;7537:181::o;8839:128::-;8879:3;8910:1;8906:6;8903:1;8900:13;8897:2;;;8916:18;;:::i;:::-;-1:-1:-1;8952:9:139;;8887:80::o;8972:217::-;9012:1;9038;9028:2;;-1:-1:-1;;;9063:31:139;;9117:4;9114:1;9107:15;9145:4;9063:31;9135:15;9028:2;-1:-1:-1;9174:9:139;;9018:171::o;9194:168::-;9234:7;9300:1;9296;9292:6;9288:14;9285:1;9282:21;9277:1;9270:9;9263:17;9259:45;9256:2;;;9307:18;;:::i;:::-;-1:-1:-1;9347:9:139;;9246:116::o;9367:125::-;9407:4;9435:1;9432;9429:8;9426:2;;;9440:18;;:::i;:::-;-1:-1:-1;9477:9:139;;9416:76::o;9497:135::-;9536:3;-1:-1:-1;;9557:17:139;;9554:2;;;9577:18;;:::i;:::-;-1:-1:-1;9624:1:139;9613:13;;9544:88::o;9637:127::-;9698:10;9693:3;9689:20;9686:1;9679:31;9729:4;9726:1;9719:15;9753:4;9750:1;9743:15;9769:127;9830:10;9825:3;9821:20;9818:1;9811:31;9861:4;9858:1;9851:15;9885:4;9882:1;9875:15;9901:131;-1:-1:-1;;;;;9976:31:139;;9966:42;;9956:2;;10022:1;10019;10012:12;9956:2;9946:86;:::o"},"methodIdentifiers":{"DURATION()":"1be05289","PRECISION()":"aaf5eb68","_deposit(uint256,uint256)":"f3207723","_withdraw(uint256,uint256)":"9e2bf22c","balanceOf(uint256)":"9cc7f708","batchRewardPerToken(address,uint256)":"5a45d052","checkpoints(uint256,uint256)":"49dcc204","earned(address,uint256)":"3e491d47","getPriorBalanceIndex(uint256,uint256)":"a28d4c9c","getPriorRewardPerToken(address,uint256)":"fd314098","getPriorSupplyIndex(uint256)":"76f4be36","getReward(uint256,address[])":"f5f8d365","getRewardForOwner(uint256,address[])":"a7852afa","isReward(address)":"4d5ce038","lastEarn(address,uint256)":"f25e55a5","lastTimeRewardApplicable(address)":"638634ee","lastUpdateTime(address)":"2ce9aead","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","numCheckpoints(uint256)":"50589793","periodFinish(address)":"da09d19d","registry()":"7b103999","rewardPerToken(address)":"f1229777","rewardPerTokenCheckpoints(address,uint256)":"01316ddf","rewardPerTokenNumCheckpoints(address)":"aa479652","rewardPerTokenStored(address)":"9ce43f90","rewardRate(address)":"221ca18c","rewards(uint256)":"f301af42","rewardsListLength()":"e6886396","supplyCheckpoints(uint256)":"f7412baf","supplyNumCheckpoints()":"e8111a12","totalSupply()":"18160ddd","userRewardPerTokenStored(address,uint256)":"3b881999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DURATION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"_deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"_withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxRuns\",\"type\":\"uint256\"}],\"name\":\"batchRewardPerToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"checkpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOf\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorBalanceIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorRewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorSupplyIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getRewardForOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isReward\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lastEarn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"rewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardPerTokenCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerToken\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenNumCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsListLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"supplyCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyNumCheckpoints\",\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userRewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getPriorBalanceIndex(uint256,uint256)\":{\"details\":\"Block number must be a finalized block or else this function will revert to prevent misinformation.\",\"params\":{\"timestamp\":\"The timestamp to get the balance at\",\"tokenId\":\"The token of the NFT to check\"},\"returns\":{\"_0\":\"The balance the account had as of the given block\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"checkpoints(uint256,uint256)\":{\"notice\":\"A record of balance checkpoints for each account, by index\"},\"getPriorBalanceIndex(uint256,uint256)\":{\"notice\":\"Determine the prior balance for an account as of a block number\"},\"numCheckpoints(uint256)\":{\"notice\":\"The number of checkpoints for each account\"},\"rewardPerTokenCheckpoints(address,uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"rewardPerTokenNumCheckpoints(address)\":{\"notice\":\"The number of checkpoints for each token\"},\"supplyCheckpoints(uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"supplyNumCheckpoints()\":{\"notice\":\"The number of checkpoints\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/bribes/BaseV1Bribes.sol\":\"BaseV1Bribes\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/bribes/BaseV1Bribes.sol\":{\"keccak256\":\"0x83f61a16265e5d967fe50648e3269ad0bb517a9ff2d74728e246935c5d624bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d74297f3a56e7ca28c9eb572629aa57451304e91b9e02919c88cff00e226e688\",\"dweb:/ipfs/QmQu99MN1sW1UwiB9UveWjkgEsjf8UKjCXpzKYiQiXDuvX\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/bribes/BaseV1BribesFactory.sol":{"BaseV1BribeFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_bribe","type":"address"}],"name":"BribeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"name":"createBribe","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50612d8a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636bd1a72c14610030575b600080fd5b61004361003e3660046100dc565b610059565b604051610050919061010a565b60405180910390f35b60008082604051610069906100cf565b610073919061010a565b604051809103906000f08015801561008f573d6000803e3d6000fd5b5090507fe7f31a5ff9b31d4ba882657f1def4432f7380c765ad2c85aaa7e725814b55e0a816040516100c1919061010a565b60405180910390a192915050565b612c368061011f83390190565b6000602082840312156100ed578081fd5b81356001600160a01b0381168114610103578182fd5b9392505050565b6001600160a01b039190911681526020019056fe60a06040523480156200001157600080fd5b5060405162002c3638038062002c3683398101604081905262000034916200004f565b600160005560601b6001600160601b0319166080526200007f565b60006020828403121562000061578081fd5b81516001600160a01b038116811462000078578182fd5b9392505050565b60805160601c612b67620000cf60003960008181610370015281816109c301528181610a3601528181610d0a01528181610dcd015281816116a60152818161171901526118990152612b676000f3fe608060405234801561001057600080fd5b50600436106101bb5760003560e01c80639ce43f90116100fa578063e68863961161009d578063e688639614610498578063e8111a12146104a0578063f1229777146104a9578063f25e55a5146104bc578063f301af42146104e7578063f3207723146104fa578063f5f8d3651461050d578063f7412baf14610520578063fd3140981461054757600080fd5b80639ce43f90146103dd5780639e2bf22c146103fd578063a28d4c9c14610410578063a7852afa14610423578063aa47965214610436578063aaf5eb6814610456578063b66503cf14610465578063da09d19d1461047857600080fd5b80634d5ce038116101625780634d5ce038146102dd57806350589793146103105780635a45d05214610330578063638634ee1461034557806376f4be36146103585780637b1039991461036b57806399bcc052146103aa5780639cc7f708146103bd57600080fd5b806301316ddf146101c057806318160ddd1461020c5780631be0528914610223578063221ca18c1461022d5780632ce9aead1461024d5780633b8819991461026d5780633e491d471461029857806349dcc204146102ab575b600080fd5b6101f26101ce366004612836565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61021560095481565b604051908152602001610203565b61021562093a8081565b61021561023b3660046127fe565b60016020526000908152604090205481565b61021561025b3660046127fe565b60036020526000908152604090205481565b61021561027b366004612836565b600660209081526000928352604080842090915290825290205481565b6102156102a6366004612836565b61055a565b6101f26102b9366004612984565b600b6020908152600092835260408084209091529082529020805460019091015482565b6103006102eb3660046127fe565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b61021561031e366004612881565b600c6020526000908152604090205481565b61034361033e366004612836565b6107c2565b005b6102156103533660046127fe565b6107fa565b610215610366366004612881565b61081e565b6103927f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102156103b83660046127fe565b610950565b6102156103cb366004612881565b600a6020526000908152604090205481565b6102156103eb3660046127fe565b60046020526000908152604090205481565b61034361040b366004612984565b6109c1565b61021561041e366004612984565b610b9a565b6103436104313660046128b1565b610cdd565b6102156104443660046127fe565b60106020526000908152604090205481565b610215670de0b6b3a764000081565b610343610473366004612836565b6111c2565b6102156104863660046127fe565b60026020526000908152604090205481565b600754610215565b610215600e5481565b6102156104b73660046127fe565b6115ba565b6102156104ca366004612836565b600560209081526000928352604080842090915290825290205481565b6103926104f5366004612881565b61167a565b610343610508366004612984565b6116a4565b61034361051b3660046128b1565b61186c565b6101f261052e366004612881565b600d602052600090815260409020805460019091015482565b6101f2610555366004612836565b611cc5565b6001600160a01b0382166000818152600560209081526040808320858452825280832054938352600f82528083208380529091528120549091829161059f9190611ee4565b6000848152600c60205260409020549091506105bf5760009150506107bc565b60006105cb8483610b9a565b6000858152600c6020526040812054919250906105ea90600190612abb565b9050600060016105fa8484612abb565b111561070057825b61060d600184612abb565b8110156106fe576000878152600b60208181526040808420858552808352818520825180840190935280548352600190810154838501528c8652939092529291829061065a908690612a64565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006106998b8460000151611cc5565b50905060006106ac8c8460000151611cc5565b509050670de0b6b3a76400006106c28383612abb565b85602001516106d19190612a9c565b6106db9190612a7c565b6106e59087612a64565b95505050505080806106f690612ad2565b915050610602565b505b6000868152600b60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610740908a90611cc5565b506001600160a01b038a1660009081526006602090815260408083208c8452909152902054909150670de0b6b3a76400009061077d908390611ee4565b6107868b6115ba565b6107909190612abb565b836020015161079f9190612a9c565b6107a99190612a7c565b6107b39084612a64565b96505050505050505b92915050565b6107cc8282611efb565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546107bc90429061205a565b600e54600090806108325750600092915050565b82600d6000610842600185612abb565b8152602001908152602001600020600001541161086b57610864600182612abb565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee548310156108a65750600092915050565b6000806108b4600184612abb565b90505b8181111561094857600060026108cd8484612abb565b6108d79190612a7c565b6108e19083612abb565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610922575095945050505050565b805187111561093357819350610941565b61093e600183612abb565b92505b50506108b7565b509392505050565b6001600160a01b038116600090815260026020526040812054421061097757506000919050565b6001600160a01b03821660009081526002602052604081205461099b904290612abb565b6001600160a01b0384166000908152600160205260409020549091506108649082612a9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8d57600080fd5b505afa158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac5919061281a565b6001600160a01b0316336001600160a01b031614610afe5760405162461bcd60e51b8152600401610af5906129de565b60405180910390fd5b8160096000828254610b109190612abb565b90915550506000818152600a602052604081208054849290610b33908490612abb565b90915550506000818152600a6020526040902054610b52908290612069565b610b5a612142565b604080518281526020810184905233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a25050565b6000828152600c602052604081205480610bb85760009150506107bc565b6000848152600b602052604081208491610bd3600185612abb565b81526020019081526020016000206000015411610bfd57610bf5600182612abb565b9150506107bc565b6000848152600b60209081526040808320838052909152902054831015610c285760009150506107bc565b600080610c36600184612abb565b90505b81811115610cd45760006002610c4f8484612abb565b610c599190612a7c565b610c639083612abb565b6000888152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610cae575093506107bc92505050565b8051871115610cbf57819350610ccd565b610cca600183612abb565b92505b5050610c39565b50949350505050565b60026000541415610d005760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6157600080fd5b505afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d99919061281a565b6001600160a01b0316336001600160a01b031614610dc95760405162461bcd60e51b8152600401610af5906129de565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c919061281a565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610e8991815260200190565b60206040518083038186803b158015610ea157600080fd5b505afa158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed9919061281a565b905060005b82518110156111b757610f17838281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60200260200101516121e6565b60046000868581518110610f3b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000888781518110610f8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff2848381518110610fe457634e487b7160e01b600052603260045260246000fd5b60200260200101518661055a565b9050426005600086858151811061101957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000878152602001908152602001600020819055506004600085848151811061107a57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008685815181106110c757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812089825290925290205580156111305761113084838151811061112157634e487b7160e01b600052603260045260246000fd5b602002602001015184836123c9565b83828151811061115057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316836001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161119c91815260200190565b60405180910390a350806111af81612ad2565b915050610ede565b505060016000555050565b600260005414156111e55760405162461bcd60e51b8152600401610af590612a2d565b6002600055806112245760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610af5565b6001600160a01b03821660009081526001602052604090205461124d5761124d82600042612500565b611256826121e6565b6001600160a01b03841660009081526004602090815260408083206003835281842094909455939092556002909152205442106112c457611299823330846125ef565b6112a662093a8082612a7c565b6001600160a01b038316600090815260016020526040902055611390565b6001600160a01b0382166000908152600260205260408120546112e8904290612abb565b6001600160a01b0384166000908152600160205260408120549192509061130f9083612a9c565b90508083116113505760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610af5565b61135c843330866125ef565b62093a8061136a8285612a64565b6113749190612a7c565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b0382166000908152600160205260409020546113e65760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610af5565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561142857600080fd5b505afa15801561143c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114609190612899565b905061146f62093a8082612a7c565b6001600160a01b03841660009081526001602052604090205411156114d15760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610af5565b6114de62093a8042612a64565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff16611570576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b6000600954600014156115e357506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a764000092916116269161205a565b61162f866107fa565b6116399190612abb565b6116439190612a9c565b61164d9190612a9c565b6116579190612a7c565b6001600160a01b0383166000908152600460205260409020546107bc9190612a64565b6007818154811061168a57600080fd5b6000918252602090912001546001600160a01b0316905081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561177057600080fd5b505afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a8919061281a565b6001600160a01b0316336001600160a01b0316146117d85760405162461bcd60e51b8152600401610af5906129de565b81600960008282546117ea9190612a64565b90915550506000818152600a60205260408120805484929061180d908490612a64565b90915550506000818152600a602052604090205461182c908290612069565b611834612142565b604080518281526020810184905233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159101610b8e565b6002600054141561188f5760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118f057600080fd5b505afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611928919061281a565b60405163430c208160e01b8152336004820152602481018490526001600160a01b03919091169063430c20819060440160206040518083038186803b15801561197057600080fd5b505afa158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a89190612861565b6119ec5760405162461bcd60e51b81526020600482015260156024820152743737ba103b329030b8383937bb32b21037bbb732b960591b6044820152606401610af5565b60005b8151811015611cbb57611a1b828281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60046000858581518110611a3f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110611a8d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000611af6838381518110611ae857634e487b7160e01b600052603260045260246000fd5b60200260200101518561055a565b90504260056000858581518110611b1d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008681526020019081526020016000208190555060046000848481518110611b7e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460066000858581518110611bcb57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281810192909252604090810160009081208882529092529020558015611c3457611c34838381518110611c2557634e487b7160e01b600052603260045260246000fd5b602002602001015133836123c9565b828281518110611c5457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc983604051611ca091815260200190565b60405180910390a35080611cb381612ad2565b9150506119ef565b5050600160005550565b6001600160a01b038216600090815260106020526040812054819080611cf2576000809250925050611edd565b6001600160a01b0385166000908152600f602052604081208591611d17600185612abb565b81526020019081526020016000206000015411611db4576001600160a01b0385166000908152600f6020526040812090611d52600184612abb565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611d989190612abb565b8152602001908152602001600020600001549250925050611edd565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611dec576000809250925050611edd565b600080611dfa600184612abb565b90505b81811115611eac5760006002611e138484612abb565b611e1d9190612a7c565b611e279083612abb565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611e8657602081015190519096509450611edd9350505050565b8051881115611e9757819350611ea5565b611ea2600183612abb565b92505b5050611dfd565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611ef45781610864565b5090919050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f335792509050611edd565b6001600160a01b038616600090815260016020526040902054611f5c579250429150611edd9050565b6000611f678361081e565b90506000611f836001600e54611f7d9190612abb565b8861205a565b9050815b8181101561204b576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612038576000600d81611fcc856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120178d8460000151866000015187602001518d612733565b90925090506120268289612a64565b97506120338d8983612500565b975050505b508061204381612ad2565b915050611f87565b50919792965091945050505050565b6000818310611ef45781610864565b6000828152600c6020526040902054429080158015906120b357506000848152600b60205260408120839161209f600185612abb565b815260200190815260200160002060000154145b156120ec576000848152600b6020526040812084916120d3600185612abb565b815260208101919091526040016000206001015561213c565b60408051808201825283815260208082018681526000888152600b835284812086825290925292902090518155905160019182015561212c908290612a64565b6000858152600c60205260409020555b50505050565b600e54428115801590612174575080600d6000612160600186612abb565b815260200190815260200160002060000154145b156121a357600954600d600061218b600186612abb565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d909152929092209051815590516001918201556121df908390612a64565b600e555050565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e548392919061221e5794909350915050565b6001600160a01b038516600090815260016020526040902054612245579442945092505050565b60006122508361081e565b905060006001600e546122639190612abb565b905060016122718383612abb565b111561234957815b612284600183612abb565b811015612347576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612334576000600d816122c8856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806123138c8460000151866000015187602001518d612733565b90925090506123228289612a64565b975061232f8c8983612500565b975050505b508061233f81612ad2565b915050612279565b505b6000818152600d602090815260409182902082518084019093528054835260010154908201819052156123bb57600061239c896123858b6107fa565b8451612391908a611ee4565b85602001518a612733565b5090506123a98186612a64565b94506123b6898642612500565b429550505b509196929550919350505050565b6000836001600160a01b03163b116123f35760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161244f91906129a5565b6000604051808303816000865af19150503d806000811461248c576040519150601f19603f3d011682016040523d82523d6000602084013e612491565b606091505b50915091508180156124bb5750805115806124bb5750808060200190518101906124bb9190612861565b6124f95760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610af5565b5050505050565b6001600160a01b038316600090815260106020526040902054801580159061255c57506001600160a01b0384166000908152600f602052604081208391612548600185612abb565b815260200190815260200160002060000154145b15612586576001600160a01b0384166000908152600f6020526040812084916120d3600185612abb565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f83528481208682529092529290209051815590516001918201556125d0908290612a64565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116126195760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161267d91906129a5565b6000604051808303816000865af19150503d80600081146126ba576040519150601f19603f3d011682016040523d82523d6000602084013e6126bf565b606091505b50915091508180156126e95750805115806126e95750808060200190518101906126e99190612861565b61272b5760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610af5565b505050505050565b60008060006127428785611ee4565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906127956127778a89611ee4565b6001600160a01b038d1660009081526002602052604090205461205a565b6001600160a01b038c166000908152600260205260409020546127b990869061205a565b6127c39190612abb565b6127cd9190612a9c565b6127d79190612a9c565b6127e19190612a7c565b9890975095505050505050565b80356127f981612b19565b919050565b60006020828403121561280f578081fd5b813561086481612b19565b60006020828403121561282b578081fd5b815161086481612b19565b60008060408385031215612848578081fd5b823561285381612b19565b946020939093013593505050565b600060208284031215612872578081fd5b81518015158114610864578182fd5b600060208284031215612892578081fd5b5035919050565b6000602082840312156128aa578081fd5b5051919050565b600080604083850312156128c3578182fd5b8235915060208084013567ffffffffffffffff808211156128e2578384fd5b818601915086601f8301126128f5578384fd5b81358181111561290757612907612b03565b8060051b604051601f19603f8301168101818110858211171561292c5761292c612b03565b604052828152858101935084860182860187018b101561294a578788fd5b8795505b838610156129735761295f816127ee565b85526001959095019493860193860161294e565b508096505050505050509250929050565b60008060408385031215612996578182fd5b50508035926020909101359150565b60008251815b818110156129c557602081860181015185830152016129ab565b818111156129d35782828501525b509190910192915050565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008219821115612a7757612a77612aed565b500190565b600082612a9757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612ab657612ab6612aed565b500290565b600082821015612acd57612acd612aed565b500390565b6000600019821415612ae657612ae6612aed565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612b2e57600080fd5b5056fea2646970667358221220096bfcc92c3019eef9e8f3ae2328fca435bc272aae41d44647b280c78dfd130464736f6c63430008040033a26469706673582212200ddf09fe67219db64be9e4de617ff38e0a724f9672b7fff091d49f8b5983ca4964736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D8A DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BD1A72C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xDC JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x69 SWAP1 PUSH2 0xCF JUMP JUMPDEST PUSH2 0x73 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH32 0xE7F31A5FF9B31D4BA882657F1DEF4432F7380C765AD2C85AAA7E725814B55E0A DUP2 PUSH1 0x40 MLOAD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C36 DUP1 PUSH2 0x11F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xED JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x103 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2C36 CODESIZE SUB DUP1 PUSH3 0x2C36 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x61 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x78 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x2B67 PUSH3 0xCF PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x370 ADD MSTORE DUP2 DUP2 PUSH2 0x9C3 ADD MSTORE DUP2 DUP2 PUSH2 0xA36 ADD MSTORE DUP2 DUP2 PUSH2 0xD0A ADD MSTORE DUP2 DUP2 PUSH2 0xDCD ADD MSTORE DUP2 DUP2 PUSH2 0x16A6 ADD MSTORE DUP2 DUP2 PUSH2 0x1719 ADD MSTORE PUSH2 0x1899 ADD MSTORE PUSH2 0x2B67 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9CE43F90 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xF25E55A5 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF3207723 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF5F8D365 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x9E2BF22C EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA28D4C9C EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA7852AFA EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4D5CE038 GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x50589793 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x9CC7F708 EQ PUSH2 0x3BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x3B881999 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3E491D47 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49DCC204 EQ PUSH2 0x2AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x215 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x300 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x31E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x33E CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x7C2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x215 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x81E JUMP JUMPDEST PUSH2 0x392 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0xCDD JUMP JUMPDEST PUSH2 0x215 PUSH2 0x444 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x11C2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x486 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x215 JUMP JUMPDEST PUSH2 0x215 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x167A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x16A4 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0x186C JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x1CC5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP4 DUP4 MSTORE PUSH1 0xF DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x5BF JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CB DUP5 DUP4 PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x5EA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x5FA DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x700 JUMPI DUP3 JUMPDEST PUSH2 0x60D PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP6 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE DUP13 DUP7 MSTORE SWAP4 SWAP1 SWAP3 MSTORE SWAP3 SWAP2 DUP3 SWAP1 PUSH2 0x65A SWAP1 DUP7 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x699 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x6AC DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x6C2 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x6D1 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x6DB SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x6E5 SWAP1 DUP8 PUSH2 0x2A64 JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x6F6 SWAP1 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x602 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x740 SWAP1 DUP11 SWAP1 PUSH2 0x1CC5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP13 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x77D SWAP1 DUP4 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH2 0x786 DUP12 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x790 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x79F SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x7A9 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x7B3 SWAP1 DUP5 PUSH2 0x2A64 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7CC DUP3 DUP3 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7BC SWAP1 TIMESTAMP SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x832 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0x842 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x86B JUMPI PUSH2 0x864 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0x8A6 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B4 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x8CD DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x8D7 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x8E1 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x922 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x933 JUMPI DUP2 SWAP4 POP PUSH2 0x941 JUMP JUMPDEST PUSH2 0x93E PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x8B7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x977 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x99B SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x864 SWAP1 DUP3 PUSH2 0x2A9C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC5 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB10 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xB33 SWAP1 DUP5 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xB52 SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0xB5A PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0xF279E6A1F5E320CCA91135676D9CB6E44CA8A08C0B88342BCDB1144F6511B568 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0xBB8 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0xBD3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xBFD JUMPI PUSH2 0xBF5 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0xC28 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC36 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xC4F DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0xC59 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0xC63 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xCAE JUMPI POP SWAP4 POP PUSH2 0x7BC SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xCBF JUMPI DUP2 SWAP4 POP PUSH2 0xCCD JUMP JUMPDEST PUSH2 0xCCA PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xC39 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD99 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE89 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xED9 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x11B7 JUMPI PUSH2 0xF17 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF2 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1019 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x107A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP10 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1130 JUMPI PUSH2 0x1130 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1121 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1150 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x119C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11AF DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEDE JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x11E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x1224 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x124D JUMPI PUSH2 0x124D DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST PUSH2 0x1256 DUP3 PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x12C4 JUMPI PUSH2 0x1299 DUP3 CALLER ADDRESS DUP5 PUSH2 0x25EF JUMP JUMPDEST PUSH2 0x12A6 PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12E8 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x130F SWAP1 DUP4 PUSH2 0x2A9C JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x1350 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x135C DUP5 CALLER ADDRESS DUP7 PUSH2 0x25EF JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x136A DUP3 DUP6 PUSH2 0x2A64 JUMP JUMPDEST PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x13E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x143C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1460 SWAP2 SWAP1 PUSH2 0x2899 JUMP JUMPDEST SWAP1 POP PUSH2 0x146F PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x14D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x14DE PUSH3 0x93A80 TIMESTAMP PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1570 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x15E3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1626 SWAP2 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x162F DUP7 PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x1639 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1643 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x164D SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x1657 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7BC SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17A8 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17EA SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x180D SWAP1 DUP5 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x182C SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0x1834 PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 SWAP2 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x188F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1904 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1928 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A8 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x19EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x3737BA103B329030B8383937BB32B21037BBB732B9 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1CBB JUMPI PUSH2 0x1A1B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A3F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x1A8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1AF6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1AE8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1B1D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B7E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1BCB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP9 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1C34 JUMPI PUSH2 0x1C34 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C25 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1C54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1CA0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1CB3 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x19EF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1CF2 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1D17 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1DB4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1D52 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1D98 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1DEC JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1DFA PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1E13 DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1E1D SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x1E27 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1EDD SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1E97 JUMPI DUP2 SWAP4 POP PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x1EA2 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1DFD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F33 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F5C JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1EDD SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F67 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F83 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F7D SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP9 PUSH2 0x205A JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x204B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2038 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FCC DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2017 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2026 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x2033 DUP14 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2043 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F87 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20B3 JUMPI POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x209F PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x20EC JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x213C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x212C SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2174 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x2160 PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x21A3 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x218B PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x21DF SWAP1 DUP4 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x221E JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2245 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2250 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x2263 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x2271 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x2349 JUMPI DUP2 JUMPDEST PUSH2 0x2284 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2334 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x22C8 DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2313 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2322 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x232F DUP13 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x233F DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2279 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x23BB JUMPI PUSH1 0x0 PUSH2 0x239C DUP10 PUSH2 0x2385 DUP12 PUSH2 0x7FA JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2391 SWAP1 DUP11 PUSH2 0x1EE4 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2733 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x23A9 DUP2 DUP7 PUSH2 0x2A64 JUMP JUMPDEST SWAP5 POP PUSH2 0x23B6 DUP10 DUP7 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x23F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x244F SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x248C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x24BB JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x24BB JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24BB SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x24F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x255C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2548 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x25D0 SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2619 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x267D SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x26E9 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x26E9 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x26E9 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x272B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2742 DUP8 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2795 PUSH2 0x2777 DUP11 DUP10 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x205A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x27B9 SWAP1 DUP7 SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x27C3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x27CD SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27D7 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27E1 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x27F9 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2848 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2853 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2872 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x864 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2892 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28C3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28E2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28F5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH2 0x2907 PUSH2 0x2B03 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x292C JUMPI PUSH2 0x292C PUSH2 0x2B03 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x294A JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2973 JUMPI PUSH2 0x295F DUP2 PUSH2 0x27EE JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x294E JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2996 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x29C5 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x29AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x29D3 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2A77 JUMPI PUSH2 0x2A77 PUSH2 0x2AED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2A97 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2AB6 JUMPI PUSH2 0x2AB6 PUSH2 0x2AED JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x2AED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2AE6 JUMPI PUSH2 0x2AE6 PUSH2 0x2AED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2B2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD PUSH12 0xFCC92C3019EEF9E8F3AE2328 0xFC LOG4 CALLDATALOAD 0xBC 0x27 0x2A 0xAE COINBASE 0xD4 CHAINID SELFBALANCE 0xB2 DUP1 0xC7 DUP14 REVERT SGT DIV PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD 0xDF MULMOD INVALID PUSH8 0x219DB64BE9E4DE61 PUSH32 0xF38E0A724F9672B7FFF091D49F8B5983CA4964736F6C63430008040033000000 ","sourceMap":"170:282:75:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:530:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:236:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulVariableDeclaration","src":"165:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:139"},"nodeType":"YulFunctionCall","src":"178:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"264:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"273:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"281:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"266:6:139"},"nodeType":"YulFunctionCall","src":"266:22:139"},"nodeType":"YulExpressionStatement","src":"266:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"234:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"249:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"254:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"245:3:139"},"nodeType":"YulFunctionCall","src":"245:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"241:3:139"},"nodeType":"YulFunctionCall","src":"241:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"230:3:139"},"nodeType":"YulFunctionCall","src":"230:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"220:2:139"},"nodeType":"YulFunctionCall","src":"220:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"213:6:139"},"nodeType":"YulFunctionCall","src":"213:50:139"},"nodeType":"YulIf","src":"210:2:139"},{"nodeType":"YulAssignment","src":"299:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"309:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"299:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:306:139"},{"body":{"nodeType":"YulBlock","src":"426:102:139","statements":[{"nodeType":"YulAssignment","src":"436:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"448:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"459:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"444:3:139"},"nodeType":"YulFunctionCall","src":"444:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"436:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"478:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"493:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"509:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"514:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"505:3:139"},"nodeType":"YulFunctionCall","src":"505:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"518:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"501:3:139"},"nodeType":"YulFunctionCall","src":"501:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"489:3:139"},"nodeType":"YulFunctionCall","src":"489:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"471:6:139"},"nodeType":"YulFunctionCall","src":"471:51:139"},"nodeType":"YulExpressionStatement","src":"471:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"395:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"406:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"417:4:139","type":""}],"src":"325:203:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80636bd1a72c14610030575b600080fd5b61004361003e3660046100dc565b610059565b604051610050919061010a565b60405180910390f35b60008082604051610069906100cf565b610073919061010a565b604051809103906000f08015801561008f573d6000803e3d6000fd5b5090507fe7f31a5ff9b31d4ba882657f1def4432f7380c765ad2c85aaa7e725814b55e0a816040516100c1919061010a565b60405180910390a192915050565b612c368061011f83390190565b6000602082840312156100ed578081fd5b81356001600160a01b0381168114610103578182fd5b9392505050565b6001600160a01b039190911681526020019056fe60a06040523480156200001157600080fd5b5060405162002c3638038062002c3683398101604081905262000034916200004f565b600160005560601b6001600160601b0319166080526200007f565b60006020828403121562000061578081fd5b81516001600160a01b038116811462000078578182fd5b9392505050565b60805160601c612b67620000cf60003960008181610370015281816109c301528181610a3601528181610d0a01528181610dcd015281816116a60152818161171901526118990152612b676000f3fe608060405234801561001057600080fd5b50600436106101bb5760003560e01c80639ce43f90116100fa578063e68863961161009d578063e688639614610498578063e8111a12146104a0578063f1229777146104a9578063f25e55a5146104bc578063f301af42146104e7578063f3207723146104fa578063f5f8d3651461050d578063f7412baf14610520578063fd3140981461054757600080fd5b80639ce43f90146103dd5780639e2bf22c146103fd578063a28d4c9c14610410578063a7852afa14610423578063aa47965214610436578063aaf5eb6814610456578063b66503cf14610465578063da09d19d1461047857600080fd5b80634d5ce038116101625780634d5ce038146102dd57806350589793146103105780635a45d05214610330578063638634ee1461034557806376f4be36146103585780637b1039991461036b57806399bcc052146103aa5780639cc7f708146103bd57600080fd5b806301316ddf146101c057806318160ddd1461020c5780631be0528914610223578063221ca18c1461022d5780632ce9aead1461024d5780633b8819991461026d5780633e491d471461029857806349dcc204146102ab575b600080fd5b6101f26101ce366004612836565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61021560095481565b604051908152602001610203565b61021562093a8081565b61021561023b3660046127fe565b60016020526000908152604090205481565b61021561025b3660046127fe565b60036020526000908152604090205481565b61021561027b366004612836565b600660209081526000928352604080842090915290825290205481565b6102156102a6366004612836565b61055a565b6101f26102b9366004612984565b600b6020908152600092835260408084209091529082529020805460019091015482565b6103006102eb3660046127fe565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b61021561031e366004612881565b600c6020526000908152604090205481565b61034361033e366004612836565b6107c2565b005b6102156103533660046127fe565b6107fa565b610215610366366004612881565b61081e565b6103927f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102156103b83660046127fe565b610950565b6102156103cb366004612881565b600a6020526000908152604090205481565b6102156103eb3660046127fe565b60046020526000908152604090205481565b61034361040b366004612984565b6109c1565b61021561041e366004612984565b610b9a565b6103436104313660046128b1565b610cdd565b6102156104443660046127fe565b60106020526000908152604090205481565b610215670de0b6b3a764000081565b610343610473366004612836565b6111c2565b6102156104863660046127fe565b60026020526000908152604090205481565b600754610215565b610215600e5481565b6102156104b73660046127fe565b6115ba565b6102156104ca366004612836565b600560209081526000928352604080842090915290825290205481565b6103926104f5366004612881565b61167a565b610343610508366004612984565b6116a4565b61034361051b3660046128b1565b61186c565b6101f261052e366004612881565b600d602052600090815260409020805460019091015482565b6101f2610555366004612836565b611cc5565b6001600160a01b0382166000818152600560209081526040808320858452825280832054938352600f82528083208380529091528120549091829161059f9190611ee4565b6000848152600c60205260409020549091506105bf5760009150506107bc565b60006105cb8483610b9a565b6000858152600c6020526040812054919250906105ea90600190612abb565b9050600060016105fa8484612abb565b111561070057825b61060d600184612abb565b8110156106fe576000878152600b60208181526040808420858552808352818520825180840190935280548352600190810154838501528c8652939092529291829061065a908690612a64565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006106998b8460000151611cc5565b50905060006106ac8c8460000151611cc5565b509050670de0b6b3a76400006106c28383612abb565b85602001516106d19190612a9c565b6106db9190612a7c565b6106e59087612a64565b95505050505080806106f690612ad2565b915050610602565b505b6000868152600b60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610740908a90611cc5565b506001600160a01b038a1660009081526006602090815260408083208c8452909152902054909150670de0b6b3a76400009061077d908390611ee4565b6107868b6115ba565b6107909190612abb565b836020015161079f9190612a9c565b6107a99190612a7c565b6107b39084612a64565b96505050505050505b92915050565b6107cc8282611efb565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546107bc90429061205a565b600e54600090806108325750600092915050565b82600d6000610842600185612abb565b8152602001908152602001600020600001541161086b57610864600182612abb565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee548310156108a65750600092915050565b6000806108b4600184612abb565b90505b8181111561094857600060026108cd8484612abb565b6108d79190612a7c565b6108e19083612abb565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610922575095945050505050565b805187111561093357819350610941565b61093e600183612abb565b92505b50506108b7565b509392505050565b6001600160a01b038116600090815260026020526040812054421061097757506000919050565b6001600160a01b03821660009081526002602052604081205461099b904290612abb565b6001600160a01b0384166000908152600160205260409020549091506108649082612a9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8d57600080fd5b505afa158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac5919061281a565b6001600160a01b0316336001600160a01b031614610afe5760405162461bcd60e51b8152600401610af5906129de565b60405180910390fd5b8160096000828254610b109190612abb565b90915550506000818152600a602052604081208054849290610b33908490612abb565b90915550506000818152600a6020526040902054610b52908290612069565b610b5a612142565b604080518281526020810184905233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a25050565b6000828152600c602052604081205480610bb85760009150506107bc565b6000848152600b602052604081208491610bd3600185612abb565b81526020019081526020016000206000015411610bfd57610bf5600182612abb565b9150506107bc565b6000848152600b60209081526040808320838052909152902054831015610c285760009150506107bc565b600080610c36600184612abb565b90505b81811115610cd45760006002610c4f8484612abb565b610c599190612a7c565b610c639083612abb565b6000888152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610cae575093506107bc92505050565b8051871115610cbf57819350610ccd565b610cca600183612abb565b92505b5050610c39565b50949350505050565b60026000541415610d005760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6157600080fd5b505afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d99919061281a565b6001600160a01b0316336001600160a01b031614610dc95760405162461bcd60e51b8152600401610af5906129de565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c919061281a565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610e8991815260200190565b60206040518083038186803b158015610ea157600080fd5b505afa158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed9919061281a565b905060005b82518110156111b757610f17838281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60200260200101516121e6565b60046000868581518110610f3b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000888781518110610f8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff2848381518110610fe457634e487b7160e01b600052603260045260246000fd5b60200260200101518661055a565b9050426005600086858151811061101957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000878152602001908152602001600020819055506004600085848151811061107a57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008685815181106110c757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812089825290925290205580156111305761113084838151811061112157634e487b7160e01b600052603260045260246000fd5b602002602001015184836123c9565b83828151811061115057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316836001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161119c91815260200190565b60405180910390a350806111af81612ad2565b915050610ede565b505060016000555050565b600260005414156111e55760405162461bcd60e51b8152600401610af590612a2d565b6002600055806112245760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610af5565b6001600160a01b03821660009081526001602052604090205461124d5761124d82600042612500565b611256826121e6565b6001600160a01b03841660009081526004602090815260408083206003835281842094909455939092556002909152205442106112c457611299823330846125ef565b6112a662093a8082612a7c565b6001600160a01b038316600090815260016020526040902055611390565b6001600160a01b0382166000908152600260205260408120546112e8904290612abb565b6001600160a01b0384166000908152600160205260408120549192509061130f9083612a9c565b90508083116113505760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610af5565b61135c843330866125ef565b62093a8061136a8285612a64565b6113749190612a7c565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b0382166000908152600160205260409020546113e65760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610af5565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561142857600080fd5b505afa15801561143c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114609190612899565b905061146f62093a8082612a7c565b6001600160a01b03841660009081526001602052604090205411156114d15760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610af5565b6114de62093a8042612a64565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff16611570576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b6000600954600014156115e357506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a764000092916116269161205a565b61162f866107fa565b6116399190612abb565b6116439190612a9c565b61164d9190612a9c565b6116579190612a7c565b6001600160a01b0383166000908152600460205260409020546107bc9190612a64565b6007818154811061168a57600080fd5b6000918252602090912001546001600160a01b0316905081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561177057600080fd5b505afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a8919061281a565b6001600160a01b0316336001600160a01b0316146117d85760405162461bcd60e51b8152600401610af5906129de565b81600960008282546117ea9190612a64565b90915550506000818152600a60205260408120805484929061180d908490612a64565b90915550506000818152600a602052604090205461182c908290612069565b611834612142565b604080518281526020810184905233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159101610b8e565b6002600054141561188f5760405162461bcd60e51b8152600401610af590612a2d565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118f057600080fd5b505afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611928919061281a565b60405163430c208160e01b8152336004820152602481018490526001600160a01b03919091169063430c20819060440160206040518083038186803b15801561197057600080fd5b505afa158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a89190612861565b6119ec5760405162461bcd60e51b81526020600482015260156024820152743737ba103b329030b8383937bb32b21037bbb732b960591b6044820152606401610af5565b60005b8151811015611cbb57611a1b828281518110610f0a57634e487b7160e01b600052603260045260246000fd5b60046000858581518110611a3f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110611a8d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000611af6838381518110611ae857634e487b7160e01b600052603260045260246000fd5b60200260200101518561055a565b90504260056000858581518110611b1d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008681526020019081526020016000208190555060046000848481518110611b7e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460066000858581518110611bcb57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281810192909252604090810160009081208882529092529020558015611c3457611c34838381518110611c2557634e487b7160e01b600052603260045260246000fd5b602002602001015133836123c9565b828281518110611c5457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc983604051611ca091815260200190565b60405180910390a35080611cb381612ad2565b9150506119ef565b5050600160005550565b6001600160a01b038216600090815260106020526040812054819080611cf2576000809250925050611edd565b6001600160a01b0385166000908152600f602052604081208591611d17600185612abb565b81526020019081526020016000206000015411611db4576001600160a01b0385166000908152600f6020526040812090611d52600184612abb565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611d989190612abb565b8152602001908152602001600020600001549250925050611edd565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611dec576000809250925050611edd565b600080611dfa600184612abb565b90505b81811115611eac5760006002611e138484612abb565b611e1d9190612a7c565b611e279083612abb565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611e8657602081015190519096509450611edd9350505050565b8051881115611e9757819350611ea5565b611ea2600183612abb565b92505b5050611dfd565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611ef45781610864565b5090919050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f335792509050611edd565b6001600160a01b038616600090815260016020526040902054611f5c579250429150611edd9050565b6000611f678361081e565b90506000611f836001600e54611f7d9190612abb565b8861205a565b9050815b8181101561204b576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612038576000600d81611fcc856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120178d8460000151866000015187602001518d612733565b90925090506120268289612a64565b97506120338d8983612500565b975050505b508061204381612ad2565b915050611f87565b50919792965091945050505050565b6000818310611ef45781610864565b6000828152600c6020526040902054429080158015906120b357506000848152600b60205260408120839161209f600185612abb565b815260200190815260200160002060000154145b156120ec576000848152600b6020526040812084916120d3600185612abb565b815260208101919091526040016000206001015561213c565b60408051808201825283815260208082018681526000888152600b835284812086825290925292902090518155905160019182015561212c908290612a64565b6000858152600c60205260409020555b50505050565b600e54428115801590612174575080600d6000612160600186612abb565b815260200190815260200160002060000154145b156121a357600954600d600061218b600186612abb565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d909152929092209051815590516001918201556121df908390612a64565b600e555050565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e548392919061221e5794909350915050565b6001600160a01b038516600090815260016020526040902054612245579442945092505050565b60006122508361081e565b905060006001600e546122639190612abb565b905060016122718383612abb565b111561234957815b612284600183612abb565b811015612347576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612334576000600d816122c8856001612a64565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806123138c8460000151866000015187602001518d612733565b90925090506123228289612a64565b975061232f8c8983612500565b975050505b508061233f81612ad2565b915050612279565b505b6000818152600d602090815260409182902082518084019093528054835260010154908201819052156123bb57600061239c896123858b6107fa565b8451612391908a611ee4565b85602001518a612733565b5090506123a98186612a64565b94506123b6898642612500565b429550505b509196929550919350505050565b6000836001600160a01b03163b116123f35760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161244f91906129a5565b6000604051808303816000865af19150503d806000811461248c576040519150601f19603f3d011682016040523d82523d6000602084013e612491565b606091505b50915091508180156124bb5750805115806124bb5750808060200190518101906124bb9190612861565b6124f95760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610af5565b5050505050565b6001600160a01b038316600090815260106020526040902054801580159061255c57506001600160a01b0384166000908152600f602052604081208391612548600185612abb565b815260200190815260200160002060000154145b15612586576001600160a01b0384166000908152600f6020526040812084916120d3600185612abb565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f83528481208682529092529290209051815590516001918201556125d0908290612a64565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116126195760405162461bcd60e51b8152600401610af590612a01565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161267d91906129a5565b6000604051808303816000865af19150503d80600081146126ba576040519150601f19603f3d011682016040523d82523d6000602084013e6126bf565b606091505b50915091508180156126e95750805115806126e95750808060200190518101906126e99190612861565b61272b5760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610af5565b505050505050565b60008060006127428785611ee4565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906127956127778a89611ee4565b6001600160a01b038d1660009081526002602052604090205461205a565b6001600160a01b038c166000908152600260205260409020546127b990869061205a565b6127c39190612abb565b6127cd9190612a9c565b6127d79190612a9c565b6127e19190612a7c565b9890975095505050505050565b80356127f981612b19565b919050565b60006020828403121561280f578081fd5b813561086481612b19565b60006020828403121561282b578081fd5b815161086481612b19565b60008060408385031215612848578081fd5b823561285381612b19565b946020939093013593505050565b600060208284031215612872578081fd5b81518015158114610864578182fd5b600060208284031215612892578081fd5b5035919050565b6000602082840312156128aa578081fd5b5051919050565b600080604083850312156128c3578182fd5b8235915060208084013567ffffffffffffffff808211156128e2578384fd5b818601915086601f8301126128f5578384fd5b81358181111561290757612907612b03565b8060051b604051601f19603f8301168101818110858211171561292c5761292c612b03565b604052828152858101935084860182860187018b101561294a578788fd5b8795505b838610156129735761295f816127ee565b85526001959095019493860193860161294e565b508096505050505050509250929050565b60008060408385031215612996578182fd5b50508035926020909101359150565b60008251815b818110156129c557602081860181015185830152016129ab565b818111156129d35782828501525b509190910192915050565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008219821115612a7757612a77612aed565b500190565b600082612a9757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612ab657612ab6612aed565b500290565b600082821015612acd57612acd612aed565b500390565b6000600019821415612ae657612ae6612aed565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612b2e57600080fd5b5056fea2646970667358221220096bfcc92c3019eef9e8f3ae2328fca435bc272aae41d44647b280c78dfd130464736f6c63430008040033a26469706673582212200ddf09fe67219db64be9e4de617ff38e0a724f9672b7fff091d49f8b5983ca4964736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BD1A72C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xDC JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x69 SWAP1 PUSH2 0xCF JUMP JUMPDEST PUSH2 0x73 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH32 0xE7F31A5FF9B31D4BA882657F1DEF4432F7380C765AD2C85AAA7E725814B55E0A DUP2 PUSH1 0x40 MLOAD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C36 DUP1 PUSH2 0x11F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xED JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x103 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2C36 CODESIZE SUB DUP1 PUSH3 0x2C36 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x61 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x78 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x2B67 PUSH3 0xCF PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x370 ADD MSTORE DUP2 DUP2 PUSH2 0x9C3 ADD MSTORE DUP2 DUP2 PUSH2 0xA36 ADD MSTORE DUP2 DUP2 PUSH2 0xD0A ADD MSTORE DUP2 DUP2 PUSH2 0xDCD ADD MSTORE DUP2 DUP2 PUSH2 0x16A6 ADD MSTORE DUP2 DUP2 PUSH2 0x1719 ADD MSTORE PUSH2 0x1899 ADD MSTORE PUSH2 0x2B67 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9CE43F90 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xF25E55A5 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF3207723 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF5F8D365 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x9E2BF22C EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA28D4C9C EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA7852AFA EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4D5CE038 GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x50589793 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x9CC7F708 EQ PUSH2 0x3BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x3B881999 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3E491D47 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49DCC204 EQ PUSH2 0x2AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x215 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x300 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x31E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x33E CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x7C2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x215 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x81E JUMP JUMPDEST PUSH2 0x392 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0xCDD JUMP JUMPDEST PUSH2 0x215 PUSH2 0x444 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x11C2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x486 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x215 JUMP JUMPDEST PUSH2 0x215 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x27FE JUMP JUMPDEST PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x215 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH2 0x167A JUMP JUMPDEST PUSH2 0x343 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x2984 JUMP JUMPDEST PUSH2 0x16A4 JUMP JUMPDEST PUSH2 0x343 PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x28B1 JUMP JUMPDEST PUSH2 0x186C JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2836 JUMP JUMPDEST PUSH2 0x1CC5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP4 DUP4 MSTORE PUSH1 0xF DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x5BF JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CB DUP5 DUP4 PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x5EA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x5FA DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x700 JUMPI DUP3 JUMPDEST PUSH2 0x60D PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP6 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE DUP13 DUP7 MSTORE SWAP4 SWAP1 SWAP3 MSTORE SWAP3 SWAP2 DUP3 SWAP1 PUSH2 0x65A SWAP1 DUP7 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x699 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x6AC DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1CC5 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x6C2 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x6D1 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x6DB SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x6E5 SWAP1 DUP8 PUSH2 0x2A64 JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x6F6 SWAP1 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x602 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x740 SWAP1 DUP11 SWAP1 PUSH2 0x1CC5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP13 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x77D SWAP1 DUP4 SWAP1 PUSH2 0x1EE4 JUMP JUMPDEST PUSH2 0x786 DUP12 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x790 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x79F SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x7A9 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x7B3 SWAP1 DUP5 PUSH2 0x2A64 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7CC DUP3 DUP3 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7BC SWAP1 TIMESTAMP SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x832 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0x842 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x86B JUMPI PUSH2 0x864 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0x8A6 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B4 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x8CD DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x8D7 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x8E1 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x922 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x933 JUMPI DUP2 SWAP4 POP PUSH2 0x941 JUMP JUMPDEST PUSH2 0x93E PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x8B7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x977 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x99B SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x864 SWAP1 DUP3 PUSH2 0x2A9C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC5 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB10 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xB33 SWAP1 DUP5 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xB52 SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0xB5A PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0xF279E6A1F5E320CCA91135676D9CB6E44CA8A08C0B88342BCDB1144F6511B568 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0xBB8 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0xBD3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xBFD JUMPI PUSH2 0xBF5 PUSH1 0x1 DUP3 PUSH2 0x2ABB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0xC28 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7BC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC36 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xC4F DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0xC59 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0xC63 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xCAE JUMPI POP SWAP4 POP PUSH2 0x7BC SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xCBF JUMPI DUP2 SWAP4 POP PUSH2 0xCCD JUMP JUMPDEST PUSH2 0xCCA PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xC39 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD99 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE89 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xED9 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x11B7 JUMPI PUSH2 0xF17 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF2 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1019 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x107A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP10 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1130 JUMPI PUSH2 0x1130 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1121 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1150 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x119C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11AF DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEDE JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x11E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x1224 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x124D JUMPI PUSH2 0x124D DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST PUSH2 0x1256 DUP3 PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x12C4 JUMPI PUSH2 0x1299 DUP3 CALLER ADDRESS DUP5 PUSH2 0x25EF JUMP JUMPDEST PUSH2 0x12A6 PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12E8 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x130F SWAP1 DUP4 PUSH2 0x2A9C JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x1350 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x135C DUP5 CALLER ADDRESS DUP7 PUSH2 0x25EF JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x136A DUP3 DUP6 PUSH2 0x2A64 JUMP JUMPDEST PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x13E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x143C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1460 SWAP2 SWAP1 PUSH2 0x2899 JUMP JUMPDEST SWAP1 POP PUSH2 0x146F PUSH3 0x93A80 DUP3 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x14D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x14DE PUSH3 0x93A80 TIMESTAMP PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1570 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x15E3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1626 SWAP2 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x162F DUP7 PUSH2 0x7FA JUMP JUMPDEST PUSH2 0x1639 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1643 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x164D SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x1657 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7BC SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1713 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17A8 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x29DE JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17EA SWAP2 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x180D SWAP1 DUP5 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x182C SWAP1 DUP3 SWAP1 PUSH2 0x2069 JUMP JUMPDEST PUSH2 0x1834 PUSH2 0x2142 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 SWAP2 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x188F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A2D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1904 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1928 SWAP2 SWAP1 PUSH2 0x281A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x430C2081 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x430C2081 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A8 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x19EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x3737BA103B329030B8383937BB32B21037BBB732B9 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1CBB JUMPI PUSH2 0x1A1B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A3F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x1A8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1AF6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1AE8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x55A JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1B1D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B7E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1BCB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP9 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1C34 JUMPI PUSH2 0x1C34 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C25 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x23C9 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1C54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1CA0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1CB3 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x19EF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1CF2 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1D17 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1DB4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1D52 PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1D98 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1DEC JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1DFA PUSH1 0x1 DUP5 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1E13 DUP5 DUP5 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x1E1D SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST PUSH2 0x1E27 SWAP1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1EDD SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1E97 JUMPI DUP2 SWAP4 POP PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x1EA2 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1DFD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F33 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F5C JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1EDD SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F67 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F83 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F7D SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST DUP9 PUSH2 0x205A JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x204B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2038 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FCC DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2017 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2026 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x2033 DUP14 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2043 DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F87 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1EF4 JUMPI DUP2 PUSH2 0x864 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20B3 JUMPI POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x209F PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x20EC JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x213C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x212C SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2174 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x2160 PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x21A3 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x218B PUSH1 0x1 DUP7 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x21DF SWAP1 DUP4 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x221E JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2245 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2250 DUP4 PUSH2 0x81E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x2263 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x2271 DUP4 DUP4 PUSH2 0x2ABB JUMP JUMPDEST GT ISZERO PUSH2 0x2349 JUMPI DUP2 JUMPDEST PUSH2 0x2284 PUSH1 0x1 DUP4 PUSH2 0x2ABB JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2334 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x22C8 DUP6 PUSH1 0x1 PUSH2 0x2A64 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2313 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2733 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2322 DUP3 DUP10 PUSH2 0x2A64 JUMP JUMPDEST SWAP8 POP PUSH2 0x232F DUP13 DUP10 DUP4 PUSH2 0x2500 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x233F DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2279 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x23BB JUMPI PUSH1 0x0 PUSH2 0x239C DUP10 PUSH2 0x2385 DUP12 PUSH2 0x7FA JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2391 SWAP1 DUP11 PUSH2 0x1EE4 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2733 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x23A9 DUP2 DUP7 PUSH2 0x2A64 JUMP JUMPDEST SWAP5 POP PUSH2 0x23B6 DUP10 DUP7 TIMESTAMP PUSH2 0x2500 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x23F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x244F SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x248C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x24BB JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x24BB JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24BB SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x24F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x255C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2548 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x20D3 PUSH1 0x1 DUP6 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x25D0 SWAP1 DUP3 SWAP1 PUSH2 0x2A64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2619 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF5 SWAP1 PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x267D SWAP2 SWAP1 PUSH2 0x29A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x26E9 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x26E9 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x26E9 SWAP2 SWAP1 PUSH2 0x2861 JUMP JUMPDEST PUSH2 0x272B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xAF5 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2742 DUP8 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2795 PUSH2 0x2777 DUP11 DUP10 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x205A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x27B9 SWAP1 DUP7 SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH2 0x27C3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH2 0x27CD SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27D7 SWAP2 SWAP1 PUSH2 0x2A9C JUMP JUMPDEST PUSH2 0x27E1 SWAP2 SWAP1 PUSH2 0x2A7C JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x27F9 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x864 DUP2 PUSH2 0x2B19 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2848 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2853 DUP2 PUSH2 0x2B19 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2872 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x864 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2892 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28C3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28E2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28F5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH2 0x2907 PUSH2 0x2B03 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x292C JUMPI PUSH2 0x292C PUSH2 0x2B03 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x294A JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2973 JUMPI PUSH2 0x295F DUP2 PUSH2 0x27EE JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x294E JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2996 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x29C5 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x29AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x29D3 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2A77 JUMPI PUSH2 0x2A77 PUSH2 0x2AED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2A97 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2AB6 JUMPI PUSH2 0x2AB6 PUSH2 0x2AED JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x2AED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2AE6 JUMPI PUSH2 0x2AE6 PUSH2 0x2AED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2B2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD PUSH12 0xFCC92C3019EEF9E8F3AE2328 0xFC LOG4 CALLDATALOAD 0xBC 0x27 0x2A 0xAE COINBASE 0xD4 CHAINID SELFBALANCE 0xB2 DUP1 0xC7 DUP14 REVERT SGT DIV PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD 0xDF MULMOD INVALID PUSH8 0x219DB64BE9E4DE61 PUSH32 0xF38E0A724F9672B7FFF091D49F8B5983CA4964736F6C63430008040033000000 ","sourceMap":"170:282:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;221:229;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;312:7;335:13;376:9;359:27;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;335:52;;402:19;415:5;402:19;;;;;;:::i;:::-;;;;;;;;438:5;221:229;-1:-1:-1;;221:229:75:o;-1:-1:-1:-;;;;;;;;:::o;14:306:139:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:139;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:139:o;325:203::-;-1:-1:-1;;;;;489:32:139;;;;471:51;;459:2;444:18;;426:102::o"},"methodIdentifiers":{"createBribe(address)":"6bd1a72c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"}],\"name\":\"BribeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"createBribe\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/bribes/BaseV1BribesFactory.sol\":\"BaseV1BribeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/bribes/BaseV1Bribes.sol\":{\"keccak256\":\"0x83f61a16265e5d967fe50648e3269ad0bb517a9ff2d74728e246935c5d624bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d74297f3a56e7ca28c9eb572629aa57451304e91b9e02919c88cff00e226e688\",\"dweb:/ipfs/QmQu99MN1sW1UwiB9UveWjkgEsjf8UKjCXpzKYiQiXDuvX\"]},\"contracts/bribes/BaseV1BribesFactory.sol\":{\"keccak256\":\"0x0b9be7cc4d9657db70994c32f9edfe88b2ca19ed247c1a96882516075826b126\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e82283663e2541b213425037d427a85451e94ec4ed38c824d36bca1247bc435b\",\"dweb:/ipfs/QmSBvJPPAQ73PfguHeMyKf4TuxFSS9VNeiEFtM7Q18MZvZ\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IBribeFactory.sol\":{\"keccak256\":\"0x17e891f801dd4fd0636bf0dc89640047601942d6c2191edff32e3344f7882e7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6d2b2922adf4dc632b67d2384fd481d0442183876bcf7a27620c2e0779804f4\",\"dweb:/ipfs/QmU27qrGnKbsh2ZEgKfADfS9URHhZXM9VaVvzdVeD27Ytu\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/bribes/BaseV2Bribes.sol":{"BaseV2Bribes":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"who","type":"address"}],"name":"_deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"who","type":"address"}],"name":"_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"maxRuns","type":"uint256"}],"name":"batchRewardPerToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"checkpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"balanceOf","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"who","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorBalanceIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorRewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorSupplyIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getRewardForOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"lastEarn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardPerTokenCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"rewardPerToken","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenNumCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supplyCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supplyNumCheckpoints","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":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:139","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:139"},"nodeType":"YulFunctionCall","src":"143:22:139"},"nodeType":"YulExpressionStatement","src":"143:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:139"},"nodeType":"YulFunctionCall","src":"112:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:139"},"nodeType":"YulFunctionCall","src":"108:32:139"},"nodeType":"YulIf","src":"105:2:139"},{"nodeType":"YulVariableDeclaration","src":"176:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:139"},"nodeType":"YulFunctionCall","src":"189:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:139"},"nodeType":"YulFunctionCall","src":"270:22:139"},"nodeType":"YulExpressionStatement","src":"270:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:139"},"nodeType":"YulFunctionCall","src":"249:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:139"},"nodeType":"YulFunctionCall","src":"245:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:139"},"nodeType":"YulFunctionCall","src":"234:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:139"},"nodeType":"YulFunctionCall","src":"224:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:139"},"nodeType":"YulFunctionCall","src":"217:50:139"},"nodeType":"YulIf","src":"214:2:139"},{"nodeType":"YulAssignment","src":"303:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:139","type":""}],"src":"14:310:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n        value0 := value\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b5060405162002b5338038062002b5383398101604081905262000034916200004f565b600160005560601b6001600160601b0319166080526200007f565b60006020828403121562000061578081fd5b81516001600160a01b038116811462000078578182fd5b9392505050565b60805160601c612a92620000c1600039600081816103c901528181610959015281816109cc01528181610b4d01528181610bc0015261166d0152612a926000f3fe608060405234801561001057600080fd5b50600436106101bb5760003560e01c806376f4be36116100fa578063b66503cf1161009d578063b66503cf146104a3578063da09d19d146104b6578063e6886396146104d6578063e8111a12146104de578063e943da8a146104e7578063f1229777146104fa578063f301af421461050d578063f7412baf14610520578063fd3140981461054757600080fd5b806376f4be36146103b15780637b103999146103c45780637fd7d0621461040357806399bcc052146104165780639ce43f9014610429578063a495e5b514610449578063aa47965214610474578063aaf5eb681461049457600080fd5b80632ce9aead116101625780632ce9aead146102ba5780633ca068b6146102da578063463cd970146103055780634d5ce038146103185780635a45d0521461034b578063638634ee1461035e5780636fcfff451461037157806370a082311461039157600080fd5b806301316ddf146101c05780630cdfebfa1461020c578063115c6f391461023e57806318160ddd1461025f5780631be0528914610268578063211dc32d14610272578063221ca18c14610285578063293311ab146102a5575b600080fd5b6101f26101ce3660046127dd565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101f261021a3660046127dd565b600b6020908152600092835260408084209091529082529020805460019091015482565b61025161024c3660046127dd565b61055a565b604051908152602001610203565b61025160095481565b61025162093a8081565b610251610280366004612757565b6106c7565b61025161029336600461271f565b60016020526000908152604090205481565b6102b86102b3366004612893565b610957565b005b6102516102c836600461271f565b60036020526000908152604090205481565b6102516102e8366004612757565b600660209081526000928352604080842090915290825290205481565b6102b8610313366004612893565b610b4b565b61033b61032636600461271f565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b6102b86103593660046127dd565b610d2a565b61025161036c36600461271f565b610d62565b61025161037f36600461271f565b600c6020526000908152604090205481565b61025161039f36600461271f565b600a6020526000908152604090205481565b6102516103bf366004612863565b610d86565b6103eb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102b8610411366004612808565b610eb8565b61025161042436600461271f565b6111d7565b61025161043736600461271f565b60046020526000908152604090205481565b610251610457366004612757565b600560209081526000928352604080842090915290825290205481565b61025161048236600461271f565b60106020526000908152604090205481565b610251670de0b6b3a764000081565b6102b86104b13660046127dd565b611248565b6102516104c436600461271f565b60026020526000908152604090205481565b600754610251565b610251600e5481565b6102b86104f536600461278f565b611640565b61025161050836600461271f565b611a1b565b6103eb61051b366004612863565b611adb565b6101f261052e366004612863565b600d602052600090815260409020805460019091015482565b6101f26105553660046127dd565b611b05565b6001600160a01b0382166000908152600c6020526040812054806105825760009150506106c1565b6001600160a01b0384166000908152600b6020526040812084916105a76001856129e6565b815260200190815260200160002060000154116105d1576105c96001826129e6565b9150506106c1565b6001600160a01b0384166000908152600b602090815260408083208380529091529020548310156106065760009150506106c1565b6000806106146001846129e6565b90505b818111156106bc576000600261062d84846129e6565b61063791906129a7565b61064190836129e6565b6001600160a01b0388166000908152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610696575093506106c192505050565b80518711156106a7578193506106b5565b6106b26001836129e6565b92505b5050610617565b509150505b92915050565b6001600160a01b038083166000818152600560209081526040808320948616835293815283822054928252600f8152838220828052905291822054829161070d91611d24565b6001600160a01b0384166000908152600c60205260409020549091506107375760009150506106c1565b6000610743848361055a565b6001600160a01b0385166000908152600c60205260408120549192509061076c906001906129e6565b90506000600161077c84846129e6565b111561088b57825b61078f6001846129e6565b811015610889576001600160a01b0387166000818152600b6020818152604080842086855280835281852082518084019093528054835260019081015483850152958552929091529282906107e590869061298f565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006108248b8460000151611b05565b50905060006108378c8460000151611b05565b509050670de0b6b3a764000061084d83836129e6565b856020015161085c91906129c7565b61086691906129a7565b610870908761298f565b9550505050508080610881906129fd565b915050610784565b505b6001600160a01b0386166000908152600b602090815260408083208584528252808320815180830190925280548083526001909101549282019290925291906108d5908a90611b05565b506001600160a01b03808b166000908152600660209081526040808320938d1683529290522054909150670de0b6b3a764000090610914908390611d24565b61091d8b611a1b565b61092791906129e6565b836020015161093691906129c7565b61094091906129a7565b61094a908461298f565b9998505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109b257600080fd5b505af11580156109c6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b919061273b565b6001600160a01b0316336001600160a01b031614610a945760405162461bcd60e51b8152600401610a8b90612909565b60405180910390fd5b8160096000828254610aa691906129e6565b90915550506001600160a01b0381166000908152600a602052604081208054849290610ad39084906129e6565b90915550506001600160a01b0381166000908152600a6020526040902054610afc908290611d3b565b610b04611e46565b336001600160a01b03167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8284604051610b3f9291906128f0565b60405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f919061273b565b6001600160a01b0316336001600160a01b031614610c7f5760405162461bcd60e51b8152600401610a8b90612909565b8160096000828254610c91919061298f565b90915550506001600160a01b0381166000908152600a602052604081208054849290610cbe90849061298f565b90915550506001600160a01b0381166000908152600a6020526040902054610ce7908290611d3b565b610cef611e46565b336001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f628284604051610b3f9291906128f0565b610d348282611eea565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546106c1904290612049565b600e5460009080610d9a5750600092915050565b82600d6000610daa6001856129e6565b81526020019081526020016000206000015411610dd357610dcc6001826129e6565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee54831015610e0e5750600092915050565b600080610e1c6001846129e6565b90505b81811115610eb05760006002610e3584846129e6565b610e3f91906129a7565b610e4990836129e6565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610e8a575095945050505050565b8051871115610e9b57819350610ea9565b610ea66001836129e6565b92505b5050610e1f565b509392505050565b60026000541415610edb5760405162461bcd60e51b8152600401610a8b90612958565b600260009081555b81518110156111ce57610f1c828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6020026020010151612058565b60046000858581518110610f4057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110610f8e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff7838381518110610fe957634e487b7160e01b600052603260045260246000fd5b6020026020010151336106c7565b9050426005600085858151811061101e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000336001600160a01b03166001600160a01b03168152602001908152602001600020819055506004600084848151811061109157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008585815181106110de57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812033825290925290205580156111475761114783838151811061113857634e487b7160e01b600052603260045260246000fd5b6020026020010151338361223b565b82828151811061116757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516111b391815260200190565b60405180910390a350806111c6816129fd565b915050610ee3565b50506001600055565b6001600160a01b03811660009081526002602052604081205442106111fe57506000919050565b6001600160a01b0382166000908152600260205260408120546112229042906129e6565b6001600160a01b038416600090815260016020526040902054909150610dcc90826129c7565b6002600054141561126b5760405162461bcd60e51b8152600401610a8b90612958565b6002600055806112aa5760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610a8b565b6001600160a01b0382166000908152600160205260409020546112d3576112d38260004261237c565b6112dc82612058565b6001600160a01b038416600090815260046020908152604080832060038352818420949094559390925560029091522054421061134a5761131f8233308461246b565b61132c62093a80826129a7565b6001600160a01b038316600090815260016020526040902055611416565b6001600160a01b03821660009081526002602052604081205461136e9042906129e6565b6001600160a01b0384166000908152600160205260408120549192509061139590836129c7565b90508083116113d65760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610a8b565b6113e28433308661246b565b62093a806113f0828561298f565b6113fa91906129a7565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b03821660009081526001602052604090205461146c5760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610a8b565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b1580156114ae57600080fd5b505afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e6919061287b565b90506114f562093a80826129a7565b6001600160a01b03841660009081526001602052604090205411156115575760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610a8b565b61156462093a804261298f565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff166115f6576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b600260005414156116635760405162461bcd60e51b8152600401610a8b90612958565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fc919061273b565b6001600160a01b0316336001600160a01b03161461172c5760405162461bcd60e51b8152600401610a8b90612909565b60005b8151811015611a115761175b828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6004600085858151811061177f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000600360008787815181106117cd57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000849190505583919050555050600061183683838151811061182857634e487b7160e01b600052603260045260246000fd5b6020026020010151856106c7565b9050426005600085858151811061185d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550600460008484815181106118d057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546006600085858151811061191d57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03908116835282820193909352604091820160009081209389168152929052902055801561198a5761198a83838151811061197b57634e487b7160e01b600052603260045260246000fd5b6020026020010151858361223b565b8282815181106119aa57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316846001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516119f691815260200190565b60405180910390a35080611a09816129fd565b91505061172f565b5050600160005550565b600060095460001415611a4457506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a76400009291611a8791612049565b611a9086610d62565b611a9a91906129e6565b611aa491906129c7565b611aae91906129c7565b611ab891906129a7565b6001600160a01b0383166000908152600460205260409020546106c1919061298f565b60078181548110611aeb57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038216600090815260106020526040812054819080611b32576000809250925050611d1d565b6001600160a01b0385166000908152600f602052604081208591611b576001856129e6565b81526020019081526020016000206000015411611bf4576001600160a01b0385166000908152600f6020526040812090611b926001846129e6565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611bd891906129e6565b8152602001908152602001600020600001549250925050611d1d565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611c2c576000809250925050611d1d565b600080611c3a6001846129e6565b90505b81811115611cec5760006002611c5384846129e6565b611c5d91906129a7565b611c6790836129e6565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611cc657602081015190519096509450611d1d9350505050565b8051881115611cd757819350611ce5565b611ce26001836129e6565b92505b5050611c3d565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611d345781610dcc565b5090919050565b6001600160a01b0382166000908152600c602052604090205442908015801590611d9957506001600160a01b0384166000908152600b602052604081208391611d856001856129e6565b815260200190815260200160002060000154145b15611ddc576001600160a01b0384166000908152600b602052604081208491611dc36001856129e6565b8152602081019190915260400160002060010155611e40565b60408051808201825283815260208082018681526001600160a01b0388166000908152600b8352848120868252909252929020905181559051600191820155611e2690829061298f565b6001600160a01b0385166000908152600c60205260409020555b50505050565b600e54428115801590611e78575080600d6000611e646001866129e6565b815260200190815260200160002060000154145b15611ea757600954600d6000611e8f6001866129e6565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d90915292909220905181559051600191820155611ee390839061298f565b600e555050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f225792509050611d1d565b6001600160a01b038616600090815260016020526040902054611f4b579250429150611d1d9050565b6000611f5683610d86565b90506000611f726001600e54611f6c91906129e6565b88612049565b9050815b8181101561203a576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612027576000600d81611fbb85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120068d8460000151866000015187602001518d6125af565b9092509050612015828961298f565b97506120228d898361237c565b975050505b5080612032816129fd565b915050611f76565b50919792965091945050505050565b6000818310611d345781610dcc565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e54839291906120905794909350915050565b6001600160a01b0385166000908152600160205260409020546120b7579442945092505050565b60006120c283610d86565b905060006001600e546120d591906129e6565b905060016120e383836129e6565b11156121bb57815b6120f66001836129e6565b8110156121b9576000818152600d602090815260409182902082518084019093528054835260010154908201819052156121a6576000600d8161213a85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806121858c8460000151866000015187602001518d6125af565b9092509050612194828961298f565b97506121a18c898361237c565b975050505b50806121b1816129fd565b9150506120eb565b505b6000818152600d6020908152604091829020825180840190935280548352600101549082018190521561222d57600061220e896121f78b610d62565b8451612203908a611d24565b85602001518a6125af565b50905061221b818661298f565b945061222889864261237c565b429550505b509196929550919350505050565b6000836001600160a01b03163b116122655760405162461bcd60e51b8152600401610a8b9061292c565b600080846001600160a01b031663a9059cbb60e01b858560405160240161228d9291906128f0565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516122cb91906128b7565b6000604051808303816000865af19150503d8060008114612308576040519150601f19603f3d011682016040523d82523d6000602084013e61230d565b606091505b50915091508180156123375750805115806123375750808060200190518101906123379190612843565b6123755760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610a8b565b5050505050565b6001600160a01b03831660009081526010602052604090205480158015906123d857506001600160a01b0384166000908152600f6020526040812083916123c46001856129e6565b815260200190815260200160002060000154145b15612402576001600160a01b0384166000908152600f602052604081208491611dc36001856129e6565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f835284812086825290925292902090518155905160019182015561244c90829061298f565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116124955760405162461bcd60e51b8152600401610a8b9061292c565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916124f991906128b7565b6000604051808303816000865af19150503d8060008114612536576040519150601f19603f3d011682016040523d82523d6000602084013e61253b565b606091505b50915091508180156125655750805115806125655750808060200190518101906125659190612843565b6125a75760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610a8b565b505050505050565b60008060006125be8785611d24565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906126116125f38a89611d24565b6001600160a01b038d16600090815260026020526040902054612049565b6001600160a01b038c16600090815260026020526040902054612635908690612049565b61263f91906129e6565b61264991906129c7565b61265391906129c7565b61265d91906129a7565b9890975095505050505050565b803561267581612a44565b919050565b600082601f83011261268a578081fd5b8135602067ffffffffffffffff808311156126a7576126a7612a2e565b8260051b604051601f19603f830116810181811084821117156126cc576126cc612a2e565b604052848152838101925086840182880185018910156126ea578687fd5b8692505b85831015612713576126ff8161266a565b8452928401926001929092019184016126ee565b50979650505050505050565b600060208284031215612730578081fd5b8135610dcc81612a44565b60006020828403121561274c578081fd5b8151610dcc81612a44565b60008060408385031215612769578081fd5b823561277481612a44565b9150602083013561278481612a44565b809150509250929050565b600080604083850312156127a1578182fd5b82356127ac81612a44565b9150602083013567ffffffffffffffff8111156127c7578182fd5b6127d38582860161267a565b9150509250929050565b600080604083850312156127ef578182fd5b82356127fa81612a44565b946020939093013593505050565b600060208284031215612819578081fd5b813567ffffffffffffffff81111561282f578182fd5b61283b8482850161267a565b949350505050565b600060208284031215612854578081fd5b81518015158114610dcc578182fd5b600060208284031215612874578081fd5b5035919050565b60006020828403121561288c578081fd5b5051919050565b600080604083850312156128a5578182fd5b82359150602083013561278481612a44565b60008251815b818110156128d757602081860181015185830152016128bd565b818111156128e55782828501525b509190910192915050565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082198211156129a2576129a2612a18565b500190565b6000826129c257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129e1576129e1612a18565b500290565b6000828210156129f8576129f8612a18565b500390565b6000600019821415612a1157612a11612a18565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612a5957600080fd5b5056fea26469706673582212207d22301ea35e36ebb4dabfaf0071b585c532867c2ab545fdec36171f0925794264736f6c63430008040033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2B53 CODESIZE SUB DUP1 PUSH3 0x2B53 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x61 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x78 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x2A92 PUSH3 0xC1 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3C9 ADD MSTORE DUP2 DUP2 PUSH2 0x959 ADD MSTORE DUP2 DUP2 PUSH2 0x9CC ADD MSTORE DUP2 DUP2 PUSH2 0xB4D ADD MSTORE DUP2 DUP2 PUSH2 0xBC0 ADD MSTORE PUSH2 0x166D ADD MSTORE PUSH2 0x2A92 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xB66503CF GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x4B6 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4DE JUMPI DUP1 PUSH4 0xE943DA8A EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x7FD7D062 EQ PUSH2 0x403 JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x474 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2CE9AEAD GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x463CD970 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x371 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x293311AB EQ PUSH2 0x2A5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F2 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x251 PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x33B PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x251 PUSH2 0x36C CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x37F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x39F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3BF CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0xD86 JUMP JUMPDEST PUSH2 0x3EB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x411 CALLDATASIZE PUSH1 0x4 PUSH2 0x2808 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x424 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x437 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x457 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x482 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1248 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x4C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x251 JUMP JUMPDEST PUSH2 0x251 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x278F JUMP JUMPDEST PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x3EB PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0x1ADB JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1B05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x582 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x5A7 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x5D1 JUMPI PUSH2 0x5C9 PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x62D DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x637 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x641 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x696 JUMPI POP SWAP4 POP PUSH2 0x6C1 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x6A7 JUMPI DUP2 SWAP4 POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x6B2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x617 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0xF DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x70D SWAP2 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x737 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x743 DUP5 DUP4 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x76C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x77C DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x88B JUMPI DUP3 JUMPDEST PUSH2 0x78F PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x889 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x7E5 SWAP1 DUP7 SWAP1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x824 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x837 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x84D DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x85C SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x870 SWAP1 DUP8 PUSH2 0x298F JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x881 SWAP1 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x784 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x8D5 SWAP1 DUP11 SWAP1 PUSH2 0x1B05 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x914 SWAP1 DUP4 SWAP1 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x91D DUP12 PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x927 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x936 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x94A SWAP1 DUP5 PUSH2 0x298F JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA5B SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xAA6 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xAD3 SWAP1 DUP5 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xAFC SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xB04 PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9B1BFA7FA9EE420A16E124F794C35AC9F90472ACC99140EB2F6447C714CAD8EB DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC4F SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC91 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xCBE SWAP1 DUP5 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCE7 SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xCEF PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5548C837AB068CF56A2C2479DF0882A4922FD203EDB7517321831D95078C5F62 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH2 0xD34 DUP3 DUP3 PUSH2 0x1EEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6C1 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0xD9A JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0xDAA PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xDD3 JUMPI PUSH2 0xDCC PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0xE0E JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE1C PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xEB0 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xE35 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE3F SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xE49 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xE8A JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xE9B JUMPI DUP2 SWAP4 POP PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0xEA6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xE1F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xEDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 DUP2 SSTORE JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x11CE JUMPI PUSH2 0xF1C DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF40 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF8E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF7 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x101E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1091 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10DE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 CALLER DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1147 JUMPI PUSH2 0x1147 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1138 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1167 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11B3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11C6 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEE3 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x11FE JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1222 SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0xDCC SWAP1 DUP3 PUSH2 0x29C7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x126B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x12AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x12D3 JUMPI PUSH2 0x12D3 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST PUSH2 0x12DC DUP3 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x134A JUMPI PUSH2 0x131F DUP3 CALLER ADDRESS DUP5 PUSH2 0x246B JUMP JUMPDEST PUSH2 0x132C PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x136E SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1395 SWAP1 DUP4 PUSH2 0x29C7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x13D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x13E2 DUP5 CALLER ADDRESS DUP7 PUSH2 0x246B JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x13F0 DUP3 DUP6 PUSH2 0x298F JUMP JUMPDEST PUSH2 0x13FA SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x146C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E6 SWAP2 SWAP1 PUSH2 0x287B JUMP JUMPDEST SWAP1 POP PUSH2 0x14F5 PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1557 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x1564 PUSH3 0x93A80 TIMESTAMP PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x15F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1663 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16FC SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x172C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x175B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x177F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x17CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1836 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1828 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x185D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x191D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x198A JUMPI PUSH2 0x198A DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x197B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19F6 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1A09 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x172F JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1A44 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1A87 SWAP2 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x1A90 DUP7 PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x1A9A SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1AA4 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AAE SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AB8 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6C1 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1AEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1B57 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1BF4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1B92 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1BD8 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1C2C JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C3A PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1C53 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1C5D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x1C67 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1CC6 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1D1D SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1CD7 JUMPI DUP2 SWAP4 POP PUSH2 0x1CE5 JUMP JUMPDEST PUSH2 0x1CE2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1C3D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1D99 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x1D85 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1DDC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x1E40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1E26 SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1E78 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x1E64 PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1EA7 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x1E8F PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1EE3 SWAP1 DUP4 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F22 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F4B JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1D1D SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F56 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F72 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP9 PUSH2 0x2049 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x203A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2027 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FBB DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2006 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2015 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x2022 DUP14 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2032 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F76 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2090 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x20B7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C2 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x20D5 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x20E3 DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x21BB JUMPI DUP2 JUMPDEST PUSH2 0x20F6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x21B9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x21A6 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x213A DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2185 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2194 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x21A1 DUP13 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x21B1 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x20EB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x222D JUMPI PUSH1 0x0 PUSH2 0x220E DUP10 PUSH2 0x21F7 DUP12 PUSH2 0xD62 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2203 SWAP1 DUP11 PUSH2 0x1D24 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x25AF JUMP JUMPDEST POP SWAP1 POP PUSH2 0x221B DUP2 DUP7 PUSH2 0x298F JUMP JUMPDEST SWAP5 POP PUSH2 0x2228 DUP10 DUP7 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2265 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x228D SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x22CB SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2308 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x230D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2337 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2337 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2337 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x2375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x23D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x23C4 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2402 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x244C SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2495 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x24F9 SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2536 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x253B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2565 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2565 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2565 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x25A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x25BE DUP8 DUP6 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2611 PUSH2 0x25F3 DUP11 DUP10 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2635 SWAP1 DUP7 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x263F SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x2649 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x2653 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x265D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2675 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x268A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x26A7 JUMPI PUSH2 0x26A7 PUSH2 0x2A2E JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x26CC JUMPI PUSH2 0x26CC PUSH2 0x2A2E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP5 DUP2 MSTORE DUP4 DUP2 ADD SWAP3 POP DUP7 DUP5 ADD DUP3 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x26EA JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0x2713 JUMPI PUSH2 0x26FF DUP2 PUSH2 0x266A JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 DUP5 ADD PUSH2 0x26EE JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2730 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x274C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2769 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2774 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A1 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27AC DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27C7 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x27D3 DUP6 DUP3 DUP7 ADD PUSH2 0x267A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27FA DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2819 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x283B DUP5 DUP3 DUP6 ADD PUSH2 0x267A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2854 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xDCC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2874 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x288C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28A5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x28D7 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x28BD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x28E5 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x29A2 JUMPI PUSH2 0x29A2 PUSH2 0x2A18 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x29E1 JUMPI PUSH2 0x29E1 PUSH2 0x2A18 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x29F8 JUMPI PUSH2 0x29F8 PUSH2 0x2A18 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2A11 JUMPI PUSH2 0x2A11 PUSH2 0x2A18 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2A59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH30 0x22301EA35E36EBB4DABFAF0071B585C532867C2AB545FDEC36171F092579 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"645:19796:76:-:0;;;2710:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:22;1806:7;:22;2751:31:76;;-1:-1:-1;;2751:31:76;;;645:19796;;14:310:139;84:6;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:139;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:139:o;:::-;645:19796:76;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10729:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:85:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"136:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"111:24:139"},"nodeType":"YulFunctionCall","src":"111:31:139"},"nodeType":"YulExpressionStatement","src":"111:31:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:134:139"},{"body":{"nodeType":"YulBlock","src":"217:875:139","statements":[{"body":{"nodeType":"YulBlock","src":"266:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"275:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"282:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"268:6:139"},"nodeType":"YulFunctionCall","src":"268:20:139"},"nodeType":"YulExpressionStatement","src":"268:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"245:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"253:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"241:3:139"},"nodeType":"YulFunctionCall","src":"241:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"260:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"237:3:139"},"nodeType":"YulFunctionCall","src":"237:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"230:6:139"},"nodeType":"YulFunctionCall","src":"230:35:139"},"nodeType":"YulIf","src":"227:2:139"},{"nodeType":"YulVariableDeclaration","src":"299:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"322:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"309:12:139"},"nodeType":"YulFunctionCall","src":"309:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"303:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"338:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"348:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"342:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"361:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"371:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"365:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"412:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"414:16:139"},"nodeType":"YulFunctionCall","src":"414:18:139"},"nodeType":"YulExpressionStatement","src":"414:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"404:2:139"},{"name":"_3","nodeType":"YulIdentifier","src":"408:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"401:2:139"},"nodeType":"YulFunctionCall","src":"401:10:139"},"nodeType":"YulIf","src":"398:2:139"},{"nodeType":"YulVariableDeclaration","src":"443:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"457:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"460:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"453:3:139"},"nodeType":"YulFunctionCall","src":"453:10:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"447:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"472:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"492:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"486:5:139"},"nodeType":"YulFunctionCall","src":"486:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"476:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"504:56:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"526:6:139"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"542:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"546:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"538:3:139"},"nodeType":"YulFunctionCall","src":"538:11:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"555:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"551:3:139"},"nodeType":"YulFunctionCall","src":"551:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"534:3:139"},"nodeType":"YulFunctionCall","src":"534:25:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"522:3:139"},"nodeType":"YulFunctionCall","src":"522:38:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"508:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"619:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"621:16:139"},"nodeType":"YulFunctionCall","src":"621:18:139"},"nodeType":"YulExpressionStatement","src":"621:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"578:10:139"},{"name":"_3","nodeType":"YulIdentifier","src":"590:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"575:2:139"},"nodeType":"YulFunctionCall","src":"575:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"598:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"610:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"595:2:139"},"nodeType":"YulFunctionCall","src":"595:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"572:2:139"},"nodeType":"YulFunctionCall","src":"572:46:139"},"nodeType":"YulIf","src":"569:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"657:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"661:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"650:6:139"},"nodeType":"YulFunctionCall","src":"650:22:139"},"nodeType":"YulExpressionStatement","src":"650:22:139"},{"nodeType":"YulVariableDeclaration","src":"681:17:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"692:6:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"685:3:139","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"714:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"722:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"707:6:139"},"nodeType":"YulFunctionCall","src":"707:18:139"},"nodeType":"YulExpressionStatement","src":"707:18:139"},{"nodeType":"YulAssignment","src":"734:22:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"745:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"753:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"741:3:139"},"nodeType":"YulFunctionCall","src":"741:15:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"734:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"765:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"780:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"788:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"776:3:139"},"nodeType":"YulFunctionCall","src":"776:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"769:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"837:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"846:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"853:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"839:6:139"},"nodeType":"YulFunctionCall","src":"839:20:139"},"nodeType":"YulExpressionStatement","src":"839:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"814:6:139"},{"name":"_4","nodeType":"YulIdentifier","src":"822:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:139"},"nodeType":"YulFunctionCall","src":"810:15:139"},{"name":"_2","nodeType":"YulIdentifier","src":"827:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"806:3:139"},"nodeType":"YulFunctionCall","src":"806:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"832:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"803:2:139"},"nodeType":"YulFunctionCall","src":"803:33:139"},"nodeType":"YulIf","src":"800:2:139"},{"nodeType":"YulVariableDeclaration","src":"870:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"879:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"874:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"938:124:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"959:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"983:3:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"964:18:139"},"nodeType":"YulFunctionCall","src":"964:23:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"952:6:139"},"nodeType":"YulFunctionCall","src":"952:36:139"},"nodeType":"YulExpressionStatement","src":"952:36:139"},{"nodeType":"YulAssignment","src":"1001:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1012:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1017:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1008:3:139"},"nodeType":"YulFunctionCall","src":"1008:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1001:3:139"}]},{"nodeType":"YulAssignment","src":"1033:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1044:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1049:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:139"},"nodeType":"YulFunctionCall","src":"1040:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1033:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"904:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"907:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"901:2:139"},"nodeType":"YulFunctionCall","src":"901:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"911:18:139","statements":[{"nodeType":"YulAssignment","src":"913:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"922:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"925:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"918:3:139"},"nodeType":"YulFunctionCall","src":"918:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"913:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"897:3:139","statements":[]},"src":"893:169:139"},{"nodeType":"YulAssignment","src":"1071:15:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1080:6:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1071:5:139"}]}]},"name":"abi_decode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"191:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"199:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"207:5:139","type":""}],"src":"153:939:139"},{"body":{"nodeType":"YulBlock","src":"1167:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"1213:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1222:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1215:6:139"},"nodeType":"YulFunctionCall","src":"1215:22:139"},"nodeType":"YulExpressionStatement","src":"1215:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1188:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1197:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1184:3:139"},"nodeType":"YulFunctionCall","src":"1184:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1209:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1180:3:139"},"nodeType":"YulFunctionCall","src":"1180:32:139"},"nodeType":"YulIf","src":"1177:2:139"},{"nodeType":"YulVariableDeclaration","src":"1248:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1274:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1261:12:139"},"nodeType":"YulFunctionCall","src":"1261:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1252:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1318:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1293:24:139"},"nodeType":"YulFunctionCall","src":"1293:31:139"},"nodeType":"YulExpressionStatement","src":"1293:31:139"},{"nodeType":"YulAssignment","src":"1333:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1343:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1333:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1133:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1144:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1156:6:139","type":""}],"src":"1097:257:139"},{"body":{"nodeType":"YulBlock","src":"1440:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"1486:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1495:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1503:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1488:6:139"},"nodeType":"YulFunctionCall","src":"1488:22:139"},"nodeType":"YulExpressionStatement","src":"1488:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1461:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1470:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1457:3:139"},"nodeType":"YulFunctionCall","src":"1457:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1482:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1453:3:139"},"nodeType":"YulFunctionCall","src":"1453:32:139"},"nodeType":"YulIf","src":"1450:2:139"},{"nodeType":"YulVariableDeclaration","src":"1521:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1540:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1534:5:139"},"nodeType":"YulFunctionCall","src":"1534:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1525:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1584:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1559:24:139"},"nodeType":"YulFunctionCall","src":"1559:31:139"},"nodeType":"YulExpressionStatement","src":"1559:31:139"},{"nodeType":"YulAssignment","src":"1599:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1609:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1599:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1406:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1417:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1429:6:139","type":""}],"src":"1359:261:139"},{"body":{"nodeType":"YulBlock","src":"1712:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"1758:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1767:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1775:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1760:6:139"},"nodeType":"YulFunctionCall","src":"1760:22:139"},"nodeType":"YulExpressionStatement","src":"1760:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1733:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1742:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1729:3:139"},"nodeType":"YulFunctionCall","src":"1729:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1754:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1725:3:139"},"nodeType":"YulFunctionCall","src":"1725:32:139"},"nodeType":"YulIf","src":"1722:2:139"},{"nodeType":"YulVariableDeclaration","src":"1793:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1819:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1806:12:139"},"nodeType":"YulFunctionCall","src":"1806:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1797:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1863:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1838:24:139"},"nodeType":"YulFunctionCall","src":"1838:31:139"},"nodeType":"YulExpressionStatement","src":"1838:31:139"},{"nodeType":"YulAssignment","src":"1878:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1888:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1878:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1902:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1934:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1945:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1930:3:139"},"nodeType":"YulFunctionCall","src":"1930:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1917:12:139"},"nodeType":"YulFunctionCall","src":"1917:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1906:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1983:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1958:24:139"},"nodeType":"YulFunctionCall","src":"1958:33:139"},"nodeType":"YulExpressionStatement","src":"1958:33:139"},{"nodeType":"YulAssignment","src":"2000:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2010:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2000:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1670:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1681:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1693:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1701:6:139","type":""}],"src":"1625:398:139"},{"body":{"nodeType":"YulBlock","src":"2140:391:139","statements":[{"body":{"nodeType":"YulBlock","src":"2186:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2195:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2203:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2188:6:139"},"nodeType":"YulFunctionCall","src":"2188:22:139"},"nodeType":"YulExpressionStatement","src":"2188:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2161:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2170:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2157:3:139"},"nodeType":"YulFunctionCall","src":"2157:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2182:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2153:3:139"},"nodeType":"YulFunctionCall","src":"2153:32:139"},"nodeType":"YulIf","src":"2150:2:139"},{"nodeType":"YulVariableDeclaration","src":"2221:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2247:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2234:12:139"},"nodeType":"YulFunctionCall","src":"2234:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2225:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2291:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2266:24:139"},"nodeType":"YulFunctionCall","src":"2266:31:139"},"nodeType":"YulExpressionStatement","src":"2266:31:139"},{"nodeType":"YulAssignment","src":"2306:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2316:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2306:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2330:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2361:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2372:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2357:3:139"},"nodeType":"YulFunctionCall","src":"2357:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2344:12:139"},"nodeType":"YulFunctionCall","src":"2344:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2334:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2419:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2428:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2436:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2421:6:139"},"nodeType":"YulFunctionCall","src":"2421:22:139"},"nodeType":"YulExpressionStatement","src":"2421:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2391:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2399:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2388:2:139"},"nodeType":"YulFunctionCall","src":"2388:30:139"},"nodeType":"YulIf","src":"2385:2:139"},{"nodeType":"YulAssignment","src":"2454:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2497:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2508:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2493:3:139"},"nodeType":"YulFunctionCall","src":"2493:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2517:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"2464:28:139"},"nodeType":"YulFunctionCall","src":"2464:61:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2454:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2098:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2109:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2121:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2129:6:139","type":""}],"src":"2028:503:139"},{"body":{"nodeType":"YulBlock","src":"2623:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"2669:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2678:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2686:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2671:6:139"},"nodeType":"YulFunctionCall","src":"2671:22:139"},"nodeType":"YulExpressionStatement","src":"2671:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2644:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2653:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2640:3:139"},"nodeType":"YulFunctionCall","src":"2640:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2665:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2636:3:139"},"nodeType":"YulFunctionCall","src":"2636:32:139"},"nodeType":"YulIf","src":"2633:2:139"},{"nodeType":"YulVariableDeclaration","src":"2704:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2730:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2717:12:139"},"nodeType":"YulFunctionCall","src":"2717:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2708:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2774:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2749:24:139"},"nodeType":"YulFunctionCall","src":"2749:31:139"},"nodeType":"YulExpressionStatement","src":"2749:31:139"},{"nodeType":"YulAssignment","src":"2789:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2799:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2789:6:139"}]},{"nodeType":"YulAssignment","src":"2813:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2840:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2851:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2836:3:139"},"nodeType":"YulFunctionCall","src":"2836:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2823:12:139"},"nodeType":"YulFunctionCall","src":"2823:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2813:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2581:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2592:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2604:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2612:6:139","type":""}],"src":"2536:325:139"},{"body":{"nodeType":"YulBlock","src":"2961:273:139","statements":[{"body":{"nodeType":"YulBlock","src":"3007:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3016:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3024:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3009:6:139"},"nodeType":"YulFunctionCall","src":"3009:22:139"},"nodeType":"YulExpressionStatement","src":"3009:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2982:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2991:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2978:3:139"},"nodeType":"YulFunctionCall","src":"2978:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3003:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2974:3:139"},"nodeType":"YulFunctionCall","src":"2974:32:139"},"nodeType":"YulIf","src":"2971:2:139"},{"nodeType":"YulVariableDeclaration","src":"3042:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3069:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3056:12:139"},"nodeType":"YulFunctionCall","src":"3056:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3046:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3122:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3131:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3139:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3124:6:139"},"nodeType":"YulFunctionCall","src":"3124:22:139"},"nodeType":"YulExpressionStatement","src":"3124:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3094:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3102:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3091:2:139"},"nodeType":"YulFunctionCall","src":"3091:30:139"},"nodeType":"YulIf","src":"3088:2:139"},{"nodeType":"YulAssignment","src":"3157:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3200:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3211:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3196:3:139"},"nodeType":"YulFunctionCall","src":"3196:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3220:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"3167:28:139"},"nodeType":"YulFunctionCall","src":"3167:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3157:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2927:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2938:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2950:6:139","type":""}],"src":"2866:368:139"},{"body":{"nodeType":"YulBlock","src":"3317:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"3363:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3372:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3380:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3365:6:139"},"nodeType":"YulFunctionCall","src":"3365:22:139"},"nodeType":"YulExpressionStatement","src":"3365:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3338:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3347:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3334:3:139"},"nodeType":"YulFunctionCall","src":"3334:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3359:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3330:3:139"},"nodeType":"YulFunctionCall","src":"3330:32:139"},"nodeType":"YulIf","src":"3327:2:139"},{"nodeType":"YulVariableDeclaration","src":"3398:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3417:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3411:5:139"},"nodeType":"YulFunctionCall","src":"3411:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3402:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3480:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3489:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3497:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3482:6:139"},"nodeType":"YulFunctionCall","src":"3482:22:139"},"nodeType":"YulExpressionStatement","src":"3482:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3449:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3470:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3463:6:139"},"nodeType":"YulFunctionCall","src":"3463:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3456:6:139"},"nodeType":"YulFunctionCall","src":"3456:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3446:2:139"},"nodeType":"YulFunctionCall","src":"3446:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3439:6:139"},"nodeType":"YulFunctionCall","src":"3439:40:139"},"nodeType":"YulIf","src":"3436:2:139"},{"nodeType":"YulAssignment","src":"3515:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3525:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3515:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3283:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3294:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3306:6:139","type":""}],"src":"3239:297:139"},{"body":{"nodeType":"YulBlock","src":"3611:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"3657:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3666:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3674:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3659:6:139"},"nodeType":"YulFunctionCall","src":"3659:22:139"},"nodeType":"YulExpressionStatement","src":"3659:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3632:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3641:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3628:3:139"},"nodeType":"YulFunctionCall","src":"3628:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3653:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3624:3:139"},"nodeType":"YulFunctionCall","src":"3624:32:139"},"nodeType":"YulIf","src":"3621:2:139"},{"nodeType":"YulAssignment","src":"3692:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3715:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3702:12:139"},"nodeType":"YulFunctionCall","src":"3702:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3692:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3588:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3600:6:139","type":""}],"src":"3541:190:139"},{"body":{"nodeType":"YulBlock","src":"3817:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"3863:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3872:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3880:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3865:6:139"},"nodeType":"YulFunctionCall","src":"3865:22:139"},"nodeType":"YulExpressionStatement","src":"3865:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3838:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3847:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3834:3:139"},"nodeType":"YulFunctionCall","src":"3834:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3859:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3830:3:139"},"nodeType":"YulFunctionCall","src":"3830:32:139"},"nodeType":"YulIf","src":"3827:2:139"},{"nodeType":"YulAssignment","src":"3898:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3914:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3908:5:139"},"nodeType":"YulFunctionCall","src":"3908:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3898:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3783:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3794:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3806:6:139","type":""}],"src":"3736:194:139"},{"body":{"nodeType":"YulBlock","src":"4022:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"4068:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4077:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4085:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4070:6:139"},"nodeType":"YulFunctionCall","src":"4070:22:139"},"nodeType":"YulExpressionStatement","src":"4070:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4043:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4052:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4039:3:139"},"nodeType":"YulFunctionCall","src":"4039:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4064:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4035:3:139"},"nodeType":"YulFunctionCall","src":"4035:32:139"},"nodeType":"YulIf","src":"4032:2:139"},{"nodeType":"YulAssignment","src":"4103:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4126:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4113:12:139"},"nodeType":"YulFunctionCall","src":"4113:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4103:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4145:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4186:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4171:3:139"},"nodeType":"YulFunctionCall","src":"4171:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4158:12:139"},"nodeType":"YulFunctionCall","src":"4158:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4149:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4224:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4199:24:139"},"nodeType":"YulFunctionCall","src":"4199:31:139"},"nodeType":"YulExpressionStatement","src":"4199:31:139"},{"nodeType":"YulAssignment","src":"4239:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"4249:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4239:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3980:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3991:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4003:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4011:6:139","type":""}],"src":"3935:325:139"},{"body":{"nodeType":"YulBlock","src":"4402:293:139","statements":[{"nodeType":"YulVariableDeclaration","src":"4412:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4432:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4426:5:139"},"nodeType":"YulFunctionCall","src":"4426:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4416:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4448:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"4457:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4452:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4521:77:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4546:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"4551:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4542:3:139"},"nodeType":"YulFunctionCall","src":"4542:11:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4569:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"4577:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4565:3:139"},"nodeType":"YulFunctionCall","src":"4565:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"4581:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4561:3:139"},"nodeType":"YulFunctionCall","src":"4561:25:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4555:5:139"},"nodeType":"YulFunctionCall","src":"4555:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4535:6:139"},"nodeType":"YulFunctionCall","src":"4535:53:139"},"nodeType":"YulExpressionStatement","src":"4535:53:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4480:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"4483:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4477:2:139"},"nodeType":"YulFunctionCall","src":"4477:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4491:21:139","statements":[{"nodeType":"YulAssignment","src":"4493:17:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4502:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"4505:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4498:3:139"},"nodeType":"YulFunctionCall","src":"4498:12:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4493:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"4473:3:139","statements":[]},"src":"4469:129:139"},{"body":{"nodeType":"YulBlock","src":"4624:33:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4637:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4642:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4633:3:139"},"nodeType":"YulFunctionCall","src":"4633:16:139"},{"name":"end","nodeType":"YulIdentifier","src":"4651:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4626:6:139"},"nodeType":"YulFunctionCall","src":"4626:29:139"},"nodeType":"YulExpressionStatement","src":"4626:29:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4613:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"4616:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4610:2:139"},"nodeType":"YulFunctionCall","src":"4610:13:139"},"nodeType":"YulIf","src":"4607:2:139"},{"nodeType":"YulAssignment","src":"4666:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4677:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4682:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4673:3:139"},"nodeType":"YulFunctionCall","src":"4673:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4666:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4378:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4383:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4394:3:139","type":""}],"src":"4265:430:139"},{"body":{"nodeType":"YulBlock","src":"4801:102:139","statements":[{"nodeType":"YulAssignment","src":"4811:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4823:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4834:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4819:3:139"},"nodeType":"YulFunctionCall","src":"4819:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4811:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4853:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4868:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4884:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4889:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4880:3:139"},"nodeType":"YulFunctionCall","src":"4880:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4893:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4876:3:139"},"nodeType":"YulFunctionCall","src":"4876:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4864:3:139"},"nodeType":"YulFunctionCall","src":"4864:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4846:6:139"},"nodeType":"YulFunctionCall","src":"4846:51:139"},"nodeType":"YulExpressionStatement","src":"4846:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4770:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4781:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4792:4:139","type":""}],"src":"4700:203:139"},{"body":{"nodeType":"YulBlock","src":"5065:218:139","statements":[{"nodeType":"YulAssignment","src":"5075:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5087:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5098:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5083:3:139"},"nodeType":"YulFunctionCall","src":"5083:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5075:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"5110:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5128:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5133:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5124:3:139"},"nodeType":"YulFunctionCall","src":"5124:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5137:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5120:3:139"},"nodeType":"YulFunctionCall","src":"5120:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5114:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5155:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5170:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5178:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5166:3:139"},"nodeType":"YulFunctionCall","src":"5166:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5148:6:139"},"nodeType":"YulFunctionCall","src":"5148:34:139"},"nodeType":"YulExpressionStatement","src":"5148:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5202:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5213:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5198:3:139"},"nodeType":"YulFunctionCall","src":"5198:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5222:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5230:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5218:3:139"},"nodeType":"YulFunctionCall","src":"5218:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5191:6:139"},"nodeType":"YulFunctionCall","src":"5191:43:139"},"nodeType":"YulExpressionStatement","src":"5191:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5254:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5265:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5250:3:139"},"nodeType":"YulFunctionCall","src":"5250:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5270:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5243:6:139"},"nodeType":"YulFunctionCall","src":"5243:34:139"},"nodeType":"YulExpressionStatement","src":"5243:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5018:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5029:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5037:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5045:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5056:4:139","type":""}],"src":"4908:375:139"},{"body":{"nodeType":"YulBlock","src":"5417:145:139","statements":[{"nodeType":"YulAssignment","src":"5427:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5439:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5450:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5435:3:139"},"nodeType":"YulFunctionCall","src":"5435:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5427:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5469:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5484:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5500:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5505:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5496:3:139"},"nodeType":"YulFunctionCall","src":"5496:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5509:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5492:3:139"},"nodeType":"YulFunctionCall","src":"5492:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5480:3:139"},"nodeType":"YulFunctionCall","src":"5480:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5462:6:139"},"nodeType":"YulFunctionCall","src":"5462:51:139"},"nodeType":"YulExpressionStatement","src":"5462:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5533:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5544:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5529:3:139"},"nodeType":"YulFunctionCall","src":"5529:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5549:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5522:6:139"},"nodeType":"YulFunctionCall","src":"5522:34:139"},"nodeType":"YulExpressionStatement","src":"5522:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5378:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5389:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5397:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5408:4:139","type":""}],"src":"5288:274:139"},{"body":{"nodeType":"YulBlock","src":"5662:92:139","statements":[{"nodeType":"YulAssignment","src":"5672:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5684:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5695:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5680:3:139"},"nodeType":"YulFunctionCall","src":"5680:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5672:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5714:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5739:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5732:6:139"},"nodeType":"YulFunctionCall","src":"5732:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5725:6:139"},"nodeType":"YulFunctionCall","src":"5725:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5707:6:139"},"nodeType":"YulFunctionCall","src":"5707:41:139"},"nodeType":"YulExpressionStatement","src":"5707:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5631:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5642:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5653:4:139","type":""}],"src":"5567:187:139"},{"body":{"nodeType":"YulBlock","src":"5879:102:139","statements":[{"nodeType":"YulAssignment","src":"5889:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5901:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5912:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5897:3:139"},"nodeType":"YulFunctionCall","src":"5897:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5889:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5931:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5946:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5962:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5967:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5958:3:139"},"nodeType":"YulFunctionCall","src":"5958:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5971:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5954:3:139"},"nodeType":"YulFunctionCall","src":"5954:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5942:3:139"},"nodeType":"YulFunctionCall","src":"5942:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5924:6:139"},"nodeType":"YulFunctionCall","src":"5924:51:139"},"nodeType":"YulExpressionStatement","src":"5924:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5848:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5859:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5870:4:139","type":""}],"src":"5759:222:139"},{"body":{"nodeType":"YulBlock","src":"6160:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6177:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6188:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6170:6:139"},"nodeType":"YulFunctionCall","src":"6170:21:139"},"nodeType":"YulExpressionStatement","src":"6170:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6211:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6222:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6207:3:139"},"nodeType":"YulFunctionCall","src":"6207:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6227:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6200:6:139"},"nodeType":"YulFunctionCall","src":"6200:29:139"},"nodeType":"YulExpressionStatement","src":"6200:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6249:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6260:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6245:3:139"},"nodeType":"YulFunctionCall","src":"6245:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6265:11:139","type":"","value":"not voter"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6238:6:139"},"nodeType":"YulFunctionCall","src":"6238:39:139"},"nodeType":"YulExpressionStatement","src":"6238:39:139"},{"nodeType":"YulAssignment","src":"6286:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6298:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6309:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6294:3:139"},"nodeType":"YulFunctionCall","src":"6294:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6286:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6137:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6151:4:139","type":""}],"src":"5986:332:139"},{"body":{"nodeType":"YulBlock","src":"6497:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6514:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6525:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6507:6:139"},"nodeType":"YulFunctionCall","src":"6507:21:139"},"nodeType":"YulExpressionStatement","src":"6507:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6548:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6559:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6544:3:139"},"nodeType":"YulFunctionCall","src":"6544:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6564:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6537:6:139"},"nodeType":"YulFunctionCall","src":"6537:30:139"},"nodeType":"YulExpressionStatement","src":"6537:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6587:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6598:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6583:3:139"},"nodeType":"YulFunctionCall","src":"6583:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6603:16:139","type":"","value":"rewardRate = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6576:6:139"},"nodeType":"YulFunctionCall","src":"6576:44:139"},"nodeType":"YulExpressionStatement","src":"6576:44:139"},{"nodeType":"YulAssignment","src":"6629:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6641:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6652:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6637:3:139"},"nodeType":"YulFunctionCall","src":"6637:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6629:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6474:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6488:4:139","type":""}],"src":"6323:338:139"},{"body":{"nodeType":"YulBlock","src":"6840:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6857:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6868:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6850:6:139"},"nodeType":"YulFunctionCall","src":"6850:21:139"},"nodeType":"YulExpressionStatement","src":"6850:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6891:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6902:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6887:3:139"},"nodeType":"YulFunctionCall","src":"6887:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6907:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6880:6:139"},"nodeType":"YulFunctionCall","src":"6880:30:139"},"nodeType":"YulExpressionStatement","src":"6880:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6930:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6941:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6926:3:139"},"nodeType":"YulFunctionCall","src":"6926:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6946:21:139","type":"","value":"transferFrom failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6919:6:139"},"nodeType":"YulFunctionCall","src":"6919:49:139"},"nodeType":"YulExpressionStatement","src":"6919:49:139"},{"nodeType":"YulAssignment","src":"6977:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6989:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7000:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6985:3:139"},"nodeType":"YulFunctionCall","src":"6985:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6977:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6817:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6831:4:139","type":""}],"src":"6666:343:139"},{"body":{"nodeType":"YulBlock","src":"7188:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7205:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7216:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7198:6:139"},"nodeType":"YulFunctionCall","src":"7198:21:139"},"nodeType":"YulExpressionStatement","src":"7198:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7239:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7250:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7235:3:139"},"nodeType":"YulFunctionCall","src":"7235:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7255:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7228:6:139"},"nodeType":"YulFunctionCall","src":"7228:30:139"},"nodeType":"YulExpressionStatement","src":"7228:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7278:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7289:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7274:3:139"},"nodeType":"YulFunctionCall","src":"7274:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7294:26:139","type":"","value":"Provided reward too high"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7267:6:139"},"nodeType":"YulFunctionCall","src":"7267:54:139"},"nodeType":"YulExpressionStatement","src":"7267:54:139"},{"nodeType":"YulAssignment","src":"7330:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7342:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7353:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7338:3:139"},"nodeType":"YulFunctionCall","src":"7338:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7330:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7165:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7179:4:139","type":""}],"src":"7014:348:139"},{"body":{"nodeType":"YulBlock","src":"7541:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7558:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7569:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7551:6:139"},"nodeType":"YulFunctionCall","src":"7551:21:139"},"nodeType":"YulExpressionStatement","src":"7551:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7592:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7603:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7588:3:139"},"nodeType":"YulFunctionCall","src":"7588:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7608:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7581:6:139"},"nodeType":"YulFunctionCall","src":"7581:30:139"},"nodeType":"YulExpressionStatement","src":"7581:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7631:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7642:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7627:3:139"},"nodeType":"YulFunctionCall","src":"7627:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7647:20:139","type":"","value":"invalid token code"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7620:6:139"},"nodeType":"YulFunctionCall","src":"7620:48:139"},"nodeType":"YulExpressionStatement","src":"7620:48:139"},{"nodeType":"YulAssignment","src":"7677:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7689:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7700:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7685:3:139"},"nodeType":"YulFunctionCall","src":"7685:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7677:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7518:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7532:4:139","type":""}],"src":"7367:342:139"},{"body":{"nodeType":"YulBlock","src":"7888:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7905:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7916:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7898:6:139"},"nodeType":"YulFunctionCall","src":"7898:21:139"},"nodeType":"YulExpressionStatement","src":"7898:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7939:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7950:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7935:3:139"},"nodeType":"YulFunctionCall","src":"7935:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7955:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7928:6:139"},"nodeType":"YulFunctionCall","src":"7928:30:139"},"nodeType":"YulExpressionStatement","src":"7928:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7978:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7989:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7974:3:139"},"nodeType":"YulFunctionCall","src":"7974:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7994:17:139","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7967:6:139"},"nodeType":"YulFunctionCall","src":"7967:45:139"},"nodeType":"YulExpressionStatement","src":"7967:45:139"},{"nodeType":"YulAssignment","src":"8021:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8033:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8044:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8029:3:139"},"nodeType":"YulFunctionCall","src":"8029:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8021:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7865:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7879:4:139","type":""}],"src":"7714:339:139"},{"body":{"nodeType":"YulBlock","src":"8232:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8249:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8260:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8242:6:139"},"nodeType":"YulFunctionCall","src":"8242:21:139"},"nodeType":"YulExpressionStatement","src":"8242:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8283:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8294:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8279:3:139"},"nodeType":"YulFunctionCall","src":"8279:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8299:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8272:6:139"},"nodeType":"YulFunctionCall","src":"8272:30:139"},"nodeType":"YulExpressionStatement","src":"8272:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8322:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8333:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8318:3:139"},"nodeType":"YulFunctionCall","src":"8318:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8338:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8311:6:139"},"nodeType":"YulFunctionCall","src":"8311:61:139"},"nodeType":"YulExpressionStatement","src":"8311:61:139"},{"nodeType":"YulAssignment","src":"8381:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8393:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8404:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8389:3:139"},"nodeType":"YulFunctionCall","src":"8389:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8381:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8209:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8223:4:139","type":""}],"src":"8058:355:139"},{"body":{"nodeType":"YulBlock","src":"8592:163:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8609:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8620:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8602:6:139"},"nodeType":"YulFunctionCall","src":"8602:21:139"},"nodeType":"YulExpressionStatement","src":"8602:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8643:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8654:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8639:3:139"},"nodeType":"YulFunctionCall","src":"8639:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8659:2:139","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8632:6:139"},"nodeType":"YulFunctionCall","src":"8632:30:139"},"nodeType":"YulExpressionStatement","src":"8632:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8682:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8693:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8678:3:139"},"nodeType":"YulFunctionCall","src":"8678:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8698:15:139","type":"","value":"amount < left"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8671:6:139"},"nodeType":"YulFunctionCall","src":"8671:43:139"},"nodeType":"YulExpressionStatement","src":"8671:43:139"},{"nodeType":"YulAssignment","src":"8723:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8735:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8746:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8731:3:139"},"nodeType":"YulFunctionCall","src":"8731:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8723:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8569:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8583:4:139","type":""}],"src":"8418:337:139"},{"body":{"nodeType":"YulBlock","src":"8934:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8951:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8962:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8944:6:139"},"nodeType":"YulFunctionCall","src":"8944:21:139"},"nodeType":"YulExpressionStatement","src":"8944:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8985:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8996:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8981:3:139"},"nodeType":"YulFunctionCall","src":"8981:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9001:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8974:6:139"},"nodeType":"YulFunctionCall","src":"8974:30:139"},"nodeType":"YulExpressionStatement","src":"8974:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9024:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9035:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9020:3:139"},"nodeType":"YulFunctionCall","src":"9020:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9040:12:139","type":"","value":"amount = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9013:6:139"},"nodeType":"YulFunctionCall","src":"9013:40:139"},"nodeType":"YulExpressionStatement","src":"9013:40:139"},{"nodeType":"YulAssignment","src":"9062:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9074:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9085:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9070:3:139"},"nodeType":"YulFunctionCall","src":"9070:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9062:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8911:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8925:4:139","type":""}],"src":"8760:334:139"},{"body":{"nodeType":"YulBlock","src":"9200:76:139","statements":[{"nodeType":"YulAssignment","src":"9210:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9222:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9233:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9218:3:139"},"nodeType":"YulFunctionCall","src":"9218:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9210:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9252:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9263:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9245:6:139"},"nodeType":"YulFunctionCall","src":"9245:25:139"},"nodeType":"YulExpressionStatement","src":"9245:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9169:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9180:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9191:4:139","type":""}],"src":"9099:177:139"},{"body":{"nodeType":"YulBlock","src":"9410:119:139","statements":[{"nodeType":"YulAssignment","src":"9420:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9432:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9443:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9428:3:139"},"nodeType":"YulFunctionCall","src":"9428:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9420:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9462:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9473:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9455:6:139"},"nodeType":"YulFunctionCall","src":"9455:25:139"},"nodeType":"YulExpressionStatement","src":"9455:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9500:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9511:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9496:3:139"},"nodeType":"YulFunctionCall","src":"9496:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"9516:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9489:6:139"},"nodeType":"YulFunctionCall","src":"9489:34:139"},"nodeType":"YulExpressionStatement","src":"9489:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9371:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9382:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9390:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9401:4:139","type":""}],"src":"9281:248:139"},{"body":{"nodeType":"YulBlock","src":"9582:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"9609:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9611:16:139"},"nodeType":"YulFunctionCall","src":"9611:18:139"},"nodeType":"YulExpressionStatement","src":"9611:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9598:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9605:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9601:3:139"},"nodeType":"YulFunctionCall","src":"9601:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9595:2:139"},"nodeType":"YulFunctionCall","src":"9595:13:139"},"nodeType":"YulIf","src":"9592:2:139"},{"nodeType":"YulAssignment","src":"9640:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9651:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9654:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9647:3:139"},"nodeType":"YulFunctionCall","src":"9647:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"9640:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9565:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9568:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"9574:3:139","type":""}],"src":"9534:128:139"},{"body":{"nodeType":"YulBlock","src":"9713:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"9744:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"9765:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9772:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9777:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9768:3:139"},"nodeType":"YulFunctionCall","src":"9768:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9758:6:139"},"nodeType":"YulFunctionCall","src":"9758:31:139"},"nodeType":"YulExpressionStatement","src":"9758:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9809:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9812:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9802:6:139"},"nodeType":"YulFunctionCall","src":"9802:15:139"},"nodeType":"YulExpressionStatement","src":"9802:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"9837:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"9840:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9830:6:139"},"nodeType":"YulFunctionCall","src":"9830:15:139"},"nodeType":"YulExpressionStatement","src":"9830:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9733:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9726:6:139"},"nodeType":"YulFunctionCall","src":"9726:9:139"},"nodeType":"YulIf","src":"9723:2:139"},{"nodeType":"YulAssignment","src":"9864:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9873:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9876:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9869:3:139"},"nodeType":"YulFunctionCall","src":"9869:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"9864:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9698:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9701:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"9707:1:139","type":""}],"src":"9667:217:139"},{"body":{"nodeType":"YulBlock","src":"9941:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"10000:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10002:16:139"},"nodeType":"YulFunctionCall","src":"10002:18:139"},"nodeType":"YulExpressionStatement","src":"10002:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9972:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9965:6:139"},"nodeType":"YulFunctionCall","src":"9965:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9958:6:139"},"nodeType":"YulFunctionCall","src":"9958:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9980:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9991:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9987:3:139"},"nodeType":"YulFunctionCall","src":"9987:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"9995:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9983:3:139"},"nodeType":"YulFunctionCall","src":"9983:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9977:2:139"},"nodeType":"YulFunctionCall","src":"9977:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9954:3:139"},"nodeType":"YulFunctionCall","src":"9954:45:139"},"nodeType":"YulIf","src":"9951:2:139"},{"nodeType":"YulAssignment","src":"10031:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10046:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10049:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10042:3:139"},"nodeType":"YulFunctionCall","src":"10042:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"10031:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9920:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9923:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"9929:7:139","type":""}],"src":"9889:168:139"},{"body":{"nodeType":"YulBlock","src":"10111:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"10133:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10135:16:139"},"nodeType":"YulFunctionCall","src":"10135:18:139"},"nodeType":"YulExpressionStatement","src":"10135:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10127:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10130:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10124:2:139"},"nodeType":"YulFunctionCall","src":"10124:8:139"},"nodeType":"YulIf","src":"10121:2:139"},{"nodeType":"YulAssignment","src":"10164:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10176:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10179:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10172:3:139"},"nodeType":"YulFunctionCall","src":"10172:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"10164:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10093:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10096:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"10102:4:139","type":""}],"src":"10062:125:139"},{"body":{"nodeType":"YulBlock","src":"10239:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"10270:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10272:16:139"},"nodeType":"YulFunctionCall","src":"10272:18:139"},"nodeType":"YulExpressionStatement","src":"10272:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10255:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10266:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10262:3:139"},"nodeType":"YulFunctionCall","src":"10262:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10252:2:139"},"nodeType":"YulFunctionCall","src":"10252:17:139"},"nodeType":"YulIf","src":"10249:2:139"},{"nodeType":"YulAssignment","src":"10301:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10312:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"10319:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10308:3:139"},"nodeType":"YulFunctionCall","src":"10308:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10301:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10221:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10231:3:139","type":""}],"src":"10192:135:139"},{"body":{"nodeType":"YulBlock","src":"10364:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10381:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10388:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10393:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10384:3:139"},"nodeType":"YulFunctionCall","src":"10384:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10374:6:139"},"nodeType":"YulFunctionCall","src":"10374:31:139"},"nodeType":"YulExpressionStatement","src":"10374:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10421:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10424:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10414:6:139"},"nodeType":"YulFunctionCall","src":"10414:15:139"},"nodeType":"YulExpressionStatement","src":"10414:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10445:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10448:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10438:6:139"},"nodeType":"YulFunctionCall","src":"10438:15:139"},"nodeType":"YulExpressionStatement","src":"10438:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"10332:127:139"},{"body":{"nodeType":"YulBlock","src":"10496:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10513:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10520:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10525:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10516:3:139"},"nodeType":"YulFunctionCall","src":"10516:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10506:6:139"},"nodeType":"YulFunctionCall","src":"10506:31:139"},"nodeType":"YulExpressionStatement","src":"10506:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10553:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10556:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10546:6:139"},"nodeType":"YulFunctionCall","src":"10546:15:139"},"nodeType":"YulExpressionStatement","src":"10546:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10577:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10580:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10570:6:139"},"nodeType":"YulFunctionCall","src":"10570:15:139"},"nodeType":"YulExpressionStatement","src":"10570:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"10464:127:139"},{"body":{"nodeType":"YulBlock","src":"10641:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"10705:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10714:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10717:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10707:6:139"},"nodeType":"YulFunctionCall","src":"10707:12:139"},"nodeType":"YulExpressionStatement","src":"10707:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10664:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10675:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10690:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10695:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10686:3:139"},"nodeType":"YulFunctionCall","src":"10686:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10699:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10682:3:139"},"nodeType":"YulFunctionCall","src":"10682:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10671:3:139"},"nodeType":"YulFunctionCall","src":"10671:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10661:2:139"},"nodeType":"YulFunctionCall","src":"10661:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10654:6:139"},"nodeType":"YulFunctionCall","src":"10654:50:139"},"nodeType":"YulIf","src":"10651:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10630:5:139","type":""}],"src":"10596:131:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let _3 := 0xffffffffffffffff\n        if gt(_1, _3) { panic_error_0x41() }\n        let _4 := shl(5, _1)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_4, 63), not(31)))\n        if or(gt(newFreePtr, _3), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, _4), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(value1, value1) }\n        value1 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        let i := end\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n        }\n        if gt(i, length) { mstore(add(pos, length), end) }\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_1486e93c4d5d92f40179a2c05c32a595602c8fdc9ecb6ef933ee440930077912__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"not voter\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_33d9a52bc684de54a4ecc0df1efb38facdceaae6c01b9975090750fb87ddc9a5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"rewardRate = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"transferFrom failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Provided reward too high\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"invalid token code\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"transfer failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ee6df7b961eb16d869d3d8945a6addf95d1a9d1eaed30c21760edc88af201431__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"amount < left\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"amount = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"22949":[{"length":32,"start":969},{"length":32,"start":2393},{"length":32,"start":2508},{"length":32,"start":2893},{"length":32,"start":3008},{"length":32,"start":5741}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101bb5760003560e01c806376f4be36116100fa578063b66503cf1161009d578063b66503cf146104a3578063da09d19d146104b6578063e6886396146104d6578063e8111a12146104de578063e943da8a146104e7578063f1229777146104fa578063f301af421461050d578063f7412baf14610520578063fd3140981461054757600080fd5b806376f4be36146103b15780637b103999146103c45780637fd7d0621461040357806399bcc052146104165780639ce43f9014610429578063a495e5b514610449578063aa47965214610474578063aaf5eb681461049457600080fd5b80632ce9aead116101625780632ce9aead146102ba5780633ca068b6146102da578063463cd970146103055780634d5ce038146103185780635a45d0521461034b578063638634ee1461035e5780636fcfff451461037157806370a082311461039157600080fd5b806301316ddf146101c05780630cdfebfa1461020c578063115c6f391461023e57806318160ddd1461025f5780631be0528914610268578063211dc32d14610272578063221ca18c14610285578063293311ab146102a5575b600080fd5b6101f26101ce3660046127dd565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101f261021a3660046127dd565b600b6020908152600092835260408084209091529082529020805460019091015482565b61025161024c3660046127dd565b61055a565b604051908152602001610203565b61025160095481565b61025162093a8081565b610251610280366004612757565b6106c7565b61025161029336600461271f565b60016020526000908152604090205481565b6102b86102b3366004612893565b610957565b005b6102516102c836600461271f565b60036020526000908152604090205481565b6102516102e8366004612757565b600660209081526000928352604080842090915290825290205481565b6102b8610313366004612893565b610b4b565b61033b61032636600461271f565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b6102b86103593660046127dd565b610d2a565b61025161036c36600461271f565b610d62565b61025161037f36600461271f565b600c6020526000908152604090205481565b61025161039f36600461271f565b600a6020526000908152604090205481565b6102516103bf366004612863565b610d86565b6103eb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102b8610411366004612808565b610eb8565b61025161042436600461271f565b6111d7565b61025161043736600461271f565b60046020526000908152604090205481565b610251610457366004612757565b600560209081526000928352604080842090915290825290205481565b61025161048236600461271f565b60106020526000908152604090205481565b610251670de0b6b3a764000081565b6102b86104b13660046127dd565b611248565b6102516104c436600461271f565b60026020526000908152604090205481565b600754610251565b610251600e5481565b6102b86104f536600461278f565b611640565b61025161050836600461271f565b611a1b565b6103eb61051b366004612863565b611adb565b6101f261052e366004612863565b600d602052600090815260409020805460019091015482565b6101f26105553660046127dd565b611b05565b6001600160a01b0382166000908152600c6020526040812054806105825760009150506106c1565b6001600160a01b0384166000908152600b6020526040812084916105a76001856129e6565b815260200190815260200160002060000154116105d1576105c96001826129e6565b9150506106c1565b6001600160a01b0384166000908152600b602090815260408083208380529091529020548310156106065760009150506106c1565b6000806106146001846129e6565b90505b818111156106bc576000600261062d84846129e6565b61063791906129a7565b61064190836129e6565b6001600160a01b0388166000908152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610696575093506106c192505050565b80518711156106a7578193506106b5565b6106b26001836129e6565b92505b5050610617565b509150505b92915050565b6001600160a01b038083166000818152600560209081526040808320948616835293815283822054928252600f8152838220828052905291822054829161070d91611d24565b6001600160a01b0384166000908152600c60205260409020549091506107375760009150506106c1565b6000610743848361055a565b6001600160a01b0385166000908152600c60205260408120549192509061076c906001906129e6565b90506000600161077c84846129e6565b111561088b57825b61078f6001846129e6565b811015610889576001600160a01b0387166000818152600b6020818152604080842086855280835281852082518084019093528054835260019081015483850152958552929091529282906107e590869061298f565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006108248b8460000151611b05565b50905060006108378c8460000151611b05565b509050670de0b6b3a764000061084d83836129e6565b856020015161085c91906129c7565b61086691906129a7565b610870908761298f565b9550505050508080610881906129fd565b915050610784565b505b6001600160a01b0386166000908152600b602090815260408083208584528252808320815180830190925280548083526001909101549282019290925291906108d5908a90611b05565b506001600160a01b03808b166000908152600660209081526040808320938d1683529290522054909150670de0b6b3a764000090610914908390611d24565b61091d8b611a1b565b61092791906129e6565b836020015161093691906129c7565b61094091906129a7565b61094a908461298f565b9998505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109b257600080fd5b505af11580156109c6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b919061273b565b6001600160a01b0316336001600160a01b031614610a945760405162461bcd60e51b8152600401610a8b90612909565b60405180910390fd5b8160096000828254610aa691906129e6565b90915550506001600160a01b0381166000908152600a602052604081208054849290610ad39084906129e6565b90915550506001600160a01b0381166000908152600a6020526040902054610afc908290611d3b565b610b04611e46565b336001600160a01b03167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8284604051610b3f9291906128f0565b60405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f919061273b565b6001600160a01b0316336001600160a01b031614610c7f5760405162461bcd60e51b8152600401610a8b90612909565b8160096000828254610c91919061298f565b90915550506001600160a01b0381166000908152600a602052604081208054849290610cbe90849061298f565b90915550506001600160a01b0381166000908152600a6020526040902054610ce7908290611d3b565b610cef611e46565b336001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f628284604051610b3f9291906128f0565b610d348282611eea565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546106c1904290612049565b600e5460009080610d9a5750600092915050565b82600d6000610daa6001856129e6565b81526020019081526020016000206000015411610dd357610dcc6001826129e6565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee54831015610e0e5750600092915050565b600080610e1c6001846129e6565b90505b81811115610eb05760006002610e3584846129e6565b610e3f91906129a7565b610e4990836129e6565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610e8a575095945050505050565b8051871115610e9b57819350610ea9565b610ea66001836129e6565b92505b5050610e1f565b509392505050565b60026000541415610edb5760405162461bcd60e51b8152600401610a8b90612958565b600260009081555b81518110156111ce57610f1c828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6020026020010151612058565b60046000858581518110610f4057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110610f8e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff7838381518110610fe957634e487b7160e01b600052603260045260246000fd5b6020026020010151336106c7565b9050426005600085858151811061101e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000336001600160a01b03166001600160a01b03168152602001908152602001600020819055506004600084848151811061109157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008585815181106110de57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812033825290925290205580156111475761114783838151811061113857634e487b7160e01b600052603260045260246000fd5b6020026020010151338361223b565b82828151811061116757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516111b391815260200190565b60405180910390a350806111c6816129fd565b915050610ee3565b50506001600055565b6001600160a01b03811660009081526002602052604081205442106111fe57506000919050565b6001600160a01b0382166000908152600260205260408120546112229042906129e6565b6001600160a01b038416600090815260016020526040902054909150610dcc90826129c7565b6002600054141561126b5760405162461bcd60e51b8152600401610a8b90612958565b6002600055806112aa5760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610a8b565b6001600160a01b0382166000908152600160205260409020546112d3576112d38260004261237c565b6112dc82612058565b6001600160a01b038416600090815260046020908152604080832060038352818420949094559390925560029091522054421061134a5761131f8233308461246b565b61132c62093a80826129a7565b6001600160a01b038316600090815260016020526040902055611416565b6001600160a01b03821660009081526002602052604081205461136e9042906129e6565b6001600160a01b0384166000908152600160205260408120549192509061139590836129c7565b90508083116113d65760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610a8b565b6113e28433308661246b565b62093a806113f0828561298f565b6113fa91906129a7565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b03821660009081526001602052604090205461146c5760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610a8b565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b1580156114ae57600080fd5b505afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e6919061287b565b90506114f562093a80826129a7565b6001600160a01b03841660009081526001602052604090205411156115575760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610a8b565b61156462093a804261298f565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff166115f6576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b600260005414156116635760405162461bcd60e51b8152600401610a8b90612958565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fc919061273b565b6001600160a01b0316336001600160a01b03161461172c5760405162461bcd60e51b8152600401610a8b90612909565b60005b8151811015611a115761175b828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6004600085858151811061177f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000600360008787815181106117cd57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000849190505583919050555050600061183683838151811061182857634e487b7160e01b600052603260045260246000fd5b6020026020010151856106c7565b9050426005600085858151811061185d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550600460008484815181106118d057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546006600085858151811061191d57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03908116835282820193909352604091820160009081209389168152929052902055801561198a5761198a83838151811061197b57634e487b7160e01b600052603260045260246000fd5b6020026020010151858361223b565b8282815181106119aa57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316846001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516119f691815260200190565b60405180910390a35080611a09816129fd565b91505061172f565b5050600160005550565b600060095460001415611a4457506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a76400009291611a8791612049565b611a9086610d62565b611a9a91906129e6565b611aa491906129c7565b611aae91906129c7565b611ab891906129a7565b6001600160a01b0383166000908152600460205260409020546106c1919061298f565b60078181548110611aeb57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038216600090815260106020526040812054819080611b32576000809250925050611d1d565b6001600160a01b0385166000908152600f602052604081208591611b576001856129e6565b81526020019081526020016000206000015411611bf4576001600160a01b0385166000908152600f6020526040812090611b926001846129e6565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611bd891906129e6565b8152602001908152602001600020600001549250925050611d1d565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611c2c576000809250925050611d1d565b600080611c3a6001846129e6565b90505b81811115611cec5760006002611c5384846129e6565b611c5d91906129a7565b611c6790836129e6565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611cc657602081015190519096509450611d1d9350505050565b8051881115611cd757819350611ce5565b611ce26001836129e6565b92505b5050611c3d565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611d345781610dcc565b5090919050565b6001600160a01b0382166000908152600c602052604090205442908015801590611d9957506001600160a01b0384166000908152600b602052604081208391611d856001856129e6565b815260200190815260200160002060000154145b15611ddc576001600160a01b0384166000908152600b602052604081208491611dc36001856129e6565b8152602081019190915260400160002060010155611e40565b60408051808201825283815260208082018681526001600160a01b0388166000908152600b8352848120868252909252929020905181559051600191820155611e2690829061298f565b6001600160a01b0385166000908152600c60205260409020555b50505050565b600e54428115801590611e78575080600d6000611e646001866129e6565b815260200190815260200160002060000154145b15611ea757600954600d6000611e8f6001866129e6565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d90915292909220905181559051600191820155611ee390839061298f565b600e555050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f225792509050611d1d565b6001600160a01b038616600090815260016020526040902054611f4b579250429150611d1d9050565b6000611f5683610d86565b90506000611f726001600e54611f6c91906129e6565b88612049565b9050815b8181101561203a576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612027576000600d81611fbb85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120068d8460000151866000015187602001518d6125af565b9092509050612015828961298f565b97506120228d898361237c565b975050505b5080612032816129fd565b915050611f76565b50919792965091945050505050565b6000818310611d345781610dcc565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e54839291906120905794909350915050565b6001600160a01b0385166000908152600160205260409020546120b7579442945092505050565b60006120c283610d86565b905060006001600e546120d591906129e6565b905060016120e383836129e6565b11156121bb57815b6120f66001836129e6565b8110156121b9576000818152600d602090815260409182902082518084019093528054835260010154908201819052156121a6576000600d8161213a85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806121858c8460000151866000015187602001518d6125af565b9092509050612194828961298f565b97506121a18c898361237c565b975050505b50806121b1816129fd565b9150506120eb565b505b6000818152600d6020908152604091829020825180840190935280548352600101549082018190521561222d57600061220e896121f78b610d62565b8451612203908a611d24565b85602001518a6125af565b50905061221b818661298f565b945061222889864261237c565b429550505b509196929550919350505050565b6000836001600160a01b03163b116122655760405162461bcd60e51b8152600401610a8b9061292c565b600080846001600160a01b031663a9059cbb60e01b858560405160240161228d9291906128f0565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516122cb91906128b7565b6000604051808303816000865af19150503d8060008114612308576040519150601f19603f3d011682016040523d82523d6000602084013e61230d565b606091505b50915091508180156123375750805115806123375750808060200190518101906123379190612843565b6123755760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610a8b565b5050505050565b6001600160a01b03831660009081526010602052604090205480158015906123d857506001600160a01b0384166000908152600f6020526040812083916123c46001856129e6565b815260200190815260200160002060000154145b15612402576001600160a01b0384166000908152600f602052604081208491611dc36001856129e6565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f835284812086825290925292902090518155905160019182015561244c90829061298f565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116124955760405162461bcd60e51b8152600401610a8b9061292c565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916124f991906128b7565b6000604051808303816000865af19150503d8060008114612536576040519150601f19603f3d011682016040523d82523d6000602084013e61253b565b606091505b50915091508180156125655750805115806125655750808060200190518101906125659190612843565b6125a75760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610a8b565b505050505050565b60008060006125be8785611d24565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906126116125f38a89611d24565b6001600160a01b038d16600090815260026020526040902054612049565b6001600160a01b038c16600090815260026020526040902054612635908690612049565b61263f91906129e6565b61264991906129c7565b61265391906129c7565b61265d91906129a7565b9890975095505050505050565b803561267581612a44565b919050565b600082601f83011261268a578081fd5b8135602067ffffffffffffffff808311156126a7576126a7612a2e565b8260051b604051601f19603f830116810181811084821117156126cc576126cc612a2e565b604052848152838101925086840182880185018910156126ea578687fd5b8692505b85831015612713576126ff8161266a565b8452928401926001929092019184016126ee565b50979650505050505050565b600060208284031215612730578081fd5b8135610dcc81612a44565b60006020828403121561274c578081fd5b8151610dcc81612a44565b60008060408385031215612769578081fd5b823561277481612a44565b9150602083013561278481612a44565b809150509250929050565b600080604083850312156127a1578182fd5b82356127ac81612a44565b9150602083013567ffffffffffffffff8111156127c7578182fd5b6127d38582860161267a565b9150509250929050565b600080604083850312156127ef578182fd5b82356127fa81612a44565b946020939093013593505050565b600060208284031215612819578081fd5b813567ffffffffffffffff81111561282f578182fd5b61283b8482850161267a565b949350505050565b600060208284031215612854578081fd5b81518015158114610dcc578182fd5b600060208284031215612874578081fd5b5035919050565b60006020828403121561288c578081fd5b5051919050565b600080604083850312156128a5578182fd5b82359150602083013561278481612a44565b60008251815b818110156128d757602081860181015185830152016128bd565b818111156128e55782828501525b509190910192915050565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082198211156129a2576129a2612a18565b500190565b6000826129c257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129e1576129e1612a18565b500290565b6000828210156129f8576129f8612a18565b500390565b6000600019821415612a1157612a11612a18565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612a5957600080fd5b5056fea26469706673582212207d22301ea35e36ebb4dabfaf0071b585c532867c2ab545fdec36171f0925794264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xB66503CF GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x4B6 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4DE JUMPI DUP1 PUSH4 0xE943DA8A EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x7FD7D062 EQ PUSH2 0x403 JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x474 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2CE9AEAD GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x463CD970 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x371 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x293311AB EQ PUSH2 0x2A5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F2 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x251 PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x33B PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x251 PUSH2 0x36C CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x37F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x39F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3BF CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0xD86 JUMP JUMPDEST PUSH2 0x3EB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x411 CALLDATASIZE PUSH1 0x4 PUSH2 0x2808 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x424 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x437 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x457 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x482 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1248 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x4C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x251 JUMP JUMPDEST PUSH2 0x251 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x278F JUMP JUMPDEST PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x3EB PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0x1ADB JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1B05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x582 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x5A7 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x5D1 JUMPI PUSH2 0x5C9 PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x62D DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x637 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x641 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x696 JUMPI POP SWAP4 POP PUSH2 0x6C1 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x6A7 JUMPI DUP2 SWAP4 POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x6B2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x617 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0xF DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x70D SWAP2 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x737 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x743 DUP5 DUP4 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x76C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x77C DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x88B JUMPI DUP3 JUMPDEST PUSH2 0x78F PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x889 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x7E5 SWAP1 DUP7 SWAP1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x824 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x837 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x84D DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x85C SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x870 SWAP1 DUP8 PUSH2 0x298F JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x881 SWAP1 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x784 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x8D5 SWAP1 DUP11 SWAP1 PUSH2 0x1B05 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x914 SWAP1 DUP4 SWAP1 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x91D DUP12 PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x927 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x936 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x94A SWAP1 DUP5 PUSH2 0x298F JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA5B SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xAA6 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xAD3 SWAP1 DUP5 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xAFC SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xB04 PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9B1BFA7FA9EE420A16E124F794C35AC9F90472ACC99140EB2F6447C714CAD8EB DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC4F SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC91 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xCBE SWAP1 DUP5 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCE7 SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xCEF PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5548C837AB068CF56A2C2479DF0882A4922FD203EDB7517321831D95078C5F62 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH2 0xD34 DUP3 DUP3 PUSH2 0x1EEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6C1 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0xD9A JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0xDAA PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xDD3 JUMPI PUSH2 0xDCC PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0xE0E JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE1C PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xEB0 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xE35 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE3F SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xE49 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xE8A JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xE9B JUMPI DUP2 SWAP4 POP PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0xEA6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xE1F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xEDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 DUP2 SSTORE JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x11CE JUMPI PUSH2 0xF1C DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF40 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF8E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF7 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x101E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1091 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10DE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 CALLER DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1147 JUMPI PUSH2 0x1147 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1138 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1167 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11B3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11C6 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEE3 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x11FE JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1222 SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0xDCC SWAP1 DUP3 PUSH2 0x29C7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x126B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x12AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x12D3 JUMPI PUSH2 0x12D3 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST PUSH2 0x12DC DUP3 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x134A JUMPI PUSH2 0x131F DUP3 CALLER ADDRESS DUP5 PUSH2 0x246B JUMP JUMPDEST PUSH2 0x132C PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x136E SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1395 SWAP1 DUP4 PUSH2 0x29C7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x13D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x13E2 DUP5 CALLER ADDRESS DUP7 PUSH2 0x246B JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x13F0 DUP3 DUP6 PUSH2 0x298F JUMP JUMPDEST PUSH2 0x13FA SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x146C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E6 SWAP2 SWAP1 PUSH2 0x287B JUMP JUMPDEST SWAP1 POP PUSH2 0x14F5 PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1557 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x1564 PUSH3 0x93A80 TIMESTAMP PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x15F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1663 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16FC SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x172C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x175B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x177F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x17CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1836 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1828 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x185D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x191D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x198A JUMPI PUSH2 0x198A DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x197B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19F6 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1A09 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x172F JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1A44 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1A87 SWAP2 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x1A90 DUP7 PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x1A9A SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1AA4 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AAE SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AB8 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6C1 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1AEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1B57 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1BF4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1B92 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1BD8 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1C2C JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C3A PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1C53 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1C5D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x1C67 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1CC6 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1D1D SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1CD7 JUMPI DUP2 SWAP4 POP PUSH2 0x1CE5 JUMP JUMPDEST PUSH2 0x1CE2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1C3D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1D99 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x1D85 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1DDC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x1E40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1E26 SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1E78 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x1E64 PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1EA7 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x1E8F PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1EE3 SWAP1 DUP4 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F22 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F4B JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1D1D SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F56 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F72 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP9 PUSH2 0x2049 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x203A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2027 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FBB DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2006 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2015 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x2022 DUP14 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2032 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F76 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2090 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x20B7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C2 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x20D5 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x20E3 DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x21BB JUMPI DUP2 JUMPDEST PUSH2 0x20F6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x21B9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x21A6 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x213A DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2185 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2194 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x21A1 DUP13 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x21B1 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x20EB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x222D JUMPI PUSH1 0x0 PUSH2 0x220E DUP10 PUSH2 0x21F7 DUP12 PUSH2 0xD62 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2203 SWAP1 DUP11 PUSH2 0x1D24 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x25AF JUMP JUMPDEST POP SWAP1 POP PUSH2 0x221B DUP2 DUP7 PUSH2 0x298F JUMP JUMPDEST SWAP5 POP PUSH2 0x2228 DUP10 DUP7 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2265 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x228D SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x22CB SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2308 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x230D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2337 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2337 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2337 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x2375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x23D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x23C4 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2402 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x244C SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2495 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x24F9 SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2536 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x253B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2565 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2565 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2565 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x25A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x25BE DUP8 DUP6 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2611 PUSH2 0x25F3 DUP11 DUP10 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2635 SWAP1 DUP7 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x263F SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x2649 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x2653 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x265D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2675 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x268A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x26A7 JUMPI PUSH2 0x26A7 PUSH2 0x2A2E JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x26CC JUMPI PUSH2 0x26CC PUSH2 0x2A2E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP5 DUP2 MSTORE DUP4 DUP2 ADD SWAP3 POP DUP7 DUP5 ADD DUP3 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x26EA JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0x2713 JUMPI PUSH2 0x26FF DUP2 PUSH2 0x266A JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 DUP5 ADD PUSH2 0x26EE JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2730 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x274C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2769 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2774 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A1 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27AC DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27C7 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x27D3 DUP6 DUP3 DUP7 ADD PUSH2 0x267A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27FA DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2819 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x283B DUP5 DUP3 DUP6 ADD PUSH2 0x267A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2854 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xDCC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2874 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x288C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28A5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x28D7 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x28BD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x28E5 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x29A2 JUMPI PUSH2 0x29A2 PUSH2 0x2A18 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x29E1 JUMPI PUSH2 0x29E1 PUSH2 0x2A18 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x29F8 JUMPI PUSH2 0x29F8 PUSH2 0x2A18 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2A11 JUMPI PUSH2 0x2A11 PUSH2 0x2A18 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2A59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH30 0x22301EA35E36EBB4DABFAF0071B585C532867C2AB545FDEC36171F092579 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"645:19796:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:105;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9455:25:139;;;9511:2;9496:18;;9489:34;;;;9428:18;2471:105:76;;;;;;;;1982:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3175:1054;;;;;;:::i;:::-;;:::i;:::-;;;9245:25:139;;;9233:2;9218:18;3175:1054:76;9200:76:139;1397:26:76;;;;;;753:41;;788:6;753:41;;15088:1686;;;;;;:::i;:::-;;:::i;936:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;17283:373;;;;;;:::i;:::-;;:::i;:::-;;1040:49;;;;;;:::i;:::-;;;;;;;;;;;;;;1226:87;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16906:371;;;;;;:::i;:::-;;:::i;1350:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5732:14:139;;5725:22;5707:41;;5695:2;5680:18;1350:40:76;5662:92:139;11085:212:76;;;;;;:::i;:::-;;:::i;8875:177::-;;;;;;:::i;:::-;;:::i;2117:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1429:44;;;;;;:::i;:::-;;;;;;;;;;;;;;4235:1050;;;;;;:::i;:::-;;:::i;702:44::-;;;;;;;;-1:-1:-1;;;;;4864:32:139;;;;4846:51;;4834:2;4819:18;702:44:76;4801:102:139;9114:682:76;;;;;;:::i;:::-;;:::i;17662:254::-;;;;;;:::i;:::-;;:::i;1095:55::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1157:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2640;;;;;;:::i;:::-;;;;;;;;;;;;;;836:42;;872:6;836:42;;18031:1396;;;;;;:::i;:::-;;:::i;987:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;8677:99;8755:7;:14;8677:99;;2356:35;;;;;;9860:790;;;;;;:::i;:::-;;:::i;10656:423::-;;;;;;:::i;:::-;;:::i;1320:24::-;;;;;;:::i;:::-;;:::i;2246:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;5291:1560;;;;;;:::i;:::-;;:::i;3175:1054::-;-1:-1:-1;;;;;3328:19:76;;3282:7;3328:19;;;:14;:19;;;;;;;3357:56;;3401:1;3394:8;;;;;3357:56;-1:-1:-1;;;;;3470:16:76;;;;;;:11;:16;;;;;3518:9;;3487:16;-1:-1:-1;3487:12:76;:16;:::i;:::-;3470:34;;;;;;;;;;;:44;;;:57;3466:113;;3551:16;3566:1;3551:12;:16;:::i;:::-;3543:25;;;;;3466:113;-1:-1:-1;;;;;3637:16:76;;;;;;:11;:16;;;;;;;;:19;;;;;;;;:29;-1:-1:-1;;3633:80:76;;;3701:1;3694:8;;;;;3633:80;3723:13;;3766:16;3781:1;3766:12;:16;:::i;:::-;3750:32;;3792:409;3807:5;3799;:13;3792:409;;;3828:14;3871:1;3854:13;3862:5;3854;:13;:::i;:::-;3853:19;;;;:::i;:::-;3845:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;3936:16:76;;3913:20;3936:16;;;:11;:16;;;;;;;;:24;;;;;;;;;3913:47;;;;;;;;;;;;;-1:-1:-1;3913:47:76;;;;;;;;;;;3936:24;;-1:-1:-1;3913:47:76;3978:25;;3974:217;;;-1:-1:-1;4030:6:76;-1:-1:-1;4023:13:76;;-1:-1:-1;;;4023:13:76;3974:217;4061:12;;:24;-1:-1:-1;4057:134:76;;;4113:6;4105:14;;4057:134;;;4166:10;4175:1;4166:6;:10;:::i;:::-;4158:18;;4057:134;3792:409;;;;;-1:-1:-1;4217:5:76;-1:-1:-1;;3175:1054:76;;;;;:::o;15088:1686::-;-1:-1:-1;;;;;15220:15:76;;;15153:7;15220:15;;;:8;:15;;;;;;;;:20;;;;;;;;;;;;15254:32;;;:25;:32;;;;;:35;;;;;;;;:45;15153:7;;15198:111;;:8;:111::i;:::-;-1:-1:-1;;;;;15323:19:76;;;;;;:14;:19;;;;;;15172:137;;-1:-1:-1;15319:63:76;;15370:1;15363:8;;;;;15319:63;15392:19;15414:42;15435:3;15440:15;15414:20;:42::i;:::-;-1:-1:-1;;;;;15486:19:76;;15466:17;15486:19;;;:14;:19;;;;;;15392:64;;-1:-1:-1;15466:17:76;15486:23;;-1:-1:-1;;15486:23:76;:::i;:::-;15466:43;-1:-1:-1;15520:14:76;15579:1;15553:23;15565:11;15466:43;15553:23;:::i;:::-;:27;15549:737;;;15613:11;15596:680;15630:13;15642:1;15630:9;:13;:::i;:::-;15626:1;:17;15596:680;;;-1:-1:-1;;;;;15692:16:76;;15668:21;15692:16;;;:11;:16;;;;;;;;:19;;;;;;;;;15668:43;;;;;;;;;;;;-1:-1:-1;15668:43:76;;;;;;;;15753:16;;;;;;;15668:43;:21;;15770:5;;15692:19;;15770:5;:::i;:::-;15753:23;;;;;;;;;;;15729:47;;;;;;;;;;;;;;;;;;;;;;;;;;;15795:30;15831:102;15875:5;15902:3;:13;;;15831:22;:102::i;:::-;15794:139;;;15952:30;15988:102;16032:5;16059:3;:13;;;15988:22;:102::i;:::-;-1:-1:-1;15951:139:76;-1:-1:-1;872:6:76;16180:47;16205:22;15951:139;16180:47;:::i;:::-;16139:3;:13;;;:89;;;;:::i;:::-;16138:123;;;;:::i;:::-;16108:153;;;;:::i;:::-;;;15596:680;;;;15645:3;;;;;:::i;:::-;;;;15596:680;;;;15549:737;-1:-1:-1;;;;;16319:16:76;;16296:20;16319:16;;;:11;:16;;;;;;;;:27;;;;;;;;16296:50;;;;;;;;;;;;;-1:-1:-1;16296:50:76;;;;;;;;;;;;:20;16392:77;;16428:5;;16392:22;:77::i;:::-;-1:-1:-1;;;;;;16659:31:76;;;;;;;:24;:31;;;;;;;;:36;;;;;;;;;;16356:113;;-1:-1:-1;872:6:76;;16578:139;;16356:113;;16578:8;:139::i;:::-;16534:21;16549:5;16534:14;:21::i;:::-;:183;;;;:::i;:::-;16502:2;:12;;;:216;;;;:::i;:::-;16501:242;;;;:::i;:::-;16479:264;;;;:::i;:::-;;15088:1686;-1:-1:-1;;;;;;;;;15088:1686:76:o;17283:373::-;17359:8;-1:-1:-1;;;;;17359:24:76;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17418:8;-1:-1:-1;;;;;17418:19:76;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17404:35:76;:10;:35;17396:57;;;;-1:-1:-1;;;17396:57:76;;;;;;;:::i;:::-;;;;;;;;;17478:6;17463:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;17494:14:76;;;;;;:9;:14;;;;;:24;;17512:6;;17494:14;:24;;17512:6;;17494:24;:::i;:::-;;;;-1:-1:-1;;;;;;;17551:14:76;;;;;;:9;:14;;;;;;17529:37;;17551:14;;17529:16;:37::i;:::-;17576:24;:22;:24::i;:::-;17616:33;;;-1:-1:-1;;;;;5480:32:139;;5462:51;;5544:2;5529:18;;5522:34;;;17625:10:76;;17616:33;;5435:18:139;17616:33:76;;;;;;;;17283:373;;:::o;16906:371::-;16981:8;-1:-1:-1;;;;;16981:24:76;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17040:8;-1:-1:-1;;;;;17040:19:76;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17026:35:76;:10;:35;17018:57;;;;-1:-1:-1;;;17018:57:76;;;;;;;:::i;:::-;17100:6;17085:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;17116:14:76;;;;;;:9;:14;;;;;:24;;17134:6;;17116:14;:24;;17134:6;;17116:24;:::i;:::-;;;;-1:-1:-1;;;;;;;17173:14:76;;;;;;:9;:14;;;;;;17151:37;;17173:14;;17151:16;:37::i;:::-;17198:24;:22;:24::i;:::-;17238:32;;;-1:-1:-1;;;;;5480:32:139;;5462:51;;5544:2;5529:18;;5522:34;;;17246:10:76;;17238:32;;5435:18:139;17238:32:76;5417:145:139;11085:212:76;11254:36;11275:5;11282:7;11254:20;:36::i;:::-;-1:-1:-1;;;;;11179:27:76;;;;;;;;:20;:27;;;;;;;;11220:14;:21;;;;;;11165:125;;;;;;;-1:-1:-1;11085:212:76:o;8875:177::-;-1:-1:-1;;;;;9025:19:76;;8969:7;9025:19;;;:12;:19;;;;;;8999:46;;9008:15;;8999:8;:46::i;4235:1050::-;4374:20;;4328:7;;4408:17;4404:56;;-1:-1:-1;4448:1:76;;4235:1050;-1:-1:-1;;4235:1050:76:o;4404:56::-;4566:9;4517:17;:35;4535:16;4550:1;4535:12;:16;:::i;:::-;4517:35;;;;;;;;;;;:45;;;:58;4513:114;;4599:16;4614:1;4599:12;:16;:::i;:::-;4591:25;4235:1050;-1:-1:-1;;;4235:1050:76:o;4513:114::-;4685:20;;;:17;:20;;;:30;:42;-1:-1:-1;4681:81:76;;;-1:-1:-1;4750:1:76;;4235:1050;-1:-1:-1;;4235:1050:76:o;4681:81::-;4772:13;;4815:16;4830:1;4815:12;:16;:::i;:::-;4799:32;;4841:416;4856:5;4848;:13;4841:416;;;4877:14;4920:1;4903:13;4911:5;4903;:13;:::i;:::-;4902:19;;;;:::i;:::-;4894:27;;:5;:27;:::i;:::-;4962:26;4991:25;;;:17;:25;;;;;;;;;4962:54;;;;;;;;;;;;;;;;;;;;;;;;;4877:44;;-1:-1:-1;4962:54:76;5034:25;;5030:217;;;-1:-1:-1;5086:6:76;4235:1050;-1:-1:-1;;;;;4235:1050:76:o;5030:217::-;5117:12;;:24;-1:-1:-1;5113:134:76;;;5169:6;5161:14;;5113:134;;;5222:10;5231:1;5222:6;:10;:::i;:::-;5214:18;;5113:134;4841:416;;;;;-1:-1:-1;5273:5:76;4235:1050;-1:-1:-1;;;4235:1050:76:o;9114:682::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;;;9190:600:76::1;9214:6;:13;9210:1;:17;9190:600;;;9357:32;9379:6;9386:1;9379:9;;;;;;-1:-1:-1::0;;;9379:9:76::1;;;;;;;;;;;;;;;9357:21;:32::i;:::-;9266:20;:31;9287:6;9294:1;9287:9;;;;;;-1:-1:-1::0;;;9287:9:76::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9266:31:76::1;-1:-1:-1::0;;;;;9266:31:76::1;;;;;;;;;;;;;9315:14;:25;9330:6;9337:1;9330:9;;;;;;-1:-1:-1::0;;;9330:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9315:25:76::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9315:25:76;;;9248:141;;;;-1:-1:-1;9248:141:76;;;;9429:9;;9422:29:::1;::::0;9429:6;;9436:1;;9429:9;::::1;;;-1:-1:-1::0;;;9429:9:76::1;;;;;;;;;;;;;;;9440:10;9422:6;:29::i;:::-;9404:47;;9499:15;9465:8;:19;9474:6;9481:1;9474:9;;;;;;-1:-1:-1::0;;;9474:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9465:19:76::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;9465:19:76;;;9485:10:::1;9465:31:::0;;;;;;;:49;;;;9629:9;;9608:20:::1;::::0;-1:-1:-1;9629:6:76;;9636:1;;9629:9;::::1;;;-1:-1:-1::0;;;9629:9:76::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9608:31:76::1;-1:-1:-1::0;;;;;9608:31:76::1;;;;;;;;;;;;;9528:24;:35;9553:6;9560:1;9553:9;;;;;;-1:-1:-1::0;;;9553:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9528:35:76::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;9528:35:76;;;9581:10:::1;9528:77:::0;;;;;;;:111;9657:11;;9653:62:::1;;9670:45;9684:6;9691:1;9684:9;;;;;;-1:-1:-1::0;;;9684:9:76::1;;;;;;;;;;;;;;;9695:10;9707:7;9670:13;:45::i;:::-;9760:6;9767:1;9760:9;;;;;;-1:-1:-1::0;;;9760:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;9735:44:::1;::::0;9245:25:139;;;-1:-1:-1;;;;;9735:44:76;;::::1;::::0;9748:10:::1;::::0;9735:44:::1;::::0;9218:18:139;9735:44:76::1;;;;;;;-1:-1:-1::0;9229:3:76;::::1;::::0;::::1;:::i;:::-;;;;9190:600;;;-1:-1:-1::0;;1701:1:22;2628:7;:22;9114:682:76:o;17662:254::-;-1:-1:-1;;;;;17765:19:76;;17723:7;17765:19;;;:12;:19;;;;;;17746:15;:38;17742:52;;-1:-1:-1;17793:1:76;;17662:254;-1:-1:-1;17662:254:76:o;17742:52::-;-1:-1:-1;;;;;17825:19:76;;17804:18;17825:19;;;:12;:19;;;;;;:37;;17847:15;;17825:37;:::i;:::-;-1:-1:-1;;;;;17892:17:76;;;;;;-1:-1:-1;17892:17:76;;;;;;17804:58;;-1:-1:-1;17879:30:76;;17804:58;17879:30;:::i;18031:1396::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;18167:10:76;18159:33:::1;;;::::0;-1:-1:-1;;;18159:33:76;;8962:2:139;18159:33:76::1;::::0;::::1;8944:21:139::0;9001:2;8981:18;;;8974:30;-1:-1:-1;;;9020:18:139;;;9013:40;9070:18;;18159:33:76::1;8934:160:139::0;18159:33:76::1;-1:-1:-1::0;;;;;18206:17:76;::::1;;::::0;;;-1:-1:-1;18206:17:76::1;::::0;;;;;18202:97:::1;;18242:57;18273:5;18280:1;18283:15;18242:30;:57::i;:::-;18398:28;18420:5;18398:21;:28::i;:::-;-1:-1:-1::0;;;;;18323:27:76;::::1;;::::0;;;:20:::1;:27;::::0;;;;;;;18364:14:::1;:21:::0;;;;;18309:117;;;;;;;;18460:12:::1;:19:::0;;;;;18441:15:::1;:38;18437:516;;18495:59;18513:5;18520:10;18540:4;18547:6;18495:17;:59::i;:::-;18588:17;788:6;18588::::0;:17:::1;:::i;:::-;-1:-1:-1::0;;;;;18568:17:76;::::1;;::::0;;;-1:-1:-1;18568:17:76::1;::::0;;;;:37;18437:516:::1;;;-1:-1:-1::0;;;;;18657:19:76;::::1;18636:18;18657:19:::0;;;:12:::1;:19;::::0;;;;;:37:::1;::::0;18679:15:::1;::::0;18657:37:::1;:::i;:::-;-1:-1:-1::0;;;;;18737:17:76;::::1;18708:13;18737:17:::0;;;-1:-1:-1;18737:17:76::1;::::0;;;;;18636:58;;-1:-1:-1;18708:13:76;18724:30:::1;::::0;18636:58;18724:30:::1;:::i;:::-;18708:46;;18785:5;18776:6;:14;18768:40;;;::::0;-1:-1:-1;;;18768:40:76;;8620:2:139;18768:40:76::1;::::0;::::1;8602:21:139::0;8659:2;8639:18;;;8632:30;-1:-1:-1;;;8678:18:139;;;8671:43;8731:18;;18768:40:76::1;8592:163:139::0;18768:40:76::1;18822:59;18840:5;18847:10;18867:4;18874:6;18822:17;:59::i;:::-;788:6;18916:14;18925:5:::0;18916:6;:14:::1;:::i;:::-;18915:27;;;;:::i;:::-;-1:-1:-1::0;;;;;18895:17:76;::::1;;::::0;;;-1:-1:-1;18895:17:76::1;::::0;;;;:47;-1:-1:-1;;18437:516:76::1;-1:-1:-1::0;;;;;18970:17:76;::::1;18990:1;18970:17:::0;;;-1:-1:-1;18970:17:76::1;::::0;;;;;18962:48:::1;;;::::0;-1:-1:-1;;;18962:48:76;;6525:2:139;18962:48:76::1;::::0;::::1;6507:21:139::0;6564:2;6544:18;;;6537:30;-1:-1:-1;;;6583:18:139;;;6576:44;6637:18;;18962:48:76::1;6497:164:139::0;18962:48:76::1;19038:38;::::0;-1:-1:-1;;;19038:38:76;;19070:4:::1;19038:38;::::0;::::1;4846:51:139::0;19020:15:76::1;::::0;-1:-1:-1;;;;;19038:23:76;::::1;::::0;::::1;::::0;4819:18:139;;19038:38:76::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19020:56:::0;-1:-1:-1;19128:18:76::1;788:6;19020:56:::0;19128:18:::1;:::i;:::-;-1:-1:-1::0;;;;;19107:17:76;::::1;;::::0;;;-1:-1:-1;19107:17:76::1;::::0;;;;;:39:::1;;19086:110;;;::::0;-1:-1:-1;;;19086:110:76;;7216:2:139;19086:110:76::1;::::0;::::1;7198:21:139::0;7255:2;7235:18;;;7228:30;-1:-1:-1;;;7274:18:139;;;7267:54;7338:18;;19086:110:76::1;7188:174:139::0;19086:110:76::1;19228:26;788:6;19228:15;:26;:::i;:::-;-1:-1:-1::0;;;;;19206:19:76;::::1;;::::0;;;:12:::1;:19;::::0;;;;;;;:48;;;;19269:8:::1;:15:::0;;;;::::1;;19264:102;;-1:-1:-1::0;;;;;19300:15:76;::::1;;::::0;;;:8:::1;:15;::::0;;;;:22;;-1:-1:-1;;19300:22:76::1;-1:-1:-1::0;19300:22:76;;::::1;::::0;;;19336:7:::1;:19:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;19336:19:76::1;::::0;;::::1;::::0;;19264:102:::1;19381:39;::::0;;9245:25:139;;;19381:39:76;;-1:-1:-1;;;;;19381:39:76;::::1;::::0;19394:10:::1;::::0;19381:39:::1;::::0;;;;9233:2:139;19381:39:76;;::::1;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;18031:1396:76:o;9860:790::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;10019:21:76::1;::::0;;-1:-1:-1;;;10019:21:76;;;;-1:-1:-1;;;;;10019:8:76::1;:19;::::0;::::1;::::0;:21:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:19;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10005:35:76::1;:10;:35;9997:57;;;::::0;-1:-1:-1;;;9997:57:76;;::::1;::::0;::::1;;;:::i;:::-;10069:9;10064:580;10088:6;:13;10084:1;:17;10064:580;;;10231:32;10253:6;10260:1;10253:9;;;;;;-1:-1:-1::0;;;10253:9:76::1;;;;;;;;10231:32;10140:20;:31;10161:6;10168:1;10161:9;;;;;;-1:-1:-1::0;;;10161:9:76::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10140:31:76::1;-1:-1:-1::0;;;;;10140:31:76::1;;;;;;;;;;;;;10189:14;:25;10204:6;10211:1;10204:9;;;;;;-1:-1:-1::0;;;10204:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10189:25:76::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10189:25:76;;;10122:141;;;;-1:-1:-1;10122:141:76;;;;10303:9;;10296:25:::1;::::0;10303:6;;10310:1;;10303:9;::::1;;;-1:-1:-1::0;;;10303:9:76::1;;;;;;;;;;;;;;;10314:6;10296;:25::i;:::-;10278:43;;10365:15;10335:8;:19;10344:6;10351:1;10344:9;;;;;;-1:-1:-1::0;;;10344:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10335:19:76;;::::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;10335:19:76;;;:27;;::::1;::::0;;;;;;;:45;;;;10478:9;;10440:20:::1;::::0;-1:-1:-1;10478:6:76;;10485:1;;10478:9;::::1;;;-1:-1:-1::0;;;10478:9:76::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10440:61:76::1;-1:-1:-1::0;;;;;10440:61:76::1;;;;;;;;;;;;;10394:24;:35;10419:6;10426:1;10419:9;;;;;;-1:-1:-1::0;;;10419:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10394:35:76;;::::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;10394:35:76;;;:43;;::::1;::::0;;;;;;;:107;10519:11;;10515:58:::1;;10532:41;10546:6;10553:1;10546:9;;;;;;-1:-1:-1::0;;;10546:9:76::1;;;;;;;;;;;;;;;10557:6;10565:7;10532:13;:41::i;:::-;10614:6;10621:1;10614:9;;;;;;-1:-1:-1::0;;;10614:9:76::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;10593:40:::1;::::0;9245:25:139;;;-1:-1:-1;;;;;10593:40:76;;::::1;::::0;;;::::1;::::0;::::1;::::0;9218:18:139;10593:40:76::1;;;;;;;-1:-1:-1::0;10103:3:76;::::1;::::0;::::1;:::i;:::-;;;;10064:580;;;-1:-1:-1::0;;1701:1:22;2628:7;:22;-1:-1:-1;9860:790:76:o;10656:423::-;10716:7;10739:11;;10754:1;10739:16;10735:81;;;-1:-1:-1;;;;;;10778:27:76;;;;;:20;:27;;;;;;;10656:423::o;10735:81::-;11060:11;;-1:-1:-1;;;;;11011:17:76;;;;;;-1:-1:-1;11011:17:76;;;;;;;;;10948:14;:21;;;;;;10971:12;:19;;;;;;872:6;;11011:17;10939:52;;:8;:52::i;:::-;10889:31;10914:5;10889:24;:31::i;:::-;:102;;;;:::i;:::-;10888:140;;;;:::i;:::-;:168;;;;:::i;:::-;10887:184;;;;:::i;:::-;-1:-1:-1;;;;;10844:27:76;;;;;;:20;:27;;;;;;:228;;;;:::i;1320:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1320:24:76;;-1:-1:-1;1320:24:76;:::o;5291:1560::-;-1:-1:-1;;;;;5457:35:76;;5402:7;5457:35;;;:28;:35;;;;;;5402:7;;5457:35;5502:61;;5547:1;5550;5539:13;;;;;;;5502:61;-1:-1:-1;;;;;5633:32:76;;;;;;:25;:32;;;;;5709:9;;5666:16;-1:-1:-1;5666:12:76;:16;:::i;:::-;5633:50;;;;;;;;;;;:60;;;:85;5616:341;;-1:-1:-1;;;;;5768:32:76;;;;;;:25;:32;;;;;;5801:16;-1:-1:-1;5801:12:76;:16;:::i;:::-;5768:50;;;;;;;;;;;;;;-1:-1:-1;5768:50:76;;;:86;;;;;-1:-1:-1;;;;;5872:32:76;;;;:25;:32;;;;;;;5905:16;;:12;:16;:::i;:::-;5872:50;;;;;;;;;;;:60;;;5743:203;;;;;;;5616:341;-1:-1:-1;;;;;6015:32:76;;;;;;:25;:32;;;;;;;;:35;;;;;;;;:45;-1:-1:-1;;6011:101:76;;;6096:1;6099;6088:13;;;;;;;6011:101;6122:13;;6165:16;6180:1;6165:12;:16;:::i;:::-;6149:32;;6191:496;6206:5;6198;:13;6191:496;;;6227:14;6270:1;6253:13;6261:5;6253;:13;:::i;:::-;6252:19;;;;:::i;:::-;6244:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;6349:62:76;;6312:34;6349:62;;;:25;:62;;;;;;;;:70;;;;;;;;;6312:107;;;;;;;;;;;;;-1:-1:-1;6312:107:76;;;;;;;;;;;6349:70;;-1:-1:-1;6312:107:76;6437:25;;6433:244;;;6490:17;;;;6509:12;;6490:17;;-1:-1:-1;6509:12:76;-1:-1:-1;6482:40:76;;-1:-1:-1;;;;6482:40:76;6433:244;6547:12;;:24;-1:-1:-1;6543:134:76;;;6599:6;6591:14;;6543:134;;;6652:10;6661:1;6652:6;:10;:::i;:::-;6644:18;;6543:134;6191:496;;;;;-1:-1:-1;;;;;;6717:32:76;;;;;;:25;:32;;;;;;;;:39;;;;;;;-1:-1:-1;6717:54:76;;;6785:49;;6717:54;;-1:-1:-1;6785:49:76;-1:-1:-1;;5291:1560:76;;;;;;:::o;413:105:47:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:47;;490:21;-1:-1:-1;413:105:47:o;6857:530:76:-;-1:-1:-1;;;;;7002:19:76;;6932:18;7002:19;;;:14;:19;;;;;;6953:15;;7049:17;;;;;:92;;-1:-1:-1;;;;;;7082:16:76;;;;;;:11;:16;;;;;7131:10;;7099:17;-1:-1:-1;7099:13:76;:17;:::i;:::-;7082:35;;;;;;;;;;;:45;;;:59;7049:92;7032:349;;;-1:-1:-1;;;;;7166:16:76;;;;;;:11;:16;;;;;7214:7;;7183:17;-1:-1:-1;7183:13:76;:17;:::i;:::-;7166:35;;;;;;;;;;;-1:-1:-1;7166:35:76;:45;;:55;7032:349;;;7286:31;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7252:16:76;;-1:-1:-1;7252:16:76;;;:11;:16;;;;;:31;;;;;;;;;:65;;;;;;-1:-1:-1;7252:65:76;;;;7353:17;;7252:31;;7353:17;:::i;:::-;-1:-1:-1;;;;;7331:19:76;;;;;;:14;:19;;;;;:39;7032:349;6857:530;;;;:::o;8101:570::-;8178:20;;8229:15;8272:17;;;;;:93;;-1:-1:-1;8355:10:76;8305:17;:36;8323:17;8339:1;8323:13;:17;:::i;:::-;8305:36;;;;;;;;;;;:46;;;:60;8272:93;8255:410;;;8436:11;;8390:17;:36;8408:17;8424:1;8408:13;:17;:::i;:::-;8390:36;;;;;;;;;;;-1:-1:-1;8390:36:76;:43;;:57;8101:570;;:::o;8255:410::-;8513:87;;;;;;;;;;;8575:11;;8513:87;;;;;;;-1:-1:-1;8478:32:76;;;:17;:32;;;;;;;:122;;;;;;;;;;;8637:17;;8496:13;;8637:17;:::i;:::-;8614:20;:40;8101:570;;:::o;11303:1277::-;-1:-1:-1;;;;;11457:21:76;;11399:7;11457:21;;;:14;:21;;;;;;;;;11505:20;:27;;;;;;11547:20;;11399:7;;11457:21;11505:27;11543:88;;11596:6;-1:-1:-1;11604:15:76;-1:-1:-1;11588:32:76;;11543:88;-1:-1:-1;;;;;11645:17:76;;;;;;-1:-1:-1;11645:17:76;;;;;;11641:85;;11691:6;-1:-1:-1;11699:15:76;;-1:-1:-1;11683:32:76;;-1:-1:-1;11683:32:76;11641:85;11736:19;11758:36;11778:15;11758:19;:36::i;:::-;11736:58;;11804:17;11824:43;11856:1;11833:20;;:24;;;;:::i;:::-;11859:7;11824:8;:43::i;:::-;11804:63;-1:-1:-1;11895:11:76;11878:653;11912:9;11908:1;:13;11878:653;;;11942:27;11972:20;;;:17;:20;;;;;;;;;11942:50;;;;;;;;;;;;;;;;;;;;;12010:14;12006:515;;12044:27;12074:17;12044:27;12092:5;:1;12096;12092:5;:::i;:::-;12074:24;;;;;;;;;;;12044:54;;;;;;;;;;;;;;;;;;;;;;;;;;;12117:15;12134;12153:203;12194:5;12221:3;:13;;;12256:3;:13;;;12291:3;:10;;;12323:15;12153:19;:203::i;:::-;12116:240;;-1:-1:-1;12116:240:76;-1:-1:-1;12374:17:76;12116:240;12374:17;;:::i;:::-;;;12409:54;12440:5;12447:6;12455:7;12409:30;:54::i;:::-;12499:7;-1:-1:-1;;;12006:515:76;-1:-1:-1;11923:3:76;;;;:::i;:::-;;;;11878:653;;;-1:-1:-1;12549:6:76;;12557:15;;-1:-1:-1;11303:1277:76;;-1:-1:-1;;;;;11303:1277:76:o;589:104:47:-;647:7;677:1;673;:5;:13;;685:1;673:13;;13197:1885:76;-1:-1:-1;;;;;13335:21:76;;13277:7;13335:21;;;:14;:21;;;;;;;;;13383:20;:27;;;;;;13425:20;;13277:7;;13335:21;13383:27;13421:88;;13474:6;13482:15;;-1:-1:-1;13197:1885:76;-1:-1:-1;;13197:1885:76:o;13421:88::-;-1:-1:-1;;;;;13523:17:76;;;;;;-1:-1:-1;13523:17:76;;;;;;13519:85;;13569:6;13577:15;;-1:-1:-1;13197:1885:76;-1:-1:-1;;;13197:1885:76:o;13519:85::-;13614:19;13636:36;13656:15;13636:19;:36::i;:::-;13614:58;;13682:17;13725:1;13702:20;;:24;;;;:::i;:::-;13682:44;-1:-1:-1;13767:1:76;13741:23;13753:11;13682:44;13741:23;:::i;:::-;:27;13737:777;;;13801:11;13784:720;13818:13;13830:1;13818:9;:13;:::i;:::-;13814:1;:17;13784:720;;;13856:27;13886:20;;;:17;:20;;;;;;;;;13856:50;;;;;;;;;;;;;;;;;;;;;13928:14;13924:566;;13966:27;13996:17;13966:27;14014:5;:1;14018;14014:5;:::i;:::-;13996:24;;;;;;;;;;;13966:54;;;;;;;;;;;;;;;;;;;;;;;;;;;14043:15;14060:16;14080:227;14125:5;14156:3;:13;;;14195:3;:13;;;14234:3;:10;;;14270:15;14080:19;:227::i;:::-;14042:265;;-1:-1:-1;14042:265:76;-1:-1:-1;14329:17:76;14042:265;14329:17;;:::i;:::-;;;14368:55;14399:5;14406:6;14414:8;14368:30;:55::i;:::-;14463:8;-1:-1:-1;;;13924:566:76;-1:-1:-1;13833:3:76;;;;:::i;:::-;;;;13784:720;;;;13737:777;14524:26;14553:28;;;:17;:28;;;;;;;;;14524:57;;;;;;;;;;;;;;;;;;;;;14595:13;14591:442;;14625:15;14646:222;14683:5;14706:31;14731:5;14706:24;:31::i;:::-;14764:12;;14755:39;;14778:15;14755:8;:39::i;:::-;14812:2;:9;;;14839:15;14646:19;:222::i;:::-;-1:-1:-1;14624:244:76;-1:-1:-1;14882:17:76;14624:244;14882:17;;:::i;:::-;;;14913:62;14944:5;14951:6;14959:15;14913:30;:62::i;:::-;15007:15;14989:33;;14591:442;;-1:-1:-1;15051:6:76;;15059:15;;-1:-1:-1;13197:1885:76;;-1:-1:-1;;;;13197:1885:76:o;19433:441::-;-1:-1:-1;;;;;19555:17:76;;;19547:52;;;;-1:-1:-1;;;19547:52:76;;;;;;;:::i;:::-;19669:59;;;-1:-1:-1;;;;;5480:32:139;;;19669:59:76;;;5462:51:139;5529:18;;;;5522:34;;;19669:59:76;;;;;;;;;;5435:18:139;;;;19669:59:76;;;;;;;-1:-1:-1;;;;;19669:59:76;-1:-1:-1;;;19669:59:76;;;19645:93;;-1:-1:-1;;;;19645:10:76;;;;:93;;19669:59;19645:93;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19609:129;;;;19769:7;:57;;;;-1:-1:-1;19781:11:76;;:16;;:44;;;19812:4;19801:24;;;;;;;;;;;;:::i;:::-;19748:119;;;;-1:-1:-1;;;19748:119:76;;7916:2:139;19748:119:76;;;7898:21:139;7955:2;7935:18;;;7928:30;-1:-1:-1;;;7974:18:139;;;7967:45;8029:18;;19748:119:76;7888:165:139;19748:119:76;19433:441;;;;;:::o;7393:702::-;-1:-1:-1;;;;;7556:35:76;;7532:21;7556:35;;;:28;:35;;;;;;7619:17;;;;;:119;;-1:-1:-1;;;;;;7652:32:76;;;;;;:25;:32;;;;;7729:9;;7685:17;-1:-1:-1;7685:13:76;:17;:::i;:::-;7652:51;;;;;;;;;;;:61;;;:86;7619:119;7602:487;;;-1:-1:-1;;;;;7763:32:76;;;;;;:25;:32;;;;;7849:6;;7796:17;-1:-1:-1;7796:13:76;:17;:::i;7602:487::-;7966:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7886:32:76;;-1:-1:-1;7886:32:76;;;:25;:32;;;;;:77;;;;;;;;;:123;;;;;;-1:-1:-1;7886:123:76;;;;8061:17;;7886:77;;8061:17;:::i;:::-;-1:-1:-1;;;;;8023:35:76;;;;;;:28;:35;;;;;:55;7393:702;;;;:::o;19880:559::-;-1:-1:-1;;;;;20028:17:76;;;20020:52;;;;-1:-1:-1;;;20020:52:76;;;;;;;:::i;:::-;20142:147;;;-1:-1:-1;;;;;5166:15:139;;;20142:147:76;;;5148:34:139;5218:15;;;5198:18;;;5191:43;5250:18;;;;5243:34;;;20142:147:76;;;;;;;;;;5083:18:139;;;;20142:147:76;;;;;;;-1:-1:-1;;;;;20142:147:76;-1:-1:-1;;;20142:147:76;;;20118:181;;-1:-1:-1;;;;20118:10:76;;;;:181;;20142:147;20118:181;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20082:217;;;;20330:7;:57;;;;-1:-1:-1;20342:11:76;;:16;;:44;;;20373:4;20362:24;;;;;;;;;;;;:::i;:::-;20309:123;;;;-1:-1:-1;;;20309:123:76;;6868:2:139;20309:123:76;;;6850:21:139;6907:2;6887:18;;;6880:30;-1:-1:-1;;;6926:18:139;;;6919:49;6985:18;;20309:123:76;6840:169:139;20309:123:76;19880:559;;;;;;:::o;12586:605::-;12779:7;12788;12807:15;12825:36;12834:10;12846:14;12825:8;:36::i;:::-;-1:-1:-1;;;;;13097:17:76;;;;;;-1:-1:-1;13097:17:76;;;;;;12807:54;;-1:-1:-1;13146:6:76;;872;;12952:125;12982:36;12991:10;13003:14;12982:8;:36::i;:::-;-1:-1:-1;;;;;13040:19:76;;;;;;:12;:19;;;;;;12952:8;:125::i;:::-;-1:-1:-1;;;;;12913:19:76;;;;;;:12;:19;;;;;;12895:38;;12904:7;;12895:8;:38::i;:::-;:182;;;;:::i;:::-;12894:220;;;;:::i;:::-;:248;;;;:::i;:::-;12893:259;;;;:::i;:::-;12871:313;13167:7;;-1:-1:-1;12586:605:76;-1:-1:-1;;;;;;12586:605:76:o;14:134:139:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:939::-;207:5;260:3;253:4;245:6;241:17;237:27;227:2;;282:5;275;268:20;227:2;322:6;309:20;348:4;371:18;408:2;404;401:10;398:2;;;414:18;;:::i;:::-;460:2;457:1;453:10;492:2;486:9;555:2;551:7;546:2;542;538:11;534:25;526:6;522:38;610:6;598:10;595:22;590:2;578:10;575:18;572:46;569:2;;;621:18;;:::i;:::-;657:2;650:22;707:18;;;741:15;;;;-1:-1:-1;776:15:139;;;810;;;806:24;;803:33;-1:-1:-1;800:2:139;;;853:5;846;839:20;800:2;879:5;870:14;;893:169;907:2;904:1;901:9;893:169;;;964:23;983:3;964:23;:::i;:::-;952:36;;1008:12;;;;925:1;918:9;;;;;1040:12;;893:169;;;-1:-1:-1;1080:6:139;217:875;-1:-1:-1;;;;;;;217:875:139:o;1097:257::-;1156:6;1209:2;1197:9;1188:7;1184:23;1180:32;1177:2;;;1230:6;1222;1215:22;1177:2;1274:9;1261:23;1293:31;1318:5;1293:31;:::i;1359:261::-;1429:6;1482:2;1470:9;1461:7;1457:23;1453:32;1450:2;;;1503:6;1495;1488:22;1450:2;1540:9;1534:16;1559:31;1584:5;1559:31;:::i;1625:398::-;1693:6;1701;1754:2;1742:9;1733:7;1729:23;1725:32;1722:2;;;1775:6;1767;1760:22;1722:2;1819:9;1806:23;1838:31;1863:5;1838:31;:::i;:::-;1888:5;-1:-1:-1;1945:2:139;1930:18;;1917:32;1958:33;1917:32;1958:33;:::i;:::-;2010:7;2000:17;;;1712:311;;;;;:::o;2028:503::-;2121:6;2129;2182:2;2170:9;2161:7;2157:23;2153:32;2150:2;;;2203:6;2195;2188:22;2150:2;2247:9;2234:23;2266:31;2291:5;2266:31;:::i;:::-;2316:5;-1:-1:-1;2372:2:139;2357:18;;2344:32;2399:18;2388:30;;2385:2;;;2436:6;2428;2421:22;2385:2;2464:61;2517:7;2508:6;2497:9;2493:22;2464:61;:::i;:::-;2454:71;;;2140:391;;;;;:::o;2536:325::-;2604:6;2612;2665:2;2653:9;2644:7;2640:23;2636:32;2633:2;;;2686:6;2678;2671:22;2633:2;2730:9;2717:23;2749:31;2774:5;2749:31;:::i;:::-;2799:5;2851:2;2836:18;;;;2823:32;;-1:-1:-1;;;2623:238:139:o;2866:368::-;2950:6;3003:2;2991:9;2982:7;2978:23;2974:32;2971:2;;;3024:6;3016;3009:22;2971:2;3069:9;3056:23;3102:18;3094:6;3091:30;3088:2;;;3139:6;3131;3124:22;3088:2;3167:61;3220:7;3211:6;3200:9;3196:22;3167:61;:::i;:::-;3157:71;2961:273;-1:-1:-1;;;;2961:273:139:o;3239:297::-;3306:6;3359:2;3347:9;3338:7;3334:23;3330:32;3327:2;;;3380:6;3372;3365:22;3327:2;3417:9;3411:16;3470:5;3463:13;3456:21;3449:5;3446:32;3436:2;;3497:6;3489;3482:22;3541:190;3600:6;3653:2;3641:9;3632:7;3628:23;3624:32;3621:2;;;3674:6;3666;3659:22;3621:2;-1:-1:-1;3702:23:139;;3611:120;-1:-1:-1;3611:120:139:o;3736:194::-;3806:6;3859:2;3847:9;3838:7;3834:23;3830:32;3827:2;;;3880:6;3872;3865:22;3827:2;-1:-1:-1;3908:16:139;;3817:113;-1:-1:-1;3817:113:139:o;3935:325::-;4003:6;4011;4064:2;4052:9;4043:7;4039:23;4035:32;4032:2;;;4085:6;4077;4070:22;4032:2;4126:9;4113:23;4103:33;;4186:2;4175:9;4171:18;4158:32;4199:31;4224:5;4199:31;:::i;4265:430::-;4394:3;4432:6;4426:13;4457:3;4469:129;4483:6;4480:1;4477:13;4469:129;;;4581:4;4565:14;;;4561:25;;4555:32;4542:11;;;4535:53;4498:12;4469:129;;;4616:6;4613:1;4610:13;4607:2;;;4651:3;4642:6;4637:3;4633:16;4626:29;4607:2;-1:-1:-1;4673:16:139;;;;;4402:293;-1:-1:-1;;4402:293:139:o;5986:332::-;6188:2;6170:21;;;6227:1;6207:18;;;6200:29;-1:-1:-1;;;6260:2:139;6245:18;;6238:39;6309:2;6294:18;;6160:158::o;7367:342::-;7569:2;7551:21;;;7608:2;7588:18;;;7581:30;-1:-1:-1;;;7642:2:139;7627:18;;7620:48;7700:2;7685:18;;7541:168::o;8058:355::-;8260:2;8242:21;;;8299:2;8279:18;;;8272:30;8338:33;8333:2;8318:18;;8311:61;8404:2;8389:18;;8232:181::o;9534:128::-;9574:3;9605:1;9601:6;9598:1;9595:13;9592:2;;;9611:18;;:::i;:::-;-1:-1:-1;9647:9:139;;9582:80::o;9667:217::-;9707:1;9733;9723:2;;-1:-1:-1;;;9758:31:139;;9812:4;9809:1;9802:15;9840:4;9758:31;9830:15;9723:2;-1:-1:-1;9869:9:139;;9713:171::o;9889:168::-;9929:7;9995:1;9991;9987:6;9983:14;9980:1;9977:21;9972:1;9965:9;9958:17;9954:45;9951:2;;;10002:18;;:::i;:::-;-1:-1:-1;10042:9:139;;9941:116::o;10062:125::-;10102:4;10130:1;10127;10124:8;10121:2;;;10135:18;;:::i;:::-;-1:-1:-1;10172:9:139;;10111:76::o;10192:135::-;10231:3;-1:-1:-1;;10252:17:139;;10249:2;;;10272:18;;:::i;:::-;-1:-1:-1;10319:1:139;10308:13;;10239:88::o;10332:127::-;10393:10;10388:3;10384:20;10381:1;10374:31;10424:4;10421:1;10414:15;10448:4;10445:1;10438:15;10464:127;10525:10;10520:3;10516:20;10513:1;10506:31;10556:4;10553:1;10546:15;10580:4;10577:1;10570:15;10596:131;-1:-1:-1;;;;;10671:31:139;;10661:42;;10651:2;;10717:1;10714;10707:12;10651:2;10641:86;:::o"},"methodIdentifiers":{"DURATION()":"1be05289","PRECISION()":"aaf5eb68","_deposit(uint256,address)":"463cd970","_withdraw(uint256,address)":"293311ab","balanceOf(address)":"70a08231","batchRewardPerToken(address,uint256)":"5a45d052","checkpoints(address,uint256)":"0cdfebfa","earned(address,address)":"211dc32d","getPriorBalanceIndex(address,uint256)":"115c6f39","getPriorRewardPerToken(address,uint256)":"fd314098","getPriorSupplyIndex(uint256)":"76f4be36","getReward(address[])":"7fd7d062","getRewardForOwner(address,address[])":"e943da8a","isReward(address)":"4d5ce038","lastEarn(address,address)":"a495e5b5","lastTimeRewardApplicable(address)":"638634ee","lastUpdateTime(address)":"2ce9aead","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","numCheckpoints(address)":"6fcfff45","periodFinish(address)":"da09d19d","registry()":"7b103999","rewardPerToken(address)":"f1229777","rewardPerTokenCheckpoints(address,uint256)":"01316ddf","rewardPerTokenNumCheckpoints(address)":"aa479652","rewardPerTokenStored(address)":"9ce43f90","rewardRate(address)":"221ca18c","rewards(uint256)":"f301af42","rewardsListLength()":"e6886396","supplyCheckpoints(uint256)":"f7412baf","supplyNumCheckpoints()":"e8111a12","totalSupply()":"18160ddd","userRewardPerTokenStored(address,address)":"3ca068b6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DURATION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"_deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"_withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxRuns\",\"type\":\"uint256\"}],\"name\":\"batchRewardPerToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"checkpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOf\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorBalanceIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorRewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorSupplyIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getRewardForOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isReward\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastEarn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"rewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardPerTokenCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerToken\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenNumCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsListLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"supplyCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyNumCheckpoints\",\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userRewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getPriorBalanceIndex(address,uint256)\":{\"details\":\"Block number must be a finalized block or else this function will revert to prevent misinformation.\",\"params\":{\"timestamp\":\"The timestamp to get the balance at\",\"who\":\"The token of the NFT to check\"},\"returns\":{\"_0\":\"The balance the account had as of the given block\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"checkpoints(address,uint256)\":{\"notice\":\"A record of balance checkpoints for each account, by index\"},\"getPriorBalanceIndex(address,uint256)\":{\"notice\":\"Determine the prior balance for an account as of a block number\"},\"numCheckpoints(address)\":{\"notice\":\"The number of checkpoints for each account\"},\"rewardPerTokenCheckpoints(address,uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"rewardPerTokenNumCheckpoints(address)\":{\"notice\":\"The number of checkpoints for each token\"},\"supplyCheckpoints(uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"supplyNumCheckpoints()\":{\"notice\":\"The number of checkpoints\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/bribes/BaseV2Bribes.sol\":\"BaseV2Bribes\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/bribes/BaseV2Bribes.sol\":{\"keccak256\":\"0xa4a40a240592cd625d1a4e384b4d2a7876bd9db177eb51e0d0f4923994e755bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6824b71fcb693743f9450d6f55917620f37a5c7ac3067d2d45ddbb6cada63b69\",\"dweb:/ipfs/QmSkU9t5n4e9FTW16wmAynXKZdBkA3qjYsEwMqeCfNfPTX\"]},\"contracts/interfaces/IBribeV2.sol\":{\"keccak256\":\"0x741775fd0b90fab22bf36b05440bb246da6248f44634fca723bd32b07919f20a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bf5c773cd53bb0544ca70facb19205a7c7fbeeac2aa25dfda193aa957cd3f89\",\"dweb:/ipfs/QmTc8i7iXKGKX29AHW6si1Rw8PcxzJZBh9YcAC28ZTU8pY\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/bribes/BaseV2BribesFactory.sol":{"BaseV2BribesFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_bribe","type":"address"}],"name":"BribeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"name":"createBribe","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50612ca7806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636bd1a72c14610030575b600080fd5b61004361003e3660046100dc565b610059565b604051610050919061010a565b60405180910390f35b60008082604051610069906100cf565b610073919061010a565b604051809103906000f08015801561008f573d6000803e3d6000fd5b5090507fe7f31a5ff9b31d4ba882657f1def4432f7380c765ad2c85aaa7e725814b55e0a816040516100c1919061010a565b60405180910390a192915050565b612b538061011f83390190565b6000602082840312156100ed578081fd5b81356001600160a01b0381168114610103578182fd5b9392505050565b6001600160a01b039190911681526020019056fe60a06040523480156200001157600080fd5b5060405162002b5338038062002b5383398101604081905262000034916200004f565b600160005560601b6001600160601b0319166080526200007f565b60006020828403121562000061578081fd5b81516001600160a01b038116811462000078578182fd5b9392505050565b60805160601c612a92620000c1600039600081816103c901528181610959015281816109cc01528181610b4d01528181610bc0015261166d0152612a926000f3fe608060405234801561001057600080fd5b50600436106101bb5760003560e01c806376f4be36116100fa578063b66503cf1161009d578063b66503cf146104a3578063da09d19d146104b6578063e6886396146104d6578063e8111a12146104de578063e943da8a146104e7578063f1229777146104fa578063f301af421461050d578063f7412baf14610520578063fd3140981461054757600080fd5b806376f4be36146103b15780637b103999146103c45780637fd7d0621461040357806399bcc052146104165780639ce43f9014610429578063a495e5b514610449578063aa47965214610474578063aaf5eb681461049457600080fd5b80632ce9aead116101625780632ce9aead146102ba5780633ca068b6146102da578063463cd970146103055780634d5ce038146103185780635a45d0521461034b578063638634ee1461035e5780636fcfff451461037157806370a082311461039157600080fd5b806301316ddf146101c05780630cdfebfa1461020c578063115c6f391461023e57806318160ddd1461025f5780631be0528914610268578063211dc32d14610272578063221ca18c14610285578063293311ab146102a5575b600080fd5b6101f26101ce3660046127dd565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101f261021a3660046127dd565b600b6020908152600092835260408084209091529082529020805460019091015482565b61025161024c3660046127dd565b61055a565b604051908152602001610203565b61025160095481565b61025162093a8081565b610251610280366004612757565b6106c7565b61025161029336600461271f565b60016020526000908152604090205481565b6102b86102b3366004612893565b610957565b005b6102516102c836600461271f565b60036020526000908152604090205481565b6102516102e8366004612757565b600660209081526000928352604080842090915290825290205481565b6102b8610313366004612893565b610b4b565b61033b61032636600461271f565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b6102b86103593660046127dd565b610d2a565b61025161036c36600461271f565b610d62565b61025161037f36600461271f565b600c6020526000908152604090205481565b61025161039f36600461271f565b600a6020526000908152604090205481565b6102516103bf366004612863565b610d86565b6103eb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102b8610411366004612808565b610eb8565b61025161042436600461271f565b6111d7565b61025161043736600461271f565b60046020526000908152604090205481565b610251610457366004612757565b600560209081526000928352604080842090915290825290205481565b61025161048236600461271f565b60106020526000908152604090205481565b610251670de0b6b3a764000081565b6102b86104b13660046127dd565b611248565b6102516104c436600461271f565b60026020526000908152604090205481565b600754610251565b610251600e5481565b6102b86104f536600461278f565b611640565b61025161050836600461271f565b611a1b565b6103eb61051b366004612863565b611adb565b6101f261052e366004612863565b600d602052600090815260409020805460019091015482565b6101f26105553660046127dd565b611b05565b6001600160a01b0382166000908152600c6020526040812054806105825760009150506106c1565b6001600160a01b0384166000908152600b6020526040812084916105a76001856129e6565b815260200190815260200160002060000154116105d1576105c96001826129e6565b9150506106c1565b6001600160a01b0384166000908152600b602090815260408083208380529091529020548310156106065760009150506106c1565b6000806106146001846129e6565b90505b818111156106bc576000600261062d84846129e6565b61063791906129a7565b61064190836129e6565b6001600160a01b0388166000908152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610696575093506106c192505050565b80518711156106a7578193506106b5565b6106b26001836129e6565b92505b5050610617565b509150505b92915050565b6001600160a01b038083166000818152600560209081526040808320948616835293815283822054928252600f8152838220828052905291822054829161070d91611d24565b6001600160a01b0384166000908152600c60205260409020549091506107375760009150506106c1565b6000610743848361055a565b6001600160a01b0385166000908152600c60205260408120549192509061076c906001906129e6565b90506000600161077c84846129e6565b111561088b57825b61078f6001846129e6565b811015610889576001600160a01b0387166000818152600b6020818152604080842086855280835281852082518084019093528054835260019081015483850152958552929091529282906107e590869061298f565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006108248b8460000151611b05565b50905060006108378c8460000151611b05565b509050670de0b6b3a764000061084d83836129e6565b856020015161085c91906129c7565b61086691906129a7565b610870908761298f565b9550505050508080610881906129fd565b915050610784565b505b6001600160a01b0386166000908152600b602090815260408083208584528252808320815180830190925280548083526001909101549282019290925291906108d5908a90611b05565b506001600160a01b03808b166000908152600660209081526040808320938d1683529290522054909150670de0b6b3a764000090610914908390611d24565b61091d8b611a1b565b61092791906129e6565b836020015161093691906129c7565b61094091906129a7565b61094a908461298f565b9998505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109b257600080fd5b505af11580156109c6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b919061273b565b6001600160a01b0316336001600160a01b031614610a945760405162461bcd60e51b8152600401610a8b90612909565b60405180910390fd5b8160096000828254610aa691906129e6565b90915550506001600160a01b0381166000908152600a602052604081208054849290610ad39084906129e6565b90915550506001600160a01b0381166000908152600a6020526040902054610afc908290611d3b565b610b04611e46565b336001600160a01b03167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8284604051610b3f9291906128f0565b60405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f919061273b565b6001600160a01b0316336001600160a01b031614610c7f5760405162461bcd60e51b8152600401610a8b90612909565b8160096000828254610c91919061298f565b90915550506001600160a01b0381166000908152600a602052604081208054849290610cbe90849061298f565b90915550506001600160a01b0381166000908152600a6020526040902054610ce7908290611d3b565b610cef611e46565b336001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f628284604051610b3f9291906128f0565b610d348282611eea565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546106c1904290612049565b600e5460009080610d9a5750600092915050565b82600d6000610daa6001856129e6565b81526020019081526020016000206000015411610dd357610dcc6001826129e6565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee54831015610e0e5750600092915050565b600080610e1c6001846129e6565b90505b81811115610eb05760006002610e3584846129e6565b610e3f91906129a7565b610e4990836129e6565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610e8a575095945050505050565b8051871115610e9b57819350610ea9565b610ea66001836129e6565b92505b5050610e1f565b509392505050565b60026000541415610edb5760405162461bcd60e51b8152600401610a8b90612958565b600260009081555b81518110156111ce57610f1c828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6020026020010151612058565b60046000858581518110610f4057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110610f8e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff7838381518110610fe957634e487b7160e01b600052603260045260246000fd5b6020026020010151336106c7565b9050426005600085858151811061101e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000336001600160a01b03166001600160a01b03168152602001908152602001600020819055506004600084848151811061109157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008585815181106110de57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812033825290925290205580156111475761114783838151811061113857634e487b7160e01b600052603260045260246000fd5b6020026020010151338361223b565b82828151811061116757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516111b391815260200190565b60405180910390a350806111c6816129fd565b915050610ee3565b50506001600055565b6001600160a01b03811660009081526002602052604081205442106111fe57506000919050565b6001600160a01b0382166000908152600260205260408120546112229042906129e6565b6001600160a01b038416600090815260016020526040902054909150610dcc90826129c7565b6002600054141561126b5760405162461bcd60e51b8152600401610a8b90612958565b6002600055806112aa5760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610a8b565b6001600160a01b0382166000908152600160205260409020546112d3576112d38260004261237c565b6112dc82612058565b6001600160a01b038416600090815260046020908152604080832060038352818420949094559390925560029091522054421061134a5761131f8233308461246b565b61132c62093a80826129a7565b6001600160a01b038316600090815260016020526040902055611416565b6001600160a01b03821660009081526002602052604081205461136e9042906129e6565b6001600160a01b0384166000908152600160205260408120549192509061139590836129c7565b90508083116113d65760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610a8b565b6113e28433308661246b565b62093a806113f0828561298f565b6113fa91906129a7565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b03821660009081526001602052604090205461146c5760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610a8b565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b1580156114ae57600080fd5b505afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e6919061287b565b90506114f562093a80826129a7565b6001600160a01b03841660009081526001602052604090205411156115575760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610a8b565b61156462093a804261298f565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff166115f6576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b600260005414156116635760405162461bcd60e51b8152600401610a8b90612958565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fc919061273b565b6001600160a01b0316336001600160a01b03161461172c5760405162461bcd60e51b8152600401610a8b90612909565b60005b8151811015611a115761175b828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6004600085858151811061177f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000600360008787815181106117cd57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000849190505583919050555050600061183683838151811061182857634e487b7160e01b600052603260045260246000fd5b6020026020010151856106c7565b9050426005600085858151811061185d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550600460008484815181106118d057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546006600085858151811061191d57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03908116835282820193909352604091820160009081209389168152929052902055801561198a5761198a83838151811061197b57634e487b7160e01b600052603260045260246000fd5b6020026020010151858361223b565b8282815181106119aa57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316846001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516119f691815260200190565b60405180910390a35080611a09816129fd565b91505061172f565b5050600160005550565b600060095460001415611a4457506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a76400009291611a8791612049565b611a9086610d62565b611a9a91906129e6565b611aa491906129c7565b611aae91906129c7565b611ab891906129a7565b6001600160a01b0383166000908152600460205260409020546106c1919061298f565b60078181548110611aeb57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038216600090815260106020526040812054819080611b32576000809250925050611d1d565b6001600160a01b0385166000908152600f602052604081208591611b576001856129e6565b81526020019081526020016000206000015411611bf4576001600160a01b0385166000908152600f6020526040812090611b926001846129e6565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611bd891906129e6565b8152602001908152602001600020600001549250925050611d1d565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611c2c576000809250925050611d1d565b600080611c3a6001846129e6565b90505b81811115611cec5760006002611c5384846129e6565b611c5d91906129a7565b611c6790836129e6565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611cc657602081015190519096509450611d1d9350505050565b8051881115611cd757819350611ce5565b611ce26001836129e6565b92505b5050611c3d565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611d345781610dcc565b5090919050565b6001600160a01b0382166000908152600c602052604090205442908015801590611d9957506001600160a01b0384166000908152600b602052604081208391611d856001856129e6565b815260200190815260200160002060000154145b15611ddc576001600160a01b0384166000908152600b602052604081208491611dc36001856129e6565b8152602081019190915260400160002060010155611e40565b60408051808201825283815260208082018681526001600160a01b0388166000908152600b8352848120868252909252929020905181559051600191820155611e2690829061298f565b6001600160a01b0385166000908152600c60205260409020555b50505050565b600e54428115801590611e78575080600d6000611e646001866129e6565b815260200190815260200160002060000154145b15611ea757600954600d6000611e8f6001866129e6565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d90915292909220905181559051600191820155611ee390839061298f565b600e555050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f225792509050611d1d565b6001600160a01b038616600090815260016020526040902054611f4b579250429150611d1d9050565b6000611f5683610d86565b90506000611f726001600e54611f6c91906129e6565b88612049565b9050815b8181101561203a576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612027576000600d81611fbb85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120068d8460000151866000015187602001518d6125af565b9092509050612015828961298f565b97506120228d898361237c565b975050505b5080612032816129fd565b915050611f76565b50919792965091945050505050565b6000818310611d345781610dcc565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e54839291906120905794909350915050565b6001600160a01b0385166000908152600160205260409020546120b7579442945092505050565b60006120c283610d86565b905060006001600e546120d591906129e6565b905060016120e383836129e6565b11156121bb57815b6120f66001836129e6565b8110156121b9576000818152600d602090815260409182902082518084019093528054835260010154908201819052156121a6576000600d8161213a85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806121858c8460000151866000015187602001518d6125af565b9092509050612194828961298f565b97506121a18c898361237c565b975050505b50806121b1816129fd565b9150506120eb565b505b6000818152600d6020908152604091829020825180840190935280548352600101549082018190521561222d57600061220e896121f78b610d62565b8451612203908a611d24565b85602001518a6125af565b50905061221b818661298f565b945061222889864261237c565b429550505b509196929550919350505050565b6000836001600160a01b03163b116122655760405162461bcd60e51b8152600401610a8b9061292c565b600080846001600160a01b031663a9059cbb60e01b858560405160240161228d9291906128f0565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516122cb91906128b7565b6000604051808303816000865af19150503d8060008114612308576040519150601f19603f3d011682016040523d82523d6000602084013e61230d565b606091505b50915091508180156123375750805115806123375750808060200190518101906123379190612843565b6123755760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610a8b565b5050505050565b6001600160a01b03831660009081526010602052604090205480158015906123d857506001600160a01b0384166000908152600f6020526040812083916123c46001856129e6565b815260200190815260200160002060000154145b15612402576001600160a01b0384166000908152600f602052604081208491611dc36001856129e6565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f835284812086825290925292902090518155905160019182015561244c90829061298f565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116124955760405162461bcd60e51b8152600401610a8b9061292c565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916124f991906128b7565b6000604051808303816000865af19150503d8060008114612536576040519150601f19603f3d011682016040523d82523d6000602084013e61253b565b606091505b50915091508180156125655750805115806125655750808060200190518101906125659190612843565b6125a75760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610a8b565b505050505050565b60008060006125be8785611d24565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906126116125f38a89611d24565b6001600160a01b038d16600090815260026020526040902054612049565b6001600160a01b038c16600090815260026020526040902054612635908690612049565b61263f91906129e6565b61264991906129c7565b61265391906129c7565b61265d91906129a7565b9890975095505050505050565b803561267581612a44565b919050565b600082601f83011261268a578081fd5b8135602067ffffffffffffffff808311156126a7576126a7612a2e565b8260051b604051601f19603f830116810181811084821117156126cc576126cc612a2e565b604052848152838101925086840182880185018910156126ea578687fd5b8692505b85831015612713576126ff8161266a565b8452928401926001929092019184016126ee565b50979650505050505050565b600060208284031215612730578081fd5b8135610dcc81612a44565b60006020828403121561274c578081fd5b8151610dcc81612a44565b60008060408385031215612769578081fd5b823561277481612a44565b9150602083013561278481612a44565b809150509250929050565b600080604083850312156127a1578182fd5b82356127ac81612a44565b9150602083013567ffffffffffffffff8111156127c7578182fd5b6127d38582860161267a565b9150509250929050565b600080604083850312156127ef578182fd5b82356127fa81612a44565b946020939093013593505050565b600060208284031215612819578081fd5b813567ffffffffffffffff81111561282f578182fd5b61283b8482850161267a565b949350505050565b600060208284031215612854578081fd5b81518015158114610dcc578182fd5b600060208284031215612874578081fd5b5035919050565b60006020828403121561288c578081fd5b5051919050565b600080604083850312156128a5578182fd5b82359150602083013561278481612a44565b60008251815b818110156128d757602081860181015185830152016128bd565b818111156128e55782828501525b509190910192915050565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082198211156129a2576129a2612a18565b500190565b6000826129c257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129e1576129e1612a18565b500290565b6000828210156129f8576129f8612a18565b500390565b6000600019821415612a1157612a11612a18565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612a5957600080fd5b5056fea26469706673582212207d22301ea35e36ebb4dabfaf0071b585c532867c2ab545fdec36171f0925794264736f6c63430008040033a26469706673582212204bc736e6c8109f702e1e3c49e5db1429f8d2a92c7e4d17af5913aa25cf84862864736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CA7 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BD1A72C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xDC JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x69 SWAP1 PUSH2 0xCF JUMP JUMPDEST PUSH2 0x73 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH32 0xE7F31A5FF9B31D4BA882657F1DEF4432F7380C765AD2C85AAA7E725814B55E0A DUP2 PUSH1 0x40 MLOAD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B53 DUP1 PUSH2 0x11F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xED JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x103 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2B53 CODESIZE SUB DUP1 PUSH3 0x2B53 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x61 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x78 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x2A92 PUSH3 0xC1 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3C9 ADD MSTORE DUP2 DUP2 PUSH2 0x959 ADD MSTORE DUP2 DUP2 PUSH2 0x9CC ADD MSTORE DUP2 DUP2 PUSH2 0xB4D ADD MSTORE DUP2 DUP2 PUSH2 0xBC0 ADD MSTORE PUSH2 0x166D ADD MSTORE PUSH2 0x2A92 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xB66503CF GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x4B6 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4DE JUMPI DUP1 PUSH4 0xE943DA8A EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x7FD7D062 EQ PUSH2 0x403 JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x474 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2CE9AEAD GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x463CD970 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x371 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x293311AB EQ PUSH2 0x2A5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F2 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x251 PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x33B PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x251 PUSH2 0x36C CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x37F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x39F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3BF CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0xD86 JUMP JUMPDEST PUSH2 0x3EB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x411 CALLDATASIZE PUSH1 0x4 PUSH2 0x2808 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x424 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x437 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x457 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x482 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1248 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x4C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x251 JUMP JUMPDEST PUSH2 0x251 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x278F JUMP JUMPDEST PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x3EB PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0x1ADB JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1B05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x582 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x5A7 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x5D1 JUMPI PUSH2 0x5C9 PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x62D DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x637 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x641 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x696 JUMPI POP SWAP4 POP PUSH2 0x6C1 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x6A7 JUMPI DUP2 SWAP4 POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x6B2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x617 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0xF DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x70D SWAP2 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x737 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x743 DUP5 DUP4 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x76C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x77C DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x88B JUMPI DUP3 JUMPDEST PUSH2 0x78F PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x889 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x7E5 SWAP1 DUP7 SWAP1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x824 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x837 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x84D DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x85C SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x870 SWAP1 DUP8 PUSH2 0x298F JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x881 SWAP1 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x784 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x8D5 SWAP1 DUP11 SWAP1 PUSH2 0x1B05 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x914 SWAP1 DUP4 SWAP1 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x91D DUP12 PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x927 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x936 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x94A SWAP1 DUP5 PUSH2 0x298F JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA5B SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xAA6 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xAD3 SWAP1 DUP5 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xAFC SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xB04 PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9B1BFA7FA9EE420A16E124F794C35AC9F90472ACC99140EB2F6447C714CAD8EB DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC4F SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC91 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xCBE SWAP1 DUP5 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCE7 SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xCEF PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5548C837AB068CF56A2C2479DF0882A4922FD203EDB7517321831D95078C5F62 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH2 0xD34 DUP3 DUP3 PUSH2 0x1EEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6C1 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0xD9A JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0xDAA PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xDD3 JUMPI PUSH2 0xDCC PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0xE0E JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE1C PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xEB0 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xE35 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE3F SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xE49 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xE8A JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xE9B JUMPI DUP2 SWAP4 POP PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0xEA6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xE1F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xEDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 DUP2 SSTORE JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x11CE JUMPI PUSH2 0xF1C DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF40 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF8E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF7 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x101E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1091 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10DE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 CALLER DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1147 JUMPI PUSH2 0x1147 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1138 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1167 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11B3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11C6 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEE3 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x11FE JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1222 SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0xDCC SWAP1 DUP3 PUSH2 0x29C7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x126B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x12AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x12D3 JUMPI PUSH2 0x12D3 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST PUSH2 0x12DC DUP3 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x134A JUMPI PUSH2 0x131F DUP3 CALLER ADDRESS DUP5 PUSH2 0x246B JUMP JUMPDEST PUSH2 0x132C PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x136E SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1395 SWAP1 DUP4 PUSH2 0x29C7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x13D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x13E2 DUP5 CALLER ADDRESS DUP7 PUSH2 0x246B JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x13F0 DUP3 DUP6 PUSH2 0x298F JUMP JUMPDEST PUSH2 0x13FA SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x146C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E6 SWAP2 SWAP1 PUSH2 0x287B JUMP JUMPDEST SWAP1 POP PUSH2 0x14F5 PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1557 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x1564 PUSH3 0x93A80 TIMESTAMP PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x15F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1663 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16FC SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x172C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x175B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x177F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x17CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1836 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1828 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x185D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x191D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x198A JUMPI PUSH2 0x198A DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x197B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19F6 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1A09 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x172F JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1A44 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1A87 SWAP2 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x1A90 DUP7 PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x1A9A SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1AA4 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AAE SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AB8 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6C1 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1AEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1B57 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1BF4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1B92 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1BD8 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1C2C JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C3A PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1C53 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1C5D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x1C67 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1CC6 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1D1D SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1CD7 JUMPI DUP2 SWAP4 POP PUSH2 0x1CE5 JUMP JUMPDEST PUSH2 0x1CE2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1C3D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1D99 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x1D85 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1DDC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x1E40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1E26 SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1E78 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x1E64 PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1EA7 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x1E8F PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1EE3 SWAP1 DUP4 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F22 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F4B JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1D1D SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F56 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F72 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP9 PUSH2 0x2049 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x203A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2027 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FBB DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2006 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2015 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x2022 DUP14 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2032 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F76 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2090 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x20B7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C2 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x20D5 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x20E3 DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x21BB JUMPI DUP2 JUMPDEST PUSH2 0x20F6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x21B9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x21A6 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x213A DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2185 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2194 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x21A1 DUP13 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x21B1 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x20EB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x222D JUMPI PUSH1 0x0 PUSH2 0x220E DUP10 PUSH2 0x21F7 DUP12 PUSH2 0xD62 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2203 SWAP1 DUP11 PUSH2 0x1D24 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x25AF JUMP JUMPDEST POP SWAP1 POP PUSH2 0x221B DUP2 DUP7 PUSH2 0x298F JUMP JUMPDEST SWAP5 POP PUSH2 0x2228 DUP10 DUP7 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2265 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x228D SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x22CB SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2308 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x230D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2337 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2337 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2337 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x2375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x23D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x23C4 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2402 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x244C SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2495 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x24F9 SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2536 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x253B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2565 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2565 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2565 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x25A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x25BE DUP8 DUP6 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2611 PUSH2 0x25F3 DUP11 DUP10 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2635 SWAP1 DUP7 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x263F SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x2649 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x2653 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x265D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2675 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x268A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x26A7 JUMPI PUSH2 0x26A7 PUSH2 0x2A2E JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x26CC JUMPI PUSH2 0x26CC PUSH2 0x2A2E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP5 DUP2 MSTORE DUP4 DUP2 ADD SWAP3 POP DUP7 DUP5 ADD DUP3 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x26EA JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0x2713 JUMPI PUSH2 0x26FF DUP2 PUSH2 0x266A JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 DUP5 ADD PUSH2 0x26EE JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2730 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x274C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2769 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2774 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A1 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27AC DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27C7 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x27D3 DUP6 DUP3 DUP7 ADD PUSH2 0x267A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27FA DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2819 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x283B DUP5 DUP3 DUP6 ADD PUSH2 0x267A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2854 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xDCC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2874 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x288C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28A5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x28D7 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x28BD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x28E5 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x29A2 JUMPI PUSH2 0x29A2 PUSH2 0x2A18 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x29E1 JUMPI PUSH2 0x29E1 PUSH2 0x2A18 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x29F8 JUMPI PUSH2 0x29F8 PUSH2 0x2A18 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2A11 JUMPI PUSH2 0x2A11 PUSH2 0x2A18 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2A59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH30 0x22301EA35E36EBB4DABFAF0071B585C532867C2AB545FDEC36171F092579 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xC7 CALLDATASIZE 0xE6 0xC8 LT SWAP16 PUSH17 0x2E1E3C49E5DB1429F8D2A92C7E4D17AF59 SGT 0xAA 0x25 0xCF DUP5 DUP7 0x28 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"170:283:77:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:530:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:236:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulVariableDeclaration","src":"165:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:139"},"nodeType":"YulFunctionCall","src":"178:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"264:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"273:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"281:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"266:6:139"},"nodeType":"YulFunctionCall","src":"266:22:139"},"nodeType":"YulExpressionStatement","src":"266:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"234:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"249:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"254:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"245:3:139"},"nodeType":"YulFunctionCall","src":"245:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"241:3:139"},"nodeType":"YulFunctionCall","src":"241:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"230:3:139"},"nodeType":"YulFunctionCall","src":"230:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"220:2:139"},"nodeType":"YulFunctionCall","src":"220:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"213:6:139"},"nodeType":"YulFunctionCall","src":"213:50:139"},"nodeType":"YulIf","src":"210:2:139"},{"nodeType":"YulAssignment","src":"299:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"309:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"299:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:306:139"},{"body":{"nodeType":"YulBlock","src":"426:102:139","statements":[{"nodeType":"YulAssignment","src":"436:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"448:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"459:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"444:3:139"},"nodeType":"YulFunctionCall","src":"444:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"436:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"478:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"493:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"509:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"514:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"505:3:139"},"nodeType":"YulFunctionCall","src":"505:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"518:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"501:3:139"},"nodeType":"YulFunctionCall","src":"501:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"489:3:139"},"nodeType":"YulFunctionCall","src":"489:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"471:6:139"},"nodeType":"YulFunctionCall","src":"471:51:139"},"nodeType":"YulExpressionStatement","src":"471:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"395:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"406:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"417:4:139","type":""}],"src":"325:203:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80636bd1a72c14610030575b600080fd5b61004361003e3660046100dc565b610059565b604051610050919061010a565b60405180910390f35b60008082604051610069906100cf565b610073919061010a565b604051809103906000f08015801561008f573d6000803e3d6000fd5b5090507fe7f31a5ff9b31d4ba882657f1def4432f7380c765ad2c85aaa7e725814b55e0a816040516100c1919061010a565b60405180910390a192915050565b612b538061011f83390190565b6000602082840312156100ed578081fd5b81356001600160a01b0381168114610103578182fd5b9392505050565b6001600160a01b039190911681526020019056fe60a06040523480156200001157600080fd5b5060405162002b5338038062002b5383398101604081905262000034916200004f565b600160005560601b6001600160601b0319166080526200007f565b60006020828403121562000061578081fd5b81516001600160a01b038116811462000078578182fd5b9392505050565b60805160601c612a92620000c1600039600081816103c901528181610959015281816109cc01528181610b4d01528181610bc0015261166d0152612a926000f3fe608060405234801561001057600080fd5b50600436106101bb5760003560e01c806376f4be36116100fa578063b66503cf1161009d578063b66503cf146104a3578063da09d19d146104b6578063e6886396146104d6578063e8111a12146104de578063e943da8a146104e7578063f1229777146104fa578063f301af421461050d578063f7412baf14610520578063fd3140981461054757600080fd5b806376f4be36146103b15780637b103999146103c45780637fd7d0621461040357806399bcc052146104165780639ce43f9014610429578063a495e5b514610449578063aa47965214610474578063aaf5eb681461049457600080fd5b80632ce9aead116101625780632ce9aead146102ba5780633ca068b6146102da578063463cd970146103055780634d5ce038146103185780635a45d0521461034b578063638634ee1461035e5780636fcfff451461037157806370a082311461039157600080fd5b806301316ddf146101c05780630cdfebfa1461020c578063115c6f391461023e57806318160ddd1461025f5780631be0528914610268578063211dc32d14610272578063221ca18c14610285578063293311ab146102a5575b600080fd5b6101f26101ce3660046127dd565b600f6020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101f261021a3660046127dd565b600b6020908152600092835260408084209091529082529020805460019091015482565b61025161024c3660046127dd565b61055a565b604051908152602001610203565b61025160095481565b61025162093a8081565b610251610280366004612757565b6106c7565b61025161029336600461271f565b60016020526000908152604090205481565b6102b86102b3366004612893565b610957565b005b6102516102c836600461271f565b60036020526000908152604090205481565b6102516102e8366004612757565b600660209081526000928352604080842090915290825290205481565b6102b8610313366004612893565b610b4b565b61033b61032636600461271f565b60086020526000908152604090205460ff1681565b6040519015158152602001610203565b6102b86103593660046127dd565b610d2a565b61025161036c36600461271f565b610d62565b61025161037f36600461271f565b600c6020526000908152604090205481565b61025161039f36600461271f565b600a6020526000908152604090205481565b6102516103bf366004612863565b610d86565b6103eb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610203565b6102b8610411366004612808565b610eb8565b61025161042436600461271f565b6111d7565b61025161043736600461271f565b60046020526000908152604090205481565b610251610457366004612757565b600560209081526000928352604080842090915290825290205481565b61025161048236600461271f565b60106020526000908152604090205481565b610251670de0b6b3a764000081565b6102b86104b13660046127dd565b611248565b6102516104c436600461271f565b60026020526000908152604090205481565b600754610251565b610251600e5481565b6102b86104f536600461278f565b611640565b61025161050836600461271f565b611a1b565b6103eb61051b366004612863565b611adb565b6101f261052e366004612863565b600d602052600090815260409020805460019091015482565b6101f26105553660046127dd565b611b05565b6001600160a01b0382166000908152600c6020526040812054806105825760009150506106c1565b6001600160a01b0384166000908152600b6020526040812084916105a76001856129e6565b815260200190815260200160002060000154116105d1576105c96001826129e6565b9150506106c1565b6001600160a01b0384166000908152600b602090815260408083208380529091529020548310156106065760009150506106c1565b6000806106146001846129e6565b90505b818111156106bc576000600261062d84846129e6565b61063791906129a7565b61064190836129e6565b6001600160a01b0388166000908152600b60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090871415610696575093506106c192505050565b80518711156106a7578193506106b5565b6106b26001836129e6565b92505b5050610617565b509150505b92915050565b6001600160a01b038083166000818152600560209081526040808320948616835293815283822054928252600f8152838220828052905291822054829161070d91611d24565b6001600160a01b0384166000908152600c60205260409020549091506107375760009150506106c1565b6000610743848361055a565b6001600160a01b0385166000908152600c60205260408120549192509061076c906001906129e6565b90506000600161077c84846129e6565b111561088b57825b61078f6001846129e6565b811015610889576001600160a01b0387166000818152600b6020818152604080842086855280835281852082518084019093528054835260019081015483850152958552929091529282906107e590869061298f565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006108248b8460000151611b05565b50905060006108378c8460000151611b05565b509050670de0b6b3a764000061084d83836129e6565b856020015161085c91906129c7565b61086691906129a7565b610870908761298f565b9550505050508080610881906129fd565b915050610784565b505b6001600160a01b0386166000908152600b602090815260408083208584528252808320815180830190925280548083526001909101549282019290925291906108d5908a90611b05565b506001600160a01b03808b166000908152600660209081526040808320938d1683529290522054909150670de0b6b3a764000090610914908390611d24565b61091d8b611a1b565b61092791906129e6565b836020015161093691906129c7565b61094091906129a7565b61094a908461298f565b9998505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109b257600080fd5b505af11580156109c6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b919061273b565b6001600160a01b0316336001600160a01b031614610a945760405162461bcd60e51b8152600401610a8b90612909565b60405180910390fd5b8160096000828254610aa691906129e6565b90915550506001600160a01b0381166000908152600a602052604081208054849290610ad39084906129e6565b90915550506001600160a01b0381166000908152600a6020526040902054610afc908290611d3b565b610b04611e46565b336001600160a01b03167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8284604051610b3f9291906128f0565b60405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f919061273b565b6001600160a01b0316336001600160a01b031614610c7f5760405162461bcd60e51b8152600401610a8b90612909565b8160096000828254610c91919061298f565b90915550506001600160a01b0381166000908152600a602052604081208054849290610cbe90849061298f565b90915550506001600160a01b0381166000908152600a6020526040902054610ce7908290611d3b565b610cef611e46565b336001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f628284604051610b3f9291906128f0565b610d348282611eea565b6001600160a01b03909316600090815260046020908152604080832060039092529091209390935590915550565b6001600160a01b0381166000908152600260205260408120546106c1904290612049565b600e5460009080610d9a5750600092915050565b82600d6000610daa6001856129e6565b81526020019081526020016000206000015411610dd357610dcc6001826129e6565b9392505050565b60008052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee54831015610e0e5750600092915050565b600080610e1c6001846129e6565b90505b81811115610eb05760006002610e3584846129e6565b610e3f91906129a7565b610e4990836129e6565b6000818152600d6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415610e8a575095945050505050565b8051871115610e9b57819350610ea9565b610ea66001836129e6565b92505b5050610e1f565b509392505050565b60026000541415610edb5760405162461bcd60e51b8152600401610a8b90612958565b600260009081555b81518110156111ce57610f1c828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6020026020010151612058565b60046000858581518110610f4057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060036000878781518110610f8e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610ff7838381518110610fe957634e487b7160e01b600052603260045260246000fd5b6020026020010151336106c7565b9050426005600085858151811061101e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000336001600160a01b03166001600160a01b03168152602001908152602001600020819055506004600084848151811061109157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600660008585815181106110de57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812033825290925290205580156111475761114783838151811061113857634e487b7160e01b600052603260045260246000fd5b6020026020010151338361223b565b82828151811061116757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516111b391815260200190565b60405180910390a350806111c6816129fd565b915050610ee3565b50506001600055565b6001600160a01b03811660009081526002602052604081205442106111fe57506000919050565b6001600160a01b0382166000908152600260205260408120546112229042906129e6565b6001600160a01b038416600090815260016020526040902054909150610dcc90826129c7565b6002600054141561126b5760405162461bcd60e51b8152600401610a8b90612958565b6002600055806112aa5760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b6044820152606401610a8b565b6001600160a01b0382166000908152600160205260409020546112d3576112d38260004261237c565b6112dc82612058565b6001600160a01b038416600090815260046020908152604080832060038352818420949094559390925560029091522054421061134a5761131f8233308461246b565b61132c62093a80826129a7565b6001600160a01b038316600090815260016020526040902055611416565b6001600160a01b03821660009081526002602052604081205461136e9042906129e6565b6001600160a01b0384166000908152600160205260408120549192509061139590836129c7565b90508083116113d65760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f081b19599d609a1b6044820152606401610a8b565b6113e28433308661246b565b62093a806113f0828561298f565b6113fa91906129a7565b6001600160a01b03851660009081526001602052604090205550505b6001600160a01b03821660009081526001602052604090205461146c5760405162461bcd60e51b815260206004820152600e60248201526d072657761726452617465203d20360941b6044820152606401610a8b565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b1580156114ae57600080fd5b505afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e6919061287b565b90506114f562093a80826129a7565b6001600160a01b03841660009081526001602052604090205411156115575760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610a8b565b61156462093a804261298f565b6001600160a01b03841660009081526002602090815260408083209390935560089052205460ff166115f6576001600160a01b0383166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160005550565b600260005414156116635760405162461bcd60e51b8152600401610a8b90612958565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fc919061273b565b6001600160a01b0316336001600160a01b03161461172c5760405162461bcd60e51b8152600401610a8b90612909565b60005b8151811015611a115761175b828281518110610f0f57634e487b7160e01b600052603260045260246000fd5b6004600085858151811061177f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000600360008787815181106117cd57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000849190505583919050555050600061183683838151811061182857634e487b7160e01b600052603260045260246000fd5b6020026020010151856106c7565b9050426005600085858151811061185d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550600460008484815181106118d057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020546006600085858151811061191d57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03908116835282820193909352604091820160009081209389168152929052902055801561198a5761198a83838151811061197b57634e487b7160e01b600052603260045260246000fd5b6020026020010151858361223b565b8282815181106119aa57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316846001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc9836040516119f691815260200190565b60405180910390a35080611a09816129fd565b91505061172f565b5050600160005550565b600060095460001415611a4457506001600160a01b031660009081526004602052604090205490565b6009546001600160a01b03831660009081526001602090815260408083205460038352818420546002909352922054670de0b6b3a76400009291611a8791612049565b611a9086610d62565b611a9a91906129e6565b611aa491906129c7565b611aae91906129c7565b611ab891906129a7565b6001600160a01b0383166000908152600460205260409020546106c1919061298f565b60078181548110611aeb57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b038216600090815260106020526040812054819080611b32576000809250925050611d1d565b6001600160a01b0385166000908152600f602052604081208591611b576001856129e6565b81526020019081526020016000206000015411611bf4576001600160a01b0385166000908152600f6020526040812090611b926001846129e6565b815260200190815260200160002060010154600f6000876001600160a01b03166001600160a01b031681526020019081526020016000206000600184611bd891906129e6565b8152602001908152602001600020600001549250925050611d1d565b6001600160a01b0385166000908152600f60209081526040808320838052909152902054841015611c2c576000809250925050611d1d565b600080611c3a6001846129e6565b90505b81811115611cec5760006002611c5384846129e6565b611c5d91906129a7565b611c6790836129e6565b6001600160a01b0389166000908152600f60209081526040808320848452825291829020825180840190935280548084526001909101549183019190915291925090881415611cc657602081015190519096509450611d1d9350505050565b8051881115611cd757819350611ce5565b611ce26001836129e6565b92505b5050611c3d565b506001600160a01b0386166000908152600f6020908152604080832093835292905220600181015490549093509150505b9250929050565b600081831015611d345781610dcc565b5090919050565b6001600160a01b0382166000908152600c602052604090205442908015801590611d9957506001600160a01b0384166000908152600b602052604081208391611d856001856129e6565b815260200190815260200160002060000154145b15611ddc576001600160a01b0384166000908152600b602052604081208491611dc36001856129e6565b8152602081019190915260400160002060010155611e40565b60408051808201825283815260208082018681526001600160a01b0388166000908152600b8352848120868252909252929020905181559051600191820155611e2690829061298f565b6001600160a01b0385166000908152600c60205260409020555b50505050565b600e54428115801590611e78575080600d6000611e646001866129e6565b815260200190815260200160002060000154145b15611ea757600954600d6000611e8f6001866129e6565b81526020810191909152604001600020600101555050565b60408051808201825282815260095460208083019182526000868152600d90915292909220905181559051600191820155611ee390839061298f565b600e555050565b6001600160a01b0382166000908152600360209081526040808320546004909252822054600e5483929190611f225792509050611d1d565b6001600160a01b038616600090815260016020526040902054611f4b579250429150611d1d9050565b6000611f5683610d86565b90506000611f726001600e54611f6c91906129e6565b88612049565b9050815b8181101561203a576000818152600d60209081526040918290208251808401909352805483526001015490820181905215612027576000600d81611fbb85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806120068d8460000151866000015187602001518d6125af565b9092509050612015828961298f565b97506120228d898361237c565b975050505b5080612032816129fd565b915050611f76565b50919792965091945050505050565b6000818310611d345781610dcc565b6001600160a01b0381166000908152600360209081526040808320546004909252822054600e54839291906120905794909350915050565b6001600160a01b0385166000908152600160205260409020546120b7579442945092505050565b60006120c283610d86565b905060006001600e546120d591906129e6565b905060016120e383836129e6565b11156121bb57815b6120f66001836129e6565b8110156121b9576000818152600d602090815260409182902082518084019093528054835260010154908201819052156121a6576000600d8161213a85600161298f565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806121858c8460000151866000015187602001518d6125af565b9092509050612194828961298f565b97506121a18c898361237c565b975050505b50806121b1816129fd565b9150506120eb565b505b6000818152600d6020908152604091829020825180840190935280548352600101549082018190521561222d57600061220e896121f78b610d62565b8451612203908a611d24565b85602001518a6125af565b50905061221b818661298f565b945061222889864261237c565b429550505b509196929550919350505050565b6000836001600160a01b03163b116122655760405162461bcd60e51b8152600401610a8b9061292c565b600080846001600160a01b031663a9059cbb60e01b858560405160240161228d9291906128f0565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516122cb91906128b7565b6000604051808303816000865af19150503d8060008114612308576040519150601f19603f3d011682016040523d82523d6000602084013e61230d565b606091505b50915091508180156123375750805115806123375750808060200190518101906123379190612843565b6123755760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610a8b565b5050505050565b6001600160a01b03831660009081526010602052604090205480158015906123d857506001600160a01b0384166000908152600f6020526040812083916123c46001856129e6565b815260200190815260200160002060000154145b15612402576001600160a01b0384166000908152600f602052604081208491611dc36001856129e6565b60408051808201825283815260208082018681526001600160a01b0388166000908152600f835284812086825290925292902090518155905160019182015561244c90829061298f565b6001600160a01b03851660009081526010602052604090205550505050565b6000846001600160a01b03163b116124955760405162461bcd60e51b8152600401610a8b9061292c565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916124f991906128b7565b6000604051808303816000865af19150503d8060008114612536576040519150601f19603f3d011682016040523d82523d6000602084013e61253b565b606091505b50915091508180156125655750805115806125655750808060200190518101906125659190612843565b6125a75760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610a8b565b505050505050565b60008060006125be8785611d24565b6001600160a01b0389166000908152600160205260409020549091508590670de0b6b3a7640000906126116125f38a89611d24565b6001600160a01b038d16600090815260026020526040902054612049565b6001600160a01b038c16600090815260026020526040902054612635908690612049565b61263f91906129e6565b61264991906129c7565b61265391906129c7565b61265d91906129a7565b9890975095505050505050565b803561267581612a44565b919050565b600082601f83011261268a578081fd5b8135602067ffffffffffffffff808311156126a7576126a7612a2e565b8260051b604051601f19603f830116810181811084821117156126cc576126cc612a2e565b604052848152838101925086840182880185018910156126ea578687fd5b8692505b85831015612713576126ff8161266a565b8452928401926001929092019184016126ee565b50979650505050505050565b600060208284031215612730578081fd5b8135610dcc81612a44565b60006020828403121561274c578081fd5b8151610dcc81612a44565b60008060408385031215612769578081fd5b823561277481612a44565b9150602083013561278481612a44565b809150509250929050565b600080604083850312156127a1578182fd5b82356127ac81612a44565b9150602083013567ffffffffffffffff8111156127c7578182fd5b6127d38582860161267a565b9150509250929050565b600080604083850312156127ef578182fd5b82356127fa81612a44565b946020939093013593505050565b600060208284031215612819578081fd5b813567ffffffffffffffff81111561282f578182fd5b61283b8482850161267a565b949350505050565b600060208284031215612854578081fd5b81518015158114610dcc578182fd5b600060208284031215612874578081fd5b5035919050565b60006020828403121561288c578081fd5b5051919050565b600080604083850312156128a5578182fd5b82359150602083013561278481612a44565b60008251815b818110156128d757602081860181015185830152016128bd565b818111156128e55782828501525b509190910192915050565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152683737ba103b37ba32b960b91b604082015260600190565b602080825260129082015271696e76616c696420746f6b656e20636f646560701b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082198211156129a2576129a2612a18565b500190565b6000826129c257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129e1576129e1612a18565b500290565b6000828210156129f8576129f8612a18565b500390565b6000600019821415612a1157612a11612a18565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612a5957600080fd5b5056fea26469706673582212207d22301ea35e36ebb4dabfaf0071b585c532867c2ab545fdec36171f0925794264736f6c63430008040033a26469706673582212204bc736e6c8109f702e1e3c49e5db1429f8d2a92c7e4d17af5913aa25cf84862864736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BD1A72C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xDC JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x69 SWAP1 PUSH2 0xCF JUMP JUMPDEST PUSH2 0x73 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH32 0xE7F31A5FF9B31D4BA882657F1DEF4432F7380C765AD2C85AAA7E725814B55E0A DUP2 PUSH1 0x40 MLOAD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B53 DUP1 PUSH2 0x11F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xED JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x103 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2B53 CODESIZE SUB DUP1 PUSH3 0x2B53 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x61 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x78 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x2A92 PUSH3 0xC1 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3C9 ADD MSTORE DUP2 DUP2 PUSH2 0x959 ADD MSTORE DUP2 DUP2 PUSH2 0x9CC ADD MSTORE DUP2 DUP2 PUSH2 0xB4D ADD MSTORE DUP2 DUP2 PUSH2 0xBC0 ADD MSTORE PUSH2 0x166D ADD MSTORE PUSH2 0x2A92 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0xFA JUMPI DUP1 PUSH4 0xB66503CF GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x4B6 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x4DE JUMPI DUP1 PUSH4 0xE943DA8A EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x50D JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x520 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x7FD7D062 EQ PUSH2 0x403 JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x474 JUMPI DUP1 PUSH4 0xAAF5EB68 EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2CE9AEAD GT PUSH2 0x162 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x463CD970 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x371 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x293311AB EQ PUSH2 0x2A5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F2 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F2 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x251 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x251 PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x33B PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x251 PUSH2 0x36C CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x37F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x39F CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3BF CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0xD86 JUMP JUMPDEST PUSH2 0x3EB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x411 CALLDATASIZE PUSH1 0x4 PUSH2 0x2808 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x424 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x437 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x457 CALLDATASIZE PUSH1 0x4 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x482 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1248 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x4C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x251 JUMP JUMPDEST PUSH2 0x251 PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x278F JUMP JUMPDEST PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x271F JUMP JUMPDEST PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x3EB PUSH2 0x51B CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH2 0x1ADB JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x52E CALLDATASIZE PUSH1 0x4 PUSH2 0x2863 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DD JUMP JUMPDEST PUSH2 0x1B05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x582 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x5A7 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x5D1 JUMPI PUSH2 0x5C9 PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x62D DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x637 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x641 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x696 JUMPI POP SWAP4 POP PUSH2 0x6C1 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x6A7 JUMPI DUP2 SWAP4 POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x6B2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x617 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0xF DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x70D SWAP2 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x737 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x743 DUP5 DUP4 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x76C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x77C DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x88B JUMPI DUP3 JUMPDEST PUSH2 0x78F PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x889 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x7E5 SWAP1 DUP7 SWAP1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x824 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x837 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1B05 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x84D DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x85C SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x870 SWAP1 DUP8 PUSH2 0x298F JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x881 SWAP1 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x784 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x8D5 SWAP1 DUP11 SWAP1 PUSH2 0x1B05 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x914 SWAP1 DUP4 SWAP1 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x91D DUP12 PUSH2 0x1A1B JUMP JUMPDEST PUSH2 0x927 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x936 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x94A SWAP1 DUP5 PUSH2 0x298F JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA5B SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xAA6 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xAD3 SWAP1 DUP5 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xAFC SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xB04 PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9B1BFA7FA9EE420A16E124F794C35AC9F90472ACC99140EB2F6447C714CAD8EB DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC4F SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC91 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xCBE SWAP1 DUP5 SWAP1 PUSH2 0x298F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCE7 SWAP1 DUP3 SWAP1 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0xCEF PUSH2 0x1E46 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5548C837AB068CF56A2C2479DF0882A4922FD203EDB7517321831D95078C5F62 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB3F SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH2 0xD34 DUP3 DUP3 PUSH2 0x1EEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6C1 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0xD9A JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xD PUSH1 0x0 PUSH2 0xDAA PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0xDD3 JUMPI PUSH2 0xDCC PUSH1 0x1 DUP3 PUSH2 0x29E6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH32 0x81955A0A11E65EAC625C29E8882660BAE4E165A75D72780094ACAE8ECE9A29EE SLOAD DUP4 LT ISZERO PUSH2 0xE0E JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE1C PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xEB0 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0xE35 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE3F SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xE49 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0xE8A JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0xE9B JUMPI DUP2 SWAP4 POP PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0xEA6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0xE1F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0xEDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 DUP2 SSTORE JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x11CE JUMPI PUSH2 0xF1C DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF40 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xF8E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xFF7 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x101E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1091 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x10DE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE DUP2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 CALLER DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x1147 JUMPI PUSH2 0x1147 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1138 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLER DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1167 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11B3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x11C6 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0xEE3 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x11FE JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1222 SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0xDCC SWAP1 DUP3 PUSH2 0x29C7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x126B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE DUP1 PUSH2 0x12AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x12D3 JUMPI PUSH2 0x12D3 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST PUSH2 0x12DC DUP3 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x134A JUMPI PUSH2 0x131F DUP3 CALLER ADDRESS DUP5 PUSH2 0x246B JUMP JUMPDEST PUSH2 0x132C PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x136E SWAP1 TIMESTAMP SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1395 SWAP1 DUP4 PUSH2 0x29C7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x13D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F081B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x13E2 DUP5 CALLER ADDRESS DUP7 PUSH2 0x246B JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x13F0 DUP3 DUP6 PUSH2 0x298F JUMP JUMPDEST PUSH2 0x13FA SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x146C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726452617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E6 SWAP2 SWAP1 PUSH2 0x287B JUMP JUMPDEST SWAP1 POP PUSH2 0x14F5 PUSH3 0x93A80 DUP3 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1557 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x1564 PUSH3 0x93A80 TIMESTAMP PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x15F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1663 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16FC SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x172C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x2909 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x175B DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x177F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x17CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0x1836 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1828 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x6C7 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x185D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x191D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0x198A JUMPI PUSH2 0x198A DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x197B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x223B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19F6 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1A09 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x172F JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1A44 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x3 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x2 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP2 PUSH2 0x1A87 SWAP2 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x1A90 DUP7 PUSH2 0xD62 JUMP JUMPDEST PUSH2 0x1A9A SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1AA4 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AAE SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x1AB8 SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6C1 SWAP2 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1AEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x1B57 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1BF4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x1B92 PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xF PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x1BD8 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x1C2C JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C3A PUSH1 0x1 DUP5 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x1C53 DUP5 DUP5 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1C5D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0x1C67 SWAP1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x1CC6 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x1D1D SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x1CD7 JUMPI DUP2 SWAP4 POP PUSH2 0x1CE5 JUMP JUMPDEST PUSH2 0x1CE2 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1C3D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1D99 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x1D85 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1DDC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x1E40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1E26 SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1E78 JUMPI POP DUP1 PUSH1 0xD PUSH1 0x0 PUSH2 0x1E64 PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x1EA7 JUMPI PUSH1 0x9 SLOAD PUSH1 0xD PUSH1 0x0 PUSH2 0x1E8F PUSH1 0x1 DUP7 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x1EE3 SWAP1 DUP4 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0xE SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F22 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x1D1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F4B JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x1D1D SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F56 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F72 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST DUP9 PUSH2 0x2049 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x203A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2027 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x1FBB DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2006 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2015 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x2022 DUP14 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2032 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F76 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1D34 JUMPI DUP2 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xE SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2090 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x20B7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C2 DUP4 PUSH2 0xD86 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0xE SLOAD PUSH2 0x20D5 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x20E3 DUP4 DUP4 PUSH2 0x29E6 JUMP JUMPDEST GT ISZERO PUSH2 0x21BB JUMPI DUP2 JUMPDEST PUSH2 0x20F6 PUSH1 0x1 DUP4 PUSH2 0x29E6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x21B9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x21A6 JUMPI PUSH1 0x0 PUSH1 0xD DUP2 PUSH2 0x213A DUP6 PUSH1 0x1 PUSH2 0x298F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2185 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x25AF JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2194 DUP3 DUP10 PUSH2 0x298F JUMP JUMPDEST SWAP8 POP PUSH2 0x21A1 DUP13 DUP10 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x21B1 DUP2 PUSH2 0x29FD JUMP JUMPDEST SWAP2 POP POP PUSH2 0x20EB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x222D JUMPI PUSH1 0x0 PUSH2 0x220E DUP10 PUSH2 0x21F7 DUP12 PUSH2 0xD62 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2203 SWAP1 DUP11 PUSH2 0x1D24 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x25AF JUMP JUMPDEST POP SWAP1 POP PUSH2 0x221B DUP2 DUP7 PUSH2 0x298F JUMP JUMPDEST SWAP5 POP PUSH2 0x2228 DUP10 DUP7 TIMESTAMP PUSH2 0x237C JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2265 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x228D SWAP3 SWAP2 SWAP1 PUSH2 0x28F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x22CB SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2308 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x230D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2337 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2337 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2337 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x2375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x23D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x23C4 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2402 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x1DC3 PUSH1 0x1 DUP6 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x244C SWAP1 DUP3 SWAP1 PUSH2 0x298F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2495 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8B SWAP1 PUSH2 0x292C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x24F9 SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2536 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x253B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2565 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2565 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2565 SWAP2 SWAP1 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x25A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA8B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x25BE DUP8 DUP6 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2611 PUSH2 0x25F3 DUP11 DUP10 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2635 SWAP1 DUP7 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH2 0x263F SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x2649 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x2653 SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST PUSH2 0x265D SWAP2 SWAP1 PUSH2 0x29A7 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2675 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x268A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x26A7 JUMPI PUSH2 0x26A7 PUSH2 0x2A2E JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x26CC JUMPI PUSH2 0x26CC PUSH2 0x2A2E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP5 DUP2 MSTORE DUP4 DUP2 ADD SWAP3 POP DUP7 DUP5 ADD DUP3 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x26EA JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0x2713 JUMPI PUSH2 0x26FF DUP2 PUSH2 0x266A JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 DUP5 ADD PUSH2 0x26EE JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2730 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x274C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xDCC DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2769 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2774 DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A1 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27AC DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27C7 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x27D3 DUP6 DUP3 DUP7 ADD PUSH2 0x267A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x27FA DUP2 PUSH2 0x2A44 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2819 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x283B DUP5 DUP3 DUP6 ADD PUSH2 0x267A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2854 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xDCC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2874 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x288C JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28A5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2784 DUP2 PUSH2 0x2A44 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x28D7 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x28BD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x28E5 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x3737BA103B37BA32B9 PUSH1 0xB9 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x29A2 JUMPI PUSH2 0x29A2 PUSH2 0x2A18 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x29E1 JUMPI PUSH2 0x29E1 PUSH2 0x2A18 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x29F8 JUMPI PUSH2 0x29F8 PUSH2 0x2A18 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2A11 JUMPI PUSH2 0x2A11 PUSH2 0x2A18 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2A59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH30 0x22301EA35E36EBB4DABFAF0071B585C532867C2AB545FDEC36171F092579 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xC7 CALLDATASIZE 0xE6 0xC8 LT SWAP16 PUSH17 0x2E1E3C49E5DB1429F8D2A92C7E4D17AF59 SGT 0xAA 0x25 0xCF DUP5 DUP7 0x28 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"170:283:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;222:229;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;313:7;336:13;377:9;360:27;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;336:52;;403:19;416:5;403:19;;;;;;:::i;:::-;;;;;;;;439:5;222:229;-1:-1:-1;;222:229:77:o;-1:-1:-1:-;;;;;;;;:::o;14:306:139:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:139;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:139:o;325:203::-;-1:-1:-1;;;;;489:32:139;;;;471:51;;459:2;444:18;;426:102::o"},"methodIdentifiers":{"createBribe(address)":"6bd1a72c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"}],\"name\":\"BribeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"createBribe\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/bribes/BaseV2BribesFactory.sol\":\"BaseV2BribesFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/bribes/BaseV2Bribes.sol\":{\"keccak256\":\"0xa4a40a240592cd625d1a4e384b4d2a7876bd9db177eb51e0d0f4923994e755bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6824b71fcb693743f9450d6f55917620f37a5c7ac3067d2d45ddbb6cada63b69\",\"dweb:/ipfs/QmSkU9t5n4e9FTW16wmAynXKZdBkA3qjYsEwMqeCfNfPTX\"]},\"contracts/bribes/BaseV2BribesFactory.sol\":{\"keccak256\":\"0x86d1e4a9c54d98ff661c84f15effd7dc8c2f7246f45f3202657ef40e48fc7d8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://417fb3b1bbfa3e5ae7f5fc2f6b519f101dbb82eb006fab2f8d19f099f98b25bc\",\"dweb:/ipfs/QmVYfw3emTjAgf2hKqJm9Gk9mJujohZo2a6xFFRNd91aa6\"]},\"contracts/interfaces/IBribeFactory.sol\":{\"keccak256\":\"0x17e891f801dd4fd0636bf0dc89640047601942d6c2191edff32e3344f7882e7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6d2b2922adf4dc632b67d2384fd481d0442183876bcf7a27620c2e0779804f4\",\"dweb:/ipfs/QmU27qrGnKbsh2ZEgKfADfS9URHhZXM9VaVvzdVeD27Ytu\"]},\"contracts/interfaces/IBribeV2.sol\":{\"keccak256\":\"0x741775fd0b90fab22bf36b05440bb246da6248f44634fca723bd32b07919f20a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bf5c773cd53bb0544ca70facb19205a7c7fbeeac2aa25dfda193aa957cd3f89\",\"dweb:/ipfs/QmTc8i7iXKGKX29AHW6si1Rw8PcxzJZBh9YcAC28ZTU8pY\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/fees/FeeDistributor.sol":{"FeeDistributor":{"abi":[{"inputs":[{"internalType":"address","name":"_votingEscrow","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_pendingFeeDistributor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"CheckpointToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"nftId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimEpoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxEpoch","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"toggleFlag","type":"bool"}],"name":"ToggleAllowCheckpointToken","type":"event"},{"inputs":[],"name":"TOKEN_CHECKPOINT_DEADLINE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WEEK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canCheckpointToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpointToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkpointTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"nftIds","type":"uint256[]"}],"name":"claimMany","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"},{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"name":"claimWithPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isKilled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"killMe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTokenTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locker","outputs":[{"internalType":"contract INFTLocker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","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":"pendingFeeDistributor","outputs":[{"internalType":"contract IPendingFeeDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_coin","type":"address"}],"name":"recoverBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_what","type":"address"}],"name":"setPendingFeeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeCursor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"timeCursorOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleAllowCheckpointToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLastBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokensPerWeek","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userEpochOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"veSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1090:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"311:273:139","statements":[{"body":{"nodeType":"YulBlock","src":"357:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"366:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"374:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"359:6:139"},"nodeType":"YulFunctionCall","src":"359:22:139"},"nodeType":"YulExpressionStatement","src":"359:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"332:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"341:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"328:3:139"},"nodeType":"YulFunctionCall","src":"328:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"353:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"324:3:139"},"nodeType":"YulFunctionCall","src":"324:32:139"},"nodeType":"YulIf","src":"321:2:139"},{"nodeType":"YulAssignment","src":"392:50:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"432:9:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"402:29:139"},"nodeType":"YulFunctionCall","src":"402:40:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"392:6:139"}]},{"nodeType":"YulAssignment","src":"451:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"495:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"506:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"491:3:139"},"nodeType":"YulFunctionCall","src":"491:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"461:29:139"},"nodeType":"YulFunctionCall","src":"461:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"451:6:139"}]},{"nodeType":"YulAssignment","src":"519:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"563:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"574:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"559:3:139"},"nodeType":"YulFunctionCall","src":"559:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"529:29:139"},"nodeType":"YulFunctionCall","src":"529:49:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"519:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"261:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"272:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"284:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"292:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"300:6:139","type":""}],"src":"196:388:139"},{"body":{"nodeType":"YulBlock","src":"635:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"666:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"687:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"694:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"699:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"690:3:139"},"nodeType":"YulFunctionCall","src":"690:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"680:6:139"},"nodeType":"YulFunctionCall","src":"680:31:139"},"nodeType":"YulExpressionStatement","src":"680:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"724:6:139"},"nodeType":"YulFunctionCall","src":"724:15:139"},"nodeType":"YulExpressionStatement","src":"724:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"759:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"762:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"752:6:139"},"nodeType":"YulFunctionCall","src":"752:15:139"},"nodeType":"YulExpressionStatement","src":"752:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"655:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"648:6:139"},"nodeType":"YulFunctionCall","src":"648:9:139"},"nodeType":"YulIf","src":"645:2:139"},{"nodeType":"YulAssignment","src":"786:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"795:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"798:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"791:3:139"},"nodeType":"YulFunctionCall","src":"791:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"786:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"620:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"623:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"629:1:139","type":""}],"src":"589:217:139"},{"body":{"nodeType":"YulBlock","src":"863:225:139","statements":[{"body":{"nodeType":"YulBlock","src":"930:123:139","statements":[{"expression":{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"951:7:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"964:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"969:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"960:3:139"},"nodeType":"YulFunctionCall","src":"960:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"944:6:139"},"nodeType":"YulFunctionCall","src":"944:37:139"},"nodeType":"YulExpressionStatement","src":"944:37:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1001:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1004:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"994:6:139"},"nodeType":"YulFunctionCall","src":"994:15:139"},"nodeType":"YulExpressionStatement","src":"994:15:139"},{"expression":{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"1029:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"1038:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1022:6:139"},"nodeType":"YulFunctionCall","src":"1022:21:139"},"nodeType":"YulExpressionStatement","src":"1022:21:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"894:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"887:6:139"},"nodeType":"YulFunctionCall","src":"887:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"880:6:139"},"nodeType":"YulFunctionCall","src":"880:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"902:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"913:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"909:3:139"},"nodeType":"YulFunctionCall","src":"909:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"917:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"905:3:139"},"nodeType":"YulFunctionCall","src":"905:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"899:2:139"},"nodeType":"YulFunctionCall","src":"899:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"876:3:139"},"nodeType":"YulFunctionCall","src":"876:45:139"},"nodeType":"YulIf","src":"873:2:139"},{"nodeType":"YulAssignment","src":"1062:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1077:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"1080:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1073:3:139"},"nodeType":"YulFunctionCall","src":"1073:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"1062:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"842:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"845:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"851:7:139","type":""}],"src":"811:277:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x)))\n        {\n            mstore(product, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(product, 0x24)\n        }\n        product := mul(x, y)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405266071afd498d000c805461ff0019166101001790553480156200002657600080fd5b506040516200239238038062002392833981016040819052620000499162000199565b62000054336200012c565b600180546001600160a01b031916339081179091556040516000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a36001600255600062093a80620000ab8142620001e2565b620000b7919062000203565b600481905560088190556005555066038d7ea4c6800a80546001600160a01b03199081166001600160a01b039485161790915566038d7ea4c6800980549091169383169390931790925566071afd498d000c805462010000600160b01b0319166201000093909216929092021790556200022f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019457600080fd5b919050565b600080600060608486031215620001ae578283fd5b620001b9846200017c565b9250620001c9602085016200017c565b9150620001d9604085016200017c565b90509250925092565b600082620001fe57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156200022a57634e487b7160e01b81526011600452602481fd5b500290565b612153806200023f6000396000f3fe608060405234801561001057600080fd5b506004361061019a5760003560e01c8063899519be116100e4578063b603cd8011610092578063b603cd801461033d578063bee5dc3214610345578063d7b96d4e1461034d578063e32890c414610366578063ed0f65aa14610386578063f2fde38b14610399578063f4359ce5146103ac578063fc0c546a146103b657600080fd5b8063899519be146102d15780638da5cb5b146102e45780638ec8468a146102f55780638fe8a10114610304578063925489a814610317578063939ea66b1461032a578063a5420e981461033357600080fd5b80634607bf601161014c5780634607bf6014610243578063570ca7351461026357806368662ea01461027d578063715018a61461029057806378e97925146102985780637d2294d0146102a15780638721b785146102c05780638736659b146102c857600080fd5b80630cc672e41461019f5780630f6592ef146101cc57806329605e77146101ed5780632971aa8e14610202578063326a940714610215578063379607f51461021d5780634456eda214610230575b600080fd5b66071afd498d000c546101b790610100900460ff1681565b60405190151581526020015b60405180910390f35b6101df6101da366004611d4c565b6103cf565b6040519081526020016101c3565b6102006101fb366004611beb565b6103f2565b005b6101df610210366004611d7c565b610406565b61020061051b565b6101df61022b366004611d4c565b610526565b6001546001600160a01b031633146101b7565b6101df610251366004611d4c565b60066020526000908152604090205481565b6001546001600160a01b03165b6040516101c39190611e35565b61020061028b366004611beb565b610562565b610200610663565b6101df60045481565b66071afd498d000c54610270906201000090046001600160a01b031681565b610200610675565b6101df60055481565b6101df6102df366004611d4c565b6106e5565b6000546001600160a01b0316610270565b6101df66038d7ea4c6800b5481565b66071afd498d000c546101b79060ff1681565b6101b7610325366004611c23565b6106fb565b6101df60085481565b6101df6201518081565b610200610986565b610200610aa0565b66038d7ea4c6800954610270906001600160a01b031681565b6101df610374366004611d4c565b60076020526000908152604090205481565b610200610394366004611beb565b610b35565b6102006103a7366004611beb565b610b6d565b6101df62093a8081565b66038d7ea4c6800a54610270906001600160a01b031681565b66038d7ea4c6800c8166038d7ea4c6800081106103eb57600080fd5b0154905081565b6103fa610be3565b61040381610c3d565b50565b60006002805414156104335760405162461bcd60e51b815260040161042a90611e82565b60405180910390fd5b60028055600061044286610d01565b66071afd498d000c549091506201000090046001600160a01b031661046857905061050e565b66071afd498d000c54604051632599081560e11b81526000916201000090046001600160a01b031690634b32102a906104ab908a908a908a908a90600401611eb9565b602060405180830381600087803b1580156104c557600080fd5b505af11580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190611d64565b90506105098183611f71565b925050505b6001600255949350505050565b61052442610ee6565b565b600060028054141561054a5760405162461bcd60e51b815260040161042a90611e82565b6002805561055782610d01565b600160025592915050565b61056a610be3565b6040516370a0823160e01b81526001600160a01b0382169063a9059cbb90339083906370a08231906105a0903090600401611e35565b60206040518083038186803b1580156105b857600080fd5b505afa1580156105cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f09190611d64565b6040518363ffffffff1660e01b815260040161060d929190611e49565b602060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611cbb565b5050565b61066b610be3565b61052460006110cb565b61067d610be3565b66071afd498d000c805460ff610100808304821615810261ff001990931692909217928390556040517fdbe6ac1081ebd8e648718341126659456f4009fcadfe1c23f66f5e61522610b2936106db9390049091161515815260200190565b60405180910390a1565b60098166038d7ea4c6800081106103eb57600080fd5b600060028054141561071f5760405162461bcd60e51b815260040161042a90611e82565b6002805566071afd498d000c5460ff161561074c5760405162461bcd60e51b815260040161042a90611e62565b600554421061075e5761075e42610ee6565b60085466071afd498d000c54610100900460ff16801561078d57506201518060085461078a9190611f71565b42115b1561079e5761079b4261111b565b50425b62093a806107ac8183611f89565b6107b6919061203b565b905060005b83518110156109765760006107f78583815181106107e957634e487b7160e01b600052603260045260246000fd5b6020026020010151846113c6565b66038d7ea4c680095486519192506000916001600160a01b0390911690636352211e9088908690811061083a57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b815260040161086091815260200190565b60206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190611c07565b90508115610961578166038d7ea4c6800b60008282546108d091906120aa565b909155505066038d7ea4c6800a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061090d9084908690600401611e49565b602060405180830381600087803b15801561092757600080fd5b505af115801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190611cbb565b505b5050808061096e906120c1565b9150506107bb565b5060019150506001600255919050565b61098e610be3565b66071afd498d000c805460ff1916600117905566038d7ea4c6800a546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906109e1903090600401611e35565b60206040518083038186803b1580156109f957600080fd5b505afa158015610a0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a319190611d64565b6040518363ffffffff1660e01b8152600401610a4e929190611e49565b602060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104039190611cbb565b6001546001600160a01b0316331480610ae0575066071afd498d000c54610100900460ff168015610ae0575062015180600854610add9190611f71565b42115b610b2c5760405162461bcd60e51b815260206004820152601b60248201527f6e6f74206f70657261746f72206f72206e6f7420616c6c6f7765640000000000604482015260640161042a565b6105244261111b565b610b3d610be3565b66071afd498d000c80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b610b75610be3565b6001600160a01b038116610bda5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042a565b610403816110cb565b6000546001600160a01b031633146105245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042a565b6001600160a01b038116610ca95760405162461bcd60e51b815260206004820152602d60248201527f6f70657261746f723a207a65726f206164647265737320676976656e20666f7260448201526c103732bb9037b832b930ba37b960991b606482015260840161042a565b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b66071afd498d000c5460009060ff1615610d2d5760405162461bcd60e51b815260040161042a90611e62565b6005544210610d3f57610d3f42610ee6565b60085466071afd498d000c54610100900460ff168015610d6e575062015180600854610d6b9190611f71565b42115b15610d7f57610d7c4261111b565b50425b62093a80610d8d8183611f89565b610d97919061203b565b90506000610da584836113c6565b66038d7ea4c68009546040516331a9108f60e11b8152600481018790529192506000916001600160a01b0390911690636352211e9060240160206040518083038186803b158015610df557600080fd5b505afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190611c07565b90508115610ede578166038d7ea4c6800b6000828254610e4d91906120aa565b909155505066038d7ea4c6800a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610e8a9084908690600401611e49565b602060405180830381600087803b158015610ea457600080fd5b505af1158015610eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edc9190611cbb565b505b509392505050565b600554600062093a80610ef98185611f89565b610f03919061203b565b905066038d7ea4c6800960009054906101000a90046001600160a01b03166001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f5b57600080fd5b505af1158015610f6f573d6000803e3d6000fd5b5050505060005b60148110156110c35781831115610f8c576110c3565b6000610f9784611901565b66038d7ea4c6800954604051638ad4c44760e01b8152600481018390529192506000916001600160a01b0390911690638ad4c4479060240160806040518083038186803b158015610fe757600080fd5b505afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190611cdb565b90506000816040015186111561104157604082015161103e90876120aa565b90505b6110708183602001516110549190611fa9565b8351611060919061205a565b6001600160801b03166000611a9c565b66038d7ea4c6800c8766038d7ea4c68000811061109d57634e487b7160e01b600052603260045260246000fd5b01555050506110af62093a8084611f71565b9250806110bb816120c1565b915050610f76565b505060055550565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b66038d7ea4c6800a546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611152903090600401611e35565b60206040518083038186803b15801561116a57600080fd5b505afa15801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190611d64565b9050600066038d7ea4c6800b54826111ba91906120aa565b66038d7ea4c6800b83905560085490915060006111d782866120aa565b60088690559050600062093a806111ee8185611f89565b6111f8919061203b565b90506000805b60148110156113835761121462093a8084611f71565b9150818810156112b9578315801561122b57508488145b15611273578560098466038d7ea4c68000811061125857634e487b7160e01b600052603260045260246000fd5b0160008282546112689190611f71565b909155506113839050565b8361127e868a6120aa565b611288908861203b565b6112929190611f89565b60098466038d7ea4c68000811061125857634e487b7160e01b600052603260045260246000fd5b831580156112c657508482145b1561130e578560098466038d7ea4c6800081106112f357634e487b7160e01b600052603260045260246000fd5b0160008282546113039190611f71565b9091555061136a9050565b8361131986846120aa565b611323908861203b565b61132d9190611f89565b60098466038d7ea4c68000811061135457634e487b7160e01b600052603260045260246000fd5b0160008282546113649190611f71565b90915550505b819450819250808061137b906120c1565b9150506111fe565b5060408051888152602081018790527fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d6910160405180910390a150505050505050565b66038d7ea4c6800954604051635d528fc360e11b8152600481018490526000916001600160a01b03169063baa51f869060240160206040518083038186803b15801561141157600080fd5b505afa158015611425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114499190611cbb565b6114865760405162461bcd60e51b815260206004820152600e60248201526d1b999d081b9bdd081cdd185ad95960921b604482015260640161042a565b66038d7ea4c680095460405163e58f594760e01b815260048101859052600091829182916001600160a01b03169063e58f59479060240160206040518083038186803b1580156114d557600080fd5b505afa1580156114e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150d9190611d64565b600454909150816115255760009450505050506118fb565b6000878152600660205260409020548061154b57611544888385611ab5565b945061155d565b60008881526007602052604090205494505b8461156757600194505b66038d7ea4c68009546040516322565a1560e11b8152600481018a9052602481018790526000916001600160a01b0316906344acb42a9060440160806040518083038186803b1580156115b957600080fd5b505afa1580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f19190611cdb565b9050816116335762093a8080600162093a8084604001516116129190611f71565b61161c91906120aa565b6116269190611f89565b611630919061203b565b91505b87821061164957600096505050505050506118fb565b82821015611655578291505b6040805160808101825260008082526020820181905291810182905260608101829052905b60328110156118755789841061168f57611875565b826040015184101580156116a35750858811155b15611782576116b3600189611f71565b9750829150858811156116f25760405180608001604052806000600f0b81526020016000600f0b81526020016000815260200160008152509250611863565b66038d7ea4c68009546040516322565a1560e11b8152600481018d9052602481018a90526001600160a01b03909116906344acb42a9060440160806040518083038186803b15801561174357600080fd5b505afa158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190611cdb565b9250611863565b600082604001518561179491906120aa565b905060006117b78460200151836117ab9190611fa9565b8551611060919061205a565b9050801580156117c65750878a115b156117d2575050611875565b80156118515766038d7ea4c6800c8666038d7ea4c68000811061180557634e487b7160e01b600052603260045260246000fd5b015460098766038d7ea4c68000811061182e57634e487b7160e01b600052603260045260246000fd5b015461183a908361203b565b6118449190611f89565b61184e908a611f71565b98505b61185e62093a8087611f71565b955050505b8061186d816120c1565b91505061167a565b5061188a8561188560018a6120aa565b611bc5565b60008b8152600760209081526040808320849055600682529182902086905581518d8152908101899052908101829052606081018790529097507fcae2990aa9af8eb1c64713b7eddb3a80bf18e49a94a13fe0d0002b5d61d58f009060800160405180910390a15093955050505050505b92915050565b60008060009050600066038d7ea4c6800960009054906101000a90046001600160a01b03166001600160a01b031663900cf0cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561195e57600080fd5b505afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190611d64565b905060005b6080811015611a93578183106119b057611a93565b600060026119be8486611f71565b6119c9906002611f71565b6119d39190611f89565b66038d7ea4c6800954604051638ad4c44760e01b8152600481018390529192506000916001600160a01b0390911690638ad4c4479060240160806040518083038186803b158015611a2357600080fd5b505afa158015611a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5b9190611cdb565b905086816040015111611a7057819450611a7e565b611a7b6001836120aa565b93505b50508080611a8b906120c1565b91505061199b565b50909392505050565b600081831015611aac5781611aae565b825b9392505050565b60008082815b6080811015611bba57818310611ad057611bba565b60006002611ade8486611f71565b611ae9906002611f71565b611af39190611f89565b66038d7ea4c68009546040516322565a1560e11b8152600481018b9052602481018390529192506000916001600160a01b03909116906344acb42a9060440160806040518083038186803b158015611b4a57600080fd5b505afa158015611b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b829190611cdb565b905087816040015111611b9757819450611ba5565b611ba26001836120aa565b93505b50508080611bb2906120c1565b915050611abb565b509095945050505050565b6000818310611aac5781611aae565b8051600f81900b8114611be657600080fd5b919050565b600060208284031215611bfc578081fd5b8135611aae81612108565b600060208284031215611c18578081fd5b8151611aae81612108565b60006020808385031215611c35578182fd5b823567ffffffffffffffff811115611c4b578283fd5b8301601f81018513611c5b578283fd5b8035611c6e611c6982611f4d565b611f1c565b80828252848201915084840188868560051b8701011115611c8d578687fd5b8694505b83851015611caf578035835260019490940193918501918501611c91565b50979650505050505050565b600060208284031215611ccc578081fd5b81518015158114611aae578182fd5b600060808284031215611cec578081fd5b6040516080810181811067ffffffffffffffff82111715611d0f57611d0f6120f2565b604052611d1b83611bd4565b8152611d2960208401611bd4565b602082015260408301516040820152606083015160608201528091505092915050565b600060208284031215611d5d578081fd5b5035919050565b600060208284031215611d75578081fd5b5051919050565b60008060008060808587031215611d91578283fd5b84359350602080860135611da481612108565b935060408601359250606086013567ffffffffffffffff811115611dc6578283fd5b8601601f81018813611dd6578283fd5b8035611de4611c6982611f4d565b8082825284820191508484018b868560051b8701011115611e03578687fd5b8694505b83851015611e25578035835260019490940193918501918501611e07565b50979a9699509497505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600690820152651ada5b1b195960d21b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600060808201868352602060018060a01b038716818501528560408501526080606085015281855180845260a0860191508287019350845b81811015611f0d57845183529383019391830191600101611ef1565b50909998505050505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611f4557611f456120f2565b604052919050565b600067ffffffffffffffff821115611f6757611f676120f2565b5060051b60200190565b60008219821115611f8457611f846120dc565b500190565b600082611fa457634e487b7160e01b81526012600452602481fd5b500490565b6000600f82810b9084900b60016001607f1b0383821384841380821684840486111615611fd857611fd86120dc565b60016001607f1b031986851282811687830587121615611ffa57611ffa6120dc565b878712925085820587128484161615612015576120156120dc565b8585058712818416161561202b5761202b6120dc565b5050509290910295945050505050565b6000816000190483118215151615612055576120556120dc565b500290565b6000600f82810b9084900b828112801560016001607f1b0319830184121615612085576120856120dc565b60016001607f1b03820183138116156120a0576120a06120dc565b5090039392505050565b6000828210156120bc576120bc6120dc565b500390565b60006000198214156120d5576120d56120dc565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040357600080fdfea264697066735822122081e3bb9385bfad6cae80759e6b2ceacd10cf4983bbaf1ecf37889eee3ed472db64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2392 CODESIZE SUB DUP1 PUSH3 0x2392 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x49 SWAP2 PUSH3 0x199 JUMP JUMPDEST PUSH3 0x54 CALLER PUSH3 0x12C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH32 0x74DA04524D50C64947F5DD5381EF1A4DCA5CBA8ED1D816243F9E48AA0B5617ED SWAP1 DUP3 SWAP1 LOG3 PUSH1 0x1 PUSH1 0x2 SSTORE PUSH1 0x0 PUSH3 0x93A80 PUSH3 0xAB DUP2 TIMESTAMP PUSH3 0x1E2 JUMP JUMPDEST PUSH3 0xB7 SWAP2 SWAP1 PUSH3 0x203 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH1 0x5 SSTORE POP PUSH7 0x38D7EA4C6800A DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND OR SWAP1 SWAP2 SSTORE PUSH7 0x38D7EA4C68009 DUP1 SLOAD SWAP1 SWAP2 AND SWAP4 DUP4 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 SWAP4 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL OR SWAP1 SSTORE PUSH3 0x22F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x1AE JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH3 0x1B9 DUP5 PUSH3 0x17C JUMP JUMPDEST SWAP3 POP PUSH3 0x1C9 PUSH1 0x20 DUP6 ADD PUSH3 0x17C JUMP JUMPDEST SWAP2 POP PUSH3 0x1D9 PUSH1 0x40 DUP6 ADD PUSH3 0x17C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x1FE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH3 0x22A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH2 0x2153 DUP1 PUSH3 0x23F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x19A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x899519BE GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0xB603CD80 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xB603CD80 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0xBEE5DC32 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xD7B96D4E EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xE32890C4 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0xED0F65AA EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0xF4359CE5 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x899519BE EQ PUSH2 0x2D1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x8EC8468A EQ PUSH2 0x2F5 JUMPI DUP1 PUSH4 0x8FE8A101 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x925489A8 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x939EA66B EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA5420E98 EQ PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4607BF60 GT PUSH2 0x14C JUMPI DUP1 PUSH4 0x4607BF60 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0x570CA735 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x68662EA0 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x7D2294D0 EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0x8721B785 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x8736659B EQ PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCC672E4 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xF6592EF EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0x29605E77 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x2971AA8E EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x326A9407 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x4456EDA2 EQ PUSH2 0x230 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C3 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x1FB CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x51B JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH2 0x526 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1B7 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x251 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1E35 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0x562 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x663 JUMP JUMPDEST PUSH2 0x1DF PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH2 0x270 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x1DF PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH2 0x6E5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x270 JUMP JUMPDEST PUSH2 0x1DF PUSH7 0x38D7EA4C6800B SLOAD DUP2 JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH2 0x1B7 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1B7 PUSH2 0x325 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C23 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1DF PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH3 0x15180 DUP2 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x986 JUMP JUMPDEST PUSH2 0x200 PUSH2 0xAA0 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH2 0x270 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x374 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x394 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0xB35 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0xB6D JUMP JUMPDEST PUSH2 0x1DF PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH7 0x38D7EA4C6800A SLOAD PUSH2 0x270 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH7 0x38D7EA4C6800C DUP2 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x3EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH2 0x3FA PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0x403 DUP2 PUSH2 0xC3D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD EQ ISZERO PUSH2 0x433 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SSTORE PUSH1 0x0 PUSH2 0x442 DUP7 PUSH2 0xD01 JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD SWAP1 SWAP2 POP PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x468 JUMPI SWAP1 POP PUSH2 0x50E JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH1 0x40 MLOAD PUSH4 0x25990815 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4B32102A SWAP1 PUSH2 0x4AB SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x1EB9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4FD SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST SWAP1 POP PUSH2 0x509 DUP2 DUP4 PUSH2 0x1F71 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST PUSH1 0x1 PUSH1 0x2 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x524 TIMESTAMP PUSH2 0xEE6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD EQ ISZERO PUSH2 0x54A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x2 DUP1 SSTORE PUSH2 0x557 DUP3 PUSH2 0xD01 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x56A PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x5A0 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1E35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5CC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5F0 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60D SWAP3 SWAP2 SWAP1 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x63B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x65F SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x66B PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0x524 PUSH1 0x0 PUSH2 0x10CB JUMP JUMPDEST PUSH2 0x67D PUSH2 0xBE3 JUMP JUMPDEST PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH1 0xFF PUSH2 0x100 DUP1 DUP4 DIV DUP3 AND ISZERO DUP2 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xDBE6AC1081EBD8E648718341126659456F4009FCADFE1C23F66F5E61522610B2 SWAP4 PUSH2 0x6DB SWAP4 SWAP1 DIV SWAP1 SWAP2 AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x9 DUP2 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x3EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD EQ ISZERO PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x2 DUP1 SSTORE PUSH7 0x71AFD498D000C SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E62 JUMP JUMPDEST PUSH1 0x5 SLOAD TIMESTAMP LT PUSH2 0x75E JUMPI PUSH2 0x75E TIMESTAMP PUSH2 0xEE6 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH7 0x71AFD498D000C SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x78D JUMPI POP PUSH3 0x15180 PUSH1 0x8 SLOAD PUSH2 0x78A SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST TIMESTAMP GT JUMPDEST ISZERO PUSH2 0x79E JUMPI PUSH2 0x79B TIMESTAMP PUSH2 0x111B JUMP JUMPDEST POP TIMESTAMP JUMPDEST PUSH3 0x93A80 PUSH2 0x7AC DUP2 DUP4 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x7B6 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 PUSH2 0x7F7 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x7E9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 PUSH2 0x13C6 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD DUP7 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 DUP9 SWAP1 DUP7 SWAP1 DUP2 LT PUSH2 0x83A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x860 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B0 SWAP2 SWAP1 PUSH2 0x1C07 JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0x961 JUMPI DUP2 PUSH7 0x38D7EA4C6800B PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8D0 SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0x90D SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x927 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x93B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x95F SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x96E SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7BB JUMP JUMPDEST POP PUSH1 0x1 SWAP2 POP POP PUSH1 0x1 PUSH1 0x2 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98E PUSH2 0xBE3 JUMP JUMPDEST PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x9E1 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1E35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA0D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA31 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA4E SWAP3 SWAP2 SWAP1 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0xAE0 JUMPI POP PUSH7 0x71AFD498D000C SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xAE0 JUMPI POP PUSH3 0x15180 PUSH1 0x8 SLOAD PUSH2 0xADD SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST TIMESTAMP GT JUMPDEST PUSH2 0xB2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F74206F70657261746F72206F72206E6F7420616C6C6F7765640000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x524 TIMESTAMP PUSH2 0x111B JUMP JUMPDEST PUSH2 0xB3D PUSH2 0xBE3 JUMP JUMPDEST PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xB75 PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x403 DUP2 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x524 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F70657261746F723A207A65726F206164647265737320676976656E20666F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x103732BB9037B832B930BA37B9 PUSH1 0x99 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0x74DA04524D50C64947F5DD5381EF1A4DCA5CBA8ED1D816243F9E48AA0B5617ED SWAP1 DUP3 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E62 JUMP JUMPDEST PUSH1 0x5 SLOAD TIMESTAMP LT PUSH2 0xD3F JUMPI PUSH2 0xD3F TIMESTAMP PUSH2 0xEE6 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH7 0x71AFD498D000C SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xD6E JUMPI POP PUSH3 0x15180 PUSH1 0x8 SLOAD PUSH2 0xD6B SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST TIMESTAMP GT JUMPDEST ISZERO PUSH2 0xD7F JUMPI PUSH2 0xD7C TIMESTAMP PUSH2 0x111B JUMP JUMPDEST POP TIMESTAMP JUMPDEST PUSH3 0x93A80 PUSH2 0xD8D DUP2 DUP4 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0xD97 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDA5 DUP5 DUP4 PUSH2 0x13C6 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE2D SWAP2 SWAP1 PUSH2 0x1C07 JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0xEDE JUMPI DUP2 PUSH7 0x38D7EA4C6800B PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xE4D SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0xE8A SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEDC SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST POP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 PUSH3 0x93A80 PUSH2 0xEF9 DUP2 DUP6 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0xF03 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH7 0x38D7EA4C68009 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 JUMPDEST PUSH1 0x14 DUP2 LT ISZERO PUSH2 0x10C3 JUMPI DUP2 DUP4 GT ISZERO PUSH2 0xF8C JUMPI PUSH2 0x10C3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF97 DUP5 PUSH2 0x1901 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8AD4C447 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8AD4C447 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x101F SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD DUP7 GT ISZERO PUSH2 0x1041 JUMPI PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x103E SWAP1 DUP8 PUSH2 0x20AA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x1070 DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1054 SWAP2 SWAP1 PUSH2 0x1FA9 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x1060 SWAP2 SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x0 PUSH2 0x1A9C JUMP JUMPDEST PUSH7 0x38D7EA4C6800C DUP8 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x109D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD SSTORE POP POP POP PUSH2 0x10AF PUSH3 0x93A80 DUP5 PUSH2 0x1F71 JUMP JUMPDEST SWAP3 POP DUP1 PUSH2 0x10BB DUP2 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF76 JUMP JUMPDEST POP POP PUSH1 0x5 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1152 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1E35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11A2 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH7 0x38D7EA4C6800B SLOAD DUP3 PUSH2 0x11BA SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST PUSH7 0x38D7EA4C6800B DUP4 SWAP1 SSTORE PUSH1 0x8 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x11D7 DUP3 DUP7 PUSH2 0x20AA JUMP JUMPDEST PUSH1 0x8 DUP7 SWAP1 SSTORE SWAP1 POP PUSH1 0x0 PUSH3 0x93A80 PUSH2 0x11EE DUP2 DUP6 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x11F8 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x14 DUP2 LT ISZERO PUSH2 0x1383 JUMPI PUSH2 0x1214 PUSH3 0x93A80 DUP5 PUSH2 0x1F71 JUMP JUMPDEST SWAP2 POP DUP2 DUP9 LT ISZERO PUSH2 0x12B9 JUMPI DUP4 ISZERO DUP1 ISZERO PUSH2 0x122B JUMPI POP DUP5 DUP9 EQ JUMPDEST ISZERO PUSH2 0x1273 JUMPI DUP6 PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1258 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1268 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1383 SWAP1 POP JUMP JUMPDEST DUP4 PUSH2 0x127E DUP7 DUP11 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1288 SWAP1 DUP9 PUSH2 0x203B JUMP JUMPDEST PUSH2 0x1292 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1258 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP4 ISZERO DUP1 ISZERO PUSH2 0x12C6 JUMPI POP DUP5 DUP3 EQ JUMPDEST ISZERO PUSH2 0x130E JUMPI DUP6 PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x12F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1303 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x136A SWAP1 POP JUMP JUMPDEST DUP4 PUSH2 0x1319 DUP7 DUP5 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1323 SWAP1 DUP9 PUSH2 0x203B JUMP JUMPDEST PUSH2 0x132D SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1354 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1364 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST DUP2 SWAP5 POP DUP2 SWAP3 POP DUP1 DUP1 PUSH2 0x137B SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11FE JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH32 0xCE749457B74E10F393F2C6B1CE4261B78791376DB5A3F501477A809F03F500D6 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5D528FC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBAA51F86 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1425 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1449 SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST PUSH2 0x1486 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x1B999D081B9BDD081CDD185AD959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE58F5947 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE58F5947 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x150D SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP2 POP DUP2 PUSH2 0x1525 JUMPI PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x18FB JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x154B JUMPI PUSH2 0x1544 DUP9 DUP4 DUP6 PUSH2 0x1AB5 JUMP JUMPDEST SWAP5 POP PUSH2 0x155D JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP5 POP JUMPDEST DUP5 PUSH2 0x1567 JUMPI PUSH1 0x1 SWAP5 POP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x22565A15 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x44ACB42A SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15F1 SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1633 JUMPI PUSH3 0x93A80 DUP1 PUSH1 0x1 PUSH3 0x93A80 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x1612 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x161C SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1626 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x1630 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP2 POP JUMPDEST DUP8 DUP3 LT PUSH2 0x1649 JUMPI PUSH1 0x0 SWAP7 POP POP POP POP POP POP POP PUSH2 0x18FB JUMP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x1655 JUMPI DUP3 SWAP2 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 JUMPDEST PUSH1 0x32 DUP2 LT ISZERO PUSH2 0x1875 JUMPI DUP10 DUP5 LT PUSH2 0x168F JUMPI PUSH2 0x1875 JUMP JUMPDEST DUP3 PUSH1 0x40 ADD MLOAD DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x16A3 JUMPI POP DUP6 DUP9 GT ISZERO JUMPDEST ISZERO PUSH2 0x1782 JUMPI PUSH2 0x16B3 PUSH1 0x1 DUP10 PUSH2 0x1F71 JUMP JUMPDEST SWAP8 POP DUP3 SWAP2 POP DUP6 DUP9 GT ISZERO PUSH2 0x16F2 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP3 POP PUSH2 0x1863 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x22565A15 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44ACB42A SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x177B SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP3 POP PUSH2 0x1863 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x40 ADD MLOAD DUP6 PUSH2 0x1794 SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17B7 DUP5 PUSH1 0x20 ADD MLOAD DUP4 PUSH2 0x17AB SWAP2 SWAP1 PUSH2 0x1FA9 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x1060 SWAP2 SWAP1 PUSH2 0x205A JUMP JUMPDEST SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x17C6 JUMPI POP DUP8 DUP11 GT JUMPDEST ISZERO PUSH2 0x17D2 JUMPI POP POP PUSH2 0x1875 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1851 JUMPI PUSH7 0x38D7EA4C6800C DUP7 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1805 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD SLOAD PUSH1 0x9 DUP8 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x182E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD SLOAD PUSH2 0x183A SWAP1 DUP4 PUSH2 0x203B JUMP JUMPDEST PUSH2 0x1844 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x184E SWAP1 DUP11 PUSH2 0x1F71 JUMP JUMPDEST SWAP9 POP JUMPDEST PUSH2 0x185E PUSH3 0x93A80 DUP8 PUSH2 0x1F71 JUMP JUMPDEST SWAP6 POP POP POP JUMPDEST DUP1 PUSH2 0x186D DUP2 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x167A JUMP JUMPDEST POP PUSH2 0x188A DUP6 PUSH2 0x1885 PUSH1 0x1 DUP11 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1BC5 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP2 MLOAD DUP14 DUP2 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP8 POP PUSH32 0xCAE2990AA9AF8EB1C64713B7EDDB3A80BF18E49A94A13FE0D0002B5D61D58F00 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP4 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 PUSH7 0x38D7EA4C68009 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1996 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1A93 JUMPI DUP2 DUP4 LT PUSH2 0x19B0 JUMPI PUSH2 0x1A93 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x19BE DUP5 DUP7 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x19C9 SWAP1 PUSH1 0x2 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x19D3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8AD4C447 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8AD4C447 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A5B SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP DUP7 DUP2 PUSH1 0x40 ADD MLOAD GT PUSH2 0x1A70 JUMPI DUP2 SWAP5 POP PUSH2 0x1A7E JUMP JUMPDEST PUSH2 0x1A7B PUSH1 0x1 DUP4 PUSH2 0x20AA JUMP JUMPDEST SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1A8B SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x199B JUMP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1AAC JUMPI DUP2 PUSH2 0x1AAE JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1BBA JUMPI DUP2 DUP4 LT PUSH2 0x1AD0 JUMPI PUSH2 0x1BBA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x1ADE DUP5 DUP7 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x1AE9 SWAP1 PUSH1 0x2 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x1AF3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x22565A15 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44ACB42A SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B82 SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP DUP8 DUP2 PUSH1 0x40 ADD MLOAD GT PUSH2 0x1B97 JUMPI DUP2 SWAP5 POP PUSH2 0x1BA5 JUMP JUMPDEST PUSH2 0x1BA2 PUSH1 0x1 DUP4 PUSH2 0x20AA JUMP JUMPDEST SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1BB2 SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1ABB JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1AAC JUMPI DUP2 PUSH2 0x1AAE JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x1BE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BFC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1AAE DUP2 PUSH2 0x2108 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C18 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1AAE DUP2 PUSH2 0x2108 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C35 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1C5B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C6E PUSH2 0x1C69 DUP3 PUSH2 0x1F4D JUMP JUMPDEST PUSH2 0x1F1C JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE DUP5 DUP3 ADD SWAP2 POP DUP5 DUP5 ADD DUP9 DUP7 DUP6 PUSH1 0x5 SHL DUP8 ADD ADD GT ISZERO PUSH2 0x1C8D JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x1CAF JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP5 SWAP1 SWAP5 ADD SWAP4 SWAP2 DUP6 ADD SWAP2 DUP6 ADD PUSH2 0x1C91 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1AAE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CEC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1D0F JUMPI PUSH2 0x1D0F PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x1D1B DUP4 PUSH2 0x1BD4 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x1D29 PUSH1 0x20 DUP5 ADD PUSH2 0x1BD4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D5D JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D75 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D91 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD PUSH2 0x1DA4 DUP2 PUSH2 0x2108 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DC6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP7 ADD PUSH1 0x1F DUP2 ADD DUP9 SGT PUSH2 0x1DD6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DE4 PUSH2 0x1C69 DUP3 PUSH2 0x1F4D JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE DUP5 DUP3 ADD SWAP2 POP DUP5 DUP5 ADD DUP12 DUP7 DUP6 PUSH1 0x5 SHL DUP8 ADD ADD GT ISZERO PUSH2 0x1E03 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x1E25 JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP5 SWAP1 SWAP5 ADD SWAP4 SWAP2 DUP6 ADD SWAP2 DUP6 ADD PUSH2 0x1E07 JUMP JUMPDEST POP SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x6 SWAP1 DUP3 ADD MSTORE PUSH6 0x1ADA5B1B1959 PUSH1 0xD2 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD DUP7 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 DUP6 ADD MSTORE DUP6 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0xA0 DUP7 ADD SWAP2 POP DUP3 DUP8 ADD SWAP4 POP DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F0D JUMPI DUP5 MLOAD DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1EF1 JUMP JUMPDEST POP SWAP1 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1F45 JUMPI PUSH2 0x1F45 PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1F67 JUMPI PUSH2 0x1F67 PUSH2 0x20F2 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1F84 JUMPI PUSH2 0x1F84 PUSH2 0x20DC JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1FA4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP4 DUP3 SGT DUP5 DUP5 SGT DUP1 DUP3 AND DUP5 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x1FD8 JUMPI PUSH2 0x1FD8 PUSH2 0x20DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP7 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x1FFA JUMPI PUSH2 0x1FFA PUSH2 0x20DC JUMP JUMPDEST DUP8 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2015 JUMPI PUSH2 0x2015 PUSH2 0x20DC JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x202B JUMPI PUSH2 0x202B PUSH2 0x20DC JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2055 JUMPI PUSH2 0x2055 PUSH2 0x20DC JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND DUP3 DUP2 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP4 ADD DUP5 SLT AND ISZERO PUSH2 0x2085 JUMPI PUSH2 0x2085 PUSH2 0x20DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP3 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x20A0 JUMPI PUSH2 0x20A0 PUSH2 0x20DC JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x20BC JUMPI PUSH2 0x20BC PUSH2 0x20DC JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x20D5 JUMPI PUSH2 0x20D5 PUSH2 0x20DC JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0xE3 0xBB SWAP4 DUP6 0xBF 0xAD PUSH13 0xAE80759E6B2CEACD10CF4983BB 0xAF 0x1E 0xCF CALLDATACOPY DUP9 SWAP15 0xEE RETURNDATACOPY 0xD4 PUSH19 0xDB64736F6C6343000804003300000000000000 ","sourceMap":"735:11893:78:-:0;;;1407:37;;;-1:-1:-1;;1407:37:78;;;;;1508:403;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:38;936:18:4;:32::i;:::-;341:9:131;:24;;-1:-1:-1;;;;;;341:24:131;719:10:38;341:24:131;;;;;;376:42;;-1:-1:-1;;376:42:131;;-1:-1:-1;;376:42:131;1701:1:22;1806:7;:22;1631:9:78;873;1644:22;873:9;1644:15;:22;:::i;:::-;1643:31;;;;:::i;:::-;1684:9;:13;;;1707;:17;;;1734:10;:14;-1:-1:-1;1758:5:78;:22;;-1:-1:-1;;;;;;1758:22:78;;;-1:-1:-1;;;;;1758:22:78;;;;;;;1790:6;:34;;;;;;;;;;;;;;;1834:21;:70;;-1:-1:-1;;;;;;1834:70:78;;;;;;;;;;;;;735:11893;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;14:177:139:-;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:388::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:2;;;374:6;366;359:22;321:2;402:40;432:9;402:40;:::i;:::-;392:50;;461:49;506:2;495:9;491:18;461:49;:::i;:::-;451:59;;529:49;574:2;563:9;559:18;529:49;:::i;:::-;519:59;;311:273;;;;;:::o;589:217::-;629:1;655;645:2;;-1:-1:-1;;;680:31:139;;734:4;731:1;724:15;762:4;687:1;752:15;645:2;-1:-1:-1;791:9:139;;635:171::o;811:277::-;851:7;917:1;913;909:6;905:14;902:1;899:21;894:1;887:9;880:17;876:45;873:2;;;-1:-1:-1;;;944:37:139;;1004:4;1001:1;994:15;1038:4;951:7;1022:21;873:2;-1:-1:-1;1073:9:139;;863:225::o;:::-;735:11893:78;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:12937:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"73:107:139","statements":[{"nodeType":"YulAssignment","src":"83:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"98:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"92:5:139"},"nodeType":"YulFunctionCall","src":"92:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"83:5:139"}]},{"body":{"nodeType":"YulBlock","src":"158:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"167:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"170:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"160:6:139"},"nodeType":"YulFunctionCall","src":"160:12:139"},"nodeType":"YulExpressionStatement","src":"160:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"127:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"145:2:139","type":"","value":"15"},{"name":"value","nodeType":"YulIdentifier","src":"149:5:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"134:10:139"},"nodeType":"YulFunctionCall","src":"134:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"124:2:139"},"nodeType":"YulFunctionCall","src":"124:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"117:6:139"},"nodeType":"YulFunctionCall","src":"117:40:139"},"nodeType":"YulIf","src":"114:2:139"}]},"name":"abi_decode_int128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"63:5:139","type":""}],"src":"14:166:139"},{"body":{"nodeType":"YulBlock","src":"255:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"301:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"310:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"318:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"303:6:139"},"nodeType":"YulFunctionCall","src":"303:22:139"},"nodeType":"YulExpressionStatement","src":"303:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"276:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"285:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"272:3:139"},"nodeType":"YulFunctionCall","src":"272:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"297:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"268:3:139"},"nodeType":"YulFunctionCall","src":"268:32:139"},"nodeType":"YulIf","src":"265:2:139"},{"nodeType":"YulVariableDeclaration","src":"336:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"362:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"349:12:139"},"nodeType":"YulFunctionCall","src":"349:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"340:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"406:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"381:24:139"},"nodeType":"YulFunctionCall","src":"381:31:139"},"nodeType":"YulExpressionStatement","src":"381:31:139"},{"nodeType":"YulAssignment","src":"421:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"431:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"421:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"221:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"232:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"244:6:139","type":""}],"src":"185:257:139"},{"body":{"nodeType":"YulBlock","src":"528:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"574:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"583:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"591:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"576:6:139"},"nodeType":"YulFunctionCall","src":"576:22:139"},"nodeType":"YulExpressionStatement","src":"576:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"549:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"558:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"545:3:139"},"nodeType":"YulFunctionCall","src":"545:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"570:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"541:3:139"},"nodeType":"YulFunctionCall","src":"541:32:139"},"nodeType":"YulIf","src":"538:2:139"},{"nodeType":"YulVariableDeclaration","src":"609:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"628:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"622:5:139"},"nodeType":"YulFunctionCall","src":"622:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"613:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"672:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"647:24:139"},"nodeType":"YulFunctionCall","src":"647:31:139"},"nodeType":"YulExpressionStatement","src":"647:31:139"},{"nodeType":"YulAssignment","src":"687:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"697:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"687:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"494:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"505:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"517:6:139","type":""}],"src":"447:261:139"},{"body":{"nodeType":"YulBlock","src":"808:852:139","statements":[{"nodeType":"YulVariableDeclaration","src":"818:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"828:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"822:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"875:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"884:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"892:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"877:6:139"},"nodeType":"YulFunctionCall","src":"877:22:139"},"nodeType":"YulExpressionStatement","src":"877:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"850:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"859:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"846:3:139"},"nodeType":"YulFunctionCall","src":"846:23:139"},{"name":"_1","nodeType":"YulIdentifier","src":"871:2:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"842:3:139"},"nodeType":"YulFunctionCall","src":"842:32:139"},"nodeType":"YulIf","src":"839:2:139"},{"nodeType":"YulVariableDeclaration","src":"910:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"937:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"924:12:139"},"nodeType":"YulFunctionCall","src":"924:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"914:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"990:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"999:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1007:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"992:6:139"},"nodeType":"YulFunctionCall","src":"992:22:139"},"nodeType":"YulExpressionStatement","src":"992:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"962:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"970:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"959:2:139"},"nodeType":"YulFunctionCall","src":"959:30:139"},"nodeType":"YulIf","src":"956:2:139"},{"nodeType":"YulVariableDeclaration","src":"1025:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1039:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1050:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1035:3:139"},"nodeType":"YulFunctionCall","src":"1035:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1029:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1105:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1114:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1122:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1107:6:139"},"nodeType":"YulFunctionCall","src":"1107:22:139"},"nodeType":"YulExpressionStatement","src":"1107:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1084:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1088:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1080:3:139"},"nodeType":"YulFunctionCall","src":"1080:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1095:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1076:3:139"},"nodeType":"YulFunctionCall","src":"1076:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1069:6:139"},"nodeType":"YulFunctionCall","src":"1069:35:139"},"nodeType":"YulIf","src":"1066:2:139"},{"nodeType":"YulVariableDeclaration","src":"1140:26:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1163:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1150:12:139"},"nodeType":"YulFunctionCall","src":"1150:16:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1144:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1175:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1242:2:139"}],"functionName":{"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulIdentifier","src":"1202:39:139"},"nodeType":"YulFunctionCall","src":"1202:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1186:15:139"},"nodeType":"YulFunctionCall","src":"1186:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1179:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1255:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1268:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1259:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1287:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1292:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1280:6:139"},"nodeType":"YulFunctionCall","src":"1280:15:139"},"nodeType":"YulExpressionStatement","src":"1280:15:139"},{"nodeType":"YulAssignment","src":"1304:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1315:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1320:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:139"},"nodeType":"YulFunctionCall","src":"1311:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1304:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1332:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1347:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1351:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1343:3:139"},"nodeType":"YulFunctionCall","src":"1343:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1336:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1408:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1417:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1425:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1410:6:139"},"nodeType":"YulFunctionCall","src":"1410:22:139"},"nodeType":"YulExpressionStatement","src":"1410:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1377:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1385:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"1388:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1381:3:139"},"nodeType":"YulFunctionCall","src":"1381:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1373:3:139"},"nodeType":"YulFunctionCall","src":"1373:19:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1394:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1369:3:139"},"nodeType":"YulFunctionCall","src":"1369:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1399:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1366:2:139"},"nodeType":"YulFunctionCall","src":"1366:41:139"},"nodeType":"YulIf","src":"1363:2:139"},{"nodeType":"YulVariableDeclaration","src":"1443:15:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1447:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1512:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1533:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1551:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1538:12:139"},"nodeType":"YulFunctionCall","src":"1538:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1526:6:139"},"nodeType":"YulFunctionCall","src":"1526:30:139"},"nodeType":"YulExpressionStatement","src":"1526:30:139"},{"nodeType":"YulAssignment","src":"1569:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1580:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1585:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1576:3:139"},"nodeType":"YulFunctionCall","src":"1576:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1569:3:139"}]},{"nodeType":"YulAssignment","src":"1601:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1612:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1617:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1608:3:139"},"nodeType":"YulFunctionCall","src":"1608:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1601:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1478:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1481:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1475:2:139"},"nodeType":"YulFunctionCall","src":"1475:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1485:18:139","statements":[{"nodeType":"YulAssignment","src":"1487:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1496:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1499:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1492:3:139"},"nodeType":"YulFunctionCall","src":"1492:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1487:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1471:3:139","statements":[]},"src":"1467:163:139"},{"nodeType":"YulAssignment","src":"1639:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1649:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1639:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"774:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"785:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"797:6:139","type":""}],"src":"713:947:139"},{"body":{"nodeType":"YulBlock","src":"1743:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"1789:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1798:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1806:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1791:6:139"},"nodeType":"YulFunctionCall","src":"1791:22:139"},"nodeType":"YulExpressionStatement","src":"1791:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1764:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1773:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1760:3:139"},"nodeType":"YulFunctionCall","src":"1760:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1785:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1756:3:139"},"nodeType":"YulFunctionCall","src":"1756:32:139"},"nodeType":"YulIf","src":"1753:2:139"},{"nodeType":"YulVariableDeclaration","src":"1824:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1843:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1837:5:139"},"nodeType":"YulFunctionCall","src":"1837:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1828:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1906:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1915:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1923:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1908:6:139"},"nodeType":"YulFunctionCall","src":"1908:22:139"},"nodeType":"YulExpressionStatement","src":"1908:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1875:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1896:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1889:6:139"},"nodeType":"YulFunctionCall","src":"1889:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1882:6:139"},"nodeType":"YulFunctionCall","src":"1882:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1872:2:139"},"nodeType":"YulFunctionCall","src":"1872:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1865:6:139"},"nodeType":"YulFunctionCall","src":"1865:40:139"},"nodeType":"YulIf","src":"1862:2:139"},{"nodeType":"YulAssignment","src":"1941:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1951:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1941:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1709:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1720:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1732:6:139","type":""}],"src":"1665:297:139"},{"body":{"nodeType":"YulBlock","src":"2052:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"2098:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2107:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2115:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2100:6:139"},"nodeType":"YulFunctionCall","src":"2100:22:139"},"nodeType":"YulExpressionStatement","src":"2100:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2073:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2082:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2069:3:139"},"nodeType":"YulFunctionCall","src":"2069:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2094:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2065:3:139"},"nodeType":"YulFunctionCall","src":"2065:32:139"},"nodeType":"YulIf","src":"2062:2:139"},{"nodeType":"YulVariableDeclaration","src":"2133:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2159:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2146:12:139"},"nodeType":"YulFunctionCall","src":"2146:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2137:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2203:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2178:24:139"},"nodeType":"YulFunctionCall","src":"2178:31:139"},"nodeType":"YulExpressionStatement","src":"2178:31:139"},{"nodeType":"YulAssignment","src":"2218:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2228:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2218:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$5767","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2018:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2029:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2041:6:139","type":""}],"src":"1967:272:139"},{"body":{"nodeType":"YulBlock","src":"2349:571:139","statements":[{"body":{"nodeType":"YulBlock","src":"2396:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2405:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2413:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2398:6:139"},"nodeType":"YulFunctionCall","src":"2398:22:139"},"nodeType":"YulExpressionStatement","src":"2398:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2370:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2366:3:139"},"nodeType":"YulFunctionCall","src":"2366:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2391:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2362:3:139"},"nodeType":"YulFunctionCall","src":"2362:33:139"},"nodeType":"YulIf","src":"2359:2:139"},{"nodeType":"YulVariableDeclaration","src":"2431:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2451:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2445:5:139"},"nodeType":"YulFunctionCall","src":"2445:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2435:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2463:34:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2485:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2493:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2481:3:139"},"nodeType":"YulFunctionCall","src":"2481:16:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2467:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2572:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2574:16:139"},"nodeType":"YulFunctionCall","src":"2574:18:139"},"nodeType":"YulExpressionStatement","src":"2574:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2515:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"2527:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2512:2:139"},"nodeType":"YulFunctionCall","src":"2512:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2551:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2563:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2548:2:139"},"nodeType":"YulFunctionCall","src":"2548:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2509:2:139"},"nodeType":"YulFunctionCall","src":"2509:62:139"},"nodeType":"YulIf","src":"2506:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2610:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2614:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2603:6:139"},"nodeType":"YulFunctionCall","src":"2603:22:139"},"nodeType":"YulExpressionStatement","src":"2603:22:139"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2641:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2678:9:139"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"2649:28:139"},"nodeType":"YulFunctionCall","src":"2649:39:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2634:6:139"},"nodeType":"YulFunctionCall","src":"2634:55:139"},"nodeType":"YulExpressionStatement","src":"2634:55:139"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2709:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2717:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:139"},"nodeType":"YulFunctionCall","src":"2705:15:139"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2755:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2766:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2751:3:139"},"nodeType":"YulFunctionCall","src":"2751:18:139"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"2722:28:139"},"nodeType":"YulFunctionCall","src":"2722:48:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:139"},"nodeType":"YulFunctionCall","src":"2698:73:139"},"nodeType":"YulExpressionStatement","src":"2698:73:139"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2791:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2799:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2787:3:139"},"nodeType":"YulFunctionCall","src":"2787:15:139"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2814:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2825:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2810:3:139"},"nodeType":"YulFunctionCall","src":"2810:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2804:5:139"},"nodeType":"YulFunctionCall","src":"2804:25:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2780:6:139"},"nodeType":"YulFunctionCall","src":"2780:50:139"},"nodeType":"YulExpressionStatement","src":"2780:50:139"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2850:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2858:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2846:3:139"},"nodeType":"YulFunctionCall","src":"2846:15:139"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2873:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2884:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2869:3:139"},"nodeType":"YulFunctionCall","src":"2869:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2863:5:139"},"nodeType":"YulFunctionCall","src":"2863:25:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2839:6:139"},"nodeType":"YulFunctionCall","src":"2839:50:139"},"nodeType":"YulExpressionStatement","src":"2839:50:139"},{"nodeType":"YulAssignment","src":"2898:16:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2908:6:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2898:6:139"}]}]},"name":"abi_decode_tuple_t_struct$_Point_$34884_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2315:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2326:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2338:6:139","type":""}],"src":"2244:676:139"},{"body":{"nodeType":"YulBlock","src":"2995:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"3041:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3050:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3058:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3043:6:139"},"nodeType":"YulFunctionCall","src":"3043:22:139"},"nodeType":"YulExpressionStatement","src":"3043:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3016:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3025:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3012:3:139"},"nodeType":"YulFunctionCall","src":"3012:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3037:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3008:3:139"},"nodeType":"YulFunctionCall","src":"3008:32:139"},"nodeType":"YulIf","src":"3005:2:139"},{"nodeType":"YulAssignment","src":"3076:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3099:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3086:12:139"},"nodeType":"YulFunctionCall","src":"3086:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3076:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2961:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2972:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2984:6:139","type":""}],"src":"2925:190:139"},{"body":{"nodeType":"YulBlock","src":"3201:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"3247:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3256:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3264:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3249:6:139"},"nodeType":"YulFunctionCall","src":"3249:22:139"},"nodeType":"YulExpressionStatement","src":"3249:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3222:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3231:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3218:3:139"},"nodeType":"YulFunctionCall","src":"3218:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3243:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3214:3:139"},"nodeType":"YulFunctionCall","src":"3214:32:139"},"nodeType":"YulIf","src":"3211:2:139"},{"nodeType":"YulAssignment","src":"3282:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3298:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3292:5:139"},"nodeType":"YulFunctionCall","src":"3292:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3282:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3167:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3178:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3190:6:139","type":""}],"src":"3120:194:139"},{"body":{"nodeType":"YulBlock","src":"3465:1073:139","statements":[{"body":{"nodeType":"YulBlock","src":"3512:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3521:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3529:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3514:6:139"},"nodeType":"YulFunctionCall","src":"3514:22:139"},"nodeType":"YulExpressionStatement","src":"3514:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3486:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3495:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3482:3:139"},"nodeType":"YulFunctionCall","src":"3482:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3507:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3478:3:139"},"nodeType":"YulFunctionCall","src":"3478:33:139"},"nodeType":"YulIf","src":"3475:2:139"},{"nodeType":"YulAssignment","src":"3547:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3570:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3557:12:139"},"nodeType":"YulFunctionCall","src":"3557:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3547:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3589:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3599:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3593:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3610:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3640:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3651:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3636:3:139"},"nodeType":"YulFunctionCall","src":"3636:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3623:12:139"},"nodeType":"YulFunctionCall","src":"3623:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3614:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3689:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3664:24:139"},"nodeType":"YulFunctionCall","src":"3664:31:139"},"nodeType":"YulExpressionStatement","src":"3664:31:139"},{"nodeType":"YulAssignment","src":"3704:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3714:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3704:6:139"}]},{"nodeType":"YulAssignment","src":"3728:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3755:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3766:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3751:3:139"},"nodeType":"YulFunctionCall","src":"3751:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3738:12:139"},"nodeType":"YulFunctionCall","src":"3738:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3728:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3779:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3810:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3821:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3806:3:139"},"nodeType":"YulFunctionCall","src":"3806:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3793:12:139"},"nodeType":"YulFunctionCall","src":"3793:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3783:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3868:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3877:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"3885:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3870:6:139"},"nodeType":"YulFunctionCall","src":"3870:22:139"},"nodeType":"YulExpressionStatement","src":"3870:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3840:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3848:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3837:2:139"},"nodeType":"YulFunctionCall","src":"3837:30:139"},"nodeType":"YulIf","src":"3834:2:139"},{"nodeType":"YulVariableDeclaration","src":"3903:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3917:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3928:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:139"},"nodeType":"YulFunctionCall","src":"3913:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3907:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3983:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3992:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"4000:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3985:6:139"},"nodeType":"YulFunctionCall","src":"3985:22:139"},"nodeType":"YulExpressionStatement","src":"3985:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3962:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3966:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3958:3:139"},"nodeType":"YulFunctionCall","src":"3958:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3973:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3954:3:139"},"nodeType":"YulFunctionCall","src":"3954:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3947:6:139"},"nodeType":"YulFunctionCall","src":"3947:35:139"},"nodeType":"YulIf","src":"3944:2:139"},{"nodeType":"YulVariableDeclaration","src":"4018:26:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4041:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4028:12:139"},"nodeType":"YulFunctionCall","src":"4028:16:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4022:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4053:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4120:2:139"}],"functionName":{"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulIdentifier","src":"4080:39:139"},"nodeType":"YulFunctionCall","src":"4080:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4064:15:139"},"nodeType":"YulFunctionCall","src":"4064:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"4057:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4133:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"4146:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"4137:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4165:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"4170:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4158:6:139"},"nodeType":"YulFunctionCall","src":"4158:15:139"},"nodeType":"YulExpressionStatement","src":"4158:15:139"},{"nodeType":"YulAssignment","src":"4182:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4193:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4198:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4189:3:139"},"nodeType":"YulFunctionCall","src":"4189:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4182:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"4210:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4225:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4229:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4221:3:139"},"nodeType":"YulFunctionCall","src":"4221:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"4214:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4286:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4295:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"4303:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4288:6:139"},"nodeType":"YulFunctionCall","src":"4288:22:139"},"nodeType":"YulExpressionStatement","src":"4288:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4255:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4263:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"4266:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4259:3:139"},"nodeType":"YulFunctionCall","src":"4259:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4251:3:139"},"nodeType":"YulFunctionCall","src":"4251:19:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4272:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4247:3:139"},"nodeType":"YulFunctionCall","src":"4247:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4277:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4244:2:139"},"nodeType":"YulFunctionCall","src":"4244:41:139"},"nodeType":"YulIf","src":"4241:2:139"},{"nodeType":"YulVariableDeclaration","src":"4321:15:139","value":{"name":"value3","nodeType":"YulIdentifier","src":"4330:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4325:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4390:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4411:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4429:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4416:12:139"},"nodeType":"YulFunctionCall","src":"4416:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4404:6:139"},"nodeType":"YulFunctionCall","src":"4404:30:139"},"nodeType":"YulExpressionStatement","src":"4404:30:139"},{"nodeType":"YulAssignment","src":"4447:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4458:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4463:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4454:3:139"},"nodeType":"YulFunctionCall","src":"4454:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4447:3:139"}]},{"nodeType":"YulAssignment","src":"4479:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4490:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4495:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4486:3:139"},"nodeType":"YulFunctionCall","src":"4486:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"4479:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4356:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"4359:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4353:2:139"},"nodeType":"YulFunctionCall","src":"4353:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4363:18:139","statements":[{"nodeType":"YulAssignment","src":"4365:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4374:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"4377:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4370:3:139"},"nodeType":"YulFunctionCall","src":"4370:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4365:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"4349:3:139","statements":[]},"src":"4345:163:139"},{"nodeType":"YulAssignment","src":"4517:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"4527:5:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4517:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_uint256t_array$_t_bytes32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3407:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3418:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3430:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3438:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3446:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3454:6:139","type":""}],"src":"3319:1219:139"},{"body":{"nodeType":"YulBlock","src":"4644:102:139","statements":[{"nodeType":"YulAssignment","src":"4654:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4666:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4677:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4662:3:139"},"nodeType":"YulFunctionCall","src":"4662:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4654:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4696:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4711:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4727:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4732:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4723:3:139"},"nodeType":"YulFunctionCall","src":"4723:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4736:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4719:3:139"},"nodeType":"YulFunctionCall","src":"4719:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4707:3:139"},"nodeType":"YulFunctionCall","src":"4707:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4689:6:139"},"nodeType":"YulFunctionCall","src":"4689:51:139"},"nodeType":"YulExpressionStatement","src":"4689:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4613:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4624:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4635:4:139","type":""}],"src":"4543:203:139"},{"body":{"nodeType":"YulBlock","src":"4880:145:139","statements":[{"nodeType":"YulAssignment","src":"4890:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4902:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4913:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4898:3:139"},"nodeType":"YulFunctionCall","src":"4898:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4890:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4932:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4947:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4963:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4968:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4959:3:139"},"nodeType":"YulFunctionCall","src":"4959:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4972:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4955:3:139"},"nodeType":"YulFunctionCall","src":"4955:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4943:3:139"},"nodeType":"YulFunctionCall","src":"4943:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4925:6:139"},"nodeType":"YulFunctionCall","src":"4925:51:139"},"nodeType":"YulExpressionStatement","src":"4925:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4996:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5007:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4992:3:139"},"nodeType":"YulFunctionCall","src":"4992:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5012:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4985:6:139"},"nodeType":"YulFunctionCall","src":"4985:34:139"},"nodeType":"YulExpressionStatement","src":"4985:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4841:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4852:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4860:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4871:4:139","type":""}],"src":"4751:274:139"},{"body":{"nodeType":"YulBlock","src":"5125:92:139","statements":[{"nodeType":"YulAssignment","src":"5135:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5147:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5158:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5143:3:139"},"nodeType":"YulFunctionCall","src":"5143:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5135:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5177:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5202:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5195:6:139"},"nodeType":"YulFunctionCall","src":"5195:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5188:6:139"},"nodeType":"YulFunctionCall","src":"5188:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5170:6:139"},"nodeType":"YulFunctionCall","src":"5170:41:139"},"nodeType":"YulExpressionStatement","src":"5170:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5094:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5105:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5116:4:139","type":""}],"src":"5030:187:139"},{"body":{"nodeType":"YulBlock","src":"5338:102:139","statements":[{"nodeType":"YulAssignment","src":"5348:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5360:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5371:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5356:3:139"},"nodeType":"YulFunctionCall","src":"5356:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5348:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5390:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5405:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5421:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5426:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5417:3:139"},"nodeType":"YulFunctionCall","src":"5417:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5430:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5413:3:139"},"nodeType":"YulFunctionCall","src":"5413:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5401:3:139"},"nodeType":"YulFunctionCall","src":"5401:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:139"},"nodeType":"YulFunctionCall","src":"5383:51:139"},"nodeType":"YulExpressionStatement","src":"5383:51:139"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5307:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5318:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5329:4:139","type":""}],"src":"5222:218:139"},{"body":{"nodeType":"YulBlock","src":"5566:102:139","statements":[{"nodeType":"YulAssignment","src":"5576:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5588:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5599:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5584:3:139"},"nodeType":"YulFunctionCall","src":"5584:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5576:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5618:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5633:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5649:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5654:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5645:3:139"},"nodeType":"YulFunctionCall","src":"5645:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5658:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5641:3:139"},"nodeType":"YulFunctionCall","src":"5641:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5629:3:139"},"nodeType":"YulFunctionCall","src":"5629:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5611:6:139"},"nodeType":"YulFunctionCall","src":"5611:51:139"},"nodeType":"YulExpressionStatement","src":"5611:51:139"}]},"name":"abi_encode_tuple_t_contract$_INFTLocker_$34923__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5535:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5546:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5557:4:139","type":""}],"src":"5445:223:139"},{"body":{"nodeType":"YulBlock","src":"5806:102:139","statements":[{"nodeType":"YulAssignment","src":"5816:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5828:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5839:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5824:3:139"},"nodeType":"YulFunctionCall","src":"5824:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5816:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5858:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5873:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5889:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5894:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5885:3:139"},"nodeType":"YulFunctionCall","src":"5885:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5898:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5881:3:139"},"nodeType":"YulFunctionCall","src":"5881:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5869:3:139"},"nodeType":"YulFunctionCall","src":"5869:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5851:6:139"},"nodeType":"YulFunctionCall","src":"5851:51:139"},"nodeType":"YulExpressionStatement","src":"5851:51:139"}]},"name":"abi_encode_tuple_t_contract$_IPendingFeeDistributor_$35391__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5775:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5786:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5797:4:139","type":""}],"src":"5673:235:139"},{"body":{"nodeType":"YulBlock","src":"6087:155:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6104:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6115:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6097:6:139"},"nodeType":"YulFunctionCall","src":"6097:21:139"},"nodeType":"YulExpressionStatement","src":"6097:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6138:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6149:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6134:3:139"},"nodeType":"YulFunctionCall","src":"6134:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6154:1:139","type":"","value":"6"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6127:6:139"},"nodeType":"YulFunctionCall","src":"6127:29:139"},"nodeType":"YulExpressionStatement","src":"6127:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6176:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6187:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6172:3:139"},"nodeType":"YulFunctionCall","src":"6172:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6192:8:139","type":"","value":"killed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6165:6:139"},"nodeType":"YulFunctionCall","src":"6165:36:139"},"nodeType":"YulExpressionStatement","src":"6165:36:139"},{"nodeType":"YulAssignment","src":"6210:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6222:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6233:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6218:3:139"},"nodeType":"YulFunctionCall","src":"6218:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6210:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_19fb65e971d6578b6e960dc635ad47d96b3607ad493bd55450cb8b6e5ba72fef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6064:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6078:4:139","type":""}],"src":"5913:329:139"},{"body":{"nodeType":"YulBlock","src":"6421:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6438:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6449:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6431:6:139"},"nodeType":"YulFunctionCall","src":"6431:21:139"},"nodeType":"YulExpressionStatement","src":"6431:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6472:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6483:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6468:3:139"},"nodeType":"YulFunctionCall","src":"6468:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6488:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6461:6:139"},"nodeType":"YulFunctionCall","src":"6461:30:139"},"nodeType":"YulExpressionStatement","src":"6461:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6511:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6522:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6507:3:139"},"nodeType":"YulFunctionCall","src":"6507:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6527:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6500:6:139"},"nodeType":"YulFunctionCall","src":"6500:62:139"},"nodeType":"YulExpressionStatement","src":"6500:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6582:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6593:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6578:3:139"},"nodeType":"YulFunctionCall","src":"6578:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6598:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6571:6:139"},"nodeType":"YulFunctionCall","src":"6571:36:139"},"nodeType":"YulExpressionStatement","src":"6571:36:139"},{"nodeType":"YulAssignment","src":"6616:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6628:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6639:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6624:3:139"},"nodeType":"YulFunctionCall","src":"6624:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6616:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6398:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6412:4:139","type":""}],"src":"6247:402:139"},{"body":{"nodeType":"YulBlock","src":"6828:235:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6845:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6856:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6838:6:139"},"nodeType":"YulFunctionCall","src":"6838:21:139"},"nodeType":"YulExpressionStatement","src":"6838:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6879:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6890:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6875:3:139"},"nodeType":"YulFunctionCall","src":"6875:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6895:2:139","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6868:6:139"},"nodeType":"YulFunctionCall","src":"6868:30:139"},"nodeType":"YulExpressionStatement","src":"6868:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6918:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6929:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6914:3:139"},"nodeType":"YulFunctionCall","src":"6914:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6934:34:139","type":"","value":"operator: zero address given for"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6907:6:139"},"nodeType":"YulFunctionCall","src":"6907:62:139"},"nodeType":"YulExpressionStatement","src":"6907:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6989:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7000:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6985:3:139"},"nodeType":"YulFunctionCall","src":"6985:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7005:15:139","type":"","value":" new operator"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6978:6:139"},"nodeType":"YulFunctionCall","src":"6978:43:139"},"nodeType":"YulExpressionStatement","src":"6978:43:139"},{"nodeType":"YulAssignment","src":"7030:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7042:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7053:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7038:3:139"},"nodeType":"YulFunctionCall","src":"7038:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7030:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_756508c1c0554725dd91ce0028667672a5318d736a5e4bcd98b6bc8fe98c3dc7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6805:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6819:4:139","type":""}],"src":"6654:409:139"},{"body":{"nodeType":"YulBlock","src":"7242:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7259:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7270:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7252:6:139"},"nodeType":"YulFunctionCall","src":"7252:21:139"},"nodeType":"YulExpressionStatement","src":"7252:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7293:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7304:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7289:3:139"},"nodeType":"YulFunctionCall","src":"7289:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7309:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7282:6:139"},"nodeType":"YulFunctionCall","src":"7282:30:139"},"nodeType":"YulExpressionStatement","src":"7282:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7332:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7343:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7328:3:139"},"nodeType":"YulFunctionCall","src":"7328:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7348:16:139","type":"","value":"nft not staked"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7321:6:139"},"nodeType":"YulFunctionCall","src":"7321:44:139"},"nodeType":"YulExpressionStatement","src":"7321:44:139"},{"nodeType":"YulAssignment","src":"7374:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7386:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7397:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7382:3:139"},"nodeType":"YulFunctionCall","src":"7382:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7374:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_933eda08efc046ad0742d73acd2de3be0a5db02fb49fab1396b2b64b8ea18a61__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7219:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7233:4:139","type":""}],"src":"7068:338:139"},{"body":{"nodeType":"YulBlock","src":"7585:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7602:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7613:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7595:6:139"},"nodeType":"YulFunctionCall","src":"7595:21:139"},"nodeType":"YulExpressionStatement","src":"7595:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7636:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7647:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7632:3:139"},"nodeType":"YulFunctionCall","src":"7632:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7652:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7625:6:139"},"nodeType":"YulFunctionCall","src":"7625:30:139"},"nodeType":"YulExpressionStatement","src":"7625:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7675:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7686:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7671:3:139"},"nodeType":"YulFunctionCall","src":"7671:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7691:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7664:6:139"},"nodeType":"YulFunctionCall","src":"7664:62:139"},"nodeType":"YulExpressionStatement","src":"7664:62:139"},{"nodeType":"YulAssignment","src":"7735:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7747:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7758:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7743:3:139"},"nodeType":"YulFunctionCall","src":"7743:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7735:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7562:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7576:4:139","type":""}],"src":"7411:356:139"},{"body":{"nodeType":"YulBlock","src":"7946:177:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7963:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7974:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7956:6:139"},"nodeType":"YulFunctionCall","src":"7956:21:139"},"nodeType":"YulExpressionStatement","src":"7956:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7997:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8008:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7993:3:139"},"nodeType":"YulFunctionCall","src":"7993:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8013:2:139","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7986:6:139"},"nodeType":"YulFunctionCall","src":"7986:30:139"},"nodeType":"YulExpressionStatement","src":"7986:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8036:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8047:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8032:3:139"},"nodeType":"YulFunctionCall","src":"8032:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8052:29:139","type":"","value":"not operator or not allowed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8025:6:139"},"nodeType":"YulFunctionCall","src":"8025:57:139"},"nodeType":"YulExpressionStatement","src":"8025:57:139"},{"nodeType":"YulAssignment","src":"8091:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8103:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8114:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8099:3:139"},"nodeType":"YulFunctionCall","src":"8099:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8091:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a552d007bdf84b1176e7e3f80a4df813ab53be2ec5b2ac060b79207ce8ef548a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7923:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7937:4:139","type":""}],"src":"7772:351:139"},{"body":{"nodeType":"YulBlock","src":"8302:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8319:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8330:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8312:6:139"},"nodeType":"YulFunctionCall","src":"8312:21:139"},"nodeType":"YulExpressionStatement","src":"8312:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8353:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8364:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8349:3:139"},"nodeType":"YulFunctionCall","src":"8349:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8369:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8342:6:139"},"nodeType":"YulFunctionCall","src":"8342:30:139"},"nodeType":"YulExpressionStatement","src":"8342:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8392:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8403:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8388:3:139"},"nodeType":"YulFunctionCall","src":"8388:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8408:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8381:6:139"},"nodeType":"YulFunctionCall","src":"8381:61:139"},"nodeType":"YulExpressionStatement","src":"8381:61:139"},{"nodeType":"YulAssignment","src":"8451:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8463:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8474:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8459:3:139"},"nodeType":"YulFunctionCall","src":"8459:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8451:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8279:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8293:4:139","type":""}],"src":"8128:355:139"},{"body":{"nodeType":"YulBlock","src":"8589:76:139","statements":[{"nodeType":"YulAssignment","src":"8599:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8611:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8622:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8607:3:139"},"nodeType":"YulFunctionCall","src":"8607:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8599:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8641:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8652:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8634:6:139"},"nodeType":"YulFunctionCall","src":"8634:25:139"},"nodeType":"YulExpressionStatement","src":"8634:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8558:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8569:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8580:4:139","type":""}],"src":"8488:177:139"},{"body":{"nodeType":"YulBlock","src":"8905:642:139","statements":[{"nodeType":"YulVariableDeclaration","src":"8915:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8933:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8944:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8929:3:139"},"nodeType":"YulFunctionCall","src":"8929:19:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"8919:6:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8964:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8975:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8957:6:139"},"nodeType":"YulFunctionCall","src":"8957:25:139"},"nodeType":"YulExpressionStatement","src":"8957:25:139"},{"nodeType":"YulVariableDeclaration","src":"8991:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"9001:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8995:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9023:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9034:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9019:3:139"},"nodeType":"YulFunctionCall","src":"9019:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9043:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9059:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9064:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9055:3:139"},"nodeType":"YulFunctionCall","src":"9055:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"9068:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9051:3:139"},"nodeType":"YulFunctionCall","src":"9051:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9039:3:139"},"nodeType":"YulFunctionCall","src":"9039:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9012:6:139"},"nodeType":"YulFunctionCall","src":"9012:60:139"},"nodeType":"YulExpressionStatement","src":"9012:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9092:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9103:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9088:3:139"},"nodeType":"YulFunctionCall","src":"9088:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9108:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9081:6:139"},"nodeType":"YulFunctionCall","src":"9081:34:139"},"nodeType":"YulExpressionStatement","src":"9081:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9135:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9146:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9131:3:139"},"nodeType":"YulFunctionCall","src":"9131:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9151:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9124:6:139"},"nodeType":"YulFunctionCall","src":"9124:31:139"},"nodeType":"YulExpressionStatement","src":"9124:31:139"},{"nodeType":"YulVariableDeclaration","src":"9164:17:139","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"9175:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"9168:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9190:27:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9210:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9204:5:139"},"nodeType":"YulFunctionCall","src":"9204:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9194:6:139","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"9233:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"9241:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9226:6:139"},"nodeType":"YulFunctionCall","src":"9226:22:139"},"nodeType":"YulExpressionStatement","src":"9226:22:139"},{"nodeType":"YulAssignment","src":"9257:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9268:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9279:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9264:3:139"},"nodeType":"YulFunctionCall","src":"9264:19:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9257:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"9292:29:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9310:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9318:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9306:3:139"},"nodeType":"YulFunctionCall","src":"9306:15:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"9296:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9330:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"9339:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9334:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9401:120:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9422:3:139"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9433:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9427:5:139"},"nodeType":"YulFunctionCall","src":"9427:13:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9415:6:139"},"nodeType":"YulFunctionCall","src":"9415:26:139"},"nodeType":"YulExpressionStatement","src":"9415:26:139"},{"nodeType":"YulAssignment","src":"9454:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9465:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9470:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9461:3:139"},"nodeType":"YulFunctionCall","src":"9461:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9454:3:139"}]},{"nodeType":"YulAssignment","src":"9486:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9500:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9508:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9496:3:139"},"nodeType":"YulFunctionCall","src":"9496:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9486:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9363:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"9366:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9360:2:139"},"nodeType":"YulFunctionCall","src":"9360:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9374:18:139","statements":[{"nodeType":"YulAssignment","src":"9376:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9385:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"9388:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9381:3:139"},"nodeType":"YulFunctionCall","src":"9381:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9376:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"9356:3:139","statements":[]},"src":"9352:169:139"},{"nodeType":"YulAssignment","src":"9530:11:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"9538:3:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9530:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__to_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8850:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8861:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8869:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8877:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8885:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8896:4:139","type":""}],"src":"8670:877:139"},{"body":{"nodeType":"YulBlock","src":"9681:119:139","statements":[{"nodeType":"YulAssignment","src":"9691:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9703:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9714:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9699:3:139"},"nodeType":"YulFunctionCall","src":"9699:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9691:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9733:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9744:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9726:6:139"},"nodeType":"YulFunctionCall","src":"9726:25:139"},"nodeType":"YulExpressionStatement","src":"9726:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9771:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9782:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9767:3:139"},"nodeType":"YulFunctionCall","src":"9767:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"9787:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9760:6:139"},"nodeType":"YulFunctionCall","src":"9760:34:139"},"nodeType":"YulExpressionStatement","src":"9760:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9642:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9653:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9661:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9672:4:139","type":""}],"src":"9552:248:139"},{"body":{"nodeType":"YulBlock","src":"9990:206:139","statements":[{"nodeType":"YulAssignment","src":"10000:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10012:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10023:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10008:3:139"},"nodeType":"YulFunctionCall","src":"10008:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10000:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10043:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10054:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10036:6:139"},"nodeType":"YulFunctionCall","src":"10036:25:139"},"nodeType":"YulExpressionStatement","src":"10036:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10081:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10092:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10077:3:139"},"nodeType":"YulFunctionCall","src":"10077:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"10097:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10070:6:139"},"nodeType":"YulFunctionCall","src":"10070:34:139"},"nodeType":"YulExpressionStatement","src":"10070:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10124:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10135:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10120:3:139"},"nodeType":"YulFunctionCall","src":"10120:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"10140:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10113:6:139"},"nodeType":"YulFunctionCall","src":"10113:34:139"},"nodeType":"YulExpressionStatement","src":"10113:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10167:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10178:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10163:3:139"},"nodeType":"YulFunctionCall","src":"10163:18:139"},{"name":"value3","nodeType":"YulIdentifier","src":"10183:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10156:6:139"},"nodeType":"YulFunctionCall","src":"10156:34:139"},"nodeType":"YulExpressionStatement","src":"10156:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9935:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9946:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9954:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9962:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9970:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9981:4:139","type":""}],"src":"9805:391:139"},{"body":{"nodeType":"YulBlock","src":"10246:230:139","statements":[{"nodeType":"YulAssignment","src":"10256:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10272:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10266:5:139"},"nodeType":"YulFunctionCall","src":"10266:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10256:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"10284:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10306:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"10322:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"10328:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10318:3:139"},"nodeType":"YulFunctionCall","src":"10318:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10337:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10333:3:139"},"nodeType":"YulFunctionCall","src":"10333:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10314:3:139"},"nodeType":"YulFunctionCall","src":"10314:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10302:3:139"},"nodeType":"YulFunctionCall","src":"10302:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"10288:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10417:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"10419:16:139"},"nodeType":"YulFunctionCall","src":"10419:18:139"},"nodeType":"YulExpressionStatement","src":"10419:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10360:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"10372:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10357:2:139"},"nodeType":"YulFunctionCall","src":"10357:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10396:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"10408:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10393:2:139"},"nodeType":"YulFunctionCall","src":"10393:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"10354:2:139"},"nodeType":"YulFunctionCall","src":"10354:62:139"},"nodeType":"YulIf","src":"10351:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10455:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10459:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10448:6:139"},"nodeType":"YulFunctionCall","src":"10448:22:139"},"nodeType":"YulExpressionStatement","src":"10448:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"10226:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"10235:6:139","type":""}],"src":"10201:275:139"},{"body":{"nodeType":"YulBlock","src":"10550:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"10594:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"10596:16:139"},"nodeType":"YulFunctionCall","src":"10596:18:139"},"nodeType":"YulExpressionStatement","src":"10596:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10566:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"10574:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10563:2:139"},"nodeType":"YulFunctionCall","src":"10563:30:139"},"nodeType":"YulIf","src":"10560:2:139"},{"nodeType":"YulAssignment","src":"10625:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10641:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"10644:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10637:3:139"},"nodeType":"YulFunctionCall","src":"10637:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"10653:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10633:3:139"},"nodeType":"YulFunctionCall","src":"10633:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"10625:4:139"}]}]},"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"10530:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"10541:4:139","type":""}],"src":"10481:183:139"},{"body":{"nodeType":"YulBlock","src":"10717:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"10744:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10746:16:139"},"nodeType":"YulFunctionCall","src":"10746:18:139"},"nodeType":"YulExpressionStatement","src":"10746:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10733:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10740:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10736:3:139"},"nodeType":"YulFunctionCall","src":"10736:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10730:2:139"},"nodeType":"YulFunctionCall","src":"10730:13:139"},"nodeType":"YulIf","src":"10727:2:139"},{"nodeType":"YulAssignment","src":"10775:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10786:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10789:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10782:3:139"},"nodeType":"YulFunctionCall","src":"10782:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"10775:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10700:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10703:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"10709:3:139","type":""}],"src":"10669:128:139"},{"body":{"nodeType":"YulBlock","src":"10848:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"10879:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"10900:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10907:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10912:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10903:3:139"},"nodeType":"YulFunctionCall","src":"10903:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10893:6:139"},"nodeType":"YulFunctionCall","src":"10893:31:139"},"nodeType":"YulExpressionStatement","src":"10893:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10944:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10947:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10937:6:139"},"nodeType":"YulFunctionCall","src":"10937:15:139"},"nodeType":"YulExpressionStatement","src":"10937:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"10972:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"10975:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10965:6:139"},"nodeType":"YulFunctionCall","src":"10965:15:139"},"nodeType":"YulExpressionStatement","src":"10965:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10868:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10861:6:139"},"nodeType":"YulFunctionCall","src":"10861:9:139"},"nodeType":"YulIf","src":"10858:2:139"},{"nodeType":"YulAssignment","src":"10999:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11008:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11011:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11004:3:139"},"nodeType":"YulFunctionCall","src":"11004:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"10999:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10833:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10836:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"10842:1:139","type":""}],"src":"10802:217:139"},{"body":{"nodeType":"YulBlock","src":"11075:641:139","statements":[{"nodeType":"YulVariableDeclaration","src":"11085:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11107:2:139","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"11111:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"11096:10:139"},"nodeType":"YulFunctionCall","src":"11096:17:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"11089:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11122:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11144:2:139","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"11148:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"11133:10:139"},"nodeType":"YulFunctionCall","src":"11133:17:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"11126:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11159:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11177:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"11182:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11173:3:139"},"nodeType":"YulFunctionCall","src":"11173:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11186:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11169:3:139"},"nodeType":"YulFunctionCall","src":"11169:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11163:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11197:27:139","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"11211:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"11216:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"11207:3:139"},"nodeType":"YulFunctionCall","src":"11207:17:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11201:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11233:27:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"11247:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"11252:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"11243:3:139"},"nodeType":"YulFunctionCall","src":"11243:17:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"11237:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"11312:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11314:16:139"},"nodeType":"YulFunctionCall","src":"11314:18:139"},"nodeType":"YulExpressionStatement","src":"11314:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"11280:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"11284:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11276:3:139"},"nodeType":"YulFunctionCall","src":"11276:11:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"11292:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11301:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"11305:3:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11297:3:139"},"nodeType":"YulFunctionCall","src":"11297:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11289:2:139"},"nodeType":"YulFunctionCall","src":"11289:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11272:3:139"},"nodeType":"YulFunctionCall","src":"11272:39:139"},"nodeType":"YulIf","src":"11269:2:139"},{"nodeType":"YulVariableDeclaration","src":"11343:34:139","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11365:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"11370:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11361:3:139"},"nodeType":"YulFunctionCall","src":"11361:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11374:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11357:3:139"},"nodeType":"YulFunctionCall","src":"11357:19:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11353:3:139"},"nodeType":"YulFunctionCall","src":"11353:24:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"11347:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11386:27:139","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"11400:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"11405:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11396:3:139"},"nodeType":"YulFunctionCall","src":"11396:17:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"11390:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"11467:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11469:16:139"},"nodeType":"YulFunctionCall","src":"11469:18:139"},"nodeType":"YulExpressionStatement","src":"11469:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"11433:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"11437:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11429:3:139"},"nodeType":"YulFunctionCall","src":"11429:11:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"11446:3:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"11456:2:139"},{"name":"x_1","nodeType":"YulIdentifier","src":"11460:3:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"11451:4:139"},"nodeType":"YulFunctionCall","src":"11451:13:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11442:3:139"},"nodeType":"YulFunctionCall","src":"11442:23:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11425:3:139"},"nodeType":"YulFunctionCall","src":"11425:41:139"},"nodeType":"YulIf","src":"11422:2:139"},{"nodeType":"YulVariableDeclaration","src":"11498:27:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"11512:3:139"},{"name":"product","nodeType":"YulIdentifier","src":"11517:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11508:3:139"},"nodeType":"YulFunctionCall","src":"11508:17:139"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"11502:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"11579:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11581:16:139"},"nodeType":"YulFunctionCall","src":"11581:18:139"},"nodeType":"YulExpressionStatement","src":"11581:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"11545:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"11549:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11541:3:139"},"nodeType":"YulFunctionCall","src":"11541:11:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"11558:3:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"11568:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"11572:3:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"11563:4:139"},"nodeType":"YulFunctionCall","src":"11563:13:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11554:3:139"},"nodeType":"YulFunctionCall","src":"11554:23:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11537:3:139"},"nodeType":"YulFunctionCall","src":"11537:41:139"},"nodeType":"YulIf","src":"11534:2:139"},{"body":{"nodeType":"YulBlock","src":"11655:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11657:16:139"},"nodeType":"YulFunctionCall","src":"11657:18:139"},"nodeType":"YulExpressionStatement","src":"11657:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"11621:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"11625:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11617:3:139"},"nodeType":"YulFunctionCall","src":"11617:11:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"11634:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11644:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"11648:3:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"11639:4:139"},"nodeType":"YulFunctionCall","src":"11639:13:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11630:3:139"},"nodeType":"YulFunctionCall","src":"11630:23:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11613:3:139"},"nodeType":"YulFunctionCall","src":"11613:41:139"},"nodeType":"YulIf","src":"11610:2:139"},{"nodeType":"YulAssignment","src":"11686:24:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"11701:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"11706:3:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"11697:3:139"},"nodeType":"YulFunctionCall","src":"11697:13:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"11686:7:139"}]}]},"name":"checked_mul_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11054:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"11057:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"11063:7:139","type":""}],"src":"11024:692:139"},{"body":{"nodeType":"YulBlock","src":"11773:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"11832:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11834:16:139"},"nodeType":"YulFunctionCall","src":"11834:18:139"},"nodeType":"YulExpressionStatement","src":"11834:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11804:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11797:6:139"},"nodeType":"YulFunctionCall","src":"11797:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11790:6:139"},"nodeType":"YulFunctionCall","src":"11790:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11812:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11823:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11819:3:139"},"nodeType":"YulFunctionCall","src":"11819:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"11827:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11815:3:139"},"nodeType":"YulFunctionCall","src":"11815:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11809:2:139"},"nodeType":"YulFunctionCall","src":"11809:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11786:3:139"},"nodeType":"YulFunctionCall","src":"11786:45:139"},"nodeType":"YulIf","src":"11783:2:139"},{"nodeType":"YulAssignment","src":"11863:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11878:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11881:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"11874:3:139"},"nodeType":"YulFunctionCall","src":"11874:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"11863:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11752:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"11755:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"11761:7:139","type":""}],"src":"11721:168:139"},{"body":{"nodeType":"YulBlock","src":"11942:323:139","statements":[{"nodeType":"YulVariableDeclaration","src":"11952:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11974:2:139","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"11978:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"11963:10:139"},"nodeType":"YulFunctionCall","src":"11963:17:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"11956:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11989:28:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12011:2:139","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"12015:1:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"12000:10:139"},"nodeType":"YulFunctionCall","src":"12000:17:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"11993:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12026:24:139","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"12040:3:139"},{"name":"diff","nodeType":"YulIdentifier","src":"12045:4:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12036:3:139"},"nodeType":"YulFunctionCall","src":"12036:14:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12030:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"12124:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12126:16:139"},"nodeType":"YulFunctionCall","src":"12126:18:139"},"nodeType":"YulExpressionStatement","src":"12126:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12073:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12066:6:139"},"nodeType":"YulFunctionCall","src":"12066:10:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"12082:3:139"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12103:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"12108:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12099:3:139"},"nodeType":"YulFunctionCall","src":"12099:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12112:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12095:3:139"},"nodeType":"YulFunctionCall","src":"12095:19:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12091:3:139"},"nodeType":"YulFunctionCall","src":"12091:24:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"12117:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12087:3:139"},"nodeType":"YulFunctionCall","src":"12087:34:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12078:3:139"},"nodeType":"YulFunctionCall","src":"12078:44:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12062:3:139"},"nodeType":"YulFunctionCall","src":"12062:61:139"},"nodeType":"YulIf","src":"12059:2:139"},{"body":{"nodeType":"YulBlock","src":"12207:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12209:16:139"},"nodeType":"YulFunctionCall","src":"12209:18:139"},"nodeType":"YulExpressionStatement","src":"12209:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12162:2:139"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"12170:3:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12187:3:139","type":"","value":"127"},{"kind":"number","nodeType":"YulLiteral","src":"12192:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12183:3:139"},"nodeType":"YulFunctionCall","src":"12183:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12196:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12179:3:139"},"nodeType":"YulFunctionCall","src":"12179:19:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"12200:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12175:3:139"},"nodeType":"YulFunctionCall","src":"12175:29:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12166:3:139"},"nodeType":"YulFunctionCall","src":"12166:39:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12158:3:139"},"nodeType":"YulFunctionCall","src":"12158:48:139"},"nodeType":"YulIf","src":"12155:2:139"},{"nodeType":"YulAssignment","src":"12238:21:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"12250:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"12255:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12246:3:139"},"nodeType":"YulFunctionCall","src":"12246:13:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12238:4:139"}]}]},"name":"checked_sub_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11924:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"11927:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"11933:4:139","type":""}],"src":"11894:371:139"},{"body":{"nodeType":"YulBlock","src":"12319:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"12341:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12343:16:139"},"nodeType":"YulFunctionCall","src":"12343:18:139"},"nodeType":"YulExpressionStatement","src":"12343:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12335:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"12338:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12332:2:139"},"nodeType":"YulFunctionCall","src":"12332:8:139"},"nodeType":"YulIf","src":"12329:2:139"},{"nodeType":"YulAssignment","src":"12372:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12384:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"12387:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12380:3:139"},"nodeType":"YulFunctionCall","src":"12380:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12372:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12301:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"12304:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12310:4:139","type":""}],"src":"12270:125:139"},{"body":{"nodeType":"YulBlock","src":"12447:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"12478:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12480:16:139"},"nodeType":"YulFunctionCall","src":"12480:18:139"},"nodeType":"YulExpressionStatement","src":"12480:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12463:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12474:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12470:3:139"},"nodeType":"YulFunctionCall","src":"12470:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12460:2:139"},"nodeType":"YulFunctionCall","src":"12460:17:139"},"nodeType":"YulIf","src":"12457:2:139"},{"nodeType":"YulAssignment","src":"12509:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12520:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"12527:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12516:3:139"},"nodeType":"YulFunctionCall","src":"12516:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12509:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12429:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"12439:3:139","type":""}],"src":"12400:135:139"},{"body":{"nodeType":"YulBlock","src":"12572:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12589:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12596:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12601:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12592:3:139"},"nodeType":"YulFunctionCall","src":"12592:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12582:6:139"},"nodeType":"YulFunctionCall","src":"12582:31:139"},"nodeType":"YulExpressionStatement","src":"12582:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12629:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12632:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12622:6:139"},"nodeType":"YulFunctionCall","src":"12622:15:139"},"nodeType":"YulExpressionStatement","src":"12622:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12653:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12656:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12646:6:139"},"nodeType":"YulFunctionCall","src":"12646:15:139"},"nodeType":"YulExpressionStatement","src":"12646:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12540:127:139"},{"body":{"nodeType":"YulBlock","src":"12704:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12721:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12728:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12733:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12724:3:139"},"nodeType":"YulFunctionCall","src":"12724:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12714:6:139"},"nodeType":"YulFunctionCall","src":"12714:31:139"},"nodeType":"YulExpressionStatement","src":"12714:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12761:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12764:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12754:6:139"},"nodeType":"YulFunctionCall","src":"12754:15:139"},"nodeType":"YulExpressionStatement","src":"12754:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12785:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12788:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12778:6:139"},"nodeType":"YulFunctionCall","src":"12778:15:139"},"nodeType":"YulExpressionStatement","src":"12778:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"12672:127:139"},{"body":{"nodeType":"YulBlock","src":"12849:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"12913:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12922:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12925:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12915:6:139"},"nodeType":"YulFunctionCall","src":"12915:12:139"},"nodeType":"YulExpressionStatement","src":"12915:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12872:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12883:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12898:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12903:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12894:3:139"},"nodeType":"YulFunctionCall","src":"12894:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12907:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12890:3:139"},"nodeType":"YulFunctionCall","src":"12890:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12879:3:139"},"nodeType":"YulFunctionCall","src":"12879:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12869:2:139"},"nodeType":"YulFunctionCall","src":"12869:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12862:6:139"},"nodeType":"YulFunctionCall","src":"12862:50:139"},"nodeType":"YulIf","src":"12859:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12838:5:139","type":""}],"src":"12804:131:139"}]},"contents":"{\n    { }\n    function abi_decode_int128_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, signextend(15, value))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _3 := calldataload(_2)\n        let dst := allocate_memory(array_allocation_size_array_bytes32_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _1)\n        let src := add(_2, _1)\n        if gt(add(add(_2, shl(5, _3)), _1), dataEnd) { revert(value0, value0) }\n        let i := value0\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value0 := dst_1\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$5767(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_struct$_Point_$34884_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 128)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, abi_decode_int128_fromMemory(headStart))\n        mstore(add(memPtr, 32), abi_decode_int128_fromMemory(add(headStart, 32)))\n        mstore(add(memPtr, 64), mload(add(headStart, 64)))\n        mstore(add(memPtr, 96), mload(add(headStart, 96)))\n        value0 := memPtr\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_addresst_uint256t_array$_t_bytes32_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n        value0 := calldataload(headStart)\n        let _1 := 32\n        let value := calldataload(add(headStart, _1))\n        validator_revert_address(value)\n        value1 := value\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n        let _3 := calldataload(_2)\n        let dst := allocate_memory(array_allocation_size_array_bytes32_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _1)\n        let src := add(_2, _1)\n        if gt(add(add(_2, shl(5, _3)), _1), dataEnd) { revert(value3, value3) }\n        let i := value3\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value3 := dst_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_INFTLocker_$34923__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IPendingFeeDistributor_$35391__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_19fb65e971d6578b6e960dc635ad47d96b3607ad493bd55450cb8b6e5ba72fef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 6)\n        mstore(add(headStart, 64), \"killed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_756508c1c0554725dd91ce0028667672a5318d736a5e4bcd98b6bc8fe98c3dc7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"operator: zero address given for\")\n        mstore(add(headStart, 96), \" new operator\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_933eda08efc046ad0742d73acd2de3be0a5db02fb49fab1396b2b64b8ea18a61__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"nft not staked\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a552d007bdf84b1176e7e3f80a4df813ab53be2ec5b2ac060b79207ce8ef548a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"not operator or not allowed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__to_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 128)\n        mstore(headStart, value0)\n        let _1 := 32\n        mstore(add(headStart, _1), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        let pos := tail_1\n        let length := mload(value3)\n        mstore(tail_1, length)\n        pos := add(headStart, 160)\n        let srcPtr := add(value3, _1)\n        let i := tail\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_bytes32_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_int128(x, y) -> product\n    {\n        let x_1 := signextend(15, x)\n        let y_1 := signextend(15, y)\n        let _1 := sub(shl(127, 1), 1)\n        let _2 := sgt(y_1, product)\n        let _3 := sgt(x_1, product)\n        if and(and(_3, _2), gt(x_1, div(_1, y_1))) { panic_error_0x11() }\n        let _4 := not(sub(shl(127, 1), 1))\n        let _5 := slt(y_1, product)\n        if and(and(_3, _5), slt(y_1, sdiv(_4, x_1))) { panic_error_0x11() }\n        let _6 := slt(x_1, product)\n        if and(and(_6, _2), slt(x_1, sdiv(_4, y_1))) { panic_error_0x11() }\n        if and(and(_6, _5), slt(x_1, sdiv(_1, y_1))) { panic_error_0x11() }\n        product := mul(x_1, y_1)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_int128(x, y) -> diff\n    {\n        let x_1 := signextend(15, x)\n        let y_1 := signextend(15, y)\n        let _1 := slt(y_1, diff)\n        if and(iszero(_1), slt(x_1, add(not(sub(shl(127, 1), 1)), y_1))) { panic_error_0x11() }\n        if and(_1, sgt(x_1, add(sub(shl(127, 1), 1), y_1))) { panic_error_0x11() }\n        diff := sub(x_1, y_1)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061019a5760003560e01c8063899519be116100e4578063b603cd8011610092578063b603cd801461033d578063bee5dc3214610345578063d7b96d4e1461034d578063e32890c414610366578063ed0f65aa14610386578063f2fde38b14610399578063f4359ce5146103ac578063fc0c546a146103b657600080fd5b8063899519be146102d15780638da5cb5b146102e45780638ec8468a146102f55780638fe8a10114610304578063925489a814610317578063939ea66b1461032a578063a5420e981461033357600080fd5b80634607bf601161014c5780634607bf6014610243578063570ca7351461026357806368662ea01461027d578063715018a61461029057806378e97925146102985780637d2294d0146102a15780638721b785146102c05780638736659b146102c857600080fd5b80630cc672e41461019f5780630f6592ef146101cc57806329605e77146101ed5780632971aa8e14610202578063326a940714610215578063379607f51461021d5780634456eda214610230575b600080fd5b66071afd498d000c546101b790610100900460ff1681565b60405190151581526020015b60405180910390f35b6101df6101da366004611d4c565b6103cf565b6040519081526020016101c3565b6102006101fb366004611beb565b6103f2565b005b6101df610210366004611d7c565b610406565b61020061051b565b6101df61022b366004611d4c565b610526565b6001546001600160a01b031633146101b7565b6101df610251366004611d4c565b60066020526000908152604090205481565b6001546001600160a01b03165b6040516101c39190611e35565b61020061028b366004611beb565b610562565b610200610663565b6101df60045481565b66071afd498d000c54610270906201000090046001600160a01b031681565b610200610675565b6101df60055481565b6101df6102df366004611d4c565b6106e5565b6000546001600160a01b0316610270565b6101df66038d7ea4c6800b5481565b66071afd498d000c546101b79060ff1681565b6101b7610325366004611c23565b6106fb565b6101df60085481565b6101df6201518081565b610200610986565b610200610aa0565b66038d7ea4c6800954610270906001600160a01b031681565b6101df610374366004611d4c565b60076020526000908152604090205481565b610200610394366004611beb565b610b35565b6102006103a7366004611beb565b610b6d565b6101df62093a8081565b66038d7ea4c6800a54610270906001600160a01b031681565b66038d7ea4c6800c8166038d7ea4c6800081106103eb57600080fd5b0154905081565b6103fa610be3565b61040381610c3d565b50565b60006002805414156104335760405162461bcd60e51b815260040161042a90611e82565b60405180910390fd5b60028055600061044286610d01565b66071afd498d000c549091506201000090046001600160a01b031661046857905061050e565b66071afd498d000c54604051632599081560e11b81526000916201000090046001600160a01b031690634b32102a906104ab908a908a908a908a90600401611eb9565b602060405180830381600087803b1580156104c557600080fd5b505af11580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190611d64565b90506105098183611f71565b925050505b6001600255949350505050565b61052442610ee6565b565b600060028054141561054a5760405162461bcd60e51b815260040161042a90611e82565b6002805561055782610d01565b600160025592915050565b61056a610be3565b6040516370a0823160e01b81526001600160a01b0382169063a9059cbb90339083906370a08231906105a0903090600401611e35565b60206040518083038186803b1580156105b857600080fd5b505afa1580156105cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f09190611d64565b6040518363ffffffff1660e01b815260040161060d929190611e49565b602060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611cbb565b5050565b61066b610be3565b61052460006110cb565b61067d610be3565b66071afd498d000c805460ff610100808304821615810261ff001990931692909217928390556040517fdbe6ac1081ebd8e648718341126659456f4009fcadfe1c23f66f5e61522610b2936106db9390049091161515815260200190565b60405180910390a1565b60098166038d7ea4c6800081106103eb57600080fd5b600060028054141561071f5760405162461bcd60e51b815260040161042a90611e82565b6002805566071afd498d000c5460ff161561074c5760405162461bcd60e51b815260040161042a90611e62565b600554421061075e5761075e42610ee6565b60085466071afd498d000c54610100900460ff16801561078d57506201518060085461078a9190611f71565b42115b1561079e5761079b4261111b565b50425b62093a806107ac8183611f89565b6107b6919061203b565b905060005b83518110156109765760006107f78583815181106107e957634e487b7160e01b600052603260045260246000fd5b6020026020010151846113c6565b66038d7ea4c680095486519192506000916001600160a01b0390911690636352211e9088908690811061083a57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b815260040161086091815260200190565b60206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190611c07565b90508115610961578166038d7ea4c6800b60008282546108d091906120aa565b909155505066038d7ea4c6800a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061090d9084908690600401611e49565b602060405180830381600087803b15801561092757600080fd5b505af115801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190611cbb565b505b5050808061096e906120c1565b9150506107bb565b5060019150506001600255919050565b61098e610be3565b66071afd498d000c805460ff1916600117905566038d7ea4c6800a546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906109e1903090600401611e35565b60206040518083038186803b1580156109f957600080fd5b505afa158015610a0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a319190611d64565b6040518363ffffffff1660e01b8152600401610a4e929190611e49565b602060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104039190611cbb565b6001546001600160a01b0316331480610ae0575066071afd498d000c54610100900460ff168015610ae0575062015180600854610add9190611f71565b42115b610b2c5760405162461bcd60e51b815260206004820152601b60248201527f6e6f74206f70657261746f72206f72206e6f7420616c6c6f7765640000000000604482015260640161042a565b6105244261111b565b610b3d610be3565b66071afd498d000c80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b610b75610be3565b6001600160a01b038116610bda5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042a565b610403816110cb565b6000546001600160a01b031633146105245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042a565b6001600160a01b038116610ca95760405162461bcd60e51b815260206004820152602d60248201527f6f70657261746f723a207a65726f206164647265737320676976656e20666f7260448201526c103732bb9037b832b930ba37b960991b606482015260840161042a565b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b66071afd498d000c5460009060ff1615610d2d5760405162461bcd60e51b815260040161042a90611e62565b6005544210610d3f57610d3f42610ee6565b60085466071afd498d000c54610100900460ff168015610d6e575062015180600854610d6b9190611f71565b42115b15610d7f57610d7c4261111b565b50425b62093a80610d8d8183611f89565b610d97919061203b565b90506000610da584836113c6565b66038d7ea4c68009546040516331a9108f60e11b8152600481018790529192506000916001600160a01b0390911690636352211e9060240160206040518083038186803b158015610df557600080fd5b505afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190611c07565b90508115610ede578166038d7ea4c6800b6000828254610e4d91906120aa565b909155505066038d7ea4c6800a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610e8a9084908690600401611e49565b602060405180830381600087803b158015610ea457600080fd5b505af1158015610eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edc9190611cbb565b505b509392505050565b600554600062093a80610ef98185611f89565b610f03919061203b565b905066038d7ea4c6800960009054906101000a90046001600160a01b03166001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f5b57600080fd5b505af1158015610f6f573d6000803e3d6000fd5b5050505060005b60148110156110c35781831115610f8c576110c3565b6000610f9784611901565b66038d7ea4c6800954604051638ad4c44760e01b8152600481018390529192506000916001600160a01b0390911690638ad4c4479060240160806040518083038186803b158015610fe757600080fd5b505afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190611cdb565b90506000816040015186111561104157604082015161103e90876120aa565b90505b6110708183602001516110549190611fa9565b8351611060919061205a565b6001600160801b03166000611a9c565b66038d7ea4c6800c8766038d7ea4c68000811061109d57634e487b7160e01b600052603260045260246000fd5b01555050506110af62093a8084611f71565b9250806110bb816120c1565b915050610f76565b505060055550565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b66038d7ea4c6800a546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611152903090600401611e35565b60206040518083038186803b15801561116a57600080fd5b505afa15801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190611d64565b9050600066038d7ea4c6800b54826111ba91906120aa565b66038d7ea4c6800b83905560085490915060006111d782866120aa565b60088690559050600062093a806111ee8185611f89565b6111f8919061203b565b90506000805b60148110156113835761121462093a8084611f71565b9150818810156112b9578315801561122b57508488145b15611273578560098466038d7ea4c68000811061125857634e487b7160e01b600052603260045260246000fd5b0160008282546112689190611f71565b909155506113839050565b8361127e868a6120aa565b611288908861203b565b6112929190611f89565b60098466038d7ea4c68000811061125857634e487b7160e01b600052603260045260246000fd5b831580156112c657508482145b1561130e578560098466038d7ea4c6800081106112f357634e487b7160e01b600052603260045260246000fd5b0160008282546113039190611f71565b9091555061136a9050565b8361131986846120aa565b611323908861203b565b61132d9190611f89565b60098466038d7ea4c68000811061135457634e487b7160e01b600052603260045260246000fd5b0160008282546113649190611f71565b90915550505b819450819250808061137b906120c1565b9150506111fe565b5060408051888152602081018790527fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d6910160405180910390a150505050505050565b66038d7ea4c6800954604051635d528fc360e11b8152600481018490526000916001600160a01b03169063baa51f869060240160206040518083038186803b15801561141157600080fd5b505afa158015611425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114499190611cbb565b6114865760405162461bcd60e51b815260206004820152600e60248201526d1b999d081b9bdd081cdd185ad95960921b604482015260640161042a565b66038d7ea4c680095460405163e58f594760e01b815260048101859052600091829182916001600160a01b03169063e58f59479060240160206040518083038186803b1580156114d557600080fd5b505afa1580156114e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150d9190611d64565b600454909150816115255760009450505050506118fb565b6000878152600660205260409020548061154b57611544888385611ab5565b945061155d565b60008881526007602052604090205494505b8461156757600194505b66038d7ea4c68009546040516322565a1560e11b8152600481018a9052602481018790526000916001600160a01b0316906344acb42a9060440160806040518083038186803b1580156115b957600080fd5b505afa1580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f19190611cdb565b9050816116335762093a8080600162093a8084604001516116129190611f71565b61161c91906120aa565b6116269190611f89565b611630919061203b565b91505b87821061164957600096505050505050506118fb565b82821015611655578291505b6040805160808101825260008082526020820181905291810182905260608101829052905b60328110156118755789841061168f57611875565b826040015184101580156116a35750858811155b15611782576116b3600189611f71565b9750829150858811156116f25760405180608001604052806000600f0b81526020016000600f0b81526020016000815260200160008152509250611863565b66038d7ea4c68009546040516322565a1560e11b8152600481018d9052602481018a90526001600160a01b03909116906344acb42a9060440160806040518083038186803b15801561174357600080fd5b505afa158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190611cdb565b9250611863565b600082604001518561179491906120aa565b905060006117b78460200151836117ab9190611fa9565b8551611060919061205a565b9050801580156117c65750878a115b156117d2575050611875565b80156118515766038d7ea4c6800c8666038d7ea4c68000811061180557634e487b7160e01b600052603260045260246000fd5b015460098766038d7ea4c68000811061182e57634e487b7160e01b600052603260045260246000fd5b015461183a908361203b565b6118449190611f89565b61184e908a611f71565b98505b61185e62093a8087611f71565b955050505b8061186d816120c1565b91505061167a565b5061188a8561188560018a6120aa565b611bc5565b60008b8152600760209081526040808320849055600682529182902086905581518d8152908101899052908101829052606081018790529097507fcae2990aa9af8eb1c64713b7eddb3a80bf18e49a94a13fe0d0002b5d61d58f009060800160405180910390a15093955050505050505b92915050565b60008060009050600066038d7ea4c6800960009054906101000a90046001600160a01b03166001600160a01b031663900cf0cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561195e57600080fd5b505afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190611d64565b905060005b6080811015611a93578183106119b057611a93565b600060026119be8486611f71565b6119c9906002611f71565b6119d39190611f89565b66038d7ea4c6800954604051638ad4c44760e01b8152600481018390529192506000916001600160a01b0390911690638ad4c4479060240160806040518083038186803b158015611a2357600080fd5b505afa158015611a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5b9190611cdb565b905086816040015111611a7057819450611a7e565b611a7b6001836120aa565b93505b50508080611a8b906120c1565b91505061199b565b50909392505050565b600081831015611aac5781611aae565b825b9392505050565b60008082815b6080811015611bba57818310611ad057611bba565b60006002611ade8486611f71565b611ae9906002611f71565b611af39190611f89565b66038d7ea4c68009546040516322565a1560e11b8152600481018b9052602481018390529192506000916001600160a01b03909116906344acb42a9060440160806040518083038186803b158015611b4a57600080fd5b505afa158015611b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b829190611cdb565b905087816040015111611b9757819450611ba5565b611ba26001836120aa565b93505b50508080611bb2906120c1565b915050611abb565b509095945050505050565b6000818310611aac5781611aae565b8051600f81900b8114611be657600080fd5b919050565b600060208284031215611bfc578081fd5b8135611aae81612108565b600060208284031215611c18578081fd5b8151611aae81612108565b60006020808385031215611c35578182fd5b823567ffffffffffffffff811115611c4b578283fd5b8301601f81018513611c5b578283fd5b8035611c6e611c6982611f4d565b611f1c565b80828252848201915084840188868560051b8701011115611c8d578687fd5b8694505b83851015611caf578035835260019490940193918501918501611c91565b50979650505050505050565b600060208284031215611ccc578081fd5b81518015158114611aae578182fd5b600060808284031215611cec578081fd5b6040516080810181811067ffffffffffffffff82111715611d0f57611d0f6120f2565b604052611d1b83611bd4565b8152611d2960208401611bd4565b602082015260408301516040820152606083015160608201528091505092915050565b600060208284031215611d5d578081fd5b5035919050565b600060208284031215611d75578081fd5b5051919050565b60008060008060808587031215611d91578283fd5b84359350602080860135611da481612108565b935060408601359250606086013567ffffffffffffffff811115611dc6578283fd5b8601601f81018813611dd6578283fd5b8035611de4611c6982611f4d565b8082825284820191508484018b868560051b8701011115611e03578687fd5b8694505b83851015611e25578035835260019490940193918501918501611e07565b50979a9699509497505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600690820152651ada5b1b195960d21b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600060808201868352602060018060a01b038716818501528560408501526080606085015281855180845260a0860191508287019350845b81811015611f0d57845183529383019391830191600101611ef1565b50909998505050505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611f4557611f456120f2565b604052919050565b600067ffffffffffffffff821115611f6757611f676120f2565b5060051b60200190565b60008219821115611f8457611f846120dc565b500190565b600082611fa457634e487b7160e01b81526012600452602481fd5b500490565b6000600f82810b9084900b60016001607f1b0383821384841380821684840486111615611fd857611fd86120dc565b60016001607f1b031986851282811687830587121615611ffa57611ffa6120dc565b878712925085820587128484161615612015576120156120dc565b8585058712818416161561202b5761202b6120dc565b5050509290910295945050505050565b6000816000190483118215151615612055576120556120dc565b500290565b6000600f82810b9084900b828112801560016001607f1b0319830184121615612085576120856120dc565b60016001607f1b03820183138116156120a0576120a06120dc565b5090039392505050565b6000828210156120bc576120bc6120dc565b500390565b60006000198214156120d5576120d56120dc565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040357600080fdfea264697066735822122081e3bb9385bfad6cae80759e6b2ceacd10cf4983bbaf1ecf37889eee3ed472db64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x19A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x899519BE GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0xB603CD80 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xB603CD80 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0xBEE5DC32 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xD7B96D4E EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xE32890C4 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0xED0F65AA EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0xF4359CE5 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x899519BE EQ PUSH2 0x2D1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x8EC8468A EQ PUSH2 0x2F5 JUMPI DUP1 PUSH4 0x8FE8A101 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x925489A8 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x939EA66B EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA5420E98 EQ PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4607BF60 GT PUSH2 0x14C JUMPI DUP1 PUSH4 0x4607BF60 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0x570CA735 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x68662EA0 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x7D2294D0 EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0x8721B785 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x8736659B EQ PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCC672E4 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xF6592EF EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0x29605E77 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x2971AA8E EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x326A9407 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x4456EDA2 EQ PUSH2 0x230 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C3 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x1FB CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D7C JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x51B JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH2 0x526 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1B7 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x251 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1E35 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0x562 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x663 JUMP JUMPDEST PUSH2 0x1DF PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH2 0x270 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x1DF PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH2 0x6E5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x270 JUMP JUMPDEST PUSH2 0x1DF PUSH7 0x38D7EA4C6800B SLOAD DUP2 JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH2 0x1B7 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1B7 PUSH2 0x325 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C23 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1DF PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH3 0x15180 DUP2 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x986 JUMP JUMPDEST PUSH2 0x200 PUSH2 0xAA0 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH2 0x270 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x374 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D4C JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x394 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0xB35 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0xB6D JUMP JUMPDEST PUSH2 0x1DF PUSH3 0x93A80 DUP2 JUMP JUMPDEST PUSH7 0x38D7EA4C6800A SLOAD PUSH2 0x270 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH7 0x38D7EA4C6800C DUP2 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x3EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH2 0x3FA PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0x403 DUP2 PUSH2 0xC3D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD EQ ISZERO PUSH2 0x433 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SSTORE PUSH1 0x0 PUSH2 0x442 DUP7 PUSH2 0xD01 JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD SWAP1 SWAP2 POP PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x468 JUMPI SWAP1 POP PUSH2 0x50E JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH1 0x40 MLOAD PUSH4 0x25990815 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4B32102A SWAP1 PUSH2 0x4AB SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x1EB9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4FD SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST SWAP1 POP PUSH2 0x509 DUP2 DUP4 PUSH2 0x1F71 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST PUSH1 0x1 PUSH1 0x2 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x524 TIMESTAMP PUSH2 0xEE6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD EQ ISZERO PUSH2 0x54A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x2 DUP1 SSTORE PUSH2 0x557 DUP3 PUSH2 0xD01 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x56A PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x5A0 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1E35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5CC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5F0 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60D SWAP3 SWAP2 SWAP1 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x63B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x65F SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x66B PUSH2 0xBE3 JUMP JUMPDEST PUSH2 0x524 PUSH1 0x0 PUSH2 0x10CB JUMP JUMPDEST PUSH2 0x67D PUSH2 0xBE3 JUMP JUMPDEST PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH1 0xFF PUSH2 0x100 DUP1 DUP4 DIV DUP3 AND ISZERO DUP2 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xDBE6AC1081EBD8E648718341126659456F4009FCADFE1C23F66F5E61522610B2 SWAP4 PUSH2 0x6DB SWAP4 SWAP1 DIV SWAP1 SWAP2 AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x9 DUP2 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x3EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD EQ ISZERO PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x2 DUP1 SSTORE PUSH7 0x71AFD498D000C SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E62 JUMP JUMPDEST PUSH1 0x5 SLOAD TIMESTAMP LT PUSH2 0x75E JUMPI PUSH2 0x75E TIMESTAMP PUSH2 0xEE6 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH7 0x71AFD498D000C SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x78D JUMPI POP PUSH3 0x15180 PUSH1 0x8 SLOAD PUSH2 0x78A SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST TIMESTAMP GT JUMPDEST ISZERO PUSH2 0x79E JUMPI PUSH2 0x79B TIMESTAMP PUSH2 0x111B JUMP JUMPDEST POP TIMESTAMP JUMPDEST PUSH3 0x93A80 PUSH2 0x7AC DUP2 DUP4 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x7B6 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 PUSH2 0x7F7 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x7E9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 PUSH2 0x13C6 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD DUP7 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 DUP9 SWAP1 DUP7 SWAP1 DUP2 LT PUSH2 0x83A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x860 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B0 SWAP2 SWAP1 PUSH2 0x1C07 JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0x961 JUMPI DUP2 PUSH7 0x38D7EA4C6800B PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8D0 SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0x90D SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x927 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x93B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x95F SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x96E SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7BB JUMP JUMPDEST POP PUSH1 0x1 SWAP2 POP POP PUSH1 0x1 PUSH1 0x2 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98E PUSH2 0xBE3 JUMP JUMPDEST PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x9E1 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1E35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA0D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA31 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA4E SWAP3 SWAP2 SWAP1 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0xAE0 JUMPI POP PUSH7 0x71AFD498D000C SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xAE0 JUMPI POP PUSH3 0x15180 PUSH1 0x8 SLOAD PUSH2 0xADD SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST TIMESTAMP GT JUMPDEST PUSH2 0xB2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F74206F70657261746F72206F72206E6F7420616C6C6F7765640000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x524 TIMESTAMP PUSH2 0x111B JUMP JUMPDEST PUSH2 0xB3D PUSH2 0xBE3 JUMP JUMPDEST PUSH7 0x71AFD498D000C DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xB75 PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBDA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x403 DUP2 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x524 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F70657261746F723A207A65726F206164647265737320676976656E20666F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x103732BB9037B832B930BA37B9 PUSH1 0x99 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0x74DA04524D50C64947F5DD5381EF1A4DCA5CBA8ED1D816243F9E48AA0B5617ED SWAP1 DUP3 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH7 0x71AFD498D000C SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42A SWAP1 PUSH2 0x1E62 JUMP JUMPDEST PUSH1 0x5 SLOAD TIMESTAMP LT PUSH2 0xD3F JUMPI PUSH2 0xD3F TIMESTAMP PUSH2 0xEE6 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH7 0x71AFD498D000C SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xD6E JUMPI POP PUSH3 0x15180 PUSH1 0x8 SLOAD PUSH2 0xD6B SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST TIMESTAMP GT JUMPDEST ISZERO PUSH2 0xD7F JUMPI PUSH2 0xD7C TIMESTAMP PUSH2 0x111B JUMP JUMPDEST POP TIMESTAMP JUMPDEST PUSH3 0x93A80 PUSH2 0xD8D DUP2 DUP4 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0xD97 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDA5 DUP5 DUP4 PUSH2 0x13C6 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE2D SWAP2 SWAP1 PUSH2 0x1C07 JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0xEDE JUMPI DUP2 PUSH7 0x38D7EA4C6800B PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xE4D SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0xE8A SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEDC SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST POP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 PUSH3 0x93A80 PUSH2 0xEF9 DUP2 DUP6 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0xF03 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH7 0x38D7EA4C68009 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 JUMPDEST PUSH1 0x14 DUP2 LT ISZERO PUSH2 0x10C3 JUMPI DUP2 DUP4 GT ISZERO PUSH2 0xF8C JUMPI PUSH2 0x10C3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF97 DUP5 PUSH2 0x1901 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8AD4C447 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8AD4C447 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x101F SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD DUP7 GT ISZERO PUSH2 0x1041 JUMPI PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x103E SWAP1 DUP8 PUSH2 0x20AA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x1070 DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1054 SWAP2 SWAP1 PUSH2 0x1FA9 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x1060 SWAP2 SWAP1 PUSH2 0x205A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x0 PUSH2 0x1A9C JUMP JUMPDEST PUSH7 0x38D7EA4C6800C DUP8 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x109D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD SSTORE POP POP POP PUSH2 0x10AF PUSH3 0x93A80 DUP5 PUSH2 0x1F71 JUMP JUMPDEST SWAP3 POP DUP1 PUSH2 0x10BB DUP2 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF76 JUMP JUMPDEST POP POP PUSH1 0x5 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH7 0x38D7EA4C6800A SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1152 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1E35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11A2 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH7 0x38D7EA4C6800B SLOAD DUP3 PUSH2 0x11BA SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST PUSH7 0x38D7EA4C6800B DUP4 SWAP1 SSTORE PUSH1 0x8 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x11D7 DUP3 DUP7 PUSH2 0x20AA JUMP JUMPDEST PUSH1 0x8 DUP7 SWAP1 SSTORE SWAP1 POP PUSH1 0x0 PUSH3 0x93A80 PUSH2 0x11EE DUP2 DUP6 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x11F8 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x14 DUP2 LT ISZERO PUSH2 0x1383 JUMPI PUSH2 0x1214 PUSH3 0x93A80 DUP5 PUSH2 0x1F71 JUMP JUMPDEST SWAP2 POP DUP2 DUP9 LT ISZERO PUSH2 0x12B9 JUMPI DUP4 ISZERO DUP1 ISZERO PUSH2 0x122B JUMPI POP DUP5 DUP9 EQ JUMPDEST ISZERO PUSH2 0x1273 JUMPI DUP6 PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1258 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1268 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1383 SWAP1 POP JUMP JUMPDEST DUP4 PUSH2 0x127E DUP7 DUP11 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1288 SWAP1 DUP9 PUSH2 0x203B JUMP JUMPDEST PUSH2 0x1292 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1258 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP4 ISZERO DUP1 ISZERO PUSH2 0x12C6 JUMPI POP DUP5 DUP3 EQ JUMPDEST ISZERO PUSH2 0x130E JUMPI DUP6 PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x12F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1303 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x136A SWAP1 POP JUMP JUMPDEST DUP4 PUSH2 0x1319 DUP7 DUP5 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1323 SWAP1 DUP9 PUSH2 0x203B JUMP JUMPDEST PUSH2 0x132D SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1354 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1364 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST DUP2 SWAP5 POP DUP2 SWAP3 POP DUP1 DUP1 PUSH2 0x137B SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11FE JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH32 0xCE749457B74E10F393F2C6B1CE4261B78791376DB5A3F501477A809F03F500D6 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5D528FC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBAA51F86 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1425 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1449 SWAP2 SWAP1 PUSH2 0x1CBB JUMP JUMPDEST PUSH2 0x1486 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x1B999D081B9BDD081CDD185AD959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE58F5947 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE58F5947 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x150D SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP2 POP DUP2 PUSH2 0x1525 JUMPI PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x18FB JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x154B JUMPI PUSH2 0x1544 DUP9 DUP4 DUP6 PUSH2 0x1AB5 JUMP JUMPDEST SWAP5 POP PUSH2 0x155D JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP5 POP JUMPDEST DUP5 PUSH2 0x1567 JUMPI PUSH1 0x1 SWAP5 POP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x22565A15 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x44ACB42A SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15F1 SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1633 JUMPI PUSH3 0x93A80 DUP1 PUSH1 0x1 PUSH3 0x93A80 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x1612 SWAP2 SWAP1 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x161C SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1626 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x1630 SWAP2 SWAP1 PUSH2 0x203B JUMP JUMPDEST SWAP2 POP JUMPDEST DUP8 DUP3 LT PUSH2 0x1649 JUMPI PUSH1 0x0 SWAP7 POP POP POP POP POP POP POP PUSH2 0x18FB JUMP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x1655 JUMPI DUP3 SWAP2 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 JUMPDEST PUSH1 0x32 DUP2 LT ISZERO PUSH2 0x1875 JUMPI DUP10 DUP5 LT PUSH2 0x168F JUMPI PUSH2 0x1875 JUMP JUMPDEST DUP3 PUSH1 0x40 ADD MLOAD DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x16A3 JUMPI POP DUP6 DUP9 GT ISZERO JUMPDEST ISZERO PUSH2 0x1782 JUMPI PUSH2 0x16B3 PUSH1 0x1 DUP10 PUSH2 0x1F71 JUMP JUMPDEST SWAP8 POP DUP3 SWAP2 POP DUP6 DUP9 GT ISZERO PUSH2 0x16F2 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP3 POP PUSH2 0x1863 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x22565A15 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44ACB42A SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x177B SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP3 POP PUSH2 0x1863 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x40 ADD MLOAD DUP6 PUSH2 0x1794 SWAP2 SWAP1 PUSH2 0x20AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17B7 DUP5 PUSH1 0x20 ADD MLOAD DUP4 PUSH2 0x17AB SWAP2 SWAP1 PUSH2 0x1FA9 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x1060 SWAP2 SWAP1 PUSH2 0x205A JUMP JUMPDEST SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x17C6 JUMPI POP DUP8 DUP11 GT JUMPDEST ISZERO PUSH2 0x17D2 JUMPI POP POP PUSH2 0x1875 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1851 JUMPI PUSH7 0x38D7EA4C6800C DUP7 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x1805 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD SLOAD PUSH1 0x9 DUP8 PUSH7 0x38D7EA4C68000 DUP2 LT PUSH2 0x182E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD SLOAD PUSH2 0x183A SWAP1 DUP4 PUSH2 0x203B JUMP JUMPDEST PUSH2 0x1844 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x184E SWAP1 DUP11 PUSH2 0x1F71 JUMP JUMPDEST SWAP9 POP JUMPDEST PUSH2 0x185E PUSH3 0x93A80 DUP8 PUSH2 0x1F71 JUMP JUMPDEST SWAP6 POP POP POP JUMPDEST DUP1 PUSH2 0x186D DUP2 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x167A JUMP JUMPDEST POP PUSH2 0x188A DUP6 PUSH2 0x1885 PUSH1 0x1 DUP11 PUSH2 0x20AA JUMP JUMPDEST PUSH2 0x1BC5 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP2 MLOAD DUP14 DUP2 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP8 POP PUSH32 0xCAE2990AA9AF8EB1C64713B7EDDB3A80BF18E49A94A13FE0D0002B5D61D58F00 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP4 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 PUSH7 0x38D7EA4C68009 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1996 SWAP2 SWAP1 PUSH2 0x1D64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1A93 JUMPI DUP2 DUP4 LT PUSH2 0x19B0 JUMPI PUSH2 0x1A93 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x19BE DUP5 DUP7 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x19C9 SWAP1 PUSH1 0x2 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x19D3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8AD4C447 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8AD4C447 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A5B SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP DUP7 DUP2 PUSH1 0x40 ADD MLOAD GT PUSH2 0x1A70 JUMPI DUP2 SWAP5 POP PUSH2 0x1A7E JUMP JUMPDEST PUSH2 0x1A7B PUSH1 0x1 DUP4 PUSH2 0x20AA JUMP JUMPDEST SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1A8B SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x199B JUMP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x1AAC JUMPI DUP2 PUSH2 0x1AAE JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 JUMPDEST PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x1BBA JUMPI DUP2 DUP4 LT PUSH2 0x1AD0 JUMPI PUSH2 0x1BBA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x1ADE DUP5 DUP7 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x1AE9 SWAP1 PUSH1 0x2 PUSH2 0x1F71 JUMP JUMPDEST PUSH2 0x1AF3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH7 0x38D7EA4C68009 SLOAD PUSH1 0x40 MLOAD PUSH4 0x22565A15 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44ACB42A SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B82 SWAP2 SWAP1 PUSH2 0x1CDB JUMP JUMPDEST SWAP1 POP DUP8 DUP2 PUSH1 0x40 ADD MLOAD GT PUSH2 0x1B97 JUMPI DUP2 SWAP5 POP PUSH2 0x1BA5 JUMP JUMPDEST PUSH2 0x1BA2 PUSH1 0x1 DUP4 PUSH2 0x20AA JUMP JUMPDEST SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1BB2 SWAP1 PUSH2 0x20C1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1ABB JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1AAC JUMPI DUP2 PUSH2 0x1AAE JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x1BE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BFC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1AAE DUP2 PUSH2 0x2108 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C18 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1AAE DUP2 PUSH2 0x2108 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C35 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1C5B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C6E PUSH2 0x1C69 DUP3 PUSH2 0x1F4D JUMP JUMPDEST PUSH2 0x1F1C JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE DUP5 DUP3 ADD SWAP2 POP DUP5 DUP5 ADD DUP9 DUP7 DUP6 PUSH1 0x5 SHL DUP8 ADD ADD GT ISZERO PUSH2 0x1C8D JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x1CAF JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP5 SWAP1 SWAP5 ADD SWAP4 SWAP2 DUP6 ADD SWAP2 DUP6 ADD PUSH2 0x1C91 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1AAE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CEC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1D0F JUMPI PUSH2 0x1D0F PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x1D1B DUP4 PUSH2 0x1BD4 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x1D29 PUSH1 0x20 DUP5 ADD PUSH2 0x1BD4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D5D JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D75 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D91 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD PUSH2 0x1DA4 DUP2 PUSH2 0x2108 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DC6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP7 ADD PUSH1 0x1F DUP2 ADD DUP9 SGT PUSH2 0x1DD6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DE4 PUSH2 0x1C69 DUP3 PUSH2 0x1F4D JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE DUP5 DUP3 ADD SWAP2 POP DUP5 DUP5 ADD DUP12 DUP7 DUP6 PUSH1 0x5 SHL DUP8 ADD ADD GT ISZERO PUSH2 0x1E03 JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x1E25 JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP5 SWAP1 SWAP5 ADD SWAP4 SWAP2 DUP6 ADD SWAP2 DUP6 ADD PUSH2 0x1E07 JUMP JUMPDEST POP SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x6 SWAP1 DUP3 ADD MSTORE PUSH6 0x1ADA5B1B1959 PUSH1 0xD2 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD DUP7 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 DUP6 ADD MSTORE DUP6 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0xA0 DUP7 ADD SWAP2 POP DUP3 DUP8 ADD SWAP4 POP DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F0D JUMPI DUP5 MLOAD DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1EF1 JUMP JUMPDEST POP SWAP1 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1F45 JUMPI PUSH2 0x1F45 PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1F67 JUMPI PUSH2 0x1F67 PUSH2 0x20F2 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1F84 JUMPI PUSH2 0x1F84 PUSH2 0x20DC JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1FA4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP4 DUP3 SGT DUP5 DUP5 SGT DUP1 DUP3 AND DUP5 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x1FD8 JUMPI PUSH2 0x1FD8 PUSH2 0x20DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP7 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x1FFA JUMPI PUSH2 0x1FFA PUSH2 0x20DC JUMP JUMPDEST DUP8 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2015 JUMPI PUSH2 0x2015 PUSH2 0x20DC JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x202B JUMPI PUSH2 0x202B PUSH2 0x20DC JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2055 JUMPI PUSH2 0x2055 PUSH2 0x20DC JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP1 DUP5 SWAP1 SIGNEXTEND DUP3 DUP2 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT DUP4 ADD DUP5 SLT AND ISZERO PUSH2 0x2085 JUMPI PUSH2 0x2085 PUSH2 0x20DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB DUP3 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x20A0 JUMPI PUSH2 0x20A0 PUSH2 0x20DC JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x20BC JUMPI PUSH2 0x20BC PUSH2 0x20DC JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x20D5 JUMPI PUSH2 0x20D5 PUSH2 0x20DC JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0xE3 0xBB SWAP4 DUP6 0xBF 0xAD PUSH13 0xAE80759E6B2CEACD10CF4983BB 0xAF 0x1E 0xCF CALLDATACOPY DUP9 SWAP15 0xEE RETURNDATACOPY 0xD4 PUSH19 0xDB64736F6C6343000804003300000000000000 ","sourceMap":"735:11893:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1407:37;;;;;;;;;;;;;;;5195:14:139;;5188:22;5170:41;;5158:2;5143:18;1407:37:78;;;;;;;;1299:41;;;;;;:::i;:::-;;:::i;:::-;;;8634:25:139;;;8622:2;8607:18;1299:41:78;8589:76:139;724:107:131;;;;;;:::i;:::-;;:::i;:::-;;9872:483:78;;;;;;:::i;:::-;;:::i;5714:107::-;;;:::i;9710:156::-;;;;;;:::i;:::-;;:::i;628:92:131:-;706:9;;-1:-1:-1;;;;;706:9:131;719:10:38;690:25:131;628:92;;1013:47:78;;;;;;:::i;:::-;;;;;;;;;;;;;;427:77:131;490:9;;-1:-1:-1;;;;;490:9:131;427:77;;;;;;;:::i;12494:132:78:-;;;;;;:::i;:::-;;:::i;1831:101:4:-;;;:::i;952:24:78:-;;;;;;1450:51;;;;;;;;-1:-1:-1;;;;;1450:51:78;;;12026:175;;;:::i;982:25::-;;;;;;1153:46;;;;;;:::i;:::-;;:::i;1201:85:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;1261:31:78;;;;;;1381:20;;;;;;;;;10361:970;;;;;;:::i;:::-;;:::i;1119:28::-;;;;;;888:57;;940:5;888:57;;12207:137;;;:::i;3263:352::-;;;:::i;1206:24::-;;;;;-1:-1:-1;;;;;1206:24:78;;;1066:46;;;;;;:::i;:::-;;;;;;;;;;;;;;12350:138;;;;;;:::i;:::-;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;842:40:78:-;;873:9;842:40;;1236:19;;;;;-1:-1:-1;;;;;1236:19:78;;;1299:41;;;;;;;;;;;;;;;-1:-1:-1;1299:41:78;:::o;724:107:131:-;1094:13:4;:11;:13::i;:::-;795:31:131::1;813:12;795:17;:31::i;:::-;724:107:::0;:::o;9872:483:78:-;10051:7;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;;;;;;;;;1744:1;2455:18;;10070:12:78::1;10085:20;10102:2:::0;10085:16:::1;:20::i;:::-;10128:21;::::0;10070:35;;-1:-1:-1;10128:21:78;;::::1;-1:-1:-1::0;;;;;10128:21:78::1;10116:61;;10173:4:::0;-1:-1:-1;10166:11:78::1;;10116:61;10202:21;::::0;:117:::1;::::0;-1:-1:-1;;;10202:117:78;;10187:12:::1;::::0;10202:21;;::::1;-1:-1:-1::0;;;;;10202:21:78::1;::::0;:32:::1;::::0;:117:::1;::::0;10248:2;;10264:4;;10282:7;;10303:6;;10202:117:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10187:132:::0;-1:-1:-1;10337:11:78::1;10187:132:::0;10337:4;:11:::1;:::i;:::-;10330:18;;;;2484:1:22;1701::::0;2628:7;:22;9872:483:78;;-1:-1:-1;;;;9872:483:78:o;5714:107::-;5775:39;5798:15;5775:22;:39::i;:::-;5714:107::o;9710:156::-;9809:7;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:18;;9839:20:78::1;9856:2:::0;9839:16:::1;:20::i;:::-;1701:1:22::0;2628:7;:22;9832:27:78;9710:156;-1:-1:-1;;9710:156:78:o;12494:132::-;1094:13:4;:11;:13::i;:::-;12588:30:78::1;::::0;-1:-1:-1;;;12588:30:78;;-1:-1:-1;;;;;12561:14:78;::::1;::::0;::::1;::::0;12576:10:::1;::::0;12561:14;;12588:15:::1;::::0;:30:::1;::::0;12612:4:::1;::::0;12588:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12561:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12494:132:::0;:::o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;12026:175:78:-:0;1094:13:4;:11;:13::i;:::-;12115:18:78::1;::::0;;::::1;;::::0;;::::1;::::0;::::1;12114:19;12093:40:::0;::::1;-1:-1:-1::0;;12093:40:78;;::::1;::::0;;;::::1;::::0;;;;12148:46:::1;::::0;::::1;::::0;::::1;::::0;12175:18;::::1;::::0;;::::1;5195:14:139::0;5188:22;5170:41;;5158:2;5143:18;;5125:92;12148:46:78::1;;;;;;;;12026:175::o:0;1153:46::-;;;;;;;;;;;10361:970;10477:4;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:18;;10506:8:78::1;::::0;::::1;;10505:9;10497:28;;;;-1:-1:-1::0;;;10497:28:78::1;;;;;;;:::i;:::-;10558:10;;10539:15;:29;10535:86;;10582:39;10605:15;10582:22;:39::i;:::-;10657:13;::::0;10698:18:::1;::::0;::::1;::::0;::::1;;;:95:::0;::::1;;;;940:5;10751:13;;:41;;;;:::i;:::-;10733:15;:59;10698:95;10681:227;;;10818:33;10835:15;10818:16;:33::i;:::-;-1:-1:-1::0;10882:15:78::1;10681:227;873:9;10936:21;873:9:::0;10936:14;:21:::1;:::i;:::-;10935:30;;;;:::i;:::-;10918:47;;10981:13;10976:327;11008:6;:13;11000:5;:21;10976:327;;;11046:14;11063:37;11070:6;11077:5;11070:13;;;;;;-1:-1:-1::0;;;11070:13:78::1;;;;;;;;;;;;;;;11085:14;11063:6;:37::i;:::-;11128:6;::::0;11143:13;;11046:54;;-1:-1:-1;11114:11:78::1;::::0;-1:-1:-1;;;;;11128:6:78;;::::1;::::0;:14:::1;::::0;11143:6;;11150:5;;11143:13;::::1;;;-1:-1:-1::0;;;11143:13:78::1;;;;;;;;;;;;;;;11128:29;;;;;;;;;;;;;8634:25:139::0;;8622:2;8607:18;;8589:76;11128:29:78::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11114:43:::0;-1:-1:-1;11176:11:78;;11172:121:::1;;11227:6;11207:16;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;11251:5:78::1;::::0;:27:::1;::::0;-1:-1:-1;;;11251:27:78;;-1:-1:-1;;;;;11251:5:78;;::::1;::::0;:14:::1;::::0;:27:::1;::::0;11266:3;;11271:6;;11251:27:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11172:121;10976:327;;11023:7;;;;;:::i;:::-;;;;10976:327;;;;11320:4;11313:11;;;1701:1:22::0;2628:7;:22;10361:970:78;;-1:-1:-1;10361:970:78:o;12207:137::-;1094:13:4;:11;:13::i;:::-;12254:8:78::1;:15:::0;;-1:-1:-1;;12254:15:78::1;12265:4;12254:15;::::0;;12279:5:::1;::::0;12306:30:::1;::::0;-1:-1:-1;;;12306:30:78;;-1:-1:-1;;;;;12279:5:78;;::::1;::::0;:14:::1;::::0;12294:10:::1;::::0;12279:5;;12306:15:::1;::::0;:30:::1;::::0;12330:4:::1;::::0;12306:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12279:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3263:352::-:0;490:9:131;;-1:-1:-1;;;;;490:9:131;3339:10:78;:24;;:173;;-1:-1:-1;3384:18:78;;;;;;;:127;;;;;940:5;3469:13;;:41;;;;:::i;:::-;3427:15;:83;3384:127;3318:247;;;;-1:-1:-1;;;3318:247:78;;7974:2:139;3318:247:78;;;7956:21:139;8013:2;7993:18;;;7986:30;8052:29;8032:18;;;8025:57;8099:18;;3318:247:78;7946:177:139;3318:247:78;3575:33;3592:15;3575:16;:33::i;12350:138::-;1094:13:4;:11;:13::i;:::-;12428:21:78::1;:53:::0;;-1:-1:-1;;;;;12428:53:78;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;12428:53:78;;::::1;::::0;;;::::1;::::0;;12350:138::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;6449:2:139;2161:73:4::1;::::0;::::1;6431:21:139::0;6488:2;6468:18;;;6461:30;6527:34;6507:18;;;6500:62;-1:-1:-1;;;6578:18:139;;;6571:36;6624:19;;2161:73:4::1;6421:228:139::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;7613:2:139;1414:68:4;;;7595:21:139;;;7632:18;;;7625:30;7691:34;7671:18;;;7664:62;7743:18;;1414:68:4;7585:182:139;835:257:131;-1:-1:-1;;;;;914:26:131;;899:102;;;;-1:-1:-1;;;899:102:131;;6856:2:139;899:102:131;;;6838:21:139;6895:2;6875:18;;;6868:30;6934:34;6914:18;;;6907:62;-1:-1:-1;;;6985:18:139;;;6978:43;7038:19;;899:102:131;6828:235:139;899:102:131;1012:45;;-1:-1:-1;;;;;1012:45:131;;;1040:1;;1012:45;;1040:1;;1012:45;1063:9;:24;;-1:-1:-1;;;;;;1063:24:131;-1:-1:-1;;;;;1063:24:131;;;;;;;;;;835:257::o;8905:799:78:-;8992:8;;8964:7;;8992:8;;8991:9;8983:28;;;;-1:-1:-1;;;8983:28:78;;;;;;;:::i;:::-;9045:10;;9026:15;:29;9022:86;;9069:39;9092:15;9069:22;:39::i;:::-;9144:13;;9185:18;;;;;;;:95;;;;;940:5;9238:13;;:41;;;;:::i;:::-;9220:15;:59;9185:95;9168:227;;;9305:33;9322:15;9305:16;:33::i;:::-;-1:-1:-1;9369:15:78;9168:227;873:9;9423:21;873:9;9423:14;:21;:::i;:::-;9422:30;;;;:::i;:::-;9405:47;;9463:14;9480:29;9487:5;9494:14;9480:6;:29::i;:::-;9533:6;;:21;;-1:-1:-1;;;9533:21:78;;;;;8634:25:139;;;9463:46:78;;-1:-1:-1;9519:11:78;;-1:-1:-1;;;;;9533:6:78;;;;:14;;8607:18:139;;9533:21:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9519:35;-1:-1:-1;9569:11:78;;9565:109;;9616:6;9596:16;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;9636:5:78;;:27;;-1:-1:-1;;;9636:27:78;;-1:-1:-1;;;;;9636:5:78;;;;:14;;:27;;9651:3;;9656:6;;9636:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9565:109;-1:-1:-1;9691:6:78;8905:799;-1:-1:-1;;;8905:799:78:o;4743:965::-;4880:10;;4868:9;873;4928:16;873:9;4928;:16;:::i;:::-;4927:25;;;;:::i;:::-;4900:52;;4963:6;;;;;;;;;-1:-1:-1;;;;;4963:6:78;-1:-1:-1;;;;;4963:17:78;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4998:13;4993:684;5025:2;5017:5;:10;4993:684;;;5060:16;5056:1;:20;5052:591;;;5078:5;;5052:591;5120:13;5136:22;5156:1;5136:19;:22::i;:::-;5205:6;;:26;;-1:-1:-1;;;5205:26:78;;;;;8634:25:139;;;5120:38:78;;-1:-1:-1;5176:26:78;;-1:-1:-1;;;;;5205:6:78;;;;:19;;8607:18:139;;5205:26:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5176:55;;5250:9;5290:2;:5;;;5286:1;:9;5282:46;;;5321:5;;;;5317:9;;:1;:9;:::i;:::-;5297:31;;5282:46;5360:45;5398:2;5387;:8;;;:13;;;;:::i;:::-;5377:7;;:23;;;;:::i;:::-;-1:-1:-1;;;;;5360:45:78;5403:1;5360:8;:45::i;:::-;5346:8;5355:1;5346:11;;;;;-1:-1:-1;;;5346:11:78;;;;;;;;;;:59;-1:-1:-1;;;5657:9:78;873;5657;;:::i;:::-;;-1:-1:-1;5029:7:78;;;;:::i;:::-;;;;4993:684;;;-1:-1:-1;;5687:10:78;:14;-1:-1:-1;4743:965:78:o;2433:187:4:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;1917:1340:78:-;2053:5;;:30;;-1:-1:-1;;;2053:30:78;;2030:20;;-1:-1:-1;;;;;2053:5:78;;:15;;:30;;2077:4;;2053:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2030:53;;2093:20;2131:16;;2116:12;:31;;;;:::i;:::-;2157:16;:31;;;2211:13;;2093:54;;-1:-1:-1;2199:9:78;2254:13;2211;2254:9;:13;:::i;:::-;2277;:25;;;2234:33;-1:-1:-1;2313:16:78;873:9;2333:8;873:9;2333:1;:8;:::i;:::-;2332:17;;;;:::i;:::-;2313:36;;2359:16;2395:13;2390:805;2422:2;2414:5;:10;2390:805;;;2460:15;873:9;2460:8;:15;:::i;:::-;2449:26;;2505:8;2493:9;:20;2489:637;;;2537:14;;:32;;;;;2568:1;2555:9;:14;2537:32;2533:259;;;2618:12;2591:13;2605:8;2591:23;;;;;-1:-1:-1;;;2591:23:78;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;2810:5:78;;-1:-1:-1;2810:5:78;2533:259;2783:9;2741:13;2753:1;2741:9;:13;:::i;:::-;2725:30;;:12;:30;:::i;:::-;2724:68;;;;:::i;:::-;2673:13;2687:8;2673:23;;;;;-1:-1:-1;;;2673:23:78;;;;;;;;2489:637;2858:14;;:31;;;;;2888:1;2876:8;:13;2858:31;2854:257;;;2938:12;2911:13;2925:8;2911:23;;;;;-1:-1:-1;;;2911:23:78;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;2854:257:78;;-1:-1:-1;2854:257:78;;3102:9;3061:12;3072:1;3061:8;:12;:::i;:::-;3045:29;;:12;:29;:::i;:::-;3044:67;;;;:::i;:::-;2993:13;3007:8;2993:23;;;;;-1:-1:-1;;;2993:23:78;;;;;;;;;;;:118;;;;;;;:::i;:::-;;;;-1:-1:-1;;2854:257:78;3143:8;3139:12;;3176:8;3165:19;;2426:7;;;;;:::i;:::-;;;;2390:805;;;-1:-1:-1;3210:40:78;;;9726:25:139;;;9782:2;9767:18;;9760:34;;;3210:40:78;;9699:18:139;3210:40:78;;;;;;;1917:1340;;;;;;;:::o;5827:3072::-;5947:6;;:22;;-1:-1:-1;;;5947:22:78;;;;;8634:25:139;;;5916:7:78;;-1:-1:-1;;;;;5947:6:78;;:15;;8607:18:139;;5947:22:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5939:49;;;;-1:-1:-1;;;5939:49:78;;7270:2:139;5939:49:78;;;7252:21:139;7309:2;7289:18;;;7282:30;-1:-1:-1;;;7328:18:139;;;7321:44;7382:18;;5939:49:78;7242:164:139;5939:49:78;6129:6;;:28;;-1:-1:-1;;;6129:28:78;;;;;8634:25:139;;;6040:17:78;;;;;;-1:-1:-1;;;;;6129:6:78;;:21;;8607:18:139;;6129:28:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6188:9;;6106:51;;-1:-1:-1;6273:17:78;6269:31;;6299:1;6292:8;;;;;;;;6269:31;6311:18;6332:19;;;:12;:19;;;;;;6422:15;6418:208;;6463:118;6504:5;6527:10;6555:12;6463:23;:118::i;:::-;6451:130;;6418:208;;;6608:18;;;;:11;:18;;;;;;;-1:-1:-1;6418:208:78;6641:14;6637:33;;6669:1;6657:13;;6637:33;6717:6;;:75;;-1:-1:-1;;;6717:75:78;;;;;9726:25:139;;;9767:18;;;9760:34;;;6681:33:78;;-1:-1:-1;;;;;6717:6:78;;:23;;9699:18:139;;6717:75:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6681:111;-1:-1:-1;6919:15:78;6915:87;;873:9;;6985:1;873:9;6963;:12;;;:19;;;;:::i;:::-;:23;;;;:::i;:::-;6962:32;;;;:::i;:::-;6961:41;;;;:::i;:::-;6948:54;;6915:87;7333:14;7319:10;:28;7315:42;;7356:1;7349:8;;;;;;;;;;7315:42;7385:10;7372;:23;7368:52;;;7410:10;7397:23;;7368:52;7470:28;;;;;;;;7431:36;7470:28;;;;;;;;;;;;;;;;;;;;;;7509:1144;7541:2;7533:5;:10;7509:1144;;;7586:14;7572:10;:28;7568:39;;7602:5;;7568:39;7640:9;:12;;;7626:10;:26;;:55;;;;;7669:12;7656:9;:25;;7626:55;7622:1021;;;7701:14;7714:1;7701:14;;:::i;:::-;;;7748:9;7733:24;;7792:12;7780:9;:24;7776:166;;;7838:28;;;;;;;;7855:1;7838:28;;;;;;7858:1;7838:28;;;;;;7861:1;7838:28;;;;7864:1;7838:28;;;7826:40;;7622:1021;;7776:166;7901:6;;:41;;-1:-1:-1;;;7901:41:78;;;;;9726:25:139;;;9767:18;;;9760:34;;;-1:-1:-1;;;;;7901:6:78;;;;:23;;9699:18:139;;7901:41:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7889:53;;7622:1021;;;7981:9;8021:12;:15;;;8008:10;:28;;;;:::i;:::-;7981:57;;8056:17;8076:123;8139:12;:18;;;8134:2;:23;;;;:::i;:::-;8114:17;;:43;;;;:::i;8076:123::-;8056:143;-1:-1:-1;8359:14:78;;:42;;;;;8389:12;8377:9;:24;8359:42;8355:53;;;8403:5;;;;8355:53;8430:13;;8426:165;;8571:8;8580:10;8571:20;;;;;-1:-1:-1;;;8571:20:78;;;;;;;;;;;8518:13;8532:10;8518:25;;;;;-1:-1:-1;;;8518:25:78;;;;;;;;;;;8506:37;;:9;:37;:::i;:::-;8505:86;;;;:::i;:::-;8465:126;;;;:::i;:::-;;;8426:165;8610:18;873:9;8610:18;;:::i;:::-;;;7622:1021;;;7545:7;;;;:::i;:::-;;;;7509:1144;;;-1:-1:-1;8675:37:78;8684:12;8698:13;8710:1;8698:9;:13;:::i;:::-;8675:8;:37::i;:::-;8722:18;;;;:11;:18;;;;;;;;:30;;;8762:12;:19;;;;;;:32;;;8810:53;;10036:25:139;;;10077:18;;;10070:34;;;10120:18;;;10113:34;;;10178:2;10163:18;;10156:34;;;8722:30:78;;-1:-1:-1;8810:53:78;;10023:3:139;10008:19;8810:53:78;;;;;;;-1:-1:-1;8880:12:78;;-1:-1:-1;;;;;;5827:3072:78;;;;;:::o;3621:529::-;3717:7;3740:11;3754:1;3740:15;;3765:11;3779:6;;;;;;;;;-1:-1:-1;;;;;3779:6:78;-1:-1:-1;;;;;3779:12:78;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3765:28;;3809:13;3804:319;3836:3;3828:5;:11;3804:319;;;3875:3;3868;:10;3864:54;;3898:5;;3864:54;3931:11;3963:1;3946:9;3952:3;3946;:9;:::i;:::-;:13;;3958:1;3946:13;:::i;:::-;3945:19;;;;:::i;:::-;4007:6;;:24;;-1:-1:-1;;;4007:24:78;;;;;8634:25:139;;;3931:33:78;;-1:-1:-1;3978:26:78;;-1:-1:-1;;;;;4007:6:78;;;;:19;;8607:18:139;;4007:24:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3978:53;;4059:10;4050:2;:5;;;:19;4046:66;;4077:3;4071:9;;4046:66;;;4105:7;4111:1;4105:3;:7;:::i;:::-;4099:13;;4046:66;3804:319;;3841:7;;;;;:::i;:::-;;;;3804:319;;;-1:-1:-1;4140:3:78;;3621:529;-1:-1:-1;;;3621:529:78:o;413:105:47:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;506:1;497:14;490:21;413:105;-1:-1:-1;;;413:105:47:o;4156:581:78:-;4299:7;;4357:12;4299:7;4380:330;4412:3;4404:5;:11;4380:330;;;4451:3;4444;:10;4440:54;;4474:5;;4440:54;4507:11;4539:1;4522:9;4528:3;4522;:9;:::i;:::-;:13;;4534:1;4522:13;:::i;:::-;4521:19;;;;:::i;:::-;4583:6;;:35;;-1:-1:-1;;;4583:35:78;;;;;9726:25:139;;;9767:18;;;9760:34;;;4507:33:78;;-1:-1:-1;4554:26:78;;-1:-1:-1;;;;;4583:6:78;;;;:23;;9699:18:139;;4583:35:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4554:64;;4646:10;4637:2;:5;;;:19;4633:66;;4664:3;4658:9;;4633:66;;;4692:7;4698:1;4692:3;:7;:::i;:::-;4686:13;;4633:66;4380:330;;4417:7;;;;;:::i;:::-;;;;4380:330;;;-1:-1:-1;4727:3:78;;4156:581;-1:-1:-1;;;;;4156:581:78:o;589:104:47:-;647:7;677:1;673;:5;:13;;685:1;673:13;;14:166:139;92:13;;145:2;134:21;;;124:32;;114:2;;170:1;167;160:12;114:2;73:107;;;:::o;185:257::-;244:6;297:2;285:9;276:7;272:23;268:32;265:2;;;318:6;310;303:22;265:2;362:9;349:23;381:31;406:5;381:31;:::i;447:261::-;517:6;570:2;558:9;549:7;545:23;541:32;538:2;;;591:6;583;576:22;538:2;628:9;622:16;647:31;672:5;647:31;:::i;713:947::-;797:6;828:2;871;859:9;850:7;846:23;842:32;839:2;;;892:6;884;877:22;839:2;937:9;924:23;970:18;962:6;959:30;956:2;;;1007:6;999;992:22;956:2;1035:22;;1088:4;1080:13;;1076:27;-1:-1:-1;1066:2:139;;1122:6;1114;1107:22;1066:2;1163;1150:16;1186:60;1202:43;1242:2;1202:43;:::i;:::-;1186:60;:::i;:::-;1268:3;1292:2;1287:3;1280:15;1320:2;1315:3;1311:12;1304:19;;1351:2;1347;1343:11;1399:7;1394:2;1388;1385:1;1381:10;1377:2;1373:19;1369:28;1366:41;1363:2;;;1425:6;1417;1410:22;1363:2;1452:6;1443:15;;1467:163;1481:2;1478:1;1475:9;1467:163;;;1538:17;;1526:30;;1499:1;1492:9;;;;;1576:12;;;;1608;;1467:163;;;-1:-1:-1;1649:5:139;808:852;-1:-1:-1;;;;;;;808:852:139:o;1665:297::-;1732:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:2;;;1806:6;1798;1791:22;1753:2;1843:9;1837:16;1896:5;1889:13;1882:21;1875:5;1872:32;1862:2;;1923:6;1915;1908:22;2244:676;2338:6;2391:3;2379:9;2370:7;2366:23;2362:33;2359:2;;;2413:6;2405;2398:22;2359:2;2451;2445:9;2493:3;2485:6;2481:16;2563:6;2551:10;2548:22;2527:18;2515:10;2512:34;2509:62;2506:2;;;2574:18;;:::i;:::-;2610:2;2603:22;2649:39;2678:9;2649:39;:::i;:::-;2641:6;2634:55;2722:48;2766:2;2755:9;2751:18;2722:48;:::i;:::-;2717:2;2709:6;2705:15;2698:73;2825:2;2814:9;2810:18;2804:25;2799:2;2791:6;2787:15;2780:50;2884:2;2873:9;2869:18;2863:25;2858:2;2850:6;2846:15;2839:50;2908:6;2898:16;;;2349:571;;;;:::o;2925:190::-;2984:6;3037:2;3025:9;3016:7;3012:23;3008:32;3005:2;;;3058:6;3050;3043:22;3005:2;-1:-1:-1;3086:23:139;;2995:120;-1:-1:-1;2995:120:139:o;3120:194::-;3190:6;3243:2;3231:9;3222:7;3218:23;3214:32;3211:2;;;3264:6;3256;3249:22;3211:2;-1:-1:-1;3292:16:139;;3201:113;-1:-1:-1;3201:113:139:o;3319:1219::-;3430:6;3438;3446;3454;3507:3;3495:9;3486:7;3482:23;3478:33;3475:2;;;3529:6;3521;3514:22;3475:2;3570:9;3557:23;3547:33;;3599:2;3651;3640:9;3636:18;3623:32;3664:31;3689:5;3664:31;:::i;:::-;3714:5;-1:-1:-1;3766:2:139;3751:18;;3738:32;;-1:-1:-1;3821:2:139;3806:18;;3793:32;3848:18;3837:30;;3834:2;;;3885:6;3877;3870:22;3834:2;3913:22;;3966:4;3958:13;;3954:27;-1:-1:-1;3944:2:139;;4000:6;3992;3985:22;3944:2;4041;4028:16;4064:60;4080:43;4120:2;4080:43;:::i;4064:60::-;4146:3;4170:2;4165:3;4158:15;4198:2;4193:3;4189:12;4182:19;;4229:2;4225;4221:11;4277:7;4272:2;4266;4263:1;4259:10;4255:2;4251:19;4247:28;4244:41;4241:2;;;4303:6;4295;4288:22;4241:2;4330:6;4321:15;;4345:163;4359:2;4356:1;4353:9;4345:163;;;4416:17;;4404:30;;4377:1;4370:9;;;;;4454:12;;;;4486;;4345:163;;;-1:-1:-1;3465:1073:139;;;;-1:-1:-1;3465:1073:139;;-1:-1:-1;;;;;;3465:1073:139:o;4543:203::-;-1:-1:-1;;;;;4707:32:139;;;;4689:51;;4677:2;4662:18;;4644:102::o;4751:274::-;-1:-1:-1;;;;;4943:32:139;;;;4925:51;;5007:2;4992:18;;4985:34;4913:2;4898:18;;4880:145::o;5913:329::-;6115:2;6097:21;;;6154:1;6134:18;;;6127:29;-1:-1:-1;;;6187:2:139;6172:18;;6165:36;6233:2;6218:18;;6087:155::o;8128:355::-;8330:2;8312:21;;;8369:2;8349:18;;;8342:30;8408:33;8403:2;8388:18;;8381:61;8474:2;8459:18;;8302:181::o;8670:877::-;8896:4;8944:3;8933:9;8929:19;8975:6;8964:9;8957:25;9001:2;9068:1;9064;9059:3;9055:11;9051:19;9043:6;9039:32;9034:2;9023:9;9019:18;9012:60;9108:6;9103:2;9092:9;9088:18;9081:34;9151:3;9146:2;9135:9;9131:18;9124:31;9175:6;9210;9204:13;9241:6;9233;9226:22;9279:3;9268:9;9264:19;9257:26;;9318:2;9310:6;9306:15;9292:29;;9339:4;9352:169;9366:6;9363:1;9360:13;9352:169;;;9427:13;;9415:26;;9496:15;;;;9461:12;;;;9388:1;9381:9;9352:169;;;-1:-1:-1;9538:3:139;;8905:642;-1:-1:-1;;;;;;;;;8905:642:139:o;10201:275::-;10272:2;10266:9;10337:2;10318:13;;-1:-1:-1;;10314:27:139;10302:40;;10372:18;10357:34;;10393:22;;;10354:62;10351:2;;;10419:18;;:::i;:::-;10455:2;10448:22;10246:230;;-1:-1:-1;10246:230:139:o;10481:183::-;10541:4;10574:18;10566:6;10563:30;10560:2;;;10596:18;;:::i;:::-;-1:-1:-1;10641:1:139;10637:14;10653:4;10633:25;;10550:114::o;10669:128::-;10709:3;10740:1;10736:6;10733:1;10730:13;10727:2;;;10746:18;;:::i;:::-;-1:-1:-1;10782:9:139;;10717:80::o;10802:217::-;10842:1;10868;10858:2;;-1:-1:-1;;;10893:31:139;;10947:4;10944:1;10937:15;10975:4;10900:1;10965:15;10858:2;-1:-1:-1;11004:9:139;;10848:171::o;11024:692::-;11063:7;11107:2;11096:17;;;;11133;;;-1:-1:-1;;;;;11207:17:139;;;11243;;;11276:11;;;11297:12;;;11289:21;;11272:39;11269:2;;;11314:18;;:::i;:::-;-1:-1:-1;;;;;;11396:17:139;;;11429:11;;;11451:13;;;11442:23;;11425:41;11422:2;;;11469:18;;:::i;:::-;11517:7;11512:3;11508:17;11498:27;;11572:3;11568:2;11563:13;11558:3;11554:23;11549:2;11545;11541:11;11537:41;11534:2;;;11581:18;;:::i;:::-;11648:3;11644:2;11639:13;11634:3;11630:23;11625:2;11621;11617:11;11613:41;11610:2;;;11657:18;;:::i;:::-;-1:-1:-1;;;11697:13:139;;;;;11075:641;-1:-1:-1;;;;;11075:641:139:o;11721:168::-;11761:7;11827:1;11823;11819:6;11815:14;11812:1;11809:21;11804:1;11797:9;11790:17;11786:45;11783:2;;;11834:18;;:::i;:::-;-1:-1:-1;11874:9:139;;11773:116::o;11894:371::-;11933:4;11974:2;11963:17;;;;12000;;;12036:14;;;12066:10;;-1:-1:-1;;;;;;12087:34:139;;12078:44;;12062:61;12059:2;;;12126:18;;:::i;:::-;-1:-1:-1;;;;;12175:29:139;;12166:39;;12158:48;;12155:2;;;12209:18;;:::i;:::-;-1:-1:-1;12246:13:139;;;11942:323;-1:-1:-1;;;11942:323:139:o;12270:125::-;12310:4;12338:1;12335;12332:8;12329:2;;;12343:18;;:::i;:::-;-1:-1:-1;12380:9:139;;12319:76::o;12400:135::-;12439:3;-1:-1:-1;;12460:17:139;;12457:2;;;12480:18;;:::i;:::-;-1:-1:-1;12527:1:139;12516:13;;12447:88::o;12540:127::-;12601:10;12596:3;12592:20;12589:1;12582:31;12632:4;12629:1;12622:15;12656:4;12653:1;12646:15;12672:127;12733:10;12728:3;12724:20;12721:1;12714:31;12764:4;12761:1;12754:15;12788:4;12785:1;12778:15;12804:131;-1:-1:-1;;;;;12879:31:139;;12869:42;;12859:2;;12925:1;12922;12915:12"},"methodIdentifiers":{"TOKEN_CHECKPOINT_DEADLINE()":"a5420e98","WEEK()":"f4359ce5","canCheckpointToken()":"0cc672e4","checkpointToken()":"bee5dc32","checkpointTotalSupply()":"326a9407","claim(uint256)":"379607f5","claimMany(uint256[])":"925489a8","claimWithPendingRewards(uint256,address,uint256,bytes32[])":"2971aa8e","isKilled()":"8fe8a101","isOperator()":"4456eda2","killMe()":"b603cd80","lastTokenTime()":"939ea66b","locker()":"d7b96d4e","operator()":"570ca735","owner()":"8da5cb5b","pendingFeeDistributor()":"7d2294d0","recoverBalance(address)":"68662ea0","renounceOwnership()":"715018a6","setPendingFeeDistributor(address)":"ed0f65aa","startTime()":"78e97925","timeCursor()":"8736659b","timeCursorOf(uint256)":"4607bf60","toggleAllowCheckpointToken()":"8721b785","token()":"fc0c546a","tokenLastBalance()":"8ec8468a","tokensPerWeek(uint256)":"899519be","transferOperator(address)":"29605e77","transferOwnership(address)":"f2fde38b","userEpochOf(uint256)":"e32890c4","veSupply(uint256)":"0f6592ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_votingEscrow\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pendingFeeDistributor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"CheckpointToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nftId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxEpoch\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"OperatorTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"toggleFlag\",\"type\":\"bool\"}],\"name\":\"ToggleAllowCheckpointToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"TOKEN_CHECKPOINT_DEADLINE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WEEK\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"canCheckpointToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpointToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpointTotalSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nftIds\",\"type\":\"uint256[]\"}],\"name\":\"claimMany\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"_proof\",\"type\":\"bytes32[]\"}],\"name\":\"claimWithPendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isKilled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killMe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastTokenTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"locker\",\"outputs\":[{\"internalType\":\"contract INFTLocker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"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\":\"pendingFeeDistributor\",\"outputs\":[{\"internalType\":\"contract IPendingFeeDistributor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_coin\",\"type\":\"address\"}],\"name\":\"recoverBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_what\",\"type\":\"address\"}],\"name\":\"setPendingFeeDistributor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeCursor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"timeCursorOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"toggleAllowCheckpointToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenLastBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokensPerWeek\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOperator_\",\"type\":\"address\"}],\"name\":\"transferOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userEpochOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"veSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions 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\":{\"contracts/fees/FeeDistributor.sol\":\"FeeDistributor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/fees/FeeDistributor.sol\":{\"keccak256\":\"0x49243f4bcdc11521a15d4ee852f21abac0fbf4caa634d76a5fc01d5730c4b074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf2d7ec8f5e44d9e3a3cbae8f886c4e4da12919251675c8fcc65faa644329a68\",\"dweb:/ipfs/QmdYRimEarwQBqi4E5jchG6dKrrwQrPHwEEYcR8dn98ev3\"]},\"contracts/interfaces/IFeeDistributor.sol\":{\"keccak256\":\"0x6440354797a1f08adf0deca10c8914741227f2ceead155c72240d35fa37a1b90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37fe343325b0e22cc140e5ff19399f38700c896d061e7d075ca010a5777203a9\",\"dweb:/ipfs/Qma11vo7nCFG9896ZzSnYECgnkFqTvutTVjmUj4RuFiNyg\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IPendingFeeDistributor.sol\":{\"keccak256\":\"0x55a1ddac4c42df2c1e525c8f759f19fb6b7ed6ffbc1f2336a7925732f6802860\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95c197190a05c8fe1b2ad972ea44ae5d883f9d27c492301396e3426ede7d52f7\",\"dweb:/ipfs/QmSZc5sbVf1StRcez1Pakqbt5C7eA4Xxfx9nbVvvznw7jZ\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/utils/Operator.sol\":{\"keccak256\":\"0x02eb72bd0cc2d7fe1fd6d7f80aa5703b9c464ca87a4d413682f04837a9ed55df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94ec6cda1c2f7555fa3ab532986d4dfc291b4e1d50cd306e82c4c5b6eca2d843\",\"dweb:/ipfs/QmbhbjobX4d71JKwa7LL18CA591fYWG6bwJDa9SijiLF5k\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x60b0215121bf25612a6739fb2f1ec35f31ee82e4a8216c032c8243d904ab3aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e29880d33dd479bb046ba306993d26ccb779a4b1d94a046cb3567f22948bb4d\",\"dweb:/ipfs/QmfTY1qzPt5C63Wc7y6JqfZr5899NRvXYdCpyLzR5FXQic\"]}},\"version\":1}"}},"contracts/fees/MultiFeeDistributor.sol":{"MultiFeeDistributor":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"nftIds","type":"uint256[]"},{"internalType":"contract IFeeDistributor[]","name":"distributors","type":"address[]"}],"name":"claimMany","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"},{"internalType":"contract IFeeDistributor[]","name":"distributors","type":"address[]"}],"name":"claimManyWithProofs","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610823806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063711232c31461003b578063c55d05f214610064575b600080fd5b61004e6100493660046103ff565b610077565b60405161005b919061069e565b60405180910390f35b61004e61007236600461051e565b610219565b6060600083516001600160401b038111156100a257634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156100cb578160200160208202803683370190505b50905060005b84518110156102115760008060008088858151811061010057634e487b7160e01b600052603260045260246000fd5b602002602001015180602001905181019061011b91906105e5565b935093509350935087858151811061014357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316632971aa8e858585856040518563ffffffff1660e01b815260040161017c94939291906106e2565b602060405180830381600087803b15801561019657600080fd5b505af11580156101aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ce91906105cd565b8686815181106101ee57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505050505050808061020990610798565b9150506100d1565b509392505050565b6060600083516001600160401b0381111561024457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561026d578160200160208202803683370190505b50905060005b84518110156102115783818151811061029c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663379607f58683815181106102d257634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016102f891815260200190565b602060405180830381600087803b15801561031257600080fd5b505af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a91906105cd565b82828151811061036a57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061037f81610798565b915050610273565b600082601f830112610397578081fd5b813560206103ac6103a783610775565b610745565b80838252828201915082860187848660051b89010111156103cb578586fd5b855b858110156103f25781356103e0816107d5565b845292840192908401906001016103cd565b5090979650505050505050565b6000806040808486031215610412578283fd5b83356001600160401b0380821115610428578485fd5b818601915086601f83011261043b578485fd5b8135602061044b6103a783610775565b8083825282820191508286018b848660051b890101111561046a57898afd5b895b858110156104ee57813587811115610482578b8cfd5b8801603f81018e13610492578b8cfd5b85810135888111156104a6576104a66107bf565b6104b8601f8201601f19168801610745565b8181528f8c8385010111156104cb578d8efd5b818c84018983013790810187018d9052855250928401929084019060010161046c565b50909850505087013593505080831115610506578384fd5b505061051485828601610387565b9150509250929050565b60008060408385031215610530578182fd5b82356001600160401b0380821115610546578384fd5b818501915085601f830112610559578384fd5b813560206105696103a783610775565b8083825282820191508286018a848660051b8901011115610588578889fd5b8896505b848710156105aa57803583526001969096019591830191830161058c565b50965050860135925050808211156105c0578283fd5b5061051485828601610387565b6000602082840312156105de578081fd5b5051919050565b600080600080608085870312156105fa578182fd5b8451935060208086015161060d816107d5565b6040870151606088015191955093506001600160401b0381111561062f578283fd5b8601601f8101881361063f578283fd5b805161064d6103a782610775565b8082825284820191508484018b868560051b870101111561066c578687fd5b8694505b8385101561068e578051835260019490940193918501918501610670565b50979a9699509497505050505050565b6020808252825182820181905260009190848201906040850190845b818110156106d6578351835292840192918401916001016106ba565b50909695505050505050565b600060808201868352602060018060a01b038716818501528560408501526080606085015281855180845260a0860191508287019350845b818110156107365784518352938301939183019160010161071a565b50909998505050505050505050565b604051601f8201601f191681016001600160401b038111828210171561076d5761076d6107bf565b604052919050565b60006001600160401b0382111561078e5761078e6107bf565b5060051b60200190565b60006000198214156107b857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107ea57600080fd5b5056fea26469706673582212206ac7653e08f63dfc12bfdbd9b261b2cc929183c4b2c3b944d80f70c7e3f666a264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x823 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x711232C3 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xC55D05F2 EQ PUSH2 0x64 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FF JUMP JUMPDEST PUSH2 0x77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x72 CALLDATASIZE PUSH1 0x4 PUSH2 0x51E JUMP JUMPDEST PUSH2 0x219 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xA2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x100 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11B SWAP2 SWAP1 PUSH2 0x5E5 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP8 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x143 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2971AA8E DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CE SWAP2 SWAP1 PUSH2 0x5CD JUMP JUMPDEST DUP7 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x1EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x209 SWAP1 PUSH2 0x798 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD1 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x244 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x211 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x29C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x379607F5 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x2D2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x326 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34A SWAP2 SWAP1 PUSH2 0x5CD JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x36A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0x37F DUP2 PUSH2 0x798 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x273 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x397 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x3AC PUSH2 0x3A7 DUP4 PUSH2 0x775 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x3CB JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3F2 JUMPI DUP2 CALLDATALOAD PUSH2 0x3E0 DUP2 PUSH2 0x7D5 JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3CD JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP1 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x412 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x428 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x43B JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x44B PUSH2 0x3A7 DUP4 PUSH2 0x775 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP12 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x46A JUMPI DUP10 DUP11 REVERT JUMPDEST DUP10 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4EE JUMPI DUP2 CALLDATALOAD DUP8 DUP2 GT ISZERO PUSH2 0x482 JUMPI DUP12 DUP13 REVERT JUMPDEST DUP9 ADD PUSH1 0x3F DUP2 ADD DUP15 SGT PUSH2 0x492 JUMPI DUP12 DUP13 REVERT JUMPDEST DUP6 DUP2 ADD CALLDATALOAD DUP9 DUP2 GT ISZERO PUSH2 0x4A6 JUMPI PUSH2 0x4A6 PUSH2 0x7BF JUMP JUMPDEST PUSH2 0x4B8 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP9 ADD PUSH2 0x745 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP16 DUP13 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x4CB JUMPI DUP14 DUP15 REVERT JUMPDEST DUP2 DUP13 DUP5 ADD DUP10 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD DUP8 ADD DUP14 SWAP1 MSTORE DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x46C JUMP JUMPDEST POP SWAP1 SWAP9 POP POP POP DUP8 ADD CALLDATALOAD SWAP4 POP POP DUP1 DUP4 GT ISZERO PUSH2 0x506 JUMPI DUP4 DUP5 REVERT JUMPDEST POP POP PUSH2 0x514 DUP6 DUP3 DUP7 ADD PUSH2 0x387 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x530 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x546 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x559 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x569 PUSH2 0x3A7 DUP4 PUSH2 0x775 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP11 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x588 JUMPI DUP9 DUP10 REVERT JUMPDEST DUP9 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0x5AA JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x58C JUMP JUMPDEST POP SWAP7 POP POP DUP7 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0x5C0 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x514 DUP6 DUP3 DUP7 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5FA JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 MLOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD MLOAD PUSH2 0x60D DUP2 PUSH2 0x7D5 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD PUSH1 0x60 DUP9 ADD MLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x62F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP7 ADD PUSH1 0x1F DUP2 ADD DUP9 SGT PUSH2 0x63F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x64D PUSH2 0x3A7 DUP3 PUSH2 0x775 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE DUP5 DUP3 ADD SWAP2 POP DUP5 DUP5 ADD DUP12 DUP7 DUP6 PUSH1 0x5 SHL DUP8 ADD ADD GT ISZERO PUSH2 0x66C JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x68E JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x1 SWAP5 SWAP1 SWAP5 ADD SWAP4 SWAP2 DUP6 ADD SWAP2 DUP6 ADD PUSH2 0x670 JUMP JUMPDEST POP SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6D6 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x6BA JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD DUP7 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 DUP6 ADD MSTORE DUP6 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0xA0 DUP7 ADD SWAP2 POP DUP3 DUP8 ADD SWAP4 POP DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x736 JUMPI DUP5 MLOAD DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x71A JUMP JUMPDEST POP SWAP1 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x76D JUMPI PUSH2 0x76D PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x78E JUMPI PUSH2 0x78E PUSH2 0x7BF JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x7B8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0xC7653E08F63DFC12BFDBD9 0xB2 PUSH2 0xB2CC SWAP3 SWAP2 DUP4 0xC4 0xB2 0xC3 0xB9 DIFFICULTY 0xD8 0xF PUSH17 0xC7E3F666A264736F6C6343000804003300 ","sourceMap":"126:1133:79:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8052:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:712:139","statements":[{"body":{"nodeType":"YulBlock","src":"144:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"153:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"160:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"146:6:139"},"nodeType":"YulFunctionCall","src":"146:20:139"},"nodeType":"YulExpressionStatement","src":"146:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"123:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"131:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"119:3:139"},"nodeType":"YulFunctionCall","src":"119:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"138:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"115:3:139"},"nodeType":"YulFunctionCall","src":"115:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"108:6:139"},"nodeType":"YulFunctionCall","src":"108:35:139"},"nodeType":"YulIf","src":"105:2:139"},{"nodeType":"YulVariableDeclaration","src":"177:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"200:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"187:12:139"},"nodeType":"YulFunctionCall","src":"187:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"181:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"216:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"226:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"220:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"239:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"306:2:139"}],"functionName":{"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulIdentifier","src":"266:39:139"},"nodeType":"YulFunctionCall","src":"266:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"250:15:139"},"nodeType":"YulFunctionCall","src":"250:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"243:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"319:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"332:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"323:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"351:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"356:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"344:6:139"},"nodeType":"YulFunctionCall","src":"344:15:139"},"nodeType":"YulExpressionStatement","src":"344:15:139"},{"nodeType":"YulAssignment","src":"368:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"379:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"384:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"375:3:139"},"nodeType":"YulFunctionCall","src":"375:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"368:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"396:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"411:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"419:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"407:3:139"},"nodeType":"YulFunctionCall","src":"407:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"400:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"476:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"485:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"492:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"478:6:139"},"nodeType":"YulFunctionCall","src":"478:20:139"},"nodeType":"YulExpressionStatement","src":"478:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"445:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"457:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"460:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"453:3:139"},"nodeType":"YulFunctionCall","src":"453:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"441:3:139"},"nodeType":"YulFunctionCall","src":"441:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"466:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"437:3:139"},"nodeType":"YulFunctionCall","src":"437:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"471:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"434:2:139"},"nodeType":"YulFunctionCall","src":"434:41:139"},"nodeType":"YulIf","src":"431:2:139"},{"nodeType":"YulVariableDeclaration","src":"509:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"518:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"513:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"577:201:139","statements":[{"nodeType":"YulVariableDeclaration","src":"591:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"617:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"604:12:139"},"nodeType":"YulFunctionCall","src":"604:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"595:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"667:5:139"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"634:32:139"},"nodeType":"YulFunctionCall","src":"634:39:139"},"nodeType":"YulExpressionStatement","src":"634:39:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"693:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"698:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"686:6:139"},"nodeType":"YulFunctionCall","src":"686:18:139"},"nodeType":"YulExpressionStatement","src":"686:18:139"},{"nodeType":"YulAssignment","src":"717:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"728:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"733:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"724:3:139"},"nodeType":"YulFunctionCall","src":"724:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"717:3:139"}]},{"nodeType":"YulAssignment","src":"749:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"760:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"765:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"756:3:139"},"nodeType":"YulFunctionCall","src":"756:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"749:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"543:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"546:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"540:2:139"},"nodeType":"YulFunctionCall","src":"540:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"550:18:139","statements":[{"nodeType":"YulAssignment","src":"552:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"561:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"564:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"557:3:139"},"nodeType":"YulFunctionCall","src":"557:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"552:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"536:3:139","statements":[]},"src":"532:246:139"},{"nodeType":"YulAssignment","src":"787:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"796:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"787:5:139"}]}]},"name":"abi_decode_array_contract_IFeeDistributor_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"69:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"77:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"85:5:139","type":""}],"src":"14:793:139"},{"body":{"nodeType":"YulBlock","src":"983:1717:139","statements":[{"nodeType":"YulVariableDeclaration","src":"993:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1003:2:139","type":"","value":"64"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"997:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1050:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1059:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1067:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1052:6:139"},"nodeType":"YulFunctionCall","src":"1052:22:139"},"nodeType":"YulExpressionStatement","src":"1052:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1025:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1034:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1021:3:139"},"nodeType":"YulFunctionCall","src":"1021:23:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1046:2:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1017:3:139"},"nodeType":"YulFunctionCall","src":"1017:32:139"},"nodeType":"YulIf","src":"1014:2:139"},{"nodeType":"YulVariableDeclaration","src":"1085:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1112:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1099:12:139"},"nodeType":"YulFunctionCall","src":"1099:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1089:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1131:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1141:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1135:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1186:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1195:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1203:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1188:6:139"},"nodeType":"YulFunctionCall","src":"1188:22:139"},"nodeType":"YulExpressionStatement","src":"1188:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1174:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1182:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1171:2:139"},"nodeType":"YulFunctionCall","src":"1171:14:139"},"nodeType":"YulIf","src":"1168:2:139"},{"nodeType":"YulVariableDeclaration","src":"1221:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1235:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1246:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1231:3:139"},"nodeType":"YulFunctionCall","src":"1231:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1225:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1301:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1318:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1303:6:139"},"nodeType":"YulFunctionCall","src":"1303:22:139"},"nodeType":"YulExpressionStatement","src":"1303:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1280:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1284:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1276:3:139"},"nodeType":"YulFunctionCall","src":"1276:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1291:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1272:3:139"},"nodeType":"YulFunctionCall","src":"1272:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1265:6:139"},"nodeType":"YulFunctionCall","src":"1265:35:139"},"nodeType":"YulIf","src":"1262:2:139"},{"nodeType":"YulVariableDeclaration","src":"1336:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1359:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1346:12:139"},"nodeType":"YulFunctionCall","src":"1346:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1340:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1371:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1381:4:139","type":"","value":"0x20"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"1375:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1394:71:139","value":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1461:2:139"}],"functionName":{"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulIdentifier","src":"1421:39:139"},"nodeType":"YulFunctionCall","src":"1421:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1405:15:139"},"nodeType":"YulFunctionCall","src":"1405:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1398:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1474:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1487:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1478:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1506:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1511:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1499:6:139"},"nodeType":"YulFunctionCall","src":"1499:15:139"},"nodeType":"YulExpressionStatement","src":"1499:15:139"},{"nodeType":"YulAssignment","src":"1523:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1534:3:139"},{"name":"_5","nodeType":"YulIdentifier","src":"1539:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1530:3:139"},"nodeType":"YulFunctionCall","src":"1530:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1523:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1551:22:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1566:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"1570:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1562:3:139"},"nodeType":"YulFunctionCall","src":"1562:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1555:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1627:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1636:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1644:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1629:6:139"},"nodeType":"YulFunctionCall","src":"1629:22:139"},"nodeType":"YulExpressionStatement","src":"1629:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1596:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1604:1:139","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"1607:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1600:3:139"},"nodeType":"YulFunctionCall","src":"1600:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1592:3:139"},"nodeType":"YulFunctionCall","src":"1592:19:139"},{"name":"_5","nodeType":"YulIdentifier","src":"1613:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1588:3:139"},"nodeType":"YulFunctionCall","src":"1588:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1618:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1585:2:139"},"nodeType":"YulFunctionCall","src":"1585:41:139"},"nodeType":"YulIf","src":"1582:2:139"},{"nodeType":"YulVariableDeclaration","src":"1662:15:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"1671:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1666:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1731:728:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1745:36:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1777:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1764:12:139"},"nodeType":"YulFunctionCall","src":"1764:17:139"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"1749:11:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1817:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1826:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1834:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1819:6:139"},"nodeType":"YulFunctionCall","src":"1819:22:139"},"nodeType":"YulExpressionStatement","src":"1819:22:139"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"1800:11:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1813:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1797:2:139"},"nodeType":"YulFunctionCall","src":"1797:19:139"},"nodeType":"YulIf","src":"1794:2:139"},{"nodeType":"YulVariableDeclaration","src":"1856:30:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1870:2:139"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"1874:11:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1866:3:139"},"nodeType":"YulFunctionCall","src":"1866:20:139"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"1860:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1936:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1945:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1953:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1938:6:139"},"nodeType":"YulFunctionCall","src":"1938:22:139"},"nodeType":"YulExpressionStatement","src":"1938:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"1917:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1921:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1913:3:139"},"nodeType":"YulFunctionCall","src":"1913:11:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1926:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1909:3:139"},"nodeType":"YulFunctionCall","src":"1909:25:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1902:6:139"},"nodeType":"YulFunctionCall","src":"1902:33:139"},"nodeType":"YulIf","src":"1899:2:139"},{"nodeType":"YulVariableDeclaration","src":"1975:35:139","value":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"2002:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2006:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1998:3:139"},"nodeType":"YulFunctionCall","src":"1998:11:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1985:12:139"},"nodeType":"YulFunctionCall","src":"1985:25:139"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"1979:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2037:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2039:16:139"},"nodeType":"YulFunctionCall","src":"2039:18:139"},"nodeType":"YulExpressionStatement","src":"2039:18:139"}]},"condition":{"arguments":[{"name":"_7","nodeType":"YulIdentifier","src":"2029:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2033:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2026:2:139"},"nodeType":"YulFunctionCall","src":"2026:10:139"},"nodeType":"YulIf","src":"2023:2:139"},{"nodeType":"YulVariableDeclaration","src":"2072:66:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_7","nodeType":"YulIdentifier","src":"2113:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2117:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2109:3:139"},"nodeType":"YulFunctionCall","src":"2109:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2128:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2124:3:139"},"nodeType":"YulFunctionCall","src":"2124:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2105:3:139"},"nodeType":"YulFunctionCall","src":"2105:27:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2134:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2101:3:139"},"nodeType":"YulFunctionCall","src":"2101:36:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2085:15:139"},"nodeType":"YulFunctionCall","src":"2085:53:139"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"2076:5:139","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2158:5:139"},{"name":"_7","nodeType":"YulIdentifier","src":"2165:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2151:6:139"},"nodeType":"YulFunctionCall","src":"2151:17:139"},"nodeType":"YulExpressionStatement","src":"2151:17:139"},{"body":{"nodeType":"YulBlock","src":"2218:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2227:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2235:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2220:6:139"},"nodeType":"YulFunctionCall","src":"2220:22:139"},"nodeType":"YulExpressionStatement","src":"2220:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"2195:2:139"},{"name":"_7","nodeType":"YulIdentifier","src":"2199:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2191:3:139"},"nodeType":"YulFunctionCall","src":"2191:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2204:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2187:3:139"},"nodeType":"YulFunctionCall","src":"2187:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2209:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2184:2:139"},"nodeType":"YulFunctionCall","src":"2184:33:139"},"nodeType":"YulIf","src":"2181:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2274:5:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2281:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2270:3:139"},"nodeType":"YulFunctionCall","src":"2270:14:139"},{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"2290:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2294:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2286:3:139"},"nodeType":"YulFunctionCall","src":"2286:11:139"},{"name":"_7","nodeType":"YulIdentifier","src":"2299:2:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2257:12:139"},"nodeType":"YulFunctionCall","src":"2257:45:139"},"nodeType":"YulExpressionStatement","src":"2257:45:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2330:5:139"},{"name":"_7","nodeType":"YulIdentifier","src":"2337:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2326:3:139"},"nodeType":"YulFunctionCall","src":"2326:14:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2342:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2322:3:139"},"nodeType":"YulFunctionCall","src":"2322:23:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2347:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2315:6:139"},"nodeType":"YulFunctionCall","src":"2315:39:139"},"nodeType":"YulExpressionStatement","src":"2315:39:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2374:3:139"},{"name":"array","nodeType":"YulIdentifier","src":"2379:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2367:6:139"},"nodeType":"YulFunctionCall","src":"2367:18:139"},"nodeType":"YulExpressionStatement","src":"2367:18:139"},{"nodeType":"YulAssignment","src":"2398:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2409:3:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2414:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2405:3:139"},"nodeType":"YulFunctionCall","src":"2405:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2398:3:139"}]},{"nodeType":"YulAssignment","src":"2430:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2441:3:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2446:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2437:3:139"},"nodeType":"YulFunctionCall","src":"2437:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2430:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1697:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1700:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1694:2:139"},"nodeType":"YulFunctionCall","src":"1694:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1704:18:139","statements":[{"nodeType":"YulAssignment","src":"1706:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1715:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1718:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1711:3:139"},"nodeType":"YulFunctionCall","src":"1711:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1706:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1690:3:139","statements":[]},"src":"1686:773:139"},{"nodeType":"YulAssignment","src":"2468:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2478:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2468:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2492:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2525:9:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2536:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2521:3:139"},"nodeType":"YulFunctionCall","src":"2521:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2508:12:139"},"nodeType":"YulFunctionCall","src":"2508:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2496:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2569:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2578:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2586:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2571:6:139"},"nodeType":"YulFunctionCall","src":"2571:22:139"},"nodeType":"YulExpressionStatement","src":"2571:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2555:8:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2565:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2552:2:139"},"nodeType":"YulFunctionCall","src":"2552:16:139"},"nodeType":"YulIf","src":"2549:2:139"},{"nodeType":"YulAssignment","src":"2604:90:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2664:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2675:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2660:3:139"},"nodeType":"YulFunctionCall","src":"2660:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2686:7:139"}],"functionName":{"name":"abi_decode_array_contract_IFeeDistributor_dyn","nodeType":"YulIdentifier","src":"2614:45:139"},"nodeType":"YulFunctionCall","src":"2614:80:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2604:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"941:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"952:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"964:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"972:6:139","type":""}],"src":"812:1888:139"},{"body":{"nodeType":"YulBlock","src":"2867:1086:139","statements":[{"body":{"nodeType":"YulBlock","src":"2913:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2922:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2930:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2915:6:139"},"nodeType":"YulFunctionCall","src":"2915:22:139"},"nodeType":"YulExpressionStatement","src":"2915:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2888:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2897:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2884:3:139"},"nodeType":"YulFunctionCall","src":"2884:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2909:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2880:3:139"},"nodeType":"YulFunctionCall","src":"2880:32:139"},"nodeType":"YulIf","src":"2877:2:139"},{"nodeType":"YulVariableDeclaration","src":"2948:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2975:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2962:12:139"},"nodeType":"YulFunctionCall","src":"2962:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2952:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2994:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3004:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2998:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3049:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3058:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3066:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3051:6:139"},"nodeType":"YulFunctionCall","src":"3051:22:139"},"nodeType":"YulExpressionStatement","src":"3051:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3037:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3045:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3034:2:139"},"nodeType":"YulFunctionCall","src":"3034:14:139"},"nodeType":"YulIf","src":"3031:2:139"},{"nodeType":"YulVariableDeclaration","src":"3084:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3098:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3109:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3094:3:139"},"nodeType":"YulFunctionCall","src":"3094:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3088:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3164:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3173:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3181:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3166:6:139"},"nodeType":"YulFunctionCall","src":"3166:22:139"},"nodeType":"YulExpressionStatement","src":"3166:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3143:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3147:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3139:3:139"},"nodeType":"YulFunctionCall","src":"3139:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3154:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3135:3:139"},"nodeType":"YulFunctionCall","src":"3135:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3128:6:139"},"nodeType":"YulFunctionCall","src":"3128:35:139"},"nodeType":"YulIf","src":"3125:2:139"},{"nodeType":"YulVariableDeclaration","src":"3199:26:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3222:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3209:12:139"},"nodeType":"YulFunctionCall","src":"3209:16:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3203:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3234:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3244:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"3238:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3257:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3324:2:139"}],"functionName":{"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulIdentifier","src":"3284:39:139"},"nodeType":"YulFunctionCall","src":"3284:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3268:15:139"},"nodeType":"YulFunctionCall","src":"3268:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"3261:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3337:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"3350:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"3341:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3369:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"3374:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3362:6:139"},"nodeType":"YulFunctionCall","src":"3362:15:139"},"nodeType":"YulExpressionStatement","src":"3362:15:139"},{"nodeType":"YulAssignment","src":"3386:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3397:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3402:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3393:3:139"},"nodeType":"YulFunctionCall","src":"3393:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3386:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"3414:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3429:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3433:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3425:3:139"},"nodeType":"YulFunctionCall","src":"3425:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"3418:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3490:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3499:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3507:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3492:6:139"},"nodeType":"YulFunctionCall","src":"3492:22:139"},"nodeType":"YulExpressionStatement","src":"3492:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3459:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3467:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"3470:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3463:3:139"},"nodeType":"YulFunctionCall","src":"3463:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3455:3:139"},"nodeType":"YulFunctionCall","src":"3455:19:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3476:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3451:3:139"},"nodeType":"YulFunctionCall","src":"3451:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3481:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3448:2:139"},"nodeType":"YulFunctionCall","src":"3448:41:139"},"nodeType":"YulIf","src":"3445:2:139"},{"nodeType":"YulVariableDeclaration","src":"3525:15:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"3534:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3529:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3594:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3615:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3633:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3620:12:139"},"nodeType":"YulFunctionCall","src":"3620:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3608:6:139"},"nodeType":"YulFunctionCall","src":"3608:30:139"},"nodeType":"YulExpressionStatement","src":"3608:30:139"},{"nodeType":"YulAssignment","src":"3651:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3662:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3667:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3658:3:139"},"nodeType":"YulFunctionCall","src":"3658:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3651:3:139"}]},{"nodeType":"YulAssignment","src":"3683:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3694:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3699:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3690:3:139"},"nodeType":"YulFunctionCall","src":"3690:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3683:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3560:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"3563:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3557:2:139"},"nodeType":"YulFunctionCall","src":"3557:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3567:18:139","statements":[{"nodeType":"YulAssignment","src":"3569:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3578:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"3581:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3574:3:139"},"nodeType":"YulFunctionCall","src":"3574:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3569:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"3553:3:139","statements":[]},"src":"3549:163:139"},{"nodeType":"YulAssignment","src":"3721:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"3731:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3721:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3745:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3778:9:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3789:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3774:3:139"},"nodeType":"YulFunctionCall","src":"3774:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3761:12:139"},"nodeType":"YulFunctionCall","src":"3761:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3749:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3822:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3831:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3839:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3824:6:139"},"nodeType":"YulFunctionCall","src":"3824:22:139"},"nodeType":"YulExpressionStatement","src":"3824:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3808:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3818:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3805:2:139"},"nodeType":"YulFunctionCall","src":"3805:16:139"},"nodeType":"YulIf","src":"3802:2:139"},{"nodeType":"YulAssignment","src":"3857:90:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3917:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3928:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:139"},"nodeType":"YulFunctionCall","src":"3913:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3939:7:139"}],"functionName":{"name":"abi_decode_array_contract_IFeeDistributor_dyn","nodeType":"YulIdentifier","src":"3867:45:139"},"nodeType":"YulFunctionCall","src":"3867:80:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3857:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2825:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2836:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2848:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2856:6:139","type":""}],"src":"2705:1248:139"},{"body":{"nodeType":"YulBlock","src":"4039:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"4085:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4094:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4102:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4087:6:139"},"nodeType":"YulFunctionCall","src":"4087:22:139"},"nodeType":"YulExpressionStatement","src":"4087:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4060:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4069:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4056:3:139"},"nodeType":"YulFunctionCall","src":"4056:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4081:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4052:3:139"},"nodeType":"YulFunctionCall","src":"4052:32:139"},"nodeType":"YulIf","src":"4049:2:139"},{"nodeType":"YulAssignment","src":"4120:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4136:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4130:5:139"},"nodeType":"YulFunctionCall","src":"4130:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4120:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4005:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4016:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4028:6:139","type":""}],"src":"3958:194:139"},{"body":{"nodeType":"YulBlock","src":"4322:1039:139","statements":[{"body":{"nodeType":"YulBlock","src":"4369:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4378:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"4386:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4371:6:139"},"nodeType":"YulFunctionCall","src":"4371:22:139"},"nodeType":"YulExpressionStatement","src":"4371:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4343:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4352:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4339:3:139"},"nodeType":"YulFunctionCall","src":"4339:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4364:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4335:3:139"},"nodeType":"YulFunctionCall","src":"4335:33:139"},"nodeType":"YulIf","src":"4332:2:139"},{"nodeType":"YulAssignment","src":"4404:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4420:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4414:5:139"},"nodeType":"YulFunctionCall","src":"4414:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4404:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4439:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"4449:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4443:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4460:38:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4483:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4494:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4479:3:139"},"nodeType":"YulFunctionCall","src":"4479:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4473:5:139"},"nodeType":"YulFunctionCall","src":"4473:25:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4464:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4540:5:139"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"4507:32:139"},"nodeType":"YulFunctionCall","src":"4507:39:139"},"nodeType":"YulExpressionStatement","src":"4507:39:139"},{"nodeType":"YulAssignment","src":"4555:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"4565:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4555:6:139"}]},{"nodeType":"YulAssignment","src":"4579:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4599:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4610:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4595:3:139"},"nodeType":"YulFunctionCall","src":"4595:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4589:5:139"},"nodeType":"YulFunctionCall","src":"4589:25:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4579:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4623:39:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4647:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4658:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4643:3:139"},"nodeType":"YulFunctionCall","src":"4643:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4637:5:139"},"nodeType":"YulFunctionCall","src":"4637:25:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4627:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4705:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4714:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"4722:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4707:6:139"},"nodeType":"YulFunctionCall","src":"4707:22:139"},"nodeType":"YulExpressionStatement","src":"4707:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4677:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4685:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4674:2:139"},"nodeType":"YulFunctionCall","src":"4674:30:139"},"nodeType":"YulIf","src":"4671:2:139"},{"nodeType":"YulVariableDeclaration","src":"4740:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4754:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4765:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4750:3:139"},"nodeType":"YulFunctionCall","src":"4750:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4744:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4820:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4829:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"4837:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4822:6:139"},"nodeType":"YulFunctionCall","src":"4822:22:139"},"nodeType":"YulExpressionStatement","src":"4822:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4799:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"4803:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4795:3:139"},"nodeType":"YulFunctionCall","src":"4795:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4810:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4791:3:139"},"nodeType":"YulFunctionCall","src":"4791:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4784:6:139"},"nodeType":"YulFunctionCall","src":"4784:35:139"},"nodeType":"YulIf","src":"4781:2:139"},{"nodeType":"YulVariableDeclaration","src":"4855:19:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4871:2:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4865:5:139"},"nodeType":"YulFunctionCall","src":"4865:9:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4859:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4883:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4950:2:139"}],"functionName":{"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulIdentifier","src":"4910:39:139"},"nodeType":"YulFunctionCall","src":"4910:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4894:15:139"},"nodeType":"YulFunctionCall","src":"4894:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"4887:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4963:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"4976:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"4967:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4995:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"5000:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4988:6:139"},"nodeType":"YulFunctionCall","src":"4988:15:139"},"nodeType":"YulExpressionStatement","src":"4988:15:139"},{"nodeType":"YulAssignment","src":"5012:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5023:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5028:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5019:3:139"},"nodeType":"YulFunctionCall","src":"5019:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5012:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"5040:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5055:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5059:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5051:3:139"},"nodeType":"YulFunctionCall","src":"5051:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"5044:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5116:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5125:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"5133:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5118:6:139"},"nodeType":"YulFunctionCall","src":"5118:22:139"},"nodeType":"YulExpressionStatement","src":"5118:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5085:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5093:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"5096:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5089:3:139"},"nodeType":"YulFunctionCall","src":"5089:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5081:3:139"},"nodeType":"YulFunctionCall","src":"5081:19:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5102:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5077:3:139"},"nodeType":"YulFunctionCall","src":"5077:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5107:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5074:2:139"},"nodeType":"YulFunctionCall","src":"5074:41:139"},"nodeType":"YulIf","src":"5071:2:139"},{"nodeType":"YulVariableDeclaration","src":"5151:15:139","value":{"name":"value3","nodeType":"YulIdentifier","src":"5160:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5155:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5220:111:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5241:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5252:3:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5246:5:139"},"nodeType":"YulFunctionCall","src":"5246:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5234:6:139"},"nodeType":"YulFunctionCall","src":"5234:23:139"},"nodeType":"YulExpressionStatement","src":"5234:23:139"},{"nodeType":"YulAssignment","src":"5270:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5281:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5286:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5277:3:139"},"nodeType":"YulFunctionCall","src":"5277:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5270:3:139"}]},{"nodeType":"YulAssignment","src":"5302:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5313:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5318:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5309:3:139"},"nodeType":"YulFunctionCall","src":"5309:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"5302:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5186:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"5189:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5183:2:139"},"nodeType":"YulFunctionCall","src":"5183:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5193:18:139","statements":[{"nodeType":"YulAssignment","src":"5195:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5204:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"5207:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5200:3:139"},"nodeType":"YulFunctionCall","src":"5200:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5195:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"5179:3:139","statements":[]},"src":"5175:156:139"},{"nodeType":"YulAssignment","src":"5340:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"5350:5:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5340:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_address_payablet_uint256t_array$_t_bytes32_$dyn_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4264:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4275:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4287:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4295:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4303:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4311:6:139","type":""}],"src":"4157:1204:139"},{"body":{"nodeType":"YulBlock","src":"5517:484:139","statements":[{"nodeType":"YulVariableDeclaration","src":"5527:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"5537:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5531:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5548:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5566:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5577:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5562:3:139"},"nodeType":"YulFunctionCall","src":"5562:18:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"5552:6:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5596:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5607:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5589:6:139"},"nodeType":"YulFunctionCall","src":"5589:21:139"},"nodeType":"YulExpressionStatement","src":"5589:21:139"},{"nodeType":"YulVariableDeclaration","src":"5619:17:139","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"5630:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"5623:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5645:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5665:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5659:5:139"},"nodeType":"YulFunctionCall","src":"5659:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5649:6:139","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"5688:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"5696:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5681:6:139"},"nodeType":"YulFunctionCall","src":"5681:22:139"},"nodeType":"YulExpressionStatement","src":"5681:22:139"},{"nodeType":"YulAssignment","src":"5712:25:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5723:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5734:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5719:3:139"},"nodeType":"YulFunctionCall","src":"5719:18:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5712:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"5746:29:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5764:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5772:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5760:3:139"},"nodeType":"YulFunctionCall","src":"5760:15:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"5750:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5784:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"5793:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5788:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5855:120:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5876:3:139"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5887:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5881:5:139"},"nodeType":"YulFunctionCall","src":"5881:13:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5869:6:139"},"nodeType":"YulFunctionCall","src":"5869:26:139"},"nodeType":"YulExpressionStatement","src":"5869:26:139"},{"nodeType":"YulAssignment","src":"5908:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5919:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5924:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5915:3:139"},"nodeType":"YulFunctionCall","src":"5915:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5908:3:139"}]},{"nodeType":"YulAssignment","src":"5940:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5954:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5962:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5950:3:139"},"nodeType":"YulFunctionCall","src":"5950:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5940:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5817:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"5820:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5814:2:139"},"nodeType":"YulFunctionCall","src":"5814:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5828:18:139","statements":[{"nodeType":"YulAssignment","src":"5830:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5839:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"5842:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5835:3:139"},"nodeType":"YulFunctionCall","src":"5835:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5830:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"5810:3:139","statements":[]},"src":"5806:169:139"},{"nodeType":"YulAssignment","src":"5984:11:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"5992:3:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5984:4:139"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5486:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5497:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5508:4:139","type":""}],"src":"5366:635:139"},{"body":{"nodeType":"YulBlock","src":"6107:76:139","statements":[{"nodeType":"YulAssignment","src":"6117:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6129:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6140:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6125:3:139"},"nodeType":"YulFunctionCall","src":"6125:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6117:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6159:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6170:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6152:6:139"},"nodeType":"YulFunctionCall","src":"6152:25:139"},"nodeType":"YulExpressionStatement","src":"6152:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6076:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6087:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6098:4:139","type":""}],"src":"6006:177:139"},{"body":{"nodeType":"YulBlock","src":"6423:642:139","statements":[{"nodeType":"YulVariableDeclaration","src":"6433:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6451:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6462:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6447:3:139"},"nodeType":"YulFunctionCall","src":"6447:19:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"6437:6:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6482:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6493:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6475:6:139"},"nodeType":"YulFunctionCall","src":"6475:25:139"},"nodeType":"YulExpressionStatement","src":"6475:25:139"},{"nodeType":"YulVariableDeclaration","src":"6509:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"6519:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6513:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6541:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6552:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6537:3:139"},"nodeType":"YulFunctionCall","src":"6537:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6561:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6577:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6582:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6573:3:139"},"nodeType":"YulFunctionCall","src":"6573:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6586:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6569:3:139"},"nodeType":"YulFunctionCall","src":"6569:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6557:3:139"},"nodeType":"YulFunctionCall","src":"6557:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6530:6:139"},"nodeType":"YulFunctionCall","src":"6530:60:139"},"nodeType":"YulExpressionStatement","src":"6530:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6610:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6621:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6606:3:139"},"nodeType":"YulFunctionCall","src":"6606:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"6626:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6599:6:139"},"nodeType":"YulFunctionCall","src":"6599:34:139"},"nodeType":"YulExpressionStatement","src":"6599:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6653:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6664:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6649:3:139"},"nodeType":"YulFunctionCall","src":"6649:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6669:3:139","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6642:6:139"},"nodeType":"YulFunctionCall","src":"6642:31:139"},"nodeType":"YulExpressionStatement","src":"6642:31:139"},{"nodeType":"YulVariableDeclaration","src":"6682:17:139","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"6693:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"6686:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6708:27:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6728:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6722:5:139"},"nodeType":"YulFunctionCall","src":"6722:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6712:6:139","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"6751:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"6759:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6744:6:139"},"nodeType":"YulFunctionCall","src":"6744:22:139"},"nodeType":"YulExpressionStatement","src":"6744:22:139"},{"nodeType":"YulAssignment","src":"6775:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6786:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6797:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6782:3:139"},"nodeType":"YulFunctionCall","src":"6782:19:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6775:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"6810:29:139","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6828:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6836:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6824:3:139"},"nodeType":"YulFunctionCall","src":"6824:15:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"6814:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6848:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"6857:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6852:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6919:120:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6940:3:139"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6951:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6945:5:139"},"nodeType":"YulFunctionCall","src":"6945:13:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6933:6:139"},"nodeType":"YulFunctionCall","src":"6933:26:139"},"nodeType":"YulExpressionStatement","src":"6933:26:139"},{"nodeType":"YulAssignment","src":"6972:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6983:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6988:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6979:3:139"},"nodeType":"YulFunctionCall","src":"6979:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6972:3:139"}]},{"nodeType":"YulAssignment","src":"7004:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7018:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7026:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7014:3:139"},"nodeType":"YulFunctionCall","src":"7014:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7004:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6881:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"6884:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6878:2:139"},"nodeType":"YulFunctionCall","src":"6878:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6892:18:139","statements":[{"nodeType":"YulAssignment","src":"6894:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6903:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"6906:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6899:3:139"},"nodeType":"YulFunctionCall","src":"6899:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6894:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"6874:3:139","statements":[]},"src":"6870:169:139"},{"nodeType":"YulAssignment","src":"7048:11:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"7056:3:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7048:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__to_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6368:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6379:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6387:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6395:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6403:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6414:4:139","type":""}],"src":"6188:877:139"},{"body":{"nodeType":"YulBlock","src":"7115:230:139","statements":[{"nodeType":"YulAssignment","src":"7125:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7141:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7135:5:139"},"nodeType":"YulFunctionCall","src":"7135:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7125:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7153:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7175:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"7191:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"7197:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7187:3:139"},"nodeType":"YulFunctionCall","src":"7187:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7206:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7202:3:139"},"nodeType":"YulFunctionCall","src":"7202:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7183:3:139"},"nodeType":"YulFunctionCall","src":"7183:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7171:3:139"},"nodeType":"YulFunctionCall","src":"7171:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"7157:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7286:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"7288:16:139"},"nodeType":"YulFunctionCall","src":"7288:18:139"},"nodeType":"YulExpressionStatement","src":"7288:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"7229:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"7241:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7226:2:139"},"nodeType":"YulFunctionCall","src":"7226:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"7265:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"7277:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7262:2:139"},"nodeType":"YulFunctionCall","src":"7262:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7223:2:139"},"nodeType":"YulFunctionCall","src":"7223:62:139"},"nodeType":"YulIf","src":"7220:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7324:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"7328:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7317:6:139"},"nodeType":"YulFunctionCall","src":"7317:22:139"},"nodeType":"YulExpressionStatement","src":"7317:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"7095:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"7104:6:139","type":""}],"src":"7070:275:139"},{"body":{"nodeType":"YulBlock","src":"7419:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"7463:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"7465:16:139"},"nodeType":"YulFunctionCall","src":"7465:18:139"},"nodeType":"YulExpressionStatement","src":"7465:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7435:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"7443:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7432:2:139"},"nodeType":"YulFunctionCall","src":"7432:30:139"},"nodeType":"YulIf","src":"7429:2:139"},{"nodeType":"YulAssignment","src":"7494:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7510:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"7513:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7506:3:139"},"nodeType":"YulFunctionCall","src":"7506:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"7522:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7502:3:139"},"nodeType":"YulFunctionCall","src":"7502:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"7494:4:139"}]}]},"name":"array_allocation_size_array_bytes32_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"7399:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"7410:4:139","type":""}],"src":"7350:183:139"},{"body":{"nodeType":"YulBlock","src":"7585:189:139","statements":[{"body":{"nodeType":"YulBlock","src":"7624:115:139","statements":[{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"7645:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7654:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7659:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7650:3:139"},"nodeType":"YulFunctionCall","src":"7650:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7638:6:139"},"nodeType":"YulFunctionCall","src":"7638:33:139"},"nodeType":"YulExpressionStatement","src":"7638:33:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7691:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7694:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7684:6:139"},"nodeType":"YulFunctionCall","src":"7684:15:139"},"nodeType":"YulExpressionStatement","src":"7684:15:139"},{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"7719:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"7724:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7712:6:139"},"nodeType":"YulFunctionCall","src":"7712:17:139"},"nodeType":"YulExpressionStatement","src":"7712:17:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7601:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7612:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7608:3:139"},"nodeType":"YulFunctionCall","src":"7608:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7598:2:139"},"nodeType":"YulFunctionCall","src":"7598:17:139"},"nodeType":"YulIf","src":"7595:2:139"},{"nodeType":"YulAssignment","src":"7748:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7759:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"7766:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7755:3:139"},"nodeType":"YulFunctionCall","src":"7755:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"7748:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7567:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"7577:3:139","type":""}],"src":"7538:236:139"},{"body":{"nodeType":"YulBlock","src":"7811:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7828:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7835:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7840:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7831:3:139"},"nodeType":"YulFunctionCall","src":"7831:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7821:6:139"},"nodeType":"YulFunctionCall","src":"7821:31:139"},"nodeType":"YulExpressionStatement","src":"7821:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7868:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7871:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7861:6:139"},"nodeType":"YulFunctionCall","src":"7861:15:139"},"nodeType":"YulExpressionStatement","src":"7861:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7892:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7895:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7885:6:139"},"nodeType":"YulFunctionCall","src":"7885:15:139"},"nodeType":"YulExpressionStatement","src":"7885:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"7779:127:139"},{"body":{"nodeType":"YulBlock","src":"7964:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"8028:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8037:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8040:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8030:6:139"},"nodeType":"YulFunctionCall","src":"8030:12:139"},"nodeType":"YulExpressionStatement","src":"8030:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7987:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7998:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8013:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8018:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8009:3:139"},"nodeType":"YulFunctionCall","src":"8009:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"8022:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8005:3:139"},"nodeType":"YulFunctionCall","src":"8005:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7994:3:139"},"nodeType":"YulFunctionCall","src":"7994:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7984:2:139"},"nodeType":"YulFunctionCall","src":"7984:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7977:6:139"},"nodeType":"YulFunctionCall","src":"7977:50:139"},"nodeType":"YulIf","src":"7974:2:139"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7953:5:139","type":""}],"src":"7911:139:139"}]},"contents":"{\n    { }\n    function abi_decode_array_contract_IFeeDistributor_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_bytes32_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address_payable(value)\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        let _1 := 64\n        if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value0, value0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _4 := calldataload(_3)\n        let _5 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_bytes32_dyn(_4))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _5)\n        let src := add(_3, _5)\n        if gt(add(add(_3, shl(5, _4)), _5), dataEnd) { revert(value0, value0) }\n        let i := value0\n        for { } lt(i, _4) { i := add(i, 1) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, _2) { revert(value0, value0) }\n            let _6 := add(_3, innerOffset)\n            if iszero(slt(add(_6, 63), dataEnd)) { revert(value0, value0) }\n            let _7 := calldataload(add(_6, _5))\n            if gt(_7, _2) { panic_error_0x41() }\n            let array := allocate_memory(add(and(add(_7, 0x1f), not(31)), _5))\n            mstore(array, _7)\n            if gt(add(add(_6, _7), _1), dataEnd) { revert(value0, value0) }\n            calldatacopy(add(array, _5), add(_6, _1), _7)\n            mstore(add(add(array, _7), _5), value0)\n            mstore(dst, array)\n            dst := add(dst, _5)\n            src := add(src, _5)\n        }\n        value0 := dst_1\n        let offset_1 := calldataload(add(headStart, _5))\n        if gt(offset_1, _2) { revert(value1, value1) }\n        value1 := abi_decode_array_contract_IFeeDistributor_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_contract$_IFeeDistributor_$34077_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _3 := calldataload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_bytes32_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let src := add(_2, _4)\n        if gt(add(add(_2, shl(5, _3)), _4), dataEnd) { revert(value0, value0) }\n        let i := value0\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _4)\n            src := add(src, _4)\n        }\n        value0 := dst_1\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_contract_IFeeDistributor_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address_payablet_uint256t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        value0 := mload(headStart)\n        let _1 := 32\n        let value := mload(add(headStart, _1))\n        validator_revert_address_payable(value)\n        value1 := value\n        value2 := mload(add(headStart, 64))\n        let offset := mload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n        let _3 := mload(_2)\n        let dst := allocate_memory(array_allocation_size_array_bytes32_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _1)\n        let src := add(_2, _1)\n        if gt(add(add(_2, shl(5, _3)), _1), dataEnd) { revert(value3, value3) }\n        let i := value3\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value3 := dst_1\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := tail\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__to_t_uint256_t_address_t_uint256_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 128)\n        mstore(headStart, value0)\n        let _1 := 32\n        mstore(add(headStart, _1), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        let pos := tail_1\n        let length := mload(value3)\n        mstore(tail_1, length)\n        pos := add(headStart, 160)\n        let srcPtr := add(value3, _1)\n        let i := tail\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_bytes32_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0))\n        {\n            mstore(ret, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(ret, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address_payable(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c8063711232c31461003b578063c55d05f214610064575b600080fd5b61004e6100493660046103ff565b610077565b60405161005b919061069e565b60405180910390f35b61004e61007236600461051e565b610219565b6060600083516001600160401b038111156100a257634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156100cb578160200160208202803683370190505b50905060005b84518110156102115760008060008088858151811061010057634e487b7160e01b600052603260045260246000fd5b602002602001015180602001905181019061011b91906105e5565b935093509350935087858151811061014357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316632971aa8e858585856040518563ffffffff1660e01b815260040161017c94939291906106e2565b602060405180830381600087803b15801561019657600080fd5b505af11580156101aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ce91906105cd565b8686815181106101ee57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505050505050808061020990610798565b9150506100d1565b509392505050565b6060600083516001600160401b0381111561024457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561026d578160200160208202803683370190505b50905060005b84518110156102115783818151811061029c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663379607f58683815181106102d257634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016102f891815260200190565b602060405180830381600087803b15801561031257600080fd5b505af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a91906105cd565b82828151811061036a57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061037f81610798565b915050610273565b600082601f830112610397578081fd5b813560206103ac6103a783610775565b610745565b80838252828201915082860187848660051b89010111156103cb578586fd5b855b858110156103f25781356103e0816107d5565b845292840192908401906001016103cd565b5090979650505050505050565b6000806040808486031215610412578283fd5b83356001600160401b0380821115610428578485fd5b818601915086601f83011261043b578485fd5b8135602061044b6103a783610775565b8083825282820191508286018b848660051b890101111561046a57898afd5b895b858110156104ee57813587811115610482578b8cfd5b8801603f81018e13610492578b8cfd5b85810135888111156104a6576104a66107bf565b6104b8601f8201601f19168801610745565b8181528f8c8385010111156104cb578d8efd5b818c84018983013790810187018d9052855250928401929084019060010161046c565b50909850505087013593505080831115610506578384fd5b505061051485828601610387565b9150509250929050565b60008060408385031215610530578182fd5b82356001600160401b0380821115610546578384fd5b818501915085601f830112610559578384fd5b813560206105696103a783610775565b8083825282820191508286018a848660051b8901011115610588578889fd5b8896505b848710156105aa57803583526001969096019591830191830161058c565b50965050860135925050808211156105c0578283fd5b5061051485828601610387565b6000602082840312156105de578081fd5b5051919050565b600080600080608085870312156105fa578182fd5b8451935060208086015161060d816107d5565b6040870151606088015191955093506001600160401b0381111561062f578283fd5b8601601f8101881361063f578283fd5b805161064d6103a782610775565b8082825284820191508484018b868560051b870101111561066c578687fd5b8694505b8385101561068e578051835260019490940193918501918501610670565b50979a9699509497505050505050565b6020808252825182820181905260009190848201906040850190845b818110156106d6578351835292840192918401916001016106ba565b50909695505050505050565b600060808201868352602060018060a01b038716818501528560408501526080606085015281855180845260a0860191508287019350845b818110156107365784518352938301939183019160010161071a565b50909998505050505050505050565b604051601f8201601f191681016001600160401b038111828210171561076d5761076d6107bf565b604052919050565b60006001600160401b0382111561078e5761078e6107bf565b5060051b60200190565b60006000198214156107b857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107ea57600080fd5b5056fea26469706673582212206ac7653e08f63dfc12bfdbd9b261b2cc929183c4b2c3b944d80f70c7e3f666a264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x711232C3 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xC55D05F2 EQ PUSH2 0x64 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FF JUMP JUMPDEST PUSH2 0x77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x72 CALLDATASIZE PUSH1 0x4 PUSH2 0x51E JUMP JUMPDEST PUSH2 0x219 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xA2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x100 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11B SWAP2 SWAP1 PUSH2 0x5E5 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP8 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x143 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2971AA8E DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CE SWAP2 SWAP1 PUSH2 0x5CD JUMP JUMPDEST DUP7 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x1EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x209 SWAP1 PUSH2 0x798 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD1 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x244 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x211 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x29C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x379607F5 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x2D2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x326 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34A SWAP2 SWAP1 PUSH2 0x5CD JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x36A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0x37F DUP2 PUSH2 0x798 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x273 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x397 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x3AC PUSH2 0x3A7 DUP4 PUSH2 0x775 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x3CB JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3F2 JUMPI DUP2 CALLDATALOAD PUSH2 0x3E0 DUP2 PUSH2 0x7D5 JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3CD JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP1 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x412 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x428 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x43B JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x44B PUSH2 0x3A7 DUP4 PUSH2 0x775 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP12 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x46A JUMPI DUP10 DUP11 REVERT JUMPDEST DUP10 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4EE JUMPI DUP2 CALLDATALOAD DUP8 DUP2 GT ISZERO PUSH2 0x482 JUMPI DUP12 DUP13 REVERT JUMPDEST DUP9 ADD PUSH1 0x3F DUP2 ADD DUP15 SGT PUSH2 0x492 JUMPI DUP12 DUP13 REVERT JUMPDEST DUP6 DUP2 ADD CALLDATALOAD DUP9 DUP2 GT ISZERO PUSH2 0x4A6 JUMPI PUSH2 0x4A6 PUSH2 0x7BF JUMP JUMPDEST PUSH2 0x4B8 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP9 ADD PUSH2 0x745 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP16 DUP13 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x4CB JUMPI DUP14 DUP15 REVERT JUMPDEST DUP2 DUP13 DUP5 ADD DUP10 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD DUP8 ADD DUP14 SWAP1 MSTORE DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x46C JUMP JUMPDEST POP SWAP1 SWAP9 POP POP POP DUP8 ADD CALLDATALOAD SWAP4 POP POP DUP1 DUP4 GT ISZERO PUSH2 0x506 JUMPI DUP4 DUP5 REVERT JUMPDEST POP POP PUSH2 0x514 DUP6 DUP3 DUP7 ADD PUSH2 0x387 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x530 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x546 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x559 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x569 PUSH2 0x3A7 DUP4 PUSH2 0x775 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP11 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x588 JUMPI DUP9 DUP10 REVERT JUMPDEST DUP9 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0x5AA JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x58C JUMP JUMPDEST POP SWAP7 POP POP DUP7 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0x5C0 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x514 DUP6 DUP3 DUP7 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5FA JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 MLOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD MLOAD PUSH2 0x60D DUP2 PUSH2 0x7D5 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD PUSH1 0x60 DUP9 ADD MLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x62F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP7 ADD PUSH1 0x1F DUP2 ADD DUP9 SGT PUSH2 0x63F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x64D PUSH2 0x3A7 DUP3 PUSH2 0x775 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE DUP5 DUP3 ADD SWAP2 POP DUP5 DUP5 ADD DUP12 DUP7 DUP6 PUSH1 0x5 SHL DUP8 ADD ADD GT ISZERO PUSH2 0x66C JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x68E JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x1 SWAP5 SWAP1 SWAP5 ADD SWAP4 SWAP2 DUP6 ADD SWAP2 DUP6 ADD PUSH2 0x670 JUMP JUMPDEST POP SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6D6 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x6BA JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD DUP7 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 DUP6 ADD MSTORE DUP6 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0xA0 DUP7 ADD SWAP2 POP DUP3 DUP8 ADD SWAP4 POP DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x736 JUMPI DUP5 MLOAD DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x71A JUMP JUMPDEST POP SWAP1 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x76D JUMPI PUSH2 0x76D PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x78E JUMPI PUSH2 0x78E PUSH2 0x7BF JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x7B8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0xC7653E08F63DFC12BFDBD9 0xB2 PUSH2 0xB2CC SWAP3 SWAP2 DUP4 0xC4 0xB2 0xC3 0xB9 DIFFICULTY 0xD8 0xF PUSH17 0xC7E3F666A264736F6C6343000804003300 ","sourceMap":"126:1133:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;541:716;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;161:374;;;;;;:::i;:::-;;:::i;541:716::-;670:16;698:20;735:4;:11;-1:-1:-1;;;;;721:26:79;;;;;-1:-1:-1;;;721:26:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;721:26:79;;698:49;;763:13;758:472;790:4;:11;782:5;:19;758:472;;;844:13;875:12;905:15;938:23;989:4;994:5;989:11;;;;;;-1:-1:-1;;;989:11:79;;;;;;;;;;;;;;;978:63;;;;;;;;;;;;:::i;:::-;826:215;;;;;;;;1068:12;1081:5;1068:19;;;;;;-1:-1:-1;;;1068:19:79;;;;;;;;;;;;;;;-1:-1:-1;;;;;1068:43:79;;1129:5;1152:4;1174:7;1199:6;1068:151;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1055:3;1059:5;1055:10;;;;;;-1:-1:-1;;;1055:10:79;;;;;;;;;;;;;;:164;;;;;758:472;;;;803:7;;;;;:::i;:::-;;;;758:472;;;-1:-1:-1;1247:3:79;541:716;-1:-1:-1;;;541:716:79:o;161:374::-;284:16;312:20;349:6;:13;-1:-1:-1;;;;;335:28:79;;;;;-1:-1:-1;;;335:28:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;335:28:79;;312:51;;379:13;374:134;406:6;:13;398:5;:21;374:134;;;457:12;470:5;457:19;;;;;;-1:-1:-1;;;457:19:79;;;;;;;;;;;;;;;-1:-1:-1;;;;;457:25:79;;483:6;490:5;483:13;;;;;;-1:-1:-1;;;483:13:79;;;;;;;;;;;;;;;457:40;;;;;;;;;;;;;6152:25:139;;6140:2;6125:18;;6107:76;457:40:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;444:3;448:5;444:10;;;;;;-1:-1:-1;;;444:10:79;;;;;;;;;;;;;;;;;;:53;421:7;;;;:::i;:::-;;;;374:134;;14:793:139;85:5;138:3;131:4;123:6;119:17;115:27;105:2;;160:5;153;146:20;105:2;200:6;187:20;226:4;250:60;266:43;306:2;266:43;:::i;:::-;250:60;:::i;:::-;332:3;356:2;351:3;344:15;384:2;379:3;375:12;368:19;;419:2;411:6;407:15;471:3;466:2;460;457:1;453:10;445:6;441:23;437:32;434:41;431:2;;;492:5;485;478:20;431:2;518:5;532:246;546:2;543:1;540:9;532:246;;;617:3;604:17;634:39;667:5;634:39;:::i;:::-;686:18;;724:12;;;;756;;;;564:1;557:9;532:246;;;-1:-1:-1;796:5:139;;95:712;-1:-1:-1;;;;;;;95:712:139:o;812:1888::-;964:6;972;1003:2;1046;1034:9;1025:7;1021:23;1017:32;1014:2;;;1067:6;1059;1052:22;1014:2;1112:9;1099:23;-1:-1:-1;;;;;1182:2:139;1174:6;1171:14;1168:2;;;1203:6;1195;1188:22;1168:2;1246:6;1235:9;1231:22;1221:32;;1291:7;1284:4;1280:2;1276:13;1272:27;1262:2;;1318:6;1310;1303:22;1262:2;1359;1346:16;1381:4;1405:60;1421:43;1461:2;1421:43;:::i;1405:60::-;1487:3;1511:2;1506:3;1499:15;1539:2;1534:3;1530:12;1523:19;;1570:2;1566;1562:11;1618:7;1613:2;1607;1604:1;1600:10;1596:2;1592:19;1588:28;1585:41;1582:2;;;1644:6;1636;1629:22;1582:2;1671:6;1686:773;1700:2;1697:1;1694:9;1686:773;;;1777:3;1764:17;1813:2;1800:11;1797:19;1794:2;;;1834:6;1826;1819:22;1794:2;1866:20;;1921:2;1913:11;;1909:25;-1:-1:-1;1899:2:139;;1953:6;1945;1938:22;1899:2;2006;2002;1998:11;1985:25;2033:2;2029;2026:10;2023:2;;;2039:18;;:::i;:::-;2085:53;2128:2;2109:13;;-1:-1:-1;;2105:27:139;2101:36;;2085:53;:::i;:::-;2165:2;2158:5;2151:17;2209:7;2204:2;2199;2195;2191:11;2187:20;2184:33;2181:2;;;2235:6;2227;2220:22;2181:2;2299;2294;2290;2286:11;2281:2;2274:5;2270:14;2257:45;2326:14;;;2322:23;;2315:39;;;2367:18;;-1:-1:-1;2405:12:139;;;;2437;;;;1718:1;1711:9;1686:773;;;-1:-1:-1;2478:5:139;;-1:-1:-1;;;2521:18:139;;2508:32;;-1:-1:-1;;2552:16:139;;;2549:2;;;2586:6;2578;2571:22;2549:2;;;2614:80;2686:7;2675:8;2664:9;2660:24;2614:80;:::i;:::-;2604:90;;;983:1717;;;;;:::o;2705:1248::-;2848:6;2856;2909:2;2897:9;2888:7;2884:23;2880:32;2877:2;;;2930:6;2922;2915:22;2877:2;2975:9;2962:23;-1:-1:-1;;;;;3045:2:139;3037:6;3034:14;3031:2;;;3066:6;3058;3051:22;3031:2;3109:6;3098:9;3094:22;3084:32;;3154:7;3147:4;3143:2;3139:13;3135:27;3125:2;;3181:6;3173;3166:22;3125:2;3222;3209:16;3244:4;3268:60;3284:43;3324:2;3284:43;:::i;3268:60::-;3350:3;3374:2;3369:3;3362:15;3402:2;3397:3;3393:12;3386:19;;3433:2;3429;3425:11;3481:7;3476:2;3470;3467:1;3463:10;3459:2;3455:19;3451:28;3448:41;3445:2;;;3507:6;3499;3492:22;3445:2;3534:6;3525:15;;3549:163;3563:2;3560:1;3557:9;3549:163;;;3620:17;;3608:30;;3581:1;3574:9;;;;;3658:12;;;;3690;;3549:163;;;-1:-1:-1;3731:5:139;-1:-1:-1;;3774:18:139;;3761:32;;-1:-1:-1;;3805:16:139;;;3802:2;;;3839:6;3831;3824:22;3802:2;;3867:80;3939:7;3928:8;3917:9;3913:24;3867:80;:::i;3958:194::-;4028:6;4081:2;4069:9;4060:7;4056:23;4052:32;4049:2;;;4102:6;4094;4087:22;4049:2;-1:-1:-1;4130:16:139;;4039:113;-1:-1:-1;4039:113:139:o;4157:1204::-;4287:6;4295;4303;4311;4364:3;4352:9;4343:7;4339:23;4335:33;4332:2;;;4386:6;4378;4371:22;4332:2;4420:9;4414:16;4404:26;;4449:2;4494;4483:9;4479:18;4473:25;4507:39;4540:5;4507:39;:::i;:::-;4610:2;4595:18;;4589:25;4658:2;4643:18;;4637:25;4565:5;;-1:-1:-1;4589:25:139;-1:-1:-1;;;;;;4674:30:139;;4671:2;;;4722:6;4714;4707:22;4671:2;4750:22;;4803:4;4795:13;;4791:27;-1:-1:-1;4781:2:139;;4837:6;4829;4822:22;4781:2;4871;4865:9;4894:60;4910:43;4950:2;4910:43;:::i;4894:60::-;4976:3;5000:2;4995:3;4988:15;5028:2;5023:3;5019:12;5012:19;;5059:2;5055;5051:11;5107:7;5102:2;5096;5093:1;5089:10;5085:2;5081:19;5077:28;5074:41;5071:2;;;5133:6;5125;5118:22;5071:2;5160:6;5151:15;;5175:156;5189:2;5186:1;5183:9;5175:156;;;5246:10;;5234:23;;5207:1;5200:9;;;;;5277:12;;;;5309;;5175:156;;;-1:-1:-1;4322:1039:139;;;;-1:-1:-1;4322:1039:139;;-1:-1:-1;;;;;;4322:1039:139:o;5366:635::-;5537:2;5589:21;;;5659:13;;5562:18;;;5681:22;;;5508:4;;5537:2;5760:15;;;;5734:2;5719:18;;;5508:4;5806:169;5820:6;5817:1;5814:13;5806:169;;;5881:13;;5869:26;;5950:15;;;;5915:12;;;;5842:1;5835:9;5806:169;;;-1:-1:-1;5992:3:139;;5517:484;-1:-1:-1;;;;;;5517:484:139:o;6188:877::-;6414:4;6462:3;6451:9;6447:19;6493:6;6482:9;6475:25;6519:2;6586:1;6582;6577:3;6573:11;6569:19;6561:6;6557:32;6552:2;6541:9;6537:18;6530:60;6626:6;6621:2;6610:9;6606:18;6599:34;6669:3;6664:2;6653:9;6649:18;6642:31;6693:6;6728;6722:13;6759:6;6751;6744:22;6797:3;6786:9;6782:19;6775:26;;6836:2;6828:6;6824:15;6810:29;;6857:4;6870:169;6884:6;6881:1;6878:13;6870:169;;;6945:13;;6933:26;;7014:15;;;;6979:12;;;;6906:1;6899:9;6870:169;;;-1:-1:-1;7056:3:139;;6423:642;-1:-1:-1;;;;;;;;;6423:642:139:o;7070:275::-;7141:2;7135:9;7206:2;7187:13;;-1:-1:-1;;7183:27:139;7171:40;;-1:-1:-1;;;;;7226:34:139;;7262:22;;;7223:62;7220:2;;;7288:18;;:::i;:::-;7324:2;7317:22;7115:230;;-1:-1:-1;7115:230:139:o;7350:183::-;7410:4;-1:-1:-1;;;;;7435:6:139;7432:30;7429:2;;;7465:18;;:::i;:::-;-1:-1:-1;7510:1:139;7506:14;7522:4;7502:25;;7419:114::o;7538:236::-;7577:3;-1:-1:-1;;7598:17:139;;7595:2;;;-1:-1:-1;;;7638:33:139;;7694:4;7691:1;7684:15;7724:4;7645:3;7712:17;7595:2;-1:-1:-1;7766:1:139;7755:13;;7585:189::o;7779:127::-;7840:10;7835:3;7831:20;7828:1;7821:31;7871:4;7868:1;7861:15;7895:4;7892:1;7885:15;7911:139;-1:-1:-1;;;;;7994:31:139;;7984:42;;7974:2;;8040:1;8037;8030:12;7974:2;7964:86;:::o"},"methodIdentifiers":{"claimMany(uint256[],address[])":"c55d05f2","claimManyWithProofs(bytes[],address[])":"711232c3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nftIds\",\"type\":\"uint256[]\"},{\"internalType\":\"contract IFeeDistributor[]\",\"name\":\"distributors\",\"type\":\"address[]\"}],\"name\":\"claimMany\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"contract IFeeDistributor[]\",\"name\":\"distributors\",\"type\":\"address[]\"}],\"name\":\"claimManyWithProofs\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/fees/MultiFeeDistributor.sol\":\"MultiFeeDistributor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/fees/MultiFeeDistributor.sol\":{\"keccak256\":\"0xca689974e2742721fceb0348baaf7b831e5fd29f7aa695da5ec6cc446e1ee37d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8acb3fff02e49a5b55777aae0f1494148b33617b85f8031c310f0ee38bad7aef\",\"dweb:/ipfs/QmcAvyMCL7tyusrFUNFSBWy8bxbec9ssnNQbsXAjyQ1Puo\"]},\"contracts/interfaces/IFeeDistributor.sol\":{\"keccak256\":\"0x6440354797a1f08adf0deca10c8914741227f2ceead155c72240d35fa37a1b90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37fe343325b0e22cc140e5ff19399f38700c896d061e7d075ca010a5777203a9\",\"dweb:/ipfs/Qma11vo7nCFG9896ZzSnYECgnkFqTvutTVjmUj4RuFiNyg\"]}},\"version\":1}"}},"contracts/fees/PendingFeeDistributor.sol":{"PendingFeeDistributor":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"},{"internalType":"address","name":"_rewardToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"HistoricRewardPaid","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":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"distribute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"hasClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"validProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:387:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"112:273:139","statements":[{"body":{"nodeType":"YulBlock","src":"158:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"167:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"175:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"160:6:139"},"nodeType":"YulFunctionCall","src":"160:22:139"},"nodeType":"YulExpressionStatement","src":"160:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"133:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"142:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"129:3:139"},"nodeType":"YulFunctionCall","src":"129:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"154:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"125:3:139"},"nodeType":"YulFunctionCall","src":"125:32:139"},"nodeType":"YulIf","src":"122:2:139"},{"nodeType":"YulAssignment","src":"193:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"209:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"203:5:139"},"nodeType":"YulFunctionCall","src":"203:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"193:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"228:38:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"251:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"262:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"247:3:139"},"nodeType":"YulFunctionCall","src":"247:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"241:5:139"},"nodeType":"YulFunctionCall","src":"241:25:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"232:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"329:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"338:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"346:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"331:6:139"},"nodeType":"YulFunctionCall","src":"331:22:139"},"nodeType":"YulExpressionStatement","src":"331:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"288:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"299:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"314:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"319:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"310:3:139"},"nodeType":"YulFunctionCall","src":"310:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"323:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"306:3:139"},"nodeType":"YulFunctionCall","src":"306:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"295:3:139"},"nodeType":"YulFunctionCall","src":"295:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"285:2:139"},"nodeType":"YulFunctionCall","src":"285:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"278:6:139"},"nodeType":"YulFunctionCall","src":"278:50:139"},"nodeType":"YulIf","src":"275:2:139"},{"nodeType":"YulAssignment","src":"364:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"374:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"364:6:139"}]}]},"name":"abi_decode_tuple_t_bytes32t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"70:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"81:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"93:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"101:6:139","type":""}],"src":"14:371:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes32t_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := mload(headStart)\n        let value := mload(add(headStart, 32))\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value1, value1) }\n        value1 := value\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161097f38038061097f83398101604081905261002f916100b6565b61003833610066565b60018055600291909155600380546001600160a01b0319166001600160a01b039092169190911790556100f1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156100c8578182fd5b825160208401519092506001600160a01b03811681146100e6578182fd5b809150509250929050565b61087f806101006000396000f3fe608060405234801561001057600080fd5b50600436106100835760003560e01c80632eb4a7ab146100885780634b32102a146100a4578063715018a6146100b75780638da5cb5b146100c1578063ce516507146100e6578063ded42d0014610119578063f2fde38b1461012c578063f7c618c11461013f578063fa89401a14610152575b600080fd5b61009160025481565b6040519081526020015b60405180910390f35b6100916100b23660046106f0565b610165565b6100bf610358565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200161009b565b6101096100f43660046106c0565b60046020526000908152604090205460ff1681565b604051901515815260200161009b565b6101096101273660046106f0565b61036c565b6100bf61013a366004610684565b6103b3565b6003546100ce906001600160a01b031681565b6100bf610160366004610684565b61042c565b6000600260015414156101bf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001556101d08585858561036c565b61020c5760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b210383937b7b360991b60448201526064016101b6565b6000851161024b5760405162461bcd60e51b815260206004820152600c60248201526b0546f6b656e206964203d20360a41b60448201526064016101b6565b60008581526004602052604090205460ff161561026a5750600061034c565b600085815260046020819052604091829020805460ff19166001179055600354915163a9059cbb60e01b81526001600160a01b03878116928201929092526024810186905291169063a9059cbb90604401602060405180830381600087803b1580156102d557600080fd5b505af11580156102e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030d91906106a0565b507f3e4583df395ddb5b39c0341758771a697ee9564f735858ed2651b887eeb2e9be848685604051610341939291906107d6565b60405180910390a150815b60018055949350505050565b610360610537565b61036a6000610591565b565b600080848487604051602001610384939291906107d6565b6040516020818303038152906040528051906020012090506103a983600254836105e1565b9695505050505050565b6103bb610537565b6001600160a01b0381166104205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101b6565b61042981610591565b50565b610434610537565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b15801561047d57600080fd5b505afa158015610491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b591906106d8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053391906106a0565b5050565b6000546001600160a01b0316331461036a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000826105ee85846105f7565b14949350505050565b600081815b845181101561064a576106368286838151811061062957634e487b7160e01b600052603260045260246000fd5b6020026020010151610652565b915080610642816107f7565b9150506105fc565b509392505050565b600081831061066e57600082815260208490526040902061067d565b60008381526020839052604090205b9392505050565b600060208284031215610695578081fd5b813561067d81610834565b6000602082840312156106b1578081fd5b8151801515811461067d578182fd5b6000602082840312156106d1578081fd5b5035919050565b6000602082840312156106e9578081fd5b5051919050565b60008060008060808587031215610705578283fd5b8435935060208086013561071881610834565b935060408601359250606086013567ffffffffffffffff8082111561073b578384fd5b818801915088601f83011261074e578384fd5b8135818111156107605761076061081e565b8060051b604051601f19603f830116810181811085821117156107855761078561081e565b604052828152858101935084860182860187018d10156107a3578788fd5b8795505b838610156107c55780358552600195909501949386019386016107a7565b50989b979a50959850505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600060001982141561081757634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042957600080fdfea2646970667358221220178d671046eb01b747536b1c21ca6fa5cd057024ecbf185b00822059d465cb6764736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x97F CODESIZE SUB DUP1 PUSH2 0x97F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xB6 JUMP JUMPDEST PUSH2 0x38 CALLER PUSH2 0x66 JUMP JUMPDEST PUSH1 0x1 DUP1 SSTORE PUSH1 0x2 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x3 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 PUSH2 0xF1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC8 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x87F DUP1 PUSH2 0x100 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x83 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0x88 JUMPI DUP1 PUSH4 0x4B32102A EQ PUSH2 0xA4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0xCE516507 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xDED42D00 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0xF7C618C1 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0xFA89401A EQ PUSH2 0x152 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x91 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x165 JUMP JUMPDEST PUSH2 0xBF PUSH2 0x358 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9B JUMP JUMPDEST PUSH2 0x109 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9B JUMP JUMPDEST PUSH2 0x109 PUSH2 0x127 CALLDATASIZE PUSH1 0x4 PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x36C JUMP JUMPDEST PUSH2 0xBF PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xCE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0xBF PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x1BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH2 0x1D0 DUP6 DUP6 DUP6 DUP6 PUSH2 0x36C JUMP JUMPDEST PUSH2 0x20C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x34B73B30B634B210383937B7B3 PUSH1 0x99 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x0 DUP6 GT PUSH2 0x24B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x546F6B656E206964203D203 PUSH1 0xA4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x26A JUMPI POP PUSH1 0x0 PUSH2 0x34C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x3 SLOAD SWAP2 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30D SWAP2 SWAP1 PUSH2 0x6A0 JUMP JUMPDEST POP PUSH32 0x3E4583DF395DDB5B39C0341758771A697EE9564F735858ED2651B887EEB2E9BE DUP5 DUP7 DUP6 PUSH1 0x40 MLOAD PUSH2 0x341 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP DUP2 JUMPDEST PUSH1 0x1 DUP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x360 PUSH2 0x537 JUMP JUMPDEST PUSH2 0x36A PUSH1 0x0 PUSH2 0x591 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x384 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x3A9 DUP4 PUSH1 0x2 SLOAD DUP4 PUSH2 0x5E1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3BB PUSH2 0x537 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x420 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH2 0x429 DUP2 PUSH2 0x591 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x434 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x491 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x6D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x50F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x533 SWAP2 SWAP1 PUSH2 0x6A0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x36A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5EE DUP6 DUP5 PUSH2 0x5F7 JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x64A JUMPI PUSH2 0x636 DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x629 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x652 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x642 DUP2 PUSH2 0x7F7 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5FC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x66E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x695 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x67D DUP2 PUSH2 0x834 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x67D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6D1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6E9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x705 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD PUSH2 0x718 DUP2 PUSH2 0x834 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x73B JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x74E JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x760 JUMPI PUSH2 0x760 PUSH2 0x81E JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x785 JUMPI PUSH2 0x785 PUSH2 0x81E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP14 LT ISZERO PUSH2 0x7A3 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x7C5 JUMPI DUP1 CALLDATALOAD DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x7A7 JUMP JUMPDEST POP SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x817 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR DUP14 PUSH8 0x1046EB01B747536B SHR 0x21 0xCA PUSH16 0xA5CD057024ECBF185B00822059D465CB PUSH8 0x64736F6C63430008 DIV STOP CALLER ","sourceMap":"462:1336:80:-:0;;;675:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:38;936:18:4;:32::i;:::-;1701:1:22;1806:22;;740:10:80;:24;;;;774:11;:34;;-1:-1:-1;;;;;;774:34:80;-1:-1:-1;;;;;774:34:80;;;;;;;;;462:1336;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;14:371:139:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:2;;;175:6;167;160:22;122:2;203:16;;262:2;247:18;;241:25;203:16;;-1:-1:-1;;;;;;295:31:139;;285:42;;275:2;;346:6;338;331:22;275:2;374:5;364:15;;;112:273;;;;;:::o;:::-;462:1336:80;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6630:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulVariableDeclaration","src":"165:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:139"},"nodeType":"YulFunctionCall","src":"178:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:139"},"nodeType":"YulFunctionCall","src":"210:31:139"},"nodeType":"YulExpressionStatement","src":"210:31:139"},{"nodeType":"YulAssignment","src":"250:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:257:139"},{"body":{"nodeType":"YulBlock","src":"354:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"400:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"409:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"417:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"402:6:139"},"nodeType":"YulFunctionCall","src":"402:22:139"},"nodeType":"YulExpressionStatement","src":"402:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"375:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"384:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"371:3:139"},"nodeType":"YulFunctionCall","src":"371:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"367:3:139"},"nodeType":"YulFunctionCall","src":"367:32:139"},"nodeType":"YulIf","src":"364:2:139"},{"nodeType":"YulVariableDeclaration","src":"435:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"454:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"448:5:139"},"nodeType":"YulFunctionCall","src":"448:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"439:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"517:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"526:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"534:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:139"},"nodeType":"YulFunctionCall","src":"519:22:139"},"nodeType":"YulExpressionStatement","src":"519:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"486:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"507:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"500:6:139"},"nodeType":"YulFunctionCall","src":"500:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"493:6:139"},"nodeType":"YulFunctionCall","src":"493:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"483:2:139"},"nodeType":"YulFunctionCall","src":"483:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"476:6:139"},"nodeType":"YulFunctionCall","src":"476:40:139"},"nodeType":"YulIf","src":"473:2:139"},{"nodeType":"YulAssignment","src":"552:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"562:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"552:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"320:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"331:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"343:6:139","type":""}],"src":"276:297:139"},{"body":{"nodeType":"YulBlock","src":"663:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"709:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"718:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"726:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"711:6:139"},"nodeType":"YulFunctionCall","src":"711:22:139"},"nodeType":"YulExpressionStatement","src":"711:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"684:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"693:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"680:3:139"},"nodeType":"YulFunctionCall","src":"680:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"705:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"676:3:139"},"nodeType":"YulFunctionCall","src":"676:32:139"},"nodeType":"YulIf","src":"673:2:139"},{"nodeType":"YulVariableDeclaration","src":"744:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"770:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"757:12:139"},"nodeType":"YulFunctionCall","src":"757:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"748:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"814:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"789:24:139"},"nodeType":"YulFunctionCall","src":"789:31:139"},"nodeType":"YulExpressionStatement","src":"789:31:139"},{"nodeType":"YulAssignment","src":"829:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"839:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"829:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$5767","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"629:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"640:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"652:6:139","type":""}],"src":"578:272:139"},{"body":{"nodeType":"YulBlock","src":"925:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"971:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"980:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"988:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"973:6:139"},"nodeType":"YulFunctionCall","src":"973:22:139"},"nodeType":"YulExpressionStatement","src":"973:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"946:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"955:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"942:3:139"},"nodeType":"YulFunctionCall","src":"942:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"967:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"938:3:139"},"nodeType":"YulFunctionCall","src":"938:32:139"},"nodeType":"YulIf","src":"935:2:139"},{"nodeType":"YulAssignment","src":"1006:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1029:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1016:12:139"},"nodeType":"YulFunctionCall","src":"1016:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1006:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"891:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"902:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"914:6:139","type":""}],"src":"855:190:139"},{"body":{"nodeType":"YulBlock","src":"1131:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"1177:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1186:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1194:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1179:6:139"},"nodeType":"YulFunctionCall","src":"1179:22:139"},"nodeType":"YulExpressionStatement","src":"1179:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1152:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1161:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1148:3:139"},"nodeType":"YulFunctionCall","src":"1148:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1173:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1144:3:139"},"nodeType":"YulFunctionCall","src":"1144:32:139"},"nodeType":"YulIf","src":"1141:2:139"},{"nodeType":"YulAssignment","src":"1212:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1228:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1222:5:139"},"nodeType":"YulFunctionCall","src":"1222:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1212:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1097:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1108:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1120:6:139","type":""}],"src":"1050:194:139"},{"body":{"nodeType":"YulBlock","src":"1395:1297:139","statements":[{"body":{"nodeType":"YulBlock","src":"1442:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1451:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1459:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1444:6:139"},"nodeType":"YulFunctionCall","src":"1444:22:139"},"nodeType":"YulExpressionStatement","src":"1444:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1416:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1425:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1412:3:139"},"nodeType":"YulFunctionCall","src":"1412:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1437:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1408:3:139"},"nodeType":"YulFunctionCall","src":"1408:33:139"},"nodeType":"YulIf","src":"1405:2:139"},{"nodeType":"YulAssignment","src":"1477:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1500:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1487:12:139"},"nodeType":"YulFunctionCall","src":"1487:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1477:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1519:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1529:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1523:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1540:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1570:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1581:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1566:3:139"},"nodeType":"YulFunctionCall","src":"1566:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1553:12:139"},"nodeType":"YulFunctionCall","src":"1553:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1544:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1619:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1594:24:139"},"nodeType":"YulFunctionCall","src":"1594:31:139"},"nodeType":"YulExpressionStatement","src":"1594:31:139"},{"nodeType":"YulAssignment","src":"1634:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1644:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1634:6:139"}]},{"nodeType":"YulAssignment","src":"1658:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:139"},"nodeType":"YulFunctionCall","src":"1681:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:139"},"nodeType":"YulFunctionCall","src":"1668:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1709:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1740:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1751:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1736:3:139"},"nodeType":"YulFunctionCall","src":"1736:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1723:12:139"},"nodeType":"YulFunctionCall","src":"1723:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1713:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1764:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1774:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1768:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1819:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1828:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"1836:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1821:6:139"},"nodeType":"YulFunctionCall","src":"1821:22:139"},"nodeType":"YulExpressionStatement","src":"1821:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1807:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1815:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1804:2:139"},"nodeType":"YulFunctionCall","src":"1804:14:139"},"nodeType":"YulIf","src":"1801:2:139"},{"nodeType":"YulVariableDeclaration","src":"1854:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1868:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1879:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:139"},"nodeType":"YulFunctionCall","src":"1864:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1858:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1934:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1943:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"1951:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1936:6:139"},"nodeType":"YulFunctionCall","src":"1936:22:139"},"nodeType":"YulExpressionStatement","src":"1936:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1913:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1909:3:139"},"nodeType":"YulFunctionCall","src":"1909:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1924:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1905:3:139"},"nodeType":"YulFunctionCall","src":"1905:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1898:6:139"},"nodeType":"YulFunctionCall","src":"1898:35:139"},"nodeType":"YulIf","src":"1895:2:139"},{"nodeType":"YulVariableDeclaration","src":"1969:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1992:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1979:12:139"},"nodeType":"YulFunctionCall","src":"1979:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1973:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2018:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2020:16:139"},"nodeType":"YulFunctionCall","src":"2020:18:139"},"nodeType":"YulExpressionStatement","src":"2020:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2010:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2014:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2007:2:139"},"nodeType":"YulFunctionCall","src":"2007:10:139"},"nodeType":"YulIf","src":"2004:2:139"},{"nodeType":"YulVariableDeclaration","src":"2049:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2063:1:139","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"2066:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2059:3:139"},"nodeType":"YulFunctionCall","src":"2059:10:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2053:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2078:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2098:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2092:5:139"},"nodeType":"YulFunctionCall","src":"2092:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2082:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2110:56:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2132:6:139"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"2148:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2152:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2144:3:139"},"nodeType":"YulFunctionCall","src":"2144:11:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2161:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2157:3:139"},"nodeType":"YulFunctionCall","src":"2157:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2140:3:139"},"nodeType":"YulFunctionCall","src":"2140:25:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2128:3:139"},"nodeType":"YulFunctionCall","src":"2128:38:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2114:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2225:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2227:16:139"},"nodeType":"YulFunctionCall","src":"2227:18:139"},"nodeType":"YulExpressionStatement","src":"2227:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2184:10:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2196:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2181:2:139"},"nodeType":"YulFunctionCall","src":"2181:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2204:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2216:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2201:2:139"},"nodeType":"YulFunctionCall","src":"2201:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2178:2:139"},"nodeType":"YulFunctionCall","src":"2178:46:139"},"nodeType":"YulIf","src":"2175:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2263:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2267:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2256:6:139"},"nodeType":"YulFunctionCall","src":"2256:22:139"},"nodeType":"YulExpressionStatement","src":"2256:22:139"},{"nodeType":"YulVariableDeclaration","src":"2287:17:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2298:6:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2291:3:139","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2320:6:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2328:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:139"},"nodeType":"YulFunctionCall","src":"2313:18:139"},"nodeType":"YulExpressionStatement","src":"2313:18:139"},{"nodeType":"YulAssignment","src":"2340:22:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2351:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2359:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2347:3:139"},"nodeType":"YulFunctionCall","src":"2347:15:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2340:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"2371:22:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2386:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2390:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2382:3:139"},"nodeType":"YulFunctionCall","src":"2382:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2375:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2439:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2448:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2456:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2441:6:139"},"nodeType":"YulFunctionCall","src":"2441:22:139"},"nodeType":"YulExpressionStatement","src":"2441:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2416:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2420:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2412:3:139"},"nodeType":"YulFunctionCall","src":"2412:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2425:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2408:3:139"},"nodeType":"YulFunctionCall","src":"2408:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2430:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2405:2:139"},"nodeType":"YulFunctionCall","src":"2405:33:139"},"nodeType":"YulIf","src":"2402:2:139"},{"nodeType":"YulVariableDeclaration","src":"2474:15:139","value":{"name":"value3","nodeType":"YulIdentifier","src":"2483:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2478:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2543:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2564:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2582:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2569:12:139"},"nodeType":"YulFunctionCall","src":"2569:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2557:6:139"},"nodeType":"YulFunctionCall","src":"2557:30:139"},"nodeType":"YulExpressionStatement","src":"2557:30:139"},{"nodeType":"YulAssignment","src":"2600:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2611:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2616:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2607:3:139"},"nodeType":"YulFunctionCall","src":"2607:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2600:3:139"}]},{"nodeType":"YulAssignment","src":"2632:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2643:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2648:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2639:3:139"},"nodeType":"YulFunctionCall","src":"2639:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2632:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2509:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2512:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2506:2:139"},"nodeType":"YulFunctionCall","src":"2506:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2516:18:139","statements":[{"nodeType":"YulAssignment","src":"2518:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2527:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"2530:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2523:3:139"},"nodeType":"YulFunctionCall","src":"2523:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2518:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"2502:3:139","statements":[]},"src":"2498:163:139"},{"nodeType":"YulAssignment","src":"2670:16:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2680:6:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2670:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_uint256t_array$_t_bytes32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1337:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1348:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1360:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1368:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1376:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1384:6:139","type":""}],"src":"1249:1443:139"},{"body":{"nodeType":"YulBlock","src":"2798:102:139","statements":[{"nodeType":"YulAssignment","src":"2808:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2820:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2831:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2816:3:139"},"nodeType":"YulFunctionCall","src":"2816:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2808:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2850:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2865:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2881:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2886:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2877:3:139"},"nodeType":"YulFunctionCall","src":"2877:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2890:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2873:3:139"},"nodeType":"YulFunctionCall","src":"2873:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2861:3:139"},"nodeType":"YulFunctionCall","src":"2861:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2843:6:139"},"nodeType":"YulFunctionCall","src":"2843:51:139"},"nodeType":"YulExpressionStatement","src":"2843:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2767:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2778:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2789:4:139","type":""}],"src":"2697:203:139"},{"body":{"nodeType":"YulBlock","src":"3034:145:139","statements":[{"nodeType":"YulAssignment","src":"3044:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3056:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3067:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3052:3:139"},"nodeType":"YulFunctionCall","src":"3052:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3044:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3086:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3101:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3117:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3122:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3113:3:139"},"nodeType":"YulFunctionCall","src":"3113:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3126:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3109:3:139"},"nodeType":"YulFunctionCall","src":"3109:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3097:3:139"},"nodeType":"YulFunctionCall","src":"3097:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3079:6:139"},"nodeType":"YulFunctionCall","src":"3079:51:139"},"nodeType":"YulExpressionStatement","src":"3079:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3150:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3161:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3146:3:139"},"nodeType":"YulFunctionCall","src":"3146:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3166:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3139:6:139"},"nodeType":"YulFunctionCall","src":"3139:34:139"},"nodeType":"YulExpressionStatement","src":"3139:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2995:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3006:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3014:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3025:4:139","type":""}],"src":"2905:274:139"},{"body":{"nodeType":"YulBlock","src":"3341:188:139","statements":[{"nodeType":"YulAssignment","src":"3351:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3363:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3374:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3359:3:139"},"nodeType":"YulFunctionCall","src":"3359:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3351:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3393:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3408:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3424:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3429:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3420:3:139"},"nodeType":"YulFunctionCall","src":"3420:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3433:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3416:3:139"},"nodeType":"YulFunctionCall","src":"3416:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3404:3:139"},"nodeType":"YulFunctionCall","src":"3404:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3386:6:139"},"nodeType":"YulFunctionCall","src":"3386:51:139"},"nodeType":"YulExpressionStatement","src":"3386:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3457:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3468:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3453:3:139"},"nodeType":"YulFunctionCall","src":"3453:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3473:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3446:6:139"},"nodeType":"YulFunctionCall","src":"3446:34:139"},"nodeType":"YulExpressionStatement","src":"3446:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3500:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3511:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3496:3:139"},"nodeType":"YulFunctionCall","src":"3496:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"3516:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3489:6:139"},"nodeType":"YulFunctionCall","src":"3489:34:139"},"nodeType":"YulExpressionStatement","src":"3489:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3294:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3305:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3313:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3321:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3332:4:139","type":""}],"src":"3184:345:139"},{"body":{"nodeType":"YulBlock","src":"3629:92:139","statements":[{"nodeType":"YulAssignment","src":"3639:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:139"},"nodeType":"YulFunctionCall","src":"3647:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3639:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3681:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3706:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3699:6:139"},"nodeType":"YulFunctionCall","src":"3699:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3692:6:139"},"nodeType":"YulFunctionCall","src":"3692:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3674:6:139"},"nodeType":"YulFunctionCall","src":"3674:41:139"},"nodeType":"YulExpressionStatement","src":"3674:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3598:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3609:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3620:4:139","type":""}],"src":"3534:187:139"},{"body":{"nodeType":"YulBlock","src":"3827:76:139","statements":[{"nodeType":"YulAssignment","src":"3837:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3849:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3860:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3845:3:139"},"nodeType":"YulFunctionCall","src":"3845:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3837:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3879:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3890:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3872:6:139"},"nodeType":"YulFunctionCall","src":"3872:25:139"},"nodeType":"YulExpressionStatement","src":"3872:25:139"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3796:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3807:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3818:4:139","type":""}],"src":"3726:177:139"},{"body":{"nodeType":"YulBlock","src":"4024:102:139","statements":[{"nodeType":"YulAssignment","src":"4034:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4046:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4057:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4042:3:139"},"nodeType":"YulFunctionCall","src":"4042:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4034:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4076:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4091:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4107:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4112:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4103:3:139"},"nodeType":"YulFunctionCall","src":"4103:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4116:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4099:3:139"},"nodeType":"YulFunctionCall","src":"4099:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4087:3:139"},"nodeType":"YulFunctionCall","src":"4087:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4069:6:139"},"nodeType":"YulFunctionCall","src":"4069:51:139"},"nodeType":"YulExpressionStatement","src":"4069:51:139"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3993:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4004:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4015:4:139","type":""}],"src":"3908:218:139"},{"body":{"nodeType":"YulBlock","src":"4305:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4315:6:139"},"nodeType":"YulFunctionCall","src":"4315:21:139"},"nodeType":"YulExpressionStatement","src":"4315:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4356:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4367:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4352:3:139"},"nodeType":"YulFunctionCall","src":"4352:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4372:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4345:6:139"},"nodeType":"YulFunctionCall","src":"4345:30:139"},"nodeType":"YulExpressionStatement","src":"4345:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4395:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4406:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4391:3:139"},"nodeType":"YulFunctionCall","src":"4391:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4411:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4384:6:139"},"nodeType":"YulFunctionCall","src":"4384:62:139"},"nodeType":"YulExpressionStatement","src":"4384:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4466:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4477:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4462:3:139"},"nodeType":"YulFunctionCall","src":"4462:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4482:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4455:6:139"},"nodeType":"YulFunctionCall","src":"4455:36:139"},"nodeType":"YulExpressionStatement","src":"4455:36:139"},{"nodeType":"YulAssignment","src":"4500:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4512:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4523:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4508:3:139"},"nodeType":"YulFunctionCall","src":"4508:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4500:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4282:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4296:4:139","type":""}],"src":"4131:402:139"},{"body":{"nodeType":"YulBlock","src":"4712:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4729:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4740:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4722:6:139"},"nodeType":"YulFunctionCall","src":"4722:21:139"},"nodeType":"YulExpressionStatement","src":"4722:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4763:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4774:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4759:3:139"},"nodeType":"YulFunctionCall","src":"4759:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4779:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4752:6:139"},"nodeType":"YulFunctionCall","src":"4752:30:139"},"nodeType":"YulExpressionStatement","src":"4752:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4802:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4813:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4798:3:139"},"nodeType":"YulFunctionCall","src":"4798:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4818:14:139","type":"","value":"Token id = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4791:6:139"},"nodeType":"YulFunctionCall","src":"4791:42:139"},"nodeType":"YulExpressionStatement","src":"4791:42:139"},{"nodeType":"YulAssignment","src":"4842:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4854:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4865:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4850:3:139"},"nodeType":"YulFunctionCall","src":"4850:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4842:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_71927a88ae096a37908887123174c499bd2892c6da27b2a31f05b9fb2d54a1d5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4689:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4703:4:139","type":""}],"src":"4538:336:139"},{"body":{"nodeType":"YulBlock","src":"5053:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5070:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5081:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5063:6:139"},"nodeType":"YulFunctionCall","src":"5063:21:139"},"nodeType":"YulExpressionStatement","src":"5063:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5104:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5115:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5100:3:139"},"nodeType":"YulFunctionCall","src":"5100:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5120:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5093:6:139"},"nodeType":"YulFunctionCall","src":"5093:30:139"},"nodeType":"YulExpressionStatement","src":"5093:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5143:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5154:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5139:3:139"},"nodeType":"YulFunctionCall","src":"5139:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5159:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5132:6:139"},"nodeType":"YulFunctionCall","src":"5132:62:139"},"nodeType":"YulExpressionStatement","src":"5132:62:139"},{"nodeType":"YulAssignment","src":"5203:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5215:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5226:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5211:3:139"},"nodeType":"YulFunctionCall","src":"5211:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5203:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5030:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5044:4:139","type":""}],"src":"4879:356:139"},{"body":{"nodeType":"YulBlock","src":"5414:163:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5431:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5442:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5424:6:139"},"nodeType":"YulFunctionCall","src":"5424:21:139"},"nodeType":"YulExpressionStatement","src":"5424:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5465:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5476:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5461:3:139"},"nodeType":"YulFunctionCall","src":"5461:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5481:2:139","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5454:6:139"},"nodeType":"YulFunctionCall","src":"5454:30:139"},"nodeType":"YulExpressionStatement","src":"5454:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5504:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5515:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5500:3:139"},"nodeType":"YulFunctionCall","src":"5500:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5520:15:139","type":"","value":"invalid proof"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5493:6:139"},"nodeType":"YulFunctionCall","src":"5493:43:139"},"nodeType":"YulExpressionStatement","src":"5493:43:139"},{"nodeType":"YulAssignment","src":"5545:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5557:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5568:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5553:3:139"},"nodeType":"YulFunctionCall","src":"5553:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5545:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5391:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5405:4:139","type":""}],"src":"5240:337:139"},{"body":{"nodeType":"YulBlock","src":"5756:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5773:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5784:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5766:6:139"},"nodeType":"YulFunctionCall","src":"5766:21:139"},"nodeType":"YulExpressionStatement","src":"5766:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5807:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5818:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5803:3:139"},"nodeType":"YulFunctionCall","src":"5803:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5823:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5796:6:139"},"nodeType":"YulFunctionCall","src":"5796:30:139"},"nodeType":"YulExpressionStatement","src":"5796:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5846:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5857:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5842:3:139"},"nodeType":"YulFunctionCall","src":"5842:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5862:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5835:6:139"},"nodeType":"YulFunctionCall","src":"5835:61:139"},"nodeType":"YulExpressionStatement","src":"5835:61:139"},{"nodeType":"YulAssignment","src":"5905:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5917:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5928:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5913:3:139"},"nodeType":"YulFunctionCall","src":"5913:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5905:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5733:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5747:4:139","type":""}],"src":"5582:355:139"},{"body":{"nodeType":"YulBlock","src":"6043:76:139","statements":[{"nodeType":"YulAssignment","src":"6053:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6065:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6076:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6061:3:139"},"nodeType":"YulFunctionCall","src":"6061:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6053:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6095:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6106:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6088:6:139"},"nodeType":"YulFunctionCall","src":"6088:25:139"},"nodeType":"YulExpressionStatement","src":"6088:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6012:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6023:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6034:4:139","type":""}],"src":"5942:177:139"},{"body":{"nodeType":"YulBlock","src":"6171:189:139","statements":[{"body":{"nodeType":"YulBlock","src":"6210:115:139","statements":[{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"6231:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6240:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6245:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6236:3:139"},"nodeType":"YulFunctionCall","src":"6236:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6224:6:139"},"nodeType":"YulFunctionCall","src":"6224:33:139"},"nodeType":"YulExpressionStatement","src":"6224:33:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6280:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6270:6:139"},"nodeType":"YulFunctionCall","src":"6270:15:139"},"nodeType":"YulExpressionStatement","src":"6270:15:139"},{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"6305:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"6310:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6298:6:139"},"nodeType":"YulFunctionCall","src":"6298:17:139"},"nodeType":"YulExpressionStatement","src":"6298:17:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6187:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6198:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6194:3:139"},"nodeType":"YulFunctionCall","src":"6194:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6184:2:139"},"nodeType":"YulFunctionCall","src":"6184:17:139"},"nodeType":"YulIf","src":"6181:2:139"},{"nodeType":"YulAssignment","src":"6334:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6345:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"6352:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6341:3:139"},"nodeType":"YulFunctionCall","src":"6341:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"6334:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6153:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"6163:3:139","type":""}],"src":"6124:236:139"},{"body":{"nodeType":"YulBlock","src":"6397:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6414:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6421:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6426:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6417:3:139"},"nodeType":"YulFunctionCall","src":"6417:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6407:6:139"},"nodeType":"YulFunctionCall","src":"6407:31:139"},"nodeType":"YulExpressionStatement","src":"6407:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6454:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6457:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6447:6:139"},"nodeType":"YulFunctionCall","src":"6447:15:139"},"nodeType":"YulExpressionStatement","src":"6447:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6478:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6481:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6471:6:139"},"nodeType":"YulFunctionCall","src":"6471:15:139"},"nodeType":"YulExpressionStatement","src":"6471:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"6365:127:139"},{"body":{"nodeType":"YulBlock","src":"6542:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"6606:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6615:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6618:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6608:6:139"},"nodeType":"YulFunctionCall","src":"6608:12:139"},"nodeType":"YulExpressionStatement","src":"6608:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6565:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6576:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6591:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6596:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6587:3:139"},"nodeType":"YulFunctionCall","src":"6587:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6600:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6583:3:139"},"nodeType":"YulFunctionCall","src":"6583:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6572:3:139"},"nodeType":"YulFunctionCall","src":"6572:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6562:2:139"},"nodeType":"YulFunctionCall","src":"6562:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6555:6:139"},"nodeType":"YulFunctionCall","src":"6555:50:139"},"nodeType":"YulIf","src":"6552:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6531:5:139","type":""}],"src":"6497:131:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$5767(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_addresst_uint256t_array$_t_bytes32_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n        value0 := calldataload(headStart)\n        let _1 := 32\n        let value := calldataload(add(headStart, _1))\n        validator_revert_address(value)\n        value1 := value\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value3, value3) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value3, value3) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _4)\n        dst := add(memPtr, _1)\n        let src := add(_3, _1)\n        if gt(add(add(_3, _5), _1), dataEnd) { revert(value3, value3) }\n        let i := value3\n        for { } lt(i, _4) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value3 := memPtr\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_71927a88ae096a37908887123174c499bd2892c6da27b2a31f05b9fb2d54a1d5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"Token id = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"invalid proof\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0))\n        {\n            mstore(ret, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(ret, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100835760003560e01c80632eb4a7ab146100885780634b32102a146100a4578063715018a6146100b75780638da5cb5b146100c1578063ce516507146100e6578063ded42d0014610119578063f2fde38b1461012c578063f7c618c11461013f578063fa89401a14610152575b600080fd5b61009160025481565b6040519081526020015b60405180910390f35b6100916100b23660046106f0565b610165565b6100bf610358565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200161009b565b6101096100f43660046106c0565b60046020526000908152604090205460ff1681565b604051901515815260200161009b565b6101096101273660046106f0565b61036c565b6100bf61013a366004610684565b6103b3565b6003546100ce906001600160a01b031681565b6100bf610160366004610684565b61042c565b6000600260015414156101bf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001556101d08585858561036c565b61020c5760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b210383937b7b360991b60448201526064016101b6565b6000851161024b5760405162461bcd60e51b815260206004820152600c60248201526b0546f6b656e206964203d20360a41b60448201526064016101b6565b60008581526004602052604090205460ff161561026a5750600061034c565b600085815260046020819052604091829020805460ff19166001179055600354915163a9059cbb60e01b81526001600160a01b03878116928201929092526024810186905291169063a9059cbb90604401602060405180830381600087803b1580156102d557600080fd5b505af11580156102e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030d91906106a0565b507f3e4583df395ddb5b39c0341758771a697ee9564f735858ed2651b887eeb2e9be848685604051610341939291906107d6565b60405180910390a150815b60018055949350505050565b610360610537565b61036a6000610591565b565b600080848487604051602001610384939291906107d6565b6040516020818303038152906040528051906020012090506103a983600254836105e1565b9695505050505050565b6103bb610537565b6001600160a01b0381166104205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101b6565b61042981610591565b50565b610434610537565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b15801561047d57600080fd5b505afa158015610491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b591906106d8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053391906106a0565b5050565b6000546001600160a01b0316331461036a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000826105ee85846105f7565b14949350505050565b600081815b845181101561064a576106368286838151811061062957634e487b7160e01b600052603260045260246000fd5b6020026020010151610652565b915080610642816107f7565b9150506105fc565b509392505050565b600081831061066e57600082815260208490526040902061067d565b60008381526020839052604090205b9392505050565b600060208284031215610695578081fd5b813561067d81610834565b6000602082840312156106b1578081fd5b8151801515811461067d578182fd5b6000602082840312156106d1578081fd5b5035919050565b6000602082840312156106e9578081fd5b5051919050565b60008060008060808587031215610705578283fd5b8435935060208086013561071881610834565b935060408601359250606086013567ffffffffffffffff8082111561073b578384fd5b818801915088601f83011261074e578384fd5b8135818111156107605761076061081e565b8060051b604051601f19603f830116810181811085821117156107855761078561081e565b604052828152858101935084860182860187018d10156107a3578788fd5b8795505b838610156107c55780358552600195909501949386019386016107a7565b50989b979a50959850505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600060001982141561081757634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042957600080fdfea2646970667358221220178d671046eb01b747536b1c21ca6fa5cd057024ecbf185b00822059d465cb6764736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x83 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0x88 JUMPI DUP1 PUSH4 0x4B32102A EQ PUSH2 0xA4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0xCE516507 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xDED42D00 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0xF7C618C1 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0xFA89401A EQ PUSH2 0x152 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x91 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x165 JUMP JUMPDEST PUSH2 0xBF PUSH2 0x358 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9B JUMP JUMPDEST PUSH2 0x109 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9B JUMP JUMPDEST PUSH2 0x109 PUSH2 0x127 CALLDATASIZE PUSH1 0x4 PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x36C JUMP JUMPDEST PUSH2 0xBF PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xCE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0xBF PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x1BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH2 0x1D0 DUP6 DUP6 DUP6 DUP6 PUSH2 0x36C JUMP JUMPDEST PUSH2 0x20C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x34B73B30B634B210383937B7B3 PUSH1 0x99 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x0 DUP6 GT PUSH2 0x24B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x546F6B656E206964203D203 PUSH1 0xA4 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x26A JUMPI POP PUSH1 0x0 PUSH2 0x34C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x3 SLOAD SWAP2 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30D SWAP2 SWAP1 PUSH2 0x6A0 JUMP JUMPDEST POP PUSH32 0x3E4583DF395DDB5B39C0341758771A697EE9564F735858ED2651B887EEB2E9BE DUP5 DUP7 DUP6 PUSH1 0x40 MLOAD PUSH2 0x341 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP DUP2 JUMPDEST PUSH1 0x1 DUP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x360 PUSH2 0x537 JUMP JUMPDEST PUSH2 0x36A PUSH1 0x0 PUSH2 0x591 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x384 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x3A9 DUP4 PUSH1 0x2 SLOAD DUP4 PUSH2 0x5E1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3BB PUSH2 0x537 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x420 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH2 0x429 DUP2 PUSH2 0x591 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x434 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x491 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x6D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x50F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x533 SWAP2 SWAP1 PUSH2 0x6A0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x36A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5EE DUP6 DUP5 PUSH2 0x5F7 JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x64A JUMPI PUSH2 0x636 DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x629 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x652 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x642 DUP2 PUSH2 0x7F7 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5FC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x66E JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x695 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x67D DUP2 PUSH2 0x834 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x67D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6D1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6E9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x705 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD PUSH2 0x718 DUP2 PUSH2 0x834 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x73B JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x74E JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x760 JUMPI PUSH2 0x760 PUSH2 0x81E JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x785 JUMPI PUSH2 0x785 PUSH2 0x81E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP14 LT ISZERO PUSH2 0x7A3 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x7C5 JUMPI DUP1 CALLDATALOAD DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x7A7 JUMP JUMPDEST POP SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x817 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR DUP14 PUSH8 0x1046EB01B747536B SHR 0x21 0xCA PUSH16 0xA5CD057024ECBF185B00822059D465CB PUSH8 0x64736F6C63430008 DIV STOP CALLER ","sourceMap":"462:1336:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;563:25;;;;;;;;;3872::139;;;3860:2;3845:18;563:25:80;;;;;;;;821:530;;;;;;:::i;:::-;;:::i;1831:101:4:-;;;:::i;:::-;;1201:85;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;;-1:-1:-1;;;;;2861:32:139;;;2843:51;;2831:2;2816:18;1201:85:4;2798:102:139;626:42:80;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3699:14:139;;3692:22;3674:41;;3662:2;3647:18;626:42:80;3629:92:139;1357:309:80;;;;;;:::i;:::-;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;595:25:80:-;;;;;-1:-1:-1;;;;;595:25:80;;;1672:124;;;;;;:::i;:::-;;:::i;821:530::-;994:7;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;5784:2:139;2317:63:22;;;5766:21:139;5823:2;5803:18;;;5796:30;5862:33;5842:18;;;5835:61;5913:18;;2317:63:22;;;;;;;;;1744:1;2455:7;:18;1021:44:80::1;1032:8:::0;1042:6;1050:7;1059:5;1021:10:::1;:44::i;:::-;1013:70;;;::::0;-1:-1:-1;;;1013:70:80;;5442:2:139;1013:70:80::1;::::0;::::1;5424:21:139::0;5481:2;5461:18;;;5454:30;-1:-1:-1;;;5500:18:139;;;5493:43;5553:18;;1013:70:80::1;5414:163:139::0;1013:70:80::1;1112:1;1101:8;:12;1093:37;;;::::0;-1:-1:-1;;;1093:37:80;;4740:2:139;1093:37:80::1;::::0;::::1;4722:21:139::0;4779:2;4759:18;;;4752:30;-1:-1:-1;;;4798:18:139;;;4791:42;4850:18;;1093:37:80::1;4712:162:139::0;1093:37:80::1;1145:20;::::0;;;:10:::1;:20;::::0;;;;;::::1;;1141:34;;;-1:-1:-1::0;1174:1:80::1;1167:8;;1141:34;1185:20;::::0;;;:10:::1;:20;::::0;;;;;;;;:27;;-1:-1:-1;;1185:27:80::1;1208:4;1185:27;::::0;;1223:11:::1;::::0;:37;;-1:-1:-1;;;1223:37:80;;-1:-1:-1;;;;;3097:32:139;;;1223:37:80;;::::1;3079:51:139::0;;;;3146:18;;;3139:34;;;1223:11:80;::::1;::::0;:20:::1;::::0;3052:18:139;;1223:37:80::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1275:45;1294:6;1302:8;1312:7;1275:45;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;1337:7:80;2484:1:22::1;1701::::0;2628:22;;821:530:80;;-1:-1:-1;;;;821:530:80:o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1357:309:80:-;1520:4;1536:12;1572:6;1580:7;1589:8;1561:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1551:48;;;;;;1536:63;;1616:43;1635:5;1642:10;;1654:4;1616:18;:43::i;:::-;1609:50;1357:309;-1:-1:-1;;;;;;1357:309:80:o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;4333:2:139;2161:73:4::1;::::0;::::1;4315:21:139::0;4372:2;4352:18;;;4345:30;4411:34;4391:18;;;4384:62;-1:-1:-1;;;4462:18:139;;;4455:36;4508:19;;2161:73:4::1;4305:228:139::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1672:124:80:-;1094:13:4;:11;:13::i;:::-;1758:30:80::1;::::0;-1:-1:-1;;;1758:30:80;;1782:4:::1;1758:30;::::0;::::1;2843:51:139::0;-1:-1:-1;;;;;1731:14:80;::::1;::::0;::::1;::::0;1746:10:::1;::::0;1731:14;;1758:15:::1;::::0;2816:18:139;;1758:30:80::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1731:58;::::0;-1:-1:-1;;;;;;1731:58:80::1;::::0;;;;;;-1:-1:-1;;;;;3097:32:139;;;1731:58:80::1;::::0;::::1;3079:51:139::0;3146:18;;;3139:34;3052:18;;1731:58:80::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1672:124:::0;:::o;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;5081:2:139;1414:68:4;;;5063:21:139;;;5100:18;;;5093:30;5159:34;5139:18;;;5132:62;5211:18;;1414:68:4;5053:182:139;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;1153:184:43:-;1274:4;1326;1297:25;1310:5;1317:4;1297:12;:25::i;:::-;:33;;1153:184;-1:-1:-1;;;;1153:184:43:o;1991:290::-;2074:7;2116:4;2074:7;2130:116;2154:5;:12;2150:1;:16;2130:116;;;2202:33;2212:12;2226:5;2232:1;2226:8;;;;;;-1:-1:-1;;;2226:8:43;;;;;;;;;;;;;;;2202:9;:33::i;:::-;2187:48;-1:-1:-1;2168:3:43;;;;:::i;:::-;;;;2130:116;;;-1:-1:-1;2262:12:43;1991:290;-1:-1:-1;;;1991:290:43:o;8054:147::-;8117:7;8147:1;8143;:5;:51;;8275:13;8366:15;;;8401:4;8394:15;;;8447:4;8431:21;;8143:51;;;8275:13;8366:15;;;8401:4;8394:15;;;8447:4;8431:21;;8151:20;8136:58;8054:147;-1:-1:-1;;;8054:147:43:o;14:257:139:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:297::-;343:6;396:2;384:9;375:7;371:23;367:32;364:2;;;417:6;409;402:22;364:2;454:9;448:16;507:5;500:13;493:21;486:5;483:32;473:2;;534:6;526;519:22;855:190;914:6;967:2;955:9;946:7;942:23;938:32;935:2;;;988:6;980;973:22;935:2;-1:-1:-1;1016:23:139;;925:120;-1:-1:-1;925:120:139:o;1050:194::-;1120:6;1173:2;1161:9;1152:7;1148:23;1144:32;1141:2;;;1194:6;1186;1179:22;1141:2;-1:-1:-1;1222:16:139;;1131:113;-1:-1:-1;1131:113:139:o;1249:1443::-;1360:6;1368;1376;1384;1437:3;1425:9;1416:7;1412:23;1408:33;1405:2;;;1459:6;1451;1444:22;1405:2;1500:9;1487:23;1477:33;;1529:2;1581;1570:9;1566:18;1553:32;1594:31;1619:5;1594:31;:::i;:::-;1644:5;-1:-1:-1;1696:2:139;1681:18;;1668:32;;-1:-1:-1;1751:2:139;1736:18;;1723:32;1774:18;1804:14;;;1801:2;;;1836:6;1828;1821:22;1801:2;1879:6;1868:9;1864:22;1854:32;;1924:7;1917:4;1913:2;1909:13;1905:27;1895:2;;1951:6;1943;1936:22;1895:2;1992;1979:16;2014:2;2010;2007:10;2004:2;;;2020:18;;:::i;:::-;2066:2;2063:1;2059:10;2098:2;2092:9;2161:2;2157:7;2152:2;2148;2144:11;2140:25;2132:6;2128:38;2216:6;2204:10;2201:22;2196:2;2184:10;2181:18;2178:46;2175:2;;;2227:18;;:::i;:::-;2263:2;2256:22;2313:18;;;2347:15;;;;-1:-1:-1;2382:11:139;;;2412;;;2408:20;;2405:33;-1:-1:-1;2402:2:139;;;2456:6;2448;2441:22;2402:2;2483:6;2474:15;;2498:163;2512:2;2509:1;2506:9;2498:163;;;2569:17;;2557:30;;2530:1;2523:9;;;;;2607:12;;;;2639;;2498:163;;;-1:-1:-1;1395:1297:139;;;;-1:-1:-1;1395:1297:139;;-1:-1:-1;;;;;;;1395:1297:139:o;3184:345::-;-1:-1:-1;;;;;3404:32:139;;;;3386:51;;3468:2;3453:18;;3446:34;;;;3511:2;3496:18;;3489:34;3374:2;3359:18;;3341:188::o;6124:236::-;6163:3;-1:-1:-1;;6184:17:139;;6181:2;;;-1:-1:-1;;;6224:33:139;;6280:4;6277:1;6270:15;6310:4;6231:3;6298:17;6181:2;-1:-1:-1;6352:1:139;6341:13;;6171:189::o;6365:127::-;6426:10;6421:3;6417:20;6414:1;6407:31;6457:4;6454:1;6447:15;6481:4;6478:1;6471:15;6497:131;-1:-1:-1;;;;;6572:31:139;;6562:42;;6552:2;;6618:1;6615;6608:12"},"methodIdentifiers":{"distribute(uint256,address,uint256,bytes32[])":"4b32102a","hasClaimed(uint256)":"ce516507","merkleRoot()":"2eb4a7ab","owner()":"8da5cb5b","refund(address)":"fa89401a","renounceOwnership()":"715018a6","rewardToken()":"f7c618c1","transferOwnership(address)":"f2fde38b","validProof(uint256,address,uint256,bytes32[])":"ded42d00"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_rewardToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"}],\"name\":\"HistoricRewardPaid\",\"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\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"distribute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"hasClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"validProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions 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\":{\"contracts/fees/PendingFeeDistributor.sol\":\"PendingFeeDistributor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x596ed72a251d391b814a4aa19d7acb02ebdcc92ba27d3fff74a6f0c158b12ab7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5f49013d50b1011c842f76e96f3c3f146ca7cb15084c8805575e0e0e1a5c700\",\"dweb:/ipfs/QmQ3n5qiuioUA74heD6ZddNkYg1kYihjQBNcy9zgwYXKgM\"]},\"contracts/fees/PendingFeeDistributor.sol\":{\"keccak256\":\"0x89b53a55b7772a7e1d98003fa14f6b20b145d78329bd16bd1016feb2325a2619\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a70244b35695040ce1f61f030f0471f5919be54ac21b8eaf52ccd68946de96\",\"dweb:/ipfs/QmX7AyHrnjbDBHuMgDyDFYQADnwSfvAHUnN5UJrEy3dEeq\"]},\"contracts/interfaces/IPendingFeeDistributor.sol\":{\"keccak256\":\"0x55a1ddac4c42df2c1e525c8f759f19fb6b7ed6ffbc1f2336a7925732f6802860\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95c197190a05c8fe1b2ad972ea44ae5d883f9d27c492301396e3426ede7d52f7\",\"dweb:/ipfs/QmSZc5sbVf1StRcez1Pakqbt5C7eA4Xxfx9nbVvvznw7jZ\"]}},\"version\":1}"}},"contracts/gauges/BaseGaugeV1.sol":{"BaseGaugeV1":{"abi":[{"inputs":[{"internalType":"address","name":"_stake","type":"address"},{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"claimed0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimed1","type":"uint256"}],"name":"ClaimFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"maxRuns","type":"uint256"}],"name":"batchRewardPerToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"checkpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"balanceOf","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"depositAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"derivedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"derivedBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"derivedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorBalanceIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorRewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorSupplyIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"lastEarn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardPerTokenCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"rewardPerToken","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenNumCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stake","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supplyCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supplyNumCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenIds","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":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:501:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"294:205:139","statements":[{"body":{"nodeType":"YulBlock","src":"340:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"349:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"357:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:139"},"nodeType":"YulFunctionCall","src":"342:22:139"},"nodeType":"YulExpressionStatement","src":"342:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:139"},"nodeType":"YulFunctionCall","src":"311:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:139"},"nodeType":"YulFunctionCall","src":"307:32:139"},"nodeType":"YulIf","src":"304:2:139"},{"nodeType":"YulAssignment","src":"375:50:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"415:9:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"385:29:139"},"nodeType":"YulFunctionCall","src":"385:40:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"375:6:139"}]},{"nodeType":"YulAssignment","src":"434:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"478:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"489:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:139"},"nodeType":"YulFunctionCall","src":"474:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"444:29:139"},"nodeType":"YulFunctionCall","src":"444:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"434:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:139","type":""}],"src":"196:303:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405260016013553480156200001657600080fd5b506040516200363f3803806200363f833981016040819052620000399162000075565b6001600160601b0319606092831b811660a052911b16608052620000ac565b80516001600160a01b03811681146200007057600080fd5b919050565b6000806040838503121562000088578182fd5b620000938362000058565b9150620000a36020840162000058565b90509250929050565b60805160601c60a05160601c6134f7620001486000396000818161033f015281816112ec0152818161173201528181611c5a015261249901526000818161046a01528181610a9401528181610b2201528181610c1c015281816118030152818161190601528181611a3901528181611bc401528181611cce01528181611e5601528181611ff301528181612519015261269601526134f76000f3fe608060405234801561001057600080fd5b50600436106102125760003560e01c8063853828b611610120578063da09d19d116100b8578063f301af421161007c578063f301af42146105ab578063f7412baf146105be578063fc97a303146105e5578063fd31409814610605578063fdb483c71461061857600080fd5b8063da09d19d14610554578063e2bbb15814610574578063e688639614610587578063e8111a121461058f578063f12297771461059857600080fd5b8063853828b61461048c57806399bcc052146104945780639ce43f90146104a7578063a495e5b5146104c7578063aa479652146104f2578063b66503cf14610512578063c6f678bd14610525578063d35e254414610538578063d7da4bb01461054b57600080fd5b80633a4b66f1116101ae57806363fb415b1161017257806363fb415b146103f25780636fcfff451461041257806370a082311461043257806376f4be36146104525780637b1039991461046557600080fd5b80633a4b66f11461033a5780633ca068b61461036e5780634d5ce038146103995780635a45d052146103cc578063638634ee146103df57600080fd5b806301316ddf146102175780630cdfebfa14610263578063115c6f391461029557806318160ddd146102b6578063211dc32d146102bf578063221ca18c146102d25780632ce9aead146102f25780632e1a7d4d1461031257806331279d3d14610327575b600080fd5b610249610225366004613255565b60116020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610249610271366004613255565b600d6020908152600092835260408084209091529082529020805460019091015482565b6102a86102a3366004613255565b61062b565b60405190815260200161025a565b6102a860095481565b6102a86102cd366004613141565b610798565b6102a86102e0366004613109565b60026020526000908152604090205481565b6102a8610300366004613109565b60046020526000908152604090205481565b6103256103203660046132a0565b610a28565b005b610325610335366004613179565b610a5f565b6103617f000000000000000000000000000000000000000000000000000000000000000081565b60405161025a919061332a565b6102a861037c366004613141565b600760209081526000928352604080842090915290825290205481565b6103bc6103a7366004613109565b600c6020526000908152604090205460ff1681565b604051901515815260200161025a565b6103256103da366004613255565b6110a6565b6102a86103ed366004613109565b6110de565b6102a8610400366004613109565b60016020526000908152604090205481565b6102a8610420366004613109565b600e6020526000908152604090205481565b6102a8610440366004613109565b600a6020526000908152604090205481565b6102a86104603660046132a0565b611102565b6103617f000000000000000000000000000000000000000000000000000000000000000081565b610325611234565b6102a86104a2366004613109565b61124f565b6102a86104b5366004613109565b60056020526000908152604090205481565b6102a86104d5366004613141565b600660209081526000928352604080842090915290825290205481565b6102a8610500366004613109565b60126020526000908152604090205481565b610325610520366004613255565b6112c0565b6103256105333660046132a0565b611717565b6102a8610546366004613109565b6117c0565b6102a860005481565b6102a8610562366004613109565b60036020526000908152604090205481565b6103256105823660046132d0565b611b98565b600b546102a8565b6102a860105481565b6102a86105a6366004613109565b612129565b6103616105b93660046132a0565b6121e5565b6102496105cc3660046132a0565b600f602052600090815260409020805460019091015482565b6102a86105f3366004613109565b60086020526000908152604090205481565b610249610613366004613255565b61220f565b6103256106263660046132d0565b61242e565b6001600160a01b0382166000908152600e602052604081205480610653576000915050610792565b6001600160a01b0384166000908152600d60205260408120849161067860018561344e565b815260200190815260200160002060000154116106a25761069a60018261344e565b915050610792565b6001600160a01b0384166000908152600d602090815260408083208380529091529020548310156106d7576000915050610792565b6000806106e560018461344e565b90505b8181111561078d57600060026106fe848461344e565b610708919061340f565b610712908361344e565b6001600160a01b0388166000908152600d602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107675750935061079292505050565b805187111561077857819350610786565b61078360018361344e565b92505b50506106e8565b509150505b92915050565b6001600160a01b0380831660008181526006602090815260408083209486168352938152838220549282526011815283822082805290529182205482916107de916127be565b6001600160a01b0384166000908152600e6020526040902054909150610808576000915050610792565b6000610814848361062b565b6001600160a01b0385166000908152600e60205260408120549192509061083d9060019061344e565b90506000600161084d848461344e565b111561095c57825b61086060018461344e565b81101561095a576001600160a01b0387166000818152600d6020818152604080842086855280835281852082518084019093528054835260019081015483850152958552929091529282906108b69086906133f7565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006108f58b846000015161220f565b50905060006109088c846000015161220f565b509050670de0b6b3a764000061091e838361344e565b856020015161092d919061342f565b610937919061340f565b61094190876133f7565b955050505050808061095290613465565b915050610855565b505b6001600160a01b0386166000908152600d602090815260408083208584528252808320815180830190925280548083526001909101549282019290925291906109a6908a9061220f565b506001600160a01b03808b166000908152600760209081526040808320938d1683529290522054909150670de0b6b3a7640000906109e59083906127be565b6109ee8b612129565b6109f8919061344e565b8360200151610a07919061342f565b610a11919061340f565b610a1b90846133f7565b9998505050505050505050565b336000908152600a6020526040812054821415610a515750336000908152600860205260409020545b610a5b828261242e565b5050565b601354600114610a8a5760405162461bcd60e51b8152600401610a8190613390565b60405180910390fd5b60026013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aed57600080fd5b505af1158015610b01573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610bc657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190613125565b6001600160a01b0316336001600160a01b0316145b610c125760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610a81565b60016013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7357600080fd5b505afa158015610c87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cab9190613125565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610cd6919061332a565b600060405180830381600087803b158015610cf057600080fd5b505af1158015610d04573d6000803e3d6000fd5b5050600260135550600090505b815181101561100057610d4a828281518110610d3d57634e487b7160e01b600052603260045260246000fd5b60200260200101516127d5565b60056000858581518110610d6e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060046000878781518110610dbc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e25838381518110610e1757634e487b7160e01b600052603260045260246000fd5b602002602001015185610798565b90504260066000858581518110610e4c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060056000848481518110610ebf57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460076000858581518110610f0c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610f7957610f79838381518110610f6a57634e487b7160e01b600052603260045260246000fd5b602002602001015185836129b8565b828281518110610f9957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc983604051610fe591815260200190565b60405180910390a35080610ff881613465565b915050610d11565b506001600160a01b038216600090815260016020526040812054815490918291819061102d90849061344e565b9091555061103c9050836117c0565b6001600160a01b038416600090815260016020526040812082905580549192508291819061106b9084906133f7565b90915550506001600160a01b038316600090815260016020526040902054611094908490612aef565b61109c612bfa565b5050600160135550565b6110b08282612c9d565b6001600160a01b03909316600090815260056020908152604080832060049092529091209390935590915550565b6001600160a01b038116600090815260036020526040812054610792904290612dfc565b601054600090806111165750600092915050565b82600f600061112660018561344e565b8152602001908152602001600020600001541161114f5761114860018261344e565b9392505050565b60008052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755483101561118a5750600092915050565b60008061119860018461344e565b90505b8181111561122c57600060026111b1848461344e565b6111bb919061340f565b6111c5908361344e565b6000818152600f6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415611206575095945050505050565b805187111561121757819350611225565b61122260018361344e565b92505b505061119b565b509392505050565b336000908152600a602052604090205461124d90610a28565b565b6001600160a01b038116600090815260036020526040812054421061127657506000919050565b6001600160a01b03821660009081526003602052604081205461129a90429061344e565b6001600160a01b038416600090815260026020526040902054909150611148908261342f565b6013546001146112e25760405162461bcd60e51b8152600401610a8190613390565b60026013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561135c5760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610a81565b6000811161137c5760405162461bcd60e51b8152600401610a81906133b4565b6001600160a01b0382166000908152600260205260409020546113a5576113a582600042612e0b565b6113ae826127d5565b6001600160a01b038416600090815260056020908152604080832060048352818420949094559390925560039091522054421061141c576113f182333084612efa565b6113fe62093a808261340f565b6001600160a01b0383166000908152600260205260409020556114e8565b6001600160a01b03821660009081526003602052604081205461144090429061344e565b6001600160a01b03841660009081526002602052604081205491925090611467908361342f565b90508083116114a85760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610a81565b6114b484333086612efa565b62093a806114c282856133f7565b6114cc919061340f565b6001600160a01b03851660009081526002602052604090205550505b6001600160a01b03821660009081526002602052604090205461153e5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610a81565b6040516370a0823160e01b81526000906001600160a01b038416906370a082319061156d90309060040161332a565b60206040518083038186803b15801561158557600080fd5b505afa158015611599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bd91906132b8565b90506115cc62093a808261340f565b6001600160a01b038416600090815260026020526040902054111561162e5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610a81565b61163b62093a80426133f7565b6001600160a01b038416600090815260036020908152604080832093909355600c9052205460ff166116cd576001600160a01b0383166000818152600c60205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160135550565b6040516370a0823160e01b81526117bd906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061176790339060040161332a565b60206040518083038186803b15801561177f57600080fd5b505afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b791906132b8565b82611b98565b50565b6001600160a01b038116600090815260086020908152604080832054600a9092528220548260646117f283601461342f565b6117fc919061340f565b90506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561185a57600080fd5b505afa15801561186e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118929190613125565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ca57600080fd5b505afa1580156118de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190291906132b8565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561195d57600080fd5b505afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190613125565b6001600160a01b0316636352211e866040518263ffffffff1660e01b81526004016119c291815260200190565b60206040518083038186803b1580156119da57600080fd5b505afa1580156119ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a129190613125565b6001600160a01b0316876001600160a01b0316148015611a325750600081115b15611b7a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a9057600080fd5b505afa158015611aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac89190613125565b6001600160a01b031663e7e242d4866040518263ffffffff1660e01b8152600401611af591815260200190565b60206040518083038186803b158015611b0d57600080fd5b505afa158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4591906132b8565b915060648183600954611b58919061342f565b611b62919061340f565b611b6d90605061342f565b611b77919061340f565b91505b611b8d611b8783856133f7565b85612dfc565b979650505050505050565b601354600114611bba5760405162461bcd60e51b8152600401610a8190613390565b60026013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611c1d57600080fd5b505af1158015611c31573d6000803e3d6000fd5b5050505060008211611c555760405162461bcd60e51b8152600401610a81906133b4565b611c817f0000000000000000000000000000000000000000000000000000000000000000333085612efa565b8160096000828254611c9391906133f7565b9091555050336000908152600a602052604081208054849290611cb79084906133f7565b90915550508015611f6f57336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d2557600080fd5b505afa158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5d9190613125565b6001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401611d8a91815260200190565b60206040518083038186803b158015611da257600080fd5b505afa158015611db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dda9190613125565b6001600160a01b031614611e1c5760405162461bcd60e51b81526020600482015260096024820152683130b21037bbb732b960b91b6044820152606401610a81565b33600090815260086020526040902054611f3c573360009081526008602090815260409182902083905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611ea157600080fd5b505afa158015611eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed99190613125565b60405163698473e360e01b8152600481018390523360248201526001600160a01b03919091169063698473e390604401600060405180830381600087803b158015611f2357600080fd5b505af1158015611f37573d6000803e3d6000fd5b505050505b336000908152600860205260409020548114611f6a5760405162461bcd60e51b8152600401610a819061336b565b611f81565b50336000908152600860205260409020545b336000908152600160205260408120548154909182918190611fa490849061344e565b90915550611fb39050336117c0565b336000908152600160205260408120829055805491925082918190611fd99084906133f7565b90915550611fe990503382612aef565b611ff1612bfa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561204a57600080fd5b505afa15801561205e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120829190613125565b6001600160a01b031663a61c713a8333866040518463ffffffff1660e01b81526004016120b1939291906133d8565b600060405180830381600087803b1580156120cb57600080fd5b505af11580156120df573d6000803e3d6000fd5b505060408051858152602081018790523393507f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159250015b60405180910390a25050600160135550565b6000805461214d57506001600160a01b031660009081526005602052604090205490565b600080546001600160a01b038416825260026020908152604080842054600483528185205460039093529320549192670de0b6b3a764000092909161219191612dfc565b61219a866110de565b6121a4919061344e565b6121ae919061342f565b6121b8919061342f565b6121c2919061340f565b6001600160a01b03831660009081526005602052604090205461079291906133f7565b600b81815481106121f557600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526012602052604081205481908061223c576000809250925050612427565b6001600160a01b0385166000908152601160205260408120859161226160018561344e565b815260200190815260200160002060000154116122fe576001600160a01b03851660009081526011602052604081209061229c60018461344e565b81526020019081526020016000206001015460116000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846122e2919061344e565b8152602001908152602001600020600001549250925050612427565b6001600160a01b0385166000908152601160209081526040808320838052909152902054841015612336576000809250925050612427565b60008061234460018461344e565b90505b818111156123f6576000600261235d848461344e565b612367919061340f565b612371908361344e565b6001600160a01b03891660009081526011602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156123d0576020810151905190965094506124279350505050565b80518811156123e1578193506123ef565b6123ec60018361344e565b92505b5050612347565b506001600160a01b038616600090815260116020908152604080832093835292905220600181015490549093509150505b9250929050565b6013546001146124505760405162461bcd60e51b8152600401610a8190613390565b6002601381905550816009600082825461246a919061344e565b9091555050336000908152600a60205260408120805484929061248e90849061344e565b909155506124bf90507f000000000000000000000000000000000000000000000000000000000000000033846129b8565b8015612603573360009081526008602052604090205481146124f35760405162461bcd60e51b8152600401610a819061336b565b3360009081526008602090815260408083209290925581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561256457600080fd5b505afa158015612578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259c9190613125565b60405163411b1f7760e01b8152600481018390523360248201526001600160a01b03919091169063411b1f7790604401600060405180830381600087803b1580156125e657600080fd5b505af11580156125fa573d6000803e3d6000fd5b50505050612615565b50336000908152600860205260409020545b33600090815260016020526040812054815490918291819061263890849061344e565b909155506126479050336117c0565b33600090815260016020526040812082905580549192508291819061266d9084906133f7565b90915550503360008181526001602052604090205461268c9190612aef565b612694612bfa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156126ed57600080fd5b505afa158015612701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127259190613125565b6001600160a01b031663ea94ee448333866040518463ffffffff1660e01b8152600401612754939291906133d8565b600060405180830381600087803b15801561276e57600080fd5b505af1158015612782573d6000803e3d6000fd5b505060408051858152602081018790523393507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568925001612117565b6000818310156127ce5781611148565b5090919050565b6001600160a01b03811660009081526004602090815260408083205460059092528220546010548392919061280d5794909350915050565b6001600160a01b038516600090815260026020526040902054612834579442945092505050565b600061283f83611102565b905060006001601054612852919061344e565b90506001612860838361344e565b111561293857815b61287360018361344e565b811015612936576000818152600f60209081526040918290208251808401909352805483526001015490820181905215612923576000600f816128b78560016133f7565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806129028c8460000151866000015187602001518d61303e565b909250905061291182896133f7565b975061291e8c8983612e0b565b975050505b508061292e81613465565b915050612868565b505b6000818152600f602090815260409182902082518084019093528054835260010154908201819052156129aa57600061298b896129748b6110de565b8451612980908a6127be565b85602001518a61303e565b50905061299881866133f7565b94506129a5898642612e0b565b429550505b509196929550919350505050565b6000836001600160a01b03163b116129e25760405162461bcd60e51b8152600401610a819061333e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691612a3e91906132f1565b6000604051808303816000865af19150503d8060008114612a7b576040519150601f19603f3d011682016040523d82523d6000602084013e612a80565b606091505b5091509150818015612aaa575080511580612aaa575080806020019051810190612aaa9190613280565b612ae85760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610a81565b5050505050565b6001600160a01b0382166000908152600e602052604090205442908015801590612b4d57506001600160a01b0384166000908152600d602052604081208391612b3960018561344e565b815260200190815260200160002060000154145b15612b90576001600160a01b0384166000908152600d602052604081208491612b7760018561344e565b8152602081019190915260400160002060010155612bf4565b60408051808201825283815260208082018681526001600160a01b0388166000908152600d8352848120868252909252929020905181559051600191820155612bda9082906133f7565b6001600160a01b0385166000908152600e60205260409020555b50505050565b601054428115801590612c2c575080600f6000612c1860018661344e565b815260200190815260200160002060000154145b15612c5d57600054600f6000600185612c45919061344e565b81526020810191909152604001600020600101555050565b604080518082018252828152600080546020808401918252868352600f9052929020905181559051600191820155612c969083906133f7565b6010555050565b6001600160a01b038216600090815260046020908152604080832054600590925282205460105483929190612cd55792509050612427565b6001600160a01b038616600090815260026020526040902054612cfe5792504291506124279050565b6000612d0983611102565b90506000612d256001601054612d1f919061344e565b88612dfc565b9050815b81811015612ded576000818152600f60209081526040918290208251808401909352805483526001015490820181905215612dda576000600f81612d6e8560016133f7565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612db98d8460000151866000015187602001518d61303e565b9092509050612dc882896133f7565b9750612dd58d8983612e0b565b975050505b5080612de581613465565b915050612d29565b50919792965091945050505050565b60008183106127ce5781611148565b6001600160a01b0383166000908152601260205260409020548015801590612e6757506001600160a01b03841660009081526011602052604081208391612e5360018561344e565b815260200190815260200160002060000154145b15612e91576001600160a01b03841660009081526011602052604081208491612b7760018561344e565b60408051808201825283815260208082018681526001600160a01b038816600090815260118352848120868252909252929020905181559051600191820155612edb9082906133f7565b6001600160a01b03851660009081526012602052604090205550505050565b6000846001600160a01b03163b11612f245760405162461bcd60e51b8152600401610a819061333e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612f8891906132f1565b6000604051808303816000865af19150503d8060008114612fc5576040519150601f19603f3d011682016040523d82523d6000602084013e612fca565b606091505b5091509150818015612ff4575080511580612ff4575080806020019051810190612ff49190613280565b6130365760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610a81565b505050505050565b600080600061304d87856127be565b6001600160a01b0389166000908152600260205260409020549091508590670de0b6b3a7640000906130a06130828a896127be565b6001600160a01b038d16600090815260036020526040902054612dfc565b6001600160a01b038c166000908152600360205260409020546130c4908690612dfc565b6130ce919061344e565b6130d8919061342f565b6130e2919061342f565b6130ec919061340f565b9890975095505050505050565b8035613104816134ac565b919050565b60006020828403121561311a578081fd5b8135611148816134ac565b600060208284031215613136578081fd5b8151611148816134ac565b60008060408385031215613153578081fd5b823561315e816134ac565b9150602083013561316e816134ac565b809150509250929050565b6000806040838503121561318b578182fd5b8235613196816134ac565b915060208381013567ffffffffffffffff808211156131b3578384fd5b818601915086601f8301126131c6578384fd5b8135818111156131d8576131d8613496565b8060051b604051601f19603f830116810181811085821117156131fd576131fd613496565b604052828152858101935084860182860187018b101561321b578788fd5b8795505b8386101561324457613230816130f9565b85526001959095019493860193860161321f565b508096505050505050509250929050565b60008060408385031215613267578182fd5b8235613272816134ac565b946020939093013593505050565b600060208284031215613291578081fd5b81518015158114611148578182fd5b6000602082840312156132b1578081fd5b5035919050565b6000602082840312156132c9578081fd5b5051919050565b600080604083850312156132e2578182fd5b50508035926020909101359150565b60008251815b8181101561331157602081860181015185830152016132f7565b8181111561331f5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600b908201526a189859081d1bdad95b925960aa1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b9283526001600160a01b03919091166020830152604082015260600190565b6000821982111561340a5761340a613480565b500190565b60008261342a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561344957613449613480565b500290565b60008282101561346057613460613480565b500390565b600060001982141561347957613479613480565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117bd57600080fdfea2646970667358221220568400afb41149f20f1cb507561d9729c6cef6239c72b9b59ea0614ae344cb8364736f6c63430008040033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x13 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x363F CODESIZE SUB DUP1 PUSH3 0x363F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x39 SWAP2 PUSH3 0x75 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH3 0xAC JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x88 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH3 0x93 DUP4 PUSH3 0x58 JUMP JUMPDEST SWAP2 POP PUSH3 0xA3 PUSH1 0x20 DUP5 ADD PUSH3 0x58 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x34F7 PUSH3 0x148 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x33F ADD MSTORE DUP2 DUP2 PUSH2 0x12EC ADD MSTORE DUP2 DUP2 PUSH2 0x1732 ADD MSTORE DUP2 DUP2 PUSH2 0x1C5A ADD MSTORE PUSH2 0x2499 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x46A ADD MSTORE DUP2 DUP2 PUSH2 0xA94 ADD MSTORE DUP2 DUP2 PUSH2 0xB22 ADD MSTORE DUP2 DUP2 PUSH2 0xC1C ADD MSTORE DUP2 DUP2 PUSH2 0x1803 ADD MSTORE DUP2 DUP2 PUSH2 0x1906 ADD MSTORE DUP2 DUP2 PUSH2 0x1A39 ADD MSTORE DUP2 DUP2 PUSH2 0x1BC4 ADD MSTORE DUP2 DUP2 PUSH2 0x1CCE ADD MSTORE DUP2 DUP2 PUSH2 0x1E56 ADD MSTORE DUP2 DUP2 PUSH2 0x1FF3 ADD MSTORE DUP2 DUP2 PUSH2 0x2519 ADD MSTORE PUSH2 0x2696 ADD MSTORE PUSH2 0x34F7 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x212 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x853828B6 GT PUSH2 0x120 JUMPI DUP1 PUSH4 0xDA09D19D GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF301AF42 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x5AB JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xFC97A303 EQ PUSH2 0x5E5 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x605 JUMPI DUP1 PUSH4 0xFDB483C7 EQ PUSH2 0x618 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x554 JUMPI DUP1 PUSH4 0xE2BBB158 EQ PUSH2 0x574 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x853828B6 EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x494 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x4A7 JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x4C7 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x512 JUMPI DUP1 PUSH4 0xC6F678BD EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x63FB415B GT PUSH2 0x172 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x452 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x2D2 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x327 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x249 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x249 PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x62B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3141 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x2E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x320 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x325 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x3179 JUMP JUMPDEST PUSH2 0xA5F JUMP JUMPDEST PUSH2 0x361 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP2 SWAP1 PUSH2 0x332A JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3BC PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST PUSH2 0x325 PUSH2 0x3DA CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x10A6 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x3ED CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x10DE JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x420 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x440 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x460 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0x1102 JUMP JUMPDEST PUSH2 0x361 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x1234 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x4A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x124F JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x4D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x500 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x520 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x12C0 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0x1717 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x546 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x17C0 JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x32D0 JUMP JUMPDEST PUSH2 0x1B98 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x2129 JUMP JUMPDEST PUSH2 0x361 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0x21E5 JUMP JUMPDEST PUSH2 0x249 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x5F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x249 PUSH2 0x613 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x220F JUMP JUMPDEST PUSH2 0x325 PUSH2 0x626 CALLDATASIZE PUSH1 0x4 PUSH2 0x32D0 JUMP JUMPDEST PUSH2 0x242E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x653 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x678 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x6A2 JUMPI PUSH2 0x69A PUSH1 0x1 DUP3 PUSH2 0x344E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x6D7 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x78D JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x6FE DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x712 SWAP1 DUP4 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x767 JUMPI POP SWAP4 POP PUSH2 0x792 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x778 JUMPI DUP2 SWAP4 POP PUSH2 0x786 JUMP JUMPDEST PUSH2 0x783 PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x6E8 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x11 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x7DE SWAP2 PUSH2 0x27BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x808 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x814 DUP5 DUP4 PUSH2 0x62B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x83D SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x84D DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST GT ISZERO PUSH2 0x95C JUMPI DUP3 JUMPDEST PUSH2 0x860 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x95A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x8B6 SWAP1 DUP7 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x8F5 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x220F JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x908 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x220F JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x91E DUP4 DUP4 PUSH2 0x344E JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x92D SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x937 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x941 SWAP1 DUP8 PUSH2 0x33F7 JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x952 SWAP1 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x855 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x9A6 SWAP1 DUP11 SWAP1 PUSH2 0x220F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x9E5 SWAP1 DUP4 SWAP1 PUSH2 0x27BE JUMP JUMPDEST PUSH2 0x9EE DUP12 PUSH2 0x2129 JUMP JUMPDEST PUSH2 0x9F8 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA07 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0xA11 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0xA1B SWAP1 DUP5 PUSH2 0x33F7 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 EQ ISZERO PUSH2 0xA51 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST PUSH2 0xA5B DUP3 DUP3 PUSH2 0x242E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0xA8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xBC6 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB8D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB1 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCAB SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD6 SWAP2 SWAP1 PUSH2 0x332A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x13 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1000 JUMPI PUSH2 0xD4A DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xD6E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDBC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE25 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE17 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x798 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE4C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x5 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEBF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x7 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xF79 JUMPI PUSH2 0xF79 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xF6A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x29B8 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF99 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0xFE5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0xFF8 DUP2 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD11 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x102D SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x103C SWAP1 POP DUP4 PUSH2 0x17C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106B SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1094 SWAP1 DUP5 SWAP1 PUSH2 0x2AEF JUMP JUMPDEST PUSH2 0x109C PUSH2 0x2BFA JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH2 0x10B0 DUP3 DUP3 PUSH2 0x2C9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x4 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x792 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x1116 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xF PUSH1 0x0 PUSH2 0x1126 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x114F JUMPI PUSH2 0x1148 PUSH1 0x1 DUP3 PUSH2 0x344E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH32 0xF4803E074BD026BAAF6ED2E288C9515F68C72FB7216EEBDD7CAE1718A53EC375 SLOAD DUP4 LT ISZERO PUSH2 0x118A JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1198 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x122C JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x11B1 DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x11BB SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x11C5 SWAP1 DUP4 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x1206 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x1217 JUMPI DUP2 SWAP4 POP PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x1222 PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x119B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x124D SWAP1 PUSH2 0xA28 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1276 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x129A SWAP1 TIMESTAMP SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1148 SWAP1 DUP3 PUSH2 0x342F JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0x12E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x135C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x137C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x13A5 JUMPI PUSH2 0x13A5 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2E0B JUMP JUMPDEST PUSH2 0x13AE DUP3 PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x141C JUMPI PUSH2 0x13F1 DUP3 CALLER ADDRESS DUP5 PUSH2 0x2EFA JUMP JUMPDEST PUSH2 0x13FE PUSH3 0x93A80 DUP3 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x14E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1440 SWAP1 TIMESTAMP SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1467 SWAP1 DUP4 PUSH2 0x342F JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x14A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH2 0x14B4 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2EFA JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x14C2 DUP3 DUP6 PUSH2 0x33F7 JUMP JUMPDEST PUSH2 0x14CC SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x153E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x156D SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x332A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1599 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15BD SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST SWAP1 POP PUSH2 0x15CC PUSH3 0x93A80 DUP3 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x162E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH2 0x163B PUSH3 0x93A80 TIMESTAMP PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x16CD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xB DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x175B7A638427703F0DBE7BB9BBF987A2551717B34E79F33B5B1008D1FA01DB9 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x17BD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1767 SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x332A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x177F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1793 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17B7 SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST DUP3 PUSH2 0x1B98 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD DUP3 PUSH1 0x64 PUSH2 0x17F2 DUP4 PUSH1 0x14 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x17FC SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x185A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x186E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1892 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18DE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1902 SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1971 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1995 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19C2 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A12 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 ISZERO PUSH2 0x1A32 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0x1B7A JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AC8 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE7E242D4 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AF5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B45 SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST SWAP2 POP PUSH1 0x64 DUP2 DUP4 PUSH1 0x9 SLOAD PUSH2 0x1B58 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x1B62 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x1B6D SWAP1 PUSH1 0x50 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x1B77 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x1B8D PUSH2 0x1B87 DUP4 DUP6 PUSH2 0x33F7 JUMP JUMPDEST DUP6 PUSH2 0x2DFC JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0x1BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP3 GT PUSH2 0x1C55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST PUSH2 0x1C81 PUSH32 0x0 CALLER ADDRESS DUP6 PUSH2 0x2EFA JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C93 SWAP2 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x1CB7 SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP1 ISZERO PUSH2 0x1F6F JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D5D SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D8A SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DB6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DDA SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x3130B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F3C JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ED9 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x698473E3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x698473E3 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ PUSH2 0x1F6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x336B JUMP JUMPDEST PUSH2 0x1F81 JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1FA4 SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1FB3 SWAP1 POP CALLER PUSH2 0x17C0 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1FD9 SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1FE9 SWAP1 POP CALLER DUP3 PUSH2 0x2AEF JUMP JUMPDEST PUSH2 0x1FF1 PUSH2 0x2BFA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x204A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x205E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2082 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA61C713A DUP4 CALLER DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE CALLER SWAP4 POP PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 SWAP3 POP ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x214D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2191 SWAP2 PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x219A DUP7 PUSH2 0x10DE JUMP JUMPDEST PUSH2 0x21A4 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x21AE SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x21B8 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x21C2 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x792 SWAP2 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0xB DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x21F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x223C JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2261 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x22FE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x229C PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x11 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x22E2 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2336 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2344 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x235D DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x2367 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x2371 SWAP1 DUP4 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x23D0 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x2427 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x23E1 JUMPI DUP2 SWAP4 POP PUSH2 0x23EF JUMP JUMPDEST PUSH2 0x23EC PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x2347 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0x2450 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x248E SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x24BF SWAP1 POP PUSH32 0x0 CALLER DUP5 PUSH2 0x29B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2603 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ PUSH2 0x24F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x336B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2564 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2578 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x259C SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x411B1F77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x411B1F77 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2615 JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x2638 SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2647 SWAP1 POP CALLER PUSH2 0x17C0 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x266D SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x268C SWAP2 SWAP1 PUSH2 0x2AEF JUMP JUMPDEST PUSH2 0x2694 PUSH2 0x2BFA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2701 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2725 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEA94EE44 DUP4 CALLER DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2754 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2782 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE CALLER SWAP4 POP PUSH32 0xF279E6A1F5E320CCA91135676D9CB6E44CA8A08C0B88342BCDB1144F6511B568 SWAP3 POP ADD PUSH2 0x2117 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x27CE JUMPI DUP2 PUSH2 0x1148 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x10 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x280D JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2834 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283F DUP4 PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x10 SLOAD PUSH2 0x2852 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x2860 DUP4 DUP4 PUSH2 0x344E JUMP JUMPDEST GT ISZERO PUSH2 0x2938 JUMPI DUP2 JUMPDEST PUSH2 0x2873 PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2936 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2923 JUMPI PUSH1 0x0 PUSH1 0xF DUP2 PUSH2 0x28B7 DUP6 PUSH1 0x1 PUSH2 0x33F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2902 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x303E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2911 DUP3 DUP10 PUSH2 0x33F7 JUMP JUMPDEST SWAP8 POP PUSH2 0x291E DUP13 DUP10 DUP4 PUSH2 0x2E0B JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x292E DUP2 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2868 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x29AA JUMPI PUSH1 0x0 PUSH2 0x298B DUP10 PUSH2 0x2974 DUP12 PUSH2 0x10DE JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2980 SWAP1 DUP11 PUSH2 0x27BE JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x303E JUMP JUMPDEST POP SWAP1 POP PUSH2 0x2998 DUP2 DUP7 PUSH2 0x33F7 JUMP JUMPDEST SWAP5 POP PUSH2 0x29A5 DUP10 DUP7 TIMESTAMP PUSH2 0x2E0B JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x29E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x333E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x2A3E SWAP2 SWAP1 PUSH2 0x32F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2A7B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2AAA JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2AAA JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2AAA SWAP2 SWAP1 PUSH2 0x3280 JUMP JUMPDEST PUSH2 0x2AE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2B4D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2B39 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2B90 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x2B77 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2BF4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2BDA SWAP1 DUP3 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x10 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2C2C JUMPI POP DUP1 PUSH1 0xF PUSH1 0x0 PUSH2 0x2C18 PUSH1 0x1 DUP7 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2C5D JUMPI PUSH1 0x0 SLOAD PUSH1 0xF PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x2C45 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0xF SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C96 SWAP1 DUP4 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x10 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CD5 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2CFE JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x2427 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D09 DUP4 PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2D25 PUSH1 0x1 PUSH1 0x10 SLOAD PUSH2 0x2D1F SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP9 PUSH2 0x2DFC JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2DDA JUMPI PUSH1 0x0 PUSH1 0xF DUP2 PUSH2 0x2D6E DUP6 PUSH1 0x1 PUSH2 0x33F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2DB9 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x303E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2DC8 DUP3 DUP10 PUSH2 0x33F7 JUMP JUMPDEST SWAP8 POP PUSH2 0x2DD5 DUP14 DUP10 DUP4 PUSH2 0x2E0B JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2DE5 DUP2 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2D29 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x27CE JUMPI DUP2 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2E67 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2E53 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2E91 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x2B77 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2EDB SWAP1 DUP3 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2F24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x333E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2F88 SWAP2 SWAP1 PUSH2 0x32F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2FC5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FCA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2FF4 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2FF4 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FF4 SWAP2 SWAP1 PUSH2 0x3280 JUMP JUMPDEST PUSH2 0x3036 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x304D DUP8 DUP6 PUSH2 0x27BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x30A0 PUSH2 0x3082 DUP11 DUP10 PUSH2 0x27BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x30C4 SWAP1 DUP7 SWAP1 PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x30CE SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x30D8 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x30E2 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x30EC SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3104 DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x311A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1148 DUP2 PUSH2 0x34AC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3136 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1148 DUP2 PUSH2 0x34AC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3153 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x315E DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x316E DUP2 PUSH2 0x34AC JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x318B JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3196 DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x31B3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x31C6 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x31D8 JUMPI PUSH2 0x31D8 PUSH2 0x3496 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x3496 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x321B JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x3244 JUMPI PUSH2 0x3230 DUP2 PUSH2 0x30F9 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x321F JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3267 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3272 DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3291 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1148 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32B1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x32E2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3311 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x32F7 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x331F JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xB SWAP1 DUP3 ADD MSTORE PUSH11 0x189859081D1BDAD95B9259 PUSH1 0xAA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x340A JUMPI PUSH2 0x340A PUSH2 0x3480 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x342A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3449 JUMPI PUSH2 0x3449 PUSH2 0x3480 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3460 JUMPI PUSH2 0x3460 PUSH2 0x3480 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3479 JUMPI PUSH2 0x3479 PUSH2 0x3480 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17BD JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP DUP5 STOP 0xAF 0xB4 GT 0x49 CALLCODE 0xF SHR 0xB5 SMOD JUMP SAR SWAP8 0x29 0xC6 0xCE 0xF6 0x23 SWAP13 PUSH19 0xB9B59EA0614AE344CB8364736F6C6343000804 STOP CALLER ","sourceMap":"566:22964:81:-:0;;;2480:1;2451:30;;2620:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;2677:14:81;;;;;;;;2701:31;;;;;566:22964;;14:177:139;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:303::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:2;;;357:6;349;342:22;304:2;385:40;415:9;385:40;:::i;:::-;375:50;;444:49;489:2;478:9;474:18;444:49;:::i;:::-;434:59;;294:205;;;;;:::o;:::-;566:22964:81;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:11801:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:85:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"136:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"111:24:139"},"nodeType":"YulFunctionCall","src":"111:31:139"},"nodeType":"YulExpressionStatement","src":"111:31:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:134:139"},{"body":{"nodeType":"YulBlock","src":"223:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"269:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"278:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"286:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"271:6:139"},"nodeType":"YulFunctionCall","src":"271:22:139"},"nodeType":"YulExpressionStatement","src":"271:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"244:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"253:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"240:3:139"},"nodeType":"YulFunctionCall","src":"240:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"265:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"236:3:139"},"nodeType":"YulFunctionCall","src":"236:32:139"},"nodeType":"YulIf","src":"233:2:139"},{"nodeType":"YulVariableDeclaration","src":"304:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"330:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"317:12:139"},"nodeType":"YulFunctionCall","src":"317:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"308:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"374:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"349:24:139"},"nodeType":"YulFunctionCall","src":"349:31:139"},"nodeType":"YulExpressionStatement","src":"349:31:139"},{"nodeType":"YulAssignment","src":"389:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"399:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"389:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"189:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"200:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"212:6:139","type":""}],"src":"153:257:139"},{"body":{"nodeType":"YulBlock","src":"496:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"542:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"551:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"559:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"544:6:139"},"nodeType":"YulFunctionCall","src":"544:22:139"},"nodeType":"YulExpressionStatement","src":"544:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"517:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"526:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"513:3:139"},"nodeType":"YulFunctionCall","src":"513:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"538:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"509:3:139"},"nodeType":"YulFunctionCall","src":"509:32:139"},"nodeType":"YulIf","src":"506:2:139"},{"nodeType":"YulVariableDeclaration","src":"577:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"596:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"590:5:139"},"nodeType":"YulFunctionCall","src":"590:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"581:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"640:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"615:24:139"},"nodeType":"YulFunctionCall","src":"615:31:139"},"nodeType":"YulExpressionStatement","src":"615:31:139"},{"nodeType":"YulAssignment","src":"655:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"665:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"655:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"462:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"473:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"485:6:139","type":""}],"src":"415:261:139"},{"body":{"nodeType":"YulBlock","src":"768:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"814:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"823:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"831:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"816:6:139"},"nodeType":"YulFunctionCall","src":"816:22:139"},"nodeType":"YulExpressionStatement","src":"816:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"789:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"798:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"785:3:139"},"nodeType":"YulFunctionCall","src":"785:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"810:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"781:3:139"},"nodeType":"YulFunctionCall","src":"781:32:139"},"nodeType":"YulIf","src":"778:2:139"},{"nodeType":"YulVariableDeclaration","src":"849:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"875:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"862:12:139"},"nodeType":"YulFunctionCall","src":"862:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"853:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"919:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"894:24:139"},"nodeType":"YulFunctionCall","src":"894:31:139"},"nodeType":"YulExpressionStatement","src":"894:31:139"},{"nodeType":"YulAssignment","src":"934:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"944:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"934:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"958:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"990:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1001:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"986:3:139"},"nodeType":"YulFunctionCall","src":"986:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"973:12:139"},"nodeType":"YulFunctionCall","src":"973:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"962:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1039:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1014:24:139"},"nodeType":"YulFunctionCall","src":"1014:33:139"},"nodeType":"YulExpressionStatement","src":"1014:33:139"},{"nodeType":"YulAssignment","src":"1056:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1066:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1056:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"726:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"737:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"749:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"757:6:139","type":""}],"src":"681:398:139"},{"body":{"nodeType":"YulBlock","src":"1196:1200:139","statements":[{"body":{"nodeType":"YulBlock","src":"1242:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1251:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1259:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1244:6:139"},"nodeType":"YulFunctionCall","src":"1244:22:139"},"nodeType":"YulExpressionStatement","src":"1244:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1217:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1226:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1213:3:139"},"nodeType":"YulFunctionCall","src":"1213:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1238:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1209:3:139"},"nodeType":"YulFunctionCall","src":"1209:32:139"},"nodeType":"YulIf","src":"1206:2:139"},{"nodeType":"YulVariableDeclaration","src":"1277:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1303:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1290:12:139"},"nodeType":"YulFunctionCall","src":"1290:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1281:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1347:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1322:24:139"},"nodeType":"YulFunctionCall","src":"1322:31:139"},"nodeType":"YulExpressionStatement","src":"1322:31:139"},{"nodeType":"YulAssignment","src":"1362:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1372:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1362:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1386:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1396:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1390:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1407:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1438:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1449:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1434:3:139"},"nodeType":"YulFunctionCall","src":"1434:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1421:12:139"},"nodeType":"YulFunctionCall","src":"1421:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1411:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1462:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1472:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1466:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1517:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1526:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1534:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1519:6:139"},"nodeType":"YulFunctionCall","src":"1519:22:139"},"nodeType":"YulExpressionStatement","src":"1519:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1505:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1513:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1502:2:139"},"nodeType":"YulFunctionCall","src":"1502:14:139"},"nodeType":"YulIf","src":"1499:2:139"},{"nodeType":"YulVariableDeclaration","src":"1552:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1566:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1577:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1562:3:139"},"nodeType":"YulFunctionCall","src":"1562:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1556:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1632:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1641:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1649:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1634:6:139"},"nodeType":"YulFunctionCall","src":"1634:22:139"},"nodeType":"YulExpressionStatement","src":"1634:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1611:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1615:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:139"},"nodeType":"YulFunctionCall","src":"1607:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1622:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1603:3:139"},"nodeType":"YulFunctionCall","src":"1603:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1596:6:139"},"nodeType":"YulFunctionCall","src":"1596:35:139"},"nodeType":"YulIf","src":"1593:2:139"},{"nodeType":"YulVariableDeclaration","src":"1667:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1690:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1677:12:139"},"nodeType":"YulFunctionCall","src":"1677:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1671:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1716:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1718:16:139"},"nodeType":"YulFunctionCall","src":"1718:18:139"},"nodeType":"YulExpressionStatement","src":"1718:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1708:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1712:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1705:2:139"},"nodeType":"YulFunctionCall","src":"1705:10:139"},"nodeType":"YulIf","src":"1702:2:139"},{"nodeType":"YulVariableDeclaration","src":"1747:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1761:1:139","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"1764:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1757:3:139"},"nodeType":"YulFunctionCall","src":"1757:10:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"1751:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1776:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1796:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1790:5:139"},"nodeType":"YulFunctionCall","src":"1790:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1780:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1808:56:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1830:6:139"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"1846:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1850:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1842:3:139"},"nodeType":"YulFunctionCall","src":"1842:11:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1859:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1855:3:139"},"nodeType":"YulFunctionCall","src":"1855:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1838:3:139"},"nodeType":"YulFunctionCall","src":"1838:25:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:139"},"nodeType":"YulFunctionCall","src":"1826:38:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1812:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1923:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1925:16:139"},"nodeType":"YulFunctionCall","src":"1925:18:139"},"nodeType":"YulExpressionStatement","src":"1925:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1882:10:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1894:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1879:2:139"},"nodeType":"YulFunctionCall","src":"1879:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1902:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1914:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1899:2:139"},"nodeType":"YulFunctionCall","src":"1899:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1876:2:139"},"nodeType":"YulFunctionCall","src":"1876:46:139"},"nodeType":"YulIf","src":"1873:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1961:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1965:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1954:6:139"},"nodeType":"YulFunctionCall","src":"1954:22:139"},"nodeType":"YulExpressionStatement","src":"1954:22:139"},{"nodeType":"YulVariableDeclaration","src":"1985:17:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1996:6:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1989:3:139","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2018:6:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2026:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2011:6:139"},"nodeType":"YulFunctionCall","src":"2011:18:139"},"nodeType":"YulExpressionStatement","src":"2011:18:139"},{"nodeType":"YulAssignment","src":"2038:22:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2049:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2057:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2045:3:139"},"nodeType":"YulFunctionCall","src":"2045:15:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2038:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"2069:22:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2084:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2088:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2080:3:139"},"nodeType":"YulFunctionCall","src":"2080:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2073:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2137:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2146:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2154:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2139:6:139"},"nodeType":"YulFunctionCall","src":"2139:22:139"},"nodeType":"YulExpressionStatement","src":"2139:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2114:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"2118:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2110:3:139"},"nodeType":"YulFunctionCall","src":"2110:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2123:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2106:3:139"},"nodeType":"YulFunctionCall","src":"2106:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2128:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2103:2:139"},"nodeType":"YulFunctionCall","src":"2103:33:139"},"nodeType":"YulIf","src":"2100:2:139"},{"nodeType":"YulVariableDeclaration","src":"2172:15:139","value":{"name":"value1","nodeType":"YulIdentifier","src":"2181:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2176:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2241:124:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2262:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2286:3:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2267:18:139"},"nodeType":"YulFunctionCall","src":"2267:23:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2255:6:139"},"nodeType":"YulFunctionCall","src":"2255:36:139"},"nodeType":"YulExpressionStatement","src":"2255:36:139"},{"nodeType":"YulAssignment","src":"2304:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2315:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2320:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2311:3:139"},"nodeType":"YulFunctionCall","src":"2311:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2304:3:139"}]},{"nodeType":"YulAssignment","src":"2336:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2347:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2352:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2343:3:139"},"nodeType":"YulFunctionCall","src":"2343:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2336:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2207:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2210:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2204:2:139"},"nodeType":"YulFunctionCall","src":"2204:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2214:18:139","statements":[{"nodeType":"YulAssignment","src":"2216:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2225:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"2228:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2221:3:139"},"nodeType":"YulFunctionCall","src":"2221:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2216:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"2200:3:139","statements":[]},"src":"2196:169:139"},{"nodeType":"YulAssignment","src":"2374:16:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2384:6:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2374:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1154:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1165:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1177:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1185:6:139","type":""}],"src":"1084:1312:139"},{"body":{"nodeType":"YulBlock","src":"2488:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"2534:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2543:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2551:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2536:6:139"},"nodeType":"YulFunctionCall","src":"2536:22:139"},"nodeType":"YulExpressionStatement","src":"2536:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2509:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2518:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2505:3:139"},"nodeType":"YulFunctionCall","src":"2505:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2530:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2501:3:139"},"nodeType":"YulFunctionCall","src":"2501:32:139"},"nodeType":"YulIf","src":"2498:2:139"},{"nodeType":"YulVariableDeclaration","src":"2569:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2595:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2582:12:139"},"nodeType":"YulFunctionCall","src":"2582:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2573:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2639:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2614:24:139"},"nodeType":"YulFunctionCall","src":"2614:31:139"},"nodeType":"YulExpressionStatement","src":"2614:31:139"},{"nodeType":"YulAssignment","src":"2654:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2664:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2654:6:139"}]},{"nodeType":"YulAssignment","src":"2678:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2705:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2716:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2701:3:139"},"nodeType":"YulFunctionCall","src":"2701:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2688:12:139"},"nodeType":"YulFunctionCall","src":"2688:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2678:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2446:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2457:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2469:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2477:6:139","type":""}],"src":"2401:325:139"},{"body":{"nodeType":"YulBlock","src":"2809:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"2855:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2864:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2872:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2857:6:139"},"nodeType":"YulFunctionCall","src":"2857:22:139"},"nodeType":"YulExpressionStatement","src":"2857:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2830:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2839:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2826:3:139"},"nodeType":"YulFunctionCall","src":"2826:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2851:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2822:3:139"},"nodeType":"YulFunctionCall","src":"2822:32:139"},"nodeType":"YulIf","src":"2819:2:139"},{"nodeType":"YulVariableDeclaration","src":"2890:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2909:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2903:5:139"},"nodeType":"YulFunctionCall","src":"2903:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2894:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2972:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2981:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2989:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2974:6:139"},"nodeType":"YulFunctionCall","src":"2974:22:139"},"nodeType":"YulExpressionStatement","src":"2974:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2941:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2962:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2955:6:139"},"nodeType":"YulFunctionCall","src":"2955:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2948:6:139"},"nodeType":"YulFunctionCall","src":"2948:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2938:2:139"},"nodeType":"YulFunctionCall","src":"2938:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2931:6:139"},"nodeType":"YulFunctionCall","src":"2931:40:139"},"nodeType":"YulIf","src":"2928:2:139"},{"nodeType":"YulAssignment","src":"3007:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3017:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3007:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2775:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2786:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2798:6:139","type":""}],"src":"2731:297:139"},{"body":{"nodeType":"YulBlock","src":"3103:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"3149:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3158:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3166:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3151:6:139"},"nodeType":"YulFunctionCall","src":"3151:22:139"},"nodeType":"YulExpressionStatement","src":"3151:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3124:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3133:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3120:3:139"},"nodeType":"YulFunctionCall","src":"3120:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3145:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3116:3:139"},"nodeType":"YulFunctionCall","src":"3116:32:139"},"nodeType":"YulIf","src":"3113:2:139"},{"nodeType":"YulAssignment","src":"3184:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3207:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3194:12:139"},"nodeType":"YulFunctionCall","src":"3194:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3184:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3069:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3080:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3092:6:139","type":""}],"src":"3033:190:139"},{"body":{"nodeType":"YulBlock","src":"3309:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"3355:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3364:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3372:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3357:6:139"},"nodeType":"YulFunctionCall","src":"3357:22:139"},"nodeType":"YulExpressionStatement","src":"3357:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3330:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3339:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3326:3:139"},"nodeType":"YulFunctionCall","src":"3326:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3351:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3322:3:139"},"nodeType":"YulFunctionCall","src":"3322:32:139"},"nodeType":"YulIf","src":"3319:2:139"},{"nodeType":"YulAssignment","src":"3390:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3406:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3400:5:139"},"nodeType":"YulFunctionCall","src":"3400:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3390:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3275:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3286:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3298:6:139","type":""}],"src":"3228:194:139"},{"body":{"nodeType":"YulBlock","src":"3514:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"3560:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3569:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3577:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3562:6:139"},"nodeType":"YulFunctionCall","src":"3562:22:139"},"nodeType":"YulExpressionStatement","src":"3562:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3535:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3544:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3531:3:139"},"nodeType":"YulFunctionCall","src":"3531:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3556:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3527:3:139"},"nodeType":"YulFunctionCall","src":"3527:32:139"},"nodeType":"YulIf","src":"3524:2:139"},{"nodeType":"YulAssignment","src":"3595:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3618:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3605:12:139"},"nodeType":"YulFunctionCall","src":"3605:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3595:6:139"}]},{"nodeType":"YulAssignment","src":"3637:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3664:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3675:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3660:3:139"},"nodeType":"YulFunctionCall","src":"3660:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3647:12:139"},"nodeType":"YulFunctionCall","src":"3647:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3637:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3472:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3483:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3495:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3503:6:139","type":""}],"src":"3427:258:139"},{"body":{"nodeType":"YulBlock","src":"3827:293:139","statements":[{"nodeType":"YulVariableDeclaration","src":"3837:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3857:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3851:5:139"},"nodeType":"YulFunctionCall","src":"3851:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3841:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3873:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"3882:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3877:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3946:77:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3971:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"3976:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3967:3:139"},"nodeType":"YulFunctionCall","src":"3967:11:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3994:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"4002:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3990:3:139"},"nodeType":"YulFunctionCall","src":"3990:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"4006:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3986:3:139"},"nodeType":"YulFunctionCall","src":"3986:25:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3980:5:139"},"nodeType":"YulFunctionCall","src":"3980:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3960:6:139"},"nodeType":"YulFunctionCall","src":"3960:53:139"},"nodeType":"YulExpressionStatement","src":"3960:53:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3905:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"3908:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3902:2:139"},"nodeType":"YulFunctionCall","src":"3902:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3916:21:139","statements":[{"nodeType":"YulAssignment","src":"3918:17:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3927:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"3930:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3923:3:139"},"nodeType":"YulFunctionCall","src":"3923:12:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3918:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"3898:3:139","statements":[]},"src":"3894:129:139"},{"body":{"nodeType":"YulBlock","src":"4049:33:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4062:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4067:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4058:3:139"},"nodeType":"YulFunctionCall","src":"4058:16:139"},{"name":"end","nodeType":"YulIdentifier","src":"4076:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4051:6:139"},"nodeType":"YulFunctionCall","src":"4051:29:139"},"nodeType":"YulExpressionStatement","src":"4051:29:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4038:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"4041:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4035:2:139"},"nodeType":"YulFunctionCall","src":"4035:13:139"},"nodeType":"YulIf","src":"4032:2:139"},{"nodeType":"YulAssignment","src":"4091:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4102:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4107:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4098:3:139"},"nodeType":"YulFunctionCall","src":"4098:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4091:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3803:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3808:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3819:3:139","type":""}],"src":"3690:430:139"},{"body":{"nodeType":"YulBlock","src":"4226:102:139","statements":[{"nodeType":"YulAssignment","src":"4236:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4248:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4259:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4244:3:139"},"nodeType":"YulFunctionCall","src":"4244:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4236:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4278:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4293:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4309:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4314:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4305:3:139"},"nodeType":"YulFunctionCall","src":"4305:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4318:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4301:3:139"},"nodeType":"YulFunctionCall","src":"4301:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4289:3:139"},"nodeType":"YulFunctionCall","src":"4289:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4271:6:139"},"nodeType":"YulFunctionCall","src":"4271:51:139"},"nodeType":"YulExpressionStatement","src":"4271:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4195:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4206:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4217:4:139","type":""}],"src":"4125:203:139"},{"body":{"nodeType":"YulBlock","src":"4490:218:139","statements":[{"nodeType":"YulAssignment","src":"4500:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4512:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4523:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4508:3:139"},"nodeType":"YulFunctionCall","src":"4508:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4500:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"4535:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4553:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4558:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4549:3:139"},"nodeType":"YulFunctionCall","src":"4549:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4562:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4545:3:139"},"nodeType":"YulFunctionCall","src":"4545:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4539:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4580:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4595:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4603:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4591:3:139"},"nodeType":"YulFunctionCall","src":"4591:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4573:6:139"},"nodeType":"YulFunctionCall","src":"4573:34:139"},"nodeType":"YulExpressionStatement","src":"4573:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4627:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4638:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4623:3:139"},"nodeType":"YulFunctionCall","src":"4623:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4647:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4655:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4643:3:139"},"nodeType":"YulFunctionCall","src":"4643:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4616:6:139"},"nodeType":"YulFunctionCall","src":"4616:43:139"},"nodeType":"YulExpressionStatement","src":"4616:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4679:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4690:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4675:3:139"},"nodeType":"YulFunctionCall","src":"4675:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"4695:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4668:6:139"},"nodeType":"YulFunctionCall","src":"4668:34:139"},"nodeType":"YulExpressionStatement","src":"4668:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4443:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4454:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4462:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4470:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4481:4:139","type":""}],"src":"4333:375:139"},{"body":{"nodeType":"YulBlock","src":"4842:145:139","statements":[{"nodeType":"YulAssignment","src":"4852:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4864:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4875:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4860:3:139"},"nodeType":"YulFunctionCall","src":"4860:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4852:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4894:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4909:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4925:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4930:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4921:3:139"},"nodeType":"YulFunctionCall","src":"4921:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4934:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4917:3:139"},"nodeType":"YulFunctionCall","src":"4917:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4905:3:139"},"nodeType":"YulFunctionCall","src":"4905:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4887:6:139"},"nodeType":"YulFunctionCall","src":"4887:51:139"},"nodeType":"YulExpressionStatement","src":"4887:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4958:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4969:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4954:3:139"},"nodeType":"YulFunctionCall","src":"4954:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4974:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4947:6:139"},"nodeType":"YulFunctionCall","src":"4947:34:139"},"nodeType":"YulExpressionStatement","src":"4947:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4803:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4814:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4822:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4833:4:139","type":""}],"src":"4713:274:139"},{"body":{"nodeType":"YulBlock","src":"5087:92:139","statements":[{"nodeType":"YulAssignment","src":"5097:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5109:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5120:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5105:3:139"},"nodeType":"YulFunctionCall","src":"5105:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5097:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5139:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5164:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5157:6:139"},"nodeType":"YulFunctionCall","src":"5157:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5150:6:139"},"nodeType":"YulFunctionCall","src":"5150:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5132:6:139"},"nodeType":"YulFunctionCall","src":"5132:41:139"},"nodeType":"YulExpressionStatement","src":"5132:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5056:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5067:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5078:4:139","type":""}],"src":"4992:187:139"},{"body":{"nodeType":"YulBlock","src":"5304:102:139","statements":[{"nodeType":"YulAssignment","src":"5314:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5326:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5337:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5322:3:139"},"nodeType":"YulFunctionCall","src":"5322:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5314:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5356:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5371:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5387:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5392:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5383:3:139"},"nodeType":"YulFunctionCall","src":"5383:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5396:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5379:3:139"},"nodeType":"YulFunctionCall","src":"5379:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5367:3:139"},"nodeType":"YulFunctionCall","src":"5367:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5349:6:139"},"nodeType":"YulFunctionCall","src":"5349:51:139"},"nodeType":"YulExpressionStatement","src":"5349:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5273:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5284:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5295:4:139","type":""}],"src":"5184:222:139"},{"body":{"nodeType":"YulBlock","src":"5585:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5602:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5613:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5595:6:139"},"nodeType":"YulFunctionCall","src":"5595:21:139"},"nodeType":"YulExpressionStatement","src":"5595:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5636:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5647:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5632:3:139"},"nodeType":"YulFunctionCall","src":"5632:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5652:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5625:6:139"},"nodeType":"YulFunctionCall","src":"5625:30:139"},"nodeType":"YulExpressionStatement","src":"5625:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5675:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5686:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5671:3:139"},"nodeType":"YulFunctionCall","src":"5671:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5691:21:139","type":"","value":"invalid code length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5664:6:139"},"nodeType":"YulFunctionCall","src":"5664:49:139"},"nodeType":"YulExpressionStatement","src":"5664:49:139"},{"nodeType":"YulAssignment","src":"5722:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5734:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5745:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5730:3:139"},"nodeType":"YulFunctionCall","src":"5730:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5722:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5562:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5576:4:139","type":""}],"src":"5411:343:139"},{"body":{"nodeType":"YulBlock","src":"5933:161:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5950:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5961:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5943:6:139"},"nodeType":"YulFunctionCall","src":"5943:21:139"},"nodeType":"YulExpressionStatement","src":"5943:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5984:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5995:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5980:3:139"},"nodeType":"YulFunctionCall","src":"5980:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6000:2:139","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5973:6:139"},"nodeType":"YulFunctionCall","src":"5973:30:139"},"nodeType":"YulExpressionStatement","src":"5973:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6023:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6019:3:139"},"nodeType":"YulFunctionCall","src":"6019:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6039:13:139","type":"","value":"bad tokenId"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6012:6:139"},"nodeType":"YulFunctionCall","src":"6012:41:139"},"nodeType":"YulExpressionStatement","src":"6012:41:139"},{"nodeType":"YulAssignment","src":"6062:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6074:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6085:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6070:3:139"},"nodeType":"YulFunctionCall","src":"6070:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6062:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_322cd4748f8d47b807f6942d44df1b77c47bc96126d45bcdc234ef858b5d8f5c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5910:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5924:4:139","type":""}],"src":"5759:335:139"},{"body":{"nodeType":"YulBlock","src":"6273:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6290:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6301:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6283:6:139"},"nodeType":"YulFunctionCall","src":"6283:21:139"},"nodeType":"YulExpressionStatement","src":"6283:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6324:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6335:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6320:3:139"},"nodeType":"YulFunctionCall","src":"6320:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6340:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6313:6:139"},"nodeType":"YulFunctionCall","src":"6313:30:139"},"nodeType":"YulExpressionStatement","src":"6313:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6363:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6374:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6359:3:139"},"nodeType":"YulFunctionCall","src":"6359:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6379:12:139","type":"","value":"reentrancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6352:6:139"},"nodeType":"YulFunctionCall","src":"6352:40:139"},"nodeType":"YulExpressionStatement","src":"6352:40:139"},{"nodeType":"YulAssignment","src":"6401:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6413:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6424:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6409:3:139"},"nodeType":"YulFunctionCall","src":"6409:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6401:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6250:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6264:4:139","type":""}],"src":"6099:334:139"},{"body":{"nodeType":"YulBlock","src":"6612:177:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6629:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6640:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6622:6:139"},"nodeType":"YulFunctionCall","src":"6622:21:139"},"nodeType":"YulExpressionStatement","src":"6622:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6663:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6674:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6659:3:139"},"nodeType":"YulFunctionCall","src":"6659:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6679:2:139","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6652:6:139"},"nodeType":"YulFunctionCall","src":"6652:30:139"},"nodeType":"YulExpressionStatement","src":"6652:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6702:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6713:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6698:3:139"},"nodeType":"YulFunctionCall","src":"6698:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6718:29:139","type":"","value":"sender not account or voter"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6691:6:139"},"nodeType":"YulFunctionCall","src":"6691:57:139"},"nodeType":"YulExpressionStatement","src":"6691:57:139"},{"nodeType":"YulAssignment","src":"6757:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6769:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6780:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6765:3:139"},"nodeType":"YulFunctionCall","src":"6765:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6757:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6589:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6603:4:139","type":""}],"src":"6438:351:139"},{"body":{"nodeType":"YulBlock","src":"6968:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6985:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6996:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6978:6:139"},"nodeType":"YulFunctionCall","src":"6978:21:139"},"nodeType":"YulExpressionStatement","src":"6978:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7019:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7030:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7015:3:139"},"nodeType":"YulFunctionCall","src":"7015:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7035:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7008:6:139"},"nodeType":"YulFunctionCall","src":"7008:30:139"},"nodeType":"YulExpressionStatement","src":"7008:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7058:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7069:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7054:3:139"},"nodeType":"YulFunctionCall","src":"7054:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7074:21:139","type":"","value":"transferFrom failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7047:6:139"},"nodeType":"YulFunctionCall","src":"7047:49:139"},"nodeType":"YulExpressionStatement","src":"7047:49:139"},{"nodeType":"YulAssignment","src":"7105:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7117:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7128:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7113:3:139"},"nodeType":"YulFunctionCall","src":"7113:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7105:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6945:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6959:4:139","type":""}],"src":"6794:343:139"},{"body":{"nodeType":"YulBlock","src":"7316:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7333:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7344:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7326:6:139"},"nodeType":"YulFunctionCall","src":"7326:21:139"},"nodeType":"YulExpressionStatement","src":"7326:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7367:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7378:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7363:3:139"},"nodeType":"YulFunctionCall","src":"7363:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7383:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7356:6:139"},"nodeType":"YulFunctionCall","src":"7356:30:139"},"nodeType":"YulExpressionStatement","src":"7356:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7406:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7417:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7402:3:139"},"nodeType":"YulFunctionCall","src":"7402:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7422:26:139","type":"","value":"Provided reward too high"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7395:6:139"},"nodeType":"YulFunctionCall","src":"7395:54:139"},"nodeType":"YulExpressionStatement","src":"7395:54:139"},{"nodeType":"YulAssignment","src":"7458:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7470:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7481:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7466:3:139"},"nodeType":"YulFunctionCall","src":"7466:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7458:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7293:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7307:4:139","type":""}],"src":"7142:348:139"},{"body":{"nodeType":"YulBlock","src":"7669:163:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7686:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7697:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7679:6:139"},"nodeType":"YulFunctionCall","src":"7679:21:139"},"nodeType":"YulExpressionStatement","src":"7679:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7720:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7731:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7716:3:139"},"nodeType":"YulFunctionCall","src":"7716:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7736:2:139","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7709:6:139"},"nodeType":"YulFunctionCall","src":"7709:30:139"},"nodeType":"YulExpressionStatement","src":"7709:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7759:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7770:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7755:3:139"},"nodeType":"YulFunctionCall","src":"7755:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7775:15:139","type":"","value":"token = stake"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7748:6:139"},"nodeType":"YulFunctionCall","src":"7748:43:139"},"nodeType":"YulExpressionStatement","src":"7748:43:139"},{"nodeType":"YulAssignment","src":"7800:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7812:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7823:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7808:3:139"},"nodeType":"YulFunctionCall","src":"7808:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7800:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7646:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7660:4:139","type":""}],"src":"7495:337:139"},{"body":{"nodeType":"YulBlock","src":"8011:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8028:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8039:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8021:6:139"},"nodeType":"YulFunctionCall","src":"8021:21:139"},"nodeType":"YulExpressionStatement","src":"8021:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8062:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8073:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8058:3:139"},"nodeType":"YulFunctionCall","src":"8058:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8078:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8051:6:139"},"nodeType":"YulFunctionCall","src":"8051:30:139"},"nodeType":"YulExpressionStatement","src":"8051:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8101:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8112:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8097:3:139"},"nodeType":"YulFunctionCall","src":"8097:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8117:17:139","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8090:6:139"},"nodeType":"YulFunctionCall","src":"8090:45:139"},"nodeType":"YulExpressionStatement","src":"8090:45:139"},{"nodeType":"YulAssignment","src":"8144:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8156:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8167:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8152:3:139"},"nodeType":"YulFunctionCall","src":"8152:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8144:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7988:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8002:4:139","type":""}],"src":"7837:339:139"},{"body":{"nodeType":"YulBlock","src":"8355:163:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8372:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8383:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8365:6:139"},"nodeType":"YulFunctionCall","src":"8365:21:139"},"nodeType":"YulExpressionStatement","src":"8365:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8406:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8417:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8402:3:139"},"nodeType":"YulFunctionCall","src":"8402:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8422:2:139","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8395:6:139"},"nodeType":"YulFunctionCall","src":"8395:30:139"},"nodeType":"YulExpressionStatement","src":"8395:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8445:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8456:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8441:3:139"},"nodeType":"YulFunctionCall","src":"8441:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8461:15:139","type":"","value":"amount > left"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8434:6:139"},"nodeType":"YulFunctionCall","src":"8434:43:139"},"nodeType":"YulExpressionStatement","src":"8434:43:139"},{"nodeType":"YulAssignment","src":"8486:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8498:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8509:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8494:3:139"},"nodeType":"YulFunctionCall","src":"8494:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8486:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8332:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8346:4:139","type":""}],"src":"8181:337:139"},{"body":{"nodeType":"YulBlock","src":"8697:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8714:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8725:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8707:6:139"},"nodeType":"YulFunctionCall","src":"8707:21:139"},"nodeType":"YulExpressionStatement","src":"8707:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8748:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8759:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8744:3:139"},"nodeType":"YulFunctionCall","src":"8744:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8764:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8737:6:139"},"nodeType":"YulFunctionCall","src":"8737:30:139"},"nodeType":"YulExpressionStatement","src":"8737:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8787:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8798:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8783:3:139"},"nodeType":"YulFunctionCall","src":"8783:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8803:16:139","type":"","value":"rewardrate = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8776:6:139"},"nodeType":"YulFunctionCall","src":"8776:44:139"},"nodeType":"YulExpressionStatement","src":"8776:44:139"},{"nodeType":"YulAssignment","src":"8829:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8841:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8852:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8837:3:139"},"nodeType":"YulFunctionCall","src":"8837:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8829:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8674:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8688:4:139","type":""}],"src":"8523:338:139"},{"body":{"nodeType":"YulBlock","src":"9040:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9057:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9068:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9050:6:139"},"nodeType":"YulFunctionCall","src":"9050:21:139"},"nodeType":"YulExpressionStatement","src":"9050:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9102:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9087:3:139"},"nodeType":"YulFunctionCall","src":"9087:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9107:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9080:6:139"},"nodeType":"YulFunctionCall","src":"9080:29:139"},"nodeType":"YulExpressionStatement","src":"9080:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9129:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9140:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9125:3:139"},"nodeType":"YulFunctionCall","src":"9125:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9145:11:139","type":"","value":"bad owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9118:6:139"},"nodeType":"YulFunctionCall","src":"9118:39:139"},"nodeType":"YulExpressionStatement","src":"9118:39:139"},{"nodeType":"YulAssignment","src":"9166:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9178:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9189:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9174:3:139"},"nodeType":"YulFunctionCall","src":"9174:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9166:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_efa2986b14de2cfdcdebf8be2f936cfaa7acf92839bbd239a5589c89fd644348__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9017:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9031:4:139","type":""}],"src":"8866:332:139"},{"body":{"nodeType":"YulBlock","src":"9377:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9394:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9405:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9387:6:139"},"nodeType":"YulFunctionCall","src":"9387:21:139"},"nodeType":"YulExpressionStatement","src":"9387:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9428:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9439:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9424:3:139"},"nodeType":"YulFunctionCall","src":"9424:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9444:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9417:6:139"},"nodeType":"YulFunctionCall","src":"9417:30:139"},"nodeType":"YulExpressionStatement","src":"9417:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9467:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9478:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9463:3:139"},"nodeType":"YulFunctionCall","src":"9463:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9483:12:139","type":"","value":"amount = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9456:6:139"},"nodeType":"YulFunctionCall","src":"9456:40:139"},"nodeType":"YulExpressionStatement","src":"9456:40:139"},{"nodeType":"YulAssignment","src":"9505:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9517:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9528:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9513:3:139"},"nodeType":"YulFunctionCall","src":"9513:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9505:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9354:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9368:4:139","type":""}],"src":"9203:334:139"},{"body":{"nodeType":"YulBlock","src":"9643:76:139","statements":[{"nodeType":"YulAssignment","src":"9653:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9665:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9676:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9661:3:139"},"nodeType":"YulFunctionCall","src":"9661:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9653:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9695:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9706:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9688:6:139"},"nodeType":"YulFunctionCall","src":"9688:25:139"},"nodeType":"YulExpressionStatement","src":"9688:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9612:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9623:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9634:4:139","type":""}],"src":"9542:177:139"},{"body":{"nodeType":"YulBlock","src":"9853:145:139","statements":[{"nodeType":"YulAssignment","src":"9863:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9875:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9886:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9871:3:139"},"nodeType":"YulFunctionCall","src":"9871:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9863:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9905:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9916:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9898:6:139"},"nodeType":"YulFunctionCall","src":"9898:25:139"},"nodeType":"YulExpressionStatement","src":"9898:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9943:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9954:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9939:3:139"},"nodeType":"YulFunctionCall","src":"9939:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9963:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9979:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9984:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9975:3:139"},"nodeType":"YulFunctionCall","src":"9975:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"9988:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9971:3:139"},"nodeType":"YulFunctionCall","src":"9971:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9959:3:139"},"nodeType":"YulFunctionCall","src":"9959:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9932:6:139"},"nodeType":"YulFunctionCall","src":"9932:60:139"},"nodeType":"YulExpressionStatement","src":"9932:60:139"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9814:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9825:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9833:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9844:4:139","type":""}],"src":"9724:274:139"},{"body":{"nodeType":"YulBlock","src":"10160:188:139","statements":[{"nodeType":"YulAssignment","src":"10170:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10182:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10193:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10178:3:139"},"nodeType":"YulFunctionCall","src":"10178:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10170:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10212:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10223:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10205:6:139"},"nodeType":"YulFunctionCall","src":"10205:25:139"},"nodeType":"YulExpressionStatement","src":"10205:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10250:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10261:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10246:3:139"},"nodeType":"YulFunctionCall","src":"10246:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10270:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10286:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10291:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10282:3:139"},"nodeType":"YulFunctionCall","src":"10282:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10295:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10278:3:139"},"nodeType":"YulFunctionCall","src":"10278:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10266:3:139"},"nodeType":"YulFunctionCall","src":"10266:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10239:6:139"},"nodeType":"YulFunctionCall","src":"10239:60:139"},"nodeType":"YulExpressionStatement","src":"10239:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10319:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10330:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10315:3:139"},"nodeType":"YulFunctionCall","src":"10315:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"10335:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10308:6:139"},"nodeType":"YulFunctionCall","src":"10308:34:139"},"nodeType":"YulExpressionStatement","src":"10308:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10113:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10124:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10132:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10140:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10151:4:139","type":""}],"src":"10003:345:139"},{"body":{"nodeType":"YulBlock","src":"10482:119:139","statements":[{"nodeType":"YulAssignment","src":"10492:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10504:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10515:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10500:3:139"},"nodeType":"YulFunctionCall","src":"10500:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10492:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10534:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10545:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10527:6:139"},"nodeType":"YulFunctionCall","src":"10527:25:139"},"nodeType":"YulExpressionStatement","src":"10527:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10572:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10583:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10568:3:139"},"nodeType":"YulFunctionCall","src":"10568:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"10588:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10561:6:139"},"nodeType":"YulFunctionCall","src":"10561:34:139"},"nodeType":"YulExpressionStatement","src":"10561:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10443:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10454:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10462:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10473:4:139","type":""}],"src":"10353:248:139"},{"body":{"nodeType":"YulBlock","src":"10654:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"10681:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10683:16:139"},"nodeType":"YulFunctionCall","src":"10683:18:139"},"nodeType":"YulExpressionStatement","src":"10683:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10670:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10677:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10673:3:139"},"nodeType":"YulFunctionCall","src":"10673:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10667:2:139"},"nodeType":"YulFunctionCall","src":"10667:13:139"},"nodeType":"YulIf","src":"10664:2:139"},{"nodeType":"YulAssignment","src":"10712:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10723:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10726:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10719:3:139"},"nodeType":"YulFunctionCall","src":"10719:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"10712:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10637:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10640:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"10646:3:139","type":""}],"src":"10606:128:139"},{"body":{"nodeType":"YulBlock","src":"10785:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"10816:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"10837:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10844:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10849:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10840:3:139"},"nodeType":"YulFunctionCall","src":"10840:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10830:6:139"},"nodeType":"YulFunctionCall","src":"10830:31:139"},"nodeType":"YulExpressionStatement","src":"10830:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10881:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10884:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10874:6:139"},"nodeType":"YulFunctionCall","src":"10874:15:139"},"nodeType":"YulExpressionStatement","src":"10874:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"10909:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"10912:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10902:6:139"},"nodeType":"YulFunctionCall","src":"10902:15:139"},"nodeType":"YulExpressionStatement","src":"10902:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10805:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10798:6:139"},"nodeType":"YulFunctionCall","src":"10798:9:139"},"nodeType":"YulIf","src":"10795:2:139"},{"nodeType":"YulAssignment","src":"10936:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10945:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10948:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"10941:3:139"},"nodeType":"YulFunctionCall","src":"10941:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"10936:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10770:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10773:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"10779:1:139","type":""}],"src":"10739:217:139"},{"body":{"nodeType":"YulBlock","src":"11013:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"11072:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11074:16:139"},"nodeType":"YulFunctionCall","src":"11074:18:139"},"nodeType":"YulExpressionStatement","src":"11074:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11044:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11037:6:139"},"nodeType":"YulFunctionCall","src":"11037:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11030:6:139"},"nodeType":"YulFunctionCall","src":"11030:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11052:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11063:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11059:3:139"},"nodeType":"YulFunctionCall","src":"11059:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"11067:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11055:3:139"},"nodeType":"YulFunctionCall","src":"11055:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11049:2:139"},"nodeType":"YulFunctionCall","src":"11049:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11026:3:139"},"nodeType":"YulFunctionCall","src":"11026:45:139"},"nodeType":"YulIf","src":"11023:2:139"},{"nodeType":"YulAssignment","src":"11103:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11118:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11121:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"11114:3:139"},"nodeType":"YulFunctionCall","src":"11114:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"11103:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10992:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10995:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"11001:7:139","type":""}],"src":"10961:168:139"},{"body":{"nodeType":"YulBlock","src":"11183:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"11205:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11207:16:139"},"nodeType":"YulFunctionCall","src":"11207:18:139"},"nodeType":"YulExpressionStatement","src":"11207:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11199:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11202:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11196:2:139"},"nodeType":"YulFunctionCall","src":"11196:8:139"},"nodeType":"YulIf","src":"11193:2:139"},{"nodeType":"YulAssignment","src":"11236:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11248:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11251:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11244:3:139"},"nodeType":"YulFunctionCall","src":"11244:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"11236:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11165:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"11168:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"11174:4:139","type":""}],"src":"11134:125:139"},{"body":{"nodeType":"YulBlock","src":"11311:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"11342:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11344:16:139"},"nodeType":"YulFunctionCall","src":"11344:18:139"},"nodeType":"YulExpressionStatement","src":"11344:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11327:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11338:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11334:3:139"},"nodeType":"YulFunctionCall","src":"11334:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11324:2:139"},"nodeType":"YulFunctionCall","src":"11324:17:139"},"nodeType":"YulIf","src":"11321:2:139"},{"nodeType":"YulAssignment","src":"11373:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11384:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"11391:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11380:3:139"},"nodeType":"YulFunctionCall","src":"11380:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"11373:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11293:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"11303:3:139","type":""}],"src":"11264:135:139"},{"body":{"nodeType":"YulBlock","src":"11436:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11453:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11460:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11465:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11456:3:139"},"nodeType":"YulFunctionCall","src":"11456:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11446:6:139"},"nodeType":"YulFunctionCall","src":"11446:31:139"},"nodeType":"YulExpressionStatement","src":"11446:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11493:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11496:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11486:6:139"},"nodeType":"YulFunctionCall","src":"11486:15:139"},"nodeType":"YulExpressionStatement","src":"11486:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11517:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11520:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11510:6:139"},"nodeType":"YulFunctionCall","src":"11510:15:139"},"nodeType":"YulExpressionStatement","src":"11510:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"11404:127:139"},{"body":{"nodeType":"YulBlock","src":"11568:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11585:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11592:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11597:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11588:3:139"},"nodeType":"YulFunctionCall","src":"11588:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11578:6:139"},"nodeType":"YulFunctionCall","src":"11578:31:139"},"nodeType":"YulExpressionStatement","src":"11578:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11625:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11628:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11618:6:139"},"nodeType":"YulFunctionCall","src":"11618:15:139"},"nodeType":"YulExpressionStatement","src":"11618:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11649:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11652:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11642:6:139"},"nodeType":"YulFunctionCall","src":"11642:15:139"},"nodeType":"YulExpressionStatement","src":"11642:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"11536:127:139"},{"body":{"nodeType":"YulBlock","src":"11713:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"11777:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11786:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11789:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11779:6:139"},"nodeType":"YulFunctionCall","src":"11779:12:139"},"nodeType":"YulExpressionStatement","src":"11779:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11736:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11747:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11762:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11767:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11758:3:139"},"nodeType":"YulFunctionCall","src":"11758:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11771:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11754:3:139"},"nodeType":"YulFunctionCall","src":"11754:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11743:3:139"},"nodeType":"YulFunctionCall","src":"11743:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11733:2:139"},"nodeType":"YulFunctionCall","src":"11733:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11726:6:139"},"nodeType":"YulFunctionCall","src":"11726:50:139"},"nodeType":"YulIf","src":"11723:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11702:5:139","type":""}],"src":"11668:131:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value1, value1) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _4)\n        dst := add(memPtr, _1)\n        let src := add(_3, _1)\n        if gt(add(add(_3, _5), _1), dataEnd) { revert(value1, value1) }\n        let i := value1\n        for { } lt(i, _4) { i := add(i, 1) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value1 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        let i := end\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n        }\n        if gt(i, length) { mstore(add(pos, length), end) }\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"invalid code length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_322cd4748f8d47b807f6942d44df1b77c47bc96126d45bcdc234ef858b5d8f5c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"bad tokenId\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"reentrancy\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"sender not account or voter\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"transferFrom failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Provided reward too high\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"token = stake\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"transfer failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"amount > left\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"rewardrate = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_efa2986b14de2cfdcdebf8be2f936cfaa7acf92839bbd239a5589c89fd644348__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"bad owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"amount = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"26428":[{"length":32,"start":1130},{"length":32,"start":2708},{"length":32,"start":2850},{"length":32,"start":3100},{"length":32,"start":6147},{"length":32,"start":6406},{"length":32,"start":6713},{"length":32,"start":7108},{"length":32,"start":7374},{"length":32,"start":7766},{"length":32,"start":8179},{"length":32,"start":9497},{"length":32,"start":9878}],"26430":[{"length":32,"start":831},{"length":32,"start":4844},{"length":32,"start":5938},{"length":32,"start":7258},{"length":32,"start":9369}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102125760003560e01c8063853828b611610120578063da09d19d116100b8578063f301af421161007c578063f301af42146105ab578063f7412baf146105be578063fc97a303146105e5578063fd31409814610605578063fdb483c71461061857600080fd5b8063da09d19d14610554578063e2bbb15814610574578063e688639614610587578063e8111a121461058f578063f12297771461059857600080fd5b8063853828b61461048c57806399bcc052146104945780639ce43f90146104a7578063a495e5b5146104c7578063aa479652146104f2578063b66503cf14610512578063c6f678bd14610525578063d35e254414610538578063d7da4bb01461054b57600080fd5b80633a4b66f1116101ae57806363fb415b1161017257806363fb415b146103f25780636fcfff451461041257806370a082311461043257806376f4be36146104525780637b1039991461046557600080fd5b80633a4b66f11461033a5780633ca068b61461036e5780634d5ce038146103995780635a45d052146103cc578063638634ee146103df57600080fd5b806301316ddf146102175780630cdfebfa14610263578063115c6f391461029557806318160ddd146102b6578063211dc32d146102bf578063221ca18c146102d25780632ce9aead146102f25780632e1a7d4d1461031257806331279d3d14610327575b600080fd5b610249610225366004613255565b60116020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610249610271366004613255565b600d6020908152600092835260408084209091529082529020805460019091015482565b6102a86102a3366004613255565b61062b565b60405190815260200161025a565b6102a860095481565b6102a86102cd366004613141565b610798565b6102a86102e0366004613109565b60026020526000908152604090205481565b6102a8610300366004613109565b60046020526000908152604090205481565b6103256103203660046132a0565b610a28565b005b610325610335366004613179565b610a5f565b6103617f000000000000000000000000000000000000000000000000000000000000000081565b60405161025a919061332a565b6102a861037c366004613141565b600760209081526000928352604080842090915290825290205481565b6103bc6103a7366004613109565b600c6020526000908152604090205460ff1681565b604051901515815260200161025a565b6103256103da366004613255565b6110a6565b6102a86103ed366004613109565b6110de565b6102a8610400366004613109565b60016020526000908152604090205481565b6102a8610420366004613109565b600e6020526000908152604090205481565b6102a8610440366004613109565b600a6020526000908152604090205481565b6102a86104603660046132a0565b611102565b6103617f000000000000000000000000000000000000000000000000000000000000000081565b610325611234565b6102a86104a2366004613109565b61124f565b6102a86104b5366004613109565b60056020526000908152604090205481565b6102a86104d5366004613141565b600660209081526000928352604080842090915290825290205481565b6102a8610500366004613109565b60126020526000908152604090205481565b610325610520366004613255565b6112c0565b6103256105333660046132a0565b611717565b6102a8610546366004613109565b6117c0565b6102a860005481565b6102a8610562366004613109565b60036020526000908152604090205481565b6103256105823660046132d0565b611b98565b600b546102a8565b6102a860105481565b6102a86105a6366004613109565b612129565b6103616105b93660046132a0565b6121e5565b6102496105cc3660046132a0565b600f602052600090815260409020805460019091015482565b6102a86105f3366004613109565b60086020526000908152604090205481565b610249610613366004613255565b61220f565b6103256106263660046132d0565b61242e565b6001600160a01b0382166000908152600e602052604081205480610653576000915050610792565b6001600160a01b0384166000908152600d60205260408120849161067860018561344e565b815260200190815260200160002060000154116106a25761069a60018261344e565b915050610792565b6001600160a01b0384166000908152600d602090815260408083208380529091529020548310156106d7576000915050610792565b6000806106e560018461344e565b90505b8181111561078d57600060026106fe848461344e565b610708919061340f565b610712908361344e565b6001600160a01b0388166000908152600d602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107675750935061079292505050565b805187111561077857819350610786565b61078360018361344e565b92505b50506106e8565b509150505b92915050565b6001600160a01b0380831660008181526006602090815260408083209486168352938152838220549282526011815283822082805290529182205482916107de916127be565b6001600160a01b0384166000908152600e6020526040902054909150610808576000915050610792565b6000610814848361062b565b6001600160a01b0385166000908152600e60205260408120549192509061083d9060019061344e565b90506000600161084d848461344e565b111561095c57825b61086060018461344e565b81101561095a576001600160a01b0387166000818152600d6020818152604080842086855280835281852082518084019093528054835260019081015483850152958552929091529282906108b69086906133f7565b815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006108f58b846000015161220f565b50905060006109088c846000015161220f565b509050670de0b6b3a764000061091e838361344e565b856020015161092d919061342f565b610937919061340f565b61094190876133f7565b955050505050808061095290613465565b915050610855565b505b6001600160a01b0386166000908152600d602090815260408083208584528252808320815180830190925280548083526001909101549282019290925291906109a6908a9061220f565b506001600160a01b03808b166000908152600760209081526040808320938d1683529290522054909150670de0b6b3a7640000906109e59083906127be565b6109ee8b612129565b6109f8919061344e565b8360200151610a07919061342f565b610a11919061340f565b610a1b90846133f7565b9998505050505050505050565b336000908152600a6020526040812054821415610a515750336000908152600860205260409020545b610a5b828261242e565b5050565b601354600114610a8a5760405162461bcd60e51b8152600401610a8190613390565b60405180910390fd5b60026013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aed57600080fd5b505af1158015610b01573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610bc657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190613125565b6001600160a01b0316336001600160a01b0316145b610c125760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610a81565b60016013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7357600080fd5b505afa158015610c87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cab9190613125565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610cd6919061332a565b600060405180830381600087803b158015610cf057600080fd5b505af1158015610d04573d6000803e3d6000fd5b5050600260135550600090505b815181101561100057610d4a828281518110610d3d57634e487b7160e01b600052603260045260246000fd5b60200260200101516127d5565b60056000858581518110610d6e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060046000878781518110610dbc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e25838381518110610e1757634e487b7160e01b600052603260045260246000fd5b602002602001015185610798565b90504260066000858581518110610e4c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060056000848481518110610ebf57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460076000858581518110610f0c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610f7957610f79838381518110610f6a57634e487b7160e01b600052603260045260246000fd5b602002602001015185836129b8565b828281518110610f9957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc983604051610fe591815260200190565b60405180910390a35080610ff881613465565b915050610d11565b506001600160a01b038216600090815260016020526040812054815490918291819061102d90849061344e565b9091555061103c9050836117c0565b6001600160a01b038416600090815260016020526040812082905580549192508291819061106b9084906133f7565b90915550506001600160a01b038316600090815260016020526040902054611094908490612aef565b61109c612bfa565b5050600160135550565b6110b08282612c9d565b6001600160a01b03909316600090815260056020908152604080832060049092529091209390935590915550565b6001600160a01b038116600090815260036020526040812054610792904290612dfc565b601054600090806111165750600092915050565b82600f600061112660018561344e565b8152602001908152602001600020600001541161114f5761114860018261344e565b9392505050565b60008052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755483101561118a5750600092915050565b60008061119860018461344e565b90505b8181111561122c57600060026111b1848461344e565b6111bb919061340f565b6111c5908361344e565b6000818152600f6020908152604091829020825180840190935280548084526001909101549183019190915291925090871415611206575095945050505050565b805187111561121757819350611225565b61122260018361344e565b92505b505061119b565b509392505050565b336000908152600a602052604090205461124d90610a28565b565b6001600160a01b038116600090815260036020526040812054421061127657506000919050565b6001600160a01b03821660009081526003602052604081205461129a90429061344e565b6001600160a01b038416600090815260026020526040902054909150611148908261342f565b6013546001146112e25760405162461bcd60e51b8152600401610a8190613390565b60026013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561135c5760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610a81565b6000811161137c5760405162461bcd60e51b8152600401610a81906133b4565b6001600160a01b0382166000908152600260205260409020546113a5576113a582600042612e0b565b6113ae826127d5565b6001600160a01b038416600090815260056020908152604080832060048352818420949094559390925560039091522054421061141c576113f182333084612efa565b6113fe62093a808261340f565b6001600160a01b0383166000908152600260205260409020556114e8565b6001600160a01b03821660009081526003602052604081205461144090429061344e565b6001600160a01b03841660009081526002602052604081205491925090611467908361342f565b90508083116114a85760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610a81565b6114b484333086612efa565b62093a806114c282856133f7565b6114cc919061340f565b6001600160a01b03851660009081526002602052604090205550505b6001600160a01b03821660009081526002602052604090205461153e5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610a81565b6040516370a0823160e01b81526000906001600160a01b038416906370a082319061156d90309060040161332a565b60206040518083038186803b15801561158557600080fd5b505afa158015611599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bd91906132b8565b90506115cc62093a808261340f565b6001600160a01b038416600090815260026020526040902054111561162e5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610a81565b61163b62093a80426133f7565b6001600160a01b038416600090815260036020908152604080832093909355600c9052205460ff166116cd576001600160a01b0383166000818152600c60205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160135550565b6040516370a0823160e01b81526117bd906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061176790339060040161332a565b60206040518083038186803b15801561177f57600080fd5b505afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b791906132b8565b82611b98565b50565b6001600160a01b038116600090815260086020908152604080832054600a9092528220548260646117f283601461342f565b6117fc919061340f565b90506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561185a57600080fd5b505afa15801561186e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118929190613125565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ca57600080fd5b505afa1580156118de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190291906132b8565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561195d57600080fd5b505afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190613125565b6001600160a01b0316636352211e866040518263ffffffff1660e01b81526004016119c291815260200190565b60206040518083038186803b1580156119da57600080fd5b505afa1580156119ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a129190613125565b6001600160a01b0316876001600160a01b0316148015611a325750600081115b15611b7a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a9057600080fd5b505afa158015611aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac89190613125565b6001600160a01b031663e7e242d4866040518263ffffffff1660e01b8152600401611af591815260200190565b60206040518083038186803b158015611b0d57600080fd5b505afa158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4591906132b8565b915060648183600954611b58919061342f565b611b62919061340f565b611b6d90605061342f565b611b77919061340f565b91505b611b8d611b8783856133f7565b85612dfc565b979650505050505050565b601354600114611bba5760405162461bcd60e51b8152600401610a8190613390565b60026013819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611c1d57600080fd5b505af1158015611c31573d6000803e3d6000fd5b5050505060008211611c555760405162461bcd60e51b8152600401610a81906133b4565b611c817f0000000000000000000000000000000000000000000000000000000000000000333085612efa565b8160096000828254611c9391906133f7565b9091555050336000908152600a602052604081208054849290611cb79084906133f7565b90915550508015611f6f57336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d2557600080fd5b505afa158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5d9190613125565b6001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401611d8a91815260200190565b60206040518083038186803b158015611da257600080fd5b505afa158015611db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dda9190613125565b6001600160a01b031614611e1c5760405162461bcd60e51b81526020600482015260096024820152683130b21037bbb732b960b91b6044820152606401610a81565b33600090815260086020526040902054611f3c573360009081526008602090815260409182902083905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611ea157600080fd5b505afa158015611eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed99190613125565b60405163698473e360e01b8152600481018390523360248201526001600160a01b03919091169063698473e390604401600060405180830381600087803b158015611f2357600080fd5b505af1158015611f37573d6000803e3d6000fd5b505050505b336000908152600860205260409020548114611f6a5760405162461bcd60e51b8152600401610a819061336b565b611f81565b50336000908152600860205260409020545b336000908152600160205260408120548154909182918190611fa490849061344e565b90915550611fb39050336117c0565b336000908152600160205260408120829055805491925082918190611fd99084906133f7565b90915550611fe990503382612aef565b611ff1612bfa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561204a57600080fd5b505afa15801561205e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120829190613125565b6001600160a01b031663a61c713a8333866040518463ffffffff1660e01b81526004016120b1939291906133d8565b600060405180830381600087803b1580156120cb57600080fd5b505af11580156120df573d6000803e3d6000fd5b505060408051858152602081018790523393507f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159250015b60405180910390a25050600160135550565b6000805461214d57506001600160a01b031660009081526005602052604090205490565b600080546001600160a01b038416825260026020908152604080842054600483528185205460039093529320549192670de0b6b3a764000092909161219191612dfc565b61219a866110de565b6121a4919061344e565b6121ae919061342f565b6121b8919061342f565b6121c2919061340f565b6001600160a01b03831660009081526005602052604090205461079291906133f7565b600b81815481106121f557600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526012602052604081205481908061223c576000809250925050612427565b6001600160a01b0385166000908152601160205260408120859161226160018561344e565b815260200190815260200160002060000154116122fe576001600160a01b03851660009081526011602052604081209061229c60018461344e565b81526020019081526020016000206001015460116000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846122e2919061344e565b8152602001908152602001600020600001549250925050612427565b6001600160a01b0385166000908152601160209081526040808320838052909152902054841015612336576000809250925050612427565b60008061234460018461344e565b90505b818111156123f6576000600261235d848461344e565b612367919061340f565b612371908361344e565b6001600160a01b03891660009081526011602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156123d0576020810151905190965094506124279350505050565b80518811156123e1578193506123ef565b6123ec60018361344e565b92505b5050612347565b506001600160a01b038616600090815260116020908152604080832093835292905220600181015490549093509150505b9250929050565b6013546001146124505760405162461bcd60e51b8152600401610a8190613390565b6002601381905550816009600082825461246a919061344e565b9091555050336000908152600a60205260408120805484929061248e90849061344e565b909155506124bf90507f000000000000000000000000000000000000000000000000000000000000000033846129b8565b8015612603573360009081526008602052604090205481146124f35760405162461bcd60e51b8152600401610a819061336b565b3360009081526008602090815260408083209290925581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561256457600080fd5b505afa158015612578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259c9190613125565b60405163411b1f7760e01b8152600481018390523360248201526001600160a01b03919091169063411b1f7790604401600060405180830381600087803b1580156125e657600080fd5b505af11580156125fa573d6000803e3d6000fd5b50505050612615565b50336000908152600860205260409020545b33600090815260016020526040812054815490918291819061263890849061344e565b909155506126479050336117c0565b33600090815260016020526040812082905580549192508291819061266d9084906133f7565b90915550503360008181526001602052604090205461268c9190612aef565b612694612bfa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b1580156126ed57600080fd5b505afa158015612701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127259190613125565b6001600160a01b031663ea94ee448333866040518463ffffffff1660e01b8152600401612754939291906133d8565b600060405180830381600087803b15801561276e57600080fd5b505af1158015612782573d6000803e3d6000fd5b505060408051858152602081018790523393507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568925001612117565b6000818310156127ce5781611148565b5090919050565b6001600160a01b03811660009081526004602090815260408083205460059092528220546010548392919061280d5794909350915050565b6001600160a01b038516600090815260026020526040902054612834579442945092505050565b600061283f83611102565b905060006001601054612852919061344e565b90506001612860838361344e565b111561293857815b61287360018361344e565b811015612936576000818152600f60209081526040918290208251808401909352805483526001015490820181905215612923576000600f816128b78560016133f7565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806129028c8460000151866000015187602001518d61303e565b909250905061291182896133f7565b975061291e8c8983612e0b565b975050505b508061292e81613465565b915050612868565b505b6000818152600f602090815260409182902082518084019093528054835260010154908201819052156129aa57600061298b896129748b6110de565b8451612980908a6127be565b85602001518a61303e565b50905061299881866133f7565b94506129a5898642612e0b565b429550505b509196929550919350505050565b6000836001600160a01b03163b116129e25760405162461bcd60e51b8152600401610a819061333e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691612a3e91906132f1565b6000604051808303816000865af19150503d8060008114612a7b576040519150601f19603f3d011682016040523d82523d6000602084013e612a80565b606091505b5091509150818015612aaa575080511580612aaa575080806020019051810190612aaa9190613280565b612ae85760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610a81565b5050505050565b6001600160a01b0382166000908152600e602052604090205442908015801590612b4d57506001600160a01b0384166000908152600d602052604081208391612b3960018561344e565b815260200190815260200160002060000154145b15612b90576001600160a01b0384166000908152600d602052604081208491612b7760018561344e565b8152602081019190915260400160002060010155612bf4565b60408051808201825283815260208082018681526001600160a01b0388166000908152600d8352848120868252909252929020905181559051600191820155612bda9082906133f7565b6001600160a01b0385166000908152600e60205260409020555b50505050565b601054428115801590612c2c575080600f6000612c1860018661344e565b815260200190815260200160002060000154145b15612c5d57600054600f6000600185612c45919061344e565b81526020810191909152604001600020600101555050565b604080518082018252828152600080546020808401918252868352600f9052929020905181559051600191820155612c969083906133f7565b6010555050565b6001600160a01b038216600090815260046020908152604080832054600590925282205460105483929190612cd55792509050612427565b6001600160a01b038616600090815260026020526040902054612cfe5792504291506124279050565b6000612d0983611102565b90506000612d256001601054612d1f919061344e565b88612dfc565b9050815b81811015612ded576000818152600f60209081526040918290208251808401909352805483526001015490820181905215612dda576000600f81612d6e8560016133f7565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612db98d8460000151866000015187602001518d61303e565b9092509050612dc882896133f7565b9750612dd58d8983612e0b565b975050505b5080612de581613465565b915050612d29565b50919792965091945050505050565b60008183106127ce5781611148565b6001600160a01b0383166000908152601260205260409020548015801590612e6757506001600160a01b03841660009081526011602052604081208391612e5360018561344e565b815260200190815260200160002060000154145b15612e91576001600160a01b03841660009081526011602052604081208491612b7760018561344e565b60408051808201825283815260208082018681526001600160a01b038816600090815260118352848120868252909252929020905181559051600191820155612edb9082906133f7565b6001600160a01b03851660009081526012602052604090205550505050565b6000846001600160a01b03163b11612f245760405162461bcd60e51b8152600401610a819061333e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612f8891906132f1565b6000604051808303816000865af19150503d8060008114612fc5576040519150601f19603f3d011682016040523d82523d6000602084013e612fca565b606091505b5091509150818015612ff4575080511580612ff4575080806020019051810190612ff49190613280565b6130365760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610a81565b505050505050565b600080600061304d87856127be565b6001600160a01b0389166000908152600260205260409020549091508590670de0b6b3a7640000906130a06130828a896127be565b6001600160a01b038d16600090815260036020526040902054612dfc565b6001600160a01b038c166000908152600360205260409020546130c4908690612dfc565b6130ce919061344e565b6130d8919061342f565b6130e2919061342f565b6130ec919061340f565b9890975095505050505050565b8035613104816134ac565b919050565b60006020828403121561311a578081fd5b8135611148816134ac565b600060208284031215613136578081fd5b8151611148816134ac565b60008060408385031215613153578081fd5b823561315e816134ac565b9150602083013561316e816134ac565b809150509250929050565b6000806040838503121561318b578182fd5b8235613196816134ac565b915060208381013567ffffffffffffffff808211156131b3578384fd5b818601915086601f8301126131c6578384fd5b8135818111156131d8576131d8613496565b8060051b604051601f19603f830116810181811085821117156131fd576131fd613496565b604052828152858101935084860182860187018b101561321b578788fd5b8795505b8386101561324457613230816130f9565b85526001959095019493860193860161321f565b508096505050505050509250929050565b60008060408385031215613267578182fd5b8235613272816134ac565b946020939093013593505050565b600060208284031215613291578081fd5b81518015158114611148578182fd5b6000602082840312156132b1578081fd5b5035919050565b6000602082840312156132c9578081fd5b5051919050565b600080604083850312156132e2578182fd5b50508035926020909101359150565b60008251815b8181101561331157602081860181015185830152016132f7565b8181111561331f5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600b908201526a189859081d1bdad95b925960aa1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b9283526001600160a01b03919091166020830152604082015260600190565b6000821982111561340a5761340a613480565b500190565b60008261342a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561344957613449613480565b500290565b60008282101561346057613460613480565b500390565b600060001982141561347957613479613480565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117bd57600080fdfea2646970667358221220568400afb41149f20f1cb507561d9729c6cef6239c72b9b59ea0614ae344cb8364736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x212 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x853828B6 GT PUSH2 0x120 JUMPI DUP1 PUSH4 0xDA09D19D GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF301AF42 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x5AB JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xFC97A303 EQ PUSH2 0x5E5 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x605 JUMPI DUP1 PUSH4 0xFDB483C7 EQ PUSH2 0x618 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x554 JUMPI DUP1 PUSH4 0xE2BBB158 EQ PUSH2 0x574 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x853828B6 EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x494 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x4A7 JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x4C7 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x512 JUMPI DUP1 PUSH4 0xC6F678BD EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x63FB415B GT PUSH2 0x172 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x452 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x2D2 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x327 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x249 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x249 PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x62B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3141 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x2E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x320 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x325 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x3179 JUMP JUMPDEST PUSH2 0xA5F JUMP JUMPDEST PUSH2 0x361 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP2 SWAP1 PUSH2 0x332A JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3BC PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST PUSH2 0x325 PUSH2 0x3DA CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x10A6 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x3ED CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x10DE JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x420 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x440 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x460 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0x1102 JUMP JUMPDEST PUSH2 0x361 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x1234 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x4A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x124F JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x4D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x500 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x520 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x12C0 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0x1717 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x546 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x17C0 JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x325 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x32D0 JUMP JUMPDEST PUSH2 0x1B98 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH2 0x2129 JUMP JUMPDEST PUSH2 0x361 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH2 0x21E5 JUMP JUMPDEST PUSH2 0x249 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x32A0 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x5F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3109 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x249 PUSH2 0x613 CALLDATASIZE PUSH1 0x4 PUSH2 0x3255 JUMP JUMPDEST PUSH2 0x220F JUMP JUMPDEST PUSH2 0x325 PUSH2 0x626 CALLDATASIZE PUSH1 0x4 PUSH2 0x32D0 JUMP JUMPDEST PUSH2 0x242E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x653 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x678 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x6A2 JUMPI PUSH2 0x69A PUSH1 0x1 DUP3 PUSH2 0x344E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x6D7 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x78D JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x6FE DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x712 SWAP1 DUP4 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x767 JUMPI POP SWAP4 POP PUSH2 0x792 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x778 JUMPI DUP2 SWAP4 POP PUSH2 0x786 JUMP JUMPDEST PUSH2 0x783 PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x6E8 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x11 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x7DE SWAP2 PUSH2 0x27BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x808 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x792 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x814 DUP5 DUP4 PUSH2 0x62B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x83D SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x84D DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST GT ISZERO PUSH2 0x95C JUMPI DUP3 JUMPDEST PUSH2 0x860 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x95A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x8B6 SWAP1 DUP7 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x8F5 DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x220F JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x908 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x220F JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x91E DUP4 DUP4 PUSH2 0x344E JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x92D SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x937 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x941 SWAP1 DUP8 PUSH2 0x33F7 JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x952 SWAP1 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x855 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0x9A6 SWAP1 DUP11 SWAP1 PUSH2 0x220F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x9E5 SWAP1 DUP4 SWAP1 PUSH2 0x27BE JUMP JUMPDEST PUSH2 0x9EE DUP12 PUSH2 0x2129 JUMP JUMPDEST PUSH2 0x9F8 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA07 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0xA11 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0xA1B SWAP1 DUP5 PUSH2 0x33F7 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 EQ ISZERO PUSH2 0xA51 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST PUSH2 0xA5B DUP3 DUP3 PUSH2 0x242E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0xA8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xBC6 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB8D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB1 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCAB SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD6 SWAP2 SWAP1 PUSH2 0x332A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x13 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1000 JUMPI PUSH2 0xD4A DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xD6E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDBC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE25 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE17 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x798 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE4C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x5 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEBF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x7 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xF79 JUMPI PUSH2 0xF79 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xF6A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x29B8 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xF99 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0xFE5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0xFF8 DUP2 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD11 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x102D SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x103C SWAP1 POP DUP4 PUSH2 0x17C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106B SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1094 SWAP1 DUP5 SWAP1 PUSH2 0x2AEF JUMP JUMPDEST PUSH2 0x109C PUSH2 0x2BFA JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH2 0x10B0 DUP3 DUP3 PUSH2 0x2C9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x4 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x792 SWAP1 TIMESTAMP SWAP1 PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x1116 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0xF PUSH1 0x0 PUSH2 0x1126 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x114F JUMPI PUSH2 0x1148 PUSH1 0x1 DUP3 PUSH2 0x344E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH32 0xF4803E074BD026BAAF6ED2E288C9515F68C72FB7216EEBDD7CAE1718A53EC375 SLOAD DUP4 LT ISZERO PUSH2 0x118A JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1198 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x122C JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x11B1 DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x11BB SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x11C5 SWAP1 DUP4 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x1206 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x1217 JUMPI DUP2 SWAP4 POP PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x1222 PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x119B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x124D SWAP1 PUSH2 0xA28 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1276 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x129A SWAP1 TIMESTAMP SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1148 SWAP1 DUP3 PUSH2 0x342F JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0x12E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x135C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x137C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x13A5 JUMPI PUSH2 0x13A5 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2E0B JUMP JUMPDEST PUSH2 0x13AE DUP3 PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x141C JUMPI PUSH2 0x13F1 DUP3 CALLER ADDRESS DUP5 PUSH2 0x2EFA JUMP JUMPDEST PUSH2 0x13FE PUSH3 0x93A80 DUP3 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x14E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1440 SWAP1 TIMESTAMP SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1467 SWAP1 DUP4 PUSH2 0x342F JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x14A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH2 0x14B4 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2EFA JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x14C2 DUP3 DUP6 PUSH2 0x33F7 JUMP JUMPDEST PUSH2 0x14CC SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x153E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x156D SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x332A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1599 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15BD SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST SWAP1 POP PUSH2 0x15CC PUSH3 0x93A80 DUP3 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x162E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST PUSH2 0x163B PUSH3 0x93A80 TIMESTAMP PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x16CD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xB DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x175B7A638427703F0DBE7BB9BBF987A2551717B34E79F33B5B1008D1FA01DB9 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x17BD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1767 SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x332A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x177F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1793 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17B7 SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST DUP3 PUSH2 0x1B98 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD DUP3 PUSH1 0x64 PUSH2 0x17F2 DUP4 PUSH1 0x14 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x17FC SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x185A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x186E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1892 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18DE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1902 SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1971 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1995 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19C2 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A12 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 ISZERO PUSH2 0x1A32 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0x1B7A JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AC8 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE7E242D4 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AF5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B45 SWAP2 SWAP1 PUSH2 0x32B8 JUMP JUMPDEST SWAP2 POP PUSH1 0x64 DUP2 DUP4 PUSH1 0x9 SLOAD PUSH2 0x1B58 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x1B62 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x1B6D SWAP1 PUSH1 0x50 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x1B77 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x1B8D PUSH2 0x1B87 DUP4 DUP6 PUSH2 0x33F7 JUMP JUMPDEST DUP6 PUSH2 0x2DFC JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0x1BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP3 GT PUSH2 0x1C55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST PUSH2 0x1C81 PUSH32 0x0 CALLER ADDRESS DUP6 PUSH2 0x2EFA JUMP JUMPDEST DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C93 SWAP2 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x1CB7 SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP1 ISZERO PUSH2 0x1F6F JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D5D SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D8A SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DB6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DDA SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x3130B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F3C JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ED9 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x698473E3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x698473E3 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F37 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ PUSH2 0x1F6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x336B JUMP JUMPDEST PUSH2 0x1F81 JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1FA4 SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1FB3 SWAP1 POP CALLER PUSH2 0x17C0 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1FD9 SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1FE9 SWAP1 POP CALLER DUP3 PUSH2 0x2AEF JUMP JUMPDEST PUSH2 0x1FF1 PUSH2 0x2BFA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x204A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x205E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2082 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA61C713A DUP4 CALLER DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE CALLER SWAP4 POP PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 SWAP3 POP ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x214D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2191 SWAP2 PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x219A DUP7 PUSH2 0x10DE JUMP JUMPDEST PUSH2 0x21A4 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x21AE SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x21B8 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x21C2 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x792 SWAP2 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0xB DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x21F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x223C JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2261 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x22FE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x229C PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x11 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x22E2 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2336 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2344 PUSH1 0x1 DUP5 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x235D DUP5 DUP5 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x2367 SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST PUSH2 0x2371 SWAP1 DUP4 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x23D0 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x2427 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x23E1 JUMPI DUP2 SWAP4 POP PUSH2 0x23EF JUMP JUMPDEST PUSH2 0x23EC PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x2347 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x1 EQ PUSH2 0x2450 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x13 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x248E SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x24BF SWAP1 POP PUSH32 0x0 CALLER DUP5 PUSH2 0x29B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2603 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ PUSH2 0x24F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x336B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2564 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2578 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x259C SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x411B1F77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x411B1F77 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2615 JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x2638 SWAP1 DUP5 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2647 SWAP1 POP CALLER PUSH2 0x17C0 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x266D SWAP1 DUP5 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x268C SWAP2 SWAP1 PUSH2 0x2AEF JUMP JUMPDEST PUSH2 0x2694 PUSH2 0x2BFA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2701 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2725 SWAP2 SWAP1 PUSH2 0x3125 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEA94EE44 DUP4 CALLER DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2754 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2782 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE CALLER SWAP4 POP PUSH32 0xF279E6A1F5E320CCA91135676D9CB6E44CA8A08C0B88342BCDB1144F6511B568 SWAP3 POP ADD PUSH2 0x2117 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x27CE JUMPI DUP2 PUSH2 0x1148 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x10 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x280D JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2834 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283F DUP4 PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x10 SLOAD PUSH2 0x2852 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x2860 DUP4 DUP4 PUSH2 0x344E JUMP JUMPDEST GT ISZERO PUSH2 0x2938 JUMPI DUP2 JUMPDEST PUSH2 0x2873 PUSH1 0x1 DUP4 PUSH2 0x344E JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2936 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2923 JUMPI PUSH1 0x0 PUSH1 0xF DUP2 PUSH2 0x28B7 DUP6 PUSH1 0x1 PUSH2 0x33F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2902 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x303E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2911 DUP3 DUP10 PUSH2 0x33F7 JUMP JUMPDEST SWAP8 POP PUSH2 0x291E DUP13 DUP10 DUP4 PUSH2 0x2E0B JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x292E DUP2 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2868 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x29AA JUMPI PUSH1 0x0 PUSH2 0x298B DUP10 PUSH2 0x2974 DUP12 PUSH2 0x10DE JUMP JUMPDEST DUP5 MLOAD PUSH2 0x2980 SWAP1 DUP11 PUSH2 0x27BE JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x303E JUMP JUMPDEST POP SWAP1 POP PUSH2 0x2998 DUP2 DUP7 PUSH2 0x33F7 JUMP JUMPDEST SWAP5 POP PUSH2 0x29A5 DUP10 DUP7 TIMESTAMP PUSH2 0x2E0B JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x29E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x333E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x2A3E SWAP2 SWAP1 PUSH2 0x32F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2A7B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2AAA JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2AAA JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2AAA SWAP2 SWAP1 PUSH2 0x3280 JUMP JUMPDEST PUSH2 0x2AE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2B4D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2B39 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2B90 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x2B77 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2BF4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2BDA SWAP1 DUP3 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x10 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2C2C JUMPI POP DUP1 PUSH1 0xF PUSH1 0x0 PUSH2 0x2C18 PUSH1 0x1 DUP7 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2C5D JUMPI PUSH1 0x0 SLOAD PUSH1 0xF PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x2C45 SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0xF SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C96 SWAP1 DUP4 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x10 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CD5 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2CFE JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x2427 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D09 DUP4 PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2D25 PUSH1 0x1 PUSH1 0x10 SLOAD PUSH2 0x2D1F SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST DUP9 PUSH2 0x2DFC JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2DDA JUMPI PUSH1 0x0 PUSH1 0xF DUP2 PUSH2 0x2D6E DUP6 PUSH1 0x1 PUSH2 0x33F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2DB9 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x303E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2DC8 DUP3 DUP10 PUSH2 0x33F7 JUMP JUMPDEST SWAP8 POP PUSH2 0x2DD5 DUP14 DUP10 DUP4 PUSH2 0x2E0B JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2DE5 DUP2 PUSH2 0x3465 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2D29 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x27CE JUMPI DUP2 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2E67 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2E53 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2E91 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x2B77 PUSH1 0x1 DUP6 PUSH2 0x344E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2EDB SWAP1 DUP3 SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2F24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA81 SWAP1 PUSH2 0x333E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2F88 SWAP2 SWAP1 PUSH2 0x32F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2FC5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FCA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2FF4 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2FF4 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FF4 SWAP2 SWAP1 PUSH2 0x3280 JUMP JUMPDEST PUSH2 0x3036 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA81 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x304D DUP8 DUP6 PUSH2 0x27BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x30A0 PUSH2 0x3082 DUP11 DUP10 PUSH2 0x27BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x30C4 SWAP1 DUP7 SWAP1 PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x30CE SWAP2 SWAP1 PUSH2 0x344E JUMP JUMPDEST PUSH2 0x30D8 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x30E2 SWAP2 SWAP1 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x30EC SWAP2 SWAP1 PUSH2 0x340F JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3104 DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x311A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1148 DUP2 PUSH2 0x34AC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3136 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1148 DUP2 PUSH2 0x34AC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3153 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x315E DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x316E DUP2 PUSH2 0x34AC JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x318B JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3196 DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x31B3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x31C6 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x31D8 JUMPI PUSH2 0x31D8 PUSH2 0x3496 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x3496 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x321B JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x3244 JUMPI PUSH2 0x3230 DUP2 PUSH2 0x30F9 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x321F JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3267 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3272 DUP2 PUSH2 0x34AC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3291 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1148 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32B1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x32E2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3311 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x32F7 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x331F JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xB SWAP1 DUP3 ADD MSTORE PUSH11 0x189859081D1BDAD95B9259 PUSH1 0xAA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x340A JUMPI PUSH2 0x340A PUSH2 0x3480 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x342A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3449 JUMPI PUSH2 0x3449 PUSH2 0x3480 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3460 JUMPI PUSH2 0x3460 PUSH2 0x3480 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3479 JUMPI PUSH2 0x3479 PUSH2 0x3480 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17BD JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP DUP5 STOP 0xAF 0xB4 GT 0x49 CALLCODE 0xF SHR 0xB5 SMOD JUMP SAR SWAP8 0x29 0xC6 0xCE 0xF6 0x23 SWAP13 PUSH19 0xB9B59EA0614AE344CB8364736F6C6343000804 STOP CALLER ","sourceMap":"566:22964:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:105;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10527:25:139;;;10583:2;10568:18;;10561:34;;;;10500:18;2180:105:81;;;;;;;;1691:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3135:1074;;;;;;:::i;:::-;;:::i;:::-;;;9688:25:139;;;9676:2;9661:18;3135:1074:81;9643:76:139;1456:26:81;;;;;;15691:1750;;;;;;:::i;:::-;;:::i;1022:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1126:49;;;;;;:::i;:::-;;;;;;;;;;;;;;19048:218;;;;;;:::i;:::-;;:::i;:::-;;9112:1358;;;;;;:::i;:::-;;:::i;655:30::-;;;;;;;;;;;;:::i;1312:87::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1569:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5157:14:139;;5150:22;5132:41;;5120:2;5105:18;1569:40:81;5087:92:139;11580:212:81;;;;;;:::i;:::-;;:::i;8929:177::-;;;;;;:::i;:::-;;:::i;778:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1826:49;;;;;;:::i;:::-;;;;;;;;;;;;;;1488:44;;;;;;:::i;:::-;;;;;;;;;;;;;;4215:1050;;;;;;:::i;:::-;;:::i;605:44::-;;;;;18962:80;;;:::i;20361:254::-;;;;;;:::i;:::-;;:::i;1181:55::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1243:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2349;;;;;;:::i;:::-;;;;;;;;;;;;;;20621:1438;;;;;;:::i;:::-;;:::i;17447:116::-;;;;;;:::i;:::-;;:::i;10909:665::-;;;;;;:::i;:::-;;:::i;744:28::-;;;;;;1073:47;;;;;;:::i;:::-;;;;;;;;;;;;;;17569:1387;;;;;;:::i;:::-;;:::i;8731:99::-;8809:7;:14;8731:99;;2065:35;;;;;;10476:427;;;;;;:::i;:::-;;:::i;1539:24::-;;;;;;:::i;:::-;;:::i;1955:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1406:43;;;;;;:::i;:::-;;;;;;;;;;;;;;5271:1560;;;;;;:::i;:::-;;:::i;19272:1083::-;;;;;;:::i;:::-;;:::i;3135:1074::-;-1:-1:-1;;;;;3292:23:81;;3246:7;3292:23;;;:14;:23;;;;;;3329:17;3325:56;;3369:1;3362:8;;;;;3325:56;-1:-1:-1;;;;;3438:20:81;;;;;;:11;:20;;;;;3490:9;;3459:16;3474:1;3459:12;:16;:::i;:::-;3438:38;;;;;;;;;;;:48;;;:61;3434:117;;3523:16;3538:1;3523:12;:16;:::i;:::-;3515:25;;;;;3434:117;-1:-1:-1;;;;;3609:20:81;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:45;-1:-1:-1;3605:84:81;;;3677:1;3670:8;;;;;3605:84;3699:13;;3742:16;3757:1;3742:12;:16;:::i;:::-;3726:32;;3768:413;3783:5;3775;:13;3768:413;;;3804:14;3847:1;3830:13;3838:5;3830;:13;:::i;:::-;3829:19;;;;:::i;:::-;3821:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;3912:20:81;;3889;3912;;;:11;:20;;;;;;;;:28;;;;;;;;;3889:51;;;;;;;;;;;;;;;;;;;;;;;;;3804:44;;-1:-1:-1;3889:51:81;3958:25;;3954:217;;;-1:-1:-1;4010:6:81;-1:-1:-1;4003:13:81;;-1:-1:-1;;;4003:13:81;3954:217;4041:12;;:24;-1:-1:-1;4037:134:81;;;4093:6;4085:14;;4037:134;;;4146:10;4155:1;4146:6;:10;:::i;:::-;4138:18;;4037:134;3768:413;;;;;-1:-1:-1;4197:5:81;-1:-1:-1;;3135:1074:81;;;;;:::o;15691:1750::-;-1:-1:-1;;;;;15855:15:81;;;15784:7;15855:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;15893:32;;;:25;:32;;;;;:35;;;;;;;;:45;15784:7;;15833:115;;:8;:115::i;:::-;-1:-1:-1;;;;;15962:23:81;;;;;;:14;:23;;;;;;15807:141;;-1:-1:-1;15958:67:81;;16013:1;16006:8;;;;;15958:67;16035:19;16057:46;16078:7;16087:15;16057:20;:46::i;:::-;-1:-1:-1;;;;;16133:23:81;;16113:17;16133:23;;;:14;:23;;;;;;16035:68;;-1:-1:-1;16113:17:81;16133:27;;16159:1;;16133:27;:::i;:::-;16113:47;-1:-1:-1;16171:14:81;16230:1;16204:23;16216:11;16113:47;16204:23;:::i;:::-;:27;16200:745;;;16264:11;16247:688;16281:13;16293:1;16281:9;:13;:::i;:::-;16277:1;:17;16247:688;;;-1:-1:-1;;;;;16343:20:81;;16319:21;16343:20;;;:11;:20;;;;;;;;:23;;;;;;;;;16319:47;;;;;;;;;;;;;;;;;;;;;16408:20;;;;;;;16319:47;:21;;16429:5;;16364:1;;16429:5;:::i;:::-;16408:27;;;;;;;;;;;16384:51;;;;;;;;;;;;;;;;;;;;;;;;;;;16454:30;16490:102;16534:5;16561:3;:13;;;16490:22;:102::i;:::-;16453:139;;;16611:30;16647:102;16691:5;16718:3;:13;;;16647:22;:102::i;:::-;-1:-1:-1;16610:139:81;-1:-1:-1;958:6:81;16839:47;16864:22;16610:139;16839:47;:::i;:::-;16798:3;:13;;;:89;;;;:::i;:::-;16797:123;;;;:::i;:::-;16767:153;;;;:::i;:::-;;;16247:688;;;;16296:3;;;;;:::i;:::-;;;;16247:688;;;;16200:745;-1:-1:-1;;;;;16978:20:81;;16955;16978;;;:11;:20;;;;;;;;:31;;;;;;;;16955:54;;;;;;;;;;;;;;;;;;;;;;;;;;:20;17055:77;;17091:5;;17055:22;:77::i;:::-;-1:-1:-1;;;;;;17322:31:81;;;;;;;:24;:31;;;;;;;;:40;;;;;;;;;;17019:113;;-1:-1:-1;958:6:81;;17241:143;;17019:113;;17241:8;:143::i;:::-;17197:21;17212:5;17197:14;:21::i;:::-;:187;;;;:::i;:::-;17165:2;:12;;;:220;;;;:::i;:::-;17164:246;;;;:::i;:::-;17142:268;;;;:::i;:::-;;15691:1750;-1:-1:-1;;;;;;;;;15691:1750:81:o;19048:218::-;19152:10;19099:15;19142:21;;;:9;:21;;;;;;19132:31;;19128:92;;;-1:-1:-1;19198:10:81;19189:20;;;;:8;:20;;;;;;19128:92;19229:30;19243:6;19251:7;19229:13;:30::i;:::-;19048:218;;:::o;9112:1358::-;2521:9;;2534:1;2521:14;2513:37;;;;-1:-1:-1;;;2513:37:81;;;;;;;:::i;:::-;;;;;;;;;2572:1;2560:9;:13;;;;9234:8:::1;-1:-1:-1::0;;;;;9234:24:81::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9305:7;-1:-1:-1::0;;;;;9291:21:81::1;:10;-1:-1:-1::0;;;;;9291:21:81::1;;:60;;;;9330:8;-1:-1:-1::0;;;;;9330:19:81::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9316:35:81::1;:10;-1:-1:-1::0;;;;;9316:35:81::1;;9291:60;9270:134;;;::::0;-1:-1:-1;;;9270:134:81;;6640:2:139;9270:134:81::1;::::0;::::1;6622:21:139::0;6679:2;6659:18;;;6652:30;6718:29;6698:18;;;6691:57;6765:18;;9270:134:81::1;6612:177:139::0;9270:134:81::1;9427:1;9415:9;:13;;;;9450:8;-1:-1:-1::0;;;;;9450:19:81::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9438:45:81::1;;9492:4;9438:60;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9520:1:81::1;9508:9;:13:::0;-1:-1:-1;9537:9:81::1;::::0;-1:-1:-1;9532:588:81::1;9556:6;:13;9552:1;:17;9532:588;;;9699:32;9721:6;9728:1;9721:9;;;;;;-1:-1:-1::0;;;9721:9:81::1;;;;;;;;;;;;;;;9699:21;:32::i;:::-;9608:20;:31;9629:6;9636:1;9629:9;;;;;;-1:-1:-1::0;;;9629:9:81::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9608:31:81::1;-1:-1:-1::0;;;;;9608:31:81::1;;;;;;;;;;;;;9657:14;:25;9672:6;9679:1;9672:9;;;;;;-1:-1:-1::0;;;9672:9:81::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9657:25:81::1;-1:-1:-1::0;;;;;9657:25:81::1;;;;;;;;;;;;;9590:141;;;;;;;;;;;;9746:15;9764:26;9771:6;9778:1;9771:9;;;;;;-1:-1:-1::0;;;9771:9:81::1;;;;;;;;;;;;;;;9782:7;9764:6;:26::i;:::-;9746:44;;9835:15;9804:8;:19;9813:6;9820:1;9813:9;;;;;;-1:-1:-1::0;;;9813:9:81::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9804:19:81::1;-1:-1:-1::0;;;;;9804:19:81::1;;;;;;;;;;;;:28;9824:7;-1:-1:-1::0;;;;;9804:28:81::1;-1:-1:-1::0;;;;;9804:28:81::1;;;;;;;;;;;;:46;;;;9911:20;:61;9949:6;9956:1;9949:9;;;;;;-1:-1:-1::0;;;9949:9:81::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9911:61:81::1;-1:-1:-1::0;;;;;9911:61:81::1;;;;;;;;;;;;;9864:24;:35;9889:6;9896:1;9889:9;;;;;;-1:-1:-1::0;;;9889:9:81::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9864:35:81;;::::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;9864:35:81;;;:44;;::::1;::::0;;;;;;;:108;9990:11;;9986:59:::1;;10003:42;10017:6;10024:1;10017:9;;;;;;-1:-1:-1::0;;;10017:9:81::1;;;;;;;;;;;;;;;10028:7;10037;10003:13;:42::i;:::-;10090:6;10097:1;10090:9;;;;;;-1:-1:-1::0;;;10090:9:81::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10065:44:81::1;10078:10;-1:-1:-1::0;;;;;10065:44:81::1;;10101:7;10065:44;;;;9688:25:139::0;;9676:2;9661:18;;9643:76;10065:44:81::1;;;;;;;;-1:-1:-1::0;9571:3:81;::::1;::::0;::::1;:::i;:::-;;;;9532:588;;;-1:-1:-1::0;;;;;;10156:24:81;::::1;10130:23;10156:24:::0;;;:15:::1;:24;::::0;;;;;10190:32;;10156:24;;;;10130:23;;10190:32:::1;::::0;10156:24;;10190:32:::1;:::i;:::-;::::0;;;-1:-1:-1;10250:23:81::1;::::0;-1:-1:-1;10265:7:81;10250:14:::1;:23::i;:::-;-1:-1:-1::0;;;;;10283:24:81;::::1;;::::0;;;:15:::1;:24;::::0;;;;:42;;;10335:32;;10232:41;;-1:-1:-1;10232:41:81;;10283:24;;10335:32:::1;::::0;10232:41;;10335:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;10404:24:81;::::1;;::::0;;;:15:::1;:24;::::0;;;;;10378:51:::1;::::0;10395:7;;10378:16:::1;:51::i;:::-;10439:24;:22;:24::i;:::-;-1:-1:-1::0;;2606:1:81;2594:9;:13;-1:-1:-1;9112:1358:81:o;11580:212::-;11749:36;11770:5;11777:7;11749:20;:36::i;:::-;-1:-1:-1;;;;;11674:27:81;;;;;;;:20;:27;;;;;;;;11715:14;:21;;;;;;11660:125;;;;;;;-1:-1:-1;11580:212:81:o;8929:177::-;-1:-1:-1;;;;;9079:19:81;;9023:7;9079:19;;;:12;:19;;;;;;9053:46;;9062:15;;9053:8;:46::i;4215:1050::-;4354:20;;4308:7;;4388:17;4384:56;;-1:-1:-1;4428:1:81;;4215:1050;-1:-1:-1;;4215:1050:81:o;4384:56::-;4546:9;4497:17;:35;4515:16;4530:1;4515:12;:16;:::i;:::-;4497:35;;;;;;;;;;;:45;;;:58;4493:114;;4579:16;4594:1;4579:12;:16;:::i;:::-;4571:25;4215:1050;-1:-1:-1;;;4215:1050:81:o;4493:114::-;4665:20;;;:17;:20;;;:30;:42;-1:-1:-1;4661:81:81;;;-1:-1:-1;4730:1:81;;4215:1050;-1:-1:-1;;4215:1050:81:o;4661:81::-;4752:13;;4795:16;4810:1;4795:12;:16;:::i;:::-;4779:32;;4821:416;4836:5;4828;:13;4821:416;;;4857:14;4900:1;4883:13;4891:5;4883;:13;:::i;:::-;4882:19;;;;:::i;:::-;4874:27;;:5;:27;:::i;:::-;4942:26;4971:25;;;:17;:25;;;;;;;;;4942:54;;;;;;;;;;;;;;;;;;;;;;;;;4857:44;;-1:-1:-1;4942:54:81;5014:25;;5010:217;;;-1:-1:-1;5066:6:81;4215:1050;-1:-1:-1;;;;;4215:1050:81:o;5010:217::-;5097:12;;:24;-1:-1:-1;5093:134:81;;;5149:6;5141:14;;5093:134;;;5202:10;5211:1;5202:6;:10;:::i;:::-;5194:18;;5093:134;4821:416;;;;;-1:-1:-1;5253:5:81;4215:1050;-1:-1:-1;;;4215:1050:81:o;18962:80::-;19023:10;19013:21;;;;:9;:21;;;;;;19004:31;;:8;:31::i;:::-;18962:80::o;20361:254::-;-1:-1:-1;;;;;20464:19:81;;20422:7;20464:19;;;:12;:19;;;;;;20445:15;:38;20441:52;;-1:-1:-1;20492:1:81;;20361:254;-1:-1:-1;20361:254:81:o;20441:52::-;-1:-1:-1;;;;;20524:19:81;;20503:18;20524:19;;;:12;:19;;;;;;:37;;20546:15;;20524:37;:::i;:::-;-1:-1:-1;;;;;20591:17:81;;;;;;:10;:17;;;;;;20503:58;;-1:-1:-1;20578:30:81;;20503:58;20578:30;:::i;20621:1438::-;2521:9;;2534:1;2521:14;2513:37;;;;-1:-1:-1;;;2513:37:81;;;;;;;:::i;:::-;2572:1;2560:9;:13;;;;20758:5:::1;-1:-1:-1::0;;;;;20749:14:81::1;:5;-1:-1:-1::0;;;;;20749:14:81::1;;;20741:40;;;::::0;-1:-1:-1;;;20741:40:81;;7697:2:139;20741:40:81::1;::::0;::::1;7679:21:139::0;7736:2;7716:18;;;7709:30;-1:-1:-1;;;7755:18:139;;;7748:43;7808:18;;20741:40:81::1;7669:163:139::0;20741:40:81::1;20808:1;20799:6;:10;20791:33;;;;-1:-1:-1::0;;;20791:33:81::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20838:17:81;::::1;;::::0;;;:10:::1;:17;::::0;;;;;20834:97:::1;;20874:57;20905:5;20912:1;20915:15;20874:30;:57::i;:::-;21030:28;21052:5;21030:21;:28::i;:::-;-1:-1:-1::0;;;;;20955:27:81;::::1;;::::0;;;:20:::1;:27;::::0;;;;;;;20996:14:::1;:21:::0;;;;;20941:117;;;;;;;;21092:12:::1;:19:::0;;;;;21073:15:::1;:38;21069:516;;21127:59;21145:5;21152:10;21172:4;21179:6;21127:17;:59::i;:::-;21220:17;872:6;21220::::0;:17:::1;:::i;:::-;-1:-1:-1::0;;;;;21200:17:81;::::1;;::::0;;;:10:::1;:17;::::0;;;;:37;21069:516:::1;;;-1:-1:-1::0;;;;;21289:19:81;::::1;21268:18;21289:19:::0;;;:12:::1;:19;::::0;;;;;:37:::1;::::0;21311:15:::1;::::0;21289:37:::1;:::i;:::-;-1:-1:-1::0;;;;;21369:17:81;::::1;21340:13;21369:17:::0;;;:10:::1;:17;::::0;;;;;21268:58;;-1:-1:-1;21340:13:81;21356:30:::1;::::0;21268:58;21356:30:::1;:::i;:::-;21340:46;;21417:5;21408:6;:14;21400:40;;;::::0;-1:-1:-1;;;21400:40:81;;8383:2:139;21400:40:81::1;::::0;::::1;8365:21:139::0;8422:2;8402:18;;;8395:30;-1:-1:-1;;;8441:18:139;;;8434:43;8494:18;;21400:40:81::1;8355:163:139::0;21400:40:81::1;21454:59;21472:5;21479:10;21499:4;21506:6;21454:17;:59::i;:::-;872:6;21548:14;21557:5:::0;21548:6;:14:::1;:::i;:::-;21547:27;;;;:::i;:::-;-1:-1:-1::0;;;;;21527:17:81;::::1;;::::0;;;:10:::1;:17;::::0;;;;:47;-1:-1:-1;;21069:516:81::1;-1:-1:-1::0;;;;;21602:17:81;::::1;21622:1;21602:17:::0;;;:10:::1;:17;::::0;;;;;21594:48:::1;;;::::0;-1:-1:-1;;;21594:48:81;;8725:2:139;21594:48:81::1;::::0;::::1;8707:21:139::0;8764:2;8744:18;;;8737:30;-1:-1:-1;;;8783:18:139;;;8776:44;8837:18;;21594:48:81::1;8697:164:139::0;21594:48:81::1;21670:38;::::0;-1:-1:-1;;;21670:38:81;;21652:15:::1;::::0;-1:-1:-1;;;;;21670:23:81;::::1;::::0;::::1;::::0;:38:::1;::::0;21702:4:::1;::::0;21670:38:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21652:56:::0;-1:-1:-1;21760:18:81::1;872:6;21652:56:::0;21760:18:::1;:::i;:::-;-1:-1:-1::0;;;;;21739:17:81;::::1;;::::0;;;:10:::1;:17;::::0;;;;;:39:::1;;21718:110;;;::::0;-1:-1:-1;;;21718:110:81;;7344:2:139;21718:110:81::1;::::0;::::1;7326:21:139::0;7383:2;7363:18;;;7356:30;-1:-1:-1;;;7402:18:139;;;7395:54;7466:18;;21718:110:81::1;7316:174:139::0;21718:110:81::1;21860:26;872:6;21860:15;:26;:::i;:::-;-1:-1:-1::0;;;;;21838:19:81;::::1;;::::0;;;:12:::1;:19;::::0;;;;;;;:48;;;;21901:8:::1;:15:::0;;;;::::1;;21896:102;;-1:-1:-1::0;;;;;21932:15:81;::::1;;::::0;;;:8:::1;:15;::::0;;;;:22;;-1:-1:-1;;21932:22:81::1;21950:4;21932:22:::0;;::::1;::::0;;;21968:7:::1;:19:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;21968:19:81::1;::::0;;::::1;::::0;;21896:102:::1;22013:39;::::0;9688:25:139;;;-1:-1:-1;;;;;22013:39:81;::::1;::::0;22026:10:::1;::::0;22013:39:::1;::::0;9676:2:139;9661:18;22013:39:81::1;;;;;;;-1:-1:-1::0;;2606:1:81;2594:9;:13;-1:-1:-1;20621:1438:81:o;17447:116::-;17511:35;;-1:-1:-1;;;17511:35:81;;17503:53;;-1:-1:-1;;;;;17518:5:81;17511:23;;;;:35;;17535:10;;17511:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17548:7;17503;:53::i;:::-;17447:116;:::o;10909:665::-;-1:-1:-1;;;;;11009:17:81;;10971:7;11009:17;;;:8;:17;;;;;;;;;11055:9;:18;;;;;;10971:7;11120:3;11103:13;11055:18;11114:2;11103:13;:::i;:::-;11102:21;;;;:::i;:::-;11083:40;;11133:17;11164:15;11189:8;-1:-1:-1;;;;;11189:15:81;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11182:37:81;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11164:57;;11270:8;-1:-1:-1;;;;;11270:15:81;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11259:37:81;;11297:8;11259:47;;;;;;;;;;;;;9688:25:139;;9676:2;9661:18;;9643:76;11259:47:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11248:58:81;:7;-1:-1:-1;;;;;11248:58:81;;:85;;;;;11332:1;11322:7;:11;11248:85;11231:278;;;11381:8;-1:-1:-1;;;;;11381:15:81;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11370:42:81;;11413:8;11370:52;;;;;;;;;;;;;9688:25:139;;9676:2;9661:18;;9643:76;11370:52:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11358:64;;11495:3;11478:7;11465:9;11451:11;;:23;;;;:::i;:::-;11450:35;;;;:::i;:::-;11449:42;;11489:2;11449:42;:::i;:::-;11448:50;;;;:::i;:::-;11436:62;;11231:278;11525:42;11535:20;11546:9;11535:8;:20;:::i;:::-;11558:8;11525;:42::i;:::-;11518:49;10909:665;-1:-1:-1;;;;;;;10909:665:81:o;17569:1387::-;2521:9;;2534:1;2521:14;2513:37;;;;-1:-1:-1;;;2513:37:81;;;;;;;:::i;:::-;2572:1;2560:9;:13;;;;17641:8:::1;-1:-1:-1::0;;;;;17641:24:81::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17694:1;17685:6;:10;17677:33;;;;-1:-1:-1::0;;;17677:33:81::1;;;;;;;:::i;:::-;17721:59;17739:5;17746:10;17766:4;17773:6;17721:17;:59::i;:::-;17805:6;17790:11;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;17831:10:81::1;17821:21;::::0;;;:9:::1;:21;::::0;;;;:31;;17846:6;;17821:21;:31:::1;::::0;17846:6;;17821:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;17867:11:81;;17863:557:::1;;17969:10;-1:-1:-1::0;;;;;17919:60:81::1;17930:8;-1:-1:-1::0;;;;;17930:15:81::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17919:37:81::1;;17957:7;17919:46;;;;;;;;;;;;;9688:25:139::0;;9676:2;9661:18;;9643:76;17919:46:81::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17919:60:81::1;;17894:128;;;::::0;-1:-1:-1;;;17894:128:81;;9068:2:139;17894:128:81::1;::::0;::::1;9050:21:139::0;9107:1;9087:18;;;9080:29;-1:-1:-1;;;9125:18:139;;;9118:39;9174:18;;17894:128:81::1;9040:158:139::0;17894:128:81::1;18049:10;18040:20;::::0;;;:8:::1;:20;::::0;;;;;18036:244:::1;;18094:10;18085:20;::::0;;;:8:::1;:20;::::0;;;;;;;;:30;;;18145:21;;-1:-1:-1;;;18145:21:81;;;;:8:::1;-1:-1:-1::0;;;;;18145:19:81::1;::::0;::::1;::::0;:21:::1;::::0;;::::1;::::0;18085:20;;18145:21;;;;;:19;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18133:132;::::0;-1:-1:-1;;;18133:132:81;;::::1;::::0;::::1;9898:25:139::0;;;18237:10:81::1;9939:18:139::0;;;9932:60;-1:-1:-1;;;;;18133:53:81;;;::::1;::::0;::::1;::::0;9871:18:139;;18133:132:81::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18036:244;18310:10;18301:20;::::0;;;:8:::1;:20;::::0;;;;;:31;::::1;18293:55;;;;-1:-1:-1::0;;;18293:55:81::1;;;;;;;:::i;:::-;17863:557;;;-1:-1:-1::0;18398:10:81::1;18389:20;::::0;;;:8:::1;:20;::::0;;;;;17863:557:::1;18472:10;18430:23;18456:27:::0;;;:15:::1;:27;::::0;;;;;18493:32;;18456:27;;;;18430:23;;18493:32:::1;::::0;18456:27;;18493:32:::1;:::i;:::-;::::0;;;-1:-1:-1;18553:26:81::1;::::0;-1:-1:-1;18568:10:81::1;18553:14;:26::i;:::-;18605:10;18589:27;::::0;;;:15:::1;:27;::::0;;;;:45;;;18644:32;;18535:44;;-1:-1:-1;18535:44:81;;18589:27;;18644:32:::1;::::0;18535:44;;18644:32:::1;:::i;:::-;::::0;;;-1:-1:-1;18687:45:81::1;::::0;-1:-1:-1;18704:10:81::1;18716:15:::0;18687:16:::1;:45::i;:::-;18742:24;:22;:24::i;:::-;18789:8;-1:-1:-1::0;;;;;18789:19:81::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18777:46:81::1;;18837:7;18858:10;18882:6;18777:121;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18913:36:81::1;::::0;;10527:25:139;;;10583:2;10568:18;;10561:34;;;18921:10:81::1;::::0;-1:-1:-1;18913:36:81::1;::::0;-1:-1:-1;10500:18:139;18913:36:81::1;;;;;;;;-1:-1:-1::0;;2606:1:81;2594:9;:13;-1:-1:-1;17569:1387:81:o;10476:427::-;10536:7;10559:13;;10555:83;;-1:-1:-1;;;;;;10600:27:81;;;;;:20;:27;;;;;;;10476:427::o;10555:83::-;10882:13;;;-1:-1:-1;;;;;10833:17:81;;;;:10;:17;;;;;;;;;10770:14;:21;;;;;;10793:12;:19;;;;;;10882:13;;958:6;;10833:17;;10761:52;;:8;:52::i;:::-;10711:31;10736:5;10711:24;:31::i;:::-;:102;;;;:::i;:::-;10710:140;;;;:::i;:::-;:168;;;;:::i;:::-;10709:186;;;;:::i;:::-;-1:-1:-1;;;;;10666:27:81;;;;;;:20;:27;;;;;;:230;;;;:::i;1539:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1539:24:81;;-1:-1:-1;1539:24:81;:::o;5271:1560::-;-1:-1:-1;;;;;5437:35:81;;5382:7;5437:35;;;:28;:35;;;;;;5382:7;;5486:17;5482:61;;5527:1;5530;5519:13;;;;;;;5482:61;-1:-1:-1;;;;;5613:32:81;;;;;;:25;:32;;;;;5689:9;;5646:16;5661:1;5646:12;:16;:::i;:::-;5613:50;;;;;;;;;;;:60;;;:85;5596:341;;-1:-1:-1;;;;;5748:32:81;;;;;;:25;:32;;;;;;5781:16;5796:1;5781:12;:16;:::i;:::-;5748:50;;;;;;;;;;;:86;;;5852:25;:32;5878:5;-1:-1:-1;;;;;5852:32:81;-1:-1:-1;;;;;5852:32:81;;;;;;;;;;;;:50;5900:1;5885:12;:16;;;;:::i;:::-;5852:50;;;;;;;;;;;:60;;;5723:203;;;;;;;5596:341;-1:-1:-1;;;;;5995:32:81;;;;;;:25;:32;;;;;;;;:35;;;;;;;;:45;:57;-1:-1:-1;5991:101:81;;;6076:1;6079;6068:13;;;;;;;5991:101;6102:13;;6145:16;6160:1;6145:12;:16;:::i;:::-;6129:32;;6171:496;6186:5;6178;:13;6171:496;;;6207:14;6250:1;6233:13;6241:5;6233;:13;:::i;:::-;6232:19;;;;:::i;:::-;6224:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;6329:62:81;;6292:34;6329:62;;;:25;:62;;;;;;;;:70;;;;;;;;;6292:107;;;;;;;;;;;;;;;;;;;;;;;;;6207:44;;-1:-1:-1;6292:107:81;6417:25;;6413:244;;;6470:17;;;;6489:12;;6470:17;;-1:-1:-1;6489:12:81;-1:-1:-1;6462:40:81;;-1:-1:-1;;;;6462:40:81;6413:244;6527:12;;:24;-1:-1:-1;6523:134:81;;;6579:6;6571:14;;6523:134;;;6632:10;6641:1;6632:6;:10;:::i;:::-;6624:18;;6523:134;6171:496;;;;;-1:-1:-1;;;;;;6697:32:81;;;;;;:25;:32;;;;;;;;:39;;;;;;;:54;;;;6765:49;;6697:54;;-1:-1:-1;6765:49:81;-1:-1:-1;;5271:1560:81;;;;;;:::o;19272:1083::-;2521:9;;2534:1;2521:14;2513:37;;;;-1:-1:-1;;;2513:37:81;;;;;;;:::i;:::-;2572:1;2560:9;:13;;;;19365:6:::1;19350:11;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;19391:10:81::1;19381:21;::::0;;;:9:::1;:21;::::0;;;;:31;;19406:6;;19381:21;:31:::1;::::0;19406:6;;19381:31:::1;:::i;:::-;::::0;;;-1:-1:-1;19422:40:81::1;::::0;-1:-1:-1;19436:5:81::1;19443:10;19455:6:::0;19422:13:::1;:40::i;:::-;19477:11:::0;;19473:332:::1;;19532:10;19523:20;::::0;;;:8:::1;:20;::::0;;;;;19512:31;::::1;19504:55;;;;-1:-1:-1::0;;;19504:55:81::1;;;;;;;:::i;:::-;19582:10;19596:1;19573:20:::0;;;:8:::1;:20;::::0;;;;;;;:24;;;;19623:21;;-1:-1:-1;;;19623:21:81;;;;:8:::1;-1:-1:-1::0;;;;;19623:19:81::1;::::0;::::1;::::0;:21:::1;::::0;;::::1;::::0;19573:20;;19623:21;;;;;:19;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19611:122;::::0;-1:-1:-1;;;19611:122:81;;::::1;::::0;::::1;9898:25:139::0;;;19709:10:81::1;9939:18:139::0;;;9932:60;-1:-1:-1;;;;;19611:55:81;;;::::1;::::0;::::1;::::0;9871:18:139;;19611:122:81::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19473:332;;;-1:-1:-1::0;19783:10:81::1;19774:20;::::0;;;:8:::1;:20;::::0;;;;;19473:332:::1;19857:10;19815:23;19841:27:::0;;;:15:::1;:27;::::0;;;;;19878:32;;19841:27;;;;19815:23;;19878:32:::1;::::0;19841:27;;19878:32:::1;:::i;:::-;::::0;;;-1:-1:-1;19938:26:81::1;::::0;-1:-1:-1;19953:10:81::1;19938:14;:26::i;:::-;19990:10;19974:27;::::0;;;:15:::1;:27;::::0;;;;:45;;;20029:32;;19920:44;;-1:-1:-1;19920:44:81;;19974:27;;20029:32:::1;::::0;19920:44;;20029:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;20089:10:81::1;20101:27;::::0;;;:15:::1;:27;::::0;;;;;20072:57:::1;::::0;20089:10;20072:16:::1;:57::i;:::-;20139:24;:22;:24::i;:::-;20186:8;-1:-1:-1::0;;;;;20186:19:81::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20174:47:81::1;;20235:7;20256:10;20280:6;20174:122;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;20311:37:81::1;::::0;;10527:25:139;;;10583:2;10568:18;;10561:34;;;20320:10:81::1;::::0;-1:-1:-1;20311:37:81::1;::::0;-1:-1:-1;10500:18:139;20311:37:81::1;10482:119:139::0;413:105:47;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:47;;490:21;-1:-1:-1;413:105:47:o;13695:1885:81:-;-1:-1:-1;;;;;13833:21:81;;13775:7;13833:21;;;:14;:21;;;;;;;;;13881:20;:27;;;;;;13923:20;;13775:7;;13833:21;13881:27;13919:88;;13972:6;13980:15;;-1:-1:-1;13695:1885:81;-1:-1:-1;;13695:1885:81:o;13919:88::-;-1:-1:-1;;;;;14021:17:81;;;;;;:10;:17;;;;;;14017:85;;14067:6;14075:15;;-1:-1:-1;13695:1885:81;-1:-1:-1;;;13695:1885:81:o;14017:85::-;14112:19;14134:36;14154:15;14134:19;:36::i;:::-;14112:58;;14180:17;14223:1;14200:20;;:24;;;;:::i;:::-;14180:44;-1:-1:-1;14265:1:81;14239:23;14251:11;14180:44;14239:23;:::i;:::-;:27;14235:777;;;14299:11;14282:720;14316:13;14328:1;14316:9;:13;:::i;:::-;14312:1;:17;14282:720;;;14354:27;14384:20;;;:17;:20;;;;;;;;;14354:50;;;;;;;;;;;;;;;;;;;;;14426:14;14422:566;;14464:27;14494:17;14464:27;14512:5;:1;14516;14512:5;:::i;:::-;14494:24;;;;;;;;;;;14464:54;;;;;;;;;;;;;;;;;;;;;;;;;;;14541:15;14558:16;14578:227;14623:5;14654:3;:13;;;14693:3;:13;;;14732:3;:10;;;14768:15;14578:19;:227::i;:::-;14540:265;;-1:-1:-1;14540:265:81;-1:-1:-1;14827:17:81;14540:265;14827:17;;:::i;:::-;;;14866:55;14897:5;14904:6;14912:8;14866:30;:55::i;:::-;14961:8;-1:-1:-1;;;14422:566:81;-1:-1:-1;14331:3:81;;;;:::i;:::-;;;;14282:720;;;;14235:777;15022:26;15051:28;;;:17;:28;;;;;;;;;15022:57;;;;;;;;;;;;;;;;;;;;;15093:13;15089:442;;15123:15;15144:222;15181:5;15204:31;15229:5;15204:24;:31::i;:::-;15262:12;;15253:39;;15276:15;15253:8;:39::i;:::-;15310:2;:9;;;15337:15;15144:19;:222::i;:::-;-1:-1:-1;15122:244:81;-1:-1:-1;15380:17:81;15122:244;15380:17;;:::i;:::-;;;15411:62;15442:5;15449:6;15457:15;15411:30;:62::i;:::-;15505:15;15487:33;;15089:442;;-1:-1:-1;15549:6:81;;15557:15;;-1:-1:-1;13695:1885:81;;-1:-1:-1;;;;13695:1885:81:o;22065:442::-;22207:1;22187:5;-1:-1:-1;;;;;22187:17:81;;:21;22179:53;;;;-1:-1:-1;;;22179:53:81;;;;;;;:::i;:::-;22302:59;;;-1:-1:-1;;;;;4905:32:139;;;22302:59:81;;;4887:51:139;4954:18;;;;4947:34;;;22302:59:81;;;;;;;;;;4860:18:139;;;;22302:59:81;;;;;;;-1:-1:-1;;;;;22302:59:81;-1:-1:-1;;;22302:59:81;;;22278:93;;-1:-1:-1;;;;22278:10:81;;;;:93;;22302:59;22278:93;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22242:129;;;;22402:7;:57;;;;-1:-1:-1;22414:11:81;;:16;;:44;;;22445:4;22434:24;;;;;;;;;;;;:::i;:::-;22381:119;;;;-1:-1:-1;;;22381:119:81;;8039:2:139;22381:119:81;;;8021:21:139;8078:2;8058:18;;;8051:30;-1:-1:-1;;;8097:18:139;;;8090:45;8152:18;;22381:119:81;8011:165:139;22381:119:81;22065:442;;;;;:::o;6837:600::-;-1:-1:-1;;;;;6986:23:81;;6916:18;6986:23;;;:14;:23;;;;;;6937:15;;7037:17;;;;;:96;;-1:-1:-1;;;;;;7070:20:81;;;;;;:11;:20;;;;;7123:10;;7091:17;7107:1;7091:13;:17;:::i;:::-;7070:39;;;;;;;;;;;:49;;;:63;7037:96;7020:411;;;-1:-1:-1;;;;;7158:20:81;;;;;;:11;:20;;;;;7210:7;;7179:17;7195:1;7179:13;:17;:::i;:::-;7158:39;;;;;;;;;;;-1:-1:-1;7158:39:81;:49;;:59;7020:411;;;7286:77;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7248:20:81;;-1:-1:-1;7248:20:81;;;:11;:20;;;;;:35;;;;;;;;;:115;;;;;;;;;;;7403:17;;7269:13;;7403:17;:::i;:::-;-1:-1:-1;;;;;7377:23:81;;;;;;:14;:23;;;;;:43;7020:411;6837:600;;;;:::o;8151:574::-;8228:20;;8279:15;8322:17;;;;;:93;;-1:-1:-1;8405:10:81;8355:17;:36;8373:17;8389:1;8373:13;:17;:::i;:::-;8355:36;;;;;;;;;;;:46;;;:60;8322:93;8305:414;;;8486:13;;8440:17;:36;8474:1;8458:13;:17;;;;:::i;:::-;8440:36;;;;;;;;;;;-1:-1:-1;8440:36:81;:43;;:59;19048:218;;:::o;8305:414::-;8565:89;;;;;;;;;;;-1:-1:-1;8627:13:81;;8565:89;;;;;;;8530:32;;;:17;:32;;;;;:124;;;;;;;;;;;8691:17;;8548:13;;8691:17;:::i;:::-;8668:20;:40;8151:574;;:::o;11798:1280::-;-1:-1:-1;;;;;11952:21:81;;11894:7;11952:21;;;:14;:21;;;;;;;;;12000:20;:27;;;;;;12042:20;;11894:7;;11952:21;12000:27;12038:88;;12091:6;-1:-1:-1;12099:15:81;-1:-1:-1;12083:32:81;;12038:88;-1:-1:-1;;;;;12140:17:81;;;;;;:10;:17;;;;;;12136:85;;12186:6;-1:-1:-1;12194:15:81;;-1:-1:-1;12178:32:81;;-1:-1:-1;12178:32:81;12136:85;12231:19;12253:36;12273:15;12253:19;:36::i;:::-;12231:58;;12299:17;12319:43;12351:1;12328:20;;:24;;;;:::i;:::-;12354:7;12319:8;:43::i;:::-;12299:63;-1:-1:-1;12390:11:81;12373:656;12407:9;12403:1;:13;12373:656;;;12437:27;12467:20;;;:17;:20;;;;;;;;;12437:50;;;;;;;;;;;;;;;;;;;;;12505:14;12501:518;;12539:27;12569:17;12539:27;12587:5;:1;12591;12587:5;:::i;:::-;12569:24;;;;;;;;;;;12539:54;;;;;;;;;;;;;;;;;;;;;;;;;;;12612:15;12629:16;12649:203;12690:5;12717:3;:13;;;12752:3;:13;;;12787:3;:10;;;12819:15;12649:19;:203::i;:::-;12611:241;;-1:-1:-1;12611:241:81;-1:-1:-1;12870:17:81;12611:241;12870:17;;:::i;:::-;;;12905:55;12936:5;12943:6;12951:8;12905:30;:55::i;:::-;12996:8;-1:-1:-1;;;12501:518:81;-1:-1:-1;12418:3:81;;;;:::i;:::-;;;;12373:656;;;-1:-1:-1;13047:6:81;;13055:15;;-1:-1:-1;11798:1280:81;;-1:-1:-1;;;;;11798:1280:81:o;589:104:47:-;647:7;677:1;673;:5;:13;;685:1;673:13;;7443:702:81;-1:-1:-1;;;;;7606:35:81;;7582:21;7606:35;;;:28;:35;;;;;;7669:17;;;;;:119;;-1:-1:-1;;;;;;7702:32:81;;;;;;:25;:32;;;;;7779:9;;7735:17;7751:1;7735:13;:17;:::i;:::-;7702:51;;;;;;;;;;;:61;;;:86;7669:119;7652:487;;;-1:-1:-1;;;;;7813:32:81;;;;;;:25;:32;;;;;7899:6;;7846:17;7862:1;7846:13;:17;:::i;7652:487::-;8016:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7936:32:81;;-1:-1:-1;7936:32:81;;;:25;:32;;;;;:77;;;;;;;;;:123;;;;;;;;;;;8111:17;;7986:13;;8111:17;:::i;:::-;-1:-1:-1;;;;;8073:35:81;;;;;;:28;:35;;;;;:55;7443:702;;;;:::o;22513:560::-;22681:1;22661:5;-1:-1:-1;;;;;22661:17:81;;:21;22653:53;;;;-1:-1:-1;;;22653:53:81;;;;;;;:::i;:::-;22776:147;;;-1:-1:-1;;;;;4591:15:139;;;22776:147:81;;;4573:34:139;4643:15;;;4623:18;;;4616:43;4675:18;;;;4668:34;;;22776:147:81;;;;;;;;;;4508:18:139;;;;22776:147:81;;;;;;;-1:-1:-1;;;;;22776:147:81;-1:-1:-1;;;22776:147:81;;;22752:181;;-1:-1:-1;;;;22752:10:81;;;;:181;;22776:147;22752:181;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22716:217;;;;22964:7;:57;;;;-1:-1:-1;22976:11:81;;:16;;:44;;;23007:4;22996:24;;;;;;;;;;;;:::i;:::-;22943:123;;;;-1:-1:-1;;;22943:123:81;;6996:2:139;22943:123:81;;;6978:21:139;7035:2;7015:18;;;7008:30;-1:-1:-1;;;7054:18:139;;;7047:49;7113:18;;22943:123:81;6968:169:139;22943:123:81;22513:560;;;;;;:::o;13084:605::-;13277:7;13286;13305:15;13323:36;13332:10;13344:14;13323:8;:36::i;:::-;-1:-1:-1;;;;;13595:17:81;;;;;;:10;:17;;;;;;13305:54;;-1:-1:-1;13644:6:81;;958;;13450:125;13480:36;13489:10;13501:14;13480:8;:36::i;:::-;-1:-1:-1;;;;;13538:19:81;;;;;;:12;:19;;;;;;13450:8;:125::i;:::-;-1:-1:-1;;;;;13411:19:81;;;;;;:12;:19;;;;;;13393:38;;13402:7;;13393:8;:38::i;:::-;:182;;;;:::i;:::-;13392:220;;;;:::i;:::-;:248;;;;:::i;:::-;13391:259;;;;:::i;:::-;13369:313;13665:7;;-1:-1:-1;13084:605:81;-1:-1:-1;;;;;;13084:605:81:o;14:134:139:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:398::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:139;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;768:311;;;;;:::o;1084:1312::-;1177:6;1185;1238:2;1226:9;1217:7;1213:23;1209:32;1206:2;;;1259:6;1251;1244:22;1206:2;1303:9;1290:23;1322:31;1347:5;1322:31;:::i;:::-;1372:5;-1:-1:-1;1396:2:139;1434:18;;;1421:32;1472:18;1502:14;;;1499:2;;;1534:6;1526;1519:22;1499:2;1577:6;1566:9;1562:22;1552:32;;1622:7;1615:4;1611:2;1607:13;1603:27;1593:2;;1649:6;1641;1634:22;1593:2;1690;1677:16;1712:2;1708;1705:10;1702:2;;;1718:18;;:::i;:::-;1764:2;1761:1;1757:10;1796:2;1790:9;1859:2;1855:7;1850:2;1846;1842:11;1838:25;1830:6;1826:38;1914:6;1902:10;1899:22;1894:2;1882:10;1879:18;1876:46;1873:2;;;1925:18;;:::i;:::-;1961:2;1954:22;2011:18;;;2045:15;;;;-1:-1:-1;2080:11:139;;;2110;;;2106:20;;2103:33;-1:-1:-1;2100:2:139;;;2154:6;2146;2139:22;2100:2;2181:6;2172:15;;2196:169;2210:2;2207:1;2204:9;2196:169;;;2267:23;2286:3;2267:23;:::i;:::-;2255:36;;2228:1;2221:9;;;;;2311:12;;;;2343;;2196:169;;;2200:3;2384:6;2374:16;;;;;;;;1196:1200;;;;;:::o;2401:325::-;2469:6;2477;2530:2;2518:9;2509:7;2505:23;2501:32;2498:2;;;2551:6;2543;2536:22;2498:2;2595:9;2582:23;2614:31;2639:5;2614:31;:::i;:::-;2664:5;2716:2;2701:18;;;;2688:32;;-1:-1:-1;;;2488:238:139:o;2731:297::-;2798:6;2851:2;2839:9;2830:7;2826:23;2822:32;2819:2;;;2872:6;2864;2857:22;2819:2;2909:9;2903:16;2962:5;2955:13;2948:21;2941:5;2938:32;2928:2;;2989:6;2981;2974:22;3033:190;3092:6;3145:2;3133:9;3124:7;3120:23;3116:32;3113:2;;;3166:6;3158;3151:22;3113:2;-1:-1:-1;3194:23:139;;3103:120;-1:-1:-1;3103:120:139:o;3228:194::-;3298:6;3351:2;3339:9;3330:7;3326:23;3322:32;3319:2;;;3372:6;3364;3357:22;3319:2;-1:-1:-1;3400:16:139;;3309:113;-1:-1:-1;3309:113:139:o;3427:258::-;3495:6;3503;3556:2;3544:9;3535:7;3531:23;3527:32;3524:2;;;3577:6;3569;3562:22;3524:2;-1:-1:-1;;3605:23:139;;;3675:2;3660:18;;;3647:32;;-1:-1:-1;3514:171:139:o;3690:430::-;3819:3;3857:6;3851:13;3882:3;3894:129;3908:6;3905:1;3902:13;3894:129;;;4006:4;3990:14;;;3986:25;;3980:32;3967:11;;;3960:53;3923:12;3894:129;;;4041:6;4038:1;4035:13;4032:2;;;4076:3;4067:6;4062:3;4058:16;4051:29;4032:2;-1:-1:-1;4098:16:139;;;;;3827:293;-1:-1:-1;;3827:293:139:o;4125:203::-;-1:-1:-1;;;;;4289:32:139;;;;4271:51;;4259:2;4244:18;;4226:102::o;5411:343::-;5613:2;5595:21;;;5652:2;5632:18;;;5625:30;-1:-1:-1;;;5686:2:139;5671:18;;5664:49;5745:2;5730:18;;5585:169::o;5759:335::-;5961:2;5943:21;;;6000:2;5980:18;;;5973:30;-1:-1:-1;;;6034:2:139;6019:18;;6012:41;6085:2;6070:18;;5933:161::o;6099:334::-;6301:2;6283:21;;;6340:2;6320:18;;;6313:30;-1:-1:-1;;;6374:2:139;6359:18;;6352:40;6424:2;6409:18;;6273:160::o;9203:334::-;9405:2;9387:21;;;9444:2;9424:18;;;9417:30;-1:-1:-1;;;9478:2:139;9463:18;;9456:40;9528:2;9513:18;;9377:160::o;10003:345::-;10205:25;;;-1:-1:-1;;;;;10266:32:139;;;;10261:2;10246:18;;10239:60;10330:2;10315:18;;10308:34;10193:2;10178:18;;10160:188::o;10606:128::-;10646:3;10677:1;10673:6;10670:1;10667:13;10664:2;;;10683:18;;:::i;:::-;-1:-1:-1;10719:9:139;;10654:80::o;10739:217::-;10779:1;10805;10795:2;;-1:-1:-1;;;10830:31:139;;10884:4;10881:1;10874:15;10912:4;10837:1;10902:15;10795:2;-1:-1:-1;10941:9:139;;10785:171::o;10961:168::-;11001:7;11067:1;11063;11059:6;11055:14;11052:1;11049:21;11044:1;11037:9;11030:17;11026:45;11023:2;;;11074:18;;:::i;:::-;-1:-1:-1;11114:9:139;;11013:116::o;11134:125::-;11174:4;11202:1;11199;11196:8;11193:2;;;11207:18;;:::i;:::-;-1:-1:-1;11244:9:139;;11183:76::o;11264:135::-;11303:3;-1:-1:-1;;11324:17:139;;11321:2;;;11344:18;;:::i;:::-;-1:-1:-1;11391:1:139;11380:13;;11311:88::o;11404:127::-;11465:10;11460:3;11456:20;11453:1;11446:31;11496:4;11493:1;11486:15;11520:4;11517:1;11510:15;11536:127;11597:10;11592:3;11588:20;11585:1;11578:31;11628:4;11625:1;11618:15;11652:4;11649:1;11642:15;11668:131;-1:-1:-1;;;;;11743:31:139;;11733:42;;11723:2;;11789:1;11786;11779:12"},"methodIdentifiers":{"balanceOf(address)":"70a08231","batchRewardPerToken(address,uint256)":"5a45d052","checkpoints(address,uint256)":"0cdfebfa","deposit(uint256,uint256)":"e2bbb158","depositAll(uint256)":"c6f678bd","derivedBalance(address)":"d35e2544","derivedBalances(address)":"63fb415b","derivedSupply()":"d7da4bb0","earned(address,address)":"211dc32d","getPriorBalanceIndex(address,uint256)":"115c6f39","getPriorRewardPerToken(address,uint256)":"fd314098","getPriorSupplyIndex(uint256)":"76f4be36","getReward(address,address[])":"31279d3d","isReward(address)":"4d5ce038","lastEarn(address,address)":"a495e5b5","lastTimeRewardApplicable(address)":"638634ee","lastUpdateTime(address)":"2ce9aead","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","numCheckpoints(address)":"6fcfff45","periodFinish(address)":"da09d19d","registry()":"7b103999","rewardPerToken(address)":"f1229777","rewardPerTokenCheckpoints(address,uint256)":"01316ddf","rewardPerTokenNumCheckpoints(address)":"aa479652","rewardPerTokenStored(address)":"9ce43f90","rewardRate(address)":"221ca18c","rewards(uint256)":"f301af42","rewardsListLength()":"e6886396","stake()":"3a4b66f1","supplyCheckpoints(uint256)":"f7412baf","supplyNumCheckpoints()":"e8111a12","tokenIds(address)":"fc97a303","totalSupply()":"18160ddd","userRewardPerTokenStored(address,address)":"3ca068b6","withdraw(uint256)":"2e1a7d4d","withdrawAll()":"853828b6","withdrawToken(uint256,uint256)":"fdb483c7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stake\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed1\",\"type\":\"uint256\"}],\"name\":\"ClaimFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxRuns\",\"type\":\"uint256\"}],\"name\":\"batchRewardPerToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"checkpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOf\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"depositAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"derivedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"derivedBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"derivedSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorBalanceIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorRewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorSupplyIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isReward\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastEarn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"rewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardPerTokenCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerToken\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenNumCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsListLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"supplyCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyNumCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenIds\",\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userRewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getPriorBalanceIndex(address,uint256)\":{\"details\":\"Block number must be a finalized block or else this function will revert to prevent misinformation.\",\"params\":{\"account\":\"The address of the account to check\",\"timestamp\":\"The timestamp to get the balance at\"},\"returns\":{\"_0\":\"The balance the account had as of the given block\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"checkpoints(address,uint256)\":{\"notice\":\"A record of balance checkpoints for each account, by index\"},\"getPriorBalanceIndex(address,uint256)\":{\"notice\":\"Determine the prior balance for an account as of a block number\"},\"numCheckpoints(address)\":{\"notice\":\"The number of checkpoints for each account\"},\"rewardPerTokenCheckpoints(address,uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"rewardPerTokenNumCheckpoints(address)\":{\"notice\":\"The number of checkpoints for each token\"},\"supplyCheckpoints(uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"supplyNumCheckpoints()\":{\"notice\":\"The number of checkpoints\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/BaseGaugeV1.sol\":\"BaseGaugeV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/gauges/BaseGaugeV1.sol\":{\"keccak256\":\"0x68e0aa400395ae588c2bb51035803b493c2f00450d690d2bb7f6f60deb2d7812\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb1e436c988e661fc0e575e6667ff553c63823964854eb40ce5cafd5ff25f76\",\"dweb:/ipfs/QmdJaUvy6QrU2Hb2ZU2v2oCkcdDLM5VXaCDjMeJbBE9ecX\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeV1.sol\":{\"keccak256\":\"0x5ee0b8a26d1372bf24788db7afb195a44d852862c3f1d8380eff293d9365299e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bfae30ec25b55f39d4056a76c5afab9b2ade48561173b7594498239a9286f9f\",\"dweb:/ipfs/QmU8eyZsLGCe3XtjSqyubGjbtEQsvDpfTedtSohFq9pYz1\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/gauges/BaseGaugeV1Factory.sol":{"BaseV1GaugeFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_gauge","type":"address"},{"indexed":false,"internalType":"address","name":"_pool","type":"address"},{"indexed":false,"internalType":"address","name":"_bribe","type":"address"}],"name":"GaugeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_bribe","type":"address"},{"internalType":"address","name":"_registry","type":"address"}],"name":"createGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506135f3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631c48e0fa14610030575b600080fd5b61004361003e366004610124565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b6000808483604051610070906100fb565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156100a3573d6000803e3d6000fd5b50604080516001600160a01b038381168252888116602083015287168183015290519192507f9b8203efe7fe42185a7755b0510f87c8b693971d6a7c22520aaf683e6b124261919081900360600190a1949350505050565b6134578061016783390190565b80356001600160a01b038116811461011f57600080fd5b919050565b600080600060608486031215610138578283fd5b61014184610108565b925061014f60208501610108565b915061015d60408501610108565b9050925092509256fe60c060405269010f0cf064dd5920000060075560016014553480156200002457600080fd5b506040516200345738038062003457833981016040819052620000479162000083565b6001600160601b0319606092831b811660a052911b16608052620000ba565b80516001600160a01b03811681146200007e57600080fd5b919050565b6000806040838503121562000096578182fd5b620000a18362000066565b9150620000b16020840162000066565b90509250929050565b60805160601c60a05160601c61331662000141600039600081816103b30152818161114e0152818161172801528181611c1501526121a70152600081816104ea01528181610ad101528181610b5f01528181610c59015281816111d10152818161158c01528181611b7f01528181611d1901528181611e40015261202f01526133166000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806376f4be3611610146578063c4bf0220116100c3578063e688639611610087578063e688639614610622578063e8111a121461062a578063f122977714610633578063f301af4214610646578063f7412baf14610659578063fd3140981461068057600080fd5b8063c4bf0220146105cb578063d35e2544146105de578063d7da4bb0146105f1578063da09d19d146105fa578063de5f62681461061a57600080fd5b8063a495e5b51161010a578063a495e5b514610547578063aa47965214610572578063b2e0df9614610592578063b66503cf146105a5578063b6b55f25146105b857600080fd5b806376f4be36146104d25780637b103999146104e5578063853828b61461050c57806399bcc052146105145780639ce43f901461052757600080fd5b80633a4b66f1116101d4578063638634ee11610198578063638634ee1461045657806363fb415b1461046957806369db8b27146104895780636fcfff451461049257806370a08231146104b257600080fd5b80633a4b66f1146103ae5780633ca068b6146103e25780634d5ce0381461040d57806350baa622146104305780635a45d0521461044357600080fd5b8063221ca18c1161021b578063221ca18c146103135780632ce9aead146103335780632e1a7d4d1461035357806331279d3d14610368578063367034611461037b57600080fd5b806301316ddf146102585780630cdfebfa146102a4578063115c6f39146102d657806318160ddd146102f7578063211dc32d14610300575b600080fd5b61028a610266366004613040565b60126020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61028a6102b2366004613040565b600e6020908152600092835260408084209091529082529020805460019091015482565b6102e96102e4366004613040565b610693565b60405190815260200161029b565b6102e9600a5481565b6102e961030e366004612e9d565b610800565b6102e9610321366004612e65565b60036020526000908152604090205481565b6102e9610341366004612e65565b60056020526000908152604090205481565b61036661036136600461308b565b610a90565b005b610366610376366004612ed5565b610a9c565b61039e610389366004612e65565b60026020526000908152604090205460ff1681565b604051901515815260200161029b565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b60405161029b91906130d7565b6102e96103f0366004612e9d565b600960209081526000928352604080842090915290825290205481565b61039e61041b366004612e65565b600d6020526000908152604090205460ff1681565b61036661043e36600461308b565b6110e3565b610366610451366004613040565b611370565b6102e9610464366004612e65565b6113a8565b6102e9610477366004612e65565b60016020526000908152604090205481565b6102e960075481565b6102e96104a0366004612e65565b600f6020526000908152604090205481565b6102e96104c0366004612e65565b600b6020526000908152604090205481565b6102e96104e036600461308b565b6113cc565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b6103666114fe565b6102e9610522366004612e65565b611519565b6102e9610535366004612e65565b60066020526000908152604090205481565b6102e9610555366004612e9d565b600860209081526000928352604080842090915290825290205481565b6102e9610580366004612e65565b60136020526000908152604090205481565b6103666105a036600461308b565b61158a565b6103666105b3366004613040565b6116fc565b6103666105c636600461308b565b611b53565b6103666105d9366004612f9e565b611e3e565b6102e96105ec366004612e65565b611ff8565b6102e960005481565b6102e9610608366004612e65565b60046020526000908152604090205481565b61036661218c565b600c546102e9565b6102e960115481565b6102e9610641366004612e65565b61222c565b6103d561065436600461308b565b6122e8565b61028a61066736600461308b565b6010602052600090815260409020805460019091015482565b61028a61068e366004613040565b612312565b6001600160a01b0382166000908152600f6020526040812054806106bb5760009150506107fa565b6001600160a01b0384166000908152600e6020526040812084916106e0600185613241565b8152602001908152602001600020600001541161070a57610702600182613241565b9150506107fa565b6001600160a01b0384166000908152600e6020908152604080832083805290915290205483101561073f5760009150506107fa565b60008061074d600184613241565b90505b818111156107f557600060026107668484613241565b6107709190613202565b61077a9083613241565b6001600160a01b0388166000908152600e602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107cf575093506107fa92505050565b80518711156107e0578193506107ee565b6107eb600183613241565b92505b5050610750565b509150505b92915050565b6001600160a01b03808316600081815260086020908152604080832094861683529381528382205492825260128152838220828052905291822054829161084691612531565b6001600160a01b0384166000908152600f60205260409020549091506108705760009150506107fa565b600061087c8483610693565b6001600160a01b0385166000908152600f6020526040812054919250906108a590600190613241565b9050600060016108b58484613241565b11156109c457825b6108c8600184613241565b8110156109c2576001600160a01b0387166000818152600e60208181526040808420868552808352818520825180840190935280548352600190810154838501529585529290915292829061091e9086906131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600061095d8b8460000151612312565b50905060006109708c8460000151612312565b509050670de0b6b3a76400006109868383613241565b85602001516109959190613222565b61099f9190613202565b6109a990876131ea565b95505050505080806109ba90613284565b9150506108bd565b505b6001600160a01b0386166000908152600e60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610a0e908a90612312565b506001600160a01b03808b166000908152600960209081526040808320938d1683529290522054909150670de0b6b3a764000090610a4d908390612531565b610a568b61222c565b610a609190613241565b8360200151610a6f9190613222565b610a799190613202565b610a8390846131ea565b9998505050505050505050565b610a99816110e3565b50565b601454600114610ac75760405162461bcd60e51b8152600401610abe9061314b565b60405180910390fd5b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2a57600080fd5b505af1158015610b3e573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610c0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee9190612e81565b6001600160a01b0316336001600160a01b0316145b610c4f5760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610abe565b60016014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612e81565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610d1391906130d7565b600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050600260145550600090505b815181101561103d57610d87828281518110610d7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612548565b60066000858581518110610dab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060056000878781518110610df957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e62838381518110610e5457634e487b7160e01b600052603260045260246000fd5b602002602001015185610800565b90504260086000858581518110610e8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060066000848481518110610efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460096000858581518110610f4957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610fb657610fb6838381518110610fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151858361272b565b828281518110610fd657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161102291815260200190565b60405180910390a3508061103581613284565b915050610d4e565b506001600160a01b038216600090815260016020526040812054815490918291819061106a908490613241565b90915550611079905083611ff8565b6001600160a01b03841660009081526001602052604081208290558054919250829181906110a89084906131ea565b90915550506001600160a01b0383166000908152600160205260409020546110d190849061285b565b6110d9612966565b5050600160145550565b6014546001146111055760405162461bcd60e51b8152600401610abe9061314b565b600260148190555080600a600082825461111f9190613241565b9091555050336000908152600b602052604081208054839290611143908490613241565b9091555061117490507f0000000000000000000000000000000000000000000000000000000000000000338361272b565b336000908152600b6020526040902054811480156111a157503360009081526002602052604090205460ff165b156112b25733600090815260026020908152604091829020805460ff1916905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190612e81565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b815260040161127f91906130d7565b600060405180830381600087803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b3360009081526001602052604081205481549091829181906112d5908490613241565b909155506112e4905033611ff8565b33600090815260016020526040812082905580549192508291819061130a9084906131ea565b909155505033600081815260016020526040902054611329919061285b565b611331612966565b60405182815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906020015b60405180910390a250506001601455565b61137a8282612a09565b6001600160a01b03909316600090815260066020908152604080832060059092529091209390935590915550565b6001600160a01b0381166000908152600460205260408120546107fa904290612b68565b601154600090806113e05750600092915050565b82601060006113f0600185613241565b8152602001908152602001600020600001541161141957611412600182613241565b9392505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01548310156114545750600092915050565b600080611462600184613241565b90505b818111156114f6576000600261147b8484613241565b6114859190613202565b61148f9083613241565b6000818152601060209081526040918290208251808401909352805480845260019091015491830191909152919250908714156114d0575095945050505050565b80518711156114e1578193506114ef565b6114ec600183613241565b92505b5050611465565b509392505050565b336000908152600b602052604090205461151790610a90565b565b6001600160a01b038116600090815260046020526040812054421061154057506000919050565b6001600160a01b038216600090815260046020526040812054611564904290613241565b6001600160a01b0384166000908152600360205260409020549091506114129082613222565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561165357600080fd5b505afa158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168b9190612e81565b6001600160a01b0316336001600160a01b0316146116bb5760405162461bcd60e51b8152600401610abe9061316f565b60075460408051918252602082018390527fd4e4efcfcf51e1a8c6521aadc7b9b28c60ef879531e81752c4286e1fa644ef29910160405180910390a1600755565b60145460011461171e5760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156117985760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610abe565b600081116117b85760405162461bcd60e51b8152600401610abe90613195565b6001600160a01b0382166000908152600360205260409020546117e1576117e182600042612b77565b6117ea82612548565b6001600160a01b03841660009081526006602090815260408083206005835281842094909455939092556004909152205442106118585761182d82333084612c66565b61183a62093a8082613202565b6001600160a01b038316600090815260036020526040902055611924565b6001600160a01b03821660009081526004602052604081205461187c904290613241565b6001600160a01b038416600090815260036020526040812054919250906118a39083613222565b90508083116118e45760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610abe565b6118f084333086612c66565b62093a806118fe82856131ea565b6119089190613202565b6001600160a01b03851660009081526003602052604090205550505b6001600160a01b03821660009081526003602052604090205461197a5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610abe565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906119a99030906004016130d7565b60206040518083038186803b1580156119c157600080fd5b505afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906130a3565b9050611a0862093a8082613202565b6001600160a01b0384166000908152600360205260409020541115611a6a5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610abe565b611a7762093a80426131ea565b6001600160a01b038416600090815260046020908152604080832093909355600d9052205460ff16611b09576001600160a01b0383166000818152600d60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160145550565b601454600114611b755760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b5050505060008111611c105760405162461bcd60e51b8152600401610abe90613195565b611c3c7f0000000000000000000000000000000000000000000000000000000000000000333084612c66565b80600a6000828254611c4e91906131ea565b9091555050336000908152600b602052604081208054839290611c729084906131ea565b9091555050336000908152600160205260408120548154909182918190611c9a908490613241565b90915550611ca9905033611ff8565b336000908152600160205260408120829055805491925082918190611ccf9084906131ea565b90915550503360009081526002602052604090205460ff16611dfa5733600090815260026020908152604091829020805460ff1916600117905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611d6457600080fd5b505afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190612e81565b6001600160a01b03166397a302f7336040518263ffffffff1660e01b8152600401611dc791906130d7565b600060405180830381600087803b158015611de157600080fd5b505af1158015611df5573d6000803e3d6000fd5b505050505b611e04338261285b565b611e0c612966565b60405182815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200161135f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611e9757600080fd5b505afa158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b158015611f0757600080fd5b505afa158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612e81565b6001600160a01b0316336001600160a01b031614611f6f5760405162461bcd60e51b8152600401610abe9061316f565b600080836001600160a01b031683604051611f8a91906130bb565b6000604051808303816000865af19150503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b5091509150818190611ff15760405162461bcd60e51b8152600401610abe91906130eb565b5050505050565b6001600160a01b0381166000908152600b602052604081205481606461201f836014613222565b6120299190613202565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561208657600080fd5b505afa15801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be9190612e81565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016120e991906130d7565b60206040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213991906130a3565b905060006064600754838661214e9190613222565b612159906050613222565b6121639190613202565b61216d9190613202565b905061218261217c82856131ea565b85612b68565b9695505050505050565b6040516370a0823160e01b8152611517906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906121dc9033906004016130d7565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906130a3565b6000805461225057506001600160a01b031660009081526006602052604090205490565b600080546001600160a01b038416825260036020908152604080842054600583528185205460049093529320549192670de0b6b3a764000092909161229491612b68565b61229d866113a8565b6122a79190613241565b6122b19190613222565b6122bb9190613222565b6122c59190613202565b6001600160a01b0383166000908152600660205260409020546107fa91906131ea565b600c81815481106122f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526013602052604081205481908061233f57600080925092505061252a565b6001600160a01b03851660009081526012602052604081208591612364600185613241565b81526020019081526020016000206000015411612401576001600160a01b03851660009081526012602052604081209061239f600184613241565b81526020019081526020016000206001015460126000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846123e59190613241565b815260200190815260200160002060000154925092505061252a565b6001600160a01b038516600090815260126020908152604080832083805290915290205484101561243957600080925092505061252a565b600080612447600184613241565b90505b818111156124f957600060026124608484613241565b61246a9190613202565b6124749083613241565b6001600160a01b03891660009081526012602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156124d35760208101519051909650945061252a9350505050565b80518811156124e4578193506124f2565b6124ef600183613241565b92505b505061244a565b506001600160a01b038616600090815260126020908152604080832093835292905220600181015490549093509150505b9250929050565b6000818310156125415781611412565b5090919050565b6001600160a01b0381166000908152600560209081526040808320546006909252822054601154839291906125805794909350915050565b6001600160a01b0385166000908152600360205260409020546125a7579442945092505050565b60006125b2836113cc565b9050600060016011546125c59190613241565b905060016125d38383613241565b11156126ab57815b6125e6600183613241565b8110156126a957600081815260106020908152604091829020825180840190935280548352600101549082018190521561269657600060108161262a8560016131ea565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806126758c8460000151866000015187602001518d612daa565b909250905061268482896131ea565b97506126918c8983612b77565b975050505b50806126a181613284565b9150506125db565b505b600081815260106020908152604091829020825180840190935280548352600101549082018190521561271d5760006126fe896126e78b6113a8565b84516126f3908a612531565b85602001518a612daa565b50905061270b81866131ea565b9450612718898642612b77565b429550505b509196929550919350505050565b6000836001600160a01b03163b116127555760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916127b191906130bb565b6000604051808303816000865af19150503d80600081146127ee576040519150601f19603f3d011682016040523d82523d6000602084013e6127f3565b606091505b509150915081801561281d57508051158061281d57508080602001905181019061281d919061306b565b611ff15760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610abe565b6001600160a01b0382166000908152600f6020526040902054429080158015906128b957506001600160a01b0384166000908152600e6020526040812083916128a5600185613241565b815260200190815260200160002060000154145b156128fc576001600160a01b0384166000908152600e6020526040812084916128e3600185613241565b8152602081019190915260400160002060010155612960565b60408051808201825283815260208082018681526001600160a01b0388166000908152600e83528481208682529092529290209051815590516001918201556129469082906131ea565b6001600160a01b0385166000908152600f60205260409020555b50505050565b60115442811580159061299857508060106000612984600186613241565b815260200190815260200160002060000154145b156129c957600054601060006001856129b19190613241565b81526020810191909152604001600020600101555050565b60408051808201825282815260008054602080840191825286835260109052929020905181559051600191820155612a029083906131ea565b6011555050565b6001600160a01b038216600090815260056020908152604080832054600690925282205460115483929190612a41579250905061252a565b6001600160a01b038616600090815260036020526040902054612a6a57925042915061252a9050565b6000612a75836113cc565b90506000612a916001601154612a8b9190613241565b88612b68565b9050815b81811015612b59576000818152601060209081526040918290208251808401909352805483526001015490820181905215612b46576000601081612ada8560016131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612b258d8460000151866000015187602001518d612daa565b9092509050612b3482896131ea565b9750612b418d8983612b77565b975050505b5080612b5181613284565b915050612a95565b50919792965091945050505050565b60008183106125415781611412565b6001600160a01b0383166000908152601360205260409020548015801590612bd357506001600160a01b03841660009081526012602052604081208391612bbf600185613241565b815260200190815260200160002060000154145b15612bfd576001600160a01b038416600090815260126020526040812084916128e3600185613241565b60408051808201825283815260208082018681526001600160a01b038816600090815260128352848120868252909252929020905181559051600191820155612c479082906131ea565b6001600160a01b03851660009081526013602052604090205550505050565b6000846001600160a01b03163b11612c905760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612cf491906130bb565b6000604051808303816000865af19150503d8060008114612d31576040519150601f19603f3d011682016040523d82523d6000602084013e612d36565b606091505b5091509150818015612d60575080511580612d60575080806020019051810190612d60919061306b565b612da25760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610abe565b505050505050565b6000806000612db98785612531565b6001600160a01b0389166000908152600360205260409020549091508590670de0b6b3a764000090612e0c612dee8a89612531565b6001600160a01b038d16600090815260046020526040902054612b68565b6001600160a01b038c16600090815260046020526040902054612e30908690612b68565b612e3a9190613241565b612e449190613222565b612e4e9190613222565b612e589190613202565b9890975095505050505050565b600060208284031215612e76578081fd5b8135611412816132cb565b600060208284031215612e92578081fd5b8151611412816132cb565b60008060408385031215612eaf578081fd5b8235612eba816132cb565b91506020830135612eca816132cb565b809150509250929050565b60008060408385031215612ee7578182fd5b8235612ef2816132cb565b915060208381013567ffffffffffffffff80821115612f0f578384fd5b818601915086601f830112612f22578384fd5b813581811115612f3457612f346132b5565b8060051b9150612f458483016131b9565b8181528481019084860184860187018b1015612f5f578788fd5b8795505b83861015612f8d5780359450612f78856132cb565b84835260019590950194918601918601612f63565b508096505050505050509250929050565b60008060408385031215612fb0578182fd5b8235612fbb816132cb565b915060208381013567ffffffffffffffff80821115612fd8578384fd5b818601915086601f830112612feb578384fd5b813581811115612ffd57612ffd6132b5565b61300f601f8201601f191685016131b9565b91508082528784828501011115613024578485fd5b8084840185840137810190920192909252919491935090915050565b60008060408385031215613052578182fd5b823561305d816132cb565b946020939093013593505050565b60006020828403121561307c578081fd5b81518015158114611412578182fd5b60006020828403121561309c578081fd5b5035919050565b6000602082840312156130b4578081fd5b5051919050565b600082516130cd818460208701613258565b9190910192915050565b6001600160a01b0391909116815260200190565b602081526000825180602084015261310a816040850160208701613258565b601f01601f19169190910160400192915050565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156131e2576131e26132b5565b604052919050565b600082198211156131fd576131fd61329f565b500190565b60008261321d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561323c5761323c61329f565b500290565b6000828210156132535761325361329f565b500390565b60005b8381101561327357818101518382015260200161325b565b838111156129605750506000910152565b60006000198214156132985761329861329f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9957600080fdfea2646970667358221220ef76c7b05bc344d038c159b25b16152f542ef861b30603bd627f5c17846627b264736f6c63430008040033a264697066735822122032d8c731dc1f5d92aa1eb856931cd0c750ca9976f942d0f0e96cafc654ac5bab64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35F3 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1C48E0FA EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x124 JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x70 SWAP1 PUSH2 0xFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9B8203EFE7FE42185A7755B0510F87C8B693971D6A7C22520AAF683E6B124261 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3457 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x138 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x141 DUP5 PUSH2 0x108 JUMP JUMPDEST SWAP3 POP PUSH2 0x14F PUSH1 0x20 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP2 POP PUSH2 0x15D PUSH1 0x40 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH10 0x10F0CF064DD59200000 PUSH1 0x7 SSTORE PUSH1 0x1 PUSH1 0x14 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3457 CODESIZE SUB DUP1 PUSH3 0x3457 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x47 SWAP2 PUSH3 0x83 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH3 0xBA JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x96 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH3 0xA1 DUP4 PUSH3 0x66 JUMP JUMPDEST SWAP2 POP PUSH3 0xB1 PUSH1 0x20 DUP5 ADD PUSH3 0x66 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x3316 PUSH3 0x141 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3B3 ADD MSTORE DUP2 DUP2 PUSH2 0x114E ADD MSTORE DUP2 DUP2 PUSH2 0x1728 ADD MSTORE DUP2 DUP2 PUSH2 0x1C15 ADD MSTORE PUSH2 0x21A7 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4EA ADD MSTORE DUP2 DUP2 PUSH2 0xAD1 ADD MSTORE DUP2 DUP2 PUSH2 0xB5F ADD MSTORE DUP2 DUP2 PUSH2 0xC59 ADD MSTORE DUP2 DUP2 PUSH2 0x11D1 ADD MSTORE DUP2 DUP2 PUSH2 0x158C ADD MSTORE DUP2 DUP2 PUSH2 0x1B7F ADD MSTORE DUP2 DUP2 PUSH2 0x1D19 ADD MSTORE DUP2 DUP2 PUSH2 0x1E40 ADD MSTORE PUSH2 0x202F ADD MSTORE PUSH2 0x3316 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xC4BF0220 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x62A JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDE5F6268 EQ PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA495E5B5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x572 JUMPI DUP1 PUSH4 0xB2E0DF96 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x638634EE GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x221CA18C GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x300 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28A PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28A PUSH2 0x2B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x800 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0xA90 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x366 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x39E PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x3F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39E PUSH2 0x41B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x10E3 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x14FE JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1519 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x580 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x158A JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x1B53 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x5EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x218C JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x641 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x222C JUMP JUMPDEST PUSH2 0x3D5 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x6BB JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x6E0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x70A JUMPI PUSH2 0x702 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x74D PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x766 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x770 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x77A SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x7CF JUMPI POP SWAP4 POP PUSH2 0x7FA SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x7E0 JUMPI DUP2 SWAP4 POP PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x7EB PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x750 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x846 SWAP2 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x870 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87C DUP5 DUP4 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x8A5 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x8B5 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x9C4 JUMPI DUP3 JUMPDEST PUSH2 0x8C8 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x91E SWAP1 DUP7 SWAP1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x95D DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x970 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x986 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x995 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x9A9 SWAP1 DUP8 PUSH2 0x31EA JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x9BA SWAP1 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8BD JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0xA0E SWAP1 DUP11 SWAP1 PUSH2 0x2312 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xA4D SWAP1 DUP4 SWAP1 PUSH2 0x2531 JUMP JUMPDEST PUSH2 0xA56 DUP12 PUSH2 0x222C JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA6F SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0xA83 SWAP1 DUP5 PUSH2 0x31EA JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA99 DUP2 PUSH2 0x10E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xC03 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBEE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD13 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x14 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x103D JUMPI PUSH2 0xD87 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDF9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE62 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x800 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x6 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF49 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xFB6 JUMPI PUSH2 0xFB6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x272B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1022 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1035 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1079 SWAP1 POP DUP4 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x10A8 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10D1 SWAP1 DUP5 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x2966 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1105 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x111F SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1143 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1174 SWAP1 POP PUSH32 0x0 CALLER DUP4 PUSH2 0x272B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ DUP1 ISZERO PUSH2 0x11A1 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12B2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127F SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x12D5 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x12E4 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x130A SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1329 SWAP2 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1331 PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE JUMP JUMPDEST PUSH2 0x137A DUP3 DUP3 PUSH2 0x2A09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7FA SWAP1 TIMESTAMP SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x13E0 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x13F0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1419 JUMPI PUSH2 0x1412 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH32 0x6E0956CDA88CAD152E89927E53611735B61A5C762D1428573C6931B0A5EFCB01 SLOAD DUP4 LT ISZERO PUSH2 0x1454 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1462 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x147B DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x148F SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x14D0 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x14E1 JUMPI DUP2 SWAP4 POP PUSH2 0x14EF JUMP JUMPDEST PUSH2 0x14EC PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1465 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1517 SWAP1 PUSH2 0xA90 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1540 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1564 SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1412 SWAP1 DUP3 PUSH2 0x3222 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x161B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x168B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xD4E4EFCFCF51E1A8C6521AADC7B9B28C60EF879531E81752C4286E1FA644EF29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x171E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x17E1 JUMPI PUSH2 0x17E1 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST PUSH2 0x17EA DUP3 PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1858 JUMPI PUSH2 0x182D DUP3 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST PUSH2 0x183A PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x187C SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x18A3 SWAP1 DUP4 PUSH2 0x3222 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x18F0 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2C66 JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x18FE DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST PUSH2 0x1908 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x197A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x19A9 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A08 PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x1A77 PUSH3 0x93A80 TIMESTAMP PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xD SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B09 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xDF6966C971051C3D54EC59162606531493A51404A002842F56009D7E5CF4A8C7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1B75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 GT PUSH2 0x1C10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH2 0x1C3C PUSH32 0x0 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C4E SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C72 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1C9A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1CA9 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1CCF SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1DFA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D9C SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC7 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1E04 CALLER DUP3 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1E0C PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH2 0x135F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ECF SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3F SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F8A SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 PUSH1 0x64 PUSH2 0x201F DUP4 PUSH1 0x14 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2029 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2086 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20BE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E9 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2139 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x7 SLOAD DUP4 DUP7 PUSH2 0x214E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2159 SWAP1 PUSH1 0x50 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2163 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH2 0x2182 PUSH2 0x217C DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST DUP6 PUSH2 0x2B68 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x1517 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x21DC SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x2250 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x5 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2294 SWAP2 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x229D DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x22A7 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22BB SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22C5 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7FA SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0xC DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2364 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x2401 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x239F PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x23E5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2439 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2447 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x2460 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x2474 SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x24D3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x252A SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x24E4 JUMPI DUP2 SWAP4 POP PUSH2 0x24F2 JUMP JUMPDEST PUSH2 0x24EF PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x244A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2580 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25A7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x25C5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x25D3 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x26AB JUMPI DUP2 JUMPDEST PUSH2 0x25E6 PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26A9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2696 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x262A DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2675 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2684 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2691 DUP13 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x26A1 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x25DB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 PUSH2 0x26FE DUP10 PUSH2 0x26E7 DUP12 PUSH2 0x13A8 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x26F3 SWAP1 DUP11 PUSH2 0x2531 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2DAA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x270B DUP2 DUP7 PUSH2 0x31EA JUMP JUMPDEST SWAP5 POP PUSH2 0x2718 DUP10 DUP7 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2755 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x27B1 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27F3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x281D JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x281D JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x281D SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28B9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x28A5 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x28FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2960 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2946 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2998 JUMPI POP DUP1 PUSH1 0x10 PUSH1 0x0 PUSH2 0x2984 PUSH1 0x1 DUP7 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x29C9 JUMPI PUSH1 0x0 SLOAD PUSH1 0x10 PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x29B1 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0x10 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2A02 SWAP1 DUP4 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x11 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A41 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2A6A JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x252A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A75 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2A91 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x2A8B SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP9 PUSH2 0x2B68 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B59 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x2ADA DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2B25 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2B34 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2B41 DUP14 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2B51 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2A95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2BD3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2BBF PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C47 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2C90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2CF4 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2D31 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2D36 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2D60 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D60 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x2DA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2DB9 DUP8 DUP6 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2E0C PUSH2 0x2DEE DUP11 DUP10 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E30 SWAP1 DUP7 SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x2E3A SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E58 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E76 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EAF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EBA DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2ECA DUP2 PUSH2 0x32CB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EF2 DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F0F JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F22 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2F34 JUMPI PUSH2 0x2F34 PUSH2 0x32B5 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x2F45 DUP5 DUP4 ADD PUSH2 0x31B9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x2F5F JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2F8D JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x2F78 DUP6 PUSH2 0x32CB JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x2F63 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2FBB DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FD8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FEB JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH2 0x2FFD PUSH2 0x32B5 JUMP JUMPDEST PUSH2 0x300F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x31B9 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3024 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x305D DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1412 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x309C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x30CD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x310A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x31E2 JUMPI PUSH2 0x31E2 PUSH2 0x32B5 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x329F JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x321D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x323C JUMPI PUSH2 0x323C PUSH2 0x329F JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3253 JUMPI PUSH2 0x3253 PUSH2 0x329F JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3273 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x325B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2960 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3298 JUMPI PUSH2 0x3298 PUSH2 0x329F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA99 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF PUSH23 0xC7B05BC344D038C159B25B16152F542EF861B30603BD62 PUSH32 0x5C17846627B264736F6C63430008040033A264697066735822122032D8C731DC 0x1F 0x5D SWAP3 0xAA 0x1E 0xB8 JUMP SWAP4 SHR 0xD0 0xC7 POP 0xCA SWAP10 PUSH23 0xF942D0F0E96CAFC654AC5BAB64736F6C63430008040033 ","sourceMap":"168:336:82:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1444:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"296:240:139","statements":[{"body":{"nodeType":"YulBlock","src":"342:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"351:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"359:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"344:6:139"},"nodeType":"YulFunctionCall","src":"344:22:139"},"nodeType":"YulExpressionStatement","src":"344:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"317:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"326:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"313:3:139"},"nodeType":"YulFunctionCall","src":"313:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"338:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"309:3:139"},"nodeType":"YulFunctionCall","src":"309:32:139"},"nodeType":"YulIf","src":"306:2:139"},{"nodeType":"YulAssignment","src":"377:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"406:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"387:18:139"},"nodeType":"YulFunctionCall","src":"387:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"377:6:139"}]},{"nodeType":"YulAssignment","src":"425:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"469:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:139"},"nodeType":"YulFunctionCall","src":"454:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"435:18:139"},"nodeType":"YulFunctionCall","src":"435:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"425:6:139"}]},{"nodeType":"YulAssignment","src":"482:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"515:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"526:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"511:3:139"},"nodeType":"YulFunctionCall","src":"511:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"492:18:139"},"nodeType":"YulFunctionCall","src":"492:38:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"482:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"246:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"257:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"269:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"277:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"285:6:139","type":""}],"src":"192:344:139"},{"body":{"nodeType":"YulBlock","src":"642:102:139","statements":[{"nodeType":"YulAssignment","src":"652:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"664:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"675:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"660:3:139"},"nodeType":"YulFunctionCall","src":"660:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"652:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"694:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"709:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"721:3:139"},"nodeType":"YulFunctionCall","src":"721:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"734:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"717:3:139"},"nodeType":"YulFunctionCall","src":"717:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"705:3:139"},"nodeType":"YulFunctionCall","src":"705:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"687:6:139"},"nodeType":"YulFunctionCall","src":"687:51:139"},"nodeType":"YulExpressionStatement","src":"687:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"611:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"622:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"633:4:139","type":""}],"src":"541:203:139"},{"body":{"nodeType":"YulBlock","src":"878:175:139","statements":[{"nodeType":"YulAssignment","src":"888:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"900:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"911:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"896:3:139"},"nodeType":"YulFunctionCall","src":"896:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"888:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"923:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"941:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"946:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"937:3:139"},"nodeType":"YulFunctionCall","src":"937:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"950:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"933:3:139"},"nodeType":"YulFunctionCall","src":"933:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"927:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"968:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"983:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"991:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"979:3:139"},"nodeType":"YulFunctionCall","src":"979:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"961:6:139"},"nodeType":"YulFunctionCall","src":"961:34:139"},"nodeType":"YulExpressionStatement","src":"961:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1015:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1026:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1011:3:139"},"nodeType":"YulFunctionCall","src":"1011:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1035:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1043:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1031:3:139"},"nodeType":"YulFunctionCall","src":"1031:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:139"},"nodeType":"YulFunctionCall","src":"1004:43:139"},"nodeType":"YulExpressionStatement","src":"1004:43:139"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"850:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"858:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"869:4:139","type":""}],"src":"749:304:139"},{"body":{"nodeType":"YulBlock","src":"1215:227:139","statements":[{"nodeType":"YulAssignment","src":"1225:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1237:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1248:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1233:3:139"},"nodeType":"YulFunctionCall","src":"1233:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1225:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"1260:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1278:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1283:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1274:3:139"},"nodeType":"YulFunctionCall","src":"1274:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1287:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1270:3:139"},"nodeType":"YulFunctionCall","src":"1270:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1264:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1305:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1320:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1328:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1316:3:139"},"nodeType":"YulFunctionCall","src":"1316:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1298:6:139"},"nodeType":"YulFunctionCall","src":"1298:34:139"},"nodeType":"YulExpressionStatement","src":"1298:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1352:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1363:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1348:3:139"},"nodeType":"YulFunctionCall","src":"1348:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1372:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1380:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1368:3:139"},"nodeType":"YulFunctionCall","src":"1368:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1341:6:139"},"nodeType":"YulFunctionCall","src":"1341:43:139"},"nodeType":"YulExpressionStatement","src":"1341:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1404:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1415:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1400:3:139"},"nodeType":"YulFunctionCall","src":"1400:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1424:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1432:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1420:3:139"},"nodeType":"YulFunctionCall","src":"1420:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1393:6:139"},"nodeType":"YulFunctionCall","src":"1393:43:139"},"nodeType":"YulExpressionStatement","src":"1393:43:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1168:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1179:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1187:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1195:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1206:4:139","type":""}],"src":"1058:384:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80631c48e0fa14610030575b600080fd5b61004361003e366004610124565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b6000808483604051610070906100fb565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156100a3573d6000803e3d6000fd5b50604080516001600160a01b038381168252888116602083015287168183015290519192507f9b8203efe7fe42185a7755b0510f87c8b693971d6a7c22520aaf683e6b124261919081900360600190a1949350505050565b6134578061016783390190565b80356001600160a01b038116811461011f57600080fd5b919050565b600080600060608486031215610138578283fd5b61014184610108565b925061014f60208501610108565b915061015d60408501610108565b9050925092509256fe60c060405269010f0cf064dd5920000060075560016014553480156200002457600080fd5b506040516200345738038062003457833981016040819052620000479162000083565b6001600160601b0319606092831b811660a052911b16608052620000ba565b80516001600160a01b03811681146200007e57600080fd5b919050565b6000806040838503121562000096578182fd5b620000a18362000066565b9150620000b16020840162000066565b90509250929050565b60805160601c60a05160601c61331662000141600039600081816103b30152818161114e0152818161172801528181611c1501526121a70152600081816104ea01528181610ad101528181610b5f01528181610c59015281816111d10152818161158c01528181611b7f01528181611d1901528181611e40015261202f01526133166000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806376f4be3611610146578063c4bf0220116100c3578063e688639611610087578063e688639614610622578063e8111a121461062a578063f122977714610633578063f301af4214610646578063f7412baf14610659578063fd3140981461068057600080fd5b8063c4bf0220146105cb578063d35e2544146105de578063d7da4bb0146105f1578063da09d19d146105fa578063de5f62681461061a57600080fd5b8063a495e5b51161010a578063a495e5b514610547578063aa47965214610572578063b2e0df9614610592578063b66503cf146105a5578063b6b55f25146105b857600080fd5b806376f4be36146104d25780637b103999146104e5578063853828b61461050c57806399bcc052146105145780639ce43f901461052757600080fd5b80633a4b66f1116101d4578063638634ee11610198578063638634ee1461045657806363fb415b1461046957806369db8b27146104895780636fcfff451461049257806370a08231146104b257600080fd5b80633a4b66f1146103ae5780633ca068b6146103e25780634d5ce0381461040d57806350baa622146104305780635a45d0521461044357600080fd5b8063221ca18c1161021b578063221ca18c146103135780632ce9aead146103335780632e1a7d4d1461035357806331279d3d14610368578063367034611461037b57600080fd5b806301316ddf146102585780630cdfebfa146102a4578063115c6f39146102d657806318160ddd146102f7578063211dc32d14610300575b600080fd5b61028a610266366004613040565b60126020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61028a6102b2366004613040565b600e6020908152600092835260408084209091529082529020805460019091015482565b6102e96102e4366004613040565b610693565b60405190815260200161029b565b6102e9600a5481565b6102e961030e366004612e9d565b610800565b6102e9610321366004612e65565b60036020526000908152604090205481565b6102e9610341366004612e65565b60056020526000908152604090205481565b61036661036136600461308b565b610a90565b005b610366610376366004612ed5565b610a9c565b61039e610389366004612e65565b60026020526000908152604090205460ff1681565b604051901515815260200161029b565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b60405161029b91906130d7565b6102e96103f0366004612e9d565b600960209081526000928352604080842090915290825290205481565b61039e61041b366004612e65565b600d6020526000908152604090205460ff1681565b61036661043e36600461308b565b6110e3565b610366610451366004613040565b611370565b6102e9610464366004612e65565b6113a8565b6102e9610477366004612e65565b60016020526000908152604090205481565b6102e960075481565b6102e96104a0366004612e65565b600f6020526000908152604090205481565b6102e96104c0366004612e65565b600b6020526000908152604090205481565b6102e96104e036600461308b565b6113cc565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b6103666114fe565b6102e9610522366004612e65565b611519565b6102e9610535366004612e65565b60066020526000908152604090205481565b6102e9610555366004612e9d565b600860209081526000928352604080842090915290825290205481565b6102e9610580366004612e65565b60136020526000908152604090205481565b6103666105a036600461308b565b61158a565b6103666105b3366004613040565b6116fc565b6103666105c636600461308b565b611b53565b6103666105d9366004612f9e565b611e3e565b6102e96105ec366004612e65565b611ff8565b6102e960005481565b6102e9610608366004612e65565b60046020526000908152604090205481565b61036661218c565b600c546102e9565b6102e960115481565b6102e9610641366004612e65565b61222c565b6103d561065436600461308b565b6122e8565b61028a61066736600461308b565b6010602052600090815260409020805460019091015482565b61028a61068e366004613040565b612312565b6001600160a01b0382166000908152600f6020526040812054806106bb5760009150506107fa565b6001600160a01b0384166000908152600e6020526040812084916106e0600185613241565b8152602001908152602001600020600001541161070a57610702600182613241565b9150506107fa565b6001600160a01b0384166000908152600e6020908152604080832083805290915290205483101561073f5760009150506107fa565b60008061074d600184613241565b90505b818111156107f557600060026107668484613241565b6107709190613202565b61077a9083613241565b6001600160a01b0388166000908152600e602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107cf575093506107fa92505050565b80518711156107e0578193506107ee565b6107eb600183613241565b92505b5050610750565b509150505b92915050565b6001600160a01b03808316600081815260086020908152604080832094861683529381528382205492825260128152838220828052905291822054829161084691612531565b6001600160a01b0384166000908152600f60205260409020549091506108705760009150506107fa565b600061087c8483610693565b6001600160a01b0385166000908152600f6020526040812054919250906108a590600190613241565b9050600060016108b58484613241565b11156109c457825b6108c8600184613241565b8110156109c2576001600160a01b0387166000818152600e60208181526040808420868552808352818520825180840190935280548352600190810154838501529585529290915292829061091e9086906131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600061095d8b8460000151612312565b50905060006109708c8460000151612312565b509050670de0b6b3a76400006109868383613241565b85602001516109959190613222565b61099f9190613202565b6109a990876131ea565b95505050505080806109ba90613284565b9150506108bd565b505b6001600160a01b0386166000908152600e60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610a0e908a90612312565b506001600160a01b03808b166000908152600960209081526040808320938d1683529290522054909150670de0b6b3a764000090610a4d908390612531565b610a568b61222c565b610a609190613241565b8360200151610a6f9190613222565b610a799190613202565b610a8390846131ea565b9998505050505050505050565b610a99816110e3565b50565b601454600114610ac75760405162461bcd60e51b8152600401610abe9061314b565b60405180910390fd5b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2a57600080fd5b505af1158015610b3e573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610c0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee9190612e81565b6001600160a01b0316336001600160a01b0316145b610c4f5760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610abe565b60016014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612e81565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610d1391906130d7565b600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050600260145550600090505b815181101561103d57610d87828281518110610d7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612548565b60066000858581518110610dab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060056000878781518110610df957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e62838381518110610e5457634e487b7160e01b600052603260045260246000fd5b602002602001015185610800565b90504260086000858581518110610e8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060066000848481518110610efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460096000858581518110610f4957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610fb657610fb6838381518110610fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151858361272b565b828281518110610fd657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161102291815260200190565b60405180910390a3508061103581613284565b915050610d4e565b506001600160a01b038216600090815260016020526040812054815490918291819061106a908490613241565b90915550611079905083611ff8565b6001600160a01b03841660009081526001602052604081208290558054919250829181906110a89084906131ea565b90915550506001600160a01b0383166000908152600160205260409020546110d190849061285b565b6110d9612966565b5050600160145550565b6014546001146111055760405162461bcd60e51b8152600401610abe9061314b565b600260148190555080600a600082825461111f9190613241565b9091555050336000908152600b602052604081208054839290611143908490613241565b9091555061117490507f0000000000000000000000000000000000000000000000000000000000000000338361272b565b336000908152600b6020526040902054811480156111a157503360009081526002602052604090205460ff165b156112b25733600090815260026020908152604091829020805460ff1916905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190612e81565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b815260040161127f91906130d7565b600060405180830381600087803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b3360009081526001602052604081205481549091829181906112d5908490613241565b909155506112e4905033611ff8565b33600090815260016020526040812082905580549192508291819061130a9084906131ea565b909155505033600081815260016020526040902054611329919061285b565b611331612966565b60405182815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906020015b60405180910390a250506001601455565b61137a8282612a09565b6001600160a01b03909316600090815260066020908152604080832060059092529091209390935590915550565b6001600160a01b0381166000908152600460205260408120546107fa904290612b68565b601154600090806113e05750600092915050565b82601060006113f0600185613241565b8152602001908152602001600020600001541161141957611412600182613241565b9392505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01548310156114545750600092915050565b600080611462600184613241565b90505b818111156114f6576000600261147b8484613241565b6114859190613202565b61148f9083613241565b6000818152601060209081526040918290208251808401909352805480845260019091015491830191909152919250908714156114d0575095945050505050565b80518711156114e1578193506114ef565b6114ec600183613241565b92505b5050611465565b509392505050565b336000908152600b602052604090205461151790610a90565b565b6001600160a01b038116600090815260046020526040812054421061154057506000919050565b6001600160a01b038216600090815260046020526040812054611564904290613241565b6001600160a01b0384166000908152600360205260409020549091506114129082613222565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561165357600080fd5b505afa158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168b9190612e81565b6001600160a01b0316336001600160a01b0316146116bb5760405162461bcd60e51b8152600401610abe9061316f565b60075460408051918252602082018390527fd4e4efcfcf51e1a8c6521aadc7b9b28c60ef879531e81752c4286e1fa644ef29910160405180910390a1600755565b60145460011461171e5760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156117985760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610abe565b600081116117b85760405162461bcd60e51b8152600401610abe90613195565b6001600160a01b0382166000908152600360205260409020546117e1576117e182600042612b77565b6117ea82612548565b6001600160a01b03841660009081526006602090815260408083206005835281842094909455939092556004909152205442106118585761182d82333084612c66565b61183a62093a8082613202565b6001600160a01b038316600090815260036020526040902055611924565b6001600160a01b03821660009081526004602052604081205461187c904290613241565b6001600160a01b038416600090815260036020526040812054919250906118a39083613222565b90508083116118e45760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610abe565b6118f084333086612c66565b62093a806118fe82856131ea565b6119089190613202565b6001600160a01b03851660009081526003602052604090205550505b6001600160a01b03821660009081526003602052604090205461197a5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610abe565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906119a99030906004016130d7565b60206040518083038186803b1580156119c157600080fd5b505afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906130a3565b9050611a0862093a8082613202565b6001600160a01b0384166000908152600360205260409020541115611a6a5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610abe565b611a7762093a80426131ea565b6001600160a01b038416600090815260046020908152604080832093909355600d9052205460ff16611b09576001600160a01b0383166000818152600d60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160145550565b601454600114611b755760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b5050505060008111611c105760405162461bcd60e51b8152600401610abe90613195565b611c3c7f0000000000000000000000000000000000000000000000000000000000000000333084612c66565b80600a6000828254611c4e91906131ea565b9091555050336000908152600b602052604081208054839290611c729084906131ea565b9091555050336000908152600160205260408120548154909182918190611c9a908490613241565b90915550611ca9905033611ff8565b336000908152600160205260408120829055805491925082918190611ccf9084906131ea565b90915550503360009081526002602052604090205460ff16611dfa5733600090815260026020908152604091829020805460ff1916600117905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611d6457600080fd5b505afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190612e81565b6001600160a01b03166397a302f7336040518263ffffffff1660e01b8152600401611dc791906130d7565b600060405180830381600087803b158015611de157600080fd5b505af1158015611df5573d6000803e3d6000fd5b505050505b611e04338261285b565b611e0c612966565b60405182815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200161135f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611e9757600080fd5b505afa158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b158015611f0757600080fd5b505afa158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612e81565b6001600160a01b0316336001600160a01b031614611f6f5760405162461bcd60e51b8152600401610abe9061316f565b600080836001600160a01b031683604051611f8a91906130bb565b6000604051808303816000865af19150503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b5091509150818190611ff15760405162461bcd60e51b8152600401610abe91906130eb565b5050505050565b6001600160a01b0381166000908152600b602052604081205481606461201f836014613222565b6120299190613202565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561208657600080fd5b505afa15801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be9190612e81565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016120e991906130d7565b60206040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213991906130a3565b905060006064600754838661214e9190613222565b612159906050613222565b6121639190613202565b61216d9190613202565b905061218261217c82856131ea565b85612b68565b9695505050505050565b6040516370a0823160e01b8152611517906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906121dc9033906004016130d7565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906130a3565b6000805461225057506001600160a01b031660009081526006602052604090205490565b600080546001600160a01b038416825260036020908152604080842054600583528185205460049093529320549192670de0b6b3a764000092909161229491612b68565b61229d866113a8565b6122a79190613241565b6122b19190613222565b6122bb9190613222565b6122c59190613202565b6001600160a01b0383166000908152600660205260409020546107fa91906131ea565b600c81815481106122f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526013602052604081205481908061233f57600080925092505061252a565b6001600160a01b03851660009081526012602052604081208591612364600185613241565b81526020019081526020016000206000015411612401576001600160a01b03851660009081526012602052604081209061239f600184613241565b81526020019081526020016000206001015460126000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846123e59190613241565b815260200190815260200160002060000154925092505061252a565b6001600160a01b038516600090815260126020908152604080832083805290915290205484101561243957600080925092505061252a565b600080612447600184613241565b90505b818111156124f957600060026124608484613241565b61246a9190613202565b6124749083613241565b6001600160a01b03891660009081526012602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156124d35760208101519051909650945061252a9350505050565b80518811156124e4578193506124f2565b6124ef600183613241565b92505b505061244a565b506001600160a01b038616600090815260126020908152604080832093835292905220600181015490549093509150505b9250929050565b6000818310156125415781611412565b5090919050565b6001600160a01b0381166000908152600560209081526040808320546006909252822054601154839291906125805794909350915050565b6001600160a01b0385166000908152600360205260409020546125a7579442945092505050565b60006125b2836113cc565b9050600060016011546125c59190613241565b905060016125d38383613241565b11156126ab57815b6125e6600183613241565b8110156126a957600081815260106020908152604091829020825180840190935280548352600101549082018190521561269657600060108161262a8560016131ea565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806126758c8460000151866000015187602001518d612daa565b909250905061268482896131ea565b97506126918c8983612b77565b975050505b50806126a181613284565b9150506125db565b505b600081815260106020908152604091829020825180840190935280548352600101549082018190521561271d5760006126fe896126e78b6113a8565b84516126f3908a612531565b85602001518a612daa565b50905061270b81866131ea565b9450612718898642612b77565b429550505b509196929550919350505050565b6000836001600160a01b03163b116127555760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916127b191906130bb565b6000604051808303816000865af19150503d80600081146127ee576040519150601f19603f3d011682016040523d82523d6000602084013e6127f3565b606091505b509150915081801561281d57508051158061281d57508080602001905181019061281d919061306b565b611ff15760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610abe565b6001600160a01b0382166000908152600f6020526040902054429080158015906128b957506001600160a01b0384166000908152600e6020526040812083916128a5600185613241565b815260200190815260200160002060000154145b156128fc576001600160a01b0384166000908152600e6020526040812084916128e3600185613241565b8152602081019190915260400160002060010155612960565b60408051808201825283815260208082018681526001600160a01b0388166000908152600e83528481208682529092529290209051815590516001918201556129469082906131ea565b6001600160a01b0385166000908152600f60205260409020555b50505050565b60115442811580159061299857508060106000612984600186613241565b815260200190815260200160002060000154145b156129c957600054601060006001856129b19190613241565b81526020810191909152604001600020600101555050565b60408051808201825282815260008054602080840191825286835260109052929020905181559051600191820155612a029083906131ea565b6011555050565b6001600160a01b038216600090815260056020908152604080832054600690925282205460115483929190612a41579250905061252a565b6001600160a01b038616600090815260036020526040902054612a6a57925042915061252a9050565b6000612a75836113cc565b90506000612a916001601154612a8b9190613241565b88612b68565b9050815b81811015612b59576000818152601060209081526040918290208251808401909352805483526001015490820181905215612b46576000601081612ada8560016131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612b258d8460000151866000015187602001518d612daa565b9092509050612b3482896131ea565b9750612b418d8983612b77565b975050505b5080612b5181613284565b915050612a95565b50919792965091945050505050565b60008183106125415781611412565b6001600160a01b0383166000908152601360205260409020548015801590612bd357506001600160a01b03841660009081526012602052604081208391612bbf600185613241565b815260200190815260200160002060000154145b15612bfd576001600160a01b038416600090815260126020526040812084916128e3600185613241565b60408051808201825283815260208082018681526001600160a01b038816600090815260128352848120868252909252929020905181559051600191820155612c479082906131ea565b6001600160a01b03851660009081526013602052604090205550505050565b6000846001600160a01b03163b11612c905760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612cf491906130bb565b6000604051808303816000865af19150503d8060008114612d31576040519150601f19603f3d011682016040523d82523d6000602084013e612d36565b606091505b5091509150818015612d60575080511580612d60575080806020019051810190612d60919061306b565b612da25760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610abe565b505050505050565b6000806000612db98785612531565b6001600160a01b0389166000908152600360205260409020549091508590670de0b6b3a764000090612e0c612dee8a89612531565b6001600160a01b038d16600090815260046020526040902054612b68565b6001600160a01b038c16600090815260046020526040902054612e30908690612b68565b612e3a9190613241565b612e449190613222565b612e4e9190613222565b612e589190613202565b9890975095505050505050565b600060208284031215612e76578081fd5b8135611412816132cb565b600060208284031215612e92578081fd5b8151611412816132cb565b60008060408385031215612eaf578081fd5b8235612eba816132cb565b91506020830135612eca816132cb565b809150509250929050565b60008060408385031215612ee7578182fd5b8235612ef2816132cb565b915060208381013567ffffffffffffffff80821115612f0f578384fd5b818601915086601f830112612f22578384fd5b813581811115612f3457612f346132b5565b8060051b9150612f458483016131b9565b8181528481019084860184860187018b1015612f5f578788fd5b8795505b83861015612f8d5780359450612f78856132cb565b84835260019590950194918601918601612f63565b508096505050505050509250929050565b60008060408385031215612fb0578182fd5b8235612fbb816132cb565b915060208381013567ffffffffffffffff80821115612fd8578384fd5b818601915086601f830112612feb578384fd5b813581811115612ffd57612ffd6132b5565b61300f601f8201601f191685016131b9565b91508082528784828501011115613024578485fd5b8084840185840137810190920192909252919491935090915050565b60008060408385031215613052578182fd5b823561305d816132cb565b946020939093013593505050565b60006020828403121561307c578081fd5b81518015158114611412578182fd5b60006020828403121561309c578081fd5b5035919050565b6000602082840312156130b4578081fd5b5051919050565b600082516130cd818460208701613258565b9190910192915050565b6001600160a01b0391909116815260200190565b602081526000825180602084015261310a816040850160208701613258565b601f01601f19169190910160400192915050565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156131e2576131e26132b5565b604052919050565b600082198211156131fd576131fd61329f565b500190565b60008261321d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561323c5761323c61329f565b500290565b6000828210156132535761325361329f565b500390565b60005b8381101561327357818101518382015260200161325b565b838111156129605750506000910152565b60006000198214156132985761329861329f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9957600080fdfea2646970667358221220ef76c7b05bc344d038c159b25b16152f542ef861b30603bd627f5c17846627b264736f6c63430008040033a264697066735822122032d8c731dc1f5d92aa1eb856931cd0c750ca9976f942d0f0e96cafc654ac5bab64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1C48E0FA EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x124 JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x70 SWAP1 PUSH2 0xFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9B8203EFE7FE42185A7755B0510F87C8B693971D6A7C22520AAF683E6B124261 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3457 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x138 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x141 DUP5 PUSH2 0x108 JUMP JUMPDEST SWAP3 POP PUSH2 0x14F PUSH1 0x20 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP2 POP PUSH2 0x15D PUSH1 0x40 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH10 0x10F0CF064DD59200000 PUSH1 0x7 SSTORE PUSH1 0x1 PUSH1 0x14 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3457 CODESIZE SUB DUP1 PUSH3 0x3457 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x47 SWAP2 PUSH3 0x83 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH3 0xBA JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x96 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH3 0xA1 DUP4 PUSH3 0x66 JUMP JUMPDEST SWAP2 POP PUSH3 0xB1 PUSH1 0x20 DUP5 ADD PUSH3 0x66 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x3316 PUSH3 0x141 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3B3 ADD MSTORE DUP2 DUP2 PUSH2 0x114E ADD MSTORE DUP2 DUP2 PUSH2 0x1728 ADD MSTORE DUP2 DUP2 PUSH2 0x1C15 ADD MSTORE PUSH2 0x21A7 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4EA ADD MSTORE DUP2 DUP2 PUSH2 0xAD1 ADD MSTORE DUP2 DUP2 PUSH2 0xB5F ADD MSTORE DUP2 DUP2 PUSH2 0xC59 ADD MSTORE DUP2 DUP2 PUSH2 0x11D1 ADD MSTORE DUP2 DUP2 PUSH2 0x158C ADD MSTORE DUP2 DUP2 PUSH2 0x1B7F ADD MSTORE DUP2 DUP2 PUSH2 0x1D19 ADD MSTORE DUP2 DUP2 PUSH2 0x1E40 ADD MSTORE PUSH2 0x202F ADD MSTORE PUSH2 0x3316 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xC4BF0220 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x62A JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDE5F6268 EQ PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA495E5B5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x572 JUMPI DUP1 PUSH4 0xB2E0DF96 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x638634EE GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x221CA18C GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x300 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28A PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28A PUSH2 0x2B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x800 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0xA90 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x366 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x39E PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x3F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39E PUSH2 0x41B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x10E3 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x14FE JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1519 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x580 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x158A JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x1B53 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x5EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x218C JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x641 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x222C JUMP JUMPDEST PUSH2 0x3D5 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x6BB JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x6E0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x70A JUMPI PUSH2 0x702 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x74D PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x766 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x770 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x77A SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x7CF JUMPI POP SWAP4 POP PUSH2 0x7FA SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x7E0 JUMPI DUP2 SWAP4 POP PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x7EB PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x750 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x846 SWAP2 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x870 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87C DUP5 DUP4 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x8A5 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x8B5 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x9C4 JUMPI DUP3 JUMPDEST PUSH2 0x8C8 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x91E SWAP1 DUP7 SWAP1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x95D DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x970 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x986 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x995 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x9A9 SWAP1 DUP8 PUSH2 0x31EA JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x9BA SWAP1 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8BD JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0xA0E SWAP1 DUP11 SWAP1 PUSH2 0x2312 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xA4D SWAP1 DUP4 SWAP1 PUSH2 0x2531 JUMP JUMPDEST PUSH2 0xA56 DUP12 PUSH2 0x222C JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA6F SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0xA83 SWAP1 DUP5 PUSH2 0x31EA JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA99 DUP2 PUSH2 0x10E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xC03 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBEE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD13 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x14 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x103D JUMPI PUSH2 0xD87 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDF9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE62 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x800 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x6 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF49 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xFB6 JUMPI PUSH2 0xFB6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x272B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1022 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1035 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1079 SWAP1 POP DUP4 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x10A8 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10D1 SWAP1 DUP5 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x2966 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1105 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x111F SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1143 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1174 SWAP1 POP PUSH32 0x0 CALLER DUP4 PUSH2 0x272B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ DUP1 ISZERO PUSH2 0x11A1 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12B2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127F SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x12D5 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x12E4 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x130A SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1329 SWAP2 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1331 PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE JUMP JUMPDEST PUSH2 0x137A DUP3 DUP3 PUSH2 0x2A09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7FA SWAP1 TIMESTAMP SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x13E0 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x13F0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1419 JUMPI PUSH2 0x1412 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH32 0x6E0956CDA88CAD152E89927E53611735B61A5C762D1428573C6931B0A5EFCB01 SLOAD DUP4 LT ISZERO PUSH2 0x1454 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1462 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x147B DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x148F SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x14D0 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x14E1 JUMPI DUP2 SWAP4 POP PUSH2 0x14EF JUMP JUMPDEST PUSH2 0x14EC PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1465 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1517 SWAP1 PUSH2 0xA90 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1540 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1564 SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1412 SWAP1 DUP3 PUSH2 0x3222 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x161B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x168B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xD4E4EFCFCF51E1A8C6521AADC7B9B28C60EF879531E81752C4286E1FA644EF29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x171E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x17E1 JUMPI PUSH2 0x17E1 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST PUSH2 0x17EA DUP3 PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1858 JUMPI PUSH2 0x182D DUP3 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST PUSH2 0x183A PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x187C SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x18A3 SWAP1 DUP4 PUSH2 0x3222 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x18F0 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2C66 JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x18FE DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST PUSH2 0x1908 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x197A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x19A9 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A08 PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x1A77 PUSH3 0x93A80 TIMESTAMP PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xD SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B09 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xDF6966C971051C3D54EC59162606531493A51404A002842F56009D7E5CF4A8C7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1B75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 GT PUSH2 0x1C10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH2 0x1C3C PUSH32 0x0 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C4E SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C72 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1C9A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1CA9 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1CCF SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1DFA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D9C SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC7 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1E04 CALLER DUP3 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1E0C PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH2 0x135F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ECF SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3F SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F8A SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 PUSH1 0x64 PUSH2 0x201F DUP4 PUSH1 0x14 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2029 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2086 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20BE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E9 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2139 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x7 SLOAD DUP4 DUP7 PUSH2 0x214E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2159 SWAP1 PUSH1 0x50 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2163 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH2 0x2182 PUSH2 0x217C DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST DUP6 PUSH2 0x2B68 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x1517 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x21DC SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x2250 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x5 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2294 SWAP2 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x229D DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x22A7 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22BB SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22C5 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7FA SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0xC DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2364 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x2401 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x239F PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x23E5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2439 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2447 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x2460 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x2474 SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x24D3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x252A SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x24E4 JUMPI DUP2 SWAP4 POP PUSH2 0x24F2 JUMP JUMPDEST PUSH2 0x24EF PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x244A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2580 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25A7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x25C5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x25D3 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x26AB JUMPI DUP2 JUMPDEST PUSH2 0x25E6 PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26A9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2696 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x262A DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2675 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2684 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2691 DUP13 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x26A1 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x25DB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 PUSH2 0x26FE DUP10 PUSH2 0x26E7 DUP12 PUSH2 0x13A8 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x26F3 SWAP1 DUP11 PUSH2 0x2531 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2DAA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x270B DUP2 DUP7 PUSH2 0x31EA JUMP JUMPDEST SWAP5 POP PUSH2 0x2718 DUP10 DUP7 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2755 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x27B1 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27F3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x281D JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x281D JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x281D SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28B9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x28A5 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x28FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2960 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2946 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2998 JUMPI POP DUP1 PUSH1 0x10 PUSH1 0x0 PUSH2 0x2984 PUSH1 0x1 DUP7 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x29C9 JUMPI PUSH1 0x0 SLOAD PUSH1 0x10 PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x29B1 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0x10 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2A02 SWAP1 DUP4 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x11 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A41 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2A6A JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x252A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A75 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2A91 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x2A8B SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP9 PUSH2 0x2B68 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B59 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x2ADA DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2B25 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2B34 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2B41 DUP14 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2B51 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2A95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2BD3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2BBF PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C47 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2C90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2CF4 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2D31 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2D36 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2D60 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D60 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x2DA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2DB9 DUP8 DUP6 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2E0C PUSH2 0x2DEE DUP11 DUP10 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E30 SWAP1 DUP7 SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x2E3A SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E58 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E76 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EAF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EBA DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2ECA DUP2 PUSH2 0x32CB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EF2 DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F0F JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F22 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2F34 JUMPI PUSH2 0x2F34 PUSH2 0x32B5 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x2F45 DUP5 DUP4 ADD PUSH2 0x31B9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x2F5F JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2F8D JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x2F78 DUP6 PUSH2 0x32CB JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x2F63 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2FBB DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FD8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FEB JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH2 0x2FFD PUSH2 0x32B5 JUMP JUMPDEST PUSH2 0x300F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x31B9 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3024 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x305D DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1412 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x309C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x30CD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x310A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x31E2 JUMPI PUSH2 0x31E2 PUSH2 0x32B5 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x329F JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x321D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x323C JUMPI PUSH2 0x323C PUSH2 0x329F JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3253 JUMPI PUSH2 0x3253 PUSH2 0x329F JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3273 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x325B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2960 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3298 JUMPI PUSH2 0x3298 PUSH2 0x329F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA99 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF PUSH23 0xC7B05BC344D038C159B25B16152F542EF861B30603BD62 PUSH32 0x5C17846627B264736F6C63430008040033A264697066735822122032D8C731DC 0x1F 0x5D SWAP3 0xAA 0x1E 0xB8 JUMP SWAP4 SHR 0xD0 0xC7 POP 0xCA SWAP10 PUSH23 0xF942D0F0E96CAFC654AC5BAB64736F6C63430008040033 ","sourceMap":"168:336:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:283;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;705:32:139;;;687:51;;675:2;660:18;219:283:82;;;;;;;;347:7;366:13;406:5;413:9;390:33;;;;;:::i;:::-;-1:-1:-1;;;;;979:15:139;;;961:34;;1031:15;;1026:2;1011:18;;1004:43;911:2;896:18;390:33:82;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;439:34:82;;;-1:-1:-1;;;;;1316:15:139;;;1298:34;;1368:15;;;1363:2;1348:18;;1341:43;1420:15;;1400:18;;;1393:43;439:34:82;;1316:15:139;;-1:-1:-1;439:34:82;;;;;;1248:2:139;439:34:82;;;490:5;219:283;-1:-1:-1;;;;219:283:82:o;-1:-1:-1:-;;;;;;;;:::o;14:173:139:-;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:344::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:2;;;359:6;351;344:22;306:2;387:29;406:9;387:29;:::i;:::-;377:39;;435:38;469:2;458:9;454:18;435:38;:::i;:::-;425:48;;492:38;526:2;515:9;511:18;492:38;:::i;:::-;482:48;;296:240;;;;;:::o"},"methodIdentifiers":{"createGauge(address,address,address)":"1c48e0fa"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"createGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/BaseGaugeV1Factory.sol\":\"BaseV1GaugeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/gauges/BaseGaugeV1Factory.sol\":{\"keccak256\":\"0x1d6cc70404cb4a5aad98506393921c34b4e1ed5a59f5867d0fcd0cb1fa617cf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9c3899cdce4f986c166c62ffb37499f25f1f63e1b98e80a7f0d8d982429bd55\",\"dweb:/ipfs/Qmb19jmedmGxhDDu7SZEWyJwtEiycEmY7TQt9s69Sa6qEp\"]},\"contracts/gauges/BaseGaugeV2.sol\":{\"keccak256\":\"0x844878e134da2ae735b2fb4c4d843126ad5f782ca74b2b07774c0822724fe257\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a7c88d37bf12987f1d304325d6ed8364b20cd3e722c05ab33118d4fbb4db68c\",\"dweb:/ipfs/QmTvssR9qD1Eg9kkLkb1ymEwnSkSZLDbXY7xmxxvpUXQBX\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeFactory.sol\":{\"keccak256\":\"0x3115db7b4b5e8881542331dc44dc88c3d44285ecc5f857460f1503b89b23fb53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://170c083969a897ed89d2fe5aef81b772344e3d66052b8b96b442ed3cd17720a6\",\"dweb:/ipfs/QmXuVFUv2PEDN6kNksH5FtpBa8FP3ww15mwHcvCNcC8Q2H\"]},\"contracts/interfaces/IGaugeV2.sol\":{\"keccak256\":\"0x3c18553ca65458ce61c119dcf77562e982252003b889e29cfb7b418f6b0651a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb8852cc39c57b2abef2f19729fb3dd7011e5121634362d46cad2928f894e344\",\"dweb:/ipfs/QmUDX6dBugtpMTjuF99z8hipLhfQAp3M4P6b5Wpva1oV7S\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/gauges/BaseGaugeV2.sol":{"BaseGaugeV2":{"abi":[{"inputs":[{"internalType":"address","name":"_stake","type":"address"},{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"claimed0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimed1","type":"uint256"}],"name":"ClaimFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_old","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"MaxBoostRequirementChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"attached","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"maxRuns","type":"uint256"}],"name":"batchRewardPerToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"checkpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"balanceOf","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"derivedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"derivedBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"derivedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"emergencyCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorBalanceIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorRewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getPriorSupplyIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"lastEarn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBoostRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardPerTokenCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"rewardPerToken","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenNumCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBoostRequirement","type":"uint256"}],"name":"setMaxBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stake","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supplyCheckpoints","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supplyNumCheckpoints","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":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:501:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"294:205:139","statements":[{"body":{"nodeType":"YulBlock","src":"340:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"349:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"357:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:139"},"nodeType":"YulFunctionCall","src":"342:22:139"},"nodeType":"YulExpressionStatement","src":"342:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:139"},"nodeType":"YulFunctionCall","src":"311:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:139"},"nodeType":"YulFunctionCall","src":"307:32:139"},"nodeType":"YulIf","src":"304:2:139"},{"nodeType":"YulAssignment","src":"375:50:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"415:9:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"385:29:139"},"nodeType":"YulFunctionCall","src":"385:40:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"375:6:139"}]},{"nodeType":"YulAssignment","src":"434:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"478:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"489:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:139"},"nodeType":"YulFunctionCall","src":"474:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"444:29:139"},"nodeType":"YulFunctionCall","src":"444:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"434:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:139","type":""}],"src":"196:303:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405269010f0cf064dd5920000060075560016014553480156200002457600080fd5b506040516200345738038062003457833981016040819052620000479162000083565b6001600160601b0319606092831b811660a052911b16608052620000ba565b80516001600160a01b03811681146200007e57600080fd5b919050565b6000806040838503121562000096578182fd5b620000a18362000066565b9150620000b16020840162000066565b90509250929050565b60805160601c60a05160601c61331662000141600039600081816103b30152818161114e0152818161172801528181611c1501526121a70152600081816104ea01528181610ad101528181610b5f01528181610c59015281816111d10152818161158c01528181611b7f01528181611d1901528181611e40015261202f01526133166000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806376f4be3611610146578063c4bf0220116100c3578063e688639611610087578063e688639614610622578063e8111a121461062a578063f122977714610633578063f301af4214610646578063f7412baf14610659578063fd3140981461068057600080fd5b8063c4bf0220146105cb578063d35e2544146105de578063d7da4bb0146105f1578063da09d19d146105fa578063de5f62681461061a57600080fd5b8063a495e5b51161010a578063a495e5b514610547578063aa47965214610572578063b2e0df9614610592578063b66503cf146105a5578063b6b55f25146105b857600080fd5b806376f4be36146104d25780637b103999146104e5578063853828b61461050c57806399bcc052146105145780639ce43f901461052757600080fd5b80633a4b66f1116101d4578063638634ee11610198578063638634ee1461045657806363fb415b1461046957806369db8b27146104895780636fcfff451461049257806370a08231146104b257600080fd5b80633a4b66f1146103ae5780633ca068b6146103e25780634d5ce0381461040d57806350baa622146104305780635a45d0521461044357600080fd5b8063221ca18c1161021b578063221ca18c146103135780632ce9aead146103335780632e1a7d4d1461035357806331279d3d14610368578063367034611461037b57600080fd5b806301316ddf146102585780630cdfebfa146102a4578063115c6f39146102d657806318160ddd146102f7578063211dc32d14610300575b600080fd5b61028a610266366004613040565b60126020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61028a6102b2366004613040565b600e6020908152600092835260408084209091529082529020805460019091015482565b6102e96102e4366004613040565b610693565b60405190815260200161029b565b6102e9600a5481565b6102e961030e366004612e9d565b610800565b6102e9610321366004612e65565b60036020526000908152604090205481565b6102e9610341366004612e65565b60056020526000908152604090205481565b61036661036136600461308b565b610a90565b005b610366610376366004612ed5565b610a9c565b61039e610389366004612e65565b60026020526000908152604090205460ff1681565b604051901515815260200161029b565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b60405161029b91906130d7565b6102e96103f0366004612e9d565b600960209081526000928352604080842090915290825290205481565b61039e61041b366004612e65565b600d6020526000908152604090205460ff1681565b61036661043e36600461308b565b6110e3565b610366610451366004613040565b611370565b6102e9610464366004612e65565b6113a8565b6102e9610477366004612e65565b60016020526000908152604090205481565b6102e960075481565b6102e96104a0366004612e65565b600f6020526000908152604090205481565b6102e96104c0366004612e65565b600b6020526000908152604090205481565b6102e96104e036600461308b565b6113cc565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b6103666114fe565b6102e9610522366004612e65565b611519565b6102e9610535366004612e65565b60066020526000908152604090205481565b6102e9610555366004612e9d565b600860209081526000928352604080842090915290825290205481565b6102e9610580366004612e65565b60136020526000908152604090205481565b6103666105a036600461308b565b61158a565b6103666105b3366004613040565b6116fc565b6103666105c636600461308b565b611b53565b6103666105d9366004612f9e565b611e3e565b6102e96105ec366004612e65565b611ff8565b6102e960005481565b6102e9610608366004612e65565b60046020526000908152604090205481565b61036661218c565b600c546102e9565b6102e960115481565b6102e9610641366004612e65565b61222c565b6103d561065436600461308b565b6122e8565b61028a61066736600461308b565b6010602052600090815260409020805460019091015482565b61028a61068e366004613040565b612312565b6001600160a01b0382166000908152600f6020526040812054806106bb5760009150506107fa565b6001600160a01b0384166000908152600e6020526040812084916106e0600185613241565b8152602001908152602001600020600001541161070a57610702600182613241565b9150506107fa565b6001600160a01b0384166000908152600e6020908152604080832083805290915290205483101561073f5760009150506107fa565b60008061074d600184613241565b90505b818111156107f557600060026107668484613241565b6107709190613202565b61077a9083613241565b6001600160a01b0388166000908152600e602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107cf575093506107fa92505050565b80518711156107e0578193506107ee565b6107eb600183613241565b92505b5050610750565b509150505b92915050565b6001600160a01b03808316600081815260086020908152604080832094861683529381528382205492825260128152838220828052905291822054829161084691612531565b6001600160a01b0384166000908152600f60205260409020549091506108705760009150506107fa565b600061087c8483610693565b6001600160a01b0385166000908152600f6020526040812054919250906108a590600190613241565b9050600060016108b58484613241565b11156109c457825b6108c8600184613241565b8110156109c2576001600160a01b0387166000818152600e60208181526040808420868552808352818520825180840190935280548352600190810154838501529585529290915292829061091e9086906131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600061095d8b8460000151612312565b50905060006109708c8460000151612312565b509050670de0b6b3a76400006109868383613241565b85602001516109959190613222565b61099f9190613202565b6109a990876131ea565b95505050505080806109ba90613284565b9150506108bd565b505b6001600160a01b0386166000908152600e60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610a0e908a90612312565b506001600160a01b03808b166000908152600960209081526040808320938d1683529290522054909150670de0b6b3a764000090610a4d908390612531565b610a568b61222c565b610a609190613241565b8360200151610a6f9190613222565b610a799190613202565b610a8390846131ea565b9998505050505050505050565b610a99816110e3565b50565b601454600114610ac75760405162461bcd60e51b8152600401610abe9061314b565b60405180910390fd5b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2a57600080fd5b505af1158015610b3e573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610c0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee9190612e81565b6001600160a01b0316336001600160a01b0316145b610c4f5760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610abe565b60016014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612e81565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610d1391906130d7565b600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050600260145550600090505b815181101561103d57610d87828281518110610d7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612548565b60066000858581518110610dab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060056000878781518110610df957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e62838381518110610e5457634e487b7160e01b600052603260045260246000fd5b602002602001015185610800565b90504260086000858581518110610e8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060066000848481518110610efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460096000858581518110610f4957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610fb657610fb6838381518110610fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151858361272b565b828281518110610fd657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161102291815260200190565b60405180910390a3508061103581613284565b915050610d4e565b506001600160a01b038216600090815260016020526040812054815490918291819061106a908490613241565b90915550611079905083611ff8565b6001600160a01b03841660009081526001602052604081208290558054919250829181906110a89084906131ea565b90915550506001600160a01b0383166000908152600160205260409020546110d190849061285b565b6110d9612966565b5050600160145550565b6014546001146111055760405162461bcd60e51b8152600401610abe9061314b565b600260148190555080600a600082825461111f9190613241565b9091555050336000908152600b602052604081208054839290611143908490613241565b9091555061117490507f0000000000000000000000000000000000000000000000000000000000000000338361272b565b336000908152600b6020526040902054811480156111a157503360009081526002602052604090205460ff165b156112b25733600090815260026020908152604091829020805460ff1916905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190612e81565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b815260040161127f91906130d7565b600060405180830381600087803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b3360009081526001602052604081205481549091829181906112d5908490613241565b909155506112e4905033611ff8565b33600090815260016020526040812082905580549192508291819061130a9084906131ea565b909155505033600081815260016020526040902054611329919061285b565b611331612966565b60405182815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906020015b60405180910390a250506001601455565b61137a8282612a09565b6001600160a01b03909316600090815260066020908152604080832060059092529091209390935590915550565b6001600160a01b0381166000908152600460205260408120546107fa904290612b68565b601154600090806113e05750600092915050565b82601060006113f0600185613241565b8152602001908152602001600020600001541161141957611412600182613241565b9392505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01548310156114545750600092915050565b600080611462600184613241565b90505b818111156114f6576000600261147b8484613241565b6114859190613202565b61148f9083613241565b6000818152601060209081526040918290208251808401909352805480845260019091015491830191909152919250908714156114d0575095945050505050565b80518711156114e1578193506114ef565b6114ec600183613241565b92505b5050611465565b509392505050565b336000908152600b602052604090205461151790610a90565b565b6001600160a01b038116600090815260046020526040812054421061154057506000919050565b6001600160a01b038216600090815260046020526040812054611564904290613241565b6001600160a01b0384166000908152600360205260409020549091506114129082613222565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561165357600080fd5b505afa158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168b9190612e81565b6001600160a01b0316336001600160a01b0316146116bb5760405162461bcd60e51b8152600401610abe9061316f565b60075460408051918252602082018390527fd4e4efcfcf51e1a8c6521aadc7b9b28c60ef879531e81752c4286e1fa644ef29910160405180910390a1600755565b60145460011461171e5760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156117985760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610abe565b600081116117b85760405162461bcd60e51b8152600401610abe90613195565b6001600160a01b0382166000908152600360205260409020546117e1576117e182600042612b77565b6117ea82612548565b6001600160a01b03841660009081526006602090815260408083206005835281842094909455939092556004909152205442106118585761182d82333084612c66565b61183a62093a8082613202565b6001600160a01b038316600090815260036020526040902055611924565b6001600160a01b03821660009081526004602052604081205461187c904290613241565b6001600160a01b038416600090815260036020526040812054919250906118a39083613222565b90508083116118e45760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610abe565b6118f084333086612c66565b62093a806118fe82856131ea565b6119089190613202565b6001600160a01b03851660009081526003602052604090205550505b6001600160a01b03821660009081526003602052604090205461197a5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610abe565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906119a99030906004016130d7565b60206040518083038186803b1580156119c157600080fd5b505afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906130a3565b9050611a0862093a8082613202565b6001600160a01b0384166000908152600360205260409020541115611a6a5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610abe565b611a7762093a80426131ea565b6001600160a01b038416600090815260046020908152604080832093909355600d9052205460ff16611b09576001600160a01b0383166000818152600d60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160145550565b601454600114611b755760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b5050505060008111611c105760405162461bcd60e51b8152600401610abe90613195565b611c3c7f0000000000000000000000000000000000000000000000000000000000000000333084612c66565b80600a6000828254611c4e91906131ea565b9091555050336000908152600b602052604081208054839290611c729084906131ea565b9091555050336000908152600160205260408120548154909182918190611c9a908490613241565b90915550611ca9905033611ff8565b336000908152600160205260408120829055805491925082918190611ccf9084906131ea565b90915550503360009081526002602052604090205460ff16611dfa5733600090815260026020908152604091829020805460ff1916600117905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611d6457600080fd5b505afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190612e81565b6001600160a01b03166397a302f7336040518263ffffffff1660e01b8152600401611dc791906130d7565b600060405180830381600087803b158015611de157600080fd5b505af1158015611df5573d6000803e3d6000fd5b505050505b611e04338261285b565b611e0c612966565b60405182815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200161135f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611e9757600080fd5b505afa158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b158015611f0757600080fd5b505afa158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612e81565b6001600160a01b0316336001600160a01b031614611f6f5760405162461bcd60e51b8152600401610abe9061316f565b600080836001600160a01b031683604051611f8a91906130bb565b6000604051808303816000865af19150503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b5091509150818190611ff15760405162461bcd60e51b8152600401610abe91906130eb565b5050505050565b6001600160a01b0381166000908152600b602052604081205481606461201f836014613222565b6120299190613202565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561208657600080fd5b505afa15801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be9190612e81565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016120e991906130d7565b60206040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213991906130a3565b905060006064600754838661214e9190613222565b612159906050613222565b6121639190613202565b61216d9190613202565b905061218261217c82856131ea565b85612b68565b9695505050505050565b6040516370a0823160e01b8152611517906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906121dc9033906004016130d7565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906130a3565b6000805461225057506001600160a01b031660009081526006602052604090205490565b600080546001600160a01b038416825260036020908152604080842054600583528185205460049093529320549192670de0b6b3a764000092909161229491612b68565b61229d866113a8565b6122a79190613241565b6122b19190613222565b6122bb9190613222565b6122c59190613202565b6001600160a01b0383166000908152600660205260409020546107fa91906131ea565b600c81815481106122f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526013602052604081205481908061233f57600080925092505061252a565b6001600160a01b03851660009081526012602052604081208591612364600185613241565b81526020019081526020016000206000015411612401576001600160a01b03851660009081526012602052604081209061239f600184613241565b81526020019081526020016000206001015460126000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846123e59190613241565b815260200190815260200160002060000154925092505061252a565b6001600160a01b038516600090815260126020908152604080832083805290915290205484101561243957600080925092505061252a565b600080612447600184613241565b90505b818111156124f957600060026124608484613241565b61246a9190613202565b6124749083613241565b6001600160a01b03891660009081526012602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156124d35760208101519051909650945061252a9350505050565b80518811156124e4578193506124f2565b6124ef600183613241565b92505b505061244a565b506001600160a01b038616600090815260126020908152604080832093835292905220600181015490549093509150505b9250929050565b6000818310156125415781611412565b5090919050565b6001600160a01b0381166000908152600560209081526040808320546006909252822054601154839291906125805794909350915050565b6001600160a01b0385166000908152600360205260409020546125a7579442945092505050565b60006125b2836113cc565b9050600060016011546125c59190613241565b905060016125d38383613241565b11156126ab57815b6125e6600183613241565b8110156126a957600081815260106020908152604091829020825180840190935280548352600101549082018190521561269657600060108161262a8560016131ea565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806126758c8460000151866000015187602001518d612daa565b909250905061268482896131ea565b97506126918c8983612b77565b975050505b50806126a181613284565b9150506125db565b505b600081815260106020908152604091829020825180840190935280548352600101549082018190521561271d5760006126fe896126e78b6113a8565b84516126f3908a612531565b85602001518a612daa565b50905061270b81866131ea565b9450612718898642612b77565b429550505b509196929550919350505050565b6000836001600160a01b03163b116127555760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916127b191906130bb565b6000604051808303816000865af19150503d80600081146127ee576040519150601f19603f3d011682016040523d82523d6000602084013e6127f3565b606091505b509150915081801561281d57508051158061281d57508080602001905181019061281d919061306b565b611ff15760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610abe565b6001600160a01b0382166000908152600f6020526040902054429080158015906128b957506001600160a01b0384166000908152600e6020526040812083916128a5600185613241565b815260200190815260200160002060000154145b156128fc576001600160a01b0384166000908152600e6020526040812084916128e3600185613241565b8152602081019190915260400160002060010155612960565b60408051808201825283815260208082018681526001600160a01b0388166000908152600e83528481208682529092529290209051815590516001918201556129469082906131ea565b6001600160a01b0385166000908152600f60205260409020555b50505050565b60115442811580159061299857508060106000612984600186613241565b815260200190815260200160002060000154145b156129c957600054601060006001856129b19190613241565b81526020810191909152604001600020600101555050565b60408051808201825282815260008054602080840191825286835260109052929020905181559051600191820155612a029083906131ea565b6011555050565b6001600160a01b038216600090815260056020908152604080832054600690925282205460115483929190612a41579250905061252a565b6001600160a01b038616600090815260036020526040902054612a6a57925042915061252a9050565b6000612a75836113cc565b90506000612a916001601154612a8b9190613241565b88612b68565b9050815b81811015612b59576000818152601060209081526040918290208251808401909352805483526001015490820181905215612b46576000601081612ada8560016131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612b258d8460000151866000015187602001518d612daa565b9092509050612b3482896131ea565b9750612b418d8983612b77565b975050505b5080612b5181613284565b915050612a95565b50919792965091945050505050565b60008183106125415781611412565b6001600160a01b0383166000908152601360205260409020548015801590612bd357506001600160a01b03841660009081526012602052604081208391612bbf600185613241565b815260200190815260200160002060000154145b15612bfd576001600160a01b038416600090815260126020526040812084916128e3600185613241565b60408051808201825283815260208082018681526001600160a01b038816600090815260128352848120868252909252929020905181559051600191820155612c479082906131ea565b6001600160a01b03851660009081526013602052604090205550505050565b6000846001600160a01b03163b11612c905760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612cf491906130bb565b6000604051808303816000865af19150503d8060008114612d31576040519150601f19603f3d011682016040523d82523d6000602084013e612d36565b606091505b5091509150818015612d60575080511580612d60575080806020019051810190612d60919061306b565b612da25760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610abe565b505050505050565b6000806000612db98785612531565b6001600160a01b0389166000908152600360205260409020549091508590670de0b6b3a764000090612e0c612dee8a89612531565b6001600160a01b038d16600090815260046020526040902054612b68565b6001600160a01b038c16600090815260046020526040902054612e30908690612b68565b612e3a9190613241565b612e449190613222565b612e4e9190613222565b612e589190613202565b9890975095505050505050565b600060208284031215612e76578081fd5b8135611412816132cb565b600060208284031215612e92578081fd5b8151611412816132cb565b60008060408385031215612eaf578081fd5b8235612eba816132cb565b91506020830135612eca816132cb565b809150509250929050565b60008060408385031215612ee7578182fd5b8235612ef2816132cb565b915060208381013567ffffffffffffffff80821115612f0f578384fd5b818601915086601f830112612f22578384fd5b813581811115612f3457612f346132b5565b8060051b9150612f458483016131b9565b8181528481019084860184860187018b1015612f5f578788fd5b8795505b83861015612f8d5780359450612f78856132cb565b84835260019590950194918601918601612f63565b508096505050505050509250929050565b60008060408385031215612fb0578182fd5b8235612fbb816132cb565b915060208381013567ffffffffffffffff80821115612fd8578384fd5b818601915086601f830112612feb578384fd5b813581811115612ffd57612ffd6132b5565b61300f601f8201601f191685016131b9565b91508082528784828501011115613024578485fd5b8084840185840137810190920192909252919491935090915050565b60008060408385031215613052578182fd5b823561305d816132cb565b946020939093013593505050565b60006020828403121561307c578081fd5b81518015158114611412578182fd5b60006020828403121561309c578081fd5b5035919050565b6000602082840312156130b4578081fd5b5051919050565b600082516130cd818460208701613258565b9190910192915050565b6001600160a01b0391909116815260200190565b602081526000825180602084015261310a816040850160208701613258565b601f01601f19169190910160400192915050565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156131e2576131e26132b5565b604052919050565b600082198211156131fd576131fd61329f565b500190565b60008261321d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561323c5761323c61329f565b500290565b6000828210156132535761325361329f565b500390565b60005b8381101561327357818101518382015260200161325b565b838111156129605750506000910152565b60006000198214156132985761329861329f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9957600080fdfea2646970667358221220ef76c7b05bc344d038c159b25b16152f542ef861b30603bd627f5c17846627b264736f6c63430008040033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH10 0x10F0CF064DD59200000 PUSH1 0x7 SSTORE PUSH1 0x1 PUSH1 0x14 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3457 CODESIZE SUB DUP1 PUSH3 0x3457 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x47 SWAP2 PUSH3 0x83 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH3 0xBA JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x96 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH3 0xA1 DUP4 PUSH3 0x66 JUMP JUMPDEST SWAP2 POP PUSH3 0xB1 PUSH1 0x20 DUP5 ADD PUSH3 0x66 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x3316 PUSH3 0x141 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3B3 ADD MSTORE DUP2 DUP2 PUSH2 0x114E ADD MSTORE DUP2 DUP2 PUSH2 0x1728 ADD MSTORE DUP2 DUP2 PUSH2 0x1C15 ADD MSTORE PUSH2 0x21A7 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4EA ADD MSTORE DUP2 DUP2 PUSH2 0xAD1 ADD MSTORE DUP2 DUP2 PUSH2 0xB5F ADD MSTORE DUP2 DUP2 PUSH2 0xC59 ADD MSTORE DUP2 DUP2 PUSH2 0x11D1 ADD MSTORE DUP2 DUP2 PUSH2 0x158C ADD MSTORE DUP2 DUP2 PUSH2 0x1B7F ADD MSTORE DUP2 DUP2 PUSH2 0x1D19 ADD MSTORE DUP2 DUP2 PUSH2 0x1E40 ADD MSTORE PUSH2 0x202F ADD MSTORE PUSH2 0x3316 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xC4BF0220 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x62A JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDE5F6268 EQ PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA495E5B5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x572 JUMPI DUP1 PUSH4 0xB2E0DF96 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x638634EE GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x221CA18C GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x300 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28A PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28A PUSH2 0x2B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x800 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0xA90 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x366 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x39E PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x3F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39E PUSH2 0x41B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x10E3 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x14FE JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1519 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x580 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x158A JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x1B53 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x5EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x218C JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x641 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x222C JUMP JUMPDEST PUSH2 0x3D5 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x6BB JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x6E0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x70A JUMPI PUSH2 0x702 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x74D PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x766 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x770 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x77A SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x7CF JUMPI POP SWAP4 POP PUSH2 0x7FA SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x7E0 JUMPI DUP2 SWAP4 POP PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x7EB PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x750 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x846 SWAP2 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x870 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87C DUP5 DUP4 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x8A5 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x8B5 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x9C4 JUMPI DUP3 JUMPDEST PUSH2 0x8C8 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x91E SWAP1 DUP7 SWAP1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x95D DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x970 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x986 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x995 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x9A9 SWAP1 DUP8 PUSH2 0x31EA JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x9BA SWAP1 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8BD JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0xA0E SWAP1 DUP11 SWAP1 PUSH2 0x2312 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xA4D SWAP1 DUP4 SWAP1 PUSH2 0x2531 JUMP JUMPDEST PUSH2 0xA56 DUP12 PUSH2 0x222C JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA6F SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0xA83 SWAP1 DUP5 PUSH2 0x31EA JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA99 DUP2 PUSH2 0x10E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xC03 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBEE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD13 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x14 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x103D JUMPI PUSH2 0xD87 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDF9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE62 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x800 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x6 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF49 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xFB6 JUMPI PUSH2 0xFB6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x272B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1022 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1035 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1079 SWAP1 POP DUP4 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x10A8 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10D1 SWAP1 DUP5 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x2966 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1105 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x111F SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1143 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1174 SWAP1 POP PUSH32 0x0 CALLER DUP4 PUSH2 0x272B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ DUP1 ISZERO PUSH2 0x11A1 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12B2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127F SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x12D5 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x12E4 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x130A SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1329 SWAP2 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1331 PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE JUMP JUMPDEST PUSH2 0x137A DUP3 DUP3 PUSH2 0x2A09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7FA SWAP1 TIMESTAMP SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x13E0 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x13F0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1419 JUMPI PUSH2 0x1412 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH32 0x6E0956CDA88CAD152E89927E53611735B61A5C762D1428573C6931B0A5EFCB01 SLOAD DUP4 LT ISZERO PUSH2 0x1454 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1462 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x147B DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x148F SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x14D0 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x14E1 JUMPI DUP2 SWAP4 POP PUSH2 0x14EF JUMP JUMPDEST PUSH2 0x14EC PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1465 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1517 SWAP1 PUSH2 0xA90 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1540 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1564 SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1412 SWAP1 DUP3 PUSH2 0x3222 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x161B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x168B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xD4E4EFCFCF51E1A8C6521AADC7B9B28C60EF879531E81752C4286E1FA644EF29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x171E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x17E1 JUMPI PUSH2 0x17E1 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST PUSH2 0x17EA DUP3 PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1858 JUMPI PUSH2 0x182D DUP3 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST PUSH2 0x183A PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x187C SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x18A3 SWAP1 DUP4 PUSH2 0x3222 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x18F0 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2C66 JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x18FE DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST PUSH2 0x1908 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x197A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x19A9 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A08 PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x1A77 PUSH3 0x93A80 TIMESTAMP PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xD SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B09 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xDF6966C971051C3D54EC59162606531493A51404A002842F56009D7E5CF4A8C7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1B75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 GT PUSH2 0x1C10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH2 0x1C3C PUSH32 0x0 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C4E SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C72 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1C9A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1CA9 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1CCF SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1DFA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D9C SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC7 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1E04 CALLER DUP3 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1E0C PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH2 0x135F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ECF SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3F SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F8A SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 PUSH1 0x64 PUSH2 0x201F DUP4 PUSH1 0x14 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2029 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2086 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20BE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E9 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2139 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x7 SLOAD DUP4 DUP7 PUSH2 0x214E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2159 SWAP1 PUSH1 0x50 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2163 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH2 0x2182 PUSH2 0x217C DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST DUP6 PUSH2 0x2B68 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x1517 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x21DC SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x2250 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x5 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2294 SWAP2 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x229D DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x22A7 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22BB SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22C5 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7FA SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0xC DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2364 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x2401 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x239F PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x23E5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2439 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2447 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x2460 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x2474 SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x24D3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x252A SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x24E4 JUMPI DUP2 SWAP4 POP PUSH2 0x24F2 JUMP JUMPDEST PUSH2 0x24EF PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x244A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2580 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25A7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x25C5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x25D3 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x26AB JUMPI DUP2 JUMPDEST PUSH2 0x25E6 PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26A9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2696 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x262A DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2675 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2684 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2691 DUP13 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x26A1 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x25DB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 PUSH2 0x26FE DUP10 PUSH2 0x26E7 DUP12 PUSH2 0x13A8 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x26F3 SWAP1 DUP11 PUSH2 0x2531 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2DAA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x270B DUP2 DUP7 PUSH2 0x31EA JUMP JUMPDEST SWAP5 POP PUSH2 0x2718 DUP10 DUP7 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2755 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x27B1 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27F3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x281D JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x281D JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x281D SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28B9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x28A5 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x28FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2960 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2946 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2998 JUMPI POP DUP1 PUSH1 0x10 PUSH1 0x0 PUSH2 0x2984 PUSH1 0x1 DUP7 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x29C9 JUMPI PUSH1 0x0 SLOAD PUSH1 0x10 PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x29B1 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0x10 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2A02 SWAP1 DUP4 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x11 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A41 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2A6A JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x252A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A75 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2A91 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x2A8B SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP9 PUSH2 0x2B68 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B59 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x2ADA DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2B25 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2B34 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2B41 DUP14 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2B51 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2A95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2BD3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2BBF PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C47 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2C90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2CF4 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2D31 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2D36 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2D60 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D60 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x2DA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2DB9 DUP8 DUP6 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2E0C PUSH2 0x2DEE DUP11 DUP10 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E30 SWAP1 DUP7 SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x2E3A SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E58 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E76 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EAF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EBA DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2ECA DUP2 PUSH2 0x32CB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EF2 DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F0F JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F22 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2F34 JUMPI PUSH2 0x2F34 PUSH2 0x32B5 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x2F45 DUP5 DUP4 ADD PUSH2 0x31B9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x2F5F JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2F8D JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x2F78 DUP6 PUSH2 0x32CB JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x2F63 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2FBB DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FD8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FEB JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH2 0x2FFD PUSH2 0x32B5 JUMP JUMPDEST PUSH2 0x300F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x31B9 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3024 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x305D DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1412 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x309C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x30CD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x310A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x31E2 JUMPI PUSH2 0x31E2 PUSH2 0x32B5 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x329F JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x321D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x323C JUMPI PUSH2 0x323C PUSH2 0x329F JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3253 JUMPI PUSH2 0x3253 PUSH2 0x329F JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3273 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x325B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2960 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3298 JUMPI PUSH2 0x3298 PUSH2 0x329F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA99 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF PUSH23 0xC7B05BC344D038C159B25B16152F542EF861B30603BD62 PUSH32 0x5C17846627B264736F6C63430008040033000000000000000000000000000000 ","sourceMap":"731:22638:83:-:0;;;1492:7;1455:44;;2693:1;2664:30;;2833:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;2890:14:83;;;;;;;2914:31;;;;;731:22638;;14:177:139;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:303::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:2;;;357:6;349;342:22;304:2;385:40;415:9;385:40;:::i;:::-;375:50;;444:49;489:2;478:9;474:18;444:49;:::i;:::-;434:59;;294:205;;;;;:::o;:::-;731:22638:83;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:12063:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulVariableDeclaration","src":"165:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:139"},"nodeType":"YulFunctionCall","src":"178:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:139"},"nodeType":"YulFunctionCall","src":"210:31:139"},"nodeType":"YulExpressionStatement","src":"210:31:139"},{"nodeType":"YulAssignment","src":"250:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:257:139"},{"body":{"nodeType":"YulBlock","src":"357:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:139"},"nodeType":"YulFunctionCall","src":"405:22:139"},"nodeType":"YulExpressionStatement","src":"405:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:139"},"nodeType":"YulFunctionCall","src":"374:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:139"},"nodeType":"YulFunctionCall","src":"370:32:139"},"nodeType":"YulIf","src":"367:2:139"},{"nodeType":"YulVariableDeclaration","src":"438:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:139"},"nodeType":"YulFunctionCall","src":"451:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:139"},"nodeType":"YulFunctionCall","src":"476:31:139"},"nodeType":"YulExpressionStatement","src":"476:31:139"},{"nodeType":"YulAssignment","src":"516:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:139","type":""}],"src":"276:261:139"},{"body":{"nodeType":"YulBlock","src":"629:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"675:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"684:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"692:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:139"},"nodeType":"YulFunctionCall","src":"677:22:139"},"nodeType":"YulExpressionStatement","src":"677:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"650:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"646:3:139"},"nodeType":"YulFunctionCall","src":"646:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"642:3:139"},"nodeType":"YulFunctionCall","src":"642:32:139"},"nodeType":"YulIf","src":"639:2:139"},{"nodeType":"YulVariableDeclaration","src":"710:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"736:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"723:12:139"},"nodeType":"YulFunctionCall","src":"723:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"714:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"780:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"755:24:139"},"nodeType":"YulFunctionCall","src":"755:31:139"},"nodeType":"YulExpressionStatement","src":"755:31:139"},{"nodeType":"YulAssignment","src":"795:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"805:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"795:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"819:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"862:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"847:3:139"},"nodeType":"YulFunctionCall","src":"847:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"834:12:139"},"nodeType":"YulFunctionCall","src":"834:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"823:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"900:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"875:24:139"},"nodeType":"YulFunctionCall","src":"875:33:139"},"nodeType":"YulExpressionStatement","src":"875:33:139"},{"nodeType":"YulAssignment","src":"917:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"927:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"917:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"587:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"598:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"610:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"618:6:139","type":""}],"src":"542:398:139"},{"body":{"nodeType":"YulBlock","src":"1057:1106:139","statements":[{"body":{"nodeType":"YulBlock","src":"1103:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1112:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1120:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1105:6:139"},"nodeType":"YulFunctionCall","src":"1105:22:139"},"nodeType":"YulExpressionStatement","src":"1105:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1078:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1087:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1074:3:139"},"nodeType":"YulFunctionCall","src":"1074:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1099:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1070:3:139"},"nodeType":"YulFunctionCall","src":"1070:32:139"},"nodeType":"YulIf","src":"1067:2:139"},{"nodeType":"YulVariableDeclaration","src":"1138:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1164:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1151:12:139"},"nodeType":"YulFunctionCall","src":"1151:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1142:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1208:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1183:24:139"},"nodeType":"YulFunctionCall","src":"1183:31:139"},"nodeType":"YulExpressionStatement","src":"1183:31:139"},{"nodeType":"YulAssignment","src":"1223:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1233:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1247:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1257:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1251:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1268:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1299:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1310:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1295:3:139"},"nodeType":"YulFunctionCall","src":"1295:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1282:12:139"},"nodeType":"YulFunctionCall","src":"1282:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1272:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1323:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1333:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1327:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1378:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1387:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1395:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1380:6:139"},"nodeType":"YulFunctionCall","src":"1380:22:139"},"nodeType":"YulExpressionStatement","src":"1380:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1366:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1374:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1363:2:139"},"nodeType":"YulFunctionCall","src":"1363:14:139"},"nodeType":"YulIf","src":"1360:2:139"},{"nodeType":"YulVariableDeclaration","src":"1413:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1438:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1423:3:139"},"nodeType":"YulFunctionCall","src":"1423:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1417:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1493:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1502:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1510:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1495:6:139"},"nodeType":"YulFunctionCall","src":"1495:22:139"},"nodeType":"YulExpressionStatement","src":"1495:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1472:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1476:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1468:3:139"},"nodeType":"YulFunctionCall","src":"1468:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1483:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1464:3:139"},"nodeType":"YulFunctionCall","src":"1464:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1457:6:139"},"nodeType":"YulFunctionCall","src":"1457:35:139"},"nodeType":"YulIf","src":"1454:2:139"},{"nodeType":"YulVariableDeclaration","src":"1528:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1551:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1538:12:139"},"nodeType":"YulFunctionCall","src":"1538:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1532:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1577:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1579:16:139"},"nodeType":"YulFunctionCall","src":"1579:18:139"},"nodeType":"YulExpressionStatement","src":"1579:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1569:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1573:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1566:2:139"},"nodeType":"YulFunctionCall","src":"1566:10:139"},"nodeType":"YulIf","src":"1563:2:139"},{"nodeType":"YulVariableDeclaration","src":"1608:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1622:1:139","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"1625:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1618:3:139"},"nodeType":"YulFunctionCall","src":"1618:10:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"1612:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1637:39:139","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"1668:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1672:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1664:3:139"},"nodeType":"YulFunctionCall","src":"1664:11:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1648:15:139"},"nodeType":"YulFunctionCall","src":"1648:28:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1641:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1685:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1698:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1689:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1717:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1722:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1710:6:139"},"nodeType":"YulFunctionCall","src":"1710:15:139"},"nodeType":"YulExpressionStatement","src":"1710:15:139"},{"nodeType":"YulAssignment","src":"1734:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1745:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1750:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1741:3:139"},"nodeType":"YulFunctionCall","src":"1741:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1734:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1762:22:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1777:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1781:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1773:3:139"},"nodeType":"YulFunctionCall","src":"1773:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1766:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1830:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1839:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1847:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1832:6:139"},"nodeType":"YulFunctionCall","src":"1832:22:139"},"nodeType":"YulExpressionStatement","src":"1832:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1807:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"1811:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:139"},"nodeType":"YulFunctionCall","src":"1803:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1816:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1799:3:139"},"nodeType":"YulFunctionCall","src":"1799:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1821:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1796:2:139"},"nodeType":"YulFunctionCall","src":"1796:33:139"},"nodeType":"YulIf","src":"1793:2:139"},{"nodeType":"YulVariableDeclaration","src":"1865:15:139","value":{"name":"value1","nodeType":"YulIdentifier","src":"1874:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1869:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1934:199:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1948:32:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1976:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1963:12:139"},"nodeType":"YulFunctionCall","src":"1963:17:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1952:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2018:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1993:24:139"},"nodeType":"YulFunctionCall","src":"1993:33:139"},"nodeType":"YulExpressionStatement","src":"1993:33:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2046:3:139"},{"name":"value_1","nodeType":"YulIdentifier","src":"2051:7:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2039:6:139"},"nodeType":"YulFunctionCall","src":"2039:20:139"},"nodeType":"YulExpressionStatement","src":"2039:20:139"},{"nodeType":"YulAssignment","src":"2072:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2083:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2088:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2079:3:139"},"nodeType":"YulFunctionCall","src":"2079:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2072:3:139"}]},{"nodeType":"YulAssignment","src":"2104:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2115:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2120:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2111:3:139"},"nodeType":"YulFunctionCall","src":"2111:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2104:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1900:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1903:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1897:2:139"},"nodeType":"YulFunctionCall","src":"1897:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1907:18:139","statements":[{"nodeType":"YulAssignment","src":"1909:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1918:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1921:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1914:3:139"},"nodeType":"YulFunctionCall","src":"1914:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1909:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1893:3:139","statements":[]},"src":"1889:244:139"},{"nodeType":"YulAssignment","src":"2142:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2152:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2142:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1026:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1038:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1046:6:139","type":""}],"src":"945:1218:139"},{"body":{"nodeType":"YulBlock","src":"2264:847:139","statements":[{"body":{"nodeType":"YulBlock","src":"2310:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2319:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2327:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2312:6:139"},"nodeType":"YulFunctionCall","src":"2312:22:139"},"nodeType":"YulExpressionStatement","src":"2312:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2285:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2294:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2281:3:139"},"nodeType":"YulFunctionCall","src":"2281:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2306:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2277:3:139"},"nodeType":"YulFunctionCall","src":"2277:32:139"},"nodeType":"YulIf","src":"2274:2:139"},{"nodeType":"YulVariableDeclaration","src":"2345:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2371:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2358:12:139"},"nodeType":"YulFunctionCall","src":"2358:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2349:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2415:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2390:24:139"},"nodeType":"YulFunctionCall","src":"2390:31:139"},"nodeType":"YulExpressionStatement","src":"2390:31:139"},{"nodeType":"YulAssignment","src":"2430:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2440:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2430:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2454:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2464:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2458:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2475:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2506:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2517:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2502:3:139"},"nodeType":"YulFunctionCall","src":"2502:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2489:12:139"},"nodeType":"YulFunctionCall","src":"2489:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2479:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2530:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2540:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2534:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2585:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2594:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2602:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2587:6:139"},"nodeType":"YulFunctionCall","src":"2587:22:139"},"nodeType":"YulExpressionStatement","src":"2587:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2573:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2581:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2570:2:139"},"nodeType":"YulFunctionCall","src":"2570:14:139"},"nodeType":"YulIf","src":"2567:2:139"},{"nodeType":"YulVariableDeclaration","src":"2620:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2634:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2645:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2630:3:139"},"nodeType":"YulFunctionCall","src":"2630:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2624:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2700:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2709:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2717:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2702:6:139"},"nodeType":"YulFunctionCall","src":"2702:22:139"},"nodeType":"YulExpressionStatement","src":"2702:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2679:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2683:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2675:3:139"},"nodeType":"YulFunctionCall","src":"2675:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2690:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2671:3:139"},"nodeType":"YulFunctionCall","src":"2671:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2664:6:139"},"nodeType":"YulFunctionCall","src":"2664:35:139"},"nodeType":"YulIf","src":"2661:2:139"},{"nodeType":"YulVariableDeclaration","src":"2735:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2758:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2745:12:139"},"nodeType":"YulFunctionCall","src":"2745:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2739:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2784:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2786:16:139"},"nodeType":"YulFunctionCall","src":"2786:18:139"},"nodeType":"YulExpressionStatement","src":"2786:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2776:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2780:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2773:2:139"},"nodeType":"YulFunctionCall","src":"2773:10:139"},"nodeType":"YulIf","src":"2770:2:139"},{"nodeType":"YulVariableDeclaration","src":"2815:66:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2856:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"2860:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:139"},"nodeType":"YulFunctionCall","src":"2852:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2871:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2867:3:139"},"nodeType":"YulFunctionCall","src":"2867:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2848:3:139"},"nodeType":"YulFunctionCall","src":"2848:27:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2877:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2844:3:139"},"nodeType":"YulFunctionCall","src":"2844:36:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2828:15:139"},"nodeType":"YulFunctionCall","src":"2828:53:139"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"2819:5:139","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2897:5:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2904:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2890:6:139"},"nodeType":"YulFunctionCall","src":"2890:17:139"},"nodeType":"YulExpressionStatement","src":"2890:17:139"},{"body":{"nodeType":"YulBlock","src":"2953:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2962:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2970:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2955:6:139"},"nodeType":"YulFunctionCall","src":"2955:22:139"},"nodeType":"YulExpressionStatement","src":"2955:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2930:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2934:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2926:3:139"},"nodeType":"YulFunctionCall","src":"2926:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2939:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2922:3:139"},"nodeType":"YulFunctionCall","src":"2922:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2944:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2919:2:139"},"nodeType":"YulFunctionCall","src":"2919:33:139"},"nodeType":"YulIf","src":"2916:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3005:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3012:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3001:3:139"},"nodeType":"YulFunctionCall","src":"3001:14:139"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3021:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3025:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3017:3:139"},"nodeType":"YulFunctionCall","src":"3017:11:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3030:2:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2988:12:139"},"nodeType":"YulFunctionCall","src":"2988:45:139"},"nodeType":"YulExpressionStatement","src":"2988:45:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3057:5:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3064:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3053:3:139"},"nodeType":"YulFunctionCall","src":"3053:14:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3069:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3049:3:139"},"nodeType":"YulFunctionCall","src":"3049:23:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3074:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3042:6:139"},"nodeType":"YulFunctionCall","src":"3042:39:139"},"nodeType":"YulExpressionStatement","src":"3042:39:139"},{"nodeType":"YulAssignment","src":"3090:15:139","value":{"name":"array","nodeType":"YulIdentifier","src":"3100:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3090:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2222:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2233:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2245:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2253:6:139","type":""}],"src":"2168:943:139"},{"body":{"nodeType":"YulBlock","src":"3203:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"3249:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3258:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3266:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3251:6:139"},"nodeType":"YulFunctionCall","src":"3251:22:139"},"nodeType":"YulExpressionStatement","src":"3251:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3224:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3233:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3220:3:139"},"nodeType":"YulFunctionCall","src":"3220:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3245:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3216:3:139"},"nodeType":"YulFunctionCall","src":"3216:32:139"},"nodeType":"YulIf","src":"3213:2:139"},{"nodeType":"YulVariableDeclaration","src":"3284:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3310:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3297:12:139"},"nodeType":"YulFunctionCall","src":"3297:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3288:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3354:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3329:24:139"},"nodeType":"YulFunctionCall","src":"3329:31:139"},"nodeType":"YulExpressionStatement","src":"3329:31:139"},{"nodeType":"YulAssignment","src":"3369:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3379:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3369:6:139"}]},{"nodeType":"YulAssignment","src":"3393:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3416:3:139"},"nodeType":"YulFunctionCall","src":"3416:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3403:12:139"},"nodeType":"YulFunctionCall","src":"3403:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3393:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3161:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3172:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3184:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3192:6:139","type":""}],"src":"3116:325:139"},{"body":{"nodeType":"YulBlock","src":"3524:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"3570:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3579:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3587:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3572:6:139"},"nodeType":"YulFunctionCall","src":"3572:22:139"},"nodeType":"YulExpressionStatement","src":"3572:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3545:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3554:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3541:3:139"},"nodeType":"YulFunctionCall","src":"3541:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3566:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3537:3:139"},"nodeType":"YulFunctionCall","src":"3537:32:139"},"nodeType":"YulIf","src":"3534:2:139"},{"nodeType":"YulVariableDeclaration","src":"3605:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3624:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3618:5:139"},"nodeType":"YulFunctionCall","src":"3618:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3609:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3687:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3696:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3704:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3689:6:139"},"nodeType":"YulFunctionCall","src":"3689:22:139"},"nodeType":"YulExpressionStatement","src":"3689:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3656:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3677:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3670:6:139"},"nodeType":"YulFunctionCall","src":"3670:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3663:6:139"},"nodeType":"YulFunctionCall","src":"3663:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3653:2:139"},"nodeType":"YulFunctionCall","src":"3653:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3646:6:139"},"nodeType":"YulFunctionCall","src":"3646:40:139"},"nodeType":"YulIf","src":"3643:2:139"},{"nodeType":"YulAssignment","src":"3722:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3732:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3722:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3490:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3501:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3513:6:139","type":""}],"src":"3446:297:139"},{"body":{"nodeType":"YulBlock","src":"3818:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"3864:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3873:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3881:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3866:6:139"},"nodeType":"YulFunctionCall","src":"3866:22:139"},"nodeType":"YulExpressionStatement","src":"3866:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3839:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3848:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3835:3:139"},"nodeType":"YulFunctionCall","src":"3835:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3860:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3831:3:139"},"nodeType":"YulFunctionCall","src":"3831:32:139"},"nodeType":"YulIf","src":"3828:2:139"},{"nodeType":"YulAssignment","src":"3899:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3922:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3909:12:139"},"nodeType":"YulFunctionCall","src":"3909:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3899:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3784:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3795:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3807:6:139","type":""}],"src":"3748:190:139"},{"body":{"nodeType":"YulBlock","src":"4024:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"4070:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4079:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4087:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4072:6:139"},"nodeType":"YulFunctionCall","src":"4072:22:139"},"nodeType":"YulExpressionStatement","src":"4072:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4045:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4054:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4041:3:139"},"nodeType":"YulFunctionCall","src":"4041:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4066:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4037:3:139"},"nodeType":"YulFunctionCall","src":"4037:32:139"},"nodeType":"YulIf","src":"4034:2:139"},{"nodeType":"YulAssignment","src":"4105:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4121:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4115:5:139"},"nodeType":"YulFunctionCall","src":"4115:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4105:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3990:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4001:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4013:6:139","type":""}],"src":"3943:194:139"},{"body":{"nodeType":"YulBlock","src":"4279:137:139","statements":[{"nodeType":"YulVariableDeclaration","src":"4289:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4309:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4303:5:139"},"nodeType":"YulFunctionCall","src":"4303:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4293:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4351:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4359:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4347:3:139"},"nodeType":"YulFunctionCall","src":"4347:17:139"},{"name":"pos","nodeType":"YulIdentifier","src":"4366:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4371:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4325:21:139"},"nodeType":"YulFunctionCall","src":"4325:53:139"},"nodeType":"YulExpressionStatement","src":"4325:53:139"},{"nodeType":"YulAssignment","src":"4387:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4398:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"4403:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4394:3:139"},"nodeType":"YulFunctionCall","src":"4394:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4387:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4255:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4260:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4271:3:139","type":""}],"src":"4142:274:139"},{"body":{"nodeType":"YulBlock","src":"4522:102:139","statements":[{"nodeType":"YulAssignment","src":"4532:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4544:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4555:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4540:3:139"},"nodeType":"YulFunctionCall","src":"4540:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4532:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4574:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4589:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4605:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4610:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4601:3:139"},"nodeType":"YulFunctionCall","src":"4601:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4614:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4597:3:139"},"nodeType":"YulFunctionCall","src":"4597:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4585:3:139"},"nodeType":"YulFunctionCall","src":"4585:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4567:6:139"},"nodeType":"YulFunctionCall","src":"4567:51:139"},"nodeType":"YulExpressionStatement","src":"4567:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4491:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4502:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4513:4:139","type":""}],"src":"4421:203:139"},{"body":{"nodeType":"YulBlock","src":"4786:218:139","statements":[{"nodeType":"YulAssignment","src":"4796:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4808:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4819:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4804:3:139"},"nodeType":"YulFunctionCall","src":"4804:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4796:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"4831:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4849:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4854:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4845:3:139"},"nodeType":"YulFunctionCall","src":"4845:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4858:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4841:3:139"},"nodeType":"YulFunctionCall","src":"4841:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4835:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4876:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4891:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4899:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4887:3:139"},"nodeType":"YulFunctionCall","src":"4887:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4869:6:139"},"nodeType":"YulFunctionCall","src":"4869:34:139"},"nodeType":"YulExpressionStatement","src":"4869:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4923:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4934:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4919:3:139"},"nodeType":"YulFunctionCall","src":"4919:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4943:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4951:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4939:3:139"},"nodeType":"YulFunctionCall","src":"4939:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4912:6:139"},"nodeType":"YulFunctionCall","src":"4912:43:139"},"nodeType":"YulExpressionStatement","src":"4912:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4975:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4986:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4971:3:139"},"nodeType":"YulFunctionCall","src":"4971:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"4991:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4964:6:139"},"nodeType":"YulFunctionCall","src":"4964:34:139"},"nodeType":"YulExpressionStatement","src":"4964:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4739:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4750:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4758:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4766:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4777:4:139","type":""}],"src":"4629:375:139"},{"body":{"nodeType":"YulBlock","src":"5138:145:139","statements":[{"nodeType":"YulAssignment","src":"5148:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5160:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5171:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5156:3:139"},"nodeType":"YulFunctionCall","src":"5156:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5148:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5190:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5205:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5221:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5226:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5217:3:139"},"nodeType":"YulFunctionCall","src":"5217:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5230:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5213:3:139"},"nodeType":"YulFunctionCall","src":"5213:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5201:3:139"},"nodeType":"YulFunctionCall","src":"5201:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5183:6:139"},"nodeType":"YulFunctionCall","src":"5183:51:139"},"nodeType":"YulExpressionStatement","src":"5183:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5254:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5265:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5250:3:139"},"nodeType":"YulFunctionCall","src":"5250:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5270:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5243:6:139"},"nodeType":"YulFunctionCall","src":"5243:34:139"},"nodeType":"YulExpressionStatement","src":"5243:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5099:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5110:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5118:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5129:4:139","type":""}],"src":"5009:274:139"},{"body":{"nodeType":"YulBlock","src":"5383:92:139","statements":[{"nodeType":"YulAssignment","src":"5393:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5405:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5416:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5401:3:139"},"nodeType":"YulFunctionCall","src":"5401:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5393:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5435:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5460:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5453:6:139"},"nodeType":"YulFunctionCall","src":"5453:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5446:6:139"},"nodeType":"YulFunctionCall","src":"5446:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5428:6:139"},"nodeType":"YulFunctionCall","src":"5428:41:139"},"nodeType":"YulExpressionStatement","src":"5428:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5352:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5363:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5374:4:139","type":""}],"src":"5288:187:139"},{"body":{"nodeType":"YulBlock","src":"5600:102:139","statements":[{"nodeType":"YulAssignment","src":"5610:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5622:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5633:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5618:3:139"},"nodeType":"YulFunctionCall","src":"5618:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5610:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5652:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5667:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5683:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5688:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5679:3:139"},"nodeType":"YulFunctionCall","src":"5679:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5692:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5675:3:139"},"nodeType":"YulFunctionCall","src":"5675:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5663:3:139"},"nodeType":"YulFunctionCall","src":"5663:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5645:6:139"},"nodeType":"YulFunctionCall","src":"5645:51:139"},"nodeType":"YulExpressionStatement","src":"5645:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5569:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5580:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5591:4:139","type":""}],"src":"5480:222:139"},{"body":{"nodeType":"YulBlock","src":"5828:262:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5845:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5856:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5838:6:139"},"nodeType":"YulFunctionCall","src":"5838:21:139"},"nodeType":"YulExpressionStatement","src":"5838:21:139"},{"nodeType":"YulVariableDeclaration","src":"5868:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5888:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5882:5:139"},"nodeType":"YulFunctionCall","src":"5882:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5872:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5915:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5926:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5911:3:139"},"nodeType":"YulFunctionCall","src":"5911:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"5931:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5904:6:139"},"nodeType":"YulFunctionCall","src":"5904:34:139"},"nodeType":"YulExpressionStatement","src":"5904:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5973:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5981:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5969:3:139"},"nodeType":"YulFunctionCall","src":"5969:15:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5990:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6001:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5986:3:139"},"nodeType":"YulFunctionCall","src":"5986:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"6006:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5947:21:139"},"nodeType":"YulFunctionCall","src":"5947:66:139"},"nodeType":"YulExpressionStatement","src":"5947:66:139"},{"nodeType":"YulAssignment","src":"6022:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6038:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6057:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6065:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6053:3:139"},"nodeType":"YulFunctionCall","src":"6053:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6074:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6070:3:139"},"nodeType":"YulFunctionCall","src":"6070:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6049:3:139"},"nodeType":"YulFunctionCall","src":"6049:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6034:3:139"},"nodeType":"YulFunctionCall","src":"6034:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"6081:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6030:3:139"},"nodeType":"YulFunctionCall","src":"6030:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6022:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5797:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5808:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5819:4:139","type":""}],"src":"5707:383:139"},{"body":{"nodeType":"YulBlock","src":"6269:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6286:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6297:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6279:6:139"},"nodeType":"YulFunctionCall","src":"6279:21:139"},"nodeType":"YulExpressionStatement","src":"6279:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6320:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6331:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6316:3:139"},"nodeType":"YulFunctionCall","src":"6316:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6336:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6309:6:139"},"nodeType":"YulFunctionCall","src":"6309:30:139"},"nodeType":"YulExpressionStatement","src":"6309:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6359:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6370:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6355:3:139"},"nodeType":"YulFunctionCall","src":"6355:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6375:21:139","type":"","value":"invalid code length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6348:6:139"},"nodeType":"YulFunctionCall","src":"6348:49:139"},"nodeType":"YulExpressionStatement","src":"6348:49:139"},{"nodeType":"YulAssignment","src":"6406:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6418:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6429:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6414:3:139"},"nodeType":"YulFunctionCall","src":"6414:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6406:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6246:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6260:4:139","type":""}],"src":"6095:343:139"},{"body":{"nodeType":"YulBlock","src":"6617:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6634:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6645:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6627:6:139"},"nodeType":"YulFunctionCall","src":"6627:21:139"},"nodeType":"YulExpressionStatement","src":"6627:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6668:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6679:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6664:3:139"},"nodeType":"YulFunctionCall","src":"6664:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6684:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6657:6:139"},"nodeType":"YulFunctionCall","src":"6657:30:139"},"nodeType":"YulExpressionStatement","src":"6657:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6707:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6718:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6703:3:139"},"nodeType":"YulFunctionCall","src":"6703:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6723:12:139","type":"","value":"reentrancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6696:6:139"},"nodeType":"YulFunctionCall","src":"6696:40:139"},"nodeType":"YulExpressionStatement","src":"6696:40:139"},{"nodeType":"YulAssignment","src":"6745:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6757:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6768:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6753:3:139"},"nodeType":"YulFunctionCall","src":"6753:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6745:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6594:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6608:4:139","type":""}],"src":"6443:334:139"},{"body":{"nodeType":"YulBlock","src":"6956:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6973:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6984:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6966:6:139"},"nodeType":"YulFunctionCall","src":"6966:21:139"},"nodeType":"YulExpressionStatement","src":"6966:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7007:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7018:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7003:3:139"},"nodeType":"YulFunctionCall","src":"7003:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7023:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6996:6:139"},"nodeType":"YulFunctionCall","src":"6996:30:139"},"nodeType":"YulExpressionStatement","src":"6996:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7046:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7057:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7042:3:139"},"nodeType":"YulFunctionCall","src":"7042:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7062:14:139","type":"","value":"not timelock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7035:6:139"},"nodeType":"YulFunctionCall","src":"7035:42:139"},"nodeType":"YulExpressionStatement","src":"7035:42:139"},{"nodeType":"YulAssignment","src":"7086:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7098:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7109:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7094:3:139"},"nodeType":"YulFunctionCall","src":"7094:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7086:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6933:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6947:4:139","type":""}],"src":"6782:336:139"},{"body":{"nodeType":"YulBlock","src":"7297:177:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7314:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7325:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7307:6:139"},"nodeType":"YulFunctionCall","src":"7307:21:139"},"nodeType":"YulExpressionStatement","src":"7307:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7348:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7359:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7344:3:139"},"nodeType":"YulFunctionCall","src":"7344:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7364:2:139","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7337:6:139"},"nodeType":"YulFunctionCall","src":"7337:30:139"},"nodeType":"YulExpressionStatement","src":"7337:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7387:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7398:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7383:3:139"},"nodeType":"YulFunctionCall","src":"7383:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7403:29:139","type":"","value":"sender not account or voter"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7376:6:139"},"nodeType":"YulFunctionCall","src":"7376:57:139"},"nodeType":"YulExpressionStatement","src":"7376:57:139"},{"nodeType":"YulAssignment","src":"7442:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7454:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7465:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7450:3:139"},"nodeType":"YulFunctionCall","src":"7450:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7442:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7274:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7288:4:139","type":""}],"src":"7123:351:139"},{"body":{"nodeType":"YulBlock","src":"7653:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7670:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7681:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7663:6:139"},"nodeType":"YulFunctionCall","src":"7663:21:139"},"nodeType":"YulExpressionStatement","src":"7663:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7704:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7715:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7700:3:139"},"nodeType":"YulFunctionCall","src":"7700:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7720:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7693:6:139"},"nodeType":"YulFunctionCall","src":"7693:30:139"},"nodeType":"YulExpressionStatement","src":"7693:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7743:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7754:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7739:3:139"},"nodeType":"YulFunctionCall","src":"7739:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7759:21:139","type":"","value":"transferFrom failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7732:6:139"},"nodeType":"YulFunctionCall","src":"7732:49:139"},"nodeType":"YulExpressionStatement","src":"7732:49:139"},{"nodeType":"YulAssignment","src":"7790:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7802:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7813:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7798:3:139"},"nodeType":"YulFunctionCall","src":"7798:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7790:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7630:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7644:4:139","type":""}],"src":"7479:343:139"},{"body":{"nodeType":"YulBlock","src":"8001:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8018:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8029:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8011:6:139"},"nodeType":"YulFunctionCall","src":"8011:21:139"},"nodeType":"YulExpressionStatement","src":"8011:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8052:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8063:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8048:3:139"},"nodeType":"YulFunctionCall","src":"8048:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8068:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8041:6:139"},"nodeType":"YulFunctionCall","src":"8041:30:139"},"nodeType":"YulExpressionStatement","src":"8041:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8102:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8087:3:139"},"nodeType":"YulFunctionCall","src":"8087:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8107:26:139","type":"","value":"Provided reward too high"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8080:6:139"},"nodeType":"YulFunctionCall","src":"8080:54:139"},"nodeType":"YulExpressionStatement","src":"8080:54:139"},{"nodeType":"YulAssignment","src":"8143:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8155:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8166:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8151:3:139"},"nodeType":"YulFunctionCall","src":"8151:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8143:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7978:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7992:4:139","type":""}],"src":"7827:348:139"},{"body":{"nodeType":"YulBlock","src":"8354:163:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8371:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8382:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8364:6:139"},"nodeType":"YulFunctionCall","src":"8364:21:139"},"nodeType":"YulExpressionStatement","src":"8364:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8405:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8416:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8401:3:139"},"nodeType":"YulFunctionCall","src":"8401:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8421:2:139","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8394:6:139"},"nodeType":"YulFunctionCall","src":"8394:30:139"},"nodeType":"YulExpressionStatement","src":"8394:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8444:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8455:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8440:3:139"},"nodeType":"YulFunctionCall","src":"8440:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8460:15:139","type":"","value":"token = stake"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8433:6:139"},"nodeType":"YulFunctionCall","src":"8433:43:139"},"nodeType":"YulExpressionStatement","src":"8433:43:139"},{"nodeType":"YulAssignment","src":"8485:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8497:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8508:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8493:3:139"},"nodeType":"YulFunctionCall","src":"8493:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8485:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8331:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8345:4:139","type":""}],"src":"8180:337:139"},{"body":{"nodeType":"YulBlock","src":"8696:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8713:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8724:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8706:6:139"},"nodeType":"YulFunctionCall","src":"8706:21:139"},"nodeType":"YulExpressionStatement","src":"8706:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8747:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8758:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8743:3:139"},"nodeType":"YulFunctionCall","src":"8743:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8763:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8736:6:139"},"nodeType":"YulFunctionCall","src":"8736:30:139"},"nodeType":"YulExpressionStatement","src":"8736:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8786:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8797:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8782:3:139"},"nodeType":"YulFunctionCall","src":"8782:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8802:17:139","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8775:6:139"},"nodeType":"YulFunctionCall","src":"8775:45:139"},"nodeType":"YulExpressionStatement","src":"8775:45:139"},{"nodeType":"YulAssignment","src":"8829:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8841:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8852:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8837:3:139"},"nodeType":"YulFunctionCall","src":"8837:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8829:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8673:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8687:4:139","type":""}],"src":"8522:339:139"},{"body":{"nodeType":"YulBlock","src":"9040:163:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9057:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9068:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9050:6:139"},"nodeType":"YulFunctionCall","src":"9050:21:139"},"nodeType":"YulExpressionStatement","src":"9050:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9102:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9087:3:139"},"nodeType":"YulFunctionCall","src":"9087:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9107:2:139","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9080:6:139"},"nodeType":"YulFunctionCall","src":"9080:30:139"},"nodeType":"YulExpressionStatement","src":"9080:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9130:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9141:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9126:3:139"},"nodeType":"YulFunctionCall","src":"9126:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9146:15:139","type":"","value":"amount > left"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9119:6:139"},"nodeType":"YulFunctionCall","src":"9119:43:139"},"nodeType":"YulExpressionStatement","src":"9119:43:139"},{"nodeType":"YulAssignment","src":"9171:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9183:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9194:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9179:3:139"},"nodeType":"YulFunctionCall","src":"9179:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9171:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9017:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9031:4:139","type":""}],"src":"8866:337:139"},{"body":{"nodeType":"YulBlock","src":"9382:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9399:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9410:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9392:6:139"},"nodeType":"YulFunctionCall","src":"9392:21:139"},"nodeType":"YulExpressionStatement","src":"9392:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9433:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9444:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9429:3:139"},"nodeType":"YulFunctionCall","src":"9429:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9449:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9422:6:139"},"nodeType":"YulFunctionCall","src":"9422:30:139"},"nodeType":"YulExpressionStatement","src":"9422:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9472:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9483:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9468:3:139"},"nodeType":"YulFunctionCall","src":"9468:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9488:16:139","type":"","value":"rewardrate = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9461:6:139"},"nodeType":"YulFunctionCall","src":"9461:44:139"},"nodeType":"YulExpressionStatement","src":"9461:44:139"},{"nodeType":"YulAssignment","src":"9514:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9526:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9537:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9522:3:139"},"nodeType":"YulFunctionCall","src":"9522:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9514:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9359:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9373:4:139","type":""}],"src":"9208:338:139"},{"body":{"nodeType":"YulBlock","src":"9725:160:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9742:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9753:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9735:6:139"},"nodeType":"YulFunctionCall","src":"9735:21:139"},"nodeType":"YulExpressionStatement","src":"9735:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9776:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9787:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9772:3:139"},"nodeType":"YulFunctionCall","src":"9772:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9792:2:139","type":"","value":"10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9765:6:139"},"nodeType":"YulFunctionCall","src":"9765:30:139"},"nodeType":"YulExpressionStatement","src":"9765:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9815:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9826:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9811:3:139"},"nodeType":"YulFunctionCall","src":"9811:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9831:12:139","type":"","value":"amount = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9804:6:139"},"nodeType":"YulFunctionCall","src":"9804:40:139"},"nodeType":"YulExpressionStatement","src":"9804:40:139"},{"nodeType":"YulAssignment","src":"9853:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9865:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9876:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9861:3:139"},"nodeType":"YulFunctionCall","src":"9861:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9853:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9702:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9716:4:139","type":""}],"src":"9551:334:139"},{"body":{"nodeType":"YulBlock","src":"9991:76:139","statements":[{"nodeType":"YulAssignment","src":"10001:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10013:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10024:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10009:3:139"},"nodeType":"YulFunctionCall","src":"10009:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10001:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10043:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10054:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10036:6:139"},"nodeType":"YulFunctionCall","src":"10036:25:139"},"nodeType":"YulExpressionStatement","src":"10036:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9960:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9971:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9982:4:139","type":""}],"src":"9890:177:139"},{"body":{"nodeType":"YulBlock","src":"10201:119:139","statements":[{"nodeType":"YulAssignment","src":"10211:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10223:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10234:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10219:3:139"},"nodeType":"YulFunctionCall","src":"10219:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10211:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10253:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10264:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10246:6:139"},"nodeType":"YulFunctionCall","src":"10246:25:139"},"nodeType":"YulExpressionStatement","src":"10246:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10291:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10302:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10287:3:139"},"nodeType":"YulFunctionCall","src":"10287:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"10307:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10280:6:139"},"nodeType":"YulFunctionCall","src":"10280:34:139"},"nodeType":"YulExpressionStatement","src":"10280:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10162:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10173:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10181:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10192:4:139","type":""}],"src":"10072:248:139"},{"body":{"nodeType":"YulBlock","src":"10370:230:139","statements":[{"nodeType":"YulAssignment","src":"10380:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10396:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10390:5:139"},"nodeType":"YulFunctionCall","src":"10390:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10380:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"10408:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10430:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"10446:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"10452:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10442:3:139"},"nodeType":"YulFunctionCall","src":"10442:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10461:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10457:3:139"},"nodeType":"YulFunctionCall","src":"10457:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10438:3:139"},"nodeType":"YulFunctionCall","src":"10438:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10426:3:139"},"nodeType":"YulFunctionCall","src":"10426:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"10412:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"10541:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"10543:16:139"},"nodeType":"YulFunctionCall","src":"10543:18:139"},"nodeType":"YulExpressionStatement","src":"10543:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10484:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"10496:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10481:2:139"},"nodeType":"YulFunctionCall","src":"10481:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10520:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"10532:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10517:2:139"},"nodeType":"YulFunctionCall","src":"10517:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"10478:2:139"},"nodeType":"YulFunctionCall","src":"10478:62:139"},"nodeType":"YulIf","src":"10475:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10579:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10583:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10572:6:139"},"nodeType":"YulFunctionCall","src":"10572:22:139"},"nodeType":"YulExpressionStatement","src":"10572:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"10350:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"10359:6:139","type":""}],"src":"10325:275:139"},{"body":{"nodeType":"YulBlock","src":"10653:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"10680:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10682:16:139"},"nodeType":"YulFunctionCall","src":"10682:18:139"},"nodeType":"YulExpressionStatement","src":"10682:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10669:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10676:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10672:3:139"},"nodeType":"YulFunctionCall","src":"10672:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10666:2:139"},"nodeType":"YulFunctionCall","src":"10666:13:139"},"nodeType":"YulIf","src":"10663:2:139"},{"nodeType":"YulAssignment","src":"10711:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10722:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10725:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10718:3:139"},"nodeType":"YulFunctionCall","src":"10718:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"10711:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10636:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10639:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"10645:3:139","type":""}],"src":"10605:128:139"},{"body":{"nodeType":"YulBlock","src":"10784:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"10815:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"10836:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10843:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10848:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10839:3:139"},"nodeType":"YulFunctionCall","src":"10839:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10829:6:139"},"nodeType":"YulFunctionCall","src":"10829:31:139"},"nodeType":"YulExpressionStatement","src":"10829:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10880:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10883:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10873:6:139"},"nodeType":"YulFunctionCall","src":"10873:15:139"},"nodeType":"YulExpressionStatement","src":"10873:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"10908:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"10911:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10901:6:139"},"nodeType":"YulFunctionCall","src":"10901:15:139"},"nodeType":"YulExpressionStatement","src":"10901:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10804:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10797:6:139"},"nodeType":"YulFunctionCall","src":"10797:9:139"},"nodeType":"YulIf","src":"10794:2:139"},{"nodeType":"YulAssignment","src":"10935:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10944:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"10947:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"10940:3:139"},"nodeType":"YulFunctionCall","src":"10940:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"10935:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10769:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10772:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"10778:1:139","type":""}],"src":"10738:217:139"},{"body":{"nodeType":"YulBlock","src":"11012:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"11071:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11073:16:139"},"nodeType":"YulFunctionCall","src":"11073:18:139"},"nodeType":"YulExpressionStatement","src":"11073:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11043:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11036:6:139"},"nodeType":"YulFunctionCall","src":"11036:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11029:6:139"},"nodeType":"YulFunctionCall","src":"11029:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11051:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11062:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11058:3:139"},"nodeType":"YulFunctionCall","src":"11058:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"11066:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11054:3:139"},"nodeType":"YulFunctionCall","src":"11054:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11048:2:139"},"nodeType":"YulFunctionCall","src":"11048:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11025:3:139"},"nodeType":"YulFunctionCall","src":"11025:45:139"},"nodeType":"YulIf","src":"11022:2:139"},{"nodeType":"YulAssignment","src":"11102:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11117:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11120:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"11113:3:139"},"nodeType":"YulFunctionCall","src":"11113:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"11102:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10991:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"10994:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"11000:7:139","type":""}],"src":"10960:168:139"},{"body":{"nodeType":"YulBlock","src":"11182:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"11204:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11206:16:139"},"nodeType":"YulFunctionCall","src":"11206:18:139"},"nodeType":"YulExpressionStatement","src":"11206:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11198:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11201:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11195:2:139"},"nodeType":"YulFunctionCall","src":"11195:8:139"},"nodeType":"YulIf","src":"11192:2:139"},{"nodeType":"YulAssignment","src":"11235:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11247:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"11250:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11243:3:139"},"nodeType":"YulFunctionCall","src":"11243:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"11235:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11164:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"11167:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"11173:4:139","type":""}],"src":"11133:125:139"},{"body":{"nodeType":"YulBlock","src":"11316:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"11326:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"11335:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11330:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"11395:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"11420:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"11425:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11416:3:139"},"nodeType":"YulFunctionCall","src":"11416:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11439:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"11444:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11435:3:139"},"nodeType":"YulFunctionCall","src":"11435:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11429:5:139"},"nodeType":"YulFunctionCall","src":"11429:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11409:6:139"},"nodeType":"YulFunctionCall","src":"11409:39:139"},"nodeType":"YulExpressionStatement","src":"11409:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11356:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"11359:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11353:2:139"},"nodeType":"YulFunctionCall","src":"11353:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11367:19:139","statements":[{"nodeType":"YulAssignment","src":"11369:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11378:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"11381:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11374:3:139"},"nodeType":"YulFunctionCall","src":"11374:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"11369:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"11349:3:139","statements":[]},"src":"11345:113:139"},{"body":{"nodeType":"YulBlock","src":"11484:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"11497:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"11502:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11493:3:139"},"nodeType":"YulFunctionCall","src":"11493:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"11511:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11486:6:139"},"nodeType":"YulFunctionCall","src":"11486:27:139"},"nodeType":"YulExpressionStatement","src":"11486:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11473:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"11476:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11470:2:139"},"nodeType":"YulFunctionCall","src":"11470:13:139"},"nodeType":"YulIf","src":"11467:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"11294:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"11299:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"11304:6:139","type":""}],"src":"11263:258:139"},{"body":{"nodeType":"YulBlock","src":"11573:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"11604:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11606:16:139"},"nodeType":"YulFunctionCall","src":"11606:18:139"},"nodeType":"YulExpressionStatement","src":"11606:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11589:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11600:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11596:3:139"},"nodeType":"YulFunctionCall","src":"11596:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11586:2:139"},"nodeType":"YulFunctionCall","src":"11586:17:139"},"nodeType":"YulIf","src":"11583:2:139"},{"nodeType":"YulAssignment","src":"11635:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11646:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"11653:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11642:3:139"},"nodeType":"YulFunctionCall","src":"11642:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"11635:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11555:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"11565:3:139","type":""}],"src":"11526:135:139"},{"body":{"nodeType":"YulBlock","src":"11698:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11715:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11722:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11727:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11718:3:139"},"nodeType":"YulFunctionCall","src":"11718:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11708:6:139"},"nodeType":"YulFunctionCall","src":"11708:31:139"},"nodeType":"YulExpressionStatement","src":"11708:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11755:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11758:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11748:6:139"},"nodeType":"YulFunctionCall","src":"11748:15:139"},"nodeType":"YulExpressionStatement","src":"11748:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11779:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11782:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11772:6:139"},"nodeType":"YulFunctionCall","src":"11772:15:139"},"nodeType":"YulExpressionStatement","src":"11772:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"11666:127:139"},{"body":{"nodeType":"YulBlock","src":"11830:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11847:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11854:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11859:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11850:3:139"},"nodeType":"YulFunctionCall","src":"11850:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11840:6:139"},"nodeType":"YulFunctionCall","src":"11840:31:139"},"nodeType":"YulExpressionStatement","src":"11840:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11887:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11890:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11880:6:139"},"nodeType":"YulFunctionCall","src":"11880:15:139"},"nodeType":"YulExpressionStatement","src":"11880:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11911:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11914:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11904:6:139"},"nodeType":"YulFunctionCall","src":"11904:15:139"},"nodeType":"YulExpressionStatement","src":"11904:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"11798:127:139"},{"body":{"nodeType":"YulBlock","src":"11975:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"12039:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12048:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12051:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12041:6:139"},"nodeType":"YulFunctionCall","src":"12041:12:139"},"nodeType":"YulExpressionStatement","src":"12041:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11998:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12009:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12024:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12029:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12020:3:139"},"nodeType":"YulFunctionCall","src":"12020:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12033:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12016:3:139"},"nodeType":"YulFunctionCall","src":"12016:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12005:3:139"},"nodeType":"YulFunctionCall","src":"12005:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11995:2:139"},"nodeType":"YulFunctionCall","src":"11995:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11988:6:139"},"nodeType":"YulFunctionCall","src":"11988:50:139"},"nodeType":"YulIf","src":"11985:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11964:5:139","type":""}],"src":"11930:131:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value1, value1) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let dst := allocate_memory(add(_5, _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let src := add(_3, _1)\n        if gt(add(add(_3, _5), _1), dataEnd) { revert(value1, value1) }\n        let i := value1\n        for { } lt(i, _4) { i := add(i, 1) }\n        {\n            let value_1 := calldataload(src)\n            validator_revert_address(value_1)\n            mstore(dst, value_1)\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value1 := dst_1\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value1, value1) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let array := allocate_memory(add(and(add(_4, 0x1f), not(31)), _1))\n        mstore(array, _4)\n        if gt(add(add(_3, _4), _1), dataEnd) { revert(value1, value1) }\n        calldatacopy(add(array, _1), add(_3, _1), _4)\n        mstore(add(add(array, _4), _1), value1)\n        value1 := array\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_268dd470de0d8cff51be5b942ff6b5bd7c35319d4b543236256f73e3ded6f601__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"invalid code length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3ae0be77b4651c93505b4bf7af73e908a1e93226fe506fd01b2bddf30c838187__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"reentrancy\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"not timelock\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a60a8f6714e636de89ec2fea30ae88e90ca426b99cbb4e4a215c394e4a50924d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"sender not account or voter\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"transferFrom failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Provided reward too high\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d4051d3d897fe6d01d9464f7ab64e6670d2ba1fa4a896c2c577200fc327ec70b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"token = stake\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"transfer failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_dfe25cf76ca3b444a6b0fb57c889ccd197827af3923ff2f452e262f1046a53eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"amount > left\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e0e4ea6f1896f012252ce61081eb13b89bc3a30401b90bfec548e05d444cbc86__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"rewardrate = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_faeda1cde2954fb20c452e57322e586e176b69582241d304d446f54080fcd258__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 10)\n        mstore(add(headStart, 64), \"amount = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"28815":[{"length":32,"start":1258},{"length":32,"start":2769},{"length":32,"start":2911},{"length":32,"start":3161},{"length":32,"start":4561},{"length":32,"start":5516},{"length":32,"start":7039},{"length":32,"start":7449},{"length":32,"start":7744},{"length":32,"start":8239}],"28817":[{"length":32,"start":947},{"length":32,"start":4430},{"length":32,"start":5928},{"length":32,"start":7189},{"length":32,"start":8615}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102535760003560e01c806376f4be3611610146578063c4bf0220116100c3578063e688639611610087578063e688639614610622578063e8111a121461062a578063f122977714610633578063f301af4214610646578063f7412baf14610659578063fd3140981461068057600080fd5b8063c4bf0220146105cb578063d35e2544146105de578063d7da4bb0146105f1578063da09d19d146105fa578063de5f62681461061a57600080fd5b8063a495e5b51161010a578063a495e5b514610547578063aa47965214610572578063b2e0df9614610592578063b66503cf146105a5578063b6b55f25146105b857600080fd5b806376f4be36146104d25780637b103999146104e5578063853828b61461050c57806399bcc052146105145780639ce43f901461052757600080fd5b80633a4b66f1116101d4578063638634ee11610198578063638634ee1461045657806363fb415b1461046957806369db8b27146104895780636fcfff451461049257806370a08231146104b257600080fd5b80633a4b66f1146103ae5780633ca068b6146103e25780634d5ce0381461040d57806350baa622146104305780635a45d0521461044357600080fd5b8063221ca18c1161021b578063221ca18c146103135780632ce9aead146103335780632e1a7d4d1461035357806331279d3d14610368578063367034611461037b57600080fd5b806301316ddf146102585780630cdfebfa146102a4578063115c6f39146102d657806318160ddd146102f7578063211dc32d14610300575b600080fd5b61028a610266366004613040565b60126020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61028a6102b2366004613040565b600e6020908152600092835260408084209091529082529020805460019091015482565b6102e96102e4366004613040565b610693565b60405190815260200161029b565b6102e9600a5481565b6102e961030e366004612e9d565b610800565b6102e9610321366004612e65565b60036020526000908152604090205481565b6102e9610341366004612e65565b60056020526000908152604090205481565b61036661036136600461308b565b610a90565b005b610366610376366004612ed5565b610a9c565b61039e610389366004612e65565b60026020526000908152604090205460ff1681565b604051901515815260200161029b565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b60405161029b91906130d7565b6102e96103f0366004612e9d565b600960209081526000928352604080842090915290825290205481565b61039e61041b366004612e65565b600d6020526000908152604090205460ff1681565b61036661043e36600461308b565b6110e3565b610366610451366004613040565b611370565b6102e9610464366004612e65565b6113a8565b6102e9610477366004612e65565b60016020526000908152604090205481565b6102e960075481565b6102e96104a0366004612e65565b600f6020526000908152604090205481565b6102e96104c0366004612e65565b600b6020526000908152604090205481565b6102e96104e036600461308b565b6113cc565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b6103666114fe565b6102e9610522366004612e65565b611519565b6102e9610535366004612e65565b60066020526000908152604090205481565b6102e9610555366004612e9d565b600860209081526000928352604080842090915290825290205481565b6102e9610580366004612e65565b60136020526000908152604090205481565b6103666105a036600461308b565b61158a565b6103666105b3366004613040565b6116fc565b6103666105c636600461308b565b611b53565b6103666105d9366004612f9e565b611e3e565b6102e96105ec366004612e65565b611ff8565b6102e960005481565b6102e9610608366004612e65565b60046020526000908152604090205481565b61036661218c565b600c546102e9565b6102e960115481565b6102e9610641366004612e65565b61222c565b6103d561065436600461308b565b6122e8565b61028a61066736600461308b565b6010602052600090815260409020805460019091015482565b61028a61068e366004613040565b612312565b6001600160a01b0382166000908152600f6020526040812054806106bb5760009150506107fa565b6001600160a01b0384166000908152600e6020526040812084916106e0600185613241565b8152602001908152602001600020600001541161070a57610702600182613241565b9150506107fa565b6001600160a01b0384166000908152600e6020908152604080832083805290915290205483101561073f5760009150506107fa565b60008061074d600184613241565b90505b818111156107f557600060026107668484613241565b6107709190613202565b61077a9083613241565b6001600160a01b0388166000908152600e602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107cf575093506107fa92505050565b80518711156107e0578193506107ee565b6107eb600183613241565b92505b5050610750565b509150505b92915050565b6001600160a01b03808316600081815260086020908152604080832094861683529381528382205492825260128152838220828052905291822054829161084691612531565b6001600160a01b0384166000908152600f60205260409020549091506108705760009150506107fa565b600061087c8483610693565b6001600160a01b0385166000908152600f6020526040812054919250906108a590600190613241565b9050600060016108b58484613241565b11156109c457825b6108c8600184613241565b8110156109c2576001600160a01b0387166000818152600e60208181526040808420868552808352818520825180840190935280548352600190810154838501529585529290915292829061091e9086906131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600061095d8b8460000151612312565b50905060006109708c8460000151612312565b509050670de0b6b3a76400006109868383613241565b85602001516109959190613222565b61099f9190613202565b6109a990876131ea565b95505050505080806109ba90613284565b9150506108bd565b505b6001600160a01b0386166000908152600e60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610a0e908a90612312565b506001600160a01b03808b166000908152600960209081526040808320938d1683529290522054909150670de0b6b3a764000090610a4d908390612531565b610a568b61222c565b610a609190613241565b8360200151610a6f9190613222565b610a799190613202565b610a8390846131ea565b9998505050505050505050565b610a99816110e3565b50565b601454600114610ac75760405162461bcd60e51b8152600401610abe9061314b565b60405180910390fd5b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2a57600080fd5b505af1158015610b3e573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610c0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee9190612e81565b6001600160a01b0316336001600160a01b0316145b610c4f5760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610abe565b60016014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612e81565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610d1391906130d7565b600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050600260145550600090505b815181101561103d57610d87828281518110610d7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612548565b60066000858581518110610dab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060056000878781518110610df957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e62838381518110610e5457634e487b7160e01b600052603260045260246000fd5b602002602001015185610800565b90504260086000858581518110610e8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060066000848481518110610efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460096000858581518110610f4957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610fb657610fb6838381518110610fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151858361272b565b828281518110610fd657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161102291815260200190565b60405180910390a3508061103581613284565b915050610d4e565b506001600160a01b038216600090815260016020526040812054815490918291819061106a908490613241565b90915550611079905083611ff8565b6001600160a01b03841660009081526001602052604081208290558054919250829181906110a89084906131ea565b90915550506001600160a01b0383166000908152600160205260409020546110d190849061285b565b6110d9612966565b5050600160145550565b6014546001146111055760405162461bcd60e51b8152600401610abe9061314b565b600260148190555080600a600082825461111f9190613241565b9091555050336000908152600b602052604081208054839290611143908490613241565b9091555061117490507f0000000000000000000000000000000000000000000000000000000000000000338361272b565b336000908152600b6020526040902054811480156111a157503360009081526002602052604090205460ff165b156112b25733600090815260026020908152604091829020805460ff1916905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190612e81565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b815260040161127f91906130d7565b600060405180830381600087803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b3360009081526001602052604081205481549091829181906112d5908490613241565b909155506112e4905033611ff8565b33600090815260016020526040812082905580549192508291819061130a9084906131ea565b909155505033600081815260016020526040902054611329919061285b565b611331612966565b60405182815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906020015b60405180910390a250506001601455565b61137a8282612a09565b6001600160a01b03909316600090815260066020908152604080832060059092529091209390935590915550565b6001600160a01b0381166000908152600460205260408120546107fa904290612b68565b601154600090806113e05750600092915050565b82601060006113f0600185613241565b8152602001908152602001600020600001541161141957611412600182613241565b9392505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01548310156114545750600092915050565b600080611462600184613241565b90505b818111156114f6576000600261147b8484613241565b6114859190613202565b61148f9083613241565b6000818152601060209081526040918290208251808401909352805480845260019091015491830191909152919250908714156114d0575095945050505050565b80518711156114e1578193506114ef565b6114ec600183613241565b92505b5050611465565b509392505050565b336000908152600b602052604090205461151790610a90565b565b6001600160a01b038116600090815260046020526040812054421061154057506000919050565b6001600160a01b038216600090815260046020526040812054611564904290613241565b6001600160a01b0384166000908152600360205260409020549091506114129082613222565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561165357600080fd5b505afa158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168b9190612e81565b6001600160a01b0316336001600160a01b0316146116bb5760405162461bcd60e51b8152600401610abe9061316f565b60075460408051918252602082018390527fd4e4efcfcf51e1a8c6521aadc7b9b28c60ef879531e81752c4286e1fa644ef29910160405180910390a1600755565b60145460011461171e5760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156117985760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610abe565b600081116117b85760405162461bcd60e51b8152600401610abe90613195565b6001600160a01b0382166000908152600360205260409020546117e1576117e182600042612b77565b6117ea82612548565b6001600160a01b03841660009081526006602090815260408083206005835281842094909455939092556004909152205442106118585761182d82333084612c66565b61183a62093a8082613202565b6001600160a01b038316600090815260036020526040902055611924565b6001600160a01b03821660009081526004602052604081205461187c904290613241565b6001600160a01b038416600090815260036020526040812054919250906118a39083613222565b90508083116118e45760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610abe565b6118f084333086612c66565b62093a806118fe82856131ea565b6119089190613202565b6001600160a01b03851660009081526003602052604090205550505b6001600160a01b03821660009081526003602052604090205461197a5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610abe565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906119a99030906004016130d7565b60206040518083038186803b1580156119c157600080fd5b505afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906130a3565b9050611a0862093a8082613202565b6001600160a01b0384166000908152600360205260409020541115611a6a5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610abe565b611a7762093a80426131ea565b6001600160a01b038416600090815260046020908152604080832093909355600d9052205460ff16611b09576001600160a01b0383166000818152600d60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160145550565b601454600114611b755760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b5050505060008111611c105760405162461bcd60e51b8152600401610abe90613195565b611c3c7f0000000000000000000000000000000000000000000000000000000000000000333084612c66565b80600a6000828254611c4e91906131ea565b9091555050336000908152600b602052604081208054839290611c729084906131ea565b9091555050336000908152600160205260408120548154909182918190611c9a908490613241565b90915550611ca9905033611ff8565b336000908152600160205260408120829055805491925082918190611ccf9084906131ea565b90915550503360009081526002602052604090205460ff16611dfa5733600090815260026020908152604091829020805460ff1916600117905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611d6457600080fd5b505afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190612e81565b6001600160a01b03166397a302f7336040518263ffffffff1660e01b8152600401611dc791906130d7565b600060405180830381600087803b158015611de157600080fd5b505af1158015611df5573d6000803e3d6000fd5b505050505b611e04338261285b565b611e0c612966565b60405182815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200161135f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611e9757600080fd5b505afa158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b158015611f0757600080fd5b505afa158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612e81565b6001600160a01b0316336001600160a01b031614611f6f5760405162461bcd60e51b8152600401610abe9061316f565b600080836001600160a01b031683604051611f8a91906130bb565b6000604051808303816000865af19150503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b5091509150818190611ff15760405162461bcd60e51b8152600401610abe91906130eb565b5050505050565b6001600160a01b0381166000908152600b602052604081205481606461201f836014613222565b6120299190613202565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561208657600080fd5b505afa15801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be9190612e81565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016120e991906130d7565b60206040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213991906130a3565b905060006064600754838661214e9190613222565b612159906050613222565b6121639190613202565b61216d9190613202565b905061218261217c82856131ea565b85612b68565b9695505050505050565b6040516370a0823160e01b8152611517906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906121dc9033906004016130d7565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906130a3565b6000805461225057506001600160a01b031660009081526006602052604090205490565b600080546001600160a01b038416825260036020908152604080842054600583528185205460049093529320549192670de0b6b3a764000092909161229491612b68565b61229d866113a8565b6122a79190613241565b6122b19190613222565b6122bb9190613222565b6122c59190613202565b6001600160a01b0383166000908152600660205260409020546107fa91906131ea565b600c81815481106122f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526013602052604081205481908061233f57600080925092505061252a565b6001600160a01b03851660009081526012602052604081208591612364600185613241565b81526020019081526020016000206000015411612401576001600160a01b03851660009081526012602052604081209061239f600184613241565b81526020019081526020016000206001015460126000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846123e59190613241565b815260200190815260200160002060000154925092505061252a565b6001600160a01b038516600090815260126020908152604080832083805290915290205484101561243957600080925092505061252a565b600080612447600184613241565b90505b818111156124f957600060026124608484613241565b61246a9190613202565b6124749083613241565b6001600160a01b03891660009081526012602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156124d35760208101519051909650945061252a9350505050565b80518811156124e4578193506124f2565b6124ef600183613241565b92505b505061244a565b506001600160a01b038616600090815260126020908152604080832093835292905220600181015490549093509150505b9250929050565b6000818310156125415781611412565b5090919050565b6001600160a01b0381166000908152600560209081526040808320546006909252822054601154839291906125805794909350915050565b6001600160a01b0385166000908152600360205260409020546125a7579442945092505050565b60006125b2836113cc565b9050600060016011546125c59190613241565b905060016125d38383613241565b11156126ab57815b6125e6600183613241565b8110156126a957600081815260106020908152604091829020825180840190935280548352600101549082018190521561269657600060108161262a8560016131ea565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806126758c8460000151866000015187602001518d612daa565b909250905061268482896131ea565b97506126918c8983612b77565b975050505b50806126a181613284565b9150506125db565b505b600081815260106020908152604091829020825180840190935280548352600101549082018190521561271d5760006126fe896126e78b6113a8565b84516126f3908a612531565b85602001518a612daa565b50905061270b81866131ea565b9450612718898642612b77565b429550505b509196929550919350505050565b6000836001600160a01b03163b116127555760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916127b191906130bb565b6000604051808303816000865af19150503d80600081146127ee576040519150601f19603f3d011682016040523d82523d6000602084013e6127f3565b606091505b509150915081801561281d57508051158061281d57508080602001905181019061281d919061306b565b611ff15760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610abe565b6001600160a01b0382166000908152600f6020526040902054429080158015906128b957506001600160a01b0384166000908152600e6020526040812083916128a5600185613241565b815260200190815260200160002060000154145b156128fc576001600160a01b0384166000908152600e6020526040812084916128e3600185613241565b8152602081019190915260400160002060010155612960565b60408051808201825283815260208082018681526001600160a01b0388166000908152600e83528481208682529092529290209051815590516001918201556129469082906131ea565b6001600160a01b0385166000908152600f60205260409020555b50505050565b60115442811580159061299857508060106000612984600186613241565b815260200190815260200160002060000154145b156129c957600054601060006001856129b19190613241565b81526020810191909152604001600020600101555050565b60408051808201825282815260008054602080840191825286835260109052929020905181559051600191820155612a029083906131ea565b6011555050565b6001600160a01b038216600090815260056020908152604080832054600690925282205460115483929190612a41579250905061252a565b6001600160a01b038616600090815260036020526040902054612a6a57925042915061252a9050565b6000612a75836113cc565b90506000612a916001601154612a8b9190613241565b88612b68565b9050815b81811015612b59576000818152601060209081526040918290208251808401909352805483526001015490820181905215612b46576000601081612ada8560016131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612b258d8460000151866000015187602001518d612daa565b9092509050612b3482896131ea565b9750612b418d8983612b77565b975050505b5080612b5181613284565b915050612a95565b50919792965091945050505050565b60008183106125415781611412565b6001600160a01b0383166000908152601360205260409020548015801590612bd357506001600160a01b03841660009081526012602052604081208391612bbf600185613241565b815260200190815260200160002060000154145b15612bfd576001600160a01b038416600090815260126020526040812084916128e3600185613241565b60408051808201825283815260208082018681526001600160a01b038816600090815260128352848120868252909252929020905181559051600191820155612c479082906131ea565b6001600160a01b03851660009081526013602052604090205550505050565b6000846001600160a01b03163b11612c905760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612cf491906130bb565b6000604051808303816000865af19150503d8060008114612d31576040519150601f19603f3d011682016040523d82523d6000602084013e612d36565b606091505b5091509150818015612d60575080511580612d60575080806020019051810190612d60919061306b565b612da25760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610abe565b505050505050565b6000806000612db98785612531565b6001600160a01b0389166000908152600360205260409020549091508590670de0b6b3a764000090612e0c612dee8a89612531565b6001600160a01b038d16600090815260046020526040902054612b68565b6001600160a01b038c16600090815260046020526040902054612e30908690612b68565b612e3a9190613241565b612e449190613222565b612e4e9190613222565b612e589190613202565b9890975095505050505050565b600060208284031215612e76578081fd5b8135611412816132cb565b600060208284031215612e92578081fd5b8151611412816132cb565b60008060408385031215612eaf578081fd5b8235612eba816132cb565b91506020830135612eca816132cb565b809150509250929050565b60008060408385031215612ee7578182fd5b8235612ef2816132cb565b915060208381013567ffffffffffffffff80821115612f0f578384fd5b818601915086601f830112612f22578384fd5b813581811115612f3457612f346132b5565b8060051b9150612f458483016131b9565b8181528481019084860184860187018b1015612f5f578788fd5b8795505b83861015612f8d5780359450612f78856132cb565b84835260019590950194918601918601612f63565b508096505050505050509250929050565b60008060408385031215612fb0578182fd5b8235612fbb816132cb565b915060208381013567ffffffffffffffff80821115612fd8578384fd5b818601915086601f830112612feb578384fd5b813581811115612ffd57612ffd6132b5565b61300f601f8201601f191685016131b9565b91508082528784828501011115613024578485fd5b8084840185840137810190920192909252919491935090915050565b60008060408385031215613052578182fd5b823561305d816132cb565b946020939093013593505050565b60006020828403121561307c578081fd5b81518015158114611412578182fd5b60006020828403121561309c578081fd5b5035919050565b6000602082840312156130b4578081fd5b5051919050565b600082516130cd818460208701613258565b9190910192915050565b6001600160a01b0391909116815260200190565b602081526000825180602084015261310a816040850160208701613258565b601f01601f19169190910160400192915050565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156131e2576131e26132b5565b604052919050565b600082198211156131fd576131fd61329f565b500190565b60008261321d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561323c5761323c61329f565b500290565b6000828210156132535761325361329f565b500390565b60005b8381101561327357818101518382015260200161325b565b838111156129605750506000910152565b60006000198214156132985761329861329f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9957600080fdfea2646970667358221220ef76c7b05bc344d038c159b25b16152f542ef861b30603bd627f5c17846627b264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xC4BF0220 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x62A JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDE5F6268 EQ PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA495E5B5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x572 JUMPI DUP1 PUSH4 0xB2E0DF96 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x638634EE GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x221CA18C GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x300 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28A PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28A PUSH2 0x2B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x800 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0xA90 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x366 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x39E PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x3F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39E PUSH2 0x41B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x10E3 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x14FE JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1519 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x580 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x158A JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x1B53 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x5EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x218C JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x641 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x222C JUMP JUMPDEST PUSH2 0x3D5 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x6BB JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x6E0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x70A JUMPI PUSH2 0x702 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x74D PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x766 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x770 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x77A SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x7CF JUMPI POP SWAP4 POP PUSH2 0x7FA SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x7E0 JUMPI DUP2 SWAP4 POP PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x7EB PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x750 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x846 SWAP2 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x870 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87C DUP5 DUP4 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x8A5 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x8B5 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x9C4 JUMPI DUP3 JUMPDEST PUSH2 0x8C8 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x91E SWAP1 DUP7 SWAP1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x95D DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x970 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x986 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x995 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x9A9 SWAP1 DUP8 PUSH2 0x31EA JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x9BA SWAP1 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8BD JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0xA0E SWAP1 DUP11 SWAP1 PUSH2 0x2312 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xA4D SWAP1 DUP4 SWAP1 PUSH2 0x2531 JUMP JUMPDEST PUSH2 0xA56 DUP12 PUSH2 0x222C JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA6F SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0xA83 SWAP1 DUP5 PUSH2 0x31EA JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA99 DUP2 PUSH2 0x10E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xC03 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBEE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD13 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x14 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x103D JUMPI PUSH2 0xD87 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDF9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE62 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x800 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x6 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF49 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xFB6 JUMPI PUSH2 0xFB6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x272B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1022 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1035 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1079 SWAP1 POP DUP4 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x10A8 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10D1 SWAP1 DUP5 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x2966 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1105 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x111F SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1143 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1174 SWAP1 POP PUSH32 0x0 CALLER DUP4 PUSH2 0x272B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ DUP1 ISZERO PUSH2 0x11A1 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12B2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127F SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x12D5 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x12E4 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x130A SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1329 SWAP2 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1331 PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE JUMP JUMPDEST PUSH2 0x137A DUP3 DUP3 PUSH2 0x2A09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7FA SWAP1 TIMESTAMP SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x13E0 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x13F0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1419 JUMPI PUSH2 0x1412 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH32 0x6E0956CDA88CAD152E89927E53611735B61A5C762D1428573C6931B0A5EFCB01 SLOAD DUP4 LT ISZERO PUSH2 0x1454 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1462 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x147B DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x148F SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x14D0 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x14E1 JUMPI DUP2 SWAP4 POP PUSH2 0x14EF JUMP JUMPDEST PUSH2 0x14EC PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1465 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1517 SWAP1 PUSH2 0xA90 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1540 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1564 SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1412 SWAP1 DUP3 PUSH2 0x3222 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x161B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x168B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xD4E4EFCFCF51E1A8C6521AADC7B9B28C60EF879531E81752C4286E1FA644EF29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x171E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x17E1 JUMPI PUSH2 0x17E1 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST PUSH2 0x17EA DUP3 PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1858 JUMPI PUSH2 0x182D DUP3 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST PUSH2 0x183A PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x187C SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x18A3 SWAP1 DUP4 PUSH2 0x3222 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x18F0 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2C66 JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x18FE DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST PUSH2 0x1908 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x197A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x19A9 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A08 PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x1A77 PUSH3 0x93A80 TIMESTAMP PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xD SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B09 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xDF6966C971051C3D54EC59162606531493A51404A002842F56009D7E5CF4A8C7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1B75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 GT PUSH2 0x1C10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH2 0x1C3C PUSH32 0x0 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C4E SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C72 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1C9A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1CA9 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1CCF SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1DFA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D9C SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC7 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1E04 CALLER DUP3 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1E0C PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH2 0x135F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ECF SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3F SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F8A SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 PUSH1 0x64 PUSH2 0x201F DUP4 PUSH1 0x14 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2029 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2086 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20BE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E9 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2139 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x7 SLOAD DUP4 DUP7 PUSH2 0x214E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2159 SWAP1 PUSH1 0x50 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2163 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH2 0x2182 PUSH2 0x217C DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST DUP6 PUSH2 0x2B68 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x1517 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x21DC SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x2250 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x5 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2294 SWAP2 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x229D DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x22A7 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22BB SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22C5 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7FA SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0xC DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2364 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x2401 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x239F PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x23E5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2439 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2447 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x2460 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x2474 SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x24D3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x252A SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x24E4 JUMPI DUP2 SWAP4 POP PUSH2 0x24F2 JUMP JUMPDEST PUSH2 0x24EF PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x244A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2580 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25A7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x25C5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x25D3 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x26AB JUMPI DUP2 JUMPDEST PUSH2 0x25E6 PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26A9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2696 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x262A DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2675 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2684 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2691 DUP13 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x26A1 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x25DB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 PUSH2 0x26FE DUP10 PUSH2 0x26E7 DUP12 PUSH2 0x13A8 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x26F3 SWAP1 DUP11 PUSH2 0x2531 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2DAA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x270B DUP2 DUP7 PUSH2 0x31EA JUMP JUMPDEST SWAP5 POP PUSH2 0x2718 DUP10 DUP7 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2755 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x27B1 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27F3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x281D JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x281D JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x281D SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28B9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x28A5 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x28FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2960 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2946 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2998 JUMPI POP DUP1 PUSH1 0x10 PUSH1 0x0 PUSH2 0x2984 PUSH1 0x1 DUP7 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x29C9 JUMPI PUSH1 0x0 SLOAD PUSH1 0x10 PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x29B1 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0x10 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2A02 SWAP1 DUP4 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x11 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A41 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2A6A JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x252A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A75 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2A91 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x2A8B SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP9 PUSH2 0x2B68 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B59 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x2ADA DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2B25 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2B34 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2B41 DUP14 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2B51 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2A95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2BD3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2BBF PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C47 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2C90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2CF4 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2D31 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2D36 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2D60 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D60 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x2DA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2DB9 DUP8 DUP6 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2E0C PUSH2 0x2DEE DUP11 DUP10 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E30 SWAP1 DUP7 SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x2E3A SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E58 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E76 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EAF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EBA DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2ECA DUP2 PUSH2 0x32CB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EF2 DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F0F JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F22 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2F34 JUMPI PUSH2 0x2F34 PUSH2 0x32B5 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x2F45 DUP5 DUP4 ADD PUSH2 0x31B9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x2F5F JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2F8D JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x2F78 DUP6 PUSH2 0x32CB JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x2F63 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2FBB DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FD8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FEB JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH2 0x2FFD PUSH2 0x32B5 JUMP JUMPDEST PUSH2 0x300F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x31B9 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3024 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x305D DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1412 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x309C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x30CD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x310A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x31E2 JUMPI PUSH2 0x31E2 PUSH2 0x32B5 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x329F JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x321D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x323C JUMPI PUSH2 0x323C PUSH2 0x329F JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3253 JUMPI PUSH2 0x3253 PUSH2 0x329F JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3273 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x325B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2960 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3298 JUMPI PUSH2 0x3298 PUSH2 0x329F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA99 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF PUSH23 0xC7B05BC344D038C159B25B16152F542EF861B30603BD62 PUSH32 0x5C17846627B264736F6C63430008040033000000000000000000000000000000 ","sourceMap":"731:22638:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2393:105;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10246:25:139;;;10302:2;10287:18;;10280:34;;;;10219:18;2393:105:83;;;;;;;;1904:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3348:1074;;;;;;:::i;:::-;;:::i;:::-;;;10036:25:139;;;10024:2;10009:18;3348:1074:83;9991:76:139;1669:26:83;;;;;;15742:1750;;;;;;:::i;:::-;;:::i;1234:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1338:49;;;;;;:::i;:::-;;;;;;;;;;;;;;18552:79;;;;;;:::i;:::-;;:::i;:::-;;9325:1360;;;;;;:::i;:::-;;:::i;1136:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5453:14:139;;5446:22;5428:41;;5416:2;5401:18;1136:40:83;5383:92:139;820:30:83;;;;;;;;-1:-1:-1;;;;;4585:32:139;;;;4567:51;;4555:2;4540:18;820:30:83;4522:102:139;1575:87:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1782:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18637:821;;;;;;:::i;:::-;;:::i;11631:212::-;;;;;;:::i;:::-;;:::i;9142:177::-;;;;;;:::i;:::-;;:::i;943:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1455:44;;;;;;2039:49;;;;;;:::i;:::-;;;;;;;;;;;;;;1701:44;;;;;;:::i;:::-;;;;;;;;;;;;;;4428:1050;;;;;;:::i;:::-;;:::i;770:44::-;;;;;18466:80;;;:::i;19464:254::-;;;;;;:::i;:::-;;:::i;1393:55::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1506:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2562;;;;;;:::i;:::-;;;;;;;;;;;;;;21468:250;;;;;;:::i;:::-;;:::i;19724:1440::-;;;;;;:::i;:::-;;:::i;17596:864::-;;;;;;:::i;:::-;;:::i;21234:228::-;;;;;;:::i;:::-;;:::i;11125:500::-;;;;;;:::i;:::-;;:::i;909:28::-;;;;;;1285:47;;;;;;:::i;:::-;;;;;;;;;;;;;;17498:92;;;:::i;8944:99::-;9022:7;:14;8944:99;;2278:35;;;;;;10691:427;;;;;;:::i;:::-;;:::i;1752:24::-;;;;;;:::i;:::-;;:::i;2168:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;5484:1560;;;;;;:::i;:::-;;:::i;3348:1074::-;-1:-1:-1;;;;;3505:23:83;;3459:7;3505:23;;;:14;:23;;;;;;;3538:56;;3582:1;3575:8;;;;;3538:56;-1:-1:-1;;;;;3651:20:83;;;;;;:11;:20;;;;;3703:9;;3672:16;-1:-1:-1;3672:12:83;:16;:::i;:::-;3651:38;;;;;;;;;;;:48;;;:61;3647:117;;3736:16;3751:1;3736:12;:16;:::i;:::-;3728:25;;;;;3647:117;-1:-1:-1;;;;;3822:20:83;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;-1:-1:-1;;3818:84:83;;;3890:1;3883:8;;;;;3818:84;3912:13;;3955:16;3970:1;3955:12;:16;:::i;:::-;3939:32;;3981:413;3996:5;3988;:13;3981:413;;;4017:14;4060:1;4043:13;4051:5;4043;:13;:::i;:::-;4042:19;;;;:::i;:::-;4034:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;4125:20:83;;4102;4125;;;:11;:20;;;;;;;;:28;;;;;;;;;4102:51;;;;;;;;;;;;;-1:-1:-1;4102:51:83;;;;;;;;;;;4125:28;;-1:-1:-1;4102:51:83;4171:25;;4167:217;;;-1:-1:-1;4223:6:83;-1:-1:-1;4216:13:83;;-1:-1:-1;;;4216:13:83;4167:217;4254:12;;:24;-1:-1:-1;4250:134:83;;;4306:6;4298:14;;4250:134;;;4359:10;4368:1;4359:6;:10;:::i;:::-;4351:18;;4250:134;3981:413;;;;;-1:-1:-1;4410:5:83;-1:-1:-1;;3348:1074:83;;;;;:::o;15742:1750::-;-1:-1:-1;;;;;15906:15:83;;;15835:7;15906:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;15944:32;;;:25;:32;;;;;:35;;;;;;;;:45;15835:7;;15884:115;;:8;:115::i;:::-;-1:-1:-1;;;;;16013:23:83;;;;;;:14;:23;;;;;;15858:141;;-1:-1:-1;16009:67:83;;16064:1;16057:8;;;;;16009:67;16086:19;16108:46;16129:7;16138:15;16108:20;:46::i;:::-;-1:-1:-1;;;;;16184:23:83;;16164:17;16184:23;;;:14;:23;;;;;;16086:68;;-1:-1:-1;16164:17:83;16184:27;;-1:-1:-1;;16184:27:83;:::i;:::-;16164:47;-1:-1:-1;16222:14:83;16281:1;16255:23;16267:11;16164:47;16255:23;:::i;:::-;:27;16251:745;;;16315:11;16298:688;16332:13;16344:1;16332:9;:13;:::i;:::-;16328:1;:17;16298:688;;;-1:-1:-1;;;;;16394:20:83;;16370:21;16394:20;;;:11;:20;;;;;;;;:23;;;;;;;;;16370:47;;;;;;;;;;;;-1:-1:-1;16370:47:83;;;;;;;;16459:20;;;;;;;16370:47;:21;;16480:5;;16394:23;;16480:5;:::i;:::-;16459:27;;;;;;;;;;;16435:51;;;;;;;;;;;;;;;;;;;;;;;;;;;16505:30;16541:102;16585:5;16612:3;:13;;;16541:22;:102::i;:::-;16504:139;;;16662:30;16698:102;16742:5;16769:3;:13;;;16698:22;:102::i;:::-;-1:-1:-1;16661:139:83;-1:-1:-1;1123:6:83;16890:47;16915:22;16661:139;16890:47;:::i;:::-;16849:3;:13;;;:89;;;;:::i;:::-;16848:123;;;;:::i;:::-;16818:153;;;;:::i;:::-;;;16298:688;;;;16347:3;;;;;:::i;:::-;;;;16298:688;;;;16251:745;-1:-1:-1;;;;;17029:20:83;;17006;17029;;;:11;:20;;;;;;;;:31;;;;;;;;17006:54;;;;;;;;;;;;;-1:-1:-1;17006:54:83;;;;;;;;;;;;:20;17106:77;;17142:5;;17106:22;:77::i;:::-;-1:-1:-1;;;;;;17373:31:83;;;;;;;:24;:31;;;;;;;;:40;;;;;;;;;;17070:113;;-1:-1:-1;1123:6:83;;17292:143;;17070:113;;17292:8;:143::i;:::-;17248:21;17263:5;17248:14;:21::i;:::-;:187;;;;:::i;:::-;17216:2;:12;;;:220;;;;:::i;:::-;17215:246;;;;:::i;:::-;17193:268;;;;:::i;:::-;;15742:1750;-1:-1:-1;;;;;;;;;15742:1750:83:o;18552:79::-;18603:21;18617:6;18603:13;:21::i;:::-;18552:79;:::o;9325:1360::-;2734:9;;2747:1;2734:14;2726:37;;;;-1:-1:-1;;;2726:37:83;;;;;;;:::i;:::-;;;;;;;;;2785:1;2773:9;:13;9447:26:::1;::::0;;-1:-1:-1;;;9447:26:83;;;;:8:::1;-1:-1:-1::0;;;;;9447:24:83::1;::::0;-1:-1:-1;;9447:26:83::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:24;:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;9504:21:83;::::1;:10;:21;::::0;:60:::1;;;9543:8;-1:-1:-1::0;;;;;9543:19:83::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9529:35:83::1;:10;:35;9504:60;9483:134;;;::::0;-1:-1:-1;;;9483:134:83;;7325:2:139;9483:134:83::1;::::0;::::1;7307:21:139::0;7364:2;7344:18;;;7337:30;7403:29;7383:18;;;7376:57;7450:18;;9483:134:83::1;7297:177:139::0;9483:134:83::1;9640:1;9628:9;:13:::0;9665:21:::1;::::0;;-1:-1:-1;;;9665:21:83;;;;:8:::1;-1:-1:-1::0;;;;;9665:19:83::1;::::0;-1:-1:-1;;9665:21:83::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:19;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9651:62;::::0;-1:-1:-1;;;9651:62:83;;9707:4:::1;9651:62;::::0;::::1;4567:51:139::0;-1:-1:-1;;;;;9651:47:83;;;::::1;::::0;::::1;::::0;4540:18:139;;9651:62:83::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9735:1:83::1;9723:9;:13:::0;-1:-1:-1;9752:9:83::1;::::0;-1:-1:-1;9747:588:83::1;9771:6;:13;9767:1;:17;9747:588;;;9914:32;9936:6;9943:1;9936:9;;;;;;-1:-1:-1::0;;;9936:9:83::1;;;;;;;;;;;;;;;9914:21;:32::i;:::-;9823:20;:31;9844:6;9851:1;9844:9;;;;;;-1:-1:-1::0;;;9844:9:83::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9823:31:83::1;-1:-1:-1::0;;;;;9823:31:83::1;;;;;;;;;;;;;9872:14;:25;9887:6;9894:1;9887:9;;;;;;-1:-1:-1::0;;;9887:9:83::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9872:25:83::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9872:25:83;;;9805:141;;;;-1:-1:-1;9805:141:83;;;;9986:9;;9979:26:::1;::::0;9986:9;;9993:1;;9986:9;::::1;;;-1:-1:-1::0;;;9986:9:83::1;;;;;;;;;;;;;;;9997:7;9979:6;:26::i;:::-;9961:44;;10050:15;10019:8;:19;10028:6;10035:1;10028:9;;;;;;-1:-1:-1::0;;;10028:9:83::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10019:19:83;;::::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;10019:19:83;;;:28;;::::1;::::0;;;;;;;:46;;;;10164:9;;10126:20:::1;::::0;-1:-1:-1;10164:9:83;;10171:1;;10164:9;::::1;;;-1:-1:-1::0;;;10164:9:83::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10126:61:83::1;-1:-1:-1::0;;;;;10126:61:83::1;;;;;;;;;;;;;10079:24;:35;10104:6;10111:1;10104:9;;;;;;-1:-1:-1::0;;;10104:9:83::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10079:35:83;;::::1;::::0;;;;::::1;::::0;;;;;;;;-1:-1:-1;10079:35:83;;;:44;;::::1;::::0;;;;;;;:108;10205:11;;10201:59:::1;;10218:42;10232:6;10239:1;10232:9;;;;;;-1:-1:-1::0;;;10232:9:83::1;;;;;;;;;;;;;;;10243:7;10252;10218:13;:42::i;:::-;10305:6;10312:1;10305:9;;;;;;-1:-1:-1::0;;;10305:9:83::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;10280:44:::1;::::0;;10036:25:139;;;10280:44:83;;-1:-1:-1;;;;;10280:44:83;;::::1;::::0;10293:10:::1;::::0;10280:44:::1;::::0;;;;;;;;::::1;-1:-1:-1::0;9786:3:83;::::1;::::0;::::1;:::i;:::-;;;;9747:588;;;-1:-1:-1::0;;;;;;10371:24:83;::::1;10345:23;10371:24:::0;;;-1:-1:-1;10371:24:83::1;::::0;;;;;10405:32;;10371:24;;;;10345:23;;10405:32:::1;::::0;10371:24;;10405:32:::1;:::i;:::-;::::0;;;-1:-1:-1;10465:23:83::1;::::0;-1:-1:-1;10480:7:83;10465:14:::1;:23::i;:::-;-1:-1:-1::0;;;;;10498:24:83;::::1;;::::0;;;-1:-1:-1;10498:24:83::1;::::0;;;;:42;;;10550:32;;10498:42;;-1:-1:-1;10498:42:83;;:24;;10550:32:::1;::::0;10498:42;;10550:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;10619:24:83;::::1;;::::0;;;-1:-1:-1;10619:24:83::1;::::0;;;;;10593:51:::1;::::0;10619:24;;10593:16:::1;:51::i;:::-;10654:24;:22;:24::i;:::-;-1:-1:-1::0;;2819:1:83;2807:9;:13;-1:-1:-1;9325:1360:83:o;18637:821::-;2734:9;;2747:1;2734:14;2726:37;;;;-1:-1:-1;;;2726:37:83;;;;;;;:::i;:::-;2785:1;2773:9;:13;;;;18713:6:::1;18698:11;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;18739:10:83::1;18729:21;::::0;;;:9:::1;:21;::::0;;;;:31;;18754:6;;18729:21;:31:::1;::::0;18754:6;;18729:31:::1;:::i;:::-;::::0;;;-1:-1:-1;18770:40:83::1;::::0;-1:-1:-1;18784:5:83::1;18791:10;18803:6:::0;18770:13:::1;:40::i;:::-;18845:10;18835:21;::::0;;;:9:::1;:21;::::0;;;;;18825:31;::::1;:55:::0;::::1;;;-1:-1:-1::0;18869:10:83::1;18860:20;::::0;;;:8:::1;:20;::::0;;;;;::::1;;18825:55;18821:228;;;18905:10;18919:5;18896:20:::0;;;:8:::1;:20;::::0;;;;;;;;:28;;-1:-1:-1;;18896:28:83::1;::::0;;18952:21;;-1:-1:-1;;;18952:21:83;;;;:8:::1;-1:-1:-1::0;;;;;18952:19:83::1;::::0;-1:-1:-1;;18952:21:83::1;::::0;;::::1;::::0;18896:20;;18952:21;;;;;:19;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18938:100;::::0;-1:-1:-1;;;18938:100:83;;19014:10:::1;18938:100;::::0;::::1;4567:51:139::0;-1:-1:-1;;;;;18938:58:83;;;::::1;::::0;::::1;::::0;4540:18:139;;18938:100:83::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18821:228;19101:10;19059:23;19085:27:::0;;;:15:::1;:27;::::0;;;;;19122:32;;19085:27;;;;19059:23;;19122:32:::1;::::0;19085:27;;19122:32:::1;:::i;:::-;::::0;;;-1:-1:-1;19182:26:83::1;::::0;-1:-1:-1;19197:10:83::1;19182:14;:26::i;:::-;19234:10;19218:27;::::0;;;:15:::1;:27;::::0;;;;:45;;;19273:32;;19164:44;;-1:-1:-1;19164:44:83;;19218:27;;19273:32:::1;::::0;19164:44;;19273:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;19333:10:83::1;19345:27;::::0;;;:15:::1;:27;::::0;;;;;19316:57:::1;::::0;19333:10;19316:16:::1;:57::i;:::-;19383:24;:22;:24::i;:::-;19423:28;::::0;10036:25:139;;;19432:10:83::1;::::0;19423:28:::1;::::0;10024:2:139;10009:18;19423:28:83::1;;;;;;;;-1:-1:-1::0;;2819:1:83;2807:9;:13;18637:821::o;11631:212::-;11800:36;11821:5;11828:7;11800:20;:36::i;:::-;-1:-1:-1;;;;;11725:27:83;;;;;;;;:20;:27;;;;;;;;11766:14;:21;;;;;;11711:125;;;;;;;-1:-1:-1;11631:212:83:o;9142:177::-;-1:-1:-1;;;;;9292:19:83;;9236:7;9292:19;;;:12;:19;;;;;;9266:46;;9275:15;;9266:8;:46::i;4428:1050::-;4567:20;;4521:7;;4601:17;4597:56;;-1:-1:-1;4641:1:83;;4428:1050;-1:-1:-1;;4428:1050:83:o;4597:56::-;4759:9;4710:17;:35;4728:16;4743:1;4728:12;:16;:::i;:::-;4710:35;;;;;;;;;;;:45;;;:58;4706:114;;4792:16;4807:1;4792:12;:16;:::i;:::-;4784:25;4428:1050;-1:-1:-1;;;4428:1050:83:o;4706:114::-;4878:20;;;:17;:20;;;:30;:42;-1:-1:-1;4874:81:83;;;-1:-1:-1;4943:1:83;;4428:1050;-1:-1:-1;;4428:1050:83:o;4874:81::-;4965:13;;5008:16;5023:1;5008:12;:16;:::i;:::-;4992:32;;5034:416;5049:5;5041;:13;5034:416;;;5070:14;5113:1;5096:13;5104:5;5096;:13;:::i;:::-;5095:19;;;;:::i;:::-;5087:27;;:5;:27;:::i;:::-;5155:26;5184:25;;;:17;:25;;;;;;;;;5155:54;;;;;;;;;;;;;;;;;;;;;;;;;5070:44;;-1:-1:-1;5155:54:83;5227:25;;5223:217;;;-1:-1:-1;5279:6:83;4428:1050;-1:-1:-1;;;;;4428:1050:83:o;5223:217::-;5310:12;;:24;-1:-1:-1;5306:134:83;;;5362:6;5354:14;;5306:134;;;5415:10;5424:1;5415:6;:10;:::i;:::-;5407:18;;5306:134;5034:416;;;;;-1:-1:-1;5466:5:83;4428:1050;-1:-1:-1;;;4428:1050:83:o;18466:80::-;18527:10;18517:21;;;;:9;:21;;;;;;18508:31;;:8;:31::i;:::-;18466:80::o;19464:254::-;-1:-1:-1;;;;;19567:19:83;;19525:7;19567:19;;;:12;:19;;;;;;19548:15;:38;19544:52;;-1:-1:-1;19595:1:83;;19464:254;-1:-1:-1;19464:254:83:o;19544:52::-;-1:-1:-1;;;;;19627:19:83;;19606:18;19627:19;;;:12;:19;;;;;;:37;;19649:15;;19627:37;:::i;:::-;-1:-1:-1;;;;;19694:17:83;;;;;;:10;:17;;;;;;19606:58;;-1:-1:-1;19681:30:83;;19606:58;19681:30;:::i;21468:250::-;23280:8;-1:-1:-1;;;;;23280:17:83;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23262:47:83;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23248:63:83;:10;:63;23227:122;;;;-1:-1:-1;;;23227:122:83;;6984:2:139;23227:122:83;;;6966:21:139;7023:2;7003:18;;;6996:30;-1:-1:-1;;;7042:18:139;;;7035:42;7094:18;;23227:122:83;6956:162:139;23227:122:83;21596:19:::1;::::0;21556:103:::1;::::0;;10246:25:139;;;10302:2;10287:18;;10280:34;;;21556:103:83::1;::::0;10219:18:139;21556:103:83::1;;;;;;;21669:19;:42:::0;21468:250::o;19724:1440::-;2734:9;;2747:1;2734:14;2726:37;;;;-1:-1:-1;;;2726:37:83;;;;;;;:::i;:::-;2785:1;2773:9;:13;19861:5:::1;-1:-1:-1::0;;;;;19852:14:83;;::::1;::::0;;::::1;;;19844:40;;;::::0;-1:-1:-1;;;19844:40:83;;8382:2:139;19844:40:83::1;::::0;::::1;8364:21:139::0;8421:2;8401:18;;;8394:30;-1:-1:-1;;;8440:18:139;;;8433:43;8493:18;;19844:40:83::1;8354:163:139::0;19844:40:83::1;19911:1;19902:6;:10;19894:33;;;::::0;-1:-1:-1;;;19894:33:83;;9753:2:139;19894:33:83::1;::::0;::::1;9735:21:139::0;9792:2;9772:18;;;9765:30;-1:-1:-1;;;9811:18:139;;;9804:40;9861:18;;19894:33:83::1;9725:160:139::0;19894:33:83::1;-1:-1:-1::0;;;;;19941:17:83;::::1;;::::0;;;:10:::1;:17;::::0;;;;;19937:97:::1;;19977:57;20008:5;20015:1;20018:15;19977:30;:57::i;:::-;20133:28;20155:5;20133:21;:28::i;:::-;-1:-1:-1::0;;;;;20058:27:83;::::1;;::::0;;;:20:::1;:27;::::0;;;;;;;20099:14:::1;:21:::0;;;;;20044:117;;;;;;;;20195:12:::1;:19:::0;;;;;20176:15:::1;:38;20172:516;;20230:59;20248:5;20255:10;20275:4;20282:6;20230:17;:59::i;:::-;20323:17;1037:6;20323::::0;:17:::1;:::i;:::-;-1:-1:-1::0;;;;;20303:17:83;::::1;;::::0;;;:10:::1;:17;::::0;;;;:37;20172:516:::1;;;-1:-1:-1::0;;;;;20392:19:83;::::1;20371:18;20392:19:::0;;;:12:::1;:19;::::0;;;;;:37:::1;::::0;20414:15:::1;::::0;20392:37:::1;:::i;:::-;-1:-1:-1::0;;;;;20472:17:83;::::1;20443:13;20472:17:::0;;;:10:::1;:17;::::0;;;;;20371:58;;-1:-1:-1;20443:13:83;20459:30:::1;::::0;20371:58;20459:30:::1;:::i;:::-;20443:46;;20520:5;20511:6;:14;20503:40;;;::::0;-1:-1:-1;;;20503:40:83;;9068:2:139;20503:40:83::1;::::0;::::1;9050:21:139::0;9107:2;9087:18;;;9080:30;-1:-1:-1;;;9126:18:139;;;9119:43;9179:18;;20503:40:83::1;9040:163:139::0;20503:40:83::1;20557:59;20575:5;20582:10;20602:4;20609:6;20557:17;:59::i;:::-;1037:6;20651:14;20660:5:::0;20651:6;:14:::1;:::i;:::-;20650:27;;;;:::i;:::-;-1:-1:-1::0;;;;;20630:17:83;::::1;;::::0;;;:10:::1;:17;::::0;;;;:47;-1:-1:-1;;20172:516:83::1;-1:-1:-1::0;;;;;20706:17:83;::::1;20726:1;20706:17:::0;;;:10:::1;:17;::::0;;;;;20698:48:::1;;;::::0;-1:-1:-1;;;20698:48:83;;9410:2:139;20698:48:83::1;::::0;::::1;9392:21:139::0;9449:2;9429:18;;;9422:30;-1:-1:-1;;;9468:18:139;;;9461:44;9522:18;;20698:48:83::1;9382:164:139::0;20698:48:83::1;20774:38;::::0;-1:-1:-1;;;20774:38:83;;20806:4:::1;20774:38;::::0;::::1;4567:51:139::0;20756:15:83::1;::::0;-1:-1:-1;;;;;20774:23:83;::::1;::::0;-1:-1:-1;;4540:18:139;;20774:38:83::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20756:56:::0;-1:-1:-1;20864:18:83::1;1037:6;20756:56:::0;20864:18:::1;:::i;:::-;-1:-1:-1::0;;;;;20843:17:83;::::1;;::::0;;;:10:::1;:17;::::0;;;;;:39:::1;;20822:110;;;::::0;-1:-1:-1;;;20822:110:83;;8029:2:139;20822:110:83::1;::::0;::::1;8011:21:139::0;8068:2;8048:18;;;8041:30;-1:-1:-1;;;8087:18:139;;;8080:54;8151:18;;20822:110:83::1;8001:174:139::0;20822:110:83::1;20964:26;1037:6;20964:15;:26;:::i;:::-;-1:-1:-1::0;;;;;20942:19:83;::::1;;::::0;;;:12:::1;:19;::::0;;;;;;;:48;;;;21006:8:::1;:15:::0;;;;::::1;;21001:102;;-1:-1:-1::0;;;;;21037:15:83;::::1;;::::0;;;:8:::1;:15;::::0;;;;:22;;-1:-1:-1;;21037:22:83::1;-1:-1:-1::0;21037:22:83;;::::1;::::0;;;21073:7:::1;:19:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;21073:19:83::1;::::0;;::::1;::::0;;21001:102:::1;21118:39;::::0;;10036:25:139;;;21118:39:83;;-1:-1:-1;;;;;21118:39:83;::::1;::::0;21131:10:::1;::::0;21118:39:::1;::::0;;;;10024:2:139;21118:39:83;;::::1;-1:-1:-1::0;;2819:1:83;2807:9;:13;-1:-1:-1;19724:1440:83:o;17596:864::-;2734:9;;2747:1;2734:14;2726:37;;;;-1:-1:-1;;;2726:37:83;;;;;;;:::i;:::-;2785:1;2773:9;:13;17651:26:::1;::::0;;-1:-1:-1;;;17651:26:83;;;;:8:::1;-1:-1:-1::0;;;;;17651:24:83::1;::::0;-1:-1:-1;;17651:26:83::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:24;:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17704:1;17695:6;:10;17687:33;;;::::0;-1:-1:-1;;;17687:33:83;;9753:2:139;17687:33:83::1;::::0;::::1;9735:21:139::0;9792:2;9772:18;;;9765:30;-1:-1:-1;;;9811:18:139;;;9804:40;9861:18;;17687:33:83::1;9725:160:139::0;17687:33:83::1;17731:59;17749:5;17756:10;17776:4;17783:6;17731:17;:59::i;:::-;17815:6;17800:11;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;17841:10:83::1;17831:21;::::0;;;:9:::1;:21;::::0;;;;:31;;17856:6;;17831:21;:31:::1;::::0;17856:6;;17831:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;17915:10:83::1;17873:23;17899:27:::0;;;:15:::1;:27;::::0;;;;;17936:32;;17899:27;;;;17873:23;;17936:32:::1;::::0;17899:27;;17936:32:::1;:::i;:::-;::::0;;;-1:-1:-1;17996:26:83::1;::::0;-1:-1:-1;18011:10:83::1;17996:14;:26::i;:::-;18048:10;18032:27;::::0;;;:15:::1;:27;::::0;;;;:45;;;18087:32;;17978:44;;-1:-1:-1;17978:44:83;;18032:27;;18087:32:::1;::::0;17978:44;;18087:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;18144:10:83::1;18135:20;::::0;;;:8:::1;:20;::::0;;;;;::::1;;18130:191;;18180:10;18171:20;::::0;;;:8:::1;:20;::::0;;;;;;;;:27;;-1:-1:-1;;18171:27:83::1;18194:4;18171:27;::::0;;18226:21;;-1:-1:-1;;;18226:21:83;;;;:8:::1;-1:-1:-1::0;;;;;18226:19:83::1;::::0;-1:-1:-1;;18226:21:83::1;::::0;;::::1;::::0;18171:20;;18226:21;;;;;:19;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18212:98;::::0;-1:-1:-1;;;18212:98:83;;18286:10:::1;18212:98;::::0;::::1;4567:51:139::0;-1:-1:-1;;;;;18212:56:83;;;::::1;::::0;::::1;::::0;4540:18:139;;18212:98:83::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18130:191;18331:45;18348:10;18360:15;18331:16;:45::i;:::-;18386:24;:22;:24::i;:::-;18426:27;::::0;10036:25:139;;;18434:10:83::1;::::0;18426:27:::1;::::0;10024:2:139;10009:18;18426:27:83::1;9991:76:139::0;21234:228:83;23280:8;-1:-1:-1;;;;;23280:17:83;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23262:47:83;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23248:63:83;:10;:63;23227:122;;;;-1:-1:-1;;;23227:122:83;;6984:2:139;23227:122:83;;;6966:21:139;7023:2;7003:18;;;6996:30;-1:-1:-1;;;7042:18:139;;;7035:42;7094:18;;23227:122:83;6956:162:139;23227:122:83;21389:22:::1;::::0;21350:12:::1;::::0;;;-1:-1:-1;;;;;21389:11:83;::::1;::::0;:22:::1;::::0;21401:9;;21389:22:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21349:62;;;;21429:7;21445:8;21421:34;;;;::::0;-1:-1:-1;;;21421:34:83;;::::1;::::0;;::::1;;;:::i;:::-;;23359:1;;21234:228:::0;;:::o;11125:500::-;-1:-1:-1;;;;;11253:18:83;;11211:7;11253:18;;;:9;:18;;;;;;11211:7;11319:3;11302:13;11253:18;11313:2;11302:13;:::i;:::-;11301:21;;;;:::i;:::-;11282:40;;11332:14;11360:8;-1:-1:-1;;;;;11360:15:83;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11349:48;;-1:-1:-1;;;11349:48:83;;-1:-1:-1;;;;;4585:32:139;;;11349:48:83;;;4567:51:139;11349:39:83;;;;;;;4540:18:139;;11349:48:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11332:65;;11408:17;11491:3;11468:19;;11441:6;11430:8;:17;;;;:::i;:::-;:22;;11450:2;11430:22;:::i;:::-;11429:58;;;;:::i;:::-;11428:66;;;;:::i;:::-;11408:86;-1:-1:-1;11578:40:83;11587:20;11408:86;11587:8;:20;:::i;:::-;11609:8;11578;:40::i;:::-;11571:47;11125:500;-1:-1:-1;;;;;;11125:500:83:o;17498:92::-;17547:35;;-1:-1:-1;;;17547:35:83;;17571:10;17547:35;;;4567:51:139;17539:44:83;;17554:5;-1:-1:-1;;;;;17547:23:83;;-1:-1:-1;;4540:18:139;;17547:35:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10691:427::-;10751:7;10774:13;;10770:83;;-1:-1:-1;;;;;;10815:27:83;;;;;:20;:27;;;;;;;10691:427::o;10770:83::-;11097:13;;;-1:-1:-1;;;;;11048:17:83;;;;:10;:17;;;;;;;;;10985:14;:21;;;;;;11008:12;:19;;;;;;11097:13;;1123:6;;11048:17;;10976:52;;:8;:52::i;:::-;10926:31;10951:5;10926:24;:31::i;:::-;:102;;;;:::i;:::-;10925:140;;;;:::i;:::-;:168;;;;:::i;:::-;10924:186;;;;:::i;:::-;-1:-1:-1;;;;;10881:27:83;;;;;;:20;:27;;;;;;:230;;;;:::i;1752:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1752:24:83;;-1:-1:-1;1752:24:83;:::o;5484:1560::-;-1:-1:-1;;;;;5650:35:83;;5595:7;5650:35;;;:28;:35;;;;;;5595:7;;5650:35;5695:61;;5740:1;5743;5732:13;;;;;;;5695:61;-1:-1:-1;;;;;5826:32:83;;;;;;:25;:32;;;;;5902:9;;5859:16;-1:-1:-1;5859:12:83;:16;:::i;:::-;5826:50;;;;;;;;;;;:60;;;:85;5809:341;;-1:-1:-1;;;;;5961:32:83;;;;;;:25;:32;;;;;;5994:16;-1:-1:-1;5994:12:83;:16;:::i;:::-;5961:50;;;;;;;;;;;;;;-1:-1:-1;5961:50:83;;;:86;;;;;-1:-1:-1;;;;;6065:32:83;;;;:25;:32;;;;;;;6098:16;;:12;:16;:::i;:::-;6065:50;;;;;;;;;;;:60;;;5936:203;;;;;;;5809:341;-1:-1:-1;;;;;6208:32:83;;;;;;:25;:32;;;;;;;;:35;;;;;;;;:45;-1:-1:-1;;6204:101:83;;;6289:1;6292;6281:13;;;;;;;6204:101;6315:13;;6358:16;6373:1;6358:12;:16;:::i;:::-;6342:32;;6384:496;6399:5;6391;:13;6384:496;;;6420:14;6463:1;6446:13;6454:5;6446;:13;:::i;:::-;6445:19;;;;:::i;:::-;6437:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;6542:62:83;;6505:34;6542:62;;;:25;:62;;;;;;;;:70;;;;;;;;;6505:107;;;;;;;;;;;;;-1:-1:-1;6505:107:83;;;;;;;;;;;6542:70;;-1:-1:-1;6505:107:83;6630:25;;6626:244;;;6683:17;;;;6702:12;;6683:17;;-1:-1:-1;6702:12:83;-1:-1:-1;6675:40:83;;-1:-1:-1;;;;6675:40:83;6626:244;6740:12;;:24;-1:-1:-1;6736:134:83;;;6792:6;6784:14;;6736:134;;;6845:10;6854:1;6845:6;:10;:::i;:::-;6837:18;;6736:134;6384:496;;;;;-1:-1:-1;;;;;;6910:32:83;;;;;;:25;:32;;;;;;;;:39;;;;;;;-1:-1:-1;6910:54:83;;;6978:49;;6910:54;;-1:-1:-1;6978:49:83;-1:-1:-1;;5484:1560:83;;;;;;:::o;413:105:47:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:47;;490:21;-1:-1:-1;413:105:47:o;13746:1885:83:-;-1:-1:-1;;;;;13884:21:83;;13826:7;13884:21;;;:14;:21;;;;;;;;;13932:20;:27;;;;;;13974:20;;13826:7;;13884:21;13932:27;13970:88;;14023:6;14031:15;;-1:-1:-1;13746:1885:83;-1:-1:-1;;13746:1885:83:o;13970:88::-;-1:-1:-1;;;;;14072:17:83;;;;;;:10;:17;;;;;;14068:85;;14118:6;14126:15;;-1:-1:-1;13746:1885:83;-1:-1:-1;;;13746:1885:83:o;14068:85::-;14163:19;14185:36;14205:15;14185:19;:36::i;:::-;14163:58;;14231:17;14274:1;14251:20;;:24;;;;:::i;:::-;14231:44;-1:-1:-1;14316:1:83;14290:23;14302:11;14231:44;14290:23;:::i;:::-;:27;14286:777;;;14350:11;14333:720;14367:13;14379:1;14367:9;:13;:::i;:::-;14363:1;:17;14333:720;;;14405:27;14435:20;;;:17;:20;;;;;;;;;14405:50;;;;;;;;;;;;;;;;;;;;;14477:14;14473:566;;14515:27;14545:17;14515:27;14563:5;:1;14567;14563:5;:::i;:::-;14545:24;;;;;;;;;;;14515:54;;;;;;;;;;;;;;;;;;;;;;;;;;;14592:15;14609:16;14629:227;14674:5;14705:3;:13;;;14744:3;:13;;;14783:3;:10;;;14819:15;14629:19;:227::i;:::-;14591:265;;-1:-1:-1;14591:265:83;-1:-1:-1;14878:17:83;14591:265;14878:17;;:::i;:::-;;;14917:55;14948:5;14955:6;14963:8;14917:30;:55::i;:::-;15012:8;-1:-1:-1;;;14473:566:83;-1:-1:-1;14382:3:83;;;;:::i;:::-;;;;14333:720;;;;14286:777;15073:26;15102:28;;;:17;:28;;;;;;;;;15073:57;;;;;;;;;;;;;;;;;;;;;15144:13;15140:442;;15174:15;15195:222;15232:5;15255:31;15280:5;15255:24;:31::i;:::-;15313:12;;15304:39;;15327:15;15304:8;:39::i;:::-;15361:2;:9;;;15388:15;15195:19;:222::i;:::-;-1:-1:-1;15173:244:83;-1:-1:-1;15431:17:83;15173:244;15431:17;;:::i;:::-;;;15462:62;15493:5;15500:6;15508:15;15462:30;:62::i;:::-;15556:15;15538:33;;15140:442;;-1:-1:-1;15600:6:83;;15608:15;;-1:-1:-1;13746:1885:83;;-1:-1:-1;;;;13746:1885:83:o;21724:442::-;-1:-1:-1;;;;;21846:17:83;;;21838:53;;;;-1:-1:-1;;;21838:53:83;;;;;;;:::i;:::-;21961:59;;;-1:-1:-1;;;;;5201:32:139;;;21961:59:83;;;5183:51:139;5250:18;;;;5243:34;;;21961:59:83;;;;;;;;;;5156:18:139;;;;21961:59:83;;;;;;;-1:-1:-1;;;;;21961:59:83;-1:-1:-1;;;21961:59:83;;;21937:93;;-1:-1:-1;;;;21937:10:83;;;;:93;;21961:59;21937:93;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21901:129;;;;22061:7;:57;;;;-1:-1:-1;22073:11:83;;:16;;:44;;;22104:4;22093:24;;;;;;;;;;;;:::i;:::-;22040:119;;;;-1:-1:-1;;;22040:119:83;;8724:2:139;22040:119:83;;;8706:21:139;8763:2;8743:18;;;8736:30;-1:-1:-1;;;8782:18:139;;;8775:45;8837:18;;22040:119:83;8696:165:139;7050:600:83;-1:-1:-1;;;;;7199:23:83;;7129:18;7199:23;;;:14;:23;;;;;;7150:15;;7250:17;;;;;:96;;-1:-1:-1;;;;;;7283:20:83;;;;;;:11;:20;;;;;7336:10;;7304:17;-1:-1:-1;7304:13:83;:17;:::i;:::-;7283:39;;;;;;;;;;;:49;;;:63;7250:96;7233:411;;;-1:-1:-1;;;;;7371:20:83;;;;;;:11;:20;;;;;7423:7;;7392:17;-1:-1:-1;7392:13:83;:17;:::i;:::-;7371:39;;;;;;;;;;;-1:-1:-1;7371:39:83;:49;;:59;7233:411;;;7499:77;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7461:20:83;;-1:-1:-1;7461:20:83;;;:11;:20;;;;;:35;;;;;;;;;:115;;;;;;-1:-1:-1;7461:115:83;;;;7616:17;;7461:35;;7616:17;:::i;:::-;-1:-1:-1;;;;;7590:23:83;;;;;;:14;:23;;;;;:43;7233:411;7050:600;;;;:::o;8364:574::-;8441:20;;8492:15;8535:17;;;;;:93;;-1:-1:-1;8618:10:83;8568:17;:36;8586:17;8602:1;8586:13;:17;:::i;:::-;8568:36;;;;;;;;;;;:46;;;:60;8535:93;8518:414;;;8699:13;;8653:17;:36;8687:1;8671:13;:17;;;;:::i;:::-;8653:36;;;;;;;;;;;-1:-1:-1;8653:36:83;:43;;:59;8364:574;;:::o;8518:414::-;8778:89;;;;;;;;;;;-1:-1:-1;8840:13:83;;8778:89;;;;;;;8743:32;;;:17;:32;;;;;:124;;;;;;;;;;;8904:17;;8761:13;;8904:17;:::i;:::-;8881:20;:40;8364:574;;:::o;11849:1280::-;-1:-1:-1;;;;;12003:21:83;;11945:7;12003:21;;;:14;:21;;;;;;;;;12051:20;:27;;;;;;12093:20;;11945:7;;12003:21;12051:27;12089:88;;12142:6;-1:-1:-1;12150:15:83;-1:-1:-1;12134:32:83;;12089:88;-1:-1:-1;;;;;12191:17:83;;;;;;:10;:17;;;;;;12187:85;;12237:6;-1:-1:-1;12245:15:83;;-1:-1:-1;12229:32:83;;-1:-1:-1;12229:32:83;12187:85;12282:19;12304:36;12324:15;12304:19;:36::i;:::-;12282:58;;12350:17;12370:43;12402:1;12379:20;;:24;;;;:::i;:::-;12405:7;12370:8;:43::i;:::-;12350:63;-1:-1:-1;12441:11:83;12424:656;12458:9;12454:1;:13;12424:656;;;12488:27;12518:20;;;:17;:20;;;;;;;;;12488:50;;;;;;;;;;;;;;;;;;;;;12556:14;12552:518;;12590:27;12620:17;12590:27;12638:5;:1;12642;12638:5;:::i;:::-;12620:24;;;;;;;;;;;12590:54;;;;;;;;;;;;;;;;;;;;;;;;;;;12663:15;12680:16;12700:203;12741:5;12768:3;:13;;;12803:3;:13;;;12838:3;:10;;;12870:15;12700:19;:203::i;:::-;12662:241;;-1:-1:-1;12662:241:83;-1:-1:-1;12921:17:83;12662:241;12921:17;;:::i;:::-;;;12956:55;12987:5;12994:6;13002:8;12956:30;:55::i;:::-;13047:8;-1:-1:-1;;;12552:518:83;-1:-1:-1;12469:3:83;;;;:::i;:::-;;;;12424:656;;;-1:-1:-1;13098:6:83;;13106:15;;-1:-1:-1;11849:1280:83;;-1:-1:-1;;;;;11849:1280:83:o;589:104:47:-;647:7;677:1;673;:5;:13;;685:1;673:13;;7656:702:83;-1:-1:-1;;;;;7819:35:83;;7795:21;7819:35;;;:28;:35;;;;;;7882:17;;;;;:119;;-1:-1:-1;;;;;;7915:32:83;;;;;;:25;:32;;;;;7992:9;;7948:17;-1:-1:-1;7948:13:83;:17;:::i;:::-;7915:51;;;;;;;;;;;:61;;;:86;7882:119;7865:487;;;-1:-1:-1;;;;;8026:32:83;;;;;;:25;:32;;;;;8112:6;;8059:17;-1:-1:-1;8059:13:83;:17;:::i;7865:487::-;8229:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8149:32:83;;-1:-1:-1;8149:32:83;;;:25;:32;;;;;:77;;;;;;;;;:123;;;;;;-1:-1:-1;8149:123:83;;;;8324:17;;8149:77;;8324:17;:::i;:::-;-1:-1:-1;;;;;8286:35:83;;;;;;:28;:35;;;;;:55;7656:702;;;;:::o;22172:560::-;-1:-1:-1;;;;;22320:17:83;;;22312:53;;;;-1:-1:-1;;;22312:53:83;;;;;;;:::i;:::-;22435:147;;;-1:-1:-1;;;;;4887:15:139;;;22435:147:83;;;4869:34:139;4939:15;;;4919:18;;;4912:43;4971:18;;;;4964:34;;;22435:147:83;;;;;;;;;;4804:18:139;;;;22435:147:83;;;;;;;-1:-1:-1;;;;;22435:147:83;-1:-1:-1;;;22435:147:83;;;22411:181;;-1:-1:-1;;;;22411:10:83;;;;:181;;22435:147;22411:181;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22375:217;;;;22623:7;:57;;;;-1:-1:-1;22635:11:83;;:16;;:44;;;22666:4;22655:24;;;;;;;;;;;;:::i;:::-;22602:123;;;;-1:-1:-1;;;22602:123:83;;7681:2:139;22602:123:83;;;7663:21:139;7720:2;7700:18;;;7693:30;-1:-1:-1;;;7739:18:139;;;7732:49;7798:18;;22602:123:83;7653:169:139;22602:123:83;22172:560;;;;;;:::o;13135:605::-;13328:7;13337;13356:15;13374:36;13383:10;13395:14;13374:8;:36::i;:::-;-1:-1:-1;;;;;13646:17:83;;;;;;:10;:17;;;;;;13356:54;;-1:-1:-1;13695:6:83;;1123;;13501:125;13531:36;13540:10;13552:14;13531:8;:36::i;:::-;-1:-1:-1;;;;;13589:19:83;;;;;;:12;:19;;;;;;13501:8;:125::i;:::-;-1:-1:-1;;;;;13462:19:83;;;;;;:12;:19;;;;;;13444:38;;13453:7;;13444:8;:38::i;:::-;:182;;;;:::i;:::-;13443:220;;;;:::i;:::-;:248;;;;:::i;:::-;13442:259;;;;:::i;:::-;13420:313;13716:7;;-1:-1:-1;13135:605:83;-1:-1:-1;;;;;;13135:605:83:o;14:257:139:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:139;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:1218::-;1038:6;1046;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:31;1208:5;1183:31;:::i;:::-;1233:5;-1:-1:-1;1257:2:139;1295:18;;;1282:32;1333:18;1363:14;;;1360:2;;;1395:6;1387;1380:22;1360:2;1438:6;1427:9;1423:22;1413:32;;1483:7;1476:4;1472:2;1468:13;1464:27;1454:2;;1510:6;1502;1495:22;1454:2;1551;1538:16;1573:2;1569;1566:10;1563:2;;;1579:18;;:::i;:::-;1625:2;1622:1;1618:10;1608:20;;1648:28;1672:2;1668;1664:11;1648:28;:::i;:::-;1710:15;;;1741:12;;;;1773:11;;;1803;;;1799:20;;1796:33;-1:-1:-1;1793:2:139;;;1847:6;1839;1832:22;1793:2;1874:6;1865:15;;1889:244;1903:2;1900:1;1897:9;1889:244;;;1976:3;1963:17;1948:32;;1993:33;2018:7;1993:33;:::i;:::-;2039:20;;;1921:1;1914:9;;;;;2079:12;;;;2111;;1889:244;;;1893:3;2152:5;2142:15;;;;;;;;1057:1106;;;;;:::o;2168:943::-;2245:6;2253;2306:2;2294:9;2285:7;2281:23;2277:32;2274:2;;;2327:6;2319;2312:22;2274:2;2371:9;2358:23;2390:31;2415:5;2390:31;:::i;:::-;2440:5;-1:-1:-1;2464:2:139;2502:18;;;2489:32;2540:18;2570:14;;;2567:2;;;2602:6;2594;2587:22;2567:2;2645:6;2634:9;2630:22;2620:32;;2690:7;2683:4;2679:2;2675:13;2671:27;2661:2;;2717:6;2709;2702:22;2661:2;2758;2745:16;2780:2;2776;2773:10;2770:2;;;2786:18;;:::i;:::-;2828:53;-1:-1:-1;2852:13:139;;-1:-1:-1;;2848:27:139;2844:36;;2828:53;:::i;:::-;2815:66;;2904:2;2897:5;2890:17;2944:7;2939:2;2934;2930;2926:11;2922:20;2919:33;2916:2;;;2970:6;2962;2955:22;2916:2;3030;3025;3021;3017:11;3012:2;3005:5;3001:14;2988:45;3053:14;;3049:23;;;3042:39;;;;2264:847;;3057:5;;-1:-1:-1;2264:847:139;;-1:-1:-1;;2264:847:139:o;3116:325::-;3184:6;3192;3245:2;3233:9;3224:7;3220:23;3216:32;3213:2;;;3266:6;3258;3251:22;3213:2;3310:9;3297:23;3329:31;3354:5;3329:31;:::i;:::-;3379:5;3431:2;3416:18;;;;3403:32;;-1:-1:-1;;;3203:238:139:o;3446:297::-;3513:6;3566:2;3554:9;3545:7;3541:23;3537:32;3534:2;;;3587:6;3579;3572:22;3534:2;3624:9;3618:16;3677:5;3670:13;3663:21;3656:5;3653:32;3643:2;;3704:6;3696;3689:22;3748:190;3807:6;3860:2;3848:9;3839:7;3835:23;3831:32;3828:2;;;3881:6;3873;3866:22;3828:2;-1:-1:-1;3909:23:139;;3818:120;-1:-1:-1;3818:120:139:o;3943:194::-;4013:6;4066:2;4054:9;4045:7;4041:23;4037:32;4034:2;;;4087:6;4079;4072:22;4034:2;-1:-1:-1;4115:16:139;;4024:113;-1:-1:-1;4024:113:139:o;4142:274::-;4271:3;4309:6;4303:13;4325:53;4371:6;4366:3;4359:4;4351:6;4347:17;4325:53;:::i;:::-;4394:16;;;;;4279:137;-1:-1:-1;;4279:137:139:o;5707:383::-;5856:2;5845:9;5838:21;5819:4;5888:6;5882:13;5931:6;5926:2;5915:9;5911:18;5904:34;5947:66;6006:6;6001:2;5990:9;5986:18;5981:2;5973:6;5969:15;5947:66;:::i;:::-;6074:2;6053:15;-1:-1:-1;;6049:29:139;6034:45;;;;6081:2;6030:54;;5828:262;-1:-1:-1;;5828:262:139:o;6095:343::-;6297:2;6279:21;;;6336:2;6316:18;;;6309:30;-1:-1:-1;;;6370:2:139;6355:18;;6348:49;6429:2;6414:18;;6269:169::o;6443:334::-;6645:2;6627:21;;;6684:2;6664:18;;;6657:30;-1:-1:-1;;;6718:2:139;6703:18;;6696:40;6768:2;6753:18;;6617:160::o;10325:275::-;10396:2;10390:9;-1:-1:-1;10442:13:139;;-1:-1:-1;;10438:27:139;10426:40;;10496:18;10481:34;;10517:22;;;10478:62;10475:2;;;10543:18;;:::i;:::-;10579:2;10572:22;10370:230;;-1:-1:-1;10370:230:139:o;10605:128::-;10645:3;10676:1;10672:6;10669:1;10666:13;10663:2;;;10682:18;;:::i;:::-;-1:-1:-1;10718:9:139;;10653:80::o;10738:217::-;10778:1;10804;10794:2;;-1:-1:-1;;;10829:31:139;;10883:4;10880:1;10873:15;10911:4;10829:31;10901:15;10794:2;-1:-1:-1;10940:9:139;;10784:171::o;10960:168::-;11000:7;11066:1;11062;11058:6;11054:14;11051:1;11048:21;11043:1;11036:9;11029:17;11025:45;11022:2;;;11073:18;;:::i;:::-;-1:-1:-1;11113:9:139;;11012:116::o;11133:125::-;11173:4;11201:1;11198;11195:8;11192:2;;;11206:18;;:::i;:::-;-1:-1:-1;11243:9:139;;11182:76::o;11263:258::-;11335:1;11345:113;11359:6;11356:1;11353:13;11345:113;;;11435:11;;;11429:18;11416:11;;;11409:39;11381:2;11374:10;11345:113;;;11476:6;11473:1;11470:13;11467:2;;;-1:-1:-1;;11511:1:139;11493:16;;11486:27;11316:205::o;11526:135::-;11565:3;-1:-1:-1;;11586:17:139;;11583:2;;;11606:18;;:::i;:::-;-1:-1:-1;11653:1:139;11642:13;;11573:88::o;11666:127::-;11727:10;11722:3;11718:20;11715:1;11708:31;11758:4;11755:1;11748:15;11782:4;11779:1;11772:15;11798:127;11859:10;11854:3;11850:20;11847:1;11840:31;11890:4;11887:1;11880:15;11914:4;11911:1;11904:15;11930:131;-1:-1:-1;;;;;12005:31:139;;11995:42;;11985:2;;12051:1;12048;12041:12"},"methodIdentifiers":{"attached(address)":"36703461","balanceOf(address)":"70a08231","batchRewardPerToken(address,uint256)":"5a45d052","checkpoints(address,uint256)":"0cdfebfa","deposit(uint256)":"b6b55f25","depositAll()":"de5f6268","derivedBalance(address)":"d35e2544","derivedBalances(address)":"63fb415b","derivedSupply()":"d7da4bb0","earned(address,address)":"211dc32d","emergencyCall(address,bytes)":"c4bf0220","getPriorBalanceIndex(address,uint256)":"115c6f39","getPriorRewardPerToken(address,uint256)":"fd314098","getPriorSupplyIndex(uint256)":"76f4be36","getReward(address,address[])":"31279d3d","isReward(address)":"4d5ce038","lastEarn(address,address)":"a495e5b5","lastTimeRewardApplicable(address)":"638634ee","lastUpdateTime(address)":"2ce9aead","left(address)":"99bcc052","maxBoostRequirement()":"69db8b27","notifyRewardAmount(address,uint256)":"b66503cf","numCheckpoints(address)":"6fcfff45","periodFinish(address)":"da09d19d","registry()":"7b103999","rewardPerToken(address)":"f1229777","rewardPerTokenCheckpoints(address,uint256)":"01316ddf","rewardPerTokenNumCheckpoints(address)":"aa479652","rewardPerTokenStored(address)":"9ce43f90","rewardRate(address)":"221ca18c","rewards(uint256)":"f301af42","rewardsListLength()":"e6886396","setMaxBoost(uint256)":"b2e0df96","stake()":"3a4b66f1","supplyCheckpoints(uint256)":"f7412baf","supplyNumCheckpoints()":"e8111a12","totalSupply()":"18160ddd","userRewardPerTokenStored(address,address)":"3ca068b6","withdraw(uint256)":"2e1a7d4d","withdrawAll()":"853828b6","withdrawToken(uint256)":"50baa622"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stake\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed1\",\"type\":\"uint256\"}],\"name\":\"ClaimFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_old\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_new\",\"type\":\"uint256\"}],\"name\":\"MaxBoostRequirementChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"attached\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxRuns\",\"type\":\"uint256\"}],\"name\":\"batchRewardPerToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"checkpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOf\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"derivedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"derivedBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"derivedSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"emergencyCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorBalanceIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorRewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getPriorSupplyIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isReward\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastEarn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBoostRequirement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"rewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardPerTokenCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerToken\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenNumCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsListLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxBoostRequirement\",\"type\":\"uint256\"}],\"name\":\"setMaxBoost\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"supplyCheckpoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyNumCheckpoints\",\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userRewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"emergencyCall(address,bytes)\":{\"details\":\"in case admin needs to execute some calls directly\"},\"getPriorBalanceIndex(address,uint256)\":{\"details\":\"Block number must be a finalized block or else this function will revert to prevent misinformation.\",\"params\":{\"account\":\"The address of the account to check\",\"timestamp\":\"The timestamp to get the balance at\"},\"returns\":{\"_0\":\"The balance the account had as of the given block\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"checkpoints(address,uint256)\":{\"notice\":\"A record of balance checkpoints for each account, by index\"},\"getPriorBalanceIndex(address,uint256)\":{\"notice\":\"Determine the prior balance for an account as of a block number\"},\"numCheckpoints(address)\":{\"notice\":\"The number of checkpoints for each account\"},\"rewardPerTokenCheckpoints(address,uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"rewardPerTokenNumCheckpoints(address)\":{\"notice\":\"The number of checkpoints for each token\"},\"supplyCheckpoints(uint256)\":{\"notice\":\"A record of balance checkpoints for each token, by index\"},\"supplyNumCheckpoints()\":{\"notice\":\"The number of checkpoints\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/BaseGaugeV2.sol\":\"BaseGaugeV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/gauges/BaseGaugeV2.sol\":{\"keccak256\":\"0x844878e134da2ae735b2fb4c4d843126ad5f782ca74b2b07774c0822724fe257\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a7c88d37bf12987f1d304325d6ed8364b20cd3e722c05ab33118d4fbb4db68c\",\"dweb:/ipfs/QmTvssR9qD1Eg9kkLkb1ymEwnSkSZLDbXY7xmxxvpUXQBX\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeV2.sol\":{\"keccak256\":\"0x3c18553ca65458ce61c119dcf77562e982252003b889e29cfb7b418f6b0651a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb8852cc39c57b2abef2f19729fb3dd7011e5121634362d46cad2928f894e344\",\"dweb:/ipfs/QmUDX6dBugtpMTjuF99z8hipLhfQAp3M4P6b5Wpva1oV7S\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/gauges/BaseGaugeV2UniV3.sol":{"BaseGaugeV2UniV3":{"abi":[{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_timelock","type":"address"},{"internalType":"contract INonfungiblePositionManager","name":"_nonfungiblePositionManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"IncentiveCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"}],"name":"TokenStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TokenUnstaked","type":"event"},{"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"who","type":"address"}],"name":"boostedFactor","outputs":[{"internalType":"uint256","name":"original","type":"uint256"},{"internalType":"uint256","name":"boosted","type":"uint256"},{"internalType":"uint256","name":"factor","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"to","type":"address"}],"name":"claimRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deposits","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"derivedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableEmergencyMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inEmergency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incentives","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"isIdsWithinRange","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBoostRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"stakes","outputs":[{"internalType":"uint160","name":"secondsPerLiquidityInsideInitialX128","type":"uint160"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLiquiditySupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardUnclaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSecondsClaimedX128","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawViaEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2168:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:139"},"nodeType":"YulFunctionCall","src":"143:22:139"},"nodeType":"YulExpressionStatement","src":"143:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:139"},"nodeType":"YulFunctionCall","src":"112:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:139"},"nodeType":"YulFunctionCall","src":"108:32:139"},"nodeType":"YulIf","src":"105:2:139"},{"nodeType":"YulVariableDeclaration","src":"176:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:139"},"nodeType":"YulFunctionCall","src":"189:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"239:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"214:24:139"},"nodeType":"YulFunctionCall","src":"214:31:139"},"nodeType":"YulExpressionStatement","src":"214:31:139"},{"nodeType":"YulAssignment","src":"254:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"264:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"254:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:139","type":""}],"src":"14:261:139"},{"body":{"nodeType":"YulBlock","src":"482:808:139","statements":[{"body":{"nodeType":"YulBlock","src":"529:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"538:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"546:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"531:6:139"},"nodeType":"YulFunctionCall","src":"531:22:139"},"nodeType":"YulExpressionStatement","src":"531:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"503:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"512:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"499:3:139"},"nodeType":"YulFunctionCall","src":"499:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"524:3:139","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"495:3:139"},"nodeType":"YulFunctionCall","src":"495:33:139"},"nodeType":"YulIf","src":"492:2:139"},{"nodeType":"YulVariableDeclaration","src":"564:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"583:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"577:5:139"},"nodeType":"YulFunctionCall","src":"577:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"568:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"627:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"602:24:139"},"nodeType":"YulFunctionCall","src":"602:31:139"},"nodeType":"YulExpressionStatement","src":"602:31:139"},{"nodeType":"YulAssignment","src":"642:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"652:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"642:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"666:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"691:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"702:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"687:3:139"},"nodeType":"YulFunctionCall","src":"687:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"681:5:139"},"nodeType":"YulFunctionCall","src":"681:25:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"670:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"740:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"715:24:139"},"nodeType":"YulFunctionCall","src":"715:33:139"},"nodeType":"YulExpressionStatement","src":"715:33:139"},{"nodeType":"YulAssignment","src":"757:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"767:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"757:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"783:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"808:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"819:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:139"},"nodeType":"YulFunctionCall","src":"804:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"798:5:139"},"nodeType":"YulFunctionCall","src":"798:25:139"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"787:7:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"879:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"888:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"896:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"881:6:139"},"nodeType":"YulFunctionCall","src":"881:22:139"},"nodeType":"YulExpressionStatement","src":"881:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"845:7:139"},{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"858:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"867:8:139","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"854:3:139"},"nodeType":"YulFunctionCall","src":"854:22:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"842:2:139"},"nodeType":"YulFunctionCall","src":"842:35:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"835:6:139"},"nodeType":"YulFunctionCall","src":"835:43:139"},"nodeType":"YulIf","src":"832:2:139"},{"nodeType":"YulAssignment","src":"914:17:139","value":{"name":"value_2","nodeType":"YulIdentifier","src":"924:7:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"914:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"940:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"965:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"976:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"961:3:139"},"nodeType":"YulFunctionCall","src":"961:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"955:5:139"},"nodeType":"YulFunctionCall","src":"955:25:139"},"variables":[{"name":"value_3","nodeType":"YulTypedName","src":"944:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_3","nodeType":"YulIdentifier","src":"1014:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"989:24:139"},"nodeType":"YulFunctionCall","src":"989:33:139"},"nodeType":"YulExpressionStatement","src":"989:33:139"},{"nodeType":"YulAssignment","src":"1031:17:139","value":{"name":"value_3","nodeType":"YulIdentifier","src":"1041:7:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1031:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1057:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1093:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1078:3:139"},"nodeType":"YulFunctionCall","src":"1078:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1072:5:139"},"nodeType":"YulFunctionCall","src":"1072:26:139"},"variables":[{"name":"value_4","nodeType":"YulTypedName","src":"1061:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_4","nodeType":"YulIdentifier","src":"1132:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1107:24:139"},"nodeType":"YulFunctionCall","src":"1107:33:139"},"nodeType":"YulExpressionStatement","src":"1107:33:139"},{"nodeType":"YulAssignment","src":"1149:17:139","value":{"name":"value_4","nodeType":"YulIdentifier","src":"1159:7:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1149:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1175:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1211:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1196:3:139"},"nodeType":"YulFunctionCall","src":"1196:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1190:5:139"},"nodeType":"YulFunctionCall","src":"1190:26:139"},"variables":[{"name":"value_5","nodeType":"YulTypedName","src":"1179:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_5","nodeType":"YulIdentifier","src":"1250:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1225:24:139"},"nodeType":"YulFunctionCall","src":"1225:33:139"},"nodeType":"YulExpressionStatement","src":"1225:33:139"},{"nodeType":"YulAssignment","src":"1267:17:139","value":{"name":"value_5","nodeType":"YulIdentifier","src":"1277:7:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1267:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint24t_addresst_addresst_contract$_INonfungiblePositionManager_$35221_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"408:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"419:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"431:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"439:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"447:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"455:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"463:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"471:6:139","type":""}],"src":"280:1010:139"},{"body":{"nodeType":"YulBlock","src":"1450:233:139","statements":[{"nodeType":"YulAssignment","src":"1460:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1472:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1483:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1468:3:139"},"nodeType":"YulFunctionCall","src":"1468:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1460:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"1495:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1513:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1518:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1509:3:139"},"nodeType":"YulFunctionCall","src":"1509:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1522:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1505:3:139"},"nodeType":"YulFunctionCall","src":"1505:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1499:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1540:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1555:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1563:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1551:3:139"},"nodeType":"YulFunctionCall","src":"1551:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1533:6:139"},"nodeType":"YulFunctionCall","src":"1533:34:139"},"nodeType":"YulExpressionStatement","src":"1533:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1587:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1598:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1583:3:139"},"nodeType":"YulFunctionCall","src":"1583:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1607:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1615:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1603:3:139"},"nodeType":"YulFunctionCall","src":"1603:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1576:6:139"},"nodeType":"YulFunctionCall","src":"1576:43:139"},"nodeType":"YulExpressionStatement","src":"1576:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1639:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1650:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1635:3:139"},"nodeType":"YulFunctionCall","src":"1635:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1659:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1667:8:139","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1655:3:139"},"nodeType":"YulFunctionCall","src":"1655:21:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1628:6:139"},"nodeType":"YulFunctionCall","src":"1628:49:139"},"nodeType":"YulExpressionStatement","src":"1628:49:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint24__to_t_address_t_address_t_uint24__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1403:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1414:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1422:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1430:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1441:4:139","type":""}],"src":"1295:388:139"},{"body":{"nodeType":"YulBlock","src":"1862:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1872:6:139"},"nodeType":"YulFunctionCall","src":"1872:21:139"},"nodeType":"YulExpressionStatement","src":"1872:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1913:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1924:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1909:3:139"},"nodeType":"YulFunctionCall","src":"1909:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1929:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:139"},"nodeType":"YulFunctionCall","src":"1902:30:139"},"nodeType":"YulExpressionStatement","src":"1902:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1952:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1963:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1948:3:139"},"nodeType":"YulFunctionCall","src":"1948:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1968:20:139","type":"","value":"pool doesn't exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1941:6:139"},"nodeType":"YulFunctionCall","src":"1941:48:139"},"nodeType":"YulExpressionStatement","src":"1941:48:139"},{"nodeType":"YulAssignment","src":"1998:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2010:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2021:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:139"},"nodeType":"YulFunctionCall","src":"2006:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1998:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1839:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1853:4:139","type":""}],"src":"1688:342:139"},{"body":{"nodeType":"YulBlock","src":"2080:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"2144:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2153:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2156:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2146:6:139"},"nodeType":"YulFunctionCall","src":"2146:12:139"},"nodeType":"YulExpressionStatement","src":"2146:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2103:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2114:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2129:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2134:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2125:3:139"},"nodeType":"YulFunctionCall","src":"2125:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2138:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2121:3:139"},"nodeType":"YulFunctionCall","src":"2121:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2110:3:139"},"nodeType":"YulFunctionCall","src":"2110:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2100:2:139"},"nodeType":"YulFunctionCall","src":"2100:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2093:6:139"},"nodeType":"YulFunctionCall","src":"2093:50:139"},"nodeType":"YulIf","src":"2090:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2069:5:139","type":""}],"src":"2035:131:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint24t_addresst_addresst_contract$_INonfungiblePositionManager_$35221_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        if iszero(eq(value_2, and(value_2, 0xffffff))) { revert(value4, value4) }\n        value2 := value_2\n        let value_3 := mload(add(headStart, 96))\n        validator_revert_address(value_3)\n        value3 := value_3\n        let value_4 := mload(add(headStart, 128))\n        validator_revert_address(value_4)\n        value4 := value_4\n        let value_5 := mload(add(headStart, 160))\n        validator_revert_address(value_5)\n        value5 := value_5\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint24__to_t_address_t_address_t_uint24__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"pool doesn't exist\")\n        tail := add(headStart, 96)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c06040523480156200001157600080fd5b506040516200367138038062003671833981016040819052620000349162000242565b6001600055606083901b6001600160601b031916608052600880546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b158015620000a057600080fd5b505afa158015620000b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000db91906200021c565b600780546001600160a01b0319166001600160a01b03928316908117909155604051630b4c774160e11b81528883166004820152918716602483015262ffffff86166044830152600091631698ee829060640160206040518083038186803b1580156200014757600080fd5b505afa1580156200015c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018291906200021c565b90506001600160a01b038116620001d45760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08191bd95cdb89dd08195e1a5cdd60721b604482015260640160405180910390fd5b60601b6001600160601b03191660a0525060068054610100600160a81b0319166101006001600160a01b03939093169290920291909117905550504260035550620002f49050565b6000602082840312156200022e578081fd5b81516200023b81620002db565b9392505050565b60008060008060008060c087890312156200025b578182fd5b86516200026881620002db565b60208801519096506200027b81620002db565b604088015190955062ffffff8116811462000294578283fd5b6060880151909450620002a781620002db565b6080880151909350620002ba81620002db565b60a0880151909250620002cd81620002db565b809150509295509295509295565b6001600160a01b0381168114620002f157600080fd5b50565b60805160601c60a05160601c6133126200035f600039600081816102bb01528181610a61015281816118de01526120b801526000818161044a0152818161167601528181611823015281816119fd01528181611a7f01528181611c0f0152611dc601526133126000f3fe6080604052600436106101ae5760003560e01c806379aa9db5116100ed578063b44a272211610090578063b44a27221461058f578063b66503cf146105af578063bf7989b9146105cf578063c45a0155146105e5578063c5b1c7d014610605578063d33219b41461061a578063d5a44f861461063f578063e70eb39214610686578063ea9f5517146106a657600080fd5b806379aa9db5146104225780637b103999146104385780638a16a30b1461046c57806399bcc0521461048c5780639be54945146104ae578063a65b781e146104d8578063ac9650d8146104f8578063b02c43d01461051857600080fd5b80632f745c59116101555780632f745c59146103165780633197cbb614610336578063403017ca1461034c5780634f6ccce71461038757806350baa622146103a757806369db8b27146103c957806370a08231146103df57806378e979251461040c57600080fd5b80630520537f146101b35780630700037d146101e65780630b9cc5fd146102135780630d5df7ba14610240578063150b7a021461027057806316f0115b146102a957806318160ddd146102ea5780631be05289146102ff575b600080fd5b3480156101bf57600080fd5b506101d36101ce366004612b5e565b6106c6565b6040519081526020015b60405180910390f35b3480156101f257600080fd5b506101d36102013660046129b9565b600c6020526000908152604090205481565b34801561021f57600080fd5b5061023361022e366004612b24565b61072c565b6040516101dd9190612efb565b34801561024c57600080fd5b50600154600254604080519283526001600160a01b039091166020830152016101dd565b34801561027c57600080fd5b5061029061028b3660046129f1565b6108d0565b6040516001600160e01b031990911681526020016101dd565b3480156102b557600080fd5b506102dd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101dd9190612ec3565b3480156102f657600080fd5b506010546101d3565b34801561030b57600080fd5b506101d362093a8081565b34801561032257600080fd5b506101d3610331366004612a8a565b610f8c565b34801561034257600080fd5b506101d360045481565b34801561035857600080fd5b5061036c610367366004612d6d565b611030565b604080519384526020840192909252908201526060016101dd565b34801561039357600080fd5b506101d36103a2366004612d3d565b6110bb565b3480156103b357600080fd5b506103c76103c2366004612d3d565b61115c565b005b3480156103d557600080fd5b506101d360055481565b3480156103eb57600080fd5b506101d36103fa3660046129b9565b600d6020526000908152604090205481565b34801561041857600080fd5b506101d360035481565b34801561042e57600080fd5b506101d3600b5481565b34801561044457600080fd5b506102dd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561047857600080fd5b506103c7610487366004612d3d565b6112f1565b34801561049857600080fd5b506101d36104a73660046129b9565b5060015490565b3480156104ba57600080fd5b506006546104c89060ff1681565b60405190151581526020016101dd565b3480156104e457600080fd5b506002546102dd906001600160a01b031681565b61050b610506366004612ab5565b61149f565b6040516101dd9190612f41565b34801561052457600080fd5b50610566610533366004612d3d565b6009602052600090815260409020546001600160a01b03811690600160a01b8104600290810b91600160b81b9004900b83565b604080516001600160a01b039094168452600292830b6020850152910b908201526060016101dd565b34801561059b57600080fd5b506008546102dd906001600160a01b031681565b3480156105bb57600080fd5b506103c76105ca366004612a8a565b611619565b3480156105db57600080fd5b506101d360015481565b3480156105f157600080fd5b506007546102dd906001600160a01b031681565b34801561061157600080fd5b506103c7611935565b34801561062657600080fd5b506006546102dd9061010090046001600160a01b031681565b34801561064b57600080fd5b5061065f61065a366004612d3d565b611b90565b604080516001600160a01b0390931683526001600160801b039091166020830152016101dd565b34801561069257600080fd5b506101d36106a1366004612d6d565b611bdc565b3480156106b257600080fd5b506101d36106c1366004612d6d565b611bef565b60008060005b8451811015610724576107068582815181106106f857634e487b7160e01b600052603260045260246000fd5b602002602001015185611d6c565b6107109083613136565b91508061071c81613267565b9150506106cc565b509392505050565b6060600082516001600160401b0381111561075757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610780578160200160208202803683370190505b50905060005b83518110156108c95760008482815181106107b157634e487b7160e01b600052603260045260246000fd5b6020908102919091010151600754600854919250600091829182916107e3916001600160a01b03908116911686611ea6565b509250925092506000836001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561082557600080fd5b505afa158015610839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085d9190612caf565b50505050509150508060020b8360020b12801561087f57508160020b8160020b125b87878151811061089f57634e487b7160e01b600052603260045260246000fd5b602002602001019015159081151581525050505050505080806108c190613267565b915050610786565b5092915050565b60065460009060ff16156108ff5760405162461bcd60e51b81526004016108f690613065565b60405180910390fd5b6008546001600160a01b031633146109745760405162461bcd60e51b815260206004820152603260248201527f556e697377617056335374616b65723a3a6f6e45524337323152656365697665604482015271190e881b9bdd0818481d5b9a5d8cc81b999d60721b60648201526084016108f6565b60075460085460009182918291829161099a916001600160a01b0390811691168a611ea6565b935093509350935060405180606001604052808a6001600160a01b031681526020018460020b81526020018360020b815250600960008a815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548162ffffff021916908360020b62ffffff16021790555060408201518160000160176101000a81548162ffffff021916908360020b62ffffff1602179055509050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614610b065760405162461bcd60e51b815260206004820152603d60248201527f556e697377617056335374616b65723a3a7374616b65546f6b656e3a20746f6b60448201527f656e20706f6f6c206973206e6f742074686520726967687420706f6f6c00000060648201526084016108f6565b6000816001600160801b031611610b87576040805162461bcd60e51b81526020600482015260248101919091527f556e697377617056335374616b65723a3a7374616b65546f6b656e3a2063616e60448201527f6e6f74207374616b6520746f6b656e20776974682030206c697175696469747960648201526084016108f6565b806001600160801b0316600b6000828254610ba29190613136565b9091555060009050610bbd6001600160801b0383168b611bef565b6040516351c403f960e11b8152600286810b600483015285900b60248201529091506000906001600160a01b0387169063a38807f29060440160606040518083038186803b158015610c0e57600080fd5b505afa158015610c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c469190612bc7565b509150506001600160601b036001600160801b03831610610d75576040518060800160405280826001600160a01b031681526020016001600160601b0380168152602001836001600160801b03168152602001846001600160801b0316815250600a60008c815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160601b0302191690836001600160601b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b0316021790555060608201518160010160106101000a8154816001600160801b0302191690836001600160801b03160217905550905050610e86565b6040518060800160405280826001600160a01b03168152602001836001600160601b0316815260200160006001600160801b03168152602001846001600160801b0316815250600a60008c815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160601b0302191690836001600160601b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b0316021790555060608201518160010160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505b610ece8a601080546000838152601160205260408120829055600182018355919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720155565b6001600160a01b038b166000908152600d6020908152604080832054600e835281842081855283528184208e90558d8452600f909252909120556001600160a01b038b166000908152600d60205260408120805460019290610f31908490613136565b90915550506040516001600160801b03841681528a907f4a1aff2ad1f7400721a859525efe44bd9dea253e1e02ba4161f2c77ed16fc0a39060200160405180910390a250630a85bd0160e11b9b9a5050505050505050505050565b6001600160a01b0382166000908152600d602052604081205482106110075760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016108f6565b506001600160a01b03919091166000908152600e60209081526040808320938352929052205490565b600754600854600091829182918291611056916001600160a01b03908116911688611ea6565b9350505050606481601461106a9190613188565b611074919061314e565b6001600160801b03169350611092816001600160801b031686611bef565b9250826110a785670de0b6b3a76400006131dd565b6110b19190613174565b9150509250925092565b60006110c660105490565b82106111295760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016108f6565b6010828154811061114a57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b60065460ff161561117f5760405162461bcd60e51b81526004016108f690613065565b61118881611ffa565b6000818152600a6020526040812060010154600b8054600160801b9092046001600160801b03169290916111bd908490613224565b90915550506000818152600960205260409020546001600160a01b031633146111f85760405162461bcd60e51b81526004016108f690613008565b600081815260096020908152604080832080546001600160d01b0319169055600a90915281208181556001015561122f33826121f9565b61123881612295565b336000908152600d60205260408120805460019290611258908490613224565b909155505060405181907f85837b804496fa8a31cf9284d2c34c3276ca3d5369cfe705026f7bad0365c0f290600090a2600854604051632142170760e11b81526001600160a01b03909116906342842e0e906112bc90309033908690600401612ed7565b600060405180830381600087803b1580156112d657600080fd5b505af11580156112ea573d6000803e3d6000fd5b5050505050565b60065460ff1661133b5760405162461bcd60e51b81526020600482015260156024820152746e6f7420696e20656d657267656e6379206d6f646560581b60448201526064016108f6565b6000818152600960205260409020546001600160a01b031633146113715760405162461bcd60e51b81526004016108f690613008565b600061137c82611b90565b9150506001600160801b0381166113a55760405162461bcd60e51b81526004016108f690612fb5565b600082815260096020908152604080832080546001600160d01b0319169055600a9091528120818155600101556113dc33836121f9565b6113e582612295565b336000908152600d60205260408120805460019290611405908490613224565b909155505060405182907f85837b804496fa8a31cf9284d2c34c3276ca3d5369cfe705026f7bad0365c0f290600090a2600854604051632142170760e11b81526001600160a01b03909116906342842e0e9061146990309033908790600401612ed7565b600060405180830381600087803b15801561148357600080fd5b505af1158015611497573d6000803e3d6000fd5b505050505050565b6060816001600160401b038111156114c757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114fa57816020015b60608152602001906001900390816114e55790505b50905060005b828110156108c9576000803086868581811061152c57634e487b7160e01b600052603260045260246000fd5b905060200281019061153e9190613090565b60405161154c929190612e97565b600060405180830381855af49150503d8060008114611587576040519150601f19603f3d011682016040523d82523d6000602084013e61158c565b606091505b5091509150816115d8576044815110156115a557600080fd5b600481019050808060200190518101906115bf9190612c20565b60405162461bcd60e51b81526004016108f69190612fa2565b808484815181106115f957634e487b7160e01b600052603260045260246000fd5b60200260200101819052505050808061161190613267565b915050611500565b6002600054141561166c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108f6565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b1580156116cd57600080fd5b505afa1580156116e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170591906129d5565b6001600160a01b0316826001600160a01b0316146117815760405162461bcd60e51b815260206004820152603360248201527f556e697377617056335374616b65723a3a637265617465496e63656e746976656044820152720e881bdb9b1e481b585a1848185b1b1bddd959606a1b60648201526084016108f6565b600081116117f35760405162461bcd60e51b815260206004820152603960248201527f556e697377617056335374616b65723a3a637265617465496e63656e746976656044820152783a20726577617264206d75737420626520706f73697469766560381b60648201526084016108f6565b80600160008282546118059190613136565b90915550611818905062093a8042613136565b6004819055506118ba7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b15801561187a57600080fd5b505afa15801561188e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b291906129d5565b33308461236e565b60035460045460408051928352602083019190915281018290526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016907fd7a440eccc1b2ae97683e4d1cd3e4e1f17ec4eb738ff723eff7a664a33c417989060600160405180910390a250506001600055565b60065461010090046001600160a01b031633146119835760405162461bcd60e51b815260206004820152600c60248201526b6e6f742074696d656c6f636b60a01b60448201526064016108f6565b60065460ff16156119d25760405162461bcd60e51b8152602060048201526019602482015278616c726561647920696e20656d657267656e6379206d6f646560381b60448201526064016108f6565b6006805460ff1916600117905560408051631ef0061b60e11b81529051611b8e916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633de00c3691600480820192602092909190829003018186803b158015611a4457600080fd5b505afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c91906129d5565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015611ad657600080fd5b505afa158015611aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0e91906129d5565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611b399190612ec3565b60206040518083038186803b158015611b5157600080fd5b505afa158015611b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b899190612d55565b6123fd565b565b6000818152600a6020526040902080546001600160a01b038116916001600160601b03600160a01b909204821691821415611bd65760018101546001600160801b031691505b50915091565b6000611be88383611d6c565b9392505050565b6000806064611bff8560146131dd565b611c099190613174565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6657600080fd5b505afa158015611c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9e91906129d5565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401611cc99190612ec3565b60206040518083038186803b158015611ce157600080fd5b505afa158015611cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d199190612d55565b9050600060646005548388611d2e91906131dd565b611d399060506131dd565b611d439190613174565b611d4d9190613174565b9050611d62611d5c8285613136565b8761248a565b9695505050505050565b60065460009060ff1615611d925760405162461bcd60e51b81526004016108f690613065565b611d9b83611ffa565b336000908152600c60205260408120805491829190611dba8380613224565b92505081905550611e5c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1d57600080fd5b505afa158015611e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5591906129d5565b84836123fd565b826001600160a01b03167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f724182604051611e9791815260200190565b60405180910390a29392505050565b6000806000806000806000886001600160a01b03166399fbab88896040518263ffffffff1660e01b8152600401611edf91815260200190565b6101806040518083038186803b158015611ef857600080fd5b505afa158015611f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f309190612d91565b5050604051630b4c774160e11b8152949f50929d50909b509499509297509095506001600160a01b038f169450631698ee829350611f9c9250879150869086906004016001600160a01b03938416815291909216602082015262ffffff91909116604082015260600190565b60206040518083038186803b158015611fb457600080fd5b505afa158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fec91906129d5565b965050505093509350935093565b6000818152600960209081526040808320815160608101835290546001600160a01b0381168252600160a01b8104600290810b810b810b94830194909452600160b81b9004830b830b90920b90820152908061205584611b90565b91509150806001600160801b0316600014156120835760405162461bcd60e51b81526004016108f690612fb5565b602083015160408085015190516351c403f960e11b8152600292830b6004820152910b60248201526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a38807f29060440160606040518083038186803b1580156120fa57600080fd5b505afa15801561210e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121329190612bc7565b50915050600080612164600154600260009054906101000a90046001600160a01b0316600354600454888a89426124a0565b6002805492945090925082916000906121879084906001600160a01b031661310b565b92506101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600160008282546121bd9190613224565b909155505085516001600160a01b03166000908152600c6020526040812080548492906121eb908490613136565b909155505050505050505050565b6001600160a01b0382166000908152600d6020908152604080832054848452600f90925290912054808214612262576001600160a01b0384166000908152600e602090815260408083208584528252808320548484528184208190558352600f90915290208190555b506000918252600f602090815260408084208490556001600160a01b039094168352600e81528383209183525290812055565b6010546000906122a790600190613224565b600083815260116020526040812054601080549394509092849081106122dd57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050806010838154811061230c57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260119091526040808220849055858252812055601080548061235257634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6001600160a01b0384163b6123eb5760405162461bcd60e51b815260206004820152603e60248201527f5472616e7366657248656c706572457874656e6465643a3a736166655472616e60448201527f7366657246726f6d3a2063616c6c20746f206e6f6e2d636f6e7472616374000060648201526084016108f6565b6123f784848484612535565b50505050565b6001600160a01b0383163b61247a5760405162461bcd60e51b815260206004820152603a60248201527f5472616e7366657248656c706572457874656e6465643a3a736166655472616e60448201527f736665723a2063616c6c20746f206e6f6e2d636f6e747261637400000000000060648201526084016108f6565b61248583838361263b565b505050565b60008183106124995781611be8565b5090919050565b600080878310156124c157634e487b7160e01b600052600160045260246000fd5b6001600160801b0386166124d586866131fc565b6124df91906131b7565b90506000896001600160a01b031660808a6124fa8b88612734565b6125049190613224565b61250f92911b613224565b90506125258b836001600160a01b031683612744565b9250509850989650505050505050565b600080856001600160a01b03166323b872dd60e01b86868660405160240161255f93929190612ed7565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161259d9190612ea7565b6000604051808303816000865af19150503d80600081146125da576040519150601f19603f3d011682016040523d82523d6000602084013e6125df565b606091505b50915091508180156126095750805115806126095750808060200190518101906126099190612bad565b6114975760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b60448201526064016108f6565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916126979190612ea7565b6000604051808303816000865af19150503d80600081146126d4576040519150601f19603f3d011682016040523d82523d6000602084013e6126d9565b606091505b50915091508180156127035750805115806127035750808060200190518101906127039190612bad565b6112ea5760405162461bcd60e51b815260206004820152600260248201526114d560f21b60448201526064016108f6565b6000818310156124995781611be8565b60008080600019858709858702925082811083820303915050806000141561277e576000841161277357600080fd5b508290049050611be8565b80841161278a57600080fd5b6000848688098084039381119092039190506000856127ab81600019613224565b6127b6906001613136565b169586900495938490049360008190030460010190506127d681846131dd565b9093179260006127e78760036131dd565b60021890506127f681886131dd565b612801906002613224565b61280b90826131dd565b905061281781886131dd565b612822906002613224565b61282c90826131dd565b905061283881886131dd565b612843906002613224565b61284d90826131dd565b905061285981886131dd565b612864906002613224565b61286e90826131dd565b905061287a81886131dd565b612885906002613224565b61288f90826131dd565b905061289b81886131dd565b6128a6906002613224565b6128b090826131dd565b90506128bc81866131dd565b9998505050505050505050565b80516128d4816132c4565b919050565b600082601f8301126128e9578081fd5b813560206001600160401b03821115612904576129046132ae565b8160051b6129138282016130db565b83815282810190868401838801850189101561292d578687fd5b8693505b8584101561294f578035835260019390930192918401918401612931565b50979650505050505050565b805180151581146128d457600080fd5b8051600281900b81146128d457600080fd5b80516001600160801b03811681146128d457600080fd5b805161ffff811681146128d457600080fd5b805162ffffff811681146128d457600080fd5b6000602082840312156129ca578081fd5b8135611be8816132c4565b6000602082840312156129e6578081fd5b8151611be8816132c4565b600080600080600060808688031215612a08578081fd5b8535612a13816132c4565b94506020860135612a23816132c4565b93506040860135925060608601356001600160401b0380821115612a45578283fd5b818801915088601f830112612a58578283fd5b813581811115612a66578384fd5b896020828501011115612a77578384fd5b9699959850939650602001949392505050565b60008060408385031215612a9c578182fd5b8235612aa7816132c4565b946020939093013593505050565b60008060208385031215612ac7578182fd5b82356001600160401b0380821115612add578384fd5b818501915085601f830112612af0578384fd5b813581811115612afe578485fd5b8660208260051b8501011115612b12578485fd5b60209290920196919550909350505050565b600060208284031215612b35578081fd5b81356001600160401b03811115612b4a578182fd5b612b56848285016128d9565b949350505050565b60008060408385031215612b70578182fd5b82356001600160401b03811115612b85578283fd5b612b91858286016128d9565b9250506020830135612ba2816132c4565b809150509250929050565b600060208284031215612bbe578081fd5b611be88261295b565b600080600060608486031215612bdb578081fd5b83518060060b8114612beb578182fd5b6020850151909350612bfc816132c4565b604085015190925063ffffffff81168114612c15578182fd5b809150509250925092565b600060208284031215612c31578081fd5b81516001600160401b0380821115612c47578283fd5b818401915084601f830112612c5a578283fd5b815181811115612c6c57612c6c6132ae565b612c7f601f8201601f19166020016130db565b9150808252856020828501011115612c95578384fd5b612ca681602084016020860161323b565b50949350505050565b600080600080600080600060e0888a031215612cc9578485fd5b8751612cd4816132c4565b9650612ce26020890161296b565b9550612cf060408901612994565b9450612cfe60608901612994565b9350612d0c60808901612994565b925060a088015160ff81168114612d21578283fd5b9150612d2f60c0890161295b565b905092959891949750929550565b600060208284031215612d4e578081fd5b5035919050565b600060208284031215612d66578081fd5b5051919050565b60008060408385031215612d7f578182fd5b823591506020830135612ba2816132c4565b6000806000806000806000806000806000806101808d8f031215612db3578586fd5b8c516001600160601b0381168114612dc9578687fd5b9b50612dd760208e016128c9565b9a50612de560408e016128c9565b9950612df360608e016128c9565b9850612e0160808e016129a6565b9750612e0f60a08e0161296b565b9650612e1d60c08e0161296b565b9550612e2b60e08e0161297d565b94506101008d015193506101208d01519250612e4a6101408e0161297d565b9150612e596101608e0161297d565b90509295989b509295989b509295989b565b60008151808452612e8381602086016020860161323b565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b60008251612eb981846020870161323b565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b81811015612f35578351151583529284019291840191600101612f17565b50909695505050505050565b6000602080830181845280855180835260408601915060408160051b8701019250838701855b82811015612f9557603f19888603018452612f83858351612e6b565b94509285019290850190600101612f67565b5092979650505050505050565b602081526000611be86020830184612e6b565b60208082526033908201527f556e697377617056335374616b65723a3a756e7374616b65546f6b656e3a20736040820152721d185ad948191bd95cc81b9bdd08195e1a5cdd606a1b606082015260800190565b6020808252603d908201527f556e697377617056335374616b65723a3a7769746864726177546f6b656e3a2060408201527f6f6e6c79206f776e65722063616e20776974686472617720746f6b656e000000606082015260800190565b602080825260119082015270696e20656d657267656e6379206d6f646560781b604082015260600190565b6000808335601e198436030181126130a6578283fd5b8301803591506001600160401b038211156130bf578283fd5b6020019150368190038213156130d457600080fd5b9250929050565b604051601f8201601f191681016001600160401b0381118282101715613103576131036132ae565b604052919050565b60006001600160a01b0382811684821680830382111561312d5761312d613282565b01949350505050565b6000821982111561314957613149613282565b500190565b60006001600160801b038381168061316857613168613298565b92169190910492915050565b60008261318357613183613298565b500490565b60006001600160801b03828116848216811515828404821116156131ae576131ae613282565b02949350505050565b60006001600160a01b03828116848216811515828404821116156131ae576131ae613282565b60008160001904831182151516156131f7576131f7613282565b500290565b60006001600160a01b038381169083168181101561321c5761321c613282565b039392505050565b60008282101561323657613236613282565b500390565b60005b8381101561325657818101518382015260200161323e565b838111156123f75750506000910152565b600060001982141561327b5761327b613282565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146132d957600080fd5b5056fea26469706673582212201db284e1571e45ff6685a65b48e87ff291cf9fb2bdc28da21b4cc35c6d7ddb7264736f6c63430008040033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3671 CODESIZE SUB DUP1 PUSH3 0x3671 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x242 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH1 0x60 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0xC45A0155 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH4 0xC45A0155 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0xDB SWAP2 SWAP1 PUSH3 0x21C JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH4 0xB4C7741 PUSH1 0xE1 SHL DUP2 MSTORE DUP9 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP8 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH3 0xFFFFFF DUP7 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH4 0x1698EE82 SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x15C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x182 SWAP2 SWAP1 PUSH3 0x21C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x1D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C1BDBDB08191BD95CDB89DD08195E1A5CDD PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0xA0 MSTORE POP PUSH1 0x6 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP TIMESTAMP PUSH1 0x3 SSTORE POP PUSH3 0x2F4 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x22E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x23B DUP2 PUSH3 0x2DB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x25B JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 MLOAD PUSH3 0x268 DUP2 PUSH3 0x2DB JUMP JUMPDEST PUSH1 0x20 DUP9 ADD MLOAD SWAP1 SWAP7 POP PUSH3 0x27B DUP2 PUSH3 0x2DB JUMP JUMPDEST PUSH1 0x40 DUP9 ADD MLOAD SWAP1 SWAP6 POP PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH3 0x294 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD SWAP1 SWAP5 POP PUSH3 0x2A7 DUP2 PUSH3 0x2DB JUMP JUMPDEST PUSH1 0x80 DUP9 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x2BA DUP2 PUSH3 0x2DB JUMP JUMPDEST PUSH1 0xA0 DUP9 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x2CD DUP2 PUSH3 0x2DB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x3312 PUSH3 0x35F PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x2BB ADD MSTORE DUP2 DUP2 PUSH2 0xA61 ADD MSTORE DUP2 DUP2 PUSH2 0x18DE ADD MSTORE PUSH2 0x20B8 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x44A ADD MSTORE DUP2 DUP2 PUSH2 0x1676 ADD MSTORE DUP2 DUP2 PUSH2 0x1823 ADD MSTORE DUP2 DUP2 PUSH2 0x19FD ADD MSTORE DUP2 DUP2 PUSH2 0x1A7F ADD MSTORE DUP2 DUP2 PUSH2 0x1C0F ADD MSTORE PUSH2 0x1DC6 ADD MSTORE PUSH2 0x3312 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1AE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79AA9DB5 GT PUSH2 0xED JUMPI DUP1 PUSH4 0xB44A2722 GT PUSH2 0x90 JUMPI DUP1 PUSH4 0xB44A2722 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0xBF7989B9 EQ PUSH2 0x5CF JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x5E5 JUMPI DUP1 PUSH4 0xC5B1C7D0 EQ PUSH2 0x605 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD5A44F86 EQ PUSH2 0x63F JUMPI DUP1 PUSH4 0xE70EB392 EQ PUSH2 0x686 JUMPI DUP1 PUSH4 0xEA9F5517 EQ PUSH2 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79AA9DB5 EQ PUSH2 0x422 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x8A16A30B EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x9BE54945 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xA65B781E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xB02C43D0 EQ PUSH2 0x518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F745C59 GT PUSH2 0x155 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0x3197CBB6 EQ PUSH2 0x336 JUMPI DUP1 PUSH4 0x403017CA EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x3DF JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0x40C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x520537F EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x700037D EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xB9CC5FD EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xD5DF7BA EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x16F0115B EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x2FF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B9 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x22E CALLDATASIZE PUSH1 0x4 PUSH2 0x2B24 JUMP JUMPDEST PUSH2 0x72C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x2EFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x29F1 JUMP JUMPDEST PUSH2 0x8D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DD PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x2EC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x10 SLOAD PUSH2 0x1D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH3 0x93A80 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x331 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8A JUMP JUMPDEST PUSH2 0xF8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36C PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D6D JUMP JUMPDEST PUSH2 0x1030 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x3A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x10BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x115C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x3FA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B9 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DD PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x487 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x12F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x498 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x4A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B9 JUMP JUMPDEST POP PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0x4C8 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x2DD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x50B PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB5 JUMP JUMPDEST PUSH2 0x149F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x2F41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x566 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL DUP2 DIV PUSH1 0x2 SWAP1 DUP2 SIGNEXTEND SWAP2 PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV SWAP1 SIGNEXTEND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x2 SWAP3 DUP4 SIGNEXTEND PUSH1 0x20 DUP6 ADD MSTORE SWAP2 SIGNEXTEND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH2 0x2DD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x5CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8A JUMP JUMPDEST PUSH2 0x1619 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x2DD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x1935 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0x2DD SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65F PUSH2 0x65A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x1B90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x6A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D6D JUMP JUMPDEST PUSH2 0x1BDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x6C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D6D JUMP JUMPDEST PUSH2 0x1BEF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x724 JUMPI PUSH2 0x706 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x6F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x1D6C JUMP JUMPDEST PUSH2 0x710 SWAP1 DUP4 PUSH2 0x3136 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x71C DUP2 PUSH2 0x3267 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6CC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x757 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x780 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x7B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x7E3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP7 PUSH2 0x1EA6 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3850C7BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x85D SWAP2 SWAP1 PUSH2 0x2CAF JUMP JUMPDEST POP POP POP POP POP SWAP2 POP POP DUP1 PUSH1 0x2 SIGNEXTEND DUP4 PUSH1 0x2 SIGNEXTEND SLT DUP1 ISZERO PUSH2 0x87F JUMPI POP DUP2 PUSH1 0x2 SIGNEXTEND DUP2 PUSH1 0x2 SIGNEXTEND SLT JUMPDEST DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x89F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x8C1 SWAP1 PUSH2 0x3267 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x786 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x8FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x974 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A6F6E45524337323152656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x190E881B9BDD0818481D5B9A5D8CC81B999D PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x99A SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP11 PUSH2 0x1EA6 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x2 SIGNEXTEND DUP2 MSTORE POP PUSH1 0x9 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH3 0xFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 SIGNEXTEND PUSH3 0xFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x17 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH3 0xFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 SIGNEXTEND PUSH3 0xFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A7374616B65546F6B656E3A20746F6B PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x656E20706F6F6C206973206E6F742074686520726967687420706F6F6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND GT PUSH2 0xB87 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x556E697377617056335374616B65723A3A7374616B65546F6B656E3A2063616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6F74207374616B6520746F6B656E20776974682030206C6971756964697479 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0xB PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xBA2 SWAP2 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP PUSH2 0xBBD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND DUP12 PUSH2 0x1BEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x51C403F9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x2 DUP7 DUP2 SIGNEXTEND PUSH1 0x4 DUP4 ADD MSTORE DUP6 SWAP1 SIGNEXTEND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH4 0xA38807F2 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC46 SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST POP SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND LT PUSH2 0xD75 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE POP PUSH1 0xA PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE POP PUSH1 0xA PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP JUMPDEST PUSH2 0xECE DUP11 PUSH1 0x10 DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP2 DUP6 MSTORE DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP15 SWAP1 SSTORE DUP14 DUP5 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF31 SWAP1 DUP5 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP5 AND DUP2 MSTORE DUP11 SWAP1 PUSH32 0x4A1AFF2AD1F7400721A859525EFE44BD9DEA253E1E02BA4161F2C77ED16FC0A3 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 LT PUSH2 0x1007 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x74206F6620626F756E6473 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x1056 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP9 PUSH2 0x1EA6 JUMP JUMPDEST SWAP4 POP POP POP POP PUSH1 0x64 DUP2 PUSH1 0x14 PUSH2 0x106A SWAP2 SWAP1 PUSH2 0x3188 JUMP JUMPDEST PUSH2 0x1074 SWAP2 SWAP1 PUSH2 0x314E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP4 POP PUSH2 0x1092 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP7 PUSH2 0x1BEF JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x10A7 DUP6 PUSH8 0xDE0B6B3A7640000 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x10B1 SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10C6 PUSH1 0x10 SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0x1129 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7574206F6620626F756E6473 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x10 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x114A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x117F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x1188 DUP2 PUSH2 0x1FFA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP3 SWAP1 SWAP2 PUSH2 0x11BD SWAP1 DUP5 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3008 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0xA SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 ADD SSTORE PUSH2 0x122F CALLER DUP3 PUSH2 0x21F9 JUMP JUMPDEST PUSH2 0x1238 DUP2 PUSH2 0x2295 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1258 SWAP1 DUP5 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x85837B804496FA8A31CF9284D2C34C3276CA3D5369CFE705026F7BAD0365C0F2 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0x12BC SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2ED7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xFF AND PUSH2 0x133B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x6E6F7420696E20656D657267656E6379206D6F6465 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1371 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3008 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x137C DUP3 PUSH2 0x1B90 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x13A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x2FB5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0xA SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 ADD SSTORE PUSH2 0x13DC CALLER DUP4 PUSH2 0x21F9 JUMP JUMPDEST PUSH2 0x13E5 DUP3 PUSH2 0x2295 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1405 SWAP1 DUP5 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0x85837B804496FA8A31CF9284D2C34C3276CA3D5369CFE705026F7BAD0365C0F2 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0x1469 SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2ED7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1497 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14FA JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x14E5 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 ADDRESS DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x152C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x153E SWAP2 SWAP1 PUSH2 0x3090 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154C SWAP3 SWAP2 SWAP1 PUSH2 0x2E97 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1587 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x158C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x15D8 JUMPI PUSH1 0x44 DUP2 MLOAD LT ISZERO PUSH2 0x15A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x15BF SWAP2 SWAP1 PUSH2 0x2C20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x15F9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP POP POP DUP1 DUP1 PUSH2 0x1611 SWAP1 PUSH2 0x3267 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1500 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x166C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1705 SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1781 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A637265617465496E63656E74697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0xE881BDB9B1E481B585A1848185B1B1BDDD959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A637265617465496E63656E74697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH25 0x3A20726577617264206D75737420626520706F736974697665 PUSH1 0x38 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1805 SWAP2 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1818 SWAP1 POP PUSH3 0x93A80 TIMESTAMP PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x18BA PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x187A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x188E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18B2 SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST CALLER ADDRESS DUP5 PUSH2 0x236E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH32 0xD7A440ECCC1B2AE97683E4D1CD3E4E1F17EC4EB738FF723EFF7A664A33C41798 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1983 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x19D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x616C726561647920696E20656D657267656E6379206D6F6465 PUSH1 0x38 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH2 0x1B8E SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x3DE00C36 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A58 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A7C SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B0E SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B39 SWAP2 SWAP1 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B89 SWAP2 SWAP1 PUSH2 0x2D55 JUMP JUMPDEST PUSH2 0x23FD JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV DUP3 AND SWAP2 DUP3 EQ ISZERO PUSH2 0x1BD6 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BE8 DUP4 DUP4 PUSH2 0x1D6C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x64 PUSH2 0x1BFF DUP6 PUSH1 0x14 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1C09 SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C9E SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CC9 SWAP2 SWAP1 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D19 SWAP2 SWAP1 PUSH2 0x2D55 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x5 SLOAD DUP4 DUP9 PUSH2 0x1D2E SWAP2 SWAP1 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1D39 SWAP1 PUSH1 0x50 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1D43 SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST PUSH2 0x1D4D SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D62 PUSH2 0x1D5C DUP3 DUP6 PUSH2 0x3136 JUMP JUMPDEST DUP8 PUSH2 0x248A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x1D9B DUP4 PUSH2 0x1FFA JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 DUP3 SWAP2 SWAP1 PUSH2 0x1DBA DUP4 DUP1 PUSH2 0x3224 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1E5C PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E55 SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST DUP5 DUP4 PUSH2 0x23FD JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x106F923F993C2149D49B4255FF723ACAFA1F2D94393F561D3EDA32AE348F7241 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1E97 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x99FBAB88 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EDF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F30 SWAP2 SWAP1 PUSH2 0x2D91 JUMP JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xB4C7741 PUSH1 0xE1 SHL DUP2 MSTORE SWAP5 SWAP16 POP SWAP3 SWAP14 POP SWAP1 SWAP12 POP SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND SWAP5 POP PUSH4 0x1698EE82 SWAP4 POP PUSH2 0x1F9C SWAP3 POP DUP8 SWAP2 POP DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0xFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEC SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST SWAP7 POP POP POP POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL DUP2 DIV PUSH1 0x2 SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV DUP4 SIGNEXTEND DUP4 SIGNEXTEND SWAP1 SWAP3 SIGNEXTEND SWAP1 DUP3 ADD MSTORE SWAP1 DUP1 PUSH2 0x2055 DUP5 PUSH2 0x1B90 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x0 EQ ISZERO PUSH2 0x2083 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x2FB5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH4 0x51C403F9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x2 SWAP3 DUP4 SIGNEXTEND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SIGNEXTEND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA38807F2 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x210E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2132 SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST POP SWAP2 POP POP PUSH1 0x0 DUP1 PUSH2 0x2164 PUSH1 0x1 SLOAD PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD DUP9 DUP11 DUP10 TIMESTAMP PUSH2 0x24A0 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP3 SWAP2 PUSH1 0x0 SWAP1 PUSH2 0x2187 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x310B JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x21BD SWAP2 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x21EB SWAP1 DUP5 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP1 DUP3 EQ PUSH2 0x2262 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE DUP2 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0xF SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP4 MSTORE PUSH1 0xE DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x22A7 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3224 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x10 DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x22DD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x10 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x230C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x11 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0x10 DUP1 SLOAD DUP1 PUSH2 0x2352 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x23EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C706572457874656E6465643A3A736166655472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7366657246726F6D3A2063616C6C20746F206E6F6E2D636F6E74726163740000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH2 0x23F7 DUP5 DUP5 DUP5 DUP5 PUSH2 0x2535 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE PUSH2 0x247A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C706572457874656E6465643A3A736166655472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x736665723A2063616C6C20746F206E6F6E2D636F6E7472616374000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH2 0x2485 DUP4 DUP4 DUP4 PUSH2 0x263B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2499 JUMPI DUP2 PUSH2 0x1BE8 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 DUP4 LT ISZERO PUSH2 0x24C1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP7 AND PUSH2 0x24D5 DUP7 DUP7 PUSH2 0x31FC JUMP JUMPDEST PUSH2 0x24DF SWAP2 SWAP1 PUSH2 0x31B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP11 PUSH2 0x24FA DUP12 DUP9 PUSH2 0x2734 JUMP JUMPDEST PUSH2 0x2504 SWAP2 SWAP1 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x250F SWAP3 SWAP2 SHL PUSH2 0x3224 JUMP JUMPDEST SWAP1 POP PUSH2 0x2525 DUP12 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x2744 JUMP JUMPDEST SWAP3 POP POP SWAP9 POP SWAP9 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x255F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x259D SWAP2 SWAP1 PUSH2 0x2EA7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x25DA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x25DF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2609 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2609 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2609 SWAP2 SWAP1 PUSH2 0x2BAD JUMP JUMPDEST PUSH2 0x1497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0x24 DUP3 ADD MSTORE PUSH3 0x29AA23 PUSH1 0xE9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x2697 SWAP2 SWAP1 PUSH2 0x2EA7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26D4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26D9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2703 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2703 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2703 SWAP2 SWAP1 PUSH2 0x2BAD JUMP JUMPDEST PUSH2 0x12EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2 PUSH1 0x24 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2499 JUMPI DUP2 PUSH2 0x1BE8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 NOT DUP6 DUP8 MULMOD DUP6 DUP8 MUL SWAP3 POP DUP3 DUP2 LT DUP4 DUP3 SUB SUB SWAP2 POP POP DUP1 PUSH1 0x0 EQ ISZERO PUSH2 0x277E JUMPI PUSH1 0x0 DUP5 GT PUSH2 0x2773 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 DIV SWAP1 POP PUSH2 0x1BE8 JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x278A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP7 DUP9 MULMOD DUP1 DUP5 SUB SWAP4 DUP2 GT SWAP1 SWAP3 SUB SWAP2 SWAP1 POP PUSH1 0x0 DUP6 PUSH2 0x27AB DUP2 PUSH1 0x0 NOT PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x27B6 SWAP1 PUSH1 0x1 PUSH2 0x3136 JUMP JUMPDEST AND SWAP6 DUP7 SWAP1 DIV SWAP6 SWAP4 DUP5 SWAP1 DIV SWAP4 PUSH1 0x0 DUP2 SWAP1 SUB DIV PUSH1 0x1 ADD SWAP1 POP PUSH2 0x27D6 DUP2 DUP5 PUSH2 0x31DD JUMP JUMPDEST SWAP1 SWAP4 OR SWAP3 PUSH1 0x0 PUSH2 0x27E7 DUP8 PUSH1 0x3 PUSH2 0x31DD JUMP JUMPDEST PUSH1 0x2 XOR SWAP1 POP PUSH2 0x27F6 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2801 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x280B SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x2817 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2822 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x282C SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x2838 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2843 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x284D SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x2859 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2864 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x286E SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x287A DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2885 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x288F SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x289B DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x28A6 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x28B0 SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x28BC DUP2 DUP7 PUSH2 0x31DD JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x28D4 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28E9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2904 JUMPI PUSH2 0x2904 PUSH2 0x32AE JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x2913 DUP3 DUP3 ADD PUSH2 0x30DB JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 DUP2 ADD SWAP1 DUP7 DUP5 ADD DUP4 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x292D JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP4 POP JUMPDEST DUP6 DUP5 LT ISZERO PUSH2 0x294F JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 DUP5 ADD PUSH2 0x2931 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29CA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BE8 DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29E6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1BE8 DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2A08 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2A13 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2A23 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2A45 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A58 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2A66 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2A77 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A9C JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2AA7 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AC7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2ADD JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AF0 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2AFE JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2B12 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B35 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B4A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2B56 DUP5 DUP3 DUP6 ADD PUSH2 0x28D9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B70 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B85 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2B91 DUP6 DUP3 DUP7 ADD PUSH2 0x28D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2BA2 DUP2 PUSH2 0x32C4 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BBE JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1BE8 DUP3 PUSH2 0x295B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2BDB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 MLOAD DUP1 PUSH1 0x6 SIGNEXTEND DUP2 EQ PUSH2 0x2BEB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x2BFC DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2C15 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2C47 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C5A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x2C6C JUMPI PUSH2 0x2C6C PUSH2 0x32AE JUMP JUMPDEST PUSH2 0x2C7F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x30DB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP6 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2C95 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2CA6 DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x323B JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2CC9 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 MLOAD PUSH2 0x2CD4 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP7 POP PUSH2 0x2CE2 PUSH1 0x20 DUP10 ADD PUSH2 0x296B JUMP JUMPDEST SWAP6 POP PUSH2 0x2CF0 PUSH1 0x40 DUP10 ADD PUSH2 0x2994 JUMP JUMPDEST SWAP5 POP PUSH2 0x2CFE PUSH1 0x60 DUP10 ADD PUSH2 0x2994 JUMP JUMPDEST SWAP4 POP PUSH2 0x2D0C PUSH1 0x80 DUP10 ADD PUSH2 0x2994 JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2D21 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP2 POP PUSH2 0x2D2F PUSH1 0xC0 DUP10 ADD PUSH2 0x295B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D4E JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D66 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D7F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2BA2 DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x180 DUP14 DUP16 SUB SLT ISZERO PUSH2 0x2DB3 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP13 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2DC9 JUMPI DUP7 DUP8 REVERT JUMPDEST SWAP12 POP PUSH2 0x2DD7 PUSH1 0x20 DUP15 ADD PUSH2 0x28C9 JUMP JUMPDEST SWAP11 POP PUSH2 0x2DE5 PUSH1 0x40 DUP15 ADD PUSH2 0x28C9 JUMP JUMPDEST SWAP10 POP PUSH2 0x2DF3 PUSH1 0x60 DUP15 ADD PUSH2 0x28C9 JUMP JUMPDEST SWAP9 POP PUSH2 0x2E01 PUSH1 0x80 DUP15 ADD PUSH2 0x29A6 JUMP JUMPDEST SWAP8 POP PUSH2 0x2E0F PUSH1 0xA0 DUP15 ADD PUSH2 0x296B JUMP JUMPDEST SWAP7 POP PUSH2 0x2E1D PUSH1 0xC0 DUP15 ADD PUSH2 0x296B JUMP JUMPDEST SWAP6 POP PUSH2 0x2E2B PUSH1 0xE0 DUP15 ADD PUSH2 0x297D JUMP JUMPDEST SWAP5 POP PUSH2 0x100 DUP14 ADD MLOAD SWAP4 POP PUSH2 0x120 DUP14 ADD MLOAD SWAP3 POP PUSH2 0x2E4A PUSH2 0x140 DUP15 ADD PUSH2 0x297D JUMP JUMPDEST SWAP2 POP PUSH2 0x2E59 PUSH2 0x160 DUP15 ADD PUSH2 0x297D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2E83 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x323B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2EB9 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x323B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F35 JUMPI DUP4 MLOAD ISZERO ISZERO DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x2F17 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP4 DUP8 ADD DUP6 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2F95 JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x2F83 DUP6 DUP4 MLOAD PUSH2 0x2E6B JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F67 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1BE8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x33 SWAP1 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A756E7374616B65546F6B656E3A2073 PUSH1 0x40 DUP3 ADD MSTORE PUSH19 0x1D185AD948191BD95CC81B9BDD08195E1A5CDD PUSH1 0x6A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x3D SWAP1 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A7769746864726177546F6B656E3A20 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x6F6E6C79206F776E65722063616E20776974686472617720746F6B656E000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x11 SWAP1 DUP3 ADD MSTORE PUSH17 0x696E20656D657267656E6379206D6F6465 PUSH1 0x78 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x30A6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x30BF JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x30D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3103 JUMPI PUSH2 0x3103 PUSH2 0x32AE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x312D JUMPI PUSH2 0x312D PUSH2 0x3282 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3149 JUMPI PUSH2 0x3149 PUSH2 0x3282 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 DUP2 AND DUP1 PUSH2 0x3168 JUMPI PUSH2 0x3168 PUSH2 0x3298 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3183 JUMPI PUSH2 0x3183 PUSH2 0x3298 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP2 ISZERO ISZERO DUP3 DUP5 DIV DUP3 GT AND ISZERO PUSH2 0x31AE JUMPI PUSH2 0x31AE PUSH2 0x3282 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP2 ISZERO ISZERO DUP3 DUP5 DIV DUP3 GT AND ISZERO PUSH2 0x31AE JUMPI PUSH2 0x31AE PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x31F7 JUMPI PUSH2 0x31F7 PUSH2 0x3282 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP1 DUP4 AND DUP2 DUP2 LT ISZERO PUSH2 0x321C JUMPI PUSH2 0x321C PUSH2 0x3282 JUMP JUMPDEST SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3236 JUMPI PUSH2 0x3236 PUSH2 0x3282 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3256 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x323E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x23F7 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x327B JUMPI PUSH2 0x327B PUSH2 0x3282 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x32D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SAR 0xB2 DUP5 0xE1 JUMPI 0x1E GASLIMIT SELFDESTRUCT PUSH7 0x85A65B48E87FF2 SWAP2 0xCF SWAP16 0xB2 0xBD 0xC2 DUP14 LOG2 SHL 0x4C 0xC3 0x5C PUSH14 0x7DDB7264736F6C63430008040033 ","sourceMap":"1164:17366:84:-:0;;;3285:624;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:22;1806:7;:22;3500:31:84;;;;-1:-1:-1;;;;;;3500:31:84;;;3541:26;:56;;-1:-1:-1;;;;;;3541:56:84;-1:-1:-1;;;;;3541:56:84;;;;;;;;3636:36;;;-1:-1:-1;;;3636:36:84;;;;:34;;:36;;;;;;;;;;;;;;;3541:56;3636:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3608:7;:65;;-1:-1:-1;;;;;;3608:65:84;-1:-1:-1;;;;;3608:65:84;;;;;;;;;3699:36;;-1:-1:-1;;;3699:36:84;;1551:15:139;;;3699:36:84;;;1533:34:139;1603:15;;;1583:18;;;1576:43;1667:8;1655:21;;1635:18;;;1628:49;-1:-1:-1;;3699:15:84;;1468:18:139;;3699:36:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3683:52;-1:-1:-1;;;;;;3753:19:84;;3745:50;;;;-1:-1:-1;;;3745:50:84;;1890:2:139;3745:50:84;;;1872:21:139;1929:2;1909:18;;;1902:30;-1:-1:-1;;;1948:18:139;;;1941:48;2006:18;;3745:50:84;;;;;;;;3806:28;;-1:-1:-1;;;;;;3806:28:84;;;-1:-1:-1;3844:8:84;:20;;-1:-1:-1;;;;;;3844:20:84;;-1:-1:-1;;;;;3844:20:84;;;;;;;;;;;;;;-1:-1:-1;;3887:15:84;3875:9;:27;-1:-1:-1;1164:17366:84;;-1:-1:-1;1164:17366:84;14:261:139;84:6;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;195:9;189:16;214:31;239:5;214:31;:::i;:::-;264:5;95:180;-1:-1:-1;;;95:180:139:o;280:1010::-;431:6;439;447;455;463;471;524:3;512:9;503:7;499:23;495:33;492:2;;;546:6;538;531:22;492:2;583:9;577:16;602:31;627:5;602:31;:::i;:::-;702:2;687:18;;681:25;652:5;;-1:-1:-1;715:33:139;681:25;715:33;:::i;:::-;819:2;804:18;;798:25;767:7;;-1:-1:-1;867:8:139;854:22;;842:35;;832:2;;896:6;888;881:22;832:2;976;961:18;;955:25;924:7;;-1:-1:-1;989:33:139;955:25;989:33;:::i;:::-;1093:3;1078:19;;1072:26;1041:7;;-1:-1:-1;1107:33:139;1072:26;1107:33;:::i;:::-;1211:3;1196:19;;1190:26;1159:7;;-1:-1:-1;1225:33:139;1190:26;1225:33;:::i;:::-;1277:7;1267:17;;;482:808;;;;;;;;:::o;2035:131::-;-1:-1:-1;;;;;2110:31:139;;2100:42;;2090:2;;2156:1;2153;2146:12;2090:2;2080:86;:::o;:::-;1164:17366:84;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:27410:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:78:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"140:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"115:24:139"},"nodeType":"YulFunctionCall","src":"115:31:139"},"nodeType":"YulExpressionStatement","src":"115:31:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:138:139"},{"body":{"nodeType":"YulBlock","src":"221:679:139","statements":[{"body":{"nodeType":"YulBlock","src":"270:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"279:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"286:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"272:6:139"},"nodeType":"YulFunctionCall","src":"272:20:139"},"nodeType":"YulExpressionStatement","src":"272:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"249:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"257:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"245:3:139"},"nodeType":"YulFunctionCall","src":"245:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"264:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"241:3:139"},"nodeType":"YulFunctionCall","src":"241:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"234:6:139"},"nodeType":"YulFunctionCall","src":"234:35:139"},"nodeType":"YulIf","src":"231:2:139"},{"nodeType":"YulVariableDeclaration","src":"303:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"326:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"313:12:139"},"nodeType":"YulFunctionCall","src":"313:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"307:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"342:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"352:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"346:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"395:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"397:16:139"},"nodeType":"YulFunctionCall","src":"397:18:139"},"nodeType":"YulExpressionStatement","src":"397:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"371:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"375:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"368:2:139"},"nodeType":"YulFunctionCall","src":"368:26:139"},"nodeType":"YulIf","src":"365:2:139"},{"nodeType":"YulVariableDeclaration","src":"426:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"443:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"436:3:139"},"nodeType":"YulFunctionCall","src":"436:10:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"430:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"455:39:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"486:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"490:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"482:3:139"},"nodeType":"YulFunctionCall","src":"482:11:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"466:15:139"},"nodeType":"YulFunctionCall","src":"466:28:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"459:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"503:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"516:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"507:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"535:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"540:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"528:6:139"},"nodeType":"YulFunctionCall","src":"528:15:139"},"nodeType":"YulExpressionStatement","src":"528:15:139"},{"nodeType":"YulAssignment","src":"552:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"563:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"568:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"559:3:139"},"nodeType":"YulFunctionCall","src":"559:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"552:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"580:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"595:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"603:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"591:3:139"},"nodeType":"YulFunctionCall","src":"591:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"584:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"652:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"661:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"668:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"654:6:139"},"nodeType":"YulFunctionCall","src":"654:20:139"},"nodeType":"YulExpressionStatement","src":"654:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"629:6:139"},{"name":"_3","nodeType":"YulIdentifier","src":"637:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"625:3:139"},"nodeType":"YulFunctionCall","src":"625:15:139"},{"name":"_2","nodeType":"YulIdentifier","src":"642:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"621:3:139"},"nodeType":"YulFunctionCall","src":"621:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"647:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"618:2:139"},"nodeType":"YulFunctionCall","src":"618:33:139"},"nodeType":"YulIf","src":"615:2:139"},{"nodeType":"YulVariableDeclaration","src":"685:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"694:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"689:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"753:118:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"774:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"792:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"779:12:139"},"nodeType":"YulFunctionCall","src":"779:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"767:6:139"},"nodeType":"YulFunctionCall","src":"767:30:139"},"nodeType":"YulExpressionStatement","src":"767:30:139"},{"nodeType":"YulAssignment","src":"810:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"821:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"826:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"817:3:139"},"nodeType":"YulFunctionCall","src":"817:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"810:3:139"}]},{"nodeType":"YulAssignment","src":"842:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"853:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"858:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"849:3:139"},"nodeType":"YulFunctionCall","src":"849:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"842:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"719:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"722:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"716:2:139"},"nodeType":"YulFunctionCall","src":"716:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"726:18:139","statements":[{"nodeType":"YulAssignment","src":"728:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"737:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"740:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"733:3:139"},"nodeType":"YulFunctionCall","src":"733:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"728:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"712:3:139","statements":[]},"src":"708:163:139"},{"nodeType":"YulAssignment","src":"880:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"889:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"880:5:139"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"195:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"203:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"211:5:139","type":""}],"src":"157:743:139"},{"body":{"nodeType":"YulBlock","src":"962:107:139","statements":[{"nodeType":"YulAssignment","src":"972:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"987:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"981:5:139"},"nodeType":"YulFunctionCall","src":"981:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"972:5:139"}]},{"body":{"nodeType":"YulBlock","src":"1047:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1056:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1059:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1049:6:139"},"nodeType":"YulFunctionCall","src":"1049:12:139"},"nodeType":"YulExpressionStatement","src":"1049:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1016:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1037:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1030:6:139"},"nodeType":"YulFunctionCall","src":"1030:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1023:6:139"},"nodeType":"YulFunctionCall","src":"1023:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1013:2:139"},"nodeType":"YulFunctionCall","src":"1013:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1006:6:139"},"nodeType":"YulFunctionCall","src":"1006:40:139"},"nodeType":"YulIf","src":"1003:2:139"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"941:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"952:5:139","type":""}],"src":"905:164:139"},{"body":{"nodeType":"YulBlock","src":"1132:106:139","statements":[{"nodeType":"YulAssignment","src":"1142:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1157:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1151:5:139"},"nodeType":"YulFunctionCall","src":"1151:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1142:5:139"}]},{"body":{"nodeType":"YulBlock","src":"1216:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1225:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1228:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1218:6:139"},"nodeType":"YulFunctionCall","src":"1218:12:139"},"nodeType":"YulExpressionStatement","src":"1218:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1186:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1204:1:139","type":"","value":"2"},{"name":"value","nodeType":"YulIdentifier","src":"1207:5:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"1193:10:139"},"nodeType":"YulFunctionCall","src":"1193:20:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1183:2:139"},"nodeType":"YulFunctionCall","src":"1183:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1176:6:139"},"nodeType":"YulFunctionCall","src":"1176:39:139"},"nodeType":"YulIf","src":"1173:2:139"}]},"name":"abi_decode_int24_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1111:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1122:5:139","type":""}],"src":"1074:164:139"},{"body":{"nodeType":"YulBlock","src":"1303:117:139","statements":[{"nodeType":"YulAssignment","src":"1313:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1328:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1322:5:139"},"nodeType":"YulFunctionCall","src":"1322:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1313:5:139"}]},{"body":{"nodeType":"YulBlock","src":"1398:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1407:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1410:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1400:6:139"},"nodeType":"YulFunctionCall","src":"1400:12:139"},"nodeType":"YulExpressionStatement","src":"1400:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1357:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1368:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1383:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"1388:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1379:3:139"},"nodeType":"YulFunctionCall","src":"1379:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1392:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1375:3:139"},"nodeType":"YulFunctionCall","src":"1375:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1364:3:139"},"nodeType":"YulFunctionCall","src":"1364:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1354:2:139"},"nodeType":"YulFunctionCall","src":"1354:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1347:6:139"},"nodeType":"YulFunctionCall","src":"1347:50:139"},"nodeType":"YulIf","src":"1344:2:139"}]},"name":"abi_decode_uint128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1282:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1293:5:139","type":""}],"src":"1243:177:139"},{"body":{"nodeType":"YulBlock","src":"1484:104:139","statements":[{"nodeType":"YulAssignment","src":"1494:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1509:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1503:5:139"},"nodeType":"YulFunctionCall","src":"1503:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1494:5:139"}]},{"body":{"nodeType":"YulBlock","src":"1566:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1575:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1578:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1568:6:139"},"nodeType":"YulFunctionCall","src":"1568:12:139"},"nodeType":"YulExpressionStatement","src":"1568:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1538:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1549:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"1556:6:139","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1545:3:139"},"nodeType":"YulFunctionCall","src":"1545:18:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1535:2:139"},"nodeType":"YulFunctionCall","src":"1535:29:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1528:6:139"},"nodeType":"YulFunctionCall","src":"1528:37:139"},"nodeType":"YulIf","src":"1525:2:139"}]},"name":"abi_decode_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1463:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1474:5:139","type":""}],"src":"1425:163:139"},{"body":{"nodeType":"YulBlock","src":"1652:106:139","statements":[{"nodeType":"YulAssignment","src":"1662:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1677:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1671:5:139"},"nodeType":"YulFunctionCall","src":"1671:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1662:5:139"}]},{"body":{"nodeType":"YulBlock","src":"1736:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1745:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1748:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1738:6:139"},"nodeType":"YulFunctionCall","src":"1738:12:139"},"nodeType":"YulExpressionStatement","src":"1738:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1706:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1717:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"1724:8:139","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1713:3:139"},"nodeType":"YulFunctionCall","src":"1713:20:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1703:2:139"},"nodeType":"YulFunctionCall","src":"1703:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1696:6:139"},"nodeType":"YulFunctionCall","src":"1696:39:139"},"nodeType":"YulIf","src":"1693:2:139"}]},"name":"abi_decode_uint24_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1631:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1642:5:139","type":""}],"src":"1593:165:139"},{"body":{"nodeType":"YulBlock","src":"1833:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"1879:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1888:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1896:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1881:6:139"},"nodeType":"YulFunctionCall","src":"1881:22:139"},"nodeType":"YulExpressionStatement","src":"1881:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1854:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1863:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1850:3:139"},"nodeType":"YulFunctionCall","src":"1850:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1875:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1846:3:139"},"nodeType":"YulFunctionCall","src":"1846:32:139"},"nodeType":"YulIf","src":"1843:2:139"},{"nodeType":"YulVariableDeclaration","src":"1914:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1940:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1927:12:139"},"nodeType":"YulFunctionCall","src":"1927:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1918:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1984:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1959:24:139"},"nodeType":"YulFunctionCall","src":"1959:31:139"},"nodeType":"YulExpressionStatement","src":"1959:31:139"},{"nodeType":"YulAssignment","src":"1999:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2009:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1999:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1799:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1810:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1822:6:139","type":""}],"src":"1763:257:139"},{"body":{"nodeType":"YulBlock","src":"2106:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"2152:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2161:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2169:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2154:6:139"},"nodeType":"YulFunctionCall","src":"2154:22:139"},"nodeType":"YulExpressionStatement","src":"2154:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2127:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2136:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2123:3:139"},"nodeType":"YulFunctionCall","src":"2123:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2148:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2119:3:139"},"nodeType":"YulFunctionCall","src":"2119:32:139"},"nodeType":"YulIf","src":"2116:2:139"},{"nodeType":"YulVariableDeclaration","src":"2187:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2206:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2200:5:139"},"nodeType":"YulFunctionCall","src":"2200:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2191:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2250:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2225:24:139"},"nodeType":"YulFunctionCall","src":"2225:31:139"},"nodeType":"YulExpressionStatement","src":"2225:31:139"},{"nodeType":"YulAssignment","src":"2265:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2275:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2265:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2072:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2083:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2095:6:139","type":""}],"src":"2025:261:139"},{"body":{"nodeType":"YulBlock","src":"2431:846:139","statements":[{"body":{"nodeType":"YulBlock","src":"2478:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2487:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2495:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2480:6:139"},"nodeType":"YulFunctionCall","src":"2480:22:139"},"nodeType":"YulExpressionStatement","src":"2480:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2452:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2461:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2448:3:139"},"nodeType":"YulFunctionCall","src":"2448:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2473:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2444:3:139"},"nodeType":"YulFunctionCall","src":"2444:33:139"},"nodeType":"YulIf","src":"2441:2:139"},{"nodeType":"YulVariableDeclaration","src":"2513:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2539:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2526:12:139"},"nodeType":"YulFunctionCall","src":"2526:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2517:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2583:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2558:24:139"},"nodeType":"YulFunctionCall","src":"2558:31:139"},"nodeType":"YulExpressionStatement","src":"2558:31:139"},{"nodeType":"YulAssignment","src":"2598:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2608:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2598:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2622:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2654:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2665:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2650:3:139"},"nodeType":"YulFunctionCall","src":"2650:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2637:12:139"},"nodeType":"YulFunctionCall","src":"2637:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2626:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2703:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2678:24:139"},"nodeType":"YulFunctionCall","src":"2678:33:139"},"nodeType":"YulExpressionStatement","src":"2678:33:139"},{"nodeType":"YulAssignment","src":"2720:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2730:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2720:6:139"}]},{"nodeType":"YulAssignment","src":"2746:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2773:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2784:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2769:3:139"},"nodeType":"YulFunctionCall","src":"2769:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2756:12:139"},"nodeType":"YulFunctionCall","src":"2756:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2746:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2797:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2828:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2839:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2824:3:139"},"nodeType":"YulFunctionCall","src":"2824:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2811:12:139"},"nodeType":"YulFunctionCall","src":"2811:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2801:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2852:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2862:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2856:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2907:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2916:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2924:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2909:6:139"},"nodeType":"YulFunctionCall","src":"2909:22:139"},"nodeType":"YulExpressionStatement","src":"2909:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2895:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2903:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2892:2:139"},"nodeType":"YulFunctionCall","src":"2892:14:139"},"nodeType":"YulIf","src":"2889:2:139"},{"nodeType":"YulVariableDeclaration","src":"2942:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2956:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2967:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2952:3:139"},"nodeType":"YulFunctionCall","src":"2952:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2946:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3022:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3031:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3039:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3024:6:139"},"nodeType":"YulFunctionCall","src":"3024:22:139"},"nodeType":"YulExpressionStatement","src":"3024:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3001:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3005:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2997:3:139"},"nodeType":"YulFunctionCall","src":"2997:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3012:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2993:3:139"},"nodeType":"YulFunctionCall","src":"2993:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2986:6:139"},"nodeType":"YulFunctionCall","src":"2986:35:139"},"nodeType":"YulIf","src":"2983:2:139"},{"nodeType":"YulVariableDeclaration","src":"3057:30:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3084:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3071:12:139"},"nodeType":"YulFunctionCall","src":"3071:16:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3061:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3114:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3123:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3131:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3116:6:139"},"nodeType":"YulFunctionCall","src":"3116:22:139"},"nodeType":"YulExpressionStatement","src":"3116:22:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3102:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3110:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3099:2:139"},"nodeType":"YulFunctionCall","src":"3099:14:139"},"nodeType":"YulIf","src":"3096:2:139"},{"body":{"nodeType":"YulBlock","src":"3190:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3199:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3207:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3192:6:139"},"nodeType":"YulFunctionCall","src":"3192:22:139"},"nodeType":"YulExpressionStatement","src":"3192:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3163:2:139"},{"name":"length","nodeType":"YulIdentifier","src":"3167:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3159:3:139"},"nodeType":"YulFunctionCall","src":"3159:15:139"},{"kind":"number","nodeType":"YulLiteral","src":"3176:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3155:3:139"},"nodeType":"YulFunctionCall","src":"3155:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3181:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3152:2:139"},"nodeType":"YulFunctionCall","src":"3152:37:139"},"nodeType":"YulIf","src":"3149:2:139"},{"nodeType":"YulAssignment","src":"3225:21:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3239:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3243:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3235:3:139"},"nodeType":"YulFunctionCall","src":"3235:11:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3225:6:139"}]},{"nodeType":"YulAssignment","src":"3255:16:139","value":{"name":"length","nodeType":"YulIdentifier","src":"3265:6:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3255:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2365:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2376:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2388:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2396:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2404:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2412:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2420:6:139","type":""}],"src":"2291:986:139"},{"body":{"nodeType":"YulBlock","src":"3369:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"3415:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3424:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3432:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3417:6:139"},"nodeType":"YulFunctionCall","src":"3417:22:139"},"nodeType":"YulExpressionStatement","src":"3417:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3390:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3399:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3386:3:139"},"nodeType":"YulFunctionCall","src":"3386:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3411:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3382:3:139"},"nodeType":"YulFunctionCall","src":"3382:32:139"},"nodeType":"YulIf","src":"3379:2:139"},{"nodeType":"YulVariableDeclaration","src":"3450:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3476:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3463:12:139"},"nodeType":"YulFunctionCall","src":"3463:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3454:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3520:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3495:24:139"},"nodeType":"YulFunctionCall","src":"3495:31:139"},"nodeType":"YulExpressionStatement","src":"3495:31:139"},{"nodeType":"YulAssignment","src":"3535:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3545:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3535:6:139"}]},{"nodeType":"YulAssignment","src":"3559:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3586:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3597:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3582:3:139"},"nodeType":"YulFunctionCall","src":"3582:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3569:12:139"},"nodeType":"YulFunctionCall","src":"3569:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3559:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3327:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3338:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3350:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3358:6:139","type":""}],"src":"3282:325:139"},{"body":{"nodeType":"YulBlock","src":"3728:560:139","statements":[{"body":{"nodeType":"YulBlock","src":"3774:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3783:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3791:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3776:6:139"},"nodeType":"YulFunctionCall","src":"3776:22:139"},"nodeType":"YulExpressionStatement","src":"3776:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3749:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3758:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3745:3:139"},"nodeType":"YulFunctionCall","src":"3745:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3770:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3741:3:139"},"nodeType":"YulFunctionCall","src":"3741:32:139"},"nodeType":"YulIf","src":"3738:2:139"},{"nodeType":"YulVariableDeclaration","src":"3809:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3836:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3823:12:139"},"nodeType":"YulFunctionCall","src":"3823:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3813:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3855:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3865:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3859:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3910:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3919:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3927:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3912:6:139"},"nodeType":"YulFunctionCall","src":"3912:22:139"},"nodeType":"YulExpressionStatement","src":"3912:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3898:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3906:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3895:2:139"},"nodeType":"YulFunctionCall","src":"3895:14:139"},"nodeType":"YulIf","src":"3892:2:139"},{"nodeType":"YulVariableDeclaration","src":"3945:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3959:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3970:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3955:3:139"},"nodeType":"YulFunctionCall","src":"3955:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3949:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4025:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4034:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4042:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4027:6:139"},"nodeType":"YulFunctionCall","src":"4027:22:139"},"nodeType":"YulExpressionStatement","src":"4027:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4004:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"4008:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:139"},"nodeType":"YulFunctionCall","src":"4000:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4015:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3996:3:139"},"nodeType":"YulFunctionCall","src":"3996:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3989:6:139"},"nodeType":"YulFunctionCall","src":"3989:35:139"},"nodeType":"YulIf","src":"3986:2:139"},{"nodeType":"YulVariableDeclaration","src":"4060:30:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4087:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4074:12:139"},"nodeType":"YulFunctionCall","src":"4074:16:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4064:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4117:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4126:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4134:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4119:6:139"},"nodeType":"YulFunctionCall","src":"4119:22:139"},"nodeType":"YulExpressionStatement","src":"4119:22:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4105:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4113:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4102:2:139"},"nodeType":"YulFunctionCall","src":"4102:14:139"},"nodeType":"YulIf","src":"4099:2:139"},{"body":{"nodeType":"YulBlock","src":"4201:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4210:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4218:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4203:6:139"},"nodeType":"YulFunctionCall","src":"4203:22:139"},"nodeType":"YulExpressionStatement","src":"4203:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4166:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4174:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"4177:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4170:3:139"},"nodeType":"YulFunctionCall","src":"4170:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:139"},"nodeType":"YulFunctionCall","src":"4162:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4187:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4158:3:139"},"nodeType":"YulFunctionCall","src":"4158:32:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4192:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4155:2:139"},"nodeType":"YulFunctionCall","src":"4155:45:139"},"nodeType":"YulIf","src":"4152:2:139"},{"nodeType":"YulAssignment","src":"4236:21:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4250:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"4254:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4246:3:139"},"nodeType":"YulFunctionCall","src":"4246:11:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4236:6:139"}]},{"nodeType":"YulAssignment","src":"4266:16:139","value":{"name":"length","nodeType":"YulIdentifier","src":"4276:6:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4266:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3686:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3697:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3709:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3717:6:139","type":""}],"src":"3612:676:139"},{"body":{"nodeType":"YulBlock","src":"4388:273:139","statements":[{"body":{"nodeType":"YulBlock","src":"4434:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4443:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4451:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4436:6:139"},"nodeType":"YulFunctionCall","src":"4436:22:139"},"nodeType":"YulExpressionStatement","src":"4436:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4409:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4418:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4405:3:139"},"nodeType":"YulFunctionCall","src":"4405:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4430:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4401:3:139"},"nodeType":"YulFunctionCall","src":"4401:32:139"},"nodeType":"YulIf","src":"4398:2:139"},{"nodeType":"YulVariableDeclaration","src":"4469:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4496:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4483:12:139"},"nodeType":"YulFunctionCall","src":"4483:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4473:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4549:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4558:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4566:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4551:6:139"},"nodeType":"YulFunctionCall","src":"4551:22:139"},"nodeType":"YulExpressionStatement","src":"4551:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4521:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4529:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4518:2:139"},"nodeType":"YulFunctionCall","src":"4518:30:139"},"nodeType":"YulIf","src":"4515:2:139"},{"nodeType":"YulAssignment","src":"4584:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4627:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4638:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4623:3:139"},"nodeType":"YulFunctionCall","src":"4623:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4647:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4594:28:139"},"nodeType":"YulFunctionCall","src":"4594:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4584:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4354:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4365:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4377:6:139","type":""}],"src":"4293:368:139"},{"body":{"nodeType":"YulBlock","src":"4778:391:139","statements":[{"body":{"nodeType":"YulBlock","src":"4824:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4833:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4841:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4826:6:139"},"nodeType":"YulFunctionCall","src":"4826:22:139"},"nodeType":"YulExpressionStatement","src":"4826:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4799:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4808:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4795:3:139"},"nodeType":"YulFunctionCall","src":"4795:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4820:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4791:3:139"},"nodeType":"YulFunctionCall","src":"4791:32:139"},"nodeType":"YulIf","src":"4788:2:139"},{"nodeType":"YulVariableDeclaration","src":"4859:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4886:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4873:12:139"},"nodeType":"YulFunctionCall","src":"4873:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4863:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4939:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4948:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4956:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4941:6:139"},"nodeType":"YulFunctionCall","src":"4941:22:139"},"nodeType":"YulExpressionStatement","src":"4941:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4911:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4919:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4908:2:139"},"nodeType":"YulFunctionCall","src":"4908:30:139"},"nodeType":"YulIf","src":"4905:2:139"},{"nodeType":"YulAssignment","src":"4974:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5017:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5028:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5013:3:139"},"nodeType":"YulFunctionCall","src":"5013:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5037:7:139"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4984:28:139"},"nodeType":"YulFunctionCall","src":"4984:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4974:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5054:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5084:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5095:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5080:3:139"},"nodeType":"YulFunctionCall","src":"5080:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5067:12:139"},"nodeType":"YulFunctionCall","src":"5067:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5058:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5133:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5108:24:139"},"nodeType":"YulFunctionCall","src":"5108:31:139"},"nodeType":"YulExpressionStatement","src":"5108:31:139"},{"nodeType":"YulAssignment","src":"5148:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5158:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5148:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4736:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4747:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4759:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4767:6:139","type":""}],"src":"4666:503:139"},{"body":{"nodeType":"YulBlock","src":"5252:134:139","statements":[{"body":{"nodeType":"YulBlock","src":"5298:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5307:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5315:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5300:6:139"},"nodeType":"YulFunctionCall","src":"5300:22:139"},"nodeType":"YulExpressionStatement","src":"5300:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5273:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5282:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5269:3:139"},"nodeType":"YulFunctionCall","src":"5269:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5294:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5265:3:139"},"nodeType":"YulFunctionCall","src":"5265:32:139"},"nodeType":"YulIf","src":"5262:2:139"},{"nodeType":"YulAssignment","src":"5333:47:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5370:9:139"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"5343:26:139"},"nodeType":"YulFunctionCall","src":"5343:37:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5333:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5218:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5229:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5241:6:139","type":""}],"src":"5174:212:139"},{"body":{"nodeType":"YulBlock","src":"5503:494:139","statements":[{"body":{"nodeType":"YulBlock","src":"5549:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5558:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5566:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5551:6:139"},"nodeType":"YulFunctionCall","src":"5551:22:139"},"nodeType":"YulExpressionStatement","src":"5551:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5524:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5533:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5520:3:139"},"nodeType":"YulFunctionCall","src":"5520:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5545:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5516:3:139"},"nodeType":"YulFunctionCall","src":"5516:32:139"},"nodeType":"YulIf","src":"5513:2:139"},{"nodeType":"YulVariableDeclaration","src":"5584:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5603:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5597:5:139"},"nodeType":"YulFunctionCall","src":"5597:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5588:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5665:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5674:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5682:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5667:6:139"},"nodeType":"YulFunctionCall","src":"5667:22:139"},"nodeType":"YulExpressionStatement","src":"5667:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5635:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5653:1:139","type":"","value":"6"},{"name":"value","nodeType":"YulIdentifier","src":"5656:5:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"5642:10:139"},"nodeType":"YulFunctionCall","src":"5642:20:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5632:2:139"},"nodeType":"YulFunctionCall","src":"5632:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5625:6:139"},"nodeType":"YulFunctionCall","src":"5625:39:139"},"nodeType":"YulIf","src":"5622:2:139"},{"nodeType":"YulAssignment","src":"5700:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5710:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5700:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5724:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5749:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5760:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5745:3:139"},"nodeType":"YulFunctionCall","src":"5745:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5739:5:139"},"nodeType":"YulFunctionCall","src":"5739:25:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5728:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5798:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5773:24:139"},"nodeType":"YulFunctionCall","src":"5773:33:139"},"nodeType":"YulExpressionStatement","src":"5773:33:139"},{"nodeType":"YulAssignment","src":"5815:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"5825:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5815:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5841:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5866:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5877:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5862:3:139"},"nodeType":"YulFunctionCall","src":"5862:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5856:5:139"},"nodeType":"YulFunctionCall","src":"5856:25:139"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"5845:7:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5939:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5948:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"5956:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5941:6:139"},"nodeType":"YulFunctionCall","src":"5941:22:139"},"nodeType":"YulExpressionStatement","src":"5941:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"5903:7:139"},{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"5916:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"5925:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5912:3:139"},"nodeType":"YulFunctionCall","src":"5912:24:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5900:2:139"},"nodeType":"YulFunctionCall","src":"5900:37:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5893:6:139"},"nodeType":"YulFunctionCall","src":"5893:45:139"},"nodeType":"YulIf","src":"5890:2:139"},{"nodeType":"YulAssignment","src":"5974:17:139","value":{"name":"value_2","nodeType":"YulIdentifier","src":"5984:7:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5974:6:139"}]}]},"name":"abi_decode_tuple_t_int56t_uint160t_uint32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5453:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5464:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5476:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5484:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5492:6:139","type":""}],"src":"5391:606:139"},{"body":{"nodeType":"YulBlock","src":"6093:655:139","statements":[{"body":{"nodeType":"YulBlock","src":"6139:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6148:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6156:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6141:6:139"},"nodeType":"YulFunctionCall","src":"6141:22:139"},"nodeType":"YulExpressionStatement","src":"6141:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6114:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6123:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6110:3:139"},"nodeType":"YulFunctionCall","src":"6110:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6135:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6106:3:139"},"nodeType":"YulFunctionCall","src":"6106:32:139"},"nodeType":"YulIf","src":"6103:2:139"},{"nodeType":"YulVariableDeclaration","src":"6174:30:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6194:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6188:5:139"},"nodeType":"YulFunctionCall","src":"6188:16:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6178:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6213:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"6223:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6217:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6268:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6277:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6285:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6270:6:139"},"nodeType":"YulFunctionCall","src":"6270:22:139"},"nodeType":"YulExpressionStatement","src":"6270:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6256:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6264:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6253:2:139"},"nodeType":"YulFunctionCall","src":"6253:14:139"},"nodeType":"YulIf","src":"6250:2:139"},{"nodeType":"YulVariableDeclaration","src":"6303:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6317:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"6328:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6313:3:139"},"nodeType":"YulFunctionCall","src":"6313:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6307:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6383:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6392:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6400:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6385:6:139"},"nodeType":"YulFunctionCall","src":"6385:22:139"},"nodeType":"YulExpressionStatement","src":"6385:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6362:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"6366:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6358:3:139"},"nodeType":"YulFunctionCall","src":"6358:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6373:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6354:3:139"},"nodeType":"YulFunctionCall","src":"6354:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6347:6:139"},"nodeType":"YulFunctionCall","src":"6347:35:139"},"nodeType":"YulIf","src":"6344:2:139"},{"nodeType":"YulVariableDeclaration","src":"6418:19:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6434:2:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6428:5:139"},"nodeType":"YulFunctionCall","src":"6428:9:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"6422:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6460:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"6462:16:139"},"nodeType":"YulFunctionCall","src":"6462:18:139"},"nodeType":"YulExpressionStatement","src":"6462:18:139"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6452:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6456:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6449:2:139"},"nodeType":"YulFunctionCall","src":"6449:10:139"},"nodeType":"YulIf","src":"6446:2:139"},{"nodeType":"YulVariableDeclaration","src":"6491:66:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6532:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"6536:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6528:3:139"},"nodeType":"YulFunctionCall","src":"6528:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6547:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6543:3:139"},"nodeType":"YulFunctionCall","src":"6543:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6524:3:139"},"nodeType":"YulFunctionCall","src":"6524:27:139"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6520:3:139"},"nodeType":"YulFunctionCall","src":"6520:36:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6504:15:139"},"nodeType":"YulFunctionCall","src":"6504:53:139"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"6495:5:139","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6573:5:139"},{"name":"_3","nodeType":"YulIdentifier","src":"6580:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6566:6:139"},"nodeType":"YulFunctionCall","src":"6566:17:139"},"nodeType":"YulExpressionStatement","src":"6566:17:139"},{"body":{"nodeType":"YulBlock","src":"6629:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6638:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6646:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6631:6:139"},"nodeType":"YulFunctionCall","src":"6631:22:139"},"nodeType":"YulExpressionStatement","src":"6631:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6606:2:139"},{"name":"_3","nodeType":"YulIdentifier","src":"6610:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6602:3:139"},"nodeType":"YulFunctionCall","src":"6602:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6615:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6598:3:139"},"nodeType":"YulFunctionCall","src":"6598:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6620:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6595:2:139"},"nodeType":"YulFunctionCall","src":"6595:33:139"},"nodeType":"YulIf","src":"6592:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6690:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"6694:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6686:3:139"},"nodeType":"YulFunctionCall","src":"6686:11:139"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6703:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"6710:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6699:3:139"},"nodeType":"YulFunctionCall","src":"6699:14:139"},{"name":"_3","nodeType":"YulIdentifier","src":"6715:2:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6664:21:139"},"nodeType":"YulFunctionCall","src":"6664:54:139"},"nodeType":"YulExpressionStatement","src":"6664:54:139"},{"nodeType":"YulAssignment","src":"6727:15:139","value":{"name":"array","nodeType":"YulIdentifier","src":"6737:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6727:6:139"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6059:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6070:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6082:6:139","type":""}],"src":"6002:746:139"},{"body":{"nodeType":"YulBlock","src":"6926:669:139","statements":[{"body":{"nodeType":"YulBlock","src":"6973:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6982:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"6990:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6975:6:139"},"nodeType":"YulFunctionCall","src":"6975:22:139"},"nodeType":"YulExpressionStatement","src":"6975:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6947:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6956:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6943:3:139"},"nodeType":"YulFunctionCall","src":"6943:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6968:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6939:3:139"},"nodeType":"YulFunctionCall","src":"6939:33:139"},"nodeType":"YulIf","src":"6936:2:139"},{"nodeType":"YulVariableDeclaration","src":"7008:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7027:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7021:5:139"},"nodeType":"YulFunctionCall","src":"7021:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7012:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7071:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7046:24:139"},"nodeType":"YulFunctionCall","src":"7046:31:139"},"nodeType":"YulExpressionStatement","src":"7046:31:139"},{"nodeType":"YulAssignment","src":"7086:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"7096:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7086:6:139"}]},{"nodeType":"YulAssignment","src":"7110:57:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7152:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7163:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7148:3:139"},"nodeType":"YulFunctionCall","src":"7148:18:139"}],"functionName":{"name":"abi_decode_int24_fromMemory","nodeType":"YulIdentifier","src":"7120:27:139"},"nodeType":"YulFunctionCall","src":"7120:47:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7110:6:139"}]},{"nodeType":"YulAssignment","src":"7176:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7219:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7230:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7215:3:139"},"nodeType":"YulFunctionCall","src":"7215:18:139"}],"functionName":{"name":"abi_decode_uint16_fromMemory","nodeType":"YulIdentifier","src":"7186:28:139"},"nodeType":"YulFunctionCall","src":"7186:48:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7176:6:139"}]},{"nodeType":"YulAssignment","src":"7243:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7286:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7297:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7282:3:139"},"nodeType":"YulFunctionCall","src":"7282:18:139"}],"functionName":{"name":"abi_decode_uint16_fromMemory","nodeType":"YulIdentifier","src":"7253:28:139"},"nodeType":"YulFunctionCall","src":"7253:48:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7243:6:139"}]},{"nodeType":"YulAssignment","src":"7310:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7353:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7364:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7349:3:139"},"nodeType":"YulFunctionCall","src":"7349:19:139"}],"functionName":{"name":"abi_decode_uint16_fromMemory","nodeType":"YulIdentifier","src":"7320:28:139"},"nodeType":"YulFunctionCall","src":"7320:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7310:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7378:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7403:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7414:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7399:3:139"},"nodeType":"YulFunctionCall","src":"7399:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7393:5:139"},"nodeType":"YulFunctionCall","src":"7393:26:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7382:7:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7471:26:139","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"7480:6:139"},{"name":"value5","nodeType":"YulIdentifier","src":"7488:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7473:6:139"},"nodeType":"YulFunctionCall","src":"7473:22:139"},"nodeType":"YulExpressionStatement","src":"7473:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7441:7:139"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7454:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"7463:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7450:3:139"},"nodeType":"YulFunctionCall","src":"7450:18:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7438:2:139"},"nodeType":"YulFunctionCall","src":"7438:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7431:6:139"},"nodeType":"YulFunctionCall","src":"7431:39:139"},"nodeType":"YulIf","src":"7428:2:139"},{"nodeType":"YulAssignment","src":"7506:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7516:7:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7506:6:139"}]},{"nodeType":"YulAssignment","src":"7532:57:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7573:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7584:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7569:3:139"},"nodeType":"YulFunctionCall","src":"7569:19:139"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"7542:26:139"},"nodeType":"YulFunctionCall","src":"7542:47:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"7532:6:139"}]}]},"name":"abi_decode_tuple_t_uint160t_int24t_uint16t_uint16t_uint16t_uint8t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6844:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6855:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6867:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6875:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6883:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6891:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6899:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6907:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6915:6:139","type":""}],"src":"6753:842:139"},{"body":{"nodeType":"YulBlock","src":"7670:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"7716:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7725:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7733:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7718:6:139"},"nodeType":"YulFunctionCall","src":"7718:22:139"},"nodeType":"YulExpressionStatement","src":"7718:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7691:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7700:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7687:3:139"},"nodeType":"YulFunctionCall","src":"7687:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7712:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7683:3:139"},"nodeType":"YulFunctionCall","src":"7683:32:139"},"nodeType":"YulIf","src":"7680:2:139"},{"nodeType":"YulAssignment","src":"7751:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7774:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7761:12:139"},"nodeType":"YulFunctionCall","src":"7761:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7751:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7636:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7647:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7659:6:139","type":""}],"src":"7600:190:139"},{"body":{"nodeType":"YulBlock","src":"7876:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"7922:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7931:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7939:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7924:6:139"},"nodeType":"YulFunctionCall","src":"7924:22:139"},"nodeType":"YulExpressionStatement","src":"7924:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7897:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7906:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7893:3:139"},"nodeType":"YulFunctionCall","src":"7893:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7918:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7889:3:139"},"nodeType":"YulFunctionCall","src":"7889:32:139"},"nodeType":"YulIf","src":"7886:2:139"},{"nodeType":"YulAssignment","src":"7957:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7973:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7967:5:139"},"nodeType":"YulFunctionCall","src":"7967:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7957:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7842:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7853:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7865:6:139","type":""}],"src":"7795:194:139"},{"body":{"nodeType":"YulBlock","src":"8081:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"8127:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8136:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8144:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8129:6:139"},"nodeType":"YulFunctionCall","src":"8129:22:139"},"nodeType":"YulExpressionStatement","src":"8129:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8102:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8111:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8098:3:139"},"nodeType":"YulFunctionCall","src":"8098:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8123:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8094:3:139"},"nodeType":"YulFunctionCall","src":"8094:32:139"},"nodeType":"YulIf","src":"8091:2:139"},{"nodeType":"YulAssignment","src":"8162:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8185:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8172:12:139"},"nodeType":"YulFunctionCall","src":"8172:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8162:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8204:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8234:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8245:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8230:3:139"},"nodeType":"YulFunctionCall","src":"8230:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8217:12:139"},"nodeType":"YulFunctionCall","src":"8217:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8208:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8283:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8258:24:139"},"nodeType":"YulFunctionCall","src":"8258:31:139"},"nodeType":"YulExpressionStatement","src":"8258:31:139"},{"nodeType":"YulAssignment","src":"8298:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"8308:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8298:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8039:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8050:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8062:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8070:6:139","type":""}],"src":"7994:325:139"},{"body":{"nodeType":"YulBlock","src":"8588:942:139","statements":[{"body":{"nodeType":"YulBlock","src":"8635:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8644:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8652:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8637:6:139"},"nodeType":"YulFunctionCall","src":"8637:22:139"},"nodeType":"YulExpressionStatement","src":"8637:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8609:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8618:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8605:3:139"},"nodeType":"YulFunctionCall","src":"8605:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8630:3:139","type":"","value":"384"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8601:3:139"},"nodeType":"YulFunctionCall","src":"8601:33:139"},"nodeType":"YulIf","src":"8598:2:139"},{"nodeType":"YulVariableDeclaration","src":"8670:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8689:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8683:5:139"},"nodeType":"YulFunctionCall","src":"8683:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8674:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8769:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8778:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8786:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8771:6:139"},"nodeType":"YulFunctionCall","src":"8771:22:139"},"nodeType":"YulExpressionStatement","src":"8771:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8721:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8732:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"8739:26:139","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8728:3:139"},"nodeType":"YulFunctionCall","src":"8728:38:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8718:2:139"},"nodeType":"YulFunctionCall","src":"8718:49:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8711:6:139"},"nodeType":"YulFunctionCall","src":"8711:57:139"},"nodeType":"YulIf","src":"8708:2:139"},{"nodeType":"YulAssignment","src":"8804:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"8814:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8804:6:139"}]},{"nodeType":"YulAssignment","src":"8828:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8872:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8883:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8868:3:139"},"nodeType":"YulFunctionCall","src":"8868:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"8838:29:139"},"nodeType":"YulFunctionCall","src":"8838:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8828:6:139"}]},{"nodeType":"YulAssignment","src":"8896:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8940:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8951:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8936:3:139"},"nodeType":"YulFunctionCall","src":"8936:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"8906:29:139"},"nodeType":"YulFunctionCall","src":"8906:49:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8896:6:139"}]},{"nodeType":"YulAssignment","src":"8964:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9008:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9019:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9004:3:139"},"nodeType":"YulFunctionCall","src":"9004:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"8974:29:139"},"nodeType":"YulFunctionCall","src":"8974:49:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8964:6:139"}]},{"nodeType":"YulAssignment","src":"9032:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9075:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9086:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9071:3:139"},"nodeType":"YulFunctionCall","src":"9071:19:139"}],"functionName":{"name":"abi_decode_uint24_fromMemory","nodeType":"YulIdentifier","src":"9042:28:139"},"nodeType":"YulFunctionCall","src":"9042:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9032:6:139"}]},{"nodeType":"YulAssignment","src":"9100:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9142:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9153:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9138:3:139"},"nodeType":"YulFunctionCall","src":"9138:19:139"}],"functionName":{"name":"abi_decode_int24_fromMemory","nodeType":"YulIdentifier","src":"9110:27:139"},"nodeType":"YulFunctionCall","src":"9110:48:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"9100:6:139"}]},{"nodeType":"YulAssignment","src":"9167:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9209:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9220:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9205:3:139"},"nodeType":"YulFunctionCall","src":"9205:19:139"}],"functionName":{"name":"abi_decode_int24_fromMemory","nodeType":"YulIdentifier","src":"9177:27:139"},"nodeType":"YulFunctionCall","src":"9177:48:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"9167:6:139"}]},{"nodeType":"YulAssignment","src":"9234:60:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9278:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9289:3:139","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9274:3:139"},"nodeType":"YulFunctionCall","src":"9274:19:139"}],"functionName":{"name":"abi_decode_uint128_fromMemory","nodeType":"YulIdentifier","src":"9244:29:139"},"nodeType":"YulFunctionCall","src":"9244:50:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"9234:6:139"}]},{"nodeType":"YulAssignment","src":"9303:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9323:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9334:3:139","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9319:3:139"},"nodeType":"YulFunctionCall","src":"9319:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9313:5:139"},"nodeType":"YulFunctionCall","src":"9313:26:139"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"9303:6:139"}]},{"nodeType":"YulAssignment","src":"9348:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9368:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9379:3:139","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9364:3:139"},"nodeType":"YulFunctionCall","src":"9364:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9358:5:139"},"nodeType":"YulFunctionCall","src":"9358:26:139"},"variableNames":[{"name":"value9","nodeType":"YulIdentifier","src":"9348:6:139"}]},{"nodeType":"YulAssignment","src":"9393:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9438:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9449:3:139","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9434:3:139"},"nodeType":"YulFunctionCall","src":"9434:19:139"}],"functionName":{"name":"abi_decode_uint128_fromMemory","nodeType":"YulIdentifier","src":"9404:29:139"},"nodeType":"YulFunctionCall","src":"9404:50:139"},"variableNames":[{"name":"value10","nodeType":"YulIdentifier","src":"9393:7:139"}]},{"nodeType":"YulAssignment","src":"9463:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9508:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9519:3:139","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9504:3:139"},"nodeType":"YulFunctionCall","src":"9504:19:139"}],"functionName":{"name":"abi_decode_uint128_fromMemory","nodeType":"YulIdentifier","src":"9474:29:139"},"nodeType":"YulFunctionCall","src":"9474:50:139"},"variableNames":[{"name":"value11","nodeType":"YulIdentifier","src":"9463:7:139"}]}]},"name":"abi_decode_tuple_t_uint96t_addresst_addresst_addresst_uint24t_int24t_int24t_uint128t_uint256t_uint256t_uint128t_uint128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8464:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8475:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8487:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8495:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8503:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8511:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8519:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8527:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"8535:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"8543:6:139","type":""},{"name":"value8","nodeType":"YulTypedName","src":"8551:6:139","type":""},{"name":"value9","nodeType":"YulTypedName","src":"8559:6:139","type":""},{"name":"value10","nodeType":"YulTypedName","src":"8567:7:139","type":""},{"name":"value11","nodeType":"YulTypedName","src":"8576:7:139","type":""}],"src":"8324:1206:139"},{"body":{"nodeType":"YulBlock","src":"9584:208:139","statements":[{"nodeType":"YulVariableDeclaration","src":"9594:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9614:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9608:5:139"},"nodeType":"YulFunctionCall","src":"9608:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9598:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9636:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"9641:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9629:6:139"},"nodeType":"YulFunctionCall","src":"9629:19:139"},"nodeType":"YulExpressionStatement","src":"9629:19:139"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9683:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"9690:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9679:3:139"},"nodeType":"YulFunctionCall","src":"9679:16:139"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9701:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"9706:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9697:3:139"},"nodeType":"YulFunctionCall","src":"9697:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"9713:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9657:21:139"},"nodeType":"YulFunctionCall","src":"9657:63:139"},"nodeType":"YulExpressionStatement","src":"9657:63:139"},{"nodeType":"YulAssignment","src":"9729:57:139","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9744:3:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9757:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"9765:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9753:3:139"},"nodeType":"YulFunctionCall","src":"9753:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9774:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9770:3:139"},"nodeType":"YulFunctionCall","src":"9770:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9749:3:139"},"nodeType":"YulFunctionCall","src":"9749:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9740:3:139"},"nodeType":"YulFunctionCall","src":"9740:39:139"},{"kind":"number","nodeType":"YulLiteral","src":"9781:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9736:3:139"},"nodeType":"YulFunctionCall","src":"9736:50:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9729:3:139"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9561:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9568:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9576:3:139","type":""}],"src":"9535:257:139"},{"body":{"nodeType":"YulBlock","src":"9944:126:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9967:3:139"},{"name":"value0","nodeType":"YulIdentifier","src":"9972:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"9980:6:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"9954:12:139"},"nodeType":"YulFunctionCall","src":"9954:33:139"},"nodeType":"YulExpressionStatement","src":"9954:33:139"},{"nodeType":"YulVariableDeclaration","src":"9996:26:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10010:3:139"},{"name":"value1","nodeType":"YulIdentifier","src":"10015:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10006:3:139"},"nodeType":"YulFunctionCall","src":"10006:16:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10000:2:139","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10038:2:139"},{"name":"end","nodeType":"YulIdentifier","src":"10042:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10031:6:139"},"nodeType":"YulFunctionCall","src":"10031:15:139"},"nodeType":"YulExpressionStatement","src":"10031:15:139"},{"nodeType":"YulAssignment","src":"10055:9:139","value":{"name":"_1","nodeType":"YulIdentifier","src":"10062:2:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10055:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9912:3:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9917:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9925:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9936:3:139","type":""}],"src":"9797:273:139"},{"body":{"nodeType":"YulBlock","src":"10212:137:139","statements":[{"nodeType":"YulVariableDeclaration","src":"10222:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10242:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10236:5:139"},"nodeType":"YulFunctionCall","src":"10236:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10226:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10284:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"10292:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10280:3:139"},"nodeType":"YulFunctionCall","src":"10280:17:139"},{"name":"pos","nodeType":"YulIdentifier","src":"10299:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"10304:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10258:21:139"},"nodeType":"YulFunctionCall","src":"10258:53:139"},"nodeType":"YulExpressionStatement","src":"10258:53:139"},{"nodeType":"YulAssignment","src":"10320:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10331:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"10336:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10327:3:139"},"nodeType":"YulFunctionCall","src":"10327:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10320:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10188:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10193:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10204:3:139","type":""}],"src":"10075:274:139"},{"body":{"nodeType":"YulBlock","src":"10455:102:139","statements":[{"nodeType":"YulAssignment","src":"10465:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10477:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10488:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10473:3:139"},"nodeType":"YulFunctionCall","src":"10473:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10465:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10507:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10522:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10538:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10543:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10534:3:139"},"nodeType":"YulFunctionCall","src":"10534:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10547:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10530:3:139"},"nodeType":"YulFunctionCall","src":"10530:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10518:3:139"},"nodeType":"YulFunctionCall","src":"10518:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10500:6:139"},"nodeType":"YulFunctionCall","src":"10500:51:139"},"nodeType":"YulExpressionStatement","src":"10500:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10424:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10435:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10446:4:139","type":""}],"src":"10354:203:139"},{"body":{"nodeType":"YulBlock","src":"10717:233:139","statements":[{"nodeType":"YulAssignment","src":"10727:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10739:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10750:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10735:3:139"},"nodeType":"YulFunctionCall","src":"10735:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10727:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"10762:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10780:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10785:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10776:3:139"},"nodeType":"YulFunctionCall","src":"10776:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10789:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10772:3:139"},"nodeType":"YulFunctionCall","src":"10772:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10766:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10807:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10822:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10830:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10818:3:139"},"nodeType":"YulFunctionCall","src":"10818:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10800:6:139"},"nodeType":"YulFunctionCall","src":"10800:34:139"},"nodeType":"YulExpressionStatement","src":"10800:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10854:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10865:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10850:3:139"},"nodeType":"YulFunctionCall","src":"10850:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10874:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10882:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10870:3:139"},"nodeType":"YulFunctionCall","src":"10870:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10843:6:139"},"nodeType":"YulFunctionCall","src":"10843:43:139"},"nodeType":"YulExpressionStatement","src":"10843:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10906:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10917:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10902:3:139"},"nodeType":"YulFunctionCall","src":"10902:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10926:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"10934:8:139","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10922:3:139"},"nodeType":"YulFunctionCall","src":"10922:21:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10895:6:139"},"nodeType":"YulFunctionCall","src":"10895:49:139"},"nodeType":"YulExpressionStatement","src":"10895:49:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint24__to_t_address_t_address_t_uint24__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10670:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10681:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10689:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10697:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10708:4:139","type":""}],"src":"10562:388:139"},{"body":{"nodeType":"YulBlock","src":"11112:218:139","statements":[{"nodeType":"YulAssignment","src":"11122:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11134:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11145:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11130:3:139"},"nodeType":"YulFunctionCall","src":"11130:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11122:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"11157:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11175:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11180:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11171:3:139"},"nodeType":"YulFunctionCall","src":"11171:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11184:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11167:3:139"},"nodeType":"YulFunctionCall","src":"11167:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11161:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11217:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"11225:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11213:3:139"},"nodeType":"YulFunctionCall","src":"11213:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11195:6:139"},"nodeType":"YulFunctionCall","src":"11195:34:139"},"nodeType":"YulExpressionStatement","src":"11195:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11249:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11260:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11245:3:139"},"nodeType":"YulFunctionCall","src":"11245:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11269:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"11277:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11265:3:139"},"nodeType":"YulFunctionCall","src":"11265:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11238:6:139"},"nodeType":"YulFunctionCall","src":"11238:43:139"},"nodeType":"YulExpressionStatement","src":"11238:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11301:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11312:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11297:3:139"},"nodeType":"YulFunctionCall","src":"11297:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"11317:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11290:6:139"},"nodeType":"YulFunctionCall","src":"11290:34:139"},"nodeType":"YulExpressionStatement","src":"11290:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11065:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11076:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11084:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11092:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11103:4:139","type":""}],"src":"10955:375:139"},{"body":{"nodeType":"YulBlock","src":"11484:218:139","statements":[{"nodeType":"YulAssignment","src":"11494:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11506:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11517:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11502:3:139"},"nodeType":"YulFunctionCall","src":"11502:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11494:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11536:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11551:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11567:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11572:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11563:3:139"},"nodeType":"YulFunctionCall","src":"11563:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11576:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11559:3:139"},"nodeType":"YulFunctionCall","src":"11559:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11547:3:139"},"nodeType":"YulFunctionCall","src":"11547:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11529:6:139"},"nodeType":"YulFunctionCall","src":"11529:51:139"},"nodeType":"YulExpressionStatement","src":"11529:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11600:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11611:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11596:3:139"},"nodeType":"YulFunctionCall","src":"11596:18:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11627:1:139","type":"","value":"2"},{"name":"value1","nodeType":"YulIdentifier","src":"11630:6:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"11616:10:139"},"nodeType":"YulFunctionCall","src":"11616:21:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11589:6:139"},"nodeType":"YulFunctionCall","src":"11589:49:139"},"nodeType":"YulExpressionStatement","src":"11589:49:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11658:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11669:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11654:3:139"},"nodeType":"YulFunctionCall","src":"11654:18:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11685:1:139","type":"","value":"2"},{"name":"value2","nodeType":"YulIdentifier","src":"11688:6:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"11674:10:139"},"nodeType":"YulFunctionCall","src":"11674:21:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11647:6:139"},"nodeType":"YulFunctionCall","src":"11647:49:139"},"nodeType":"YulExpressionStatement","src":"11647:49:139"}]},"name":"abi_encode_tuple_t_address_t_int24_t_int24__to_t_address_t_int24_t_int24__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11437:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11448:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11456:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11464:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11475:4:139","type":""}],"src":"11335:367:139"},{"body":{"nodeType":"YulBlock","src":"11836:145:139","statements":[{"nodeType":"YulAssignment","src":"11846:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11858:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11869:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11854:3:139"},"nodeType":"YulFunctionCall","src":"11854:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11846:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11888:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11903:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11919:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11924:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11915:3:139"},"nodeType":"YulFunctionCall","src":"11915:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11928:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11911:3:139"},"nodeType":"YulFunctionCall","src":"11911:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11899:3:139"},"nodeType":"YulFunctionCall","src":"11899:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11881:6:139"},"nodeType":"YulFunctionCall","src":"11881:51:139"},"nodeType":"YulExpressionStatement","src":"11881:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11952:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11963:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11948:3:139"},"nodeType":"YulFunctionCall","src":"11948:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"11968:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11941:6:139"},"nodeType":"YulFunctionCall","src":"11941:34:139"},"nodeType":"YulExpressionStatement","src":"11941:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11797:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11808:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11816:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11827:4:139","type":""}],"src":"11707:274:139"},{"body":{"nodeType":"YulBlock","src":"12131:500:139","statements":[{"nodeType":"YulVariableDeclaration","src":"12141:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"12151:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12145:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12162:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12180:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12191:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12176:3:139"},"nodeType":"YulFunctionCall","src":"12176:18:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12166:6:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12210:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12221:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12203:6:139"},"nodeType":"YulFunctionCall","src":"12203:21:139"},"nodeType":"YulExpressionStatement","src":"12203:21:139"},{"nodeType":"YulVariableDeclaration","src":"12233:17:139","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"12244:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"12237:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12259:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12279:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12273:5:139"},"nodeType":"YulFunctionCall","src":"12273:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12263:6:139","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"12302:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"12310:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12295:6:139"},"nodeType":"YulFunctionCall","src":"12295:22:139"},"nodeType":"YulExpressionStatement","src":"12295:22:139"},{"nodeType":"YulAssignment","src":"12326:25:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12337:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12348:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12333:3:139"},"nodeType":"YulFunctionCall","src":"12333:18:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"12326:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"12360:29:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12378:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12386:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12374:3:139"},"nodeType":"YulFunctionCall","src":"12374:15:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"12364:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12398:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"12407:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12402:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"12469:136:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12490:3:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"12515:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12509:5:139"},"nodeType":"YulFunctionCall","src":"12509:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12502:6:139"},"nodeType":"YulFunctionCall","src":"12502:21:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12495:6:139"},"nodeType":"YulFunctionCall","src":"12495:29:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12483:6:139"},"nodeType":"YulFunctionCall","src":"12483:42:139"},"nodeType":"YulExpressionStatement","src":"12483:42:139"},{"nodeType":"YulAssignment","src":"12538:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12549:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12554:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12545:3:139"},"nodeType":"YulFunctionCall","src":"12545:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"12538:3:139"}]},{"nodeType":"YulAssignment","src":"12570:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"12584:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12592:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12580:3:139"},"nodeType":"YulFunctionCall","src":"12580:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"12570:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12431:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"12434:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12428:2:139"},"nodeType":"YulFunctionCall","src":"12428:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12442:18:139","statements":[{"nodeType":"YulAssignment","src":"12444:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12453:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"12456:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12449:3:139"},"nodeType":"YulFunctionCall","src":"12449:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12444:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"12424:3:139","statements":[]},"src":"12420:185:139"},{"nodeType":"YulAssignment","src":"12614:11:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"12622:3:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12614:4:139"}]}]},"name":"abi_encode_tuple_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12100:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12111:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12122:4:139","type":""}],"src":"11986:645:139"},{"body":{"nodeType":"YulBlock","src":"12805:634:139","statements":[{"nodeType":"YulVariableDeclaration","src":"12815:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"12825:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12819:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12836:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12854:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12865:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12850:3:139"},"nodeType":"YulFunctionCall","src":"12850:18:139"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12840:6:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12884:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"12895:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12877:6:139"},"nodeType":"YulFunctionCall","src":"12877:21:139"},"nodeType":"YulExpressionStatement","src":"12877:21:139"},{"nodeType":"YulVariableDeclaration","src":"12907:17:139","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"12918:6:139"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"12911:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12933:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12953:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12947:5:139"},"nodeType":"YulFunctionCall","src":"12947:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12937:6:139","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"12976:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"12984:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12969:6:139"},"nodeType":"YulFunctionCall","src":"12969:22:139"},"nodeType":"YulExpressionStatement","src":"12969:22:139"},{"nodeType":"YulAssignment","src":"13000:25:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13011:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13007:3:139"},"nodeType":"YulFunctionCall","src":"13007:18:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13000:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"13034:53:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13056:9:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13071:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"13074:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13067:3:139"},"nodeType":"YulFunctionCall","src":"13067:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13052:3:139"},"nodeType":"YulFunctionCall","src":"13052:30:139"},{"kind":"number","nodeType":"YulLiteral","src":"13084:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13048:3:139"},"nodeType":"YulFunctionCall","src":"13048:39:139"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"13038:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13096:29:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13114:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13122:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13110:3:139"},"nodeType":"YulFunctionCall","src":"13110:15:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"13100:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13134:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"13143:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13138:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13205:205:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13226:3:139"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"13239:6:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"13247:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13235:3:139"},"nodeType":"YulFunctionCall","src":"13235:22:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13263:2:139","type":"","value":"63"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13259:3:139"},"nodeType":"YulFunctionCall","src":"13259:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13231:3:139"},"nodeType":"YulFunctionCall","src":"13231:36:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13219:6:139"},"nodeType":"YulFunctionCall","src":"13219:49:139"},"nodeType":"YulExpressionStatement","src":"13219:49:139"},{"nodeType":"YulAssignment","src":"13281:49:139","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13314:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13308:5:139"},"nodeType":"YulFunctionCall","src":"13308:13:139"},{"name":"tail_2","nodeType":"YulIdentifier","src":"13323:6:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13291:16:139"},"nodeType":"YulFunctionCall","src":"13291:39:139"},"variableNames":[{"name":"tail_2","nodeType":"YulIdentifier","src":"13281:6:139"}]},{"nodeType":"YulAssignment","src":"13343:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13357:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13365:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13353:3:139"},"nodeType":"YulFunctionCall","src":"13353:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13343:6:139"}]},{"nodeType":"YulAssignment","src":"13381:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13392:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"13397:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13388:3:139"},"nodeType":"YulFunctionCall","src":"13388:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13381:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13167:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"13170:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13164:2:139"},"nodeType":"YulFunctionCall","src":"13164:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13178:18:139","statements":[{"nodeType":"YulAssignment","src":"13180:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13189:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"13192:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13185:3:139"},"nodeType":"YulFunctionCall","src":"13185:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13180:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"13160:3:139","statements":[]},"src":"13156:254:139"},{"nodeType":"YulAssignment","src":"13419:14:139","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"13427:6:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13419:4:139"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12774:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12785:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12796:4:139","type":""}],"src":"12636:803:139"},{"body":{"nodeType":"YulBlock","src":"13539:92:139","statements":[{"nodeType":"YulAssignment","src":"13549:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13561:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13572:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13557:3:139"},"nodeType":"YulFunctionCall","src":"13557:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13549:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13591:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13616:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13609:6:139"},"nodeType":"YulFunctionCall","src":"13609:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13602:6:139"},"nodeType":"YulFunctionCall","src":"13602:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13584:6:139"},"nodeType":"YulFunctionCall","src":"13584:41:139"},"nodeType":"YulExpressionStatement","src":"13584:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13508:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13519:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13530:4:139","type":""}],"src":"13444:187:139"},{"body":{"nodeType":"YulBlock","src":"13735:103:139","statements":[{"nodeType":"YulAssignment","src":"13745:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13757:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13768:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13753:3:139"},"nodeType":"YulFunctionCall","src":"13753:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13745:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13787:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13802:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13814:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13819:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13810:3:139"},"nodeType":"YulFunctionCall","src":"13810:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13798:3:139"},"nodeType":"YulFunctionCall","src":"13798:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13780:6:139"},"nodeType":"YulFunctionCall","src":"13780:52:139"},"nodeType":"YulExpressionStatement","src":"13780:52:139"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13704:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13715:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13726:4:139","type":""}],"src":"13636:202:139"},{"body":{"nodeType":"YulBlock","src":"13981:102:139","statements":[{"nodeType":"YulAssignment","src":"13991:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14003:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14014:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13999:3:139"},"nodeType":"YulFunctionCall","src":"13999:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13991:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14033:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14048:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14064:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14069:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14060:3:139"},"nodeType":"YulFunctionCall","src":"14060:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14073:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14056:3:139"},"nodeType":"YulFunctionCall","src":"14056:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14044:3:139"},"nodeType":"YulFunctionCall","src":"14044:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14026:6:139"},"nodeType":"YulFunctionCall","src":"14026:51:139"},"nodeType":"YulExpressionStatement","src":"14026:51:139"}]},"name":"abi_encode_tuple_t_contract$_INonfungiblePositionManager_$35221__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13950:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13961:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13972:4:139","type":""}],"src":"13843:240:139"},{"body":{"nodeType":"YulBlock","src":"14208:102:139","statements":[{"nodeType":"YulAssignment","src":"14218:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14230:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14241:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14226:3:139"},"nodeType":"YulFunctionCall","src":"14226:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14218:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14260:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14275:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14291:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14296:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14287:3:139"},"nodeType":"YulFunctionCall","src":"14287:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14300:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14283:3:139"},"nodeType":"YulFunctionCall","src":"14283:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14271:3:139"},"nodeType":"YulFunctionCall","src":"14271:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14253:6:139"},"nodeType":"YulFunctionCall","src":"14253:51:139"},"nodeType":"YulExpressionStatement","src":"14253:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14177:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14188:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14199:4:139","type":""}],"src":"14088:222:139"},{"body":{"nodeType":"YulBlock","src":"14443:102:139","statements":[{"nodeType":"YulAssignment","src":"14453:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14465:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14476:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14461:3:139"},"nodeType":"YulFunctionCall","src":"14461:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14453:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14495:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14510:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14526:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14531:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14522:3:139"},"nodeType":"YulFunctionCall","src":"14522:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14535:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14518:3:139"},"nodeType":"YulFunctionCall","src":"14518:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14506:3:139"},"nodeType":"YulFunctionCall","src":"14506:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14488:6:139"},"nodeType":"YulFunctionCall","src":"14488:51:139"},"nodeType":"YulExpressionStatement","src":"14488:51:139"}]},"name":"abi_encode_tuple_t_contract$_IUniswapV3Factory_$13539__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14412:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14423:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14434:4:139","type":""}],"src":"14315:230:139"},{"body":{"nodeType":"YulBlock","src":"14675:102:139","statements":[{"nodeType":"YulAssignment","src":"14685:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14697:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14708:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14693:3:139"},"nodeType":"YulFunctionCall","src":"14693:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14685:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14727:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14742:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14758:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14763:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14754:3:139"},"nodeType":"YulFunctionCall","src":"14754:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14767:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14750:3:139"},"nodeType":"YulFunctionCall","src":"14750:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14738:3:139"},"nodeType":"YulFunctionCall","src":"14738:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14720:6:139"},"nodeType":"YulFunctionCall","src":"14720:51:139"},"nodeType":"YulExpressionStatement","src":"14720:51:139"}]},"name":"abi_encode_tuple_t_contract$_IUniswapV3Pool_$13561__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14644:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14655:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14666:4:139","type":""}],"src":"14550:227:139"},{"body":{"nodeType":"YulBlock","src":"14903:149:139","statements":[{"nodeType":"YulAssignment","src":"14913:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14925:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14936:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14921:3:139"},"nodeType":"YulFunctionCall","src":"14921:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14913:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14955:9:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14977:1:139","type":"","value":"2"},{"name":"value0","nodeType":"YulIdentifier","src":"14980:6:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"14966:10:139"},"nodeType":"YulFunctionCall","src":"14966:21:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14948:6:139"},"nodeType":"YulFunctionCall","src":"14948:40:139"},"nodeType":"YulExpressionStatement","src":"14948:40:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15008:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15019:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15004:3:139"},"nodeType":"YulFunctionCall","src":"15004:18:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15035:1:139","type":"","value":"2"},{"name":"value1","nodeType":"YulIdentifier","src":"15038:6:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"15024:10:139"},"nodeType":"YulFunctionCall","src":"15024:21:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14997:6:139"},"nodeType":"YulFunctionCall","src":"14997:49:139"},"nodeType":"YulExpressionStatement","src":"14997:49:139"}]},"name":"abi_encode_tuple_t_int24_t_int24__to_t_int24_t_int24__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14864:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14875:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14883:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14894:4:139","type":""}],"src":"14782:270:139"},{"body":{"nodeType":"YulBlock","src":"15178:98:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15195:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15206:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15188:6:139"},"nodeType":"YulFunctionCall","src":"15188:21:139"},"nodeType":"YulExpressionStatement","src":"15188:21:139"},{"nodeType":"YulAssignment","src":"15218:52:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15243:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15255:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15266:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15251:3:139"},"nodeType":"YulFunctionCall","src":"15251:18:139"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"15226:16:139"},"nodeType":"YulFunctionCall","src":"15226:44:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15218:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15147:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15158:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15169:4:139","type":""}],"src":"15057:219:139"},{"body":{"nodeType":"YulBlock","src":"15455:175:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15472:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15483:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15465:6:139"},"nodeType":"YulFunctionCall","src":"15465:21:139"},"nodeType":"YulExpressionStatement","src":"15465:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15506:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15517:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15502:3:139"},"nodeType":"YulFunctionCall","src":"15502:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15522:2:139","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15495:6:139"},"nodeType":"YulFunctionCall","src":"15495:30:139"},"nodeType":"YulExpressionStatement","src":"15495:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15545:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15556:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15541:3:139"},"nodeType":"YulFunctionCall","src":"15541:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15561:27:139","type":"","value":"already in emergency mode"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15534:6:139"},"nodeType":"YulFunctionCall","src":"15534:55:139"},"nodeType":"YulExpressionStatement","src":"15534:55:139"},{"nodeType":"YulAssignment","src":"15598:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15610:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15621:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15606:3:139"},"nodeType":"YulFunctionCall","src":"15606:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15598:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15432:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15446:4:139","type":""}],"src":"15281:349:139"},{"body":{"nodeType":"YulBlock","src":"15809:248:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15826:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15837:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15819:6:139"},"nodeType":"YulFunctionCall","src":"15819:21:139"},"nodeType":"YulExpressionStatement","src":"15819:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15860:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15871:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15856:3:139"},"nodeType":"YulFunctionCall","src":"15856:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15876:2:139","type":"","value":"58"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15849:6:139"},"nodeType":"YulFunctionCall","src":"15849:30:139"},"nodeType":"YulExpressionStatement","src":"15849:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15899:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15910:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15895:3:139"},"nodeType":"YulFunctionCall","src":"15895:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15915:34:139","type":"","value":"TransferHelperExtended::safeTran"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15888:6:139"},"nodeType":"YulFunctionCall","src":"15888:62:139"},"nodeType":"YulExpressionStatement","src":"15888:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15970:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15981:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15966:3:139"},"nodeType":"YulFunctionCall","src":"15966:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15986:28:139","type":"","value":"sfer: call to non-contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15959:6:139"},"nodeType":"YulFunctionCall","src":"15959:56:139"},"nodeType":"YulExpressionStatement","src":"15959:56:139"},{"nodeType":"YulAssignment","src":"16024:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16036:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16047:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16032:3:139"},"nodeType":"YulFunctionCall","src":"16032:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16024:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_10115a262aeb94a0eafe6ad1f63c465ddde9d01ed6758200c550b37bafce9c4e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15786:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15800:4:139","type":""}],"src":"15635:422:139"},{"body":{"nodeType":"YulBlock","src":"16236:233:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16253:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16264:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16246:6:139"},"nodeType":"YulFunctionCall","src":"16246:21:139"},"nodeType":"YulExpressionStatement","src":"16246:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16287:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16298:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16283:3:139"},"nodeType":"YulFunctionCall","src":"16283:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16303:2:139","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16276:6:139"},"nodeType":"YulFunctionCall","src":"16276:30:139"},"nodeType":"YulExpressionStatement","src":"16276:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16326:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16337:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16322:3:139"},"nodeType":"YulFunctionCall","src":"16322:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16342:34:139","type":"","value":"ERC721Enumerable: owner index ou"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16315:6:139"},"nodeType":"YulFunctionCall","src":"16315:62:139"},"nodeType":"YulExpressionStatement","src":"16315:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16397:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16408:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16393:3:139"},"nodeType":"YulFunctionCall","src":"16393:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16413:13:139","type":"","value":"t of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16386:6:139"},"nodeType":"YulFunctionCall","src":"16386:41:139"},"nodeType":"YulExpressionStatement","src":"16386:41:139"},{"nodeType":"YulAssignment","src":"16436:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16448:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16459:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16444:3:139"},"nodeType":"YulFunctionCall","src":"16444:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16436:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16213:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16227:4:139","type":""}],"src":"16062:407:139"},{"body":{"nodeType":"YulBlock","src":"16648:241:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16665:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16676:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16658:6:139"},"nodeType":"YulFunctionCall","src":"16658:21:139"},"nodeType":"YulExpressionStatement","src":"16658:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16699:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16710:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16695:3:139"},"nodeType":"YulFunctionCall","src":"16695:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16715:2:139","type":"","value":"51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16688:6:139"},"nodeType":"YulFunctionCall","src":"16688:30:139"},"nodeType":"YulExpressionStatement","src":"16688:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16738:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16749:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16734:3:139"},"nodeType":"YulFunctionCall","src":"16734:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16754:34:139","type":"","value":"UniswapV3Staker::unstakeToken: s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16727:6:139"},"nodeType":"YulFunctionCall","src":"16727:62:139"},"nodeType":"YulExpressionStatement","src":"16727:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16809:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16820:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16805:3:139"},"nodeType":"YulFunctionCall","src":"16805:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16825:21:139","type":"","value":"take does not exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16798:6:139"},"nodeType":"YulFunctionCall","src":"16798:49:139"},"nodeType":"YulExpressionStatement","src":"16798:49:139"},{"nodeType":"YulAssignment","src":"16856:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16868:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16879:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16864:3:139"},"nodeType":"YulFunctionCall","src":"16864:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16856:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_4aa6be96f3947efce39d4719c93b6331965baca69492a001463b59edc3edf4cd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16625:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16639:4:139","type":""}],"src":"16474:415:139"},{"body":{"nodeType":"YulBlock","src":"17068:254:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17085:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17096:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17078:6:139"},"nodeType":"YulFunctionCall","src":"17078:21:139"},"nodeType":"YulExpressionStatement","src":"17078:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17119:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17130:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17115:3:139"},"nodeType":"YulFunctionCall","src":"17115:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17135:2:139","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17108:6:139"},"nodeType":"YulFunctionCall","src":"17108:30:139"},"nodeType":"YulExpressionStatement","src":"17108:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17158:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17169:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17154:3:139"},"nodeType":"YulFunctionCall","src":"17154:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17174:34:139","type":"","value":"UniswapV3Staker::stakeToken: can"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17147:6:139"},"nodeType":"YulFunctionCall","src":"17147:62:139"},"nodeType":"YulExpressionStatement","src":"17147:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17229:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17240:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17225:3:139"},"nodeType":"YulFunctionCall","src":"17225:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17245:34:139","type":"","value":"not stake token with 0 liquidity"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17218:6:139"},"nodeType":"YulFunctionCall","src":"17218:62:139"},"nodeType":"YulExpressionStatement","src":"17218:62:139"},{"nodeType":"YulAssignment","src":"17289:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17301:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17312:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17297:3:139"},"nodeType":"YulFunctionCall","src":"17297:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17289:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fc639dce1cc957a25e6c3f243500805fc10a686148519f00de9b728122a78dd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17045:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17059:4:139","type":""}],"src":"16894:428:139"},{"body":{"nodeType":"YulBlock","src":"17501:241:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17518:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17529:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17511:6:139"},"nodeType":"YulFunctionCall","src":"17511:21:139"},"nodeType":"YulExpressionStatement","src":"17511:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17552:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17563:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17548:3:139"},"nodeType":"YulFunctionCall","src":"17548:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17568:2:139","type":"","value":"51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17541:6:139"},"nodeType":"YulFunctionCall","src":"17541:30:139"},"nodeType":"YulExpressionStatement","src":"17541:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17591:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17602:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17587:3:139"},"nodeType":"YulFunctionCall","src":"17587:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17607:34:139","type":"","value":"UniswapV3Staker::createIncentive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17580:6:139"},"nodeType":"YulFunctionCall","src":"17580:62:139"},"nodeType":"YulExpressionStatement","src":"17580:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17662:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17673:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17658:3:139"},"nodeType":"YulFunctionCall","src":"17658:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17678:21:139","type":"","value":": only maha allowed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17651:6:139"},"nodeType":"YulFunctionCall","src":"17651:49:139"},"nodeType":"YulExpressionStatement","src":"17651:49:139"},{"nodeType":"YulAssignment","src":"17709:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17721:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17732:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17717:3:139"},"nodeType":"YulFunctionCall","src":"17717:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17709:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_800b3f694a860e5f8f00047581d04345c98a69f77bdcf8baa897a647ad75008a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17478:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17492:4:139","type":""}],"src":"17327:415:139"},{"body":{"nodeType":"YulBlock","src":"17921:251:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17938:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17949:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17931:6:139"},"nodeType":"YulFunctionCall","src":"17931:21:139"},"nodeType":"YulExpressionStatement","src":"17931:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17972:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17983:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17968:3:139"},"nodeType":"YulFunctionCall","src":"17968:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17988:2:139","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17961:6:139"},"nodeType":"YulFunctionCall","src":"17961:30:139"},"nodeType":"YulExpressionStatement","src":"17961:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18011:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18022:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18007:3:139"},"nodeType":"YulFunctionCall","src":"18007:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18027:34:139","type":"","value":"UniswapV3Staker::stakeToken: tok"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18000:6:139"},"nodeType":"YulFunctionCall","src":"18000:62:139"},"nodeType":"YulExpressionStatement","src":"18000:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18093:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18078:3:139"},"nodeType":"YulFunctionCall","src":"18078:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18098:31:139","type":"","value":"en pool is not the right pool"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18071:6:139"},"nodeType":"YulFunctionCall","src":"18071:59:139"},"nodeType":"YulExpressionStatement","src":"18071:59:139"},{"nodeType":"YulAssignment","src":"18139:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18151:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18162:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18147:3:139"},"nodeType":"YulFunctionCall","src":"18147:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18139:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8454be56f07645e4e235c6e498360f1e8ecc9e3d655ed53b8bcdaadbd61ac225__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17898:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17912:4:139","type":""}],"src":"17747:425:139"},{"body":{"nodeType":"YulBlock","src":"18351:151:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18368:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18379:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18361:6:139"},"nodeType":"YulFunctionCall","src":"18361:21:139"},"nodeType":"YulExpressionStatement","src":"18361:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18402:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18413:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18398:3:139"},"nodeType":"YulFunctionCall","src":"18398:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18418:1:139","type":"","value":"2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18391:6:139"},"nodeType":"YulFunctionCall","src":"18391:29:139"},"nodeType":"YulExpressionStatement","src":"18391:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18440:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18451:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18436:3:139"},"nodeType":"YulFunctionCall","src":"18436:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18456:4:139","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18429:6:139"},"nodeType":"YulFunctionCall","src":"18429:32:139"},"nodeType":"YulExpressionStatement","src":"18429:32:139"},{"nodeType":"YulAssignment","src":"18470:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18482:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18493:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18478:3:139"},"nodeType":"YulFunctionCall","src":"18478:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18470:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e992d6a09e3feb7936717fa482f3a7086f18407e19b697f3153d17fd25870ca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18328:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18342:4:139","type":""}],"src":"18177:325:139"},{"body":{"nodeType":"YulBlock","src":"18681:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18698:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18709:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18691:6:139"},"nodeType":"YulFunctionCall","src":"18691:21:139"},"nodeType":"YulExpressionStatement","src":"18691:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18732:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18743:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18728:3:139"},"nodeType":"YulFunctionCall","src":"18728:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18748:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18721:6:139"},"nodeType":"YulFunctionCall","src":"18721:30:139"},"nodeType":"YulExpressionStatement","src":"18721:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18771:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18782:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18767:3:139"},"nodeType":"YulFunctionCall","src":"18767:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18787:14:139","type":"","value":"not timelock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18760:6:139"},"nodeType":"YulFunctionCall","src":"18760:42:139"},"nodeType":"YulExpressionStatement","src":"18760:42:139"},{"nodeType":"YulAssignment","src":"18811:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18823:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18834:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18819:3:139"},"nodeType":"YulFunctionCall","src":"18819:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18811:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18658:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18672:4:139","type":""}],"src":"18507:336:139"},{"body":{"nodeType":"YulBlock","src":"19022:152:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19039:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19050:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19032:6:139"},"nodeType":"YulFunctionCall","src":"19032:21:139"},"nodeType":"YulExpressionStatement","src":"19032:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19073:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19084:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19069:3:139"},"nodeType":"YulFunctionCall","src":"19069:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19089:1:139","type":"","value":"3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19062:6:139"},"nodeType":"YulFunctionCall","src":"19062:29:139"},"nodeType":"YulExpressionStatement","src":"19062:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19111:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19122:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19107:3:139"},"nodeType":"YulFunctionCall","src":"19107:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19127:5:139","type":"","value":"STF"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19100:6:139"},"nodeType":"YulFunctionCall","src":"19100:33:139"},"nodeType":"YulExpressionStatement","src":"19100:33:139"},{"nodeType":"YulAssignment","src":"19142:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19154:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19165:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19150:3:139"},"nodeType":"YulFunctionCall","src":"19150:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19142:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1c4b1d67db284650e7cfb49cb11ce76848206ad466478425bd3418f8bbb9a86__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18999:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19013:4:139","type":""}],"src":"18848:326:139"},{"body":{"nodeType":"YulBlock","src":"19353:251:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19370:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19381:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19363:6:139"},"nodeType":"YulFunctionCall","src":"19363:21:139"},"nodeType":"YulExpressionStatement","src":"19363:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19404:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19415:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19400:3:139"},"nodeType":"YulFunctionCall","src":"19400:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19420:2:139","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19393:6:139"},"nodeType":"YulFunctionCall","src":"19393:30:139"},"nodeType":"YulExpressionStatement","src":"19393:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19443:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19454:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19439:3:139"},"nodeType":"YulFunctionCall","src":"19439:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19459:34:139","type":"","value":"UniswapV3Staker::withdrawToken: "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19432:6:139"},"nodeType":"YulFunctionCall","src":"19432:62:139"},"nodeType":"YulExpressionStatement","src":"19432:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19514:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19525:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19510:3:139"},"nodeType":"YulFunctionCall","src":"19510:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19530:31:139","type":"","value":"only owner can withdraw token"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19503:6:139"},"nodeType":"YulFunctionCall","src":"19503:59:139"},"nodeType":"YulExpressionStatement","src":"19503:59:139"},{"nodeType":"YulAssignment","src":"19571:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19583:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19594:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19579:3:139"},"nodeType":"YulFunctionCall","src":"19579:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19571:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a8202f3ed8fef68502cdb85899324e7bff182d4c4d923be1941b47f8c4ca81db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19330:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19344:4:139","type":""}],"src":"19179:425:139"},{"body":{"nodeType":"YulBlock","src":"19783:252:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19800:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19811:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19793:6:139"},"nodeType":"YulFunctionCall","src":"19793:21:139"},"nodeType":"YulExpressionStatement","src":"19793:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19834:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19845:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19830:3:139"},"nodeType":"YulFunctionCall","src":"19830:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"19850:2:139","type":"","value":"62"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:139"},"nodeType":"YulFunctionCall","src":"19823:30:139"},"nodeType":"YulExpressionStatement","src":"19823:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19873:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19884:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19869:3:139"},"nodeType":"YulFunctionCall","src":"19869:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19889:34:139","type":"","value":"TransferHelperExtended::safeTran"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19862:6:139"},"nodeType":"YulFunctionCall","src":"19862:62:139"},"nodeType":"YulExpressionStatement","src":"19862:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19944:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19955:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19940:3:139"},"nodeType":"YulFunctionCall","src":"19940:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"19960:32:139","type":"","value":"sferFrom: call to non-contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19933:6:139"},"nodeType":"YulFunctionCall","src":"19933:60:139"},"nodeType":"YulExpressionStatement","src":"19933:60:139"},{"nodeType":"YulAssignment","src":"20002:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20014:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20025:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20010:3:139"},"nodeType":"YulFunctionCall","src":"20010:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20002:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca43b7ccabbdb5a9273b37718e136798fbc61dda30c78464909a9a690b01f8e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19760:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19774:4:139","type":""}],"src":"19609:426:139"},{"body":{"nodeType":"YulBlock","src":"20214:247:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20231:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20242:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20224:6:139"},"nodeType":"YulFunctionCall","src":"20224:21:139"},"nodeType":"YulExpressionStatement","src":"20224:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20265:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20276:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20261:3:139"},"nodeType":"YulFunctionCall","src":"20261:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20281:2:139","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20254:6:139"},"nodeType":"YulFunctionCall","src":"20254:30:139"},"nodeType":"YulExpressionStatement","src":"20254:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20304:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20315:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20300:3:139"},"nodeType":"YulFunctionCall","src":"20300:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20320:34:139","type":"","value":"UniswapV3Staker::createIncentive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20293:6:139"},"nodeType":"YulFunctionCall","src":"20293:62:139"},"nodeType":"YulExpressionStatement","src":"20293:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20375:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20386:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20371:3:139"},"nodeType":"YulFunctionCall","src":"20371:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20391:27:139","type":"","value":": reward must be positive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20364:6:139"},"nodeType":"YulFunctionCall","src":"20364:55:139"},"nodeType":"YulExpressionStatement","src":"20364:55:139"},{"nodeType":"YulAssignment","src":"20428:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20440:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20451:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20436:3:139"},"nodeType":"YulFunctionCall","src":"20436:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20428:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_cea066c4c041d6e54db5f455321d55e1bd2de8a904aa2471e645306393091fdd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20191:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20205:4:139","type":""}],"src":"20040:421:139"},{"body":{"nodeType":"YulBlock","src":"20640:234:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20657:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20668:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20650:6:139"},"nodeType":"YulFunctionCall","src":"20650:21:139"},"nodeType":"YulExpressionStatement","src":"20650:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20691:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20702:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20687:3:139"},"nodeType":"YulFunctionCall","src":"20687:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"20707:2:139","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20680:6:139"},"nodeType":"YulFunctionCall","src":"20680:30:139"},"nodeType":"YulExpressionStatement","src":"20680:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20730:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20741:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20726:3:139"},"nodeType":"YulFunctionCall","src":"20726:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20746:34:139","type":"","value":"ERC721Enumerable: global index o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20719:6:139"},"nodeType":"YulFunctionCall","src":"20719:62:139"},"nodeType":"YulExpressionStatement","src":"20719:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20801:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20812:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20797:3:139"},"nodeType":"YulFunctionCall","src":"20797:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"20817:14:139","type":"","value":"ut of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20790:6:139"},"nodeType":"YulFunctionCall","src":"20790:42:139"},"nodeType":"YulExpressionStatement","src":"20790:42:139"},{"nodeType":"YulAssignment","src":"20841:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20853:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"20864:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20849:3:139"},"nodeType":"YulFunctionCall","src":"20849:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20841:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20617:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20631:4:139","type":""}],"src":"20466:408:139"},{"body":{"nodeType":"YulBlock","src":"21053:171:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21070:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21081:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21063:6:139"},"nodeType":"YulFunctionCall","src":"21063:21:139"},"nodeType":"YulExpressionStatement","src":"21063:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21104:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21115:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21100:3:139"},"nodeType":"YulFunctionCall","src":"21100:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21120:2:139","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21093:6:139"},"nodeType":"YulFunctionCall","src":"21093:30:139"},"nodeType":"YulExpressionStatement","src":"21093:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21143:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21154:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21139:3:139"},"nodeType":"YulFunctionCall","src":"21139:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21159:23:139","type":"","value":"not in emergency mode"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21132:6:139"},"nodeType":"YulFunctionCall","src":"21132:51:139"},"nodeType":"YulExpressionStatement","src":"21132:51:139"},{"nodeType":"YulAssignment","src":"21192:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21204:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21215:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21200:3:139"},"nodeType":"YulFunctionCall","src":"21200:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21192:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21030:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21044:4:139","type":""}],"src":"20879:345:139"},{"body":{"nodeType":"YulBlock","src":"21403:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21420:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21431:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21413:6:139"},"nodeType":"YulFunctionCall","src":"21413:21:139"},"nodeType":"YulExpressionStatement","src":"21413:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21454:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21465:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21450:3:139"},"nodeType":"YulFunctionCall","src":"21450:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21470:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21443:6:139"},"nodeType":"YulFunctionCall","src":"21443:30:139"},"nodeType":"YulExpressionStatement","src":"21443:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21493:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21504:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21489:3:139"},"nodeType":"YulFunctionCall","src":"21489:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21509:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21482:6:139"},"nodeType":"YulFunctionCall","src":"21482:61:139"},"nodeType":"YulExpressionStatement","src":"21482:61:139"},{"nodeType":"YulAssignment","src":"21552:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21564:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21575:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21560:3:139"},"nodeType":"YulFunctionCall","src":"21560:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21552:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21380:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21394:4:139","type":""}],"src":"21229:355:139"},{"body":{"nodeType":"YulBlock","src":"21763:240:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21780:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21791:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21773:6:139"},"nodeType":"YulFunctionCall","src":"21773:21:139"},"nodeType":"YulExpressionStatement","src":"21773:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21814:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21825:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21810:3:139"},"nodeType":"YulFunctionCall","src":"21810:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"21830:2:139","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21803:6:139"},"nodeType":"YulFunctionCall","src":"21803:30:139"},"nodeType":"YulExpressionStatement","src":"21803:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21853:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21864:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21849:3:139"},"nodeType":"YulFunctionCall","src":"21849:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21869:34:139","type":"","value":"UniswapV3Staker::onERC721Receive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21842:6:139"},"nodeType":"YulFunctionCall","src":"21842:62:139"},"nodeType":"YulExpressionStatement","src":"21842:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21924:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21935:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21920:3:139"},"nodeType":"YulFunctionCall","src":"21920:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"21940:20:139","type":"","value":"d: not a univ3 nft"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21913:6:139"},"nodeType":"YulFunctionCall","src":"21913:48:139"},"nodeType":"YulExpressionStatement","src":"21913:48:139"},{"nodeType":"YulAssignment","src":"21970:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21982:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"21993:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21978:3:139"},"nodeType":"YulFunctionCall","src":"21978:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21970:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9bf96e75e94ea4a0908da69299e92f34467aea16295aa11950ca12d63a88d91__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21740:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21754:4:139","type":""}],"src":"21589:414:139"},{"body":{"nodeType":"YulBlock","src":"22182:167:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22199:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22210:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22192:6:139"},"nodeType":"YulFunctionCall","src":"22192:21:139"},"nodeType":"YulExpressionStatement","src":"22192:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22233:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22244:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22229:3:139"},"nodeType":"YulFunctionCall","src":"22229:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"22249:2:139","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22222:6:139"},"nodeType":"YulFunctionCall","src":"22222:30:139"},"nodeType":"YulExpressionStatement","src":"22222:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22272:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22283:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22268:3:139"},"nodeType":"YulFunctionCall","src":"22268:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"22288:19:139","type":"","value":"in emergency mode"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22261:6:139"},"nodeType":"YulFunctionCall","src":"22261:47:139"},"nodeType":"YulExpressionStatement","src":"22261:47:139"},{"nodeType":"YulAssignment","src":"22317:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22329:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22340:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22325:3:139"},"nodeType":"YulFunctionCall","src":"22325:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22317:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22159:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22173:4:139","type":""}],"src":"22008:341:139"},{"body":{"nodeType":"YulBlock","src":"22455:102:139","statements":[{"nodeType":"YulAssignment","src":"22465:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22477:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22488:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22473:3:139"},"nodeType":"YulFunctionCall","src":"22473:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22465:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22507:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22522:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22538:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"22543:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22534:3:139"},"nodeType":"YulFunctionCall","src":"22534:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"22547:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22530:3:139"},"nodeType":"YulFunctionCall","src":"22530:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22518:3:139"},"nodeType":"YulFunctionCall","src":"22518:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22500:6:139"},"nodeType":"YulFunctionCall","src":"22500:51:139"},"nodeType":"YulExpressionStatement","src":"22500:51:139"}]},"name":"abi_encode_tuple_t_uint128__to_t_uint128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22424:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22435:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22446:4:139","type":""}],"src":"22354:203:139"},{"body":{"nodeType":"YulBlock","src":"22663:102:139","statements":[{"nodeType":"YulAssignment","src":"22673:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22685:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22696:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22681:3:139"},"nodeType":"YulFunctionCall","src":"22681:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22673:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22715:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22730:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22746:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22751:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22742:3:139"},"nodeType":"YulFunctionCall","src":"22742:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"22755:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22738:3:139"},"nodeType":"YulFunctionCall","src":"22738:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22726:3:139"},"nodeType":"YulFunctionCall","src":"22726:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22708:6:139"},"nodeType":"YulFunctionCall","src":"22708:51:139"},"nodeType":"YulExpressionStatement","src":"22708:51:139"}]},"name":"abi_encode_tuple_t_uint160__to_t_uint160__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22632:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22643:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22654:4:139","type":""}],"src":"22562:203:139"},{"body":{"nodeType":"YulBlock","src":"22899:171:139","statements":[{"nodeType":"YulAssignment","src":"22909:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22921:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"22932:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22917:3:139"},"nodeType":"YulFunctionCall","src":"22917:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22909:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22951:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22966:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22982:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22987:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22978:3:139"},"nodeType":"YulFunctionCall","src":"22978:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"22991:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22974:3:139"},"nodeType":"YulFunctionCall","src":"22974:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22962:3:139"},"nodeType":"YulFunctionCall","src":"22962:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22944:6:139"},"nodeType":"YulFunctionCall","src":"22944:51:139"},"nodeType":"YulExpressionStatement","src":"22944:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23015:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23026:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23011:3:139"},"nodeType":"YulFunctionCall","src":"23011:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23035:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23051:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"23056:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23047:3:139"},"nodeType":"YulFunctionCall","src":"23047:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"23060:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23043:3:139"},"nodeType":"YulFunctionCall","src":"23043:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23031:3:139"},"nodeType":"YulFunctionCall","src":"23031:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23004:6:139"},"nodeType":"YulFunctionCall","src":"23004:60:139"},"nodeType":"YulExpressionStatement","src":"23004:60:139"}]},"name":"abi_encode_tuple_t_uint160_t_uint128__to_t_uint160_t_uint128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22860:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22871:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22879:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22890:4:139","type":""}],"src":"22770:300:139"},{"body":{"nodeType":"YulBlock","src":"23176:76:139","statements":[{"nodeType":"YulAssignment","src":"23186:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23198:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23209:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23194:3:139"},"nodeType":"YulFunctionCall","src":"23194:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23186:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23228:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"23239:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23221:6:139"},"nodeType":"YulFunctionCall","src":"23221:25:139"},"nodeType":"YulExpressionStatement","src":"23221:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23145:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23156:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23167:4:139","type":""}],"src":"23075:177:139"},{"body":{"nodeType":"YulBlock","src":"23386:145:139","statements":[{"nodeType":"YulAssignment","src":"23396:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23408:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23419:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23404:3:139"},"nodeType":"YulFunctionCall","src":"23404:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23396:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23438:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"23449:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23431:6:139"},"nodeType":"YulFunctionCall","src":"23431:25:139"},"nodeType":"YulExpressionStatement","src":"23431:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23476:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23487:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23472:3:139"},"nodeType":"YulFunctionCall","src":"23472:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23496:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23512:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23517:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23508:3:139"},"nodeType":"YulFunctionCall","src":"23508:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"23521:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23504:3:139"},"nodeType":"YulFunctionCall","src":"23504:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23492:3:139"},"nodeType":"YulFunctionCall","src":"23492:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23465:6:139"},"nodeType":"YulFunctionCall","src":"23465:60:139"},"nodeType":"YulExpressionStatement","src":"23465:60:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint160__to_t_uint256_t_uint160__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23347:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23358:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23366:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23377:4:139","type":""}],"src":"23257:274:139"},{"body":{"nodeType":"YulBlock","src":"23693:162:139","statements":[{"nodeType":"YulAssignment","src":"23703:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23715:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23726:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23711:3:139"},"nodeType":"YulFunctionCall","src":"23711:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23703:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23745:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"23756:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23738:6:139"},"nodeType":"YulFunctionCall","src":"23738:25:139"},"nodeType":"YulExpressionStatement","src":"23738:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23783:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23794:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23779:3:139"},"nodeType":"YulFunctionCall","src":"23779:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"23799:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23772:6:139"},"nodeType":"YulFunctionCall","src":"23772:34:139"},"nodeType":"YulExpressionStatement","src":"23772:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23826:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"23837:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23822:3:139"},"nodeType":"YulFunctionCall","src":"23822:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"23842:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23815:6:139"},"nodeType":"YulFunctionCall","src":"23815:34:139"},"nodeType":"YulExpressionStatement","src":"23815:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23646:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23657:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23665:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23673:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23684:4:139","type":""}],"src":"23536:319:139"},{"body":{"nodeType":"YulBlock","src":"23954:439:139","statements":[{"nodeType":"YulVariableDeclaration","src":"23964:51:139","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"24003:11:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"23990:12:139"},"nodeType":"YulFunctionCall","src":"23990:25:139"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"23968:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"24104:22:139","statements":[{"expression":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"24113:4:139"},{"name":"addr","nodeType":"YulIdentifier","src":"24119:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24106:6:139"},"nodeType":"YulFunctionCall","src":"24106:18:139"},"nodeType":"YulExpressionStatement","src":"24106:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"24038:18:139"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"24066:12:139"},"nodeType":"YulFunctionCall","src":"24066:14:139"},{"name":"base_ref","nodeType":"YulIdentifier","src":"24082:8:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24062:3:139"},"nodeType":"YulFunctionCall","src":"24062:29:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24097:2:139","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24093:3:139"},"nodeType":"YulFunctionCall","src":"24093:7:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24058:3:139"},"nodeType":"YulFunctionCall","src":"24058:43:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"24034:3:139"},"nodeType":"YulFunctionCall","src":"24034:68:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24027:6:139"},"nodeType":"YulFunctionCall","src":"24027:76:139"},"nodeType":"YulIf","src":"24024:2:139"},{"nodeType":"YulVariableDeclaration","src":"24135:47:139","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"24153:8:139"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"24163:18:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24149:3:139"},"nodeType":"YulFunctionCall","src":"24149:33:139"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"24139:6:139","type":""}]},{"nodeType":"YulAssignment","src":"24191:30:139","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"24214:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"24201:12:139"},"nodeType":"YulFunctionCall","src":"24201:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"24191:6:139"}]},{"body":{"nodeType":"YulBlock","src":"24264:22:139","statements":[{"expression":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"24273:4:139"},{"name":"addr","nodeType":"YulIdentifier","src":"24279:4:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24266:6:139"},"nodeType":"YulFunctionCall","src":"24266:18:139"},"nodeType":"YulExpressionStatement","src":"24266:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"24236:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"24244:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24233:2:139"},"nodeType":"YulFunctionCall","src":"24233:30:139"},"nodeType":"YulIf","src":"24230:2:139"},{"nodeType":"YulAssignment","src":"24295:25:139","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"24307:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"24315:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24303:3:139"},"nodeType":"YulFunctionCall","src":"24303:17:139"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"24295:4:139"}]},{"body":{"nodeType":"YulBlock","src":"24371:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24380:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24383:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24373:6:139"},"nodeType":"YulFunctionCall","src":"24373:12:139"},"nodeType":"YulExpressionStatement","src":"24373:12:139"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"24336:4:139"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"24346:12:139"},"nodeType":"YulFunctionCall","src":"24346:14:139"},{"name":"length","nodeType":"YulIdentifier","src":"24362:6:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24342:3:139"},"nodeType":"YulFunctionCall","src":"24342:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"24332:3:139"},"nodeType":"YulFunctionCall","src":"24332:38:139"},"nodeType":"YulIf","src":"24329:2:139"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"23911:8:139","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"23921:11:139","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"23937:4:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"23943:6:139","type":""}],"src":"23860:533:139"},{"body":{"nodeType":"YulBlock","src":"24443:230:139","statements":[{"nodeType":"YulAssignment","src":"24453:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24469:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24463:5:139"},"nodeType":"YulFunctionCall","src":"24463:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"24453:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"24481:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"24503:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"24519:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"24525:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24515:3:139"},"nodeType":"YulFunctionCall","src":"24515:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24534:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24530:3:139"},"nodeType":"YulFunctionCall","src":"24530:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24511:3:139"},"nodeType":"YulFunctionCall","src":"24511:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24499:3:139"},"nodeType":"YulFunctionCall","src":"24499:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"24485:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"24614:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"24616:16:139"},"nodeType":"YulFunctionCall","src":"24616:18:139"},"nodeType":"YulExpressionStatement","src":"24616:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"24557:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"24569:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24554:2:139"},"nodeType":"YulFunctionCall","src":"24554:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"24593:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"24605:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24590:2:139"},"nodeType":"YulFunctionCall","src":"24590:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"24551:2:139"},"nodeType":"YulFunctionCall","src":"24551:62:139"},"nodeType":"YulIf","src":"24548:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24652:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"24656:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24645:6:139"},"nodeType":"YulFunctionCall","src":"24645:22:139"},"nodeType":"YulExpressionStatement","src":"24645:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"24423:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"24432:6:139","type":""}],"src":"24398:275:139"},{"body":{"nodeType":"YulBlock","src":"24726:190:139","statements":[{"nodeType":"YulVariableDeclaration","src":"24736:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24754:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"24759:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24750:3:139"},"nodeType":"YulFunctionCall","src":"24750:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"24763:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24746:3:139"},"nodeType":"YulFunctionCall","src":"24746:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24740:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24774:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24789:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"24792:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24785:3:139"},"nodeType":"YulFunctionCall","src":"24785:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"24778:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24804:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24819:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"24822:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24815:3:139"},"nodeType":"YulFunctionCall","src":"24815:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24808:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"24859:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24861:16:139"},"nodeType":"YulFunctionCall","src":"24861:18:139"},"nodeType":"YulExpressionStatement","src":"24861:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24840:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24849:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"24853:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24845:3:139"},"nodeType":"YulFunctionCall","src":"24845:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24837:2:139"},"nodeType":"YulFunctionCall","src":"24837:21:139"},"nodeType":"YulIf","src":"24834:2:139"},{"nodeType":"YulAssignment","src":"24890:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24901:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"24906:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24897:3:139"},"nodeType":"YulFunctionCall","src":"24897:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"24890:3:139"}]}]},"name":"checked_add_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24709:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"24712:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"24718:3:139","type":""}],"src":"24678:238:139"},{"body":{"nodeType":"YulBlock","src":"24969:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"24996:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24998:16:139"},"nodeType":"YulFunctionCall","src":"24998:18:139"},"nodeType":"YulExpressionStatement","src":"24998:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24985:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24992:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24988:3:139"},"nodeType":"YulFunctionCall","src":"24988:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24982:2:139"},"nodeType":"YulFunctionCall","src":"24982:13:139"},"nodeType":"YulIf","src":"24979:2:139"},{"nodeType":"YulAssignment","src":"25027:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25038:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"25041:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25034:3:139"},"nodeType":"YulFunctionCall","src":"25034:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"25027:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24952:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"24955:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"24961:3:139","type":""}],"src":"24921:128:139"},{"body":{"nodeType":"YulBlock","src":"25100:155:139","statements":[{"nodeType":"YulVariableDeclaration","src":"25110:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25128:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"25133:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25124:3:139"},"nodeType":"YulFunctionCall","src":"25124:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"25137:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25120:3:139"},"nodeType":"YulFunctionCall","src":"25120:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25114:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25148:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25163:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"25166:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25159:3:139"},"nodeType":"YulFunctionCall","src":"25159:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"25152:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"25193:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"25195:16:139"},"nodeType":"YulFunctionCall","src":"25195:18:139"},"nodeType":"YulExpressionStatement","src":"25195:18:139"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"25188:3:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25181:6:139"},"nodeType":"YulFunctionCall","src":"25181:11:139"},"nodeType":"YulIf","src":"25178:2:139"},{"nodeType":"YulAssignment","src":"25224:25:139","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25237:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"25240:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25233:3:139"},"nodeType":"YulFunctionCall","src":"25233:10:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"25245:3:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25229:3:139"},"nodeType":"YulFunctionCall","src":"25229:20:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"25224:1:139"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25085:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"25088:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"25094:1:139","type":""}],"src":"25054:201:139"},{"body":{"nodeType":"YulBlock","src":"25306:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"25329:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"25331:16:139"},"nodeType":"YulFunctionCall","src":"25331:18:139"},"nodeType":"YulExpressionStatement","src":"25331:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25326:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25319:6:139"},"nodeType":"YulFunctionCall","src":"25319:9:139"},"nodeType":"YulIf","src":"25316:2:139"},{"nodeType":"YulAssignment","src":"25360:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25369:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"25372:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25365:3:139"},"nodeType":"YulFunctionCall","src":"25365:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"25360:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25291:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"25294:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"25300:1:139","type":""}],"src":"25260:120:139"},{"body":{"nodeType":"YulBlock","src":"25437:220:139","statements":[{"nodeType":"YulVariableDeclaration","src":"25447:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25465:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"25470:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25461:3:139"},"nodeType":"YulFunctionCall","src":"25461:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"25474:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25457:3:139"},"nodeType":"YulFunctionCall","src":"25457:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25451:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25485:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25500:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"25503:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25496:3:139"},"nodeType":"YulFunctionCall","src":"25496:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"25489:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25515:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25530:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"25533:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25526:3:139"},"nodeType":"YulFunctionCall","src":"25526:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"25519:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"25596:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25598:16:139"},"nodeType":"YulFunctionCall","src":"25598:18:139"},"nodeType":"YulExpressionStatement","src":"25598:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"25566:3:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25559:6:139"},"nodeType":"YulFunctionCall","src":"25559:11:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25552:6:139"},"nodeType":"YulFunctionCall","src":"25552:19:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"25576:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"25585:2:139"},{"name":"x_1","nodeType":"YulIdentifier","src":"25589:3:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25581:3:139"},"nodeType":"YulFunctionCall","src":"25581:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25573:2:139"},"nodeType":"YulFunctionCall","src":"25573:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25548:3:139"},"nodeType":"YulFunctionCall","src":"25548:47:139"},"nodeType":"YulIf","src":"25545:2:139"},{"nodeType":"YulAssignment","src":"25627:24:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"25642:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"25647:3:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"25638:3:139"},"nodeType":"YulFunctionCall","src":"25638:13:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"25627:7:139"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25416:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"25419:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"25425:7:139","type":""}],"src":"25385:272:139"},{"body":{"nodeType":"YulBlock","src":"25714:220:139","statements":[{"nodeType":"YulVariableDeclaration","src":"25724:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25742:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"25747:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25738:3:139"},"nodeType":"YulFunctionCall","src":"25738:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"25751:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25734:3:139"},"nodeType":"YulFunctionCall","src":"25734:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25728:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25762:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25777:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"25780:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25773:3:139"},"nodeType":"YulFunctionCall","src":"25773:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"25766:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25792:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25807:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"25810:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25803:3:139"},"nodeType":"YulFunctionCall","src":"25803:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"25796:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"25873:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25875:16:139"},"nodeType":"YulFunctionCall","src":"25875:18:139"},"nodeType":"YulExpressionStatement","src":"25875:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"25843:3:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25836:6:139"},"nodeType":"YulFunctionCall","src":"25836:11:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25829:6:139"},"nodeType":"YulFunctionCall","src":"25829:19:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"25853:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"25862:2:139"},{"name":"x_1","nodeType":"YulIdentifier","src":"25866:3:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25858:3:139"},"nodeType":"YulFunctionCall","src":"25858:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25850:2:139"},"nodeType":"YulFunctionCall","src":"25850:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25825:3:139"},"nodeType":"YulFunctionCall","src":"25825:47:139"},"nodeType":"YulIf","src":"25822:2:139"},{"nodeType":"YulAssignment","src":"25904:24:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"25919:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"25924:3:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"25915:3:139"},"nodeType":"YulFunctionCall","src":"25915:13:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"25904:7:139"}]}]},"name":"checked_mul_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25693:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"25696:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"25702:7:139","type":""}],"src":"25662:272:139"},{"body":{"nodeType":"YulBlock","src":"25991:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"26050:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26052:16:139"},"nodeType":"YulFunctionCall","src":"26052:18:139"},"nodeType":"YulExpressionStatement","src":"26052:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26022:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26015:6:139"},"nodeType":"YulFunctionCall","src":"26015:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26008:6:139"},"nodeType":"YulFunctionCall","src":"26008:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"26030:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26041:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"26037:3:139"},"nodeType":"YulFunctionCall","src":"26037:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"26045:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"26033:3:139"},"nodeType":"YulFunctionCall","src":"26033:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26027:2:139"},"nodeType":"YulFunctionCall","src":"26027:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26004:3:139"},"nodeType":"YulFunctionCall","src":"26004:45:139"},"nodeType":"YulIf","src":"26001:2:139"},{"nodeType":"YulAssignment","src":"26081:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26096:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"26099:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"26092:3:139"},"nodeType":"YulFunctionCall","src":"26092:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"26081:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25970:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"25973:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"25979:7:139","type":""}],"src":"25939:168:139"},{"body":{"nodeType":"YulBlock","src":"26161:182:139","statements":[{"nodeType":"YulVariableDeclaration","src":"26171:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26189:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"26194:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26185:3:139"},"nodeType":"YulFunctionCall","src":"26185:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"26198:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26181:3:139"},"nodeType":"YulFunctionCall","src":"26181:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"26175:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"26209:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26224:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"26227:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26220:3:139"},"nodeType":"YulFunctionCall","src":"26220:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"26213:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"26239:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"26254:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"26257:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26250:3:139"},"nodeType":"YulFunctionCall","src":"26250:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"26243:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"26285:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26287:16:139"},"nodeType":"YulFunctionCall","src":"26287:18:139"},"nodeType":"YulExpressionStatement","src":"26287:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"26275:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"26280:3:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26272:2:139"},"nodeType":"YulFunctionCall","src":"26272:12:139"},"nodeType":"YulIf","src":"26269:2:139"},{"nodeType":"YulAssignment","src":"26316:21:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"26328:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"26333:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26324:3:139"},"nodeType":"YulFunctionCall","src":"26324:13:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"26316:4:139"}]}]},"name":"checked_sub_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26143:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"26146:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"26152:4:139","type":""}],"src":"26112:231:139"},{"body":{"nodeType":"YulBlock","src":"26397:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"26419:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26421:16:139"},"nodeType":"YulFunctionCall","src":"26421:18:139"},"nodeType":"YulExpressionStatement","src":"26421:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26413:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"26416:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26410:2:139"},"nodeType":"YulFunctionCall","src":"26410:8:139"},"nodeType":"YulIf","src":"26407:2:139"},{"nodeType":"YulAssignment","src":"26450:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26462:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"26465:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26458:3:139"},"nodeType":"YulFunctionCall","src":"26458:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"26450:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26379:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"26382:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"26388:4:139","type":""}],"src":"26348:125:139"},{"body":{"nodeType":"YulBlock","src":"26531:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"26541:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"26550:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"26545:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"26610:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26635:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"26640:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26631:3:139"},"nodeType":"YulFunctionCall","src":"26631:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"26654:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"26659:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26650:3:139"},"nodeType":"YulFunctionCall","src":"26650:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26644:5:139"},"nodeType":"YulFunctionCall","src":"26644:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26624:6:139"},"nodeType":"YulFunctionCall","src":"26624:39:139"},"nodeType":"YulExpressionStatement","src":"26624:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26571:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"26574:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26568:2:139"},"nodeType":"YulFunctionCall","src":"26568:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"26582:19:139","statements":[{"nodeType":"YulAssignment","src":"26584:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26593:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"26596:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26589:3:139"},"nodeType":"YulFunctionCall","src":"26589:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"26584:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"26564:3:139","statements":[]},"src":"26560:113:139"},{"body":{"nodeType":"YulBlock","src":"26699:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26712:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"26717:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26708:3:139"},"nodeType":"YulFunctionCall","src":"26708:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"26726:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26701:6:139"},"nodeType":"YulFunctionCall","src":"26701:27:139"},"nodeType":"YulExpressionStatement","src":"26701:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26688:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"26691:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26685:2:139"},"nodeType":"YulFunctionCall","src":"26685:13:139"},"nodeType":"YulIf","src":"26682:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"26509:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"26514:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"26519:6:139","type":""}],"src":"26478:258:139"},{"body":{"nodeType":"YulBlock","src":"26788:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"26819:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26821:16:139"},"nodeType":"YulFunctionCall","src":"26821:18:139"},"nodeType":"YulExpressionStatement","src":"26821:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"26804:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26815:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"26811:3:139"},"nodeType":"YulFunctionCall","src":"26811:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"26801:2:139"},"nodeType":"YulFunctionCall","src":"26801:17:139"},"nodeType":"YulIf","src":"26798:2:139"},{"nodeType":"YulAssignment","src":"26850:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"26861:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"26868:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26857:3:139"},"nodeType":"YulFunctionCall","src":"26857:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"26850:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"26770:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"26780:3:139","type":""}],"src":"26741:135:139"},{"body":{"nodeType":"YulBlock","src":"26913:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26930:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26937:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26942:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26933:3:139"},"nodeType":"YulFunctionCall","src":"26933:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26923:6:139"},"nodeType":"YulFunctionCall","src":"26923:31:139"},"nodeType":"YulExpressionStatement","src":"26923:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26970:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26973:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26963:6:139"},"nodeType":"YulFunctionCall","src":"26963:15:139"},"nodeType":"YulExpressionStatement","src":"26963:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26994:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26997:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26987:6:139"},"nodeType":"YulFunctionCall","src":"26987:15:139"},"nodeType":"YulExpressionStatement","src":"26987:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"26881:127:139"},{"body":{"nodeType":"YulBlock","src":"27045:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27062:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27069:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27074:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27065:3:139"},"nodeType":"YulFunctionCall","src":"27065:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27055:6:139"},"nodeType":"YulFunctionCall","src":"27055:31:139"},"nodeType":"YulExpressionStatement","src":"27055:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27102:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27105:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27095:6:139"},"nodeType":"YulFunctionCall","src":"27095:15:139"},"nodeType":"YulExpressionStatement","src":"27095:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27126:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27129:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27119:6:139"},"nodeType":"YulFunctionCall","src":"27119:15:139"},"nodeType":"YulExpressionStatement","src":"27119:15:139"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"27013:127:139"},{"body":{"nodeType":"YulBlock","src":"27177:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27194:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27201:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27206:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27197:3:139"},"nodeType":"YulFunctionCall","src":"27197:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27187:6:139"},"nodeType":"YulFunctionCall","src":"27187:31:139"},"nodeType":"YulExpressionStatement","src":"27187:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27234:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27237:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27227:6:139"},"nodeType":"YulFunctionCall","src":"27227:15:139"},"nodeType":"YulExpressionStatement","src":"27227:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27258:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27261:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27251:6:139"},"nodeType":"YulFunctionCall","src":"27251:15:139"},"nodeType":"YulExpressionStatement","src":"27251:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"27145:127:139"},{"body":{"nodeType":"YulBlock","src":"27322:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"27386:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27395:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27398:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27388:6:139"},"nodeType":"YulFunctionCall","src":"27388:12:139"},"nodeType":"YulExpressionStatement","src":"27388:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27345:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27356:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27371:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27376:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27367:3:139"},"nodeType":"YulFunctionCall","src":"27367:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"27380:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27363:3:139"},"nodeType":"YulFunctionCall","src":"27363:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27352:3:139"},"nodeType":"YulFunctionCall","src":"27352:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27342:2:139"},"nodeType":"YulFunctionCall","src":"27342:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27335:6:139"},"nodeType":"YulFunctionCall","src":"27335:50:139"},"nodeType":"YulIf","src":"27332:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27311:5:139","type":""}],"src":"27277:131:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let _3 := shl(5, _1)\n        let dst := allocate_memory(add(_3, _2))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, _3), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_bool_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_int24_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, signextend(2, value))) { revert(0, 0) }\n    }\n    function abi_decode_uint128_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(128, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_uint16_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint24_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value4, value4) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(value4, value4) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(value4, value4) }\n        value3 := add(_2, 32)\n        value4 := length\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(value0, value0) }\n        if gt(add(add(_2, shl(5, length)), 32), dataEnd) { revert(value0, value0) }\n        value0 := add(_2, 32)\n        value1 := length\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        value0 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        value0 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_bool_fromMemory(headStart)\n    }\n    function abi_decode_tuple_t_int56t_uint160t_uint32_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        let value := mload(headStart)\n        if iszero(eq(value, signextend(6, value))) { revert(value2, value2) }\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        if iszero(eq(value_2, and(value_2, 0xffffffff))) { revert(value2, value2) }\n        value2 := value_2\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _3 := mload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let array := allocate_memory(add(and(add(_3, 0x1f), not(31)), 32))\n        mstore(array, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(value0, value0) }\n        copy_memory_to_memory(add(_2, 32), add(array, 32), _3)\n        value0 := array\n    }\n    function abi_decode_tuple_t_uint160t_int24t_uint16t_uint16t_uint16t_uint8t_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value2, value2) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_int24_fromMemory(add(headStart, 32))\n        value2 := abi_decode_uint16_fromMemory(add(headStart, 64))\n        value3 := abi_decode_uint16_fromMemory(add(headStart, 96))\n        value4 := abi_decode_uint16_fromMemory(add(headStart, 128))\n        let value_1 := mload(add(headStart, 160))\n        if iszero(eq(value_1, and(value_1, 0xff))) { revert(value5, value5) }\n        value5 := value_1\n        value6 := abi_decode_bool_fromMemory(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint96t_addresst_addresst_addresst_uint24t_int24t_int24t_uint128t_uint256t_uint256t_uint128t_uint128_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11\n    {\n        if slt(sub(dataEnd, headStart), 384) { revert(value6, value6) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(value6, value6) }\n        value0 := value\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n        value3 := abi_decode_address_fromMemory(add(headStart, 96))\n        value4 := abi_decode_uint24_fromMemory(add(headStart, 128))\n        value5 := abi_decode_int24_fromMemory(add(headStart, 160))\n        value6 := abi_decode_int24_fromMemory(add(headStart, 192))\n        value7 := abi_decode_uint128_fromMemory(add(headStart, 224))\n        value8 := mload(add(headStart, 256))\n        value9 := mload(add(headStart, 288))\n        value10 := abi_decode_uint128_fromMemory(add(headStart, 320))\n        value11 := abi_decode_uint128_fromMemory(add(headStart, 352))\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, end)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint24__to_t_address_t_address_t_uint24__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffff))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_int24_t_int24__to_t_address_t_int24_t_int24__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), signextend(2, value1))\n        mstore(add(headStart, 64), signextend(2, value2))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := tail\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, iszero(iszero(mload(srcPtr))))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let tail_2 := add(add(headStart, shl(5, length)), 64)\n        let srcPtr := add(value0, _1)\n        let i := tail\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\n            tail_2 := abi_encode_bytes(mload(srcPtr), tail_2)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        tail := tail_2\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_contract$_INonfungiblePositionManager_$35221__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IUniswapV3Factory_$13539__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IUniswapV3Pool_$13561__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_int24_t_int24__to_t_int24_t_int24__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, signextend(2, value0))\n        mstore(add(headStart, 32), signextend(2, value1))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"already in emergency mode\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_10115a262aeb94a0eafe6ad1f63c465ddde9d01ed6758200c550b37bafce9c4e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 58)\n        mstore(add(headStart, 64), \"TransferHelperExtended::safeTran\")\n        mstore(add(headStart, 96), \"sfer: call to non-contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"ERC721Enumerable: owner index ou\")\n        mstore(add(headStart, 96), \"t of bounds\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4aa6be96f3947efce39d4719c93b6331965baca69492a001463b59edc3edf4cd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"UniswapV3Staker::unstakeToken: s\")\n        mstore(add(headStart, 96), \"take does not exist\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_6fc639dce1cc957a25e6c3f243500805fc10a686148519f00de9b728122a78dd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), \"UniswapV3Staker::stakeToken: can\")\n        mstore(add(headStart, 96), \"not stake token with 0 liquidity\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_800b3f694a860e5f8f00047581d04345c98a69f77bdcf8baa897a647ad75008a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"UniswapV3Staker::createIncentive\")\n        mstore(add(headStart, 96), \": only maha allowed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8454be56f07645e4e235c6e498360f1e8ecc9e3d655ed53b8bcdaadbd61ac225__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"UniswapV3Staker::stakeToken: tok\")\n        mstore(add(headStart, 96), \"en pool is not the right pool\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8e992d6a09e3feb7936717fa482f3a7086f18407e19b697f3153d17fd25870ca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 2)\n        mstore(add(headStart, 64), \"ST\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"not timelock\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a1c4b1d67db284650e7cfb49cb11ce76848206ad466478425bd3418f8bbb9a86__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 3)\n        mstore(add(headStart, 64), \"STF\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a8202f3ed8fef68502cdb85899324e7bff182d4c4d923be1941b47f8c4ca81db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"UniswapV3Staker::withdrawToken: \")\n        mstore(add(headStart, 96), \"only owner can withdraw token\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cca43b7ccabbdb5a9273b37718e136798fbc61dda30c78464909a9a690b01f8e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 62)\n        mstore(add(headStart, 64), \"TransferHelperExtended::safeTran\")\n        mstore(add(headStart, 96), \"sferFrom: call to non-contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cea066c4c041d6e54db5f455321d55e1bd2de8a904aa2471e645306393091fdd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"UniswapV3Staker::createIncentive\")\n        mstore(add(headStart, 96), \": reward must be positive\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"ERC721Enumerable: global index o\")\n        mstore(add(headStart, 96), \"ut of bounds\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"not in emergency mode\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f9bf96e75e94ea4a0908da69299e92f34467aea16295aa11950ca12d63a88d91__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"UniswapV3Staker::onERC721Receive\")\n        mstore(add(headStart, 96), \"d: not a univ3 nft\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fc7facb42907227687c7b20d22c86e07bb5cd60b8a5e7426f7afb0e7f0e6bc08__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"in emergency mode\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint128__to_t_uint128__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(128, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint160__to_t_uint160__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint160_t_uint128__to_t_uint160_t_uint128__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(128, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint160__to_t_uint256_t_uint160__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(addr, addr) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(addr, addr) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function checked_add_t_uint160(x, y) -> sum\n    {\n        let _1 := sub(shl(160, 1), 1)\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint128(x, y) -> r\n    {\n        let _1 := sub(shl(128, 1), 1)\n        let y_1 := and(y, _1)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, _1), y_1)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint128(x, y) -> product\n    {\n        let _1 := sub(shl(128, 1), 1)\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n        product := mul(x_1, y_1)\n    }\n    function checked_mul_t_uint160(x, y) -> product\n    {\n        let _1 := sub(shl(160, 1), 1)\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n        product := mul(x_1, y_1)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint160(x, y) -> diff\n    {\n        let _1 := sub(shl(160, 1), 1)\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if lt(x_1, y_1) { panic_error_0x11() }\n        diff := sub(x_1, y_1)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"31104":[{"length":32,"start":1098},{"length":32,"start":5750},{"length":32,"start":6179},{"length":32,"start":6653},{"length":32,"start":6783},{"length":32,"start":7183},{"length":32,"start":7622}],"31107":[{"length":32,"start":699},{"length":32,"start":2657},{"length":32,"start":6366},{"length":32,"start":8376}]},"linkReferences":{},"object":"6080604052600436106101ae5760003560e01c806379aa9db5116100ed578063b44a272211610090578063b44a27221461058f578063b66503cf146105af578063bf7989b9146105cf578063c45a0155146105e5578063c5b1c7d014610605578063d33219b41461061a578063d5a44f861461063f578063e70eb39214610686578063ea9f5517146106a657600080fd5b806379aa9db5146104225780637b103999146104385780638a16a30b1461046c57806399bcc0521461048c5780639be54945146104ae578063a65b781e146104d8578063ac9650d8146104f8578063b02c43d01461051857600080fd5b80632f745c59116101555780632f745c59146103165780633197cbb614610336578063403017ca1461034c5780634f6ccce71461038757806350baa622146103a757806369db8b27146103c957806370a08231146103df57806378e979251461040c57600080fd5b80630520537f146101b35780630700037d146101e65780630b9cc5fd146102135780630d5df7ba14610240578063150b7a021461027057806316f0115b146102a957806318160ddd146102ea5780631be05289146102ff575b600080fd5b3480156101bf57600080fd5b506101d36101ce366004612b5e565b6106c6565b6040519081526020015b60405180910390f35b3480156101f257600080fd5b506101d36102013660046129b9565b600c6020526000908152604090205481565b34801561021f57600080fd5b5061023361022e366004612b24565b61072c565b6040516101dd9190612efb565b34801561024c57600080fd5b50600154600254604080519283526001600160a01b039091166020830152016101dd565b34801561027c57600080fd5b5061029061028b3660046129f1565b6108d0565b6040516001600160e01b031990911681526020016101dd565b3480156102b557600080fd5b506102dd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101dd9190612ec3565b3480156102f657600080fd5b506010546101d3565b34801561030b57600080fd5b506101d362093a8081565b34801561032257600080fd5b506101d3610331366004612a8a565b610f8c565b34801561034257600080fd5b506101d360045481565b34801561035857600080fd5b5061036c610367366004612d6d565b611030565b604080519384526020840192909252908201526060016101dd565b34801561039357600080fd5b506101d36103a2366004612d3d565b6110bb565b3480156103b357600080fd5b506103c76103c2366004612d3d565b61115c565b005b3480156103d557600080fd5b506101d360055481565b3480156103eb57600080fd5b506101d36103fa3660046129b9565b600d6020526000908152604090205481565b34801561041857600080fd5b506101d360035481565b34801561042e57600080fd5b506101d3600b5481565b34801561044457600080fd5b506102dd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561047857600080fd5b506103c7610487366004612d3d565b6112f1565b34801561049857600080fd5b506101d36104a73660046129b9565b5060015490565b3480156104ba57600080fd5b506006546104c89060ff1681565b60405190151581526020016101dd565b3480156104e457600080fd5b506002546102dd906001600160a01b031681565b61050b610506366004612ab5565b61149f565b6040516101dd9190612f41565b34801561052457600080fd5b50610566610533366004612d3d565b6009602052600090815260409020546001600160a01b03811690600160a01b8104600290810b91600160b81b9004900b83565b604080516001600160a01b039094168452600292830b6020850152910b908201526060016101dd565b34801561059b57600080fd5b506008546102dd906001600160a01b031681565b3480156105bb57600080fd5b506103c76105ca366004612a8a565b611619565b3480156105db57600080fd5b506101d360015481565b3480156105f157600080fd5b506007546102dd906001600160a01b031681565b34801561061157600080fd5b506103c7611935565b34801561062657600080fd5b506006546102dd9061010090046001600160a01b031681565b34801561064b57600080fd5b5061065f61065a366004612d3d565b611b90565b604080516001600160a01b0390931683526001600160801b039091166020830152016101dd565b34801561069257600080fd5b506101d36106a1366004612d6d565b611bdc565b3480156106b257600080fd5b506101d36106c1366004612d6d565b611bef565b60008060005b8451811015610724576107068582815181106106f857634e487b7160e01b600052603260045260246000fd5b602002602001015185611d6c565b6107109083613136565b91508061071c81613267565b9150506106cc565b509392505050565b6060600082516001600160401b0381111561075757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610780578160200160208202803683370190505b50905060005b83518110156108c95760008482815181106107b157634e487b7160e01b600052603260045260246000fd5b6020908102919091010151600754600854919250600091829182916107e3916001600160a01b03908116911686611ea6565b509250925092506000836001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561082557600080fd5b505afa158015610839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085d9190612caf565b50505050509150508060020b8360020b12801561087f57508160020b8160020b125b87878151811061089f57634e487b7160e01b600052603260045260246000fd5b602002602001019015159081151581525050505050505080806108c190613267565b915050610786565b5092915050565b60065460009060ff16156108ff5760405162461bcd60e51b81526004016108f690613065565b60405180910390fd5b6008546001600160a01b031633146109745760405162461bcd60e51b815260206004820152603260248201527f556e697377617056335374616b65723a3a6f6e45524337323152656365697665604482015271190e881b9bdd0818481d5b9a5d8cc81b999d60721b60648201526084016108f6565b60075460085460009182918291829161099a916001600160a01b0390811691168a611ea6565b935093509350935060405180606001604052808a6001600160a01b031681526020018460020b81526020018360020b815250600960008a815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548162ffffff021916908360020b62ffffff16021790555060408201518160000160176101000a81548162ffffff021916908360020b62ffffff1602179055509050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614610b065760405162461bcd60e51b815260206004820152603d60248201527f556e697377617056335374616b65723a3a7374616b65546f6b656e3a20746f6b60448201527f656e20706f6f6c206973206e6f742074686520726967687420706f6f6c00000060648201526084016108f6565b6000816001600160801b031611610b87576040805162461bcd60e51b81526020600482015260248101919091527f556e697377617056335374616b65723a3a7374616b65546f6b656e3a2063616e60448201527f6e6f74207374616b6520746f6b656e20776974682030206c697175696469747960648201526084016108f6565b806001600160801b0316600b6000828254610ba29190613136565b9091555060009050610bbd6001600160801b0383168b611bef565b6040516351c403f960e11b8152600286810b600483015285900b60248201529091506000906001600160a01b0387169063a38807f29060440160606040518083038186803b158015610c0e57600080fd5b505afa158015610c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c469190612bc7565b509150506001600160601b036001600160801b03831610610d75576040518060800160405280826001600160a01b031681526020016001600160601b0380168152602001836001600160801b03168152602001846001600160801b0316815250600a60008c815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160601b0302191690836001600160601b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b0316021790555060608201518160010160106101000a8154816001600160801b0302191690836001600160801b03160217905550905050610e86565b6040518060800160405280826001600160a01b03168152602001836001600160601b0316815260200160006001600160801b03168152602001846001600160801b0316815250600a60008c815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a8154816001600160601b0302191690836001600160601b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b0316021790555060608201518160010160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505b610ece8a601080546000838152601160205260408120829055600182018355919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720155565b6001600160a01b038b166000908152600d6020908152604080832054600e835281842081855283528184208e90558d8452600f909252909120556001600160a01b038b166000908152600d60205260408120805460019290610f31908490613136565b90915550506040516001600160801b03841681528a907f4a1aff2ad1f7400721a859525efe44bd9dea253e1e02ba4161f2c77ed16fc0a39060200160405180910390a250630a85bd0160e11b9b9a5050505050505050505050565b6001600160a01b0382166000908152600d602052604081205482106110075760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016108f6565b506001600160a01b03919091166000908152600e60209081526040808320938352929052205490565b600754600854600091829182918291611056916001600160a01b03908116911688611ea6565b9350505050606481601461106a9190613188565b611074919061314e565b6001600160801b03169350611092816001600160801b031686611bef565b9250826110a785670de0b6b3a76400006131dd565b6110b19190613174565b9150509250925092565b60006110c660105490565b82106111295760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016108f6565b6010828154811061114a57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b60065460ff161561117f5760405162461bcd60e51b81526004016108f690613065565b61118881611ffa565b6000818152600a6020526040812060010154600b8054600160801b9092046001600160801b03169290916111bd908490613224565b90915550506000818152600960205260409020546001600160a01b031633146111f85760405162461bcd60e51b81526004016108f690613008565b600081815260096020908152604080832080546001600160d01b0319169055600a90915281208181556001015561122f33826121f9565b61123881612295565b336000908152600d60205260408120805460019290611258908490613224565b909155505060405181907f85837b804496fa8a31cf9284d2c34c3276ca3d5369cfe705026f7bad0365c0f290600090a2600854604051632142170760e11b81526001600160a01b03909116906342842e0e906112bc90309033908690600401612ed7565b600060405180830381600087803b1580156112d657600080fd5b505af11580156112ea573d6000803e3d6000fd5b5050505050565b60065460ff1661133b5760405162461bcd60e51b81526020600482015260156024820152746e6f7420696e20656d657267656e6379206d6f646560581b60448201526064016108f6565b6000818152600960205260409020546001600160a01b031633146113715760405162461bcd60e51b81526004016108f690613008565b600061137c82611b90565b9150506001600160801b0381166113a55760405162461bcd60e51b81526004016108f690612fb5565b600082815260096020908152604080832080546001600160d01b0319169055600a9091528120818155600101556113dc33836121f9565b6113e582612295565b336000908152600d60205260408120805460019290611405908490613224565b909155505060405182907f85837b804496fa8a31cf9284d2c34c3276ca3d5369cfe705026f7bad0365c0f290600090a2600854604051632142170760e11b81526001600160a01b03909116906342842e0e9061146990309033908790600401612ed7565b600060405180830381600087803b15801561148357600080fd5b505af1158015611497573d6000803e3d6000fd5b505050505050565b6060816001600160401b038111156114c757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114fa57816020015b60608152602001906001900390816114e55790505b50905060005b828110156108c9576000803086868581811061152c57634e487b7160e01b600052603260045260246000fd5b905060200281019061153e9190613090565b60405161154c929190612e97565b600060405180830381855af49150503d8060008114611587576040519150601f19603f3d011682016040523d82523d6000602084013e61158c565b606091505b5091509150816115d8576044815110156115a557600080fd5b600481019050808060200190518101906115bf9190612c20565b60405162461bcd60e51b81526004016108f69190612fa2565b808484815181106115f957634e487b7160e01b600052603260045260246000fd5b60200260200101819052505050808061161190613267565b915050611500565b6002600054141561166c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108f6565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b1580156116cd57600080fd5b505afa1580156116e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170591906129d5565b6001600160a01b0316826001600160a01b0316146117815760405162461bcd60e51b815260206004820152603360248201527f556e697377617056335374616b65723a3a637265617465496e63656e746976656044820152720e881bdb9b1e481b585a1848185b1b1bddd959606a1b60648201526084016108f6565b600081116117f35760405162461bcd60e51b815260206004820152603960248201527f556e697377617056335374616b65723a3a637265617465496e63656e746976656044820152783a20726577617264206d75737420626520706f73697469766560381b60648201526084016108f6565b80600160008282546118059190613136565b90915550611818905062093a8042613136565b6004819055506118ba7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b15801561187a57600080fd5b505afa15801561188e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b291906129d5565b33308461236e565b60035460045460408051928352602083019190915281018290526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016907fd7a440eccc1b2ae97683e4d1cd3e4e1f17ec4eb738ff723eff7a664a33c417989060600160405180910390a250506001600055565b60065461010090046001600160a01b031633146119835760405162461bcd60e51b815260206004820152600c60248201526b6e6f742074696d656c6f636b60a01b60448201526064016108f6565b60065460ff16156119d25760405162461bcd60e51b8152602060048201526019602482015278616c726561647920696e20656d657267656e6379206d6f646560381b60448201526064016108f6565b6006805460ff1916600117905560408051631ef0061b60e11b81529051611b8e916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633de00c3691600480820192602092909190829003018186803b158015611a4457600080fd5b505afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c91906129d5565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015611ad657600080fd5b505afa158015611aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0e91906129d5565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611b399190612ec3565b60206040518083038186803b158015611b5157600080fd5b505afa158015611b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b899190612d55565b6123fd565b565b6000818152600a6020526040902080546001600160a01b038116916001600160601b03600160a01b909204821691821415611bd65760018101546001600160801b031691505b50915091565b6000611be88383611d6c565b9392505050565b6000806064611bff8560146131dd565b611c099190613174565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6657600080fd5b505afa158015611c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9e91906129d5565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401611cc99190612ec3565b60206040518083038186803b158015611ce157600080fd5b505afa158015611cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d199190612d55565b9050600060646005548388611d2e91906131dd565b611d399060506131dd565b611d439190613174565b611d4d9190613174565b9050611d62611d5c8285613136565b8761248a565b9695505050505050565b60065460009060ff1615611d925760405162461bcd60e51b81526004016108f690613065565b611d9b83611ffa565b336000908152600c60205260408120805491829190611dba8380613224565b92505081905550611e5c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1d57600080fd5b505afa158015611e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5591906129d5565b84836123fd565b826001600160a01b03167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f724182604051611e9791815260200190565b60405180910390a29392505050565b6000806000806000806000886001600160a01b03166399fbab88896040518263ffffffff1660e01b8152600401611edf91815260200190565b6101806040518083038186803b158015611ef857600080fd5b505afa158015611f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f309190612d91565b5050604051630b4c774160e11b8152949f50929d50909b509499509297509095506001600160a01b038f169450631698ee829350611f9c9250879150869086906004016001600160a01b03938416815291909216602082015262ffffff91909116604082015260600190565b60206040518083038186803b158015611fb457600080fd5b505afa158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fec91906129d5565b965050505093509350935093565b6000818152600960209081526040808320815160608101835290546001600160a01b0381168252600160a01b8104600290810b810b810b94830194909452600160b81b9004830b830b90920b90820152908061205584611b90565b91509150806001600160801b0316600014156120835760405162461bcd60e51b81526004016108f690612fb5565b602083015160408085015190516351c403f960e11b8152600292830b6004820152910b60248201526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a38807f29060440160606040518083038186803b1580156120fa57600080fd5b505afa15801561210e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121329190612bc7565b50915050600080612164600154600260009054906101000a90046001600160a01b0316600354600454888a89426124a0565b6002805492945090925082916000906121879084906001600160a01b031661310b565b92506101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600160008282546121bd9190613224565b909155505085516001600160a01b03166000908152600c6020526040812080548492906121eb908490613136565b909155505050505050505050565b6001600160a01b0382166000908152600d6020908152604080832054848452600f90925290912054808214612262576001600160a01b0384166000908152600e602090815260408083208584528252808320548484528184208190558352600f90915290208190555b506000918252600f602090815260408084208490556001600160a01b039094168352600e81528383209183525290812055565b6010546000906122a790600190613224565b600083815260116020526040812054601080549394509092849081106122dd57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050806010838154811061230c57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260119091526040808220849055858252812055601080548061235257634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6001600160a01b0384163b6123eb5760405162461bcd60e51b815260206004820152603e60248201527f5472616e7366657248656c706572457874656e6465643a3a736166655472616e60448201527f7366657246726f6d3a2063616c6c20746f206e6f6e2d636f6e7472616374000060648201526084016108f6565b6123f784848484612535565b50505050565b6001600160a01b0383163b61247a5760405162461bcd60e51b815260206004820152603a60248201527f5472616e7366657248656c706572457874656e6465643a3a736166655472616e60448201527f736665723a2063616c6c20746f206e6f6e2d636f6e747261637400000000000060648201526084016108f6565b61248583838361263b565b505050565b60008183106124995781611be8565b5090919050565b600080878310156124c157634e487b7160e01b600052600160045260246000fd5b6001600160801b0386166124d586866131fc565b6124df91906131b7565b90506000896001600160a01b031660808a6124fa8b88612734565b6125049190613224565b61250f92911b613224565b90506125258b836001600160a01b031683612744565b9250509850989650505050505050565b600080856001600160a01b03166323b872dd60e01b86868660405160240161255f93929190612ed7565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161259d9190612ea7565b6000604051808303816000865af19150503d80600081146125da576040519150601f19603f3d011682016040523d82523d6000602084013e6125df565b606091505b50915091508180156126095750805115806126095750808060200190518101906126099190612bad565b6114975760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b60448201526064016108f6565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916126979190612ea7565b6000604051808303816000865af19150503d80600081146126d4576040519150601f19603f3d011682016040523d82523d6000602084013e6126d9565b606091505b50915091508180156127035750805115806127035750808060200190518101906127039190612bad565b6112ea5760405162461bcd60e51b815260206004820152600260248201526114d560f21b60448201526064016108f6565b6000818310156124995781611be8565b60008080600019858709858702925082811083820303915050806000141561277e576000841161277357600080fd5b508290049050611be8565b80841161278a57600080fd5b6000848688098084039381119092039190506000856127ab81600019613224565b6127b6906001613136565b169586900495938490049360008190030460010190506127d681846131dd565b9093179260006127e78760036131dd565b60021890506127f681886131dd565b612801906002613224565b61280b90826131dd565b905061281781886131dd565b612822906002613224565b61282c90826131dd565b905061283881886131dd565b612843906002613224565b61284d90826131dd565b905061285981886131dd565b612864906002613224565b61286e90826131dd565b905061287a81886131dd565b612885906002613224565b61288f90826131dd565b905061289b81886131dd565b6128a6906002613224565b6128b090826131dd565b90506128bc81866131dd565b9998505050505050505050565b80516128d4816132c4565b919050565b600082601f8301126128e9578081fd5b813560206001600160401b03821115612904576129046132ae565b8160051b6129138282016130db565b83815282810190868401838801850189101561292d578687fd5b8693505b8584101561294f578035835260019390930192918401918401612931565b50979650505050505050565b805180151581146128d457600080fd5b8051600281900b81146128d457600080fd5b80516001600160801b03811681146128d457600080fd5b805161ffff811681146128d457600080fd5b805162ffffff811681146128d457600080fd5b6000602082840312156129ca578081fd5b8135611be8816132c4565b6000602082840312156129e6578081fd5b8151611be8816132c4565b600080600080600060808688031215612a08578081fd5b8535612a13816132c4565b94506020860135612a23816132c4565b93506040860135925060608601356001600160401b0380821115612a45578283fd5b818801915088601f830112612a58578283fd5b813581811115612a66578384fd5b896020828501011115612a77578384fd5b9699959850939650602001949392505050565b60008060408385031215612a9c578182fd5b8235612aa7816132c4565b946020939093013593505050565b60008060208385031215612ac7578182fd5b82356001600160401b0380821115612add578384fd5b818501915085601f830112612af0578384fd5b813581811115612afe578485fd5b8660208260051b8501011115612b12578485fd5b60209290920196919550909350505050565b600060208284031215612b35578081fd5b81356001600160401b03811115612b4a578182fd5b612b56848285016128d9565b949350505050565b60008060408385031215612b70578182fd5b82356001600160401b03811115612b85578283fd5b612b91858286016128d9565b9250506020830135612ba2816132c4565b809150509250929050565b600060208284031215612bbe578081fd5b611be88261295b565b600080600060608486031215612bdb578081fd5b83518060060b8114612beb578182fd5b6020850151909350612bfc816132c4565b604085015190925063ffffffff81168114612c15578182fd5b809150509250925092565b600060208284031215612c31578081fd5b81516001600160401b0380821115612c47578283fd5b818401915084601f830112612c5a578283fd5b815181811115612c6c57612c6c6132ae565b612c7f601f8201601f19166020016130db565b9150808252856020828501011115612c95578384fd5b612ca681602084016020860161323b565b50949350505050565b600080600080600080600060e0888a031215612cc9578485fd5b8751612cd4816132c4565b9650612ce26020890161296b565b9550612cf060408901612994565b9450612cfe60608901612994565b9350612d0c60808901612994565b925060a088015160ff81168114612d21578283fd5b9150612d2f60c0890161295b565b905092959891949750929550565b600060208284031215612d4e578081fd5b5035919050565b600060208284031215612d66578081fd5b5051919050565b60008060408385031215612d7f578182fd5b823591506020830135612ba2816132c4565b6000806000806000806000806000806000806101808d8f031215612db3578586fd5b8c516001600160601b0381168114612dc9578687fd5b9b50612dd760208e016128c9565b9a50612de560408e016128c9565b9950612df360608e016128c9565b9850612e0160808e016129a6565b9750612e0f60a08e0161296b565b9650612e1d60c08e0161296b565b9550612e2b60e08e0161297d565b94506101008d015193506101208d01519250612e4a6101408e0161297d565b9150612e596101608e0161297d565b90509295989b509295989b509295989b565b60008151808452612e8381602086016020860161323b565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b60008251612eb981846020870161323b565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b81811015612f35578351151583529284019291840191600101612f17565b50909695505050505050565b6000602080830181845280855180835260408601915060408160051b8701019250838701855b82811015612f9557603f19888603018452612f83858351612e6b565b94509285019290850190600101612f67565b5092979650505050505050565b602081526000611be86020830184612e6b565b60208082526033908201527f556e697377617056335374616b65723a3a756e7374616b65546f6b656e3a20736040820152721d185ad948191bd95cc81b9bdd08195e1a5cdd606a1b606082015260800190565b6020808252603d908201527f556e697377617056335374616b65723a3a7769746864726177546f6b656e3a2060408201527f6f6e6c79206f776e65722063616e20776974686472617720746f6b656e000000606082015260800190565b602080825260119082015270696e20656d657267656e6379206d6f646560781b604082015260600190565b6000808335601e198436030181126130a6578283fd5b8301803591506001600160401b038211156130bf578283fd5b6020019150368190038213156130d457600080fd5b9250929050565b604051601f8201601f191681016001600160401b0381118282101715613103576131036132ae565b604052919050565b60006001600160a01b0382811684821680830382111561312d5761312d613282565b01949350505050565b6000821982111561314957613149613282565b500190565b60006001600160801b038381168061316857613168613298565b92169190910492915050565b60008261318357613183613298565b500490565b60006001600160801b03828116848216811515828404821116156131ae576131ae613282565b02949350505050565b60006001600160a01b03828116848216811515828404821116156131ae576131ae613282565b60008160001904831182151516156131f7576131f7613282565b500290565b60006001600160a01b038381169083168181101561321c5761321c613282565b039392505050565b60008282101561323657613236613282565b500390565b60005b8381101561325657818101518382015260200161323e565b838111156123f75750506000910152565b600060001982141561327b5761327b613282565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146132d957600080fd5b5056fea26469706673582212201db284e1571e45ff6685a65b48e87ff291cf9fb2bdc28da21b4cc35c6d7ddb7264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1AE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79AA9DB5 GT PUSH2 0xED JUMPI DUP1 PUSH4 0xB44A2722 GT PUSH2 0x90 JUMPI DUP1 PUSH4 0xB44A2722 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0xBF7989B9 EQ PUSH2 0x5CF JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x5E5 JUMPI DUP1 PUSH4 0xC5B1C7D0 EQ PUSH2 0x605 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD5A44F86 EQ PUSH2 0x63F JUMPI DUP1 PUSH4 0xE70EB392 EQ PUSH2 0x686 JUMPI DUP1 PUSH4 0xEA9F5517 EQ PUSH2 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79AA9DB5 EQ PUSH2 0x422 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x8A16A30B EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x9BE54945 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xA65B781E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xB02C43D0 EQ PUSH2 0x518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F745C59 GT PUSH2 0x155 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0x3197CBB6 EQ PUSH2 0x336 JUMPI DUP1 PUSH4 0x403017CA EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x3DF JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0x40C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x520537F EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x700037D EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xB9CC5FD EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xD5DF7BA EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x16F0115B EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x1BE05289 EQ PUSH2 0x2FF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B9 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x22E CALLDATASIZE PUSH1 0x4 PUSH2 0x2B24 JUMP JUMPDEST PUSH2 0x72C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x2EFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x29F1 JUMP JUMPDEST PUSH2 0x8D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DD PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x2EC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x10 SLOAD PUSH2 0x1D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH3 0x93A80 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x331 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8A JUMP JUMPDEST PUSH2 0xF8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36C PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D6D JUMP JUMPDEST PUSH2 0x1030 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x3A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x10BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x115C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x3FA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B9 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DD PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x487 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x12F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x498 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x4A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B9 JUMP JUMPDEST POP PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0x4C8 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x2DD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x50B PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB5 JUMP JUMPDEST PUSH2 0x149F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x2F41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x566 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL DUP2 DIV PUSH1 0x2 SWAP1 DUP2 SIGNEXTEND SWAP2 PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV SWAP1 SIGNEXTEND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x2 SWAP3 DUP4 SIGNEXTEND PUSH1 0x20 DUP6 ADD MSTORE SWAP2 SIGNEXTEND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH2 0x2DD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x5CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8A JUMP JUMPDEST PUSH2 0x1619 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x2DD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH2 0x1935 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0x2DD SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65F PUSH2 0x65A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x1B90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x6A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D6D JUMP JUMPDEST PUSH2 0x1BDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x6C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D6D JUMP JUMPDEST PUSH2 0x1BEF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x724 JUMPI PUSH2 0x706 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x6F8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x1D6C JUMP JUMPDEST PUSH2 0x710 SWAP1 DUP4 PUSH2 0x3136 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x71C DUP2 PUSH2 0x3267 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6CC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x757 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x780 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x7B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x7E3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP7 PUSH2 0x1EA6 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3850C7BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x85D SWAP2 SWAP1 PUSH2 0x2CAF JUMP JUMPDEST POP POP POP POP POP SWAP2 POP POP DUP1 PUSH1 0x2 SIGNEXTEND DUP4 PUSH1 0x2 SIGNEXTEND SLT DUP1 ISZERO PUSH2 0x87F JUMPI POP DUP2 PUSH1 0x2 SIGNEXTEND DUP2 PUSH1 0x2 SIGNEXTEND SLT JUMPDEST DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x89F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x8C1 SWAP1 PUSH2 0x3267 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x786 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x8FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x974 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A6F6E45524337323152656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x190E881B9BDD0818481D5B9A5D8CC81B999D PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x99A SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP11 PUSH2 0x1EA6 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x2 SIGNEXTEND DUP2 MSTORE POP PUSH1 0x9 PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH3 0xFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 SIGNEXTEND PUSH3 0xFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x17 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH3 0xFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 SIGNEXTEND PUSH3 0xFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A7374616B65546F6B656E3A20746F6B PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x656E20706F6F6C206973206E6F742074686520726967687420706F6F6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND GT PUSH2 0xB87 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x556E697377617056335374616B65723A3A7374616B65546F6B656E3A2063616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6F74207374616B6520746F6B656E20776974682030206C6971756964697479 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0xB PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xBA2 SWAP2 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP PUSH2 0xBBD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND DUP12 PUSH2 0x1BEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x51C403F9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x2 DUP7 DUP2 SIGNEXTEND PUSH1 0x4 DUP4 ADD MSTORE DUP6 SWAP1 SIGNEXTEND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH4 0xA38807F2 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC46 SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST POP SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND LT PUSH2 0xD75 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE POP PUSH1 0xA PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 MSTORE POP PUSH1 0xA PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP JUMPDEST PUSH2 0xECE DUP11 PUSH1 0x10 DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP2 DUP6 MSTORE DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP15 SWAP1 SSTORE DUP14 DUP5 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF31 SWAP1 DUP5 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP5 AND DUP2 MSTORE DUP11 SWAP1 PUSH32 0x4A1AFF2AD1F7400721A859525EFE44BD9DEA253E1E02BA4161F2C77ED16FC0A3 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 LT PUSH2 0x1007 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x74206F6620626F756E6473 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x1056 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP9 PUSH2 0x1EA6 JUMP JUMPDEST SWAP4 POP POP POP POP PUSH1 0x64 DUP2 PUSH1 0x14 PUSH2 0x106A SWAP2 SWAP1 PUSH2 0x3188 JUMP JUMPDEST PUSH2 0x1074 SWAP2 SWAP1 PUSH2 0x314E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP4 POP PUSH2 0x1092 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP7 PUSH2 0x1BEF JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x10A7 DUP6 PUSH8 0xDE0B6B3A7640000 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x10B1 SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10C6 PUSH1 0x10 SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0x1129 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7574206F6620626F756E6473 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x10 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x114A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x117F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x1188 DUP2 PUSH2 0x1FFA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP3 SWAP1 SWAP2 PUSH2 0x11BD SWAP1 DUP5 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3008 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0xA SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 ADD SSTORE PUSH2 0x122F CALLER DUP3 PUSH2 0x21F9 JUMP JUMPDEST PUSH2 0x1238 DUP2 PUSH2 0x2295 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1258 SWAP1 DUP5 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x85837B804496FA8A31CF9284D2C34C3276CA3D5369CFE705026F7BAD0365C0F2 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0x12BC SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2ED7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xFF AND PUSH2 0x133B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x6E6F7420696E20656D657267656E6379206D6F6465 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1371 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3008 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x137C DUP3 PUSH2 0x1B90 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x13A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x2FB5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0xA SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 ADD SSTORE PUSH2 0x13DC CALLER DUP4 PUSH2 0x21F9 JUMP JUMPDEST PUSH2 0x13E5 DUP3 PUSH2 0x2295 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1405 SWAP1 DUP5 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0x85837B804496FA8A31CF9284D2C34C3276CA3D5369CFE705026F7BAD0365C0F2 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0x1469 SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2ED7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1497 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14FA JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x14E5 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 ADDRESS DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x152C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x153E SWAP2 SWAP1 PUSH2 0x3090 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154C SWAP3 SWAP2 SWAP1 PUSH2 0x2E97 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1587 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x158C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x15D8 JUMPI PUSH1 0x44 DUP2 MLOAD LT ISZERO PUSH2 0x15A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x15BF SWAP2 SWAP1 PUSH2 0x2C20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x15F9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP POP POP DUP1 DUP1 PUSH2 0x1611 SWAP1 PUSH2 0x3267 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1500 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x166C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1705 SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1781 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A637265617465496E63656E74697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0xE881BDB9B1E481B585A1848185B1B1BDDD959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A637265617465496E63656E74697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH25 0x3A20726577617264206D75737420626520706F736974697665 PUSH1 0x38 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1805 SWAP2 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1818 SWAP1 POP PUSH3 0x93A80 TIMESTAMP PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x18BA PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x187A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x188E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18B2 SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST CALLER ADDRESS DUP5 PUSH2 0x236E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH32 0xD7A440ECCC1B2AE97683E4D1CD3E4E1F17EC4EB738FF723EFF7A664A33C41798 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1983 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x19D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x616C726561647920696E20656D657267656E6379206D6F6465 PUSH1 0x38 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH2 0x1B8E SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x3DE00C36 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A58 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A7C SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B0E SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B39 SWAP2 SWAP1 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B89 SWAP2 SWAP1 PUSH2 0x2D55 JUMP JUMPDEST PUSH2 0x23FD JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV DUP3 AND SWAP2 DUP3 EQ ISZERO PUSH2 0x1BD6 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BE8 DUP4 DUP4 PUSH2 0x1D6C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x64 PUSH2 0x1BFF DUP6 PUSH1 0x14 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1C09 SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C9E SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CC9 SWAP2 SWAP1 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D19 SWAP2 SWAP1 PUSH2 0x2D55 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x5 SLOAD DUP4 DUP9 PUSH2 0x1D2E SWAP2 SWAP1 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1D39 SWAP1 PUSH1 0x50 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1D43 SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST PUSH2 0x1D4D SWAP2 SWAP1 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D62 PUSH2 0x1D5C DUP3 DUP6 PUSH2 0x3136 JUMP JUMPDEST DUP8 PUSH2 0x248A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x1D9B DUP4 PUSH2 0x1FFA JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 DUP3 SWAP2 SWAP1 PUSH2 0x1DBA DUP4 DUP1 PUSH2 0x3224 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1E5C PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E55 SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST DUP5 DUP4 PUSH2 0x23FD JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x106F923F993C2149D49B4255FF723ACAFA1F2D94393F561D3EDA32AE348F7241 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1E97 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x99FBAB88 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EDF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F30 SWAP2 SWAP1 PUSH2 0x2D91 JUMP JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xB4C7741 PUSH1 0xE1 SHL DUP2 MSTORE SWAP5 SWAP16 POP SWAP3 SWAP14 POP SWAP1 SWAP12 POP SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND SWAP5 POP PUSH4 0x1698EE82 SWAP4 POP PUSH2 0x1F9C SWAP3 POP DUP8 SWAP2 POP DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0xFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEC SWAP2 SWAP1 PUSH2 0x29D5 JUMP JUMPDEST SWAP7 POP POP POP POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL DUP2 DIV PUSH1 0x2 SWAP1 DUP2 SIGNEXTEND DUP2 SIGNEXTEND DUP2 SIGNEXTEND SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV DUP4 SIGNEXTEND DUP4 SIGNEXTEND SWAP1 SWAP3 SIGNEXTEND SWAP1 DUP3 ADD MSTORE SWAP1 DUP1 PUSH2 0x2055 DUP5 PUSH2 0x1B90 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH1 0x0 EQ ISZERO PUSH2 0x2083 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F6 SWAP1 PUSH2 0x2FB5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH4 0x51C403F9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x2 SWAP3 DUP4 SIGNEXTEND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SIGNEXTEND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA38807F2 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x210E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2132 SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST POP SWAP2 POP POP PUSH1 0x0 DUP1 PUSH2 0x2164 PUSH1 0x1 SLOAD PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD DUP9 DUP11 DUP10 TIMESTAMP PUSH2 0x24A0 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP3 SWAP2 PUSH1 0x0 SWAP1 PUSH2 0x2187 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x310B JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x21BD SWAP2 SWAP1 PUSH2 0x3224 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x21EB SWAP1 DUP5 SWAP1 PUSH2 0x3136 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP1 DUP3 EQ PUSH2 0x2262 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE DUP2 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0xF SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP4 MSTORE PUSH1 0xE DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x22A7 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3224 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x10 DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x22DD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x10 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x230C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x11 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0x10 DUP1 SLOAD DUP1 PUSH2 0x2352 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x23EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C706572457874656E6465643A3A736166655472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7366657246726F6D3A2063616C6C20746F206E6F6E2D636F6E74726163740000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH2 0x23F7 DUP5 DUP5 DUP5 DUP5 PUSH2 0x2535 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE PUSH2 0x247A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C706572457874656E6465643A3A736166655472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x736665723A2063616C6C20746F206E6F6E2D636F6E7472616374000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH2 0x2485 DUP4 DUP4 DUP4 PUSH2 0x263B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2499 JUMPI DUP2 PUSH2 0x1BE8 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 DUP4 LT ISZERO PUSH2 0x24C1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP7 AND PUSH2 0x24D5 DUP7 DUP7 PUSH2 0x31FC JUMP JUMPDEST PUSH2 0x24DF SWAP2 SWAP1 PUSH2 0x31B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP11 PUSH2 0x24FA DUP12 DUP9 PUSH2 0x2734 JUMP JUMPDEST PUSH2 0x2504 SWAP2 SWAP1 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x250F SWAP3 SWAP2 SHL PUSH2 0x3224 JUMP JUMPDEST SWAP1 POP PUSH2 0x2525 DUP12 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x2744 JUMP JUMPDEST SWAP3 POP POP SWAP9 POP SWAP9 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x255F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x259D SWAP2 SWAP1 PUSH2 0x2EA7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x25DA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x25DF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2609 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2609 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2609 SWAP2 SWAP1 PUSH2 0x2BAD JUMP JUMPDEST PUSH2 0x1497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0x24 DUP3 ADD MSTORE PUSH3 0x29AA23 PUSH1 0xE9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x2697 SWAP2 SWAP1 PUSH2 0x2EA7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26D4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26D9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2703 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2703 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2703 SWAP2 SWAP1 PUSH2 0x2BAD JUMP JUMPDEST PUSH2 0x12EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2 PUSH1 0x24 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2499 JUMPI DUP2 PUSH2 0x1BE8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 NOT DUP6 DUP8 MULMOD DUP6 DUP8 MUL SWAP3 POP DUP3 DUP2 LT DUP4 DUP3 SUB SUB SWAP2 POP POP DUP1 PUSH1 0x0 EQ ISZERO PUSH2 0x277E JUMPI PUSH1 0x0 DUP5 GT PUSH2 0x2773 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 DIV SWAP1 POP PUSH2 0x1BE8 JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x278A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP7 DUP9 MULMOD DUP1 DUP5 SUB SWAP4 DUP2 GT SWAP1 SWAP3 SUB SWAP2 SWAP1 POP PUSH1 0x0 DUP6 PUSH2 0x27AB DUP2 PUSH1 0x0 NOT PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x27B6 SWAP1 PUSH1 0x1 PUSH2 0x3136 JUMP JUMPDEST AND SWAP6 DUP7 SWAP1 DIV SWAP6 SWAP4 DUP5 SWAP1 DIV SWAP4 PUSH1 0x0 DUP2 SWAP1 SUB DIV PUSH1 0x1 ADD SWAP1 POP PUSH2 0x27D6 DUP2 DUP5 PUSH2 0x31DD JUMP JUMPDEST SWAP1 SWAP4 OR SWAP3 PUSH1 0x0 PUSH2 0x27E7 DUP8 PUSH1 0x3 PUSH2 0x31DD JUMP JUMPDEST PUSH1 0x2 XOR SWAP1 POP PUSH2 0x27F6 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2801 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x280B SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x2817 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2822 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x282C SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x2838 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2843 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x284D SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x2859 DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2864 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x286E SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x287A DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x2885 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x288F SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x289B DUP2 DUP9 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x28A6 SWAP1 PUSH1 0x2 PUSH2 0x3224 JUMP JUMPDEST PUSH2 0x28B0 SWAP1 DUP3 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP PUSH2 0x28BC DUP2 DUP7 PUSH2 0x31DD JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x28D4 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28E9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2904 JUMPI PUSH2 0x2904 PUSH2 0x32AE JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x2913 DUP3 DUP3 ADD PUSH2 0x30DB JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 DUP2 ADD SWAP1 DUP7 DUP5 ADD DUP4 DUP9 ADD DUP6 ADD DUP10 LT ISZERO PUSH2 0x292D JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP4 POP JUMPDEST DUP6 DUP5 LT ISZERO PUSH2 0x294F JUMPI DUP1 CALLDATALOAD DUP4 MSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 DUP5 ADD PUSH2 0x2931 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29CA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BE8 DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29E6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1BE8 DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2A08 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2A13 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2A23 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2A45 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A58 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2A66 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2A77 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A9C JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2AA7 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AC7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2ADD JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AF0 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2AFE JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2B12 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B35 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B4A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2B56 DUP5 DUP3 DUP6 ADD PUSH2 0x28D9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B70 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B85 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2B91 DUP6 DUP3 DUP7 ADD PUSH2 0x28D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2BA2 DUP2 PUSH2 0x32C4 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BBE JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1BE8 DUP3 PUSH2 0x295B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2BDB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 MLOAD DUP1 PUSH1 0x6 SIGNEXTEND DUP2 EQ PUSH2 0x2BEB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x2BFC DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2C15 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2C47 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C5A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x2C6C JUMPI PUSH2 0x2C6C PUSH2 0x32AE JUMP JUMPDEST PUSH2 0x2C7F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x30DB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP6 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2C95 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2CA6 DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x323B JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2CC9 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 MLOAD PUSH2 0x2CD4 DUP2 PUSH2 0x32C4 JUMP JUMPDEST SWAP7 POP PUSH2 0x2CE2 PUSH1 0x20 DUP10 ADD PUSH2 0x296B JUMP JUMPDEST SWAP6 POP PUSH2 0x2CF0 PUSH1 0x40 DUP10 ADD PUSH2 0x2994 JUMP JUMPDEST SWAP5 POP PUSH2 0x2CFE PUSH1 0x60 DUP10 ADD PUSH2 0x2994 JUMP JUMPDEST SWAP4 POP PUSH2 0x2D0C PUSH1 0x80 DUP10 ADD PUSH2 0x2994 JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2D21 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP2 POP PUSH2 0x2D2F PUSH1 0xC0 DUP10 ADD PUSH2 0x295B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D4E JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D66 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D7F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2BA2 DUP2 PUSH2 0x32C4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x180 DUP14 DUP16 SUB SLT ISZERO PUSH2 0x2DB3 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP13 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2DC9 JUMPI DUP7 DUP8 REVERT JUMPDEST SWAP12 POP PUSH2 0x2DD7 PUSH1 0x20 DUP15 ADD PUSH2 0x28C9 JUMP JUMPDEST SWAP11 POP PUSH2 0x2DE5 PUSH1 0x40 DUP15 ADD PUSH2 0x28C9 JUMP JUMPDEST SWAP10 POP PUSH2 0x2DF3 PUSH1 0x60 DUP15 ADD PUSH2 0x28C9 JUMP JUMPDEST SWAP9 POP PUSH2 0x2E01 PUSH1 0x80 DUP15 ADD PUSH2 0x29A6 JUMP JUMPDEST SWAP8 POP PUSH2 0x2E0F PUSH1 0xA0 DUP15 ADD PUSH2 0x296B JUMP JUMPDEST SWAP7 POP PUSH2 0x2E1D PUSH1 0xC0 DUP15 ADD PUSH2 0x296B JUMP JUMPDEST SWAP6 POP PUSH2 0x2E2B PUSH1 0xE0 DUP15 ADD PUSH2 0x297D JUMP JUMPDEST SWAP5 POP PUSH2 0x100 DUP14 ADD MLOAD SWAP4 POP PUSH2 0x120 DUP14 ADD MLOAD SWAP3 POP PUSH2 0x2E4A PUSH2 0x140 DUP15 ADD PUSH2 0x297D JUMP JUMPDEST SWAP2 POP PUSH2 0x2E59 PUSH2 0x160 DUP15 ADD PUSH2 0x297D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2E83 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x323B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2EB9 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x323B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F35 JUMPI DUP4 MLOAD ISZERO ISZERO DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x2F17 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP4 DUP8 ADD DUP6 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2F95 JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x2F83 DUP6 DUP4 MLOAD PUSH2 0x2E6B JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F67 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1BE8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x33 SWAP1 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A756E7374616B65546F6B656E3A2073 PUSH1 0x40 DUP3 ADD MSTORE PUSH19 0x1D185AD948191BD95CC81B9BDD08195E1A5CDD PUSH1 0x6A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x3D SWAP1 DUP3 ADD MSTORE PUSH32 0x556E697377617056335374616B65723A3A7769746864726177546F6B656E3A20 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x6F6E6C79206F776E65722063616E20776974686472617720746F6B656E000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x11 SWAP1 DUP3 ADD MSTORE PUSH17 0x696E20656D657267656E6379206D6F6465 PUSH1 0x78 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x30A6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x30BF JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x30D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3103 JUMPI PUSH2 0x3103 PUSH2 0x32AE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x312D JUMPI PUSH2 0x312D PUSH2 0x3282 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3149 JUMPI PUSH2 0x3149 PUSH2 0x3282 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 DUP2 AND DUP1 PUSH2 0x3168 JUMPI PUSH2 0x3168 PUSH2 0x3298 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3183 JUMPI PUSH2 0x3183 PUSH2 0x3298 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP2 ISZERO ISZERO DUP3 DUP5 DIV DUP3 GT AND ISZERO PUSH2 0x31AE JUMPI PUSH2 0x31AE PUSH2 0x3282 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP2 ISZERO ISZERO DUP3 DUP5 DIV DUP3 GT AND ISZERO PUSH2 0x31AE JUMPI PUSH2 0x31AE PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x31F7 JUMPI PUSH2 0x31F7 PUSH2 0x3282 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP1 DUP4 AND DUP2 DUP2 LT ISZERO PUSH2 0x321C JUMPI PUSH2 0x321C PUSH2 0x3282 JUMP JUMPDEST SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3236 JUMPI PUSH2 0x3236 PUSH2 0x3282 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3256 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x323E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x23F7 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x327B JUMPI PUSH2 0x327B PUSH2 0x3282 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x32D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SAR 0xB2 DUP5 0xE1 JUMPI 0x1E GASLIMIT SELFDESTRUCT PUSH7 0x85A65B48E87FF2 SWAP2 0xCF SWAP16 0xB2 0xBD 0xC2 DUP14 LOG2 SHL 0x4C 0xC3 0x5C PUSH14 0x7DDB7264736F6C63430008040033 ","sourceMap":"1164:17366:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10737:314;;;;;;;;;;-1:-1:-1;10737:314:84;;;;;:::i;:::-;;:::i;:::-;;;23221:25:139;;;23209:2;23194:18;10737:314:84;;;;;;;;2596:51;;;;;;;;;;-1:-1:-1;2596:51:84;;;;;:::i;:::-;;;;;;;;;;;;;;12381:757;;;;;;;;;;-1:-1:-1;12381:757:84;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13144:143::-;;;;;;;;;;-1:-1:-1;13234:20:84;;13256:23;;13144:143;;;23431:25:139;;;-1:-1:-1;;;;;13256:23:84;;;23487:2:139;23472:18;;23465:60;23404:18;13144:143:84;23386:145:139;4658:2193:84;;;;;;;;;;-1:-1:-1;4658:2193:84;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;13798:33:139;;;13780:52;;13768:2;13753:18;4658:2193:84;13735:103:139;1325:36:84;;;;;;;;;;;;;;;;;;;;;;:::i;14323:111::-;;;;;;;;;;-1:-1:-1;14410:10:84;:17;14323:111;;1609:41;;;;;;;;;;;;1644:6;1609:41;;13993:324;;;;;;;;;;-1:-1:-1;13993:324:84;;;;;:::i;:::-;;:::i;1483:22::-;;;;;;;;;;;;;;;;11706:512;;;;;;;;;;-1:-1:-1;11706:512:84;;;;;:::i;:::-;;:::i;:::-;;;;23738:25:139;;;23794:2;23779:18;;23772:34;;;;23822:18;;;23815:34;23726:2;23711:18;11706:512:84;23693:162:139;14440:291:84;;;;;;;;;;-1:-1:-1;14440:291:84;;;;;:::i;:::-;;:::i;6894:816::-;;;;;;;;;;-1:-1:-1;6894:816:84;;;;;:::i;:::-;;:::i;:::-;;1511:34;;;;;;;;;;;;;;;;2654:53;;;;;;;;;;-1:-1:-1;2654:53:84;;;;;:::i;:::-;;;;;;;;;;;;;;1453:24;;;;;;;;;;;;;;;;2478:35;;;;;;;;;;;;;;;;1275:44;;;;;;;;;;;;;;;7716:842;;;;;;;;;;-1:-1:-1;7716:842:84;;;;;:::i;:::-;;:::i;12224:114::-;;;;;;;;;;-1:-1:-1;12224:114:84;;;;;:::i;:::-;-1:-1:-1;12311:20:84;;;12224:114;1551:23;;;;;;;;;;-1:-1:-1;1551:23:84;;;;;;;;;;;13609:14:139;;13602:22;13584:41;;13572:2;13557:18;1551:23:84;13539:92:139;1409:38:84;;;;;;;;;;-1:-1:-1;1409:38:84;;;;-1:-1:-1;;;;;1409:38:84;;;309:653:129;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2333:52:84:-;;;;;;;;;;-1:-1:-1;2333:52:84;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2333:52:84;;;-1:-1:-1;;;2333:52:84;;;;;;;-1:-1:-1;;;2333:52:84;;;;;;;;;;-1:-1:-1;;;;;11547:32:139;;;11529:51;;11627:1;11616:21;;;11611:2;11596:18;;11589:49;11674:21;;11654:18;;;11647:49;11517:2;11502:18;2333:52:84;11484:218:139;2214:70:84;;;;;;;;;;-1:-1:-1;2214:70:84;;;;-1:-1:-1;;;;;2214:70:84;;;13293:694;;;;;;;;;;-1:-1:-1;13293:694:84;;;;;:::i;:::-;;:::i;1368:35::-;;;;;;;;;;;;;;;;2129:41;;;;;;;;;;-1:-1:-1;2129:41:84;;;;-1:-1:-1;;;;;2129:41:84;;;8564:363;;;;;;;;;;;;;:::i;1580:23::-;;;;;;;;;;-1:-1:-1;1580:23:84;;;;;;;-1:-1:-1;;;;;1580:23:84;;;3952:498;;;;;;;;;;-1:-1:-1;3952:498:84;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;22962:32:139;;;22944:51;;-1:-1:-1;;;;;23031:32:139;;;23026:2;23011:18;;23004:60;22917:18;3952:498:84;22899:171:139;11057:163:84;;;;;;;;;;-1:-1:-1;11057:163:84;;;;;:::i;:::-;;:::i;11226:474::-;;;;;;;;;;-1:-1:-1;11226:474:84;;;;;:::i;:::-;;:::i;10737:314::-;10849:7;10872:14;10901:13;10896:126;10928:8;:15;10920:5;:23;10896:126;;;10978:33;10991:8;11000:5;10991:15;;;;;;-1:-1:-1;;;10991:15:84;;;;;;;;;;;;;;;11008:2;10978:12;:33::i;:::-;10968:43;;;;:::i;:::-;;-1:-1:-1;10945:7:84;;;;:::i;:::-;;;;10896:126;;;-1:-1:-1;11038:6:84;10737:314;-1:-1:-1;;;10737:314:84:o;12381:757::-;12498:13;12527:17;12558:8;:15;-1:-1:-1;;;;;12547:27:84;;;;;-1:-1:-1;;;12547:27:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12547:27:84;;12527:47;;12590:13;12585:526;12617:8;:15;12609:5;:23;12585:526;;;12657:15;12675:8;12684:5;12675:15;;;;;;-1:-1:-1;;;12675:15:84;;;;;;;;;;;;;;;;;;;12880:7;;12909:26;;12675:15;;-1:-1:-1;12722:20:84;;;;;;12827:155;;-1:-1:-1;;;;;12880:7:84;;;;12909:26;12675:15;12827:31;:155::i;:::-;12704:278;;;;;;;13000:10;13024:5;-1:-1:-1;;;;;13024:11:84;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12997:40;;;;;;;;13076:4;13064:16;;:9;:16;;;:36;;;;;13091:9;13084:16;;:4;:16;;;13064:36;13051:3;13055:5;13051:10;;;;;;-1:-1:-1;;;13051:10:84;;;;;;;;;;;;;;:49;;;;;;;;;;;12585:526;;;;;12634:7;;;;;:::i;:::-;;;;12585:526;;;-1:-1:-1;13128:3:84;12381:757;-1:-1:-1;;12381:757:84:o;4658:2193::-;4832:11;;4805:6;;4832:11;;4831:12;4823:42;;;;-1:-1:-1;;;4823:42:84;;;;;;;:::i;:::-;;;;;;;;;4918:26;;-1:-1:-1;;;;;4918:26:84;4896:10;:49;4875:146;;;;-1:-1:-1;;;4875:146:84;;21791:2:139;4875:146:84;;;21773:21:139;21830:2;21810:18;;;21803:30;21869:34;21849:18;;;21842:62;-1:-1:-1;;;21920:18:139;;;21913:48;21978:19;;4875:146:84;21763:240:139;4875:146:84;5218:7;;5243:26;;5046:20;;;;;;;;5169:139;;-1:-1:-1;;;;;5218:7:84;;;;5243:26;5287:7;5169:31;:139::i;:::-;5032:276;;;;;;;;5339:112;;;;;;;;5368:4;-1:-1:-1;;;;;5339:112:84;;;;;5397:9;5339:112;;;;;;5431:9;5339:112;;;;;5319:8;:17;5328:7;5319:17;;;;;;;;;;;:132;;;;;;;;;;;;;-1:-1:-1;;;;;5319:132:84;;;;;-1:-1:-1;;;;;5319:132:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:4;-1:-1:-1;;;;;5483:13:84;:5;-1:-1:-1;;;;;5483:13:84;;5462:121;;;;-1:-1:-1;;;5462:121:84;;17949:2:139;5462:121:84;;;17931:21:139;17988:2;17968:18;;;17961:30;18027:34;18007:18;;;18000:62;18098:31;18078:18;;;18071:59;18147:19;;5462:121:84;17921:251:139;5462:121:84;5627:1;5614:10;-1:-1:-1;;;;;5614:14:84;;5593:125;;;;;-1:-1:-1;;;5593:125:84;;17096:2:139;5593:125:84;;;17078:21:139;17115:18;;;17108:30;;;;17174:34;17154:18;;;17147:62;17245:34;17225:18;;;17218:62;17297:19;;5593:125:84;17068:254:139;5593:125:84;5761:10;-1:-1:-1;;;;;5753:19:84;5729:20;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;5782:17:84;;-1:-1:-1;5810:34:84;-1:-1:-1;;;;;5810:34:84;;5839:4;5810:16;:34::i;:::-;5902:66;;-1:-1:-1;;;5902:66:84;;14977:1:139;14966:21;;;5902:66:84;;;14948:40:139;15024:21;;;15004:18;;;14997:49;5782:63:84;;-1:-1:-1;5859:37:84;;-1:-1:-1;;;;;5902:44:84;;;;;14921:18:139;;5902:66:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5856:112:84;-1:-1:-1;;;;;;;;;;;;5983:29:84;;;5979:638;;6047:258;;;;;;;;6109:29;-1:-1:-1;;;;;6047:258:84;;;;;-1:-1:-1;;;;;6047:258:84;;;;;;6232:9;-1:-1:-1;;;;;6047:258:84;;;;;6280:10;-1:-1:-1;;;;;6047:258:84;;;;6028:7;:16;6036:7;6028:16;;;;;;;;;;;:277;;;;;;;;;;;;;-1:-1:-1;;;;;6028:277:84;;;;;-1:-1:-1;;;;;6028:277:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6028:277:84;;;;;-1:-1:-1;;;;;6028:277:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6028:277:84;;;;;-1:-1:-1;;;;;6028:277:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6028:277:84;;;;;-1:-1:-1;;;;;6028:277:84;;;;;;;;;5979:638;;;6355:251;;;;;;;;6417:29;-1:-1:-1;;;;;6355:251:84;;;;;6492:9;-1:-1:-1;;;;;6355:251:84;;;;;6541:1;-1:-1:-1;;;;;6355:251:84;;;;;6581:10;-1:-1:-1;;;;;6355:251:84;;;;6336:7;:16;6344:7;6336:16;;;;;;;;;;;:270;;;;;;;;;;;;;-1:-1:-1;;;;;6336:270:84;;;;;-1:-1:-1;;;;;6336:270:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6336:270:84;;;;;-1:-1:-1;;;;;6336:270:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6336:270:84;;;;;-1:-1:-1;;;;;6336:270:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6336:270:84;;;;;-1:-1:-1;;;;;6336:270:84;;;;;;;;;5979:638;6627:40;6659:7;15533:10;:17;;15506:24;;;;:15;:24;;;;;:44;;;15560:24;;;;;;;;;;;;15430:161;6627:40;-1:-1:-1;;;;;15126:13:84;;15109:14;15126:13;;;:9;:13;;;;;;;;;15149:12;:16;;;;;:24;;;;;;;;:34;;;15193:26;;;:17;:26;;;;;;:35;-1:-1:-1;;;;;6729:15:84;;;;;;:9;:15;;;;;:20;;6748:1;;6729:15;:20;;6748:1;;6729:20;:::i;:::-;;;;-1:-1:-1;;6765:32:84;;-1:-1:-1;;;;;22518:32:139;;22500:51;;6777:7:84;;6765:32;;22488:2:139;22473:18;6765:32:84;;;;;;;-1:-1:-1;;;;6814:30:84;4658:2193;-1:-1:-1;;;;;;;;;;;4658:2193:84:o;13993:324::-;-1:-1:-1;;;;;14182:16:84;;14130:7;14182:16;;;:9;:16;;;;;;14174:24;;14153:114;;;;-1:-1:-1;;;14153:114:84;;16264:2:139;14153:114:84;;;16246:21:139;16303:2;16283:18;;;16276:30;16342:34;16322:18;;;16315:62;-1:-1:-1;;;16393:18:139;;;16386:41;16444:19;;14153:114:84;16236:233:139;14153:114:84;-1:-1:-1;;;;;;14284:19:84;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;13993:324::o;11706:512::-;11989:7;;12010:26;;11817:16;;;;;;;;11944:123;;-1:-1:-1;;;;;11989:7:84;;;;12010:26;12050:7;11944:31;:123::i;:::-;11915:152;;;;;12109:3;12090:10;12103:2;12090:15;;;;:::i;:::-;12089:23;;;;:::i;:::-;-1:-1:-1;;;;;12078:34:84;;;12132:33;12149:10;-1:-1:-1;;;;;12132:33:84;12161:3;12132:16;:33::i;:::-;12122:43;-1:-1:-1;12122:43:84;12185:15;:8;12196:4;12185:15;:::i;:::-;12184:27;;;;:::i;:::-;12175:36;;11706:512;;;;;;:::o;14440:291::-;14555:7;14607:13;14410:10;:17;;14323:111;14607:13;14599:5;:21;14578:112;;;;-1:-1:-1;;;14578:112:84;;20668:2:139;14578:112:84;;;20650:21:139;20707:2;20687:18;;;20680:30;20746:34;20726:18;;;20719:62;-1:-1:-1;;;20797:18:139;;;20790:42;20849:19;;14578:112:84;20640:234:139;14578:112:84;14707:10;14718:5;14707:17;;;;;;-1:-1:-1;;;14707:17:84;;;;;;;;;;;;;;;;;14700:24;;14440:291;;;:::o;6894:816::-;6971:11;;;;6970:12;6962:42;;;;-1:-1:-1;;;6962:42:84;;;;;;;:::i;:::-;7048:22;7062:7;7048:13;:22::i;:::-;7113:16;;;;:7;:16;;;;;:36;;;7081:20;:69;;-1:-1:-1;;;7113:36:84;;;-1:-1:-1;;;;;7113:36:84;;7081:20;;:69;;7113:36;;7081:69;:::i;:::-;;;;-1:-1:-1;;7182:17:84;;;;:8;:17;;;;;:23;-1:-1:-1;;;;;7182:23:84;7209:10;7182:37;7161:145;;;;-1:-1:-1;;;7161:145:84;;;;;;;:::i;:::-;7324:17;;;;:8;:17;;;;;;;;7317:24;;-1:-1:-1;;;;;;7317:24:84;;;7358:7;:16;;;;;7351:23;;;7317:24;7351:23;;7385:53;7418:10;7333:7;7385:32;:53::i;:::-;7448:45;7485:7;7448:36;:45::i;:::-;7513:10;7503:21;;;;:9;:21;;;;;:26;;7528:1;;7503:21;:26;;7528:1;;7503:26;:::i;:::-;;;;-1:-1:-1;;7545:22:84;;7559:7;;7545:22;;;;;7578:26;;:125;;-1:-1:-1;;;7578:125:84;;-1:-1:-1;;;;;7578:26:84;;;;:43;;:125;;7643:4;;7662:10;;7686:7;;7578:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6894:816;:::o;7716:842::-;7790:11;;;;7782:45;;;;-1:-1:-1;;;7782:45:84;;21081:2:139;7782:45:84;;;21063:21:139;21120:2;21100:18;;;21093:30;-1:-1:-1;;;21139:18:139;;;21132:51;21200:18;;7782:45:84;21053:171:139;7782:45:84;7858:17;;;;:8;:17;;;;;:23;-1:-1:-1;;;;;7858:23:84;7885:10;7858:37;7837:145;;;;-1:-1:-1;;;7837:145:84;;;;;;;:::i;:::-;7996:17;8017:15;8024:7;8017:6;:15::i;:::-;7993:39;-1:-1:-1;;;;;;;8063:14:84;;8042:112;;;;-1:-1:-1;;;8042:112:84;;;;;;;:::i;:::-;8172:17;;;;:8;:17;;;;;;;;8165:24;;-1:-1:-1;;;;;;8165:24:84;;;8206:7;:16;;;;;8199:23;;;8165:24;8199:23;;8233:53;8266:10;8181:7;8233:32;:53::i;:::-;8296:45;8333:7;8296:36;:45::i;:::-;8361:10;8351:21;;;;:9;:21;;;;;:26;;8376:1;;8351:21;:26;;8376:1;;8351:26;:::i;:::-;;;;-1:-1:-1;;8393:22:84;;8407:7;;8393:22;;;;;8426:26;;:125;;-1:-1:-1;;;8426:125:84;;-1:-1:-1;;;;;8426:26:84;;;;:43;;:125;;8491:4;;8510:10;;8534:7;;8426:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7716:842;;:::o;309:653:129:-;384:22;440:4;-1:-1:-1;;;;;428:24:129;;;;;-1:-1:-1;;;428:24:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;418:34;;467:9;462:494;482:15;;;462:494;;;519:12;;564:4;583;;588:1;583:7;;;;;-1:-1:-1;;;583:7:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;556:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:73;;;;611:7;606:306;;738:2;722:6;:13;:18;718:32;;;742:8;;;718:32;821:4;813:6;809:17;799:27;;879:6;868:28;;;;;;;;;;;;:::i;:::-;861:36;;-1:-1:-1;;;861:36:129;;;;;;;;:::i;606:306::-;939:6;926:7;934:1;926:10;;;;;;-1:-1:-1;;;926:10:129;;;;;;;;;;;;;;:19;;;;462:494;;499:3;;;;;:::i;:::-;;;;462:494;;13293:694:84;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;21431:2:139;2317:63:22;;;21413:21:139;21470:2;21450:18;;;21443:30;21509:33;21489:18;;;21482:61;21560:18;;2317:63:22;21403:181:139;2317:63:22;1744:1;2455:7;:18;;;;13451:8:84::1;-1:-1:-1::0;;;;;13451:13:84::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13442:24:84::1;:5;-1:-1:-1::0;;;;;13442:24:84::1;;13421:122;;;::::0;-1:-1:-1;;;13421:122:84;;17529:2:139;13421:122:84::1;::::0;::::1;17511:21:139::0;17568:2;17548:18;;;17541:30;17607:34;17587:18;;;17580:62;-1:-1:-1;;;17658:18:139;;;17651:49;17717:19;;13421:122:84::1;17501:241:139::0;13421:122:84::1;13583:1;13574:6;:10;13553:114;;;::::0;-1:-1:-1;;;13553:114:84;;20242:2:139;13553:114:84::1;::::0;::::1;20224:21:139::0;20281:2;20261:18;;;20254:30;20320:34;20300:18;;;20293:62;-1:-1:-1;;;20371:18:139;;;20364:55;20436:19;;13553:114:84::1;20214:247:139::0;13553:114:84::1;13702:6;13678:20;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;13728:26:84::1;::::0;-1:-1:-1;1644:6:84::1;13728:15;:26;:::i;:::-;13718:7;:36;;;;13765:149;13818:8;-1:-1:-1::0;;;;;13818:13:84::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13847:10;13879:4;13898:6;13765:39;:149::i;:::-;13953:9;::::0;13964:7:::1;::::0;13930:50:::1;::::0;;23738:25:139;;;23794:2;23779:18;;23772:34;;;;23822:18;;23815:34;;;-1:-1:-1;;;;;13947:4:84::1;13930:50;::::0;::::1;::::0;23726:2:139;23711:18;13930:50:84::1;;;;;;;-1:-1:-1::0;;1701:1:22;2628:7;:22;13293:694:84:o;8564:363::-;8636:8;;;;;-1:-1:-1;;;;;8636:8:84;8622:10;:22;8614:47;;;;-1:-1:-1;;;8614:47:84;;18709:2:139;8614:47:84;;;18691:21:139;18748:2;18728:18;;;18721:30;-1:-1:-1;;;18767:18:139;;;18760:42;18819:18;;8614:47:84;18681:162:139;8614:47:84;8680:11;;;;8679:12;8671:50;;;;-1:-1:-1;;;8671:50:84;;15483:2:139;8671:50:84;;;15465:21:139;15522:2;15502:18;;;15495:30;-1:-1:-1;;;15541:18:139;;;15534:55;15606:18;;8671:50:84;15455:175:139;8671:50:84;8732:11;:18;;-1:-1:-1;;8732:18:84;8746:4;8732:18;;;8809:15;;;-1:-1:-1;;;8809:15:84;;;;8760:160;;-1:-1:-1;;;;;8809:8:84;:13;;;;:15;;;;;;;;;;;;;;;:13;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8838:10;8869:8;-1:-1:-1;;;;;8869:13:84;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8862:33:84;;8904:4;8862:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8760:35;:160::i;:::-;8564:363::o;3952:498::-;4060:44;4182:16;;;:7;:16;;;;;4247:55;;-1:-1:-1;;;;;4247:55:84;;;-1:-1:-1;;;;;;;;4324:25:84;;;;;;4363:29;;4359:84;;;4418:25;;;;-1:-1:-1;;;;;4418:25:84;;-1:-1:-1;4359:84:84;3952:498;;;;:::o;11057:163::-;11158:7;11188:25;11201:7;11210:2;11188:12;:25::i;:::-;11181:32;11057:163;-1:-1:-1;;;11057:163:84:o;11226:474::-;11333:7;;11394:3;11376:14;:9;11388:2;11376:14;:::i;:::-;11375:22;;;;:::i;:::-;11356:41;;11407:13;11434:8;-1:-1:-1;;;;;11434:15:84;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11423:39:84;;11463:7;11423:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11407:64;;11482:17;11565:3;11530:19;;11516:5;11504:9;:17;;;;:::i;:::-;:22;;11524:2;11504:22;:::i;:::-;11503:46;;;;:::i;:::-;11502:66;;;;:::i;:::-;11482:86;-1:-1:-1;11652:41:84;11661:20;11482:86;11661:8;:20;:::i;:::-;11683:9;11652:8;:41::i;:::-;11645:48;11226:474;-1:-1:-1;;;;;;11226:474:84:o;10282:412::-;10399:11;;10367:7;;10399:11;;10398:12;10390:42;;;;-1:-1:-1;;;10390:42:84;;;;;;;:::i;:::-;10443:22;10457:7;10443:13;:22::i;:::-;10500:10;10475:14;10492:19;;;:7;:19;;;;;;;;;;;10521:29;10492:19;;10521:29;:::i;:::-;;;;;;;;10560:64;10596:8;-1:-1:-1;;;;;10596:13:84;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10613:2;10617:6;10560:35;:64::i;:::-;10653:2;-1:-1:-1;;;;;10639:25:84;;10657:6;10639:25;;;;23221::139;;23209:2;23194:18;;23176:76;10639:25:84;;;;;;;;10681:6;10282:412;-1:-1:-1;;;10282:412:84:o;964:749:130:-;1179:19;1212:15;1241;1270:17;1312:14;1336;1360:10;1591:26;-1:-1:-1;;;;;1591:36:130;;1628:7;1591:45;;;;;;;;;;;;;23221:25:139;;23209:2;23194:18;;23176:76;1591:45:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;1669:36:130;;-1:-1:-1;;;1669:36:130;;1380:256;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;;;;;;1669:15:130;;;-1:-1:-1;1669:15:130;;-1:-1:-1;1669:36:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;;;1669:36;;-1:-1:-1;;;;;10818:15:139;;;10800:34;;10870:15;;;;10865:2;10850:18;;10843:43;10934:8;10922:21;;;;10917:2;10902:18;;10895:49;10750:2;10735:18;;10717:233;1669:36:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1647:59;;964:749;;;;;;;;;;:::o;8933:1343:84:-;8992:22;9017:17;;;:8;:17;;;;;;;;8992:42;;;;;;;;;-1:-1:-1;;;;;8992:42:84;;;;-1:-1:-1;;;8992:42:84;;;;;;;;;;;;;;;;;-1:-1:-1;;;8992:42:84;;;;;;;;;;;;;;:22;9147:15;9026:7;9147:6;:15::i;:::-;9045:117;;;;9194:9;-1:-1:-1;;;;;9194:14:84;9207:1;9194:14;;9173:112;;;;-1:-1:-1;;;9173:112:84;;;;;;;:::i;:::-;9386:17;;;;9405;;;;;9342:81;;-1:-1:-1;;;9342:81:84;;14977:1:139;14966:21;;;9342:81:84;;;14948:40:139;15024:21;;15004:18;;;14997:49;9299:37:84;;-1:-1:-1;;;;;9342:4:84;:43;;;;14921:18:139;;9342:81:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9296:127;;;;9435:14;9451:25;9480:349;9541:20;;9579:23;;;;;;;;;-1:-1:-1;;;;;9579:23:84;9620:9;;9647:7;;9672:9;9699:36;9753:29;9800:15;9480:43;:349::i;:::-;9988:23;:44;;9434:395;;-1:-1:-1;9434:395:84;;-1:-1:-1;9434:395:84;;9988:23;;:44;;9434:395;;-1:-1:-1;;;;;9988:44:84;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;9988:44:84;;;;;-1:-1:-1;;;;;9988:44:84;;;;;;10129:6;10105:20;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;10245:13:84;;-1:-1:-1;;;;;10237:22:84;;;;;:7;:22;;;;;:32;;10263:6;;10237:22;:32;;10263:6;;10237:32;:::i;:::-;;;;-1:-1:-1;;;;;;;;;8933:1343:84:o;16208:971::-;-1:-1:-1;;;;;16507:15:84;;16482:22;16507:15;;;:9;:15;;;;;;;;;16553:26;;;:17;:26;;;;;;;16683:28;;;16679:323;;-1:-1:-1;;;;;16749:18:84;;16727:19;16749:18;;;:12;:18;;;;;;;;:34;;;;;;;;;16798:30;;;;;;:44;;;16914:30;;:17;:30;;;;;:43;;;16679:323;-1:-1:-1;17095:26:84;;;;:17;:26;;;;;;;;17088:33;;;-1:-1:-1;;;;;17138:18:84;;;;;:12;:18;;;;;:34;;;;;;;17131:41;16208:971::o;17467:1061::-;17741:10;:17;17716:22;;17741:21;;17761:1;;17741:21;:::i;:::-;17772:18;17793:24;;;:15;:24;;;;;;18161:10;:26;;17716:46;;-1:-1:-1;17793:24:84;;17716:46;;18161:26;;;;-1:-1:-1;;;18161:26:84;;;;;;;;;;;;;;;;;18139:48;;18223:11;18198:10;18209;18198:22;;;;;;-1:-1:-1;;;18198:22:84;;;;;;;;;;;;;;;;;;;;:36;;;;18302:28;;;:15;:28;;;;;;;:41;;;18471:24;;;;;18464:31;18505:10;:16;;;;;-1:-1:-1;;;18505:16:84;;;;;;;;;;;;;;;;;;;;;;;;;;17467:1061;;;;:::o;626:304:135:-;-1:-1:-1;;;;;773:16:135;;1465:19:36;765:93:135;;;;-1:-1:-1;;;765:93:135;;19811:2:139;765:93:135;;;19793:21:139;19850:2;19830:18;;;19823:30;19889:34;19869:18;;;19862:62;19960:32;19940:18;;;19933:60;20010:19;;765:93:135;19783:252:139;765:93:135;868:55;900:5;907:4;913:2;917:5;868:31;:55::i;:::-;626:304;;;;:::o;1222:264::-;-1:-1:-1;;;;;1343:16:135;;1465:19:36;1335:89:135;;;;-1:-1:-1;;;1335:89:135;;15837:2:139;1335:89:135;;;15819:21:139;15876:2;15856:18;;;15849:30;15915:34;15895:18;;;15888:62;15986:28;15966:18;;;15959:56;16032:19;;1335:89:135;15809:248:139;1335:89:135;1434:45;1462:5;1469:2;1473:5;1434:27;:45::i;:::-;1222:264;;;:::o;589:104:47:-;647:7;677:1;673;:5;:13;;685:1;673:13;;;-1:-1:-1;681:1:47;;589:104;-1:-1:-1;589:104:47:o;1430:1033:133:-;1776:14;1792:25;1912:9;1897:11;:24;;1890:32;;-1:-1:-1;;;1890:32:133;;;;;;;;;-1:-1:-1;;;;;2059:110:133;;2060:84;2108:36;2060:29;:84;:::i;:::-;2059:110;;;;:::i;:::-;2027:142;;2180:33;2284:23;-1:-1:-1;;;;;2216:91:133;2277:3;2263:9;2218:30;2227:7;2236:11;2218:8;:30::i;:::-;:54;;;;:::i;:::-;2216:91;;;2217:63;2216:91;:::i;:::-;2180:127;;2327:129;2356:20;2390:17;-1:-1:-1;;;;;2327:129:133;2421:25;2327:15;:129::i;:::-;2318:138;;1430:1033;;;;;;;;;;;;:::o;560:358:134:-;700:12;714:17;747:5;-1:-1:-1;;;;;747:10:134;781:28;;;811:4;817:2;821:5;758:69;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;758:69:134;;;;;;;;;;;;;;-1:-1:-1;;;;;758:69:134;-1:-1:-1;;;;;;758:69:134;;;;;;;;;;747:81;;;;758:69;747:81;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;699:129;;;;846:7;:57;;;;-1:-1:-1;858:11:134;;:16;;:44;;;889:4;878:24;;;;;;;;;;;;:::i;:::-;838:73;;;;-1:-1:-1;;;838:73:134;;19050:2:139;838:73:134;;;19032:21:139;19089:1;19069:18;;;19062:29;-1:-1:-1;;;19107:18:139;;;19100:33;19150:18;;838:73:134;19022:152:139;1210:309:134;1370:59;;;-1:-1:-1;;;;;11899:32:139;;;1370:59:134;;;11881:51:139;11948:18;;;;11941:34;;;1370:59:134;;;;;;;;;;11854:18:139;;;;1370:59:134;;;;;;;-1:-1:-1;;;;;1370:59:134;-1:-1:-1;;;1370:59:134;;;1359:71;;-1:-1:-1;;;;1359:10:134;;;;:71;;1370:59;1359:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1323:107;;;;1448:7;:57;;;;-1:-1:-1;1460:11:134;;:16;;:44;;;1491:4;1480:24;;;;;;;;;;;;:::i;:::-;1440:72;;;;-1:-1:-1;;;1440:72:134;;18379:2:139;1440:72:134;;;18361:21:139;18418:1;18398:18;;;18391:29;-1:-1:-1;;;18436:18:139;;;18429:32;18478:18;;1440:72:134;18351:151:139;413:105:47;471:7;502:1;497;:6;;:14;;510:1;497:14;;741:3801:127;853:14;;;-1:-1:-1;;1360:1:127;1357;1350:20;1399:1;1396;1392:9;1383:18;;1450:5;1446:2;1443:13;1435:5;1431:2;1427:14;1423:34;1414:43;;;1539:5;1548:1;1539:10;1535:179;;;1587:1;1573:11;:15;1565:24;;;;;;-1:-1:-1;1640:23:127;;;;-1:-1:-1;1690:13:127;;1535:179;1841:5;1827:11;:19;1819:28;;;;;;2124:17;2200:11;2197:1;2194;2187:25;2372:21;;;;2329:20;;2318:32;;;;2174:38;-1:-1:-1;2552:12:127;2607:11;2568:31;2607:11;-1:-1:-1;;2568:31:127;:::i;:::-;:35;;2602:1;2568:35;:::i;:::-;2567:51;2712:22;;;;;2840:16;;;;;3088:1;3084:12;;;3080:23;3105:1;3076:31;;-1:-1:-1;3135:12:127;3076:31;3135:5;:12;:::i;:::-;3126:21;;;;3481:11;3496:15;3500:11;3496:1;:15;:::i;:::-;3515:1;3495:21;;-1:-1:-1;3742:17:127;3495:21;3742:11;:17;:::i;:::-;3738:21;;:1;:21;:::i;:::-;3731:28;;;;:::i;:::-;;-1:-1:-1;3800:17:127;3731:28;3800:11;:17;:::i;:::-;3796:21;;:1;:21;:::i;:::-;3789:28;;;;:::i;:::-;;-1:-1:-1;3859:17:127;3789:28;3859:11;:17;:::i;:::-;3855:21;;:1;:21;:::i;:::-;3848:28;;;;:::i;:::-;;-1:-1:-1;3918:17:127;3848:28;3918:11;:17;:::i;:::-;3914:21;;:1;:21;:::i;:::-;3907:28;;;;:::i;:::-;;-1:-1:-1;3977:17:127;3907:28;3977:11;:17;:::i;:::-;3973:21;;:1;:21;:::i;:::-;3966:28;;;;:::i;:::-;;-1:-1:-1;4037:17:127;3966:28;4037:11;:17;:::i;:::-;4033:21;;:1;:21;:::i;:::-;4026:28;;;;:::i;:::-;;-1:-1:-1;4501:11:127;4026:28;4501:5;:11;:::i;:::-;4492:20;741:3801;-1:-1:-1;;;;;;;;;741:3801:127:o;14:138:139:-;93:13;;115:31;93:13;115:31;:::i;:::-;74:78;;;:::o;157:743::-;211:5;264:3;257:4;249:6;245:17;241:27;231:2;;286:5;279;272:20;231:2;326:6;313:20;352:4;-1:-1:-1;;;;;371:2:139;368:26;365:2;;;397:18;;:::i;:::-;443:2;440:1;436:10;466:28;490:2;486;482:11;466:28;:::i;:::-;528:15;;;559:12;;;;591:15;;;625;;;621:24;;618:33;-1:-1:-1;615:2:139;;;668:5;661;654:20;615:2;694:5;685:14;;708:163;722:2;719:1;716:9;708:163;;;779:17;;767:30;;740:1;733:9;;;;;817:12;;;;849;;708:163;;;-1:-1:-1;889:5:139;221:679;-1:-1:-1;;;;;;;221:679:139:o;905:164::-;981:13;;1030;;1023:21;1013:32;;1003:2;;1059:1;1056;1049:12;1074:164;1151:13;;1204:1;1193:20;;;1183:31;;1173:2;;1228:1;1225;1218:12;1243:177;1322:13;;-1:-1:-1;;;;;1364:31:139;;1354:42;;1344:2;;1410:1;1407;1400:12;1425:163;1503:13;;1556:6;1545:18;;1535:29;;1525:2;;1578:1;1575;1568:12;1593:165;1671:13;;1724:8;1713:20;;1703:31;;1693:2;;1748:1;1745;1738:12;1763:257;1822:6;1875:2;1863:9;1854:7;1850:23;1846:32;1843:2;;;1896:6;1888;1881:22;1843:2;1940:9;1927:23;1959:31;1984:5;1959:31;:::i;2025:261::-;2095:6;2148:2;2136:9;2127:7;2123:23;2119:32;2116:2;;;2169:6;2161;2154:22;2116:2;2206:9;2200:16;2225:31;2250:5;2225:31;:::i;2291:986::-;2388:6;2396;2404;2412;2420;2473:3;2461:9;2452:7;2448:23;2444:33;2441:2;;;2495:6;2487;2480:22;2441:2;2539:9;2526:23;2558:31;2583:5;2558:31;:::i;:::-;2608:5;-1:-1:-1;2665:2:139;2650:18;;2637:32;2678:33;2637:32;2678:33;:::i;:::-;2730:7;-1:-1:-1;2784:2:139;2769:18;;2756:32;;-1:-1:-1;2839:2:139;2824:18;;2811:32;-1:-1:-1;;;;;2892:14:139;;;2889:2;;;2924:6;2916;2909:22;2889:2;2967:6;2956:9;2952:22;2942:32;;3012:7;3005:4;3001:2;2997:13;2993:27;2983:2;;3039:6;3031;3024:22;2983:2;3084;3071:16;3110:2;3102:6;3099:14;3096:2;;;3131:6;3123;3116:22;3096:2;3181:7;3176:2;3167:6;3163:2;3159:15;3155:24;3152:37;3149:2;;;3207:6;3199;3192:22;3149:2;2431:846;;;;-1:-1:-1;2431:846:139;;-1:-1:-1;3243:2:139;3235:11;;3265:6;2431:846;-1:-1:-1;;;2431:846:139:o;3282:325::-;3350:6;3358;3411:2;3399:9;3390:7;3386:23;3382:32;3379:2;;;3432:6;3424;3417:22;3379:2;3476:9;3463:23;3495:31;3520:5;3495:31;:::i;:::-;3545:5;3597:2;3582:18;;;;3569:32;;-1:-1:-1;;;3369:238:139:o;3612:676::-;3709:6;3717;3770:2;3758:9;3749:7;3745:23;3741:32;3738:2;;;3791:6;3783;3776:22;3738:2;3836:9;3823:23;-1:-1:-1;;;;;3906:2:139;3898:6;3895:14;3892:2;;;3927:6;3919;3912:22;3892:2;3970:6;3959:9;3955:22;3945:32;;4015:7;4008:4;4004:2;4000:13;3996:27;3986:2;;4042:6;4034;4027:22;3986:2;4087;4074:16;4113:2;4105:6;4102:14;4099:2;;;4134:6;4126;4119:22;4099:2;4192:7;4187:2;4177:6;4174:1;4170:14;4166:2;4162:23;4158:32;4155:45;4152:2;;;4218:6;4210;4203:22;4152:2;4254;4246:11;;;;;4276:6;;-1:-1:-1;3728:560:139;;-1:-1:-1;;;;3728:560:139:o;4293:368::-;4377:6;4430:2;4418:9;4409:7;4405:23;4401:32;4398:2;;;4451:6;4443;4436:22;4398:2;4496:9;4483:23;-1:-1:-1;;;;;4521:6:139;4518:30;4515:2;;;4566:6;4558;4551:22;4515:2;4594:61;4647:7;4638:6;4627:9;4623:22;4594:61;:::i;:::-;4584:71;4388:273;-1:-1:-1;;;;4388:273:139:o;4666:503::-;4759:6;4767;4820:2;4808:9;4799:7;4795:23;4791:32;4788:2;;;4841:6;4833;4826:22;4788:2;4886:9;4873:23;-1:-1:-1;;;;;4911:6:139;4908:30;4905:2;;;4956:6;4948;4941:22;4905:2;4984:61;5037:7;5028:6;5017:9;5013:22;4984:61;:::i;:::-;4974:71;;;5095:2;5084:9;5080:18;5067:32;5108:31;5133:5;5108:31;:::i;:::-;5158:5;5148:15;;;4778:391;;;;;:::o;5174:212::-;5241:6;5294:2;5282:9;5273:7;5269:23;5265:32;5262:2;;;5315:6;5307;5300:22;5262:2;5343:37;5370:9;5343:37;:::i;5391:606::-;5476:6;5484;5492;5545:2;5533:9;5524:7;5520:23;5516:32;5513:2;;;5566:6;5558;5551:22;5513:2;5603:9;5597:16;5656:5;5653:1;5642:20;5635:5;5632:31;5622:2;;5682:6;5674;5667:22;5622:2;5760;5745:18;;5739:25;5710:5;;-1:-1:-1;5773:33:139;5739:25;5773:33;:::i;:::-;5877:2;5862:18;;5856:25;5825:7;;-1:-1:-1;5925:10:139;5912:24;;5900:37;;5890:2;;5956:6;5948;5941:22;5890:2;5984:7;5974:17;;;5503:494;;;;;:::o;6002:746::-;6082:6;6135:2;6123:9;6114:7;6110:23;6106:32;6103:2;;;6156:6;6148;6141:22;6103:2;6194:9;6188:16;-1:-1:-1;;;;;6264:2:139;6256:6;6253:14;6250:2;;;6285:6;6277;6270:22;6250:2;6328:6;6317:9;6313:22;6303:32;;6373:7;6366:4;6362:2;6358:13;6354:27;6344:2;;6400:6;6392;6385:22;6344:2;6434;6428:9;6456:2;6452;6449:10;6446:2;;;6462:18;;:::i;:::-;6504:53;6547:2;6528:13;;-1:-1:-1;;6524:27:139;6553:2;6520:36;6504:53;:::i;:::-;6491:66;;6580:2;6573:5;6566:17;6620:7;6615:2;6610;6606;6602:11;6598:20;6595:33;6592:2;;;6646:6;6638;6631:22;6592:2;6664:54;6715:2;6710;6703:5;6699:14;6694:2;6690;6686:11;6664:54;:::i;:::-;-1:-1:-1;6737:5:139;6093:655;-1:-1:-1;;;;6093:655:139:o;6753:842::-;6867:6;6875;6883;6891;6899;6907;6915;6968:3;6956:9;6947:7;6943:23;6939:33;6936:2;;;6990:6;6982;6975:22;6936:2;7027:9;7021:16;7046:31;7071:5;7046:31;:::i;:::-;7096:5;-1:-1:-1;7120:47:139;7163:2;7148:18;;7120:47;:::i;:::-;7110:57;;7186:48;7230:2;7219:9;7215:18;7186:48;:::i;:::-;7176:58;;7253:48;7297:2;7286:9;7282:18;7253:48;:::i;:::-;7243:58;;7320:49;7364:3;7353:9;7349:19;7320:49;:::i;:::-;7310:59;;7414:3;7403:9;7399:19;7393:26;7463:4;7454:7;7450:18;7441:7;7438:31;7428:2;;7488:6;7480;7473:22;7428:2;7516:7;-1:-1:-1;7542:47:139;7584:3;7569:19;;7542:47;:::i;:::-;7532:57;;6926:669;;;;;;;;;;:::o;7600:190::-;7659:6;7712:2;7700:9;7691:7;7687:23;7683:32;7680:2;;;7733:6;7725;7718:22;7680:2;-1:-1:-1;7761:23:139;;7670:120;-1:-1:-1;7670:120:139:o;7795:194::-;7865:6;7918:2;7906:9;7897:7;7893:23;7889:32;7886:2;;;7939:6;7931;7924:22;7886:2;-1:-1:-1;7967:16:139;;7876:113;-1:-1:-1;7876:113:139:o;7994:325::-;8062:6;8070;8123:2;8111:9;8102:7;8098:23;8094:32;8091:2;;;8144:6;8136;8129:22;8091:2;8185:9;8172:23;8162:33;;8245:2;8234:9;8230:18;8217:32;8258:31;8283:5;8258:31;:::i;8324:1206::-;8487:6;8495;8503;8511;8519;8527;8535;8543;8551;8559;8567:7;8576;8630:3;8618:9;8609:7;8605:23;8601:33;8598:2;;;8652:6;8644;8637:22;8598:2;8689:9;8683:16;-1:-1:-1;;;;;8732:5:139;8728:38;8721:5;8718:49;8708:2;;8786:6;8778;8771:22;8708:2;8814:5;-1:-1:-1;8838:49:139;8883:2;8868:18;;8838:49;:::i;:::-;8828:59;;8906:49;8951:2;8940:9;8936:18;8906:49;:::i;:::-;8896:59;;8974:49;9019:2;9008:9;9004:18;8974:49;:::i;:::-;8964:59;;9042:49;9086:3;9075:9;9071:19;9042:49;:::i;:::-;9032:59;;9110:48;9153:3;9142:9;9138:19;9110:48;:::i;:::-;9100:58;;9177:48;9220:3;9209:9;9205:19;9177:48;:::i;:::-;9167:58;;9244:50;9289:3;9278:9;9274:19;9244:50;:::i;:::-;9234:60;;9334:3;9323:9;9319:19;9313:26;9303:36;;9379:3;9368:9;9364:19;9358:26;9348:36;;9404:50;9449:3;9438:9;9434:19;9404:50;:::i;:::-;9393:61;;9474:50;9519:3;9508:9;9504:19;9474:50;:::i;:::-;9463:61;;8588:942;;;;;;;;;;;;;;:::o;9535:257::-;9576:3;9614:5;9608:12;9641:6;9636:3;9629:19;9657:63;9713:6;9706:4;9701:3;9697:14;9690:4;9683:5;9679:16;9657:63;:::i;:::-;9774:2;9753:15;-1:-1:-1;;9749:29:139;9740:39;;;;9781:4;9736:50;;9584:208;-1:-1:-1;;9584:208:139:o;9797:273::-;9980:6;9972;9967:3;9954:33;9936:3;10006:16;;10031:15;;;10006:16;9944:126;-1:-1:-1;9944:126:139:o;10075:274::-;10204:3;10242:6;10236:13;10258:53;10304:6;10299:3;10292:4;10284:6;10280:17;10258:53;:::i;:::-;10327:16;;;;;10212:137;-1:-1:-1;;10212:137:139:o;10354:203::-;-1:-1:-1;;;;;10518:32:139;;;;10500:51;;10488:2;10473:18;;10455:102::o;10955:375::-;-1:-1:-1;;;;;11213:15:139;;;11195:34;;11265:15;;;;11260:2;11245:18;;11238:43;11312:2;11297:18;;11290:34;;;;11145:2;11130:18;;11112:218::o;11986:645::-;12151:2;12203:21;;;12273:13;;12176:18;;;12295:22;;;12122:4;;12151:2;12374:15;;;;12348:2;12333:18;;;12122:4;12420:185;12434:6;12431:1;12428:13;12420:185;;;12509:13;;12502:21;12495:29;12483:42;;12580:15;;;;12545:12;;;;12456:1;12449:9;12420:185;;;-1:-1:-1;12622:3:139;;12131:500;-1:-1:-1;;;;;;12131:500:139:o;12636:803::-;12796:4;12825:2;12865;12854:9;12850:18;12895:2;12884:9;12877:21;12918:6;12953;12947:13;12984:6;12976;12969:22;13022:2;13011:9;13007:18;13000:25;;13084:2;13074:6;13071:1;13067:14;13056:9;13052:30;13048:39;13034:53;;13122:2;13114:6;13110:15;13143:4;13156:254;13170:6;13167:1;13164:13;13156:254;;;13263:2;13259:7;13247:9;13239:6;13235:22;13231:36;13226:3;13219:49;13291:39;13323:6;13314;13308:13;13291:39;:::i;:::-;13281:49;-1:-1:-1;13388:12:139;;;;13353:15;;;;13192:1;13185:9;13156:254;;;-1:-1:-1;13427:6:139;;12805:634;-1:-1:-1;;;;;;;12805:634:139:o;15057:219::-;15206:2;15195:9;15188:21;15169:4;15226:44;15266:2;15255:9;15251:18;15243:6;15226:44;:::i;16474:415::-;16676:2;16658:21;;;16715:2;16695:18;;;16688:30;16754:34;16749:2;16734:18;;16727:62;-1:-1:-1;;;16820:2:139;16805:18;;16798:49;16879:3;16864:19;;16648:241::o;19179:425::-;19381:2;19363:21;;;19420:2;19400:18;;;19393:30;19459:34;19454:2;19439:18;;19432:62;19530:31;19525:2;19510:18;;19503:59;19594:3;19579:19;;19353:251::o;22008:341::-;22210:2;22192:21;;;22249:2;22229:18;;;22222:30;-1:-1:-1;;;22283:2:139;22268:18;;22261:47;22340:2;22325:18;;22182:167::o;23860:533::-;23937:4;23943:6;24003:11;23990:25;24097:2;24093:7;24082:8;24066:14;24062:29;24058:43;24038:18;24034:68;24024:2;;24119:4;24113;24106:18;24024:2;24149:33;;24201:20;;;-1:-1:-1;;;;;;24233:30:139;;24230:2;;;24279:4;24273;24266:18;24230:2;24315:4;24303:17;;-1:-1:-1;24346:14:139;24342:27;;;24332:38;;24329:2;;;24383:1;24380;24373:12;24329:2;23954:439;;;;;:::o;24398:275::-;24469:2;24463:9;24534:2;24515:13;;-1:-1:-1;;24511:27:139;24499:40;;-1:-1:-1;;;;;24554:34:139;;24590:22;;;24551:62;24548:2;;;24616:18;;:::i;:::-;24652:2;24645:22;24443:230;;-1:-1:-1;24443:230:139:o;24678:238::-;24718:3;-1:-1:-1;;;;;24785:10:139;;;24815;;;24845:12;;;24837:21;;24834:2;;;24861:18;;:::i;:::-;24897:13;;24726:190;-1:-1:-1;;;;24726:190:139:o;24921:128::-;24961:3;24992:1;24988:6;24985:1;24982:13;24979:2;;;24998:18;;:::i;:::-;-1:-1:-1;25034:9:139;;24969:80::o;25054:201::-;25094:1;-1:-1:-1;;;;;25159:10:139;;;;25178:2;;25195:18;;:::i;:::-;25233:10;;25229:20;;;;;25100:155;-1:-1:-1;;25100:155:139:o;25260:120::-;25300:1;25326;25316:2;;25331:18;;:::i;:::-;-1:-1:-1;25365:9:139;;25306:74::o;25385:272::-;25425:7;-1:-1:-1;;;;;25496:10:139;;;25526;;;25559:11;;25552:19;25581:12;;;25573:21;;25548:47;25545:2;;;25598:18;;:::i;:::-;25638:13;;25437:220;-1:-1:-1;;;;25437:220:139:o;25662:272::-;25702:7;-1:-1:-1;;;;;25773:10:139;;;25803;;;25836:11;;25829:19;25858:12;;;25850:21;;25825:47;25822:2;;;25875:18;;:::i;25939:168::-;25979:7;26045:1;26041;26037:6;26033:14;26030:1;26027:21;26022:1;26015:9;26008:17;26004:45;26001:2;;;26052:18;;:::i;:::-;-1:-1:-1;26092:9:139;;25991:116::o;26112:231::-;26152:4;-1:-1:-1;;;;;26250:10:139;;;;26220;;26272:12;;;26269:2;;;26287:18;;:::i;:::-;26324:13;;26161:182;-1:-1:-1;;;26161:182:139:o;26348:125::-;26388:4;26416:1;26413;26410:8;26407:2;;;26421:18;;:::i;:::-;-1:-1:-1;26458:9:139;;26397:76::o;26478:258::-;26550:1;26560:113;26574:6;26571:1;26568:13;26560:113;;;26650:11;;;26644:18;26631:11;;;26624:39;26596:2;26589:10;26560:113;;;26691:6;26688:1;26685:13;26682:2;;;-1:-1:-1;;26726:1:139;26708:16;;26701:27;26531:205::o;26741:135::-;26780:3;-1:-1:-1;;26801:17:139;;26798:2;;;26821:18;;:::i;:::-;-1:-1:-1;26868:1:139;26857:13;;26788:88::o;26881:127::-;26942:10;26937:3;26933:20;26930:1;26923:31;26973:4;26970:1;26963:15;26997:4;26994:1;26987:15;27013:127;27074:10;27069:3;27065:20;27062:1;27055:31;27105:4;27102:1;27095:15;27129:4;27126:1;27119:15;27145:127;27206:10;27201:3;27197:20;27194:1;27187:31;27237:4;27234:1;27227:15;27261:4;27258:1;27251:15;27277:131;-1:-1:-1;;;;;27352:31:139;;27342:42;;27332:2;;27398:1;27395;27388:12;27332:2;27322:86;:::o"},"methodIdentifiers":{"DURATION()":"1be05289","balanceOf(address)":"70a08231","boostedFactor(uint256,address)":"403017ca","claimReward(uint256,address)":"e70eb392","claimRewards(uint256[],address)":"0520537f","deposits(uint256)":"b02c43d0","derivedLiquidity(uint256,address)":"ea9f5517","enableEmergencyMode()":"c5b1c7d0","endTime()":"3197cbb6","factory()":"c45a0155","inEmergency()":"9be54945","incentives()":"0d5df7ba","isIdsWithinRange(uint256[])":"0b9cc5fd","left(address)":"99bcc052","maxBoostRequirement()":"69db8b27","multicall(bytes[])":"ac9650d8","nonfungiblePositionManager()":"b44a2722","notifyRewardAmount(address,uint256)":"b66503cf","onERC721Received(address,address,uint256,bytes)":"150b7a02","pool()":"16f0115b","registry()":"7b103999","rewards(address)":"0700037d","stakes(uint256)":"d5a44f86","startTime()":"78e97925","timelock()":"d33219b4","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalLiquiditySupply()":"79aa9db5","totalRewardUnclaimed()":"bf7989b9","totalSecondsClaimedX128()":"a65b781e","totalSupply()":"18160ddd","withdrawToken(uint256)":"50baa622","withdrawViaEmergency(uint256)":"8a16a30b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_timelock\",\"type\":\"address\"},{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"_nonfungiblePositionManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"IncentiveCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"}],\"name\":\"TokenStaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUnstaked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DURATION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"boostedFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"original\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"boosted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"claimRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"derivedLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableEmergencyMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inEmergency\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incentives\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"isIdsWithinRange\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBoostRequirement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonfungiblePositionManager\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"stakes\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideInitialX128\",\"type\":\"uint160\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalLiquiditySupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRewardUnclaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSecondsClaimedX128\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"withdrawViaEmergency\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"claimReward(uint256,address)\":{\"params\":{\"to\":\"The address where claimed rewards will be sent to\",\"tokenId\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of reward tokens claimed\"}},\"claimRewards(uint256[],address)\":{\"params\":{\"to\":\"The address where claimed rewards will be sent to\",\"tokenIds\":\"The IDs of the token\"},\"returns\":{\"_0\":\"The amount of reward tokens claimed\"}},\"constructor\":{\"params\":{\"_nonfungiblePositionManager\":\"the NFT position manager contract address\"}},\"incentives()\":{\"returns\":{\"_0\":\"The amount of reward token not yet claimed by users\",\"_1\":\"Total liquidity-seconds claimed, represented as a UQ32.128\"}},\"multicall(bytes[])\":{\"details\":\"The `msg.value` should not be trusted for any method callable from multicall.\",\"params\":{\"data\":\"The encoded function data for each of the calls to make to this contract\"},\"returns\":{\"results\":\"The results from each of the calls passed in via data\"}},\"stakes(uint256)\":{\"params\":{\"tokenId\":\"The ID of the staked token\"},\"returns\":{\"liquidity\":\"The amount of liquidity in the NFT as of the last time the rewards were computed\",\"secondsPerLiquidityInsideInitialX128\":\"secondsPerLiquidity represented as a UQ32.128\"}},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"withdrawToken(uint256)\":{\"params\":{\"tokenId\":\"The ID of the token\"}}},\"stateVariables\":{\"_allTokens\":{\"details\":\"Array with all token ids, used for enumeration\"},\"_allTokensIndex\":{\"details\":\"Mapping from token id to position in the allTokens array\"},\"_ownedTokens\":{\"details\":\"Mapping from owner to list of owned token IDs\"},\"_ownedTokensIndex\":{\"details\":\"Mapping from token ID to index of the owner tokens list\"},\"_stakes\":{\"details\":\"stakes[tokenId] => Stake\"},\"balanceOf\":{\"params\":{\"depositOwner\":\"The owner of the deposited NFT\"},\"return\":\"uint256 The current no of nfts deposited by owner.\",\"returns\":{\"_0\":\"uint256 The current no of nfts deposited by owner.\"}},\"deposits\":{\"details\":\"deposits[tokenId] => Deposit\"},\"rewards\":{\"details\":\"rewards[owner] => uint256\",\"params\":{\"owner\":\"The owner for which the rewards owed are checked\"},\"return\":\"rewardsOwed The amount of the reward token claimable by the owner\",\"returns\":{\"_0\":\"rewardsOwed The amount of the reward token claimable by the owner\"}}},\"title\":\"Uniswap V3 canonical staking interface\",\"version\":1},\"userdoc\":{\"events\":{\"IncentiveCreated(address,uint256,uint256,uint256)\":{\"notice\":\"Event emitted when a liquidity mining incentive has been created\"},\"RewardClaimed(address,uint256)\":{\"notice\":\"Event emitted when a reward token has been claimed\"},\"TokenStaked(uint256,uint128)\":{\"notice\":\"Event emitted when a Uniswap V3 LP token has been staked\"},\"TokenUnstaked(uint256)\":{\"notice\":\"Event emitted when a Uniswap V3 LP token has been unstaked\"}},\"kind\":\"user\",\"methods\":{\"balanceOf(address)\":{\"notice\":\"Returns information about a deposited NFT\"},\"factory()\":{\"notice\":\"The Uniswap V3 Factory\"},\"incentives()\":{\"notice\":\"Represents a staking incentive\"},\"isIdsWithinRange(uint256[])\":{\"notice\":\"checks if the given LP token ids are within their given liquidaty range or not\"},\"multicall(bytes[])\":{\"notice\":\"Call multiple functions in the current contract and return the data from all of them if they all succeed\"},\"nonfungiblePositionManager()\":{\"notice\":\"The nonfungible position manager with which this staking contract is compatible\"},\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Upon receiving a Uniswap V3 ERC721, creates the token deposit setting owner to `from`. Also stakes token in one or more incentives if properly formatted `data` has a length > 0.\"},\"rewards(address)\":{\"notice\":\"Returns amounts of reward tokens owed to a given address according to the last time all stakes were updated\"},\"stakes(uint256)\":{\"notice\":\"Returns information about a staked liquidity NFT\"},\"withdrawToken(uint256)\":{\"notice\":\"Withdraws a Uniswap V3 LP token `tokenId` from this contract to the recipient `to`\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/BaseGaugeV2UniV3.sol\":\"BaseGaugeV2UniV3\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/gauges/BaseGaugeV2UniV3.sol\":{\"keccak256\":\"0xbbaa1539336664fe51da5e2340eb23f1b168707c01e9f2694723a795cbd73fe2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://240125be0b91cd5dae40a363a12b76796b54c4d6be6d25926ddfb7215bac4554\",\"dweb:/ipfs/QmRGynhvoB3TqYnRKeZwtFKMcxQ7x6mC6ahDgTrZAusuLc\"]},\"contracts/interfaces/IGaugeV2UniV3.sol\":{\"keccak256\":\"0x3fcd5239e84923e836af3e543e9c542570cfa335f10ed7c7d08b31594f903fed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed1f1cc8a48eb573b162b730d4a003b999f1a35ed972e53e04027652f4982947\",\"dweb:/ipfs/QmSjXPuJSe3JAnLqvNL9jBJt4vsJMAXtRsZFy44UR9ydwZ\"]},\"contracts/interfaces/IMulticall.sol\":{\"keccak256\":\"0x5ac8732c889e0b3f3f4d37d12d50b10c4a55a365433134ded9fbd39dc68cde69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://17d6288af42560f49758c883416a42473dbcafd77efc3736dd54d27df34b6550\",\"dweb:/ipfs/QmPqduaQPYYx1FsCtzQqgkc44sEK7GkWySiYP2cYvrzUfv\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/interfaces/IUniswapV3Staker.sol\":{\"keccak256\":\"0x9613c67c55ab1c16862f50b7f60ea02d5d1da62dc3cf9e8d14464a176bff1f86\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e891b8daddaa7ac7723c24e0c6f2ebf11af12c0991e1acaa53daeef745b1b5ff\",\"dweb:/ipfs/QmeFnFWi7dGbsCr9uCReVhsQfUSAXNwFueNjoZZbGKnxvz\"]},\"contracts/utils/FullMath.sol\":{\"keccak256\":\"0xde415faa1da91d573faa1fcd220dee69595eaa1bb659a5ef9d321f2d293e2ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c51efa4f1d6f4a5db3c701c30ed4b0a8f42507d2dc8c7cea6e1a0f7babf56fc\",\"dweb:/ipfs/QmWKA8owXW4w8x7nAjT9LuVBdCt3UBmHy6xgwtGGDpKZ6f\"]},\"contracts/utils/Multicall.sol\":{\"keccak256\":\"0xedeaa12956f8014f8f1dec1c5fbb3fa7b87cea059f902a38800d581189bd4e9e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://79977c3a92063a1bca18d06fcdfc3b38d42f87ea0a54d5369174587938dbdc54\",\"dweb:/ipfs/QmYaYTvH8W2obQu23KSGbZtjoSZhHHJ6bXjPidrgpKR9K9\"]},\"contracts/utils/NFTPositionInfo.sol\":{\"keccak256\":\"0x58e7a461b1f190ea9dd1480b1a9a031e50304c80f14e40908936c45f20981b48\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c705d809320056979d767e7bb8036356f93b4e008b12746f6b57f01d914a3962\",\"dweb:/ipfs/QmUkVwEg1wPJRWuttC7eLiNqAPbLfiNQ3UsTQBgcoWXEfr\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]},\"contracts/utils/RewardMath.sol\":{\"keccak256\":\"0x73c1eac0dc294695f19d482afcbcce21498896d909bed8e8aef8f6dad1145d37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d37c8dfbd93734c5e329f8ae1262cc2c003747d4c2ffc22bf5c6f261123262\",\"dweb:/ipfs/QmVrFATTNcng1EYPfDZaCfh78B8G8p3z2vnREMXUdWG2cL\"]},\"contracts/utils/TransferHelper.sol\":{\"keccak256\":\"0x58b260d54a90f8e16b7c279b313270f05a5d69a167290616b7e4ce59bc6a9cf1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7fc7af8cebc43b273b9d05b829311fb39070251e38e383cac62dc01675429719\",\"dweb:/ipfs/QmWn1KjCucJLq1zadsWSv5zSe9YKL3PbuRhwrxLdhbA1oJ\"]},\"contracts/utils/TransferHelperExtended.sol\":{\"keccak256\":\"0x17530cb0d6babd1d2314a412a8619a4f01993e8aa258a613678243192d79eb9c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cb7c55a100dfe219f63f239ddf084fde1b3a6abc635ed05de5d4c853442a9cce\",\"dweb:/ipfs/QmScNTffJPiQiRtCJuAbupEaLAmEbiMYKbo4zv5XRv2J9K\"]}},\"version\":1}"}},"contracts/gauges/BaseV2GaugeFactory.sol":{"BaseV2GaugeFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_gauge","type":"address"},{"indexed":false,"internalType":"address","name":"_pool","type":"address"},{"indexed":false,"internalType":"address","name":"_bribe","type":"address"}],"name":"GaugeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_bribe","type":"address"},{"internalType":"address","name":"_registry","type":"address"}],"name":"createGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506135f3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631c48e0fa14610030575b600080fd5b61004361003e366004610124565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b6000808483604051610070906100fb565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156100a3573d6000803e3d6000fd5b50604080516001600160a01b038381168252888116602083015287168183015290519192507f9b8203efe7fe42185a7755b0510f87c8b693971d6a7c22520aaf683e6b124261919081900360600190a1949350505050565b6134578061016783390190565b80356001600160a01b038116811461011f57600080fd5b919050565b600080600060608486031215610138578283fd5b61014184610108565b925061014f60208501610108565b915061015d60408501610108565b9050925092509256fe60c060405269010f0cf064dd5920000060075560016014553480156200002457600080fd5b506040516200345738038062003457833981016040819052620000479162000083565b6001600160601b0319606092831b811660a052911b16608052620000ba565b80516001600160a01b03811681146200007e57600080fd5b919050565b6000806040838503121562000096578182fd5b620000a18362000066565b9150620000b16020840162000066565b90509250929050565b60805160601c60a05160601c61331662000141600039600081816103b30152818161114e0152818161172801528181611c1501526121a70152600081816104ea01528181610ad101528181610b5f01528181610c59015281816111d10152818161158c01528181611b7f01528181611d1901528181611e40015261202f01526133166000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806376f4be3611610146578063c4bf0220116100c3578063e688639611610087578063e688639614610622578063e8111a121461062a578063f122977714610633578063f301af4214610646578063f7412baf14610659578063fd3140981461068057600080fd5b8063c4bf0220146105cb578063d35e2544146105de578063d7da4bb0146105f1578063da09d19d146105fa578063de5f62681461061a57600080fd5b8063a495e5b51161010a578063a495e5b514610547578063aa47965214610572578063b2e0df9614610592578063b66503cf146105a5578063b6b55f25146105b857600080fd5b806376f4be36146104d25780637b103999146104e5578063853828b61461050c57806399bcc052146105145780639ce43f901461052757600080fd5b80633a4b66f1116101d4578063638634ee11610198578063638634ee1461045657806363fb415b1461046957806369db8b27146104895780636fcfff451461049257806370a08231146104b257600080fd5b80633a4b66f1146103ae5780633ca068b6146103e25780634d5ce0381461040d57806350baa622146104305780635a45d0521461044357600080fd5b8063221ca18c1161021b578063221ca18c146103135780632ce9aead146103335780632e1a7d4d1461035357806331279d3d14610368578063367034611461037b57600080fd5b806301316ddf146102585780630cdfebfa146102a4578063115c6f39146102d657806318160ddd146102f7578063211dc32d14610300575b600080fd5b61028a610266366004613040565b60126020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61028a6102b2366004613040565b600e6020908152600092835260408084209091529082529020805460019091015482565b6102e96102e4366004613040565b610693565b60405190815260200161029b565b6102e9600a5481565b6102e961030e366004612e9d565b610800565b6102e9610321366004612e65565b60036020526000908152604090205481565b6102e9610341366004612e65565b60056020526000908152604090205481565b61036661036136600461308b565b610a90565b005b610366610376366004612ed5565b610a9c565b61039e610389366004612e65565b60026020526000908152604090205460ff1681565b604051901515815260200161029b565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b60405161029b91906130d7565b6102e96103f0366004612e9d565b600960209081526000928352604080842090915290825290205481565b61039e61041b366004612e65565b600d6020526000908152604090205460ff1681565b61036661043e36600461308b565b6110e3565b610366610451366004613040565b611370565b6102e9610464366004612e65565b6113a8565b6102e9610477366004612e65565b60016020526000908152604090205481565b6102e960075481565b6102e96104a0366004612e65565b600f6020526000908152604090205481565b6102e96104c0366004612e65565b600b6020526000908152604090205481565b6102e96104e036600461308b565b6113cc565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b6103666114fe565b6102e9610522366004612e65565b611519565b6102e9610535366004612e65565b60066020526000908152604090205481565b6102e9610555366004612e9d565b600860209081526000928352604080842090915290825290205481565b6102e9610580366004612e65565b60136020526000908152604090205481565b6103666105a036600461308b565b61158a565b6103666105b3366004613040565b6116fc565b6103666105c636600461308b565b611b53565b6103666105d9366004612f9e565b611e3e565b6102e96105ec366004612e65565b611ff8565b6102e960005481565b6102e9610608366004612e65565b60046020526000908152604090205481565b61036661218c565b600c546102e9565b6102e960115481565b6102e9610641366004612e65565b61222c565b6103d561065436600461308b565b6122e8565b61028a61066736600461308b565b6010602052600090815260409020805460019091015482565b61028a61068e366004613040565b612312565b6001600160a01b0382166000908152600f6020526040812054806106bb5760009150506107fa565b6001600160a01b0384166000908152600e6020526040812084916106e0600185613241565b8152602001908152602001600020600001541161070a57610702600182613241565b9150506107fa565b6001600160a01b0384166000908152600e6020908152604080832083805290915290205483101561073f5760009150506107fa565b60008061074d600184613241565b90505b818111156107f557600060026107668484613241565b6107709190613202565b61077a9083613241565b6001600160a01b0388166000908152600e602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107cf575093506107fa92505050565b80518711156107e0578193506107ee565b6107eb600183613241565b92505b5050610750565b509150505b92915050565b6001600160a01b03808316600081815260086020908152604080832094861683529381528382205492825260128152838220828052905291822054829161084691612531565b6001600160a01b0384166000908152600f60205260409020549091506108705760009150506107fa565b600061087c8483610693565b6001600160a01b0385166000908152600f6020526040812054919250906108a590600190613241565b9050600060016108b58484613241565b11156109c457825b6108c8600184613241565b8110156109c2576001600160a01b0387166000818152600e60208181526040808420868552808352818520825180840190935280548352600190810154838501529585529290915292829061091e9086906131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600061095d8b8460000151612312565b50905060006109708c8460000151612312565b509050670de0b6b3a76400006109868383613241565b85602001516109959190613222565b61099f9190613202565b6109a990876131ea565b95505050505080806109ba90613284565b9150506108bd565b505b6001600160a01b0386166000908152600e60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610a0e908a90612312565b506001600160a01b03808b166000908152600960209081526040808320938d1683529290522054909150670de0b6b3a764000090610a4d908390612531565b610a568b61222c565b610a609190613241565b8360200151610a6f9190613222565b610a799190613202565b610a8390846131ea565b9998505050505050505050565b610a99816110e3565b50565b601454600114610ac75760405162461bcd60e51b8152600401610abe9061314b565b60405180910390fd5b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2a57600080fd5b505af1158015610b3e573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610c0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee9190612e81565b6001600160a01b0316336001600160a01b0316145b610c4f5760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610abe565b60016014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612e81565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610d1391906130d7565b600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050600260145550600090505b815181101561103d57610d87828281518110610d7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612548565b60066000858581518110610dab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060056000878781518110610df957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e62838381518110610e5457634e487b7160e01b600052603260045260246000fd5b602002602001015185610800565b90504260086000858581518110610e8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060066000848481518110610efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460096000858581518110610f4957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610fb657610fb6838381518110610fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151858361272b565b828281518110610fd657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161102291815260200190565b60405180910390a3508061103581613284565b915050610d4e565b506001600160a01b038216600090815260016020526040812054815490918291819061106a908490613241565b90915550611079905083611ff8565b6001600160a01b03841660009081526001602052604081208290558054919250829181906110a89084906131ea565b90915550506001600160a01b0383166000908152600160205260409020546110d190849061285b565b6110d9612966565b5050600160145550565b6014546001146111055760405162461bcd60e51b8152600401610abe9061314b565b600260148190555080600a600082825461111f9190613241565b9091555050336000908152600b602052604081208054839290611143908490613241565b9091555061117490507f0000000000000000000000000000000000000000000000000000000000000000338361272b565b336000908152600b6020526040902054811480156111a157503360009081526002602052604090205460ff165b156112b25733600090815260026020908152604091829020805460ff1916905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190612e81565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b815260040161127f91906130d7565b600060405180830381600087803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b3360009081526001602052604081205481549091829181906112d5908490613241565b909155506112e4905033611ff8565b33600090815260016020526040812082905580549192508291819061130a9084906131ea565b909155505033600081815260016020526040902054611329919061285b565b611331612966565b60405182815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906020015b60405180910390a250506001601455565b61137a8282612a09565b6001600160a01b03909316600090815260066020908152604080832060059092529091209390935590915550565b6001600160a01b0381166000908152600460205260408120546107fa904290612b68565b601154600090806113e05750600092915050565b82601060006113f0600185613241565b8152602001908152602001600020600001541161141957611412600182613241565b9392505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01548310156114545750600092915050565b600080611462600184613241565b90505b818111156114f6576000600261147b8484613241565b6114859190613202565b61148f9083613241565b6000818152601060209081526040918290208251808401909352805480845260019091015491830191909152919250908714156114d0575095945050505050565b80518711156114e1578193506114ef565b6114ec600183613241565b92505b5050611465565b509392505050565b336000908152600b602052604090205461151790610a90565b565b6001600160a01b038116600090815260046020526040812054421061154057506000919050565b6001600160a01b038216600090815260046020526040812054611564904290613241565b6001600160a01b0384166000908152600360205260409020549091506114129082613222565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561165357600080fd5b505afa158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168b9190612e81565b6001600160a01b0316336001600160a01b0316146116bb5760405162461bcd60e51b8152600401610abe9061316f565b60075460408051918252602082018390527fd4e4efcfcf51e1a8c6521aadc7b9b28c60ef879531e81752c4286e1fa644ef29910160405180910390a1600755565b60145460011461171e5760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156117985760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610abe565b600081116117b85760405162461bcd60e51b8152600401610abe90613195565b6001600160a01b0382166000908152600360205260409020546117e1576117e182600042612b77565b6117ea82612548565b6001600160a01b03841660009081526006602090815260408083206005835281842094909455939092556004909152205442106118585761182d82333084612c66565b61183a62093a8082613202565b6001600160a01b038316600090815260036020526040902055611924565b6001600160a01b03821660009081526004602052604081205461187c904290613241565b6001600160a01b038416600090815260036020526040812054919250906118a39083613222565b90508083116118e45760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610abe565b6118f084333086612c66565b62093a806118fe82856131ea565b6119089190613202565b6001600160a01b03851660009081526003602052604090205550505b6001600160a01b03821660009081526003602052604090205461197a5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610abe565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906119a99030906004016130d7565b60206040518083038186803b1580156119c157600080fd5b505afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906130a3565b9050611a0862093a8082613202565b6001600160a01b0384166000908152600360205260409020541115611a6a5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610abe565b611a7762093a80426131ea565b6001600160a01b038416600090815260046020908152604080832093909355600d9052205460ff16611b09576001600160a01b0383166000818152600d60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160145550565b601454600114611b755760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b5050505060008111611c105760405162461bcd60e51b8152600401610abe90613195565b611c3c7f0000000000000000000000000000000000000000000000000000000000000000333084612c66565b80600a6000828254611c4e91906131ea565b9091555050336000908152600b602052604081208054839290611c729084906131ea565b9091555050336000908152600160205260408120548154909182918190611c9a908490613241565b90915550611ca9905033611ff8565b336000908152600160205260408120829055805491925082918190611ccf9084906131ea565b90915550503360009081526002602052604090205460ff16611dfa5733600090815260026020908152604091829020805460ff1916600117905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611d6457600080fd5b505afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190612e81565b6001600160a01b03166397a302f7336040518263ffffffff1660e01b8152600401611dc791906130d7565b600060405180830381600087803b158015611de157600080fd5b505af1158015611df5573d6000803e3d6000fd5b505050505b611e04338261285b565b611e0c612966565b60405182815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200161135f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611e9757600080fd5b505afa158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b158015611f0757600080fd5b505afa158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612e81565b6001600160a01b0316336001600160a01b031614611f6f5760405162461bcd60e51b8152600401610abe9061316f565b600080836001600160a01b031683604051611f8a91906130bb565b6000604051808303816000865af19150503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b5091509150818190611ff15760405162461bcd60e51b8152600401610abe91906130eb565b5050505050565b6001600160a01b0381166000908152600b602052604081205481606461201f836014613222565b6120299190613202565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561208657600080fd5b505afa15801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be9190612e81565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016120e991906130d7565b60206040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213991906130a3565b905060006064600754838661214e9190613222565b612159906050613222565b6121639190613202565b61216d9190613202565b905061218261217c82856131ea565b85612b68565b9695505050505050565b6040516370a0823160e01b8152611517906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906121dc9033906004016130d7565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906130a3565b6000805461225057506001600160a01b031660009081526006602052604090205490565b600080546001600160a01b038416825260036020908152604080842054600583528185205460049093529320549192670de0b6b3a764000092909161229491612b68565b61229d866113a8565b6122a79190613241565b6122b19190613222565b6122bb9190613222565b6122c59190613202565b6001600160a01b0383166000908152600660205260409020546107fa91906131ea565b600c81815481106122f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526013602052604081205481908061233f57600080925092505061252a565b6001600160a01b03851660009081526012602052604081208591612364600185613241565b81526020019081526020016000206000015411612401576001600160a01b03851660009081526012602052604081209061239f600184613241565b81526020019081526020016000206001015460126000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846123e59190613241565b815260200190815260200160002060000154925092505061252a565b6001600160a01b038516600090815260126020908152604080832083805290915290205484101561243957600080925092505061252a565b600080612447600184613241565b90505b818111156124f957600060026124608484613241565b61246a9190613202565b6124749083613241565b6001600160a01b03891660009081526012602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156124d35760208101519051909650945061252a9350505050565b80518811156124e4578193506124f2565b6124ef600183613241565b92505b505061244a565b506001600160a01b038616600090815260126020908152604080832093835292905220600181015490549093509150505b9250929050565b6000818310156125415781611412565b5090919050565b6001600160a01b0381166000908152600560209081526040808320546006909252822054601154839291906125805794909350915050565b6001600160a01b0385166000908152600360205260409020546125a7579442945092505050565b60006125b2836113cc565b9050600060016011546125c59190613241565b905060016125d38383613241565b11156126ab57815b6125e6600183613241565b8110156126a957600081815260106020908152604091829020825180840190935280548352600101549082018190521561269657600060108161262a8560016131ea565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806126758c8460000151866000015187602001518d612daa565b909250905061268482896131ea565b97506126918c8983612b77565b975050505b50806126a181613284565b9150506125db565b505b600081815260106020908152604091829020825180840190935280548352600101549082018190521561271d5760006126fe896126e78b6113a8565b84516126f3908a612531565b85602001518a612daa565b50905061270b81866131ea565b9450612718898642612b77565b429550505b509196929550919350505050565b6000836001600160a01b03163b116127555760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916127b191906130bb565b6000604051808303816000865af19150503d80600081146127ee576040519150601f19603f3d011682016040523d82523d6000602084013e6127f3565b606091505b509150915081801561281d57508051158061281d57508080602001905181019061281d919061306b565b611ff15760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610abe565b6001600160a01b0382166000908152600f6020526040902054429080158015906128b957506001600160a01b0384166000908152600e6020526040812083916128a5600185613241565b815260200190815260200160002060000154145b156128fc576001600160a01b0384166000908152600e6020526040812084916128e3600185613241565b8152602081019190915260400160002060010155612960565b60408051808201825283815260208082018681526001600160a01b0388166000908152600e83528481208682529092529290209051815590516001918201556129469082906131ea565b6001600160a01b0385166000908152600f60205260409020555b50505050565b60115442811580159061299857508060106000612984600186613241565b815260200190815260200160002060000154145b156129c957600054601060006001856129b19190613241565b81526020810191909152604001600020600101555050565b60408051808201825282815260008054602080840191825286835260109052929020905181559051600191820155612a029083906131ea565b6011555050565b6001600160a01b038216600090815260056020908152604080832054600690925282205460115483929190612a41579250905061252a565b6001600160a01b038616600090815260036020526040902054612a6a57925042915061252a9050565b6000612a75836113cc565b90506000612a916001601154612a8b9190613241565b88612b68565b9050815b81811015612b59576000818152601060209081526040918290208251808401909352805483526001015490820181905215612b46576000601081612ada8560016131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612b258d8460000151866000015187602001518d612daa565b9092509050612b3482896131ea565b9750612b418d8983612b77565b975050505b5080612b5181613284565b915050612a95565b50919792965091945050505050565b60008183106125415781611412565b6001600160a01b0383166000908152601360205260409020548015801590612bd357506001600160a01b03841660009081526012602052604081208391612bbf600185613241565b815260200190815260200160002060000154145b15612bfd576001600160a01b038416600090815260126020526040812084916128e3600185613241565b60408051808201825283815260208082018681526001600160a01b038816600090815260128352848120868252909252929020905181559051600191820155612c479082906131ea565b6001600160a01b03851660009081526013602052604090205550505050565b6000846001600160a01b03163b11612c905760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612cf491906130bb565b6000604051808303816000865af19150503d8060008114612d31576040519150601f19603f3d011682016040523d82523d6000602084013e612d36565b606091505b5091509150818015612d60575080511580612d60575080806020019051810190612d60919061306b565b612da25760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610abe565b505050505050565b6000806000612db98785612531565b6001600160a01b0389166000908152600360205260409020549091508590670de0b6b3a764000090612e0c612dee8a89612531565b6001600160a01b038d16600090815260046020526040902054612b68565b6001600160a01b038c16600090815260046020526040902054612e30908690612b68565b612e3a9190613241565b612e449190613222565b612e4e9190613222565b612e589190613202565b9890975095505050505050565b600060208284031215612e76578081fd5b8135611412816132cb565b600060208284031215612e92578081fd5b8151611412816132cb565b60008060408385031215612eaf578081fd5b8235612eba816132cb565b91506020830135612eca816132cb565b809150509250929050565b60008060408385031215612ee7578182fd5b8235612ef2816132cb565b915060208381013567ffffffffffffffff80821115612f0f578384fd5b818601915086601f830112612f22578384fd5b813581811115612f3457612f346132b5565b8060051b9150612f458483016131b9565b8181528481019084860184860187018b1015612f5f578788fd5b8795505b83861015612f8d5780359450612f78856132cb565b84835260019590950194918601918601612f63565b508096505050505050509250929050565b60008060408385031215612fb0578182fd5b8235612fbb816132cb565b915060208381013567ffffffffffffffff80821115612fd8578384fd5b818601915086601f830112612feb578384fd5b813581811115612ffd57612ffd6132b5565b61300f601f8201601f191685016131b9565b91508082528784828501011115613024578485fd5b8084840185840137810190920192909252919491935090915050565b60008060408385031215613052578182fd5b823561305d816132cb565b946020939093013593505050565b60006020828403121561307c578081fd5b81518015158114611412578182fd5b60006020828403121561309c578081fd5b5035919050565b6000602082840312156130b4578081fd5b5051919050565b600082516130cd818460208701613258565b9190910192915050565b6001600160a01b0391909116815260200190565b602081526000825180602084015261310a816040850160208701613258565b601f01601f19169190910160400192915050565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156131e2576131e26132b5565b604052919050565b600082198211156131fd576131fd61329f565b500190565b60008261321d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561323c5761323c61329f565b500290565b6000828210156132535761325361329f565b500390565b60005b8381101561327357818101518382015260200161325b565b838111156129605750506000910152565b60006000198214156132985761329861329f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9957600080fdfea2646970667358221220ef76c7b05bc344d038c159b25b16152f542ef861b30603bd627f5c17846627b264736f6c63430008040033a2646970667358221220f7526ccbad9f2382fd39b6daf90b27f420a325b96584cc9739549935cfaecb6664736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35F3 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1C48E0FA EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x124 JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x70 SWAP1 PUSH2 0xFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9B8203EFE7FE42185A7755B0510F87C8B693971D6A7C22520AAF683E6B124261 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3457 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x138 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x141 DUP5 PUSH2 0x108 JUMP JUMPDEST SWAP3 POP PUSH2 0x14F PUSH1 0x20 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP2 POP PUSH2 0x15D PUSH1 0x40 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH10 0x10F0CF064DD59200000 PUSH1 0x7 SSTORE PUSH1 0x1 PUSH1 0x14 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3457 CODESIZE SUB DUP1 PUSH3 0x3457 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x47 SWAP2 PUSH3 0x83 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH3 0xBA JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x96 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH3 0xA1 DUP4 PUSH3 0x66 JUMP JUMPDEST SWAP2 POP PUSH3 0xB1 PUSH1 0x20 DUP5 ADD PUSH3 0x66 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x3316 PUSH3 0x141 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3B3 ADD MSTORE DUP2 DUP2 PUSH2 0x114E ADD MSTORE DUP2 DUP2 PUSH2 0x1728 ADD MSTORE DUP2 DUP2 PUSH2 0x1C15 ADD MSTORE PUSH2 0x21A7 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4EA ADD MSTORE DUP2 DUP2 PUSH2 0xAD1 ADD MSTORE DUP2 DUP2 PUSH2 0xB5F ADD MSTORE DUP2 DUP2 PUSH2 0xC59 ADD MSTORE DUP2 DUP2 PUSH2 0x11D1 ADD MSTORE DUP2 DUP2 PUSH2 0x158C ADD MSTORE DUP2 DUP2 PUSH2 0x1B7F ADD MSTORE DUP2 DUP2 PUSH2 0x1D19 ADD MSTORE DUP2 DUP2 PUSH2 0x1E40 ADD MSTORE PUSH2 0x202F ADD MSTORE PUSH2 0x3316 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xC4BF0220 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x62A JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDE5F6268 EQ PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA495E5B5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x572 JUMPI DUP1 PUSH4 0xB2E0DF96 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x638634EE GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x221CA18C GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x300 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28A PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28A PUSH2 0x2B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x800 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0xA90 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x366 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x39E PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x3F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39E PUSH2 0x41B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x10E3 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x14FE JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1519 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x580 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x158A JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x1B53 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x5EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x218C JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x641 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x222C JUMP JUMPDEST PUSH2 0x3D5 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x6BB JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x6E0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x70A JUMPI PUSH2 0x702 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x74D PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x766 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x770 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x77A SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x7CF JUMPI POP SWAP4 POP PUSH2 0x7FA SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x7E0 JUMPI DUP2 SWAP4 POP PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x7EB PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x750 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x846 SWAP2 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x870 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87C DUP5 DUP4 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x8A5 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x8B5 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x9C4 JUMPI DUP3 JUMPDEST PUSH2 0x8C8 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x91E SWAP1 DUP7 SWAP1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x95D DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x970 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x986 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x995 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x9A9 SWAP1 DUP8 PUSH2 0x31EA JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x9BA SWAP1 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8BD JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0xA0E SWAP1 DUP11 SWAP1 PUSH2 0x2312 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xA4D SWAP1 DUP4 SWAP1 PUSH2 0x2531 JUMP JUMPDEST PUSH2 0xA56 DUP12 PUSH2 0x222C JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA6F SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0xA83 SWAP1 DUP5 PUSH2 0x31EA JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA99 DUP2 PUSH2 0x10E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xC03 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBEE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD13 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x14 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x103D JUMPI PUSH2 0xD87 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDF9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE62 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x800 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x6 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF49 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xFB6 JUMPI PUSH2 0xFB6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x272B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1022 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1035 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1079 SWAP1 POP DUP4 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x10A8 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10D1 SWAP1 DUP5 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x2966 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1105 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x111F SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1143 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1174 SWAP1 POP PUSH32 0x0 CALLER DUP4 PUSH2 0x272B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ DUP1 ISZERO PUSH2 0x11A1 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12B2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127F SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x12D5 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x12E4 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x130A SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1329 SWAP2 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1331 PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE JUMP JUMPDEST PUSH2 0x137A DUP3 DUP3 PUSH2 0x2A09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7FA SWAP1 TIMESTAMP SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x13E0 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x13F0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1419 JUMPI PUSH2 0x1412 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH32 0x6E0956CDA88CAD152E89927E53611735B61A5C762D1428573C6931B0A5EFCB01 SLOAD DUP4 LT ISZERO PUSH2 0x1454 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1462 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x147B DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x148F SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x14D0 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x14E1 JUMPI DUP2 SWAP4 POP PUSH2 0x14EF JUMP JUMPDEST PUSH2 0x14EC PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1465 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1517 SWAP1 PUSH2 0xA90 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1540 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1564 SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1412 SWAP1 DUP3 PUSH2 0x3222 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x161B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x168B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xD4E4EFCFCF51E1A8C6521AADC7B9B28C60EF879531E81752C4286E1FA644EF29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x171E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x17E1 JUMPI PUSH2 0x17E1 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST PUSH2 0x17EA DUP3 PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1858 JUMPI PUSH2 0x182D DUP3 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST PUSH2 0x183A PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x187C SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x18A3 SWAP1 DUP4 PUSH2 0x3222 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x18F0 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2C66 JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x18FE DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST PUSH2 0x1908 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x197A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x19A9 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A08 PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x1A77 PUSH3 0x93A80 TIMESTAMP PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xD SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B09 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xDF6966C971051C3D54EC59162606531493A51404A002842F56009D7E5CF4A8C7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1B75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 GT PUSH2 0x1C10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH2 0x1C3C PUSH32 0x0 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C4E SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C72 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1C9A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1CA9 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1CCF SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1DFA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D9C SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC7 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1E04 CALLER DUP3 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1E0C PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH2 0x135F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ECF SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3F SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F8A SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 PUSH1 0x64 PUSH2 0x201F DUP4 PUSH1 0x14 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2029 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2086 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20BE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E9 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2139 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x7 SLOAD DUP4 DUP7 PUSH2 0x214E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2159 SWAP1 PUSH1 0x50 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2163 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH2 0x2182 PUSH2 0x217C DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST DUP6 PUSH2 0x2B68 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x1517 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x21DC SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x2250 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x5 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2294 SWAP2 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x229D DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x22A7 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22BB SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22C5 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7FA SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0xC DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2364 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x2401 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x239F PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x23E5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2439 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2447 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x2460 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x2474 SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x24D3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x252A SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x24E4 JUMPI DUP2 SWAP4 POP PUSH2 0x24F2 JUMP JUMPDEST PUSH2 0x24EF PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x244A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2580 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25A7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x25C5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x25D3 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x26AB JUMPI DUP2 JUMPDEST PUSH2 0x25E6 PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26A9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2696 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x262A DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2675 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2684 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2691 DUP13 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x26A1 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x25DB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 PUSH2 0x26FE DUP10 PUSH2 0x26E7 DUP12 PUSH2 0x13A8 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x26F3 SWAP1 DUP11 PUSH2 0x2531 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2DAA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x270B DUP2 DUP7 PUSH2 0x31EA JUMP JUMPDEST SWAP5 POP PUSH2 0x2718 DUP10 DUP7 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2755 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x27B1 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27F3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x281D JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x281D JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x281D SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28B9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x28A5 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x28FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2960 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2946 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2998 JUMPI POP DUP1 PUSH1 0x10 PUSH1 0x0 PUSH2 0x2984 PUSH1 0x1 DUP7 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x29C9 JUMPI PUSH1 0x0 SLOAD PUSH1 0x10 PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x29B1 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0x10 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2A02 SWAP1 DUP4 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x11 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A41 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2A6A JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x252A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A75 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2A91 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x2A8B SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP9 PUSH2 0x2B68 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B59 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x2ADA DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2B25 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2B34 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2B41 DUP14 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2B51 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2A95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2BD3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2BBF PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C47 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2C90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2CF4 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2D31 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2D36 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2D60 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D60 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x2DA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2DB9 DUP8 DUP6 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2E0C PUSH2 0x2DEE DUP11 DUP10 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E30 SWAP1 DUP7 SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x2E3A SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E58 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E76 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EAF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EBA DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2ECA DUP2 PUSH2 0x32CB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EF2 DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F0F JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F22 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2F34 JUMPI PUSH2 0x2F34 PUSH2 0x32B5 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x2F45 DUP5 DUP4 ADD PUSH2 0x31B9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x2F5F JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2F8D JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x2F78 DUP6 PUSH2 0x32CB JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x2F63 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2FBB DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FD8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FEB JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH2 0x2FFD PUSH2 0x32B5 JUMP JUMPDEST PUSH2 0x300F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x31B9 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3024 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x305D DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1412 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x309C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x30CD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x310A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x31E2 JUMPI PUSH2 0x31E2 PUSH2 0x32B5 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x329F JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x321D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x323C JUMPI PUSH2 0x323C PUSH2 0x329F JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3253 JUMPI PUSH2 0x3253 PUSH2 0x329F JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3273 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x325B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2960 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3298 JUMPI PUSH2 0x3298 PUSH2 0x329F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA99 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF PUSH23 0xC7B05BC344D038C159B25B16152F542EF861B30603BD62 PUSH32 0x5C17846627B264736F6C63430008040033A2646970667358221220F7526CCBAD SWAP16 0x23 DUP3 REVERT CODECOPY 0xB6 0xDA 0xF9 SIGNEXTEND 0x27 DELEGATECALL KECCAK256 LOG3 0x25 0xB9 PUSH6 0x84CC97395499 CALLDATALOAD 0xCF 0xAE 0xCB PUSH7 0x64736F6C634300 ADDMOD DIV STOP CALLER ","sourceMap":"168:336:85:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1444:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"296:240:139","statements":[{"body":{"nodeType":"YulBlock","src":"342:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"351:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"359:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"344:6:139"},"nodeType":"YulFunctionCall","src":"344:22:139"},"nodeType":"YulExpressionStatement","src":"344:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"317:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"326:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"313:3:139"},"nodeType":"YulFunctionCall","src":"313:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"338:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"309:3:139"},"nodeType":"YulFunctionCall","src":"309:32:139"},"nodeType":"YulIf","src":"306:2:139"},{"nodeType":"YulAssignment","src":"377:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"406:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"387:18:139"},"nodeType":"YulFunctionCall","src":"387:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"377:6:139"}]},{"nodeType":"YulAssignment","src":"425:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"469:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:139"},"nodeType":"YulFunctionCall","src":"454:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"435:18:139"},"nodeType":"YulFunctionCall","src":"435:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"425:6:139"}]},{"nodeType":"YulAssignment","src":"482:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"515:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"526:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"511:3:139"},"nodeType":"YulFunctionCall","src":"511:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"492:18:139"},"nodeType":"YulFunctionCall","src":"492:38:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"482:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"246:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"257:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"269:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"277:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"285:6:139","type":""}],"src":"192:344:139"},{"body":{"nodeType":"YulBlock","src":"642:102:139","statements":[{"nodeType":"YulAssignment","src":"652:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"664:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"675:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"660:3:139"},"nodeType":"YulFunctionCall","src":"660:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"652:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"694:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"709:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"721:3:139"},"nodeType":"YulFunctionCall","src":"721:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"734:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"717:3:139"},"nodeType":"YulFunctionCall","src":"717:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"705:3:139"},"nodeType":"YulFunctionCall","src":"705:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"687:6:139"},"nodeType":"YulFunctionCall","src":"687:51:139"},"nodeType":"YulExpressionStatement","src":"687:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"611:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"622:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"633:4:139","type":""}],"src":"541:203:139"},{"body":{"nodeType":"YulBlock","src":"878:175:139","statements":[{"nodeType":"YulAssignment","src":"888:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"900:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"911:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"896:3:139"},"nodeType":"YulFunctionCall","src":"896:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"888:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"923:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"941:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"946:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"937:3:139"},"nodeType":"YulFunctionCall","src":"937:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"950:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"933:3:139"},"nodeType":"YulFunctionCall","src":"933:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"927:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"968:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"983:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"991:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"979:3:139"},"nodeType":"YulFunctionCall","src":"979:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"961:6:139"},"nodeType":"YulFunctionCall","src":"961:34:139"},"nodeType":"YulExpressionStatement","src":"961:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1015:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1026:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1011:3:139"},"nodeType":"YulFunctionCall","src":"1011:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1035:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1043:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1031:3:139"},"nodeType":"YulFunctionCall","src":"1031:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:139"},"nodeType":"YulFunctionCall","src":"1004:43:139"},"nodeType":"YulExpressionStatement","src":"1004:43:139"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"850:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"858:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"869:4:139","type":""}],"src":"749:304:139"},{"body":{"nodeType":"YulBlock","src":"1215:227:139","statements":[{"nodeType":"YulAssignment","src":"1225:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1237:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1248:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1233:3:139"},"nodeType":"YulFunctionCall","src":"1233:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1225:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"1260:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1278:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1283:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1274:3:139"},"nodeType":"YulFunctionCall","src":"1274:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1287:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1270:3:139"},"nodeType":"YulFunctionCall","src":"1270:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1264:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1305:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1320:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1328:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1316:3:139"},"nodeType":"YulFunctionCall","src":"1316:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1298:6:139"},"nodeType":"YulFunctionCall","src":"1298:34:139"},"nodeType":"YulExpressionStatement","src":"1298:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1352:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1363:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1348:3:139"},"nodeType":"YulFunctionCall","src":"1348:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1372:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1380:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1368:3:139"},"nodeType":"YulFunctionCall","src":"1368:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1341:6:139"},"nodeType":"YulFunctionCall","src":"1341:43:139"},"nodeType":"YulExpressionStatement","src":"1341:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1404:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1415:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1400:3:139"},"nodeType":"YulFunctionCall","src":"1400:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1424:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1432:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1420:3:139"},"nodeType":"YulFunctionCall","src":"1420:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1393:6:139"},"nodeType":"YulFunctionCall","src":"1393:43:139"},"nodeType":"YulExpressionStatement","src":"1393:43:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1168:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1179:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1187:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1195:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1206:4:139","type":""}],"src":"1058:384:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80631c48e0fa14610030575b600080fd5b61004361003e366004610124565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b6000808483604051610070906100fb565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156100a3573d6000803e3d6000fd5b50604080516001600160a01b038381168252888116602083015287168183015290519192507f9b8203efe7fe42185a7755b0510f87c8b693971d6a7c22520aaf683e6b124261919081900360600190a1949350505050565b6134578061016783390190565b80356001600160a01b038116811461011f57600080fd5b919050565b600080600060608486031215610138578283fd5b61014184610108565b925061014f60208501610108565b915061015d60408501610108565b9050925092509256fe60c060405269010f0cf064dd5920000060075560016014553480156200002457600080fd5b506040516200345738038062003457833981016040819052620000479162000083565b6001600160601b0319606092831b811660a052911b16608052620000ba565b80516001600160a01b03811681146200007e57600080fd5b919050565b6000806040838503121562000096578182fd5b620000a18362000066565b9150620000b16020840162000066565b90509250929050565b60805160601c60a05160601c61331662000141600039600081816103b30152818161114e0152818161172801528181611c1501526121a70152600081816104ea01528181610ad101528181610b5f01528181610c59015281816111d10152818161158c01528181611b7f01528181611d1901528181611e40015261202f01526133166000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806376f4be3611610146578063c4bf0220116100c3578063e688639611610087578063e688639614610622578063e8111a121461062a578063f122977714610633578063f301af4214610646578063f7412baf14610659578063fd3140981461068057600080fd5b8063c4bf0220146105cb578063d35e2544146105de578063d7da4bb0146105f1578063da09d19d146105fa578063de5f62681461061a57600080fd5b8063a495e5b51161010a578063a495e5b514610547578063aa47965214610572578063b2e0df9614610592578063b66503cf146105a5578063b6b55f25146105b857600080fd5b806376f4be36146104d25780637b103999146104e5578063853828b61461050c57806399bcc052146105145780639ce43f901461052757600080fd5b80633a4b66f1116101d4578063638634ee11610198578063638634ee1461045657806363fb415b1461046957806369db8b27146104895780636fcfff451461049257806370a08231146104b257600080fd5b80633a4b66f1146103ae5780633ca068b6146103e25780634d5ce0381461040d57806350baa622146104305780635a45d0521461044357600080fd5b8063221ca18c1161021b578063221ca18c146103135780632ce9aead146103335780632e1a7d4d1461035357806331279d3d14610368578063367034611461037b57600080fd5b806301316ddf146102585780630cdfebfa146102a4578063115c6f39146102d657806318160ddd146102f7578063211dc32d14610300575b600080fd5b61028a610266366004613040565b60126020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61028a6102b2366004613040565b600e6020908152600092835260408084209091529082529020805460019091015482565b6102e96102e4366004613040565b610693565b60405190815260200161029b565b6102e9600a5481565b6102e961030e366004612e9d565b610800565b6102e9610321366004612e65565b60036020526000908152604090205481565b6102e9610341366004612e65565b60056020526000908152604090205481565b61036661036136600461308b565b610a90565b005b610366610376366004612ed5565b610a9c565b61039e610389366004612e65565b60026020526000908152604090205460ff1681565b604051901515815260200161029b565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b60405161029b91906130d7565b6102e96103f0366004612e9d565b600960209081526000928352604080842090915290825290205481565b61039e61041b366004612e65565b600d6020526000908152604090205460ff1681565b61036661043e36600461308b565b6110e3565b610366610451366004613040565b611370565b6102e9610464366004612e65565b6113a8565b6102e9610477366004612e65565b60016020526000908152604090205481565b6102e960075481565b6102e96104a0366004612e65565b600f6020526000908152604090205481565b6102e96104c0366004612e65565b600b6020526000908152604090205481565b6102e96104e036600461308b565b6113cc565b6103d57f000000000000000000000000000000000000000000000000000000000000000081565b6103666114fe565b6102e9610522366004612e65565b611519565b6102e9610535366004612e65565b60066020526000908152604090205481565b6102e9610555366004612e9d565b600860209081526000928352604080842090915290825290205481565b6102e9610580366004612e65565b60136020526000908152604090205481565b6103666105a036600461308b565b61158a565b6103666105b3366004613040565b6116fc565b6103666105c636600461308b565b611b53565b6103666105d9366004612f9e565b611e3e565b6102e96105ec366004612e65565b611ff8565b6102e960005481565b6102e9610608366004612e65565b60046020526000908152604090205481565b61036661218c565b600c546102e9565b6102e960115481565b6102e9610641366004612e65565b61222c565b6103d561065436600461308b565b6122e8565b61028a61066736600461308b565b6010602052600090815260409020805460019091015482565b61028a61068e366004613040565b612312565b6001600160a01b0382166000908152600f6020526040812054806106bb5760009150506107fa565b6001600160a01b0384166000908152600e6020526040812084916106e0600185613241565b8152602001908152602001600020600001541161070a57610702600182613241565b9150506107fa565b6001600160a01b0384166000908152600e6020908152604080832083805290915290205483101561073f5760009150506107fa565b60008061074d600184613241565b90505b818111156107f557600060026107668484613241565b6107709190613202565b61077a9083613241565b6001600160a01b0388166000908152600e602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908714156107cf575093506107fa92505050565b80518711156107e0578193506107ee565b6107eb600183613241565b92505b5050610750565b509150505b92915050565b6001600160a01b03808316600081815260086020908152604080832094861683529381528382205492825260128152838220828052905291822054829161084691612531565b6001600160a01b0384166000908152600f60205260409020549091506108705760009150506107fa565b600061087c8483610693565b6001600160a01b0385166000908152600f6020526040812054919250906108a590600190613241565b9050600060016108b58484613241565b11156109c457825b6108c8600184613241565b8110156109c2576001600160a01b0387166000818152600e60208181526040808420868552808352818520825180840190935280548352600190810154838501529585529290915292829061091e9086906131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600061095d8b8460000151612312565b50905060006109708c8460000151612312565b509050670de0b6b3a76400006109868383613241565b85602001516109959190613222565b61099f9190613202565b6109a990876131ea565b95505050505080806109ba90613284565b9150506108bd565b505b6001600160a01b0386166000908152600e60209081526040808320858452825280832081518083019092528054808352600190910154928201929092529190610a0e908a90612312565b506001600160a01b03808b166000908152600960209081526040808320938d1683529290522054909150670de0b6b3a764000090610a4d908390612531565b610a568b61222c565b610a609190613241565b8360200151610a6f9190613222565b610a799190613202565b610a8390846131ea565b9998505050505050505050565b610a99816110e3565b50565b601454600114610ac75760405162461bcd60e51b8152600401610abe9061314b565b60405180910390fd5b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2a57600080fd5b505af1158015610b3e573d6000803e3d6000fd5b50505050816001600160a01b0316336001600160a01b03161480610c0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee9190612e81565b6001600160a01b0316336001600160a01b0316145b610c4f5760405162461bcd60e51b815260206004820152601b60248201527f73656e646572206e6f74206163636f756e74206f7220766f74657200000000006044820152606401610abe565b60016014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612e81565b6001600160a01b03166363453ae1306040518263ffffffff1660e01b8152600401610d1391906130d7565b600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050600260145550600090505b815181101561103d57610d87828281518110610d7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612548565b60066000858581518110610dab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600060056000878781518110610df957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008491905055839190505550506000610e62838381518110610e5457634e487b7160e01b600052603260045260246000fd5b602002602001015185610800565b90504260086000858581518110610e8957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000208190555060066000848481518110610efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460096000858581518110610f4957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b039081168352828201939093526040918201600090812093891681529290529020558015610fb657610fb6838381518110610fa757634e487b7160e01b600052603260045260246000fd5b6020026020010151858361272b565b828281518110610fd657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316336001600160a01b03167f9aa05b3d70a9e3e2f004f039648839560576334fb45c81f91b6db03ad9e2efc98360405161102291815260200190565b60405180910390a3508061103581613284565b915050610d4e565b506001600160a01b038216600090815260016020526040812054815490918291819061106a908490613241565b90915550611079905083611ff8565b6001600160a01b03841660009081526001602052604081208290558054919250829181906110a89084906131ea565b90915550506001600160a01b0383166000908152600160205260409020546110d190849061285b565b6110d9612966565b5050600160145550565b6014546001146111055760405162461bcd60e51b8152600401610abe9061314b565b600260148190555080600a600082825461111f9190613241565b9091555050336000908152600b602052604081208054839290611143908490613241565b9091555061117490507f0000000000000000000000000000000000000000000000000000000000000000338361272b565b336000908152600b6020526040902054811480156111a157503360009081526002602052604090205460ff165b156112b25733600090815260026020908152604091829020805460ff1916905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190612e81565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b815260040161127f91906130d7565b600060405180830381600087803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b3360009081526001602052604081205481549091829181906112d5908490613241565b909155506112e4905033611ff8565b33600090815260016020526040812082905580549192508291819061130a9084906131ea565b909155505033600081815260016020526040902054611329919061285b565b611331612966565b60405182815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906020015b60405180910390a250506001601455565b61137a8282612a09565b6001600160a01b03909316600090815260066020908152604080832060059092529091209390935590915550565b6001600160a01b0381166000908152600460205260408120546107fa904290612b68565b601154600090806113e05750600092915050565b82601060006113f0600185613241565b8152602001908152602001600020600001541161141957611412600182613241565b9392505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01548310156114545750600092915050565b600080611462600184613241565b90505b818111156114f6576000600261147b8484613241565b6114859190613202565b61148f9083613241565b6000818152601060209081526040918290208251808401909352805480845260019091015491830191909152919250908714156114d0575095945050505050565b80518711156114e1578193506114ef565b6114ec600183613241565b92505b5050611465565b509392505050565b336000908152600b602052604090205461151790610a90565b565b6001600160a01b038116600090815260046020526040812054421061154057506000919050565b6001600160a01b038216600090815260046020526040812054611564904290613241565b6001600160a01b0384166000908152600360205260409020549091506114129082613222565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561165357600080fd5b505afa158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168b9190612e81565b6001600160a01b0316336001600160a01b0316146116bb5760405162461bcd60e51b8152600401610abe9061316f565b60075460408051918252602082018390527fd4e4efcfcf51e1a8c6521aadc7b9b28c60ef879531e81752c4286e1fa644ef29910160405180910390a1600755565b60145460011461171e5760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156117985760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e203d207374616b6560981b6044820152606401610abe565b600081116117b85760405162461bcd60e51b8152600401610abe90613195565b6001600160a01b0382166000908152600360205260409020546117e1576117e182600042612b77565b6117ea82612548565b6001600160a01b03841660009081526006602090815260408083206005835281842094909455939092556004909152205442106118585761182d82333084612c66565b61183a62093a8082613202565b6001600160a01b038316600090815260036020526040902055611924565b6001600160a01b03821660009081526004602052604081205461187c904290613241565b6001600160a01b038416600090815260036020526040812054919250906118a39083613222565b90508083116118e45760405162461bcd60e51b815260206004820152600d60248201526c185b5bdd5b9d080f881b19599d609a1b6044820152606401610abe565b6118f084333086612c66565b62093a806118fe82856131ea565b6119089190613202565b6001600160a01b03851660009081526003602052604090205550505b6001600160a01b03821660009081526003602052604090205461197a5760405162461bcd60e51b815260206004820152600e60248201526d072657761726472617465203d20360941b6044820152606401610abe565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906119a99030906004016130d7565b60206040518083038186803b1580156119c157600080fd5b505afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906130a3565b9050611a0862093a8082613202565b6001600160a01b0384166000908152600360205260409020541115611a6a5760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b6044820152606401610abe565b611a7762093a80426131ea565b6001600160a01b038416600090815260046020908152604080832093909355600d9052205460ff16611b09576001600160a01b0383166000818152600d60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690911790555b6040518281526001600160a01b0384169033907ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508269060200160405180910390a35050600160145550565b601454600114611b755760405162461bcd60e51b8152600401610abe9061314b565b60026014819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b5050505060008111611c105760405162461bcd60e51b8152600401610abe90613195565b611c3c7f0000000000000000000000000000000000000000000000000000000000000000333084612c66565b80600a6000828254611c4e91906131ea565b9091555050336000908152600b602052604081208054839290611c729084906131ea565b9091555050336000908152600160205260408120548154909182918190611c9a908490613241565b90915550611ca9905033611ff8565b336000908152600160205260408120829055805491925082918190611ccf9084906131ea565b90915550503360009081526002602052604090205460ff16611dfa5733600090815260026020908152604091829020805460ff1916600117905581516381ca29a160e01b815291517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926381ca29a1926004808301939192829003018186803b158015611d6457600080fd5b505afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190612e81565b6001600160a01b03166397a302f7336040518263ffffffff1660e01b8152600401611dc791906130d7565b600060405180830381600087803b158015611de157600080fd5b505af1158015611df5573d6000803e3d6000fd5b505050505b611e04338261285b565b611e0c612966565b60405182815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200161135f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611e9757600080fd5b505afa158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf9190612e81565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b158015611f0757600080fd5b505afa158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612e81565b6001600160a01b0316336001600160a01b031614611f6f5760405162461bcd60e51b8152600401610abe9061316f565b600080836001600160a01b031683604051611f8a91906130bb565b6000604051808303816000865af19150503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b5091509150818190611ff15760405162461bcd60e51b8152600401610abe91906130eb565b5050505050565b6001600160a01b0381166000908152600b602052604081205481606461201f836014613222565b6120299190613202565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561208657600080fd5b505afa15801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be9190612e81565b6001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016120e991906130d7565b60206040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213991906130a3565b905060006064600754838661214e9190613222565b612159906050613222565b6121639190613202565b61216d9190613202565b905061218261217c82856131ea565b85612b68565b9695505050505050565b6040516370a0823160e01b8152611517906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906121dc9033906004016130d7565b60206040518083038186803b1580156121f457600080fd5b505afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906130a3565b6000805461225057506001600160a01b031660009081526006602052604090205490565b600080546001600160a01b038416825260036020908152604080842054600583528185205460049093529320549192670de0b6b3a764000092909161229491612b68565b61229d866113a8565b6122a79190613241565b6122b19190613222565b6122bb9190613222565b6122c59190613202565b6001600160a01b0383166000908152600660205260409020546107fa91906131ea565b600c81815481106122f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03821660009081526013602052604081205481908061233f57600080925092505061252a565b6001600160a01b03851660009081526012602052604081208591612364600185613241565b81526020019081526020016000206000015411612401576001600160a01b03851660009081526012602052604081209061239f600184613241565b81526020019081526020016000206001015460126000876001600160a01b03166001600160a01b0316815260200190815260200160002060006001846123e59190613241565b815260200190815260200160002060000154925092505061252a565b6001600160a01b038516600090815260126020908152604080832083805290915290205484101561243957600080925092505061252a565b600080612447600184613241565b90505b818111156124f957600060026124608484613241565b61246a9190613202565b6124749083613241565b6001600160a01b03891660009081526012602090815260408083208484528252918290208251808401909352805480845260019091015491830191909152919250908814156124d35760208101519051909650945061252a9350505050565b80518811156124e4578193506124f2565b6124ef600183613241565b92505b505061244a565b506001600160a01b038616600090815260126020908152604080832093835292905220600181015490549093509150505b9250929050565b6000818310156125415781611412565b5090919050565b6001600160a01b0381166000908152600560209081526040808320546006909252822054601154839291906125805794909350915050565b6001600160a01b0385166000908152600360205260409020546125a7579442945092505050565b60006125b2836113cc565b9050600060016011546125c59190613241565b905060016125d38383613241565b11156126ab57815b6125e6600183613241565b8110156126a957600081815260106020908152604091829020825180840190935280548352600101549082018190521561269657600060108161262a8560016131ea565b81526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090506000806126758c8460000151866000015187602001518d612daa565b909250905061268482896131ea565b97506126918c8983612b77565b975050505b50806126a181613284565b9150506125db565b505b600081815260106020908152604091829020825180840190935280548352600101549082018190521561271d5760006126fe896126e78b6113a8565b84516126f3908a612531565b85602001518a612daa565b50905061270b81866131ea565b9450612718898642612b77565b429550505b509196929550919350505050565b6000836001600160a01b03163b116127555760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916127b191906130bb565b6000604051808303816000865af19150503d80600081146127ee576040519150601f19603f3d011682016040523d82523d6000602084013e6127f3565b606091505b509150915081801561281d57508051158061281d57508080602001905181019061281d919061306b565b611ff15760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610abe565b6001600160a01b0382166000908152600f6020526040902054429080158015906128b957506001600160a01b0384166000908152600e6020526040812083916128a5600185613241565b815260200190815260200160002060000154145b156128fc576001600160a01b0384166000908152600e6020526040812084916128e3600185613241565b8152602081019190915260400160002060010155612960565b60408051808201825283815260208082018681526001600160a01b0388166000908152600e83528481208682529092529290209051815590516001918201556129469082906131ea565b6001600160a01b0385166000908152600f60205260409020555b50505050565b60115442811580159061299857508060106000612984600186613241565b815260200190815260200160002060000154145b156129c957600054601060006001856129b19190613241565b81526020810191909152604001600020600101555050565b60408051808201825282815260008054602080840191825286835260109052929020905181559051600191820155612a029083906131ea565b6011555050565b6001600160a01b038216600090815260056020908152604080832054600690925282205460115483929190612a41579250905061252a565b6001600160a01b038616600090815260036020526040902054612a6a57925042915061252a9050565b6000612a75836113cc565b90506000612a916001601154612a8b9190613241565b88612b68565b9050815b81811015612b59576000818152601060209081526040918290208251808401909352805483526001015490820181905215612b46576000601081612ada8560016131ea565b8152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050600080612b258d8460000151866000015187602001518d612daa565b9092509050612b3482896131ea565b9750612b418d8983612b77565b975050505b5080612b5181613284565b915050612a95565b50919792965091945050505050565b60008183106125415781611412565b6001600160a01b0383166000908152601360205260409020548015801590612bd357506001600160a01b03841660009081526012602052604081208391612bbf600185613241565b815260200190815260200160002060000154145b15612bfd576001600160a01b038416600090815260126020526040812084916128e3600185613241565b60408051808201825283815260208082018681526001600160a01b038816600090815260128352848120868252909252929020905181559051600191820155612c479082906131ea565b6001600160a01b03851660009081526013602052604090205550505050565b6000846001600160a01b03163b11612c905760405162461bcd60e51b8152600401610abe9061311e565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612cf491906130bb565b6000604051808303816000865af19150503d8060008114612d31576040519150601f19603f3d011682016040523d82523d6000602084013e612d36565b606091505b5091509150818015612d60575080511580612d60575080806020019051810190612d60919061306b565b612da25760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b6044820152606401610abe565b505050505050565b6000806000612db98785612531565b6001600160a01b0389166000908152600360205260409020549091508590670de0b6b3a764000090612e0c612dee8a89612531565b6001600160a01b038d16600090815260046020526040902054612b68565b6001600160a01b038c16600090815260046020526040902054612e30908690612b68565b612e3a9190613241565b612e449190613222565b612e4e9190613222565b612e589190613202565b9890975095505050505050565b600060208284031215612e76578081fd5b8135611412816132cb565b600060208284031215612e92578081fd5b8151611412816132cb565b60008060408385031215612eaf578081fd5b8235612eba816132cb565b91506020830135612eca816132cb565b809150509250929050565b60008060408385031215612ee7578182fd5b8235612ef2816132cb565b915060208381013567ffffffffffffffff80821115612f0f578384fd5b818601915086601f830112612f22578384fd5b813581811115612f3457612f346132b5565b8060051b9150612f458483016131b9565b8181528481019084860184860187018b1015612f5f578788fd5b8795505b83861015612f8d5780359450612f78856132cb565b84835260019590950194918601918601612f63565b508096505050505050509250929050565b60008060408385031215612fb0578182fd5b8235612fbb816132cb565b915060208381013567ffffffffffffffff80821115612fd8578384fd5b818601915086601f830112612feb578384fd5b813581811115612ffd57612ffd6132b5565b61300f601f8201601f191685016131b9565b91508082528784828501011115613024578485fd5b8084840185840137810190920192909252919491935090915050565b60008060408385031215613052578182fd5b823561305d816132cb565b946020939093013593505050565b60006020828403121561307c578081fd5b81518015158114611412578182fd5b60006020828403121561309c578081fd5b5035919050565b6000602082840312156130b4578081fd5b5051919050565b600082516130cd818460208701613258565b9190910192915050565b6001600160a01b0391909116815260200190565b602081526000825180602084015261310a816040850160208701613258565b601f01601f19169190910160400192915050565b6020808252601390820152720d2dcecc2d8d2c840c6dec8ca40d8cadccee8d606b1b604082015260600190565b6020808252600a90820152697265656e7472616e637960b01b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252600a90820152690616d6f756e74203d20360b41b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156131e2576131e26132b5565b604052919050565b600082198211156131fd576131fd61329f565b500190565b60008261321d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561323c5761323c61329f565b500290565b6000828210156132535761325361329f565b500390565b60005b8381101561327357818101518382015260200161325b565b838111156129605750506000910152565b60006000198214156132985761329861329f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9957600080fdfea2646970667358221220ef76c7b05bc344d038c159b25b16152f542ef861b30603bd627f5c17846627b264736f6c63430008040033a2646970667358221220f7526ccbad9f2382fd39b6daf90b27f420a325b96584cc9739549935cfaecb6664736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1C48E0FA EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x124 JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x70 SWAP1 PUSH2 0xFB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9B8203EFE7FE42185A7755B0510F87C8B693971D6A7C22520AAF683E6B124261 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3457 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x138 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x141 DUP5 PUSH2 0x108 JUMP JUMPDEST SWAP3 POP PUSH2 0x14F PUSH1 0x20 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP2 POP PUSH2 0x15D PUSH1 0x40 DUP6 ADD PUSH2 0x108 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH10 0x10F0CF064DD59200000 PUSH1 0x7 SSTORE PUSH1 0x1 PUSH1 0x14 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3457 CODESIZE SUB DUP1 PUSH3 0x3457 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x47 SWAP2 PUSH3 0x83 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH3 0xBA JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x96 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH3 0xA1 DUP4 PUSH3 0x66 JUMP JUMPDEST SWAP2 POP PUSH3 0xB1 PUSH1 0x20 DUP5 ADD PUSH3 0x66 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x3316 PUSH3 0x141 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3B3 ADD MSTORE DUP2 DUP2 PUSH2 0x114E ADD MSTORE DUP2 DUP2 PUSH2 0x1728 ADD MSTORE DUP2 DUP2 PUSH2 0x1C15 ADD MSTORE PUSH2 0x21A7 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4EA ADD MSTORE DUP2 DUP2 PUSH2 0xAD1 ADD MSTORE DUP2 DUP2 PUSH2 0xB5F ADD MSTORE DUP2 DUP2 PUSH2 0xC59 ADD MSTORE DUP2 DUP2 PUSH2 0x11D1 ADD MSTORE DUP2 DUP2 PUSH2 0x158C ADD MSTORE DUP2 DUP2 PUSH2 0x1B7F ADD MSTORE DUP2 DUP2 PUSH2 0x1D19 ADD MSTORE DUP2 DUP2 PUSH2 0x1E40 ADD MSTORE PUSH2 0x202F ADD MSTORE PUSH2 0x3316 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76F4BE36 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xC4BF0220 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE6886396 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE6886396 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xE8111A12 EQ PUSH2 0x62A JUMPI DUP1 PUSH4 0xF1229777 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0xF7412BAF EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0xFD314098 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xD35E2544 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xD7DA4BB0 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0xDA09D19D EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDE5F6268 EQ PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA495E5B5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xA495E5B5 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xAA479652 EQ PUSH2 0x572 JUMPI DUP1 PUSH4 0xB2E0DF96 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76F4BE36 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0x9CE43F90 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x638634EE GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x638634EE EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x63FB415B EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3A4B66F1 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x3CA068B6 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4D5CE038 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x5A45D052 EQ PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x221CA18C GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x221CA18C EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x2CE9AEAD EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1316DDF EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCDFEBFA EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x115C6F39 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x211DC32D EQ PUSH2 0x300 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28A PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28A PUSH2 0x2B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x800 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0xA90 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x366 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x39E PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x3F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x39E PUSH2 0x41B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x10E3 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x464 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x3D5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x14FE JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1519 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x580 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x158A JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x1B53 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x5EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 PUSH2 0x218C JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E9 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x641 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0x222C JUMP JUMPDEST PUSH2 0x3D5 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x308B JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD DUP3 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x68E CALLDATASIZE PUSH1 0x4 PUSH2 0x3040 JUMP JUMPDEST PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x6BB JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x6E0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x70A JUMPI PUSH2 0x702 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP4 LT ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x74D PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x766 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x770 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x77A SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x7CF JUMPI POP SWAP4 POP PUSH2 0x7FA SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x7E0 JUMPI DUP2 SWAP4 POP PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x7EB PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x750 JUMP JUMPDEST POP SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP7 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD SWAP3 DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP3 KECCAK256 DUP3 DUP1 MSTORE SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SLOAD DUP3 SWAP2 PUSH2 0x846 SWAP2 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x870 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87C DUP5 DUP4 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x8A5 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH2 0x8B5 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x9C4 JUMPI DUP3 JUMPDEST PUSH2 0x8C8 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP7 DUP6 MSTORE DUP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP1 DUP2 ADD SLOAD DUP4 DUP6 ADD MSTORE SWAP6 DUP6 MSTORE SWAP3 SWAP1 SWAP2 MSTORE SWAP3 DUP3 SWAP1 PUSH2 0x91E SWAP1 DUP7 SWAP1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x95D DUP12 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x970 DUP13 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2312 JUMP JUMPDEST POP SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x986 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x995 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x99F SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x9A9 SWAP1 DUP8 PUSH2 0x31EA JUMP JUMPDEST SWAP6 POP POP POP POP POP DUP1 DUP1 PUSH2 0x9BA SWAP1 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8BD JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 PUSH2 0xA0E SWAP1 DUP11 SWAP1 PUSH2 0x2312 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP14 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xA4D SWAP1 DUP4 SWAP1 PUSH2 0x2531 JUMP JUMPDEST PUSH2 0xA56 DUP12 PUSH2 0x222C JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xA6F SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0xA83 SWAP1 DUP5 PUSH2 0x31EA JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA99 DUP2 PUSH2 0x10E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xC03 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBEE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xC4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73656E646572206E6F74206163636F756E74206F7220766F7465720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x63453AE1 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD13 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x2 PUSH1 0x14 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x103D JUMPI PUSH2 0xD87 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD7A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP8 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0xDF9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 SWAP2 SWAP1 POP SSTORE DUP4 SWAP2 SWAP1 POP SSTORE POP POP PUSH1 0x0 PUSH2 0xE62 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xE54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 PUSH2 0x800 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xE89 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x6 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 PUSH1 0x0 DUP6 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF49 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP4 MSTORE DUP3 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP4 DUP10 AND DUP2 MSTORE SWAP3 SWAP1 MSTORE SWAP1 KECCAK256 SSTORE DUP1 ISZERO PUSH2 0xFB6 JUMPI PUSH2 0xFB6 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH2 0x272B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x9AA05B3D70A9E3E2F004F039648839560576334FB45C81F91B6DB03AD9E2EFC9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1022 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP DUP1 PUSH2 0x1035 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x106A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1079 SWAP1 POP DUP4 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x10A8 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10D1 SWAP1 DUP5 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x2966 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1105 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x111F SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1143 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1174 SWAP1 POP PUSH32 0x0 CALLER DUP4 PUSH2 0x272B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 EQ DUP1 ISZERO PUSH2 0x11A1 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12B2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127F SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x12D5 SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x12E4 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x130A SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1329 SWAP2 SWAP1 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1331 PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE JUMP JUMPDEST PUSH2 0x137A DUP3 DUP3 PUSH2 0x2A09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x7FA SWAP1 TIMESTAMP SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 DUP1 PUSH2 0x13E0 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x13F0 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x1419 JUMPI PUSH2 0x1412 PUSH1 0x1 DUP3 PUSH2 0x3241 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH32 0x6E0956CDA88CAD152E89927E53611735B61A5C762D1428573C6931B0A5EFCB01 SLOAD DUP4 LT ISZERO PUSH2 0x1454 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1462 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x147B DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x148F SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 EQ ISZERO PUSH2 0x14D0 JUMPI POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP8 GT ISZERO PUSH2 0x14E1 JUMPI DUP2 SWAP4 POP PUSH2 0x14EF JUMP JUMPDEST PUSH2 0x14EC PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x1465 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1517 SWAP1 PUSH2 0xA90 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1540 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1564 SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x1412 SWAP1 DUP3 PUSH2 0x3222 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x161B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x168B SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xD4E4EFCFCF51E1A8C6521AADC7B9B28C60EF879531E81752C4286E1FA644EF29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x171E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x1798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x746F6B656E203D207374616B65 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x17B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x17E1 JUMPI PUSH2 0x17E1 DUP3 PUSH1 0x0 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST PUSH2 0x17EA DUP3 PUSH2 0x2548 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP4 SWAP1 SWAP3 SSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD TIMESTAMP LT PUSH2 0x1858 JUMPI PUSH2 0x182D DUP3 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST PUSH2 0x183A PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x187C SWAP1 TIMESTAMP SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x18A3 SWAP1 DUP4 PUSH2 0x3222 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x185B5BDD5B9D080F881B19599D PUSH1 0x9A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x18F0 DUP5 CALLER ADDRESS DUP7 PUSH2 0x2C66 JUMP JUMPDEST PUSH3 0x93A80 PUSH2 0x18FE DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST PUSH2 0x1908 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x197A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x72657761726472617465203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x19A9 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A08 PUSH3 0x93A80 DUP3 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH2 0x1A77 PUSH3 0x93A80 TIMESTAMP PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xD SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B09 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xDF6966C971051C3D54EC59162606531493A51404A002842F56009D7E5CF4A8C7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x1 EQ PUSH2 0x1B75 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x314B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 DUP2 GT PUSH2 0x1C10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x3195 JUMP JUMPDEST PUSH2 0x1C3C PUSH32 0x0 CALLER ADDRESS DUP5 PUSH2 0x2C66 JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C4E SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C72 SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1C9A SWAP1 DUP5 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1CA9 SWAP1 POP CALLER PUSH2 0x1FF8 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE DUP1 SLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP2 SWAP1 PUSH2 0x1CCF SWAP1 DUP5 SWAP1 PUSH2 0x31EA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1DFA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D9C SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC7 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1E04 CALLER DUP3 PUSH2 0x285B JUMP JUMPDEST PUSH2 0x1E0C PUSH2 0x2966 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH2 0x135F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1ECF SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3F SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x316F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F8A SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FCC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 PUSH1 0x64 PUSH2 0x201F DUP4 PUSH1 0x14 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2029 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2086 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20BE SWAP2 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E9 SWAP2 SWAP1 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2139 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x7 SLOAD DUP4 DUP7 PUSH2 0x214E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2159 SWAP1 PUSH1 0x50 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2163 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP1 POP PUSH2 0x2182 PUSH2 0x217C DUP3 DUP6 PUSH2 0x31EA JUMP JUMPDEST DUP6 PUSH2 0x2B68 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x1517 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x21DC SWAP1 CALLER SWAP1 PUSH1 0x4 ADD PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x30A3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x2250 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD PUSH1 0x5 DUP4 MSTORE DUP2 DUP6 KECCAK256 SLOAD PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP4 KECCAK256 SLOAD SWAP2 SWAP3 PUSH8 0xDE0B6B3A7640000 SWAP3 SWAP1 SWAP2 PUSH2 0x2294 SWAP2 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x229D DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x22A7 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22BB SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x22C5 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7FA SWAP2 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0xC DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 SWAP2 PUSH2 0x2364 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD GT PUSH2 0x2401 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x239F PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 PUSH2 0x23E5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP5 LT ISZERO PUSH2 0x2439 JUMPI PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2447 PUSH1 0x1 DUP5 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 PUSH1 0x2 PUSH2 0x2460 DUP5 DUP5 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x246A SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST PUSH2 0x2474 SWAP1 DUP4 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP1 DUP5 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP SWAP1 DUP9 EQ ISZERO PUSH2 0x24D3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD SWAP1 MLOAD SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x252A SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP9 GT ISZERO PUSH2 0x24E4 JUMPI DUP2 SWAP4 POP PUSH2 0x24F2 JUMP JUMPDEST PUSH2 0x24EF PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST SWAP3 POP JUMPDEST POP POP PUSH2 0x244A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SLOAD SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2580 JUMPI SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x25A7 JUMPI SWAP5 TIMESTAMP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x25C5 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH2 0x25D3 DUP4 DUP4 PUSH2 0x3241 JUMP JUMPDEST GT ISZERO PUSH2 0x26AB JUMPI DUP2 JUMPDEST PUSH2 0x25E6 PUSH1 0x1 DUP4 PUSH2 0x3241 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26A9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2696 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x262A DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2675 DUP13 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2684 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2691 DUP13 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x26A1 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x25DB JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 PUSH2 0x26FE DUP10 PUSH2 0x26E7 DUP12 PUSH2 0x13A8 JUMP JUMPDEST DUP5 MLOAD PUSH2 0x26F3 SWAP1 DUP11 PUSH2 0x2531 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP11 PUSH2 0x2DAA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x270B DUP2 DUP7 PUSH2 0x31EA JUMP JUMPDEST SWAP5 POP PUSH2 0x2718 DUP10 DUP7 TIMESTAMP PUSH2 0x2B77 JUMP JUMPDEST TIMESTAMP SWAP6 POP POP JUMPDEST POP SWAP2 SWAP7 SWAP3 SWAP6 POP SWAP2 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2755 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x27B1 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27F3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x281D JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x281D JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x281D SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x1FF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28B9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x28A5 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x28FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE PUSH2 0x2960 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2946 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD TIMESTAMP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2998 JUMPI POP DUP1 PUSH1 0x10 PUSH1 0x0 PUSH2 0x2984 PUSH1 0x1 DUP7 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x29C9 JUMPI PUSH1 0x0 SLOAD PUSH1 0x10 PUSH1 0x0 PUSH1 0x1 DUP6 PUSH2 0x29B1 SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP7 DUP4 MSTORE PUSH1 0x10 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2A02 SWAP1 DUP4 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x11 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0x11 SLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A41 JUMPI SWAP3 POP SWAP1 POP PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2A6A JUMPI SWAP3 POP TIMESTAMP SWAP2 POP PUSH2 0x252A SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A75 DUP4 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2A91 PUSH1 0x1 PUSH1 0x11 SLOAD PUSH2 0x2A8B SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST DUP9 PUSH2 0x2B68 JUMP JUMPDEST SWAP1 POP DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B59 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 PUSH1 0x10 DUP2 PUSH2 0x2ADA DUP6 PUSH1 0x1 PUSH2 0x31EA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2B25 DUP14 DUP5 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD DUP14 PUSH2 0x2DAA JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2B34 DUP3 DUP10 PUSH2 0x31EA JUMP JUMPDEST SWAP8 POP PUSH2 0x2B41 DUP14 DUP10 DUP4 PUSH2 0x2B77 JUMP JUMPDEST SWAP8 POP POP POP JUMPDEST POP DUP1 PUSH2 0x2B51 DUP2 PUSH2 0x3284 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2A95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP3 SWAP7 POP SWAP2 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2541 JUMPI DUP2 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2BD3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 SWAP2 PUSH2 0x2BBF PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ JUMPDEST ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP2 PUSH2 0x28E3 PUSH1 0x1 DUP6 PUSH2 0x3241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP7 DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 SWAP1 MLOAD DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP2 DUP3 ADD SSTORE PUSH2 0x2C47 SWAP1 DUP3 SWAP1 PUSH2 0x31EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x2C90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xABE SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2CF4 SWAP2 SWAP1 PUSH2 0x30BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2D31 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2D36 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x2D60 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D60 SWAP2 SWAP1 PUSH2 0x306B JUMP JUMPDEST PUSH2 0x2DA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xABE JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2DB9 DUP8 DUP6 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP6 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x2E0C PUSH2 0x2DEE DUP11 DUP10 PUSH2 0x2531 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E30 SWAP1 DUP7 SWAP1 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x2E3A SWAP2 SWAP1 PUSH2 0x3241 JUMP JUMPDEST PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x3222 JUMP JUMPDEST PUSH2 0x2E58 SWAP2 SWAP1 PUSH2 0x3202 JUMP JUMPDEST SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E76 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1412 DUP2 PUSH2 0x32CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EAF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EBA DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2ECA DUP2 PUSH2 0x32CB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2EF2 DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F0F JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F22 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2F34 JUMPI PUSH2 0x2F34 PUSH2 0x32B5 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x2F45 DUP5 DUP4 ADD PUSH2 0x31B9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x2F5F JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x2F8D JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x2F78 DUP6 PUSH2 0x32CB JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x2F63 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB0 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2FBB DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FD8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FEB JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH2 0x2FFD PUSH2 0x32B5 JUMP JUMPDEST PUSH2 0x300F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x31B9 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3024 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x305D DUP2 PUSH2 0x32CB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1412 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x309C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x30CD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x310A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0xD2DCECC2D8D2C840C6DEC8CA40D8CADCCEE8D PUSH1 0x6B SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x7265656E7472616E6379 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xA SWAP1 DUP3 ADD MSTORE PUSH10 0x616D6F756E74203D203 PUSH1 0xB4 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x31E2 JUMPI PUSH2 0x31E2 PUSH2 0x32B5 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x31FD JUMPI PUSH2 0x31FD PUSH2 0x329F JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x321D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x323C JUMPI PUSH2 0x323C PUSH2 0x329F JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3253 JUMPI PUSH2 0x3253 PUSH2 0x329F JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3273 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x325B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2960 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3298 JUMPI PUSH2 0x3298 PUSH2 0x329F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA99 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF PUSH23 0xC7B05BC344D038C159B25B16152F542EF861B30603BD62 PUSH32 0x5C17846627B264736F6C63430008040033A2646970667358221220F7526CCBAD SWAP16 0x23 DUP3 REVERT CODECOPY 0xB6 0xDA 0xF9 SIGNEXTEND 0x27 DELEGATECALL KECCAK256 LOG3 0x25 0xB9 PUSH6 0x84CC97395499 CALLDATALOAD 0xCF 0xAE 0xCB PUSH7 0x64736F6C634300 ADDMOD DIV STOP CALLER ","sourceMap":"168:336:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:283;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;705:32:139;;;687:51;;675:2;660:18;219:283:85;;;;;;;;347:7;366:13;406:5;413:9;390:33;;;;;:::i;:::-;-1:-1:-1;;;;;979:15:139;;;961:34;;1031:15;;1026:2;1011:18;;1004:43;911:2;896:18;390:33:85;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;439:34:85;;;-1:-1:-1;;;;;1316:15:139;;;1298:34;;1368:15;;;1363:2;1348:18;;1341:43;1420:15;;1400:18;;;1393:43;439:34:85;;1316:15:139;;-1:-1:-1;439:34:85;;;;;;1248:2:139;439:34:85;;;490:5;219:283;-1:-1:-1;;;;219:283:85:o;-1:-1:-1:-;;;;;;;;:::o;14:173:139:-;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:344::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:2;;;359:6;351;344:22;306:2;387:29;406:9;387:29;:::i;:::-;377:39;;435:38;469:2;458:9;454:18;435:38;:::i;:::-;425:48;;492:38;526:2;515:9;511:18;492:38;:::i;:::-;482:48;;296:240;;;;;:::o"},"methodIdentifiers":{"createGauge(address,address,address)":"1c48e0fa"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"createGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/BaseV2GaugeFactory.sol\":\"BaseV2GaugeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/gauges/BaseGaugeV2.sol\":{\"keccak256\":\"0x844878e134da2ae735b2fb4c4d843126ad5f782ca74b2b07774c0822724fe257\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a7c88d37bf12987f1d304325d6ed8364b20cd3e722c05ab33118d4fbb4db68c\",\"dweb:/ipfs/QmTvssR9qD1Eg9kkLkb1ymEwnSkSZLDbXY7xmxxvpUXQBX\"]},\"contracts/gauges/BaseV2GaugeFactory.sol\":{\"keccak256\":\"0x59f764d61980ab899d1fd6b76a085fd022bc3643d9910a68301621a52fb9a18d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd87313ab378ac0e2e511b463a489083dd8b995fdfd2bc42d39d1b8e42314548\",\"dweb:/ipfs/QmSNJg97bQYo23vEdfrG5YNeJHWbonbUpzamcoxtQkAK3G\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeFactory.sol\":{\"keccak256\":\"0x3115db7b4b5e8881542331dc44dc88c3d44285ecc5f857460f1503b89b23fb53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://170c083969a897ed89d2fe5aef81b772344e3d66052b8b96b442ed3cd17720a6\",\"dweb:/ipfs/QmXuVFUv2PEDN6kNksH5FtpBa8FP3ww15mwHcvCNcC8Q2H\"]},\"contracts/interfaces/IGaugeV2.sol\":{\"keccak256\":\"0x3c18553ca65458ce61c119dcf77562e982252003b889e29cfb7b418f6b0651a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb8852cc39c57b2abef2f19729fb3dd7011e5121634362d46cad2928f894e344\",\"dweb:/ipfs/QmUDX6dBugtpMTjuF99z8hipLhfQAp3M4P6b5Wpva1oV7S\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/gauges/uniswapv3/BaseGaugeV3UniV3.sol":{"BaseGaugeV3UniV3":{"abi":[{"anonymous":false,"inputs":[],"name":"EmergencyModeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_old","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"MaxBoostRequirementChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"liquidty","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"derivedLiquidity","type":"uint128"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"attached","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deposits","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint128","name":"derivedLiquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"derivedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"address","name":"account","type":"address"}],"name":"derivedLiquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"emergencyCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableEmergencyMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inEmergency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"_rewardsToken","type":"address"},{"internalType":"address","name":"_nonfungiblePositionManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBoostRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"updateRewardFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawViaEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60806040526000600455600060055562093a8060065569010f0cf064dd5920000060095534801561002f57600080fd5b5060018055612b37806100436000396000f3fe608060405234801561001057600080fd5b50600436106101f75760003560e01c80638a16a30b11610120578063c4cfbf06116100b8578063d1af0c7d1161007c578063d1af0c7d14610521578063d7e79f0214610534578063df136d6514610547578063ebe2b12b14610550578063f301af421461055957600080fd5b8063c4cfbf06146104b1578063c5b1c7d0146104dc578063c8f1c3af146104e4578063c8f33c9114610510578063cd3daf9d1461051957600080fd5b80638a16a30b146103a957806399bcc052146103bc5780639be54945146103cf578063b02c43d0146103dc578063b44a272214610452578063b66503cf14610465578063b93c9a1d14610478578063c45a01551461048b578063c4bf02201461049e57600080fd5b8063386a952511610193578063386a95251461030d5780634d6ed8c41461031657806369db8b27146103295780636c6f858b1461033257806370a08231146103525780637b0a47ee146103725780637b1039991461037b5780637f8661a11461038e57806380faa57d146103a157600080fd5b806303f3e30e146101fc578063150b7a021461024257806316f0115b1461026e57806318160ddd1461028e5780631c1f78eb146102975780631c4b774b1461029f5780632e1a7d4d146102b457806331279d3d146102c757806336703461146102da575b600080fd5b61022f61020a3660046126b0565b6000908152600c6020526040902060010154600160801b90046001600160801b031690565b6040519081526020015b60405180910390f35b6102556102503660046123a0565b610579565b6040516001600160e01b03199091168152602001610239565b601054610281906001600160a01b031681565b60405161023991906127db565b61022f600b5481565b61022f6105c3565b6102b26102ad3660046126b0565b6105e1565b005b6102b26102c23660046126b0565b610761565b6102b26102d536600461243a565b610a75565b6102fd6102e83660046122e7565b60166020526000908152604090205460ff1681565b6040519015158152602001610239565b61022f60065481565b61022f6103243660046126b0565b610b09565b61022f60095481565b61022f6103403660046126b0565b600a6020526000908152604090205481565b61022f6103603660046122e7565b60116020526000908152604090205481565b61022f60055481565b600254610281906001600160a01b031681565b6102b261039c3660046126b0565b610b86565b61022f610b9b565b6102b26103b73660046126b0565b610bb2565b61022f6103ca3660046122e7565b610d5e565b6017546102fd9060ff1681565b6104236103ea3660046126b0565b600c60205260009081526040902080546001909101546001600160a01b03909116906001600160801b0380821691600160801b90041683565b604080516001600160a01b0390941684526001600160801b039283166020850152911690820152606001610239565b600f54610281906001600160a01b031681565b6102b26104733660046125a5565b610d98565b6102b261048636600461231f565b611010565b600e54610281906001600160a01b031681565b6102b26104ac366004612503565b6112d3565b6104c46104bf3660046125ea565b6114a4565b6040516001600160801b039091168152602001610239565b6102b2611635565b61022f6104f23660046126b0565b6000908152600c60205260409020600101546001600160801b031690565b61022f60075481565b61022f6118eb565b600354610281906001600160a01b031681565b6102b26105423660046126b0565b611937565b61022f60085481565b61022f60045481565b61022f6105673660046126b0565b600d6020526000908152604090205481565b60175460009060ff166105a75760405162461bcd60e51b815260040161059e906128c0565b60405180910390fd5b6105b18585611998565b50630a85bd0160e11b95945050505050565b60006105dc600654600554611da890919063ffffffff16565b905090565b600260015414156106045760405162461bcd60e51b815260040161059e906128ef565b60026001558061061381611db4565b6000828152600c602052604090205482906001600160a01b0316331461064b5760405162461bcd60e51b815260040161059e9061286e565b6000838152600d60205260409020548015610757576000848152600d60209081526040808320839055600354600c9092529182902054915163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070291906125d0565b506000848152600c60209081526040918290205482518781529182018490526001600160a01b0316917fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51910160405180910390a25b5050600180555050565b600260015414156107845760405162461bcd60e51b815260040161059e906128ef565b60026001558061079381611db4565b6000828152600c602052604090205482906001600160a01b031633146107cb5760405162461bcd60e51b815260040161059e9061286e565b6000838152600c60205260409020600101546001600160801b03166108265760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015260640161059e565b6000838152600c6020526040902060010154600b5461085491600160801b90046001600160801b0316611e03565b600b556000838152600c6020526040812080546001600160a01b0319168155600101556108813384611e0f565b61088a83611eab565b3360009081526011602052604081208054600192906108aa908490612a22565b9091555050600f54604051632142170760e11b81526001600160a01b03909116906342842e0e906108e390309033908890600401612817565b600060405180830381600087803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b50503360009081526011602052604090205415915050801561094257503360009081526016602052604090205460ff165b15610a375733600090815260166020908152604091829020805460ff1916905560025482516381ca29a160e01b815292516001600160a01b03909116926381ca29a1926004808301939192829003018186803b1580156109a157600080fd5b505afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d99190612303565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b8152600401610a0491906127db565b600060405180830381600087803b158015610a1e57600080fd5b505af1158015610a32573d6000803e3d6000fd5b505050505b60405183815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a250506001805550565b60026001541415610a985760405162461bcd60e51b815260040161059e906128ef565b600260015560005b6001600160a01b038316600090815260116020526040902054811015610b00576001600160a01b0383166000908152601260209081526040808320848452909152902054610aed816105e1565b5080610af881612a69565b915050610aa0565b50506001805550565b6000818152600d6020908152604080832054600a909252822054610b809190610b7a90670de0b6b3a764000090610b7490610b4c90610b466118eb565b90611e03565b6000888152600c6020526040902060010154600160801b90046001600160801b031690611da8565b90611f84565b90611f90565b92915050565b610b8f81610761565b610b98816105e1565b50565b60006004544210610bad575060045490565b504290565b60026001541415610bd55760405162461bcd60e51b815260040161059e906128ef565b60026001556000818152600c602052604090205481906001600160a01b03163314610c125760405162461bcd60e51b815260040161059e9061286e565b60175460ff16610c345760405162461bcd60e51b815260040161059e906128c0565b6000828152600c60205260409020600101546001600160801b0316610c925760405162461bcd60e51b81526020600482015260146024820152731cdd185ad948191bd95cc81b9bdd08195e1a5cdd60621b604482015260640161059e565b6000828152600c602052604080822080546001600160a01b0319168155600101919091555133907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d590610ce89085815260200190565b60405180910390a2600f54604051632142170760e11b81526001600160a01b03909116906342842e0e90610d2490309033908790600401612817565b600060405180830381600087803b158015610d3e57600080fd5b505af1158015610d52573d6000803e3d6000fd5b50506001805550505050565b60006004544210610d7157506000919050565b600042600454610d819190612a22565b905060055481610d919190612a03565b9392505050565b6000610da381611db4565b600260009054906101000a90046001600160a01b03166001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610df157600080fd5b505afa158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190612303565b6001600160a01b0316336001600160a01b031614610e7b5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1033b0bab3b2903b37ba32b960891b604482015260640161059e565b6004544210610e9a57600654610e92908390611f84565b600555610edd565b600454600090610eaa9042611e03565b90506000610ec360055483611da890919063ffffffff16565b600654909150610ed790610b748684611f90565b60055550505b6003546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610f0e9030906004016127db565b60206040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e91906126c8565b9050610f7560065482611f8490919063ffffffff16565b6005541115610fc15760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b604482015260640161059e565b426007819055600654610fd49190611f90565b6004556040518381527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a150505050565b600054610100900460ff16158080156110305750600054600160ff909116105b8061104a5750303b15801561104a575060005460ff166001145b6110ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161059e565b6000805460ff1916600117905580156110d0576000805461ff0019166101001790555b600f80546001600160a01b038085166001600160a01b0319928316811790935560028054918b16919092161790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b15801561113457600080fd5b505afa158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190612303565b600e80546001600160a01b039283166001600160a01b03199182168117909255600380549387169390911692909217909155604051630b4c774160e11b815260009190631698ee82906111c7908a908a908a906004016127ef565b60206040518083038186803b1580156111df57600080fd5b505afa1580156111f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112179190612303565b90506001600160a01b0381166112645760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08191bd95cdb89dd08195e1a5cdd60721b604482015260640161059e565b601080546001600160a01b0319166001600160a01b039290921691909117905580156112ca576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561132157600080fd5b505afa158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190612303565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c99190612303565b6001600160a01b0316336001600160a01b0316146113f95760405162461bcd60e51b815260040161059e9061289a565b60175460ff1661141b5760405162461bcd60e51b815260040161059e906128c0565b600080836001600160a01b03168360405161143691906127bf565b6000604051808303816000865af19150503d8060008114611473576040519150601f19603f3d011682016040523d82523d6000602084013e611478565b606091505b509150915081819061149d5760405162461bcd60e51b815260040161059e919061283b565b5050505050565b60008060646114b48560146129d4565b6114be919061299a565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190612303565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161157391906127db565b60206040518083038186803b15801561158b57600080fd5b505afa15801561159f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c391906126c8565b90506000606460095483886115d891906129d4565b6115e39060506129d4565b6115ed919061299a565b6115f7919061299a565b90506001600160801b03861661160d8285612957565b6001600160801b031610611621578561162b565b61162b8184612957565b9695505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561168357600080fd5b505afa158015611697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bb9190612303565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b1580156116f357600080fd5b505afa158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172b9190612303565b6001600160a01b0316336001600160a01b03161461175b5760405162461bcd60e51b815260040161059e9061289a565b60175460ff16156117aa5760405162461bcd60e51b8152602060048201526019602482015278616c726561647920696e20656d657267656e6379206d6f646560381b604482015260640161059e565b6017805460ff191660011790556003546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906117f19030906004016127db565b60206040518083038186803b15801561180957600080fd5b505afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184191906126c8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561188757600080fd5b505af115801561189b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bf91906125d0565b506040517f2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c590600090a1565b6000600b54600014156118ff575060085490565b6105dc61192e600b54610b74670de0b6b3a7640000611928600554611928600754610b46610b9b565b90611da8565b60085490611f90565b6000818152600c60205260409020600101546001600160801b031661198f5760405162461bcd60e51b815260206004820152600e60248201526d06c697175696469747920697320360941b604482015260640161059e565b610b9881611db4565b806119a281611db4565b600f546001600160a01b031633146119fc5760405162461bcd60e51b815260206004820152601b60248201527f6e6f742063616c6c65642066726f6d206e6674206d616e616765720000000000604482015260640161059e565b6000806000611a0a85611f9c565b60105492955090935091506001600160a01b03808516911614611a6f5760405162461bcd60e51b815260206004820181905260248201527f746f6b656e20706f6f6c206973206e6f742074686520726967687420706f6f6c604482015260640161059e565b81611ab45760405162461bcd60e51b81526020600482015260156024820152746c69717569647479206e6f7420696e2072616e676560581b604482015260640161059e565b6000816001600160801b031611611b085760405162461bcd60e51b815260206004820152601860248201527763616e6e6f74207374616b652030206c697175696469747960401b604482015260640161059e565b6000611b1482886114a4565b604080516060810182526001600160a01b03808b1682526001600160801b03808716602080850191825282871685870190815260008e8152600c9092529590209351845493166001600160a01b0319909316929092178355905192518116600160801b029216919091176001909101559050611bce86601480546000838152601560205260408120829055600182018355919091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0155565b6001600160a01b038716600081815260116020818152604080842080546012845282862081875284528286208d90558c865260138452918520919091559383525281546001929190611c21908490612982565b9091555050600b54611c3c906001600160801b038316611f90565b600b556001600160a01b03871660009081526016602052604090205460ff16611d53576001600160a01b03808816600090815260166020908152604091829020805460ff1916600117905560025482516381ca29a160e01b815292519316926381ca29a1926004808201939291829003018186803b158015611cbd57600080fd5b505afa158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf59190612303565b6001600160a01b03166397a302f7886040518263ffffffff1660e01b8152600401611d2091906127db565b600060405180830381600087803b158015611d3a57600080fd5b505af1158015611d4e573d6000803e3d6000fd5b505050505b604080518781526001600160801b038481166020830152831681830152905133917fb1a5f058b6335d833f8fd0eaa6562af341d1ad22eebaff5776988d1c6e730879919081900360600190a250505050505050565b6000610d918284612a03565b611dbc6118eb565b600855611dc7610b9b565b6007558015610b9857611dd981610b09565b6000828152600d6020908152604080832093909355600854600a90915291902055610b988161207a565b6000610d918284612a22565b6001600160a01b038216600090815260116020908152604080832054848452601390925290912054808214611e78576001600160a01b03841660009081526012602090815260408083208584528252808320548484528184208190558352601390915290208190555b5060009182526013602090815260408084208490556001600160a01b039094168352601281528383209183525290812055565b601454600090611ebd90600190612a22565b60008381526015602052604081205460148054939450909284908110611ef357634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060148381548110611f2257634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152601590915260408082208490558582528120556014805480611f6857634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000610d9182846129c0565b6000610d918284612982565b600e54600f54600091829182918291829182918291611fc8916001600160a01b0391821691168a61215d565b93509350935093506000846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561200b57600080fd5b505afa15801561201f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120439190612622565b50505050509150508497508060020b8460020b1315801561206a57508260020b8160020b12155b9799979850909695505050505050565b600e54600f5460009161209a916001600160a01b0391821691168461215d565b6000868152600c60205260409020600101549094506001600160801b038086169116141592506120cb915050575050565b6000828152600c60205260408120546001600160a01b0316906120ee83836114a4565b6000858152600c6020526040902060010154600b54919250612129916001600160801b03600160801b909204821691610b4691908516611f90565b600b556000938452600c60205260409093206001600160801b03938416600160801b02939092169290921760019091015550565b6000806000806000806000886001600160a01b03166399fbab88896040518263ffffffff1660e01b815260040161219691815260200190565b6101806040518083038186803b1580156121af57600080fd5b505afa1580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e791906126e0565b5050604051630b4c774160e11b8152949f50929d50909b509499509297509095506001600160a01b038f169450631698ee82935061222f9250879150869086906004016127ef565b60206040518083038186803b15801561224757600080fd5b505afa15801561225b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227f9190612303565b965050505093509350935093565b805161229881612ac6565b919050565b8051801515811461229857600080fd5b8051600281900b811461229857600080fd5b805161229881612adb565b805161ffff8116811461229857600080fd5b805161229881612af0565b6000602082840312156122f8578081fd5b8135610d9181612ac6565b600060208284031215612314578081fd5b8151610d9181612ac6565b60008060008060008060c08789031215612337578182fd5b863561234281612ac6565b9550602087013561235281612ac6565b9450604087013561236281612ac6565b9350606087013561237281612af0565b9250608087013561238281612ac6565b915060a087013561239281612ac6565b809150509295509295509295565b6000806000806000608086880312156123b7578081fd5b85356123c281612ac6565b945060208601356123d281612ac6565b935060408601359250606086013567ffffffffffffffff808211156123f5578283fd5b818801915088601f830112612408578283fd5b813581811115612416578384fd5b896020828501011115612427578384fd5b9699959850939650602001949392505050565b6000806040838503121561244c578182fd5b823561245781612ac6565b915060208381013567ffffffffffffffff80821115612474578384fd5b818601915086601f830112612487578384fd5b81358181111561249957612499612ab0565b8060051b91506124aa848301612926565b8181528481019084860184860187018b10156124c4578788fd5b8795505b838610156124f257803594506124dd85612ac6565b848352600195909501949186019186016124c8565b508096505050505050509250929050565b60008060408385031215612515578182fd5b823561252081612ac6565b915060208381013567ffffffffffffffff8082111561253d578384fd5b818601915086601f830112612550578384fd5b81358181111561256257612562612ab0565b612574601f8201601f19168501612926565b91508082528784828501011115612589578485fd5b8084840185840137810190920192909252919491935090915050565b600080604083850312156125b7578182fd5b82356125c281612ac6565b946020939093013593505050565b6000602082840312156125e1578081fd5b610d918261229d565b600080604083850312156125fc578182fd5b823561260781612adb565b9150602083013561261781612ac6565b809150509250929050565b600080600080600080600060e0888a03121561263c578485fd5b875161264781612ac6565b9650612655602089016122ad565b9550612663604089016122ca565b9450612671606089016122ca565b935061267f608089016122ca565b925060a088015160ff81168114612694578182fd5b91506126a260c0890161229d565b905092959891949750929550565b6000602082840312156126c1578081fd5b5035919050565b6000602082840312156126d9578081fd5b5051919050565b6000806000806000806000806000806000806101808d8f031215612702578586fd5b8c516bffffffffffffffffffffffff8116811461271d578687fd5b9b5061272b60208e0161228d565b9a5061273960408e0161228d565b995061274760608e0161228d565b985061275560808e016122dc565b975061276360a08e016122ad565b965061277160c08e016122ad565b955061277f60e08e016122bf565b94506101008d015193506101208d0151925061279e6101408e016122bf565b91506127ad6101608e016122bf565b90509295989b509295989b509295989b565b600082516127d1818460208701612a39565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b602081526000825180602084015261285a816040850160208701612a39565b601f01601f19169190910160400192915050565b60208082526012908201527137b7363c903a37b5b2b734b21037bbb732b960711b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252601590820152746e6f7420696e20656d657267656e6379206d6f646560581b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561294f5761294f612ab0565b604052919050565b60006001600160801b0382811684821680830382111561297957612979612a84565b01949350505050565b6000821982111561299557612995612a84565b500190565b60006001600160801b03838116806129b4576129b4612a9a565b92169190910492915050565b6000826129cf576129cf612a9a565b500490565b60006001600160801b03828116848216811515828404821116156129fa576129fa612a84565b02949350505050565b6000816000190483118215151615612a1d57612a1d612a84565b500290565b600082821015612a3457612a34612a84565b500390565b60005b83811015612a54578181015183820152602001612a3c565b83811115612a63576000848401525b50505050565b6000600019821415612a7d57612a7d612a84565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b9857600080fd5b6001600160801b0381168114610b9857600080fd5b62ffffff81168114610b9857600080fdfea2646970667358221220460eeb3f965c7d4a86fc2850acd36a8d3299895ecbc96c0ee77af5fb7d7a981e64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x4 SSTORE PUSH1 0x0 PUSH1 0x5 SSTORE PUSH3 0x93A80 PUSH1 0x6 SSTORE PUSH10 0x10F0CF064DD59200000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 DUP1 SSTORE PUSH2 0x2B37 DUP1 PUSH2 0x43 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1F7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8A16A30B GT PUSH2 0x120 JUMPI DUP1 PUSH4 0xC4CFBF06 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xD1AF0C7D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0x521 JUMPI DUP1 PUSH4 0xD7E79F02 EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF136D65 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEBE2B12B EQ PUSH2 0x550 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4CFBF06 EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xC5B1C7D0 EQ PUSH2 0x4DC JUMPI DUP1 PUSH4 0xC8F1C3AF EQ PUSH2 0x4E4 JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0xCD3DAF9D EQ PUSH2 0x519 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8A16A30B EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x9BE54945 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB02C43D0 EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0xB44A2722 EQ PUSH2 0x452 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xB93C9A1D EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x386A9525 GT PUSH2 0x193 JUMPI DUP1 PUSH4 0x386A9525 EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0x4D6ED8C4 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0x6C6F858B EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x7B0A47EE EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x7F8661A1 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x80FAA57D EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F3E30E EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x242 JUMPI DUP1 PUSH4 0x16F0115B EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1C1F78EB EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0x1C4B774B EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x2DA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x23A0 JUMP JUMPDEST PUSH2 0x579 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x239 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x239 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH2 0x22F PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x5C3 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x2AD CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x5E1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2B2 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x2D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x243A JUMP JUMPDEST PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x2FD PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH1 0x16 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x239 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x324 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0xB86 JUMP JUMPDEST PUSH2 0x22F PUSH2 0xB9B JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0xBB2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x3CA CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH2 0xD5E JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH2 0x2FD SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 DUP6 ADD MSTORE SWAP2 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x239 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x25A5 JUMP JUMPDEST PUSH2 0xD98 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x486 CALLDATASIZE PUSH1 0x4 PUSH2 0x231F JUMP JUMPDEST PUSH2 0x1010 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x4AC CALLDATASIZE PUSH1 0x4 PUSH2 0x2503 JUMP JUMPDEST PUSH2 0x12D3 JUMP JUMPDEST PUSH2 0x4C4 PUSH2 0x4BF CALLDATASIZE PUSH1 0x4 PUSH2 0x25EA JUMP JUMPDEST PUSH2 0x14A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x239 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x4F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x18EB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x1937 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x567 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND PUSH2 0x5A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5B1 DUP6 DUP6 PUSH2 0x1998 JUMP JUMPDEST POP PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH1 0x6 SLOAD PUSH1 0x5 SLOAD PUSH2 0x1DA8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x604 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE DUP1 PUSH2 0x613 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x64B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x757 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0xC SWAP1 SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6DE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x702 SWAP2 SWAP1 PUSH2 0x25D0 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD DUP8 DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH32 0xD6F2C8500DF5B44F11E9E48B91FF9F1B9D81BC496D55570C2B1B75BF65243F51 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP PUSH1 0x1 DUP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x784 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE DUP1 PUSH2 0x793 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x43616E6E6F74207769746864726177203 PUSH1 0x7C SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xB SLOAD PUSH2 0x854 SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1E03 JUMP JUMPDEST PUSH1 0xB SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD SSTORE PUSH2 0x881 CALLER DUP5 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0x88A DUP4 PUSH2 0x1EAB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8AA SWAP1 DUP5 SWAP1 PUSH2 0x2A22 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0x8E3 SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x911 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO SWAP2 POP POP DUP1 ISZERO PUSH2 0x942 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0xA37 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x2 SLOAD DUP3 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9B5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9D9 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA04 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE CALLER SWAP1 PUSH32 0x7084F5476618D8E60B11EF0D7D3F06914655ADB8793E28FF7F018D4C76D505D5 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 DUP1 SSTORE POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0xA98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0xB00 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xAED DUP2 PUSH2 0x5E1 JUMP JUMPDEST POP DUP1 PUSH2 0xAF8 DUP2 PUSH2 0x2A69 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xAA0 JUMP JUMPDEST POP POP PUSH1 0x1 DUP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0xB7A SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xB74 SWAP1 PUSH2 0xB4C SWAP1 PUSH2 0xB46 PUSH2 0x18EB JUMP JUMPDEST SWAP1 PUSH2 0x1E03 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 PUSH2 0x1DA8 JUMP JUMPDEST SWAP1 PUSH2 0x1F84 JUMP JUMPDEST SWAP1 PUSH2 0x1F90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB8F DUP2 PUSH2 0x761 JUMP JUMPDEST PUSH2 0xB98 DUP2 PUSH2 0x5E1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD TIMESTAMP LT PUSH2 0xBAD JUMPI POP PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST POP TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND PUSH2 0xC34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28C0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1CDD185AD948191BD95CC81B9BDD08195E1A5CDD PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD SWAP2 SWAP1 SWAP2 SSTORE MLOAD CALLER SWAP1 PUSH32 0x7084F5476618D8E60B11EF0D7D3F06914655ADB8793E28FF7F018D4C76D505D5 SWAP1 PUSH2 0xCE8 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0xD24 SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 DUP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD TIMESTAMP LT PUSH2 0xD71 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH1 0x4 SLOAD PUSH2 0xD81 SWAP2 SWAP1 PUSH2 0x2A22 JUMP JUMPDEST SWAP1 POP PUSH1 0x5 SLOAD DUP2 PUSH2 0xD91 SWAP2 SWAP1 PUSH2 0x2A03 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDA3 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE29 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x3737BA1033B0BAB3B2903B37BA32B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x4 SLOAD TIMESTAMP LT PUSH2 0xE9A JUMPI PUSH1 0x6 SLOAD PUSH2 0xE92 SWAP1 DUP4 SWAP1 PUSH2 0x1F84 JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH2 0xEDD JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xEAA SWAP1 TIMESTAMP PUSH2 0x1E03 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEC3 PUSH1 0x5 SLOAD DUP4 PUSH2 0x1DA8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x6 SLOAD SWAP1 SWAP2 POP PUSH2 0xED7 SWAP1 PUSH2 0xB74 DUP7 DUP5 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x5 SSTORE POP POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xF0E SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF3A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF5E SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST SWAP1 POP PUSH2 0xF75 PUSH1 0x6 SLOAD DUP3 PUSH2 0x1F84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 SLOAD GT ISZERO PUSH2 0xFC1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST TIMESTAMP PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SLOAD PUSH2 0xFD4 SWAP2 SWAP1 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x4 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0xDE88A922E0D3B88B24E9623EFEB464919C6BF9F66857A65E2BFCF2CE87A9433D SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1030 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x104A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x104A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x10D0 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 DUP12 AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0xC45A0155 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH4 0xC45A0155 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1148 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116C SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 DUP8 AND SWAP4 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH4 0xB4C7741 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 SWAP1 PUSH4 0x1698EE82 SWAP1 PUSH2 0x11C7 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x27EF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1217 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C1BDBDB08191BD95CDB89DD08195E1A5CDD PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x10 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 DUP1 ISZERO PUSH2 0x12CA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1359 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x289A JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND PUSH2 0x141B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28C0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1436 SWAP2 SWAP1 PUSH2 0x27BF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1473 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1478 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x149D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x283B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x64 PUSH2 0x14B4 DUP6 PUSH1 0x14 PUSH2 0x29D4 JUMP JUMPDEST PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x299A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1524 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1548 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1573 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x158B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x159F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15C3 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x9 SLOAD DUP4 DUP9 PUSH2 0x15D8 SWAP2 SWAP1 PUSH2 0x29D4 JUMP JUMPDEST PUSH2 0x15E3 SWAP1 PUSH1 0x50 PUSH2 0x29D4 JUMP JUMPDEST PUSH2 0x15ED SWAP2 SWAP1 PUSH2 0x299A JUMP JUMPDEST PUSH2 0x15F7 SWAP2 SWAP1 PUSH2 0x299A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP7 AND PUSH2 0x160D DUP3 DUP6 PUSH2 0x2957 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND LT PUSH2 0x1621 JUMPI DUP6 PUSH2 0x162B JUMP JUMPDEST PUSH2 0x162B DUP2 DUP5 PUSH2 0x2957 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1697 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16BB SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1707 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x172B SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x175B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x289A JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x17AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x616C726561647920696E20656D657267656E6379206D6F6465 PUSH1 0x38 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x17F1 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x181D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1841 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18BF SWAP2 SWAP1 PUSH2 0x25D0 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x2064D51AA5A8BD67928C7675E267E05C67AD5ADF7C9098D0A602D01F36FDA9C5 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x18FF JUMPI POP PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5DC PUSH2 0x192E PUSH1 0xB SLOAD PUSH2 0xB74 PUSH8 0xDE0B6B3A7640000 PUSH2 0x1928 PUSH1 0x5 SLOAD PUSH2 0x1928 PUSH1 0x7 SLOAD PUSH2 0xB46 PUSH2 0xB9B JUMP JUMPDEST SWAP1 PUSH2 0x1DA8 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x198F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x6C6971756964697479206973203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH2 0xB98 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST DUP1 PUSH2 0x19A2 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x19FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F742063616C6C65642066726F6D206E6674206D616E616765720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A0A DUP6 PUSH2 0x1F9C JUMP JUMPDEST PUSH1 0x10 SLOAD SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP2 AND EQ PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x746F6B656E20706F6F6C206973206E6F742074686520726967687420706F6F6C PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST DUP2 PUSH2 0x1AB4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x6C69717569647479206E6F7420696E2072616E6765 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND GT PUSH2 0x1B08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x63616E6E6F74207374616B652030206C6971756964697479 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B14 DUP3 DUP9 PUSH2 0x14A4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP8 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP3 DUP8 AND DUP6 DUP8 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0xC SWAP1 SWAP3 MSTORE SWAP6 SWAP1 KECCAK256 SWAP4 MLOAD DUP5 SLOAD SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP4 SSTORE SWAP1 MLOAD SWAP3 MLOAD DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP3 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE SWAP1 POP PUSH2 0x1BCE DUP7 PUSH1 0x14 DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xCE6D7B5282BD9A3661AE061FEED1DBDA4E52AB073B1F9285BE6E155D9C38D4EC ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x12 DUP5 MSTORE DUP3 DUP7 KECCAK256 DUP2 DUP8 MSTORE DUP5 MSTORE DUP3 DUP7 KECCAK256 DUP14 SWAP1 SSTORE DUP13 DUP7 MSTORE PUSH1 0x13 DUP5 MSTORE SWAP2 DUP6 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 DUP4 MSTORE MSTORE DUP2 SLOAD PUSH1 0x1 SWAP3 SWAP2 SWAP1 PUSH2 0x1C21 SWAP1 DUP5 SWAP1 PUSH2 0x2982 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xB SLOAD PUSH2 0x1C3C SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0xB SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1D53 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x2 SLOAD DUP3 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD SWAP4 AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CD1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CF5 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D20 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP5 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP4 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0xB1A5F058B6335D833F8FD0EAA6562AF341D1AD22EEBAFF5776988D1C6E730879 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x2A03 JUMP JUMPDEST PUSH2 0x1DBC PUSH2 0x18EB JUMP JUMPDEST PUSH1 0x8 SSTORE PUSH2 0x1DC7 PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x7 SSTORE DUP1 ISZERO PUSH2 0xB98 JUMPI PUSH2 0x1DD9 DUP2 PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SLOAD PUSH1 0xA SWAP1 SWAP2 MSTORE SWAP2 SWAP1 KECCAK256 SSTORE PUSH2 0xB98 DUP2 PUSH2 0x207A JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x2A22 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE PUSH1 0x13 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP1 DUP3 EQ PUSH2 0x1E78 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE DUP2 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0x13 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP4 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1EBD SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2A22 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x14 DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x1EF3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x14 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1F22 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x15 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0x14 DUP1 SLOAD DUP1 PUSH2 0x1F68 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x29C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x2982 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x1FC8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP2 AND DUP11 PUSH2 0x215D JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3850C7BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x200B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x201F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2043 SWAP2 SWAP1 PUSH2 0x2622 JUMP JUMPDEST POP POP POP POP POP SWAP2 POP POP DUP5 SWAP8 POP DUP1 PUSH1 0x2 SIGNEXTEND DUP5 PUSH1 0x2 SIGNEXTEND SGT ISZERO DUP1 ISZERO PUSH2 0x206A JUMPI POP DUP3 PUSH1 0x2 SIGNEXTEND DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO JUMPDEST SWAP8 SWAP10 SWAP8 SWAP9 POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 PUSH2 0x209A SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP2 AND DUP5 PUSH2 0x215D JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP7 AND SWAP2 AND EQ ISZERO SWAP3 POP PUSH2 0x20CB SWAP2 POP POP JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x20EE DUP4 DUP4 PUSH2 0x14A4 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xB SLOAD SWAP2 SWAP3 POP PUSH2 0x2129 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP3 AND SWAP2 PUSH2 0xB46 SWAP2 SWAP1 DUP6 AND PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0xB SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP4 DUP5 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP4 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x99FBAB88 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2196 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21E7 SWAP2 SWAP1 PUSH2 0x26E0 JUMP JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xB4C7741 PUSH1 0xE1 SHL DUP2 MSTORE SWAP5 SWAP16 POP SWAP3 SWAP14 POP SWAP1 SWAP12 POP SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND SWAP5 POP PUSH4 0x1698EE82 SWAP4 POP PUSH2 0x222F SWAP3 POP DUP8 SWAP2 POP DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x27EF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2247 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x225B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x227F SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST SWAP7 POP POP POP POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2298 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x2298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2298 DUP2 PUSH2 0x2ADB JUMP JUMPDEST DUP1 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2298 DUP2 PUSH2 0x2AF0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD91 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2314 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xD91 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2337 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x2342 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH2 0x2352 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0x2362 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x2372 DUP2 PUSH2 0x2AF0 JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH2 0x2382 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH2 0x2392 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x23B7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x23C2 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x23D2 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x23F5 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2408 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2416 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2427 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x244C JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2457 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2474 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2487 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2499 JUMPI PUSH2 0x2499 PUSH2 0x2AB0 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x24AA DUP5 DUP4 ADD PUSH2 0x2926 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x24C4 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x24F2 JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x24DD DUP6 PUSH2 0x2AC6 JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x24C8 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2515 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2520 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x253D JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2550 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2562 JUMPI PUSH2 0x2562 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x2574 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x2926 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2589 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25B7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x25C2 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25E1 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD91 DUP3 PUSH2 0x229D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2607 DUP2 PUSH2 0x2ADB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2617 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x263C JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 MLOAD PUSH2 0x2647 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP7 POP PUSH2 0x2655 PUSH1 0x20 DUP10 ADD PUSH2 0x22AD JUMP JUMPDEST SWAP6 POP PUSH2 0x2663 PUSH1 0x40 DUP10 ADD PUSH2 0x22CA JUMP JUMPDEST SWAP5 POP PUSH2 0x2671 PUSH1 0x60 DUP10 ADD PUSH2 0x22CA JUMP JUMPDEST SWAP4 POP PUSH2 0x267F PUSH1 0x80 DUP10 ADD PUSH2 0x22CA JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2694 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP2 POP PUSH2 0x26A2 PUSH1 0xC0 DUP10 ADD PUSH2 0x229D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26C1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26D9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x180 DUP14 DUP16 SUB SLT ISZERO PUSH2 0x2702 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP13 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x271D JUMPI DUP7 DUP8 REVERT JUMPDEST SWAP12 POP PUSH2 0x272B PUSH1 0x20 DUP15 ADD PUSH2 0x228D JUMP JUMPDEST SWAP11 POP PUSH2 0x2739 PUSH1 0x40 DUP15 ADD PUSH2 0x228D JUMP JUMPDEST SWAP10 POP PUSH2 0x2747 PUSH1 0x60 DUP15 ADD PUSH2 0x228D JUMP JUMPDEST SWAP9 POP PUSH2 0x2755 PUSH1 0x80 DUP15 ADD PUSH2 0x22DC JUMP JUMPDEST SWAP8 POP PUSH2 0x2763 PUSH1 0xA0 DUP15 ADD PUSH2 0x22AD JUMP JUMPDEST SWAP7 POP PUSH2 0x2771 PUSH1 0xC0 DUP15 ADD PUSH2 0x22AD JUMP JUMPDEST SWAP6 POP PUSH2 0x277F PUSH1 0xE0 DUP15 ADD PUSH2 0x22BF JUMP JUMPDEST SWAP5 POP PUSH2 0x100 DUP14 ADD MLOAD SWAP4 POP PUSH2 0x120 DUP14 ADD MLOAD SWAP3 POP PUSH2 0x279E PUSH2 0x140 DUP15 ADD PUSH2 0x22BF JUMP JUMPDEST SWAP2 POP PUSH2 0x27AD PUSH2 0x160 DUP15 ADD PUSH2 0x22BF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x27D1 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2A39 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0xFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x285A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2A39 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x37B7363C903A37B5B2B734B21037BBB732B9 PUSH1 0x71 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x15 SWAP1 DUP3 ADD MSTORE PUSH21 0x6E6F7420696E20656D657267656E6379206D6F6465 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x294F JUMPI PUSH2 0x294F PUSH2 0x2AB0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2979 JUMPI PUSH2 0x2979 PUSH2 0x2A84 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2995 JUMPI PUSH2 0x2995 PUSH2 0x2A84 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 DUP2 AND DUP1 PUSH2 0x29B4 JUMPI PUSH2 0x29B4 PUSH2 0x2A9A JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29CF JUMPI PUSH2 0x29CF PUSH2 0x2A9A JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP2 ISZERO ISZERO DUP3 DUP5 DIV DUP3 GT AND ISZERO PUSH2 0x29FA JUMPI PUSH2 0x29FA PUSH2 0x2A84 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2A1D JUMPI PUSH2 0x2A1D PUSH2 0x2A84 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A34 JUMPI PUSH2 0x2A34 PUSH2 0x2A84 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A54 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2A3C JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2A63 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2A7D JUMPI PUSH2 0x2A7D PUSH2 0x2A84 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID 0xE 0xEB EXTCODEHASH SWAP7 0x5C PUSH30 0x4A86FC2850ACD36A8D3299895ECBC96C0EE77AF5FB7D7A981E64736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ","sourceMap":"327:2211:86:-:0;;;1227:1:88;1197:31;;1262:1;1234:29;;1302:6;1269:39;;1427:7;1390:44;;327:2211:86;;;;;;;;;-1:-1:-1;1701:1:22;1806:22;;327:2211:86;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:22551:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:78:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"140:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"115:24:139"},"nodeType":"YulFunctionCall","src":"115:31:139"},"nodeType":"YulExpressionStatement","src":"115:31:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:138:139"},{"body":{"nodeType":"YulBlock","src":"214:107:139","statements":[{"nodeType":"YulAssignment","src":"224:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"239:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"233:5:139"},"nodeType":"YulFunctionCall","src":"233:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:139"}]},{"body":{"nodeType":"YulBlock","src":"299:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"308:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"311:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"301:6:139"},"nodeType":"YulFunctionCall","src":"301:12:139"},"nodeType":"YulExpressionStatement","src":"301:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"268:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"289:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"282:6:139"},"nodeType":"YulFunctionCall","src":"282:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"275:6:139"},"nodeType":"YulFunctionCall","src":"275:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"265:2:139"},"nodeType":"YulFunctionCall","src":"265:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"258:6:139"},"nodeType":"YulFunctionCall","src":"258:40:139"},"nodeType":"YulIf","src":"255:2:139"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"193:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"204:5:139","type":""}],"src":"157:164:139"},{"body":{"nodeType":"YulBlock","src":"384:106:139","statements":[{"nodeType":"YulAssignment","src":"394:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"409:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"403:5:139"},"nodeType":"YulFunctionCall","src":"403:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"394:5:139"}]},{"body":{"nodeType":"YulBlock","src":"468:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"477:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"480:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"470:6:139"},"nodeType":"YulFunctionCall","src":"470:12:139"},"nodeType":"YulExpressionStatement","src":"470:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"438:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"456:1:139","type":"","value":"2"},{"name":"value","nodeType":"YulIdentifier","src":"459:5:139"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"445:10:139"},"nodeType":"YulFunctionCall","src":"445:20:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"435:2:139"},"nodeType":"YulFunctionCall","src":"435:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"428:6:139"},"nodeType":"YulFunctionCall","src":"428:39:139"},"nodeType":"YulIf","src":"425:2:139"}]},"name":"abi_decode_int24_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"363:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"374:5:139","type":""}],"src":"326:164:139"},{"body":{"nodeType":"YulBlock","src":"555:78:139","statements":[{"nodeType":"YulAssignment","src":"565:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"580:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"574:5:139"},"nodeType":"YulFunctionCall","src":"574:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"565:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"621:5:139"}],"functionName":{"name":"validator_revert_uint128","nodeType":"YulIdentifier","src":"596:24:139"},"nodeType":"YulFunctionCall","src":"596:31:139"},"nodeType":"YulExpressionStatement","src":"596:31:139"}]},"name":"abi_decode_uint128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"534:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"545:5:139","type":""}],"src":"495:138:139"},{"body":{"nodeType":"YulBlock","src":"697:104:139","statements":[{"nodeType":"YulAssignment","src":"707:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"722:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"716:5:139"},"nodeType":"YulFunctionCall","src":"716:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"707:5:139"}]},{"body":{"nodeType":"YulBlock","src":"779:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"788:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"791:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"781:6:139"},"nodeType":"YulFunctionCall","src":"781:12:139"},"nodeType":"YulExpressionStatement","src":"781:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"751:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"762:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"769:6:139","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"758:3:139"},"nodeType":"YulFunctionCall","src":"758:18:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"748:2:139"},"nodeType":"YulFunctionCall","src":"748:29:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"741:6:139"},"nodeType":"YulFunctionCall","src":"741:37:139"},"nodeType":"YulIf","src":"738:2:139"}]},"name":"abi_decode_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"676:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"687:5:139","type":""}],"src":"638:163:139"},{"body":{"nodeType":"YulBlock","src":"865:77:139","statements":[{"nodeType":"YulAssignment","src":"875:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"890:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"884:5:139"},"nodeType":"YulFunctionCall","src":"884:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"875:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"930:5:139"}],"functionName":{"name":"validator_revert_uint24","nodeType":"YulIdentifier","src":"906:23:139"},"nodeType":"YulFunctionCall","src":"906:30:139"},"nodeType":"YulExpressionStatement","src":"906:30:139"}]},"name":"abi_decode_uint24_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"844:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"855:5:139","type":""}],"src":"806:136:139"},{"body":{"nodeType":"YulBlock","src":"1017:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"1063:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1072:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1080:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1065:6:139"},"nodeType":"YulFunctionCall","src":"1065:22:139"},"nodeType":"YulExpressionStatement","src":"1065:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1038:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1047:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1034:3:139"},"nodeType":"YulFunctionCall","src":"1034:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1059:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1030:3:139"},"nodeType":"YulFunctionCall","src":"1030:32:139"},"nodeType":"YulIf","src":"1027:2:139"},{"nodeType":"YulVariableDeclaration","src":"1098:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1124:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1111:12:139"},"nodeType":"YulFunctionCall","src":"1111:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1102:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1168:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1143:24:139"},"nodeType":"YulFunctionCall","src":"1143:31:139"},"nodeType":"YulExpressionStatement","src":"1143:31:139"},{"nodeType":"YulAssignment","src":"1183:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1193:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1183:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"983:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"994:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1006:6:139","type":""}],"src":"947:257:139"},{"body":{"nodeType":"YulBlock","src":"1290:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"1336:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1345:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1353:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1338:6:139"},"nodeType":"YulFunctionCall","src":"1338:22:139"},"nodeType":"YulExpressionStatement","src":"1338:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1311:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1320:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1307:3:139"},"nodeType":"YulFunctionCall","src":"1307:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1332:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1303:3:139"},"nodeType":"YulFunctionCall","src":"1303:32:139"},"nodeType":"YulIf","src":"1300:2:139"},{"nodeType":"YulVariableDeclaration","src":"1371:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1390:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1384:5:139"},"nodeType":"YulFunctionCall","src":"1384:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1375:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1434:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1409:24:139"},"nodeType":"YulFunctionCall","src":"1409:31:139"},"nodeType":"YulExpressionStatement","src":"1409:31:139"},{"nodeType":"YulAssignment","src":"1449:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1459:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1449:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1256:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1267:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1279:6:139","type":""}],"src":"1209:261:139"},{"body":{"nodeType":"YulBlock","src":"1629:809:139","statements":[{"body":{"nodeType":"YulBlock","src":"1676:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1685:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"1693:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1678:6:139"},"nodeType":"YulFunctionCall","src":"1678:22:139"},"nodeType":"YulExpressionStatement","src":"1678:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1650:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1659:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1646:3:139"},"nodeType":"YulFunctionCall","src":"1646:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1671:3:139","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1642:3:139"},"nodeType":"YulFunctionCall","src":"1642:33:139"},"nodeType":"YulIf","src":"1639:2:139"},{"nodeType":"YulVariableDeclaration","src":"1711:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1737:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1724:12:139"},"nodeType":"YulFunctionCall","src":"1724:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1715:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1781:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1756:24:139"},"nodeType":"YulFunctionCall","src":"1756:31:139"},"nodeType":"YulExpressionStatement","src":"1756:31:139"},{"nodeType":"YulAssignment","src":"1796:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1806:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1796:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1820:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1852:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1863:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1848:3:139"},"nodeType":"YulFunctionCall","src":"1848:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1835:12:139"},"nodeType":"YulFunctionCall","src":"1835:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1824:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1901:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1876:24:139"},"nodeType":"YulFunctionCall","src":"1876:33:139"},"nodeType":"YulExpressionStatement","src":"1876:33:139"},{"nodeType":"YulAssignment","src":"1918:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1928:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1918:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1944:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1976:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1987:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1972:3:139"},"nodeType":"YulFunctionCall","src":"1972:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1959:12:139"},"nodeType":"YulFunctionCall","src":"1959:32:139"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"1948:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"2025:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2000:24:139"},"nodeType":"YulFunctionCall","src":"2000:33:139"},"nodeType":"YulExpressionStatement","src":"2000:33:139"},{"nodeType":"YulAssignment","src":"2042:17:139","value":{"name":"value_2","nodeType":"YulIdentifier","src":"2052:7:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2042:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2068:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2100:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2111:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2096:3:139"},"nodeType":"YulFunctionCall","src":"2096:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2083:12:139"},"nodeType":"YulFunctionCall","src":"2083:32:139"},"variables":[{"name":"value_3","nodeType":"YulTypedName","src":"2072:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_3","nodeType":"YulIdentifier","src":"2148:7:139"}],"functionName":{"name":"validator_revert_uint24","nodeType":"YulIdentifier","src":"2124:23:139"},"nodeType":"YulFunctionCall","src":"2124:32:139"},"nodeType":"YulExpressionStatement","src":"2124:32:139"},{"nodeType":"YulAssignment","src":"2165:17:139","value":{"name":"value_3","nodeType":"YulIdentifier","src":"2175:7:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2165:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2191:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2223:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2234:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2219:3:139"},"nodeType":"YulFunctionCall","src":"2219:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2206:12:139"},"nodeType":"YulFunctionCall","src":"2206:33:139"},"variables":[{"name":"value_4","nodeType":"YulTypedName","src":"2195:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_4","nodeType":"YulIdentifier","src":"2273:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2248:24:139"},"nodeType":"YulFunctionCall","src":"2248:33:139"},"nodeType":"YulExpressionStatement","src":"2248:33:139"},{"nodeType":"YulAssignment","src":"2290:17:139","value":{"name":"value_4","nodeType":"YulIdentifier","src":"2300:7:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2290:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2316:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2348:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2359:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2344:3:139"},"nodeType":"YulFunctionCall","src":"2344:19:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2331:12:139"},"nodeType":"YulFunctionCall","src":"2331:33:139"},"variables":[{"name":"value_5","nodeType":"YulTypedName","src":"2320:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_5","nodeType":"YulIdentifier","src":"2398:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2373:24:139"},"nodeType":"YulFunctionCall","src":"2373:33:139"},"nodeType":"YulExpressionStatement","src":"2373:33:139"},{"nodeType":"YulAssignment","src":"2415:17:139","value":{"name":"value_5","nodeType":"YulIdentifier","src":"2425:7:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2415:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint24t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1555:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1566:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1578:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1586:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1594:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1602:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1610:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1618:6:139","type":""}],"src":"1475:963:139"},{"body":{"nodeType":"YulBlock","src":"2583:846:139","statements":[{"body":{"nodeType":"YulBlock","src":"2630:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2639:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"2647:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2632:6:139"},"nodeType":"YulFunctionCall","src":"2632:22:139"},"nodeType":"YulExpressionStatement","src":"2632:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2604:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2613:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2600:3:139"},"nodeType":"YulFunctionCall","src":"2600:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2625:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2596:3:139"},"nodeType":"YulFunctionCall","src":"2596:33:139"},"nodeType":"YulIf","src":"2593:2:139"},{"nodeType":"YulVariableDeclaration","src":"2665:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2691:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2678:12:139"},"nodeType":"YulFunctionCall","src":"2678:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2669:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2735:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2710:24:139"},"nodeType":"YulFunctionCall","src":"2710:31:139"},"nodeType":"YulExpressionStatement","src":"2710:31:139"},{"nodeType":"YulAssignment","src":"2750:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2760:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2750:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2774:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2806:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2817:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2802:3:139"},"nodeType":"YulFunctionCall","src":"2802:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2789:12:139"},"nodeType":"YulFunctionCall","src":"2789:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2778:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2855:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2830:24:139"},"nodeType":"YulFunctionCall","src":"2830:33:139"},"nodeType":"YulExpressionStatement","src":"2830:33:139"},{"nodeType":"YulAssignment","src":"2872:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2882:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2872:6:139"}]},{"nodeType":"YulAssignment","src":"2898:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2925:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2936:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2921:3:139"},"nodeType":"YulFunctionCall","src":"2921:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2908:12:139"},"nodeType":"YulFunctionCall","src":"2908:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2898:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2949:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2980:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2991:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2976:3:139"},"nodeType":"YulFunctionCall","src":"2976:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2963:12:139"},"nodeType":"YulFunctionCall","src":"2963:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2953:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3004:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3014:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3008:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3059:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3068:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3076:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3061:6:139"},"nodeType":"YulFunctionCall","src":"3061:22:139"},"nodeType":"YulExpressionStatement","src":"3061:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3047:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3055:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3044:2:139"},"nodeType":"YulFunctionCall","src":"3044:14:139"},"nodeType":"YulIf","src":"3041:2:139"},{"nodeType":"YulVariableDeclaration","src":"3094:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3108:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3119:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3104:3:139"},"nodeType":"YulFunctionCall","src":"3104:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3098:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3174:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3183:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3191:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3176:6:139"},"nodeType":"YulFunctionCall","src":"3176:22:139"},"nodeType":"YulExpressionStatement","src":"3176:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3153:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3157:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3149:3:139"},"nodeType":"YulFunctionCall","src":"3149:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3164:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3145:3:139"},"nodeType":"YulFunctionCall","src":"3145:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3138:6:139"},"nodeType":"YulFunctionCall","src":"3138:35:139"},"nodeType":"YulIf","src":"3135:2:139"},{"nodeType":"YulVariableDeclaration","src":"3209:30:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3236:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3223:12:139"},"nodeType":"YulFunctionCall","src":"3223:16:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3213:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3266:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3275:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3283:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3268:6:139"},"nodeType":"YulFunctionCall","src":"3268:22:139"},"nodeType":"YulExpressionStatement","src":"3268:22:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3254:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3262:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3251:2:139"},"nodeType":"YulFunctionCall","src":"3251:14:139"},"nodeType":"YulIf","src":"3248:2:139"},{"body":{"nodeType":"YulBlock","src":"3342:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3351:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"3359:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3344:6:139"},"nodeType":"YulFunctionCall","src":"3344:22:139"},"nodeType":"YulExpressionStatement","src":"3344:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3315:2:139"},{"name":"length","nodeType":"YulIdentifier","src":"3319:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3311:3:139"},"nodeType":"YulFunctionCall","src":"3311:15:139"},{"kind":"number","nodeType":"YulLiteral","src":"3328:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3307:3:139"},"nodeType":"YulFunctionCall","src":"3307:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3333:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3304:2:139"},"nodeType":"YulFunctionCall","src":"3304:37:139"},"nodeType":"YulIf","src":"3301:2:139"},{"nodeType":"YulAssignment","src":"3377:21:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3391:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3395:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3387:3:139"},"nodeType":"YulFunctionCall","src":"3387:11:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3377:6:139"}]},{"nodeType":"YulAssignment","src":"3407:16:139","value":{"name":"length","nodeType":"YulIdentifier","src":"3417:6:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3407:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2517:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2528:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2540:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2548:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2556:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2564:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2572:6:139","type":""}],"src":"2443:986:139"},{"body":{"nodeType":"YulBlock","src":"3546:1106:139","statements":[{"body":{"nodeType":"YulBlock","src":"3592:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3601:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3609:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3594:6:139"},"nodeType":"YulFunctionCall","src":"3594:22:139"},"nodeType":"YulExpressionStatement","src":"3594:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3567:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3576:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3563:3:139"},"nodeType":"YulFunctionCall","src":"3563:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3588:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3559:3:139"},"nodeType":"YulFunctionCall","src":"3559:32:139"},"nodeType":"YulIf","src":"3556:2:139"},{"nodeType":"YulVariableDeclaration","src":"3627:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3653:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3640:12:139"},"nodeType":"YulFunctionCall","src":"3640:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3631:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3697:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3672:24:139"},"nodeType":"YulFunctionCall","src":"3672:31:139"},"nodeType":"YulExpressionStatement","src":"3672:31:139"},{"nodeType":"YulAssignment","src":"3712:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3722:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3712:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3736:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3746:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3740:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3757:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3788:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3799:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3784:3:139"},"nodeType":"YulFunctionCall","src":"3784:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3771:12:139"},"nodeType":"YulFunctionCall","src":"3771:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3761:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3812:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3822:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3816:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3867:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3876:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3884:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3869:6:139"},"nodeType":"YulFunctionCall","src":"3869:22:139"},"nodeType":"YulExpressionStatement","src":"3869:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3855:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3863:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3852:2:139"},"nodeType":"YulFunctionCall","src":"3852:14:139"},"nodeType":"YulIf","src":"3849:2:139"},{"nodeType":"YulVariableDeclaration","src":"3902:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3927:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:139"},"nodeType":"YulFunctionCall","src":"3912:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3906:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3982:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3991:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"3999:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3984:6:139"},"nodeType":"YulFunctionCall","src":"3984:22:139"},"nodeType":"YulExpressionStatement","src":"3984:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3961:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3965:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3957:3:139"},"nodeType":"YulFunctionCall","src":"3957:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3972:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3953:3:139"},"nodeType":"YulFunctionCall","src":"3953:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3946:6:139"},"nodeType":"YulFunctionCall","src":"3946:35:139"},"nodeType":"YulIf","src":"3943:2:139"},{"nodeType":"YulVariableDeclaration","src":"4017:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4040:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4027:12:139"},"nodeType":"YulFunctionCall","src":"4027:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4021:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4066:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4068:16:139"},"nodeType":"YulFunctionCall","src":"4068:18:139"},"nodeType":"YulExpressionStatement","src":"4068:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"4058:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"4062:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4055:2:139"},"nodeType":"YulFunctionCall","src":"4055:10:139"},"nodeType":"YulIf","src":"4052:2:139"},{"nodeType":"YulVariableDeclaration","src":"4097:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4111:1:139","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"4114:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4107:3:139"},"nodeType":"YulFunctionCall","src":"4107:10:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"4101:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4126:39:139","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"4157:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4161:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4153:3:139"},"nodeType":"YulFunctionCall","src":"4153:11:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4137:15:139"},"nodeType":"YulFunctionCall","src":"4137:28:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"4130:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4174:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"4187:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"4178:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4206:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"4211:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4199:6:139"},"nodeType":"YulFunctionCall","src":"4199:15:139"},"nodeType":"YulExpressionStatement","src":"4199:15:139"},{"nodeType":"YulAssignment","src":"4223:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4234:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4239:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4230:3:139"},"nodeType":"YulFunctionCall","src":"4230:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4223:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"4251:22:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4266:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4270:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4262:3:139"},"nodeType":"YulFunctionCall","src":"4262:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"4255:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4319:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4328:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4336:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4321:6:139"},"nodeType":"YulFunctionCall","src":"4321:22:139"},"nodeType":"YulExpressionStatement","src":"4321:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4296:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"4300:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4292:3:139"},"nodeType":"YulFunctionCall","src":"4292:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4305:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4288:3:139"},"nodeType":"YulFunctionCall","src":"4288:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4310:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4285:2:139"},"nodeType":"YulFunctionCall","src":"4285:33:139"},"nodeType":"YulIf","src":"4282:2:139"},{"nodeType":"YulVariableDeclaration","src":"4354:15:139","value":{"name":"value1","nodeType":"YulIdentifier","src":"4363:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4358:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4423:199:139","statements":[{"nodeType":"YulVariableDeclaration","src":"4437:32:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4465:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4452:12:139"},"nodeType":"YulFunctionCall","src":"4452:17:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4441:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4507:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4482:24:139"},"nodeType":"YulFunctionCall","src":"4482:33:139"},"nodeType":"YulExpressionStatement","src":"4482:33:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4535:3:139"},{"name":"value_1","nodeType":"YulIdentifier","src":"4540:7:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4528:6:139"},"nodeType":"YulFunctionCall","src":"4528:20:139"},"nodeType":"YulExpressionStatement","src":"4528:20:139"},{"nodeType":"YulAssignment","src":"4561:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4572:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4577:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4568:3:139"},"nodeType":"YulFunctionCall","src":"4568:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4561:3:139"}]},{"nodeType":"YulAssignment","src":"4593:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4604:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4609:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4600:3:139"},"nodeType":"YulFunctionCall","src":"4600:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"4593:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4389:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"4392:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4386:2:139"},"nodeType":"YulFunctionCall","src":"4386:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4396:18:139","statements":[{"nodeType":"YulAssignment","src":"4398:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4407:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"4410:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4403:3:139"},"nodeType":"YulFunctionCall","src":"4403:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4398:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"4382:3:139","statements":[]},"src":"4378:244:139"},{"nodeType":"YulAssignment","src":"4631:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"4641:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4631:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3504:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3515:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3527:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3535:6:139","type":""}],"src":"3434:1218:139"},{"body":{"nodeType":"YulBlock","src":"4753:847:139","statements":[{"body":{"nodeType":"YulBlock","src":"4799:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4808:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4816:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4801:6:139"},"nodeType":"YulFunctionCall","src":"4801:22:139"},"nodeType":"YulExpressionStatement","src":"4801:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4774:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4770:3:139"},"nodeType":"YulFunctionCall","src":"4770:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4795:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4766:3:139"},"nodeType":"YulFunctionCall","src":"4766:32:139"},"nodeType":"YulIf","src":"4763:2:139"},{"nodeType":"YulVariableDeclaration","src":"4834:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4860:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4847:12:139"},"nodeType":"YulFunctionCall","src":"4847:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4838:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4904:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4879:24:139"},"nodeType":"YulFunctionCall","src":"4879:31:139"},"nodeType":"YulExpressionStatement","src":"4879:31:139"},{"nodeType":"YulAssignment","src":"4919:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"4929:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4919:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4943:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"4953:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4947:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4964:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4995:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5006:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4991:3:139"},"nodeType":"YulFunctionCall","src":"4991:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4978:12:139"},"nodeType":"YulFunctionCall","src":"4978:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4968:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5019:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"5029:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5023:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5074:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5083:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5091:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5076:6:139"},"nodeType":"YulFunctionCall","src":"5076:22:139"},"nodeType":"YulExpressionStatement","src":"5076:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5062:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"5070:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5059:2:139"},"nodeType":"YulFunctionCall","src":"5059:14:139"},"nodeType":"YulIf","src":"5056:2:139"},{"nodeType":"YulVariableDeclaration","src":"5109:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5123:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"5134:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5119:3:139"},"nodeType":"YulFunctionCall","src":"5119:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5113:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5189:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5198:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5206:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5191:6:139"},"nodeType":"YulFunctionCall","src":"5191:22:139"},"nodeType":"YulExpressionStatement","src":"5191:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5168:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"5172:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5164:3:139"},"nodeType":"YulFunctionCall","src":"5164:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5179:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5160:3:139"},"nodeType":"YulFunctionCall","src":"5160:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5153:6:139"},"nodeType":"YulFunctionCall","src":"5153:35:139"},"nodeType":"YulIf","src":"5150:2:139"},{"nodeType":"YulVariableDeclaration","src":"5224:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5247:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5234:12:139"},"nodeType":"YulFunctionCall","src":"5234:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5228:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5273:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5275:16:139"},"nodeType":"YulFunctionCall","src":"5275:18:139"},"nodeType":"YulExpressionStatement","src":"5275:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"5265:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"5269:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5262:2:139"},"nodeType":"YulFunctionCall","src":"5262:10:139"},"nodeType":"YulIf","src":"5259:2:139"},{"nodeType":"YulVariableDeclaration","src":"5304:66:139","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"5345:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"5349:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5341:3:139"},"nodeType":"YulFunctionCall","src":"5341:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5360:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5356:3:139"},"nodeType":"YulFunctionCall","src":"5356:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5337:3:139"},"nodeType":"YulFunctionCall","src":"5337:27:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5366:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5333:3:139"},"nodeType":"YulFunctionCall","src":"5333:36:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5317:15:139"},"nodeType":"YulFunctionCall","src":"5317:53:139"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"5308:5:139","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5386:5:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5393:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5379:6:139"},"nodeType":"YulFunctionCall","src":"5379:17:139"},"nodeType":"YulExpressionStatement","src":"5379:17:139"},{"body":{"nodeType":"YulBlock","src":"5442:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5451:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5459:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5444:6:139"},"nodeType":"YulFunctionCall","src":"5444:22:139"},"nodeType":"YulExpressionStatement","src":"5444:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5419:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5423:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5415:3:139"},"nodeType":"YulFunctionCall","src":"5415:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5428:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5411:3:139"},"nodeType":"YulFunctionCall","src":"5411:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5433:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5408:2:139"},"nodeType":"YulFunctionCall","src":"5408:33:139"},"nodeType":"YulIf","src":"5405:2:139"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5494:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5501:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5490:3:139"},"nodeType":"YulFunctionCall","src":"5490:14:139"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5510:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5514:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5506:3:139"},"nodeType":"YulFunctionCall","src":"5506:11:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5519:2:139"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5477:12:139"},"nodeType":"YulFunctionCall","src":"5477:45:139"},"nodeType":"YulExpressionStatement","src":"5477:45:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5546:5:139"},{"name":"_4","nodeType":"YulIdentifier","src":"5553:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5542:3:139"},"nodeType":"YulFunctionCall","src":"5542:14:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5558:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5538:3:139"},"nodeType":"YulFunctionCall","src":"5538:23:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5563:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5531:6:139"},"nodeType":"YulFunctionCall","src":"5531:39:139"},"nodeType":"YulExpressionStatement","src":"5531:39:139"},{"nodeType":"YulAssignment","src":"5579:15:139","value":{"name":"array","nodeType":"YulIdentifier","src":"5589:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5579:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4711:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4722:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4734:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4742:6:139","type":""}],"src":"4657:943:139"},{"body":{"nodeType":"YulBlock","src":"5692:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"5738:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5747:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5755:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5740:6:139"},"nodeType":"YulFunctionCall","src":"5740:22:139"},"nodeType":"YulExpressionStatement","src":"5740:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5713:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5722:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5709:3:139"},"nodeType":"YulFunctionCall","src":"5709:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5734:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5705:3:139"},"nodeType":"YulFunctionCall","src":"5705:32:139"},"nodeType":"YulIf","src":"5702:2:139"},{"nodeType":"YulVariableDeclaration","src":"5773:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5799:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5786:12:139"},"nodeType":"YulFunctionCall","src":"5786:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5777:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5843:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5818:24:139"},"nodeType":"YulFunctionCall","src":"5818:31:139"},"nodeType":"YulExpressionStatement","src":"5818:31:139"},{"nodeType":"YulAssignment","src":"5858:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5868:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5858:6:139"}]},{"nodeType":"YulAssignment","src":"5882:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5909:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5920:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5905:3:139"},"nodeType":"YulFunctionCall","src":"5905:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5892:12:139"},"nodeType":"YulFunctionCall","src":"5892:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5882:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5650:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5661:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5673:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5681:6:139","type":""}],"src":"5605:325:139"},{"body":{"nodeType":"YulBlock","src":"6013:134:139","statements":[{"body":{"nodeType":"YulBlock","src":"6059:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6068:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6076:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6061:6:139"},"nodeType":"YulFunctionCall","src":"6061:22:139"},"nodeType":"YulExpressionStatement","src":"6061:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6034:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6043:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6030:3:139"},"nodeType":"YulFunctionCall","src":"6030:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6055:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6026:3:139"},"nodeType":"YulFunctionCall","src":"6026:32:139"},"nodeType":"YulIf","src":"6023:2:139"},{"nodeType":"YulAssignment","src":"6094:47:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6131:9:139"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"6104:26:139"},"nodeType":"YulFunctionCall","src":"6104:37:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6094:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5979:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5990:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6002:6:139","type":""}],"src":"5935:212:139"},{"body":{"nodeType":"YulBlock","src":"6239:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"6285:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6294:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6302:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6287:6:139"},"nodeType":"YulFunctionCall","src":"6287:22:139"},"nodeType":"YulExpressionStatement","src":"6287:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6260:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6269:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6256:3:139"},"nodeType":"YulFunctionCall","src":"6256:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6281:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6252:3:139"},"nodeType":"YulFunctionCall","src":"6252:32:139"},"nodeType":"YulIf","src":"6249:2:139"},{"nodeType":"YulVariableDeclaration","src":"6320:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6346:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6333:12:139"},"nodeType":"YulFunctionCall","src":"6333:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6324:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6390:5:139"}],"functionName":{"name":"validator_revert_uint128","nodeType":"YulIdentifier","src":"6365:24:139"},"nodeType":"YulFunctionCall","src":"6365:31:139"},"nodeType":"YulExpressionStatement","src":"6365:31:139"},{"nodeType":"YulAssignment","src":"6405:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6415:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6405:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6429:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6461:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6472:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6457:3:139"},"nodeType":"YulFunctionCall","src":"6457:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6444:12:139"},"nodeType":"YulFunctionCall","src":"6444:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6433:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6510:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6485:24:139"},"nodeType":"YulFunctionCall","src":"6485:33:139"},"nodeType":"YulExpressionStatement","src":"6485:33:139"},{"nodeType":"YulAssignment","src":"6527:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6537:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6527:6:139"}]}]},"name":"abi_decode_tuple_t_uint128t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6197:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6208:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6220:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6228:6:139","type":""}],"src":"6152:398:139"},{"body":{"nodeType":"YulBlock","src":"6728:669:139","statements":[{"body":{"nodeType":"YulBlock","src":"6775:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6784:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"6792:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6777:6:139"},"nodeType":"YulFunctionCall","src":"6777:22:139"},"nodeType":"YulExpressionStatement","src":"6777:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6749:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6758:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6745:3:139"},"nodeType":"YulFunctionCall","src":"6745:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6770:3:139","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6741:3:139"},"nodeType":"YulFunctionCall","src":"6741:33:139"},"nodeType":"YulIf","src":"6738:2:139"},{"nodeType":"YulVariableDeclaration","src":"6810:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6829:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6823:5:139"},"nodeType":"YulFunctionCall","src":"6823:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6814:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6873:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6848:24:139"},"nodeType":"YulFunctionCall","src":"6848:31:139"},"nodeType":"YulExpressionStatement","src":"6848:31:139"},{"nodeType":"YulAssignment","src":"6888:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6898:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6888:6:139"}]},{"nodeType":"YulAssignment","src":"6912:57:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6954:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6965:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6950:3:139"},"nodeType":"YulFunctionCall","src":"6950:18:139"}],"functionName":{"name":"abi_decode_int24_fromMemory","nodeType":"YulIdentifier","src":"6922:27:139"},"nodeType":"YulFunctionCall","src":"6922:47:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6912:6:139"}]},{"nodeType":"YulAssignment","src":"6978:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7021:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7032:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7017:3:139"},"nodeType":"YulFunctionCall","src":"7017:18:139"}],"functionName":{"name":"abi_decode_uint16_fromMemory","nodeType":"YulIdentifier","src":"6988:28:139"},"nodeType":"YulFunctionCall","src":"6988:48:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6978:6:139"}]},{"nodeType":"YulAssignment","src":"7045:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7088:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7099:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7084:3:139"},"nodeType":"YulFunctionCall","src":"7084:18:139"}],"functionName":{"name":"abi_decode_uint16_fromMemory","nodeType":"YulIdentifier","src":"7055:28:139"},"nodeType":"YulFunctionCall","src":"7055:48:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7045:6:139"}]},{"nodeType":"YulAssignment","src":"7112:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7155:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7166:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7151:3:139"},"nodeType":"YulFunctionCall","src":"7151:19:139"}],"functionName":{"name":"abi_decode_uint16_fromMemory","nodeType":"YulIdentifier","src":"7122:28:139"},"nodeType":"YulFunctionCall","src":"7122:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7112:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"7180:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7205:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7216:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7201:3:139"},"nodeType":"YulFunctionCall","src":"7201:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7195:5:139"},"nodeType":"YulFunctionCall","src":"7195:26:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7184:7:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7273:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"7282:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"7290:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7275:6:139"},"nodeType":"YulFunctionCall","src":"7275:22:139"},"nodeType":"YulExpressionStatement","src":"7275:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7243:7:139"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7256:7:139"},{"kind":"number","nodeType":"YulLiteral","src":"7265:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7252:3:139"},"nodeType":"YulFunctionCall","src":"7252:18:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7240:2:139"},"nodeType":"YulFunctionCall","src":"7240:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7233:6:139"},"nodeType":"YulFunctionCall","src":"7233:39:139"},"nodeType":"YulIf","src":"7230:2:139"},{"nodeType":"YulAssignment","src":"7308:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7318:7:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7308:6:139"}]},{"nodeType":"YulAssignment","src":"7334:57:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7375:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7386:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7371:3:139"},"nodeType":"YulFunctionCall","src":"7371:19:139"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"7344:26:139"},"nodeType":"YulFunctionCall","src":"7344:47:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"7334:6:139"}]}]},"name":"abi_decode_tuple_t_uint160t_int24t_uint16t_uint16t_uint16t_uint8t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6646:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6657:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6669:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6677:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6685:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6693:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6701:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6709:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6717:6:139","type":""}],"src":"6555:842:139"},{"body":{"nodeType":"YulBlock","src":"7472:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"7518:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7527:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7535:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7520:6:139"},"nodeType":"YulFunctionCall","src":"7520:22:139"},"nodeType":"YulExpressionStatement","src":"7520:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7493:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7502:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7489:3:139"},"nodeType":"YulFunctionCall","src":"7489:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7514:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7485:3:139"},"nodeType":"YulFunctionCall","src":"7485:32:139"},"nodeType":"YulIf","src":"7482:2:139"},{"nodeType":"YulAssignment","src":"7553:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7576:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7563:12:139"},"nodeType":"YulFunctionCall","src":"7563:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7553:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7438:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7449:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7461:6:139","type":""}],"src":"7402:190:139"},{"body":{"nodeType":"YulBlock","src":"7678:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"7724:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7733:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7741:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7726:6:139"},"nodeType":"YulFunctionCall","src":"7726:22:139"},"nodeType":"YulExpressionStatement","src":"7726:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7699:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7708:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7695:3:139"},"nodeType":"YulFunctionCall","src":"7695:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7720:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7691:3:139"},"nodeType":"YulFunctionCall","src":"7691:32:139"},"nodeType":"YulIf","src":"7688:2:139"},{"nodeType":"YulAssignment","src":"7759:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7775:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7769:5:139"},"nodeType":"YulFunctionCall","src":"7769:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7759:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7644:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7655:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7667:6:139","type":""}],"src":"7597:194:139"},{"body":{"nodeType":"YulBlock","src":"8060:942:139","statements":[{"body":{"nodeType":"YulBlock","src":"8107:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8116:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8124:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8109:6:139"},"nodeType":"YulFunctionCall","src":"8109:22:139"},"nodeType":"YulExpressionStatement","src":"8109:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8081:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"8090:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8077:3:139"},"nodeType":"YulFunctionCall","src":"8077:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"8102:3:139","type":"","value":"384"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8073:3:139"},"nodeType":"YulFunctionCall","src":"8073:33:139"},"nodeType":"YulIf","src":"8070:2:139"},{"nodeType":"YulVariableDeclaration","src":"8142:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8161:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8155:5:139"},"nodeType":"YulFunctionCall","src":"8155:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8146:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8241:26:139","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"8250:6:139"},{"name":"value6","nodeType":"YulIdentifier","src":"8258:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8243:6:139"},"nodeType":"YulFunctionCall","src":"8243:22:139"},"nodeType":"YulExpressionStatement","src":"8243:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8193:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8204:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"8211:26:139","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8200:3:139"},"nodeType":"YulFunctionCall","src":"8200:38:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8190:2:139"},"nodeType":"YulFunctionCall","src":"8190:49:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8183:6:139"},"nodeType":"YulFunctionCall","src":"8183:57:139"},"nodeType":"YulIf","src":"8180:2:139"},{"nodeType":"YulAssignment","src":"8276:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"8286:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8276:6:139"}]},{"nodeType":"YulAssignment","src":"8300:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8344:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8355:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8340:3:139"},"nodeType":"YulFunctionCall","src":"8340:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"8310:29:139"},"nodeType":"YulFunctionCall","src":"8310:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8300:6:139"}]},{"nodeType":"YulAssignment","src":"8368:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8412:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8423:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8408:3:139"},"nodeType":"YulFunctionCall","src":"8408:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"8378:29:139"},"nodeType":"YulFunctionCall","src":"8378:49:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8368:6:139"}]},{"nodeType":"YulAssignment","src":"8436:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8480:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8491:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8476:3:139"},"nodeType":"YulFunctionCall","src":"8476:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"8446:29:139"},"nodeType":"YulFunctionCall","src":"8446:49:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8436:6:139"}]},{"nodeType":"YulAssignment","src":"8504:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8547:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8558:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8543:3:139"},"nodeType":"YulFunctionCall","src":"8543:19:139"}],"functionName":{"name":"abi_decode_uint24_fromMemory","nodeType":"YulIdentifier","src":"8514:28:139"},"nodeType":"YulFunctionCall","src":"8514:49:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8504:6:139"}]},{"nodeType":"YulAssignment","src":"8572:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8614:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8625:3:139","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8610:3:139"},"nodeType":"YulFunctionCall","src":"8610:19:139"}],"functionName":{"name":"abi_decode_int24_fromMemory","nodeType":"YulIdentifier","src":"8582:27:139"},"nodeType":"YulFunctionCall","src":"8582:48:139"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"8572:6:139"}]},{"nodeType":"YulAssignment","src":"8639:58:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8681:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8692:3:139","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8677:3:139"},"nodeType":"YulFunctionCall","src":"8677:19:139"}],"functionName":{"name":"abi_decode_int24_fromMemory","nodeType":"YulIdentifier","src":"8649:27:139"},"nodeType":"YulFunctionCall","src":"8649:48:139"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"8639:6:139"}]},{"nodeType":"YulAssignment","src":"8706:60:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8750:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8761:3:139","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8746:3:139"},"nodeType":"YulFunctionCall","src":"8746:19:139"}],"functionName":{"name":"abi_decode_uint128_fromMemory","nodeType":"YulIdentifier","src":"8716:29:139"},"nodeType":"YulFunctionCall","src":"8716:50:139"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"8706:6:139"}]},{"nodeType":"YulAssignment","src":"8775:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8795:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8806:3:139","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8791:3:139"},"nodeType":"YulFunctionCall","src":"8791:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8785:5:139"},"nodeType":"YulFunctionCall","src":"8785:26:139"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"8775:6:139"}]},{"nodeType":"YulAssignment","src":"8820:36:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8840:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8851:3:139","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8836:3:139"},"nodeType":"YulFunctionCall","src":"8836:19:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8830:5:139"},"nodeType":"YulFunctionCall","src":"8830:26:139"},"variableNames":[{"name":"value9","nodeType":"YulIdentifier","src":"8820:6:139"}]},{"nodeType":"YulAssignment","src":"8865:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8910:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8921:3:139","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8906:3:139"},"nodeType":"YulFunctionCall","src":"8906:19:139"}],"functionName":{"name":"abi_decode_uint128_fromMemory","nodeType":"YulIdentifier","src":"8876:29:139"},"nodeType":"YulFunctionCall","src":"8876:50:139"},"variableNames":[{"name":"value10","nodeType":"YulIdentifier","src":"8865:7:139"}]},{"nodeType":"YulAssignment","src":"8935:61:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8980:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8991:3:139","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8976:3:139"},"nodeType":"YulFunctionCall","src":"8976:19:139"}],"functionName":{"name":"abi_decode_uint128_fromMemory","nodeType":"YulIdentifier","src":"8946:29:139"},"nodeType":"YulFunctionCall","src":"8946:50:139"},"variableNames":[{"name":"value11","nodeType":"YulIdentifier","src":"8935:7:139"}]}]},"name":"abi_decode_tuple_t_uint96t_addresst_addresst_addresst_uint24t_int24t_int24t_uint128t_uint256t_uint256t_uint128t_uint128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7936:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7947:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7959:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7967:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7975:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7983:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7991:6:139","type":""},{"name":"value5","nodeType":"YulTypedName","src":"7999:6:139","type":""},{"name":"value6","nodeType":"YulTypedName","src":"8007:6:139","type":""},{"name":"value7","nodeType":"YulTypedName","src":"8015:6:139","type":""},{"name":"value8","nodeType":"YulTypedName","src":"8023:6:139","type":""},{"name":"value9","nodeType":"YulTypedName","src":"8031:6:139","type":""},{"name":"value10","nodeType":"YulTypedName","src":"8039:7:139","type":""},{"name":"value11","nodeType":"YulTypedName","src":"8048:7:139","type":""}],"src":"7796:1206:139"},{"body":{"nodeType":"YulBlock","src":"9144:137:139","statements":[{"nodeType":"YulVariableDeclaration","src":"9154:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9174:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9168:5:139"},"nodeType":"YulFunctionCall","src":"9168:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9158:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9216:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"9224:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9212:3:139"},"nodeType":"YulFunctionCall","src":"9212:17:139"},{"name":"pos","nodeType":"YulIdentifier","src":"9231:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"9236:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9190:21:139"},"nodeType":"YulFunctionCall","src":"9190:53:139"},"nodeType":"YulExpressionStatement","src":"9190:53:139"},{"nodeType":"YulAssignment","src":"9252:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9263:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"9268:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9259:3:139"},"nodeType":"YulFunctionCall","src":"9259:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9252:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9120:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9125:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9136:3:139","type":""}],"src":"9007:274:139"},{"body":{"nodeType":"YulBlock","src":"9387:102:139","statements":[{"nodeType":"YulAssignment","src":"9397:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9409:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9420:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9405:3:139"},"nodeType":"YulFunctionCall","src":"9405:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9397:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9439:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9454:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9470:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9475:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9466:3:139"},"nodeType":"YulFunctionCall","src":"9466:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"9479:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9462:3:139"},"nodeType":"YulFunctionCall","src":"9462:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9450:3:139"},"nodeType":"YulFunctionCall","src":"9450:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9432:6:139"},"nodeType":"YulFunctionCall","src":"9432:51:139"},"nodeType":"YulExpressionStatement","src":"9432:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9356:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9367:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9378:4:139","type":""}],"src":"9286:203:139"},{"body":{"nodeType":"YulBlock","src":"9649:233:139","statements":[{"nodeType":"YulAssignment","src":"9659:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9671:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9682:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9667:3:139"},"nodeType":"YulFunctionCall","src":"9667:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9659:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"9694:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9712:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9717:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9708:3:139"},"nodeType":"YulFunctionCall","src":"9708:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"9721:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9704:3:139"},"nodeType":"YulFunctionCall","src":"9704:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9698:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9739:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9754:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9762:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9750:3:139"},"nodeType":"YulFunctionCall","src":"9750:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9732:6:139"},"nodeType":"YulFunctionCall","src":"9732:34:139"},"nodeType":"YulExpressionStatement","src":"9732:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9786:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9797:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9782:3:139"},"nodeType":"YulFunctionCall","src":"9782:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9806:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9814:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9802:3:139"},"nodeType":"YulFunctionCall","src":"9802:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9775:6:139"},"nodeType":"YulFunctionCall","src":"9775:43:139"},"nodeType":"YulExpressionStatement","src":"9775:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9838:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9849:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9834:3:139"},"nodeType":"YulFunctionCall","src":"9834:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9858:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"9866:8:139","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9854:3:139"},"nodeType":"YulFunctionCall","src":"9854:21:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9827:6:139"},"nodeType":"YulFunctionCall","src":"9827:49:139"},"nodeType":"YulExpressionStatement","src":"9827:49:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint24__to_t_address_t_address_t_uint24__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9602:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9613:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9621:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9629:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9640:4:139","type":""}],"src":"9494:388:139"},{"body":{"nodeType":"YulBlock","src":"10044:218:139","statements":[{"nodeType":"YulAssignment","src":"10054:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10066:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10077:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10062:3:139"},"nodeType":"YulFunctionCall","src":"10062:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10054:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"10089:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10107:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10112:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10103:3:139"},"nodeType":"YulFunctionCall","src":"10103:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10116:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10099:3:139"},"nodeType":"YulFunctionCall","src":"10099:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10093:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10134:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10149:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10157:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10145:3:139"},"nodeType":"YulFunctionCall","src":"10145:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10127:6:139"},"nodeType":"YulFunctionCall","src":"10127:34:139"},"nodeType":"YulExpressionStatement","src":"10127:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10181:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10192:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10177:3:139"},"nodeType":"YulFunctionCall","src":"10177:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10201:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10209:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10197:3:139"},"nodeType":"YulFunctionCall","src":"10197:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10170:6:139"},"nodeType":"YulFunctionCall","src":"10170:43:139"},"nodeType":"YulExpressionStatement","src":"10170:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10233:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10244:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10229:3:139"},"nodeType":"YulFunctionCall","src":"10229:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"10249:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10222:6:139"},"nodeType":"YulFunctionCall","src":"10222:34:139"},"nodeType":"YulExpressionStatement","src":"10222:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9997:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10008:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10016:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10024:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10035:4:139","type":""}],"src":"9887:375:139"},{"body":{"nodeType":"YulBlock","src":"10424:244:139","statements":[{"nodeType":"YulAssignment","src":"10434:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10446:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10457:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10442:3:139"},"nodeType":"YulFunctionCall","src":"10442:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10434:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10476:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10491:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10507:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10512:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10503:3:139"},"nodeType":"YulFunctionCall","src":"10503:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10516:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10499:3:139"},"nodeType":"YulFunctionCall","src":"10499:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10487:3:139"},"nodeType":"YulFunctionCall","src":"10487:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10469:6:139"},"nodeType":"YulFunctionCall","src":"10469:51:139"},"nodeType":"YulExpressionStatement","src":"10469:51:139"},{"nodeType":"YulVariableDeclaration","src":"10529:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10547:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"10552:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10543:3:139"},"nodeType":"YulFunctionCall","src":"10543:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10556:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10539:3:139"},"nodeType":"YulFunctionCall","src":"10539:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10533:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10578:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10589:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10574:3:139"},"nodeType":"YulFunctionCall","src":"10574:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10598:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10606:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10594:3:139"},"nodeType":"YulFunctionCall","src":"10594:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10567:6:139"},"nodeType":"YulFunctionCall","src":"10567:43:139"},"nodeType":"YulExpressionStatement","src":"10567:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10630:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10641:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10626:3:139"},"nodeType":"YulFunctionCall","src":"10626:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10650:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"10658:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10646:3:139"},"nodeType":"YulFunctionCall","src":"10646:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10619:6:139"},"nodeType":"YulFunctionCall","src":"10619:43:139"},"nodeType":"YulExpressionStatement","src":"10619:43:139"}]},"name":"abi_encode_tuple_t_address_t_uint128_t_uint128__to_t_address_t_uint128_t_uint128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10377:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10388:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10396:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10404:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10415:4:139","type":""}],"src":"10267:401:139"},{"body":{"nodeType":"YulBlock","src":"10802:145:139","statements":[{"nodeType":"YulAssignment","src":"10812:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10824:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10835:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10820:3:139"},"nodeType":"YulFunctionCall","src":"10820:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10812:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10854:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10869:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10885:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10890:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10881:3:139"},"nodeType":"YulFunctionCall","src":"10881:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10894:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10877:3:139"},"nodeType":"YulFunctionCall","src":"10877:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10865:3:139"},"nodeType":"YulFunctionCall","src":"10865:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10847:6:139"},"nodeType":"YulFunctionCall","src":"10847:51:139"},"nodeType":"YulExpressionStatement","src":"10847:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10918:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10929:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10914:3:139"},"nodeType":"YulFunctionCall","src":"10914:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"10934:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10907:6:139"},"nodeType":"YulFunctionCall","src":"10907:34:139"},"nodeType":"YulExpressionStatement","src":"10907:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10763:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10774:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10782:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10793:4:139","type":""}],"src":"10673:274:139"},{"body":{"nodeType":"YulBlock","src":"11047:92:139","statements":[{"nodeType":"YulAssignment","src":"11057:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11069:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11080:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11065:3:139"},"nodeType":"YulFunctionCall","src":"11065:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11057:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11099:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11124:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11117:6:139"},"nodeType":"YulFunctionCall","src":"11117:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11110:6:139"},"nodeType":"YulFunctionCall","src":"11110:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11092:6:139"},"nodeType":"YulFunctionCall","src":"11092:41:139"},"nodeType":"YulExpressionStatement","src":"11092:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11016:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11027:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11038:4:139","type":""}],"src":"10952:187:139"},{"body":{"nodeType":"YulBlock","src":"11243:103:139","statements":[{"nodeType":"YulAssignment","src":"11253:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11265:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11276:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11261:3:139"},"nodeType":"YulFunctionCall","src":"11261:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11253:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11295:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11310:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11322:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11327:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11318:3:139"},"nodeType":"YulFunctionCall","src":"11318:20:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11306:3:139"},"nodeType":"YulFunctionCall","src":"11306:33:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11288:6:139"},"nodeType":"YulFunctionCall","src":"11288:52:139"},"nodeType":"YulExpressionStatement","src":"11288:52:139"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11212:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11223:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11234:4:139","type":""}],"src":"11144:202:139"},{"body":{"nodeType":"YulBlock","src":"11467:102:139","statements":[{"nodeType":"YulAssignment","src":"11477:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11489:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11500:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11485:3:139"},"nodeType":"YulFunctionCall","src":"11485:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11477:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11519:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11534:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11550:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11555:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11546:3:139"},"nodeType":"YulFunctionCall","src":"11546:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11559:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11542:3:139"},"nodeType":"YulFunctionCall","src":"11542:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11530:3:139"},"nodeType":"YulFunctionCall","src":"11530:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11512:6:139"},"nodeType":"YulFunctionCall","src":"11512:51:139"},"nodeType":"YulExpressionStatement","src":"11512:51:139"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11436:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11447:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11458:4:139","type":""}],"src":"11351:218:139"},{"body":{"nodeType":"YulBlock","src":"11712:102:139","statements":[{"nodeType":"YulAssignment","src":"11722:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11734:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11745:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11730:3:139"},"nodeType":"YulFunctionCall","src":"11730:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11722:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11764:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11779:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11795:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11800:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11791:3:139"},"nodeType":"YulFunctionCall","src":"11791:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"11804:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11787:3:139"},"nodeType":"YulFunctionCall","src":"11787:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11775:3:139"},"nodeType":"YulFunctionCall","src":"11775:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11757:6:139"},"nodeType":"YulFunctionCall","src":"11757:51:139"},"nodeType":"YulExpressionStatement","src":"11757:51:139"}]},"name":"abi_encode_tuple_t_contract$_INonfungiblePositionManager_$35221__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11681:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11692:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11703:4:139","type":""}],"src":"11574:240:139"},{"body":{"nodeType":"YulBlock","src":"11939:102:139","statements":[{"nodeType":"YulAssignment","src":"11949:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11961:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11972:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11957:3:139"},"nodeType":"YulFunctionCall","src":"11957:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11949:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11991:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12006:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12022:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12027:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12018:3:139"},"nodeType":"YulFunctionCall","src":"12018:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12031:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12014:3:139"},"nodeType":"YulFunctionCall","src":"12014:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12002:3:139"},"nodeType":"YulFunctionCall","src":"12002:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11984:6:139"},"nodeType":"YulFunctionCall","src":"11984:51:139"},"nodeType":"YulExpressionStatement","src":"11984:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11908:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11919:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11930:4:139","type":""}],"src":"11819:222:139"},{"body":{"nodeType":"YulBlock","src":"12174:102:139","statements":[{"nodeType":"YulAssignment","src":"12184:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12196:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12207:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12192:3:139"},"nodeType":"YulFunctionCall","src":"12192:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12184:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12226:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12241:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12257:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12262:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12253:3:139"},"nodeType":"YulFunctionCall","src":"12253:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12266:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12249:3:139"},"nodeType":"YulFunctionCall","src":"12249:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12237:3:139"},"nodeType":"YulFunctionCall","src":"12237:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12219:6:139"},"nodeType":"YulFunctionCall","src":"12219:51:139"},"nodeType":"YulExpressionStatement","src":"12219:51:139"}]},"name":"abi_encode_tuple_t_contract$_IUniswapV3Factory_$13539__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12143:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12154:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12165:4:139","type":""}],"src":"12046:230:139"},{"body":{"nodeType":"YulBlock","src":"12406:102:139","statements":[{"nodeType":"YulAssignment","src":"12416:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12428:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12439:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12424:3:139"},"nodeType":"YulFunctionCall","src":"12424:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12416:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12458:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12473:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12489:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12494:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12485:3:139"},"nodeType":"YulFunctionCall","src":"12485:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12498:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12481:3:139"},"nodeType":"YulFunctionCall","src":"12481:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12469:3:139"},"nodeType":"YulFunctionCall","src":"12469:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12451:6:139"},"nodeType":"YulFunctionCall","src":"12451:51:139"},"nodeType":"YulExpressionStatement","src":"12451:51:139"}]},"name":"abi_encode_tuple_t_contract$_IUniswapV3Pool_$13561__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12375:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12386:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12397:4:139","type":""}],"src":"12281:227:139"},{"body":{"nodeType":"YulBlock","src":"12620:87:139","statements":[{"nodeType":"YulAssignment","src":"12630:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12642:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12653:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12638:3:139"},"nodeType":"YulFunctionCall","src":"12638:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12630:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12672:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12687:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"12695:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12683:3:139"},"nodeType":"YulFunctionCall","src":"12683:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12665:6:139"},"nodeType":"YulFunctionCall","src":"12665:36:139"},"nodeType":"YulExpressionStatement","src":"12665:36:139"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12589:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12600:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12611:4:139","type":""}],"src":"12513:194:139"},{"body":{"nodeType":"YulBlock","src":"12833:262:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12850:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12861:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12843:6:139"},"nodeType":"YulFunctionCall","src":"12843:21:139"},"nodeType":"YulExpressionStatement","src":"12843:21:139"},{"nodeType":"YulVariableDeclaration","src":"12873:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12893:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12887:5:139"},"nodeType":"YulFunctionCall","src":"12887:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12877:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12920:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12931:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12916:3:139"},"nodeType":"YulFunctionCall","src":"12916:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"12936:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12909:6:139"},"nodeType":"YulFunctionCall","src":"12909:34:139"},"nodeType":"YulExpressionStatement","src":"12909:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12978:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"12986:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12974:3:139"},"nodeType":"YulFunctionCall","src":"12974:15:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12995:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13006:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12991:3:139"},"nodeType":"YulFunctionCall","src":"12991:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"13011:6:139"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12952:21:139"},"nodeType":"YulFunctionCall","src":"12952:66:139"},"nodeType":"YulExpressionStatement","src":"12952:66:139"},{"nodeType":"YulAssignment","src":"13027:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13043:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13062:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"13070:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13058:3:139"},"nodeType":"YulFunctionCall","src":"13058:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13079:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13075:3:139"},"nodeType":"YulFunctionCall","src":"13075:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13054:3:139"},"nodeType":"YulFunctionCall","src":"13054:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13039:3:139"},"nodeType":"YulFunctionCall","src":"13039:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"13086:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13035:3:139"},"nodeType":"YulFunctionCall","src":"13035:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13027:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12802:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12813:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12824:4:139","type":""}],"src":"12712:383:139"},{"body":{"nodeType":"YulBlock","src":"13274:175:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13291:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13302:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13284:6:139"},"nodeType":"YulFunctionCall","src":"13284:21:139"},"nodeType":"YulExpressionStatement","src":"13284:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13325:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13336:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13321:3:139"},"nodeType":"YulFunctionCall","src":"13321:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13341:2:139","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13314:6:139"},"nodeType":"YulFunctionCall","src":"13314:30:139"},"nodeType":"YulExpressionStatement","src":"13314:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13364:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13375:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13360:3:139"},"nodeType":"YulFunctionCall","src":"13360:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"13380:27:139","type":"","value":"already in emergency mode"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13353:6:139"},"nodeType":"YulFunctionCall","src":"13353:55:139"},"nodeType":"YulExpressionStatement","src":"13353:55:139"},{"nodeType":"YulAssignment","src":"13417:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13429:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13440:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13425:3:139"},"nodeType":"YulFunctionCall","src":"13425:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13417:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13251:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13265:4:139","type":""}],"src":"13100:349:139"},{"body":{"nodeType":"YulBlock","src":"13628:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13645:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13656:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13638:6:139"},"nodeType":"YulFunctionCall","src":"13638:21:139"},"nodeType":"YulExpressionStatement","src":"13638:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13679:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13690:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13675:3:139"},"nodeType":"YulFunctionCall","src":"13675:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13695:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13668:6:139"},"nodeType":"YulFunctionCall","src":"13668:30:139"},"nodeType":"YulExpressionStatement","src":"13668:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13718:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13729:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13714:3:139"},"nodeType":"YulFunctionCall","src":"13714:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"13734:20:139","type":"","value":"pool doesn't exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13707:6:139"},"nodeType":"YulFunctionCall","src":"13707:48:139"},"nodeType":"YulExpressionStatement","src":"13707:48:139"},{"nodeType":"YulAssignment","src":"13764:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13776:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13787:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13772:3:139"},"nodeType":"YulFunctionCall","src":"13772:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13764:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13605:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13619:4:139","type":""}],"src":"13454:342:139"},{"body":{"nodeType":"YulBlock","src":"13975:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13992:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14003:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13985:6:139"},"nodeType":"YulFunctionCall","src":"13985:21:139"},"nodeType":"YulExpressionStatement","src":"13985:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14026:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14037:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14022:3:139"},"nodeType":"YulFunctionCall","src":"14022:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14042:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14015:6:139"},"nodeType":"YulFunctionCall","src":"14015:30:139"},"nodeType":"YulExpressionStatement","src":"14015:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14065:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14076:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14061:3:139"},"nodeType":"YulFunctionCall","src":"14061:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14081:20:139","type":"","value":"only tokenid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14054:6:139"},"nodeType":"YulFunctionCall","src":"14054:48:139"},"nodeType":"YulExpressionStatement","src":"14054:48:139"},{"nodeType":"YulAssignment","src":"14111:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14123:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14134:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14119:3:139"},"nodeType":"YulFunctionCall","src":"14119:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14111:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1c4669339db1b9128f87a0e23d1b39c4647e9f6c39f951c47e41f9dced5e33fc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13952:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13966:4:139","type":""}],"src":"13801:342:139"},{"body":{"nodeType":"YulBlock","src":"14322:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14339:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14350:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14332:6:139"},"nodeType":"YulFunctionCall","src":"14332:21:139"},"nodeType":"YulExpressionStatement","src":"14332:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14373:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14384:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14369:3:139"},"nodeType":"YulFunctionCall","src":"14369:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14389:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14362:6:139"},"nodeType":"YulFunctionCall","src":"14362:30:139"},"nodeType":"YulExpressionStatement","src":"14362:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14412:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14423:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14408:3:139"},"nodeType":"YulFunctionCall","src":"14408:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14428:17:139","type":"","value":"not gauge voter"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14401:6:139"},"nodeType":"YulFunctionCall","src":"14401:45:139"},"nodeType":"YulExpressionStatement","src":"14401:45:139"},{"nodeType":"YulAssignment","src":"14455:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14467:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14478:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14463:3:139"},"nodeType":"YulFunctionCall","src":"14463:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14455:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_25d3b055c11d0967ef8bb6b71cf1c4fc04b1e509ce03ce6dc51f45e899291e19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14299:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14313:4:139","type":""}],"src":"14148:339:139"},{"body":{"nodeType":"YulBlock","src":"14666:177:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14683:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14694:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14676:6:139"},"nodeType":"YulFunctionCall","src":"14676:21:139"},"nodeType":"YulExpressionStatement","src":"14676:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14717:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14728:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14713:3:139"},"nodeType":"YulFunctionCall","src":"14713:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14733:2:139","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14706:6:139"},"nodeType":"YulFunctionCall","src":"14706:30:139"},"nodeType":"YulExpressionStatement","src":"14706:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14756:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14767:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14752:3:139"},"nodeType":"YulFunctionCall","src":"14752:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14772:29:139","type":"","value":"not called from nft manager"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14745:6:139"},"nodeType":"YulFunctionCall","src":"14745:57:139"},"nodeType":"YulExpressionStatement","src":"14745:57:139"},{"nodeType":"YulAssignment","src":"14811:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14823:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14834:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14819:3:139"},"nodeType":"YulFunctionCall","src":"14819:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14811:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3e13bccce6b8496a226c03eda750fa8184bb0407e6d5afc9a4faf8b40fdd2150__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14643:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14657:4:139","type":""}],"src":"14492:351:139"},{"body":{"nodeType":"YulBlock","src":"15022:171:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15039:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15050:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15032:6:139"},"nodeType":"YulFunctionCall","src":"15032:21:139"},"nodeType":"YulExpressionStatement","src":"15032:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15073:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15084:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15069:3:139"},"nodeType":"YulFunctionCall","src":"15069:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15089:2:139","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15062:6:139"},"nodeType":"YulFunctionCall","src":"15062:30:139"},"nodeType":"YulExpressionStatement","src":"15062:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15112:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15123:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15108:3:139"},"nodeType":"YulFunctionCall","src":"15108:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15128:23:139","type":"","value":"liquidty not in range"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15101:6:139"},"nodeType":"YulFunctionCall","src":"15101:51:139"},"nodeType":"YulExpressionStatement","src":"15101:51:139"},{"nodeType":"YulAssignment","src":"15161:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15173:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15184:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15169:3:139"},"nodeType":"YulFunctionCall","src":"15169:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15161:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_64a1256a522864251d2b98ba0d8b2204db04a4d66b9d6078787508f543e6e57a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14999:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15013:4:139","type":""}],"src":"14848:345:139"},{"body":{"nodeType":"YulBlock","src":"15372:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15389:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15400:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15382:6:139"},"nodeType":"YulFunctionCall","src":"15382:21:139"},"nodeType":"YulExpressionStatement","src":"15382:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15423:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15434:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15419:3:139"},"nodeType":"YulFunctionCall","src":"15419:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15439:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:139"},"nodeType":"YulFunctionCall","src":"15412:30:139"},"nodeType":"YulExpressionStatement","src":"15412:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15462:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15473:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15458:3:139"},"nodeType":"YulFunctionCall","src":"15458:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15478:16:139","type":"","value":"liquidity is 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15451:6:139"},"nodeType":"YulFunctionCall","src":"15451:44:139"},"nodeType":"YulExpressionStatement","src":"15451:44:139"},{"nodeType":"YulAssignment","src":"15504:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15516:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15527:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15512:3:139"},"nodeType":"YulFunctionCall","src":"15512:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15504:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_696ff4afb8f94b9e0615b62dd4c79972c046448a8e5683291d4d2bbc3e2e7b4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15349:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15363:4:139","type":""}],"src":"15198:338:139"},{"body":{"nodeType":"YulBlock","src":"15715:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15732:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15743:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15725:6:139"},"nodeType":"YulFunctionCall","src":"15725:21:139"},"nodeType":"YulExpressionStatement","src":"15725:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15766:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15777:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15762:3:139"},"nodeType":"YulFunctionCall","src":"15762:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15782:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15755:6:139"},"nodeType":"YulFunctionCall","src":"15755:30:139"},"nodeType":"YulExpressionStatement","src":"15755:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15805:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15816:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15801:3:139"},"nodeType":"YulFunctionCall","src":"15801:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15821:34:139","type":"","value":"token pool is not the right pool"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15794:6:139"},"nodeType":"YulFunctionCall","src":"15794:62:139"},"nodeType":"YulExpressionStatement","src":"15794:62:139"},{"nodeType":"YulAssignment","src":"15865:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15877:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15888:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15873:3:139"},"nodeType":"YulFunctionCall","src":"15873:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15865:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_6c6fdad9528ba94a432ea0119e61556a6886bc009e245446573b9ddd893623b8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15692:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15706:4:139","type":""}],"src":"15541:356:139"},{"body":{"nodeType":"YulBlock","src":"16076:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16093:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16104:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16086:6:139"},"nodeType":"YulFunctionCall","src":"16086:21:139"},"nodeType":"YulExpressionStatement","src":"16086:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16127:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16138:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16123:3:139"},"nodeType":"YulFunctionCall","src":"16123:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16143:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16116:6:139"},"nodeType":"YulFunctionCall","src":"16116:30:139"},"nodeType":"YulExpressionStatement","src":"16116:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16166:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16177:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16162:3:139"},"nodeType":"YulFunctionCall","src":"16162:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16182:26:139","type":"","value":"cannot stake 0 liquidity"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16155:6:139"},"nodeType":"YulFunctionCall","src":"16155:54:139"},"nodeType":"YulExpressionStatement","src":"16155:54:139"},{"nodeType":"YulAssignment","src":"16218:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16230:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16241:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16226:3:139"},"nodeType":"YulFunctionCall","src":"16226:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16218:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_7163d19ed0e499d5d9dbc4995b32af0873a5d59f79a456bb47421efa2460860f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16053:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16067:4:139","type":""}],"src":"15902:348:139"},{"body":{"nodeType":"YulBlock","src":"16429:236:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16446:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16457:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16439:6:139"},"nodeType":"YulFunctionCall","src":"16439:21:139"},"nodeType":"YulExpressionStatement","src":"16439:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16480:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16491:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16476:3:139"},"nodeType":"YulFunctionCall","src":"16476:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16496:2:139","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16469:6:139"},"nodeType":"YulFunctionCall","src":"16469:30:139"},"nodeType":"YulExpressionStatement","src":"16469:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16519:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16530:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16515:3:139"},"nodeType":"YulFunctionCall","src":"16515:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16535:34:139","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16508:6:139"},"nodeType":"YulFunctionCall","src":"16508:62:139"},"nodeType":"YulExpressionStatement","src":"16508:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16590:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16601:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16586:3:139"},"nodeType":"YulFunctionCall","src":"16586:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16606:16:139","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16579:6:139"},"nodeType":"YulFunctionCall","src":"16579:44:139"},"nodeType":"YulExpressionStatement","src":"16579:44:139"},{"nodeType":"YulAssignment","src":"16632:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16644:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16655:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16640:3:139"},"nodeType":"YulFunctionCall","src":"16640:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16632:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16406:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16420:4:139","type":""}],"src":"16255:410:139"},{"body":{"nodeType":"YulBlock","src":"16844:167:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16861:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16872:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16854:6:139"},"nodeType":"YulFunctionCall","src":"16854:21:139"},"nodeType":"YulExpressionStatement","src":"16854:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16895:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16906:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16891:3:139"},"nodeType":"YulFunctionCall","src":"16891:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16911:2:139","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16884:6:139"},"nodeType":"YulFunctionCall","src":"16884:30:139"},"nodeType":"YulExpressionStatement","src":"16884:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16934:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16945:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16930:3:139"},"nodeType":"YulFunctionCall","src":"16930:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16950:19:139","type":"","value":"Cannot withdraw 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16923:6:139"},"nodeType":"YulFunctionCall","src":"16923:47:139"},"nodeType":"YulExpressionStatement","src":"16923:47:139"},{"nodeType":"YulAssignment","src":"16979:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16991:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17002:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16987:3:139"},"nodeType":"YulFunctionCall","src":"16987:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16979:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8d85b8e7f4404d04d93e8d532ad219ceeba0becfbc18622bad46b31e08b1f0b0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16821:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16835:4:139","type":""}],"src":"16670:341:139"},{"body":{"nodeType":"YulBlock","src":"17190:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17207:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17218:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17200:6:139"},"nodeType":"YulFunctionCall","src":"17200:21:139"},"nodeType":"YulExpressionStatement","src":"17200:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17241:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17252:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17237:3:139"},"nodeType":"YulFunctionCall","src":"17237:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17257:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17230:6:139"},"nodeType":"YulFunctionCall","src":"17230:30:139"},"nodeType":"YulExpressionStatement","src":"17230:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17280:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17291:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17276:3:139"},"nodeType":"YulFunctionCall","src":"17276:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17296:14:139","type":"","value":"not timelock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17269:6:139"},"nodeType":"YulFunctionCall","src":"17269:42:139"},"nodeType":"YulExpressionStatement","src":"17269:42:139"},{"nodeType":"YulAssignment","src":"17320:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17332:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17343:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17328:3:139"},"nodeType":"YulFunctionCall","src":"17328:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17320:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17167:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17181:4:139","type":""}],"src":"17016:336:139"},{"body":{"nodeType":"YulBlock","src":"17531:174:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17548:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17559:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17541:6:139"},"nodeType":"YulFunctionCall","src":"17541:21:139"},"nodeType":"YulExpressionStatement","src":"17541:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17582:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17593:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17578:3:139"},"nodeType":"YulFunctionCall","src":"17578:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17598:2:139","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17571:6:139"},"nodeType":"YulFunctionCall","src":"17571:30:139"},"nodeType":"YulExpressionStatement","src":"17571:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17621:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17632:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17617:3:139"},"nodeType":"YulFunctionCall","src":"17617:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17637:26:139","type":"","value":"Provided reward too high"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17610:6:139"},"nodeType":"YulFunctionCall","src":"17610:54:139"},"nodeType":"YulExpressionStatement","src":"17610:54:139"},{"nodeType":"YulAssignment","src":"17673:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17685:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17696:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17681:3:139"},"nodeType":"YulFunctionCall","src":"17681:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17673:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17508:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17522:4:139","type":""}],"src":"17357:348:139"},{"body":{"nodeType":"YulBlock","src":"17884:170:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17901:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17912:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17894:6:139"},"nodeType":"YulFunctionCall","src":"17894:21:139"},"nodeType":"YulExpressionStatement","src":"17894:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17935:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17946:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17931:3:139"},"nodeType":"YulFunctionCall","src":"17931:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"17951:2:139","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17924:6:139"},"nodeType":"YulFunctionCall","src":"17924:30:139"},"nodeType":"YulExpressionStatement","src":"17924:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17974:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17985:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17970:3:139"},"nodeType":"YulFunctionCall","src":"17970:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"17990:22:139","type":"","value":"stake does not exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17963:6:139"},"nodeType":"YulFunctionCall","src":"17963:50:139"},"nodeType":"YulExpressionStatement","src":"17963:50:139"},{"nodeType":"YulAssignment","src":"18022:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18034:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18045:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18030:3:139"},"nodeType":"YulFunctionCall","src":"18030:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18022:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b053777096494c68d763d5980fe57eef5a024316a3cb689ed805fab926222805__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17861:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17875:4:139","type":""}],"src":"17710:344:139"},{"body":{"nodeType":"YulBlock","src":"18233:171:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18250:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18261:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18243:6:139"},"nodeType":"YulFunctionCall","src":"18243:21:139"},"nodeType":"YulExpressionStatement","src":"18243:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18284:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18295:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18280:3:139"},"nodeType":"YulFunctionCall","src":"18280:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18300:2:139","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18273:6:139"},"nodeType":"YulFunctionCall","src":"18273:30:139"},"nodeType":"YulExpressionStatement","src":"18273:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18323:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18334:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18319:3:139"},"nodeType":"YulFunctionCall","src":"18319:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18339:23:139","type":"","value":"not in emergency mode"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18312:6:139"},"nodeType":"YulFunctionCall","src":"18312:51:139"},"nodeType":"YulExpressionStatement","src":"18312:51:139"},{"nodeType":"YulAssignment","src":"18372:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18384:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18395:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18380:3:139"},"nodeType":"YulFunctionCall","src":"18380:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18372:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18210:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18224:4:139","type":""}],"src":"18059:345:139"},{"body":{"nodeType":"YulBlock","src":"18583:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18600:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18611:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18593:6:139"},"nodeType":"YulFunctionCall","src":"18593:21:139"},"nodeType":"YulExpressionStatement","src":"18593:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18634:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18645:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18630:3:139"},"nodeType":"YulFunctionCall","src":"18630:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"18650:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18623:6:139"},"nodeType":"YulFunctionCall","src":"18623:30:139"},"nodeType":"YulExpressionStatement","src":"18623:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18673:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18684:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18669:3:139"},"nodeType":"YulFunctionCall","src":"18669:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"18689:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18662:6:139"},"nodeType":"YulFunctionCall","src":"18662:61:139"},"nodeType":"YulExpressionStatement","src":"18662:61:139"},{"nodeType":"YulAssignment","src":"18732:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18744:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18755:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18740:3:139"},"nodeType":"YulFunctionCall","src":"18740:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18732:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18560:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18574:4:139","type":""}],"src":"18409:355:139"},{"body":{"nodeType":"YulBlock","src":"18870:102:139","statements":[{"nodeType":"YulAssignment","src":"18880:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18892:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"18903:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18888:3:139"},"nodeType":"YulFunctionCall","src":"18888:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18880:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18922:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18937:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18953:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"18958:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18949:3:139"},"nodeType":"YulFunctionCall","src":"18949:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"18962:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18945:3:139"},"nodeType":"YulFunctionCall","src":"18945:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18933:3:139"},"nodeType":"YulFunctionCall","src":"18933:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18915:6:139"},"nodeType":"YulFunctionCall","src":"18915:51:139"},"nodeType":"YulExpressionStatement","src":"18915:51:139"}]},"name":"abi_encode_tuple_t_uint128__to_t_uint128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18839:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18850:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18861:4:139","type":""}],"src":"18769:203:139"},{"body":{"nodeType":"YulBlock","src":"19078:76:139","statements":[{"nodeType":"YulAssignment","src":"19088:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19100:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19111:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19096:3:139"},"nodeType":"YulFunctionCall","src":"19096:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19088:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19130:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"19141:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19123:6:139"},"nodeType":"YulFunctionCall","src":"19123:25:139"},"nodeType":"YulExpressionStatement","src":"19123:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19047:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19058:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19069:4:139","type":""}],"src":"18977:177:139"},{"body":{"nodeType":"YulBlock","src":"19316:218:139","statements":[{"nodeType":"YulAssignment","src":"19326:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19338:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19349:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19334:3:139"},"nodeType":"YulFunctionCall","src":"19334:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19326:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19368:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"19379:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19361:6:139"},"nodeType":"YulFunctionCall","src":"19361:25:139"},"nodeType":"YulExpressionStatement","src":"19361:25:139"},{"nodeType":"YulVariableDeclaration","src":"19395:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19413:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"19418:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19409:3:139"},"nodeType":"YulFunctionCall","src":"19409:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"19422:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19405:3:139"},"nodeType":"YulFunctionCall","src":"19405:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19399:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19444:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19455:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19440:3:139"},"nodeType":"YulFunctionCall","src":"19440:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19464:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"19472:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19460:3:139"},"nodeType":"YulFunctionCall","src":"19460:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19433:6:139"},"nodeType":"YulFunctionCall","src":"19433:43:139"},"nodeType":"YulExpressionStatement","src":"19433:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19496:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19507:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19492:3:139"},"nodeType":"YulFunctionCall","src":"19492:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19516:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"19524:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19512:3:139"},"nodeType":"YulFunctionCall","src":"19512:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19485:6:139"},"nodeType":"YulFunctionCall","src":"19485:43:139"},"nodeType":"YulExpressionStatement","src":"19485:43:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint128_t_uint128__to_t_uint256_t_uint128_t_uint128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19269:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19280:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19288:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19296:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19307:4:139","type":""}],"src":"19159:375:139"},{"body":{"nodeType":"YulBlock","src":"19668:119:139","statements":[{"nodeType":"YulAssignment","src":"19678:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19690:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19701:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19686:3:139"},"nodeType":"YulFunctionCall","src":"19686:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19678:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19720:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"19731:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19713:6:139"},"nodeType":"YulFunctionCall","src":"19713:25:139"},"nodeType":"YulExpressionStatement","src":"19713:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19758:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"19769:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19754:3:139"},"nodeType":"YulFunctionCall","src":"19754:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"19774:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19747:6:139"},"nodeType":"YulFunctionCall","src":"19747:34:139"},"nodeType":"YulExpressionStatement","src":"19747:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19629:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19640:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19648:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19659:4:139","type":""}],"src":"19539:248:139"},{"body":{"nodeType":"YulBlock","src":"19837:230:139","statements":[{"nodeType":"YulAssignment","src":"19847:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19863:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19857:5:139"},"nodeType":"YulFunctionCall","src":"19857:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"19847:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"19875:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"19897:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"19913:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"19919:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19909:3:139"},"nodeType":"YulFunctionCall","src":"19909:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19928:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19924:3:139"},"nodeType":"YulFunctionCall","src":"19924:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19905:3:139"},"nodeType":"YulFunctionCall","src":"19905:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19893:3:139"},"nodeType":"YulFunctionCall","src":"19893:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"19879:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"20008:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"20010:16:139"},"nodeType":"YulFunctionCall","src":"20010:18:139"},"nodeType":"YulExpressionStatement","src":"20010:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19951:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"19963:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19948:2:139"},"nodeType":"YulFunctionCall","src":"19948:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19987:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"19999:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19984:2:139"},"nodeType":"YulFunctionCall","src":"19984:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"19945:2:139"},"nodeType":"YulFunctionCall","src":"19945:62:139"},"nodeType":"YulIf","src":"19942:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20046:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"20050:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20039:6:139"},"nodeType":"YulFunctionCall","src":"20039:22:139"},"nodeType":"YulExpressionStatement","src":"20039:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"19817:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"19826:6:139","type":""}],"src":"19792:275:139"},{"body":{"nodeType":"YulBlock","src":"20120:190:139","statements":[{"nodeType":"YulVariableDeclaration","src":"20130:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20148:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"20153:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20144:3:139"},"nodeType":"YulFunctionCall","src":"20144:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"20157:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20140:3:139"},"nodeType":"YulFunctionCall","src":"20140:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20134:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20168:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20183:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"20186:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20179:3:139"},"nodeType":"YulFunctionCall","src":"20179:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"20172:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20198:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20213:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"20216:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20209:3:139"},"nodeType":"YulFunctionCall","src":"20209:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"20202:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"20253:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20255:16:139"},"nodeType":"YulFunctionCall","src":"20255:18:139"},"nodeType":"YulExpressionStatement","src":"20255:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20234:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20243:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"20247:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20239:3:139"},"nodeType":"YulFunctionCall","src":"20239:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20231:2:139"},"nodeType":"YulFunctionCall","src":"20231:21:139"},"nodeType":"YulIf","src":"20228:2:139"},{"nodeType":"YulAssignment","src":"20284:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20295:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"20300:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20291:3:139"},"nodeType":"YulFunctionCall","src":"20291:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"20284:3:139"}]}]},"name":"checked_add_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20103:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"20106:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"20112:3:139","type":""}],"src":"20072:238:139"},{"body":{"nodeType":"YulBlock","src":"20363:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"20390:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20392:16:139"},"nodeType":"YulFunctionCall","src":"20392:18:139"},"nodeType":"YulExpressionStatement","src":"20392:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20379:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20386:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20382:3:139"},"nodeType":"YulFunctionCall","src":"20382:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20376:2:139"},"nodeType":"YulFunctionCall","src":"20376:13:139"},"nodeType":"YulIf","src":"20373:2:139"},{"nodeType":"YulAssignment","src":"20421:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20432:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"20435:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20428:3:139"},"nodeType":"YulFunctionCall","src":"20428:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"20421:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20346:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"20349:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"20355:3:139","type":""}],"src":"20315:128:139"},{"body":{"nodeType":"YulBlock","src":"20494:155:139","statements":[{"nodeType":"YulVariableDeclaration","src":"20504:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20522:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"20527:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20518:3:139"},"nodeType":"YulFunctionCall","src":"20518:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"20531:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20514:3:139"},"nodeType":"YulFunctionCall","src":"20514:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20508:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20542:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20557:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"20560:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20553:3:139"},"nodeType":"YulFunctionCall","src":"20553:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"20546:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"20587:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"20589:16:139"},"nodeType":"YulFunctionCall","src":"20589:18:139"},"nodeType":"YulExpressionStatement","src":"20589:18:139"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"20582:3:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20575:6:139"},"nodeType":"YulFunctionCall","src":"20575:11:139"},"nodeType":"YulIf","src":"20572:2:139"},{"nodeType":"YulAssignment","src":"20618:25:139","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20631:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"20634:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20627:3:139"},"nodeType":"YulFunctionCall","src":"20627:10:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"20639:3:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"20623:3:139"},"nodeType":"YulFunctionCall","src":"20623:20:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"20618:1:139"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20479:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"20482:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"20488:1:139","type":""}],"src":"20448:201:139"},{"body":{"nodeType":"YulBlock","src":"20700:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"20723:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"20725:16:139"},"nodeType":"YulFunctionCall","src":"20725:18:139"},"nodeType":"YulExpressionStatement","src":"20725:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20720:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20713:6:139"},"nodeType":"YulFunctionCall","src":"20713:9:139"},"nodeType":"YulIf","src":"20710:2:139"},{"nodeType":"YulAssignment","src":"20754:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20763:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"20766:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"20759:3:139"},"nodeType":"YulFunctionCall","src":"20759:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"20754:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20685:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"20688:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"20694:1:139","type":""}],"src":"20654:120:139"},{"body":{"nodeType":"YulBlock","src":"20831:220:139","statements":[{"nodeType":"YulVariableDeclaration","src":"20841:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20859:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"20864:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20855:3:139"},"nodeType":"YulFunctionCall","src":"20855:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"20868:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20851:3:139"},"nodeType":"YulFunctionCall","src":"20851:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20845:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20879:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20894:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"20897:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20890:3:139"},"nodeType":"YulFunctionCall","src":"20890:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"20883:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20909:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20924:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"20927:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20920:3:139"},"nodeType":"YulFunctionCall","src":"20920:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"20913:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"20990:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20992:16:139"},"nodeType":"YulFunctionCall","src":"20992:18:139"},"nodeType":"YulExpressionStatement","src":"20992:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20960:3:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20953:6:139"},"nodeType":"YulFunctionCall","src":"20953:11:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20946:6:139"},"nodeType":"YulFunctionCall","src":"20946:19:139"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"20970:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20979:2:139"},{"name":"x_1","nodeType":"YulIdentifier","src":"20983:3:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"20975:3:139"},"nodeType":"YulFunctionCall","src":"20975:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20967:2:139"},"nodeType":"YulFunctionCall","src":"20967:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20942:3:139"},"nodeType":"YulFunctionCall","src":"20942:47:139"},"nodeType":"YulIf","src":"20939:2:139"},{"nodeType":"YulAssignment","src":"21021:24:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"21036:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"21041:3:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21032:3:139"},"nodeType":"YulFunctionCall","src":"21032:13:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21021:7:139"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20810:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"20813:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"20819:7:139","type":""}],"src":"20779:272:139"},{"body":{"nodeType":"YulBlock","src":"21108:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"21167:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21169:16:139"},"nodeType":"YulFunctionCall","src":"21169:18:139"},"nodeType":"YulExpressionStatement","src":"21169:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21139:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21132:6:139"},"nodeType":"YulFunctionCall","src":"21132:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21125:6:139"},"nodeType":"YulFunctionCall","src":"21125:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21147:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21158:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21154:3:139"},"nodeType":"YulFunctionCall","src":"21154:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"21162:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21150:3:139"},"nodeType":"YulFunctionCall","src":"21150:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21144:2:139"},"nodeType":"YulFunctionCall","src":"21144:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21121:3:139"},"nodeType":"YulFunctionCall","src":"21121:45:139"},"nodeType":"YulIf","src":"21118:2:139"},{"nodeType":"YulAssignment","src":"21198:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21213:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"21216:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21209:3:139"},"nodeType":"YulFunctionCall","src":"21209:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21198:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21087:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"21090:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"21096:7:139","type":""}],"src":"21056:168:139"},{"body":{"nodeType":"YulBlock","src":"21278:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"21300:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21302:16:139"},"nodeType":"YulFunctionCall","src":"21302:18:139"},"nodeType":"YulExpressionStatement","src":"21302:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21294:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"21297:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21291:2:139"},"nodeType":"YulFunctionCall","src":"21291:8:139"},"nodeType":"YulIf","src":"21288:2:139"},{"nodeType":"YulAssignment","src":"21331:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21343:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"21346:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21339:3:139"},"nodeType":"YulFunctionCall","src":"21339:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"21331:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21260:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"21263:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"21269:4:139","type":""}],"src":"21229:125:139"},{"body":{"nodeType":"YulBlock","src":"21412:205:139","statements":[{"nodeType":"YulVariableDeclaration","src":"21422:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"21431:1:139","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21426:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"21491:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21516:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"21521:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21512:3:139"},"nodeType":"YulFunctionCall","src":"21512:11:139"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21535:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"21540:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21531:3:139"},"nodeType":"YulFunctionCall","src":"21531:11:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21525:5:139"},"nodeType":"YulFunctionCall","src":"21525:18:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21505:6:139"},"nodeType":"YulFunctionCall","src":"21505:39:139"},"nodeType":"YulExpressionStatement","src":"21505:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21452:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"21455:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21449:2:139"},"nodeType":"YulFunctionCall","src":"21449:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21463:19:139","statements":[{"nodeType":"YulAssignment","src":"21465:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21474:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"21477:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21470:3:139"},"nodeType":"YulFunctionCall","src":"21470:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21465:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"21445:3:139","statements":[]},"src":"21441:113:139"},{"body":{"nodeType":"YulBlock","src":"21580:31:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21593:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"21598:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21589:3:139"},"nodeType":"YulFunctionCall","src":"21589:16:139"},{"kind":"number","nodeType":"YulLiteral","src":"21607:1:139","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21582:6:139"},"nodeType":"YulFunctionCall","src":"21582:27:139"},"nodeType":"YulExpressionStatement","src":"21582:27:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21569:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"21572:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21566:2:139"},"nodeType":"YulFunctionCall","src":"21566:13:139"},"nodeType":"YulIf","src":"21563:2:139"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"21390:3:139","type":""},{"name":"dst","nodeType":"YulTypedName","src":"21395:3:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"21400:6:139","type":""}],"src":"21359:258:139"},{"body":{"nodeType":"YulBlock","src":"21669:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"21700:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21702:16:139"},"nodeType":"YulFunctionCall","src":"21702:18:139"},"nodeType":"YulExpressionStatement","src":"21702:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21685:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21696:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21692:3:139"},"nodeType":"YulFunctionCall","src":"21692:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"21682:2:139"},"nodeType":"YulFunctionCall","src":"21682:17:139"},"nodeType":"YulIf","src":"21679:2:139"},{"nodeType":"YulAssignment","src":"21731:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21742:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"21749:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21738:3:139"},"nodeType":"YulFunctionCall","src":"21738:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21731:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21651:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21661:3:139","type":""}],"src":"21622:135:139"},{"body":{"nodeType":"YulBlock","src":"21794:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21811:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21818:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"21823:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21814:3:139"},"nodeType":"YulFunctionCall","src":"21814:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21804:6:139"},"nodeType":"YulFunctionCall","src":"21804:31:139"},"nodeType":"YulExpressionStatement","src":"21804:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21851:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"21854:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21844:6:139"},"nodeType":"YulFunctionCall","src":"21844:15:139"},"nodeType":"YulExpressionStatement","src":"21844:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21875:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21878:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21868:6:139"},"nodeType":"YulFunctionCall","src":"21868:15:139"},"nodeType":"YulExpressionStatement","src":"21868:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"21762:127:139"},{"body":{"nodeType":"YulBlock","src":"21926:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21943:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21950:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"21955:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21946:3:139"},"nodeType":"YulFunctionCall","src":"21946:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21936:6:139"},"nodeType":"YulFunctionCall","src":"21936:31:139"},"nodeType":"YulExpressionStatement","src":"21936:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21983:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"21986:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21976:6:139"},"nodeType":"YulFunctionCall","src":"21976:15:139"},"nodeType":"YulExpressionStatement","src":"21976:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22007:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22010:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22000:6:139"},"nodeType":"YulFunctionCall","src":"22000:15:139"},"nodeType":"YulExpressionStatement","src":"22000:15:139"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"21894:127:139"},{"body":{"nodeType":"YulBlock","src":"22058:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22075:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22082:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22087:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22078:3:139"},"nodeType":"YulFunctionCall","src":"22078:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22068:6:139"},"nodeType":"YulFunctionCall","src":"22068:31:139"},"nodeType":"YulExpressionStatement","src":"22068:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22115:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22118:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22108:6:139"},"nodeType":"YulFunctionCall","src":"22108:15:139"},"nodeType":"YulExpressionStatement","src":"22108:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22139:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22142:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22132:6:139"},"nodeType":"YulFunctionCall","src":"22132:15:139"},"nodeType":"YulExpressionStatement","src":"22132:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"22026:127:139"},{"body":{"nodeType":"YulBlock","src":"22203:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"22267:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22276:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22279:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22269:6:139"},"nodeType":"YulFunctionCall","src":"22269:12:139"},"nodeType":"YulExpressionStatement","src":"22269:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22226:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22237:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22252:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22257:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22248:3:139"},"nodeType":"YulFunctionCall","src":"22248:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"22261:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22244:3:139"},"nodeType":"YulFunctionCall","src":"22244:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22233:3:139"},"nodeType":"YulFunctionCall","src":"22233:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22223:2:139"},"nodeType":"YulFunctionCall","src":"22223:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22216:6:139"},"nodeType":"YulFunctionCall","src":"22216:50:139"},"nodeType":"YulIf","src":"22213:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22192:5:139","type":""}],"src":"22158:131:139"},{"body":{"nodeType":"YulBlock","src":"22339:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"22403:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22412:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22415:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22405:6:139"},"nodeType":"YulFunctionCall","src":"22405:12:139"},"nodeType":"YulExpressionStatement","src":"22405:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22362:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22373:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22388:3:139","type":"","value":"128"},{"kind":"number","nodeType":"YulLiteral","src":"22393:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22384:3:139"},"nodeType":"YulFunctionCall","src":"22384:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"22397:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22380:3:139"},"nodeType":"YulFunctionCall","src":"22380:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22369:3:139"},"nodeType":"YulFunctionCall","src":"22369:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22359:2:139"},"nodeType":"YulFunctionCall","src":"22359:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22352:6:139"},"nodeType":"YulFunctionCall","src":"22352:50:139"},"nodeType":"YulIf","src":"22349:2:139"}]},"name":"validator_revert_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22328:5:139","type":""}],"src":"22294:131:139"},{"body":{"nodeType":"YulBlock","src":"22474:75:139","statements":[{"body":{"nodeType":"YulBlock","src":"22527:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22536:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22539:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22529:6:139"},"nodeType":"YulFunctionCall","src":"22529:12:139"},"nodeType":"YulExpressionStatement","src":"22529:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22497:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22508:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"22515:8:139","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22504:3:139"},"nodeType":"YulFunctionCall","src":"22504:20:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22494:2:139"},"nodeType":"YulFunctionCall","src":"22494:31:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22487:6:139"},"nodeType":"YulFunctionCall","src":"22487:39:139"},"nodeType":"YulIf","src":"22484:2:139"}]},"name":"validator_revert_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22463:5:139","type":""}],"src":"22430:119:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_bool_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_int24_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, signextend(2, value))) { revert(0, 0) }\n    }\n    function abi_decode_uint128_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint128(value)\n    }\n    function abi_decode_uint16_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint24_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint24(value)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint24t_addresst_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n        let value_3 := calldataload(add(headStart, 96))\n        validator_revert_uint24(value_3)\n        value3 := value_3\n        let value_4 := calldataload(add(headStart, 128))\n        validator_revert_address(value_4)\n        value4 := value_4\n        let value_5 := calldataload(add(headStart, 160))\n        validator_revert_address(value_5)\n        value5 := value_5\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value4, value4) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(value4, value4) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(value4, value4) }\n        value3 := add(_2, 32)\n        value4 := length\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value1, value1) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let dst := allocate_memory(add(_5, _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let src := add(_3, _1)\n        if gt(add(add(_3, _5), _1), dataEnd) { revert(value1, value1) }\n        let i := value1\n        for { } lt(i, _4) { i := add(i, 1) }\n        {\n            let value_1 := calldataload(src)\n            validator_revert_address(value_1)\n            mstore(dst, value_1)\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value1 := dst_1\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value1, value1) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let array := allocate_memory(add(and(add(_4, 0x1f), not(31)), _1))\n        mstore(array, _4)\n        if gt(add(add(_3, _4), _1), dataEnd) { revert(value1, value1) }\n        calldatacopy(add(array, _1), add(_3, _1), _4)\n        mstore(add(add(array, _4), _1), value1)\n        value1 := array\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_bool_fromMemory(headStart)\n    }\n    function abi_decode_tuple_t_uint128t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_uint128(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_uint160t_int24t_uint16t_uint16t_uint16t_uint8t_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(value2, value2) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_int24_fromMemory(add(headStart, 32))\n        value2 := abi_decode_uint16_fromMemory(add(headStart, 64))\n        value3 := abi_decode_uint16_fromMemory(add(headStart, 96))\n        value4 := abi_decode_uint16_fromMemory(add(headStart, 128))\n        let value_1 := mload(add(headStart, 160))\n        if iszero(eq(value_1, and(value_1, 0xff))) { revert(value6, value6) }\n        value5 := value_1\n        value6 := abi_decode_bool_fromMemory(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint96t_addresst_addresst_addresst_uint24t_int24t_int24t_uint128t_uint256t_uint256t_uint128t_uint128_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11\n    {\n        if slt(sub(dataEnd, headStart), 384) { revert(value6, value6) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(value6, value6) }\n        value0 := value\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n        value3 := abi_decode_address_fromMemory(add(headStart, 96))\n        value4 := abi_decode_uint24_fromMemory(add(headStart, 128))\n        value5 := abi_decode_int24_fromMemory(add(headStart, 160))\n        value6 := abi_decode_int24_fromMemory(add(headStart, 192))\n        value7 := abi_decode_uint128_fromMemory(add(headStart, 224))\n        value8 := mload(add(headStart, 256))\n        value9 := mload(add(headStart, 288))\n        value10 := abi_decode_uint128_fromMemory(add(headStart, 320))\n        value11 := abi_decode_uint128_fromMemory(add(headStart, 352))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint24__to_t_address_t_address_t_uint24__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffff))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_uint128_t_uint128__to_t_address_t_uint128_t_uint128__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        let _1 := sub(shl(128, 1), 1)\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_INonfungiblePositionManager_$35221__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IUniswapV3Factory_$13539__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IUniswapV3Pool_$13561__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_001c2f91d7f5b9f826ee8d160ab1223b43e8f4bdecc5987100aba307290ca66d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"already in emergency mode\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0e7bfa41936ea0f14228a1e1d47a40800594bfee7c0cb33646a51576af420e4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"pool doesn't exist\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1c4669339db1b9128f87a0e23d1b39c4647e9f6c39f951c47e41f9dced5e33fc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"only tokenid owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_25d3b055c11d0967ef8bb6b71cf1c4fc04b1e509ce03ce6dc51f45e899291e19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"not gauge voter\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3e13bccce6b8496a226c03eda750fa8184bb0407e6d5afc9a4faf8b40fdd2150__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"not called from nft manager\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_64a1256a522864251d2b98ba0d8b2204db04a4d66b9d6078787508f543e6e57a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"liquidty not in range\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_696ff4afb8f94b9e0615b62dd4c79972c046448a8e5683291d4d2bbc3e2e7b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"liquidity is 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6c6fdad9528ba94a432ea0119e61556a6886bc009e245446573b9ddd893623b8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"token pool is not the right pool\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7163d19ed0e499d5d9dbc4995b32af0873a5d59f79a456bb47421efa2460860f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"cannot stake 0 liquidity\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8d85b8e7f4404d04d93e8d532ad219ceeba0becfbc18622bad46b31e08b1f0b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Cannot withdraw 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9cc68d25774760b7dce2e9971365bd17252e55dfa1873462c3da5524c9895468__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"not timelock\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af294828ccb7807394ab9c640e14eb2534ed0e75bb2e1346f1bb81dd84cda810__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Provided reward too high\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b053777096494c68d763d5980fe57eef5a024316a3cb689ed805fab926222805__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"stake does not exist\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df5ccee6bec62de6a91a7261842116168780a7dde172cbff918d08ca37634eae__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"not in emergency mode\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint128__to_t_uint128__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(128, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint128_t_uint128__to_t_uint256_t_uint128_t_uint128__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        let _1 := sub(shl(128, 1), 1)\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function checked_add_t_uint128(x, y) -> sum\n    {\n        let _1 := sub(shl(128, 1), 1)\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint128(x, y) -> r\n    {\n        let _1 := sub(shl(128, 1), 1)\n        let y_1 := and(y, _1)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, _1), y_1)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint128(x, y) -> product\n    {\n        let _1 := sub(shl(128, 1), 1)\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n        product := mul(x_1, y_1)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function validator_revert_uint128(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(128, 1), 1)))) { revert(0, 0) }\n    }\n    function validator_revert_uint24(value)\n    {\n        if iszero(eq(value, and(value, 0xffffff))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101f75760003560e01c80638a16a30b11610120578063c4cfbf06116100b8578063d1af0c7d1161007c578063d1af0c7d14610521578063d7e79f0214610534578063df136d6514610547578063ebe2b12b14610550578063f301af421461055957600080fd5b8063c4cfbf06146104b1578063c5b1c7d0146104dc578063c8f1c3af146104e4578063c8f33c9114610510578063cd3daf9d1461051957600080fd5b80638a16a30b146103a957806399bcc052146103bc5780639be54945146103cf578063b02c43d0146103dc578063b44a272214610452578063b66503cf14610465578063b93c9a1d14610478578063c45a01551461048b578063c4bf02201461049e57600080fd5b8063386a952511610193578063386a95251461030d5780634d6ed8c41461031657806369db8b27146103295780636c6f858b1461033257806370a08231146103525780637b0a47ee146103725780637b1039991461037b5780637f8661a11461038e57806380faa57d146103a157600080fd5b806303f3e30e146101fc578063150b7a021461024257806316f0115b1461026e57806318160ddd1461028e5780631c1f78eb146102975780631c4b774b1461029f5780632e1a7d4d146102b457806331279d3d146102c757806336703461146102da575b600080fd5b61022f61020a3660046126b0565b6000908152600c6020526040902060010154600160801b90046001600160801b031690565b6040519081526020015b60405180910390f35b6102556102503660046123a0565b610579565b6040516001600160e01b03199091168152602001610239565b601054610281906001600160a01b031681565b60405161023991906127db565b61022f600b5481565b61022f6105c3565b6102b26102ad3660046126b0565b6105e1565b005b6102b26102c23660046126b0565b610761565b6102b26102d536600461243a565b610a75565b6102fd6102e83660046122e7565b60166020526000908152604090205460ff1681565b6040519015158152602001610239565b61022f60065481565b61022f6103243660046126b0565b610b09565b61022f60095481565b61022f6103403660046126b0565b600a6020526000908152604090205481565b61022f6103603660046122e7565b60116020526000908152604090205481565b61022f60055481565b600254610281906001600160a01b031681565b6102b261039c3660046126b0565b610b86565b61022f610b9b565b6102b26103b73660046126b0565b610bb2565b61022f6103ca3660046122e7565b610d5e565b6017546102fd9060ff1681565b6104236103ea3660046126b0565b600c60205260009081526040902080546001909101546001600160a01b03909116906001600160801b0380821691600160801b90041683565b604080516001600160a01b0390941684526001600160801b039283166020850152911690820152606001610239565b600f54610281906001600160a01b031681565b6102b26104733660046125a5565b610d98565b6102b261048636600461231f565b611010565b600e54610281906001600160a01b031681565b6102b26104ac366004612503565b6112d3565b6104c46104bf3660046125ea565b6114a4565b6040516001600160801b039091168152602001610239565b6102b2611635565b61022f6104f23660046126b0565b6000908152600c60205260409020600101546001600160801b031690565b61022f60075481565b61022f6118eb565b600354610281906001600160a01b031681565b6102b26105423660046126b0565b611937565b61022f60085481565b61022f60045481565b61022f6105673660046126b0565b600d6020526000908152604090205481565b60175460009060ff166105a75760405162461bcd60e51b815260040161059e906128c0565b60405180910390fd5b6105b18585611998565b50630a85bd0160e11b95945050505050565b60006105dc600654600554611da890919063ffffffff16565b905090565b600260015414156106045760405162461bcd60e51b815260040161059e906128ef565b60026001558061061381611db4565b6000828152600c602052604090205482906001600160a01b0316331461064b5760405162461bcd60e51b815260040161059e9061286e565b6000838152600d60205260409020548015610757576000848152600d60209081526040808320839055600354600c9092529182902054915163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070291906125d0565b506000848152600c60209081526040918290205482518781529182018490526001600160a01b0316917fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51910160405180910390a25b5050600180555050565b600260015414156107845760405162461bcd60e51b815260040161059e906128ef565b60026001558061079381611db4565b6000828152600c602052604090205482906001600160a01b031633146107cb5760405162461bcd60e51b815260040161059e9061286e565b6000838152600c60205260409020600101546001600160801b03166108265760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015260640161059e565b6000838152600c6020526040902060010154600b5461085491600160801b90046001600160801b0316611e03565b600b556000838152600c6020526040812080546001600160a01b0319168155600101556108813384611e0f565b61088a83611eab565b3360009081526011602052604081208054600192906108aa908490612a22565b9091555050600f54604051632142170760e11b81526001600160a01b03909116906342842e0e906108e390309033908890600401612817565b600060405180830381600087803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b50503360009081526011602052604090205415915050801561094257503360009081526016602052604090205460ff165b15610a375733600090815260166020908152604091829020805460ff1916905560025482516381ca29a160e01b815292516001600160a01b03909116926381ca29a1926004808301939192829003018186803b1580156109a157600080fd5b505afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d99190612303565b6001600160a01b031663e32e4e88336040518263ffffffff1660e01b8152600401610a0491906127db565b600060405180830381600087803b158015610a1e57600080fd5b505af1158015610a32573d6000803e3d6000fd5b505050505b60405183815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a250506001805550565b60026001541415610a985760405162461bcd60e51b815260040161059e906128ef565b600260015560005b6001600160a01b038316600090815260116020526040902054811015610b00576001600160a01b0383166000908152601260209081526040808320848452909152902054610aed816105e1565b5080610af881612a69565b915050610aa0565b50506001805550565b6000818152600d6020908152604080832054600a909252822054610b809190610b7a90670de0b6b3a764000090610b7490610b4c90610b466118eb565b90611e03565b6000888152600c6020526040902060010154600160801b90046001600160801b031690611da8565b90611f84565b90611f90565b92915050565b610b8f81610761565b610b98816105e1565b50565b60006004544210610bad575060045490565b504290565b60026001541415610bd55760405162461bcd60e51b815260040161059e906128ef565b60026001556000818152600c602052604090205481906001600160a01b03163314610c125760405162461bcd60e51b815260040161059e9061286e565b60175460ff16610c345760405162461bcd60e51b815260040161059e906128c0565b6000828152600c60205260409020600101546001600160801b0316610c925760405162461bcd60e51b81526020600482015260146024820152731cdd185ad948191bd95cc81b9bdd08195e1a5cdd60621b604482015260640161059e565b6000828152600c602052604080822080546001600160a01b0319168155600101919091555133907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d590610ce89085815260200190565b60405180910390a2600f54604051632142170760e11b81526001600160a01b03909116906342842e0e90610d2490309033908790600401612817565b600060405180830381600087803b158015610d3e57600080fd5b505af1158015610d52573d6000803e3d6000fd5b50506001805550505050565b60006004544210610d7157506000919050565b600042600454610d819190612a22565b905060055481610d919190612a03565b9392505050565b6000610da381611db4565b600260009054906101000a90046001600160a01b03166001600160a01b03166381ca29a16040518163ffffffff1660e01b815260040160206040518083038186803b158015610df157600080fd5b505afa158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190612303565b6001600160a01b0316336001600160a01b031614610e7b5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1033b0bab3b2903b37ba32b960891b604482015260640161059e565b6004544210610e9a57600654610e92908390611f84565b600555610edd565b600454600090610eaa9042611e03565b90506000610ec360055483611da890919063ffffffff16565b600654909150610ed790610b748684611f90565b60055550505b6003546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610f0e9030906004016127db565b60206040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e91906126c8565b9050610f7560065482611f8490919063ffffffff16565b6005541115610fc15760405162461bcd60e51b81526020600482015260186024820152770a0e4deecd2c8cac840e4caeec2e4c840e8dede40d0d2ced60431b604482015260640161059e565b426007819055600654610fd49190611f90565b6004556040518381527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a150505050565b600054610100900460ff16158080156110305750600054600160ff909116105b8061104a5750303b15801561104a575060005460ff166001145b6110ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161059e565b6000805460ff1916600117905580156110d0576000805461ff0019166101001790555b600f80546001600160a01b038085166001600160a01b0319928316811790935560028054918b16919092161790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b15801561113457600080fd5b505afa158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190612303565b600e80546001600160a01b039283166001600160a01b03199182168117909255600380549387169390911692909217909155604051630b4c774160e11b815260009190631698ee82906111c7908a908a908a906004016127ef565b60206040518083038186803b1580156111df57600080fd5b505afa1580156111f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112179190612303565b90506001600160a01b0381166112645760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08191bd95cdb89dd08195e1a5cdd60721b604482015260640161059e565b601080546001600160a01b0319166001600160a01b039290921691909117905580156112ca576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561132157600080fd5b505afa158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190612303565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c99190612303565b6001600160a01b0316336001600160a01b0316146113f95760405162461bcd60e51b815260040161059e9061289a565b60175460ff1661141b5760405162461bcd60e51b815260040161059e906128c0565b600080836001600160a01b03168360405161143691906127bf565b6000604051808303816000865af19150503d8060008114611473576040519150601f19603f3d011682016040523d82523d6000602084013e611478565b606091505b509150915081819061149d5760405162461bcd60e51b815260040161059e919061283b565b5050505050565b60008060646114b48560146129d4565b6114be919061299a565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190612303565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161157391906127db565b60206040518083038186803b15801561158b57600080fd5b505afa15801561159f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c391906126c8565b90506000606460095483886115d891906129d4565b6115e39060506129d4565b6115ed919061299a565b6115f7919061299a565b90506001600160801b03861661160d8285612957565b6001600160801b031610611621578561162b565b61162b8184612957565b9695505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561168357600080fd5b505afa158015611697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bb9190612303565b6001600160a01b031663d33219b46040518163ffffffff1660e01b815260040160206040518083038186803b1580156116f357600080fd5b505afa158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172b9190612303565b6001600160a01b0316336001600160a01b03161461175b5760405162461bcd60e51b815260040161059e9061289a565b60175460ff16156117aa5760405162461bcd60e51b8152602060048201526019602482015278616c726561647920696e20656d657267656e6379206d6f646560381b604482015260640161059e565b6017805460ff191660011790556003546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906117f19030906004016127db565b60206040518083038186803b15801561180957600080fd5b505afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184191906126c8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561188757600080fd5b505af115801561189b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bf91906125d0565b506040517f2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c590600090a1565b6000600b54600014156118ff575060085490565b6105dc61192e600b54610b74670de0b6b3a7640000611928600554611928600754610b46610b9b565b90611da8565b60085490611f90565b6000818152600c60205260409020600101546001600160801b031661198f5760405162461bcd60e51b815260206004820152600e60248201526d06c697175696469747920697320360941b604482015260640161059e565b610b9881611db4565b806119a281611db4565b600f546001600160a01b031633146119fc5760405162461bcd60e51b815260206004820152601b60248201527f6e6f742063616c6c65642066726f6d206e6674206d616e616765720000000000604482015260640161059e565b6000806000611a0a85611f9c565b60105492955090935091506001600160a01b03808516911614611a6f5760405162461bcd60e51b815260206004820181905260248201527f746f6b656e20706f6f6c206973206e6f742074686520726967687420706f6f6c604482015260640161059e565b81611ab45760405162461bcd60e51b81526020600482015260156024820152746c69717569647479206e6f7420696e2072616e676560581b604482015260640161059e565b6000816001600160801b031611611b085760405162461bcd60e51b815260206004820152601860248201527763616e6e6f74207374616b652030206c697175696469747960401b604482015260640161059e565b6000611b1482886114a4565b604080516060810182526001600160a01b03808b1682526001600160801b03808716602080850191825282871685870190815260008e8152600c9092529590209351845493166001600160a01b0319909316929092178355905192518116600160801b029216919091176001909101559050611bce86601480546000838152601560205260408120829055600182018355919091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0155565b6001600160a01b038716600081815260116020818152604080842080546012845282862081875284528286208d90558c865260138452918520919091559383525281546001929190611c21908490612982565b9091555050600b54611c3c906001600160801b038316611f90565b600b556001600160a01b03871660009081526016602052604090205460ff16611d53576001600160a01b03808816600090815260166020908152604091829020805460ff1916600117905560025482516381ca29a160e01b815292519316926381ca29a1926004808201939291829003018186803b158015611cbd57600080fd5b505afa158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf59190612303565b6001600160a01b03166397a302f7886040518263ffffffff1660e01b8152600401611d2091906127db565b600060405180830381600087803b158015611d3a57600080fd5b505af1158015611d4e573d6000803e3d6000fd5b505050505b604080518781526001600160801b038481166020830152831681830152905133917fb1a5f058b6335d833f8fd0eaa6562af341d1ad22eebaff5776988d1c6e730879919081900360600190a250505050505050565b6000610d918284612a03565b611dbc6118eb565b600855611dc7610b9b565b6007558015610b9857611dd981610b09565b6000828152600d6020908152604080832093909355600854600a90915291902055610b988161207a565b6000610d918284612a22565b6001600160a01b038216600090815260116020908152604080832054848452601390925290912054808214611e78576001600160a01b03841660009081526012602090815260408083208584528252808320548484528184208190558352601390915290208190555b5060009182526013602090815260408084208490556001600160a01b039094168352601281528383209183525290812055565b601454600090611ebd90600190612a22565b60008381526015602052604081205460148054939450909284908110611ef357634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060148381548110611f2257634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152601590915260408082208490558582528120556014805480611f6857634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000610d9182846129c0565b6000610d918284612982565b600e54600f54600091829182918291829182918291611fc8916001600160a01b0391821691168a61215d565b93509350935093506000846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561200b57600080fd5b505afa15801561201f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120439190612622565b50505050509150508497508060020b8460020b1315801561206a57508260020b8160020b12155b9799979850909695505050505050565b600e54600f5460009161209a916001600160a01b0391821691168461215d565b6000868152600c60205260409020600101549094506001600160801b038086169116141592506120cb915050575050565b6000828152600c60205260408120546001600160a01b0316906120ee83836114a4565b6000858152600c6020526040902060010154600b54919250612129916001600160801b03600160801b909204821691610b4691908516611f90565b600b556000938452600c60205260409093206001600160801b03938416600160801b02939092169290921760019091015550565b6000806000806000806000886001600160a01b03166399fbab88896040518263ffffffff1660e01b815260040161219691815260200190565b6101806040518083038186803b1580156121af57600080fd5b505afa1580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e791906126e0565b5050604051630b4c774160e11b8152949f50929d50909b509499509297509095506001600160a01b038f169450631698ee82935061222f9250879150869086906004016127ef565b60206040518083038186803b15801561224757600080fd5b505afa15801561225b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227f9190612303565b965050505093509350935093565b805161229881612ac6565b919050565b8051801515811461229857600080fd5b8051600281900b811461229857600080fd5b805161229881612adb565b805161ffff8116811461229857600080fd5b805161229881612af0565b6000602082840312156122f8578081fd5b8135610d9181612ac6565b600060208284031215612314578081fd5b8151610d9181612ac6565b60008060008060008060c08789031215612337578182fd5b863561234281612ac6565b9550602087013561235281612ac6565b9450604087013561236281612ac6565b9350606087013561237281612af0565b9250608087013561238281612ac6565b915060a087013561239281612ac6565b809150509295509295509295565b6000806000806000608086880312156123b7578081fd5b85356123c281612ac6565b945060208601356123d281612ac6565b935060408601359250606086013567ffffffffffffffff808211156123f5578283fd5b818801915088601f830112612408578283fd5b813581811115612416578384fd5b896020828501011115612427578384fd5b9699959850939650602001949392505050565b6000806040838503121561244c578182fd5b823561245781612ac6565b915060208381013567ffffffffffffffff80821115612474578384fd5b818601915086601f830112612487578384fd5b81358181111561249957612499612ab0565b8060051b91506124aa848301612926565b8181528481019084860184860187018b10156124c4578788fd5b8795505b838610156124f257803594506124dd85612ac6565b848352600195909501949186019186016124c8565b508096505050505050509250929050565b60008060408385031215612515578182fd5b823561252081612ac6565b915060208381013567ffffffffffffffff8082111561253d578384fd5b818601915086601f830112612550578384fd5b81358181111561256257612562612ab0565b612574601f8201601f19168501612926565b91508082528784828501011115612589578485fd5b8084840185840137810190920192909252919491935090915050565b600080604083850312156125b7578182fd5b82356125c281612ac6565b946020939093013593505050565b6000602082840312156125e1578081fd5b610d918261229d565b600080604083850312156125fc578182fd5b823561260781612adb565b9150602083013561261781612ac6565b809150509250929050565b600080600080600080600060e0888a03121561263c578485fd5b875161264781612ac6565b9650612655602089016122ad565b9550612663604089016122ca565b9450612671606089016122ca565b935061267f608089016122ca565b925060a088015160ff81168114612694578182fd5b91506126a260c0890161229d565b905092959891949750929550565b6000602082840312156126c1578081fd5b5035919050565b6000602082840312156126d9578081fd5b5051919050565b6000806000806000806000806000806000806101808d8f031215612702578586fd5b8c516bffffffffffffffffffffffff8116811461271d578687fd5b9b5061272b60208e0161228d565b9a5061273960408e0161228d565b995061274760608e0161228d565b985061275560808e016122dc565b975061276360a08e016122ad565b965061277160c08e016122ad565b955061277f60e08e016122bf565b94506101008d015193506101208d0151925061279e6101408e016122bf565b91506127ad6101608e016122bf565b90509295989b509295989b509295989b565b600082516127d1818460208701612a39565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b602081526000825180602084015261285a816040850160208701612a39565b601f01601f19169190910160400192915050565b60208082526012908201527137b7363c903a37b5b2b734b21037bbb732b960711b604082015260600190565b6020808252600c908201526b6e6f742074696d656c6f636b60a01b604082015260600190565b6020808252601590820152746e6f7420696e20656d657267656e6379206d6f646560581b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561294f5761294f612ab0565b604052919050565b60006001600160801b0382811684821680830382111561297957612979612a84565b01949350505050565b6000821982111561299557612995612a84565b500190565b60006001600160801b03838116806129b4576129b4612a9a565b92169190910492915050565b6000826129cf576129cf612a9a565b500490565b60006001600160801b03828116848216811515828404821116156129fa576129fa612a84565b02949350505050565b6000816000190483118215151615612a1d57612a1d612a84565b500290565b600082821015612a3457612a34612a84565b500390565b60005b83811015612a54578181015183820152602001612a3c565b83811115612a63576000848401525b50505050565b6000600019821415612a7d57612a7d612a84565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b9857600080fd5b6001600160801b0381168114610b9857600080fd5b62ffffff81168114610b9857600080fdfea2646970667358221220460eeb3f965c7d4a86fc2850acd36a8d3299895ecbc96c0ee77af5fb7d7a981e64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1F7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8A16A30B GT PUSH2 0x120 JUMPI DUP1 PUSH4 0xC4CFBF06 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xD1AF0C7D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0x521 JUMPI DUP1 PUSH4 0xD7E79F02 EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF136D65 EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEBE2B12B EQ PUSH2 0x550 JUMPI DUP1 PUSH4 0xF301AF42 EQ PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4CFBF06 EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xC5B1C7D0 EQ PUSH2 0x4DC JUMPI DUP1 PUSH4 0xC8F1C3AF EQ PUSH2 0x4E4 JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0xCD3DAF9D EQ PUSH2 0x519 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8A16A30B EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x99BCC052 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x9BE54945 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB02C43D0 EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0xB44A2722 EQ PUSH2 0x452 JUMPI DUP1 PUSH4 0xB66503CF EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xB93C9A1D EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0xC4BF0220 EQ PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x386A9525 GT PUSH2 0x193 JUMPI DUP1 PUSH4 0x386A9525 EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0x4D6ED8C4 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0x69DB8B27 EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0x6C6F858B EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x7B0A47EE EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x7F8661A1 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x80FAA57D EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F3E30E EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x242 JUMPI DUP1 PUSH4 0x16F0115B EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1C1F78EB EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0x1C4B774B EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x31279D3D EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0x36703461 EQ PUSH2 0x2DA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x23A0 JUMP JUMPDEST PUSH2 0x579 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x239 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x239 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH2 0x22F PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x5C3 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x2AD CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x5E1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2B2 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x2D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x243A JUMP JUMPDEST PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x2FD PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH1 0x16 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x239 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x324 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0xB86 JUMP JUMPDEST PUSH2 0x22F PUSH2 0xB9B JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0xBB2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x3CA CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH2 0xD5E JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH2 0x2FD SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 DUP6 ADD MSTORE SWAP2 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x239 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x25A5 JUMP JUMPDEST PUSH2 0xD98 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x486 CALLDATASIZE PUSH1 0x4 PUSH2 0x231F JUMP JUMPDEST PUSH2 0x1010 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x4AC CALLDATASIZE PUSH1 0x4 PUSH2 0x2503 JUMP JUMPDEST PUSH2 0x12D3 JUMP JUMPDEST PUSH2 0x4C4 PUSH2 0x4BF CALLDATASIZE PUSH1 0x4 PUSH2 0x25EA JUMP JUMPDEST PUSH2 0x14A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x239 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x4F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x18EB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x281 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2B2 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x1937 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x567 CALLDATASIZE PUSH1 0x4 PUSH2 0x26B0 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND PUSH2 0x5A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5B1 DUP6 DUP6 PUSH2 0x1998 JUMP JUMPDEST POP PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH1 0x6 SLOAD PUSH1 0x5 SLOAD PUSH2 0x1DA8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x604 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE DUP1 PUSH2 0x613 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x64B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x757 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0xC SWAP1 SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6DE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x702 SWAP2 SWAP1 PUSH2 0x25D0 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD DUP8 DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH32 0xD6F2C8500DF5B44F11E9E48B91FF9F1B9D81BC496D55570C2B1B75BF65243F51 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP PUSH1 0x1 DUP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x784 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE DUP1 PUSH2 0x793 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x43616E6E6F74207769746864726177203 PUSH1 0x7C SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xB SLOAD PUSH2 0x854 SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1E03 JUMP JUMPDEST PUSH1 0xB SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD SSTORE PUSH2 0x881 CALLER DUP5 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0x88A DUP4 PUSH2 0x1EAB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8AA SWAP1 DUP5 SWAP1 PUSH2 0x2A22 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0x8E3 SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x911 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO SWAP2 POP POP DUP1 ISZERO PUSH2 0x942 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0xA37 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x2 SLOAD DUP3 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9B5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9D9 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE32E4E88 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA04 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE CALLER SWAP1 PUSH32 0x7084F5476618D8E60B11EF0D7D3F06914655ADB8793E28FF7F018D4C76D505D5 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 DUP1 SSTORE POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0xA98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0xB00 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xAED DUP2 PUSH2 0x5E1 JUMP JUMPDEST POP DUP1 PUSH2 0xAF8 DUP2 PUSH2 0x2A69 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xAA0 JUMP JUMPDEST POP POP PUSH1 0x1 DUP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0xB7A SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xB74 SWAP1 PUSH2 0xB4C SWAP1 PUSH2 0xB46 PUSH2 0x18EB JUMP JUMPDEST SWAP1 PUSH2 0x1E03 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 PUSH2 0x1DA8 JUMP JUMPDEST SWAP1 PUSH2 0x1F84 JUMP JUMPDEST SWAP1 PUSH2 0x1F90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB8F DUP2 PUSH2 0x761 JUMP JUMPDEST PUSH2 0xB98 DUP2 PUSH2 0x5E1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD TIMESTAMP LT PUSH2 0xBAD JUMPI POP PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST POP TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND PUSH2 0xC34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28C0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1CDD185AD948191BD95CC81B9BDD08195E1A5CDD PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD SWAP2 SWAP1 SWAP2 SSTORE MLOAD CALLER SWAP1 PUSH32 0x7084F5476618D8E60B11EF0D7D3F06914655ADB8793E28FF7F018D4C76D505D5 SWAP1 PUSH2 0xCE8 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH2 0xD24 SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 DUP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD TIMESTAMP LT PUSH2 0xD71 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH1 0x4 SLOAD PUSH2 0xD81 SWAP2 SWAP1 PUSH2 0x2A22 JUMP JUMPDEST SWAP1 POP PUSH1 0x5 SLOAD DUP2 PUSH2 0xD91 SWAP2 SWAP1 PUSH2 0x2A03 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDA3 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81CA29A1 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE29 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x3737BA1033B0BAB3B2903B37BA32B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x4 SLOAD TIMESTAMP LT PUSH2 0xE9A JUMPI PUSH1 0x6 SLOAD PUSH2 0xE92 SWAP1 DUP4 SWAP1 PUSH2 0x1F84 JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH2 0xEDD JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xEAA SWAP1 TIMESTAMP PUSH2 0x1E03 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEC3 PUSH1 0x5 SLOAD DUP4 PUSH2 0x1DA8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x6 SLOAD SWAP1 SWAP2 POP PUSH2 0xED7 SWAP1 PUSH2 0xB74 DUP7 DUP5 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x5 SSTORE POP POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xF0E SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF3A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF5E SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST SWAP1 POP PUSH2 0xF75 PUSH1 0x6 SLOAD DUP3 PUSH2 0x1F84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 SLOAD GT ISZERO PUSH2 0xFC1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0xA0E4DEECD2C8CAC840E4CAEEC2E4C840E8DEDE40D0D2CED PUSH1 0x43 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST TIMESTAMP PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SLOAD PUSH2 0xFD4 SWAP2 SWAP1 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x4 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0xDE88A922E0D3B88B24E9623EFEB464919C6BF9F66857A65E2BFCF2CE87A9433D SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1030 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x104A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x104A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x10D0 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 DUP12 AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0xC45A0155 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH4 0xC45A0155 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1148 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116C SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 DUP8 AND SWAP4 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH4 0xB4C7741 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 SWAP1 PUSH4 0x1698EE82 SWAP1 PUSH2 0x11C7 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x27EF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1217 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C1BDBDB08191BD95CDB89DD08195E1A5CDD PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x10 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 DUP1 ISZERO PUSH2 0x12CA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1359 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x289A JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND PUSH2 0x141B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x28C0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1436 SWAP2 SWAP1 PUSH2 0x27BF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1473 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1478 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP1 PUSH2 0x149D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x283B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x64 PUSH2 0x14B4 DUP6 PUSH1 0x14 PUSH2 0x29D4 JUMP JUMPDEST PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x299A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1524 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1548 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1573 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x158B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x159F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15C3 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x9 SLOAD DUP4 DUP9 PUSH2 0x15D8 SWAP2 SWAP1 PUSH2 0x29D4 JUMP JUMPDEST PUSH2 0x15E3 SWAP1 PUSH1 0x50 PUSH2 0x29D4 JUMP JUMPDEST PUSH2 0x15ED SWAP2 SWAP1 PUSH2 0x299A JUMP JUMPDEST PUSH2 0x15F7 SWAP2 SWAP1 PUSH2 0x299A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP7 AND PUSH2 0x160D DUP3 DUP6 PUSH2 0x2957 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND LT PUSH2 0x1621 JUMPI DUP6 PUSH2 0x162B JUMP JUMPDEST PUSH2 0x162B DUP2 DUP5 PUSH2 0x2957 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC340A24 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1697 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16BB SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD33219B4 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1707 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x172B SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x175B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP1 PUSH2 0x289A JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x17AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH25 0x616C726561647920696E20656D657267656E6379206D6F6465 PUSH1 0x38 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x17F1 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x181D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1841 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18BF SWAP2 SWAP1 PUSH2 0x25D0 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x2064D51AA5A8BD67928C7675E267E05C67AD5ADF7C9098D0A602D01F36FDA9C5 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x18FF JUMPI POP PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5DC PUSH2 0x192E PUSH1 0xB SLOAD PUSH2 0xB74 PUSH8 0xDE0B6B3A7640000 PUSH2 0x1928 PUSH1 0x5 SLOAD PUSH2 0x1928 PUSH1 0x7 SLOAD PUSH2 0xB46 PUSH2 0xB9B JUMP JUMPDEST SWAP1 PUSH2 0x1DA8 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x198F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x6C6971756964697479206973203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH2 0xB98 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST DUP1 PUSH2 0x19A2 DUP2 PUSH2 0x1DB4 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x19FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F742063616C6C65642066726F6D206E6674206D616E616765720000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A0A DUP6 PUSH2 0x1F9C JUMP JUMPDEST PUSH1 0x10 SLOAD SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP2 AND EQ PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x746F6B656E20706F6F6C206973206E6F742074686520726967687420706F6F6C PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST DUP2 PUSH2 0x1AB4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x6C69717569647479206E6F7420696E2072616E6765 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND GT PUSH2 0x1B08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x63616E6E6F74207374616B652030206C6971756964697479 PUSH1 0x40 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B14 DUP3 DUP9 PUSH2 0x14A4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP8 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP3 DUP8 AND DUP6 DUP8 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0xC SWAP1 SWAP3 MSTORE SWAP6 SWAP1 KECCAK256 SWAP4 MLOAD DUP5 SLOAD SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP4 SSTORE SWAP1 MLOAD SWAP3 MLOAD DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP3 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE SWAP1 POP PUSH2 0x1BCE DUP7 PUSH1 0x14 DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xCE6D7B5282BD9A3661AE061FEED1DBDA4E52AB073B1F9285BE6E155D9C38D4EC ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x12 DUP5 MSTORE DUP3 DUP7 KECCAK256 DUP2 DUP8 MSTORE DUP5 MSTORE DUP3 DUP7 KECCAK256 DUP14 SWAP1 SSTORE DUP13 DUP7 MSTORE PUSH1 0x13 DUP5 MSTORE SWAP2 DUP6 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 DUP4 MSTORE MSTORE DUP2 SLOAD PUSH1 0x1 SWAP3 SWAP2 SWAP1 PUSH2 0x1C21 SWAP1 DUP5 SWAP1 PUSH2 0x2982 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xB SLOAD PUSH2 0x1C3C SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0xB SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1D53 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x16 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x2 SLOAD DUP3 MLOAD PUSH4 0x81CA29A1 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD SWAP4 AND SWAP3 PUSH4 0x81CA29A1 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CD1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CF5 SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x97A302F7 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D20 SWAP2 SWAP1 PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP5 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP4 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0xB1A5F058B6335D833F8FD0EAA6562AF341D1AD22EEBAFF5776988D1C6E730879 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x2A03 JUMP JUMPDEST PUSH2 0x1DBC PUSH2 0x18EB JUMP JUMPDEST PUSH1 0x8 SSTORE PUSH2 0x1DC7 PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x7 SSTORE DUP1 ISZERO PUSH2 0xB98 JUMPI PUSH2 0x1DD9 DUP2 PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SLOAD PUSH1 0xA SWAP1 SWAP2 MSTORE SWAP2 SWAP1 KECCAK256 SSTORE PUSH2 0xB98 DUP2 PUSH2 0x207A JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x2A22 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE PUSH1 0x13 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP1 DUP3 EQ PUSH2 0x1E78 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE DUP2 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0x13 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x13 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP4 MSTORE PUSH1 0x12 DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1EBD SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2A22 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x14 DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x1EF3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x14 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1F22 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x15 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0x14 DUP1 SLOAD DUP1 PUSH2 0x1F68 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x29C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP3 DUP5 PUSH2 0x2982 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH2 0x1FC8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP2 AND DUP11 PUSH2 0x215D JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3850C7BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x200B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x201F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2043 SWAP2 SWAP1 PUSH2 0x2622 JUMP JUMPDEST POP POP POP POP POP SWAP2 POP POP DUP5 SWAP8 POP DUP1 PUSH1 0x2 SIGNEXTEND DUP5 PUSH1 0x2 SIGNEXTEND SGT ISZERO DUP1 ISZERO PUSH2 0x206A JUMPI POP DUP3 PUSH1 0x2 SIGNEXTEND DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO JUMPDEST SWAP8 SWAP10 SWAP8 SWAP9 POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 PUSH2 0x209A SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP2 AND DUP5 PUSH2 0x215D JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP7 AND SWAP2 AND EQ ISZERO SWAP3 POP PUSH2 0x20CB SWAP2 POP POP JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x20EE DUP4 DUP4 PUSH2 0x14A4 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xB SLOAD SWAP2 SWAP3 POP PUSH2 0x2129 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV DUP3 AND SWAP2 PUSH2 0xB46 SWAP2 SWAP1 DUP6 AND PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0xB SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP4 DUP5 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP4 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x99FBAB88 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2196 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21E7 SWAP2 SWAP1 PUSH2 0x26E0 JUMP JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xB4C7741 PUSH1 0xE1 SHL DUP2 MSTORE SWAP5 SWAP16 POP SWAP3 SWAP14 POP SWAP1 SWAP12 POP SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND SWAP5 POP PUSH4 0x1698EE82 SWAP4 POP PUSH2 0x222F SWAP3 POP DUP8 SWAP2 POP DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x27EF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2247 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x225B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x227F SWAP2 SWAP1 PUSH2 0x2303 JUMP JUMPDEST SWAP7 POP POP POP POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2298 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x2298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2298 DUP2 PUSH2 0x2ADB JUMP JUMPDEST DUP1 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2298 DUP2 PUSH2 0x2AF0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD91 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2314 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xD91 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2337 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x2342 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH2 0x2352 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0x2362 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x2372 DUP2 PUSH2 0x2AF0 JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH2 0x2382 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH2 0x2392 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x23B7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x23C2 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x23D2 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x23F5 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2408 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2416 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2427 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x244C JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2457 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2474 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2487 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2499 JUMPI PUSH2 0x2499 PUSH2 0x2AB0 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x24AA DUP5 DUP4 ADD PUSH2 0x2926 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP5 DUP7 ADD DUP8 ADD DUP12 LT ISZERO PUSH2 0x24C4 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x24F2 JUMPI DUP1 CALLDATALOAD SWAP5 POP PUSH2 0x24DD DUP6 PUSH2 0x2AC6 JUMP JUMPDEST DUP5 DUP4 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP2 DUP7 ADD SWAP2 DUP7 ADD PUSH2 0x24C8 JUMP JUMPDEST POP DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2515 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2520 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 DUP2 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x253D JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2550 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2562 JUMPI PUSH2 0x2562 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x2574 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP6 ADD PUSH2 0x2926 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE DUP8 DUP5 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2589 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP5 DUP5 ADD DUP6 DUP5 ADD CALLDATACOPY DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP5 SWAP2 SWAP4 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25B7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x25C2 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25E1 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD91 DUP3 PUSH2 0x229D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2607 DUP2 PUSH2 0x2ADB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2617 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x263C JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 MLOAD PUSH2 0x2647 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST SWAP7 POP PUSH2 0x2655 PUSH1 0x20 DUP10 ADD PUSH2 0x22AD JUMP JUMPDEST SWAP6 POP PUSH2 0x2663 PUSH1 0x40 DUP10 ADD PUSH2 0x22CA JUMP JUMPDEST SWAP5 POP PUSH2 0x2671 PUSH1 0x60 DUP10 ADD PUSH2 0x22CA JUMP JUMPDEST SWAP4 POP PUSH2 0x267F PUSH1 0x80 DUP10 ADD PUSH2 0x22CA JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2694 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP2 POP PUSH2 0x26A2 PUSH1 0xC0 DUP10 ADD PUSH2 0x229D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26C1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26D9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x180 DUP14 DUP16 SUB SLT ISZERO PUSH2 0x2702 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP13 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x271D JUMPI DUP7 DUP8 REVERT JUMPDEST SWAP12 POP PUSH2 0x272B PUSH1 0x20 DUP15 ADD PUSH2 0x228D JUMP JUMPDEST SWAP11 POP PUSH2 0x2739 PUSH1 0x40 DUP15 ADD PUSH2 0x228D JUMP JUMPDEST SWAP10 POP PUSH2 0x2747 PUSH1 0x60 DUP15 ADD PUSH2 0x228D JUMP JUMPDEST SWAP9 POP PUSH2 0x2755 PUSH1 0x80 DUP15 ADD PUSH2 0x22DC JUMP JUMPDEST SWAP8 POP PUSH2 0x2763 PUSH1 0xA0 DUP15 ADD PUSH2 0x22AD JUMP JUMPDEST SWAP7 POP PUSH2 0x2771 PUSH1 0xC0 DUP15 ADD PUSH2 0x22AD JUMP JUMPDEST SWAP6 POP PUSH2 0x277F PUSH1 0xE0 DUP15 ADD PUSH2 0x22BF JUMP JUMPDEST SWAP5 POP PUSH2 0x100 DUP14 ADD MLOAD SWAP4 POP PUSH2 0x120 DUP14 ADD MLOAD SWAP3 POP PUSH2 0x279E PUSH2 0x140 DUP15 ADD PUSH2 0x22BF JUMP JUMPDEST SWAP2 POP PUSH2 0x27AD PUSH2 0x160 DUP15 ADD PUSH2 0x22BF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x27D1 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2A39 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0xFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x285A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2A39 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x37B7363C903A37B5B2B734B21037BBB732B9 PUSH1 0x71 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 DUP3 ADD MSTORE PUSH12 0x6E6F742074696D656C6F636B PUSH1 0xA0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x15 SWAP1 DUP3 ADD MSTORE PUSH21 0x6E6F7420696E20656D657267656E6379206D6F6465 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x294F JUMPI PUSH2 0x294F PUSH2 0x2AB0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2979 JUMPI PUSH2 0x2979 PUSH2 0x2A84 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2995 JUMPI PUSH2 0x2995 PUSH2 0x2A84 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 DUP2 AND DUP1 PUSH2 0x29B4 JUMPI PUSH2 0x29B4 PUSH2 0x2A9A JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29CF JUMPI PUSH2 0x29CF PUSH2 0x2A9A JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP5 DUP3 AND DUP2 ISZERO ISZERO DUP3 DUP5 DIV DUP3 GT AND ISZERO PUSH2 0x29FA JUMPI PUSH2 0x29FA PUSH2 0x2A84 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2A1D JUMPI PUSH2 0x2A1D PUSH2 0x2A84 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A34 JUMPI PUSH2 0x2A34 PUSH2 0x2A84 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A54 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2A3C JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2A63 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2A7D JUMPI PUSH2 0x2A7D PUSH2 0x2A84 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID 0xE 0xEB EXTCODEHASH SWAP7 0x5C PUSH30 0x4A86FC2850ACD36A8D3299895ECBC96C0EE77AF5FB7D7A981E64736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ","sourceMap":"327:2211:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3814:163:88;;;;;;:::i;:::-;3905:7;3935:18;;;:8;:18;;;;;:35;;;-1:-1:-1;;;3935:35:88;;-1:-1:-1;;;;;3935:35:88;;3814:163;;;;19123:25:139;;;19111:2;19096:18;3814:163:88;;;;;;;;914:301:86;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;11306:33:139;;;11288:52;;11276:2;11261:18;914:301:86;11243:103:139;1973:26:88;;;;;-1:-1:-1;;;;;1973:26:88;;;;;;;;;;:::i;1504:::-;;;;;;4830:119;;;:::i;2292:405:87:-;;;;;;:::i;:::-;;:::i;:::-;;1350:936;;;;;;:::i;:::-;;:::i;2703:293::-;;;;;;:::i;:::-;;:::i;2653:40:88:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11117:14:139;;11110:22;11092:41;;11080:2;11065:18;2653:40:88;11047:92:139;1269:39:88;;;;;;4528:296;;;;;;:::i;:::-;;:::i;1390:44::-;;;;;;1440:57;;;;;;:::i;:::-;;;;;;;;;;;;;;2064:44;;;;;;:::i;:::-;;;;;;;;;;;;;;1234:29;;;;;;1125:34;;;;;-1:-1:-1;;;;;1125:34:88;;;3002:105:87;;;;;;:::i;:::-;;:::i;3983:153:88:-;;;:::i;1221:474:86:-;;;;;;:::i;:::-;;:::i;3454:227:88:-;;;;;;:::i;:::-;;:::i;490:23:86:-;;;;;;;;;1571:43:88;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1571:43:88;;;;-1:-1:-1;;;;;1571:43:88;;;;-1:-1:-1;;;1571:43:88;;;;;;;;;-1:-1:-1;;;;;10487:32:139;;;10469:51;;-1:-1:-1;;;;;10594:15:139;;;10589:2;10574:18;;10567:43;10646:15;;10626:18;;;10619:43;10457:2;10442:18;1571:43:88;10424:244:139;1846:61:88;;;;;-1:-1:-1;;;;;1846:61:88;;;4665:1184:87;;;;;;:::i;:::-;;:::i;2745:664:88:-;;;;;;:::i;:::-;;:::i;1758:32::-;;;;;-1:-1:-1;;;;;1758:32:88;;;2073:283:86;;;;;;:::i;:::-;;:::i;725:567:87:-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;18933:32:139;;;18915:51;;18903:2;18888:18;725:567:87;18870:102:139;1701:302:86;;;:::i;3687:121:88:-;;;;;;:::i;:::-;3747:7;3773:18;;;:8;:18;;;;;:28;;;-1:-1:-1;;;;;3773:28:88;;3687:121;1314:29;;;;;;4142:380;;;:::i;1165:26::-;;;;;-1:-1:-1;;;;;1165:26:88;;;7729:161:87;;;;;;:::i;:::-;;:::i;1349:35:88:-;;;;;;1197:31;;;;;;1673:42;;;;;;:::i;:::-;;;;;;;;;;;;;;914:301:86;1080:11;;1054:6;;1080:11;;1072:45;;;;-1:-1:-1;;;1072:45:86;;;;;;;:::i;:::-;;;;;;;;;1127:34;1145:5;1152:8;1127:17;:34::i;:::-;-1:-1:-1;;;;914:301:86;;;;;;;:::o;4830:119:88:-;4885:7;4911:31;4926:15;;4911:10;;:14;;:31;;;;:::i;:::-;4904:38;;4830:119;:::o;2292:405:87:-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;2386:8:87;7682:23:::1;2386:8:::0;7682:13:::1;:23::i;:::-;8816:18:88::2;::::0;;;:8:::2;:18;::::0;;;;:24;2419:8:87;;-1:-1:-1;;;;;8816:24:88::2;8844:10;8816:38;8808:69;;;;-1:-1:-1::0;;;8808:69:88::2;;;;;;;:::i;:::-;2443:14:87::3;2460:17:::0;;;:7:::3;:17;::::0;;;;;2491:10;;2487:204:::3;;2537:1;2517:17:::0;;;:7:::3;:17;::::0;;;;;;;:21;;;2552:12:::3;::::0;2574:8:::3;:18:::0;;;;;;;:24;2552:55;;-1:-1:-1;;;2552:55:87;;-1:-1:-1;;;;;2574:24:87;;::::3;2552:55;::::0;::::3;10847:51:139::0;10914:18;;;10907:34;;;2552:12:87;::::3;::::0;:21:::3;::::0;10820:18:139;;2552:55:87::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;2637:18:87::3;::::0;;;:8:::3;:18;::::0;;;;;;;;:24;2626:54;;19713:25:139;;;19754:18;;;19747:34;;;-1:-1:-1;;;;;2637:24:87::3;::::0;2626:54:::3;::::0;19686:18:139;2626:54:87::3;;;;;;;2487:204;-1:-1:-1::0;;1701:1:22;2628:22;;-1:-1:-1;;2292:405:87:o;1350:936::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;1442:7:87;7682:23:::1;1442:7:::0;7682:13:::1;:23::i;:::-;8816:18:88::2;::::0;;;:8:::2;:18;::::0;;;;:24;1474:7:87;;-1:-1:-1;;;;;8816:24:88::2;8844:10;8816:38;8808:69;;;;-1:-1:-1::0;;;8808:69:88::2;;;;;;;:::i;:::-;1535:1:87::3;1505:17:::0;;;:8:::3;:17;::::0;;;;:27:::3;;::::0;-1:-1:-1;;;;;1505:27:87::3;1497:61;;;::::0;-1:-1:-1;;;1497:61:87;;16872:2:139;1497:61:87::3;::::0;::::3;16854:21:139::0;16911:2;16891:18;;;16884:30;-1:-1:-1;;;16930:18:139;;;16923:47;16987:18;;1497:61:87::3;16844:167:139::0;1497:61:87::3;1599:17;::::0;;;:8:::3;:17;::::0;;;;:34:::3;;::::0;1583:11:::3;::::0;:51:::3;::::0;-1:-1:-1;;;1599:34:87;::::3;-1:-1:-1::0;;;;;1599:34:87::3;1583:15;:51::i;:::-;1569:11;:65:::0;1651:17:::3;::::0;;;:8:::3;:17;::::0;;;;1644:24;;-1:-1:-1;;;;;;1644:24:87::3;::::0;;;::::3;::::0;1720:53:::3;1753:10;1660:7:::0;1720:32:::3;:53::i;:::-;1783:45;1820:7;1783:36;:45::i;:::-;1848:10;1838:21;::::0;;;:9:::3;:21;::::0;;;;:26;;1863:1:::3;::::0;1838:21;:26:::3;::::0;1863:1;;1838:26:::3;:::i;:::-;::::0;;;-1:-1:-1;;1875:26:87::3;::::0;:125:::3;::::0;-1:-1:-1;;;1875:125:87;;-1:-1:-1;;;;;1875:26:87;;::::3;::::0;:43:::3;::::0;:125:::3;::::0;1940:4:::3;::::0;1959:10:::3;::::0;1983:7;;1875:125:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;2025:10:87::3;2015:21;::::0;;;:9:::3;:21;::::0;;;;;:26;;-1:-1:-1;;2015:50:87;::::3;;;-1:-1:-1::0;2054:10:87::3;2045:20;::::0;;;:8:::3;:20;::::0;;;;;::::3;;2015:50;2011:223;;;2090:10;2104:5;2081:20:::0;;;:8:::3;:20;::::0;;;;;;;;:28;;-1:-1:-1;;2081:28:87::3;::::0;;2137:8:::3;::::0;:21;;-1:-1:-1;;;2137:21:87;;;;-1:-1:-1;;;;;2137:8:87;;::::3;::::0;:19:::3;::::0;:21:::3;::::0;;::::3;::::0;2081:20;;2137:21;;;;;:8;:21;::::3;;::::0;::::3;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2123:58:87::3;;2199:10;2123:100;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;2011:223;2249:30;::::0;19123:25:139;;;2259:10:87::3;::::0;2249:30:::3;::::0;19111:2:139;19096:18;2249:30:87::3;;;;;;;-1:-1:-1::0;;1701:1:22;2628:22;;-1:-1:-1;1350:936:87:o;2703:293::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;2831:13:87::1;2826:164;-1:-1:-1::0;;;;;2858:18:87;::::1;;::::0;;;:9:::1;:18;::::0;;;;;2850:26;::::1;2826:164;;;-1:-1:-1::0;;;;;2919:21:87;::::1;2901:15;2919:21:::0;;;:12:::1;:21;::::0;;;;;;;:28;;;;;;;;;2961:18:::1;2919:28:::0;2961:9:::1;:18::i;:::-;-1:-1:-1::0;2878:7:87;::::1;::::0;::::1;:::i;:::-;;;;2826:164;;;-1:-1:-1::0;;1701:1:22;2628:22;;-1:-1:-1;2703:293:87:o;4528:296:88:-;4583:7;4799:17;;;:7;:17;;;;;;;;;4716:22;:32;;;;;;4621:196;;4799:17;4621:156;;4772:4;;4621:129;;4695:54;;:16;:14;:16::i;:::-;:20;;:54::i;:::-;4621:18;;;;:8;:18;;;;;:52;;;-1:-1:-1;;;4621:52:88;;-1:-1:-1;;;;;4621:52:88;;:73;:129::i;:::-;:150;;:156::i;:::-;:177;;:196::i;:::-;4602:215;4528:296;-1:-1:-1;;4528:296:88:o;3002:105:87:-;3053:18;3062:8;3053;:18::i;:::-;3081:19;3091:8;3081:9;:19::i;:::-;3002:105;:::o;3983:153:88:-;4040:7;4084:12;;4066:15;:30;:63;;-1:-1:-1;4117:12:88;;;4830:119::o;4066:63::-;-1:-1:-1;4099:15:88;;3983:153::o;1221:474:86:-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;;;;;;:::i;:::-;1744:1;2455:7;:18;8816::88::1;::::0;;;:8:::1;:18;::::0;;;;:24;1329:7:86;;-1:-1:-1;;;;;8816:24:88::1;8844:10;8816:38;8808:69;;;;-1:-1:-1::0;;;8808:69:88::1;;;;;;;:::i;:::-;1360:11:86::2;::::0;::::2;;1352:45;;;;-1:-1:-1::0;;;1352:45:86::2;;;;;;;:::i;:::-;1415:17;::::0;;;:8:::2;:17;::::0;;;;:27:::2;;::::0;-1:-1:-1;;;;;1415:27:86::2;1407:65;;;::::0;-1:-1:-1;;;1407:65:86;;17912:2:139;1407:65:86::2;::::0;::::2;17894:21:139::0;17951:2;17931:18;;;17924:30;-1:-1:-1;;;17970:18:139;;;17963:50;18030:18;;1407:65:86::2;17884:170:139::0;1407:65:86::2;1490:17;::::0;;;:8:::2;:17;::::0;;;;;1483:24;;-1:-1:-1;;;;;;1483:24:86::2;::::0;;;::::2;::::0;;;;1522:30;1532:10:::2;::::0;1522:30:::2;::::0;::::2;::::0;1499:7;19123:25:139;;19111:2;19096:18;;19078:76;1522:30:86::2;;;;;;;;1563:26;::::0;:125:::2;::::0;-1:-1:-1;;;1563:125:86;;-1:-1:-1;;;;;1563:26:86;;::::2;::::0;:43:::2;::::0;:125:::2;::::0;1628:4:::2;::::0;1647:10:::2;::::0;1671:7;;1563:125:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;1701:1:22;2628:22;;-1:-1:-1;;;;1221:474:86:o;3454:227:88:-;3509:7;3551:12;;3532:15;:31;3528:45;;-1:-1:-1;3572:1:88;;3454:227;-1:-1:-1;3454:227:88:o;3528:45::-;3583:18;3619:15;3604:12;;:30;;;;:::i;:::-;3583:51;;3664:10;;3651;:23;;;;:::i;:::-;3644:30;3454:227;-1:-1:-1;;;3454:227:88:o;4665:1184:87:-;4773:1;7682:23;7696:8;7682:13;:23::i;:::-;4812:8:::1;;;;;;;;;-1:-1:-1::0;;;;;4812:8:87::1;-1:-1:-1::0;;;;;4812:19:87::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4798:35:87::1;:10;-1:-1:-1::0;;;;;4798:35:87::1;;4790:63;;;::::0;-1:-1:-1;;;4790:63:87;;14350:2:139;4790:63:87::1;::::0;::::1;14332:21:139::0;14389:2;14369:18;;;14362:30;-1:-1:-1;;;14408:18:139;;;14401:45;14463:18;;4790:63:87::1;14322:165:139::0;4790:63:87::1;4887:12;;4868:15;:31;4864:308;;4937:15;::::0;4926:27:::1;::::0;:6;;:10:::1;:27::i;:::-;4913:10;:40:::0;4864:308:::1;;;5002:12;::::0;4982:17:::1;::::0;5002:33:::1;::::0;5019:15:::1;5002:16;:33::i;:::-;4982:53;;5049:16;5068:25;5082:10;;5068:9;:13;;:25;;;;:::i;:::-;5145:15;::::0;5049:44;;-1:-1:-1;5120:41:87::1;::::0;:20:::1;:6:::0;5049:44;5120:10:::1;:20::i;:41::-;5107:10;:54:::0;-1:-1:-1;;4864:308:87::1;5544:12;::::0;:37:::1;::::0;-1:-1:-1;;;5544:37:87;;5526:15:::1;::::0;-1:-1:-1;;;;;5544:12:87::1;::::0;:22:::1;::::0;:37:::1;::::0;5575:4:::1;::::0;5544:37:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5526:55;;5626:28;5638:15;;5626:7;:11;;:28;;;;:::i;:::-;5612:10;;:42;;5591:113;;;::::0;-1:-1:-1;;;5591:113:87;;17559:2:139;5591:113:87::1;::::0;::::1;17541:21:139::0;17598:2;17578:18;;;17571:30;-1:-1:-1;;;17617:18:139;;;17610:54;17681:18;;5591:113:87::1;17531:174:139::0;5591:113:87::1;5732:15;5715:14;:32:::0;;;5792:15:::1;::::0;5772:36:::1;::::0;5732:15;5772:19:::1;:36::i;:::-;5757:12;:51:::0;5823:19:::1;::::0;19123:25:139;;;5823:19:87::1;::::0;19111:2:139;19096:18;5823:19:87::1;;;;;;;7715:1;4665:1184:::0;;;:::o;2745:664:88:-;3100:19:20;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:20;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:20;1465:19:36;:23;;;3208:55:20;;-1:-1:-1;3246:12:20;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:20;;16457:2:139;3146:190:20;;;16439:21:139;16496:2;16476:18;;;16469:30;16535:34;16515:18;;;16508:62;-1:-1:-1;;;16586:18:139;;;16579:44;16640:19;;3146:190:20;16429:236:139;3146:190:20;3346:12;:16;;-1:-1:-1;;3346:16:20;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:20;;;;;3372:65;2971:26:88::1;:107:::0;;-1:-1:-1;;;;;2971:107:88;;::::1;-1:-1:-1::0;;;;;;2971:107:88;;::::1;::::0;::::1;::::0;;;3089:8:::1;:31:::0;;;;::::1;::::0;;;::::1;;::::0;;3158:36:::1;::::0;;-1:-1:-1;;;3158:36:88;;;;:34:::1;::::0;:36:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;2971:107;3158:36;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3130:7;:65:::0;;-1:-1:-1;;;;;3130:65:88;;::::1;-1:-1:-1::0;;;;;;3130:65:88;;::::1;::::0;::::1;::::0;;;3205:12:::1;:36:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;3268::::1;::::0;-1:-1:-1;;;3268:36:88;;3130:7:::1;::::0;:65;3268:15:::1;::::0;:36:::1;::::0;3284:6;;3292;;3300:3;;3268:36:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3252:52:::0;-1:-1:-1;;;;;;3322:19:88;::::1;3314:50;;;::::0;-1:-1:-1;;;3314:50:88;;13656:2:139;3314:50:88::1;::::0;::::1;13638:21:139::0;13695:2;13675:18;;;13668:30;-1:-1:-1;;;13714:18:139;;;13707:48;13772:18;;3314:50:88::1;13628:168:139::0;3314:50:88::1;3374:4;:28:::0;;-1:-1:-1;;;;;;3374:28:88::1;-1:-1:-1::0;;;;;3374:28:88;;;::::1;::::0;;;::::1;::::0;;3457:99:20;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:20;;;3531:14;;-1:-1:-1;12665:36:139;;3531:14:20;;12653:2:139;12638:18;3531:14:20;;;;;;;3457:99;2745:664:88;;;;;;;:::o;2073:283:86:-;2449:8;;;;;;;;;-1:-1:-1;;;;;2449:8:86;-1:-1:-1;;;;;2449:17:86;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2431:47:86;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2417:63:86;:10;-1:-1:-1;;;;;2417:63:86;;2396:122;;;;-1:-1:-1;;;2396:122:86;;;;;;;:::i;:::-;2196:11:::1;::::0;::::1;;2188:45;;;;-1:-1:-1::0;;;2188:45:86::1;;;;;;;:::i;:::-;2244:12;2258:21:::0;2283:6:::1;-1:-1:-1::0;;;;;2283:11:86::1;2295:9;2283:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:62;;;;2323:7;2339:8;2315:34;;;;;-1:-1:-1::0;;;2315:34:86::1;;;;;;;;:::i;:::-;;2528:1;;2073:283:::0;;:::o;725:567:87:-;833:7;;895:3;876:15;:10;889:2;876:15;:::i;:::-;875:23;;;;:::i;:::-;856:42;;908:13;935:8;;;;;;;;;-1:-1:-1;;;;;935:8:87;-1:-1:-1;;;;;935:15:87;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;924:39:87;;964:7;924:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;908:64;;983:17;1085:3;1061:19;;1026:5;1005:10;:27;;;;:::i;:::-;:32;;1035:2;1005:32;:::i;:::-;1004:77;;;;:::i;:::-;1003:85;;;;:::i;:::-;983:105;-1:-1:-1;;;;;;1184:33:87;;:20;983:105;1184:8;:20;:::i;:::-;-1:-1:-1;;;;;1184:33:87;;:101;;1275:10;1184:101;;;1236:20;1247:9;1236:8;:20;:::i;:::-;1165:120;725:567;-1:-1:-1;;;;;;725:567:87:o;1701:302:86:-;2449:8;;;;;;;;;-1:-1:-1;;;;;2449:8:86;-1:-1:-1;;;;;2449:17:86;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2431:47:86;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2417:63:86;:10;-1:-1:-1;;;;;2417:63:86;;2396:122;;;;-1:-1:-1;;;2396:122:86;;;;;;;:::i;:::-;1773:11:::1;::::0;::::1;;1772:12;1764:50;;;::::0;-1:-1:-1;;;1764:50:86;;13302:2:139;1764:50:86::1;::::0;::::1;13284:21:139::0;13341:2;13321:18;;;13314:30;-1:-1:-1;;;13360:18:139;;;13353:55;13425:18;;1764:50:86::1;13274:175:139::0;1764:50:86::1;1824:11;:18:::0;;-1:-1:-1;;1824:18:86::1;1838:4;1824:18;::::0;;1852:12:::1;::::0;1911:37:::1;::::0;-1:-1:-1;;;1911:37:86;;-1:-1:-1;;;;;1852:12:86;;::::1;::::0;:21:::1;::::0;1887:10:::1;::::0;1852:12;;1911:22:::1;::::0;:37:::1;::::0;1942:4:::1;::::0;1911:37:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1852:106;::::0;-1:-1:-1;;;;;;1852:106:86::1;::::0;;;;;;-1:-1:-1;;;;;10865:32:139;;;1852:106:86::1;::::0;::::1;10847:51:139::0;10914:18;;;10907:34;10820:18;;1852:106:86::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;1974:22:86::1;::::0;::::1;::::0;;;::::1;1701:302::o:0;4142:380:88:-;4189:7;4212:11;;4227:1;4212:16;4208:49;;;-1:-1:-1;4237:20:88;;;4142:380::o;4208:49::-;4286:229;4328:173;4489:11;;4328:135;4458:4;4328:104;4421:10;;4328:67;4380:14;;4328:26;:24;:26::i;:67::-;:92;;:104::i;:173::-;4286:20;;;:24;:229::i;7729:161:87:-;7830:1;7799:18;;;:8;:18;;;;;:28;;;-1:-1:-1;;;;;7799:28:87;7791:59;;;;-1:-1:-1;;;7791:59:87;;15400:2:139;7791:59:87;;;15382:21:139;15439:2;15419:18;;;15412:30;-1:-1:-1;;;15458:18:139;;;15451:44;15512:18;;7791:59:87;15372:164:139;7791:59:87;7860:23;7874:8;7860:13;:23::i;3315:1290::-;3413:8;7682:23;7696:8;7682:13;:23::i;:::-;3480:26:::1;::::0;-1:-1:-1;;;;;3480:26:87::1;3458:10;:49;3437:123;;;::::0;-1:-1:-1;;;3437:123:87;;14694:2:139;3437:123:87::1;::::0;::::1;14676:21:139::0;14733:2;14713:18;;;14706:30;14772:29;14752:18;;;14745:57;14819:18;;3437:123:87::1;14666:177:139::0;3437:123:87::1;3584:20;3618:12:::0;3644:17:::1;3674:33;3698:8;3674:23;:33::i;:::-;3765:4;::::0;3570:137;;-1:-1:-1;3570:137:87;;-1:-1:-1;3570:137:87;-1:-1:-1;;;;;;3739:31:87;;::::1;3765:4:::0;::::1;3739:31;3718:110;;;::::0;-1:-1:-1;;;3718:110:87;;15743:2:139;3718:110:87::1;::::0;::::1;15725:21:139::0;;;15762:18;;;15755:30;15821:34;15801:18;;;15794:62;15873:18;;3718:110:87::1;15715:182:139::0;3718:110:87::1;3846:7;3838:41;;;::::0;-1:-1:-1;;;3838:41:87;;15050:2:139;3838:41:87::1;::::0;::::1;15032:21:139::0;15089:2;15069:18;;;15062:30;-1:-1:-1;;;15108:18:139;;;15101:51;15169:18;;3838:41:87::1;15022:171:139::0;3838:41:87::1;3909:1;3897:9;-1:-1:-1::0;;;;;3897:13:87::1;;3889:50;;;::::0;-1:-1:-1;;;3889:50:87;;16104:2:139;3889:50:87::1;::::0;::::1;16086:21:139::0;16143:2;16123:18;;;16116:30;-1:-1:-1;;;16162:18:139;;;16155:54;16226:18;;3889:50:87::1;16076:174:139::0;3889:50:87::1;3950:25;3978:34;3995:9;4006:5;3978:16;:34::i;:::-;4044:128;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;4044:128:87;;::::1;::::0;;-1:-1:-1;;;;;4044:128:87;;::::1;;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;-1:-1:-1;4023:18:87;;;:8:::1;:18:::0;;;;;;:149;;;;;::::1;-1:-1:-1::0;;;;;;4023:149:87;;::::1;::::0;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;;4023:149:87::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;3950:62;-1:-1:-1;4183:41:87::1;4032:8:::0;5753:10:88;:17;;5726:24;;;;:15;:24;;;;;:44;;;5780:24;;;;;;;;;;;;5649:162;4183:41:87::1;-1:-1:-1::0;;;;;5345:13:88;;5328:14;5345:13;;;:9;:13;;;;;;;;;;5368:12;:16;;;;;:24;;;;;;;;:34;;;5412:26;;;:17;:26;;;;;:35;;;;4289:16:87;;;;:21;;4309:1:::1;::::0;5345:13:88;5328:14;4289:21:87::1;::::0;4309:1;;4289:21:::1;:::i;:::-;::::0;;;-1:-1:-1;;4334:11:87::1;::::0;:34:::1;::::0;-1:-1:-1;;;;;4334:34:87;::::1;:15;:34::i;:::-;4320:11;:48:::0;-1:-1:-1;;;;;4384:15:87;::::1;;::::0;;;:8:::1;:15;::::0;;;;;::::1;;4379:146;;-1:-1:-1::0;;;;;4415:15:87;;::::1;;::::0;;;:8:::1;:15;::::0;;;;;;;;:22;;-1:-1:-1;;4415:22:87::1;4433:4;4415:22;::::0;;4465:8:::1;::::0;:21;;-1:-1:-1;;;4465:21:87;;;;:8;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;4415:15;4465:21;;;;;;:8;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4451:56:87::1;;4508:5;4451:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4379:146;4540:58;::::0;;19361:25:139;;;-1:-1:-1;;;;;19460:15:139;;;19455:2;19440:18;;19433:43;19512:15;;19492:18;;;19485:43;4540:58:87;;4547:10:::1;::::0;4540:58:::1;::::0;;;;;19349:2:139;4540:58:87;;::::1;7715:1;;;;3315:1290:::0;;;:::o;3465:96:49:-;3523:7;3549:5;3553:1;3549;:5;:::i;7270:356:87:-;7352:16;:14;:16::i;:::-;7329:20;:39;7395:26;:24;:26::i;:::-;7378:14;:43;7435:13;;7431:189;;7484:16;7491:8;7484:6;:16::i;:::-;7464:17;;;;:7;:17;;;;;;;;:36;;;;7549:20;;7514:22;:32;;;;;;:55;7583:26;7472:8;7583:16;:26::i;3122:96:49:-;3180:7;3206:5;3210:1;3206;:5;:::i;6428:972:88:-;-1:-1:-1;;;;;6728:15:88;;6703:22;6728:15;;;:9;:15;;;;;;;;;6774:26;;;:17;:26;;;;;;;6904:28;;;6900:323;;-1:-1:-1;;;;;6970:18:88;;6948:19;6970:18;;;:12;:18;;;;;;;;:34;;;;;;;;;7019:30;;;;;;:44;;;7135:30;;:17;:30;;;;;:43;;;6900:323;-1:-1:-1;7316:26:88;;;;:17;:26;;;;;;;;7309:33;;;-1:-1:-1;;;;;7359:18:88;;;;;:12;:18;;;;;:34;;;;;;;7352:41;6428:972::o;7688:1062::-;7963:10;:17;7938:22;;7963:21;;7983:1;;7963:21;:::i;:::-;7994:18;8015:24;;;:15;:24;;;;;;8383:10;:26;;7938:46;;-1:-1:-1;8015:24:88;;7938:46;;8383:26;;;;-1:-1:-1;;;8383:26:88;;;;;;;;;;;;;;;;;8361:48;;8445:11;8420:10;8431;8420:22;;;;;;-1:-1:-1;;;8420:22:88;;;;;;;;;;;;;;;;;;;;:36;;;;8524:28;;;:15;:28;;;;;;;:41;;;8693:24;;;;;8686:31;8727:10;:16;;;;;-1:-1:-1;;;8727:16:88;;;;;;;;;;;;;;;;;;;;;;;;;;7688:1062;;;;:::o;3850:96:49:-;3908:7;3934:5;3938:1;3934;:5;:::i;2755:96::-;2813:7;2839:5;2843:1;2839;:5;:::i;6558:663:87:-;6957:7;;6982:26;;6668:19;;;;;;;;;;;;;;6908:140;;-1:-1:-1;;;;;6957:7:87;;;;6982:26;7026:8;6908:31;:140::i;:::-;6769:279;;;;;;;;7062:10;7086:5;-1:-1:-1;;;;;7086:11:87;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7059:40;;;;;;;;7117:5;7110:12;;7156:4;7142:18;;:10;:18;;;;:40;;;;;7172:10;7164:18;;:4;:18;;;;7142:40;6558:663;;7132:50;;-1:-1:-1;7204:10:87;;6558:663;-1:-1:-1;;;;;;6558:663:87:o;5855:697::-;5991:7;;6012:26;;5924:18;;5946:124;;-1:-1:-1;;;;;5991:7:87;;;;6012:26;6052:8;5946:31;:124::i;:::-;6099:18;;;;:8;:18;;;;;:28;;;5917:153;;-1:-1:-1;;;;;;6085:42:87;;;6099:28;;6085:42;6081:55;;-1:-1:-1;6081:55:87;;-1:-1:-1;;6081:55:87;6129:7;5855:697;:::o;6081:55::-;6146:12;6161:18;;;:8;:18;;;;;:24;-1:-1:-1;;;;;6161:24:87;;6223:34;6240:10;6161:24;6223:16;:34::i;:::-;6383:18;;;;:8;:18;;;;;:35;;;6331:11;;6195:62;;-1:-1:-1;6331:97:87;;-1:-1:-1;;;;;;;;6383:35:87;;;;;;6331:34;;:11;:34;;:15;:34::i;:97::-;6317:11;:111;6439:18;;;;:8;:18;;;;;;-1:-1:-1;;;;;6490:55:87;;;-1:-1:-1;;;6490:55:87;6439:41;;;;6490:55;;;;6439:28;;;;6490:55;-1:-1:-1;5855:697:87:o;964:749:130:-;1179:19;1212:15;1241;1270:17;1312:14;1336;1360:10;1591:26;-1:-1:-1;;;;;1591:36:130;;1628:7;1591:45;;;;;;;;;;;;;19123:25:139;;19111:2;19096:18;;19078:76;1591:45:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;1669:36:130;;-1:-1:-1;;;1669:36:130;;1380:256;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;;;;;;1669:15:130;;;-1:-1:-1;1669:15:130;;-1:-1:-1;1669:36:130;;-1:-1:-1;1380:256:130;;-1:-1:-1;1380:256:130;;;;1669:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1647:59;;964:749;;;;;;;;;;:::o;14:138:139:-;93:13;;115:31;93:13;115:31;:::i;:::-;74:78;;;:::o;157:164::-;233:13;;282;;275:21;265:32;;255:2;;311:1;308;301:12;326:164;403:13;;456:1;445:20;;;435:31;;425:2;;480:1;477;470:12;495:138;574:13;;596:31;574:13;596:31;:::i;638:163::-;716:13;;769:6;758:18;;748:29;;738:2;;791:1;788;781:12;806:136;884:13;;906:30;884:13;906:30;:::i;947:257::-;1006:6;1059:2;1047:9;1038:7;1034:23;1030:32;1027:2;;;1080:6;1072;1065:22;1027:2;1124:9;1111:23;1143:31;1168:5;1143:31;:::i;1209:261::-;1279:6;1332:2;1320:9;1311:7;1307:23;1303:32;1300:2;;;1353:6;1345;1338:22;1300:2;1390:9;1384:16;1409:31;1434:5;1409:31;:::i;1475:963::-;1578:6;1586;1594;1602;1610;1618;1671:3;1659:9;1650:7;1646:23;1642:33;1639:2;;;1693:6;1685;1678:22;1639:2;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:139;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1928:7;-1:-1:-1;1987:2:139;1972:18;;1959:32;2000:33;1959:32;2000:33;:::i;:::-;2052:7;-1:-1:-1;2111:2:139;2096:18;;2083:32;2124;2083;2124;:::i;:::-;2175:7;-1:-1:-1;2234:3:139;2219:19;;2206:33;2248;2206;2248;:::i;:::-;2300:7;-1:-1:-1;2359:3:139;2344:19;;2331:33;2373;2331;2373;:::i;:::-;2425:7;2415:17;;;1629:809;;;;;;;;:::o;2443:986::-;2540:6;2548;2556;2564;2572;2625:3;2613:9;2604:7;2600:23;2596:33;2593:2;;;2647:6;2639;2632:22;2593:2;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:139;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;-1:-1:-1;2936:2:139;2921:18;;2908:32;;-1:-1:-1;2991:2:139;2976:18;;2963:32;3014:18;3044:14;;;3041:2;;;3076:6;3068;3061:22;3041:2;3119:6;3108:9;3104:22;3094:32;;3164:7;3157:4;3153:2;3149:13;3145:27;3135:2;;3191:6;3183;3176:22;3135:2;3236;3223:16;3262:2;3254:6;3251:14;3248:2;;;3283:6;3275;3268:22;3248:2;3333:7;3328:2;3319:6;3315:2;3311:15;3307:24;3304:37;3301:2;;;3359:6;3351;3344:22;3301:2;2583:846;;;;-1:-1:-1;2583:846:139;;-1:-1:-1;3395:2:139;3387:11;;3417:6;2583:846;-1:-1:-1;;;2583:846:139:o;3434:1218::-;3527:6;3535;3588:2;3576:9;3567:7;3563:23;3559:32;3556:2;;;3609:6;3601;3594:22;3556:2;3653:9;3640:23;3672:31;3697:5;3672:31;:::i;:::-;3722:5;-1:-1:-1;3746:2:139;3784:18;;;3771:32;3822:18;3852:14;;;3849:2;;;3884:6;3876;3869:22;3849:2;3927:6;3916:9;3912:22;3902:32;;3972:7;3965:4;3961:2;3957:13;3953:27;3943:2;;3999:6;3991;3984:22;3943:2;4040;4027:16;4062:2;4058;4055:10;4052:2;;;4068:18;;:::i;:::-;4114:2;4111:1;4107:10;4097:20;;4137:28;4161:2;4157;4153:11;4137:28;:::i;:::-;4199:15;;;4230:12;;;;4262:11;;;4292;;;4288:20;;4285:33;-1:-1:-1;4282:2:139;;;4336:6;4328;4321:22;4282:2;4363:6;4354:15;;4378:244;4392:2;4389:1;4386:9;4378:244;;;4465:3;4452:17;4437:32;;4482:33;4507:7;4482:33;:::i;:::-;4528:20;;;4410:1;4403:9;;;;;4568:12;;;;4600;;4378:244;;;4382:3;4641:5;4631:15;;;;;;;;3546:1106;;;;;:::o;4657:943::-;4734:6;4742;4795:2;4783:9;4774:7;4770:23;4766:32;4763:2;;;4816:6;4808;4801:22;4763:2;4860:9;4847:23;4879:31;4904:5;4879:31;:::i;:::-;4929:5;-1:-1:-1;4953:2:139;4991:18;;;4978:32;5029:18;5059:14;;;5056:2;;;5091:6;5083;5076:22;5056:2;5134:6;5123:9;5119:22;5109:32;;5179:7;5172:4;5168:2;5164:13;5160:27;5150:2;;5206:6;5198;5191:22;5150:2;5247;5234:16;5269:2;5265;5262:10;5259:2;;;5275:18;;:::i;:::-;5317:53;5360:2;5341:13;;-1:-1:-1;;5337:27:139;5333:36;;5317:53;:::i;:::-;5304:66;;5393:2;5386:5;5379:17;5433:7;5428:2;5423;5419;5415:11;5411:20;5408:33;5405:2;;;5459:6;5451;5444:22;5405:2;5519;5514;5510;5506:11;5501:2;5494:5;5490:14;5477:45;5542:14;;5538:23;;;5531:39;;;;4753:847;;5546:5;;-1:-1:-1;4753:847:139;;-1:-1:-1;;4753:847:139:o;5605:325::-;5673:6;5681;5734:2;5722:9;5713:7;5709:23;5705:32;5702:2;;;5755:6;5747;5740:22;5702:2;5799:9;5786:23;5818:31;5843:5;5818:31;:::i;:::-;5868:5;5920:2;5905:18;;;;5892:32;;-1:-1:-1;;;5692:238:139:o;5935:212::-;6002:6;6055:2;6043:9;6034:7;6030:23;6026:32;6023:2;;;6076:6;6068;6061:22;6023:2;6104:37;6131:9;6104:37;:::i;6152:398::-;6220:6;6228;6281:2;6269:9;6260:7;6256:23;6252:32;6249:2;;;6302:6;6294;6287:22;6249:2;6346:9;6333:23;6365:31;6390:5;6365:31;:::i;:::-;6415:5;-1:-1:-1;6472:2:139;6457:18;;6444:32;6485:33;6444:32;6485:33;:::i;:::-;6537:7;6527:17;;;6239:311;;;;;:::o;6555:842::-;6669:6;6677;6685;6693;6701;6709;6717;6770:3;6758:9;6749:7;6745:23;6741:33;6738:2;;;6792:6;6784;6777:22;6738:2;6829:9;6823:16;6848:31;6873:5;6848:31;:::i;:::-;6898:5;-1:-1:-1;6922:47:139;6965:2;6950:18;;6922:47;:::i;:::-;6912:57;;6988:48;7032:2;7021:9;7017:18;6988:48;:::i;:::-;6978:58;;7055:48;7099:2;7088:9;7084:18;7055:48;:::i;:::-;7045:58;;7122:49;7166:3;7155:9;7151:19;7122:49;:::i;:::-;7112:59;;7216:3;7205:9;7201:19;7195:26;7265:4;7256:7;7252:18;7243:7;7240:31;7230:2;;7290:6;7282;7275:22;7230:2;7318:7;-1:-1:-1;7344:47:139;7386:3;7371:19;;7344:47;:::i;:::-;7334:57;;6728:669;;;;;;;;;;:::o;7402:190::-;7461:6;7514:2;7502:9;7493:7;7489:23;7485:32;7482:2;;;7535:6;7527;7520:22;7482:2;-1:-1:-1;7563:23:139;;7472:120;-1:-1:-1;7472:120:139:o;7597:194::-;7667:6;7720:2;7708:9;7699:7;7695:23;7691:32;7688:2;;;7741:6;7733;7726:22;7688:2;-1:-1:-1;7769:16:139;;7678:113;-1:-1:-1;7678:113:139:o;7796:1206::-;7959:6;7967;7975;7983;7991;7999;8007;8015;8023;8031;8039:7;8048;8102:3;8090:9;8081:7;8077:23;8073:33;8070:2;;;8124:6;8116;8109:22;8070:2;8161:9;8155:16;8211:26;8204:5;8200:38;8193:5;8190:49;8180:2;;8258:6;8250;8243:22;8180:2;8286:5;-1:-1:-1;8310:49:139;8355:2;8340:18;;8310:49;:::i;:::-;8300:59;;8378:49;8423:2;8412:9;8408:18;8378:49;:::i;:::-;8368:59;;8446:49;8491:2;8480:9;8476:18;8446:49;:::i;:::-;8436:59;;8514:49;8558:3;8547:9;8543:19;8514:49;:::i;:::-;8504:59;;8582:48;8625:3;8614:9;8610:19;8582:48;:::i;:::-;8572:58;;8649:48;8692:3;8681:9;8677:19;8649:48;:::i;:::-;8639:58;;8716:50;8761:3;8750:9;8746:19;8716:50;:::i;:::-;8706:60;;8806:3;8795:9;8791:19;8785:26;8775:36;;8851:3;8840:9;8836:19;8830:26;8820:36;;8876:50;8921:3;8910:9;8906:19;8876:50;:::i;:::-;8865:61;;8946:50;8991:3;8980:9;8976:19;8946:50;:::i;:::-;8935:61;;8060:942;;;;;;;;;;;;;;:::o;9007:274::-;9136:3;9174:6;9168:13;9190:53;9236:6;9231:3;9224:4;9216:6;9212:17;9190:53;:::i;:::-;9259:16;;;;;9144:137;-1:-1:-1;;9144:137:139:o;9286:203::-;-1:-1:-1;;;;;9450:32:139;;;;9432:51;;9420:2;9405:18;;9387:102::o;9494:388::-;-1:-1:-1;;;;;9750:15:139;;;9732:34;;9802:15;;;;9797:2;9782:18;;9775:43;9866:8;9854:21;;;9849:2;9834:18;;9827:49;9682:2;9667:18;;9649:233::o;9887:375::-;-1:-1:-1;;;;;10145:15:139;;;10127:34;;10197:15;;;;10192:2;10177:18;;10170:43;10244:2;10229:18;;10222:34;;;;10077:2;10062:18;;10044:218::o;12712:383::-;12861:2;12850:9;12843:21;12824:4;12893:6;12887:13;12936:6;12931:2;12920:9;12916:18;12909:34;12952:66;13011:6;13006:2;12995:9;12991:18;12986:2;12978:6;12974:15;12952:66;:::i;:::-;13079:2;13058:15;-1:-1:-1;;13054:29:139;13039:45;;;;13086:2;13035:54;;12833:262;-1:-1:-1;;12833:262:139:o;13801:342::-;14003:2;13985:21;;;14042:2;14022:18;;;14015:30;-1:-1:-1;;;14076:2:139;14061:18;;14054:48;14134:2;14119:18;;13975:168::o;17016:336::-;17218:2;17200:21;;;17257:2;17237:18;;;17230:30;-1:-1:-1;;;17291:2:139;17276:18;;17269:42;17343:2;17328:18;;17190:162::o;18059:345::-;18261:2;18243:21;;;18300:2;18280:18;;;18273:30;-1:-1:-1;;;18334:2:139;18319:18;;18312:51;18395:2;18380:18;;18233:171::o;18409:355::-;18611:2;18593:21;;;18650:2;18630:18;;;18623:30;18689:33;18684:2;18669:18;;18662:61;18755:2;18740:18;;18583:181::o;19792:275::-;19863:2;19857:9;19928:2;19909:13;;-1:-1:-1;;19905:27:139;19893:40;;19963:18;19948:34;;19984:22;;;19945:62;19942:2;;;20010:18;;:::i;:::-;20046:2;20039:22;19837:230;;-1:-1:-1;19837:230:139:o;20072:238::-;20112:3;-1:-1:-1;;;;;20179:10:139;;;20209;;;20239:12;;;20231:21;;20228:2;;;20255:18;;:::i;:::-;20291:13;;20120:190;-1:-1:-1;;;;20120:190:139:o;20315:128::-;20355:3;20386:1;20382:6;20379:1;20376:13;20373:2;;;20392:18;;:::i;:::-;-1:-1:-1;20428:9:139;;20363:80::o;20448:201::-;20488:1;-1:-1:-1;;;;;20553:10:139;;;;20572:2;;20589:18;;:::i;:::-;20627:10;;20623:20;;;;;20494:155;-1:-1:-1;;20494:155:139:o;20654:120::-;20694:1;20720;20710:2;;20725:18;;:::i;:::-;-1:-1:-1;20759:9:139;;20700:74::o;20779:272::-;20819:7;-1:-1:-1;;;;;20890:10:139;;;20920;;;20953:11;;20946:19;20975:12;;;20967:21;;20942:47;20939:2;;;20992:18;;:::i;:::-;21032:13;;20831:220;-1:-1:-1;;;;20831:220:139:o;21056:168::-;21096:7;21162:1;21158;21154:6;21150:14;21147:1;21144:21;21139:1;21132:9;21125:17;21121:45;21118:2;;;21169:18;;:::i;:::-;-1:-1:-1;21209:9:139;;21108:116::o;21229:125::-;21269:4;21297:1;21294;21291:8;21288:2;;;21302:18;;:::i;:::-;-1:-1:-1;21339:9:139;;21278:76::o;21359:258::-;21431:1;21441:113;21455:6;21452:1;21449:13;21441:113;;;21531:11;;;21525:18;21512:11;;;21505:39;21477:2;21470:10;21441:113;;;21572:6;21569:1;21566:13;21563:2;;;21607:1;21598:6;21593:3;21589:16;21582:27;21563:2;;21412:205;;;:::o;21622:135::-;21661:3;-1:-1:-1;;21682:17:139;;21679:2;;;21702:18;;:::i;:::-;-1:-1:-1;21749:1:139;21738:13;;21669:88::o;21762:127::-;21823:10;21818:3;21814:20;21811:1;21804:31;21854:4;21851:1;21844:15;21878:4;21875:1;21868:15;21894:127;21955:10;21950:3;21946:20;21943:1;21936:31;21986:4;21983:1;21976:15;22010:4;22007:1;22000:15;22026:127;22087:10;22082:3;22078:20;22075:1;22068:31;22118:4;22115:1;22108:15;22142:4;22139:1;22132:15;22158:131;-1:-1:-1;;;;;22233:31:139;;22223:42;;22213:2;;22279:1;22276;22269:12;22294:131;-1:-1:-1;;;;;22369:31:139;;22359:42;;22349:2;;22415:1;22412;22405:12;22430:119;22515:8;22508:5;22504:20;22497:5;22494:31;22484:2;;22539:1;22536;22529:12"},"methodIdentifiers":{"attached(address)":"36703461","balanceOf(address)":"70a08231","deposits(uint256)":"b02c43d0","derivedLiquidity(uint128,address)":"c4cfbf06","derivedLiquidity(uint256)":"03f3e30e","earned(uint256)":"4d6ed8c4","emergencyCall(address,bytes)":"c4bf0220","enableEmergencyMode()":"c5b1c7d0","exit(uint256)":"7f8661a1","factory()":"c45a0155","getReward(address,address[])":"31279d3d","getReward(uint256)":"1c4b774b","getRewardForDuration()":"1c1f78eb","inEmergency()":"9be54945","initialize(address,address,address,uint24,address,address)":"b93c9a1d","lastTimeRewardApplicable()":"80faa57d","lastUpdateTime()":"c8f33c91","left(address)":"99bcc052","liquidity(uint256)":"c8f1c3af","maxBoostRequirement()":"69db8b27","nonfungiblePositionManager()":"b44a2722","notifyRewardAmount(address,uint256)":"b66503cf","onERC721Received(address,address,uint256,bytes)":"150b7a02","periodFinish()":"ebe2b12b","pool()":"16f0115b","registry()":"7b103999","rewardPerToken()":"cd3daf9d","rewardPerTokenStored()":"df136d65","rewardRate()":"7b0a47ee","rewards(uint256)":"f301af42","rewardsDuration()":"386a9525","rewardsToken()":"d1af0c7d","totalSupply()":"18160ddd","updateRewardFor(uint256)":"d7e79f02","userRewardPerTokenPaid(uint256)":"6c6f858b","withdraw(uint256)":"2e1a7d4d","withdrawViaEmergency(uint256)":"8a16a30b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"EmergencyModeEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_old\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_new\",\"type\":\"uint256\"}],\"name\":\"MaxBoostRequirementChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidty\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"derivedLiquidity\",\"type\":\"uint128\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"attached\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"derivedLiquidity\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"derivedLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"derivedLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"emergencyCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableEmergencyMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRewardForDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inEmergency\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"_rewardsToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_nonfungiblePositionManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBoostRequirement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonfungiblePositionManager\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"updateRewardFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userRewardPerTokenPaid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"withdrawViaEmergency\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"emergencyCall(address,bytes)\":{\"details\":\"in case admin needs to execute some calls directly\"}},\"stateVariables\":{\"inEmergency\":{\"details\":\"is the contract in emergency mode? if so then allow for NFTs to be withdrawn without much checks.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/uniswapv3/BaseGaugeV3UniV3.sol\":\"BaseGaugeV3UniV3\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xe1d0cd92e6827b0ca89925a59ec0eadc2b444aa3dd430fecb752a93c36436991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf6b448bf512c72350a4aaeeb0053e7f112c278cd9bdd7eb04c2f7b40b24f4dc\",\"dweb:/ipfs/Qmd1o6mVH7xLRg6yQ7Hza51bjARb2UA38LXsbTNRG9tvRu\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/gauges/uniswapv3/BaseGaugeV3UniV3.sol\":{\"keccak256\":\"0x8c07e648306a573432abf9436c263c8248ff0a870680770f7e99136d06634724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://172c9146b971308ebc3de1be3a1b9a888845e61eec59e45416a586a21c6997cf\",\"dweb:/ipfs/QmccNZ64x2dNdNLJGC13Q5drusp7dkWB4CXcnb3mPb25Mx\"]},\"contracts/gauges/uniswapv3/StakingRewardsV3.sol\":{\"keccak256\":\"0xb561b1ee69cdff4fdafd14a6dc83e28de43028002b3ae36d77cb54b493706d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f12783112b0f125e924ac38eb08962f5d5a7af8e75c0a5064940ca2a6a80ff\",\"dweb:/ipfs/QmV4U37GAauuyWDYWFcrjAE9ksWQMcWr38cUhaZipEKE6F\"]},\"contracts/gauges/uniswapv3/UniswapV3Base.sol\":{\"keccak256\":\"0x28d968c78255413c7d6646e26b626cf9e3728c3151d943a3cc5a522a6459a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa5f17efd4ba4c9d9687350812392991ba0058c11e7d74846d310d283e5856ea\",\"dweb:/ipfs/QmPBRFwg8qmqpnhDrBYDs6xmMsc7NhCPKP9RhMBHnpr1op\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/utils/NFTPositionInfo.sol\":{\"keccak256\":\"0x58e7a461b1f190ea9dd1480b1a9a031e50304c80f14e40908936c45f20981b48\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c705d809320056979d767e7bb8036356f93b4e008b12746f6b57f01d914a3962\",\"dweb:/ipfs/QmUkVwEg1wPJRWuttC7eLiNqAPbLfiNQ3UsTQBgcoWXEfr\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/gauges/uniswapv3/StakingRewardsV3.sol":{"StakingRewardsV3":{"abi":[{"anonymous":false,"inputs":[],"name":"EmergencyModeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_old","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"MaxBoostRequirementChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"liquidty","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"derivedLiquidity","type":"uint128"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"attached","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deposits","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint128","name":"derivedLiquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"derivedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"address","name":"account","type":"address"}],"name":"derivedLiquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"_rewardsToken","type":"address"},{"internalType":"address","name":"_nonfungiblePositionManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBoostRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"updateRewardFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"attached(address)":"36703461","balanceOf(address)":"70a08231","deposits(uint256)":"b02c43d0","derivedLiquidity(uint128,address)":"c4cfbf06","derivedLiquidity(uint256)":"03f3e30e","earned(uint256)":"4d6ed8c4","exit(uint256)":"7f8661a1","factory()":"c45a0155","getReward(address,address[])":"31279d3d","getReward(uint256)":"1c4b774b","getRewardForDuration()":"1c1f78eb","initialize(address,address,address,uint24,address,address)":"b93c9a1d","lastTimeRewardApplicable()":"80faa57d","lastUpdateTime()":"c8f33c91","left(address)":"99bcc052","liquidity(uint256)":"c8f1c3af","maxBoostRequirement()":"69db8b27","nonfungiblePositionManager()":"b44a2722","notifyRewardAmount(address,uint256)":"b66503cf","periodFinish()":"ebe2b12b","pool()":"16f0115b","registry()":"7b103999","rewardPerToken()":"cd3daf9d","rewardPerTokenStored()":"df136d65","rewardRate()":"7b0a47ee","rewards(uint256)":"f301af42","rewardsDuration()":"386a9525","rewardsToken()":"d1af0c7d","totalSupply()":"18160ddd","updateRewardFor(uint256)":"d7e79f02","userRewardPerTokenPaid(uint256)":"6c6f858b","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"EmergencyModeEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_old\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_new\",\"type\":\"uint256\"}],\"name\":\"MaxBoostRequirementChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidty\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"derivedLiquidity\",\"type\":\"uint128\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"attached\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"derivedLiquidity\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"derivedLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"derivedLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRewardForDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"_rewardsToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_nonfungiblePositionManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBoostRequirement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonfungiblePositionManager\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"updateRewardFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userRewardPerTokenPaid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/uniswapv3/StakingRewardsV3.sol\":\"StakingRewardsV3\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/gauges/uniswapv3/StakingRewardsV3.sol\":{\"keccak256\":\"0xb561b1ee69cdff4fdafd14a6dc83e28de43028002b3ae36d77cb54b493706d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f12783112b0f125e924ac38eb08962f5d5a7af8e75c0a5064940ca2a6a80ff\",\"dweb:/ipfs/QmV4U37GAauuyWDYWFcrjAE9ksWQMcWr38cUhaZipEKE6F\"]},\"contracts/gauges/uniswapv3/UniswapV3Base.sol\":{\"keccak256\":\"0x28d968c78255413c7d6646e26b626cf9e3728c3151d943a3cc5a522a6459a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa5f17efd4ba4c9d9687350812392991ba0058c11e7d74846d310d283e5856ea\",\"dweb:/ipfs/QmPBRFwg8qmqpnhDrBYDs6xmMsc7NhCPKP9RhMBHnpr1op\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/utils/NFTPositionInfo.sol\":{\"keccak256\":\"0x58e7a461b1f190ea9dd1480b1a9a031e50304c80f14e40908936c45f20981b48\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c705d809320056979d767e7bb8036356f93b4e008b12746f6b57f01d914a3962\",\"dweb:/ipfs/QmUkVwEg1wPJRWuttC7eLiNqAPbLfiNQ3UsTQBgcoWXEfr\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/gauges/uniswapv3/UniswapV3Base.sol":{"UniswapV3Base":{"abi":[{"anonymous":false,"inputs":[],"name":"EmergencyModeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_old","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"MaxBoostRequirementChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"liquidty","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"derivedLiquidity","type":"uint128"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"attached","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deposits","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint128","name":"derivedLiquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"derivedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"_rewardsToken","type":"address"},{"internalType":"address","name":"_nonfungiblePositionManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBoostRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"attached(address)":"36703461","balanceOf(address)":"70a08231","deposits(uint256)":"b02c43d0","derivedLiquidity(uint256)":"03f3e30e","earned(uint256)":"4d6ed8c4","factory()":"c45a0155","getReward(address,address[])":"31279d3d","getRewardForDuration()":"1c1f78eb","initialize(address,address,address,uint24,address,address)":"b93c9a1d","lastTimeRewardApplicable()":"80faa57d","lastUpdateTime()":"c8f33c91","left(address)":"99bcc052","liquidity(uint256)":"c8f1c3af","maxBoostRequirement()":"69db8b27","nonfungiblePositionManager()":"b44a2722","notifyRewardAmount(address,uint256)":"b66503cf","periodFinish()":"ebe2b12b","pool()":"16f0115b","registry()":"7b103999","rewardPerToken()":"cd3daf9d","rewardPerTokenStored()":"df136d65","rewardRate()":"7b0a47ee","rewards(uint256)":"f301af42","rewardsDuration()":"386a9525","rewardsToken()":"d1af0c7d","totalSupply()":"18160ddd","userRewardPerTokenPaid(uint256)":"6c6f858b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"EmergencyModeEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_old\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_new\",\"type\":\"uint256\"}],\"name\":\"MaxBoostRequirementChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidty\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"derivedLiquidity\",\"type\":\"uint128\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"attached\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"derivedLiquidity\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"derivedLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRewardForDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"_rewardsToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_nonfungiblePositionManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBoostRequirement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonfungiblePositionManager\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerTokenStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userRewardPerTokenPaid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_allTokens\":{\"details\":\"Array with all token ids, used for enumeration\"},\"_allTokensIndex\":{\"details\":\"Mapping from token id to position in the allTokens array\"},\"_ownedTokens\":{\"details\":\"Mapping from owner to list of owned token IDs\"},\"_ownedTokensIndex\":{\"details\":\"Mapping from token ID to index of the owner tokens list\"},\"attached\":{\"details\":\"is the user attached to this gauge\"},\"balanceOf\":{\"details\":\"the number of NFTs staked by the given user.\"},\"deposits\":{\"details\":\"all the NFT deposits\"},\"factory\":{\"details\":\"the uniswap v3 factory\"},\"nonfungiblePositionManager\":{\"details\":\"the uniswap v3 nft position manager\"},\"pool\":{\"details\":\"the pool for which we are staking the rewards\"},\"rewards\":{\"details\":\"[nft token id => reward count] rewards\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gauges/uniswapv3/UniswapV3Base.sol\":\"UniswapV3Base\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/gauges/uniswapv3/UniswapV3Base.sol\":{\"keccak256\":\"0x28d968c78255413c7d6646e26b626cf9e3728c3151d943a3cc5a522a6459a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa5f17efd4ba4c9d9687350812392991ba0058c11e7d74846d310d283e5856ea\",\"dweb:/ipfs/QmPBRFwg8qmqpnhDrBYDs6xmMsc7NhCPKP9RhMBHnpr1op\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/interfaces/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"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\":{\"contracts/interfaces/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IBeacon.sol\":{\"keccak256\":\"0xfd586c126cf56090560b92c4b655abcd26e1a450586aa53a7ccd4a688af35f94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c643cf133a1def1614b30c168e8a4f0937ffafe8888f53d849e3a3487b44d\",\"dweb:/ipfs/QmU3B475n2Y2F2zCKxh5ksTX4bC7e6WtsHRCwotgB4jhLT\"]}},\"version\":1}"}},"contracts/interfaces/IBribe.sol":{"IBribe":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getRewardForOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"_deposit(uint256,uint256)":"f3207723","_withdraw(uint256,uint256)":"9e2bf22c","getRewardForOwner(uint256,address[])":"a7852afa","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"_deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"_withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getRewardForOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IBribe.sol\":\"IBribe\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IBribeFactory.sol":{"IBribeFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_bribe","type":"address"}],"name":"BribeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"name":"createBribe","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createBribe(address)":"6bd1a72c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"}],\"name\":\"BribeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"createBribe\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IBribeFactory.sol\":\"IBribeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IBribeFactory.sol\":{\"keccak256\":\"0x17e891f801dd4fd0636bf0dc89640047601942d6c2191edff32e3344f7882e7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6d2b2922adf4dc632b67d2384fd481d0442183876bcf7a27620c2e0779804f4\",\"dweb:/ipfs/QmU27qrGnKbsh2ZEgKfADfS9URHhZXM9VaVvzdVeD27Ytu\"]}},\"version\":1}"}},"contracts/interfaces/IBribeV2.sol":{"IBribeV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"tokenId","type":"address"}],"name":"_deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"tokenId","type":"address"}],"name":"_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenId","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getRewardForOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"_deposit(uint256,address)":"463cd970","_withdraw(uint256,address)":"293311ab","getRewardForOwner(address,address[])":"e943da8a","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"}],\"name\":\"_deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"}],\"name\":\"_withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getRewardForOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IBribeV2.sol\":\"IBribeV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IBribeV2.sol\":{\"keccak256\":\"0x741775fd0b90fab22bf36b05440bb246da6248f44634fca723bd32b07919f20a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bf5c773cd53bb0544ca70facb19205a7c7fbeeac2aa25dfda193aa957cd3f89\",\"dweb:/ipfs/QmTc8i7iXKGKX29AHW6si1Rw8PcxzJZBh9YcAC28ZTU8pY\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IEmissionController.sol":{"IEmissionController":{"abi":[{"inputs":[],"name":"allocateEmission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"callable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpochPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allocateEmission()":"161ad706","callable()":"6a2ab602","getCurrentEpoch()":"b97dd9e2","getLastEpoch()":"398bac63","getNextEpoch()":"efe97d05","getPeriod()":"1ed24195","getStartTime()":"c828371e","nextEpochPoint()":"c5967c26"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"allocateEmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"callable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochPoint\",\"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/IEmissionController.sol\":\"IEmissionController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IEmissionController.sol\":{\"keccak256\":\"0x215a5b7ff3746ff804247f59ea1b55155873be560f8e676fcaefd7a58c9fbd83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://747e34f194cd6ac87b4d2e317fae58d94f3e1b4d4fde66af99c15c794a7728ee\",\"dweb:/ipfs/QmdzD9zZX8YwxAK8yuP54sWMcMBAifF6p4zRa51gspFFgx\"]},\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]}},\"version\":1}"}},"contracts/interfaces/IEpoch.sol":{"IEpoch":{"abi":[{"inputs":[],"name":"callable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpochPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"callable()":"6a2ab602","getCurrentEpoch()":"b97dd9e2","getLastEpoch()":"398bac63","getNextEpoch()":"efe97d05","getPeriod()":"1ed24195","getStartTime()":"c828371e","nextEpochPoint()":"c5967c26"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"callable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochPoint\",\"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/IEpoch.sol\":\"IEpoch\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]}},\"version\":1}"}},"contracts/interfaces/IFeeDistributor.sol":{"IFeeDistributor":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"CheckpointToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"nftId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimEpoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxEpoch","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"toggleFlag","type":"bool"}],"name":"ToggleAllowCheckpointToken","type":"event"},{"inputs":[],"name":"checkpointToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkpointTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nftId","type":"uint256"}],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"nftIds","type":"uint256[]"}],"name":"claimMany","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"},{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"name":"claimWithPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"checkpointToken()":"bee5dc32","checkpointTotalSupply()":"326a9407","claim(uint256)":"379607f5","claimMany(uint256[])":"925489a8","claimWithPendingRewards(uint256,address,uint256,bytes32[])":"2971aa8e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"CheckpointToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nftId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxEpoch\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"toggleFlag\",\"type\":\"bool\"}],\"name\":\"ToggleAllowCheckpointToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"checkpointToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpointTotalSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nftId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nftIds\",\"type\":\"uint256[]\"}],\"name\":\"claimMany\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"_proof\",\"type\":\"bytes32[]\"}],\"name\":\"claimWithPendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IFeeDistributor.sol\":\"IFeeDistributor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IFeeDistributor.sol\":{\"keccak256\":\"0x6440354797a1f08adf0deca10c8914741227f2ceead155c72240d35fa37a1b90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37fe343325b0e22cc140e5ff19399f38700c896d061e7d075ca010a5777203a9\",\"dweb:/ipfs/Qma11vo7nCFG9896ZzSnYECgnkFqTvutTVjmUj4RuFiNyg\"]}},\"version\":1}"}},"contracts/interfaces/IGauge.sol":{"IGauge":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getReward(address,address[])":"31279d3d","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGauge.sol\":\"IGauge\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeFactory.sol":{"IGaugeFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_gauge","type":"address"},{"indexed":false,"internalType":"address","name":"_pool","type":"address"},{"indexed":false,"internalType":"address","name":"_bribe","type":"address"}],"name":"GaugeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_bribe","type":"address"}],"name":"createGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createGauge(address,address,address)":"1c48e0fa"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"}],\"name\":\"createGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeFactory.sol\":\"IGaugeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IGaugeFactory.sol\":{\"keccak256\":\"0x3115db7b4b5e8881542331dc44dc88c3d44285ecc5f857460f1503b89b23fb53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://170c083969a897ed89d2fe5aef81b772344e3d66052b8b96b442ed3cd17720a6\",\"dweb:/ipfs/QmXuVFUv2PEDN6kNksH5FtpBa8FP3ww15mwHcvCNcC8Q2H\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeV1.sol":{"IGaugeV1":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"claimed0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimed1","type":"uint256"}],"name":"ClaimFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getReward(address,address[])":"31279d3d","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed1\",\"type\":\"uint256\"}],\"name\":\"ClaimFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeV1.sol\":\"IGaugeV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeV1.sol\":{\"keccak256\":\"0x5ee0b8a26d1372bf24788db7afb195a44d852862c3f1d8380eff293d9365299e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bfae30ec25b55f39d4056a76c5afab9b2ade48561173b7594498239a9286f9f\",\"dweb:/ipfs/QmU8eyZsLGCe3XtjSqyubGjbtEQsvDpfTedtSohFq9pYz1\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeV2.sol":{"IGaugeV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"claimed0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimed1","type":"uint256"}],"name":"ClaimFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_old","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"MaxBoostRequirementChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getReward(address,address[])":"31279d3d","left(address)":"99bcc052","notifyRewardAmount(address,uint256)":"b66503cf","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed1\",\"type\":\"uint256\"}],\"name\":\"ClaimFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_old\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_new\",\"type\":\"uint256\"}],\"name\":\"MaxBoostRequirementChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeV2.sol\":\"IGaugeV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeV2.sol\":{\"keccak256\":\"0x3c18553ca65458ce61c119dcf77562e982252003b889e29cfb7b418f6b0651a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb8852cc39c57b2abef2f19729fb3dd7011e5121634362d46cad2928f894e344\",\"dweb:/ipfs/QmUDX6dBugtpMTjuF99z8hipLhfQAp3M4P6b5Wpva1oV7S\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeV2UniV3.sol":{"IGaugeV2UniV3":{"abi":[{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeV2UniV3.sol\":\"IGaugeV2UniV3\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IGaugeV2UniV3.sol\":{\"keccak256\":\"0x3fcd5239e84923e836af3e543e9c542570cfa335f10ed7c7d08b31594f903fed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed1f1cc8a48eb573b162b730d4a003b999f1a35ed972e53e04027652f4982947\",\"dweb:/ipfs/QmSjXPuJSe3JAnLqvNL9jBJt4vsJMAXtRsZFy44UR9ydwZ\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeV2UniV3Factory.sol":{"IGaugeV2UniV3Factory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_gauge","type":"address"},{"indexed":false,"internalType":"address","name":"_pool","type":"address"},{"indexed":false,"internalType":"address","name":"_bribe","type":"address"},{"indexed":false,"internalType":"address","name":"_registry","type":"address"},{"indexed":false,"internalType":"address","name":"_refundee","type":"address"},{"indexed":false,"internalType":"address","name":"_uniswapV3factory","type":"address"},{"indexed":false,"internalType":"address","name":"_nonfungiblePositionManager","type":"address"},{"indexed":false,"internalType":"uint256","name":"_maxIncentiveStartLeadTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_maxIncentiveDuration","type":"uint256"}],"name":"GaugeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_bribe","type":"address"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_refundee","type":"address"},{"internalType":"contract IUniswapV3Factory","name":"_uniswapV3factory","type":"address"},{"internalType":"contract INonfungiblePositionManager","name":"_nonfungiblePositionManager","type":"address"},{"internalType":"uint256","name":"_maxIncentiveStartLeadTime","type":"uint256"},{"internalType":"uint256","name":"_maxIncentiveDuration","type":"uint256"}],"name":"createGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createGauge(address,address,address,address,address,address,uint256,uint256)":"3d54ff8b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_refundee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_uniswapV3factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_nonfungiblePositionManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_maxIncentiveStartLeadTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_maxIncentiveDuration\",\"type\":\"uint256\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_refundee\",\"type\":\"address\"},{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"_uniswapV3factory\",\"type\":\"address\"},{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"_nonfungiblePositionManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_maxIncentiveStartLeadTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxIncentiveDuration\",\"type\":\"uint256\"}],\"name\":\"createGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeV2UniV3Factory.sol\":\"IGaugeV2UniV3Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/interfaces/IGaugeV2UniV3Factory.sol\":{\"keccak256\":\"0xa836e800149024eb5b0ed93b95395757914d74103a85b283aa8b53d2e85e3171\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1d6cc0e31b32352c4ac5084e32ca7a1d9617819e69ea259ccea0ee278715557\",\"dweb:/ipfs/QmVTo3VDYCgfAfAdKYb6HYYeQPdkAmPLy3D5Aa5rc4D3kz\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeVoter.sol":{"IGaugeVoter":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Abstained","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Attach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Detach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DistributeReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"GaugeCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whitelister","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"attachTokenToGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"detachTokenFromGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"attachTokenToGauge(uint256,address)":"698473e3","detachTokenFromGauge(uint256,address)":"411b1f77","distribute(address)":"63453ae1","emitDeposit(uint256,address,uint256)":"a61c713a","emitWithdraw(uint256,address,uint256)":"ea94ee44","notifyRewardAmount(uint256)":"3c6b16ab","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Abstained\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Attach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Detach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DistributeReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bribe\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whitelister\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"Whitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"attachTokenToGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"detachTokenFromGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emitDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emitWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeVoter.sol\":\"IGaugeVoter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeVoterV2.sol":{"IGaugeVoterV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Abstained","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"Attach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"Detach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DistributeReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"GaugeCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"GaugeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whitelister","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"attachStakerToGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"attachments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"detachStakerFromGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"resetFor","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"attachStakerToGauge(address)":"97a302f7","attachments(address)":"6405eacd","detachStakerFromGauge(address)":"e32e4e88","distribute()":"e4fc6b6d","distribute(address)":"63453ae1","distribute(address[])":"6138889b","notifyRewardAmount(uint256)":"3c6b16ab","registry()":"7b103999","reset()":"d826f88f","resetFor(address)":"20217176"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Abstained\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"}],\"name\":\"Attach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"}],\"name\":\"Detach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DistributeReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bribe\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bribe\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"GaugeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whitelister\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"Whitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"attachStakerToGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"attachments\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"detachStakerFromGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_gauges\",\"type\":\"address[]\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"}],\"name\":\"resetFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeVoterV2.sol\":\"IGaugeVoterV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeWrapper.sol":{"IGaugeWrapper":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"staker","outputs":[{"internalType":"contract IUniswapV3Staker","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"notifyRewardAmount(address,uint256)":"b66503cf","registry()":"7b103999","staker()":"5ebaf1db"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staker\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Staker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeWrapper.sol\":\"IGaugeWrapper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/interfaces/IGaugeWrapper.sol\":{\"keccak256\":\"0x1b95f83de608960bdc0bf3681823397e63bc39ca923d28af2e4e3b410f7c948b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c9f1a4c1aaf6c703bdfc78bf5258244e4a2948d776dec1e93187107309b29ab\",\"dweb:/ipfs/QmP9sZ8UGfzoVr4GXxVrMRjFfYpM9vSpFB1XVKmybFnDrQ\"]},\"contracts/interfaces/IMulticall.sol\":{\"keccak256\":\"0x5ac8732c889e0b3f3f4d37d12d50b10c4a55a365433134ded9fbd39dc68cde69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://17d6288af42560f49758c883416a42473dbcafd77efc3736dd54d27df34b6550\",\"dweb:/ipfs/QmPqduaQPYYx1FsCtzQqgkc44sEK7GkWySiYP2cYvrzUfv\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/interfaces/IUniswapV3Staker.sol\":{\"keccak256\":\"0x9613c67c55ab1c16862f50b7f60ea02d5d1da62dc3cf9e8d14464a176bff1f86\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e891b8daddaa7ac7723c24e0c6f2ebf11af12c0991e1acaa53daeef745b1b5ff\",\"dweb:/ipfs/QmeFnFWi7dGbsCr9uCReVhsQfUSAXNwFueNjoZZbGKnxvz\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/interfaces/IGaugeWrapperFactory.sol":{"IGaugeWrapperFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_gauge","type":"address"},{"indexed":false,"internalType":"address","name":"_pool","type":"address"},{"indexed":false,"internalType":"address","name":"_bribe","type":"address"},{"indexed":false,"internalType":"address","name":"_uniV3Staker","type":"address"}],"name":"GaugeCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_bribe","type":"address"},{"internalType":"address","name":"_uniV3Staker","type":"address"}],"name":"createGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createGauge(address,address,address,address)":"ba9225f7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_uniV3Staker\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_uniV3Staker\",\"type\":\"address\"}],\"name\":\"createGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGaugeWrapperFactory.sol\":\"IGaugeWrapperFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IGaugeWrapperFactory.sol\":{\"keccak256\":\"0x4d070b7051b9b841ee05f9247987dcf8968ff58b40f0d480242c9b77cf696585\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd86c61a4ab76ad264a3631682871399f47296b535fd3a80a513997012493c9d\",\"dweb:/ipfs/QmduwWz8UJQKBnLZGUQyyRhT1SoKHeCJg6JgvZ7BHQkJY6\"]}},\"version\":1}"}},"contracts/interfaces/ILockMigrator.sol":{"ILockMigrator":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldReward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newReward","type":"uint256"}],"name":"MigrationRewardChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferMigrationReward","type":"event"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_mahaReward","type":"uint256"},{"internalType":"uint256","name":"_scallopReward","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"isLockValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_mahaReward","type":"uint256"},{"internalType":"uint256","name":"_scallopReward","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"migrateLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"setMigrationReward","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isLockValid(uint256,uint256,address,uint256,uint256,uint256,bytes32[])":"e01a8b9f","migrateLock(uint256,uint256,uint256,address,uint256,uint256,bytes32[])":"7302d43c","setMigrationReward(uint256)":"4c2d392a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReward\",\"type\":\"uint256\"}],\"name\":\"MigrationRewardChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferMigrationReward\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_mahaReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scallopReward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"isLockValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_mahaReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scallopReward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"migrateLock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"setMigrationReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ILockMigrator.sol\":\"ILockMigrator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ILockMigrator.sol\":{\"keccak256\":\"0x75aeaa62386f95ca64daf05f4cc0c6fc4802d28fc0b7b6d0c2b57a08fd825861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf740359ba274e9c8a7d3c78394266f51441d4b3ebd87ab21e00f1083fa9cdb7\",\"dweb:/ipfs/QmfEiJG2gmCo5PLE94C75ZiBKhGiuvyiW9Z2PX9dz7e7jU\"]}},\"version\":1}"}},"contracts/interfaces/IMulticall.sol":{"IMulticall":{"abi":[{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"multicall(bytes[])":"ac9650d8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"multicall(bytes[])\":{\"details\":\"The `msg.value` should not be trusted for any method callable from multicall.\",\"params\":{\"data\":\"The encoded function data for each of the calls to make to this contract\"},\"returns\":{\"results\":\"The results from each of the calls passed in via data\"}}},\"title\":\"Multicall interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"multicall(bytes[])\":{\"notice\":\"Call multiple functions in the current contract and return the data from all of them if they all succeed\"}},\"notice\":\"Enables calling multiple methods in a single call to the contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IMulticall.sol\":\"IMulticall\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IMulticall.sol\":{\"keccak256\":\"0x5ac8732c889e0b3f3f4d37d12d50b10c4a55a365433134ded9fbd39dc68cde69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://17d6288af42560f49758c883416a42473dbcafd77efc3736dd54d27df34b6550\",\"dweb:/ipfs/QmPqduaQPYYx1FsCtzQqgkc44sEK7GkWySiYP2cYvrzUfv\"]}},\"version\":1}"}},"contracts/interfaces/INFTLocker.sol":{"INFTLocker":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"locktime","type":"uint256"},{"indexed":false,"internalType":"enum INFTLocker.DepositType","name":"deposit_type","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"Supply","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOfNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"bool","name":"_stakeNFT","type":"bool"}],"name":"createLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bool","name":"_stakeNFT","type":"bool"}],"name":"createLockFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"depositFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"isApprovedOrOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_from","type":"uint256"},{"internalType":"uint256","name":"_to","type":"uint256"}],"name":"merge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"migrateTokenFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pointHistory","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct INFTLocker.Point","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_block","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyWithoutDecay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userPointEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userPointHistory","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct INFTLocker.Point","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","balanceOfNFT(uint256)":"e7e242d4","blockNumber()":"57e871e7","checkpoint()":"c2c4c5c1","createLock(uint256,uint256,bool)":"d60371a7","createLockFor(uint256,uint256,address,bool)":"0a2abdb3","depositFor(uint256,uint256)":"0ec84dda","epoch()":"900cf0cf","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isApprovedOrOwner(address,uint256)":"430c2081","isStaked(uint256)":"baa51f86","merge(uint256,uint256)":"d1c2babb","migrateTokenFor(uint256,uint256,address)":"8df4b13b","ownerOf(uint256)":"6352211e","pointHistory(uint256)":"8ad4c447","registry()":"7b103999","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","totalSupply()":"18160ddd","totalSupplyAt(uint256)":"981b24d0","totalSupplyWithoutDecay()":"d490dbca","transferFrom(address,address,uint256)":"23b872dd","userPointEpoch(uint256)":"e58f5947","userPointHistory(uint256,uint256)":"44acb42a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"locktime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum INFTLocker.DepositType\",\"name\":\"deposit_type\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"prevSupply\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"name\":\"Supply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"balanceOfNFT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_stakeNFT\",\"type\":\"bool\"}],\"name\":\"createLock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_stakeNFT\",\"type\":\"bool\"}],\"name\":\"createLockFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"depositFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isApprovedOrOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_to\",\"type\":\"uint256\"}],\"name\":\"merge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"migrateTokenFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pointHistory\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct INFTLocker.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"totalSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupplyWithoutDecay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userPointEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userPointHistory\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct INFTLocker.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/INFTLocker.sol\":\"INFTLocker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/INFTStaker.sol":{"INFTStaker":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StakeNFT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UnstakeNFT","type":"event"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"_stakeFromLock","outputs":[],"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":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"getStakedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"stake","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":"uint256","name":"_tokenId","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"_stakeFromLock(uint256)":"630b4b90","balanceOf(address)":"70a08231","decimals()":"313ce567","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getStakedBalance(address)":"3a02a42d","getVotes(address)":"9ab24eb0","isStaked(uint256)":"baa51f86","name()":"06fdde03","registry()":"7b103999","stake(uint256)":"a694fc3a","symbol()":"95d89b41","totalSupply()":"18160ddd","unstake(uint256)":"2e17de78"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeNFT\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnstakeNFT\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"_stakeFromLock\",\"outputs\":[],\"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\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"getStakedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"stake\",\"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\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/INFTStaker.sol\":\"INFTStaker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/INonfungiblePositionManager.sol":{"INonfungiblePositionManager":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"DecreaseLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"IncreaseLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"WETH9","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Max","type":"uint128"},{"internalType":"uint128","name":"amount1Max","type":"uint128"}],"internalType":"struct INonfungiblePositionManager.CollectParams","name":"params","type":"tuple"}],"name":"collect","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"createAndInitializePoolIfNecessary","outputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct INonfungiblePositionManager.DecreaseLiquidityParams","name":"params","type":"tuple"}],"name":"decreaseLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct INonfungiblePositionManager.IncreaseLiquidityParams","name":"params","type":"tuple"}],"name":"increaseLiquidity","outputs":[{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct INonfungiblePositionManager.MintParams","name":"params","type":"tuple"}],"name":"mint","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"positions","outputs":[{"internalType":"uint96","name":"nonce","type":"uint96"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refundETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"sweepToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"unwrapWETH9","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","WETH9()":"4aa4a4fc","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","collect((uint256,address,uint128,uint128))":"fc6f7865","createAndInitializePoolIfNecessary(address,address,uint24,uint160)":"13ead562","decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))":"0c49ccbe","factory()":"c45a0155","getApproved(uint256)":"081812fc","increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))":"219f5d17","isApprovedForAll(address,address)":"e985e9c5","mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))":"88316456","name()":"06fdde03","ownerOf(uint256)":"6352211e","permit(address,uint256,uint256,uint8,bytes32,bytes32)":"7ac2ff7b","positions(uint256)":"99fbab88","refundETH()":"12210e8a","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","sweepToken(address,uint256,address)":"df2ab5bb","symbol()":"95d89b41","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","unwrapWETH9(uint256,address)":"49404b7c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"DecreaseLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"IncreaseLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH9\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Max\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Max\",\"type\":\"uint128\"}],\"internalType\":\"struct INonfungiblePositionManager.CollectParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"createAndInitializePoolIfNecessary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct INonfungiblePositionManager.DecreaseLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"decreaseLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct INonfungiblePositionManager.IncreaseLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"increaseLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint256\",\"name\":\"amount0Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Min\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct INonfungiblePositionManager.MintParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refundETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"unwrapWETH9\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Collect(uint256,address,uint256,uint256)\":{\"details\":\"The amounts reported may not be exactly equivalent to the amounts transferred, due to rounding behavior\",\"params\":{\"amount0\":\"The amount of token0 owed to the position that was collected\",\"amount1\":\"The amount of token1 owed to the position that was collected\",\"recipient\":\"The address of the account that received the collected tokens\",\"tokenId\":\"The ID of the token for which underlying tokens were collected\"}},\"DecreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"params\":{\"amount0\":\"The amount of token0 that was accounted for the decrease in liquidity\",\"amount1\":\"The amount of token1 that was accounted for the decrease in liquidity\",\"liquidity\":\"The amount by which liquidity for the NFT position was decreased\",\"tokenId\":\"The ID of the token for which liquidity was decreased\"}},\"IncreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"details\":\"Also emitted when a token is minted\",\"params\":{\"amount0\":\"The amount of token0 that was paid for the increase in liquidity\",\"amount1\":\"The amount of token1 that was paid for the increase in liquidity\",\"liquidity\":\"The amount by which liquidity for the NFT position was increased\",\"tokenId\":\"The ID of the token for which liquidity was increased\"}}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"The domain seperator used in encoding of permit signature\"}},\"PERMIT_TYPEHASH()\":{\"returns\":{\"_0\":\"The typehash for the permit\"}},\"WETH9()\":{\"returns\":{\"_0\":\"Returns the address of WETH9\"}},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"burn(uint256)\":{\"params\":{\"tokenId\":\"The ID of the token that is being burned\"}},\"collect((uint256,address,uint128,uint128))\":{\"params\":{\"params\":\"tokenId The ID of the NFT for which tokens are being collected, recipient The account that should receive the tokens, amount0Max The maximum amount of token0 to collect, amount1Max The maximum amount of token1 to collect\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"details\":\"This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\",\"params\":{\"fee\":\"The fee amount of the v3 pool for the specified token pair\",\"sqrtPriceX96\":\"The initial square root price of the pool as a Q64.96 value\",\"token0\":\"The contract address of token0 of the pool\",\"token1\":\"The contract address of token1 of the pool\"},\"returns\":{\"pool\":\"Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary\"}},\"decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))\":{\"params\":{\"params\":\"tokenId The ID of the token for which liquidity is being decreased, amount The amount by which liquidity will be decreased, amount0Min The minimum amount of token0 that should be accounted for the burned liquidity, amount1Min The minimum amount of token1 that should be accounted for the burned liquidity, deadline The time by which the transaction must be included to effect the change\"},\"returns\":{\"amount0\":\"The amount of token0 accounted to the position's tokens owed\",\"amount1\":\"The amount of token1 accounted to the position's tokens owed\"}},\"factory()\":{\"returns\":{\"_0\":\"Returns the address of the Uniswap V3 factory\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))\":{\"params\":{\"params\":\"tokenId The ID of the token for which liquidity is being increased, amount0Desired The desired amount of token0 to be spent, amount1Desired The desired amount of token1 to be spent, amount0Min The minimum amount of token0 to spend, which serves as a slippage check, amount1Min The minimum amount of token1 to spend, which serves as a slippage check, deadline The time by which the transaction must be included to effect the change\"},\"returns\":{\"amount0\":\"The amount of token0 to acheive resulting liquidity\",\"amount1\":\"The amount of token1 to acheive resulting liquidity\",\"liquidity\":\"The new liquidity amount as a result of the increase\"}},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))\":{\"details\":\"Call this when the pool does exist and is initialized. Note that if the pool is created but not initialized a method does not exist, i.e. the pool is assumed to be initialized.\",\"params\":{\"params\":\"The params necessary to mint a position, encoded as `MintParams` in calldata\"},\"returns\":{\"amount0\":\"The amount of token0\",\"amount1\":\"The amount of token1\",\"liquidity\":\"The amount of liquidity for this position\",\"tokenId\":\"The ID of the token that represents the minted position\"}},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"deadline\":\"The deadline timestamp by which the call must be mined for the approve to work\",\"r\":\"Must produce valid secp256k1 signature from the holder along with `v` and `s`\",\"s\":\"Must produce valid secp256k1 signature from the holder along with `r` and `v`\",\"spender\":\"The account that is being approved\",\"tokenId\":\"The ID of the token that is being approved for spending\",\"v\":\"Must produce valid secp256k1 signature from the holder along with `r` and `s`\"}},\"positions(uint256)\":{\"details\":\"Throws if the token ID is not valid.\",\"params\":{\"tokenId\":\"The ID of the token that represents the position\"},\"returns\":{\"fee\":\"The fee associated with the pool\",\"feeGrowthInside0LastX128\":\"The fee growth of token0 as of the last action on the individual position\",\"feeGrowthInside1LastX128\":\"The fee growth of token1 as of the last action on the individual position\",\"liquidity\":\"The liquidity of the position\",\"nonce\":\"The nonce for permits\",\"operator\":\"The address that is approved for spending\",\"tickLower\":\"The lower end of the tick range for the position\",\"tickUpper\":\"The higher end of the tick range for the position\",\"token0\":\"The address of the token0 for a specific pool\",\"token1\":\"The address of the token1 for a specific pool\",\"tokensOwed0\":\"The uncollected amount of token0 owed to the position as of the last computation\",\"tokensOwed1\":\"The uncollected amount of token1 owed to the position as of the last computation\"}},\"refundETH()\":{\"details\":\"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"sweepToken(address,uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing the token from users\",\"params\":{\"amountMinimum\":\"The minimum amount of token required for a transfer\",\"recipient\":\"The destination address of the token\",\"token\":\"The contract address of the token which will be transferred to `recipient`\"}},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"},\"unwrapWETH9(uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\",\"params\":{\"amountMinimum\":\"The minimum amount of WETH9 to unwrap\",\"recipient\":\"The address receiving ETH\"}}},\"title\":\"Non-fungible token for positions\",\"version\":1},\"userdoc\":{\"events\":{\"Collect(uint256,address,uint256,uint256)\":{\"notice\":\"Emitted when tokens are collected for a position NFT\"},\"DecreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is decreased for a position NFT\"},\"IncreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is increased for a position NFT\"}},\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"The domain separator used in the permit signature\"},\"PERMIT_TYPEHASH()\":{\"notice\":\"The permit typehash used in the permit signature\"},\"burn(uint256)\":{\"notice\":\"Burns a token ID, which deletes it from the NFT contract. The token must have 0 liquidity and all tokens must be collected first.\"},\"collect((uint256,address,uint128,uint128))\":{\"notice\":\"Collects up to a maximum amount of fees owed to a specific position to the recipient\"},\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"notice\":\"Creates a new pool if it does not exist, then initializes if not initialized\"},\"decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))\":{\"notice\":\"Decreases the amount of liquidity in a position and accounts it to the position\"},\"increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))\":{\"notice\":\"Increases the amount of liquidity in a position, with tokens paid by the `msg.sender`\"},\"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))\":{\"notice\":\"Creates a new position wrapped in a NFT\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Approve of a specific token ID for spending by spender via signature\"},\"positions(uint256)\":{\"notice\":\"Returns the position information associated with a given token ID.\"},\"refundETH()\":{\"notice\":\"Refunds any ETH balance held by this contract to the `msg.sender`\"},\"sweepToken(address,uint256,address)\":{\"notice\":\"Transfers the full amount of a token held by this contract to recipient\"},\"unwrapWETH9(uint256,address)\":{\"notice\":\"Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\"}},\"notice\":\"Wraps Uniswap V3 positions in a non-fungible token interface which allows for them to be transferred and authorized.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/INonfungiblePositionManager.sol\":\"INonfungiblePositionManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/interfaces/IOldVotingEscrow.sol":{"IOldVotingEscrow":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"locktime","type":"uint256"},{"indexed":false,"internalType":"enum IOldVotingEscrow.DepositType","name":"deposit_type","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"Supply","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"abstain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"attach","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOfNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"detach","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"isApprovedOrOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyWithoutDecay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"voting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"blk","type":"uint256"}],"name":"votingPowerOfAtBlk","outputs":[{"internalType":"uint256","name":"_power","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"votingPowerOfAtTs","outputs":[{"internalType":"uint256","name":"_power","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"abstain(uint256)":"c1f0fb9f","approve(address,uint256)":"095ea7b3","attach(uint256)":"fbd3a29d","balanceOf(address)":"70a08231","balanceOfNFT(uint256)":"e7e242d4","detach(uint256)":"986b7d8a","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isApprovedOrOwner(address,uint256)":"430c2081","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","totalSupply()":"18160ddd","totalSupplyWithoutDecay()":"d490dbca","transferFrom(address,address,uint256)":"23b872dd","voting(uint256)":"fd4a77f1","votingPowerOfAtBlk(address,uint256)":"63083e9b","votingPowerOfAtTs(address,uint256)":"b5c1bb1f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"locktime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IOldVotingEscrow.DepositType\",\"name\":\"deposit_type\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"prevSupply\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"name\":\"Supply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"abstain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"attach\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"balanceOfNFT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"detach\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isApprovedOrOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupplyWithoutDecay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"voting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"name\":\"votingPowerOfAtBlk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"votingPowerOfAtTs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IOldVotingEscrow.sol\":\"IOldVotingEscrow\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/interfaces/IOldVotingEscrow.sol\":{\"keccak256\":\"0x61bba69802290944ff257142964ad303b57a278e543916d9857573a63cdb9db4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d37e163a5d1115e374d95a4bbb8ae7e0b5214e96888f559a3fa0f66d1266359\",\"dweb:/ipfs/QmUaVTGFH3MyMWe1RSUY5TePCKTfKpaxuGNeWJVnuC3GeP\"]}},\"version\":1}"}},"contracts/interfaces/IPendingFeeDistributor.sol":{"IPendingFeeDistributor":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"HistoricRewardPaid","type":"event"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"distribute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"validProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"distribute(uint256,address,uint256,bytes32[])":"4b32102a","validProof(uint256,address,uint256,bytes32[])":"ded42d00"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"}],\"name\":\"HistoricRewardPaid\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"distribute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reward\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"validProof\",\"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/IPendingFeeDistributor.sol\":\"IPendingFeeDistributor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IPendingFeeDistributor.sol\":{\"keccak256\":\"0x55a1ddac4c42df2c1e525c8f759f19fb6b7ed6ffbc1f2336a7925732f6802860\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95c197190a05c8fe1b2ad972ea44ae5d883f9d27c492301396e3426ede7d52f7\",\"dweb:/ipfs/QmSZc5sbVf1StRcez1Pakqbt5C7eA4Xxfx9nbVvvznw7jZ\"]}},\"version\":1}"}},"contracts/interfaces/IRegistry.sol":{"IRegistry":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"EmissionControllerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"GovernorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"LockerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"MahaChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"StakerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whom","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"},{"indexed":false,"internalType":"address","name":"_new","type":"address"}],"name":"VoterChanged","type":"event"},{"inputs":[],"name":"emissionController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ensureNotPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gaugeVoter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllAddresses","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"locker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maha","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setEmissionController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setLocker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setMAHA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"emissionController()":"6dee2012","ensureNotPaused()":"f9fa2123","gaugeVoter()":"81ca29a1","getAllAddresses()":"9516a104","getRoleAdmin(bytes32)":"248a9ca3","governor()":"0c340a24","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","locker()":"d7b96d4e","maha()":"3de00c36","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setEmissionController(address)":"b641522e","setGovernor(address)":"c42cf535","setLocker(address)":"171060ec","setMAHA(address)":"be21c026","setStaker(address)":"a29a43bb","setVoter(address)":"4bc2a657","staker()":"5ebaf1db"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"EmissionControllerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"GovernorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"LockerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"MahaChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"StakerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whom\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_old\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"VoterChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"emissionController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ensureNotPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gaugeVoter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"locker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maha\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setEmissionController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setGovernor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setLocker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setMAHA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_new\",\"type\":\"address\"}],\"name\":\"setVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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\":{\"contracts/interfaces/IRegistry.sol\":\"IRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]}},\"version\":1}"}},"contracts/interfaces/IStakingChild.sol":{"IStakingChild":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"changeRewardsDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"changeStakingCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"changeStakingMaster","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"getRewardFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"refundTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerToken","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":"who","type":"address"}],"name":"updateReward","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address)":"70a08231","changeRewardsDuration(uint256)":"886d057d","changeStakingCollector(address)":"e52390f0","changeStakingMaster(address)":"b69f1faa","earned(address)":"008cc262","getRewardFor(address)":"055de275","getRewardForDuration()":"1c1f78eb","lastTimeRewardApplicable()":"80faa57d","notifyRewardAmount(uint256)":"3c6b16ab","refundTokens(address)":"455ca9bd","rewardPerToken()":"cd3daf9d","totalSupply()":"18160ddd","updateReward(address)":"632447c9"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"changeRewardsDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"changeStakingCollector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"changeStakingMaster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"earned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"getRewardFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRewardForDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"refundTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerToken\",\"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\":\"who\",\"type\":\"address\"}],\"name\":\"updateReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IStakingChild.sol\":\"IStakingChild\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IStakingChild.sol\":{\"keccak256\":\"0xef2f28b0efd8c8f1e0b60ecc861405ba6575d6aeaea1a4c040c25cee8c7126cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a80c80455c97bf20b0375a1e6243cb704bc2168e97fe392699b86584bf87dc0\",\"dweb:/ipfs/QmZ8HmBB65mQQP2SPd5QzrxMfg8rGWAHSjem5ra7JMaDbr\"]}},\"version\":1}"}},"contracts/interfaces/IStakingCollector.sol":{"IStakingCollector":{"abi":[{"inputs":[],"name":"callable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpochPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"step","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"callable()":"6a2ab602","getCurrentEpoch()":"b97dd9e2","getLastEpoch()":"398bac63","getNextEpoch()":"efe97d05","getPeriod()":"1ed24195","getStartTime()":"c828371e","nextEpochPoint()":"c5967c26","step()":"e25fe175"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"callable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochPoint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IStakingCollector.sol\":\"IStakingCollector\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]},\"contracts/interfaces/IStakingCollector.sol\":{\"keccak256\":\"0x3b5b1966775bd2972b3bd428ff50b62fd37441842d8ad88c4813570e5ffa97af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05d1fd406624f71448c0bdfdbc928348d5aed50d608fb62f9254fc1d9b2bbab9\",\"dweb:/ipfs/QmSZ6ZJLkcqqvVUzsFaYqj3rJ71M9SKHNtNRHcuPPZWuW4\"]}},\"version\":1}"}},"contracts/interfaces/IStakingMaster.sol":{"IStakingMaster":{"abi":[{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"addPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"pools","type":"address[]"}],"name":"addPools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"refundTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_escrow","type":"address"}],"name":"setVotingEscrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"updateRewardFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"whom","type":"address[]"}],"name":"updateRewardForMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addPool(address)":"d914cd4b","addPools(address[])":"b36a4ab1","balanceOf(address)":"70a08231","getReward()":"3d18b912","refundTokens(address)":"455ca9bd","setVotingEscrow(address)":"ce5ec92e","totalSupply()":"18160ddd","updateRewardFor(address)":"81b72684","updateRewardForMultiple(address[])":"db7f901f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"addPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"pools\",\"type\":\"address[]\"}],\"name\":\"addPools\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"refundTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_escrow\",\"type\":\"address\"}],\"name\":\"setVotingEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"updateRewardFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"whom\",\"type\":\"address[]\"}],\"name\":\"updateRewardForMultiple\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IStakingMaster.sol\":\"IStakingMaster\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IStakingMaster.sol\":{\"keccak256\":\"0x9519b92abcb7d56384b042b7686bfcb7fe6026f864ac0fc53c960bdb73acc69c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4b2ce00e553458de29ae77cf758d06c1162f0554137bc0f78abe33a35cf0191\",\"dweb:/ipfs/QmZjsYViVjQXr7qknUG35Zt4Txw2YmZPY8a3mRuqCmoSKi\"]}},\"version\":1}"}},"contracts/interfaces/ITokenURIGenerator.sol":{"ITokenURIGenerator":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"tokenURI(uint256)":"c87b56dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITokenURIGenerator.sol\":\"ITokenURIGenerator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ITokenURIGenerator.sol\":{\"keccak256\":\"0x0f72861fd31dfdee12160368e5a801020f679e433ceb4686376ef446e4032777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7bd5d3a2e68f296237033b91dca4212b81e32bda249a4f4dccada4174bcd2bf\",\"dweb:/ipfs/QmX8hdt5rTyTqbVCrX54K1Vur46M9VsyfxmDUB4vH71QEZ\"]}},\"version\":1}"}},"contracts/interfaces/IUniswapV2Pair.sol":{"IUniswapV2Pair":{"abi":[{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"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"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"factory()":"c45a0155","token0()":"0dfe1681","token1()":"d21220a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2Pair.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0xf96e272aaab4fa44e2c24916b9f6cc4e648962b4adf7ffd597b67d77168f0333\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb1b26c74a947eda590a3129b42c8aaaa124f4a781f4d3c2b35f043772193ffe\",\"dweb:/ipfs/QmUcNrUgiPFUBr6ZcGRyh4KgEx7eMRSi5ESJFVLyLtd4nA\"]}},\"version\":1}"}},"contracts/interfaces/IUniswapV3Staker.sol":{"IUniswapV3Staker":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"IncentiveCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"}],"name":"TokenStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TokenUnstaked","type":"event"},{"inputs":[{"internalType":"address","name":"depositOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimReward","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"to","type":"address"}],"name":"claimRewards","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"deposits","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incentives","outputs":[{"internalType":"uint256","name":"totalRewardUnclaimed","type":"uint256"},{"internalType":"uint160","name":"totalSecondsClaimedX128","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"isIdsWithinRange","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"left","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"rewardsOwed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"stakes","outputs":[{"internalType":"uint160","name":"secondsPerLiquidityInsideInitialX128","type":"uint160"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","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":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address)":"70a08231","claimReward(uint256,address)":"e70eb392","claimRewards(uint256[],address)":"0520537f","deposits(uint256)":"b02c43d0","factory()":"c45a0155","incentives()":"0d5df7ba","isIdsWithinRange(uint256[])":"0b9cc5fd","left(address)":"99bcc052","multicall(bytes[])":"ac9650d8","nonfungiblePositionManager()":"b44a2722","notifyRewardAmount(address,uint256)":"b66503cf","onERC721Received(address,address,uint256,bytes)":"150b7a02","rewards(address)":"0700037d","stakes(uint256)":"d5a44f86","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","withdrawToken(uint256)":"50baa622"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"IncentiveCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"}],\"name\":\"TokenStaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUnstaked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositOwner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"claimRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incentives\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalRewardUnclaimed\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"totalSecondsClaimedX128\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"isIdsWithinRange\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"left\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonfungiblePositionManager\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rewardsOwed\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"stakes\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideInitialX128\",\"type\":\"uint160\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"IncentiveCreated(address,uint256,uint256,uint256)\":{\"params\":{\"endTime\":\"The time when rewards stop accruing\",\"pool\":\"The Uniswap V3 pool\",\"reward\":\"The amount of reward tokens to be distributed\",\"startTime\":\"The time when the incentive program begins\"}},\"RewardClaimed(address,uint256)\":{\"params\":{\"reward\":\"The amount of reward tokens claimed\",\"to\":\"The address where claimed rewards were sent to\"}},\"TokenStaked(uint256,uint128)\":{\"params\":{\"liquidity\":\"The amount of liquidity staked\",\"tokenId\":\"The unique identifier of an Uniswap V3 LP token\"}},\"TokenUnstaked(uint256)\":{\"params\":{\"tokenId\":\"The unique identifier of an Uniswap V3 LP token\"}}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address)\":{\"params\":{\"depositOwner\":\"The owner of the deposited NFT\"},\"returns\":{\"_0\":\"uint256 The current no of nfts deposited by owner.\"}},\"claimReward(uint256,address)\":{\"params\":{\"to\":\"The address where claimed rewards will be sent to\",\"tokenId\":\"The ID of the token\"},\"returns\":{\"reward\":\"The amount of reward tokens claimed\"}},\"claimRewards(uint256[],address)\":{\"params\":{\"to\":\"The address where claimed rewards will be sent to\",\"tokenIds\":\"The IDs of the token\"},\"returns\":{\"reward\":\"The amount of reward tokens claimed\"}},\"deposits(uint256)\":{\"returns\":{\"owner\":\"The owner of the deposited NFT\",\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"}},\"incentives()\":{\"returns\":{\"totalRewardUnclaimed\":\"The amount of reward token not yet claimed by users\",\"totalSecondsClaimedX128\":\"Total liquidity-seconds claimed, represented as a UQ32.128\"}},\"multicall(bytes[])\":{\"details\":\"The `msg.value` should not be trusted for any method callable from multicall.\",\"params\":{\"data\":\"The encoded function data for each of the calls to make to this contract\"},\"returns\":{\"results\":\"The results from each of the calls passed in via data\"}},\"notifyRewardAmount(address,uint256)\":{\"params\":{\"reward\":\"The amount of reward tokens to be distributed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"},\"rewards(address)\":{\"params\":{\"owner\":\"The owner for which the rewards owed are checked\"},\"returns\":{\"rewardsOwed\":\"The amount of the reward token claimable by the owner\"}},\"stakes(uint256)\":{\"params\":{\"tokenId\":\"The ID of the staked token\"},\"returns\":{\"liquidity\":\"The amount of liquidity in the NFT as of the last time the rewards were computed\",\"secondsPerLiquidityInsideInitialX128\":\"secondsPerLiquidity represented as a UQ32.128\"}},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"withdrawToken(uint256)\":{\"params\":{\"tokenId\":\"The ID of the token\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncentiveCreated(address,uint256,uint256,uint256)\":{\"notice\":\"Event emitted when a liquidity mining incentive has been created\"},\"RewardClaimed(address,uint256)\":{\"notice\":\"Event emitted when a reward token has been claimed\"},\"TokenStaked(uint256,uint128)\":{\"notice\":\"Event emitted when a Uniswap V3 LP token has been staked\"},\"TokenUnstaked(uint256)\":{\"notice\":\"Event emitted when a Uniswap V3 LP token has been unstaked\"}},\"kind\":\"user\",\"methods\":{\"balanceOf(address)\":{\"notice\":\"Returns information about a deposited NFT\"},\"deposits(uint256)\":{\"notice\":\"Returns information about a deposited NFT\"},\"factory()\":{\"notice\":\"The Uniswap V3 Factory\"},\"incentives()\":{\"notice\":\"Represents a staking incentive\"},\"isIdsWithinRange(uint256[])\":{\"notice\":\"checks if the given LP token ids are within their given liquidaty range or not\"},\"multicall(bytes[])\":{\"notice\":\"Call multiple functions in the current contract and return the data from all of them if they all succeed\"},\"nonfungiblePositionManager()\":{\"notice\":\"The nonfungible position manager with which this staking contract is compatible\"},\"notifyRewardAmount(address,uint256)\":{\"notice\":\"Creates a new liquidity mining incentive program\"},\"rewards(address)\":{\"notice\":\"Returns amounts of reward tokens owed to a given address according to the last time all stakes were updated\"},\"stakes(uint256)\":{\"notice\":\"Returns information about a staked liquidity NFT\"},\"withdrawToken(uint256)\":{\"notice\":\"Withdraws a Uniswap V3 LP token `tokenId` from this contract to the recipient `to`\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV3Staker.sol\":\"IUniswapV3Staker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/interfaces/IMulticall.sol\":{\"keccak256\":\"0x5ac8732c889e0b3f3f4d37d12d50b10c4a55a365433134ded9fbd39dc68cde69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://17d6288af42560f49758c883416a42473dbcafd77efc3736dd54d27df34b6550\",\"dweb:/ipfs/QmPqduaQPYYx1FsCtzQqgkc44sEK7GkWySiYP2cYvrzUfv\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/interfaces/IUniswapV3Staker.sol\":{\"keccak256\":\"0x9613c67c55ab1c16862f50b7f60ea02d5d1da62dc3cf9e8d14464a176bff1f86\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e891b8daddaa7ac7723c24e0c6f2ebf11af12c0991e1acaa53daeef745b1b5ff\",\"dweb:/ipfs/QmeFnFWi7dGbsCr9uCReVhsQfUSAXNwFueNjoZZbGKnxvz\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/interfaces/IWETH.sol":{"IWETH":{"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":"deposit","outputs":[],"stateMutability":"payable","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":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","deposit()":"d0e30db0","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"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\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{\"contracts/interfaces/IWETH.sol\":\"IWETH\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/interfaces/IWETH.sol\":{\"keccak256\":\"0x8866c1b2c0dab2030af62cf694190305305258d10e4ffbf3ff33a05458a0d237\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d82aa3ba46bcaad88ec8b8d6d4f9a84807e01ce8f65a628df26430cd479129f2\",\"dweb:/ipfs/QmY5umCX9GputRtW58dXEyeRLCPojaneNWHTi2nELzmouo\"]}},\"version\":1}"}},"contracts/interfaces/KeeperCompatibleInterface.sol":{"KeeperCompatibleInterface":{"abi":[{"inputs":[{"internalType":"bytes","name":"checkData","type":"bytes"}],"name":"checkUpkeep","outputs":[{"internalType":"bool","name":"upkeepNeeded","type":"bool"},{"internalType":"bytes","name":"performData","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"performData","type":"bytes"}],"name":"performUpkeep","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"checkUpkeep(bytes)":"6e04ff0d","performUpkeep(bytes)":"4585e33b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"checkData\",\"type\":\"bytes\"}],\"name\":\"checkUpkeep\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"upkeepNeeded\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"performData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"performData\",\"type\":\"bytes\"}],\"name\":\"performUpkeep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"checkUpkeep(bytes)\":{\"details\":\"To ensure that it is never called, you may want to add the cannotExecute modifier from KeeperBase to your implementation of this method.\",\"params\":{\"checkData\":\"specified in the upkeep registration so it is always the same for a registered upkeep. This can easily be broken down into specific arguments using `abi.decode`, so multiple upkeeps can be registered on the same contract and easily differentiated by the contract.\"},\"returns\":{\"performData\":\"bytes that the keeper should call performUpkeep with, if upkeep is needed. If you would like to encode data to decode later, try `abi.encode`.\",\"upkeepNeeded\":\"boolean to indicate whether the keeper should call performUpkeep or not.\"}},\"performUpkeep(bytes)\":{\"details\":\"The input to this method should not be trusted, and the caller of the method should not even be restricted to any single registry. Anyone should be able call it, and the input should be validated, there is no guarantee that the data passed in is the performData returned from checkUpkeep. This could happen due to malicious keepers, racing keepers, or simply a state change while the performUpkeep transaction is waiting for confirmation. Always validate the data passed in.\",\"params\":{\"performData\":\"is the data which was passed back from the checkData simulation. If it is encoded, it can easily be decoded into other types by calling `abi.decode`. This data should not be trusted, and should be validated against the contract's current state.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"checkUpkeep(bytes)\":{\"notice\":\"method that is simulated by the keepers to see if any work actually needs to be performed. This method does does not actually need to be executable, and since it is only ever simulated it can consume lots of gas.\"},\"performUpkeep(bytes)\":{\"notice\":\"method that is actually executed by the keepers, via the registry. The data returned by the checkUpkeep simulation will be passed into this method to actually be executed.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/KeeperCompatibleInterface.sol\":\"KeeperCompatibleInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/KeeperCompatibleInterface.sol\":{\"keccak256\":\"0xd01541bff925ba14b83a37a3ab6ea20329125fe2d71a7e28afc46a9791530f0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://688f76eedb1a50c6de88bdb306c2c04a0883fa29f1ea47de7e4e51a8c5831ed7\",\"dweb:/ipfs/QmdLrXmwGrPAJXQnXasBZFwxAP7BTq5WgDtYhmaJ1nfubW\"]}},\"version\":1}"}},"contracts/referrals/MAHAReferralV1.sol":{"MAHAReferralV1":{"abi":[{"inputs":[{"internalType":"contract INFTLocker","name":"_locker","type":"address"},{"internalType":"contract IERC20","name":"_maha","type":"address"},{"internalType":"uint256","name":"_minLockDuration","type":"uint256"}],"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":true,"internalType":"address","name":"referral","type":"address"},{"indexed":false,"internalType":"uint256","name":"amt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"mahax","type":"uint256"}],"name":"ReferralPaid","type":"event"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"},{"internalType":"bool","name":"_stakeNFT","type":"bool"},{"internalType":"address","name":"referral","type":"address"}],"name":"createLockWithReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"locker","outputs":[{"internalType":"contract INFTLocker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maha","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minLockDuration","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":"referralDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minLockDuration","type":"uint256"},{"internalType":"uint256","name":"_referralDenominator","type":"uint256"}],"name":"setParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1333:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"92:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"138:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"155:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"140:6:139"},"nodeType":"YulFunctionCall","src":"140:22:139"},"nodeType":"YulExpressionStatement","src":"140:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"113:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"122:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"109:3:139"},"nodeType":"YulFunctionCall","src":"109:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"134:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"105:3:139"},"nodeType":"YulFunctionCall","src":"105:32:139"},"nodeType":"YulIf","src":"102:2:139"},{"nodeType":"YulVariableDeclaration","src":"173:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"192:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"186:5:139"},"nodeType":"YulFunctionCall","src":"186:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"177:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"255:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"264:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"272:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"257:6:139"},"nodeType":"YulFunctionCall","src":"257:22:139"},"nodeType":"YulExpressionStatement","src":"257:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"245:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"238:6:139"},"nodeType":"YulFunctionCall","src":"238:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"231:6:139"},"nodeType":"YulFunctionCall","src":"231:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"221:2:139"},"nodeType":"YulFunctionCall","src":"221:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"214:6:139"},"nodeType":"YulFunctionCall","src":"214:40:139"},"nodeType":"YulIf","src":"211:2:139"},{"nodeType":"YulAssignment","src":"290:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"300:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"290:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"58:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"69:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"81:6:139","type":""}],"src":"14:297:139"},{"body":{"nodeType":"YulBlock","src":"466:357:139","statements":[{"body":{"nodeType":"YulBlock","src":"512:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"521:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"529:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"514:6:139"},"nodeType":"YulFunctionCall","src":"514:22:139"},"nodeType":"YulExpressionStatement","src":"514:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"487:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"496:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"483:3:139"},"nodeType":"YulFunctionCall","src":"483:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"508:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"479:3:139"},"nodeType":"YulFunctionCall","src":"479:32:139"},"nodeType":"YulIf","src":"476:2:139"},{"nodeType":"YulVariableDeclaration","src":"547:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"560:5:139"},"nodeType":"YulFunctionCall","src":"560:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"551:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"618:5:139"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"585:32:139"},"nodeType":"YulFunctionCall","src":"585:39:139"},"nodeType":"YulExpressionStatement","src":"585:39:139"},{"nodeType":"YulAssignment","src":"633:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"643:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"633:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"657:40:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"682:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"693:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"678:3:139"},"nodeType":"YulFunctionCall","src":"678:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"672:5:139"},"nodeType":"YulFunctionCall","src":"672:25:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"661:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"739:7:139"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"706:32:139"},"nodeType":"YulFunctionCall","src":"706:41:139"},"nodeType":"YulExpressionStatement","src":"706:41:139"},{"nodeType":"YulAssignment","src":"756:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"766:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"756:6:139"}]},{"nodeType":"YulAssignment","src":"782:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"813:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"798:3:139"},"nodeType":"YulFunctionCall","src":"798:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"792:5:139"},"nodeType":"YulFunctionCall","src":"792:25:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"782:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_INFTLocker_$34923t_contract$_IERC20_$5767t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"416:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"427:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"439:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"447:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"455:6:139","type":""}],"src":"316:507:139"},{"body":{"nodeType":"YulBlock","src":"1042:145:139","statements":[{"nodeType":"YulAssignment","src":"1052:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1064:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1075:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1060:3:139"},"nodeType":"YulFunctionCall","src":"1060:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1052:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1094:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1125:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1130:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1121:3:139"},"nodeType":"YulFunctionCall","src":"1121:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1134:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1117:3:139"},"nodeType":"YulFunctionCall","src":"1117:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1105:3:139"},"nodeType":"YulFunctionCall","src":"1105:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1087:6:139"},"nodeType":"YulFunctionCall","src":"1087:51:139"},"nodeType":"YulExpressionStatement","src":"1087:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1158:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1169:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1154:3:139"},"nodeType":"YulFunctionCall","src":"1154:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1174:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1147:6:139"},"nodeType":"YulFunctionCall","src":"1147:34:139"},"nodeType":"YulExpressionStatement","src":"1147:34:139"}]},"name":"abi_encode_tuple_t_address_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1003:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1014:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1022:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1033:4:139","type":""}],"src":"828:359:139"},{"body":{"nodeType":"YulBlock","src":"1245:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"1309:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1318:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1321:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1311:6:139"},"nodeType":"YulFunctionCall","src":"1311:12:139"},"nodeType":"YulExpressionStatement","src":"1311:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1268:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1279:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1294:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1299:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1290:3:139"},"nodeType":"YulFunctionCall","src":"1290:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1303:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1286:3:139"},"nodeType":"YulFunctionCall","src":"1286:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1275:3:139"},"nodeType":"YulFunctionCall","src":"1275:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1265:2:139"},"nodeType":"YulFunctionCall","src":"1265:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1258:6:139"},"nodeType":"YulFunctionCall","src":"1258:50:139"},"nodeType":"YulIf","src":"1255:2:139"}]},"name":"validator_revert_contract_IERC20","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1234:5:139","type":""}],"src":"1192:139:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_INFTLocker_$34923t_contract$_IERC20_$5767t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n        let value := mload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IERC20(value_1)\n        value1 := value_1\n        value2 := mload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_address_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function validator_revert_contract_IERC20(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600a60045534801561001557600080fd5b50604051610a27380380610a278339810160408190526100349161017e565b61003d33610107565b600180546001600160a01b03199081166001600160a01b0386811691821790935560028054909216928516928317909155600383905560405163095ea7b360e01b81526004810191909152600019602482015263095ea7b390604401602060405180830381600087803b1580156100b357600080fd5b505af11580156100c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100eb9190610157565b5050600580546001600160a01b03191630179055506101d89050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610168578081fd5b81518015158114610177578182fd5b9392505050565b600080600060608486031215610192578182fd5b835161019d816101c0565b60208501519093506101ae816101c0565b80925050604084015190509250925092565b6001600160a01b03811681146101d557600080fd5b50565b610840806101e76000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610104578063c0324c7714610115578063d6a298e914610128578063d7b96d4e14610131578063f2fde38b1461014457600080fd5b80630cbc9527146100a3578063205765cc146100bf5780633de00c36146100d4578063590e1ae3146100f4578063715018a6146100fc575b600080fd5b6100ac60045481565b6040519081526020015b60405180910390f35b6100d26100cd366004610781565b610157565b005b6002546100e7906001600160a01b031681565b6040516100b691906107c8565b6100d2610490565b6100d26105a3565b6000546001600160a01b03166100e7565b6100d2610123366004610760565b6105b7565b6100ac60035481565b6001546100e7906001600160a01b031681565b6100d261015236600461070b565b6105ca565b6002546005546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018790529116906323b872dd90606401602060405180830381600087803b1580156101ad57600080fd5b505af11580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e5919061072c565b50600154604051630a2abdb360e01b8152600481018690526024810185905233604482015283151560648201526000916001600160a01b031690630a2abdb390608401602060405180830381600087803b15801561024257600080fd5b505af1158015610256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027a9190610748565b90506003548411801561029557506001600160a01b03821615155b15610489576001546040516339f890b560e21b8152600481018390526000916001600160a01b03169063e7e242d49060240160206040518083038186803b1580156102df57600080fd5b505afa1580156102f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103179190610748565b905060006004548261032991906107dc565b6002546005546040516370a0823160e01b815292935083926001600160a01b03928316926370a0823192610362929116906004016107c8565b60206040518083038186803b15801561037a57600080fd5b505afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b29190610748565b11156104865760025460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561040657600080fd5b505af115801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e919061072c565b50604080518281526020810184905233916001600160a01b038716917f65db98422e8b7340e0d6dfa99bbadd4ba95a51fefafd8f0e1cbbb2e819429a42910160405180910390a35b50505b5050505050565b610498610645565b6002546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906104d29030906004016107c8565b60206040518083038186803b1580156104ea57600080fd5b505afa1580156104fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105229190610748565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561056857600080fd5b505af115801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a0919061072c565b50565b6105ab610645565b6105b5600061069f565b565b6105bf610645565b600391909155600455565b6105d2610645565b6001600160a01b03811661063c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6105a08161069f565b6000546001600160a01b031633146105b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610633565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461070657600080fd5b919050565b60006020828403121561071c578081fd5b610725826106ef565b9392505050565b60006020828403121561073d578081fd5b8151610725816107fc565b600060208284031215610759578081fd5b5051919050565b60008060408385031215610772578081fd5b50508035926020909101359150565b60008060008060808587031215610796578182fd5b843593506020850135925060408501356107af816107fc565b91506107bd606086016106ef565b905092959194509250565b6001600160a01b0391909116815260200190565b6000826107f757634e487b7160e01b81526012600452602481fd5b500490565b80151581146105a057600080fdfea2646970667358221220a4fd7568481f41a86f7bcd81da5f097bc4640b6519a6cec7df18d8209454724f64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA27 CODESIZE SUB DUP1 PUSH2 0xA27 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x34 SWAP2 PUSH2 0x17E JUMP JUMPDEST PUSH2 0x3D CALLER PUSH2 0x107 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP4 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 DUP6 AND SWAP3 DUP4 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 NOT PUSH1 0x24 DUP3 ADD MSTORE PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0x157 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND ADDRESS OR SWAP1 SSTORE POP PUSH2 0x1D8 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x168 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x177 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x192 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x19D DUP2 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x1AE DUP2 PUSH2 0x1C0 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x840 DUP1 PUSH2 0x1E7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0xC0324C77 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0xD6A298E9 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xD7B96D4E EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBC9527 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x205765CC EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x590E1AE3 EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD2 PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x157 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xE7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB6 SWAP2 SWAP1 PUSH2 0x7C8 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x490 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE7 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x123 CALLDATASIZE PUSH1 0x4 PUSH2 0x760 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST PUSH2 0xAC PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xE7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x72C JUMP JUMPDEST POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA2ABDB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE CALLER PUSH1 0x44 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA2ABDB3 SWAP1 PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x256 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27A SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD DUP5 GT DUP1 ISZERO PUSH2 0x295 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x489 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x39F890B5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE7E242D4 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x317 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x4 SLOAD DUP3 PUSH2 0x329 SWAP2 SWAP1 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP4 POP DUP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x70A08231 SWAP3 PUSH2 0x362 SWAP3 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3B2 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST GT ISZERO PUSH2 0x486 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x72C JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP2 PUSH32 0x65DB98422E8B7340E0D6DFA99BBADD4BA95A51FEFAFD8F0E1CBBB2E819429A42 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x498 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x4D2 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x57C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5A0 SWAP2 SWAP1 PUSH2 0x72C JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5AB PUSH2 0x645 JUMP JUMPDEST PUSH2 0x5B5 PUSH1 0x0 PUSH2 0x69F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x5BF PUSH2 0x645 JUMP JUMPDEST PUSH1 0x3 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x63C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5A0 DUP2 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x633 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x71C JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x725 DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x73D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x725 DUP2 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x759 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x772 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x796 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x7AF DUP2 PUSH2 0x7FC JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x60 DUP7 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x7F7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x5A0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG4 REVERT PUSH22 0x68481F41A86F7BCD81DA5F097BC4640B6519A6CEC7DF XOR 0xD8 KECCAK256 SWAP5 SLOAD PUSH19 0x4F64736F6C6343000804003300000000000000 ","sourceMap":"253:1844:122:-:0;;;421:2;384:39;;593:372;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:38;936:18:4;:32::i;:::-;705:6:122;:16;;-1:-1:-1;;;;;;705:16:122;;;-1:-1:-1;;;;;705:16:122;;;;;;;;;731:4;:12;;;;;;;;;;;;;;753:15;:34;;;798:131;;-1:-1:-1;;;798:131:122;;;;;1087:51:139;;;;-1:-1:-1;;1154:18:139;;;1147:34;798:12:122;;1060:18:139;;798:131:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;940:2:122;:18;;-1:-1:-1;;;;;;940:18:122;953:4;940:18;;;-1:-1:-1;253:1844:122;;-1:-1:-1;253:1844:122;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;14:297:139:-;81:6;134:2;122:9;113:7;109:23;105:32;102:2;;;155:6;147;140:22;102:2;192:9;186:16;245:5;238:13;231:21;224:5;221:32;211:2;;272:6;264;257:22;211:2;300:5;92:219;-1:-1:-1;;;92:219:139:o;316:507::-;439:6;447;455;508:2;496:9;487:7;483:23;479:32;476:2;;;529:6;521;514:22;476:2;566:9;560:16;585:39;618:5;585:39;:::i;:::-;693:2;678:18;;672:25;643:5;;-1:-1:-1;706:41:139;672:25;706:41;:::i;:::-;766:7;756:17;;;813:2;802:9;798:18;792:25;782:35;;466:357;;;;;:::o;1192:139::-;-1:-1:-1;;;;;1275:31:139;;1265:42;;1255:2;;1321:1;1318;1311:12;1255:2;1245:86;:::o;:::-;253:1844:122;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4877:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"262:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:139"},"nodeType":"YulFunctionCall","src":"310:22:139"},"nodeType":"YulExpressionStatement","src":"310:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:139"},"nodeType":"YulFunctionCall","src":"279:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:139"},"nodeType":"YulFunctionCall","src":"275:32:139"},"nodeType":"YulIf","src":"272:2:139"},{"nodeType":"YulAssignment","src":"343:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:139"},"nodeType":"YulFunctionCall","src":"353:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:139","type":""}],"src":"192:196:139"},{"body":{"nodeType":"YulBlock","src":"471:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"517:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"526:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"534:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:139"},"nodeType":"YulFunctionCall","src":"519:22:139"},"nodeType":"YulExpressionStatement","src":"519:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"492:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"501:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"488:3:139"},"nodeType":"YulFunctionCall","src":"488:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"513:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"484:3:139"},"nodeType":"YulFunctionCall","src":"484:32:139"},"nodeType":"YulIf","src":"481:2:139"},{"nodeType":"YulVariableDeclaration","src":"552:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"565:5:139"},"nodeType":"YulFunctionCall","src":"565:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"556:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"612:5:139"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"590:21:139"},"nodeType":"YulFunctionCall","src":"590:28:139"},"nodeType":"YulExpressionStatement","src":"590:28:139"},{"nodeType":"YulAssignment","src":"627:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"637:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"627:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"437:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"448:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"460:6:139","type":""}],"src":"393:255:139"},{"body":{"nodeType":"YulBlock","src":"734:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"780:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"789:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"797:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"782:6:139"},"nodeType":"YulFunctionCall","src":"782:22:139"},"nodeType":"YulExpressionStatement","src":"782:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"755:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"764:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"751:3:139"},"nodeType":"YulFunctionCall","src":"751:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"776:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"747:3:139"},"nodeType":"YulFunctionCall","src":"747:32:139"},"nodeType":"YulIf","src":"744:2:139"},{"nodeType":"YulAssignment","src":"815:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"831:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"825:5:139"},"nodeType":"YulFunctionCall","src":"825:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"815:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"700:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"711:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"723:6:139","type":""}],"src":"653:194:139"},{"body":{"nodeType":"YulBlock","src":"939:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"985:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"994:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1002:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"987:6:139"},"nodeType":"YulFunctionCall","src":"987:22:139"},"nodeType":"YulExpressionStatement","src":"987:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"960:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"969:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"956:3:139"},"nodeType":"YulFunctionCall","src":"956:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"981:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"952:3:139"},"nodeType":"YulFunctionCall","src":"952:32:139"},"nodeType":"YulIf","src":"949:2:139"},{"nodeType":"YulAssignment","src":"1020:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1043:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1030:12:139"},"nodeType":"YulFunctionCall","src":"1030:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1020:6:139"}]},{"nodeType":"YulAssignment","src":"1062:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:139"},"nodeType":"YulFunctionCall","src":"1085:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1072:12:139"},"nodeType":"YulFunctionCall","src":"1072:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1062:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"897:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"908:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"920:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"928:6:139","type":""}],"src":"852:258:139"},{"body":{"nodeType":"YulBlock","src":"1233:344:139","statements":[{"body":{"nodeType":"YulBlock","src":"1280:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1289:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"1297:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1282:6:139"},"nodeType":"YulFunctionCall","src":"1282:22:139"},"nodeType":"YulExpressionStatement","src":"1282:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1254:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1263:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1250:3:139"},"nodeType":"YulFunctionCall","src":"1250:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1275:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1246:3:139"},"nodeType":"YulFunctionCall","src":"1246:33:139"},"nodeType":"YulIf","src":"1243:2:139"},{"nodeType":"YulAssignment","src":"1315:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1338:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1325:12:139"},"nodeType":"YulFunctionCall","src":"1325:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1315:6:139"}]},{"nodeType":"YulAssignment","src":"1357:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1384:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1395:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1380:3:139"},"nodeType":"YulFunctionCall","src":"1380:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1367:12:139"},"nodeType":"YulFunctionCall","src":"1367:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1357:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1408:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1438:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1449:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1434:3:139"},"nodeType":"YulFunctionCall","src":"1434:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1421:12:139"},"nodeType":"YulFunctionCall","src":"1421:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1412:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1484:5:139"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"1462:21:139"},"nodeType":"YulFunctionCall","src":"1462:28:139"},"nodeType":"YulExpressionStatement","src":"1462:28:139"},{"nodeType":"YulAssignment","src":"1499:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1509:5:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1499:6:139"}]},{"nodeType":"YulAssignment","src":"1523:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1556:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1567:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1552:3:139"},"nodeType":"YulFunctionCall","src":"1552:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1533:18:139"},"nodeType":"YulFunctionCall","src":"1533:38:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1523:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_boolt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1175:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1186:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1198:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1206:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1214:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1222:6:139","type":""}],"src":"1115:462:139"},{"body":{"nodeType":"YulBlock","src":"1683:102:139","statements":[{"nodeType":"YulAssignment","src":"1693:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1705:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1716:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1701:3:139"},"nodeType":"YulFunctionCall","src":"1701:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1693:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1735:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1750:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1766:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1771:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1762:3:139"},"nodeType":"YulFunctionCall","src":"1762:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1775:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1758:3:139"},"nodeType":"YulFunctionCall","src":"1758:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1746:3:139"},"nodeType":"YulFunctionCall","src":"1746:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1728:6:139"},"nodeType":"YulFunctionCall","src":"1728:51:139"},"nodeType":"YulExpressionStatement","src":"1728:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1652:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1663:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1674:4:139","type":""}],"src":"1582:203:139"},{"body":{"nodeType":"YulBlock","src":"1947:218:139","statements":[{"nodeType":"YulAssignment","src":"1957:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:139"},"nodeType":"YulFunctionCall","src":"1965:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1957:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"1992:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2010:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2015:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2006:3:139"},"nodeType":"YulFunctionCall","src":"2006:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2019:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2002:3:139"},"nodeType":"YulFunctionCall","src":"2002:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1996:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2037:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2052:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2060:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2048:3:139"},"nodeType":"YulFunctionCall","src":"2048:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2030:6:139"},"nodeType":"YulFunctionCall","src":"2030:34:139"},"nodeType":"YulExpressionStatement","src":"2030:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2084:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2095:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2080:3:139"},"nodeType":"YulFunctionCall","src":"2080:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2104:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2112:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2100:3:139"},"nodeType":"YulFunctionCall","src":"2100:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2073:6:139"},"nodeType":"YulFunctionCall","src":"2073:43:139"},"nodeType":"YulExpressionStatement","src":"2073:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2136:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2147:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2132:3:139"},"nodeType":"YulFunctionCall","src":"2132:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"2152:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2125:6:139"},"nodeType":"YulFunctionCall","src":"2125:34:139"},"nodeType":"YulExpressionStatement","src":"2125:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1900:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1911:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1919:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1927:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1938:4:139","type":""}],"src":"1790:375:139"},{"body":{"nodeType":"YulBlock","src":"2299:145:139","statements":[{"nodeType":"YulAssignment","src":"2309:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2321:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2332:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2317:3:139"},"nodeType":"YulFunctionCall","src":"2317:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2309:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2351:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2366:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2382:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2387:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2378:3:139"},"nodeType":"YulFunctionCall","src":"2378:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2391:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2374:3:139"},"nodeType":"YulFunctionCall","src":"2374:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2362:3:139"},"nodeType":"YulFunctionCall","src":"2362:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2344:6:139"},"nodeType":"YulFunctionCall","src":"2344:51:139"},"nodeType":"YulExpressionStatement","src":"2344:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:139"},"nodeType":"YulFunctionCall","src":"2411:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2431:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:139"},"nodeType":"YulFunctionCall","src":"2404:34:139"},"nodeType":"YulExpressionStatement","src":"2404:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2260:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2271:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2279:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2290:4:139","type":""}],"src":"2170:274:139"},{"body":{"nodeType":"YulBlock","src":"2565:102:139","statements":[{"nodeType":"YulAssignment","src":"2575:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2587:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2598:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2583:3:139"},"nodeType":"YulFunctionCall","src":"2583:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2575:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2617:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2632:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2648:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2653:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2644:3:139"},"nodeType":"YulFunctionCall","src":"2644:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2657:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2640:3:139"},"nodeType":"YulFunctionCall","src":"2640:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2628:3:139"},"nodeType":"YulFunctionCall","src":"2628:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2610:6:139"},"nodeType":"YulFunctionCall","src":"2610:51:139"},"nodeType":"YulExpressionStatement","src":"2610:51:139"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2534:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2545:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2556:4:139","type":""}],"src":"2449:218:139"},{"body":{"nodeType":"YulBlock","src":"2793:102:139","statements":[{"nodeType":"YulAssignment","src":"2803:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2815:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2826:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2811:3:139"},"nodeType":"YulFunctionCall","src":"2811:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2803:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2845:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2860:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2876:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2881:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2872:3:139"},"nodeType":"YulFunctionCall","src":"2872:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"2885:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2868:3:139"},"nodeType":"YulFunctionCall","src":"2868:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2856:3:139"},"nodeType":"YulFunctionCall","src":"2856:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2838:6:139"},"nodeType":"YulFunctionCall","src":"2838:51:139"},"nodeType":"YulExpressionStatement","src":"2838:51:139"}]},"name":"abi_encode_tuple_t_contract$_INFTLocker_$34923__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2762:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2773:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2784:4:139","type":""}],"src":"2672:223:139"},{"body":{"nodeType":"YulBlock","src":"3074:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3091:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3102:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3084:6:139"},"nodeType":"YulFunctionCall","src":"3084:21:139"},"nodeType":"YulExpressionStatement","src":"3084:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3125:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3136:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3121:3:139"},"nodeType":"YulFunctionCall","src":"3121:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3141:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3114:6:139"},"nodeType":"YulFunctionCall","src":"3114:30:139"},"nodeType":"YulExpressionStatement","src":"3114:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3164:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3175:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3160:3:139"},"nodeType":"YulFunctionCall","src":"3160:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3180:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3153:6:139"},"nodeType":"YulFunctionCall","src":"3153:62:139"},"nodeType":"YulExpressionStatement","src":"3153:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3235:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3246:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3231:3:139"},"nodeType":"YulFunctionCall","src":"3231:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3251:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3224:6:139"},"nodeType":"YulFunctionCall","src":"3224:36:139"},"nodeType":"YulExpressionStatement","src":"3224:36:139"},{"nodeType":"YulAssignment","src":"3269:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3281:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3292:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3277:3:139"},"nodeType":"YulFunctionCall","src":"3277:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3269:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3051:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3065:4:139","type":""}],"src":"2900:402:139"},{"body":{"nodeType":"YulBlock","src":"3481:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3498:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3509:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3491:6:139"},"nodeType":"YulFunctionCall","src":"3491:21:139"},"nodeType":"YulExpressionStatement","src":"3491:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3532:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3543:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3528:3:139"},"nodeType":"YulFunctionCall","src":"3528:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3548:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3521:6:139"},"nodeType":"YulFunctionCall","src":"3521:30:139"},"nodeType":"YulExpressionStatement","src":"3521:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3571:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3582:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3567:3:139"},"nodeType":"YulFunctionCall","src":"3567:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3587:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3560:6:139"},"nodeType":"YulFunctionCall","src":"3560:62:139"},"nodeType":"YulExpressionStatement","src":"3560:62:139"},{"nodeType":"YulAssignment","src":"3631:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3643:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3654:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3639:3:139"},"nodeType":"YulFunctionCall","src":"3639:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3631:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3458:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3472:4:139","type":""}],"src":"3307:356:139"},{"body":{"nodeType":"YulBlock","src":"3769:76:139","statements":[{"nodeType":"YulAssignment","src":"3779:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3791:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3802:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3787:3:139"},"nodeType":"YulFunctionCall","src":"3787:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3779:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3821:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3832:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3814:6:139"},"nodeType":"YulFunctionCall","src":"3814:25:139"},"nodeType":"YulExpressionStatement","src":"3814:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3738:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3749:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3760:4:139","type":""}],"src":"3668:177:139"},{"body":{"nodeType":"YulBlock","src":"3979:119:139","statements":[{"nodeType":"YulAssignment","src":"3989:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4001:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4012:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3997:3:139"},"nodeType":"YulFunctionCall","src":"3997:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3989:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4031:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4042:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4024:6:139"},"nodeType":"YulFunctionCall","src":"4024:25:139"},"nodeType":"YulExpressionStatement","src":"4024:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4069:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4080:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4065:3:139"},"nodeType":"YulFunctionCall","src":"4065:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4085:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4058:6:139"},"nodeType":"YulFunctionCall","src":"4058:34:139"},"nodeType":"YulExpressionStatement","src":"4058:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3940:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3951:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3959:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3970:4:139","type":""}],"src":"3850:248:139"},{"body":{"nodeType":"YulBlock","src":"4282:248:139","statements":[{"nodeType":"YulAssignment","src":"4292:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4304:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4315:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4300:3:139"},"nodeType":"YulFunctionCall","src":"4300:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4292:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4335:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4346:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4328:6:139"},"nodeType":"YulFunctionCall","src":"4328:25:139"},"nodeType":"YulExpressionStatement","src":"4328:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4373:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4384:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4369:3:139"},"nodeType":"YulFunctionCall","src":"4369:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4389:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4362:6:139"},"nodeType":"YulFunctionCall","src":"4362:34:139"},"nodeType":"YulExpressionStatement","src":"4362:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4416:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4427:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4412:3:139"},"nodeType":"YulFunctionCall","src":"4412:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4436:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4452:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4457:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4448:3:139"},"nodeType":"YulFunctionCall","src":"4448:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4461:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4444:3:139"},"nodeType":"YulFunctionCall","src":"4444:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4432:3:139"},"nodeType":"YulFunctionCall","src":"4432:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4405:6:139"},"nodeType":"YulFunctionCall","src":"4405:60:139"},"nodeType":"YulExpressionStatement","src":"4405:60:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4485:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4496:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:139"},"nodeType":"YulFunctionCall","src":"4481:18:139"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4515:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4508:6:139"},"nodeType":"YulFunctionCall","src":"4508:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4501:6:139"},"nodeType":"YulFunctionCall","src":"4501:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4474:6:139"},"nodeType":"YulFunctionCall","src":"4474:50:139"},"nodeType":"YulExpressionStatement","src":"4474:50:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address_t_bool__to_t_uint256_t_uint256_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4227:9:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4238:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4246:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4254:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4262:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4273:4:139","type":""}],"src":"4103:427:139"},{"body":{"nodeType":"YulBlock","src":"4581:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"4612:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"4633:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4640:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4645:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4636:3:139"},"nodeType":"YulFunctionCall","src":"4636:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4626:6:139"},"nodeType":"YulFunctionCall","src":"4626:31:139"},"nodeType":"YulExpressionStatement","src":"4626:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4677:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4680:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4670:6:139"},"nodeType":"YulFunctionCall","src":"4670:15:139"},"nodeType":"YulExpressionStatement","src":"4670:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"4705:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"4708:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4698:6:139"},"nodeType":"YulFunctionCall","src":"4698:15:139"},"nodeType":"YulExpressionStatement","src":"4698:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4601:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4594:6:139"},"nodeType":"YulFunctionCall","src":"4594:9:139"},"nodeType":"YulIf","src":"4591:2:139"},{"nodeType":"YulAssignment","src":"4732:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4741:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"4744:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4737:3:139"},"nodeType":"YulFunctionCall","src":"4737:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"4732:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4566:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"4569:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"4575:1:139","type":""}],"src":"4535:217:139"},{"body":{"nodeType":"YulBlock","src":"4799:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"4853:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4862:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4865:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4855:6:139"},"nodeType":"YulFunctionCall","src":"4855:12:139"},"nodeType":"YulExpressionStatement","src":"4855:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4822:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4843:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4836:6:139"},"nodeType":"YulFunctionCall","src":"4836:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4829:6:139"},"nodeType":"YulFunctionCall","src":"4829:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4819:2:139"},"nodeType":"YulFunctionCall","src":"4819:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4812:6:139"},"nodeType":"YulFunctionCall","src":"4812:40:139"},"nodeType":"YulIf","src":"4809:2:139"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4788:5:139","type":""}],"src":"4757:118:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_boolt_address(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_bool(value)\n        value2 := value\n        value3 := abi_decode_address(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_INFTLocker_$34923__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_address_t_bool__to_t_uint256_t_uint256_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610104578063c0324c7714610115578063d6a298e914610128578063d7b96d4e14610131578063f2fde38b1461014457600080fd5b80630cbc9527146100a3578063205765cc146100bf5780633de00c36146100d4578063590e1ae3146100f4578063715018a6146100fc575b600080fd5b6100ac60045481565b6040519081526020015b60405180910390f35b6100d26100cd366004610781565b610157565b005b6002546100e7906001600160a01b031681565b6040516100b691906107c8565b6100d2610490565b6100d26105a3565b6000546001600160a01b03166100e7565b6100d2610123366004610760565b6105b7565b6100ac60035481565b6001546100e7906001600160a01b031681565b6100d261015236600461070b565b6105ca565b6002546005546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018790529116906323b872dd90606401602060405180830381600087803b1580156101ad57600080fd5b505af11580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e5919061072c565b50600154604051630a2abdb360e01b8152600481018690526024810185905233604482015283151560648201526000916001600160a01b031690630a2abdb390608401602060405180830381600087803b15801561024257600080fd5b505af1158015610256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027a9190610748565b90506003548411801561029557506001600160a01b03821615155b15610489576001546040516339f890b560e21b8152600481018390526000916001600160a01b03169063e7e242d49060240160206040518083038186803b1580156102df57600080fd5b505afa1580156102f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103179190610748565b905060006004548261032991906107dc565b6002546005546040516370a0823160e01b815292935083926001600160a01b03928316926370a0823192610362929116906004016107c8565b60206040518083038186803b15801561037a57600080fd5b505afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b29190610748565b11156104865760025460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561040657600080fd5b505af115801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e919061072c565b50604080518281526020810184905233916001600160a01b038716917f65db98422e8b7340e0d6dfa99bbadd4ba95a51fefafd8f0e1cbbb2e819429a42910160405180910390a35b50505b5050505050565b610498610645565b6002546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906104d29030906004016107c8565b60206040518083038186803b1580156104ea57600080fd5b505afa1580156104fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105229190610748565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561056857600080fd5b505af115801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a0919061072c565b50565b6105ab610645565b6105b5600061069f565b565b6105bf610645565b600391909155600455565b6105d2610645565b6001600160a01b03811661063c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6105a08161069f565b6000546001600160a01b031633146105b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610633565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461070657600080fd5b919050565b60006020828403121561071c578081fd5b610725826106ef565b9392505050565b60006020828403121561073d578081fd5b8151610725816107fc565b600060208284031215610759578081fd5b5051919050565b60008060408385031215610772578081fd5b50508035926020909101359150565b60008060008060808587031215610796578182fd5b843593506020850135925060408501356107af816107fc565b91506107bd606086016106ef565b905092959194509250565b6001600160a01b0391909116815260200190565b6000826107f757634e487b7160e01b81526012600452602481fd5b500490565b80151581146105a057600080fdfea2646970667358221220a4fd7568481f41a86f7bcd81da5f097bc4640b6519a6cec7df18d8209454724f64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0xC0324C77 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0xD6A298E9 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xD7B96D4E EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBC9527 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x205765CC EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x590E1AE3 EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD2 PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x157 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xE7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB6 SWAP2 SWAP1 PUSH2 0x7C8 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x490 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE7 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x123 CALLDATASIZE PUSH1 0x4 PUSH2 0x760 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST PUSH2 0xAC PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xE7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0xD2 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x72C JUMP JUMPDEST POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA2ABDB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE CALLER PUSH1 0x44 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA2ABDB3 SWAP1 PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x256 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27A SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD DUP5 GT DUP1 ISZERO PUSH2 0x295 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x489 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x39F890B5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE7E242D4 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x317 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x4 SLOAD DUP3 PUSH2 0x329 SWAP2 SWAP1 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP4 POP DUP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x70A08231 SWAP3 PUSH2 0x362 SWAP3 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3B2 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST GT ISZERO PUSH2 0x486 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x72C JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP2 PUSH32 0x65DB98422E8B7340E0D6DFA99BBADD4BA95A51FEFAFD8F0E1CBBB2E819429A42 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x498 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x4D2 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x57C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5A0 SWAP2 SWAP1 PUSH2 0x72C JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5AB PUSH2 0x645 JUMP JUMPDEST PUSH2 0x5B5 PUSH1 0x0 PUSH2 0x69F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x5BF PUSH2 0x645 JUMP JUMPDEST PUSH1 0x3 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x63C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5A0 DUP2 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x633 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x71C JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x725 DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x73D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x725 DUP2 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x759 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x772 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x796 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x7AF DUP2 PUSH2 0x7FC JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x60 DUP7 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x7F7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x5A0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG4 REVERT PUSH22 0x68481F41A86F7BCD81DA5F097BC4640B6519A6CEC7DF XOR 0xD8 KECCAK256 SWAP5 SLOAD PUSH19 0x4F64736F6C6343000804003300000000000000 ","sourceMap":"253:1844:122:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;384:39;;;;;;;;;3814:25:139;;;3802:2;3787:18;384:39:122;;;;;;;;971:785;;;;;;:::i;:::-;;:::i;:::-;;324:18;;;;;-1:-1:-1;;;;;324:18:122;;;;;;;;;;:::i;1985:110::-;;;:::i;1831:101:4:-;;;:::i;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;1762:217:122;;;;;;:::i;:::-;;:::i;348:30::-;;;;;;294:24;;;;;-1:-1:-1;;;;;294:24:122;;;2081:198:4;;;;;;:::i;:::-;;:::i;971:785:122:-;1133:4;;1163:2;;1133:41;;-1:-1:-1;;;1133:41:122;;1151:10;1133:41;;;2030:34:139;-1:-1:-1;;;;;1163:2:122;;;2080:18:139;;;2073:43;2132:18;;;2125:34;;;1133:4:122;;;:17;;1965:18:139;;1133:41:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1201:6:122;;:124;;-1:-1:-1;;;1201:124:122;;;;;4328:25:139;;;4369:18;;;4362:34;;;1282:10:122;4412:18:139;;;4405:60;4508:14;;4501:22;4481:18;;;4474:50;1185:13:122;;-1:-1:-1;;;;;1201:6:122;;:20;;4300:19:139;;1201:124:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1185:140;;1356:15;;1340:13;:31;:57;;;;-1:-1:-1;;;;;;1375:22:122;;;;1340:57;1336:414;;;1429:6;;:26;;-1:-1:-1;;;1429:26:122;;;;;3814:25:139;;;1413:13:122;;-1:-1:-1;;;;;1429:6:122;;:19;;3787:18:139;;1429:26:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1413:42;;1469:14;1494:19;;1486:5;:27;;;;:::i;:::-;1575:4;;1590:2;;1575:18;;-1:-1:-1;;;1575:18:122;;1469:44;;-1:-1:-1;1469:44:122;;-1:-1:-1;;;;;1575:4:122;;;;:14;;:18;;1590:2;;;1575:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;1571:169;;;1622:4;;:31;;-1:-1:-1;;;1622:31:122;;-1:-1:-1;;;;;2362:32:139;;;1622:31:122;;;2344:51:139;2411:18;;;2404:34;;;1622:4:122;;;;:13;;2317:18:139;;1622:31:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1676:49:122;;;4024:25:139;;;4080:2;4065:18;;4058:34;;;1699:10:122;;-1:-1:-1;;;;;1676:49:122;;;;;3997:18:139;1676:49:122;;;;;;;1571:169;1336:414;;;971:785;;;;;:::o;1985:110::-;1094:13:4;:11;:13::i;:::-;2032:4:122::1;::::0;2058:29:::1;::::0;-1:-1:-1;;;2058:29:122;;-1:-1:-1;;;;;2032:4:122;;::::1;::::0;:13:::1;::::0;2046:10:::1;::::0;2032:4;;2058:14:::1;::::0;:29:::1;::::0;2081:4:::1;::::0;2058:29:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2032:56;::::0;-1:-1:-1;;;;;;2032:56:122::1;::::0;;;;;;-1:-1:-1;;;;;2362:32:139;;;2032:56:122::1;::::0;::::1;2344:51:139::0;2411:18;;;2404:34;2317:18;;2032:56:122::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1985:110::o:0;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1762:217:122:-;1094:13:4;:11;:13::i;:::-;1886:15:122::1;:34:::0;;;;1930:19:::1;:42:::0;1762:217::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;3102:2:139;2161:73:4::1;::::0;::::1;3084:21:139::0;3141:2;3121:18;;;3114:30;3180:34;3160:18;;;3153:62;-1:-1:-1;;;3231:18:139;;;3224:36;3277:19;;2161:73:4::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;3509:2:139;1414:68:4;;;3491:21:139;;;3528:18;;;3521:30;3587:34;3567:18;;;3560:62;3639:18;;1414:68:4;3481:182:139;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;14:173:139:-;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:139:o;393:255::-;460:6;513:2;501:9;492:7;488:23;484:32;481:2;;;534:6;526;519:22;481:2;571:9;565:16;590:28;612:5;590:28;:::i;653:194::-;723:6;776:2;764:9;755:7;751:23;747:32;744:2;;;797:6;789;782:22;744:2;-1:-1:-1;825:16:139;;734:113;-1:-1:-1;734:113:139:o;852:258::-;920:6;928;981:2;969:9;960:7;956:23;952:32;949:2;;;1002:6;994;987:22;949:2;-1:-1:-1;;1030:23:139;;;1100:2;1085:18;;;1072:32;;-1:-1:-1;939:171:139:o;1115:462::-;1198:6;1206;1214;1222;1275:3;1263:9;1254:7;1250:23;1246:33;1243:2;;;1297:6;1289;1282:22;1243:2;1338:9;1325:23;1315:33;;1395:2;1384:9;1380:18;1367:32;1357:42;;1449:2;1438:9;1434:18;1421:32;1462:28;1484:5;1462:28;:::i;:::-;1509:5;-1:-1:-1;1533:38:139;1567:2;1552:18;;1533:38;:::i;:::-;1523:48;;1233:344;;;;;;;:::o;1582:203::-;-1:-1:-1;;;;;1746:32:139;;;;1728:51;;1716:2;1701:18;;1683:102::o;4535:217::-;4575:1;4601;4591:2;;-1:-1:-1;;;4626:31:139;;4680:4;4677:1;4670:15;4708:4;4633:1;4698:15;4591:2;-1:-1:-1;4737:9:139;;4581:171::o;4757:118::-;4843:5;4836:13;4829:21;4822:5;4819:32;4809:2;;4865:1;4862;4855:12"},"methodIdentifiers":{"createLockWithReferral(uint256,uint256,bool,address)":"205765cc","locker()":"d7b96d4e","maha()":"3de00c36","minLockDuration()":"d6a298e9","owner()":"8da5cb5b","referralDenominator()":"0cbc9527","refund()":"590e1ae3","renounceOwnership()":"715018a6","setParams(uint256,uint256)":"c0324c77","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract INFTLocker\",\"name\":\"_locker\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_maha\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minLockDuration\",\"type\":\"uint256\"}],\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"referral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mahax\",\"type\":\"uint256\"}],\"name\":\"ReferralPaid\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockDuration\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_stakeNFT\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"referral\",\"type\":\"address\"}],\"name\":\"createLockWithReferral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"locker\",\"outputs\":[{\"internalType\":\"contract INFTLocker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maha\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minLockDuration\",\"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\":\"referralDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minLockDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_referralDenominator\",\"type\":\"uint256\"}],\"name\":\"setParams\",\"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 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\":{\"contracts/referrals/MAHAReferralV1.sol\":\"MAHAReferralV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/interfaces/INFTLocker.sol\":{\"keccak256\":\"0xdc4c53db31cb6e1fee0162176973ce2f44187fe66bbbe5b8f9f13bea220a5a74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986a682aed131f0296431c9e01ad8ecd1f1833384bcaf3cb9c883fa818479cb\",\"dweb:/ipfs/QmbHRjChdCSdHN4CzCoEsBH7gYPJNTK3BoA5EcMupW3USG\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/referrals/MAHAReferralV1.sol\":{\"keccak256\":\"0xa599b99dde76b5dda7dcc6ee2aef5a52408f4f1a7c9d1b3549d6af511b7015af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de36e9b5c3ff4929b01b3111c2d2d3c5a9ebb41e2e131251bfc910aad86f1824\",\"dweb:/ipfs/QmZfCicWonZLdsn1oF5CKZacnkQWr26NN7UCKuQ77fYxdB\"]}},\"version\":1}"}},"contracts/splitters/FeesSplitter.sol":{"FeesSplitter":{"abi":[{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint32[]","name":"_percentAllocations","type":"uint32[]"}],"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"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"PERCENTAGE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"accounts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"_percentAllocations","type":"uint32[]"}],"name":"checkPercentages","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"distributeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"percentAllocations","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"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":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint32[]","name":"_percentAllocations","type":"uint32[]"}],"name":"updateSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3959:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"88:728:139","statements":[{"body":{"nodeType":"YulBlock","src":"137:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"146:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"153:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"139:6:139"},"nodeType":"YulFunctionCall","src":"139:20:139"},"nodeType":"YulExpressionStatement","src":"139:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"116:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"124:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"112:3:139"},"nodeType":"YulFunctionCall","src":"112:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"131:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:139"},"nodeType":"YulFunctionCall","src":"108:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"101:6:139"},"nodeType":"YulFunctionCall","src":"101:35:139"},"nodeType":"YulIf","src":"98:2:139"},{"nodeType":"YulVariableDeclaration","src":"170:23:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"186:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"180:5:139"},"nodeType":"YulFunctionCall","src":"180:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"174:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"202:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"212:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"206:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"225:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"292:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"252:39:139"},"nodeType":"YulFunctionCall","src":"252:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"236:15:139"},"nodeType":"YulFunctionCall","src":"236:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"229:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"305:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"318:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"309:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"337:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"342:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"330:6:139"},"nodeType":"YulFunctionCall","src":"330:15:139"},"nodeType":"YulExpressionStatement","src":"330:15:139"},{"nodeType":"YulAssignment","src":"354:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"365:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"370:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"361:3:139"},"nodeType":"YulFunctionCall","src":"361:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"354:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"382:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"397:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"405:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"393:3:139"},"nodeType":"YulFunctionCall","src":"393:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"386:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"471:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"478:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:139"},"nodeType":"YulFunctionCall","src":"464:20:139"},"nodeType":"YulExpressionStatement","src":"464:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"431:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"443:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"446:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"439:3:139"},"nodeType":"YulFunctionCall","src":"439:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:139"},"nodeType":"YulFunctionCall","src":"427:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"452:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"423:3:139"},"nodeType":"YulFunctionCall","src":"423:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"457:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"420:2:139"},"nodeType":"YulFunctionCall","src":"420:41:139"},"nodeType":"YulIf","src":"417:2:139"},{"nodeType":"YulVariableDeclaration","src":"495:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"504:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"499:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"563:224:139","statements":[{"nodeType":"YulVariableDeclaration","src":"577:23:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"596:3:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"590:5:139"},"nodeType":"YulFunctionCall","src":"590:10:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"581:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"658:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"667:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"674:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"660:6:139"},"nodeType":"YulFunctionCall","src":"660:20:139"},"nodeType":"YulExpressionStatement","src":"660:20:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"637:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"644:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"633:3:139"},"nodeType":"YulFunctionCall","src":"633:22:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"623:2:139"},"nodeType":"YulFunctionCall","src":"623:33:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"616:6:139"},"nodeType":"YulFunctionCall","src":"616:41:139"},"nodeType":"YulIf","src":"613:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"702:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"707:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"695:6:139"},"nodeType":"YulFunctionCall","src":"695:18:139"},"nodeType":"YulExpressionStatement","src":"695:18:139"},{"nodeType":"YulAssignment","src":"726:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"737:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"742:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"733:3:139"},"nodeType":"YulFunctionCall","src":"733:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"726:3:139"}]},{"nodeType":"YulAssignment","src":"758:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"769:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"774:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:139"},"nodeType":"YulFunctionCall","src":"765:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"758:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"529:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"532:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"526:2:139"},"nodeType":"YulFunctionCall","src":"526:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"536:18:139","statements":[{"nodeType":"YulAssignment","src":"538:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"547:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"550:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"543:3:139"},"nodeType":"YulFunctionCall","src":"543:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"538:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"522:3:139","statements":[]},"src":"518:269:139"},{"nodeType":"YulAssignment","src":"796:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"805:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"796:5:139"}]}]},"name":"abi_decode_array_uint32_dyn_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"62:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"70:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"78:5:139","type":""}],"src":"14:802:139"},{"body":{"nodeType":"YulBlock","src":"968:1175:139","statements":[{"body":{"nodeType":"YulBlock","src":"1014:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1023:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1031:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1016:6:139"},"nodeType":"YulFunctionCall","src":"1016:22:139"},"nodeType":"YulExpressionStatement","src":"1016:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"989:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"998:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"985:3:139"},"nodeType":"YulFunctionCall","src":"985:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1010:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"981:3:139"},"nodeType":"YulFunctionCall","src":"981:32:139"},"nodeType":"YulIf","src":"978:2:139"},{"nodeType":"YulVariableDeclaration","src":"1049:30:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1069:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1063:5:139"},"nodeType":"YulFunctionCall","src":"1063:16:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1053:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1088:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1106:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1110:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1102:3:139"},"nodeType":"YulFunctionCall","src":"1102:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"1114:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1098:3:139"},"nodeType":"YulFunctionCall","src":"1098:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1092:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1143:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1152:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1160:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1145:6:139"},"nodeType":"YulFunctionCall","src":"1145:22:139"},"nodeType":"YulExpressionStatement","src":"1145:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1131:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1139:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1128:2:139"},"nodeType":"YulFunctionCall","src":"1128:14:139"},"nodeType":"YulIf","src":"1125:2:139"},{"nodeType":"YulVariableDeclaration","src":"1178:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1192:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1203:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1188:3:139"},"nodeType":"YulFunctionCall","src":"1188:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1182:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1258:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1267:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1275:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1260:6:139"},"nodeType":"YulFunctionCall","src":"1260:22:139"},"nodeType":"YulExpressionStatement","src":"1260:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1237:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1241:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1233:3:139"},"nodeType":"YulFunctionCall","src":"1233:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1248:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1229:3:139"},"nodeType":"YulFunctionCall","src":"1229:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1222:6:139"},"nodeType":"YulFunctionCall","src":"1222:35:139"},"nodeType":"YulIf","src":"1219:2:139"},{"nodeType":"YulVariableDeclaration","src":"1293:19:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1309:2:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1303:5:139"},"nodeType":"YulFunctionCall","src":"1303:9:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1297:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1321:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1331:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1325:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1344:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1411:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1371:39:139"},"nodeType":"YulFunctionCall","src":"1371:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1355:15:139"},"nodeType":"YulFunctionCall","src":"1355:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1348:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1424:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1437:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1428:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1456:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1461:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1449:6:139"},"nodeType":"YulFunctionCall","src":"1449:15:139"},"nodeType":"YulExpressionStatement","src":"1449:15:139"},{"nodeType":"YulAssignment","src":"1473:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1484:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1489:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:139"},"nodeType":"YulFunctionCall","src":"1480:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1473:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1501:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1516:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1520:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1512:3:139"},"nodeType":"YulFunctionCall","src":"1512:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1505:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1577:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1586:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1594:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:139"},"nodeType":"YulFunctionCall","src":"1579:22:139"},"nodeType":"YulExpressionStatement","src":"1579:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1546:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1554:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"1557:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1550:3:139"},"nodeType":"YulFunctionCall","src":"1550:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1542:3:139"},"nodeType":"YulFunctionCall","src":"1542:19:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1563:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1538:3:139"},"nodeType":"YulFunctionCall","src":"1538:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1568:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1535:2:139"},"nodeType":"YulFunctionCall","src":"1535:41:139"},"nodeType":"YulIf","src":"1532:2:139"},{"nodeType":"YulVariableDeclaration","src":"1612:15:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"1621:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1616:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1681:235:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1695:23:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1714:3:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1708:5:139"},"nodeType":"YulFunctionCall","src":"1708:10:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1699:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1785:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1794:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1802:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1787:6:139"},"nodeType":"YulFunctionCall","src":"1787:22:139"},"nodeType":"YulExpressionStatement","src":"1787:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1744:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1755:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1770:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1775:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1766:3:139"},"nodeType":"YulFunctionCall","src":"1766:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1779:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1762:3:139"},"nodeType":"YulFunctionCall","src":"1762:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1751:3:139"},"nodeType":"YulFunctionCall","src":"1751:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1741:2:139"},"nodeType":"YulFunctionCall","src":"1741:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1734:6:139"},"nodeType":"YulFunctionCall","src":"1734:50:139"},"nodeType":"YulIf","src":"1731:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1831:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"1836:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1824:6:139"},"nodeType":"YulFunctionCall","src":"1824:18:139"},"nodeType":"YulExpressionStatement","src":"1824:18:139"},{"nodeType":"YulAssignment","src":"1855:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1866:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1871:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1862:3:139"},"nodeType":"YulFunctionCall","src":"1862:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1855:3:139"}]},{"nodeType":"YulAssignment","src":"1887:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1898:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1903:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1894:3:139"},"nodeType":"YulFunctionCall","src":"1894:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1887:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1647:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1650:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1644:2:139"},"nodeType":"YulFunctionCall","src":"1644:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1654:18:139","statements":[{"nodeType":"YulAssignment","src":"1656:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1665:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1668:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1661:3:139"},"nodeType":"YulFunctionCall","src":"1661:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1656:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1640:3:139","statements":[]},"src":"1636:280:139"},{"nodeType":"YulAssignment","src":"1925:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1935:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1925:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1949:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1975:9:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1986:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1971:3:139"},"nodeType":"YulFunctionCall","src":"1971:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1965:5:139"},"nodeType":"YulFunctionCall","src":"1965:25:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1953:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2019:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2028:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2036:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2021:6:139"},"nodeType":"YulFunctionCall","src":"2021:22:139"},"nodeType":"YulExpressionStatement","src":"2021:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2005:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2015:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2002:2:139"},"nodeType":"YulFunctionCall","src":"2002:16:139"},"nodeType":"YulIf","src":"1999:2:139"},{"nodeType":"YulAssignment","src":"2054:83:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2107:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2118:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2103:3:139"},"nodeType":"YulFunctionCall","src":"2103:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2129:7:139"}],"functionName":{"name":"abi_decode_array_uint32_dyn_fromMemory","nodeType":"YulIdentifier","src":"2064:38:139"},"nodeType":"YulFunctionCall","src":"2064:73:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2054:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"926:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"937:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"949:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"957:6:139","type":""}],"src":"821:1322:139"},{"body":{"nodeType":"YulBlock","src":"2322:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2339:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2350:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2332:6:139"},"nodeType":"YulFunctionCall","src":"2332:21:139"},"nodeType":"YulExpressionStatement","src":"2332:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2373:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2384:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2369:3:139"},"nodeType":"YulFunctionCall","src":"2369:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2389:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2362:6:139"},"nodeType":"YulFunctionCall","src":"2362:30:139"},"nodeType":"YulExpressionStatement","src":"2362:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2412:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2423:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2408:3:139"},"nodeType":"YulFunctionCall","src":"2408:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2428:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2401:6:139"},"nodeType":"YulFunctionCall","src":"2401:62:139"},"nodeType":"YulExpressionStatement","src":"2401:62:139"},{"nodeType":"YulAssignment","src":"2472:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2484:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2495:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2480:3:139"},"nodeType":"YulFunctionCall","src":"2480:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2472:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2299:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2313:4:139","type":""}],"src":"2148:356:139"},{"body":{"nodeType":"YulBlock","src":"2683:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2700:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2711:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2693:6:139"},"nodeType":"YulFunctionCall","src":"2693:21:139"},"nodeType":"YulExpressionStatement","src":"2693:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2734:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2745:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2730:3:139"},"nodeType":"YulFunctionCall","src":"2730:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2750:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2723:6:139"},"nodeType":"YulFunctionCall","src":"2723:30:139"},"nodeType":"YulExpressionStatement","src":"2723:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2773:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2784:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2769:3:139"},"nodeType":"YulFunctionCall","src":"2769:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2789:21:139","type":"","value":"invalid percentages"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2762:6:139"},"nodeType":"YulFunctionCall","src":"2762:49:139"},"nodeType":"YulExpressionStatement","src":"2762:49:139"},{"nodeType":"YulAssignment","src":"2820:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2832:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2843:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2828:3:139"},"nodeType":"YulFunctionCall","src":"2828:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2820:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2660:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2674:4:139","type":""}],"src":"2509:343:139"},{"body":{"nodeType":"YulBlock","src":"2902:230:139","statements":[{"nodeType":"YulAssignment","src":"2912:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2928:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2922:5:139"},"nodeType":"YulFunctionCall","src":"2922:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2912:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2940:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2962:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2978:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"2984:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2974:3:139"},"nodeType":"YulFunctionCall","src":"2974:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2993:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2989:3:139"},"nodeType":"YulFunctionCall","src":"2989:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2970:3:139"},"nodeType":"YulFunctionCall","src":"2970:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2958:3:139"},"nodeType":"YulFunctionCall","src":"2958:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2944:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3073:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3075:16:139"},"nodeType":"YulFunctionCall","src":"3075:18:139"},"nodeType":"YulExpressionStatement","src":"3075:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3016:10:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3036:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3040:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3032:3:139"},"nodeType":"YulFunctionCall","src":"3032:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"3044:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3028:3:139"},"nodeType":"YulFunctionCall","src":"3028:18:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3013:2:139"},"nodeType":"YulFunctionCall","src":"3013:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3052:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3064:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3049:2:139"},"nodeType":"YulFunctionCall","src":"3049:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3010:2:139"},"nodeType":"YulFunctionCall","src":"3010:62:139"},"nodeType":"YulIf","src":"3007:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3111:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3115:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3104:6:139"},"nodeType":"YulFunctionCall","src":"3104:22:139"},"nodeType":"YulExpressionStatement","src":"3104:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"2882:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2891:6:139","type":""}],"src":"2857:275:139"},{"body":{"nodeType":"YulBlock","src":"3206:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"3250:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3252:16:139"},"nodeType":"YulFunctionCall","src":"3252:18:139"},"nodeType":"YulExpressionStatement","src":"3252:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3222:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3238:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3242:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3234:3:139"},"nodeType":"YulFunctionCall","src":"3234:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"3246:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3230:3:139"},"nodeType":"YulFunctionCall","src":"3230:18:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3219:2:139"},"nodeType":"YulFunctionCall","src":"3219:30:139"},"nodeType":"YulIf","src":"3216:2:139"},{"nodeType":"YulAssignment","src":"3281:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3297:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"3300:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3293:3:139"},"nodeType":"YulFunctionCall","src":"3293:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"3309:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3289:3:139"},"nodeType":"YulFunctionCall","src":"3289:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"3281:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"3186:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"3197:4:139","type":""}],"src":"3137:183:139"},{"body":{"nodeType":"YulBlock","src":"3372:181:139","statements":[{"nodeType":"YulVariableDeclaration","src":"3382:20:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3392:10:139","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3386:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3411:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3426:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3429:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3422:3:139"},"nodeType":"YulFunctionCall","src":"3422:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"3415:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3441:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3456:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3459:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3452:3:139"},"nodeType":"YulFunctionCall","src":"3452:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"3445:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3496:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3498:16:139"},"nodeType":"YulFunctionCall","src":"3498:18:139"},"nodeType":"YulExpressionStatement","src":"3498:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"3477:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3486:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"3490:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3482:3:139"},"nodeType":"YulFunctionCall","src":"3482:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3474:2:139"},"nodeType":"YulFunctionCall","src":"3474:21:139"},"nodeType":"YulIf","src":"3471:2:139"},{"nodeType":"YulAssignment","src":"3527:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"3538:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"3543:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3534:3:139"},"nodeType":"YulFunctionCall","src":"3534:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3527:3:139"}]}]},"name":"checked_add_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3355:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"3358:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3364:3:139","type":""}],"src":"3325:228:139"},{"body":{"nodeType":"YulBlock","src":"3605:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"3636:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3638:16:139"},"nodeType":"YulFunctionCall","src":"3638:18:139"},"nodeType":"YulExpressionStatement","src":"3638:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3621:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3632:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3628:3:139"},"nodeType":"YulFunctionCall","src":"3628:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3618:2:139"},"nodeType":"YulFunctionCall","src":"3618:17:139"},"nodeType":"YulIf","src":"3615:2:139"},{"nodeType":"YulAssignment","src":"3667:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3678:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"3685:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3674:3:139"},"nodeType":"YulFunctionCall","src":"3674:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"3667:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3587:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"3597:3:139","type":""}],"src":"3558:135:139"},{"body":{"nodeType":"YulBlock","src":"3730:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3747:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3754:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3759:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3750:3:139"},"nodeType":"YulFunctionCall","src":"3750:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3740:6:139"},"nodeType":"YulFunctionCall","src":"3740:31:139"},"nodeType":"YulExpressionStatement","src":"3740:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3787:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3790:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3780:6:139"},"nodeType":"YulFunctionCall","src":"3780:15:139"},"nodeType":"YulExpressionStatement","src":"3780:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3811:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3814:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3804:6:139"},"nodeType":"YulFunctionCall","src":"3804:15:139"},"nodeType":"YulExpressionStatement","src":"3804:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3698:127:139"},{"body":{"nodeType":"YulBlock","src":"3862:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3879:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3886:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3891:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3882:3:139"},"nodeType":"YulFunctionCall","src":"3882:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3872:6:139"},"nodeType":"YulFunctionCall","src":"3872:31:139"},"nodeType":"YulExpressionStatement","src":"3872:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3919:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3922:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3912:6:139"},"nodeType":"YulFunctionCall","src":"3912:15:139"},"nodeType":"YulExpressionStatement","src":"3912:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3943:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3946:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3936:6:139"},"nodeType":"YulFunctionCall","src":"3936:15:139"},"nodeType":"YulExpressionStatement","src":"3936:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3830:127:139"}]},"contents":"{\n    { }\n    function abi_decode_array_uint32_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := mload(src)\n            if iszero(eq(value, and(value, 0xffffffff))) { revert(array, array) }\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let src := add(_2, _4)\n        if gt(add(add(_2, shl(5, _3)), _4), dataEnd) { revert(value0, value0) }\n        let i := value0\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            let value := mload(src)\n            if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n            mstore(dst, value)\n            dst := add(dst, _4)\n            src := add(src, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_uint32_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"invalid percentages\")\n        tail := add(headStart, 96)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint32(x, y) -> sum\n    {\n        let _1 := 0xffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200123c3803806200123c8339810160408190526200003491620003aa565b6200003f336200007e565b815162000054906001906020850190620001f4565b5080516200006a9060029060208401906200025e565b506200007681620000ce565b505062000555565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620000d862000196565b6000805b825181101562000133578281815181106200010757634e487b7160e01b600052603260045260246000fd5b6020026020010151826200011c9190620004e0565b9150806200012a816200050b565b915050620000dc565b50620f42408163ffffffff1614620001925760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642070657263656e74616765730000000000000000000000000060448201526064015b60405180910390fd5b5050565b6000546001600160a01b03163314620001f25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000189565b565b8280548282559060005260206000209081019282156200024c579160200282015b828111156200024c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000215565b506200025a9291506200030a565b5090565b828054828255906000526020600020906007016008900481019282156200024c5791602002820160005b83821115620002ce57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030262000288565b8015620003005782816101000a81549063ffffffff0219169055600401602081600301049283019260010302620002ce565b50506200025a9291505b5b808211156200025a57600081556001016200030b565b600082601f83011262000332578081fd5b815160206200034b6200034583620004ba565b62000487565b80838252828201915082860187848660051b89010111156200036b578586fd5b855b858110156200039d57815163ffffffff811681146200038a578788fd5b845292840192908401906001016200036d565b5090979650505050505050565b60008060408385031215620003bd578182fd5b82516001600160401b0380821115620003d4578384fd5b818501915085601f830112620003e8578384fd5b81516020620003fb6200034583620004ba565b8083825282820191508286018a848660051b89010111156200041b578889fd5b8896505b84871015620004545780516001600160a01b03811681146200043f57898afd5b8352600196909601959183019183016200041f565b50918801519196509093505050808211156200046e578283fd5b506200047d8582860162000321565b9150509250929050565b604051601f8201601f191681016001600160401b0381118282101715620004b257620004b26200053f565b604052919050565b60006001600160401b03821115620004d657620004d66200053f565b5060051b60200190565b600063ffffffff80831681851680830382111562000502576200050262000529565b01949350505050565b600060001982141562000522576200052262000529565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b610cd780620005656000396000f3fe6080604052600436106100aa5760003560e01c8063bce5826911610064578063bce5826914610191578063c45ff544146101b1578063e086e5ec146101d1578063f2a40db8146101e6578063f2fde38b14610206578063f4f3b20014610226576100b9565b80623f619d146100ce5780633f26479e1461010857806344def48f1461012d578063715018a61461014d5780638da5cb5b14610162578063b8b9b54914610189576100b9565b366100b9576100b7610246565b005b3480156100c557600080fd5b506100b7610246565b3480156100da57600080fd5b506100ee6100e9366004610b84565b610328565b60405163ffffffff90911681526020015b60405180910390f35b34801561011457600080fd5b5061011f620f424081565b6040519081526020016100ff565b34801561013957600080fd5b506100b7610148366004610a66565b610362565b34801561015957600080fd5b506100b761039f565b34801561016e57600080fd5b506000546001600160a01b03165b6040516100ff9190610bb4565b6100b7610246565b34801561019d57600080fd5b506100b76101ac366004610a43565b6103b3565b3480156101bd57600080fd5b506100b76101cc366004610b29565b610541565b3480156101dd57600080fd5b506100b76105f1565b3480156101f257600080fd5b5061017c610201366004610b84565b610636565b34801561021257600080fd5b506100b7610221366004610a43565b610660565b34801561023257600080fd5b506100b7610241366004610a43565b6106d6565b600154479060005b818110156103235760006102ad846002848154811061027d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600882040154620f424060079092166004026101000a900463ffffffff16919091020490565b9050600182815481106102d057634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610310573d6000803e3d6000fd5b50508061031c90610c45565b905061024e565b505050565b6002818154811061033857600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b61036a6107f9565b815161037d9060019060208501906108a3565b508051610391906002906020840190610908565b5061039b81610541565b5050565b6103a76107f9565b6103b16000610853565b565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906103e2903090600401610bb4565b60206040518083038186803b1580156103fa57600080fd5b505afa15801561040e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104329190610b9c565b60015490915060005b8181101561053b57600061046a846002848154811061027d57634e487b7160e01b600052603260045260246000fd5b9050846001600160a01b031663a9059cbb6001848154811061049c57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190610b64565b50508061053490610c45565b905061043b565b50505050565b6105496107f9565b6000805b825181101561059d5782818151811061057657634e487b7160e01b600052603260045260246000fd5b6020026020010151826105899190610c1d565b91508061059581610c45565b91505061054d565b50620f42408163ffffffff161461039b5760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642070657263656e746167657360681b60448201526064015b60405180910390fd5b6105f96107f9565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610633573d6000803e3d6000fd5b50565b6001818154811061064657600080fd5b6000918252602090912001546001600160a01b0316905081565b6106686107f9565b6001600160a01b0381166106cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e8565b61063381610853565b6106de6107f9565b806001600160a01b031663a9059cbb6106ff6000546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b038516906370a082319061072b903090600401610bb4565b60206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610b9c565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156107c157600080fd5b505af11580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039b9190610b64565b6000546001600160a01b031633146103b15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280548282559060005260206000209081019282156108f8579160200282015b828111156108f857825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906108c3565b506109049291506109ae565b5090565b828054828255906000526020600020906007016008900481019282156108f85791602002820160005b8382111561097557835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302610931565b80156109a55782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610975565b50506109049291505b5b8082111561090457600081556001016109af565b600082601f8301126109d3578081fd5b813560206109e86109e383610bf9565b610bc8565b80838252828201915082860187848660051b8901011115610a07578586fd5b855b85811015610a3657813563ffffffff81168114610a24578788fd5b84529284019290840190600101610a09565b5090979650505050505050565b600060208284031215610a54578081fd5b8135610a5f81610c8c565b9392505050565b60008060408385031215610a78578081fd5b823567ffffffffffffffff80821115610a8f578283fd5b818501915085601f830112610aa2578283fd5b81356020610ab26109e383610bf9565b8083825282820191508286018a848660051b8901011115610ad1578788fd5b8796505b84871015610afc578035610ae881610c8c565b835260019690960195918301918301610ad5565b5096505086013592505080821115610b12578283fd5b50610b1f858286016109c3565b9150509250929050565b600060208284031215610b3a578081fd5b813567ffffffffffffffff811115610b50578182fd5b610b5c848285016109c3565b949350505050565b600060208284031215610b75578081fd5b81518015158114610a5f578182fd5b600060208284031215610b95578081fd5b5035919050565b600060208284031215610bad578081fd5b5051919050565b6001600160a01b0391909116815260200190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610bf157610bf1610c76565b604052919050565b600067ffffffffffffffff821115610c1357610c13610c76565b5060051b60200190565b600063ffffffff808316818516808303821115610c3c57610c3c610c60565b01949350505050565b6000600019821415610c5957610c59610c60565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461063357600080fdfea2646970667358221220d96acc1b71c0987ca391a383300c89e0ce69edb863a66b2d49cae7d3623c6bd264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x123C CODESIZE SUB DUP1 PUSH3 0x123C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x3AA JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x7E JUMP JUMPDEST DUP2 MLOAD PUSH3 0x54 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x1F4 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x6A SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x25E JUMP JUMPDEST POP PUSH3 0x76 DUP2 PUSH3 0xCE JUMP JUMPDEST POP POP PUSH3 0x555 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH3 0xD8 PUSH3 0x196 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x133 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH3 0x107 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH3 0x11C SWAP2 SWAP1 PUSH3 0x4E0 JUMP JUMPDEST SWAP2 POP DUP1 PUSH3 0x12A DUP2 PUSH3 0x50B JUMP JUMPDEST SWAP2 POP POP PUSH3 0xDC JUMP JUMPDEST POP PUSH3 0xF4240 DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH3 0x192 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070657263656E746167657300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x1F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x189 JUMP JUMPDEST JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x24C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x24C 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 PUSH3 0x215 JUMP JUMPDEST POP PUSH3 0x25A SWAP3 SWAP2 POP PUSH3 0x30A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 ADD PUSH1 0x8 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x24C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x2CE JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH3 0x288 JUMP JUMPDEST DUP1 ISZERO PUSH3 0x300 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH3 0x2CE JUMP JUMPDEST POP POP PUSH3 0x25A SWAP3 SWAP2 POP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x25A JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x30B JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x332 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH3 0x34B PUSH3 0x345 DUP4 PUSH3 0x4BA JUMP JUMPDEST PUSH3 0x487 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH3 0x36B JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH3 0x39D JUMPI DUP2 MLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH3 0x38A JUMPI DUP8 DUP9 REVERT JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH3 0x36D JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3BD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x3D4 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x3E8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH3 0x3FB PUSH3 0x345 DUP4 PUSH3 0x4BA JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP11 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH3 0x41B JUMPI DUP9 DUP10 REVERT JUMPDEST DUP9 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH3 0x454 JUMPI DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x43F JUMPI DUP10 DUP11 REVERT JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH3 0x41F JUMP JUMPDEST POP SWAP2 DUP9 ADD MLOAD SWAP2 SWAP7 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH3 0x46E JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x47D DUP6 DUP3 DUP7 ADD PUSH3 0x321 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x4B2 JUMPI PUSH3 0x4B2 PUSH3 0x53F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH3 0x4D6 JUMPI PUSH3 0x4D6 PUSH3 0x53F JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH3 0x502 JUMPI PUSH3 0x502 PUSH3 0x529 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH3 0x522 JUMPI PUSH3 0x522 PUSH3 0x529 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xCD7 DUP1 PUSH3 0x565 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBCE58269 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xBCE58269 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0xC45FF544 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xE086E5EC EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xF2A40DB8 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xF4F3B200 EQ PUSH2 0x226 JUMPI PUSH2 0xB9 JUMP JUMPDEST DUP1 PUSH3 0x3F619D EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x3F26479E EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0x44DEF48F EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0xB8B9B549 EQ PUSH2 0x189 JUMPI PUSH2 0xB9 JUMP JUMPDEST CALLDATASIZE PUSH2 0xB9 JUMPI PUSH2 0xB7 PUSH2 0x246 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x246 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEE PUSH2 0xE9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB84 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x114 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0xA66 JUMP JUMPDEST PUSH2 0x362 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x159 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x39F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFF SWAP2 SWAP1 PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0xB7 PUSH2 0x246 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x1AC CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0xB29 JUMP JUMPDEST PUSH2 0x541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x5F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0xB84 JUMP JUMPDEST PUSH2 0x636 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x221 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x241 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x1 SLOAD SELFBALANCE SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 PUSH2 0x2AD DUP5 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x27D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x8 DUP3 DIV ADD SLOAD PUSH3 0xF4240 PUSH1 0x7 SWAP1 SWAP3 AND PUSH1 0x4 MUL PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP2 SWAP1 SWAP2 MUL DIV SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x310 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP1 PUSH2 0x31C SWAP1 PUSH2 0xC45 JUMP JUMPDEST SWAP1 POP PUSH2 0x24E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x8 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD PUSH1 0x4 MUL SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x36A PUSH2 0x7F9 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x37D SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x8A3 JUMP JUMPDEST POP DUP1 MLOAD PUSH2 0x391 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x908 JUMP JUMPDEST POP PUSH2 0x39B DUP2 PUSH2 0x541 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x7F9 JUMP JUMPDEST PUSH2 0x3B1 PUSH1 0x0 PUSH2 0x853 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x3E2 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0xBB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x432 SWAP2 SWAP1 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x53B JUMPI PUSH1 0x0 PUSH2 0x46A DUP5 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x27D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x49C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x504 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x528 SWAP2 SWAP1 PUSH2 0xB64 JUMP JUMPDEST POP POP DUP1 PUSH2 0x534 SWAP1 PUSH2 0xC45 JUMP JUMPDEST SWAP1 POP PUSH2 0x43B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x549 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x59D JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x576 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH2 0x589 SWAP2 SWAP1 PUSH2 0xC1D JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x595 DUP2 PUSH2 0xC45 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x54D JUMP JUMPDEST POP PUSH3 0xF4240 DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH2 0x39B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x696E76616C69642070657263656E7461676573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5F9 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP3 SWAP1 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH2 0x668 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E8 JUMP JUMPDEST PUSH2 0x633 DUP2 PUSH2 0x853 JUMP JUMPDEST PUSH2 0x6DE PUSH2 0x7F9 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x6FF PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x72B SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0xBB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39B SWAP2 SWAP1 PUSH2 0xB64 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x8F8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8F8 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 0x8C3 JUMP JUMPDEST POP PUSH2 0x904 SWAP3 SWAP2 POP PUSH2 0x9AE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 ADD PUSH1 0x8 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x8F8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x975 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x931 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A5 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x975 JUMP JUMPDEST POP POP PUSH2 0x904 SWAP3 SWAP2 POP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x9E8 PUSH2 0x9E3 DUP4 PUSH2 0xBF9 JUMP JUMPDEST PUSH2 0xBC8 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xA07 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0xA36 JUMPI DUP2 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xA24 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xA09 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA54 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA5F DUP2 PUSH2 0xC8C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA78 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xA8F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xAA2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xAB2 PUSH2 0x9E3 DUP4 PUSH2 0xBF9 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP11 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xAD1 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0xAFC JUMPI DUP1 CALLDATALOAD PUSH2 0xAE8 DUP2 PUSH2 0xC8C JUMP JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0xAD5 JUMP JUMPDEST POP SWAP7 POP POP DUP7 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0xB12 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0xB1F DUP6 DUP3 DUP7 ADD PUSH2 0x9C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB50 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xB5C DUP5 DUP3 DUP6 ADD PUSH2 0x9C3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xA5F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB95 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBAD JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xBF1 JUMPI PUSH2 0xBF1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC13 JUMPI PUSH2 0xC13 PUSH2 0xC76 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0xC3C JUMPI PUSH2 0xC3C PUSH2 0xC60 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0xC59 JUMPI PUSH2 0xC59 PUSH2 0xC60 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 PUSH11 0xCC1B71C0987CA391A38330 0xC DUP10 0xE0 0xCE PUSH10 0xEDB863A66B2D49CAE7D3 PUSH3 0x3C6BD2 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"231:3102:123:-:0;;;427:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:38;936:18:4;:32::i;:::-;518:20:123;;;;:8;;:20;;;;;:::i;:::-;-1:-1:-1;548:40:123;;;;:18;;:40;;;;;:::i;:::-;-1:-1:-1;598:37:123;615:19;598:16;:37::i;:::-;427:215;;231:3102;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;2156:329:123:-;1094:13:4;:11;:13::i;:::-;2279:10:123::1;2308:9:::0;2303:111:::1;2327:19;:26;2323:1;:30;2303:111;;;2381:19;2401:1;2381:22;;;;;;-1:-1:-1::0;;;2381:22:123::1;;;;;;;;;;;;;;;2374:29;;;;;:::i;:::-;::::0;-1:-1:-1;2355:3:123;::::1;::::0;::::1;:::i;:::-;;;;2303:111;;;;346:3;2431;:23;;;2423:55;;;::::0;-1:-1:-1;;;2423:55:123;;2711:2:139;2423:55:123::1;::::0;::::1;2693:21:139::0;2750:2;2730:18;;;2723:30;2789:21;2769:18;;;2762:49;2828:18;;2423:55:123::1;;;;;;;;;1117:1:4;2156:329:123::0;:::o;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;2350:2:139;1414:68:4;;;2332:21:139;;;2369:18;;;2362:30;2428:34;2408:18;;;2401:62;2480:18;;1414:68:4;2322:182:139;1414:68:4;1359:130::o;231:3102:123:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;231:3102:123;-1:-1:-1;;;;;231:3102:123;;;;;;;;;;;-1:-1:-1;231:3102:123;;;;;;;-1:-1:-1;231:3102:123;;;-1:-1:-1;231:3102:123;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;231:3102:123;;;-1:-1:-1;231:3102:123;;;;;;;;;;;;;;;14:802:139;78:5;131:3;124:4;116:6;112:17;108:27;98:2;;153:5;146;139:20;98:2;186:6;180:13;212:4;236:60;252:43;292:2;252:43;:::i;:::-;236:60;:::i;:::-;318:3;342:2;337:3;330:15;370:2;365:3;361:12;354:19;;405:2;397:6;393:15;457:3;452:2;446;443:1;439:10;431:6;427:23;423:32;420:41;417:2;;;478:5;471;464:20;417:2;504:5;518:269;532:2;529:1;526:9;518:269;;;596:3;590:10;644;637:5;633:22;626:5;623:33;613:2;;674:5;667;660:20;613:2;695:18;;733:12;;;;765;;;;550:1;543:9;518:269;;;-1:-1:-1;805:5:139;;88:728;-1:-1:-1;;;;;;;88:728:139:o;821:1322::-;949:6;957;1010:2;998:9;989:7;985:23;981:32;978:2;;;1031:6;1023;1016:22;978:2;1063:16;;-1:-1:-1;;;;;1128:14:139;;;1125:2;;;1160:6;1152;1145:22;1125:2;1203:6;1192:9;1188:22;1178:32;;1248:7;1241:4;1237:2;1233:13;1229:27;1219:2;;1275:6;1267;1260:22;1219:2;1309;1303:9;1331:4;1355:60;1371:43;1411:2;1371:43;:::i;1355:60::-;1437:3;1461:2;1456:3;1449:15;1489:2;1484:3;1480:12;1473:19;;1520:2;1516;1512:11;1568:7;1563:2;1557;1554:1;1550:10;1546:2;1542:19;1538:28;1535:41;1532:2;;;1594:6;1586;1579:22;1532:2;1621:6;1612:15;;1636:280;1650:2;1647:1;1644:9;1636:280;;;1708:10;;-1:-1:-1;;;;;1751:31:139;;1741:42;;1731:2;;1802:6;1794;1787:22;1731:2;1824:18;;1668:1;1661:9;;;;;1862:12;;;;1894;;1636:280;;;-1:-1:-1;1971:18:139;;;1965:25;1935:5;;-1:-1:-1;1965:25:139;;-1:-1:-1;;;2002:16:139;;;1999:2;;;2036:6;2028;2021:22;1999:2;;2064:73;2129:7;2118:8;2107:9;2103:24;2064:73;:::i;:::-;2054:83;;;968:1175;;;;;:::o;2857:275::-;2928:2;2922:9;2993:2;2974:13;;-1:-1:-1;;2970:27:139;2958:40;;-1:-1:-1;;;;;3013:34:139;;3049:22;;;3010:62;3007:2;;;3075:18;;:::i;:::-;3111:2;3104:22;2902:230;;-1:-1:-1;2902:230:139:o;3137:183::-;3197:4;-1:-1:-1;;;;;3219:30:139;;3216:2;;;3252:18;;:::i;:::-;-1:-1:-1;3297:1:139;3293:14;3309:4;3289:25;;3206:114::o;3325:228::-;3364:3;3392:10;3429:2;3426:1;3422:10;3459:2;3456:1;3452:10;3490:3;3486:2;3482:12;3477:3;3474:21;3471:2;;;3498:18;;:::i;:::-;3534:13;;3372:181;-1:-1:-1;;;;3372:181:139:o;3558:135::-;3597:3;-1:-1:-1;;3618:17:139;;3615:2;;;3638:18;;:::i;:::-;-1:-1:-1;3685:1:139;3674:13;;3605:88::o;3698:127::-;3759:10;3754:3;3750:20;3747:1;3740:31;3790:4;3787:1;3780:15;3814:4;3811:1;3804:15;3830:127;3891:10;3886:3;3882:20;3879:1;3872:31;3922:4;3919:1;3912:15;3946:4;3943:1;3936:15;3862:95;231:3102:123;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6934:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:742:139","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:139"},"nodeType":"YulFunctionCall","src":"128:20:139"},"nodeType":"YulExpressionStatement","src":"128:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:139"},"nodeType":"YulFunctionCall","src":"90:35:139"},"nodeType":"YulIf","src":"87:2:139"},{"nodeType":"YulVariableDeclaration","src":"159:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"182:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"169:12:139"},"nodeType":"YulFunctionCall","src":"169:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"198:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"208:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"202:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"221:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"288:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"248:39:139"},"nodeType":"YulFunctionCall","src":"248:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"232:15:139"},"nodeType":"YulFunctionCall","src":"232:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"225:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"301:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"314:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"305:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"333:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"338:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"326:6:139"},"nodeType":"YulFunctionCall","src":"326:15:139"},"nodeType":"YulExpressionStatement","src":"326:15:139"},{"nodeType":"YulAssignment","src":"350:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"361:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"366:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"357:3:139"},"nodeType":"YulFunctionCall","src":"357:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"350:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"378:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"393:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"401:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"389:3:139"},"nodeType":"YulFunctionCall","src":"389:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"382:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"458:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"467:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"474:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"460:6:139"},"nodeType":"YulFunctionCall","src":"460:20:139"},"nodeType":"YulExpressionStatement","src":"460:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"427:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"439:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"442:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"435:3:139"},"nodeType":"YulFunctionCall","src":"435:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"423:3:139"},"nodeType":"YulFunctionCall","src":"423:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"448:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"419:3:139"},"nodeType":"YulFunctionCall","src":"419:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"453:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"416:2:139"},"nodeType":"YulFunctionCall","src":"416:41:139"},"nodeType":"YulIf","src":"413:2:139"},{"nodeType":"YulVariableDeclaration","src":"491:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"500:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"495:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"559:231:139","statements":[{"nodeType":"YulVariableDeclaration","src":"573:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"599:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"586:12:139"},"nodeType":"YulFunctionCall","src":"586:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"577:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"661:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"670:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"677:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"663:6:139"},"nodeType":"YulFunctionCall","src":"663:20:139"},"nodeType":"YulExpressionStatement","src":"663:20:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"629:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"640:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"647:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"636:3:139"},"nodeType":"YulFunctionCall","src":"636:22:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"626:2:139"},"nodeType":"YulFunctionCall","src":"626:33:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"619:6:139"},"nodeType":"YulFunctionCall","src":"619:41:139"},"nodeType":"YulIf","src":"616:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"705:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"710:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"698:6:139"},"nodeType":"YulFunctionCall","src":"698:18:139"},"nodeType":"YulExpressionStatement","src":"698:18:139"},{"nodeType":"YulAssignment","src":"729:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"740:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"745:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"736:3:139"},"nodeType":"YulFunctionCall","src":"736:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"729:3:139"}]},{"nodeType":"YulAssignment","src":"761:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"772:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"777:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"768:3:139"},"nodeType":"YulFunctionCall","src":"768:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"761:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"525:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"528:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"522:2:139"},"nodeType":"YulFunctionCall","src":"522:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"532:18:139","statements":[{"nodeType":"YulAssignment","src":"534:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"543:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"546:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"539:3:139"},"nodeType":"YulFunctionCall","src":"539:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"534:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"518:3:139","statements":[]},"src":"514:276:139"},{"nodeType":"YulAssignment","src":"799:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"808:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"799:5:139"}]}]},"name":"abi_decode_array_uint32_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:139","type":""}],"src":"14:805:139"},{"body":{"nodeType":"YulBlock","src":"894:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"940:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"949:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"957:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"942:6:139"},"nodeType":"YulFunctionCall","src":"942:22:139"},"nodeType":"YulExpressionStatement","src":"942:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"915:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"924:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"911:3:139"},"nodeType":"YulFunctionCall","src":"911:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"936:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"907:3:139"},"nodeType":"YulFunctionCall","src":"907:32:139"},"nodeType":"YulIf","src":"904:2:139"},{"nodeType":"YulVariableDeclaration","src":"975:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1001:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"988:12:139"},"nodeType":"YulFunctionCall","src":"988:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"979:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1045:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1020:24:139"},"nodeType":"YulFunctionCall","src":"1020:31:139"},"nodeType":"YulExpressionStatement","src":"1020:31:139"},{"nodeType":"YulAssignment","src":"1060:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1070:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1060:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"860:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"871:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"883:6:139","type":""}],"src":"824:257:139"},{"body":{"nodeType":"YulBlock","src":"1222:1143:139","statements":[{"body":{"nodeType":"YulBlock","src":"1268:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1277:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1285:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1270:6:139"},"nodeType":"YulFunctionCall","src":"1270:22:139"},"nodeType":"YulExpressionStatement","src":"1270:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1243:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1239:3:139"},"nodeType":"YulFunctionCall","src":"1239:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1264:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1235:3:139"},"nodeType":"YulFunctionCall","src":"1235:32:139"},"nodeType":"YulIf","src":"1232:2:139"},{"nodeType":"YulVariableDeclaration","src":"1303:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1330:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1317:12:139"},"nodeType":"YulFunctionCall","src":"1317:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1307:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1349:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1359:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1353:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1404:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1413:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1421:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1406:6:139"},"nodeType":"YulFunctionCall","src":"1406:22:139"},"nodeType":"YulExpressionStatement","src":"1406:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1392:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1400:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:139"},"nodeType":"YulFunctionCall","src":"1389:14:139"},"nodeType":"YulIf","src":"1386:2:139"},{"nodeType":"YulVariableDeclaration","src":"1439:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1453:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1464:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1449:3:139"},"nodeType":"YulFunctionCall","src":"1449:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1443:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1519:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1528:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1536:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1521:6:139"},"nodeType":"YulFunctionCall","src":"1521:22:139"},"nodeType":"YulExpressionStatement","src":"1521:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1498:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1502:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1494:3:139"},"nodeType":"YulFunctionCall","src":"1494:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1509:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1490:3:139"},"nodeType":"YulFunctionCall","src":"1490:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1483:6:139"},"nodeType":"YulFunctionCall","src":"1483:35:139"},"nodeType":"YulIf","src":"1480:2:139"},{"nodeType":"YulVariableDeclaration","src":"1554:26:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1577:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1564:12:139"},"nodeType":"YulFunctionCall","src":"1564:16:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1558:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1589:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1599:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1593:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1612:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1679:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1639:39:139"},"nodeType":"YulFunctionCall","src":"1639:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1623:15:139"},"nodeType":"YulFunctionCall","src":"1623:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1616:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1692:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1705:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1696:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1724:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1729:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1717:6:139"},"nodeType":"YulFunctionCall","src":"1717:15:139"},"nodeType":"YulExpressionStatement","src":"1717:15:139"},{"nodeType":"YulAssignment","src":"1741:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1752:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1757:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1748:3:139"},"nodeType":"YulFunctionCall","src":"1748:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1741:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1769:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1784:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1788:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1780:3:139"},"nodeType":"YulFunctionCall","src":"1780:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1773:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1845:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1854:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1862:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1847:6:139"},"nodeType":"YulFunctionCall","src":"1847:22:139"},"nodeType":"YulExpressionStatement","src":"1847:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1814:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1822:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"1825:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1818:3:139"},"nodeType":"YulFunctionCall","src":"1818:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1810:3:139"},"nodeType":"YulFunctionCall","src":"1810:19:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1831:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1806:3:139"},"nodeType":"YulFunctionCall","src":"1806:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1836:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1803:2:139"},"nodeType":"YulFunctionCall","src":"1803:41:139"},"nodeType":"YulIf","src":"1800:2:139"},{"nodeType":"YulVariableDeclaration","src":"1880:15:139","value":{"name":"value1","nodeType":"YulIdentifier","src":"1889:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1884:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1949:193:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1963:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1989:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1976:12:139"},"nodeType":"YulFunctionCall","src":"1976:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1967:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2031:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2006:24:139"},"nodeType":"YulFunctionCall","src":"2006:31:139"},"nodeType":"YulExpressionStatement","src":"2006:31:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2057:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"2062:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2050:6:139"},"nodeType":"YulFunctionCall","src":"2050:18:139"},"nodeType":"YulExpressionStatement","src":"2050:18:139"},{"nodeType":"YulAssignment","src":"2081:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2092:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2097:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2088:3:139"},"nodeType":"YulFunctionCall","src":"2088:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2081:3:139"}]},{"nodeType":"YulAssignment","src":"2113:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2124:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2129:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2120:3:139"},"nodeType":"YulFunctionCall","src":"2120:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2113:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1915:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1918:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1912:2:139"},"nodeType":"YulFunctionCall","src":"1912:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1922:18:139","statements":[{"nodeType":"YulAssignment","src":"1924:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1933:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1936:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1929:3:139"},"nodeType":"YulFunctionCall","src":"1929:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1924:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1908:3:139","statements":[]},"src":"1904:238:139"},{"nodeType":"YulAssignment","src":"2151:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2161:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2151:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2175:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2208:9:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2219:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2204:3:139"},"nodeType":"YulFunctionCall","src":"2204:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2191:12:139"},"nodeType":"YulFunctionCall","src":"2191:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2179:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2252:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2261:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2269:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2254:6:139"},"nodeType":"YulFunctionCall","src":"2254:22:139"},"nodeType":"YulExpressionStatement","src":"2254:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2238:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2248:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2235:2:139"},"nodeType":"YulFunctionCall","src":"2235:16:139"},"nodeType":"YulIf","src":"2232:2:139"},{"nodeType":"YulAssignment","src":"2287:72:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2329:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2340:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2325:3:139"},"nodeType":"YulFunctionCall","src":"2325:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2351:7:139"}],"functionName":{"name":"abi_decode_array_uint32_dyn","nodeType":"YulIdentifier","src":"2297:27:139"},"nodeType":"YulFunctionCall","src":"2297:62:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2287:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1180:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1191:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1203:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1211:6:139","type":""}],"src":"1086:1279:139"},{"body":{"nodeType":"YulBlock","src":"2464:272:139","statements":[{"body":{"nodeType":"YulBlock","src":"2510:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2519:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2527:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:139"},"nodeType":"YulFunctionCall","src":"2512:22:139"},"nodeType":"YulExpressionStatement","src":"2512:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2485:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2494:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2481:3:139"},"nodeType":"YulFunctionCall","src":"2481:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2506:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2477:3:139"},"nodeType":"YulFunctionCall","src":"2477:32:139"},"nodeType":"YulIf","src":"2474:2:139"},{"nodeType":"YulVariableDeclaration","src":"2545:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2572:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2559:12:139"},"nodeType":"YulFunctionCall","src":"2559:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2549:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2625:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2634:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2642:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2627:6:139"},"nodeType":"YulFunctionCall","src":"2627:22:139"},"nodeType":"YulExpressionStatement","src":"2627:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2597:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2605:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2594:2:139"},"nodeType":"YulFunctionCall","src":"2594:30:139"},"nodeType":"YulIf","src":"2591:2:139"},{"nodeType":"YulAssignment","src":"2660:70:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2702:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2713:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2698:3:139"},"nodeType":"YulFunctionCall","src":"2698:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2722:7:139"}],"functionName":{"name":"abi_decode_array_uint32_dyn","nodeType":"YulIdentifier","src":"2670:27:139"},"nodeType":"YulFunctionCall","src":"2670:60:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2660:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_uint32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2430:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2441:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2453:6:139","type":""}],"src":"2370:366:139"},{"body":{"nodeType":"YulBlock","src":"2819:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"2865:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2874:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2882:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2867:6:139"},"nodeType":"YulFunctionCall","src":"2867:22:139"},"nodeType":"YulExpressionStatement","src":"2867:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2840:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2849:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2836:3:139"},"nodeType":"YulFunctionCall","src":"2836:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2861:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2832:3:139"},"nodeType":"YulFunctionCall","src":"2832:32:139"},"nodeType":"YulIf","src":"2829:2:139"},{"nodeType":"YulVariableDeclaration","src":"2900:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2919:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2913:5:139"},"nodeType":"YulFunctionCall","src":"2913:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2904:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2982:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2991:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2999:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2984:6:139"},"nodeType":"YulFunctionCall","src":"2984:22:139"},"nodeType":"YulExpressionStatement","src":"2984:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2951:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2972:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2965:6:139"},"nodeType":"YulFunctionCall","src":"2965:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2958:6:139"},"nodeType":"YulFunctionCall","src":"2958:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2948:2:139"},"nodeType":"YulFunctionCall","src":"2948:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2941:6:139"},"nodeType":"YulFunctionCall","src":"2941:40:139"},"nodeType":"YulIf","src":"2938:2:139"},{"nodeType":"YulAssignment","src":"3017:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3027:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3017:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2785:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2796:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2808:6:139","type":""}],"src":"2741:297:139"},{"body":{"nodeType":"YulBlock","src":"3128:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"3174:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3183:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3191:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3176:6:139"},"nodeType":"YulFunctionCall","src":"3176:22:139"},"nodeType":"YulExpressionStatement","src":"3176:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3149:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3158:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3145:3:139"},"nodeType":"YulFunctionCall","src":"3145:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3170:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3141:3:139"},"nodeType":"YulFunctionCall","src":"3141:32:139"},"nodeType":"YulIf","src":"3138:2:139"},{"nodeType":"YulVariableDeclaration","src":"3209:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3235:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3222:12:139"},"nodeType":"YulFunctionCall","src":"3222:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3213:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3279:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3254:24:139"},"nodeType":"YulFunctionCall","src":"3254:31:139"},"nodeType":"YulExpressionStatement","src":"3254:31:139"},{"nodeType":"YulAssignment","src":"3294:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3304:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3294:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$5767","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3094:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3105:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3117:6:139","type":""}],"src":"3043:272:139"},{"body":{"nodeType":"YulBlock","src":"3390:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"3436:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3445:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3453:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3438:6:139"},"nodeType":"YulFunctionCall","src":"3438:22:139"},"nodeType":"YulExpressionStatement","src":"3438:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3411:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3407:3:139"},"nodeType":"YulFunctionCall","src":"3407:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3432:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3403:3:139"},"nodeType":"YulFunctionCall","src":"3403:32:139"},"nodeType":"YulIf","src":"3400:2:139"},{"nodeType":"YulAssignment","src":"3471:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3494:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3481:12:139"},"nodeType":"YulFunctionCall","src":"3481:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3471:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3356:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3367:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3379:6:139","type":""}],"src":"3320:190:139"},{"body":{"nodeType":"YulBlock","src":"3596:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"3642:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3651:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3659:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3644:6:139"},"nodeType":"YulFunctionCall","src":"3644:22:139"},"nodeType":"YulExpressionStatement","src":"3644:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3617:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3613:3:139"},"nodeType":"YulFunctionCall","src":"3613:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3638:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3609:3:139"},"nodeType":"YulFunctionCall","src":"3609:32:139"},"nodeType":"YulIf","src":"3606:2:139"},{"nodeType":"YulAssignment","src":"3677:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3693:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3687:5:139"},"nodeType":"YulFunctionCall","src":"3687:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3677:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3562:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3573:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3585:6:139","type":""}],"src":"3515:194:139"},{"body":{"nodeType":"YulBlock","src":"3815:102:139","statements":[{"nodeType":"YulAssignment","src":"3825:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3837:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3848:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3833:3:139"},"nodeType":"YulFunctionCall","src":"3833:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3825:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3867:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3882:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3898:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3903:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3894:3:139"},"nodeType":"YulFunctionCall","src":"3894:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"3907:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3890:3:139"},"nodeType":"YulFunctionCall","src":"3890:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3878:3:139"},"nodeType":"YulFunctionCall","src":"3878:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3860:6:139"},"nodeType":"YulFunctionCall","src":"3860:51:139"},"nodeType":"YulExpressionStatement","src":"3860:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3784:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3795:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3806:4:139","type":""}],"src":"3714:203:139"},{"body":{"nodeType":"YulBlock","src":"4051:145:139","statements":[{"nodeType":"YulAssignment","src":"4061:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4073:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4084:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4069:3:139"},"nodeType":"YulFunctionCall","src":"4069:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4061:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4103:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4118:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4134:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4139:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4130:3:139"},"nodeType":"YulFunctionCall","src":"4130:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4143:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4126:3:139"},"nodeType":"YulFunctionCall","src":"4126:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4114:3:139"},"nodeType":"YulFunctionCall","src":"4114:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4096:6:139"},"nodeType":"YulFunctionCall","src":"4096:51:139"},"nodeType":"YulExpressionStatement","src":"4096:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4167:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4178:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4163:3:139"},"nodeType":"YulFunctionCall","src":"4163:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4183:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4156:6:139"},"nodeType":"YulFunctionCall","src":"4156:34:139"},"nodeType":"YulExpressionStatement","src":"4156:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4012:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4023:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4031:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4042:4:139","type":""}],"src":"3922:274:139"},{"body":{"nodeType":"YulBlock","src":"4375:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4392:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4403:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4385:6:139"},"nodeType":"YulFunctionCall","src":"4385:21:139"},"nodeType":"YulExpressionStatement","src":"4385:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4426:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4437:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4422:3:139"},"nodeType":"YulFunctionCall","src":"4422:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4442:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4415:6:139"},"nodeType":"YulFunctionCall","src":"4415:30:139"},"nodeType":"YulExpressionStatement","src":"4415:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4465:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4476:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4461:3:139"},"nodeType":"YulFunctionCall","src":"4461:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4481:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4454:6:139"},"nodeType":"YulFunctionCall","src":"4454:62:139"},"nodeType":"YulExpressionStatement","src":"4454:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4536:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4547:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4532:3:139"},"nodeType":"YulFunctionCall","src":"4532:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4552:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4525:6:139"},"nodeType":"YulFunctionCall","src":"4525:36:139"},"nodeType":"YulExpressionStatement","src":"4525:36:139"},{"nodeType":"YulAssignment","src":"4570:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4582:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4593:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4578:3:139"},"nodeType":"YulFunctionCall","src":"4578:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4570:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4352:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4366:4:139","type":""}],"src":"4201:402:139"},{"body":{"nodeType":"YulBlock","src":"4782:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4799:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4810:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4792:6:139"},"nodeType":"YulFunctionCall","src":"4792:21:139"},"nodeType":"YulExpressionStatement","src":"4792:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4833:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4844:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4829:3:139"},"nodeType":"YulFunctionCall","src":"4829:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4849:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4822:6:139"},"nodeType":"YulFunctionCall","src":"4822:30:139"},"nodeType":"YulExpressionStatement","src":"4822:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4872:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4883:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4868:3:139"},"nodeType":"YulFunctionCall","src":"4868:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4888:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4861:6:139"},"nodeType":"YulFunctionCall","src":"4861:62:139"},"nodeType":"YulExpressionStatement","src":"4861:62:139"},{"nodeType":"YulAssignment","src":"4932:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4944:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4955:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4940:3:139"},"nodeType":"YulFunctionCall","src":"4940:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4932:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4759:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4773:4:139","type":""}],"src":"4608:356:139"},{"body":{"nodeType":"YulBlock","src":"5143:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5160:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5171:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5153:6:139"},"nodeType":"YulFunctionCall","src":"5153:21:139"},"nodeType":"YulExpressionStatement","src":"5153:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5194:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5205:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5190:3:139"},"nodeType":"YulFunctionCall","src":"5190:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5210:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5183:6:139"},"nodeType":"YulFunctionCall","src":"5183:30:139"},"nodeType":"YulExpressionStatement","src":"5183:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5233:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5244:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5229:3:139"},"nodeType":"YulFunctionCall","src":"5229:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5249:21:139","type":"","value":"invalid percentages"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5222:6:139"},"nodeType":"YulFunctionCall","src":"5222:49:139"},"nodeType":"YulExpressionStatement","src":"5222:49:139"},{"nodeType":"YulAssignment","src":"5280:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5292:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5303:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5288:3:139"},"nodeType":"YulFunctionCall","src":"5288:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5280:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5120:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5134:4:139","type":""}],"src":"4969:343:139"},{"body":{"nodeType":"YulBlock","src":"5418:76:139","statements":[{"nodeType":"YulAssignment","src":"5428:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5440:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5451:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5436:3:139"},"nodeType":"YulFunctionCall","src":"5436:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5428:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5470:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5481:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5463:6:139"},"nodeType":"YulFunctionCall","src":"5463:25:139"},"nodeType":"YulExpressionStatement","src":"5463:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5387:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5398:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5409:4:139","type":""}],"src":"5317:177:139"},{"body":{"nodeType":"YulBlock","src":"5598:93:139","statements":[{"nodeType":"YulAssignment","src":"5608:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5620:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5631:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5616:3:139"},"nodeType":"YulFunctionCall","src":"5616:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5608:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5650:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5665:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5673:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5661:3:139"},"nodeType":"YulFunctionCall","src":"5661:23:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5643:6:139"},"nodeType":"YulFunctionCall","src":"5643:42:139"},"nodeType":"YulExpressionStatement","src":"5643:42:139"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5567:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5578:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5589:4:139","type":""}],"src":"5499:192:139"},{"body":{"nodeType":"YulBlock","src":"5741:230:139","statements":[{"nodeType":"YulAssignment","src":"5751:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5767:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5761:5:139"},"nodeType":"YulFunctionCall","src":"5761:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5751:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5779:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5801:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"5817:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"5823:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5813:3:139"},"nodeType":"YulFunctionCall","src":"5813:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5832:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5828:3:139"},"nodeType":"YulFunctionCall","src":"5828:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5809:3:139"},"nodeType":"YulFunctionCall","src":"5809:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5797:3:139"},"nodeType":"YulFunctionCall","src":"5797:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"5783:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5912:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5914:16:139"},"nodeType":"YulFunctionCall","src":"5914:18:139"},"nodeType":"YulExpressionStatement","src":"5914:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5855:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"5867:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5852:2:139"},"nodeType":"YulFunctionCall","src":"5852:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5891:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"5903:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5888:2:139"},"nodeType":"YulFunctionCall","src":"5888:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5849:2:139"},"nodeType":"YulFunctionCall","src":"5849:62:139"},"nodeType":"YulIf","src":"5846:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5950:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5954:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5943:6:139"},"nodeType":"YulFunctionCall","src":"5943:22:139"},"nodeType":"YulExpressionStatement","src":"5943:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"5721:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"5730:6:139","type":""}],"src":"5696:275:139"},{"body":{"nodeType":"YulBlock","src":"6045:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"6089:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"6091:16:139"},"nodeType":"YulFunctionCall","src":"6091:18:139"},"nodeType":"YulExpressionStatement","src":"6091:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6061:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6069:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6058:2:139"},"nodeType":"YulFunctionCall","src":"6058:30:139"},"nodeType":"YulIf","src":"6055:2:139"},{"nodeType":"YulAssignment","src":"6120:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6136:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"6139:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6132:3:139"},"nodeType":"YulFunctionCall","src":"6132:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"6148:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6128:3:139"},"nodeType":"YulFunctionCall","src":"6128:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6120:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"6025:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"6036:4:139","type":""}],"src":"5976:183:139"},{"body":{"nodeType":"YulBlock","src":"6211:181:139","statements":[{"nodeType":"YulVariableDeclaration","src":"6221:20:139","value":{"kind":"number","nodeType":"YulLiteral","src":"6231:10:139","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6225:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6250:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6265:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6268:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6261:3:139"},"nodeType":"YulFunctionCall","src":"6261:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"6254:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6280:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6295:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6298:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6291:3:139"},"nodeType":"YulFunctionCall","src":"6291:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"6284:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6335:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6337:16:139"},"nodeType":"YulFunctionCall","src":"6337:18:139"},"nodeType":"YulExpressionStatement","src":"6337:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"6316:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6325:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"6329:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6321:3:139"},"nodeType":"YulFunctionCall","src":"6321:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6313:2:139"},"nodeType":"YulFunctionCall","src":"6313:21:139"},"nodeType":"YulIf","src":"6310:2:139"},{"nodeType":"YulAssignment","src":"6366:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"6377:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"6382:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6373:3:139"},"nodeType":"YulFunctionCall","src":"6373:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6366:3:139"}]}]},"name":"checked_add_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6194:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"6197:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6203:3:139","type":""}],"src":"6164:228:139"},{"body":{"nodeType":"YulBlock","src":"6444:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"6475:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6477:16:139"},"nodeType":"YulFunctionCall","src":"6477:18:139"},"nodeType":"YulExpressionStatement","src":"6477:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6460:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6471:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6467:3:139"},"nodeType":"YulFunctionCall","src":"6467:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6457:2:139"},"nodeType":"YulFunctionCall","src":"6457:17:139"},"nodeType":"YulIf","src":"6454:2:139"},{"nodeType":"YulAssignment","src":"6506:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6517:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"6524:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6513:3:139"},"nodeType":"YulFunctionCall","src":"6513:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"6506:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6426:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"6436:3:139","type":""}],"src":"6397:135:139"},{"body":{"nodeType":"YulBlock","src":"6569:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6586:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6593:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6598:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6589:3:139"},"nodeType":"YulFunctionCall","src":"6589:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6579:6:139"},"nodeType":"YulFunctionCall","src":"6579:31:139"},"nodeType":"YulExpressionStatement","src":"6579:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6626:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6629:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6619:6:139"},"nodeType":"YulFunctionCall","src":"6619:15:139"},"nodeType":"YulExpressionStatement","src":"6619:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6650:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6653:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6643:6:139"},"nodeType":"YulFunctionCall","src":"6643:15:139"},"nodeType":"YulExpressionStatement","src":"6643:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"6537:127:139"},{"body":{"nodeType":"YulBlock","src":"6701:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6718:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6725:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6730:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6721:3:139"},"nodeType":"YulFunctionCall","src":"6721:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6711:6:139"},"nodeType":"YulFunctionCall","src":"6711:31:139"},"nodeType":"YulExpressionStatement","src":"6711:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6758:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6761:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6751:6:139"},"nodeType":"YulFunctionCall","src":"6751:15:139"},"nodeType":"YulExpressionStatement","src":"6751:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6782:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6785:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6775:6:139"},"nodeType":"YulFunctionCall","src":"6775:15:139"},"nodeType":"YulExpressionStatement","src":"6775:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"6669:127:139"},{"body":{"nodeType":"YulBlock","src":"6846:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"6910:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6919:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6922:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6912:6:139"},"nodeType":"YulFunctionCall","src":"6912:12:139"},"nodeType":"YulExpressionStatement","src":"6912:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6869:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6880:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6895:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6900:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6891:3:139"},"nodeType":"YulFunctionCall","src":"6891:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6904:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6887:3:139"},"nodeType":"YulFunctionCall","src":"6887:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6876:3:139"},"nodeType":"YulFunctionCall","src":"6876:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6866:2:139"},"nodeType":"YulFunctionCall","src":"6866:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6859:6:139"},"nodeType":"YulFunctionCall","src":"6859:50:139"},"nodeType":"YulIf","src":"6856:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6835:5:139","type":""}],"src":"6801:131:139"}]},"contents":"{\n    { }\n    function abi_decode_array_uint32_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            if iszero(eq(value, and(value, 0xffffffff))) { revert(array, array) }\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value1, value1) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _3 := calldataload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let src := add(_2, _4)\n        if gt(add(add(_2, shl(5, _3)), _4), dataEnd) { revert(value1, value1) }\n        let i := value1\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n            src := add(src, _4)\n        }\n        value0 := dst_1\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_uint32_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_uint32_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        value0 := abi_decode_array_uint32_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$5767(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"invalid percentages\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff))\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint32(x, y) -> sum\n    {\n        let _1 := 0xffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100aa5760003560e01c8063bce5826911610064578063bce5826914610191578063c45ff544146101b1578063e086e5ec146101d1578063f2a40db8146101e6578063f2fde38b14610206578063f4f3b20014610226576100b9565b80623f619d146100ce5780633f26479e1461010857806344def48f1461012d578063715018a61461014d5780638da5cb5b14610162578063b8b9b54914610189576100b9565b366100b9576100b7610246565b005b3480156100c557600080fd5b506100b7610246565b3480156100da57600080fd5b506100ee6100e9366004610b84565b610328565b60405163ffffffff90911681526020015b60405180910390f35b34801561011457600080fd5b5061011f620f424081565b6040519081526020016100ff565b34801561013957600080fd5b506100b7610148366004610a66565b610362565b34801561015957600080fd5b506100b761039f565b34801561016e57600080fd5b506000546001600160a01b03165b6040516100ff9190610bb4565b6100b7610246565b34801561019d57600080fd5b506100b76101ac366004610a43565b6103b3565b3480156101bd57600080fd5b506100b76101cc366004610b29565b610541565b3480156101dd57600080fd5b506100b76105f1565b3480156101f257600080fd5b5061017c610201366004610b84565b610636565b34801561021257600080fd5b506100b7610221366004610a43565b610660565b34801561023257600080fd5b506100b7610241366004610a43565b6106d6565b600154479060005b818110156103235760006102ad846002848154811061027d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600882040154620f424060079092166004026101000a900463ffffffff16919091020490565b9050600182815481106102d057634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610310573d6000803e3d6000fd5b50508061031c90610c45565b905061024e565b505050565b6002818154811061033857600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b61036a6107f9565b815161037d9060019060208501906108a3565b508051610391906002906020840190610908565b5061039b81610541565b5050565b6103a76107f9565b6103b16000610853565b565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906103e2903090600401610bb4565b60206040518083038186803b1580156103fa57600080fd5b505afa15801561040e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104329190610b9c565b60015490915060005b8181101561053b57600061046a846002848154811061027d57634e487b7160e01b600052603260045260246000fd5b9050846001600160a01b031663a9059cbb6001848154811061049c57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190610b64565b50508061053490610c45565b905061043b565b50505050565b6105496107f9565b6000805b825181101561059d5782818151811061057657634e487b7160e01b600052603260045260246000fd5b6020026020010151826105899190610c1d565b91508061059581610c45565b91505061054d565b50620f42408163ffffffff161461039b5760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642070657263656e746167657360681b60448201526064015b60405180910390fd5b6105f96107f9565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610633573d6000803e3d6000fd5b50565b6001818154811061064657600080fd5b6000918252602090912001546001600160a01b0316905081565b6106686107f9565b6001600160a01b0381166106cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e8565b61063381610853565b6106de6107f9565b806001600160a01b031663a9059cbb6106ff6000546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b038516906370a082319061072b903090600401610bb4565b60206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610b9c565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156107c157600080fd5b505af11580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039b9190610b64565b6000546001600160a01b031633146103b15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280548282559060005260206000209081019282156108f8579160200282015b828111156108f857825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906108c3565b506109049291506109ae565b5090565b828054828255906000526020600020906007016008900481019282156108f85791602002820160005b8382111561097557835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302610931565b80156109a55782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610975565b50506109049291505b5b8082111561090457600081556001016109af565b600082601f8301126109d3578081fd5b813560206109e86109e383610bf9565b610bc8565b80838252828201915082860187848660051b8901011115610a07578586fd5b855b85811015610a3657813563ffffffff81168114610a24578788fd5b84529284019290840190600101610a09565b5090979650505050505050565b600060208284031215610a54578081fd5b8135610a5f81610c8c565b9392505050565b60008060408385031215610a78578081fd5b823567ffffffffffffffff80821115610a8f578283fd5b818501915085601f830112610aa2578283fd5b81356020610ab26109e383610bf9565b8083825282820191508286018a848660051b8901011115610ad1578788fd5b8796505b84871015610afc578035610ae881610c8c565b835260019690960195918301918301610ad5565b5096505086013592505080821115610b12578283fd5b50610b1f858286016109c3565b9150509250929050565b600060208284031215610b3a578081fd5b813567ffffffffffffffff811115610b50578182fd5b610b5c848285016109c3565b949350505050565b600060208284031215610b75578081fd5b81518015158114610a5f578182fd5b600060208284031215610b95578081fd5b5035919050565b600060208284031215610bad578081fd5b5051919050565b6001600160a01b0391909116815260200190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610bf157610bf1610c76565b604052919050565b600067ffffffffffffffff821115610c1357610c13610c76565b5060051b60200190565b600063ffffffff808316818516808303821115610c3c57610c3c610c60565b01949350505050565b6000600019821415610c5957610c59610c60565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461063357600080fdfea2646970667358221220d96acc1b71c0987ca391a383300c89e0ce69edb863a66b2d49cae7d3623c6bd264736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBCE58269 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xBCE58269 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0xC45FF544 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xE086E5EC EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xF2A40DB8 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xF4F3B200 EQ PUSH2 0x226 JUMPI PUSH2 0xB9 JUMP JUMPDEST DUP1 PUSH3 0x3F619D EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x3F26479E EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0x44DEF48F EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0xB8B9B549 EQ PUSH2 0x189 JUMPI PUSH2 0xB9 JUMP JUMPDEST CALLDATASIZE PUSH2 0xB9 JUMPI PUSH2 0xB7 PUSH2 0x246 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x246 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEE PUSH2 0xE9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB84 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x114 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0xA66 JUMP JUMPDEST PUSH2 0x362 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x159 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x39F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFF SWAP2 SWAP1 PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0xB7 PUSH2 0x246 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x1AC CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0xB29 JUMP JUMPDEST PUSH2 0x541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x5F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0xB84 JUMP JUMPDEST PUSH2 0x636 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x221 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0x241 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x1 SLOAD SELFBALANCE SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 PUSH2 0x2AD DUP5 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x27D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x8 DUP3 DIV ADD SLOAD PUSH3 0xF4240 PUSH1 0x7 SWAP1 SWAP3 AND PUSH1 0x4 MUL PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP2 SWAP1 SWAP2 MUL DIV SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x310 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP1 PUSH2 0x31C SWAP1 PUSH2 0xC45 JUMP JUMPDEST SWAP1 POP PUSH2 0x24E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x8 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD PUSH1 0x4 MUL SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x36A PUSH2 0x7F9 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x37D SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x8A3 JUMP JUMPDEST POP DUP1 MLOAD PUSH2 0x391 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x908 JUMP JUMPDEST POP PUSH2 0x39B DUP2 PUSH2 0x541 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x7F9 JUMP JUMPDEST PUSH2 0x3B1 PUSH1 0x0 PUSH2 0x853 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x3E2 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0xBB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x432 SWAP2 SWAP1 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x53B JUMPI PUSH1 0x0 PUSH2 0x46A DUP5 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x27D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x49C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x504 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x528 SWAP2 SWAP1 PUSH2 0xB64 JUMP JUMPDEST POP POP DUP1 PUSH2 0x534 SWAP1 PUSH2 0xC45 JUMP JUMPDEST SWAP1 POP PUSH2 0x43B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x549 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x59D JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x576 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH2 0x589 SWAP2 SWAP1 PUSH2 0xC1D JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x595 DUP2 PUSH2 0xC45 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x54D JUMP JUMPDEST POP PUSH3 0xF4240 DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH2 0x39B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x696E76616C69642070657263656E7461676573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5F9 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP3 SWAP1 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH2 0x668 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E8 JUMP JUMPDEST PUSH2 0x633 DUP2 PUSH2 0x853 JUMP JUMPDEST PUSH2 0x6DE PUSH2 0x7F9 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x6FF PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x72B SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0xBB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39B SWAP2 SWAP1 PUSH2 0xB64 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x8F8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8F8 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 0x8C3 JUMP JUMPDEST POP PUSH2 0x904 SWAP3 SWAP2 POP PUSH2 0x9AE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 ADD PUSH1 0x8 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x8F8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x975 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x931 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A5 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x975 JUMP JUMPDEST POP POP PUSH2 0x904 SWAP3 SWAP2 POP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x9E8 PUSH2 0x9E3 DUP4 PUSH2 0xBF9 JUMP JUMPDEST PUSH2 0xBC8 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xA07 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0xA36 JUMPI DUP2 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xA24 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xA09 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA54 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA5F DUP2 PUSH2 0xC8C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA78 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xA8F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xAA2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xAB2 PUSH2 0x9E3 DUP4 PUSH2 0xBF9 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP11 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xAD1 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0xAFC JUMPI DUP1 CALLDATALOAD PUSH2 0xAE8 DUP2 PUSH2 0xC8C JUMP JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0xAD5 JUMP JUMPDEST POP SWAP7 POP POP DUP7 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0xB12 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0xB1F DUP6 DUP3 DUP7 ADD PUSH2 0x9C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB50 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xB5C DUP5 DUP3 DUP6 ADD PUSH2 0x9C3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xA5F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB95 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBAD JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xBF1 JUMPI PUSH2 0xBF1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC13 JUMPI PUSH2 0xC13 PUSH2 0xC76 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0xC3C JUMPI PUSH2 0xC3C PUSH2 0xC60 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0xC59 JUMPI PUSH2 0xC59 PUSH2 0xC60 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 PUSH11 0xCC1B71C0987CA391A38330 0xC DUP10 0xE0 0xCE PUSH10 0xEDB863A66B2D49CAE7D3 PUSH3 0x3C6BD2 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"231:3102:123:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;743:15;:13;:15::i;:::-;231:3102;;;;;;;;;;;;678:15;:13;:15::i;386:34::-;;;;;;;;;;-1:-1:-1;386:34:123;;;;;:::i;:::-;;:::i;:::-;;;5673:10:139;5661:23;;;5643:42;;5631:2;5616:18;386:34:123;;;;;;;;303:46;;;;;;;;;;;;346:3;303:46;;;;;5463:25:139;;;5451:2;5436:18;303:46:123;5418:76:139;1889:261:123;;;;;;;;;;-1:-1:-1;1889:261:123;;;;;:::i;:::-;;:::i;1831:101:4:-;;;;;;;;;;;;;:::i;1201:85::-;;;;;;;;;;-1:-1:-1;1247:7:4;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;;;;;;:::i;771:619:123:-;;;:::i;1396:487::-;;;;;;;;;;-1:-1:-1;1396:487:123;;;;;:::i;:::-;;:::i;2156:329::-;;;;;;;;;;-1:-1:-1;2156:329:123;;;;;:::i;:::-;;:::i;2491:107::-;;;;;;;;;;;;;:::i;355:25::-;;;;;;;;;;-1:-1:-1;355:25:123;;;;;:::i;:::-;;:::i;2081:198:4:-;;;;;;;;;;-1:-1:-1;2081:198:4;;;;;:::i;:::-;;:::i;2604:128:123:-;;;;;;;;;;-1:-1:-1;2604:128:123;;;;;:::i;:::-;;:::i;771:619::-;1046:8;:15;845:21;;821;1071:313;1095:14;1091:1;:18;1071:313;;;1202:11;1216:108;1258:13;1289:18;1308:1;1289:21;;;;;;-1:-1:-1;;;1289:21:123;;;;;;;;;;;;;;;;;;;;;;3298:16;1289:21;;;;;;;;;;;;3270:26;;;;3266:49;;3193:132;1216:108;1202:122;;1347:8;1356:1;1347:11;;;;;;-1:-1:-1;;;1347:11:123;;;;;;;;;;;;;;;;;;1339:34;;-1:-1:-1;;;;;1347:11:123;;;;1339:34;;;;;1369:3;;1339:34;1347:11;1339:34;1369:3;1347:11;1339:34;;;;;;;;;;;;;;;;;;;;;1071:313;1111:3;;;;:::i;:::-;;;1071:313;;;;771:619;;:::o;386:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1889:261::-;1094:13:4;:11;:13::i;:::-;2026:20:123;;::::1;::::0;:8:::1;::::0;:20:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;2056:40:123;;::::1;::::0;:18:::1;::::0;:40:::1;::::0;::::1;::::0;::::1;:::i;:::-;;2106:37;2123:19;2106:16;:37::i;:::-;1889:261:::0;;:::o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1396:487:123:-;1476:30;;-1:-1:-1;;;1476:30:123;;1452:21;;-1:-1:-1;;;;;1476:15:123;;;;;:30;;1500:4;;1476:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1541:8;:15;1452:54;;-1:-1:-1;1516:22:123;1566:311;1590:14;1586:1;:18;1566:311;;;1697:11;1711:108;1753:13;1784:18;1803:1;1784:21;;;;;;-1:-1:-1;;;1784:21:123;;;;;;;;1711:108;1697:122;;1834:5;-1:-1:-1;;;;;1834:14:123;;1849:8;1858:1;1849:11;;;;;;-1:-1:-1;;;1849:11:123;;;;;;;;;;;;;;;;;;;1834:32;;;;;;-1:-1:-1;;;;;;1834:32:123;;;-1:-1:-1;;;;;1849:11:123;;;1834:32;;;4096:51:139;4163:18;;;4156:34;;;4069:18;;1834:32:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1566:311;1606:3;;;;:::i;:::-;;;1566:311;;;;1396:487;;;:::o;2156:329::-;1094:13:4;:11;:13::i;:::-;2279:10:123::1;2308:9:::0;2303:111:::1;2327:19;:26;2323:1;:30;2303:111;;;2381:19;2401:1;2381:22;;;;;;-1:-1:-1::0;;;2381:22:123::1;;;;;;;;;;;;;;;2374:29;;;;;:::i;:::-;::::0;-1:-1:-1;2355:3:123;::::1;::::0;::::1;:::i;:::-;;;;2303:111;;;;346:3;2431;:23;;;2423:55;;;::::0;-1:-1:-1;;;2423:55:123;;5171:2:139;2423:55:123::1;::::0;::::1;5153:21:139::0;5210:2;5190:18;;;5183:30;-1:-1:-1;;;5229:18:139;;;5222:49;5288:18;;2423:55:123::1;;;;;;;;2491:107:::0;1094:13:4;:11;:13::i;:::-;1247:7;1273:6;;2543:48:123::1;::::0;-1:-1:-1;;;;;1273:6:4;;;;2569:21:123::1;2543:48:::0;::::1;;;::::0;2569:21;;2543:48;1247:7:4;2543:48:123;2569:21;1273:6:4;2543:48:123;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;2491:107::o:0;355:25::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;355:25:123;;-1:-1:-1;355:25:123;:::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;4403:2:139;2161:73:4::1;::::0;::::1;4385:21:139::0;4442:2;4422:18;;;4415:30;4481:34;4461:18;;;4454:62;-1:-1:-1;;;4532:18:139;;;4525:36;4578:19;;2161:73:4::1;4375:228:139::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;2604:128:123:-:0;1094:13:4;:11;:13::i;:::-;2670:5:123::1;-1:-1:-1::0;;;;;2670:14:123::1;;2685:7;1247::4::0;1273:6;-1:-1:-1;;;;;1273:6:4;;1201:85;2685:7:123::1;2694:30;::::0;-1:-1:-1;;;2694:30:123;;-1:-1:-1;;;;;2694:15:123;::::1;::::0;::::1;::::0;:30:::1;::::0;2718:4:::1;::::0;2694:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2670:55;::::0;-1:-1:-1;;;;;;2670:55:123::1;::::0;;;;;;-1:-1:-1;;;;;4114:32:139;;;2670:55:123::1;::::0;::::1;4096:51:139::0;4163:18;;;4156:34;4069:18;;2670:55:123::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1359:130:4:-:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;4810:2:139;1414:68:4;;;4792:21:139;;;4829:18;;;4822:30;4888:34;4868:18;;;4861:62;4940:18;;1414:68:4;4782:182:139;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:805:139;67:5;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;182:6;169:20;208:4;232:60;248:43;288:2;248:43;:::i;:::-;232:60;:::i;:::-;314:3;338:2;333:3;326:15;366:2;361:3;357:12;350:19;;401:2;393:6;389:15;453:3;448:2;442;439:1;435:10;427:6;423:23;419:32;416:41;413:2;;;474:5;467;460:20;413:2;500:5;514:276;528:2;525:1;522:9;514:276;;;599:3;586:17;647:10;640:5;636:22;629:5;626:33;616:2;;677:5;670;663:20;616:2;698:18;;736:12;;;;768;;;;546:1;539:9;514:276;;;-1:-1:-1;808:5:139;;77:742;-1:-1:-1;;;;;;;77:742:139:o;824:257::-;883:6;936:2;924:9;915:7;911:23;907:32;904:2;;;957:6;949;942:22;904:2;1001:9;988:23;1020:31;1045:5;1020:31;:::i;:::-;1070:5;894:187;-1:-1:-1;;;894:187:139:o;1086:1279::-;1203:6;1211;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1285:6;1277;1270:22;1232:2;1330:9;1317:23;1359:18;1400:2;1392:6;1389:14;1386:2;;;1421:6;1413;1406:22;1386:2;1464:6;1453:9;1449:22;1439:32;;1509:7;1502:4;1498:2;1494:13;1490:27;1480:2;;1536:6;1528;1521:22;1480:2;1577;1564:16;1599:4;1623:60;1639:43;1679:2;1639:43;:::i;1623:60::-;1705:3;1729:2;1724:3;1717:15;1757:2;1752:3;1748:12;1741:19;;1788:2;1784;1780:11;1836:7;1831:2;1825;1822:1;1818:10;1814:2;1810:19;1806:28;1803:41;1800:2;;;1862:6;1854;1847:22;1800:2;1889:6;1880:15;;1904:238;1918:2;1915:1;1912:9;1904:238;;;1989:3;1976:17;2006:31;2031:5;2006:31;:::i;:::-;2050:18;;1936:1;1929:9;;;;;2088:12;;;;2120;;1904:238;;;-1:-1:-1;2161:5:139;-1:-1:-1;;2204:18:139;;2191:32;;-1:-1:-1;;2235:16:139;;;2232:2;;;2269:6;2261;2254:22;2232:2;;2297:62;2351:7;2340:8;2329:9;2325:24;2297:62;:::i;:::-;2287:72;;;1222:1143;;;;;:::o;2370:366::-;2453:6;2506:2;2494:9;2485:7;2481:23;2477:32;2474:2;;;2527:6;2519;2512:22;2474:2;2572:9;2559:23;2605:18;2597:6;2594:30;2591:2;;;2642:6;2634;2627:22;2591:2;2670:60;2722:7;2713:6;2702:9;2698:22;2670:60;:::i;:::-;2660:70;2464:272;-1:-1:-1;;;;2464:272:139:o;2741:297::-;2808:6;2861:2;2849:9;2840:7;2836:23;2832:32;2829:2;;;2882:6;2874;2867:22;2829:2;2919:9;2913:16;2972:5;2965:13;2958:21;2951:5;2948:32;2938:2;;2999:6;2991;2984:22;3320:190;3379:6;3432:2;3420:9;3411:7;3407:23;3403:32;3400:2;;;3453:6;3445;3438:22;3400:2;-1:-1:-1;3481:23:139;;3390:120;-1:-1:-1;3390:120:139:o;3515:194::-;3585:6;3638:2;3626:9;3617:7;3613:23;3609:32;3606:2;;;3659:6;3651;3644:22;3606:2;-1:-1:-1;3687:16:139;;3596:113;-1:-1:-1;3596:113:139:o;3714:203::-;-1:-1:-1;;;;;3878:32:139;;;;3860:51;;3848:2;3833:18;;3815:102::o;5696:275::-;5767:2;5761:9;5832:2;5813:13;;-1:-1:-1;;5809:27:139;5797:40;;5867:18;5852:34;;5888:22;;;5849:62;5846:2;;;5914:18;;:::i;:::-;5950:2;5943:22;5741:230;;-1:-1:-1;5741:230:139:o;5976:183::-;6036:4;6069:18;6061:6;6058:30;6055:2;;;6091:18;;:::i;:::-;-1:-1:-1;6136:1:139;6132:14;6148:4;6128:25;;6045:114::o;6164:228::-;6203:3;6231:10;6268:2;6265:1;6261:10;6298:2;6295:1;6291:10;6329:3;6325:2;6321:12;6316:3;6313:21;6310:2;;;6337:18;;:::i;:::-;6373:13;;6211:181;-1:-1:-1;;;;6211:181:139:o;6397:135::-;6436:3;-1:-1:-1;;6457:17:139;;6454:2;;;6477:18;;:::i;:::-;-1:-1:-1;6524:1:139;6513:13;;6444:88::o;6537:127::-;6598:10;6593:3;6589:20;6586:1;6579:31;6629:4;6626:1;6619:15;6653:4;6650:1;6643:15;6669:127;6730:10;6725:3;6721:20;6718:1;6711:31;6761:4;6758:1;6751:15;6785:4;6782:1;6775:15;6801:131;-1:-1:-1;;;;;6876:31:139;;6866:42;;6856:2;;6922:1;6919;6912:12"},"methodIdentifiers":{"PERCENTAGE_SCALE()":"3f26479e","accounts(uint256)":"f2a40db8","checkPercentages(uint32[])":"c45ff544","distributeERC20(address)":"bce58269","distributeETH()":"b8b9b549","owner()":"8da5cb5b","percentAllocations(uint256)":"003f619d","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","updateSplit(address[],uint32[])":"44def48f","withdrawERC20(address)":"f4f3b200","withdrawETH()":"e086e5ec"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"_percentAllocations\",\"type\":\"uint32[]\"}],\"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\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"PERCENTAGE_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"accounts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"_percentAllocations\",\"type\":\"uint32[]\"}],\"name\":\"checkPercentages\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"distributeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributeETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"percentAllocations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"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\":\"address[]\",\"name\":\"_accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"_percentAllocations\",\"type\":\"uint32[]\"}],\"name\":\"updateSplit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"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 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\":{\"contracts/splitters/FeesSplitter.sol\":\"FeesSplitter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/splitters/FeesSplitter.sol\":{\"keccak256\":\"0x13ae8246da6f0515c634ab385803446e3c767679d46adb9576f87c78708c13c3\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9810175cf808f6c7d95ec4536bd6cb2b7c7f027def8f6002037f7e30d15403e1\",\"dweb:/ipfs/QmbKuKZAApGGYBvhp8NWPq9f7VuynbP2ngPDjtLwJom9Su\"]}},\"version\":1}"}},"contracts/splitters/MAHASplitKeeper.sol":{"ICommunityFund":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"releasableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"releasableAmount(address)":"1726cbc8","release(address)":"19165587"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"releasableAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/splitters/MAHASplitKeeper.sol\":\"ICommunityFund\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]},\"contracts/interfaces/KeeperCompatibleInterface.sol\":{\"keccak256\":\"0xd01541bff925ba14b83a37a3ab6ea20329125fe2d71a7e28afc46a9791530f0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://688f76eedb1a50c6de88bdb306c2c04a0883fa29f1ea47de7e4e51a8c5831ed7\",\"dweb:/ipfs/QmdLrXmwGrPAJXQnXasBZFwxAP7BTq5WgDtYhmaJ1nfubW\"]},\"contracts/splitters/FeesSplitter.sol\":{\"keccak256\":\"0x13ae8246da6f0515c634ab385803446e3c767679d46adb9576f87c78708c13c3\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9810175cf808f6c7d95ec4536bd6cb2b7c7f027def8f6002037f7e30d15403e1\",\"dweb:/ipfs/QmbKuKZAApGGYBvhp8NWPq9f7VuynbP2ngPDjtLwJom9Su\"]},\"contracts/splitters/MAHASplitKeeper.sol\":{\"keccak256\":\"0x99d071085fb845b0cf73042c6d2e7e6a2c57d1dd5aa2822712a15115475c72c0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9b9a16fe37c5d4ca861ff18b16f5067f2cf0b0c657ca35480733a26740574177\",\"dweb:/ipfs/QmPSX62Nmn4CVLPKZagyUD6x1kqeM8AptrLxEYSztgFLwW\"]},\"contracts/utils/Epoch.sol\":{\"keccak256\":\"0x2dbd8fd988fca4e099ad556f76607918860725d64736ab14d9c7299246c51b10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8299f51efd2a19501423a152bbc1d155dd80cc6b7c4cda0998078843800a408\",\"dweb:/ipfs/QmYEYtJtEQ42SkKdXx2HpN4BJsKEgWkDPa3jVHPU9dG8uW\"]}},\"version\":1}"},"MAHASplitKeeper":{"abi":[{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint32[]","name":"_percentAllocations","type":"uint32[]"},{"internalType":"contract IERC20","name":"_maha","type":"address"},{"internalType":"contract ICommunityFund","name":"_fund","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"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"PERCENTAGE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"accounts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"callable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"_percentAllocations","type":"uint32[]"}],"name":"checkPercentages","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"checkUpkeep","outputs":[{"internalType":"bool","name":"upkeepNeeded","type":"bool"},{"internalType":"bytes","name":"performData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityFund","outputs":[{"internalType":"contract ICommunityFund","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"distributeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"distributeMAHA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maha","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpochPoint","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":"uint256","name":"","type":"uint256"}],"name":"percentAllocations","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"performUpkeep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"releasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseAndDistributeMAHA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint32[]","name":"_percentAllocations","type":"uint32[]"}],"name":"updateSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4753:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"88:728:139","statements":[{"body":{"nodeType":"YulBlock","src":"137:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"146:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"153:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"139:6:139"},"nodeType":"YulFunctionCall","src":"139:20:139"},"nodeType":"YulExpressionStatement","src":"139:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"116:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"124:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"112:3:139"},"nodeType":"YulFunctionCall","src":"112:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"131:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:139"},"nodeType":"YulFunctionCall","src":"108:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"101:6:139"},"nodeType":"YulFunctionCall","src":"101:35:139"},"nodeType":"YulIf","src":"98:2:139"},{"nodeType":"YulVariableDeclaration","src":"170:23:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"186:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"180:5:139"},"nodeType":"YulFunctionCall","src":"180:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"174:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"202:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"212:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"206:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"225:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"292:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"252:39:139"},"nodeType":"YulFunctionCall","src":"252:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"236:15:139"},"nodeType":"YulFunctionCall","src":"236:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"229:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"305:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"318:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"309:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"337:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"342:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"330:6:139"},"nodeType":"YulFunctionCall","src":"330:15:139"},"nodeType":"YulExpressionStatement","src":"330:15:139"},{"nodeType":"YulAssignment","src":"354:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"365:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"370:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"361:3:139"},"nodeType":"YulFunctionCall","src":"361:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"354:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"382:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"397:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"405:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"393:3:139"},"nodeType":"YulFunctionCall","src":"393:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"386:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"471:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"478:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"464:6:139"},"nodeType":"YulFunctionCall","src":"464:20:139"},"nodeType":"YulExpressionStatement","src":"464:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"431:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"443:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"446:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"439:3:139"},"nodeType":"YulFunctionCall","src":"439:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:139"},"nodeType":"YulFunctionCall","src":"427:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"452:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"423:3:139"},"nodeType":"YulFunctionCall","src":"423:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"457:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"420:2:139"},"nodeType":"YulFunctionCall","src":"420:41:139"},"nodeType":"YulIf","src":"417:2:139"},{"nodeType":"YulVariableDeclaration","src":"495:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"504:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"499:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"563:224:139","statements":[{"nodeType":"YulVariableDeclaration","src":"577:23:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"596:3:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"590:5:139"},"nodeType":"YulFunctionCall","src":"590:10:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"581:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"658:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"667:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"674:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"660:6:139"},"nodeType":"YulFunctionCall","src":"660:20:139"},"nodeType":"YulExpressionStatement","src":"660:20:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"637:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"644:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"633:3:139"},"nodeType":"YulFunctionCall","src":"633:22:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"623:2:139"},"nodeType":"YulFunctionCall","src":"623:33:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"616:6:139"},"nodeType":"YulFunctionCall","src":"616:41:139"},"nodeType":"YulIf","src":"613:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"702:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"707:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"695:6:139"},"nodeType":"YulFunctionCall","src":"695:18:139"},"nodeType":"YulExpressionStatement","src":"695:18:139"},{"nodeType":"YulAssignment","src":"726:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"737:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"742:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"733:3:139"},"nodeType":"YulFunctionCall","src":"733:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"726:3:139"}]},{"nodeType":"YulAssignment","src":"758:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"769:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"774:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:139"},"nodeType":"YulFunctionCall","src":"765:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"758:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"529:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"532:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"526:2:139"},"nodeType":"YulFunctionCall","src":"526:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"536:18:139","statements":[{"nodeType":"YulAssignment","src":"538:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"547:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"550:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"543:3:139"},"nodeType":"YulFunctionCall","src":"543:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"538:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"522:3:139","statements":[]},"src":"518:269:139"},{"nodeType":"YulAssignment","src":"796:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"805:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"796:5:139"}]}]},"name":"abi_decode_array_uint32_dyn_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"62:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"70:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"78:5:139","type":""}],"src":"14:802:139"},{"body":{"nodeType":"YulBlock","src":"897:78:139","statements":[{"nodeType":"YulAssignment","src":"907:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"922:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"916:5:139"},"nodeType":"YulFunctionCall","src":"916:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"907:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"963:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"938:24:139"},"nodeType":"YulFunctionCall","src":"938:31:139"},"nodeType":"YulExpressionStatement","src":"938:31:139"}]},"name":"abi_decode_contract_ICommunityFund_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"876:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"887:5:139","type":""}],"src":"821:154:139"},{"body":{"nodeType":"YulBlock","src":"1200:1295:139","statements":[{"body":{"nodeType":"YulBlock","src":"1247:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1256:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1264:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1249:6:139"},"nodeType":"YulFunctionCall","src":"1249:22:139"},"nodeType":"YulExpressionStatement","src":"1249:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1221:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1230:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1217:3:139"},"nodeType":"YulFunctionCall","src":"1217:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1242:3:139","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1213:3:139"},"nodeType":"YulFunctionCall","src":"1213:33:139"},"nodeType":"YulIf","src":"1210:2:139"},{"nodeType":"YulVariableDeclaration","src":"1282:30:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1302:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1296:5:139"},"nodeType":"YulFunctionCall","src":"1296:16:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1286:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1321:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1339:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1343:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1335:3:139"},"nodeType":"YulFunctionCall","src":"1335:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"1347:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1331:3:139"},"nodeType":"YulFunctionCall","src":"1331:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1325:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1376:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1385:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1393:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1378:6:139"},"nodeType":"YulFunctionCall","src":"1378:22:139"},"nodeType":"YulExpressionStatement","src":"1378:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1364:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1372:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1361:2:139"},"nodeType":"YulFunctionCall","src":"1361:14:139"},"nodeType":"YulIf","src":"1358:2:139"},{"nodeType":"YulVariableDeclaration","src":"1411:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1425:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1436:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1421:3:139"},"nodeType":"YulFunctionCall","src":"1421:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1415:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1491:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1500:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1508:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1493:6:139"},"nodeType":"YulFunctionCall","src":"1493:22:139"},"nodeType":"YulExpressionStatement","src":"1493:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1470:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1474:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1466:3:139"},"nodeType":"YulFunctionCall","src":"1466:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1481:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1462:3:139"},"nodeType":"YulFunctionCall","src":"1462:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1455:6:139"},"nodeType":"YulFunctionCall","src":"1455:35:139"},"nodeType":"YulIf","src":"1452:2:139"},{"nodeType":"YulVariableDeclaration","src":"1526:19:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1542:2:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1536:5:139"},"nodeType":"YulFunctionCall","src":"1536:9:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1530:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1554:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1564:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1558:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1577:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1644:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1604:39:139"},"nodeType":"YulFunctionCall","src":"1604:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1588:15:139"},"nodeType":"YulFunctionCall","src":"1588:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1581:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1657:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1670:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1661:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1689:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1694:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1682:6:139"},"nodeType":"YulFunctionCall","src":"1682:15:139"},"nodeType":"YulExpressionStatement","src":"1682:15:139"},{"nodeType":"YulAssignment","src":"1706:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1717:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1722:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1713:3:139"},"nodeType":"YulFunctionCall","src":"1713:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1706:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1734:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1749:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1753:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1745:3:139"},"nodeType":"YulFunctionCall","src":"1745:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1738:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1810:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1819:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1827:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1812:6:139"},"nodeType":"YulFunctionCall","src":"1812:22:139"},"nodeType":"YulExpressionStatement","src":"1812:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1779:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1787:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"1790:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1783:3:139"},"nodeType":"YulFunctionCall","src":"1783:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1775:3:139"},"nodeType":"YulFunctionCall","src":"1775:19:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1796:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1771:3:139"},"nodeType":"YulFunctionCall","src":"1771:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1801:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1768:2:139"},"nodeType":"YulFunctionCall","src":"1768:41:139"},"nodeType":"YulIf","src":"1765:2:139"},{"nodeType":"YulVariableDeclaration","src":"1845:15:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"1854:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1849:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1914:186:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1928:23:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1947:3:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1941:5:139"},"nodeType":"YulFunctionCall","src":"1941:10:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1932:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1989:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1964:24:139"},"nodeType":"YulFunctionCall","src":"1964:31:139"},"nodeType":"YulExpressionStatement","src":"1964:31:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2015:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"2020:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2008:6:139"},"nodeType":"YulFunctionCall","src":"2008:18:139"},"nodeType":"YulExpressionStatement","src":"2008:18:139"},{"nodeType":"YulAssignment","src":"2039:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2050:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2055:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2046:3:139"},"nodeType":"YulFunctionCall","src":"2046:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2039:3:139"}]},{"nodeType":"YulAssignment","src":"2071:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2082:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2087:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2078:3:139"},"nodeType":"YulFunctionCall","src":"2078:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1880:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1883:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1877:2:139"},"nodeType":"YulFunctionCall","src":"1877:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1887:18:139","statements":[{"nodeType":"YulAssignment","src":"1889:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1898:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1901:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1894:3:139"},"nodeType":"YulFunctionCall","src":"1894:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1889:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1873:3:139","statements":[]},"src":"1869:231:139"},{"nodeType":"YulAssignment","src":"2109:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2119:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2109:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2133:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2159:9:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2170:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2155:3:139"},"nodeType":"YulFunctionCall","src":"2155:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2149:5:139"},"nodeType":"YulFunctionCall","src":"2149:25:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2137:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2203:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2212:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2220:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2205:6:139"},"nodeType":"YulFunctionCall","src":"2205:22:139"},"nodeType":"YulExpressionStatement","src":"2205:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2189:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2199:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2186:2:139"},"nodeType":"YulFunctionCall","src":"2186:16:139"},"nodeType":"YulIf","src":"2183:2:139"},{"nodeType":"YulAssignment","src":"2238:83:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2291:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2302:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2287:3:139"},"nodeType":"YulFunctionCall","src":"2287:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2313:7:139"}],"functionName":{"name":"abi_decode_array_uint32_dyn_fromMemory","nodeType":"YulIdentifier","src":"2248:38:139"},"nodeType":"YulFunctionCall","src":"2248:73:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2238:6:139"}]},{"nodeType":"YulAssignment","src":"2330:75:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2390:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2401:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2386:3:139"},"nodeType":"YulFunctionCall","src":"2386:18:139"}],"functionName":{"name":"abi_decode_contract_ICommunityFund_fromMemory","nodeType":"YulIdentifier","src":"2340:45:139"},"nodeType":"YulFunctionCall","src":"2340:65:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2330:6:139"}]},{"nodeType":"YulAssignment","src":"2414:75:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2474:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2485:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2470:3:139"},"nodeType":"YulFunctionCall","src":"2470:18:139"}],"functionName":{"name":"abi_decode_contract_ICommunityFund_fromMemory","nodeType":"YulIdentifier","src":"2424:45:139"},"nodeType":"YulFunctionCall","src":"2424:65:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2414:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptrt_contract$_IERC20_$5767t_contract$_ICommunityFund_$36391_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1142:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1153:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1165:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1173:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1181:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1189:6:139","type":""}],"src":"980:1515:139"},{"body":{"nodeType":"YulBlock","src":"2674:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2691:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2702:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2684:6:139"},"nodeType":"YulFunctionCall","src":"2684:21:139"},"nodeType":"YulExpressionStatement","src":"2684:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2725:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2736:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2721:3:139"},"nodeType":"YulFunctionCall","src":"2721:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2741:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2714:6:139"},"nodeType":"YulFunctionCall","src":"2714:30:139"},"nodeType":"YulExpressionStatement","src":"2714:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2764:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2775:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2760:3:139"},"nodeType":"YulFunctionCall","src":"2760:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2780:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2753:6:139"},"nodeType":"YulFunctionCall","src":"2753:62:139"},"nodeType":"YulExpressionStatement","src":"2753:62:139"},{"nodeType":"YulAssignment","src":"2824:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2836:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2847:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2832:3:139"},"nodeType":"YulFunctionCall","src":"2832:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2824:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2651:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2665:4:139","type":""}],"src":"2500:356:139"},{"body":{"nodeType":"YulBlock","src":"3035:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3052:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3063:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3045:6:139"},"nodeType":"YulFunctionCall","src":"3045:21:139"},"nodeType":"YulExpressionStatement","src":"3045:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3086:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3097:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3082:3:139"},"nodeType":"YulFunctionCall","src":"3082:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3102:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3075:6:139"},"nodeType":"YulFunctionCall","src":"3075:30:139"},"nodeType":"YulExpressionStatement","src":"3075:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3125:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3136:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3121:3:139"},"nodeType":"YulFunctionCall","src":"3121:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3141:21:139","type":"","value":"invalid percentages"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3114:6:139"},"nodeType":"YulFunctionCall","src":"3114:49:139"},"nodeType":"YulExpressionStatement","src":"3114:49:139"},{"nodeType":"YulAssignment","src":"3172:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3184:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3195:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3180:3:139"},"nodeType":"YulFunctionCall","src":"3180:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3172:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3012:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3026:4:139","type":""}],"src":"2861:343:139"},{"body":{"nodeType":"YulBlock","src":"3254:230:139","statements":[{"nodeType":"YulAssignment","src":"3264:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3280:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3274:5:139"},"nodeType":"YulFunctionCall","src":"3274:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3264:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3292:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3314:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"3330:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"3336:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3326:3:139"},"nodeType":"YulFunctionCall","src":"3326:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3345:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3341:3:139"},"nodeType":"YulFunctionCall","src":"3341:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3322:3:139"},"nodeType":"YulFunctionCall","src":"3322:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3310:3:139"},"nodeType":"YulFunctionCall","src":"3310:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3296:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3425:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3427:16:139"},"nodeType":"YulFunctionCall","src":"3427:18:139"},"nodeType":"YulExpressionStatement","src":"3427:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3368:10:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3388:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3392:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3384:3:139"},"nodeType":"YulFunctionCall","src":"3384:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"3396:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3380:3:139"},"nodeType":"YulFunctionCall","src":"3380:18:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3365:2:139"},"nodeType":"YulFunctionCall","src":"3365:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3404:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3416:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3401:2:139"},"nodeType":"YulFunctionCall","src":"3401:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3362:2:139"},"nodeType":"YulFunctionCall","src":"3362:62:139"},"nodeType":"YulIf","src":"3359:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3463:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3467:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3456:6:139"},"nodeType":"YulFunctionCall","src":"3456:22:139"},"nodeType":"YulExpressionStatement","src":"3456:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"3234:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3243:6:139","type":""}],"src":"3209:275:139"},{"body":{"nodeType":"YulBlock","src":"3558:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"3602:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3604:16:139"},"nodeType":"YulFunctionCall","src":"3604:18:139"},"nodeType":"YulExpressionStatement","src":"3604:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3574:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3590:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3594:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3586:3:139"},"nodeType":"YulFunctionCall","src":"3586:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"3598:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3582:3:139"},"nodeType":"YulFunctionCall","src":"3582:18:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3571:2:139"},"nodeType":"YulFunctionCall","src":"3571:30:139"},"nodeType":"YulIf","src":"3568:2:139"},{"nodeType":"YulAssignment","src":"3633:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3649:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"3652:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3645:3:139"},"nodeType":"YulFunctionCall","src":"3645:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"3661:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3641:3:139"},"nodeType":"YulFunctionCall","src":"3641:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"3633:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"3538:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"3549:4:139","type":""}],"src":"3489:183:139"},{"body":{"nodeType":"YulBlock","src":"3725:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"3752:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3754:16:139"},"nodeType":"YulFunctionCall","src":"3754:18:139"},"nodeType":"YulExpressionStatement","src":"3754:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3741:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3748:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3744:3:139"},"nodeType":"YulFunctionCall","src":"3744:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3738:2:139"},"nodeType":"YulFunctionCall","src":"3738:13:139"},"nodeType":"YulIf","src":"3735:2:139"},{"nodeType":"YulAssignment","src":"3783:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3794:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"3797:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:139"},"nodeType":"YulFunctionCall","src":"3790:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3783:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3708:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"3711:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3717:3:139","type":""}],"src":"3677:128:139"},{"body":{"nodeType":"YulBlock","src":"3857:181:139","statements":[{"nodeType":"YulVariableDeclaration","src":"3867:20:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3877:10:139","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3871:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3896:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3911:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3914:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3907:3:139"},"nodeType":"YulFunctionCall","src":"3907:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"3900:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3926:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3941:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3944:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3937:3:139"},"nodeType":"YulFunctionCall","src":"3937:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"3930:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3981:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3983:16:139"},"nodeType":"YulFunctionCall","src":"3983:18:139"},"nodeType":"YulExpressionStatement","src":"3983:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"3962:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3971:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"3975:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3967:3:139"},"nodeType":"YulFunctionCall","src":"3967:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3959:2:139"},"nodeType":"YulFunctionCall","src":"3959:21:139"},"nodeType":"YulIf","src":"3956:2:139"},{"nodeType":"YulAssignment","src":"4012:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"4023:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"4028:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4019:3:139"},"nodeType":"YulFunctionCall","src":"4019:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"4012:3:139"}]}]},"name":"checked_add_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3840:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"3843:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3849:3:139","type":""}],"src":"3810:228:139"},{"body":{"nodeType":"YulBlock","src":"4095:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"4154:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4156:16:139"},"nodeType":"YulFunctionCall","src":"4156:18:139"},"nodeType":"YulExpressionStatement","src":"4156:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4126:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4119:6:139"},"nodeType":"YulFunctionCall","src":"4119:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4112:6:139"},"nodeType":"YulFunctionCall","src":"4112:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4134:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4145:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4141:3:139"},"nodeType":"YulFunctionCall","src":"4141:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"4149:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4137:3:139"},"nodeType":"YulFunctionCall","src":"4137:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4131:2:139"},"nodeType":"YulFunctionCall","src":"4131:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4108:3:139"},"nodeType":"YulFunctionCall","src":"4108:45:139"},"nodeType":"YulIf","src":"4105:2:139"},{"nodeType":"YulAssignment","src":"4185:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4200:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"4203:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4196:3:139"},"nodeType":"YulFunctionCall","src":"4196:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4185:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4074:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"4077:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"4083:7:139","type":""}],"src":"4043:168:139"},{"body":{"nodeType":"YulBlock","src":"4263:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"4294:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4296:16:139"},"nodeType":"YulFunctionCall","src":"4296:18:139"},"nodeType":"YulExpressionStatement","src":"4296:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4279:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4290:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4286:3:139"},"nodeType":"YulFunctionCall","src":"4286:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4276:2:139"},"nodeType":"YulFunctionCall","src":"4276:17:139"},"nodeType":"YulIf","src":"4273:2:139"},{"nodeType":"YulAssignment","src":"4325:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4336:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"4343:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4332:3:139"},"nodeType":"YulFunctionCall","src":"4332:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"4325:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4245:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"4255:3:139","type":""}],"src":"4216:135:139"},{"body":{"nodeType":"YulBlock","src":"4388:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4405:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4412:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4417:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4408:3:139"},"nodeType":"YulFunctionCall","src":"4408:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4398:6:139"},"nodeType":"YulFunctionCall","src":"4398:31:139"},"nodeType":"YulExpressionStatement","src":"4398:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4445:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4448:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4438:6:139"},"nodeType":"YulFunctionCall","src":"4438:15:139"},"nodeType":"YulExpressionStatement","src":"4438:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4469:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4472:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4462:6:139"},"nodeType":"YulFunctionCall","src":"4462:15:139"},"nodeType":"YulExpressionStatement","src":"4462:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"4356:127:139"},{"body":{"nodeType":"YulBlock","src":"4520:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4537:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4544:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4549:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4540:3:139"},"nodeType":"YulFunctionCall","src":"4540:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4530:6:139"},"nodeType":"YulFunctionCall","src":"4530:31:139"},"nodeType":"YulExpressionStatement","src":"4530:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4577:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4580:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4570:6:139"},"nodeType":"YulFunctionCall","src":"4570:15:139"},"nodeType":"YulExpressionStatement","src":"4570:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4601:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4604:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4594:6:139"},"nodeType":"YulFunctionCall","src":"4594:15:139"},"nodeType":"YulExpressionStatement","src":"4594:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"4488:127:139"},{"body":{"nodeType":"YulBlock","src":"4665:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"4729:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4738:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4741:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4731:6:139"},"nodeType":"YulFunctionCall","src":"4731:12:139"},"nodeType":"YulExpressionStatement","src":"4731:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4688:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4699:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4714:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4719:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4710:3:139"},"nodeType":"YulFunctionCall","src":"4710:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4723:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4706:3:139"},"nodeType":"YulFunctionCall","src":"4706:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4695:3:139"},"nodeType":"YulFunctionCall","src":"4695:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4685:2:139"},"nodeType":"YulFunctionCall","src":"4685:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4678:6:139"},"nodeType":"YulFunctionCall","src":"4678:50:139"},"nodeType":"YulIf","src":"4675:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4654:5:139","type":""}],"src":"4620:131:139"}]},"contents":"{\n    { }\n    function abi_decode_array_uint32_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := mload(src)\n            if iszero(eq(value, and(value, 0xffffffff))) { revert(array, array) }\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_contract_ICommunityFund_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptrt_contract$_IERC20_$5767t_contract$_ICommunityFund_$36391_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let src := add(_2, _4)\n        if gt(add(add(_2, shl(5, _3)), _4), dataEnd) { revert(value0, value0) }\n        let i := value0\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n            src := add(src, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_uint32_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        value2 := abi_decode_contract_ICommunityFund_fromMemory(add(headStart, 64))\n        value3 := abi_decode_contract_ICommunityFund_fromMemory(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"invalid percentages\")\n        tail := add(headStart, 96)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_add_t_uint32(x, y) -> sum\n    {\n        let _1 := 0xffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620019ec380380620019ec83398101604081905262000034916200045a565b838362278d004260006200004833620000f9565b60018390556002829055620000856200006e828562000149602090811b62000ca817901c565b6002546200015e60201b62000cbb1790919060201c565b60035550508251620000a09150600490602085019062000292565b508051620000b6906005906020840190620002fc565b50620000c2816200016c565b5050600680546001600160a01b039384166001600160a01b0319918216179091556007805492909316911617905550620006769050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620001578284620005f1565b9392505050565b6000620001578284620005ab565b6200017662000234565b6000805b8251811015620001d157828181518110620001a557634e487b7160e01b600052603260045260246000fd5b602002602001015182620001ba9190620005c6565b915080620001c88162000613565b9150506200017a565b50620f42408163ffffffff1614620002305760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642070657263656e74616765730000000000000000000000000060448201526064015b60405180910390fd5b5050565b6000546001600160a01b03163314620002905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000227565b565b828054828255906000526020600020908101928215620002ea579160200282015b82811115620002ea57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620002b3565b50620002f8929150620003a8565b5090565b82805482825590600052602060002090600701600890048101928215620002ea5791602002820160005b838211156200036c57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030262000326565b80156200039e5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026200036c565b5050620002f89291505b5b80821115620002f85760008155600101620003a9565b600082601f830112620003d0578081fd5b81516020620003e9620003e38362000585565b62000552565b80838252828201915082860187848660051b890101111562000409578586fd5b855b858110156200043b57815163ffffffff8116811462000428578788fd5b845292840192908401906001016200040b565b5090979650505050505050565b805162000455816200065d565b919050565b6000806000806080858703121562000470578384fd5b84516001600160401b038082111562000487578586fd5b818701915087601f8301126200049b578586fd5b81516020620004ae620003e38362000585565b8083825282820191508286018c848660051b8901011115620004ce578a8bfd5b8a96505b84871015620004fd578051620004e8816200065d565b835260019690960195918301918301620004d2565b50918a015191985090935050508082111562000517578485fd5b506200052687828801620003bf565b935050620005376040860162000448565b9150620005476060860162000448565b905092959194509250565b604051601f8201601f191681016001600160401b03811182821017156200057d576200057d62000647565b604052919050565b60006001600160401b03821115620005a157620005a162000647565b5060051b60200190565b60008219821115620005c157620005c162000631565b500190565b600063ffffffff808316818516808303821115620005e857620005e862000631565b01949350505050565b60008160001904831182151516156200060e576200060e62000631565b500290565b60006000198214156200062a576200062a62000631565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200067357600080fd5b50565b61136680620006866000396000f3fe60806040526004361061016e5760003560e01c80638da5cb5b116100cc578063e086e5ec1161007a578063e086e5ec146103e6578063efe97d05146103fb578063f2a40db814610410578063f2fde38b14610430578063f46b65ac14610450578063f4f3b20014610465578063fbccedae146104855761017d565b80638da5cb5b14610341578063b8b9b5491461035f578063b97dd9e214610367578063bce582691461037c578063c45ff5441461039c578063c5967c26146103bc578063c828371e146103d15761017d565b80633f26479e116101295780633f26479e1461026d57806344def48f146102845780634585e33b146102a45780635c45f349146102c45780636a2ab602146102d95780636e04ff0d146102fe578063715018a61461032c5761017d565b80623f619d14610192578062f380f4146101cc5780630f3a9f65146101f95780631ed2419514610219578063398bac63146102385780633de00c361461024d5761017d565b3661017d5761017b61049a565b005b34801561018957600080fd5b5061017b61049a565b34801561019e57600080fd5b506101b26101ad366004611148565b61057c565b60405163ffffffff90911681526020015b60405180910390f35b3480156101d857600080fd5b506007546101ec906001600160a01b031681565b6040516101c39190611178565b34801561020557600080fd5b5061017b610214366004611148565b6105b6565b34801561022557600080fd5b506001545b6040519081526020016101c3565b34801561024457600080fd5b5061022a6105c3565b34801561025957600080fd5b506006546101ec906001600160a01b031681565b34801561027957600080fd5b5061022a620f424081565b34801561029057600080fd5b5061017b61029f366004610fbd565b6105d2565b3480156102b057600080fd5b5061017b6102bf3660046110db565b61060f565b3480156102d057600080fd5b5061017b6106b7565b3480156102e557600080fd5b506102ee6106ce565b60405190151581526020016101c3565b34801561030a57600080fd5b5061031e6103193660046110db565b6106d8565b6040516101c392919061118c565b34801561033857600080fd5b5061017b6106ff565b34801561034d57600080fd5b506000546001600160a01b03166101ec565b61017b61049a565b34801561037357600080fd5b5061022a610711565b34801561038857600080fd5b5061017b610397366004610fa1565b610737565b3480156103a857600080fd5b5061017b6103b7366004611080565b6108c5565b3480156103c857600080fd5b5061022a610970565b3480156103dd57600080fd5b5060025461022a565b3480156103f257600080fd5b5061017b610992565b34801561040757600080fd5b5061022a6109d7565b34801561041c57600080fd5b506101ec61042b366004611148565b6109e1565b34801561043c57600080fd5b5061017b61044b366004610fa1565b610a0b565b34801561045c57600080fd5b5061017b610a81565b34801561047157600080fd5b5061017b610480366004610fa1565b610afd565b34801561049157600080fd5b5061022a610c20565b600454479060005b8181101561057757600061050184600584815481106104d157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600882040154620f424060079092166004026101000a900463ffffffff16919091020490565b90506004828154811061052457634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610564573d6000803e3d6000fd5b505080610570906112d4565b90506104a2565b505050565b6005818154811061058c57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b6105be610cc7565b600155565b60006105cd610d21565b905090565b6105da610cc7565b81516105ed906004906020850190610e01565b508051610601906005906020840190610e66565b5061060b816108c5565b5050565b600254421161065e5760405162461bcd60e51b8152602060048201526016602482015275115c1bd8da0e881b9bdd081cdd185c9d1959081e595d60521b60448201526064015b60405180910390fd5b610666610d40565b6106a75760405162461bcd60e51b8152602060048201526012602482015271115c1bd8da0e881b9bdd08185b1b1bddd95960721b6044820152606401610655565b6106af610a81565b505042600355565b6006546106cc906001600160a01b0316610737565b565b60006105cd610d40565b600060606106e4610d40565b60405180602001604052806000815250915091509250929050565b610707610cc7565b6106cc6000610d59565b60006105cd60015461073160025461072b60025442610da9565b90610dc0565b90610dcc565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610766903090600401611178565b60206040518083038186803b15801561077e57600080fd5b505afa158015610792573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b69190611160565b60045490915060005b818110156108bf5760006107ee84600584815481106104d157634e487b7160e01b600052603260045260246000fd5b9050846001600160a01b031663a9059cbb6004848154811061082057634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561087457600080fd5b505af1158015610888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac91906110bb565b5050806108b8906112d4565b90506107bf565b50505050565b6108cd610cc7565b6000805b8251811015610921578281815181106108fa57634e487b7160e01b600052603260045260246000fd5b60200260200101518261090d9190611256565b915080610919816112d4565b9150506108d1565b50620f42408163ffffffff161461060b5760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642070657263656e746167657360681b6044820152606401610655565b60006105cd610989600154610983610dd8565b90610ca8565b60025490610cbb565b61099a610cc7565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156109d4573d6000803e3d6000fd5b50565b60006105cd610dd8565b600481815481106109f157600080fd5b6000918252602090912001546001600160a01b0316905081565b610a13610cc7565b6001600160a01b038116610a785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610655565b6109d481610d59565b600754600654604051631916558760e01b81526001600160a01b0392831692631916558792610ab592911690600401611178565b600060405180830381600087803b158015610acf57600080fd5b505af1158015610ae3573d6000803e3d6000fd5b50506006546106cc92506001600160a01b03169050610737565b610b05610cc7565b806001600160a01b031663a9059cbb610b266000546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610b52903090600401611178565b60206040518083038186803b158015610b6a57600080fd5b505afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba29190611160565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b91906110bb565b6007546006546040516302e4d97960e31b81526000926001600160a01b0390811692631726cbc892610c589290911690600401611178565b60206040518083038186803b158015610c7057600080fd5b505afa158015610c84573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cd9190611160565b6000610cb4828461129e565b9392505050565b6000610cb4828461123e565b6000546001600160a01b031633146106cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610655565b60006105cd600154610731600254600354610dc090919063ffffffff16565b6000610d4a610dd8565b610d52610711565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831015610db95781610cb4565b5090919050565b6000610cb482846112bd565b6000610cb4828461127e565b60006003546002541415610dee576105cd610d21565b6105cd6001610dfb610d21565b90610cbb565b828054828255906000526020600020908101928215610e56579160200282015b82811115610e5657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610e21565b50610e62929150610f0c565b5090565b82805482825590600052602060002090600701600890048101928215610e565791602002820160005b83821115610ed357835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302610e8f565b8015610f035782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610ed3565b5050610e629291505b5b80821115610e625760008155600101610f0d565b600082601f830112610f31578081fd5b81356020610f46610f418361121a565b6111e9565b80838252828201915082860187848660051b8901011115610f65578586fd5b855b85811015610f9457813563ffffffff81168114610f82578788fd5b84529284019290840190600101610f67565b5090979650505050505050565b600060208284031215610fb2578081fd5b8135610cb48161131b565b60008060408385031215610fcf578081fd5b823567ffffffffffffffff80821115610fe6578283fd5b818501915085601f830112610ff9578283fd5b81356020611009610f418361121a565b8083825282820191508286018a848660051b8901011115611028578788fd5b8796505b8487101561105357803561103f8161131b565b83526001969096019591830191830161102c565b5096505086013592505080821115611069578283fd5b5061107685828601610f21565b9150509250929050565b600060208284031215611091578081fd5b813567ffffffffffffffff8111156110a7578182fd5b6110b384828501610f21565b949350505050565b6000602082840312156110cc578081fd5b81518015158114610cb4578182fd5b600080602083850312156110ed578182fd5b823567ffffffffffffffff80821115611104578384fd5b818501915085601f830112611117578384fd5b813581811115611125578485fd5b866020828501011115611136578485fd5b60209290920196919550909350505050565b600060208284031215611159578081fd5b5035919050565b600060208284031215611171578081fd5b5051919050565b6001600160a01b0391909116815260200190565b8215158152600060206040818401528351806040850152825b818110156111c1578581018301518582016060015282016111a5565b818111156111d25783606083870101525b50601f01601f191692909201606001949350505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121257611212611305565b604052919050565b600067ffffffffffffffff82111561123457611234611305565b5060051b60200190565b60008219821115611251576112516112ef565b500190565b600063ffffffff808316818516808303821115611275576112756112ef565b01949350505050565b60008261129957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156112b8576112b86112ef565b500290565b6000828210156112cf576112cf6112ef565b500390565b60006000198214156112e8576112e86112ef565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109d457600080fdfea2646970667358221220d22b43d8bc82c0db6cf0b9314ded67e41c446993af02f843ebe4965283e0823e64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x19EC CODESIZE SUB DUP1 PUSH3 0x19EC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x45A JUMP JUMPDEST DUP4 DUP4 PUSH3 0x278D00 TIMESTAMP PUSH1 0x0 PUSH3 0x48 CALLER PUSH3 0xF9 JUMP JUMPDEST PUSH1 0x1 DUP4 SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH3 0x85 PUSH3 0x6E DUP3 DUP6 PUSH3 0x149 PUSH1 0x20 SWAP1 DUP2 SHL PUSH3 0xCA8 OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH3 0x15E PUSH1 0x20 SHL PUSH3 0xCBB OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x3 SSTORE POP POP DUP3 MLOAD PUSH3 0xA0 SWAP2 POP PUSH1 0x4 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x292 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0xB6 SWAP1 PUSH1 0x5 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x2FC JUMP JUMPDEST POP PUSH3 0xC2 DUP2 PUSH3 0x16C JUMP JUMPDEST POP POP PUSH1 0x6 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 0x7 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP PUSH3 0x676 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x157 DUP3 DUP5 PUSH3 0x5F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x157 DUP3 DUP5 PUSH3 0x5AB JUMP JUMPDEST PUSH3 0x176 PUSH3 0x234 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x1D1 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH3 0x1A5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH3 0x1BA SWAP2 SWAP1 PUSH3 0x5C6 JUMP JUMPDEST SWAP2 POP DUP1 PUSH3 0x1C8 DUP2 PUSH3 0x613 JUMP JUMPDEST SWAP2 POP POP PUSH3 0x17A JUMP JUMPDEST POP PUSH3 0xF4240 DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH3 0x230 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070657263656E746167657300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x227 JUMP JUMPDEST JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x2EA JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x2EA 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 PUSH3 0x2B3 JUMP JUMPDEST POP PUSH3 0x2F8 SWAP3 SWAP2 POP PUSH3 0x3A8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 ADD PUSH1 0x8 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x2EA JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x36C JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH3 0x326 JUMP JUMPDEST DUP1 ISZERO PUSH3 0x39E JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH3 0x36C JUMP JUMPDEST POP POP PUSH3 0x2F8 SWAP3 SWAP2 POP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x2F8 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x3D0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH3 0x3E9 PUSH3 0x3E3 DUP4 PUSH3 0x585 JUMP JUMPDEST PUSH3 0x552 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH3 0x409 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH3 0x43B JUMPI DUP2 MLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH3 0x428 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH3 0x40B JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x455 DUP2 PUSH3 0x65D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x470 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x487 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x49B JUMPI DUP6 DUP7 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH3 0x4AE PUSH3 0x3E3 DUP4 PUSH3 0x585 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP13 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH3 0x4CE JUMPI DUP11 DUP12 REVERT JUMPDEST DUP11 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH3 0x4FD JUMPI DUP1 MLOAD PUSH3 0x4E8 DUP2 PUSH3 0x65D JUMP JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH3 0x4D2 JUMP JUMPDEST POP SWAP2 DUP11 ADD MLOAD SWAP2 SWAP9 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH3 0x517 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH3 0x526 DUP8 DUP3 DUP9 ADD PUSH3 0x3BF JUMP JUMPDEST SWAP4 POP POP PUSH3 0x537 PUSH1 0x40 DUP7 ADD PUSH3 0x448 JUMP JUMPDEST SWAP2 POP PUSH3 0x547 PUSH1 0x60 DUP7 ADD PUSH3 0x448 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x57D JUMPI PUSH3 0x57D PUSH3 0x647 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH3 0x5A1 JUMPI PUSH3 0x5A1 PUSH3 0x647 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x5C1 JUMPI PUSH3 0x5C1 PUSH3 0x631 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH3 0x5E8 JUMPI PUSH3 0x5E8 PUSH3 0x631 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH3 0x60E JUMPI PUSH3 0x60E PUSH3 0x631 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH3 0x62A JUMPI PUSH3 0x62A PUSH3 0x631 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x673 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1366 DUP1 PUSH3 0x686 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x16E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xCC JUMPI DUP1 PUSH4 0xE086E5EC GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xE086E5EC EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0xEFE97D05 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xF2A40DB8 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0xF46B65AC EQ PUSH2 0x450 JUMPI DUP1 PUSH4 0xF4F3B200 EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xFBCCEDAE EQ PUSH2 0x485 JUMPI PUSH2 0x17D JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x341 JUMPI DUP1 PUSH4 0xB8B9B549 EQ PUSH2 0x35F JUMPI DUP1 PUSH4 0xB97DD9E2 EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0xBCE58269 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0xC45FF544 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xC5967C26 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0xC828371E EQ PUSH2 0x3D1 JUMPI PUSH2 0x17D JUMP JUMPDEST DUP1 PUSH4 0x3F26479E GT PUSH2 0x129 JUMPI DUP1 PUSH4 0x3F26479E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x44DEF48F EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x4585E33B EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x5C45F349 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0x6A2AB602 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x6E04FF0D EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x32C JUMPI PUSH2 0x17D JUMP JUMPDEST DUP1 PUSH3 0x3F619D EQ PUSH2 0x192 JUMPI DUP1 PUSH3 0xF380F4 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xF3A9F65 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1ED24195 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x398BAC63 EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0x24D JUMPI PUSH2 0x17D JUMP JUMPDEST CALLDATASIZE PUSH2 0x17D JUMPI PUSH2 0x17B PUSH2 0x49A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x189 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x49A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1148 JUMP JUMPDEST PUSH2 0x57C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x1EC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1178 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x214 CALLDATASIZE PUSH1 0x4 PUSH2 0x1148 JUMP JUMPDEST PUSH2 0x5B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x5C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0x1EC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH3 0xF4240 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x29F CALLDATASIZE PUSH1 0x4 PUSH2 0xFBD JUMP JUMPDEST PUSH2 0x5D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x10DB JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x6B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EE PUSH2 0x6CE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x319 CALLDATASIZE PUSH1 0x4 PUSH2 0x10DB JUMP JUMPDEST PUSH2 0x6D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP3 SWAP2 SWAP1 PUSH2 0x118C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x6FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1EC JUMP JUMPDEST PUSH2 0x17B PUSH2 0x49A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x388 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x397 CALLDATASIZE PUSH1 0x4 PUSH2 0xFA1 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1080 JUMP JUMPDEST PUSH2 0x8C5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x970 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x22A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x992 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x9D7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH2 0x42B CALLDATASIZE PUSH1 0x4 PUSH2 0x1148 JUMP JUMPDEST PUSH2 0x9E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x44B CALLDATASIZE PUSH1 0x4 PUSH2 0xFA1 JUMP JUMPDEST PUSH2 0xA0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0xA81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x480 CALLDATASIZE PUSH1 0x4 PUSH2 0xFA1 JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x4 SLOAD SELFBALANCE SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 PUSH2 0x501 DUP5 PUSH1 0x5 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x8 DUP3 DIV ADD SLOAD PUSH3 0xF4240 PUSH1 0x7 SWAP1 SWAP3 AND PUSH1 0x4 MUL PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP2 SWAP1 SWAP2 MUL DIV SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x524 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP1 PUSH2 0x570 SWAP1 PUSH2 0x12D4 JUMP JUMPDEST SWAP1 POP PUSH2 0x4A2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x58C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x8 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD PUSH1 0x4 MUL SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x5BE PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0xD21 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x5DA PUSH2 0xCC7 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x5ED SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0xE01 JUMP JUMPDEST POP DUP1 MLOAD PUSH2 0x601 SWAP1 PUSH1 0x5 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0xE66 JUMP JUMPDEST POP PUSH2 0x60B DUP2 PUSH2 0x8C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP GT PUSH2 0x65E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x115C1BD8DA0E881B9BDD081CDD185C9D1959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x666 PUSH2 0xD40 JUMP JUMPDEST PUSH2 0x6A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x115C1BD8DA0E881B9BDD08185B1B1BDDD959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x655 JUMP JUMPDEST PUSH2 0x6AF PUSH2 0xA81 JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x6CC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x737 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH2 0x6E4 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x707 PUSH2 0xCC7 JUMP JUMPDEST PUSH2 0x6CC PUSH1 0x0 PUSH2 0xD59 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH1 0x1 SLOAD PUSH2 0x731 PUSH1 0x2 SLOAD PUSH2 0x72B PUSH1 0x2 SLOAD TIMESTAMP PUSH2 0xDA9 JUMP JUMPDEST SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP1 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x766 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x792 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B6 SWAP2 SWAP1 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8BF JUMPI PUSH1 0x0 PUSH2 0x7EE DUP5 PUSH1 0x5 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST POP POP DUP1 PUSH2 0x8B8 SWAP1 PUSH2 0x12D4 JUMP JUMPDEST SWAP1 POP PUSH2 0x7BF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x8CD PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x921 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x8FA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH2 0x90D SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x919 DUP2 PUSH2 0x12D4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8D1 JUMP JUMPDEST POP PUSH3 0xF4240 DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH2 0x60B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x696E76616C69642070657263656E7461676573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x655 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0x989 PUSH1 0x1 SLOAD PUSH2 0x983 PUSH2 0xDD8 JUMP JUMPDEST SWAP1 PUSH2 0xCA8 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x99A PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP3 SWAP1 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x9D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x9F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH2 0xA13 PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x655 JUMP JUMPDEST PUSH2 0x9D4 DUP2 PUSH2 0xD59 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x19165587 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x19165587 SWAP3 PUSH2 0xAB5 SWAP3 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x6 SLOAD PUSH2 0x6CC SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP PUSH2 0x737 JUMP JUMPDEST PUSH2 0xB05 PUSH2 0xCC7 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0xB26 PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xB52 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBA2 SWAP2 SWAP1 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x60B SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2E4D979 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP3 PUSH4 0x1726CBC8 SWAP3 PUSH2 0xC58 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5CD SWAP2 SWAP1 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x129E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x123E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x655 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH1 0x1 SLOAD PUSH2 0x731 PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0xDC0 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD4A PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0xD52 PUSH2 0x711 JUMP JUMPDEST LT ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xDB9 JUMPI DUP2 PUSH2 0xCB4 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x12BD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x127E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0xDEE JUMPI PUSH2 0x5CD PUSH2 0xD21 JUMP JUMPDEST PUSH2 0x5CD PUSH1 0x1 PUSH2 0xDFB PUSH2 0xD21 JUMP JUMPDEST SWAP1 PUSH2 0xCBB JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xE56 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xE56 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 0xE21 JUMP JUMPDEST POP PUSH2 0xE62 SWAP3 SWAP2 POP PUSH2 0xF0C JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 ADD PUSH1 0x8 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xE56 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0xED3 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0xE8F JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF03 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0xED3 JUMP JUMPDEST POP POP PUSH2 0xE62 SWAP3 SWAP2 POP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xE62 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xF46 PUSH2 0xF41 DUP4 PUSH2 0x121A JUMP JUMPDEST PUSH2 0x11E9 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xF65 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0xF94 JUMPI DUP2 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xF82 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xF67 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFB2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCB4 DUP2 PUSH2 0x131B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFE6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFF9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x1009 PUSH2 0xF41 DUP4 PUSH2 0x121A JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP11 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x1028 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0x1053 JUMPI DUP1 CALLDATALOAD PUSH2 0x103F DUP2 PUSH2 0x131B JUMP JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x102C JUMP JUMPDEST POP SWAP7 POP POP DUP7 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0x1069 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x1076 DUP6 DUP3 DUP7 ADD PUSH2 0xF21 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1091 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10A7 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x10B3 DUP5 DUP3 DUP6 ADD PUSH2 0xF21 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10CC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCB4 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10ED JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1104 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1117 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1125 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1136 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1159 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1171 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 DUP2 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x11C1 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x11A5 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x11D2 JUMPI DUP4 PUSH1 0x60 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x60 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1212 JUMPI PUSH2 0x1212 PUSH2 0x1305 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1234 JUMPI PUSH2 0x1234 PUSH2 0x1305 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1251 JUMPI PUSH2 0x1251 PUSH2 0x12EF JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x1275 JUMPI PUSH2 0x1275 PUSH2 0x12EF JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1299 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x12EF JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x12CF JUMPI PUSH2 0x12CF PUSH2 0x12EF JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x12E8 JUMPI PUSH2 0x12E8 PUSH2 0x12EF JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x9D4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD2 0x2B NUMBER 0xD8 0xBC DUP3 0xC0 0xDB PUSH13 0xF0B9314DED67E41C446993AF02 0xF8 NUMBER 0xEB 0xE4 SWAP7 MSTORE DUP4 0xE0 DUP3 RETURNDATACOPY PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"730:1096:124:-:0;;;877:314;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1049:9;1060:19;1095:10;1107:15;1124:1;936:32:4;719:10:38;936:18:4;:32::i;:::-;639:6:126;:16;;;665:9;:22;;;714:38;728:23;:11;639:16;728:15;;;;;;;:23;;:::i;:::-;714:9;;:13;;;;;;:38;;;;:::i;:::-;697:14;:55;-1:-1:-1;;518:20:123;;;;-1:-1:-1;518:8:123;;:20;;;;;:::i;:::-;-1:-1:-1;548:40:123;;;;:18;;:40;;;;;:::i;:::-;-1:-1:-1;598:37:123;615:19;598:16;:37::i;:::-;-1:-1:-1;;1141:4:124::2;:12:::0;;-1:-1:-1;;;;;1141:12:124;;::::2;-1:-1:-1::0;;;;;;1141:12:124;;::::2;;::::0;;;1163:13:::2;:21:::0;;;;;::::2;::::0;::::2;;::::0;;-1:-1:-1;730:1096:124;;-1:-1:-1;730:1096:124;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;3465:96:49:-;3523:7;3549:5;3553:1;3549;:5;:::i;:::-;3542:12;3465:96;-1:-1:-1;;;3465:96:49:o;2755:::-;2813:7;2839:5;2843:1;2839;:5;:::i;2156:329:123:-;1094:13:4;:11;:13::i;:::-;2279:10:123::1;2308:9:::0;2303:111:::1;2327:19;:26;2323:1;:30;2303:111;;;2381:19;2401:1;2381:22;;;;;;-1:-1:-1::0;;;2381:22:123::1;;;;;;;;;;;;;;;2374:29;;;;;:::i;:::-;::::0;-1:-1:-1;2355:3:123;::::1;::::0;::::1;:::i;:::-;;;;2303:111;;;;346:3;2431;:23;;;2423:55;;;::::0;-1:-1:-1;;;2423:55:123;;3063:2:139;2423:55:123::1;::::0;::::1;3045:21:139::0;3102:2;3082:18;;;3075:30;3141:21;3121:18;;;3114:49;3180:18;;2423:55:123::1;;;;;;;;;1117:1:4;2156:329:123::0;:::o;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;2702:2:139;1414:68:4;;;2684:21:139;;;2721:18;;;2714:30;2780:34;2760:18;;;2753:62;2832:18;;1414:68:4;2674:182:139;1414:68:4;1359:130::o;730:1096:124:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;730:1096:124;-1:-1:-1;;;;;730:1096:124;;;;;;;;;;;-1:-1:-1;730:1096:124;;;;;;;-1:-1:-1;730:1096:124;;;-1:-1:-1;730:1096:124;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;730:1096:124;;;-1:-1:-1;730:1096:124;;;;;;;;;;;;;;;14:802:139;78:5;131:3;124:4;116:6;112:17;108:27;98:2;;153:5;146;139:20;98:2;186:6;180:13;212:4;236:60;252:43;292:2;252:43;:::i;:::-;236:60;:::i;:::-;318:3;342:2;337:3;330:15;370:2;365:3;361:12;354:19;;405:2;397:6;393:15;457:3;452:2;446;443:1;439:10;431:6;427:23;423:32;420:41;417:2;;;478:5;471;464:20;417:2;504:5;518:269;532:2;529:1;526:9;518:269;;;596:3;590:10;644;637:5;633:22;626:5;623:33;613:2;;674:5;667;660:20;613:2;695:18;;733:12;;;;765;;;;550:1;543:9;518:269;;;-1:-1:-1;805:5:139;;88:728;-1:-1:-1;;;;;;;88:728:139:o;821:154::-;916:13;;938:31;916:13;938:31;:::i;:::-;897:78;;;:::o;980:1515::-;1165:6;1173;1181;1189;1242:3;1230:9;1221:7;1217:23;1213:33;1210:2;;;1264:6;1256;1249:22;1210:2;1296:16;;-1:-1:-1;;;;;1361:14:139;;;1358:2;;;1393:6;1385;1378:22;1358:2;1436:6;1425:9;1421:22;1411:32;;1481:7;1474:4;1470:2;1466:13;1462:27;1452:2;;1508:6;1500;1493:22;1452:2;1542;1536:9;1564:4;1588:60;1604:43;1644:2;1604:43;:::i;1588:60::-;1670:3;1694:2;1689:3;1682:15;1722:2;1717:3;1713:12;1706:19;;1753:2;1749;1745:11;1801:7;1796:2;1790;1787:1;1783:10;1779:2;1775:19;1771:28;1768:41;1765:2;;;1827:6;1819;1812:22;1765:2;1854:6;1845:15;;1869:231;1883:2;1880:1;1877:9;1869:231;;;1947:3;1941:10;1964:31;1989:5;1964:31;:::i;:::-;2008:18;;1901:1;1894:9;;;;;2046:12;;;;2078;;1869:231;;;-1:-1:-1;2155:18:139;;;2149:25;2119:5;;-1:-1:-1;2149:25:139;;-1:-1:-1;;;2186:16:139;;;2183:2;;;2220:6;2212;2205:22;2183:2;;2248:73;2313:7;2302:8;2291:9;2287:24;2248:73;:::i;:::-;2238:83;;;2340:65;2401:2;2390:9;2386:18;2340:65;:::i;:::-;2330:75;;2424:65;2485:2;2474:9;2470:18;2424:65;:::i;:::-;2414:75;;1200:1295;;;;;;;:::o;3209:275::-;3280:2;3274:9;3345:2;3326:13;;-1:-1:-1;;3322:27:139;3310:40;;-1:-1:-1;;;;;3365:34:139;;3401:22;;;3362:62;3359:2;;;3427:18;;:::i;:::-;3463:2;3456:22;3254:230;;-1:-1:-1;3254:230:139:o;3489:183::-;3549:4;-1:-1:-1;;;;;3571:30:139;;3568:2;;;3604:18;;:::i;:::-;-1:-1:-1;3649:1:139;3645:14;3661:4;3641:25;;3558:114::o;3677:128::-;3717:3;3748:1;3744:6;3741:1;3738:13;3735:2;;;3754:18;;:::i;:::-;-1:-1:-1;3790:9:139;;3725:80::o;3810:228::-;3849:3;3877:10;3914:2;3911:1;3907:10;3944:2;3941:1;3937:10;3975:3;3971:2;3967:12;3962:3;3959:21;3956:2;;;3983:18;;:::i;:::-;4019:13;;3857:181;-1:-1:-1;;;;3857:181:139:o;4043:168::-;4083:7;4149:1;4145;4141:6;4137:14;4134:1;4131:21;4126:1;4119:9;4112:17;4108:45;4105:2;;;4156:18;;:::i;:::-;-1:-1:-1;4196:9:139;;4095:116::o;4216:135::-;4255:3;-1:-1:-1;;4276:17:139;;4273:2;;;4296:18;;:::i;:::-;-1:-1:-1;4343:1:139;4332:13;;4263:88::o;4356:127::-;4417:10;4412:3;4408:20;4405:1;4398:31;4448:4;4445:1;4438:15;4472:4;4469:1;4462:15;4488:127;4549:10;4544:3;4540:20;4537:1;4530:31;4580:4;4577:1;4570:15;4604:4;4601:1;4594:15;4620:131;-1:-1:-1;;;;;4695:31:139;;4685:42;;4675:2;;4741:1;4738;4731:12;4675:2;4665:86;:::o;:::-;730:1096:124;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10270:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:742:139","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:139"},"nodeType":"YulFunctionCall","src":"128:20:139"},"nodeType":"YulExpressionStatement","src":"128:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:139"},"nodeType":"YulFunctionCall","src":"90:35:139"},"nodeType":"YulIf","src":"87:2:139"},{"nodeType":"YulVariableDeclaration","src":"159:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"182:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"169:12:139"},"nodeType":"YulFunctionCall","src":"169:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"198:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"208:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"202:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"221:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"288:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"248:39:139"},"nodeType":"YulFunctionCall","src":"248:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"232:15:139"},"nodeType":"YulFunctionCall","src":"232:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"225:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"301:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"314:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"305:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"333:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"338:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"326:6:139"},"nodeType":"YulFunctionCall","src":"326:15:139"},"nodeType":"YulExpressionStatement","src":"326:15:139"},{"nodeType":"YulAssignment","src":"350:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"361:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"366:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"357:3:139"},"nodeType":"YulFunctionCall","src":"357:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"350:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"378:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"393:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"401:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"389:3:139"},"nodeType":"YulFunctionCall","src":"389:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"382:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"458:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"467:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"474:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"460:6:139"},"nodeType":"YulFunctionCall","src":"460:20:139"},"nodeType":"YulExpressionStatement","src":"460:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"427:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"439:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"442:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"435:3:139"},"nodeType":"YulFunctionCall","src":"435:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"423:3:139"},"nodeType":"YulFunctionCall","src":"423:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"448:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"419:3:139"},"nodeType":"YulFunctionCall","src":"419:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"453:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"416:2:139"},"nodeType":"YulFunctionCall","src":"416:41:139"},"nodeType":"YulIf","src":"413:2:139"},{"nodeType":"YulVariableDeclaration","src":"491:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"500:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"495:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"559:231:139","statements":[{"nodeType":"YulVariableDeclaration","src":"573:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"599:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"586:12:139"},"nodeType":"YulFunctionCall","src":"586:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"577:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"661:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"670:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"677:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"663:6:139"},"nodeType":"YulFunctionCall","src":"663:20:139"},"nodeType":"YulExpressionStatement","src":"663:20:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"629:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"640:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"647:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"636:3:139"},"nodeType":"YulFunctionCall","src":"636:22:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"626:2:139"},"nodeType":"YulFunctionCall","src":"626:33:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"619:6:139"},"nodeType":"YulFunctionCall","src":"619:41:139"},"nodeType":"YulIf","src":"616:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"705:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"710:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"698:6:139"},"nodeType":"YulFunctionCall","src":"698:18:139"},"nodeType":"YulExpressionStatement","src":"698:18:139"},{"nodeType":"YulAssignment","src":"729:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"740:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"745:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"736:3:139"},"nodeType":"YulFunctionCall","src":"736:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"729:3:139"}]},{"nodeType":"YulAssignment","src":"761:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"772:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"777:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"768:3:139"},"nodeType":"YulFunctionCall","src":"768:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"761:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"525:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"528:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"522:2:139"},"nodeType":"YulFunctionCall","src":"522:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"532:18:139","statements":[{"nodeType":"YulAssignment","src":"534:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"543:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"546:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"539:3:139"},"nodeType":"YulFunctionCall","src":"539:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"534:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"518:3:139","statements":[]},"src":"514:276:139"},{"nodeType":"YulAssignment","src":"799:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"808:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"799:5:139"}]}]},"name":"abi_decode_array_uint32_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:139","type":""}],"src":"14:805:139"},{"body":{"nodeType":"YulBlock","src":"894:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"940:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"949:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"957:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"942:6:139"},"nodeType":"YulFunctionCall","src":"942:22:139"},"nodeType":"YulExpressionStatement","src":"942:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"915:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"924:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"911:3:139"},"nodeType":"YulFunctionCall","src":"911:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"936:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"907:3:139"},"nodeType":"YulFunctionCall","src":"907:32:139"},"nodeType":"YulIf","src":"904:2:139"},{"nodeType":"YulVariableDeclaration","src":"975:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1001:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"988:12:139"},"nodeType":"YulFunctionCall","src":"988:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"979:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1045:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1020:24:139"},"nodeType":"YulFunctionCall","src":"1020:31:139"},"nodeType":"YulExpressionStatement","src":"1020:31:139"},{"nodeType":"YulAssignment","src":"1060:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1070:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1060:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"860:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"871:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"883:6:139","type":""}],"src":"824:257:139"},{"body":{"nodeType":"YulBlock","src":"1222:1143:139","statements":[{"body":{"nodeType":"YulBlock","src":"1268:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1277:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1285:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1270:6:139"},"nodeType":"YulFunctionCall","src":"1270:22:139"},"nodeType":"YulExpressionStatement","src":"1270:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1243:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1239:3:139"},"nodeType":"YulFunctionCall","src":"1239:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1264:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1235:3:139"},"nodeType":"YulFunctionCall","src":"1235:32:139"},"nodeType":"YulIf","src":"1232:2:139"},{"nodeType":"YulVariableDeclaration","src":"1303:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1330:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1317:12:139"},"nodeType":"YulFunctionCall","src":"1317:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1307:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1349:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1359:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1353:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1404:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1413:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1421:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1406:6:139"},"nodeType":"YulFunctionCall","src":"1406:22:139"},"nodeType":"YulExpressionStatement","src":"1406:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1392:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1400:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:139"},"nodeType":"YulFunctionCall","src":"1389:14:139"},"nodeType":"YulIf","src":"1386:2:139"},{"nodeType":"YulVariableDeclaration","src":"1439:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1453:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1464:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1449:3:139"},"nodeType":"YulFunctionCall","src":"1449:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1443:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1519:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1528:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1536:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1521:6:139"},"nodeType":"YulFunctionCall","src":"1521:22:139"},"nodeType":"YulExpressionStatement","src":"1521:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1498:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"1502:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1494:3:139"},"nodeType":"YulFunctionCall","src":"1494:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1509:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1490:3:139"},"nodeType":"YulFunctionCall","src":"1490:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1483:6:139"},"nodeType":"YulFunctionCall","src":"1483:35:139"},"nodeType":"YulIf","src":"1480:2:139"},{"nodeType":"YulVariableDeclaration","src":"1554:26:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1577:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1564:12:139"},"nodeType":"YulFunctionCall","src":"1564:16:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1558:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1589:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1599:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1593:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1612:71:139","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1679:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1639:39:139"},"nodeType":"YulFunctionCall","src":"1639:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1623:15:139"},"nodeType":"YulFunctionCall","src":"1623:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1616:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1692:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1705:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1696:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1724:3:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1729:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1717:6:139"},"nodeType":"YulFunctionCall","src":"1717:15:139"},"nodeType":"YulExpressionStatement","src":"1717:15:139"},{"nodeType":"YulAssignment","src":"1741:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1752:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1757:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1748:3:139"},"nodeType":"YulFunctionCall","src":"1748:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1741:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1769:22:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1784:2:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1788:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1780:3:139"},"nodeType":"YulFunctionCall","src":"1780:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1773:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1845:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1854:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1862:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1847:6:139"},"nodeType":"YulFunctionCall","src":"1847:22:139"},"nodeType":"YulExpressionStatement","src":"1847:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1814:2:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1822:1:139","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"1825:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1818:3:139"},"nodeType":"YulFunctionCall","src":"1818:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1810:3:139"},"nodeType":"YulFunctionCall","src":"1810:19:139"},{"name":"_4","nodeType":"YulIdentifier","src":"1831:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1806:3:139"},"nodeType":"YulFunctionCall","src":"1806:28:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1836:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1803:2:139"},"nodeType":"YulFunctionCall","src":"1803:41:139"},"nodeType":"YulIf","src":"1800:2:139"},{"nodeType":"YulVariableDeclaration","src":"1880:15:139","value":{"name":"value1","nodeType":"YulIdentifier","src":"1889:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1884:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1949:193:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1963:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1989:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1976:12:139"},"nodeType":"YulFunctionCall","src":"1976:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1967:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2031:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2006:24:139"},"nodeType":"YulFunctionCall","src":"2006:31:139"},"nodeType":"YulExpressionStatement","src":"2006:31:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2057:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"2062:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2050:6:139"},"nodeType":"YulFunctionCall","src":"2050:18:139"},"nodeType":"YulExpressionStatement","src":"2050:18:139"},{"nodeType":"YulAssignment","src":"2081:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2092:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2097:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2088:3:139"},"nodeType":"YulFunctionCall","src":"2088:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2081:3:139"}]},{"nodeType":"YulAssignment","src":"2113:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2124:3:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2129:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2120:3:139"},"nodeType":"YulFunctionCall","src":"2120:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2113:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1915:1:139"},{"name":"_3","nodeType":"YulIdentifier","src":"1918:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1912:2:139"},"nodeType":"YulFunctionCall","src":"1912:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1922:18:139","statements":[{"nodeType":"YulAssignment","src":"1924:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1933:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1936:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1929:3:139"},"nodeType":"YulFunctionCall","src":"1929:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1924:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1908:3:139","statements":[]},"src":"1904:238:139"},{"nodeType":"YulAssignment","src":"2151:15:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2161:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2151:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2175:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2208:9:139"},{"name":"_4","nodeType":"YulIdentifier","src":"2219:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2204:3:139"},"nodeType":"YulFunctionCall","src":"2204:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2191:12:139"},"nodeType":"YulFunctionCall","src":"2191:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2179:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2252:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2261:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2269:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2254:6:139"},"nodeType":"YulFunctionCall","src":"2254:22:139"},"nodeType":"YulExpressionStatement","src":"2254:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2238:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2248:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2235:2:139"},"nodeType":"YulFunctionCall","src":"2235:16:139"},"nodeType":"YulIf","src":"2232:2:139"},{"nodeType":"YulAssignment","src":"2287:72:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2329:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2340:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2325:3:139"},"nodeType":"YulFunctionCall","src":"2325:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2351:7:139"}],"functionName":{"name":"abi_decode_array_uint32_dyn","nodeType":"YulIdentifier","src":"2297:27:139"},"nodeType":"YulFunctionCall","src":"2297:62:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2287:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1180:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1191:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1203:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1211:6:139","type":""}],"src":"1086:1279:139"},{"body":{"nodeType":"YulBlock","src":"2464:272:139","statements":[{"body":{"nodeType":"YulBlock","src":"2510:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2519:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2527:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:139"},"nodeType":"YulFunctionCall","src":"2512:22:139"},"nodeType":"YulExpressionStatement","src":"2512:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2485:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2494:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2481:3:139"},"nodeType":"YulFunctionCall","src":"2481:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2506:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2477:3:139"},"nodeType":"YulFunctionCall","src":"2477:32:139"},"nodeType":"YulIf","src":"2474:2:139"},{"nodeType":"YulVariableDeclaration","src":"2545:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2572:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2559:12:139"},"nodeType":"YulFunctionCall","src":"2559:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2549:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2625:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2634:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2642:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2627:6:139"},"nodeType":"YulFunctionCall","src":"2627:22:139"},"nodeType":"YulExpressionStatement","src":"2627:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2597:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2605:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2594:2:139"},"nodeType":"YulFunctionCall","src":"2594:30:139"},"nodeType":"YulIf","src":"2591:2:139"},{"nodeType":"YulAssignment","src":"2660:70:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2702:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2713:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2698:3:139"},"nodeType":"YulFunctionCall","src":"2698:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2722:7:139"}],"functionName":{"name":"abi_decode_array_uint32_dyn","nodeType":"YulIdentifier","src":"2670:27:139"},"nodeType":"YulFunctionCall","src":"2670:60:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2660:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_uint32_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2430:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2441:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2453:6:139","type":""}],"src":"2370:366:139"},{"body":{"nodeType":"YulBlock","src":"2819:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"2865:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2874:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2882:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2867:6:139"},"nodeType":"YulFunctionCall","src":"2867:22:139"},"nodeType":"YulExpressionStatement","src":"2867:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2840:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2849:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2836:3:139"},"nodeType":"YulFunctionCall","src":"2836:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2861:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2832:3:139"},"nodeType":"YulFunctionCall","src":"2832:32:139"},"nodeType":"YulIf","src":"2829:2:139"},{"nodeType":"YulVariableDeclaration","src":"2900:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2919:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2913:5:139"},"nodeType":"YulFunctionCall","src":"2913:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2904:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2982:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2991:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2999:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2984:6:139"},"nodeType":"YulFunctionCall","src":"2984:22:139"},"nodeType":"YulExpressionStatement","src":"2984:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2951:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2972:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2965:6:139"},"nodeType":"YulFunctionCall","src":"2965:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2958:6:139"},"nodeType":"YulFunctionCall","src":"2958:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2948:2:139"},"nodeType":"YulFunctionCall","src":"2948:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2941:6:139"},"nodeType":"YulFunctionCall","src":"2941:40:139"},"nodeType":"YulIf","src":"2938:2:139"},{"nodeType":"YulAssignment","src":"3017:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3027:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3017:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2785:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2796:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2808:6:139","type":""}],"src":"2741:297:139"},{"body":{"nodeType":"YulBlock","src":"3132:552:139","statements":[{"body":{"nodeType":"YulBlock","src":"3178:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3187:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3195:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3180:6:139"},"nodeType":"YulFunctionCall","src":"3180:22:139"},"nodeType":"YulExpressionStatement","src":"3180:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3153:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3162:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3149:3:139"},"nodeType":"YulFunctionCall","src":"3149:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3174:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3145:3:139"},"nodeType":"YulFunctionCall","src":"3145:32:139"},"nodeType":"YulIf","src":"3142:2:139"},{"nodeType":"YulVariableDeclaration","src":"3213:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3240:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3227:12:139"},"nodeType":"YulFunctionCall","src":"3227:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3217:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3259:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3269:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3263:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3314:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3323:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3331:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3316:6:139"},"nodeType":"YulFunctionCall","src":"3316:22:139"},"nodeType":"YulExpressionStatement","src":"3316:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3302:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3310:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3299:2:139"},"nodeType":"YulFunctionCall","src":"3299:14:139"},"nodeType":"YulIf","src":"3296:2:139"},{"nodeType":"YulVariableDeclaration","src":"3349:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3363:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3374:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3359:3:139"},"nodeType":"YulFunctionCall","src":"3359:22:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3353:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3429:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3438:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3446:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3431:6:139"},"nodeType":"YulFunctionCall","src":"3431:22:139"},"nodeType":"YulExpressionStatement","src":"3431:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3408:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3412:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3404:3:139"},"nodeType":"YulFunctionCall","src":"3404:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3419:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3400:3:139"},"nodeType":"YulFunctionCall","src":"3400:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3393:6:139"},"nodeType":"YulFunctionCall","src":"3393:35:139"},"nodeType":"YulIf","src":"3390:2:139"},{"nodeType":"YulVariableDeclaration","src":"3464:30:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3491:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3478:12:139"},"nodeType":"YulFunctionCall","src":"3478:16:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3468:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3521:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3530:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3538:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3523:6:139"},"nodeType":"YulFunctionCall","src":"3523:22:139"},"nodeType":"YulExpressionStatement","src":"3523:22:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3509:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3517:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3506:2:139"},"nodeType":"YulFunctionCall","src":"3506:14:139"},"nodeType":"YulIf","src":"3503:2:139"},{"body":{"nodeType":"YulBlock","src":"3597:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3606:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3614:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3599:6:139"},"nodeType":"YulFunctionCall","src":"3599:22:139"},"nodeType":"YulExpressionStatement","src":"3599:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3570:2:139"},{"name":"length","nodeType":"YulIdentifier","src":"3574:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3566:3:139"},"nodeType":"YulFunctionCall","src":"3566:15:139"},{"kind":"number","nodeType":"YulLiteral","src":"3583:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3562:3:139"},"nodeType":"YulFunctionCall","src":"3562:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3588:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3559:2:139"},"nodeType":"YulFunctionCall","src":"3559:37:139"},"nodeType":"YulIf","src":"3556:2:139"},{"nodeType":"YulAssignment","src":"3632:21:139","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3646:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3650:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3642:3:139"},"nodeType":"YulFunctionCall","src":"3642:11:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3632:6:139"}]},{"nodeType":"YulAssignment","src":"3662:16:139","value":{"name":"length","nodeType":"YulIdentifier","src":"3672:6:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3662:6:139"}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3090:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3101:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3113:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3121:6:139","type":""}],"src":"3043:641:139"},{"body":{"nodeType":"YulBlock","src":"3774:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"3820:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3829:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3837:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3822:6:139"},"nodeType":"YulFunctionCall","src":"3822:22:139"},"nodeType":"YulExpressionStatement","src":"3822:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3795:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3804:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3791:3:139"},"nodeType":"YulFunctionCall","src":"3791:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3816:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3787:3:139"},"nodeType":"YulFunctionCall","src":"3787:32:139"},"nodeType":"YulIf","src":"3784:2:139"},{"nodeType":"YulVariableDeclaration","src":"3855:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3881:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3868:12:139"},"nodeType":"YulFunctionCall","src":"3868:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3859:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3925:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3900:24:139"},"nodeType":"YulFunctionCall","src":"3900:31:139"},"nodeType":"YulExpressionStatement","src":"3900:31:139"},{"nodeType":"YulAssignment","src":"3940:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"3950:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3940:6:139"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$5767","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3740:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3751:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3763:6:139","type":""}],"src":"3689:272:139"},{"body":{"nodeType":"YulBlock","src":"4036:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"4082:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4091:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4099:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4084:6:139"},"nodeType":"YulFunctionCall","src":"4084:22:139"},"nodeType":"YulExpressionStatement","src":"4084:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4057:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4066:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4053:3:139"},"nodeType":"YulFunctionCall","src":"4053:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4078:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4049:3:139"},"nodeType":"YulFunctionCall","src":"4049:32:139"},"nodeType":"YulIf","src":"4046:2:139"},{"nodeType":"YulAssignment","src":"4117:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4140:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4127:12:139"},"nodeType":"YulFunctionCall","src":"4127:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4117:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4002:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4013:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4025:6:139","type":""}],"src":"3966:190:139"},{"body":{"nodeType":"YulBlock","src":"4242:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"4288:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4297:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4305:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4290:6:139"},"nodeType":"YulFunctionCall","src":"4290:22:139"},"nodeType":"YulExpressionStatement","src":"4290:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4263:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4272:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4259:3:139"},"nodeType":"YulFunctionCall","src":"4259:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4284:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4255:3:139"},"nodeType":"YulFunctionCall","src":"4255:32:139"},"nodeType":"YulIf","src":"4252:2:139"},{"nodeType":"YulAssignment","src":"4323:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4339:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4333:5:139"},"nodeType":"YulFunctionCall","src":"4333:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4323:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4208:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4219:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4231:6:139","type":""}],"src":"4161:194:139"},{"body":{"nodeType":"YulBlock","src":"4461:102:139","statements":[{"nodeType":"YulAssignment","src":"4471:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4483:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4494:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4479:3:139"},"nodeType":"YulFunctionCall","src":"4479:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4471:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4513:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4528:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4544:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4549:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4540:3:139"},"nodeType":"YulFunctionCall","src":"4540:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4553:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4536:3:139"},"nodeType":"YulFunctionCall","src":"4536:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4524:3:139"},"nodeType":"YulFunctionCall","src":"4524:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4506:6:139"},"nodeType":"YulFunctionCall","src":"4506:51:139"},"nodeType":"YulExpressionStatement","src":"4506:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4430:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4441:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4452:4:139","type":""}],"src":"4360:203:139"},{"body":{"nodeType":"YulBlock","src":"4697:145:139","statements":[{"nodeType":"YulAssignment","src":"4707:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4719:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4730:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4715:3:139"},"nodeType":"YulFunctionCall","src":"4715:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4707:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4749:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4764:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4780:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4785:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4776:3:139"},"nodeType":"YulFunctionCall","src":"4776:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"4789:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4772:3:139"},"nodeType":"YulFunctionCall","src":"4772:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4760:3:139"},"nodeType":"YulFunctionCall","src":"4760:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4742:6:139"},"nodeType":"YulFunctionCall","src":"4742:51:139"},"nodeType":"YulExpressionStatement","src":"4742:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4813:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4824:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4809:3:139"},"nodeType":"YulFunctionCall","src":"4809:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4829:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4802:6:139"},"nodeType":"YulFunctionCall","src":"4802:34:139"},"nodeType":"YulExpressionStatement","src":"4802:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4658:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4669:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4677:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4688:4:139","type":""}],"src":"4568:274:139"},{"body":{"nodeType":"YulBlock","src":"4942:92:139","statements":[{"nodeType":"YulAssignment","src":"4952:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4964:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4975:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4960:3:139"},"nodeType":"YulFunctionCall","src":"4960:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4952:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4994:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5019:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5012:6:139"},"nodeType":"YulFunctionCall","src":"5012:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5005:6:139"},"nodeType":"YulFunctionCall","src":"5005:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4987:6:139"},"nodeType":"YulFunctionCall","src":"4987:41:139"},"nodeType":"YulExpressionStatement","src":"4987:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4911:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4922:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4933:4:139","type":""}],"src":"4847:187:139"},{"body":{"nodeType":"YulBlock","src":"5180:541:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5197:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5222:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5215:6:139"},"nodeType":"YulFunctionCall","src":"5215:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5208:6:139"},"nodeType":"YulFunctionCall","src":"5208:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5190:6:139"},"nodeType":"YulFunctionCall","src":"5190:41:139"},"nodeType":"YulExpressionStatement","src":"5190:41:139"},{"nodeType":"YulVariableDeclaration","src":"5240:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"5250:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5244:2:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5272:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5283:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5268:3:139"},"nodeType":"YulFunctionCall","src":"5268:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5288:2:139","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5261:6:139"},"nodeType":"YulFunctionCall","src":"5261:30:139"},"nodeType":"YulExpressionStatement","src":"5261:30:139"},{"nodeType":"YulVariableDeclaration","src":"5300:27:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5320:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5314:5:139"},"nodeType":"YulFunctionCall","src":"5314:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5304:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5347:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5358:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5343:3:139"},"nodeType":"YulFunctionCall","src":"5343:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"5363:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5336:6:139"},"nodeType":"YulFunctionCall","src":"5336:34:139"},"nodeType":"YulExpressionStatement","src":"5336:34:139"},{"nodeType":"YulVariableDeclaration","src":"5379:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"5388:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5383:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5451:90:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5480:9:139"},{"name":"i","nodeType":"YulIdentifier","src":"5491:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5476:3:139"},"nodeType":"YulFunctionCall","src":"5476:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"5495:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5472:3:139"},"nodeType":"YulFunctionCall","src":"5472:26:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5514:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"5522:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5510:3:139"},"nodeType":"YulFunctionCall","src":"5510:14:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5526:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5506:3:139"},"nodeType":"YulFunctionCall","src":"5506:23:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5500:5:139"},"nodeType":"YulFunctionCall","src":"5500:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5465:6:139"},"nodeType":"YulFunctionCall","src":"5465:66:139"},"nodeType":"YulExpressionStatement","src":"5465:66:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5412:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"5415:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5409:2:139"},"nodeType":"YulFunctionCall","src":"5409:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5423:19:139","statements":[{"nodeType":"YulAssignment","src":"5425:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5434:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"5437:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5430:3:139"},"nodeType":"YulFunctionCall","src":"5430:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5425:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"5405:3:139","statements":[]},"src":"5401:140:139"},{"body":{"nodeType":"YulBlock","src":"5575:69:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5604:9:139"},{"name":"length","nodeType":"YulIdentifier","src":"5615:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5600:3:139"},"nodeType":"YulFunctionCall","src":"5600:22:139"},{"kind":"number","nodeType":"YulLiteral","src":"5624:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5596:3:139"},"nodeType":"YulFunctionCall","src":"5596:31:139"},{"name":"tail","nodeType":"YulIdentifier","src":"5629:4:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5589:6:139"},"nodeType":"YulFunctionCall","src":"5589:45:139"},"nodeType":"YulExpressionStatement","src":"5589:45:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5556:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"5559:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5553:2:139"},"nodeType":"YulFunctionCall","src":"5553:13:139"},"nodeType":"YulIf","src":"5550:2:139"},{"nodeType":"YulAssignment","src":"5653:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5669:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5688:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5696:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5684:3:139"},"nodeType":"YulFunctionCall","src":"5684:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5705:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5701:3:139"},"nodeType":"YulFunctionCall","src":"5701:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5680:3:139"},"nodeType":"YulFunctionCall","src":"5680:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5665:3:139"},"nodeType":"YulFunctionCall","src":"5665:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"5712:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5661:3:139"},"nodeType":"YulFunctionCall","src":"5661:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5653:4:139"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5141:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5152:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5160:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5171:4:139","type":""}],"src":"5039:682:139"},{"body":{"nodeType":"YulBlock","src":"5851:102:139","statements":[{"nodeType":"YulAssignment","src":"5861:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5873:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5884:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5869:3:139"},"nodeType":"YulFunctionCall","src":"5869:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5861:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5903:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5918:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5934:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5939:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5930:3:139"},"nodeType":"YulFunctionCall","src":"5930:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5943:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5926:3:139"},"nodeType":"YulFunctionCall","src":"5926:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5914:3:139"},"nodeType":"YulFunctionCall","src":"5914:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5896:6:139"},"nodeType":"YulFunctionCall","src":"5896:51:139"},"nodeType":"YulExpressionStatement","src":"5896:51:139"}]},"name":"abi_encode_tuple_t_contract$_ICommunityFund_$36391__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5820:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5831:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5842:4:139","type":""}],"src":"5726:227:139"},{"body":{"nodeType":"YulBlock","src":"6074:102:139","statements":[{"nodeType":"YulAssignment","src":"6084:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6096:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6107:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6092:3:139"},"nodeType":"YulFunctionCall","src":"6092:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6084:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6126:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6141:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6157:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6162:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6153:3:139"},"nodeType":"YulFunctionCall","src":"6153:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6166:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6149:3:139"},"nodeType":"YulFunctionCall","src":"6149:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6137:3:139"},"nodeType":"YulFunctionCall","src":"6137:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6119:6:139"},"nodeType":"YulFunctionCall","src":"6119:51:139"},"nodeType":"YulExpressionStatement","src":"6119:51:139"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6043:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6054:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6065:4:139","type":""}],"src":"5958:218:139"},{"body":{"nodeType":"YulBlock","src":"6355:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6372:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6383:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6365:6:139"},"nodeType":"YulFunctionCall","src":"6365:21:139"},"nodeType":"YulExpressionStatement","src":"6365:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6406:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6417:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6402:3:139"},"nodeType":"YulFunctionCall","src":"6402:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6422:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6395:6:139"},"nodeType":"YulFunctionCall","src":"6395:30:139"},"nodeType":"YulExpressionStatement","src":"6395:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6445:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6456:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6441:3:139"},"nodeType":"YulFunctionCall","src":"6441:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6461:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6434:6:139"},"nodeType":"YulFunctionCall","src":"6434:62:139"},"nodeType":"YulExpressionStatement","src":"6434:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6516:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6527:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6512:3:139"},"nodeType":"YulFunctionCall","src":"6512:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6532:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6505:6:139"},"nodeType":"YulFunctionCall","src":"6505:36:139"},"nodeType":"YulExpressionStatement","src":"6505:36:139"},{"nodeType":"YulAssignment","src":"6550:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6562:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6573:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6558:3:139"},"nodeType":"YulFunctionCall","src":"6558:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6550:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6332:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6346:4:139","type":""}],"src":"6181:402:139"},{"body":{"nodeType":"YulBlock","src":"6762:172:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6779:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6790:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6772:6:139"},"nodeType":"YulFunctionCall","src":"6772:21:139"},"nodeType":"YulExpressionStatement","src":"6772:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6813:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6824:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6809:3:139"},"nodeType":"YulFunctionCall","src":"6809:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6829:2:139","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6802:6:139"},"nodeType":"YulFunctionCall","src":"6802:30:139"},"nodeType":"YulExpressionStatement","src":"6802:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6852:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6863:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6848:3:139"},"nodeType":"YulFunctionCall","src":"6848:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6868:24:139","type":"","value":"Epoch: not started yet"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6841:6:139"},"nodeType":"YulFunctionCall","src":"6841:52:139"},"nodeType":"YulExpressionStatement","src":"6841:52:139"},{"nodeType":"YulAssignment","src":"6902:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6914:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6925:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6910:3:139"},"nodeType":"YulFunctionCall","src":"6910:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6902:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6739:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6753:4:139","type":""}],"src":"6588:346:139"},{"body":{"nodeType":"YulBlock","src":"7113:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7130:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7141:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7123:6:139"},"nodeType":"YulFunctionCall","src":"7123:21:139"},"nodeType":"YulExpressionStatement","src":"7123:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7164:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7175:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7160:3:139"},"nodeType":"YulFunctionCall","src":"7160:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7180:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7153:6:139"},"nodeType":"YulFunctionCall","src":"7153:30:139"},"nodeType":"YulExpressionStatement","src":"7153:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7203:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7214:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7199:3:139"},"nodeType":"YulFunctionCall","src":"7199:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7219:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7192:6:139"},"nodeType":"YulFunctionCall","src":"7192:62:139"},"nodeType":"YulExpressionStatement","src":"7192:62:139"},{"nodeType":"YulAssignment","src":"7263:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7275:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7286:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:139"},"nodeType":"YulFunctionCall","src":"7271:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7263:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7090:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7104:4:139","type":""}],"src":"6939:356:139"},{"body":{"nodeType":"YulBlock","src":"7474:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7491:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7502:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7484:6:139"},"nodeType":"YulFunctionCall","src":"7484:21:139"},"nodeType":"YulExpressionStatement","src":"7484:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7525:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7536:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7521:3:139"},"nodeType":"YulFunctionCall","src":"7521:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7541:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7514:6:139"},"nodeType":"YulFunctionCall","src":"7514:30:139"},"nodeType":"YulExpressionStatement","src":"7514:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7564:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7575:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7560:3:139"},"nodeType":"YulFunctionCall","src":"7560:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7580:20:139","type":"","value":"Epoch: not allowed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7553:6:139"},"nodeType":"YulFunctionCall","src":"7553:48:139"},"nodeType":"YulExpressionStatement","src":"7553:48:139"},{"nodeType":"YulAssignment","src":"7610:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7622:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7633:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7618:3:139"},"nodeType":"YulFunctionCall","src":"7618:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7610:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ca181773b1c59604f15d7520d42e1d47889556e1b4139f88cc128771175e114d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7451:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7465:4:139","type":""}],"src":"7300:342:139"},{"body":{"nodeType":"YulBlock","src":"7821:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7838:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7849:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7831:6:139"},"nodeType":"YulFunctionCall","src":"7831:21:139"},"nodeType":"YulExpressionStatement","src":"7831:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7872:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7883:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7868:3:139"},"nodeType":"YulFunctionCall","src":"7868:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7888:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7861:6:139"},"nodeType":"YulFunctionCall","src":"7861:30:139"},"nodeType":"YulExpressionStatement","src":"7861:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7911:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7922:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7907:3:139"},"nodeType":"YulFunctionCall","src":"7907:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7927:21:139","type":"","value":"invalid percentages"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7900:6:139"},"nodeType":"YulFunctionCall","src":"7900:49:139"},"nodeType":"YulExpressionStatement","src":"7900:49:139"},{"nodeType":"YulAssignment","src":"7958:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7970:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7981:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7966:3:139"},"nodeType":"YulFunctionCall","src":"7966:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7958:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7798:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7812:4:139","type":""}],"src":"7647:343:139"},{"body":{"nodeType":"YulBlock","src":"8096:76:139","statements":[{"nodeType":"YulAssignment","src":"8106:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8118:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8129:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8114:3:139"},"nodeType":"YulFunctionCall","src":"8114:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8106:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8148:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"8159:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8141:6:139"},"nodeType":"YulFunctionCall","src":"8141:25:139"},"nodeType":"YulExpressionStatement","src":"8141:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8065:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8076:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8087:4:139","type":""}],"src":"7995:177:139"},{"body":{"nodeType":"YulBlock","src":"8276:93:139","statements":[{"nodeType":"YulAssignment","src":"8286:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8298:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8309:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8294:3:139"},"nodeType":"YulFunctionCall","src":"8294:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8286:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8328:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8343:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"8351:10:139","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8339:3:139"},"nodeType":"YulFunctionCall","src":"8339:23:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8321:6:139"},"nodeType":"YulFunctionCall","src":"8321:42:139"},"nodeType":"YulExpressionStatement","src":"8321:42:139"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8245:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8256:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8267:4:139","type":""}],"src":"8177:192:139"},{"body":{"nodeType":"YulBlock","src":"8419:230:139","statements":[{"nodeType":"YulAssignment","src":"8429:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8445:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8439:5:139"},"nodeType":"YulFunctionCall","src":"8439:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"8429:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"8457:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"8479:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"8495:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"8501:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8491:3:139"},"nodeType":"YulFunctionCall","src":"8491:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8510:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8506:3:139"},"nodeType":"YulFunctionCall","src":"8506:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8487:3:139"},"nodeType":"YulFunctionCall","src":"8487:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8475:3:139"},"nodeType":"YulFunctionCall","src":"8475:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"8461:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8590:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"8592:16:139"},"nodeType":"YulFunctionCall","src":"8592:18:139"},"nodeType":"YulExpressionStatement","src":"8592:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"8533:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"8545:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8530:2:139"},"nodeType":"YulFunctionCall","src":"8530:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"8569:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"8581:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8566:2:139"},"nodeType":"YulFunctionCall","src":"8566:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8527:2:139"},"nodeType":"YulFunctionCall","src":"8527:62:139"},"nodeType":"YulIf","src":"8524:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8628:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"8632:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8621:6:139"},"nodeType":"YulFunctionCall","src":"8621:22:139"},"nodeType":"YulExpressionStatement","src":"8621:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"8399:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"8408:6:139","type":""}],"src":"8374:275:139"},{"body":{"nodeType":"YulBlock","src":"8723:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"8767:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"8769:16:139"},"nodeType":"YulFunctionCall","src":"8769:18:139"},"nodeType":"YulExpressionStatement","src":"8769:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8739:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"8747:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8736:2:139"},"nodeType":"YulFunctionCall","src":"8736:30:139"},"nodeType":"YulIf","src":"8733:2:139"},{"nodeType":"YulAssignment","src":"8798:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8814:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"8817:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8810:3:139"},"nodeType":"YulFunctionCall","src":"8810:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"8826:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8806:3:139"},"nodeType":"YulFunctionCall","src":"8806:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"8798:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"8703:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"8714:4:139","type":""}],"src":"8654:183:139"},{"body":{"nodeType":"YulBlock","src":"8890:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"8917:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8919:16:139"},"nodeType":"YulFunctionCall","src":"8919:18:139"},"nodeType":"YulExpressionStatement","src":"8919:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8906:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8913:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8909:3:139"},"nodeType":"YulFunctionCall","src":"8909:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8903:2:139"},"nodeType":"YulFunctionCall","src":"8903:13:139"},"nodeType":"YulIf","src":"8900:2:139"},{"nodeType":"YulAssignment","src":"8948:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8959:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"8962:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8955:3:139"},"nodeType":"YulFunctionCall","src":"8955:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"8948:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8873:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"8876:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"8882:3:139","type":""}],"src":"8842:128:139"},{"body":{"nodeType":"YulBlock","src":"9022:181:139","statements":[{"nodeType":"YulVariableDeclaration","src":"9032:20:139","value":{"kind":"number","nodeType":"YulLiteral","src":"9042:10:139","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9036:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9061:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9076:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9079:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9072:3:139"},"nodeType":"YulFunctionCall","src":"9072:10:139"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"9065:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9091:21:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9106:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9109:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9102:3:139"},"nodeType":"YulFunctionCall","src":"9102:10:139"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"9095:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"9146:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9148:16:139"},"nodeType":"YulFunctionCall","src":"9148:18:139"},"nodeType":"YulExpressionStatement","src":"9148:18:139"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"9127:3:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9136:2:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"9140:3:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9132:3:139"},"nodeType":"YulFunctionCall","src":"9132:12:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9124:2:139"},"nodeType":"YulFunctionCall","src":"9124:21:139"},"nodeType":"YulIf","src":"9121:2:139"},{"nodeType":"YulAssignment","src":"9177:20:139","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"9188:3:139"},{"name":"y_1","nodeType":"YulIdentifier","src":"9193:3:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9184:3:139"},"nodeType":"YulFunctionCall","src":"9184:13:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"9177:3:139"}]}]},"name":"checked_add_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9005:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9008:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"9014:3:139","type":""}],"src":"8975:228:139"},{"body":{"nodeType":"YulBlock","src":"9254:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"9285:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"9306:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9313:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9318:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9309:3:139"},"nodeType":"YulFunctionCall","src":"9309:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9299:6:139"},"nodeType":"YulFunctionCall","src":"9299:31:139"},"nodeType":"YulExpressionStatement","src":"9299:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9350:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9353:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9343:6:139"},"nodeType":"YulFunctionCall","src":"9343:15:139"},"nodeType":"YulExpressionStatement","src":"9343:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"9378:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"9381:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9371:6:139"},"nodeType":"YulFunctionCall","src":"9371:15:139"},"nodeType":"YulExpressionStatement","src":"9371:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9274:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9267:6:139"},"nodeType":"YulFunctionCall","src":"9267:9:139"},"nodeType":"YulIf","src":"9264:2:139"},{"nodeType":"YulAssignment","src":"9405:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9414:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9417:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9410:3:139"},"nodeType":"YulFunctionCall","src":"9410:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"9405:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9239:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9242:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"9248:1:139","type":""}],"src":"9208:217:139"},{"body":{"nodeType":"YulBlock","src":"9482:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"9541:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9543:16:139"},"nodeType":"YulFunctionCall","src":"9543:18:139"},"nodeType":"YulExpressionStatement","src":"9543:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9513:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9506:6:139"},"nodeType":"YulFunctionCall","src":"9506:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9499:6:139"},"nodeType":"YulFunctionCall","src":"9499:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9521:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9532:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9528:3:139"},"nodeType":"YulFunctionCall","src":"9528:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"9536:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9524:3:139"},"nodeType":"YulFunctionCall","src":"9524:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9518:2:139"},"nodeType":"YulFunctionCall","src":"9518:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9495:3:139"},"nodeType":"YulFunctionCall","src":"9495:45:139"},"nodeType":"YulIf","src":"9492:2:139"},{"nodeType":"YulAssignment","src":"9572:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9587:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9590:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9583:3:139"},"nodeType":"YulFunctionCall","src":"9583:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"9572:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9461:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9464:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"9470:7:139","type":""}],"src":"9430:168:139"},{"body":{"nodeType":"YulBlock","src":"9652:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"9674:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9676:16:139"},"nodeType":"YulFunctionCall","src":"9676:18:139"},"nodeType":"YulExpressionStatement","src":"9676:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9668:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9671:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9665:2:139"},"nodeType":"YulFunctionCall","src":"9665:8:139"},"nodeType":"YulIf","src":"9662:2:139"},{"nodeType":"YulAssignment","src":"9705:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9717:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"9720:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9713:3:139"},"nodeType":"YulFunctionCall","src":"9713:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9705:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9634:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"9637:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9643:4:139","type":""}],"src":"9603:125:139"},{"body":{"nodeType":"YulBlock","src":"9780:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"9811:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9813:16:139"},"nodeType":"YulFunctionCall","src":"9813:18:139"},"nodeType":"YulExpressionStatement","src":"9813:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9796:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9807:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9803:3:139"},"nodeType":"YulFunctionCall","src":"9803:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9793:2:139"},"nodeType":"YulFunctionCall","src":"9793:17:139"},"nodeType":"YulIf","src":"9790:2:139"},{"nodeType":"YulAssignment","src":"9842:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9853:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"9860:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9849:3:139"},"nodeType":"YulFunctionCall","src":"9849:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9842:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9762:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9772:3:139","type":""}],"src":"9733:135:139"},{"body":{"nodeType":"YulBlock","src":"9905:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9922:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9929:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9934:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9925:3:139"},"nodeType":"YulFunctionCall","src":"9925:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9915:6:139"},"nodeType":"YulFunctionCall","src":"9915:31:139"},"nodeType":"YulExpressionStatement","src":"9915:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9962:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9965:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9955:6:139"},"nodeType":"YulFunctionCall","src":"9955:15:139"},"nodeType":"YulExpressionStatement","src":"9955:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9986:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9989:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9979:6:139"},"nodeType":"YulFunctionCall","src":"9979:15:139"},"nodeType":"YulExpressionStatement","src":"9979:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9873:127:139"},{"body":{"nodeType":"YulBlock","src":"10037:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10054:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10061:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10066:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10057:3:139"},"nodeType":"YulFunctionCall","src":"10057:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10047:6:139"},"nodeType":"YulFunctionCall","src":"10047:31:139"},"nodeType":"YulExpressionStatement","src":"10047:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10094:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10097:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10087:6:139"},"nodeType":"YulFunctionCall","src":"10087:15:139"},"nodeType":"YulExpressionStatement","src":"10087:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10118:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10121:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10111:6:139"},"nodeType":"YulFunctionCall","src":"10111:15:139"},"nodeType":"YulExpressionStatement","src":"10111:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"10005:127:139"},{"body":{"nodeType":"YulBlock","src":"10182:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"10246:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10255:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10258:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10248:6:139"},"nodeType":"YulFunctionCall","src":"10248:12:139"},"nodeType":"YulExpressionStatement","src":"10248:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10205:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10216:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10231:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10236:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10227:3:139"},"nodeType":"YulFunctionCall","src":"10227:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10240:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10223:3:139"},"nodeType":"YulFunctionCall","src":"10223:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10212:3:139"},"nodeType":"YulFunctionCall","src":"10212:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10202:2:139"},"nodeType":"YulFunctionCall","src":"10202:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10195:6:139"},"nodeType":"YulFunctionCall","src":"10195:50:139"},"nodeType":"YulIf","src":"10192:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10171:5:139","type":""}],"src":"10137:131:139"}]},"contents":"{\n    { }\n    function abi_decode_array_uint32_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            if iszero(eq(value, and(value, 0xffffffff))) { revert(array, array) }\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value1, value1) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n        let _3 := calldataload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let src := add(_2, _4)\n        if gt(add(add(_2, shl(5, _3)), _4), dataEnd) { revert(value1, value1) }\n        let i := value1\n        for { } lt(i, _3) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n            src := add(src, _4)\n        }\n        value0 := dst_1\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_uint32_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_uint32_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        value0 := abi_decode_array_uint32_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(value0, value0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(value0, value0) }\n        value0 := add(_2, 32)\n        value1 := length\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$5767(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, iszero(iszero(value0)))\n        let _1 := 32\n        mstore(add(headStart, _1), 64)\n        let length := mload(value1)\n        mstore(add(headStart, 64), length)\n        let i := tail\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 96), tail)\n        }\n        tail := add(add(headStart, and(add(length, 31), not(31))), 96)\n    }\n    function abi_encode_tuple_t_contract$_ICommunityFund_$36391__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$5767__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8a438152c291035ba61c330518809ea8d48dc6b10ff12642cf5e0b2970a563__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Epoch: not started yet\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ca181773b1c59604f15d7520d42e1d47889556e1b4139f88cc128771175e114d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Epoch: not allowed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_da5de935a79473774bc1a56577c1e5d9c5477e764be29dbf7e048ba86c791791__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"invalid percentages\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff))\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_add_t_uint32(x, y) -> sum\n    {\n        let _1 := 0xffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061016e5760003560e01c80638da5cb5b116100cc578063e086e5ec1161007a578063e086e5ec146103e6578063efe97d05146103fb578063f2a40db814610410578063f2fde38b14610430578063f46b65ac14610450578063f4f3b20014610465578063fbccedae146104855761017d565b80638da5cb5b14610341578063b8b9b5491461035f578063b97dd9e214610367578063bce582691461037c578063c45ff5441461039c578063c5967c26146103bc578063c828371e146103d15761017d565b80633f26479e116101295780633f26479e1461026d57806344def48f146102845780634585e33b146102a45780635c45f349146102c45780636a2ab602146102d95780636e04ff0d146102fe578063715018a61461032c5761017d565b80623f619d14610192578062f380f4146101cc5780630f3a9f65146101f95780631ed2419514610219578063398bac63146102385780633de00c361461024d5761017d565b3661017d5761017b61049a565b005b34801561018957600080fd5b5061017b61049a565b34801561019e57600080fd5b506101b26101ad366004611148565b61057c565b60405163ffffffff90911681526020015b60405180910390f35b3480156101d857600080fd5b506007546101ec906001600160a01b031681565b6040516101c39190611178565b34801561020557600080fd5b5061017b610214366004611148565b6105b6565b34801561022557600080fd5b506001545b6040519081526020016101c3565b34801561024457600080fd5b5061022a6105c3565b34801561025957600080fd5b506006546101ec906001600160a01b031681565b34801561027957600080fd5b5061022a620f424081565b34801561029057600080fd5b5061017b61029f366004610fbd565b6105d2565b3480156102b057600080fd5b5061017b6102bf3660046110db565b61060f565b3480156102d057600080fd5b5061017b6106b7565b3480156102e557600080fd5b506102ee6106ce565b60405190151581526020016101c3565b34801561030a57600080fd5b5061031e6103193660046110db565b6106d8565b6040516101c392919061118c565b34801561033857600080fd5b5061017b6106ff565b34801561034d57600080fd5b506000546001600160a01b03166101ec565b61017b61049a565b34801561037357600080fd5b5061022a610711565b34801561038857600080fd5b5061017b610397366004610fa1565b610737565b3480156103a857600080fd5b5061017b6103b7366004611080565b6108c5565b3480156103c857600080fd5b5061022a610970565b3480156103dd57600080fd5b5060025461022a565b3480156103f257600080fd5b5061017b610992565b34801561040757600080fd5b5061022a6109d7565b34801561041c57600080fd5b506101ec61042b366004611148565b6109e1565b34801561043c57600080fd5b5061017b61044b366004610fa1565b610a0b565b34801561045c57600080fd5b5061017b610a81565b34801561047157600080fd5b5061017b610480366004610fa1565b610afd565b34801561049157600080fd5b5061022a610c20565b600454479060005b8181101561057757600061050184600584815481106104d157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600882040154620f424060079092166004026101000a900463ffffffff16919091020490565b90506004828154811061052457634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610564573d6000803e3d6000fd5b505080610570906112d4565b90506104a2565b505050565b6005818154811061058c57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b6105be610cc7565b600155565b60006105cd610d21565b905090565b6105da610cc7565b81516105ed906004906020850190610e01565b508051610601906005906020840190610e66565b5061060b816108c5565b5050565b600254421161065e5760405162461bcd60e51b8152602060048201526016602482015275115c1bd8da0e881b9bdd081cdd185c9d1959081e595d60521b60448201526064015b60405180910390fd5b610666610d40565b6106a75760405162461bcd60e51b8152602060048201526012602482015271115c1bd8da0e881b9bdd08185b1b1bddd95960721b6044820152606401610655565b6106af610a81565b505042600355565b6006546106cc906001600160a01b0316610737565b565b60006105cd610d40565b600060606106e4610d40565b60405180602001604052806000815250915091509250929050565b610707610cc7565b6106cc6000610d59565b60006105cd60015461073160025461072b60025442610da9565b90610dc0565b90610dcc565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610766903090600401611178565b60206040518083038186803b15801561077e57600080fd5b505afa158015610792573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b69190611160565b60045490915060005b818110156108bf5760006107ee84600584815481106104d157634e487b7160e01b600052603260045260246000fd5b9050846001600160a01b031663a9059cbb6004848154811061082057634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561087457600080fd5b505af1158015610888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac91906110bb565b5050806108b8906112d4565b90506107bf565b50505050565b6108cd610cc7565b6000805b8251811015610921578281815181106108fa57634e487b7160e01b600052603260045260246000fd5b60200260200101518261090d9190611256565b915080610919816112d4565b9150506108d1565b50620f42408163ffffffff161461060b5760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642070657263656e746167657360681b6044820152606401610655565b60006105cd610989600154610983610dd8565b90610ca8565b60025490610cbb565b61099a610cc7565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156109d4573d6000803e3d6000fd5b50565b60006105cd610dd8565b600481815481106109f157600080fd5b6000918252602090912001546001600160a01b0316905081565b610a13610cc7565b6001600160a01b038116610a785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610655565b6109d481610d59565b600754600654604051631916558760e01b81526001600160a01b0392831692631916558792610ab592911690600401611178565b600060405180830381600087803b158015610acf57600080fd5b505af1158015610ae3573d6000803e3d6000fd5b50506006546106cc92506001600160a01b03169050610737565b610b05610cc7565b806001600160a01b031663a9059cbb610b266000546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610b52903090600401611178565b60206040518083038186803b158015610b6a57600080fd5b505afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba29190611160565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b91906110bb565b6007546006546040516302e4d97960e31b81526000926001600160a01b0390811692631726cbc892610c589290911690600401611178565b60206040518083038186803b158015610c7057600080fd5b505afa158015610c84573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cd9190611160565b6000610cb4828461129e565b9392505050565b6000610cb4828461123e565b6000546001600160a01b031633146106cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610655565b60006105cd600154610731600254600354610dc090919063ffffffff16565b6000610d4a610dd8565b610d52610711565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831015610db95781610cb4565b5090919050565b6000610cb482846112bd565b6000610cb4828461127e565b60006003546002541415610dee576105cd610d21565b6105cd6001610dfb610d21565b90610cbb565b828054828255906000526020600020908101928215610e56579160200282015b82811115610e5657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610e21565b50610e62929150610f0c565b5090565b82805482825590600052602060002090600701600890048101928215610e565791602002820160005b83821115610ed357835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302610e8f565b8015610f035782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610ed3565b5050610e629291505b5b80821115610e625760008155600101610f0d565b600082601f830112610f31578081fd5b81356020610f46610f418361121a565b6111e9565b80838252828201915082860187848660051b8901011115610f65578586fd5b855b85811015610f9457813563ffffffff81168114610f82578788fd5b84529284019290840190600101610f67565b5090979650505050505050565b600060208284031215610fb2578081fd5b8135610cb48161131b565b60008060408385031215610fcf578081fd5b823567ffffffffffffffff80821115610fe6578283fd5b818501915085601f830112610ff9578283fd5b81356020611009610f418361121a565b8083825282820191508286018a848660051b8901011115611028578788fd5b8796505b8487101561105357803561103f8161131b565b83526001969096019591830191830161102c565b5096505086013592505080821115611069578283fd5b5061107685828601610f21565b9150509250929050565b600060208284031215611091578081fd5b813567ffffffffffffffff8111156110a7578182fd5b6110b384828501610f21565b949350505050565b6000602082840312156110cc578081fd5b81518015158114610cb4578182fd5b600080602083850312156110ed578182fd5b823567ffffffffffffffff80821115611104578384fd5b818501915085601f830112611117578384fd5b813581811115611125578485fd5b866020828501011115611136578485fd5b60209290920196919550909350505050565b600060208284031215611159578081fd5b5035919050565b600060208284031215611171578081fd5b5051919050565b6001600160a01b0391909116815260200190565b8215158152600060206040818401528351806040850152825b818110156111c1578581018301518582016060015282016111a5565b818111156111d25783606083870101525b50601f01601f191692909201606001949350505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121257611212611305565b604052919050565b600067ffffffffffffffff82111561123457611234611305565b5060051b60200190565b60008219821115611251576112516112ef565b500190565b600063ffffffff808316818516808303821115611275576112756112ef565b01949350505050565b60008261129957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156112b8576112b86112ef565b500290565b6000828210156112cf576112cf6112ef565b500390565b60006000198214156112e8576112e86112ef565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109d457600080fdfea2646970667358221220d22b43d8bc82c0db6cf0b9314ded67e41c446993af02f843ebe4965283e0823e64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x16E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xCC JUMPI DUP1 PUSH4 0xE086E5EC GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xE086E5EC EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0xEFE97D05 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xF2A40DB8 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0xF46B65AC EQ PUSH2 0x450 JUMPI DUP1 PUSH4 0xF4F3B200 EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xFBCCEDAE EQ PUSH2 0x485 JUMPI PUSH2 0x17D JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x341 JUMPI DUP1 PUSH4 0xB8B9B549 EQ PUSH2 0x35F JUMPI DUP1 PUSH4 0xB97DD9E2 EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0xBCE58269 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0xC45FF544 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xC5967C26 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0xC828371E EQ PUSH2 0x3D1 JUMPI PUSH2 0x17D JUMP JUMPDEST DUP1 PUSH4 0x3F26479E GT PUSH2 0x129 JUMPI DUP1 PUSH4 0x3F26479E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x44DEF48F EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x4585E33B EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x5C45F349 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0x6A2AB602 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x6E04FF0D EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x32C JUMPI PUSH2 0x17D JUMP JUMPDEST DUP1 PUSH3 0x3F619D EQ PUSH2 0x192 JUMPI DUP1 PUSH3 0xF380F4 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xF3A9F65 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1ED24195 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x398BAC63 EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x3DE00C36 EQ PUSH2 0x24D JUMPI PUSH2 0x17D JUMP JUMPDEST CALLDATASIZE PUSH2 0x17D JUMPI PUSH2 0x17B PUSH2 0x49A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x189 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x49A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH2 0x1AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1148 JUMP JUMPDEST PUSH2 0x57C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x1EC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1178 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x214 CALLDATASIZE PUSH1 0x4 PUSH2 0x1148 JUMP JUMPDEST PUSH2 0x5B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x5C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0x1EC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH3 0xF4240 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x29F CALLDATASIZE PUSH1 0x4 PUSH2 0xFBD JUMP JUMPDEST PUSH2 0x5D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x10DB JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x6B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EE PUSH2 0x6CE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x319 CALLDATASIZE PUSH1 0x4 PUSH2 0x10DB JUMP JUMPDEST PUSH2 0x6D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP3 SWAP2 SWAP1 PUSH2 0x118C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x6FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1EC JUMP JUMPDEST PUSH2 0x17B PUSH2 0x49A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x388 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x397 CALLDATASIZE PUSH1 0x4 PUSH2 0xFA1 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1080 JUMP JUMPDEST PUSH2 0x8C5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x970 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x22A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x992 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x9D7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH2 0x42B CALLDATASIZE PUSH1 0x4 PUSH2 0x1148 JUMP JUMPDEST PUSH2 0x9E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x44B CALLDATASIZE PUSH1 0x4 PUSH2 0xFA1 JUMP JUMPDEST PUSH2 0xA0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0xA81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x480 CALLDATASIZE PUSH1 0x4 PUSH2 0xFA1 JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x4 SLOAD SELFBALANCE SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 PUSH2 0x501 DUP5 PUSH1 0x5 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x8 DUP3 DIV ADD SLOAD PUSH3 0xF4240 PUSH1 0x7 SWAP1 SWAP3 AND PUSH1 0x4 MUL PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP2 SWAP1 SWAP2 MUL DIV SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x524 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP1 PUSH2 0x570 SWAP1 PUSH2 0x12D4 JUMP JUMPDEST SWAP1 POP PUSH2 0x4A2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x58C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x8 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD PUSH1 0x4 MUL SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x5BE PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0xD21 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x5DA PUSH2 0xCC7 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x5ED SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0xE01 JUMP JUMPDEST POP DUP1 MLOAD PUSH2 0x601 SWAP1 PUSH1 0x5 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0xE66 JUMP JUMPDEST POP PUSH2 0x60B DUP2 PUSH2 0x8C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP GT PUSH2 0x65E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x115C1BD8DA0E881B9BDD081CDD185C9D1959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x666 PUSH2 0xD40 JUMP JUMPDEST PUSH2 0x6A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x115C1BD8DA0E881B9BDD08185B1B1BDDD959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x655 JUMP JUMPDEST PUSH2 0x6AF PUSH2 0xA81 JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x6CC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x737 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH2 0x6E4 PUSH2 0xD40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x707 PUSH2 0xCC7 JUMP JUMPDEST PUSH2 0x6CC PUSH1 0x0 PUSH2 0xD59 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH1 0x1 SLOAD PUSH2 0x731 PUSH1 0x2 SLOAD PUSH2 0x72B PUSH1 0x2 SLOAD TIMESTAMP PUSH2 0xDA9 JUMP JUMPDEST SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP1 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x766 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x792 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B6 SWAP2 SWAP1 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8BF JUMPI PUSH1 0x0 PUSH2 0x7EE DUP5 PUSH1 0x5 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST POP POP DUP1 PUSH2 0x8B8 SWAP1 PUSH2 0x12D4 JUMP JUMPDEST SWAP1 POP PUSH2 0x7BF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x8CD PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x921 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x8FA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH2 0x90D SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x919 DUP2 PUSH2 0x12D4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8D1 JUMP JUMPDEST POP PUSH3 0xF4240 DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH2 0x60B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x696E76616C69642070657263656E7461676573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x655 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0x989 PUSH1 0x1 SLOAD PUSH2 0x983 PUSH2 0xDD8 JUMP JUMPDEST SWAP1 PUSH2 0xCA8 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x99A PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SELFBALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP3 SWAP1 SWAP2 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x9D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x9F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH2 0xA13 PUSH2 0xCC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x655 JUMP JUMPDEST PUSH2 0x9D4 DUP2 PUSH2 0xD59 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x19165587 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x19165587 SWAP3 PUSH2 0xAB5 SWAP3 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x6 SLOAD PUSH2 0x6CC SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP PUSH2 0x737 JUMP JUMPDEST PUSH2 0xB05 PUSH2 0xCC7 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0xB26 PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xB52 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBA2 SWAP2 SWAP1 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x60B SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2E4D979 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP3 PUSH4 0x1726CBC8 SWAP3 PUSH2 0xC58 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x1178 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5CD SWAP2 SWAP1 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x129E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x123E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x655 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CD PUSH1 0x1 SLOAD PUSH2 0x731 PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0xDC0 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD4A PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0xD52 PUSH2 0x711 JUMP JUMPDEST LT ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xDB9 JUMPI DUP2 PUSH2 0xCB4 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x12BD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB4 DUP3 DUP5 PUSH2 0x127E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0xDEE JUMPI PUSH2 0x5CD PUSH2 0xD21 JUMP JUMPDEST PUSH2 0x5CD PUSH1 0x1 PUSH2 0xDFB PUSH2 0xD21 JUMP JUMPDEST SWAP1 PUSH2 0xCBB JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xE56 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xE56 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 0xE21 JUMP JUMPDEST POP PUSH2 0xE62 SWAP3 SWAP2 POP PUSH2 0xF0C JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 ADD PUSH1 0x8 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xE56 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0xED3 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0xE8F JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF03 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x4 ADD PUSH1 0x20 DUP2 PUSH1 0x3 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0xED3 JUMP JUMPDEST POP POP PUSH2 0xE62 SWAP3 SWAP2 POP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xE62 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xF46 PUSH2 0xF41 DUP4 PUSH2 0x121A JUMP JUMPDEST PUSH2 0x11E9 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0xF65 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0xF94 JUMPI DUP2 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xF82 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xF67 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFB2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCB4 DUP2 PUSH2 0x131B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFE6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFF9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x1009 PUSH2 0xF41 DUP4 PUSH2 0x121A JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP11 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x1028 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP7 POP JUMPDEST DUP5 DUP8 LT ISZERO PUSH2 0x1053 JUMPI DUP1 CALLDATALOAD PUSH2 0x103F DUP2 PUSH2 0x131B JUMP JUMPDEST DUP4 MSTORE PUSH1 0x1 SWAP7 SWAP1 SWAP7 ADD SWAP6 SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x102C JUMP JUMPDEST POP SWAP7 POP POP DUP7 ADD CALLDATALOAD SWAP3 POP POP DUP1 DUP3 GT ISZERO PUSH2 0x1069 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x1076 DUP6 DUP3 DUP7 ADD PUSH2 0xF21 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1091 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10A7 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x10B3 DUP5 DUP3 DUP6 ADD PUSH2 0xF21 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10CC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCB4 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10ED JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1104 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1117 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1125 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1136 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1159 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1171 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 DUP2 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x11C1 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x11A5 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x11D2 JUMPI DUP4 PUSH1 0x60 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x60 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1212 JUMPI PUSH2 0x1212 PUSH2 0x1305 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1234 JUMPI PUSH2 0x1234 PUSH2 0x1305 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1251 JUMPI PUSH2 0x1251 PUSH2 0x12EF JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x1275 JUMPI PUSH2 0x1275 PUSH2 0x12EF JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1299 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x12EF JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x12CF JUMPI PUSH2 0x12CF PUSH2 0x12EF JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x12E8 JUMPI PUSH2 0x12E8 PUSH2 0x12EF JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x9D4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD2 0x2B NUMBER 0xD8 0xBC DUP3 0xC0 0xDB PUSH13 0xF0B9314DED67E41C446993AF02 0xF8 NUMBER 0xEB 0xE4 SWAP7 MSTORE DUP4 0xE0 DUP3 RETURNDATACOPY PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"730:1096:124:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;743:15:123;:13;:15::i;:::-;730:1096:124;;;;;;;;;;;;678:15:123;:13;:15::i;386:34::-;;;;;;;;;;-1:-1:-1;386:34:123;;;;;:::i;:::-;;:::i;:::-;;;8351:10:139;8339:23;;;8321:42;;8309:2;8294:18;386:34:123;;;;;;;;835:35:124;;;;;;;;;;-1:-1:-1;835:35:124;;;;-1:-1:-1;;;;;835:35:124;;;;;;;;;;:::i;2630:88:126:-;;;;;;;;;;-1:-1:-1;2630:88:126;;;;;:::i;:::-;;:::i;2384:92::-;;;;;;;;;;-1:-1:-1;2463:6:126;;2384:92;;;8141:25:139;;;8129:2;8114:18;2384:92:126;8096:76:139;1850:104:126;;;;;;;;;;;;;:::i;811:18:124:-;;;;;;;;;;-1:-1:-1;811:18:124;;;;-1:-1:-1;;;;;811:18:124;;;303:46:123;;;;;;;;;;;;346:3;303:46;;1889:261;;;;;;;;;;-1:-1:-1;1889:261:123;;;;;:::i;:::-;;:::i;1713:111:124:-;;;;;;;;;;-1:-1:-1;1713:111:124;;;;;:::i;:::-;;:::i;1439:71::-;;;;;;;;;;;;;:::i;1423:93:126:-;;;;;;;;;;;;;:::i;:::-;;;5012:14:139;;5005:22;4987:41;;4975:2;4960:18;1423:93:126;4942:92:139;1516:191:124;;;;;;;;;;-1:-1:-1;1516:191:124;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1831:101:4:-;;;;;;;;;;;;;:::i;1201:85::-;;;;;;;;;;-1:-1:-1;1247:7:4;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;771:619:123;;;:::i;1960:155:126:-;;;;;;;;;;;;;:::i;1396:487:123:-;;;;;;;;;;-1:-1:-1;1396:487:123;;;;;:::i;:::-;;:::i;2156:329::-;;;;;;;;;;-1:-1:-1;2156:329:123;;;;;:::i;:::-;;:::i;2231:133:126:-;;;;;;;;;;;;;:::i;2482:98::-;;;;;;;;;;-1:-1:-1;2564:9:126;;2482:98;;2491:107:123;;;;;;;;;;;;;:::i;2121:104:126:-;;;;;;;;;;;;;:::i;355:25:123:-;;;;;;;;;;-1:-1:-1;355:25:123;;;;;:::i;:::-;;:::i;2081:198:4:-;;;;;;;;;;-1:-1:-1;2081:198:4;;;;;:::i;:::-;;:::i;1197:118:124:-;;;;;;;;;;;;;:::i;2604:128:123:-;;;;;;;;;;-1:-1:-1;2604:128:123;;;;;:::i;:::-;;:::i;1321:112:124:-;;;;;;;;;;;;;:::i;771:619:123:-;1046:8;:15;845:21;;821;1071:313;1095:14;1091:1;:18;1071:313;;;1202:11;1216:108;1258:13;1289:18;1308:1;1289:21;;;;;;-1:-1:-1;;;1289:21:123;;;;;;;;;;;;;;;;;;;;;;3298:16;1289:21;;;;;;;;;;;;3270:26;;;;3266:49;;3193:132;1216:108;1202:122;;1347:8;1356:1;1347:11;;;;;;-1:-1:-1;;;1347:11:123;;;;;;;;;;;;;;;;;;1339:34;;-1:-1:-1;;;;;1347:11:123;;;;1339:34;;;;;1369:3;;1339:34;1347:11;1339:34;1369:3;1347:11;1339:34;;;;;;;;;;;;;;;;;;;;;1071:313;1111:3;;;;:::i;:::-;;;1071:313;;;;771:619;;:::o;386:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2630:88:126:-;1094:13:4;:11;:13::i;:::-;2695:6:126::1;:16:::0;2630:88::o;1850:104::-;1906:7;1932:15;:13;:15::i;:::-;1925:22;;1850:104;:::o;1889:261:123:-;1094:13:4;:11;:13::i;:::-;2026:20:123;;::::1;::::0;:8:::1;::::0;:20:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;2056:40:123;;::::1;::::0;:18:::1;::::0;:40:::1;::::0;::::1;::::0;::::1;:::i;:::-;;2106:37;2123:19;2106:16;:37::i;:::-;1889:261:::0;;:::o;1713:111:124:-;988:9:126;;970:15;:27;962:62;;;;-1:-1:-1;;;962:62:126;;6790:2:139;962:62:126;;;6772:21:139;6829:2;6809:18;;;6802:30;-1:-1:-1;;;6848:18:139;;;6841:52;6910:18;;962:62:126;;;;;;;;;1042:11;:9;:11::i;:::-;1034:42;;;;-1:-1:-1;;;1034:42:126;;7502:2:139;1034:42:126;;;7484:21:139;7541:2;7521:18;;;7514:30;-1:-1:-1;;;7560:18:139;;;7553:48;7618:18;;1034:42:126;7474:168:139;1034:42:126;1791:26:124::1;:24;:26::i;:::-;-1:-1:-1::0;;1114:15:126;1097:14;:32;1713:111:124:o;1439:71::-;1498:4;;1482:21;;-1:-1:-1;;;;;1498:4:124;1482:15;:21::i;:::-;1439:71::o;1423:93:126:-;1475:4;1498:11;:9;:11::i;1516:191:124:-;1617:17;1636:24;1684:11;:9;:11::i;:::-;1676:24;;;;;;;;;;;;;;;;1516:191;;;;;:::o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;1960:155:126:-:0;2019:7;2045:63;2101:6;;2045:51;2086:9;;2045:36;2054:9;;2065:15;2045:8;:36::i;:::-;:40;;:51::i;:::-;:55;;:63::i;1396:487:123:-;1476:30;;-1:-1:-1;;;1476:30:123;;1452:21;;-1:-1:-1;;;;;1476:15:123;;;;;:30;;1500:4;;1476:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1541:8;:15;1452:54;;-1:-1:-1;1516:22:123;1566:311;1590:14;1586:1;:18;1566:311;;;1697:11;1711:108;1753:13;1784:18;1803:1;1784:21;;;;;;-1:-1:-1;;;1784:21:123;;;;;;;;1711:108;1697:122;;1834:5;-1:-1:-1;;;;;1834:14:123;;1849:8;1858:1;1849:11;;;;;;-1:-1:-1;;;1849:11:123;;;;;;;;;;;;;;;;;;;1834:32;;;;;;-1:-1:-1;;;;;;1834:32:123;;;-1:-1:-1;;;;;1849:11:123;;;1834:32;;;4742:51:139;4809:18;;;4802:34;;;4715:18;;1834:32:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1566:311;1606:3;;;;:::i;:::-;;;1566:311;;;;1396:487;;;:::o;2156:329::-;1094:13:4;:11;:13::i;:::-;2279:10:123::1;2308:9:::0;2303:111:::1;2327:19;:26;2323:1;:30;2303:111;;;2381:19;2401:1;2381:22;;;;;;-1:-1:-1::0;;;2381:22:123::1;;;;;;;;;;;;;;;2374:29;;;;;:::i;:::-;::::0;-1:-1:-1;2355:3:123;::::1;::::0;::::1;:::i;:::-;;;;2303:111;;;;346:3;2431;:23;;;2423:55;;;::::0;-1:-1:-1;;;2423:55:123;;7849:2:139;2423:55:123::1;::::0;::::1;7831:21:139::0;7888:2;7868:18;;;7861:30;-1:-1:-1;;;7907:18:139;;;7900:49;7966:18;;2423:55:123::1;7821:169:139::0;2231:133:126;2289:7;2315:42;2329:27;2349:6;;2329:15;:13;:15::i;:::-;:19;;:27::i;:::-;2315:9;;;:13;:42::i;2491:107:123:-;1094:13:4;:11;:13::i;:::-;1247:7;1273:6;;2543:48:123::1;::::0;-1:-1:-1;;;;;1273:6:4;;;;2569:21:123::1;2543:48:::0;::::1;;;::::0;2569:21;;2543:48;1247:7:4;2543:48:123;2569:21;1273:6:4;2543:48:123;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;2491:107::o:0;2121:104:126:-;2177:7;2203:15;:13;:15::i;355:25:123:-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;355:25:123;;-1:-1:-1;355:25:123;:::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;6383:2:139;2161:73:4::1;::::0;::::1;6365:21:139::0;6422:2;6402:18;;;6395:30;6461:34;6441:18;;;6434:62;-1:-1:-1;;;6512:18:139;;;6505:36;6558:19;;2161:73:4::1;6355:228:139::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;1197:118:124:-:0;1250:13;;1272:4;;1250:27;;-1:-1:-1;;;1250:27:124;;-1:-1:-1;;;;;1250:13:124;;;;:21;;:27;;1272:4;;;1250:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1303:4:124;;1287:21;;-1:-1:-1;;;;;;1303:4:124;;-1:-1:-1;1287:15:124;:21::i;2604:128:123:-;1094:13:4;:11;:13::i;:::-;2670:5:123::1;-1:-1:-1::0;;;;;2670:14:123::1;;2685:7;1247::4::0;1273:6;-1:-1:-1;;;;;1273:6:4;;1201:85;2685:7:123::1;2694:30;::::0;-1:-1:-1;;;2694:30:123;;-1:-1:-1;;;;;2694:15:123;::::1;::::0;::::1;::::0;:30:::1;::::0;2718:4:::1;::::0;2694:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2670:55;::::0;-1:-1:-1;;;;;;2670:55:123::1;::::0;;;;;;-1:-1:-1;;;;;4760:32:139;;;2670:55:123::1;::::0;::::1;4742:51:139::0;4809:18;;;4802:34;4715:18;;2670:55:123::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1321:112:124:-:0;1390:13;;1421:4;;1390:36;;-1:-1:-1;;;1390:36:124;;1364:7;;-1:-1:-1;;;;;1390:13:124;;;;:30;;:36;;1421:4;;;;1390:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3465:96:49:-;3523:7;3549:5;3553:1;3549;:5;:::i;:::-;3542:12;3465:96;-1:-1:-1;;;3465:96:49:o;2755:::-;2813:7;2839:5;2843:1;2839;:5;:::i;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;7141:2:139;1414:68:4;;;7123:21:139;;;7160:18;;;7153:30;7219:34;7199:18;;;7192:62;7271:18;;1414:68:4;7113:182:139;1142:122:126;1190:7;1216:41;1250:6;;1216:29;1235:9;;1216:14;;:18;;:29;;;;:::i;1522:111::-;1566:4;1611:15;:13;:15::i;:::-;1589:18;:16;:18::i;:::-;:37;;1582:44;;1522:111;:::o;2433:187:4:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;413:105:47:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:47;;413:105;-1:-1:-1;413:105:47:o;3122:96:49:-;3180:7;3206:5;3210:1;3206;:5;:::i;3850:96::-;3908:7;3934:5;3938:1;3934;:5;:::i;1639:192:126:-;1687:7;1723:14;;1710:9;;:27;1706:80;;;1760:15;:13;:15::i;1706:80::-;1802:22;1822:1;1802:15;:13;:15::i;:::-;:19;;:22::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:805:139;67:5;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;182:6;169:20;208:4;232:60;248:43;288:2;248:43;:::i;:::-;232:60;:::i;:::-;314:3;338:2;333:3;326:15;366:2;361:3;357:12;350:19;;401:2;393:6;389:15;453:3;448:2;442;439:1;435:10;427:6;423:23;419:32;416:41;413:2;;;474:5;467;460:20;413:2;500:5;514:276;528:2;525:1;522:9;514:276;;;599:3;586:17;647:10;640:5;636:22;629:5;626:33;616:2;;677:5;670;663:20;616:2;698:18;;736:12;;;;768;;;;546:1;539:9;514:276;;;-1:-1:-1;808:5:139;;77:742;-1:-1:-1;;;;;;;77:742:139:o;824:257::-;883:6;936:2;924:9;915:7;911:23;907:32;904:2;;;957:6;949;942:22;904:2;1001:9;988:23;1020:31;1045:5;1020:31;:::i;1086:1279::-;1203:6;1211;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1285:6;1277;1270:22;1232:2;1330:9;1317:23;1359:18;1400:2;1392:6;1389:14;1386:2;;;1421:6;1413;1406:22;1386:2;1464:6;1453:9;1449:22;1439:32;;1509:7;1502:4;1498:2;1494:13;1490:27;1480:2;;1536:6;1528;1521:22;1480:2;1577;1564:16;1599:4;1623:60;1639:43;1679:2;1639:43;:::i;1623:60::-;1705:3;1729:2;1724:3;1717:15;1757:2;1752:3;1748:12;1741:19;;1788:2;1784;1780:11;1836:7;1831:2;1825;1822:1;1818:10;1814:2;1810:19;1806:28;1803:41;1800:2;;;1862:6;1854;1847:22;1800:2;1889:6;1880:15;;1904:238;1918:2;1915:1;1912:9;1904:238;;;1989:3;1976:17;2006:31;2031:5;2006:31;:::i;:::-;2050:18;;1936:1;1929:9;;;;;2088:12;;;;2120;;1904:238;;;-1:-1:-1;2161:5:139;-1:-1:-1;;2204:18:139;;2191:32;;-1:-1:-1;;2235:16:139;;;2232:2;;;2269:6;2261;2254:22;2232:2;;2297:62;2351:7;2340:8;2329:9;2325:24;2297:62;:::i;:::-;2287:72;;;1222:1143;;;;;:::o;2370:366::-;2453:6;2506:2;2494:9;2485:7;2481:23;2477:32;2474:2;;;2527:6;2519;2512:22;2474:2;2572:9;2559:23;2605:18;2597:6;2594:30;2591:2;;;2642:6;2634;2627:22;2591:2;2670:60;2722:7;2713:6;2702:9;2698:22;2670:60;:::i;:::-;2660:70;2464:272;-1:-1:-1;;;;2464:272:139:o;2741:297::-;2808:6;2861:2;2849:9;2840:7;2836:23;2832:32;2829:2;;;2882:6;2874;2867:22;2829:2;2919:9;2913:16;2972:5;2965:13;2958:21;2951:5;2948:32;2938:2;;2999:6;2991;2984:22;3043:641;3113:6;3121;3174:2;3162:9;3153:7;3149:23;3145:32;3142:2;;;3195:6;3187;3180:22;3142:2;3240:9;3227:23;3269:18;3310:2;3302:6;3299:14;3296:2;;;3331:6;3323;3316:22;3296:2;3374:6;3363:9;3359:22;3349:32;;3419:7;3412:4;3408:2;3404:13;3400:27;3390:2;;3446:6;3438;3431:22;3390:2;3491;3478:16;3517:2;3509:6;3506:14;3503:2;;;3538:6;3530;3523:22;3503:2;3588:7;3583:2;3574:6;3570:2;3566:15;3562:24;3559:37;3556:2;;;3614:6;3606;3599:22;3556:2;3650;3642:11;;;;;3672:6;;-1:-1:-1;3132:552:139;;-1:-1:-1;;;;3132:552:139:o;3966:190::-;4025:6;4078:2;4066:9;4057:7;4053:23;4049:32;4046:2;;;4099:6;4091;4084:22;4046:2;-1:-1:-1;4127:23:139;;4036:120;-1:-1:-1;4036:120:139:o;4161:194::-;4231:6;4284:2;4272:9;4263:7;4259:23;4255:32;4252:2;;;4305:6;4297;4290:22;4252:2;-1:-1:-1;4333:16:139;;4242:113;-1:-1:-1;4242:113:139:o;4360:203::-;-1:-1:-1;;;;;4524:32:139;;;;4506:51;;4494:2;4479:18;;4461:102::o;5039:682::-;5222:6;5215:14;5208:22;5197:9;5190:41;5171:4;5250:2;5288;5283;5272:9;5268:18;5261:30;5320:6;5314:13;5363:6;5358:2;5347:9;5343:18;5336:34;5388:4;5401:140;5415:6;5412:1;5409:13;5401:140;;;5510:14;;;5506:23;;5500:30;5476:17;;;5495:2;5472:26;5465:66;5430:10;;5401:140;;;5559:6;5556:1;5553:13;5550:2;;;5629:4;5624:2;5615:6;5604:9;5600:22;5596:31;5589:45;5550:2;-1:-1:-1;5705:2:139;5684:15;-1:-1:-1;;5680:29:139;5665:45;;;;5712:2;5661:54;;5180:541;-1:-1:-1;;;;5180:541:139:o;8374:275::-;8445:2;8439:9;8510:2;8491:13;;-1:-1:-1;;8487:27:139;8475:40;;8545:18;8530:34;;8566:22;;;8527:62;8524:2;;;8592:18;;:::i;:::-;8628:2;8621:22;8419:230;;-1:-1:-1;8419:230:139:o;8654:183::-;8714:4;8747:18;8739:6;8736:30;8733:2;;;8769:18;;:::i;:::-;-1:-1:-1;8814:1:139;8810:14;8826:4;8806:25;;8723:114::o;8842:128::-;8882:3;8913:1;8909:6;8906:1;8903:13;8900:2;;;8919:18;;:::i;:::-;-1:-1:-1;8955:9:139;;8890:80::o;8975:228::-;9014:3;9042:10;9079:2;9076:1;9072:10;9109:2;9106:1;9102:10;9140:3;9136:2;9132:12;9127:3;9124:21;9121:2;;;9148:18;;:::i;:::-;9184:13;;9022:181;-1:-1:-1;;;;9022:181:139:o;9208:217::-;9248:1;9274;9264:2;;-1:-1:-1;;;9299:31:139;;9353:4;9350:1;9343:15;9381:4;9306:1;9371:15;9264:2;-1:-1:-1;9410:9:139;;9254:171::o;9430:168::-;9470:7;9536:1;9532;9528:6;9524:14;9521:1;9518:21;9513:1;9506:9;9499:17;9495:45;9492:2;;;9543:18;;:::i;:::-;-1:-1:-1;9583:9:139;;9482:116::o;9603:125::-;9643:4;9671:1;9668;9665:8;9662:2;;;9676:18;;:::i;:::-;-1:-1:-1;9713:9:139;;9652:76::o;9733:135::-;9772:3;-1:-1:-1;;9793:17:139;;9790:2;;;9813:18;;:::i;:::-;-1:-1:-1;9860:1:139;9849:13;;9780:88::o;9873:127::-;9934:10;9929:3;9925:20;9922:1;9915:31;9965:4;9962:1;9955:15;9989:4;9986:1;9979:15;10005:127;10066:10;10061:3;10057:20;10054:1;10047:31;10097:4;10094:1;10087:15;10121:4;10118:1;10111:15;10137:131;-1:-1:-1;;;;;10212:31:139;;10202:42;;10192:2;;10258:1;10255;10248:12"},"methodIdentifiers":{"PERCENTAGE_SCALE()":"3f26479e","accounts(uint256)":"f2a40db8","callable()":"6a2ab602","checkPercentages(uint32[])":"c45ff544","checkUpkeep(bytes)":"6e04ff0d","communityFund()":"00f380f4","distributeERC20(address)":"bce58269","distributeETH()":"b8b9b549","distributeMAHA()":"5c45f349","getCurrentEpoch()":"b97dd9e2","getLastEpoch()":"398bac63","getNextEpoch()":"efe97d05","getPeriod()":"1ed24195","getStartTime()":"c828371e","maha()":"3de00c36","nextEpochPoint()":"c5967c26","owner()":"8da5cb5b","percentAllocations(uint256)":"003f619d","performUpkeep(bytes)":"4585e33b","releasable()":"fbccedae","releaseAndDistributeMAHA()":"f46b65ac","renounceOwnership()":"715018a6","setPeriod(uint256)":"0f3a9f65","transferOwnership(address)":"f2fde38b","updateSplit(address[],uint32[])":"44def48f","withdrawERC20(address)":"f4f3b200","withdrawETH()":"e086e5ec"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"_percentAllocations\",\"type\":\"uint32[]\"},{\"internalType\":\"contract IERC20\",\"name\":\"_maha\",\"type\":\"address\"},{\"internalType\":\"contract ICommunityFund\",\"name\":\"_fund\",\"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\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"PERCENTAGE_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"accounts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"callable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"_percentAllocations\",\"type\":\"uint32[]\"}],\"name\":\"checkPercentages\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"checkUpkeep\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"upkeepNeeded\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"performData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityFund\",\"outputs\":[{\"internalType\":\"contract ICommunityFund\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"distributeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributeETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributeMAHA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maha\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochPoint\",\"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\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"percentAllocations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"performUpkeep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"releaseAndDistributeMAHA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"setPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"_percentAllocations\",\"type\":\"uint32[]\"}],\"name\":\"updateSplit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"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 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\":{},\"notice\":\"This is a keeper contract that splits the maha from the ecosystem fund into the various treasuries on a monthly basis via a keeper. Currently deployed at: https://etherscan.io/address/0x5f7a88d09491b89f0e9a02e3cce3309ef1502ab8\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/splitters/MAHASplitKeeper.sol\":\"MAHASplitKeeper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]},\"contracts/interfaces/KeeperCompatibleInterface.sol\":{\"keccak256\":\"0xd01541bff925ba14b83a37a3ab6ea20329125fe2d71a7e28afc46a9791530f0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://688f76eedb1a50c6de88bdb306c2c04a0883fa29f1ea47de7e4e51a8c5831ed7\",\"dweb:/ipfs/QmdLrXmwGrPAJXQnXasBZFwxAP7BTq5WgDtYhmaJ1nfubW\"]},\"contracts/splitters/FeesSplitter.sol\":{\"keccak256\":\"0x13ae8246da6f0515c634ab385803446e3c767679d46adb9576f87c78708c13c3\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9810175cf808f6c7d95ec4536bd6cb2b7c7f027def8f6002037f7e30d15403e1\",\"dweb:/ipfs/QmbKuKZAApGGYBvhp8NWPq9f7VuynbP2ngPDjtLwJom9Su\"]},\"contracts/splitters/MAHASplitKeeper.sol\":{\"keccak256\":\"0x99d071085fb845b0cf73042c6d2e7e6a2c57d1dd5aa2822712a15115475c72c0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9b9a16fe37c5d4ca861ff18b16f5067f2cf0b0c657ca35480733a26740574177\",\"dweb:/ipfs/QmPSX62Nmn4CVLPKZagyUD6x1kqeM8AptrLxEYSztgFLwW\"]},\"contracts/utils/Epoch.sol\":{\"keccak256\":\"0x2dbd8fd988fca4e099ad556f76607918860725d64736ab14d9c7299246c51b10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8299f51efd2a19501423a152bbc1d155dd80cc6b7c4cda0998078843800a408\",\"dweb:/ipfs/QmYEYtJtEQ42SkKdXx2HpN4BJsKEgWkDPa3jVHPU9dG8uW\"]}},\"version\":1}"}},"contracts/test/MockERC20.sol":{"MockERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimal","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"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"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4562:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:845:139","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:139"},"nodeType":"YulFunctionCall","src":"129:20:139"},"nodeType":"YulExpressionStatement","src":"129:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:139"},"nodeType":"YulFunctionCall","src":"102:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:139"},"nodeType":"YulFunctionCall","src":"98:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:139"},"nodeType":"YulFunctionCall","src":"91:35:139"},"nodeType":"YulIf","src":"88:2:139"},{"nodeType":"YulVariableDeclaration","src":"160:23:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"176:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"170:5:139"},"nodeType":"YulFunctionCall","src":"170:13:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"192:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"210:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"214:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"206:3:139"},"nodeType":"YulFunctionCall","src":"206:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"218:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"202:3:139"},"nodeType":"YulFunctionCall","src":"202:18:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"196:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"243:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"245:16:139"},"nodeType":"YulFunctionCall","src":"245:18:139"},"nodeType":"YulExpressionStatement","src":"245:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"235:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"239:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"232:2:139"},"nodeType":"YulFunctionCall","src":"232:10:139"},"nodeType":"YulIf","src":"229:2:139"},{"nodeType":"YulVariableDeclaration","src":"274:17:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"288:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"284:3:139"},"nodeType":"YulFunctionCall","src":"284:7:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"278:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"300:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"314:5:139"},"nodeType":"YulFunctionCall","src":"314:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"304:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"332:71:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"354:6:139"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"378:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"382:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:139"},"nodeType":"YulFunctionCall","src":"374:13:139"},{"name":"_3","nodeType":"YulIdentifier","src":"389:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"370:3:139"},"nodeType":"YulFunctionCall","src":"370:22:139"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"366:3:139"},"nodeType":"YulFunctionCall","src":"366:31:139"},{"name":"_3","nodeType":"YulIdentifier","src":"399:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"362:3:139"},"nodeType":"YulFunctionCall","src":"362:40:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:139"},"nodeType":"YulFunctionCall","src":"350:53:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"336:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"464:16:139"},"nodeType":"YulFunctionCall","src":"464:18:139"},"nodeType":"YulExpressionStatement","src":"464:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"421:10:139"},{"name":"_2","nodeType":"YulIdentifier","src":"433:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"418:2:139"},"nodeType":"YulFunctionCall","src":"418:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"453:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"438:2:139"},"nodeType":"YulFunctionCall","src":"438:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"415:2:139"},"nodeType":"YulFunctionCall","src":"415:46:139"},"nodeType":"YulIf","src":"412:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"500:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"504:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:139"},"nodeType":"YulFunctionCall","src":"493:22:139"},"nodeType":"YulExpressionStatement","src":"493:22:139"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"531:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"539:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"524:6:139"},"nodeType":"YulFunctionCall","src":"524:18:139"},"nodeType":"YulExpressionStatement","src":"524:18:139"},{"nodeType":"YulVariableDeclaration","src":"551:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"561:4:139","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"555:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"611:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"620:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"627:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"613:6:139"},"nodeType":"YulFunctionCall","src":"613:20:139"},"nodeType":"YulExpressionStatement","src":"613:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"588:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"596:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:139"},"nodeType":"YulFunctionCall","src":"584:15:139"},{"name":"_4","nodeType":"YulIdentifier","src":"601:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"580:3:139"},"nodeType":"YulFunctionCall","src":"580:24:139"},{"name":"end","nodeType":"YulIdentifier","src":"606:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"577:2:139"},"nodeType":"YulFunctionCall","src":"577:33:139"},"nodeType":"YulIf","src":"574:2:139"},{"nodeType":"YulVariableDeclaration","src":"644:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"653:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"648:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"713:87:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"742:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"750:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:139"},"nodeType":"YulFunctionCall","src":"738:14:139"},{"name":"_4","nodeType":"YulIdentifier","src":"754:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:139"},"nodeType":"YulFunctionCall","src":"734:23:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"781:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:139"},"nodeType":"YulFunctionCall","src":"769:14:139"},{"name":"_4","nodeType":"YulIdentifier","src":"785:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:139"},"nodeType":"YulFunctionCall","src":"765:23:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"759:5:139"},"nodeType":"YulFunctionCall","src":"759:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:139"},"nodeType":"YulFunctionCall","src":"727:63:139"},"nodeType":"YulExpressionStatement","src":"727:63:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"678:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"681:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"675:2:139"},"nodeType":"YulFunctionCall","src":"675:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"685:19:139","statements":[{"nodeType":"YulAssignment","src":"687:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"696:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"699:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:139"},"nodeType":"YulFunctionCall","src":"692:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"687:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"671:3:139","statements":[]},"src":"667:133:139"},{"body":{"nodeType":"YulBlock","src":"830:63:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"859:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"867:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"855:3:139"},"nodeType":"YulFunctionCall","src":"855:15:139"},{"name":"_4","nodeType":"YulIdentifier","src":"872:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:139"},"nodeType":"YulFunctionCall","src":"851:24:139"},{"name":"array","nodeType":"YulIdentifier","src":"877:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"844:6:139"},"nodeType":"YulFunctionCall","src":"844:39:139"},"nodeType":"YulExpressionStatement","src":"844:39:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"815:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"812:2:139"},"nodeType":"YulFunctionCall","src":"812:9:139"},"nodeType":"YulIf","src":"809:2:139"},{"nodeType":"YulAssignment","src":"902:15:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"911:6:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"902:5:139"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:139","type":""}],"src":"14:909:139"},{"body":{"nodeType":"YulBlock","src":"1061:619:139","statements":[{"body":{"nodeType":"YulBlock","src":"1107:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1116:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1124:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1109:6:139"},"nodeType":"YulFunctionCall","src":"1109:22:139"},"nodeType":"YulExpressionStatement","src":"1109:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1082:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1091:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1078:3:139"},"nodeType":"YulFunctionCall","src":"1078:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1103:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1074:3:139"},"nodeType":"YulFunctionCall","src":"1074:32:139"},"nodeType":"YulIf","src":"1071:2:139"},{"nodeType":"YulVariableDeclaration","src":"1142:30:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1162:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1156:5:139"},"nodeType":"YulFunctionCall","src":"1156:16:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1146:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1181:28:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1199:2:139","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1203:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1195:3:139"},"nodeType":"YulFunctionCall","src":"1195:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"1207:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1191:3:139"},"nodeType":"YulFunctionCall","src":"1191:18:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1185:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1236:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1245:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1253:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1238:6:139"},"nodeType":"YulFunctionCall","src":"1238:22:139"},"nodeType":"YulExpressionStatement","src":"1238:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1224:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1232:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1221:2:139"},"nodeType":"YulFunctionCall","src":"1221:14:139"},"nodeType":"YulIf","src":"1218:2:139"},{"nodeType":"YulAssignment","src":"1271:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1314:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"1325:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1310:3:139"},"nodeType":"YulFunctionCall","src":"1310:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1334:7:139"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1281:28:139"},"nodeType":"YulFunctionCall","src":"1281:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1271:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1351:41:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1377:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1388:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1373:3:139"},"nodeType":"YulFunctionCall","src":"1373:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1367:5:139"},"nodeType":"YulFunctionCall","src":"1367:25:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1355:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1421:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1430:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1438:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1423:6:139"},"nodeType":"YulFunctionCall","src":"1423:22:139"},"nodeType":"YulExpressionStatement","src":"1423:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1407:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1417:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1404:2:139"},"nodeType":"YulFunctionCall","src":"1404:16:139"},"nodeType":"YulIf","src":"1401:2:139"},{"nodeType":"YulAssignment","src":"1456:73:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1499:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1510:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1495:3:139"},"nodeType":"YulFunctionCall","src":"1495:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1521:7:139"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1466:28:139"},"nodeType":"YulFunctionCall","src":"1466:63:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1456:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1538:38:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1572:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1557:3:139"},"nodeType":"YulFunctionCall","src":"1557:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1551:5:139"},"nodeType":"YulFunctionCall","src":"1551:25:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1542:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1624:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1633:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"1641:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1626:6:139"},"nodeType":"YulFunctionCall","src":"1626:22:139"},"nodeType":"YulExpressionStatement","src":"1626:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1598:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1609:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"1616:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1605:3:139"},"nodeType":"YulFunctionCall","src":"1605:16:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1595:2:139"},"nodeType":"YulFunctionCall","src":"1595:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1588:6:139"},"nodeType":"YulFunctionCall","src":"1588:35:139"},"nodeType":"YulIf","src":"1585:2:139"},{"nodeType":"YulAssignment","src":"1659:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1669:5:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1659:6:139"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1011:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1022:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1034:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1042:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1050:6:139","type":""}],"src":"928:752:139"},{"body":{"nodeType":"YulBlock","src":"1859:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1876:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1887:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1869:6:139"},"nodeType":"YulFunctionCall","src":"1869:21:139"},"nodeType":"YulExpressionStatement","src":"1869:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1910:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1921:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1906:3:139"},"nodeType":"YulFunctionCall","src":"1906:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1926:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1899:6:139"},"nodeType":"YulFunctionCall","src":"1899:30:139"},"nodeType":"YulExpressionStatement","src":"1899:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1949:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1960:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1945:3:139"},"nodeType":"YulFunctionCall","src":"1945:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1965:33:139","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1938:6:139"},"nodeType":"YulFunctionCall","src":"1938:61:139"},"nodeType":"YulExpressionStatement","src":"1938:61:139"},{"nodeType":"YulAssignment","src":"2008:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2020:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2031:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2016:3:139"},"nodeType":"YulFunctionCall","src":"2016:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2008:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1836:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1850:4:139","type":""}],"src":"1685:355:139"},{"body":{"nodeType":"YulBlock","src":"2146:76:139","statements":[{"nodeType":"YulAssignment","src":"2156:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2168:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2179:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2164:3:139"},"nodeType":"YulFunctionCall","src":"2164:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2156:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2198:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2209:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2191:6:139"},"nodeType":"YulFunctionCall","src":"2191:25:139"},"nodeType":"YulExpressionStatement","src":"2191:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2115:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2126:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2137:4:139","type":""}],"src":"2045:177:139"},{"body":{"nodeType":"YulBlock","src":"2275:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"2302:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"2304:16:139"},"nodeType":"YulFunctionCall","src":"2304:18:139"},"nodeType":"YulExpressionStatement","src":"2304:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2291:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2298:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2294:3:139"},"nodeType":"YulFunctionCall","src":"2294:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2288:2:139"},"nodeType":"YulFunctionCall","src":"2288:13:139"},"nodeType":"YulIf","src":"2285:2:139"},{"nodeType":"YulAssignment","src":"2333:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2344:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"2347:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:139"},"nodeType":"YulFunctionCall","src":"2340:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2333:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2258:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"2261:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2267:3:139","type":""}],"src":"2227:128:139"},{"body":{"nodeType":"YulBlock","src":"2424:358:139","statements":[{"nodeType":"YulVariableDeclaration","src":"2434:16:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2449:1:139","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"2438:7:139","type":""}]},{"nodeType":"YulAssignment","src":"2459:16:139","value":{"name":"power_1","nodeType":"YulIdentifier","src":"2468:7:139"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"2459:5:139"}]},{"nodeType":"YulAssignment","src":"2484:13:139","value":{"name":"_base","nodeType":"YulIdentifier","src":"2492:5:139"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"2484:4:139"}]},{"body":{"nodeType":"YulBlock","src":"2548:228:139","statements":[{"body":{"nodeType":"YulBlock","src":"2593:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"2595:16:139"},"nodeType":"YulFunctionCall","src":"2595:18:139"},"nodeType":"YulExpressionStatement","src":"2595:18:139"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"2568:4:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2582:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2578:3:139"},"nodeType":"YulFunctionCall","src":"2578:6:139"},{"name":"base","nodeType":"YulIdentifier","src":"2586:4:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2574:3:139"},"nodeType":"YulFunctionCall","src":"2574:17:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2565:2:139"},"nodeType":"YulFunctionCall","src":"2565:27:139"},"nodeType":"YulIf","src":"2562:2:139"},{"body":{"nodeType":"YulBlock","src":"2654:29:139","statements":[{"nodeType":"YulAssignment","src":"2656:25:139","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"2669:5:139"},{"name":"base","nodeType":"YulIdentifier","src":"2676:4:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2665:3:139"},"nodeType":"YulFunctionCall","src":"2665:16:139"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"2656:5:139"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"2635:8:139"},{"name":"power_1","nodeType":"YulIdentifier","src":"2645:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2631:3:139"},"nodeType":"YulFunctionCall","src":"2631:22:139"},"nodeType":"YulIf","src":"2628:2:139"},{"nodeType":"YulAssignment","src":"2696:23:139","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"2708:4:139"},{"name":"base","nodeType":"YulIdentifier","src":"2714:4:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2704:3:139"},"nodeType":"YulFunctionCall","src":"2704:15:139"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"2696:4:139"}]},{"nodeType":"YulAssignment","src":"2732:34:139","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"2748:7:139"},{"name":"exponent","nodeType":"YulIdentifier","src":"2757:8:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2744:3:139"},"nodeType":"YulFunctionCall","src":"2744:22:139"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"2732:8:139"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"2517:8:139"},{"name":"power_1","nodeType":"YulIdentifier","src":"2527:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2514:2:139"},"nodeType":"YulFunctionCall","src":"2514:21:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2536:3:139","statements":[]},"pre":{"nodeType":"YulBlock","src":"2510:3:139","statements":[]},"src":"2506:270:139"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"2388:5:139","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"2395:8:139","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"2408:5:139","type":""},{"name":"base","nodeType":"YulTypedName","src":"2415:4:139","type":""}],"src":"2360:422:139"},{"body":{"nodeType":"YulBlock","src":"2855:72:139","statements":[{"nodeType":"YulAssignment","src":"2865:56:139","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"2895:4:139"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"2905:8:139"},{"kind":"number","nodeType":"YulLiteral","src":"2915:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2901:3:139"},"nodeType":"YulFunctionCall","src":"2901:19:139"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"2874:20:139"},"nodeType":"YulFunctionCall","src":"2874:47:139"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"2865:5:139"}]}]},"name":"checked_exp_t_uint256_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"2826:4:139","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"2832:8:139","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"2845:5:139","type":""}],"src":"2787:140:139"},{"body":{"nodeType":"YulBlock","src":"2991:747:139","statements":[{"body":{"nodeType":"YulBlock","src":"3029:52:139","statements":[{"nodeType":"YulAssignment","src":"3043:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3052:1:139","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3043:5:139"}]},{"nodeType":"YulLeave","src":"3066:5:139"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3011:8:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3004:6:139"},"nodeType":"YulFunctionCall","src":"3004:16:139"},"nodeType":"YulIf","src":"3001:2:139"},{"body":{"nodeType":"YulBlock","src":"3114:52:139","statements":[{"nodeType":"YulAssignment","src":"3128:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3137:1:139","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3128:5:139"}]},{"nodeType":"YulLeave","src":"3151:5:139"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3100:4:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3093:6:139"},"nodeType":"YulFunctionCall","src":"3093:12:139"},"nodeType":"YulIf","src":"3090:2:139"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3202:52:139","statements":[{"nodeType":"YulAssignment","src":"3216:10:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3225:1:139","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3216:5:139"}]},{"nodeType":"YulLeave","src":"3239:5:139"}]},"nodeType":"YulCase","src":"3195:59:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3200:1:139","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3270:123:139","statements":[{"body":{"nodeType":"YulBlock","src":"3305:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3307:16:139"},"nodeType":"YulFunctionCall","src":"3307:18:139"},"nodeType":"YulExpressionStatement","src":"3307:18:139"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3290:8:139"},{"kind":"number","nodeType":"YulLiteral","src":"3300:3:139","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3287:2:139"},"nodeType":"YulFunctionCall","src":"3287:17:139"},"nodeType":"YulIf","src":"3284:2:139"},{"nodeType":"YulAssignment","src":"3340:25:139","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3353:8:139"},{"kind":"number","nodeType":"YulLiteral","src":"3363:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3349:3:139"},"nodeType":"YulFunctionCall","src":"3349:16:139"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3340:5:139"}]},{"nodeType":"YulLeave","src":"3378:5:139"}]},"nodeType":"YulCase","src":"3263:130:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3268:1:139","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"3182:4:139"},"nodeType":"YulSwitch","src":"3175:218:139"},{"body":{"nodeType":"YulBlock","src":"3491:70:139","statements":[{"nodeType":"YulAssignment","src":"3505:28:139","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3518:4:139"},{"name":"exponent","nodeType":"YulIdentifier","src":"3524:8:139"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"3514:3:139"},"nodeType":"YulFunctionCall","src":"3514:19:139"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3505:5:139"}]},{"nodeType":"YulLeave","src":"3546:5:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3415:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"3421:2:139","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3412:2:139"},"nodeType":"YulFunctionCall","src":"3412:12:139"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3429:8:139"},{"kind":"number","nodeType":"YulLiteral","src":"3439:2:139","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3426:2:139"},"nodeType":"YulFunctionCall","src":"3426:16:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3408:3:139"},"nodeType":"YulFunctionCall","src":"3408:35:139"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3452:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"3458:3:139","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3449:2:139"},"nodeType":"YulFunctionCall","src":"3449:13:139"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3467:8:139"},{"kind":"number","nodeType":"YulLiteral","src":"3477:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3464:2:139"},"nodeType":"YulFunctionCall","src":"3464:16:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3445:3:139"},"nodeType":"YulFunctionCall","src":"3445:36:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3405:2:139"},"nodeType":"YulFunctionCall","src":"3405:77:139"},"nodeType":"YulIf","src":"3402:2:139"},{"nodeType":"YulVariableDeclaration","src":"3570:57:139","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3612:4:139"},{"name":"exponent","nodeType":"YulIdentifier","src":"3618:8:139"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"3593:18:139"},"nodeType":"YulFunctionCall","src":"3593:34:139"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"3574:7:139","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"3583:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3672:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3674:16:139"},"nodeType":"YulFunctionCall","src":"3674:18:139"},"nodeType":"YulExpressionStatement","src":"3674:18:139"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"3642:7:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3659:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3655:3:139"},"nodeType":"YulFunctionCall","src":"3655:6:139"},{"name":"base_1","nodeType":"YulIdentifier","src":"3663:6:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3651:3:139"},"nodeType":"YulFunctionCall","src":"3651:19:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3639:2:139"},"nodeType":"YulFunctionCall","src":"3639:32:139"},"nodeType":"YulIf","src":"3636:2:139"},{"nodeType":"YulAssignment","src":"3703:29:139","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"3716:7:139"},{"name":"base_1","nodeType":"YulIdentifier","src":"3725:6:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3712:3:139"},"nodeType":"YulFunctionCall","src":"3712:20:139"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3703:5:139"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"2962:4:139","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"2968:8:139","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"2981:5:139","type":""}],"src":"2932:806:139"},{"body":{"nodeType":"YulBlock","src":"3795:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"3854:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3856:16:139"},"nodeType":"YulFunctionCall","src":"3856:18:139"},"nodeType":"YulExpressionStatement","src":"3856:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3826:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3819:6:139"},"nodeType":"YulFunctionCall","src":"3819:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3812:6:139"},"nodeType":"YulFunctionCall","src":"3812:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3834:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3845:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3841:3:139"},"nodeType":"YulFunctionCall","src":"3841:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"3849:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3837:3:139"},"nodeType":"YulFunctionCall","src":"3837:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3831:2:139"},"nodeType":"YulFunctionCall","src":"3831:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3808:3:139"},"nodeType":"YulFunctionCall","src":"3808:45:139"},"nodeType":"YulIf","src":"3805:2:139"},{"nodeType":"YulAssignment","src":"3885:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3900:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"3903:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3896:3:139"},"nodeType":"YulFunctionCall","src":"3896:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"3885:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3774:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"3777:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"3783:7:139","type":""}],"src":"3743:168:139"},{"body":{"nodeType":"YulBlock","src":"3971:325:139","statements":[{"nodeType":"YulAssignment","src":"3981:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3995:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"3998:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3991:3:139"},"nodeType":"YulFunctionCall","src":"3991:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"3981:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4012:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4042:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"4048:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4038:3:139"},"nodeType":"YulFunctionCall","src":"4038:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"4016:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4089:31:139","statements":[{"nodeType":"YulAssignment","src":"4091:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4105:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4113:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4101:3:139"},"nodeType":"YulFunctionCall","src":"4101:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4091:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4069:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4062:6:139"},"nodeType":"YulFunctionCall","src":"4062:26:139"},"nodeType":"YulIf","src":"4059:2:139"},{"body":{"nodeType":"YulBlock","src":"4179:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4200:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4207:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4212:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4203:3:139"},"nodeType":"YulFunctionCall","src":"4203:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4193:6:139"},"nodeType":"YulFunctionCall","src":"4193:31:139"},"nodeType":"YulExpressionStatement","src":"4193:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4244:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4247:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4237:6:139"},"nodeType":"YulFunctionCall","src":"4237:15:139"},"nodeType":"YulExpressionStatement","src":"4237:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4272:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4275:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4265:6:139"},"nodeType":"YulFunctionCall","src":"4265:15:139"},"nodeType":"YulExpressionStatement","src":"4265:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4135:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4158:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"4166:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4155:2:139"},"nodeType":"YulFunctionCall","src":"4155:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4132:2:139"},"nodeType":"YulFunctionCall","src":"4132:38:139"},"nodeType":"YulIf","src":"4129:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"3951:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"3960:6:139","type":""}],"src":"3916:380:139"},{"body":{"nodeType":"YulBlock","src":"4333:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4350:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4357:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4362:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4353:3:139"},"nodeType":"YulFunctionCall","src":"4353:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4343:6:139"},"nodeType":"YulFunctionCall","src":"4343:31:139"},"nodeType":"YulExpressionStatement","src":"4343:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4390:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4393:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4383:6:139"},"nodeType":"YulFunctionCall","src":"4383:15:139"},"nodeType":"YulExpressionStatement","src":"4383:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4414:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4417:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4407:6:139"},"nodeType":"YulFunctionCall","src":"4407:15:139"},"nodeType":"YulExpressionStatement","src":"4407:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"4301:127:139"},{"body":{"nodeType":"YulBlock","src":"4465:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4482:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4489:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4494:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4485:3:139"},"nodeType":"YulFunctionCall","src":"4485:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4475:6:139"},"nodeType":"YulFunctionCall","src":"4475:31:139"},"nodeType":"YulExpressionStatement","src":"4475:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4522:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4525:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4515:6:139"},"nodeType":"YulFunctionCall","src":"4515:15:139"},"nodeType":"YulExpressionStatement","src":"4515:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4546:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4549:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4539:6:139"},"nodeType":"YulFunctionCall","src":"4539:15:139"},"nodeType":"YulExpressionStatement","src":"4539:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"4433:127:139"}]},"contents":"{\n    { }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), _4), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        if gt(i, _1)\n        {\n            mstore(add(add(memPtr, _1), _4), array)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(value0, value0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n        let value := mload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xff))) { revert(value2, value2) }\n        value2 := value\n    }\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_exp_helper(_base, exponent) -> power, base\n    {\n        let power_1 := 1\n        power := power_1\n        base := _base\n        for { } gt(exponent, power_1) { }\n        {\n            if gt(base, div(not(0), base)) { panic_error_0x11() }\n            if and(exponent, power_1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(power_1, exponent)\n        }\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent)\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000ec638038062000ec68339810160408190526200003491620002e6565b8251839083906200004d9060039060208501906200018d565b508051620000639060049060208401906200018d565b50506005805460ff191660ff8416179055506200009c336200008783600a620003cb565b6200009690620f424062000499565b620000a5565b50505062000524565b6001600160a01b038216620001005760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000114919062000367565b90915550506001600160a01b038216600090815260208190526040812080548392906200014390849062000367565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200019b90620004bb565b90600052602060002090601f016020900481019282620001bf57600085556200020a565b82601f10620001da57805160ff19168380011785556200020a565b828001600101855582156200020a579182015b828111156200020a578251825591602001919060010190620001ed565b50620002189291506200021c565b5090565b5b808211156200021857600081556001016200021d565b600082601f83011262000244578081fd5b81516001600160401b03808211156200026157620002616200050e565b604051601f8301601f19908116603f011681019082821181831017156200028c576200028c6200050e565b81604052838152602092508683858801011115620002a8578485fd5b8491505b83821015620002cb5785820183015181830184015290820190620002ac565b83821115620002dc57848385830101525b9695505050505050565b600080600060608486031215620002fb578283fd5b83516001600160401b038082111562000312578485fd5b620003208783880162000233565b9450602086015191508082111562000336578384fd5b50620003458682870162000233565b925050604084015160ff811681146200035c578182fd5b809150509250925092565b600082198211156200037d576200037d620004f8565b500190565b600181815b80851115620003c3578160001904821115620003a757620003a7620004f8565b80851615620003b557918102915b93841c939080029062000387565b509250929050565b6000620003dc60ff841683620003e3565b9392505050565b600082620003f45750600162000493565b81620004035750600062000493565b81600181146200041c5760028114620004275762000447565b600191505062000493565b60ff8411156200043b576200043b620004f8565b50506001821b62000493565b5060208310610133831016604e8410600b84101617156200046c575081810a62000493565b62000478838362000382565b80600019048211156200048f576200048f620004f8565b0290505b92915050565b6000816000190483118215151615620004b657620004b6620004f8565b500290565b600181811c90821680620004d057607f821691505b60208210811415620004f257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61099280620005346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101c6565b6040516100ce91906108aa565b60405180910390f35b6100ea6100e5366004610881565b610258565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610846565b610270565b60055460405160ff90911681526020016100ce565b6100ea610142366004610881565b610294565b61015a610155366004610881565b6102b6565b005b6100fe61016a3660046107f3565b6001600160a01b031660009081526020819052604090205490565b6100c16102c4565b6100ea61019b366004610881565b6102d3565b6100ea6101ae366004610881565b610353565b6100fe6101c1366004610814565b610361565b6060600380546101d590610921565b80601f016020809104026020016040519081016040528092919081815260200182805461020190610921565b801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b5050505050905090565b60003361026681858561038c565b5060019392505050565b60003361027e8582856104b0565b61028985858561052a565b506001949350505050565b6000336102668185856102a78383610361565b6102b191906108fd565b61038c565b6102c082826106f8565b5050565b6060600480546101d590610921565b600033816102e18286610361565b9050838110156103465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610289828686840361038c565b60003361026681858561052a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161033d565b6001600160a01b03821661044f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161033d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104bc8484610361565b9050600019811461052457818110156105175760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161033d565b610524848484840361038c565b50505050565b6001600160a01b03831661058e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161033d565b6001600160a01b0382166105f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161033d565b6001600160a01b038316600090815260208190526040902054818110156106685760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161033d565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069f9084906108fd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106eb91815260200190565b60405180910390a3610524565b6001600160a01b03821661074e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161033d565b806002600082825461076091906108fd565b90915550506001600160a01b0382166000908152602081905260408120805483929061078d9084906108fd565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80356001600160a01b03811681146107ee57600080fd5b919050565b600060208284031215610804578081fd5b61080d826107d7565b9392505050565b60008060408385031215610826578081fd5b61082f836107d7565b915061083d602084016107d7565b90509250929050565b60008060006060848603121561085a578081fd5b610863846107d7565b9250610871602085016107d7565b9150604084013590509250925092565b60008060408385031215610893578182fd5b61089c836107d7565b946020939093013593505050565b6000602080835283518082850152825b818110156108d6578581018301518582016040015282016108ba565b818111156108e75783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561091c57634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168061093557607f821691505b6020821081141561095657634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220c5da6d1ab74d24ded9faa81a6662abdb804cd51ddada846df19603b662573f2464736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xEC6 CODESIZE SUB DUP1 PUSH3 0xEC6 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x2E6 JUMP JUMPDEST DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x18D JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x18D JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE POP PUSH3 0x9C CALLER PUSH3 0x87 DUP4 PUSH1 0xA PUSH3 0x3CB JUMP JUMPDEST PUSH3 0x96 SWAP1 PUSH3 0xF4240 PUSH3 0x499 JUMP JUMPDEST PUSH3 0xA5 JUMP JUMPDEST POP POP POP PUSH3 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x100 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x114 SWAP2 SWAP1 PUSH3 0x367 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x143 SWAP1 DUP5 SWAP1 PUSH3 0x367 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x19B SWAP1 PUSH3 0x4BB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1BF JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x20A JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1DA JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x20A JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x20A JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x20A JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1ED JUMP JUMPDEST POP PUSH3 0x218 SWAP3 SWAP2 POP PUSH3 0x21C JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x218 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x21D JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x244 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x261 JUMPI PUSH3 0x261 PUSH3 0x50E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x28C JUMPI PUSH3 0x28C PUSH3 0x50E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x2A8 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP5 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x2CB JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x2AC JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x2DC JUMPI DUP5 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x2FB JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x312 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH3 0x320 DUP8 DUP4 DUP9 ADD PUSH3 0x233 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x336 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH3 0x345 DUP7 DUP3 DUP8 ADD PUSH3 0x233 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH3 0x35C JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x37D JUMPI PUSH3 0x37D PUSH3 0x4F8 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH3 0x3C3 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH3 0x3A7 JUMPI PUSH3 0x3A7 PUSH3 0x4F8 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH3 0x3B5 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH3 0x387 JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3DC PUSH1 0xFF DUP5 AND DUP4 PUSH3 0x3E3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x3F4 JUMPI POP PUSH1 0x1 PUSH3 0x493 JUMP JUMPDEST DUP2 PUSH3 0x403 JUMPI POP PUSH1 0x0 PUSH3 0x493 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH3 0x41C JUMPI PUSH1 0x2 DUP2 EQ PUSH3 0x427 JUMPI PUSH3 0x447 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH3 0x493 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH3 0x43B JUMPI PUSH3 0x43B PUSH3 0x4F8 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH3 0x493 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH3 0x46C JUMPI POP DUP2 DUP2 EXP PUSH3 0x493 JUMP JUMPDEST PUSH3 0x478 DUP4 DUP4 PUSH3 0x382 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH3 0x48F JUMPI PUSH3 0x48F PUSH3 0x4F8 JUMP JUMPDEST MUL SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH3 0x4B6 JUMPI PUSH3 0x4B6 PUSH3 0x4F8 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x4D0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x4F2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x992 DUP1 PUSH3 0x534 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x134 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x8AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x846 JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x294 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x353 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x814 JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x921 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 0x201 SWAP1 PUSH2 0x921 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x24E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x223 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x24E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x231 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x266 DUP2 DUP6 DUP6 PUSH2 0x38C JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27E DUP6 DUP3 DUP6 PUSH2 0x4B0 JUMP JUMPDEST PUSH2 0x289 DUP6 DUP6 DUP6 PUSH2 0x52A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x266 DUP2 DUP6 DUP6 PUSH2 0x2A7 DUP4 DUP4 PUSH2 0x361 JUMP JUMPDEST PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x8FD JUMP JUMPDEST PUSH2 0x38C JUMP JUMPDEST PUSH2 0x2C0 DUP3 DUP3 PUSH2 0x6F8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x921 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2E1 DUP3 DUP7 PUSH2 0x361 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x346 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x289 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x38C JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x266 DUP2 DUP6 DUP6 PUSH2 0x52A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 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 0x3EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x44F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4BC DUP5 DUP5 PUSH2 0x361 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x524 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x517 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x33D JUMP JUMPDEST PUSH2 0x524 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x38C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x58E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x668 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x69F SWAP1 DUP5 SWAP1 PUSH2 0x8FD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6EB SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x33D JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x760 SWAP2 SWAP1 PUSH2 0x8FD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x78D SWAP1 DUP5 SWAP1 PUSH2 0x8FD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x804 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x80D DUP3 PUSH2 0x7D7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x826 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x82F DUP4 PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x83D PUSH1 0x20 DUP5 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x85A JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x863 DUP5 PUSH2 0x7D7 JUMP JUMPDEST SWAP3 POP PUSH2 0x871 PUSH1 0x20 DUP6 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7D7 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8D6 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8BA JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x8E7 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x91C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x935 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x956 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xDA PUSH14 0x1AB74D24DED9FAA81A6662ABDB80 0x4C 0xD5 SAR 0xDA 0xDA DUP5 PUSH14 0xF19603B662573F2464736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"128:511:125:-:0;;;225:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:13:24;;330:4:125;;336:6;;2044:13:24;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2067:17:24;;;;:7;;:17;;;;;:::i;:::-;-1:-1:-1;;354:9:125::1;:19:::0;;-1:-1:-1;;354:19:125::1;;::::0;::::1;;::::0;;-1:-1:-1;383:44:125::1;389:10;414:11;354:19:::0;414:2:::1;:11;:::i;:::-;401:25;::::0;402:7:::1;401:25;:::i;:::-;383:5;:44::i;:::-;225:209:::0;;;128:511;;8402:389:24;-1:-1:-1;;;;;8485:21:24;;8477:65;;;;-1:-1:-1;;;8477:65:24;;1887:2:139;8477:65:24;;;1869:21:139;1926:2;1906:18;;;1899:30;1965:33;1945:18;;;1938:61;2016:18;;8477:65:24;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:24;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:24;;2191:25:139;;;-1:-1:-1;;;;;8688:37:24;;;8705:1;;8688:37;;2179:2:139;2164:18;8688:37:24;;;;;;;8402:389;;:::o;128:511:125:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;128:511:125;;;-1:-1:-1;128:511:125;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:909:139;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;170:13;;-1:-1:-1;;;;;232:10:139;;;229:2;;;245:18;;:::i;:::-;320:2;314:9;288:2;374:13;;-1:-1:-1;;370:22:139;;;394:2;366:31;362:40;350:53;;;418:18;;;438:22;;;415:46;412:2;;;464:18;;:::i;:::-;504:10;500:2;493:22;539:2;531:6;524:18;561:4;551:14;;606:3;601:2;596;588:6;584:15;580:24;577:33;574:2;;;627:5;620;613:20;574:2;653:5;644:14;;667:133;681:2;678:1;675:9;667:133;;;769:14;;;765:23;;759:30;738:14;;;734:23;;727:63;692:10;;;;667:133;;;818:2;815:1;812:9;809:2;;;877:5;872:2;867;859:6;855:15;851:24;844:39;809:2;911:6;78:845;-1:-1:-1;;;;;;78:845:139:o;928:752::-;1034:6;1042;1050;1103:2;1091:9;1082:7;1078:23;1074:32;1071:2;;;1124:6;1116;1109:22;1071:2;1156:16;;-1:-1:-1;;;;;1221:14:139;;;1218:2;;;1253:6;1245;1238:22;1218:2;1281:61;1334:7;1325:6;1314:9;1310:22;1281:61;:::i;:::-;1271:71;;1388:2;1377:9;1373:18;1367:25;1351:41;;1417:2;1407:8;1404:16;1401:2;;;1438:6;1430;1423:22;1401:2;;1466:63;1521:7;1510:8;1499:9;1495:24;1466:63;:::i;:::-;1456:73;;;1572:2;1561:9;1557:18;1551:25;1616:4;1609:5;1605:16;1598:5;1595:27;1585:2;;1641:6;1633;1626:22;1585:2;1669:5;1659:15;;;1061:619;;;;;:::o;2227:128::-;2267:3;2298:1;2294:6;2291:1;2288:13;2285:2;;;2304:18;;:::i;:::-;-1:-1:-1;2340:9:139;;2275:80::o;2360:422::-;2449:1;2492:5;2449:1;2506:270;2527:7;2517:8;2514:21;2506:270;;;2586:4;2582:1;2578:6;2574:17;2568:4;2565:27;2562:2;;;2595:18;;:::i;:::-;2645:7;2635:8;2631:22;2628:2;;;2665:16;;;;2628:2;2744:22;;;;2704:15;;;;2506:270;;;2510:3;2424:358;;;;;:::o;2787:140::-;2845:5;2874:47;2915:4;2905:8;2901:19;2895:4;2874:47;:::i;:::-;2865:56;2855:72;-1:-1:-1;;;2855:72:139:o;2932:806::-;2981:5;3011:8;3001:2;;-1:-1:-1;3052:1:139;3066:5;;3001:2;3100:4;3090:2;;-1:-1:-1;3137:1:139;3151:5;;3090:2;3182:4;3200:1;3195:59;;;;3268:1;3263:130;;;;3175:218;;3195:59;3225:1;3216:10;;3239:5;;;3263:130;3300:3;3290:8;3287:17;3284:2;;;3307:18;;:::i;:::-;-1:-1:-1;;3363:1:139;3349:16;;3378:5;;3175:218;;3477:2;3467:8;3464:16;3458:3;3452:4;3449:13;3445:36;3439:2;3429:8;3426:16;3421:2;3415:4;3412:12;3408:35;3405:77;3402:2;;;-1:-1:-1;3514:19:139;;;3546:5;;3402:2;3593:34;3618:8;3612:4;3593:34;:::i;:::-;3663:6;3659:1;3655:6;3651:19;3642:7;3639:32;3636:2;;;3674:18;;:::i;:::-;3712:20;;-1:-1:-1;2991:747:139;;;;;:::o;3743:168::-;3783:7;3849:1;3845;3841:6;3837:14;3834:1;3831:21;3826:1;3819:9;3812:17;3808:45;3805:2;;;3856:18;;:::i;:::-;-1:-1:-1;3896:9:139;;3795:116::o;3916:380::-;3995:1;3991:12;;;;4038;;;4059:2;;4113:4;4105:6;4101:17;4091:27;;4059:2;4166;4158:6;4155:14;4135:18;4132:38;4129:2;;;4212:10;4207:3;4203:20;4200:1;4193:31;4247:4;4244:1;4237:15;4275:4;4272:1;4265:15;4129:2;;3971:325;;;:::o;4301:127::-;4362:10;4357:3;4353:20;4350:1;4343:31;4393:4;4390:1;4383:15;4417:4;4414:1;4407:15;4433:127;4494:10;4489:3;4485:20;4482:1;4475:31;4525:4;4522:1;4515:15;4549:4;4546:1;4539:15;4465:95;128:511:125;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6216:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"body":{"nodeType":"YulBlock","src":"165:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:139"},"nodeType":"YulFunctionCall","src":"167:12:139"},"nodeType":"YulExpressionStatement","src":"167:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:139"},"nodeType":"YulFunctionCall","src":"131:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:139"},"nodeType":"YulFunctionCall","src":"121:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:139"},"nodeType":"YulFunctionCall","src":"114:50:139"},"nodeType":"YulIf","src":"111:2:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:173:139"},{"body":{"nodeType":"YulBlock","src":"262:126:139","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:139"},"nodeType":"YulFunctionCall","src":"310:22:139"},"nodeType":"YulExpressionStatement","src":"310:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:139"},"nodeType":"YulFunctionCall","src":"279:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:139"},"nodeType":"YulFunctionCall","src":"275:32:139"},"nodeType":"YulIf","src":"272:2:139"},{"nodeType":"YulAssignment","src":"343:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:139"},"nodeType":"YulFunctionCall","src":"353:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:139","type":""}],"src":"192:196:139"},{"body":{"nodeType":"YulBlock","src":"480:183:139","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:139"},"nodeType":"YulFunctionCall","src":"528:22:139"},"nodeType":"YulExpressionStatement","src":"528:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:139"},"nodeType":"YulFunctionCall","src":"497:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:139"},"nodeType":"YulFunctionCall","src":"493:32:139"},"nodeType":"YulIf","src":"490:2:139"},{"nodeType":"YulAssignment","src":"561:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:139"},"nodeType":"YulFunctionCall","src":"571:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:139"}]},{"nodeType":"YulAssignment","src":"609:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:139"},"nodeType":"YulFunctionCall","src":"638:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:139"},"nodeType":"YulFunctionCall","src":"619:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:139","type":""}],"src":"393:270:139"},{"body":{"nodeType":"YulBlock","src":"772:234:139","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:139"},"nodeType":"YulFunctionCall","src":"820:22:139"},"nodeType":"YulExpressionStatement","src":"820:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:139"},"nodeType":"YulFunctionCall","src":"789:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:139"},"nodeType":"YulFunctionCall","src":"785:32:139"},"nodeType":"YulIf","src":"782:2:139"},{"nodeType":"YulAssignment","src":"853:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:139"},"nodeType":"YulFunctionCall","src":"863:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:139"}]},{"nodeType":"YulAssignment","src":"901:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:139"},"nodeType":"YulFunctionCall","src":"930:18:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:139"},"nodeType":"YulFunctionCall","src":"911:38:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:139"}]},{"nodeType":"YulAssignment","src":"958:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:139"},"nodeType":"YulFunctionCall","src":"981:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:139"},"nodeType":"YulFunctionCall","src":"968:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:139","type":""}],"src":"668:338:139"},{"body":{"nodeType":"YulBlock","src":"1098:177:139","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:139"},"nodeType":"YulFunctionCall","src":"1146:22:139"},"nodeType":"YulExpressionStatement","src":"1146:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:139"},"nodeType":"YulFunctionCall","src":"1115:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:139"},"nodeType":"YulFunctionCall","src":"1111:32:139"},"nodeType":"YulIf","src":"1108:2:139"},{"nodeType":"YulAssignment","src":"1179:39:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:139"},"nodeType":"YulFunctionCall","src":"1189:29:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:139"}]},{"nodeType":"YulAssignment","src":"1227:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:139"},"nodeType":"YulFunctionCall","src":"1250:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:139"},"nodeType":"YulFunctionCall","src":"1237:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:139","type":""}],"src":"1011:264:139"},{"body":{"nodeType":"YulBlock","src":"1375:92:139","statements":[{"nodeType":"YulAssignment","src":"1385:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:139"},"nodeType":"YulFunctionCall","src":"1393:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:139"},"nodeType":"YulFunctionCall","src":"1445:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:139"},"nodeType":"YulFunctionCall","src":"1438:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:139"},"nodeType":"YulFunctionCall","src":"1420:41:139"},"nodeType":"YulExpressionStatement","src":"1420:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:139","type":""}],"src":"1280:187:139"},{"body":{"nodeType":"YulBlock","src":"1593:482:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:139"},"nodeType":"YulFunctionCall","src":"1624:21:139"},"nodeType":"YulExpressionStatement","src":"1624:21:139"},{"nodeType":"YulVariableDeclaration","src":"1654:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:139"},"nodeType":"YulFunctionCall","src":"1668:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:139","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:139"},"nodeType":"YulFunctionCall","src":"1697:18:139"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:139"},"nodeType":"YulFunctionCall","src":"1690:34:139"},"nodeType":"YulExpressionStatement","src":"1690:34:139"},{"nodeType":"YulVariableDeclaration","src":"1733:13:139","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:139"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:139"},"nodeType":"YulFunctionCall","src":"1830:17:139"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:139"},"nodeType":"YulFunctionCall","src":"1826:26:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:139"},"nodeType":"YulFunctionCall","src":"1864:14:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:139"},"nodeType":"YulFunctionCall","src":"1860:23:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:139"},"nodeType":"YulFunctionCall","src":"1854:30:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:139"},"nodeType":"YulFunctionCall","src":"1819:66:139"},"nodeType":"YulExpressionStatement","src":"1819:66:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:139"},"nodeType":"YulFunctionCall","src":"1763:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:139","statements":[{"nodeType":"YulAssignment","src":"1779:15:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:139"},"nodeType":"YulFunctionCall","src":"1784:10:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:139","statements":[]},"src":"1755:140:139"},{"body":{"nodeType":"YulBlock","src":"1929:69:139","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:139"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:139"},"nodeType":"YulFunctionCall","src":"1954:22:139"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:139"},"nodeType":"YulFunctionCall","src":"1950:31:139"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:139"},"nodeType":"YulFunctionCall","src":"1943:45:139"},"nodeType":"YulExpressionStatement","src":"1943:45:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:139"},"nodeType":"YulFunctionCall","src":"1907:13:139"},"nodeType":"YulIf","src":"1904:2:139"},{"nodeType":"YulAssignment","src":"2007:62:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:139"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:139"},"nodeType":"YulFunctionCall","src":"2038:15:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:139"},"nodeType":"YulFunctionCall","src":"2055:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:139"},"nodeType":"YulFunctionCall","src":"2034:29:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:139"},"nodeType":"YulFunctionCall","src":"2019:45:139"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:139"},"nodeType":"YulFunctionCall","src":"2015:54:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:139"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:139","type":""}],"src":"1472:603:139"},{"body":{"nodeType":"YulBlock","src":"2254:225:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:139"},"nodeType":"YulFunctionCall","src":"2264:21:139"},"nodeType":"YulExpressionStatement","src":"2264:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:139"},"nodeType":"YulFunctionCall","src":"2301:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:139","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:139"},"nodeType":"YulFunctionCall","src":"2294:30:139"},"nodeType":"YulExpressionStatement","src":"2294:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:139"},"nodeType":"YulFunctionCall","src":"2340:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:139","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:139"},"nodeType":"YulFunctionCall","src":"2333:62:139"},"nodeType":"YulExpressionStatement","src":"2333:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:139"},"nodeType":"YulFunctionCall","src":"2411:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:139","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:139"},"nodeType":"YulFunctionCall","src":"2404:33:139"},"nodeType":"YulExpressionStatement","src":"2404:33:139"},{"nodeType":"YulAssignment","src":"2446:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:139"},"nodeType":"YulFunctionCall","src":"2454:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:139","type":""}],"src":"2080:399:139"},{"body":{"nodeType":"YulBlock","src":"2658:224:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:139"},"nodeType":"YulFunctionCall","src":"2668:21:139"},"nodeType":"YulExpressionStatement","src":"2668:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:139"},"nodeType":"YulFunctionCall","src":"2705:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:139","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:139"},"nodeType":"YulFunctionCall","src":"2698:30:139"},"nodeType":"YulExpressionStatement","src":"2698:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:139"},"nodeType":"YulFunctionCall","src":"2744:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:139","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:139"},"nodeType":"YulFunctionCall","src":"2737:62:139"},"nodeType":"YulExpressionStatement","src":"2737:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:139"},"nodeType":"YulFunctionCall","src":"2815:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:139","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:139"},"nodeType":"YulFunctionCall","src":"2808:32:139"},"nodeType":"YulExpressionStatement","src":"2808:32:139"},{"nodeType":"YulAssignment","src":"2849:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:139"},"nodeType":"YulFunctionCall","src":"2857:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:139","type":""}],"src":"2484:398:139"},{"body":{"nodeType":"YulBlock","src":"3061:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:139"},"nodeType":"YulFunctionCall","src":"3071:21:139"},"nodeType":"YulExpressionStatement","src":"3071:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:139"},"nodeType":"YulFunctionCall","src":"3108:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:139"},"nodeType":"YulFunctionCall","src":"3101:30:139"},"nodeType":"YulExpressionStatement","src":"3101:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:139"},"nodeType":"YulFunctionCall","src":"3147:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:139","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:139"},"nodeType":"YulFunctionCall","src":"3140:59:139"},"nodeType":"YulExpressionStatement","src":"3140:59:139"},{"nodeType":"YulAssignment","src":"3208:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:139"},"nodeType":"YulFunctionCall","src":"3216:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:139","type":""}],"src":"2887:353:139"},{"body":{"nodeType":"YulBlock","src":"3419:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:139"},"nodeType":"YulFunctionCall","src":"3429:21:139"},"nodeType":"YulExpressionStatement","src":"3429:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:139"},"nodeType":"YulFunctionCall","src":"3466:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:139"},"nodeType":"YulFunctionCall","src":"3459:30:139"},"nodeType":"YulExpressionStatement","src":"3459:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:139"},"nodeType":"YulFunctionCall","src":"3505:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:139","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:139"},"nodeType":"YulFunctionCall","src":"3498:62:139"},"nodeType":"YulExpressionStatement","src":"3498:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:139"},"nodeType":"YulFunctionCall","src":"3576:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:139","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:139"},"nodeType":"YulFunctionCall","src":"3569:36:139"},"nodeType":"YulExpressionStatement","src":"3569:36:139"},{"nodeType":"YulAssignment","src":"3614:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:139"},"nodeType":"YulFunctionCall","src":"3622:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:139","type":""}],"src":"3245:402:139"},{"body":{"nodeType":"YulBlock","src":"3826:227:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:139"},"nodeType":"YulFunctionCall","src":"3836:21:139"},"nodeType":"YulExpressionStatement","src":"3836:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:139"},"nodeType":"YulFunctionCall","src":"3873:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:139","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:139"},"nodeType":"YulFunctionCall","src":"3866:30:139"},"nodeType":"YulExpressionStatement","src":"3866:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:139"},"nodeType":"YulFunctionCall","src":"3912:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:139","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:139"},"nodeType":"YulFunctionCall","src":"3905:62:139"},"nodeType":"YulExpressionStatement","src":"3905:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:139"},"nodeType":"YulFunctionCall","src":"3983:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:139","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:139"},"nodeType":"YulFunctionCall","src":"3976:35:139"},"nodeType":"YulExpressionStatement","src":"3976:35:139"},{"nodeType":"YulAssignment","src":"4020:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:139"},"nodeType":"YulFunctionCall","src":"4028:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:139","type":""}],"src":"3652:401:139"},{"body":{"nodeType":"YulBlock","src":"4232:226:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:139"},"nodeType":"YulFunctionCall","src":"4242:21:139"},"nodeType":"YulExpressionStatement","src":"4242:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:139"},"nodeType":"YulFunctionCall","src":"4279:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:139","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:139"},"nodeType":"YulFunctionCall","src":"4272:30:139"},"nodeType":"YulExpressionStatement","src":"4272:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:139"},"nodeType":"YulFunctionCall","src":"4318:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:139","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:139"},"nodeType":"YulFunctionCall","src":"4311:62:139"},"nodeType":"YulExpressionStatement","src":"4311:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:139"},"nodeType":"YulFunctionCall","src":"4389:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:139","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:139"},"nodeType":"YulFunctionCall","src":"4382:34:139"},"nodeType":"YulExpressionStatement","src":"4382:34:139"},{"nodeType":"YulAssignment","src":"4425:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:139"},"nodeType":"YulFunctionCall","src":"4433:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:139","type":""}],"src":"4058:400:139"},{"body":{"nodeType":"YulBlock","src":"4637:227:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:139"},"nodeType":"YulFunctionCall","src":"4647:21:139"},"nodeType":"YulExpressionStatement","src":"4647:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:139"},"nodeType":"YulFunctionCall","src":"4684:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:139","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:139"},"nodeType":"YulFunctionCall","src":"4677:30:139"},"nodeType":"YulExpressionStatement","src":"4677:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:139"},"nodeType":"YulFunctionCall","src":"4723:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:139","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:139"},"nodeType":"YulFunctionCall","src":"4716:62:139"},"nodeType":"YulExpressionStatement","src":"4716:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:139"},"nodeType":"YulFunctionCall","src":"4794:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:139","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:139"},"nodeType":"YulFunctionCall","src":"4787:35:139"},"nodeType":"YulExpressionStatement","src":"4787:35:139"},{"nodeType":"YulAssignment","src":"4831:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:139"},"nodeType":"YulFunctionCall","src":"4839:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:139","type":""}],"src":"4463:401:139"},{"body":{"nodeType":"YulBlock","src":"5043:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5060:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5071:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5053:6:139"},"nodeType":"YulFunctionCall","src":"5053:21:139"},"nodeType":"YulExpressionStatement","src":"5053:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5094:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5105:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5090:3:139"},"nodeType":"YulFunctionCall","src":"5090:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"5110:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5083:6:139"},"nodeType":"YulFunctionCall","src":"5083:30:139"},"nodeType":"YulExpressionStatement","src":"5083:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5133:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5144:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5129:3:139"},"nodeType":"YulFunctionCall","src":"5129:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"5149:33:139","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5122:6:139"},"nodeType":"YulFunctionCall","src":"5122:61:139"},"nodeType":"YulExpressionStatement","src":"5122:61:139"},{"nodeType":"YulAssignment","src":"5192:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5204:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5215:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5200:3:139"},"nodeType":"YulFunctionCall","src":"5200:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5192:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5020:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5034:4:139","type":""}],"src":"4869:355:139"},{"body":{"nodeType":"YulBlock","src":"5330:76:139","statements":[{"nodeType":"YulAssignment","src":"5340:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5352:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5363:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5348:3:139"},"nodeType":"YulFunctionCall","src":"5348:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5340:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5382:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5393:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5375:6:139"},"nodeType":"YulFunctionCall","src":"5375:25:139"},"nodeType":"YulExpressionStatement","src":"5375:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5299:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5310:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5321:4:139","type":""}],"src":"5229:177:139"},{"body":{"nodeType":"YulBlock","src":"5508:87:139","statements":[{"nodeType":"YulAssignment","src":"5518:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5530:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5541:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5526:3:139"},"nodeType":"YulFunctionCall","src":"5526:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5518:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5560:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5575:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"5583:4:139","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5571:3:139"},"nodeType":"YulFunctionCall","src":"5571:17:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5553:6:139"},"nodeType":"YulFunctionCall","src":"5553:36:139"},"nodeType":"YulExpressionStatement","src":"5553:36:139"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5477:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5488:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5499:4:139","type":""}],"src":"5411:184:139"},{"body":{"nodeType":"YulBlock","src":"5648:181:139","statements":[{"body":{"nodeType":"YulBlock","src":"5683:115:139","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5704:3:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5713:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5718:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5709:3:139"},"nodeType":"YulFunctionCall","src":"5709:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5697:6:139"},"nodeType":"YulFunctionCall","src":"5697:33:139"},"nodeType":"YulExpressionStatement","src":"5697:33:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5750:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5753:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5743:6:139"},"nodeType":"YulFunctionCall","src":"5743:15:139"},"nodeType":"YulExpressionStatement","src":"5743:15:139"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5778:3:139"},{"kind":"number","nodeType":"YulLiteral","src":"5783:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5771:6:139"},"nodeType":"YulFunctionCall","src":"5771:17:139"},"nodeType":"YulExpressionStatement","src":"5771:17:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5664:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5671:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5667:3:139"},"nodeType":"YulFunctionCall","src":"5667:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5661:2:139"},"nodeType":"YulFunctionCall","src":"5661:13:139"},"nodeType":"YulIf","src":"5658:2:139"},{"nodeType":"YulAssignment","src":"5807:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5818:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"5821:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5814:3:139"},"nodeType":"YulFunctionCall","src":"5814:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5807:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5631:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"5634:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5640:3:139","type":""}],"src":"5600:229:139"},{"body":{"nodeType":"YulBlock","src":"5889:325:139","statements":[{"nodeType":"YulAssignment","src":"5899:22:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5913:1:139","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"5916:4:139"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5909:3:139"},"nodeType":"YulFunctionCall","src":"5909:12:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5899:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5930:38:139","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5960:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"5966:1:139","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5956:3:139"},"nodeType":"YulFunctionCall","src":"5956:12:139"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5934:18:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6007:31:139","statements":[{"nodeType":"YulAssignment","src":"6009:27:139","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6023:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6031:4:139","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6019:3:139"},"nodeType":"YulFunctionCall","src":"6019:17:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6009:6:139"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5987:18:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5980:6:139"},"nodeType":"YulFunctionCall","src":"5980:26:139"},"nodeType":"YulIf","src":"5977:2:139"},{"body":{"nodeType":"YulBlock","src":"6097:111:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6118:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6125:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6130:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6121:3:139"},"nodeType":"YulFunctionCall","src":"6121:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6111:6:139"},"nodeType":"YulFunctionCall","src":"6111:31:139"},"nodeType":"YulExpressionStatement","src":"6111:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6162:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6165:4:139","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6155:6:139"},"nodeType":"YulFunctionCall","src":"6155:15:139"},"nodeType":"YulExpressionStatement","src":"6155:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6190:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6193:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6183:6:139"},"nodeType":"YulFunctionCall","src":"6183:15:139"},"nodeType":"YulExpressionStatement","src":"6183:15:139"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6053:18:139"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6076:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:139","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6073:2:139"},"nodeType":"YulFunctionCall","src":"6073:14:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6050:2:139"},"nodeType":"YulFunctionCall","src":"6050:38:139"},"nodeType":"YulIf","src":"6047:2:139"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5869:4:139","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5878:6:139","type":""}],"src":"5834:380:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), length)\n        let i := tail\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), tail)\n        }\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n        mstore(add(headStart, 96), \"alance\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n        mstore(add(headStart, 96), \" zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y))\n        {\n            mstore(sum, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(sum, 0x24)\n        }\n        sum := add(x, y)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101c6565b6040516100ce91906108aa565b60405180910390f35b6100ea6100e5366004610881565b610258565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610846565b610270565b60055460405160ff90911681526020016100ce565b6100ea610142366004610881565b610294565b61015a610155366004610881565b6102b6565b005b6100fe61016a3660046107f3565b6001600160a01b031660009081526020819052604090205490565b6100c16102c4565b6100ea61019b366004610881565b6102d3565b6100ea6101ae366004610881565b610353565b6100fe6101c1366004610814565b610361565b6060600380546101d590610921565b80601f016020809104026020016040519081016040528092919081815260200182805461020190610921565b801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b5050505050905090565b60003361026681858561038c565b5060019392505050565b60003361027e8582856104b0565b61028985858561052a565b506001949350505050565b6000336102668185856102a78383610361565b6102b191906108fd565b61038c565b6102c082826106f8565b5050565b6060600480546101d590610921565b600033816102e18286610361565b9050838110156103465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610289828686840361038c565b60003361026681858561052a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161033d565b6001600160a01b03821661044f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161033d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104bc8484610361565b9050600019811461052457818110156105175760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161033d565b610524848484840361038c565b50505050565b6001600160a01b03831661058e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161033d565b6001600160a01b0382166105f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161033d565b6001600160a01b038316600090815260208190526040902054818110156106685760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161033d565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069f9084906108fd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106eb91815260200190565b60405180910390a3610524565b6001600160a01b03821661074e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161033d565b806002600082825461076091906108fd565b90915550506001600160a01b0382166000908152602081905260408120805483929061078d9084906108fd565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80356001600160a01b03811681146107ee57600080fd5b919050565b600060208284031215610804578081fd5b61080d826107d7565b9392505050565b60008060408385031215610826578081fd5b61082f836107d7565b915061083d602084016107d7565b90509250929050565b60008060006060848603121561085a578081fd5b610863846107d7565b9250610871602085016107d7565b9150604084013590509250925092565b60008060408385031215610893578182fd5b61089c836107d7565b946020939093013593505050565b6000602080835283518082850152825b818110156108d6578581018301518582016040015282016108ba565b818111156108e75783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561091c57634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168061093557607f821691505b6020821081141561095657634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220c5da6d1ab74d24ded9faa81a6662abdb804cd51ddada846df19603b662573f2464736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x134 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x8AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x846 JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x294 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x353 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x814 JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x921 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 0x201 SWAP1 PUSH2 0x921 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x24E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x223 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x24E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x231 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x266 DUP2 DUP6 DUP6 PUSH2 0x38C JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27E DUP6 DUP3 DUP6 PUSH2 0x4B0 JUMP JUMPDEST PUSH2 0x289 DUP6 DUP6 DUP6 PUSH2 0x52A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x266 DUP2 DUP6 DUP6 PUSH2 0x2A7 DUP4 DUP4 PUSH2 0x361 JUMP JUMPDEST PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x8FD JUMP JUMPDEST PUSH2 0x38C JUMP JUMPDEST PUSH2 0x2C0 DUP3 DUP3 PUSH2 0x6F8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x921 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2E1 DUP3 DUP7 PUSH2 0x361 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x346 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x289 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x38C JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x266 DUP2 DUP6 DUP6 PUSH2 0x52A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 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 0x3EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x44F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4BC DUP5 DUP5 PUSH2 0x361 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x524 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x517 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x33D JUMP JUMPDEST PUSH2 0x524 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x38C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x58E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x668 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x33D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x69F SWAP1 DUP5 SWAP1 PUSH2 0x8FD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6EB SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x33D JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x760 SWAP2 SWAP1 PUSH2 0x8FD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x78D SWAP1 DUP5 SWAP1 PUSH2 0x8FD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x804 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x80D DUP3 PUSH2 0x7D7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x826 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x82F DUP4 PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP PUSH2 0x83D PUSH1 0x20 DUP5 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x85A JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x863 DUP5 PUSH2 0x7D7 JUMP JUMPDEST SWAP3 POP PUSH2 0x871 PUSH1 0x20 DUP6 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7D7 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8D6 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8BA JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x8E7 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x91C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x935 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x956 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xDA PUSH14 0x1AB74D24DED9FAA81A6662ABDB80 0x4C 0xD5 SAR 0xDA 0xDA DUP5 PUSH14 0xF19603B662573F2464736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"128:511:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:139;;1438:22;1420:41;;1408:2;1393:18;4433:197:24;1375:92:139;3244:106:24;3331:12;;3244:106;;;5375:25:139;;;5363:2;5348:18;3244:106:24;5330:76:139;5192:286:24;;;;;;:::i;:::-;;:::i;440:98:125:-;522:9;;440:98;;522:9;;;;5553:36:139;;5541:2;5526:18;440:98:125;5508:87:139;5873:234:24;;;;;;:::i;:::-;;:::i;544:93:125:-;;;;;;:::i;:::-;;:::i;:::-;;3408:125:24;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:24;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:38;4570:32:24;719:10:38;4586:7:24;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:24;;4433:197;-1:-1:-1;;;4433:197:24:o;5192:286::-;5319:4;719:10:38;5375:38:24;5391:4;719:10:38;5406:6:24;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:24;;5192:286;-1:-1:-1;;;;5192:286:24:o;5873:234::-;5961:4;719:10:38;6015:64:24;719:10:38;6031:7:24;6068:10;6040:25;719:10:38;6031:7:24;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;544:93:125:-;608:22;614:7;623:6;608:5;:22::i;:::-;544:93;;:::o;2367:102:24:-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:38;6687:4:24;6768:25;719:10:38;6785:7:24;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:24;;4665:2:139;6803:85:24;;;4647:21:139;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:139;;;4787:35;4839:19;;6803:85:24;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:38;3862:28:24;719:10:38;3879:2:24;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:24;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:24;;10233:68;;;;-1:-1:-1;;;10233:68:24;;4260:2:139;10233:68:24;;;4242:21:139;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:139;;;4382:34;4433:19;;10233:68:24;4232:226:139;10233:68:24;-1:-1:-1;;;;;10319:21:24;;10311:68;;;;-1:-1:-1;;;10311:68:24;;2686:2:139;10311:68:24;;;2668:21:139;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:139;;;2808:32;2857:19;;10311:68:24;2658:224:139;10311:68:24;-1:-1:-1;;;;;10390:18:24;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5375:25:139;;;10441:32:24;;5348:18:139;10441:32:24;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:24;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:24;;3089:2:139;11010:68:24;;;3071:21:139;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:24;3061:179:139;11010:68:24;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:24;;7593:68;;;;-1:-1:-1;;;7593:68:24;;3854:2:139;7593:68:24;;;3836:21:139;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:139;;;3976:35;4028:19;;7593:68:24;3826:227:139;7593:68:24;-1:-1:-1;;;;;7679:16:24;;7671:64;;;;-1:-1:-1;;;7671:64:24;;2282:2:139;7671:64:24;;;2264:21:139;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:139;;;2404:33;2454:19;;7671:64:24;2254:225:139;7671:64:24;-1:-1:-1;;;;;7817:15:24;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:24;;3447:2:139;7842:72:24;;;3429:21:139;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:139;;;3569:36;3622:19;;7842:72:24;3419:228:139;7842:72:24;-1:-1:-1;;;;;7948:15:24;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:24;8054:4;-1:-1:-1;;;;;8045:26:24;;8064:6;8045:26;;;;5375:25:139;;5363:2;5348:18;;5330:76;8045:26:24;;;;;;;;8082:37;11786:121;8402:389;-1:-1:-1;;;;;8485:21:24;;8477:65;;;;-1:-1:-1;;;8477:65:24;;5071:2:139;8477:65:24;;;5053:21:139;5110:2;5090:18;;;5083:30;5149:33;5129:18;;;5122:61;5200:18;;8477:65:24;5043:181:139;8477:65:24;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:24;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:24;;5375:25:139;;;-1:-1:-1;;;;;8688:37:24;;;8705:1;;8688:37;;5363:2:139;5348:18;8688:37:24;;;;;;;544:93:125;;:::o;14:173:139:-;82:20;;-1:-1:-1;;;;;131:31:139;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:139:o;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:139:o;1472:603::-;1584:4;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:139;2038:15;-1:-1:-1;;2034:29:139;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:139:o;5600:229::-;5640:3;5671:1;5667:6;5664:1;5661:13;5658:2;;;-1:-1:-1;;;5697:33:139;;5753:4;5750:1;5743:15;5783:4;5704:3;5771:17;5658:2;-1:-1:-1;5814:9:139;;5648:181::o;5834:380::-;5913:1;5909:12;;;;5956;;;5977:2;;6031:4;6023:6;6019:17;6009:27;;5977:2;6084;6076:6;6073:14;6053:18;6050:38;6047:2;;;6130:10;6125:3;6121:20;6118:1;6111:31;6165:4;6162:1;6155:15;6193:4;6190:1;6183:15;6047:2;;5889:325;;;:::o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimal\",\"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\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"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\":{\"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 value {ERC20} uses, unless this function is 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/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/test/MockERC20.sol\":{\"keccak256\":\"0x0f908c233ffeda1ffd77539fb23678be0232c03807b9dc704b6a39091d82ded5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df9e55e766cabee90639860dc7685a5066a9fb14c9fcc88dce88009be76e3618\",\"dweb:/ipfs/QmWK9N3zDgWxZ7j64YDqydbC4UA3qyW3EfnVeZ9Cu1ckZz\"]}},\"version\":1}"}},"contracts/utils/Epoch.sol":{"Epoch":{"abi":[{"inputs":[{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_startEpoch","type":"uint256"}],"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":"callable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpochPoint","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":"_period","type":"uint256"}],"name":"setPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:770:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"129:201:139","statements":[{"body":{"nodeType":"YulBlock","src":"175:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"184:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"192:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"177:6:139"},"nodeType":"YulFunctionCall","src":"177:22:139"},"nodeType":"YulExpressionStatement","src":"177:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"150:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"159:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"171:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"142:3:139"},"nodeType":"YulFunctionCall","src":"142:32:139"},"nodeType":"YulIf","src":"139:2:139"},{"nodeType":"YulAssignment","src":"210:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"226:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"220:5:139"},"nodeType":"YulFunctionCall","src":"220:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"210:6:139"}]},{"nodeType":"YulAssignment","src":"245:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"265:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"276:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"261:3:139"},"nodeType":"YulFunctionCall","src":"261:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"255:5:139"},"nodeType":"YulFunctionCall","src":"255:25:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"245:6:139"}]},{"nodeType":"YulAssignment","src":"289:35:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"309:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"320:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"305:3:139"},"nodeType":"YulFunctionCall","src":"305:18:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"299:5:139"},"nodeType":"YulFunctionCall","src":"299:25:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"289:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"79:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"90:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"102:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"110:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"118:6:139","type":""}],"src":"14:316:139"},{"body":{"nodeType":"YulBlock","src":"383:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"410:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"412:16:139"},"nodeType":"YulFunctionCall","src":"412:18:139"},"nodeType":"YulExpressionStatement","src":"412:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"399:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"406:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"402:3:139"},"nodeType":"YulFunctionCall","src":"402:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"396:2:139"},"nodeType":"YulFunctionCall","src":"396:13:139"},"nodeType":"YulIf","src":"393:2:139"},{"nodeType":"YulAssignment","src":"441:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"452:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"455:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"448:3:139"},"nodeType":"YulFunctionCall","src":"448:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"441:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"366:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"369:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"375:3:139","type":""}],"src":"335:128:139"},{"body":{"nodeType":"YulBlock","src":"520:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"579:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"581:16:139"},"nodeType":"YulFunctionCall","src":"581:18:139"},"nodeType":"YulExpressionStatement","src":"581:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"551:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"544:6:139"},"nodeType":"YulFunctionCall","src":"544:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"537:6:139"},"nodeType":"YulFunctionCall","src":"537:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"559:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"570:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"566:3:139"},"nodeType":"YulFunctionCall","src":"566:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"574:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"562:3:139"},"nodeType":"YulFunctionCall","src":"562:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"556:2:139"},"nodeType":"YulFunctionCall","src":"556:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"533:3:139"},"nodeType":"YulFunctionCall","src":"533:45:139"},"nodeType":"YulIf","src":"530:2:139"},{"nodeType":"YulAssignment","src":"610:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"625:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"628:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"621:3:139"},"nodeType":"YulFunctionCall","src":"621:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"610:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"499:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"502:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"508:7:139","type":""}],"src":"468:168:139"},{"body":{"nodeType":"YulBlock","src":"673:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"690:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"697:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"702:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"693:3:139"},"nodeType":"YulFunctionCall","src":"693:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"683:6:139"},"nodeType":"YulFunctionCall","src":"683:31:139"},"nodeType":"YulExpressionStatement","src":"683:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"730:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"733:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"723:6:139"},"nodeType":"YulFunctionCall","src":"723:15:139"},"nodeType":"YulExpressionStatement","src":"723:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"754:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"757:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"747:6:139"},"nodeType":"YulFunctionCall","src":"747:15:139"},"nodeType":"YulExpressionStatement","src":"747:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"641:127:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        value0 := mload(headStart)\n        value1 := mload(add(headStart, 32))\n        value2 := mload(add(headStart, 64))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161061f38038061061f83398101604081905261002f916100ea565b6100383361007b565b6001839055600282905561006f61005a82856100cb602090811b61025a17901c565b6002546100de60201b61026d1790919060201c565b60035550610164915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006100d7828461012f565b9392505050565b60006100d78284610117565b6000806000606084860312156100fe578283fd5b8351925060208401519150604084015190509250925092565b6000821982111561012a5761012a61014e565b500190565b60008160001904831182151516156101495761014961014e565b500290565b634e487b7160e01b600052601160045260246000fd5b6104ac806101736000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610102578063b97dd9e21461011d578063c5967c2614610125578063c828371e1461012d578063efe97d0514610135578063f2fde38b1461013d57600080fd5b80630f3a9f65146100ae5780631ed24195146100c3578063398bac63146100da5780636a2ab602146100e2578063715018a6146100fa575b600080fd5b6100c16100bc3660046103da565b610150565b005b6001545b6040519081526020015b60405180910390f35b6100c761015d565b6100ea61016c565b60405190151581526020016100d1565b6100c1610176565b6000546040516001600160a01b0390911681526020016100d1565b6100c761018a565b6100c76101b0565b6002546100c7565b6100c76101d2565b6100c161014b3660046103b3565b6101dc565b610158610279565b600155565b60006101676102d3565b905090565b60006101676102f2565b61017e610279565b610188600061030b565b565b60006101676001546101aa6002546101a46002544261035b565b90610372565b9061037e565b60006101676101c96001546101c361038a565b9061025a565b6002549061026d565b600061016761038a565b6101e4610279565b6001600160a01b03811661024e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6102578161030b565b50565b6000610266828461042a565b9392505050565b600061026682846103f2565b6000546001600160a01b031633146101885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610245565b60006101676001546101aa60025460035461037290919063ffffffff16565b60006102fc61038a565b61030461018a565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183101561036b5781610266565b5090919050565b60006102668284610449565b6000610266828461040a565b600060035460025414156103a0576101676102d3565b61016760016103ad6102d3565b9061026d565b6000602082840312156103c4578081fd5b81356001600160a01b0381168114610266578182fd5b6000602082840312156103eb578081fd5b5035919050565b6000821982111561040557610405610460565b500190565b60008261042557634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561044457610444610460565b500290565b60008282101561045b5761045b610460565b500390565b634e487b7160e01b600052601160045260246000fdfea264697066735822122006bd3298e4c36a20b64fda9a6a654ac90ae9d7e350f6ee162a8e65802dcad2ea64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x61F CODESIZE SUB DUP1 PUSH2 0x61F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xEA JUMP JUMPDEST PUSH2 0x38 CALLER PUSH2 0x7B JUMP JUMPDEST PUSH1 0x1 DUP4 SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x6F PUSH2 0x5A DUP3 DUP6 PUSH2 0xCB PUSH1 0x20 SWAP1 DUP2 SHL PUSH2 0x25A OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xDE PUSH1 0x20 SHL PUSH2 0x26D OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x3 SSTORE POP PUSH2 0x164 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7 DUP3 DUP5 PUSH2 0x12F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7 DUP3 DUP5 PUSH2 0x117 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xFE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x12A JUMPI PUSH2 0x12A PUSH2 0x14E JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x149 JUMPI PUSH2 0x149 PUSH2 0x14E JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4AC DUP1 PUSH2 0x173 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0xB97DD9E2 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xC5967C26 EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0xC828371E EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0xEFE97D05 EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF3A9F65 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x1ED24195 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x398BAC63 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x6A2AB602 EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0xBC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA JUMP JUMPDEST PUSH2 0x150 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0x15D JUMP JUMPDEST PUSH2 0xEA PUSH2 0x16C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x176 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH2 0xC7 PUSH2 0x18A JUMP JUMPDEST PUSH2 0xC7 PUSH2 0x1B0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xC7 JUMP JUMPDEST PUSH2 0xC7 PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x14B CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x1DC JUMP JUMPDEST PUSH2 0x158 PUSH2 0x279 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x2D3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x2F2 JUMP JUMPDEST PUSH2 0x17E PUSH2 0x279 JUMP JUMPDEST PUSH2 0x188 PUSH1 0x0 PUSH2 0x30B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH1 0x1 SLOAD PUSH2 0x1AA PUSH1 0x2 SLOAD PUSH2 0x1A4 PUSH1 0x2 SLOAD TIMESTAMP PUSH2 0x35B JUMP JUMPDEST SWAP1 PUSH2 0x372 JUMP JUMPDEST SWAP1 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x1C9 PUSH1 0x1 SLOAD PUSH2 0x1C3 PUSH2 0x38A JUMP JUMPDEST SWAP1 PUSH2 0x25A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 PUSH2 0x26D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x38A JUMP JUMPDEST PUSH2 0x1E4 PUSH2 0x279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x24E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x257 DUP2 PUSH2 0x30B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x42A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x245 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH1 0x1 SLOAD PUSH2 0x1AA PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x372 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH2 0x38A JUMP JUMPDEST PUSH2 0x304 PUSH2 0x18A JUMP JUMPDEST LT ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x36B JUMPI DUP2 PUSH2 0x266 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x449 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x40A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0x3A0 JUMPI PUSH2 0x167 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x167 PUSH1 0x1 PUSH2 0x3AD PUSH2 0x2D3 JUMP JUMPDEST SWAP1 PUSH2 0x26D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C4 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x266 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EB JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x405 JUMPI PUSH2 0x405 PUSH2 0x460 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x425 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x444 JUMPI PUSH2 0x444 PUSH2 0x460 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x45B JUMPI PUSH2 0x45B PUSH2 0x460 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD 0xBD ORIGIN SWAP9 0xE4 0xC3 PUSH11 0x20B64FDA9A6A654AC90AE9 0xD7 0xE3 POP 0xF6 0xEE AND 0x2A DUP15 PUSH6 0x802DCAD2EA64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"315:2405:126:-:0;;;529:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:38;936:18:4;:32::i;:::-;639:6:126;:16;;;665:9;:22;;;714:38;728:23;:11;639:16;728:15;;;;;;;:23;;:::i;:::-;714:9;;:13;;;;;;:38;;;;:::i;:::-;697:14;:55;-1:-1:-1;315:2405:126;;-1:-1:-1;;315:2405:126;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;3465:96:49:-;3523:7;3549:5;3553:1;3549;:5;:::i;:::-;3542:12;3465:96;-1:-1:-1;;;3465:96:49:o;2755:::-;2813:7;2839:5;2843:1;2839;:5;:::i;14:316:139:-;102:6;110;118;171:2;159:9;150:7;146:23;142:32;139:2;;;192:6;184;177:22;139:2;226:9;220:16;210:26;;276:2;265:9;261:18;255:25;245:35;;320:2;309:9;305:18;299:25;289:35;;129:201;;;;;:::o;335:128::-;375:3;406:1;402:6;399:1;396:13;393:2;;;412:18;;:::i;:::-;-1:-1:-1;448:9:139;;383:80::o;468:168::-;508:7;574:1;570;566:6;562:14;559:1;556:21;551:1;544:9;537:17;533:45;530:2;;;581:18;;:::i;:::-;-1:-1:-1;621:9:139;;520:116::o;641:127::-;702:10;697:3;693:20;690:1;683:31;733:4;730:1;723:15;757:4;754:1;747:15;673:95;315:2405:126;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2657:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:236:139","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:139"},"nodeType":"YulFunctionCall","src":"132:22:139"},"nodeType":"YulExpressionStatement","src":"132:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:139"},"nodeType":"YulFunctionCall","src":"101:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:139"},"nodeType":"YulFunctionCall","src":"97:32:139"},"nodeType":"YulIf","src":"94:2:139"},{"nodeType":"YulVariableDeclaration","src":"165:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:139"},"nodeType":"YulFunctionCall","src":"178:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"264:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"273:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"281:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"266:6:139"},"nodeType":"YulFunctionCall","src":"266:22:139"},"nodeType":"YulExpressionStatement","src":"266:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"234:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"249:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"254:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"245:3:139"},"nodeType":"YulFunctionCall","src":"245:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"241:3:139"},"nodeType":"YulFunctionCall","src":"241:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"230:3:139"},"nodeType":"YulFunctionCall","src":"230:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"220:2:139"},"nodeType":"YulFunctionCall","src":"220:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"213:6:139"},"nodeType":"YulFunctionCall","src":"213:50:139"},"nodeType":"YulIf","src":"210:2:139"},{"nodeType":"YulAssignment","src":"299:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"309:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"299:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:139","type":""}],"src":"14:306:139"},{"body":{"nodeType":"YulBlock","src":"395:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"441:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"450:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"458:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"443:6:139"},"nodeType":"YulFunctionCall","src":"443:22:139"},"nodeType":"YulExpressionStatement","src":"443:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"416:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"425:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"412:3:139"},"nodeType":"YulFunctionCall","src":"412:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"437:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"408:3:139"},"nodeType":"YulFunctionCall","src":"408:32:139"},"nodeType":"YulIf","src":"405:2:139"},{"nodeType":"YulAssignment","src":"476:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"499:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"486:12:139"},"nodeType":"YulFunctionCall","src":"486:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"476:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"361:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"372:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"384:6:139","type":""}],"src":"325:190:139"},{"body":{"nodeType":"YulBlock","src":"621:102:139","statements":[{"nodeType":"YulAssignment","src":"631:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"643:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"654:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"639:3:139"},"nodeType":"YulFunctionCall","src":"639:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"631:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"673:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"688:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"704:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"709:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"700:3:139"},"nodeType":"YulFunctionCall","src":"700:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"713:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"696:3:139"},"nodeType":"YulFunctionCall","src":"696:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:139"},"nodeType":"YulFunctionCall","src":"684:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"666:6:139"},"nodeType":"YulFunctionCall","src":"666:51:139"},"nodeType":"YulExpressionStatement","src":"666:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"590:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"601:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"612:4:139","type":""}],"src":"520:203:139"},{"body":{"nodeType":"YulBlock","src":"823:92:139","statements":[{"nodeType":"YulAssignment","src":"833:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"845:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"856:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"841:3:139"},"nodeType":"YulFunctionCall","src":"841:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"833:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"875:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"900:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"893:6:139"},"nodeType":"YulFunctionCall","src":"893:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"886:6:139"},"nodeType":"YulFunctionCall","src":"886:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"868:6:139"},"nodeType":"YulFunctionCall","src":"868:41:139"},"nodeType":"YulExpressionStatement","src":"868:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"792:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"803:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"814:4:139","type":""}],"src":"728:187:139"},{"body":{"nodeType":"YulBlock","src":"1094:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1111:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1122:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1104:6:139"},"nodeType":"YulFunctionCall","src":"1104:21:139"},"nodeType":"YulExpressionStatement","src":"1104:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1145:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1156:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1141:3:139"},"nodeType":"YulFunctionCall","src":"1141:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1161:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1134:6:139"},"nodeType":"YulFunctionCall","src":"1134:30:139"},"nodeType":"YulExpressionStatement","src":"1134:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1195:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1180:3:139"},"nodeType":"YulFunctionCall","src":"1180:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1200:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1173:6:139"},"nodeType":"YulFunctionCall","src":"1173:62:139"},"nodeType":"YulExpressionStatement","src":"1173:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1255:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1266:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1251:3:139"},"nodeType":"YulFunctionCall","src":"1251:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1271:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1244:6:139"},"nodeType":"YulFunctionCall","src":"1244:36:139"},"nodeType":"YulExpressionStatement","src":"1244:36:139"},{"nodeType":"YulAssignment","src":"1289:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1301:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1312:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:139"},"nodeType":"YulFunctionCall","src":"1297:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1289:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1071:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1085:4:139","type":""}],"src":"920:402:139"},{"body":{"nodeType":"YulBlock","src":"1501:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1518:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1529:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1511:6:139"},"nodeType":"YulFunctionCall","src":"1511:21:139"},"nodeType":"YulExpressionStatement","src":"1511:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1552:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1563:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1548:3:139"},"nodeType":"YulFunctionCall","src":"1548:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"1568:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1541:6:139"},"nodeType":"YulFunctionCall","src":"1541:30:139"},"nodeType":"YulExpressionStatement","src":"1541:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1591:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1602:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1587:3:139"},"nodeType":"YulFunctionCall","src":"1587:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"1607:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1580:6:139"},"nodeType":"YulFunctionCall","src":"1580:62:139"},"nodeType":"YulExpressionStatement","src":"1580:62:139"},{"nodeType":"YulAssignment","src":"1651:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1663:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1674:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1659:3:139"},"nodeType":"YulFunctionCall","src":"1659:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1651:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1478:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1492:4:139","type":""}],"src":"1327:356:139"},{"body":{"nodeType":"YulBlock","src":"1789:76:139","statements":[{"nodeType":"YulAssignment","src":"1799:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1811:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1822:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1807:3:139"},"nodeType":"YulFunctionCall","src":"1807:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1799:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1841:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"1852:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1834:6:139"},"nodeType":"YulFunctionCall","src":"1834:25:139"},"nodeType":"YulExpressionStatement","src":"1834:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1758:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1769:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1780:4:139","type":""}],"src":"1688:177:139"},{"body":{"nodeType":"YulBlock","src":"1918:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"1945:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1947:16:139"},"nodeType":"YulFunctionCall","src":"1947:18:139"},"nodeType":"YulExpressionStatement","src":"1947:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1934:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1941:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1937:3:139"},"nodeType":"YulFunctionCall","src":"1937:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1931:2:139"},"nodeType":"YulFunctionCall","src":"1931:13:139"},"nodeType":"YulIf","src":"1928:2:139"},{"nodeType":"YulAssignment","src":"1976:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1987:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"1990:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1983:3:139"},"nodeType":"YulFunctionCall","src":"1983:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1976:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1901:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"1904:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"1910:3:139","type":""}],"src":"1870:128:139"},{"body":{"nodeType":"YulBlock","src":"2049:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"2080:111:139","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"2101:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2108:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2113:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2104:3:139"},"nodeType":"YulFunctionCall","src":"2104:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2094:6:139"},"nodeType":"YulFunctionCall","src":"2094:31:139"},"nodeType":"YulExpressionStatement","src":"2094:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2145:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2148:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2138:6:139"},"nodeType":"YulFunctionCall","src":"2138:15:139"},"nodeType":"YulExpressionStatement","src":"2138:15:139"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"2173:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"2176:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2166:6:139"},"nodeType":"YulFunctionCall","src":"2166:15:139"},"nodeType":"YulExpressionStatement","src":"2166:15:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2069:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2062:6:139"},"nodeType":"YulFunctionCall","src":"2062:9:139"},"nodeType":"YulIf","src":"2059:2:139"},{"nodeType":"YulAssignment","src":"2200:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2209:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"2212:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2205:3:139"},"nodeType":"YulFunctionCall","src":"2205:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2200:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2034:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"2037:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"2043:1:139","type":""}],"src":"2003:217:139"},{"body":{"nodeType":"YulBlock","src":"2277:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"2336:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"2338:16:139"},"nodeType":"YulFunctionCall","src":"2338:18:139"},"nodeType":"YulExpressionStatement","src":"2338:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2308:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2301:6:139"},"nodeType":"YulFunctionCall","src":"2301:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2294:6:139"},"nodeType":"YulFunctionCall","src":"2294:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2316:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2327:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2323:3:139"},"nodeType":"YulFunctionCall","src":"2323:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"2331:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2319:3:139"},"nodeType":"YulFunctionCall","src":"2319:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2313:2:139"},"nodeType":"YulFunctionCall","src":"2313:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2290:3:139"},"nodeType":"YulFunctionCall","src":"2290:45:139"},"nodeType":"YulIf","src":"2287:2:139"},{"nodeType":"YulAssignment","src":"2367:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2382:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"2385:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2378:3:139"},"nodeType":"YulFunctionCall","src":"2378:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"2367:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2256:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"2259:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"2265:7:139","type":""}],"src":"2225:168:139"},{"body":{"nodeType":"YulBlock","src":"2447:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"2469:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"2471:16:139"},"nodeType":"YulFunctionCall","src":"2471:18:139"},"nodeType":"YulExpressionStatement","src":"2471:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2463:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"2466:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2460:2:139"},"nodeType":"YulFunctionCall","src":"2460:8:139"},"nodeType":"YulIf","src":"2457:2:139"},{"nodeType":"YulAssignment","src":"2500:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2512:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"2515:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2508:3:139"},"nodeType":"YulFunctionCall","src":"2508:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"2500:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2429:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"2432:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"2438:4:139","type":""}],"src":"2398:125:139"},{"body":{"nodeType":"YulBlock","src":"2560:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2577:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2584:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2589:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2580:3:139"},"nodeType":"YulFunctionCall","src":"2580:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2570:6:139"},"nodeType":"YulFunctionCall","src":"2570:31:139"},"nodeType":"YulExpressionStatement","src":"2570:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2617:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2620:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2610:6:139"},"nodeType":"YulFunctionCall","src":"2610:15:139"},"nodeType":"YulExpressionStatement","src":"2610:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2641:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2644:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2634:6:139"},"nodeType":"YulFunctionCall","src":"2634:15:139"},"nodeType":"YulExpressionStatement","src":"2634:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"2528:127:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(r, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(r, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610102578063b97dd9e21461011d578063c5967c2614610125578063c828371e1461012d578063efe97d0514610135578063f2fde38b1461013d57600080fd5b80630f3a9f65146100ae5780631ed24195146100c3578063398bac63146100da5780636a2ab602146100e2578063715018a6146100fa575b600080fd5b6100c16100bc3660046103da565b610150565b005b6001545b6040519081526020015b60405180910390f35b6100c761015d565b6100ea61016c565b60405190151581526020016100d1565b6100c1610176565b6000546040516001600160a01b0390911681526020016100d1565b6100c761018a565b6100c76101b0565b6002546100c7565b6100c76101d2565b6100c161014b3660046103b3565b6101dc565b610158610279565b600155565b60006101676102d3565b905090565b60006101676102f2565b61017e610279565b610188600061030b565b565b60006101676001546101aa6002546101a46002544261035b565b90610372565b9061037e565b60006101676101c96001546101c361038a565b9061025a565b6002549061026d565b600061016761038a565b6101e4610279565b6001600160a01b03811661024e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6102578161030b565b50565b6000610266828461042a565b9392505050565b600061026682846103f2565b6000546001600160a01b031633146101885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610245565b60006101676001546101aa60025460035461037290919063ffffffff16565b60006102fc61038a565b61030461018a565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183101561036b5781610266565b5090919050565b60006102668284610449565b6000610266828461040a565b600060035460025414156103a0576101676102d3565b61016760016103ad6102d3565b9061026d565b6000602082840312156103c4578081fd5b81356001600160a01b0381168114610266578182fd5b6000602082840312156103eb578081fd5b5035919050565b6000821982111561040557610405610460565b500190565b60008261042557634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561044457610444610460565b500290565b60008282101561045b5761045b610460565b500390565b634e487b7160e01b600052601160045260246000fdfea264697066735822122006bd3298e4c36a20b64fda9a6a654ac90ae9d7e350f6ee162a8e65802dcad2ea64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0xB97DD9E2 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xC5967C26 EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0xC828371E EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0xEFE97D05 EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF3A9F65 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x1ED24195 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x398BAC63 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x6A2AB602 EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0xBC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA JUMP JUMPDEST PUSH2 0x150 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0x15D JUMP JUMPDEST PUSH2 0xEA PUSH2 0x16C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x176 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1 JUMP JUMPDEST PUSH2 0xC7 PUSH2 0x18A JUMP JUMPDEST PUSH2 0xC7 PUSH2 0x1B0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xC7 JUMP JUMPDEST PUSH2 0xC7 PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x14B CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x1DC JUMP JUMPDEST PUSH2 0x158 PUSH2 0x279 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x2D3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x2F2 JUMP JUMPDEST PUSH2 0x17E PUSH2 0x279 JUMP JUMPDEST PUSH2 0x188 PUSH1 0x0 PUSH2 0x30B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH1 0x1 SLOAD PUSH2 0x1AA PUSH1 0x2 SLOAD PUSH2 0x1A4 PUSH1 0x2 SLOAD TIMESTAMP PUSH2 0x35B JUMP JUMPDEST SWAP1 PUSH2 0x372 JUMP JUMPDEST SWAP1 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x1C9 PUSH1 0x1 SLOAD PUSH2 0x1C3 PUSH2 0x38A JUMP JUMPDEST SWAP1 PUSH2 0x25A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 PUSH2 0x26D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH2 0x38A JUMP JUMPDEST PUSH2 0x1E4 PUSH2 0x279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x24E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x257 DUP2 PUSH2 0x30B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x42A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x245 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x167 PUSH1 0x1 SLOAD PUSH2 0x1AA PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x372 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH2 0x38A JUMP JUMPDEST PUSH2 0x304 PUSH2 0x18A JUMP JUMPDEST LT ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x36B JUMPI DUP2 PUSH2 0x266 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x449 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x266 DUP3 DUP5 PUSH2 0x40A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD EQ ISZERO PUSH2 0x3A0 JUMPI PUSH2 0x167 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x167 PUSH1 0x1 PUSH2 0x3AD PUSH2 0x2D3 JUMP JUMPDEST SWAP1 PUSH2 0x26D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C4 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x266 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EB JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x405 JUMPI PUSH2 0x405 PUSH2 0x460 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x425 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x444 JUMPI PUSH2 0x444 PUSH2 0x460 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x45B JUMPI PUSH2 0x45B PUSH2 0x460 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD 0xBD ORIGIN SWAP9 0xE4 0xC3 PUSH11 0x20B64FDA9A6A654AC90AE9 0xD7 0xE3 POP 0xF6 0xEE AND 0x2A DUP15 PUSH6 0x802DCAD2EA64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"315:2405:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2630:88;;;;;;:::i;:::-;;:::i;:::-;;2384:92;2463:6;;2384:92;;;1834:25:139;;;1822:2;1807:18;2384:92:126;;;;;;;;1850:104;;;:::i;1423:93::-;;;:::i;:::-;;;893:14:139;;886:22;868:41;;856:2;841:18;1423:93:126;823:92:139;1831:101:4;;;:::i;1201:85::-;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:4;;;666:51:139;;654:2;639:18;1201:85:4;621:102:139;1960:155:126;;;:::i;2231:133::-;;;:::i;2482:98::-;2564:9;;2482:98;;2121:104;;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;2630:88:126:-;1094:13:4;:11;:13::i;:::-;2695:6:126::1;:16:::0;2630:88::o;1850:104::-;1906:7;1932:15;:13;:15::i;:::-;1925:22;;1850:104;:::o;1423:93::-;1475:4;1498:11;:9;:11::i;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1960:155:126:-;2019:7;2045:63;2101:6;;2045:51;2086:9;;2045:36;2054:9;;2065:15;2045:8;:36::i;:::-;:40;;:51::i;:::-;:55;;:63::i;2231:133::-;2289:7;2315:42;2329:27;2349:6;;2329:15;:13;:15::i;:::-;:19;;:27::i;:::-;2315:9;;;:13;:42::i;2121:104::-;2177:7;2203:15;:13;:15::i;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;1122:2:139;2161:73:4::1;::::0;::::1;1104:21:139::0;1161:2;1141:18;;;1134:30;1200:34;1180:18;;;1173:62;-1:-1:-1;;;1251:18:139;;;1244:36;1297:19;;2161:73:4::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3465:96:49:-;3523:7;3549:5;3553:1;3549;:5;:::i;:::-;3542:12;3465:96;-1:-1:-1;;;3465:96:49:o;2755:::-;2813:7;2839:5;2843:1;2839;:5;:::i;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;1529:2:139;1414:68:4;;;1511:21:139;;;1548:18;;;1541:30;1607:34;1587:18;;;1580:62;1659:18;;1414:68:4;1501:182:139;1142:122:126;1190:7;1216:41;1250:6;;1216:29;1235:9;;1216:14;;:18;;:29;;;;:::i;1522:111::-;1566:4;1611:15;:13;:15::i;:::-;1589:18;:16;:18::i;:::-;:37;;1582:44;;1522:111;:::o;2433:187:4:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;413:105:47:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:47;;413:105;-1:-1:-1;413:105:47:o;3122:96:49:-;3180:7;3206:5;3210:1;3206;:5;:::i;3850:96::-;3908:7;3934:5;3938:1;3934;:5;:::i;1639:192:126:-;1687:7;1723:14;;1710:9;;:27;1706:80;;;1760:15;:13;:15::i;1706:80::-;1802:22;1822:1;1802:15;:13;:15::i;:::-;:19;;:22::i;14:306:139:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:139;;220:42;;210:2;;281:6;273;266:22;325:190;384:6;437:2;425:9;416:7;412:23;408:32;405:2;;;458:6;450;443:22;405:2;-1:-1:-1;486:23:139;;395:120;-1:-1:-1;395:120:139:o;1870:128::-;1910:3;1941:1;1937:6;1934:1;1931:13;1928:2;;;1947:18;;:::i;:::-;-1:-1:-1;1983:9:139;;1918:80::o;2003:217::-;2043:1;2069;2059:2;;-1:-1:-1;;;2094:31:139;;2148:4;2145:1;2138:15;2176:4;2101:1;2166:15;2059:2;-1:-1:-1;2205:9:139;;2049:171::o;2225:168::-;2265:7;2331:1;2327;2323:6;2319:14;2316:1;2313:21;2308:1;2301:9;2294:17;2290:45;2287:2;;;2338:18;;:::i;:::-;-1:-1:-1;2378:9:139;;2277:116::o;2398:125::-;2438:4;2466:1;2463;2460:8;2457:2;;;2471:18;;:::i;:::-;-1:-1:-1;2508:9:139;;2447:76::o;2528:127::-;2589:10;2584:3;2580:20;2577:1;2570:31;2620:4;2617:1;2610:15;2644:4;2641:1;2634:15"},"methodIdentifiers":{"callable()":"6a2ab602","getCurrentEpoch()":"b97dd9e2","getLastEpoch()":"398bac63","getNextEpoch()":"efe97d05","getPeriod()":"1ed24195","getStartTime()":"c828371e","nextEpochPoint()":"c5967c26","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setPeriod(uint256)":"0f3a9f65","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startEpoch\",\"type\":\"uint256\"}],\"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\":\"callable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochPoint\",\"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\":\"_period\",\"type\":\"uint256\"}],\"name\":\"setPeriod\",\"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 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\":{\"contracts/utils/Epoch.sol\":\"Epoch\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]},\"contracts/utils/Epoch.sol\":{\"keccak256\":\"0x2dbd8fd988fca4e099ad556f76607918860725d64736ab14d9c7299246c51b10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8299f51efd2a19501423a152bbc1d155dd80cc6b7c4cda0998078843800a408\",\"dweb:/ipfs/QmYEYtJtEQ42SkKdXx2HpN4BJsKEgWkDPa3jVHPU9dG8uW\"]}},\"version\":1}"}},"contracts/utils/FullMath.sol":{"FullMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e3ae09b592a841c237ac757c63356513afad1a7f2c35b9ca925ea1b76e560f0064736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 0xAE MULMOD 0xB5 SWAP3 0xA8 COINBASE 0xC2 CALLDATACOPY 0xAC PUSH22 0x7C63356513AFAD1A7F2C35B9CA925EA1B76E560F0064 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"354:4787:127:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;354:4787:127;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e3ae09b592a841c237ac757c63356513afad1a7f2c35b9ca925ea1b76e560f0064736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 0xAE MULMOD 0xB5 SWAP3 0xA8 COINBASE 0xC2 CALLDATACOPY 0xAC PUSH22 0x7C63356513AFAD1A7F2C35B9CA925EA1B76E560F0064 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"354:4787:127:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Handles \\\"phantom overflow\\\" i.e., allows multiplication and division where an intermediate value overflows 256 bits\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Contains 512-bit math functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/FullMath.sol\":\"FullMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/utils/FullMath.sol\":{\"keccak256\":\"0xde415faa1da91d573faa1fcd220dee69595eaa1bb659a5ef9d321f2d293e2ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c51efa4f1d6f4a5db3c701c30ed4b0a8f42507d2dc8c7cea6e1a0f7babf56fc\",\"dweb:/ipfs/QmWKA8owXW4w8x7nAjT9LuVBdCt3UBmHy6xgwtGGDpKZ6f\"]}},\"version\":1}"}},"contracts/utils/IncentiveId.sol":{"IncentiveId":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fcd71dc8184399dd2300d690b6189389140b6fe4f366d999fe7d3e15304875ee64736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD7 SAR 0xC8 XOR NUMBER SWAP10 0xDD 0x23 STOP 0xD6 SWAP1 0xB6 XOR SWAP4 DUP10 EQ SIGNEXTEND PUSH16 0xE4F366D999FE7D3E15304875EE64736F PUSH13 0x63430008040033000000000000 ","sourceMap":"137:393:128:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;137:393:128;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fcd71dc8184399dd2300d690b6189389140b6fe4f366d999fe7d3e15304875ee64736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD7 SAR 0xC8 XOR NUMBER SWAP10 0xDD 0x23 STOP 0xD6 SWAP1 0xB6 XOR SWAP4 DUP10 EQ SIGNEXTEND PUSH16 0xE4F366D999FE7D3E15304875EE64736F PUSH13 0x63430008040033000000000000 ","sourceMap":"137:393:128:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/IncentiveId.sol\":\"IncentiveId\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/interfaces/IMulticall.sol\":{\"keccak256\":\"0x5ac8732c889e0b3f3f4d37d12d50b10c4a55a365433134ded9fbd39dc68cde69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://17d6288af42560f49758c883416a42473dbcafd77efc3736dd54d27df34b6550\",\"dweb:/ipfs/QmPqduaQPYYx1FsCtzQqgkc44sEK7GkWySiYP2cYvrzUfv\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/interfaces/IUniswapV3Staker.sol\":{\"keccak256\":\"0x9613c67c55ab1c16862f50b7f60ea02d5d1da62dc3cf9e8d14464a176bff1f86\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e891b8daddaa7ac7723c24e0c6f2ebf11af12c0991e1acaa53daeef745b1b5ff\",\"dweb:/ipfs/QmeFnFWi7dGbsCr9uCReVhsQfUSAXNwFueNjoZZbGKnxvz\"]},\"contracts/utils/IncentiveId.sol\":{\"keccak256\":\"0x46c16381122e21369336f44f3b3a99138c6e05538a68827ecd2136a258e515bc\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51e066d5d5813134e16146c7ac720c433f7e931e567e1a6a7c4470a31f9d1b0b\",\"dweb:/ipfs/QmZrLz7EfJqch82yZVa4SYNRntGTpXpR3YyJpHQqMG8bJC\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/utils/Multicall.sol":{"Multicall":{"abi":[{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"multicall(bytes[])":"ac9650d8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"multicall(bytes[])\":{\"details\":\"The `msg.value` should not be trusted for any method callable from multicall.\",\"params\":{\"data\":\"The encoded function data for each of the calls to make to this contract\"},\"returns\":{\"results\":\"The results from each of the calls passed in via data\"}}},\"title\":\"Multicall\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"multicall(bytes[])\":{\"notice\":\"Call multiple functions in the current contract and return the data from all of them if they all succeed\"}},\"notice\":\"Enables calling multiple methods in a single call to the contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/Multicall.sol\":\"Multicall\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IMulticall.sol\":{\"keccak256\":\"0x5ac8732c889e0b3f3f4d37d12d50b10c4a55a365433134ded9fbd39dc68cde69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://17d6288af42560f49758c883416a42473dbcafd77efc3736dd54d27df34b6550\",\"dweb:/ipfs/QmPqduaQPYYx1FsCtzQqgkc44sEK7GkWySiYP2cYvrzUfv\"]},\"contracts/utils/Multicall.sol\":{\"keccak256\":\"0xedeaa12956f8014f8f1dec1c5fbb3fa7b87cea059f902a38800d581189bd4e9e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://79977c3a92063a1bca18d06fcdfc3b38d42f87ea0a54d5369174587938dbdc54\",\"dweb:/ipfs/QmYaYTvH8W2obQu23KSGbZtjoSZhHHJ6bXjPidrgpKR9K9\"]}},\"version\":1}"}},"contracts/utils/NFTPositionInfo.sol":{"NFTPositionInfo":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca29d612f9bee663ec53654550ce4880f046d90715fd0636c3289c87d63e390764736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA 0x29 0xD6 SLT 0xF9 0xBE 0xE6 PUSH4 0xEC536545 POP 0xCE 0x48 DUP1 CREATE CHAINID 0xD9 SMOD ISZERO REVERT MOD CALLDATASIZE 0xC3 0x28 SWAP13 DUP8 0xD6 RETURNDATACOPY CODECOPY SMOD PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"419:1296:130:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;419:1296:130;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca29d612f9bee663ec53654550ce4880f046d90715fd0636c3289c87d63e390764736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA 0x29 0xD6 SLT 0xF9 0xBE 0xE6 PUSH4 0xEC536545 POP 0xCE 0x48 DUP1 CREATE CHAINID 0xD9 SMOD ISZERO REVERT MOD CALLDATASIZE 0xC3 0x28 SWAP13 DUP8 0xD6 RETURNDATACOPY CODECOPY SMOD PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"419:1296:130:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Encapsulates the logic for getting info about a NFT token ID\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/NFTPositionInfo.sol\":\"NFTPositionInfo\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"@uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"@uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x7a127df9c56dbe2cd36494b119b533ff121f02fda5d6b480ea9796c694196747\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5271d1bba67d5481e68833b440c6b206f270ec8cf59a0032d1028feaa664213\",\"dweb:/ipfs/QmVEDdfCt41AcTgewmc4wdW9A9NogKZjQ6WcMCQUAbK3yG\"]},\"contracts/utils/NFTPositionInfo.sol\":{\"keccak256\":\"0x58e7a461b1f190ea9dd1480b1a9a031e50304c80f14e40908936c45f20981b48\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c705d809320056979d767e7bb8036356f93b4e008b12746f6b57f01d914a3962\",\"dweb:/ipfs/QmUkVwEg1wPJRWuttC7eLiNqAPbLfiNQ3UsTQBgcoWXEfr\"]},\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/utils/Operator.sol":{"Operator":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","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":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","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":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isOperator()":"4456eda2","operator()":"570ca735","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOperator(address)":"29605e77","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"OperatorTransferred\",\"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\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"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\":\"newOperator_\",\"type\":\"address\"}],\"name\":\"transferOperator\",\"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 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\":{\"contracts/utils/Operator.sol\":\"Operator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/utils/Operator.sol\":{\"keccak256\":\"0x02eb72bd0cc2d7fe1fd6d7f80aa5703b9c464ca87a4d413682f04837a9ed55df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94ec6cda1c2f7555fa3ab532986d4dfc291b4e1d50cd306e82c4c5b6eca2d843\",\"dweb:/ipfs/QmbhbjobX4d71JKwa7LL18CA591fYWG6bwJDa9SijiLF5k\"]}},\"version\":1}"}},"contracts/utils/PoolAddress.sol":{"PoolAddress":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122030519e583aa72a760003839cac06fc1b914209455a4129fd7b4ec4cadddbdf5f64736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS MLOAD SWAP15 PC GASPRICE 0xA7 0x2A PUSH23 0x3839CAC06FC1B914209455A4129FD7B4EC4CADDDBDF 0x5F PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"167:1652:132:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;167:1652:132;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122030519e583aa72a760003839cac06fc1b914209455a4129fd7b4ec4cadddbdf5f64736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS MLOAD SWAP15 PC GASPRICE 0xA7 0x2A PUSH23 0x3839CAC06FC1B914209455A4129FD7B4EC4CADDDBDF 0x5F PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"167:1652:132:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Provides functions for deriving a pool address from the factory, tokens, and the fee\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/PoolAddress.sol\":\"PoolAddress\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"contracts/utils/PoolAddress.sol\":{\"keccak256\":\"0x4d9d291f243513408eda08cd7adb3f396a87afeb81ad6bcacc343414ff3a2af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2c462d2e8cd0b51acc9cb37bcd5c0047c444801144eabb5b3839025a77d03464\",\"dweb:/ipfs/QmWYHM9eedm1KqqBDdm7WvEnPuy3iUDPUwwTY5ZN4w8y1a\"]}},\"version\":1}"}},"contracts/utils/RewardMath.sol":{"RewardMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d8eb9161f532b9d05827ed799bbb5cae8d202e200d04df964eb99bc9135a1d564736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD DUP15 0xB9 AND 0x1F MSTORE8 0x2B SWAP14 SDIV DUP3 PUSH31 0xD799BBB5CAE8D202E200D04DF964EB99BC9135A1D564736F6C634300080400 CALLER ","sourceMap":"259:2206:133:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;259:2206:133;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d8eb9161f532b9d05827ed799bbb5cae8d202e200d04df964eb99bc9135a1d564736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD DUP15 0xB9 AND 0x1F MSTORE8 0x2B SWAP14 SDIV DUP3 PUSH31 0xD799BBB5CAE8D202E200D04DF964EB99BC9135A1D564736F6C634300080400 CALLER ","sourceMap":"259:2206:133:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Math for computing rewards\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Allows computing rewards given some parameters of stakes and incentives\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/RewardMath.sol\":\"RewardMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/utils/FullMath.sol\":{\"keccak256\":\"0xde415faa1da91d573faa1fcd220dee69595eaa1bb659a5ef9d321f2d293e2ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c51efa4f1d6f4a5db3c701c30ed4b0a8f42507d2dc8c7cea6e1a0f7babf56fc\",\"dweb:/ipfs/QmWKA8owXW4w8x7nAjT9LuVBdCt3UBmHy6xgwtGGDpKZ6f\"]},\"contracts/utils/RewardMath.sol\":{\"keccak256\":\"0x73c1eac0dc294695f19d482afcbcce21498896d909bed8e8aef8f6dad1145d37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d37c8dfbd93734c5e329f8ae1262cc2c003747d4c2ffc22bf5c6f261123262\",\"dweb:/ipfs/QmVrFATTNcng1EYPfDZaCfh78B8G8p3z2vnREMXUdWG2cL\"]}},\"version\":1}"}},"contracts/utils/TransferHelper.sol":{"TransferHelper":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e3e9e6e6721ed059089c0d584ea4d485e28f38fc43dee5e4f24f6500890dbb9f64736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 0xE9 0xE6 0xE6 PUSH19 0x1ED059089C0D584EA4D485E28F38FC43DEE5E4 CALLCODE 0x4F PUSH6 0x890DBB9F64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"128:2408:134:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;128:2408:134;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e3e9e6e6721ed059089c0d584ea4d485e28f38fc43dee5e4f24f6500890dbb9f64736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 0xE9 0xE6 0xE6 PUSH19 0x1ED059089C0D584EA4D485E28F38FC43DEE5E4 CALLCODE 0x4F PUSH6 0x890DBB9F64 PUSH20 0x6F6C634300080400330000000000000000000000 ","sourceMap":"128:2408:134:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/utils/TransferHelper.sol\":{\"keccak256\":\"0x58b260d54a90f8e16b7c279b313270f05a5d69a167290616b7e4ce59bc6a9cf1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7fc7af8cebc43b273b9d05b829311fb39070251e38e383cac62dc01675429719\",\"dweb:/ipfs/QmWn1KjCucJLq1zadsWSv5zSe9YKL3PbuRhwrxLdhbA1oJ\"]}},\"version\":1}"}},"contracts/utils/TransferHelperExtended.sol":{"TransferHelperExtended":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220393ab306b3242fe537b88a91ba2db5a8bb97f2256de2840fdc3490325f140e1f64736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY GASPRICE 0xB3 MOD 0xB3 0x24 0x2F 0xE5 CALLDATACOPY 0xB8 DUP11 SWAP2 0xBA 0x2D 0xB5 0xA8 0xBB SWAP8 CALLCODE 0x25 PUSH14 0xE2840FDC3490325F140E1F64736F PUSH13 0x63430008040033000000000000 ","sourceMap":"154:1334:135:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;154:1334:135;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220393ab306b3242fe537b88a91ba2db5a8bb97f2256de2840fdc3490325f140e1f64736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY GASPRICE 0xB3 MOD 0xB3 0x24 0x2F 0xE5 CALLDATACOPY 0xB8 DUP11 SWAP2 0xBA 0x2D 0xB5 0xA8 0xBB SWAP8 CALLCODE 0x25 PUSH14 0xE2840FDC3490325F140E1F64736F PUSH13 0x63430008040033000000000000 ","sourceMap":"154:1334:135:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utils/TransferHelperExtended.sol\":\"TransferHelperExtended\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"contracts/utils/TransferHelper.sol\":{\"keccak256\":\"0x58b260d54a90f8e16b7c279b313270f05a5d69a167290616b7e4ce59bc6a9cf1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7fc7af8cebc43b273b9d05b829311fb39070251e38e383cac62dc01675429719\",\"dweb:/ipfs/QmWn1KjCucJLq1zadsWSv5zSe9YKL3PbuRhwrxLdhbA1oJ\"]},\"contracts/utils/TransferHelperExtended.sol\":{\"keccak256\":\"0x17530cb0d6babd1d2314a412a8619a4f01993e8aa258a613678243192d79eb9c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cb7c55a100dfe219f63f239ddf084fde1b3a6abc635ed05de5d4c853442a9cce\",\"dweb:/ipfs/QmScNTffJPiQiRtCJuAbupEaLAmEbiMYKbo4zv5XRv2J9K\"]}},\"version\":1}"}},"contracts/voter/BaseV1Voter.sol":{"BaseV1Voter":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_emissionController","type":"address"},{"internalType":"address","name":"_governance","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Abstained","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Attach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Detach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DistributeReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"GaugeCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","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":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whitelister","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"attachTokenToGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bribes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_bribes","type":"address[]"},{"internalType":"address[][]","name":"_tokens","type":"address[][]"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"claimBribes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"},{"internalType":"address[][]","name":"_tokens","type":"address[][]"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"detachTokenFromGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distro","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emissionController","outputs":[{"internalType":"contract IEmissionController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gauges","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isGauge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"length","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"poke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"poolForGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolVote","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pools","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_bribefactory","type":"address"},{"internalType":"address","name":"_gaugefactory","type":"address"}],"name":"registerGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"what","type":"address"}],"name":"toggleWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"updateFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"updateForRange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"updateGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"usedWeights","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address[]","name":"_poolVote","type":"address[]"},{"internalType":"int256[]","name":"_weights","type":"int256[]"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"votes","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"weights","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:586:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:139","statements":[{"nodeType":"YulAssignment","src":"84:22:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:139"},"nodeType":"YulFunctionCall","src":"93:13:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:139"}]},{"body":{"nodeType":"YulBlock","src":"169:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:139"},"nodeType":"YulFunctionCall","src":"171:12:139"},"nodeType":"YulExpressionStatement","src":"171:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:139"},"nodeType":"YulFunctionCall","src":"150:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:139"},"nodeType":"YulFunctionCall","src":"146:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:139"},"nodeType":"YulFunctionCall","src":"135:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:139"},"nodeType":"YulFunctionCall","src":"125:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:139"},"nodeType":"YulFunctionCall","src":"118:50:139"},"nodeType":"YulIf","src":"115:2:139"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:139","type":""}],"src":"14:177:139"},{"body":{"nodeType":"YulBlock","src":"311:273:139","statements":[{"body":{"nodeType":"YulBlock","src":"357:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"366:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"374:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"359:6:139"},"nodeType":"YulFunctionCall","src":"359:22:139"},"nodeType":"YulExpressionStatement","src":"359:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"332:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"341:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"328:3:139"},"nodeType":"YulFunctionCall","src":"328:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"353:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"324:3:139"},"nodeType":"YulFunctionCall","src":"324:32:139"},"nodeType":"YulIf","src":"321:2:139"},{"nodeType":"YulAssignment","src":"392:50:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"432:9:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"402:29:139"},"nodeType":"YulFunctionCall","src":"402:40:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"392:6:139"}]},{"nodeType":"YulAssignment","src":"451:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"495:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"506:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"491:3:139"},"nodeType":"YulFunctionCall","src":"491:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"461:29:139"},"nodeType":"YulFunctionCall","src":"461:49:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"451:6:139"}]},{"nodeType":"YulAssignment","src":"519:59:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"563:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"574:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"559:3:139"},"nodeType":"YulFunctionCall","src":"559:18:139"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"529:29:139"},"nodeType":"YulFunctionCall","src":"529:49:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"519:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"261:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"272:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"284:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"292:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"300:6:139","type":""}],"src":"196:388:139"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b506040516200350c3803806200350c8339810160408190526200003491620000f4565b6001600055620000443362000085565b606083901b6001600160601b031916608052600280546001600160a01b0319166001600160a01b0384161790556200007c8162000085565b5050506200013d565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b0381168114620000ef57600080fd5b919050565b60008060006060848603121562000109578283fd5b6200011484620000d7565b92506200012460208501620000d7565b91506200013460408501620000d7565b90509250925092565b60805160601c613340620001cc600039600081816103d901528181610687015281816107c301528181610aa101528181610b7c01528181610c9201528181610e73015281816110300152818161137a0152818161159801528181611639015281816116c701528181611a2001528181611e61015281816123120152818161277801526128ba01526133406000f3fe608060405234801561001057600080fd5b506004361061022d5760003560e01c806379e938241161013b578063aa79979b116100b8578063d560b0d71161007c578063d560b0d714610567578063e4fc6b6d14610317578063ea94ee441461057a578063f2fde38b1461058d578063fecdad60146105a057600080fd5b8063aa79979b146104ca578063ac4afa38146104ed578063af67c63814610500578063b9a09fd514610513578063d23254b41461053c57600080fd5b80639b6a9d72116100ff5780639b6a9d7214610448578063a61c713a1461045b578063a7cac8461461046e578063a86a366d1461048e578063a8c5d95a146104a157600080fd5b806379e93824146103b45780637b103999146103d45780638da5cb5b146103fb57806396c82e571461040c5780639b19251a1461041557600080fd5b806347b3c6ba116101c95780636dee20121161018d5780636dee2012146103605780636ecbe38a14610373578063715018a6146103865780637625391a1461038e5780637715ee75146103a157600080fd5b806347b3c6ba1461031757806353d786931461031f5780636138889b1461032757806363453ae11461033a578063698473e31461034d57600080fd5b806306d6a1b2146102325780631f7b6d321461027157806320b1cb6f14610283578063310bd74b1461029857806332145f90146102ab57806339393ac9146102be5780633c6b16ab146102d1578063402914f5146102e4578063411b1f7714610304575b600080fd5b61025b610240366004612c8a565b6006602052600090815260409020546001600160a01b031681565b6040516102689190612fdf565b60405180910390f35b6004545b604051908152602001610268565b610296610291366004612d4d565b6105b3565b005b6102966102a6366004612e36565b610685565b6102966102b9366004612e36565b6108b4565b6102966102cc366004612c8a565b610a2d565b6102966102df366004612e36565b610a9c565b6102756102f2366004612c8a565b60106020526000908152604090205481565b610296610312366004612e66565b610c5b565b610296610dbe565b610296610dcf565b610296610335366004612d13565b610dde565b610296610348366004612c8a565b610e30565b61029661035b366004612e66565b610e3c565b60025461025b906001600160a01b031681565b610296610381366004612c8a565b610f9f565b610296610fa8565b61029661039c366004612f42565b610fba565b6102966103af366004612dad565b61102e565b6102756103c2366004612e36565b600b6020526000908152604090205481565b61025b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031661025b565b61027560035481565b610438610423366004612c8a565b600d6020526000908152604090205460ff1681565b6040519015158152602001610268565b610296610456366004612f42565b611225565b610296610469366004612e95565b611299565b61027561047c366004612c8a565b60086020526000908152604090205481565b61025b61049c366004612f42565b611314565b61025b6104af366004612c8a565b6007602052600090815260409020546001600160a01b031681565b6104386104d8366004612c8a565b600c6020526000908152604090205460ff1681565b61025b6104fb366004612e36565b61134c565b61025b61050e366004612cc9565b611376565b61025b610521366004612c8a565b6005602052600090815260409020546001600160a01b031681565b61027561054a366004612e66565b600960209081526000928352604080842090915290825290205481565b610296610575366004612d13565b6118e8565b610296610588366004612e95565b611936565b61029661059b366004612c8a565b6119a8565b6102966105ae366004612ecc565b611a1e565b60005b8251811015610680578281815181106105df57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166331279d3d3384848151811061061657634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b815260040161063b929190612ff3565b600060405180830381600087803b15801561065557600080fd5b505af1158015610669573d6000803e3d6000fd5b5050505080806106789061327e565b9150506105b6565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106de57600080fd5b505afa1580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107169190612cad565b6001600160a01b031663430c208133836040518363ffffffff1660e01b8152600401610743929190613017565b60206040518083038186803b15801561075b57600080fd5b505afa15801561076f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190612e16565b6107b85760405162461bcd60e51b81526004016107af90613053565b60405180910390fd5b6107c181611c19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561081a57600080fd5b505afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190612cad565b6001600160a01b031663c1f0fb9f826040518263ffffffff1660e01b815260040161087f91815260200190565b600060405180830381600087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b5050505050565b6000818152600a602090815260408083208054825181850281018501909352808352919290919083018282801561091457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108f6575b505050505090506000815190506000816001600160401b0381111561094957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610972578160200160208202803683370190505b50905060005b82811015610a1b576009600086815260200190815260200160002060008583815181106109b557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106109fe57634e487b7160e01b600052603260045260246000fd5b602090810291909101015280610a138161327e565b915050610978565b50610a27848483611e4e565b50505050565b610a35612433565b6001600160a01b0381166000818152600d6020908152604091829020805460ff8082161560ff199092168217909255925192161515825233917fc8a125677224e7125b3579c5a10de1afe210f4c1c1d3c27be0f12b0c4a14c915910160405180910390a350565b610b387f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610af857600080fd5b505afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b309190612cad565b33308461248d565b600354600090610b5083670de0b6b3a7640000613209565b610b5a9190613172565b90508015610b7a5780600e6000828254610b74919061312c565b90915550505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd357600080fd5b505afa158015610be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0b9190612cad565b6001600160a01b0316336001600160a01b03167ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf5082684604051610c4f91815260200190565b60405180910390a35050565b336000908152600c602052604090205460ff16610c8a5760405162461bcd60e51b81526004016107af90613030565b8115610d81577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce957600080fd5b505afa158015610cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d219190612cad565b6001600160a01b031663986b7d8a836040518263ffffffff1660e01b8152600401610d4e91815260200190565b600060405180830381600087803b158015610d6857600080fd5b505af1158015610d7c573d6000803e3d6000fd5b505050505b60405182815233906001600160a01b038316907fae268d9aab12f3605f58efd74fd3801fa812b03fdb44317eb70f46dff0e19e2290602001610c4f565b600454610dcd90600090610fba565b565b600454610dcd90600090611225565b60005b8151811015610e2c57610e1a828281518110610e0d57634e487b7160e01b600052603260045260246000fd5b60200260200101516125f6565b80610e248161327e565b915050610de1565b5050565b610e39816125f6565b50565b336000908152600c602052604090205460ff16610e6b5760405162461bcd60e51b81526004016107af90613030565b8115610f62577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eca57600080fd5b505afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190612cad565b6001600160a01b031663fbd3a29d836040518263ffffffff1660e01b8152600401610f2f91815260200190565b600060405180830381600087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050505b60405182815233906001600160a01b038316907f60940192810a6fb3bce3fd3e2e3a13fd6ccc7605e963fb87ee971aba829989bd90602001610c4f565b610e39816129e3565b610fb0612433565b610dcd6000612ac6565b815b818110156106805761101c6005600060048481548110610fec57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054166125f6565b806110268161327e565b915050610fbc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561108757600080fd5b505afa15801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf9190612cad565b6001600160a01b031663430c208133836040518363ffffffff1660e01b81526004016110ec929190613017565b60206040518083038186803b15801561110457600080fd5b505afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190612e16565b6111585760405162461bcd60e51b81526004016107af90613053565b60005b8351811015610a275783818151811061118457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663a7852afa838584815181106111bb57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b81526004016111e092919061307f565b600060405180830381600087803b1580156111fa57600080fd5b505af115801561120e573d6000803e3d6000fd5b50505050808061121d9061327e565b91505061115b565b815b8181101561068057611287600560006004848154811061125757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054166129e3565b806112918161327e565b915050611227565b336000908152600c602052604090205460ff166112c85760405162461bcd60e51b81526004016107af90613030565b604080518481526020810183905233916001600160a01b038516917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d791015b60405180910390a3505050565b600a602052816000526040600020818154811061133057600080fd5b6000918252602090912001546001600160a01b03169150829050565b6004818154811061135c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b505050506001600160a01b0384811660009081526005602052604090205416156114425760405162461bcd60e51b815260206004820152600c60248201526b67617567652065786973747360a01b60448201526064016107af565b6001600160a01b0384166000908152600d602052604090205460ff166114a15760405162461bcd60e51b81526020600482015260146024820152731c1bdbdb081b9bdd081dda1a5d195b1a5cdd195960621b60448201526064016107af565b6001600160a01b0383166000908152600d602052604090205460ff166115095760405162461bcd60e51b815260206004820152601d60248201527f627269626520666163746f7279206e6f742077686974656c697374656400000060448201526064016107af565b6001600160a01b0382166000908152600d602052604090205460ff166115715760405162461bcd60e51b815260206004820152601d60248201527f676175676520666163746f7279206e6f742077686974656c697374656400000060448201526064016107af565b604051631af469cb60e21b81526000906001600160a01b03851690636bd1a72c906115c0907f000000000000000000000000000000000000000000000000000000000000000090600401612fdf565b602060405180830381600087803b1580156115da57600080fd5b505af11580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116129190612cad565b604051630e24707d60e11b81526001600160a01b03878116600483015280831660248301527f000000000000000000000000000000000000000000000000000000000000000081166044830152919250600091851690631c48e0fa90606401602060405180830381600087803b15801561168b57600080fd5b505af115801561169f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c39190612cad565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117569190612cad565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b8152600401611785929190613017565b602060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d79190612e16565b506001600160a01b03808216600081815260076020908152604080832080548689166001600160a01b031991821617909155948b16808452600583528184208054871686179055938352600682528083208054909516909317909355600c9092529020805460ff1916600117905561184e816129e3565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b03888116918217909255604051909184811691908416907f48d3c521fd0d5541640f58c6d6381eed7cb2e8c9df421ae165a4f4c2d221ee0d906118d7903390612fdf565b60405180910390a495945050505050565b60005b8151811015610e2c5761192482828151811061191757634e487b7160e01b600052603260045260246000fd5b60200260200101516129e3565b8061192e8161327e565b9150506118eb565b336000908152600c602052604090205460ff166119655760405162461bcd60e51b81526004016107af90613030565b604080518481526020810183905233916001600160a01b038516917ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679101611307565b6119b0612433565b6001600160a01b038116611a155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107af565b610e3981612ac6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7757600080fd5b505afa158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf9190612cad565b6001600160a01b031663430c208133876040518363ffffffff1660e01b8152600401611adc929190613017565b60206040518083038186803b158015611af457600080fd5b505afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612e16565b611b6a5760405162461bcd60e51b815260206004820152600f60248201526e3737ba103a37b5b2b71037bbb732b960891b60448201526064016107af565b828114611bab5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964207765696768747360881b60448201526064016107af565b6108ad8585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611e4e92505050565b6000818152600a6020526040812080549091805b82811015611e12576000848281548110611c5757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101548883526009825260408084206001600160a01b03909216808552919092529120549091508015611dfd576001600160a01b03808316600090815260056020526040902054611cb391166129e3565b6001600160a01b03821660009081526008602052604081208054839290611cdb908490613228565b909155505060008781526009602090815260408083206001600160a01b038616845290915281208054839290611d12908490613228565b90915550506000811315611db6576001600160a01b038281166000908152600560209081526040808320548416835260079091529081902054905163278afc8b60e21b815260048101849052602481018a9052911690639e2bf22c90604401600060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050508084611daf91906130eb565b9350611dc3565b611dc08185613228565b93505b60408051888152602081018390527f6b3894ce60b9bbe9d93f1a4e6fc25b6b93cd8222e73ab6348d79c596f5b51de9910160405180910390a15b50508080611e0a9061327e565b915050611c2d565b508060036000828254611e259190613267565b90915550506000848152600b60209081526040808320839055600a9091528120610a2791612b18565b611e5783611c19565b60008251905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611eb857600080fd5b505afa158015611ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef09190612cad565b6001600160a01b031663e7e242d4866040518263ffffffff1660e01b8152600401611f1d91815260200190565b60206040518083038186803b158015611f3557600080fd5b505afa158015611f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6d9190612e4e565b90506000806000805b8581101561202a576000878281518110611fa057634e487b7160e01b600052603260045260246000fd5b602002602001015113611fe357868181518110611fcd57634e487b7160e01b600052603260045260246000fd5b6020026020010151611fde90613299565b61200c565b86818151811061200357634e487b7160e01b600052603260045260246000fd5b60200260200101515b61201690856130eb565b9350806120228161327e565b915050611f76565b5060005b8581101561230657600088828151811061205857634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03808216600090815260058452604080822054909216808252600c909452205490925060ff16156122f157600086888b86815181106120ba57634e487b7160e01b600052603260045260246000fd5b60200260200101516120cc9190613186565b6120d69190613144565b60008d81526009602090815260408083206001600160a01b0388168452909152902054909150156121355760405162461bcd60e51b81526020600482015260096024820152680766f746573203d20360bc1b60448201526064016107af565b806121735760405162461bcd60e51b815260206004820152600e60248201526d0706f6f6c776569676874203d20360941b60448201526064016107af565b61217c826129e3565b60008c8152600a6020908152604080832080546001810182559084528284200180546001600160a01b0319166001600160a01b03881690811790915583526008909152812080548392906121d19084906130eb565b909155505060008c81526009602090815260408083206001600160a01b0387168452909152812080548392906122089084906130eb565b9091555050600081131561228f576001600160a01b038083166000908152600760205260409081902054905163f320772360e01b815260048101849052602481018f905291169063f320772390604401600060405180830381600087803b15801561227257600080fd5b505af1158015612286573d6000803e3d6000fd5b5050505061229b565b61229881613299565b90505b6122a581866130eb565b94506122b181876130eb565b604080518e81526020810184905291975033917f1263a2295e53acd6ef8f655b8afc11fa0f2cf11925be7aa1757d741ef32a926c910160405180910390a2505b505080806122fe9061327e565b91505061202e565b506000811315612401577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561236957600080fd5b505afa15801561237d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a19190612cad565b6001600160a01b031663fd4a77f1896040518263ffffffff1660e01b81526004016123ce91815260200190565b600060405180830381600087803b1580156123e857600080fd5b505af11580156123fc573d6000803e3d6000fd5b505050505b8160036000828254612413919061312c565b90915550506000978852600b602052604090972096909655505050505050565b6001546001600160a01b03163314610dcd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107af565b6000846001600160a01b03163b116124dc5760405162461bcd60e51b8152602060048201526012602482015271696e76616c696420746f6b656e20636f646560701b60448201526064016107af565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916125409190612fa6565b6000604051808303816000865af19150503d806000811461257d576040519150601f19603f3d011682016040523d82523d6000602084013e612582565b606091505b50915091508180156125ac5750805115806125ac5750808060200190518101906125ac9190612e16565b6125ee5760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b60448201526064016107af565b505050505050565b600260005414156126495760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107af565b6002600081905554604080516335155b0160e11b815290516001600160a01b0390921691636a2ab60291600480820192602092909190829003018186803b15801561269357600080fd5b505afa1580156126a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cb9190612e16565b1561273957600260009054906101000a90046001600160a01b03166001600160a01b031663161ad7066040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561272057600080fd5b505af1158015612734573d6000803e3d6000fd5b505050505b612742816129e3565b6001600160a01b03808216600081815260106020908152604091829020548251631ef0061b60e11b8152925190946399bcc052937f000000000000000000000000000000000000000000000000000000000000000090911692633de00c3692600480840193829003018186803b1580156127bb57600080fd5b505afa1580156127cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f39190612cad565b6040518263ffffffff1660e01b815260040161280f9190612fdf565b60206040518083038186803b15801561282757600080fd5b505afa15801561283b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285f9190612e4e565b811180156128795750600061287762093a8083613172565b115b156129da57600060106000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663b66503cf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b15801561291157600080fd5b505afa158015612925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129499190612cad565b836040518363ffffffff1660e01b8152600401612967929190613017565b600060405180830381600087803b15801561298157600080fd5b505af1158015612995573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507f4fa9693cae526341d334e2862ca2413b2e503f1266255f9e0869fb36e6d89b179060200160405180910390a35b50506001600055565b6001600160a01b0380821660009081526006602090815260408083205490931680835260089091529181205490811315612aa5576001600160a01b0383166000908152600f602052604081208054600e549182905591612a438383613267565b905080156125ee576000670de0b6b3a7640000612a608387613209565b612a6a9190613172565b6001600160a01b038816600090815260106020526040812080549293508392909190612a9790849061312c565b909155505050505050505050565b600e546001600160a01b0384166000908152600f6020526040902055505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b5080546000825590600052602060002090810190610e3991905b80821115612b465760008155600101612b32565b5090565b60008083601f840112612b5b578182fd5b5081356001600160401b03811115612b71578182fd5b6020830191508360208260051b8501011115612b8c57600080fd5b9250929050565b600082601f830112612ba3578081fd5b81356020612bb8612bb3836130c8565b613098565b80838252828201915082860187848660051b8901011115612bd7578586fd5b855b85811015612bfe578135612bec816132f5565b84529284019290840190600101612bd9565b5090979650505050505050565b600082601f830112612c1b578081fd5b81356020612c2b612bb3836130c8565b80838252828201915082860187848660051b8901011115612c4a578586fd5b855b85811015612bfe5781356001600160401b03811115612c69578788fd5b612c778a87838c0101612b93565b8552509284019290840190600101612c4c565b600060208284031215612c9b578081fd5b8135612ca6816132f5565b9392505050565b600060208284031215612cbe578081fd5b8151612ca6816132f5565b600080600060608486031215612cdd578182fd5b8335612ce8816132f5565b92506020840135612cf8816132f5565b91506040840135612d08816132f5565b809150509250925092565b600060208284031215612d24578081fd5b81356001600160401b03811115612d39578182fd5b612d4584828501612b93565b949350505050565b60008060408385031215612d5f578182fd5b82356001600160401b0380821115612d75578384fd5b612d8186838701612b93565b93506020850135915080821115612d96578283fd5b50612da385828601612c0b565b9150509250929050565b600080600060608486031215612dc1578283fd5b83356001600160401b0380821115612dd7578485fd5b612de387838801612b93565b94506020860135915080821115612df8578384fd5b50612e0586828701612c0b565b925050604084013590509250925092565b600060208284031215612e27578081fd5b81518015158114612ca6578182fd5b600060208284031215612e47578081fd5b5035919050565b600060208284031215612e5f578081fd5b5051919050565b60008060408385031215612e78578182fd5b823591506020830135612e8a816132f5565b809150509250929050565b600080600060608486031215612ea9578283fd5b833592506020840135612ebb816132f5565b929592945050506040919091013590565b600080600080600060608688031215612ee3578081fd5b8535945060208601356001600160401b0380821115612f00578283fd5b612f0c89838a01612b4a565b90965094506040880135915080821115612f24578283fd5b50612f3188828901612b4a565b969995985093965092949392505050565b60008060408385031215612f54578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b83811015612f9b5781516001600160a01b031687529582019590820190600101612f76565b509495945050505050565b60008251815b81811015612fc65760208186018101518583015201612fac565b81811115612fd45782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0383168152604060208201819052600090612d4590830184612f63565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152686e6f7420676175676560b81b604082015260600190565b6020808252601290820152713737ba1030b8383937bb32b21037bbb732b960711b604082015260600190565b828152604060208201526000612d456040830184612f63565b604051601f8201601f191681016001600160401b03811182821017156130c0576130c06132df565b604052919050565b60006001600160401b038211156130e1576130e16132df565b5060051b60200190565b600080821280156001600160ff1b038490038513161561310d5761310d6132b3565b600160ff1b8390038412811615613126576131266132b3565b50500190565b6000821982111561313f5761313f6132b3565b500190565b600082613153576131536132c9565b600160ff1b82146000198414161561316d5761316d6132b3565b500590565b600082613181576131816132c9565b500490565b60006001600160ff1b03818413828413808216868404861116156131ac576131ac6132b3565b600160ff1b848712828116878305891216156131ca576131ca6132b3565b8587129250878205871284841616156131e5576131e56132b3565b878505871281841616156131fb576131fb6132b3565b505050929093029392505050565b6000816000190483118215151615613223576132236132b3565b500290565b60008083128015600160ff1b850184121615613246576132466132b3565b6001600160ff1b0384018313811615613261576132616132b3565b50500390565b600082821015613279576132796132b3565b500390565b6000600019821415613292576132926132b3565b5060010190565b6000600160ff1b8214156132af576132af6132b3565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e3957600080fdfea2646970667358221220d093a75fe2e8967922fae5143bdb97d2eae9296785468b5266b078bc3619d27d64736f6c63430008040033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x350C CODESIZE SUB DUP1 PUSH3 0x350C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xF4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH3 0x44 CALLER PUSH3 0x85 JUMP JUMPDEST PUSH1 0x60 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH3 0x7C DUP2 PUSH3 0x85 JUMP JUMPDEST POP POP POP PUSH3 0x13D JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x109 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH3 0x114 DUP5 PUSH3 0xD7 JUMP JUMPDEST SWAP3 POP PUSH3 0x124 PUSH1 0x20 DUP6 ADD PUSH3 0xD7 JUMP JUMPDEST SWAP2 POP PUSH3 0x134 PUSH1 0x40 DUP6 ADD PUSH3 0xD7 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x3340 PUSH3 0x1CC PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x3D9 ADD MSTORE DUP2 DUP2 PUSH2 0x687 ADD MSTORE DUP2 DUP2 PUSH2 0x7C3 ADD MSTORE DUP2 DUP2 PUSH2 0xAA1 ADD MSTORE DUP2 DUP2 PUSH2 0xB7C ADD MSTORE DUP2 DUP2 PUSH2 0xC92 ADD MSTORE DUP2 DUP2 PUSH2 0xE73 ADD MSTORE DUP2 DUP2 PUSH2 0x1030 ADD MSTORE DUP2 DUP2 PUSH2 0x137A ADD MSTORE DUP2 DUP2 PUSH2 0x1598 ADD MSTORE DUP2 DUP2 PUSH2 0x1639 ADD MSTORE DUP2 DUP2 PUSH2 0x16C7 ADD MSTORE DUP2 DUP2 PUSH2 0x1A20 ADD MSTORE DUP2 DUP2 PUSH2 0x1E61 ADD MSTORE DUP2 DUP2 PUSH2 0x2312 ADD MSTORE DUP2 DUP2 PUSH2 0x2778 ADD MSTORE PUSH2 0x28BA ADD MSTORE PUSH2 0x3340 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x22D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79E93824 GT PUSH2 0x13B JUMPI DUP1 PUSH4 0xAA79979B GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xD560B0D7 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD560B0D7 EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0xE4FC6B6D EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0xEA94EE44 EQ PUSH2 0x57A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x58D JUMPI DUP1 PUSH4 0xFECDAD60 EQ PUSH2 0x5A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAA79979B EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0xAC4AFA38 EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0xAF67C638 EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0xB9A09FD5 EQ PUSH2 0x513 JUMPI DUP1 PUSH4 0xD23254B4 EQ PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9B6A9D72 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x9B6A9D72 EQ PUSH2 0x448 JUMPI DUP1 PUSH4 0xA61C713A EQ PUSH2 0x45B JUMPI DUP1 PUSH4 0xA7CAC846 EQ PUSH2 0x46E JUMPI DUP1 PUSH4 0xA86A366D EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0xA8C5D95A EQ PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79E93824 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x47B3C6BA GT PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x6DEE2012 GT PUSH2 0x18D JUMPI DUP1 PUSH4 0x6DEE2012 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x6ECBE38A EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x7625391A EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x7715EE75 EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x47B3C6BA EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x53D78693 EQ PUSH2 0x31F JUMPI DUP1 PUSH4 0x6138889B EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x63453AE1 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x698473E3 EQ PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6D6A1B2 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x1F7B6D32 EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0x20B1CB6F EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x310BD74B EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x32145F90 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x39393AC9 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0x2D1 JUMPI DUP1 PUSH4 0x402914F5 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x411B1F77 EQ PUSH2 0x304 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B PUSH2 0x240 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x268 SWAP2 SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x268 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4D JUMP JUMPDEST PUSH2 0x5B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x296 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0x8B4 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0xA2D JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x275 PUSH2 0x2F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x312 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E66 JUMP JUMPDEST PUSH2 0xC5B JUMP JUMPDEST PUSH2 0x296 PUSH2 0xDBE JUMP JUMPDEST PUSH2 0x296 PUSH2 0xDCF JUMP JUMPDEST PUSH2 0x296 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D13 JUMP JUMPDEST PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x296 PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E66 JUMP JUMPDEST PUSH2 0xE3C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x25B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x381 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0xF9F JUMP JUMPDEST PUSH2 0x296 PUSH2 0xFA8 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F42 JUMP JUMPDEST PUSH2 0xFBA JUMP JUMPDEST PUSH2 0x296 PUSH2 0x3AF CALLDATASIZE PUSH1 0x4 PUSH2 0x2DAD JUMP JUMPDEST PUSH2 0x102E JUMP JUMPDEST PUSH2 0x275 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x25B JUMP JUMPDEST PUSH2 0x275 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x438 PUSH2 0x423 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x268 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x456 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F42 JUMP JUMPDEST PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x469 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E95 JUMP JUMPDEST PUSH2 0x1299 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x49C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F42 JUMP JUMPDEST PUSH2 0x1314 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x4AF CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x438 PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x4FB CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0x134C JUMP JUMPDEST PUSH2 0x25B PUSH2 0x50E CALLDATASIZE PUSH1 0x4 PUSH2 0x2CC9 JUMP JUMPDEST PUSH2 0x1376 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x54A CALLDATASIZE PUSH1 0x4 PUSH2 0x2E66 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x575 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D13 JUMP JUMPDEST PUSH2 0x18E8 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x588 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E95 JUMP JUMPDEST PUSH2 0x1936 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x59B CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0x19A8 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x5AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2ECC JUMP JUMPDEST PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x680 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x5DF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x31279D3D CALLER DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x616 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x63B SWAP3 SWAP2 SWAP1 PUSH2 0x2FF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x669 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP1 PUSH2 0x678 SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5B6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x716 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x430C2081 CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x743 SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x75B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x793 SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x7B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7C1 DUP2 PUSH2 0x1C19 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x81A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x82E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x852 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC1F0FB9F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x87F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x914 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 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 0x8F6 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x949 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x972 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xA1B JUMPI PUSH1 0x9 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x9B5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x9FE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0xA13 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x978 JUMP JUMPDEST POP PUSH2 0xA27 DUP5 DUP5 DUP4 PUSH2 0x1E4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xA35 PUSH2 0x2433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO PUSH1 0xFF NOT SWAP1 SWAP3 AND DUP3 OR SWAP1 SWAP3 SSTORE SWAP3 MLOAD SWAP3 AND ISZERO ISZERO DUP3 MSTORE CALLER SWAP2 PUSH32 0xC8A125677224E7125B3579C5A10DE1AFE210F4C1C1D3C27BE0F12B0C4A14C915 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0xB38 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB30 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST CALLER ADDRESS DUP5 PUSH2 0x248D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xB50 DUP4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x3209 JUMP JUMPDEST PUSH2 0xB5A SWAP2 SWAP1 PUSH2 0x3172 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB7A JUMPI DUP1 PUSH1 0xE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB74 SWAP2 SWAP1 PUSH2 0x312C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0B SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 DUP5 PUSH1 0x40 MLOAD PUSH2 0xC4F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST DUP2 ISZERO PUSH2 0xD81 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCFD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD21 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x986B7D8A DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD4E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xAE268D9AAB12F3605F58EFD74FD3801FA812B03FDB44317EB70F46DFF0E19E22 SWAP1 PUSH1 0x20 ADD PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0xDCD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0xFBA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0xDCD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1225 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xE2C JUMPI PUSH2 0xE1A DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE0D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x25F6 JUMP JUMPDEST DUP1 PUSH2 0xE24 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0xDE1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE39 DUP2 PUSH2 0x25F6 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xE6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST DUP2 ISZERO PUSH2 0xF62 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xECA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEDE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF02 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFBD3A29D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF2F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF5D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x60940192810A6FB3BCE3FD3E2E3A13FD6CCC7605E963FB87EE971ABA829989BD SWAP1 PUSH1 0x20 ADD PUSH2 0xC4F JUMP JUMPDEST PUSH2 0xE39 DUP2 PUSH2 0x29E3 JUMP JUMPDEST PUSH2 0xFB0 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0xDCD PUSH1 0x0 PUSH2 0x2AC6 JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x680 JUMPI PUSH2 0x101C PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xFEC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x25F6 JUMP JUMPDEST DUP1 PUSH2 0x1026 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0xFBC JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1087 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x109B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10BF SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x430C2081 CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10EC SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1118 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x113C SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x1158 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xA27 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1184 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA7852AFA DUP4 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x11BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11E0 SWAP3 SWAP2 SWAP1 PUSH2 0x307F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x120E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP1 PUSH2 0x121D SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x115B JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x680 JUMPI PUSH2 0x1287 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1257 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x29E3 JUMP JUMPDEST DUP1 PUSH2 0x1291 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1227 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x12C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDCBC1C05240F31FF3AD067EF1EE35CE4997762752E3A095284754544F4C709D7 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP DUP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x135C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x676175676520657869737473 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x14A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1C1BDBDB081B9BDD081DDA1A5D195B1A5CDD1959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x627269626520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1571 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x676175676520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1AF469CB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x6BD1A72C SWAP1 PUSH2 0x15C0 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1612 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE24707D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP1 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP6 AND SWAP1 PUSH4 0x1C48E0FA SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x168B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x169F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16C3 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x171E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1732 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1756 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 DUP3 PUSH1 0x0 NOT PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1785 SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17D7 SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 DUP10 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE SWAP5 DUP12 AND DUP1 DUP5 MSTORE PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD DUP8 AND DUP7 OR SWAP1 SSTORE SWAP4 DUP4 MSTORE PUSH1 0x6 DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP6 AND SWAP1 SWAP4 OR SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x184E DUP2 PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP1 SWAP2 DUP5 DUP2 AND SWAP2 SWAP1 DUP5 AND SWAP1 PUSH32 0x48D3C521FD0D5541640F58C6D6381EED7CB2E8C9DF421AE165A4F4C2D221EE0D SWAP1 PUSH2 0x18D7 SWAP1 CALLER SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xE2C JUMPI PUSH2 0x1924 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1917 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x29E3 JUMP JUMPDEST DUP1 PUSH2 0x192E DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18EB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1965 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xF341246ADAAC6F497BC2A656F546AB9E182111D630394F0C57C710A59A2CB567 SWAP2 ADD PUSH2 0x1307 JUMP JUMPDEST PUSH2 0x19B0 PUSH2 0x2433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH2 0xE39 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AAF SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x430C2081 CALLER DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ADC SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B2C SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x1B6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x3737BA103A37B5B2B71037BBB732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST DUP3 DUP2 EQ PUSH2 0x1BAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x696E76616C69642077656967687473 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH2 0x8AD DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP10 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP1 SWAP4 POP DUP9 SWAP3 POP DUP8 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E4E SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1E12 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1C57 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP9 DUP4 MSTORE PUSH1 0x9 DUP3 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP1 DUP6 MSTORE SWAP2 SWAP1 SWAP3 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 ISZERO PUSH2 0x1DFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1CB3 SWAP2 AND PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1CDB SWAP1 DUP5 SWAP1 PUSH2 0x3228 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1D12 SWAP1 DUP5 SWAP1 PUSH2 0x3228 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x1DB6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP5 AND DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x278AFC8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0x9E2BF22C SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP5 PUSH2 0x1DAF SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST SWAP4 POP PUSH2 0x1DC3 JUMP JUMPDEST PUSH2 0x1DC0 DUP2 DUP6 PUSH2 0x3228 JUMP JUMPDEST SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x6B3894CE60B9BBE9D93F1A4E6FC25B6B93CD8222E73AB6348D79C596F5B51DE9 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1E0A SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1C2D JUMP JUMPDEST POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E25 SWAP2 SWAP1 PUSH2 0x3267 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0xA SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH2 0xA27 SWAP2 PUSH2 0x2B18 JUMP JUMPDEST PUSH2 0x1E57 DUP4 PUSH2 0x1C19 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ECC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EF0 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE7E242D4 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F1D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F49 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F6D SWAP2 SWAP1 PUSH2 0x2E4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x202A JUMPI PUSH1 0x0 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1FA0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SGT PUSH2 0x1FE3 JUMPI DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1FCD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1FDE SWAP1 PUSH2 0x3299 JUMP JUMPDEST PUSH2 0x200C JUMP JUMPDEST DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x2003 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD JUMPDEST PUSH2 0x2016 SWAP1 DUP6 PUSH2 0x30EB JUMP JUMPDEST SWAP4 POP DUP1 PUSH2 0x2022 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F76 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2306 JUMPI PUSH1 0x0 DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2058 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 DUP5 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 SWAP5 MSTORE KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x22F1 JUMPI PUSH1 0x0 DUP7 DUP9 DUP12 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x20BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x20CC SWAP2 SWAP1 PUSH2 0x3186 JUMP JUMPDEST PUSH2 0x20D6 SWAP2 SWAP1 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x0 DUP14 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x2135 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x766F746573203D203 PUSH1 0xBC SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST DUP1 PUSH2 0x2173 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x706F6F6C776569676874203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH2 0x217C DUP3 PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE DUP3 DUP5 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP4 MSTORE PUSH1 0x8 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x21D1 SWAP1 DUP5 SWAP1 PUSH2 0x30EB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x2208 SWAP1 DUP5 SWAP1 PUSH2 0x30EB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x228F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xF3207723 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0xF3207723 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2286 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2298 DUP2 PUSH2 0x3299 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x22A5 DUP2 DUP7 PUSH2 0x30EB JUMP JUMPDEST SWAP5 POP PUSH2 0x22B1 DUP2 DUP8 PUSH2 0x30EB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP15 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE SWAP2 SWAP8 POP CALLER SWAP2 PUSH32 0x1263A2295E53ACD6EF8F655B8AFC11FA0F2CF11925BE7AA1757D741EF32A926C SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x22FE SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x202E JUMP JUMPDEST POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x2401 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2369 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x237D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23A1 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFD4A77F1 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23CE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2413 SWAP2 SWAP1 PUSH2 0x312C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 SWAP8 DUP9 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP8 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDCD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x24DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2540 SWAP2 SWAP1 PUSH2 0x2FA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x257D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2582 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x25AC JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x25AC JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x25AC SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x25EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x2649 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x35155B01 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6A2AB602 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26CB SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST ISZERO PUSH2 0x2739 JUMPI PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x161AD706 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x2742 DUP2 PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD SWAP1 SWAP5 PUSH4 0x99BCC052 SWAP4 PUSH32 0x0 SWAP1 SWAP2 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27F3 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x280F SWAP2 SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x283B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x285F SWAP2 SWAP1 PUSH2 0x2E4E JUMP JUMPDEST DUP2 GT DUP1 ISZERO PUSH2 0x2879 JUMPI POP PUSH1 0x0 PUSH2 0x2877 PUSH3 0x93A80 DUP4 PUSH2 0x3172 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x29DA JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB66503CF PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2925 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2949 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2967 SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2981 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2995 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP3 POP CALLER SWAP2 POP PUSH32 0x4FA9693CAE526341D334E2862CA2413B2E503F1266255F9E0869FB36E6D89B17 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x8 SWAP1 SWAP2 MSTORE SWAP2 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SGT ISZERO PUSH2 0x2AA5 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xE SLOAD SWAP2 DUP3 SWAP1 SSTORE SWAP2 PUSH2 0x2A43 DUP4 DUP4 PUSH2 0x3267 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x25EE JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH2 0x2A60 DUP4 DUP8 PUSH2 0x3209 JUMP JUMPDEST PUSH2 0x2A6A SWAP2 SWAP1 PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP DUP4 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x2A97 SWAP1 DUP5 SWAP1 PUSH2 0x312C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE39 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2B32 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B5B JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B71 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2B8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BA3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2BB8 PUSH2 0x2BB3 DUP4 PUSH2 0x30C8 JUMP JUMPDEST PUSH2 0x3098 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2BD7 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BFE JUMPI DUP2 CALLDATALOAD PUSH2 0x2BEC DUP2 PUSH2 0x32F5 JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BD9 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C1B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2C2B PUSH2 0x2BB3 DUP4 PUSH2 0x30C8 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2C4A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BFE JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C69 JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x2C77 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x2B93 JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C4C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C9B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2CA6 DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CBE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2CA6 DUP2 PUSH2 0x32F5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2CDD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2CE8 DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2CF8 DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x2D08 DUP2 PUSH2 0x32F5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D24 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D39 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2D45 DUP5 DUP3 DUP6 ADD PUSH2 0x2B93 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D5F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2D75 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2D81 DUP7 DUP4 DUP8 ADD PUSH2 0x2B93 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D96 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2DA3 DUP6 DUP3 DUP7 ADD PUSH2 0x2C0B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2DC1 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2DD7 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2DE3 DUP8 DUP4 DUP9 ADD PUSH2 0x2B93 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DF8 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2E05 DUP7 DUP3 DUP8 ADD PUSH2 0x2C0B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E27 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2CA6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E47 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E5F JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E78 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2E8A DUP2 PUSH2 0x32F5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2EA9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2EBB DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2EE3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2F00 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F0C DUP10 DUP4 DUP11 ADD PUSH2 0x2B4A JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2F24 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2F31 DUP9 DUP3 DUP10 ADD PUSH2 0x2B4A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F54 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F9B JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F76 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2FC6 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x2FAC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x2FD4 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2D45 SWAP1 DUP4 ADD DUP5 PUSH2 0x2F63 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x6E6F74206761756765 PUSH1 0xB8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x3737BA1030B8383937BB32B21037BBB732B9 PUSH1 0x71 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2D45 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2F63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x30C0 JUMPI PUSH2 0x30C0 PUSH2 0x32DF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x30E1 JUMPI PUSH2 0x30E1 PUSH2 0x32DF JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 SWAP1 SUB DUP6 SGT AND ISZERO PUSH2 0x310D JUMPI PUSH2 0x310D PUSH2 0x32B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP4 SWAP1 SUB DUP5 SLT DUP2 AND ISZERO PUSH2 0x3126 JUMPI PUSH2 0x3126 PUSH2 0x32B3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x313F JUMPI PUSH2 0x313F PUSH2 0x32B3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3153 JUMPI PUSH2 0x3153 PUSH2 0x32C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ PUSH1 0x0 NOT DUP5 EQ AND ISZERO PUSH2 0x316D JUMPI PUSH2 0x316D PUSH2 0x32B3 JUMP JUMPDEST POP SDIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3181 JUMPI PUSH2 0x3181 PUSH2 0x32C9 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 DUP5 SGT DUP3 DUP5 SGT DUP1 DUP3 AND DUP7 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x31AC JUMPI PUSH2 0x31AC PUSH2 0x32B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP5 DUP8 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP10 SLT AND ISZERO PUSH2 0x31CA JUMPI PUSH2 0x31CA PUSH2 0x32B3 JUMP JUMPDEST DUP6 DUP8 SLT SWAP3 POP DUP8 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x31E5 JUMPI PUSH2 0x31E5 PUSH2 0x32B3 JUMP JUMPDEST DUP8 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x31FB JUMPI PUSH2 0x31FB PUSH2 0x32B3 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP4 MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3223 JUMPI PUSH2 0x3223 PUSH2 0x32B3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0xFF SHL DUP6 ADD DUP5 SLT AND ISZERO PUSH2 0x3246 JUMPI PUSH2 0x3246 PUSH2 0x32B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x3261 JUMPI PUSH2 0x3261 PUSH2 0x32B3 JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3279 JUMPI PUSH2 0x3279 PUSH2 0x32B3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3292 JUMPI PUSH2 0x3292 PUSH2 0x32B3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ ISZERO PUSH2 0x32AF JUMPI PUSH2 0x32AF PUSH2 0x32B3 JUMP JUMPDEST SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 SWAP4 0xA7 0x5F 0xE2 0xE8 SWAP7 PUSH26 0x22FAE5143BDB97D2EAE9296785468B5266B078BC3619D27D6473 PUSH16 0x6C634300080400330000000000000000 ","sourceMap":"897:12020:136:-:0;;;2104:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:22;1806:7;:22;936:32:4;719:10:38;936:18:4;:32::i;:::-;2225:31:136;;;;-1:-1:-1;;;;;;2225:31:136;;;2266:18;:61;;-1:-1:-1;;;;;;2266:61:136;-1:-1:-1;;;;;2266:61:136;;;;;2338:31;2357:11;2338:18;:31::i;:::-;2104:272;;;897:12020;;2433:187:4;2525:6;;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;14:177:139:-;93:13;;-1:-1:-1;;;;;135:31:139;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:388::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:2;;;374:6;366;359:22;321:2;402:40;432:9;402:40;:::i;:::-;392:50;;461:49;506:2;495:9;491:18;461:49;:::i;:::-;451:59;;529:49;574:2;563:9;559:18;529:49;:::i;:::-;519:59;;311:273;;;;;:::o;:::-;897:12020:136;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:20306:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"98:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"147:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"156:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"166:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"149:6:139"},"nodeType":"YulFunctionCall","src":"149:26:139"},"nodeType":"YulExpressionStatement","src":"149:26:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"126:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"134:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"122:3:139"},"nodeType":"YulFunctionCall","src":"122:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"141:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"118:3:139"},"nodeType":"YulFunctionCall","src":"118:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"111:6:139"},"nodeType":"YulFunctionCall","src":"111:35:139"},"nodeType":"YulIf","src":"108:2:139"},{"nodeType":"YulAssignment","src":"186:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"209:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"196:12:139"},"nodeType":"YulFunctionCall","src":"196:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"186:6:139"}]},{"body":{"nodeType":"YulBlock","src":"259:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"268:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"278:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:139"},"nodeType":"YulFunctionCall","src":"261:26:139"},"nodeType":"YulExpressionStatement","src":"261:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"231:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"239:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"228:2:139"},"nodeType":"YulFunctionCall","src":"228:30:139"},"nodeType":"YulIf","src":"225:2:139"},{"nodeType":"YulAssignment","src":"298:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"314:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"322:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"310:3:139"},"nodeType":"YulFunctionCall","src":"310:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"298:8:139"}]},{"body":{"nodeType":"YulBlock","src":"387:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"396:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"399:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"389:6:139"},"nodeType":"YulFunctionCall","src":"389:12:139"},"nodeType":"YulExpressionStatement","src":"389:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"350:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"362:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"365:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"358:3:139"},"nodeType":"YulFunctionCall","src":"358:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"346:3:139"},"nodeType":"YulFunctionCall","src":"346:27:139"},{"kind":"number","nodeType":"YulLiteral","src":"375:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"342:3:139"},"nodeType":"YulFunctionCall","src":"342:38:139"},{"name":"end","nodeType":"YulIdentifier","src":"382:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"339:2:139"},"nodeType":"YulFunctionCall","src":"339:47:139"},"nodeType":"YulIf","src":"336:2:139"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"61:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"69:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"77:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"87:6:139","type":""}],"src":"14:395:139"},{"body":{"nodeType":"YulBlock","src":"478:704:139","statements":[{"body":{"nodeType":"YulBlock","src":"527:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"536:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"543:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"529:6:139"},"nodeType":"YulFunctionCall","src":"529:20:139"},"nodeType":"YulExpressionStatement","src":"529:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"506:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"514:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:139"},"nodeType":"YulFunctionCall","src":"502:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"521:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"498:3:139"},"nodeType":"YulFunctionCall","src":"498:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"491:6:139"},"nodeType":"YulFunctionCall","src":"491:35:139"},"nodeType":"YulIf","src":"488:2:139"},{"nodeType":"YulVariableDeclaration","src":"560:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"583:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"570:12:139"},"nodeType":"YulFunctionCall","src":"570:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"564:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"599:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"609:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"603:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"622:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"689:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"649:39:139"},"nodeType":"YulFunctionCall","src":"649:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"633:15:139"},"nodeType":"YulFunctionCall","src":"633:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"626:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"702:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"715:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"706:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"734:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"739:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:139"},"nodeType":"YulFunctionCall","src":"727:15:139"},"nodeType":"YulExpressionStatement","src":"727:15:139"},{"nodeType":"YulAssignment","src":"751:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"767:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"758:3:139"},"nodeType":"YulFunctionCall","src":"758:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"751:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"779:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"794:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"802:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"790:3:139"},"nodeType":"YulFunctionCall","src":"790:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"783:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"859:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"868:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"875:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"861:6:139"},"nodeType":"YulFunctionCall","src":"861:20:139"},"nodeType":"YulExpressionStatement","src":"861:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"828:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"840:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"843:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"836:3:139"},"nodeType":"YulFunctionCall","src":"836:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"824:3:139"},"nodeType":"YulFunctionCall","src":"824:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"849:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"820:3:139"},"nodeType":"YulFunctionCall","src":"820:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"854:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"817:2:139"},"nodeType":"YulFunctionCall","src":"817:41:139"},"nodeType":"YulIf","src":"814:2:139"},{"nodeType":"YulVariableDeclaration","src":"892:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"901:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"896:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"960:193:139","statements":[{"nodeType":"YulVariableDeclaration","src":"974:30:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1000:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"987:12:139"},"nodeType":"YulFunctionCall","src":"987:17:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"978:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1042:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1017:24:139"},"nodeType":"YulFunctionCall","src":"1017:31:139"},"nodeType":"YulExpressionStatement","src":"1017:31:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1068:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"1073:5:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1061:6:139"},"nodeType":"YulFunctionCall","src":"1061:18:139"},"nodeType":"YulExpressionStatement","src":"1061:18:139"},{"nodeType":"YulAssignment","src":"1092:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1103:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1108:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1099:3:139"},"nodeType":"YulFunctionCall","src":"1099:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1092:3:139"}]},{"nodeType":"YulAssignment","src":"1124:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1135:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1140:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1131:3:139"},"nodeType":"YulFunctionCall","src":"1131:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1124:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"926:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"929:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"923:2:139"},"nodeType":"YulFunctionCall","src":"923:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"933:18:139","statements":[{"nodeType":"YulAssignment","src":"935:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"944:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"947:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"940:3:139"},"nodeType":"YulFunctionCall","src":"940:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"935:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"919:3:139","statements":[]},"src":"915:238:139"},{"nodeType":"YulAssignment","src":"1162:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1171:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1162:5:139"}]}]},"name":"abi_decode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"452:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"460:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"468:5:139","type":""}],"src":"414:768:139"},{"body":{"nodeType":"YulBlock","src":"1261:805:139","statements":[{"body":{"nodeType":"YulBlock","src":"1310:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1319:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1326:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1312:6:139"},"nodeType":"YulFunctionCall","src":"1312:20:139"},"nodeType":"YulExpressionStatement","src":"1312:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1289:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"1297:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1285:3:139"},"nodeType":"YulFunctionCall","src":"1285:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"1304:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1281:3:139"},"nodeType":"YulFunctionCall","src":"1281:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1274:6:139"},"nodeType":"YulFunctionCall","src":"1274:35:139"},"nodeType":"YulIf","src":"1271:2:139"},{"nodeType":"YulVariableDeclaration","src":"1343:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1366:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1353:12:139"},"nodeType":"YulFunctionCall","src":"1353:20:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1347:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1382:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"1392:4:139","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1386:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1405:71:139","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1472:2:139"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1432:39:139"},"nodeType":"YulFunctionCall","src":"1432:43:139"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1416:15:139"},"nodeType":"YulFunctionCall","src":"1416:60:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1409:3:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1485:16:139","value":{"name":"dst","nodeType":"YulIdentifier","src":"1498:3:139"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1489:5:139","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1517:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1522:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1510:6:139"},"nodeType":"YulFunctionCall","src":"1510:15:139"},"nodeType":"YulExpressionStatement","src":"1510:15:139"},{"nodeType":"YulAssignment","src":"1534:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1545:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1550:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1541:3:139"},"nodeType":"YulFunctionCall","src":"1541:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1534:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"1562:26:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1577:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1585:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1573:3:139"},"nodeType":"YulFunctionCall","src":"1573:15:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1566:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1642:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1651:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1658:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1644:6:139"},"nodeType":"YulFunctionCall","src":"1644:20:139"},"nodeType":"YulExpressionStatement","src":"1644:20:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1611:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1623:1:139","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1626:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1619:3:139"},"nodeType":"YulFunctionCall","src":"1619:10:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:139"},"nodeType":"YulFunctionCall","src":"1607:23:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1632:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1603:3:139"},"nodeType":"YulFunctionCall","src":"1603:32:139"},{"name":"end","nodeType":"YulIdentifier","src":"1637:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1600:2:139"},"nodeType":"YulFunctionCall","src":"1600:41:139"},"nodeType":"YulIf","src":"1597:2:139"},{"nodeType":"YulVariableDeclaration","src":"1675:14:139","value":{"name":"array","nodeType":"YulIdentifier","src":"1684:5:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1679:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1743:294:139","statements":[{"nodeType":"YulVariableDeclaration","src":"1757:36:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1789:3:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1776:12:139"},"nodeType":"YulFunctionCall","src":"1776:17:139"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"1761:11:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"1845:24:139","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1854:5:139"},{"name":"array","nodeType":"YulIdentifier","src":"1861:5:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1847:6:139"},"nodeType":"YulFunctionCall","src":"1847:20:139"},"nodeType":"YulExpressionStatement","src":"1847:20:139"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"1812:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"1825:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1809:2:139"},"nodeType":"YulFunctionCall","src":"1809:35:139"},"nodeType":"YulIf","src":"1806:2:139"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1889:3:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1931:6:139"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"1939:11:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1927:3:139"},"nodeType":"YulFunctionCall","src":"1927:24:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1953:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1923:3:139"},"nodeType":"YulFunctionCall","src":"1923:33:139"},{"name":"end","nodeType":"YulIdentifier","src":"1958:3:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"1894:28:139"},"nodeType":"YulFunctionCall","src":"1894:68:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1882:6:139"},"nodeType":"YulFunctionCall","src":"1882:81:139"},"nodeType":"YulExpressionStatement","src":"1882:81:139"},{"nodeType":"YulAssignment","src":"1976:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1987:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"1992:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1983:3:139"},"nodeType":"YulFunctionCall","src":"1983:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1976:3:139"}]},{"nodeType":"YulAssignment","src":"2008:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2019:3:139"},{"name":"_2","nodeType":"YulIdentifier","src":"2024:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:139"},"nodeType":"YulFunctionCall","src":"2015:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2008:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1709:1:139"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1706:2:139"},"nodeType":"YulFunctionCall","src":"1706:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1716:18:139","statements":[{"nodeType":"YulAssignment","src":"1718:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1727:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"1730:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1723:3:139"},"nodeType":"YulFunctionCall","src":"1723:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1718:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"1702:3:139","statements":[]},"src":"1698:339:139"},{"nodeType":"YulAssignment","src":"2046:14:139","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2055:5:139"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2046:5:139"}]}]},"name":"abi_decode_array_array_address_dyn_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1235:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"1243:3:139","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1251:5:139","type":""}],"src":"1187:879:139"},{"body":{"nodeType":"YulBlock","src":"2141:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"2187:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2196:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2204:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2189:6:139"},"nodeType":"YulFunctionCall","src":"2189:22:139"},"nodeType":"YulExpressionStatement","src":"2189:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2162:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2171:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2158:3:139"},"nodeType":"YulFunctionCall","src":"2158:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2183:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2154:3:139"},"nodeType":"YulFunctionCall","src":"2154:32:139"},"nodeType":"YulIf","src":"2151:2:139"},{"nodeType":"YulVariableDeclaration","src":"2222:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2248:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2235:12:139"},"nodeType":"YulFunctionCall","src":"2235:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2226:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2292:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2267:24:139"},"nodeType":"YulFunctionCall","src":"2267:31:139"},"nodeType":"YulExpressionStatement","src":"2267:31:139"},{"nodeType":"YulAssignment","src":"2307:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2317:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2307:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2107:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2118:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2130:6:139","type":""}],"src":"2071:257:139"},{"body":{"nodeType":"YulBlock","src":"2414:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"2460:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2469:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2477:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2462:6:139"},"nodeType":"YulFunctionCall","src":"2462:22:139"},"nodeType":"YulExpressionStatement","src":"2462:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2435:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2444:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2431:3:139"},"nodeType":"YulFunctionCall","src":"2431:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2456:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2427:3:139"},"nodeType":"YulFunctionCall","src":"2427:32:139"},"nodeType":"YulIf","src":"2424:2:139"},{"nodeType":"YulVariableDeclaration","src":"2495:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2514:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2508:5:139"},"nodeType":"YulFunctionCall","src":"2508:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2499:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2558:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2533:24:139"},"nodeType":"YulFunctionCall","src":"2533:31:139"},"nodeType":"YulExpressionStatement","src":"2533:31:139"},{"nodeType":"YulAssignment","src":"2573:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2583:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2573:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2380:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2391:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2403:6:139","type":""}],"src":"2333:261:139"},{"body":{"nodeType":"YulBlock","src":"2703:435:139","statements":[{"body":{"nodeType":"YulBlock","src":"2749:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2758:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"2766:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2751:6:139"},"nodeType":"YulFunctionCall","src":"2751:22:139"},"nodeType":"YulExpressionStatement","src":"2751:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2724:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2733:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2720:3:139"},"nodeType":"YulFunctionCall","src":"2720:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2745:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2716:3:139"},"nodeType":"YulFunctionCall","src":"2716:32:139"},"nodeType":"YulIf","src":"2713:2:139"},{"nodeType":"YulVariableDeclaration","src":"2784:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2810:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2797:12:139"},"nodeType":"YulFunctionCall","src":"2797:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2788:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2854:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2829:24:139"},"nodeType":"YulFunctionCall","src":"2829:31:139"},"nodeType":"YulExpressionStatement","src":"2829:31:139"},{"nodeType":"YulAssignment","src":"2869:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2879:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2869:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2893:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2925:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2936:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2921:3:139"},"nodeType":"YulFunctionCall","src":"2921:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2908:12:139"},"nodeType":"YulFunctionCall","src":"2908:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2897:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2974:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2949:24:139"},"nodeType":"YulFunctionCall","src":"2949:33:139"},"nodeType":"YulExpressionStatement","src":"2949:33:139"},{"nodeType":"YulAssignment","src":"2991:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"3001:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2991:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3017:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3049:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"3060:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3045:3:139"},"nodeType":"YulFunctionCall","src":"3045:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3032:12:139"},"nodeType":"YulFunctionCall","src":"3032:32:139"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"3021:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"3098:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3073:24:139"},"nodeType":"YulFunctionCall","src":"3073:33:139"},"nodeType":"YulExpressionStatement","src":"3073:33:139"},{"nodeType":"YulAssignment","src":"3115:17:139","value":{"name":"value_2","nodeType":"YulIdentifier","src":"3125:7:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3115:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2653:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2664:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2676:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2684:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2692:6:139","type":""}],"src":"2599:539:139"},{"body":{"nodeType":"YulBlock","src":"3238:273:139","statements":[{"body":{"nodeType":"YulBlock","src":"3284:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3293:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3301:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3286:6:139"},"nodeType":"YulFunctionCall","src":"3286:22:139"},"nodeType":"YulExpressionStatement","src":"3286:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3259:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3268:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3255:3:139"},"nodeType":"YulFunctionCall","src":"3255:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3280:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3251:3:139"},"nodeType":"YulFunctionCall","src":"3251:32:139"},"nodeType":"YulIf","src":"3248:2:139"},{"nodeType":"YulVariableDeclaration","src":"3319:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3346:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3333:12:139"},"nodeType":"YulFunctionCall","src":"3333:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3323:6:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3399:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3408:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3416:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3401:6:139"},"nodeType":"YulFunctionCall","src":"3401:22:139"},"nodeType":"YulExpressionStatement","src":"3401:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3371:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"3379:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3368:2:139"},"nodeType":"YulFunctionCall","src":"3368:30:139"},"nodeType":"YulIf","src":"3365:2:139"},{"nodeType":"YulAssignment","src":"3434:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3477:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3488:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3473:3:139"},"nodeType":"YulFunctionCall","src":"3473:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3497:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"3444:28:139"},"nodeType":"YulFunctionCall","src":"3444:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3434:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3204:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3215:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3227:6:139","type":""}],"src":"3143:368:139"},{"body":{"nodeType":"YulBlock","src":"3678:498:139","statements":[{"body":{"nodeType":"YulBlock","src":"3724:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3733:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3741:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3726:6:139"},"nodeType":"YulFunctionCall","src":"3726:22:139"},"nodeType":"YulExpressionStatement","src":"3726:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3699:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3708:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3695:3:139"},"nodeType":"YulFunctionCall","src":"3695:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"3720:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3691:3:139"},"nodeType":"YulFunctionCall","src":"3691:32:139"},"nodeType":"YulIf","src":"3688:2:139"},{"nodeType":"YulVariableDeclaration","src":"3759:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3786:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3773:12:139"},"nodeType":"YulFunctionCall","src":"3773:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3763:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3805:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3815:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3809:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3860:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3869:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3877:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3862:6:139"},"nodeType":"YulFunctionCall","src":"3862:22:139"},"nodeType":"YulExpressionStatement","src":"3862:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3848:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3856:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3845:2:139"},"nodeType":"YulFunctionCall","src":"3845:14:139"},"nodeType":"YulIf","src":"3842:2:139"},{"nodeType":"YulAssignment","src":"3895:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3938:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3949:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3934:3:139"},"nodeType":"YulFunctionCall","src":"3934:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3958:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"3905:28:139"},"nodeType":"YulFunctionCall","src":"3905:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3895:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"3975:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4008:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4019:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4004:3:139"},"nodeType":"YulFunctionCall","src":"4004:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3991:12:139"},"nodeType":"YulFunctionCall","src":"3991:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3979:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4052:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4061:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4069:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4054:6:139"},"nodeType":"YulFunctionCall","src":"4054:22:139"},"nodeType":"YulExpressionStatement","src":"4054:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4038:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4048:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4035:2:139"},"nodeType":"YulFunctionCall","src":"4035:16:139"},"nodeType":"YulIf","src":"4032:2:139"},{"nodeType":"YulAssignment","src":"4087:83:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4140:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4151:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4136:3:139"},"nodeType":"YulFunctionCall","src":"4136:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4162:7:139"}],"functionName":{"name":"abi_decode_array_array_address_dyn_dyn","nodeType":"YulIdentifier","src":"4097:38:139"},"nodeType":"YulFunctionCall","src":"4097:73:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4087:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3636:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3647:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3659:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3667:6:139","type":""}],"src":"3516:660:139"},{"body":{"nodeType":"YulBlock","src":"4360:549:139","statements":[{"body":{"nodeType":"YulBlock","src":"4406:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4415:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4423:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4408:6:139"},"nodeType":"YulFunctionCall","src":"4408:22:139"},"nodeType":"YulExpressionStatement","src":"4408:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4381:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4390:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4377:3:139"},"nodeType":"YulFunctionCall","src":"4377:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4402:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4373:3:139"},"nodeType":"YulFunctionCall","src":"4373:32:139"},"nodeType":"YulIf","src":"4370:2:139"},{"nodeType":"YulVariableDeclaration","src":"4441:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4468:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4455:12:139"},"nodeType":"YulFunctionCall","src":"4455:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4445:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4487:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"4497:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4491:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4542:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4551:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4559:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4544:6:139"},"nodeType":"YulFunctionCall","src":"4544:22:139"},"nodeType":"YulExpressionStatement","src":"4544:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4530:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4538:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4527:2:139"},"nodeType":"YulFunctionCall","src":"4527:14:139"},"nodeType":"YulIf","src":"4524:2:139"},{"nodeType":"YulAssignment","src":"4577:71:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4620:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"4631:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4616:3:139"},"nodeType":"YulFunctionCall","src":"4616:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4640:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"4587:28:139"},"nodeType":"YulFunctionCall","src":"4587:61:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4577:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"4657:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4690:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4701:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4686:3:139"},"nodeType":"YulFunctionCall","src":"4686:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4673:12:139"},"nodeType":"YulFunctionCall","src":"4673:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4661:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4734:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4743:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"4751:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4736:6:139"},"nodeType":"YulFunctionCall","src":"4736:22:139"},"nodeType":"YulExpressionStatement","src":"4736:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4720:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4730:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4717:2:139"},"nodeType":"YulFunctionCall","src":"4717:16:139"},"nodeType":"YulIf","src":"4714:2:139"},{"nodeType":"YulAssignment","src":"4769:83:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4822:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4833:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4818:3:139"},"nodeType":"YulFunctionCall","src":"4818:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4844:7:139"}],"functionName":{"name":"abi_decode_array_array_address_dyn_dyn","nodeType":"YulIdentifier","src":"4779:38:139"},"nodeType":"YulFunctionCall","src":"4779:73:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4769:6:139"}]},{"nodeType":"YulAssignment","src":"4861:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4888:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"4899:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4884:3:139"},"nodeType":"YulFunctionCall","src":"4884:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4871:12:139"},"nodeType":"YulFunctionCall","src":"4871:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4861:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4310:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4321:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4333:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4341:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4349:6:139","type":""}],"src":"4181:728:139"},{"body":{"nodeType":"YulBlock","src":"4992:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"5038:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5047:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5055:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5040:6:139"},"nodeType":"YulFunctionCall","src":"5040:22:139"},"nodeType":"YulExpressionStatement","src":"5040:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5013:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5009:3:139"},"nodeType":"YulFunctionCall","src":"5009:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5034:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5005:3:139"},"nodeType":"YulFunctionCall","src":"5005:32:139"},"nodeType":"YulIf","src":"5002:2:139"},{"nodeType":"YulVariableDeclaration","src":"5073:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5092:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5086:5:139"},"nodeType":"YulFunctionCall","src":"5086:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5077:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"5155:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5164:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5172:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5157:6:139"},"nodeType":"YulFunctionCall","src":"5157:22:139"},"nodeType":"YulExpressionStatement","src":"5157:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5124:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5145:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5138:6:139"},"nodeType":"YulFunctionCall","src":"5138:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5131:6:139"},"nodeType":"YulFunctionCall","src":"5131:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5121:2:139"},"nodeType":"YulFunctionCall","src":"5121:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5114:6:139"},"nodeType":"YulFunctionCall","src":"5114:40:139"},"nodeType":"YulIf","src":"5111:2:139"},{"nodeType":"YulAssignment","src":"5190:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5200:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5190:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4958:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4969:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4981:6:139","type":""}],"src":"4914:297:139"},{"body":{"nodeType":"YulBlock","src":"5286:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"5332:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5341:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5349:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5334:6:139"},"nodeType":"YulFunctionCall","src":"5334:22:139"},"nodeType":"YulExpressionStatement","src":"5334:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5307:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5316:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5303:3:139"},"nodeType":"YulFunctionCall","src":"5303:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5328:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5299:3:139"},"nodeType":"YulFunctionCall","src":"5299:32:139"},"nodeType":"YulIf","src":"5296:2:139"},{"nodeType":"YulAssignment","src":"5367:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5390:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5377:12:139"},"nodeType":"YulFunctionCall","src":"5377:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5367:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5252:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5263:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5275:6:139","type":""}],"src":"5216:190:139"},{"body":{"nodeType":"YulBlock","src":"5492:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"5538:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5547:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5555:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5540:6:139"},"nodeType":"YulFunctionCall","src":"5540:22:139"},"nodeType":"YulExpressionStatement","src":"5540:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5513:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5522:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5509:3:139"},"nodeType":"YulFunctionCall","src":"5509:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5534:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5505:3:139"},"nodeType":"YulFunctionCall","src":"5505:32:139"},"nodeType":"YulIf","src":"5502:2:139"},{"nodeType":"YulAssignment","src":"5573:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5589:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5583:5:139"},"nodeType":"YulFunctionCall","src":"5583:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5573:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5458:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5469:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5481:6:139","type":""}],"src":"5411:194:139"},{"body":{"nodeType":"YulBlock","src":"5697:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"5743:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5752:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5760:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5745:6:139"},"nodeType":"YulFunctionCall","src":"5745:22:139"},"nodeType":"YulExpressionStatement","src":"5745:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5718:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5727:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5714:3:139"},"nodeType":"YulFunctionCall","src":"5714:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5739:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5710:3:139"},"nodeType":"YulFunctionCall","src":"5710:32:139"},"nodeType":"YulIf","src":"5707:2:139"},{"nodeType":"YulAssignment","src":"5778:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5801:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5788:12:139"},"nodeType":"YulFunctionCall","src":"5788:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5778:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"5820:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5850:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5861:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5846:3:139"},"nodeType":"YulFunctionCall","src":"5846:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5833:12:139"},"nodeType":"YulFunctionCall","src":"5833:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5824:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5899:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5874:24:139"},"nodeType":"YulFunctionCall","src":"5874:31:139"},"nodeType":"YulExpressionStatement","src":"5874:31:139"},{"nodeType":"YulAssignment","src":"5914:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"5924:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5914:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5655:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5666:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5678:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5686:6:139","type":""}],"src":"5610:325:139"},{"body":{"nodeType":"YulBlock","src":"6044:289:139","statements":[{"body":{"nodeType":"YulBlock","src":"6090:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6099:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6107:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6092:6:139"},"nodeType":"YulFunctionCall","src":"6092:22:139"},"nodeType":"YulExpressionStatement","src":"6092:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6065:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6074:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6061:3:139"},"nodeType":"YulFunctionCall","src":"6061:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6086:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6057:3:139"},"nodeType":"YulFunctionCall","src":"6057:32:139"},"nodeType":"YulIf","src":"6054:2:139"},{"nodeType":"YulAssignment","src":"6125:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6148:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6135:12:139"},"nodeType":"YulFunctionCall","src":"6135:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6125:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6167:45:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6197:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6208:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6193:3:139"},"nodeType":"YulFunctionCall","src":"6193:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6180:12:139"},"nodeType":"YulFunctionCall","src":"6180:32:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6171:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6246:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6221:24:139"},"nodeType":"YulFunctionCall","src":"6221:31:139"},"nodeType":"YulExpressionStatement","src":"6221:31:139"},{"nodeType":"YulAssignment","src":"6261:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"6271:5:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6261:6:139"}]},{"nodeType":"YulAssignment","src":"6285:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6312:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6323:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6308:3:139"},"nodeType":"YulFunctionCall","src":"6308:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6295:12:139"},"nodeType":"YulFunctionCall","src":"6295:32:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6285:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5994:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6005:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6017:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6025:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6033:6:139","type":""}],"src":"5940:393:139"},{"body":{"nodeType":"YulBlock","src":"6511:697:139","statements":[{"body":{"nodeType":"YulBlock","src":"6557:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6566:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"6574:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6559:6:139"},"nodeType":"YulFunctionCall","src":"6559:22:139"},"nodeType":"YulExpressionStatement","src":"6559:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6532:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"6541:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6528:3:139"},"nodeType":"YulFunctionCall","src":"6528:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6524:3:139"},"nodeType":"YulFunctionCall","src":"6524:32:139"},"nodeType":"YulIf","src":"6521:2:139"},{"nodeType":"YulAssignment","src":"6592:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6615:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6602:12:139"},"nodeType":"YulFunctionCall","src":"6602:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6592:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6634:46:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6665:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6676:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6661:3:139"},"nodeType":"YulFunctionCall","src":"6661:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6648:12:139"},"nodeType":"YulFunctionCall","src":"6648:32:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6638:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6689:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"6699:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6693:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"6744:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6753:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"6761:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6746:6:139"},"nodeType":"YulFunctionCall","src":"6746:22:139"},"nodeType":"YulExpressionStatement","src":"6746:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6732:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"6740:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6729:2:139"},"nodeType":"YulFunctionCall","src":"6729:14:139"},"nodeType":"YulIf","src":"6726:2:139"},{"nodeType":"YulVariableDeclaration","src":"6779:96:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6847:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"6858:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6843:3:139"},"nodeType":"YulFunctionCall","src":"6843:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6867:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6805:37:139"},"nodeType":"YulFunctionCall","src":"6805:70:139"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"6783:8:139","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"6793:8:139","type":""}]},{"nodeType":"YulAssignment","src":"6884:18:139","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6894:8:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6884:6:139"}]},{"nodeType":"YulAssignment","src":"6911:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6921:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6911:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"6938:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6971:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6982:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6967:3:139"},"nodeType":"YulFunctionCall","src":"6967:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6954:12:139"},"nodeType":"YulFunctionCall","src":"6954:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6942:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7015:26:139","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"7024:6:139"},{"name":"value4","nodeType":"YulIdentifier","src":"7032:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7017:6:139"},"nodeType":"YulFunctionCall","src":"7017:22:139"},"nodeType":"YulExpressionStatement","src":"7017:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7001:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7011:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6998:2:139"},"nodeType":"YulFunctionCall","src":"6998:16:139"},"nodeType":"YulIf","src":"6995:2:139"},{"nodeType":"YulVariableDeclaration","src":"7050:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7118:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7129:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7114:3:139"},"nodeType":"YulFunctionCall","src":"7114:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7140:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7076:37:139"},"nodeType":"YulFunctionCall","src":"7076:72:139"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"7054:8:139","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"7064:8:139","type":""}]},{"nodeType":"YulAssignment","src":"7157:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7167:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7157:6:139"}]},{"nodeType":"YulAssignment","src":"7184:18:139","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"7194:8:139"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7184:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptrt_array$_t_int256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6445:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6456:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6468:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6476:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6484:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6492:6:139","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6500:6:139","type":""}],"src":"6338:870:139"},{"body":{"nodeType":"YulBlock","src":"7300:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"7346:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7355:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"7363:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7348:6:139"},"nodeType":"YulFunctionCall","src":"7348:22:139"},"nodeType":"YulExpressionStatement","src":"7348:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7321:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"7330:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7317:3:139"},"nodeType":"YulFunctionCall","src":"7317:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"7342:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7313:3:139"},"nodeType":"YulFunctionCall","src":"7313:32:139"},"nodeType":"YulIf","src":"7310:2:139"},{"nodeType":"YulAssignment","src":"7381:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7404:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7391:12:139"},"nodeType":"YulFunctionCall","src":"7391:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7381:6:139"}]},{"nodeType":"YulAssignment","src":"7423:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7450:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7461:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7446:3:139"},"nodeType":"YulFunctionCall","src":"7446:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7433:12:139"},"nodeType":"YulFunctionCall","src":"7433:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7423:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7258:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7269:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7281:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7289:6:139","type":""}],"src":"7213:258:139"},{"body":{"nodeType":"YulBlock","src":"7537:402:139","statements":[{"nodeType":"YulVariableDeclaration","src":"7547:26:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7567:5:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7561:5:139"},"nodeType":"YulFunctionCall","src":"7561:12:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7551:6:139","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7589:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"7594:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7582:6:139"},"nodeType":"YulFunctionCall","src":"7582:19:139"},"nodeType":"YulExpressionStatement","src":"7582:19:139"},{"nodeType":"YulVariableDeclaration","src":"7610:14:139","value":{"kind":"number","nodeType":"YulLiteral","src":"7620:4:139","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7614:2:139","type":""}]},{"nodeType":"YulAssignment","src":"7633:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7644:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7649:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:139"},"nodeType":"YulFunctionCall","src":"7640:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7633:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"7661:28:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7679:5:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7686:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7675:3:139"},"nodeType":"YulFunctionCall","src":"7675:14:139"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"7665:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7698:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"7707:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7702:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"7768:146:139","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7789:3:139"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7804:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7798:5:139"},"nodeType":"YulFunctionCall","src":"7798:13:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7821:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7826:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7817:3:139"},"nodeType":"YulFunctionCall","src":"7817:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"7830:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7813:3:139"},"nodeType":"YulFunctionCall","src":"7813:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7794:3:139"},"nodeType":"YulFunctionCall","src":"7794:39:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7782:6:139"},"nodeType":"YulFunctionCall","src":"7782:52:139"},"nodeType":"YulExpressionStatement","src":"7782:52:139"},{"nodeType":"YulAssignment","src":"7847:19:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7858:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7863:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7854:3:139"},"nodeType":"YulFunctionCall","src":"7854:12:139"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7847:3:139"}]},{"nodeType":"YulAssignment","src":"7879:25:139","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7893:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"7901:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7889:3:139"},"nodeType":"YulFunctionCall","src":"7889:15:139"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7879:6:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7730:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"7733:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7727:2:139"},"nodeType":"YulFunctionCall","src":"7727:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7741:18:139","statements":[{"nodeType":"YulAssignment","src":"7743:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7752:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"7755:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7748:3:139"},"nodeType":"YulFunctionCall","src":"7748:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7743:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"7723:3:139","statements":[]},"src":"7719:195:139"},{"nodeType":"YulAssignment","src":"7923:10:139","value":{"name":"pos","nodeType":"YulIdentifier","src":"7930:3:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7923:3:139"}]}]},"name":"abi_encode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7514:5:139","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7521:3:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7529:3:139","type":""}],"src":"7476:463:139"},{"body":{"nodeType":"YulBlock","src":"8081:293:139","statements":[{"nodeType":"YulVariableDeclaration","src":"8091:27:139","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8111:6:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8105:5:139"},"nodeType":"YulFunctionCall","src":"8105:13:139"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8095:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8127:12:139","value":{"name":"end","nodeType":"YulIdentifier","src":"8136:3:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"8131:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"8200:77:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8225:3:139"},{"name":"i","nodeType":"YulIdentifier","src":"8230:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8221:3:139"},"nodeType":"YulFunctionCall","src":"8221:11:139"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8248:6:139"},{"name":"i","nodeType":"YulIdentifier","src":"8256:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8244:3:139"},"nodeType":"YulFunctionCall","src":"8244:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"8260:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8240:3:139"},"nodeType":"YulFunctionCall","src":"8240:25:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8234:5:139"},"nodeType":"YulFunctionCall","src":"8234:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8214:6:139"},"nodeType":"YulFunctionCall","src":"8214:53:139"},"nodeType":"YulExpressionStatement","src":"8214:53:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8159:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"8162:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8156:2:139"},"nodeType":"YulFunctionCall","src":"8156:13:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8170:21:139","statements":[{"nodeType":"YulAssignment","src":"8172:17:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8181:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"8184:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8177:3:139"},"nodeType":"YulFunctionCall","src":"8177:12:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"8172:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"8152:3:139","statements":[]},"src":"8148:129:139"},{"body":{"nodeType":"YulBlock","src":"8303:33:139","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8316:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"8321:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8312:3:139"},"nodeType":"YulFunctionCall","src":"8312:16:139"},{"name":"end","nodeType":"YulIdentifier","src":"8330:3:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8305:6:139"},"nodeType":"YulFunctionCall","src":"8305:29:139"},"nodeType":"YulExpressionStatement","src":"8305:29:139"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8292:1:139"},{"name":"length","nodeType":"YulIdentifier","src":"8295:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8289:2:139"},"nodeType":"YulFunctionCall","src":"8289:13:139"},"nodeType":"YulIf","src":"8286:2:139"},{"nodeType":"YulAssignment","src":"8345:23:139","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8356:3:139"},{"name":"length","nodeType":"YulIdentifier","src":"8361:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8352:3:139"},"nodeType":"YulFunctionCall","src":"8352:16:139"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8345:3:139"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"8057:3:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8062:6:139","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8073:3:139","type":""}],"src":"7944:430:139"},{"body":{"nodeType":"YulBlock","src":"8480:102:139","statements":[{"nodeType":"YulAssignment","src":"8490:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8502:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8513:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8498:3:139"},"nodeType":"YulFunctionCall","src":"8498:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8490:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8532:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8547:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8563:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8568:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8559:3:139"},"nodeType":"YulFunctionCall","src":"8559:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"8572:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8555:3:139"},"nodeType":"YulFunctionCall","src":"8555:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8543:3:139"},"nodeType":"YulFunctionCall","src":"8543:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8525:6:139"},"nodeType":"YulFunctionCall","src":"8525:51:139"},"nodeType":"YulExpressionStatement","src":"8525:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8449:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8460:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8471:4:139","type":""}],"src":"8379:203:139"},{"body":{"nodeType":"YulBlock","src":"8744:227:139","statements":[{"nodeType":"YulAssignment","src":"8754:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8766:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8777:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8762:3:139"},"nodeType":"YulFunctionCall","src":"8762:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8754:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"8789:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8807:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8812:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8803:3:139"},"nodeType":"YulFunctionCall","src":"8803:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"8816:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8799:3:139"},"nodeType":"YulFunctionCall","src":"8799:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8793:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8834:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8849:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8857:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8845:3:139"},"nodeType":"YulFunctionCall","src":"8845:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8827:6:139"},"nodeType":"YulFunctionCall","src":"8827:34:139"},"nodeType":"YulExpressionStatement","src":"8827:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8881:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8892:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8877:3:139"},"nodeType":"YulFunctionCall","src":"8877:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8901:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8909:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8897:3:139"},"nodeType":"YulFunctionCall","src":"8897:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8870:6:139"},"nodeType":"YulFunctionCall","src":"8870:43:139"},"nodeType":"YulExpressionStatement","src":"8870:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8933:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8944:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8929:3:139"},"nodeType":"YulFunctionCall","src":"8929:18:139"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8953:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"8961:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8949:3:139"},"nodeType":"YulFunctionCall","src":"8949:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8922:6:139"},"nodeType":"YulFunctionCall","src":"8922:43:139"},"nodeType":"YulExpressionStatement","src":"8922:43:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8697:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8708:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8716:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8724:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8735:4:139","type":""}],"src":"8587:384:139"},{"body":{"nodeType":"YulBlock","src":"9133:218:139","statements":[{"nodeType":"YulAssignment","src":"9143:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9155:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9166:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9151:3:139"},"nodeType":"YulFunctionCall","src":"9151:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9143:4:139"}]},{"nodeType":"YulVariableDeclaration","src":"9178:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9196:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9201:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9192:3:139"},"nodeType":"YulFunctionCall","src":"9192:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"9205:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9188:3:139"},"nodeType":"YulFunctionCall","src":"9188:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9182:2:139","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9223:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9238:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9246:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9234:3:139"},"nodeType":"YulFunctionCall","src":"9234:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9216:6:139"},"nodeType":"YulFunctionCall","src":"9216:34:139"},"nodeType":"YulExpressionStatement","src":"9216:34:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9270:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9281:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9266:3:139"},"nodeType":"YulFunctionCall","src":"9266:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9290:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"9298:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9286:3:139"},"nodeType":"YulFunctionCall","src":"9286:15:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9259:6:139"},"nodeType":"YulFunctionCall","src":"9259:43:139"},"nodeType":"YulExpressionStatement","src":"9259:43:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9322:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9333:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9318:3:139"},"nodeType":"YulFunctionCall","src":"9318:18:139"},{"name":"value2","nodeType":"YulIdentifier","src":"9338:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9311:6:139"},"nodeType":"YulFunctionCall","src":"9311:34:139"},"nodeType":"YulExpressionStatement","src":"9311:34:139"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9086:9:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9097:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9105:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9113:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9124:4:139","type":""}],"src":"8976:375:139"},{"body":{"nodeType":"YulBlock","src":"9535:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9552:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9567:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9583:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9588:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9579:3:139"},"nodeType":"YulFunctionCall","src":"9579:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"9592:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9575:3:139"},"nodeType":"YulFunctionCall","src":"9575:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9563:3:139"},"nodeType":"YulFunctionCall","src":"9563:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9545:6:139"},"nodeType":"YulFunctionCall","src":"9545:51:139"},"nodeType":"YulExpressionStatement","src":"9545:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9616:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9627:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9612:3:139"},"nodeType":"YulFunctionCall","src":"9612:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9632:2:139","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9605:6:139"},"nodeType":"YulFunctionCall","src":"9605:30:139"},"nodeType":"YulExpressionStatement","src":"9605:30:139"},{"nodeType":"YulAssignment","src":"9644:64:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9681:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9693:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9704:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9689:3:139"},"nodeType":"YulFunctionCall","src":"9689:18:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"9652:28:139"},"nodeType":"YulFunctionCall","src":"9652:56:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9644:4:139"}]}]},"name":"abi_encode_tuple_t_address_t_array$_t_address_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9496:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9507:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9515:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9526:4:139","type":""}],"src":"9356:358:139"},{"body":{"nodeType":"YulBlock","src":"9848:145:139","statements":[{"nodeType":"YulAssignment","src":"9858:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9870:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9881:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9866:3:139"},"nodeType":"YulFunctionCall","src":"9866:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9858:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9900:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9915:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9931:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9936:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9927:3:139"},"nodeType":"YulFunctionCall","src":"9927:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"9940:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9923:3:139"},"nodeType":"YulFunctionCall","src":"9923:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9911:3:139"},"nodeType":"YulFunctionCall","src":"9911:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9893:6:139"},"nodeType":"YulFunctionCall","src":"9893:51:139"},"nodeType":"YulExpressionStatement","src":"9893:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9964:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9975:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9960:3:139"},"nodeType":"YulFunctionCall","src":"9960:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"9980:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9953:6:139"},"nodeType":"YulFunctionCall","src":"9953:34:139"},"nodeType":"YulExpressionStatement","src":"9953:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9809:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9820:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9828:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9839:4:139","type":""}],"src":"9719:274:139"},{"body":{"nodeType":"YulBlock","src":"10093:92:139","statements":[{"nodeType":"YulAssignment","src":"10103:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10115:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10126:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10111:3:139"},"nodeType":"YulFunctionCall","src":"10111:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10103:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10145:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10170:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10163:6:139"},"nodeType":"YulFunctionCall","src":"10163:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10156:6:139"},"nodeType":"YulFunctionCall","src":"10156:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10138:6:139"},"nodeType":"YulFunctionCall","src":"10138:41:139"},"nodeType":"YulExpressionStatement","src":"10138:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10062:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10073:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10084:4:139","type":""}],"src":"9998:187:139"},{"body":{"nodeType":"YulBlock","src":"10320:102:139","statements":[{"nodeType":"YulAssignment","src":"10330:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10342:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10353:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10338:3:139"},"nodeType":"YulFunctionCall","src":"10338:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10330:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10372:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10387:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10403:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10408:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10399:3:139"},"nodeType":"YulFunctionCall","src":"10399:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10412:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10395:3:139"},"nodeType":"YulFunctionCall","src":"10395:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10383:3:139"},"nodeType":"YulFunctionCall","src":"10383:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10365:6:139"},"nodeType":"YulFunctionCall","src":"10365:51:139"},"nodeType":"YulExpressionStatement","src":"10365:51:139"}]},"name":"abi_encode_tuple_t_contract$_IEmissionController_$33981__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10289:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10300:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10311:4:139","type":""}],"src":"10190:232:139"},{"body":{"nodeType":"YulBlock","src":"10547:102:139","statements":[{"nodeType":"YulAssignment","src":"10557:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10569:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10580:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10565:3:139"},"nodeType":"YulFunctionCall","src":"10565:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10557:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10599:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10614:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10630:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10635:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10626:3:139"},"nodeType":"YulFunctionCall","src":"10626:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"10639:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10622:3:139"},"nodeType":"YulFunctionCall","src":"10622:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10610:3:139"},"nodeType":"YulFunctionCall","src":"10610:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10592:6:139"},"nodeType":"YulFunctionCall","src":"10592:51:139"},"nodeType":"YulExpressionStatement","src":"10592:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10516:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10527:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10538:4:139","type":""}],"src":"10427:222:139"},{"body":{"nodeType":"YulBlock","src":"10753:76:139","statements":[{"nodeType":"YulAssignment","src":"10763:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10775:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10786:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10771:3:139"},"nodeType":"YulFunctionCall","src":"10771:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10763:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10805:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"10816:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10798:6:139"},"nodeType":"YulFunctionCall","src":"10798:25:139"},"nodeType":"YulExpressionStatement","src":"10798:25:139"}]},"name":"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10722:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10733:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10744:4:139","type":""}],"src":"10654:175:139"},{"body":{"nodeType":"YulBlock","src":"11008:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11025:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11036:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11018:6:139"},"nodeType":"YulFunctionCall","src":"11018:21:139"},"nodeType":"YulExpressionStatement","src":"11018:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11059:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11070:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11055:3:139"},"nodeType":"YulFunctionCall","src":"11055:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11075:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11048:6:139"},"nodeType":"YulFunctionCall","src":"11048:30:139"},"nodeType":"YulExpressionStatement","src":"11048:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11098:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11109:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11094:3:139"},"nodeType":"YulFunctionCall","src":"11094:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11114:16:139","type":"","value":"poolweight = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11087:6:139"},"nodeType":"YulFunctionCall","src":"11087:44:139"},"nodeType":"YulExpressionStatement","src":"11087:44:139"},{"nodeType":"YulAssignment","src":"11140:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11152:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11163:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11148:3:139"},"nodeType":"YulFunctionCall","src":"11148:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11140:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10985:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10999:4:139","type":""}],"src":"10834:338:139"},{"body":{"nodeType":"YulBlock","src":"11351:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11368:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11379:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11361:6:139"},"nodeType":"YulFunctionCall","src":"11361:21:139"},"nodeType":"YulExpressionStatement","src":"11361:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11402:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11413:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11398:3:139"},"nodeType":"YulFunctionCall","src":"11398:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11418:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11391:6:139"},"nodeType":"YulFunctionCall","src":"11391:29:139"},"nodeType":"YulExpressionStatement","src":"11391:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11440:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11451:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11436:3:139"},"nodeType":"YulFunctionCall","src":"11436:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11456:11:139","type":"","value":"not gauge"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11429:6:139"},"nodeType":"YulFunctionCall","src":"11429:39:139"},"nodeType":"YulExpressionStatement","src":"11429:39:139"},{"nodeType":"YulAssignment","src":"11477:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11489:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11500:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11485:3:139"},"nodeType":"YulFunctionCall","src":"11485:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11477:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11328:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11342:4:139","type":""}],"src":"11177:332:139"},{"body":{"nodeType":"YulBlock","src":"11688:170:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11705:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11716:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11698:6:139"},"nodeType":"YulFunctionCall","src":"11698:21:139"},"nodeType":"YulExpressionStatement","src":"11698:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11739:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11750:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11735:3:139"},"nodeType":"YulFunctionCall","src":"11735:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11755:2:139","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11728:6:139"},"nodeType":"YulFunctionCall","src":"11728:30:139"},"nodeType":"YulExpressionStatement","src":"11728:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11778:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11789:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11774:3:139"},"nodeType":"YulFunctionCall","src":"11774:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11794:22:139","type":"","value":"pool not whitelisted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11767:6:139"},"nodeType":"YulFunctionCall","src":"11767:50:139"},"nodeType":"YulExpressionStatement","src":"11767:50:139"},{"nodeType":"YulAssignment","src":"11826:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11838:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11849:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11834:3:139"},"nodeType":"YulFunctionCall","src":"11834:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11826:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11665:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11679:4:139","type":""}],"src":"11514:344:139"},{"body":{"nodeType":"YulBlock","src":"12037:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12054:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12065:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12047:6:139"},"nodeType":"YulFunctionCall","src":"12047:21:139"},"nodeType":"YulExpressionStatement","src":"12047:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12088:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12099:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12084:3:139"},"nodeType":"YulFunctionCall","src":"12084:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12104:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12077:6:139"},"nodeType":"YulFunctionCall","src":"12077:30:139"},"nodeType":"YulExpressionStatement","src":"12077:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12127:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12138:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12123:3:139"},"nodeType":"YulFunctionCall","src":"12123:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12143:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12116:6:139"},"nodeType":"YulFunctionCall","src":"12116:62:139"},"nodeType":"YulExpressionStatement","src":"12116:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12198:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12209:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12194:3:139"},"nodeType":"YulFunctionCall","src":"12194:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12214:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12187:6:139"},"nodeType":"YulFunctionCall","src":"12187:36:139"},"nodeType":"YulExpressionStatement","src":"12187:36:139"},{"nodeType":"YulAssignment","src":"12232:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12244:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12255:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12240:3:139"},"nodeType":"YulFunctionCall","src":"12240:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12232:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12014:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12028:4:139","type":""}],"src":"11863:402:139"},{"body":{"nodeType":"YulBlock","src":"12444:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12461:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12472:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12454:6:139"},"nodeType":"YulFunctionCall","src":"12454:21:139"},"nodeType":"YulExpressionStatement","src":"12454:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12495:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12506:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12491:3:139"},"nodeType":"YulFunctionCall","src":"12491:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12511:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12484:6:139"},"nodeType":"YulFunctionCall","src":"12484:30:139"},"nodeType":"YulExpressionStatement","src":"12484:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12534:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12545:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12530:3:139"},"nodeType":"YulFunctionCall","src":"12530:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12550:20:139","type":"","value":"not approved owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12523:6:139"},"nodeType":"YulFunctionCall","src":"12523:48:139"},"nodeType":"YulExpressionStatement","src":"12523:48:139"},{"nodeType":"YulAssignment","src":"12580:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12592:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12603:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12588:3:139"},"nodeType":"YulFunctionCall","src":"12588:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12580:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_2864dbbabd8157306aeef066484bac7e059f00045265f0ceb285d27d8f9c1415__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12421:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12435:4:139","type":""}],"src":"12270:342:139"},{"body":{"nodeType":"YulBlock","src":"12791:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12808:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12819:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12801:6:139"},"nodeType":"YulFunctionCall","src":"12801:21:139"},"nodeType":"YulExpressionStatement","src":"12801:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12842:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12853:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12838:3:139"},"nodeType":"YulFunctionCall","src":"12838:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"12858:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12831:6:139"},"nodeType":"YulFunctionCall","src":"12831:30:139"},"nodeType":"YulExpressionStatement","src":"12831:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12881:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12892:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12877:3:139"},"nodeType":"YulFunctionCall","src":"12877:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"12897:31:139","type":"","value":"gauge factory not whitelisted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12870:6:139"},"nodeType":"YulFunctionCall","src":"12870:59:139"},"nodeType":"YulExpressionStatement","src":"12870:59:139"},{"nodeType":"YulAssignment","src":"12938:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12950:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12961:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12946:3:139"},"nodeType":"YulFunctionCall","src":"12946:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12938:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12768:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12782:4:139","type":""}],"src":"12617:353:139"},{"body":{"nodeType":"YulBlock","src":"13149:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13166:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13177:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13159:6:139"},"nodeType":"YulFunctionCall","src":"13159:21:139"},"nodeType":"YulExpressionStatement","src":"13159:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13200:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13211:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13196:3:139"},"nodeType":"YulFunctionCall","src":"13196:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13216:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13189:6:139"},"nodeType":"YulFunctionCall","src":"13189:30:139"},"nodeType":"YulExpressionStatement","src":"13189:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13239:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13250:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13235:3:139"},"nodeType":"YulFunctionCall","src":"13235:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"13255:14:139","type":"","value":"gauge exists"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13228:6:139"},"nodeType":"YulFunctionCall","src":"13228:42:139"},"nodeType":"YulExpressionStatement","src":"13228:42:139"},{"nodeType":"YulAssignment","src":"13279:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13291:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13302:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13287:3:139"},"nodeType":"YulFunctionCall","src":"13287:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13279:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13126:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13140:4:139","type":""}],"src":"12975:336:139"},{"body":{"nodeType":"YulBlock","src":"13490:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13507:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13518:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13500:6:139"},"nodeType":"YulFunctionCall","src":"13500:21:139"},"nodeType":"YulExpressionStatement","src":"13500:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13541:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13552:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13537:3:139"},"nodeType":"YulFunctionCall","src":"13537:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13557:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13530:6:139"},"nodeType":"YulFunctionCall","src":"13530:30:139"},"nodeType":"YulExpressionStatement","src":"13530:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13580:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13591:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13576:3:139"},"nodeType":"YulFunctionCall","src":"13576:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"13596:17:139","type":"","value":"invalid weights"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13569:6:139"},"nodeType":"YulFunctionCall","src":"13569:45:139"},"nodeType":"YulExpressionStatement","src":"13569:45:139"},{"nodeType":"YulAssignment","src":"13623:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13635:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13646:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13631:3:139"},"nodeType":"YulFunctionCall","src":"13631:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13623:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13467:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13481:4:139","type":""}],"src":"13316:339:139"},{"body":{"nodeType":"YulBlock","src":"13834:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13851:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13862:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13844:6:139"},"nodeType":"YulFunctionCall","src":"13844:21:139"},"nodeType":"YulExpressionStatement","src":"13844:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13885:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13896:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13881:3:139"},"nodeType":"YulFunctionCall","src":"13881:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"13901:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13874:6:139"},"nodeType":"YulFunctionCall","src":"13874:30:139"},"nodeType":"YulExpressionStatement","src":"13874:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13924:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"13935:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13920:3:139"},"nodeType":"YulFunctionCall","src":"13920:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"13940:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13913:6:139"},"nodeType":"YulFunctionCall","src":"13913:62:139"},"nodeType":"YulExpressionStatement","src":"13913:62:139"},{"nodeType":"YulAssignment","src":"13984:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13996:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14007:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13992:3:139"},"nodeType":"YulFunctionCall","src":"13992:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13984:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13811:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13825:4:139","type":""}],"src":"13660:356:139"},{"body":{"nodeType":"YulBlock","src":"14195:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14212:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14223:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14205:6:139"},"nodeType":"YulFunctionCall","src":"14205:21:139"},"nodeType":"YulExpressionStatement","src":"14205:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14246:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14257:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14242:3:139"},"nodeType":"YulFunctionCall","src":"14242:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14262:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14235:6:139"},"nodeType":"YulFunctionCall","src":"14235:30:139"},"nodeType":"YulExpressionStatement","src":"14235:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14285:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14296:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14281:3:139"},"nodeType":"YulFunctionCall","src":"14281:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14301:21:139","type":"","value":"transferFrom failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14274:6:139"},"nodeType":"YulFunctionCall","src":"14274:49:139"},"nodeType":"YulExpressionStatement","src":"14274:49:139"},{"nodeType":"YulAssignment","src":"14332:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14344:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14355:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14340:3:139"},"nodeType":"YulFunctionCall","src":"14340:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14332:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14172:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14186:4:139","type":""}],"src":"14021:343:139"},{"body":{"nodeType":"YulBlock","src":"14543:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14560:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14571:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14553:6:139"},"nodeType":"YulFunctionCall","src":"14553:21:139"},"nodeType":"YulExpressionStatement","src":"14553:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14594:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14605:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14590:3:139"},"nodeType":"YulFunctionCall","src":"14590:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14610:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14583:6:139"},"nodeType":"YulFunctionCall","src":"14583:29:139"},"nodeType":"YulExpressionStatement","src":"14583:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14632:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14643:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14628:3:139"},"nodeType":"YulFunctionCall","src":"14628:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14648:11:139","type":"","value":"votes = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14621:6:139"},"nodeType":"YulFunctionCall","src":"14621:39:139"},"nodeType":"YulExpressionStatement","src":"14621:39:139"},{"nodeType":"YulAssignment","src":"14669:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14681:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14692:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14677:3:139"},"nodeType":"YulFunctionCall","src":"14677:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14669:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14520:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14534:4:139","type":""}],"src":"14369:332:139"},{"body":{"nodeType":"YulBlock","src":"14880:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14897:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14908:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14890:6:139"},"nodeType":"YulFunctionCall","src":"14890:21:139"},"nodeType":"YulExpressionStatement","src":"14890:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14931:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14942:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14927:3:139"},"nodeType":"YulFunctionCall","src":"14927:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"14947:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14920:6:139"},"nodeType":"YulFunctionCall","src":"14920:30:139"},"nodeType":"YulExpressionStatement","src":"14920:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14970:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"14981:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14966:3:139"},"nodeType":"YulFunctionCall","src":"14966:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"14986:31:139","type":"","value":"bribe factory not whitelisted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14959:6:139"},"nodeType":"YulFunctionCall","src":"14959:59:139"},"nodeType":"YulExpressionStatement","src":"14959:59:139"},{"nodeType":"YulAssignment","src":"15027:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15039:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15050:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15035:3:139"},"nodeType":"YulFunctionCall","src":"15035:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15027:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14857:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14871:4:139","type":""}],"src":"14706:353:139"},{"body":{"nodeType":"YulBlock","src":"15238:168:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15255:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15266:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15248:6:139"},"nodeType":"YulFunctionCall","src":"15248:21:139"},"nodeType":"YulExpressionStatement","src":"15248:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15289:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15300:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15285:3:139"},"nodeType":"YulFunctionCall","src":"15285:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15305:2:139","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15278:6:139"},"nodeType":"YulFunctionCall","src":"15278:30:139"},"nodeType":"YulExpressionStatement","src":"15278:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15328:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15339:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15324:3:139"},"nodeType":"YulFunctionCall","src":"15324:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15344:20:139","type":"","value":"invalid token code"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15317:6:139"},"nodeType":"YulFunctionCall","src":"15317:48:139"},"nodeType":"YulExpressionStatement","src":"15317:48:139"},{"nodeType":"YulAssignment","src":"15374:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15386:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15397:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15382:3:139"},"nodeType":"YulFunctionCall","src":"15382:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15374:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15215:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15229:4:139","type":""}],"src":"15064:342:139"},{"body":{"nodeType":"YulBlock","src":"15585:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15602:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15613:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15595:6:139"},"nodeType":"YulFunctionCall","src":"15595:21:139"},"nodeType":"YulExpressionStatement","src":"15595:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15636:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15647:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15632:3:139"},"nodeType":"YulFunctionCall","src":"15632:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"15652:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15625:6:139"},"nodeType":"YulFunctionCall","src":"15625:30:139"},"nodeType":"YulExpressionStatement","src":"15625:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15675:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15686:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15671:3:139"},"nodeType":"YulFunctionCall","src":"15671:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"15691:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15664:6:139"},"nodeType":"YulFunctionCall","src":"15664:61:139"},"nodeType":"YulExpressionStatement","src":"15664:61:139"},{"nodeType":"YulAssignment","src":"15734:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15746:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15757:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15742:3:139"},"nodeType":"YulFunctionCall","src":"15742:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15734:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15562:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15576:4:139","type":""}],"src":"15411:355:139"},{"body":{"nodeType":"YulBlock","src":"15945:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15962:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"15973:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15955:6:139"},"nodeType":"YulFunctionCall","src":"15955:21:139"},"nodeType":"YulExpressionStatement","src":"15955:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15996:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16007:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15992:3:139"},"nodeType":"YulFunctionCall","src":"15992:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16012:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15985:6:139"},"nodeType":"YulFunctionCall","src":"15985:30:139"},"nodeType":"YulExpressionStatement","src":"15985:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16035:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16046:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16031:3:139"},"nodeType":"YulFunctionCall","src":"16031:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"16051:17:139","type":"","value":"not token owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16024:6:139"},"nodeType":"YulFunctionCall","src":"16024:45:139"},"nodeType":"YulExpressionStatement","src":"16024:45:139"},{"nodeType":"YulAssignment","src":"16078:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16090:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16101:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16086:3:139"},"nodeType":"YulFunctionCall","src":"16086:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16078:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15922:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15936:4:139","type":""}],"src":"15771:339:139"},{"body":{"nodeType":"YulBlock","src":"16216:76:139","statements":[{"nodeType":"YulAssignment","src":"16226:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16238:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16249:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16234:3:139"},"nodeType":"YulFunctionCall","src":"16234:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16226:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16268:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"16279:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16261:6:139"},"nodeType":"YulFunctionCall","src":"16261:25:139"},"nodeType":"YulExpressionStatement","src":"16261:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16185:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16196:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16207:4:139","type":""}],"src":"16115:177:139"},{"body":{"nodeType":"YulBlock","src":"16476:153:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16493:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"16504:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16486:6:139"},"nodeType":"YulFunctionCall","src":"16486:25:139"},"nodeType":"YulExpressionStatement","src":"16486:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16531:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16542:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16527:3:139"},"nodeType":"YulFunctionCall","src":"16527:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"16547:2:139","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16520:6:139"},"nodeType":"YulFunctionCall","src":"16520:30:139"},"nodeType":"YulExpressionStatement","src":"16520:30:139"},{"nodeType":"YulAssignment","src":"16559:64:139","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16596:6:139"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16608:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16619:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16604:3:139"},"nodeType":"YulFunctionCall","src":"16604:18:139"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"16567:28:139"},"nodeType":"YulFunctionCall","src":"16567:56:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16559:4:139"}]}]},"name":"abi_encode_tuple_t_uint256_t_array$_t_address_$dyn_memory_ptr__to_t_uint256_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16437:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16448:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16456:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16467:4:139","type":""}],"src":"16297:332:139"},{"body":{"nodeType":"YulBlock","src":"16761:119:139","statements":[{"nodeType":"YulAssignment","src":"16771:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16783:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16794:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16779:3:139"},"nodeType":"YulFunctionCall","src":"16779:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16771:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16813:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"16824:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16806:6:139"},"nodeType":"YulFunctionCall","src":"16806:25:139"},"nodeType":"YulExpressionStatement","src":"16806:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16851:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"16862:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16847:3:139"},"nodeType":"YulFunctionCall","src":"16847:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"16867:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16840:6:139"},"nodeType":"YulFunctionCall","src":"16840:34:139"},"nodeType":"YulExpressionStatement","src":"16840:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_int256__to_t_uint256_t_int256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16722:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16733:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16741:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16752:4:139","type":""}],"src":"16634:246:139"},{"body":{"nodeType":"YulBlock","src":"17014:119:139","statements":[{"nodeType":"YulAssignment","src":"17024:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17036:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17047:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17032:3:139"},"nodeType":"YulFunctionCall","src":"17032:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17024:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17066:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"17077:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17059:6:139"},"nodeType":"YulFunctionCall","src":"17059:25:139"},"nodeType":"YulExpressionStatement","src":"17059:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17104:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"17115:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17100:3:139"},"nodeType":"YulFunctionCall","src":"17100:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"17120:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17093:6:139"},"nodeType":"YulFunctionCall","src":"17093:34:139"},"nodeType":"YulExpressionStatement","src":"17093:34:139"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16975:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16986:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16994:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17005:4:139","type":""}],"src":"16885:248:139"},{"body":{"nodeType":"YulBlock","src":"17183:230:139","statements":[{"nodeType":"YulAssignment","src":"17193:19:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17209:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17203:5:139"},"nodeType":"YulFunctionCall","src":"17203:9:139"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"17193:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"17221:58:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"17243:6:139"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"17259:4:139"},{"kind":"number","nodeType":"YulLiteral","src":"17265:2:139","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17255:3:139"},"nodeType":"YulFunctionCall","src":"17255:13:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17274:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17270:3:139"},"nodeType":"YulFunctionCall","src":"17270:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17251:3:139"},"nodeType":"YulFunctionCall","src":"17251:27:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17239:3:139"},"nodeType":"YulFunctionCall","src":"17239:40:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"17225:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"17354:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"17356:16:139"},"nodeType":"YulFunctionCall","src":"17356:18:139"},"nodeType":"YulExpressionStatement","src":"17356:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"17297:10:139"},{"kind":"number","nodeType":"YulLiteral","src":"17309:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17294:2:139"},"nodeType":"YulFunctionCall","src":"17294:34:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"17333:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"17345:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17330:2:139"},"nodeType":"YulFunctionCall","src":"17330:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"17291:2:139"},"nodeType":"YulFunctionCall","src":"17291:62:139"},"nodeType":"YulIf","src":"17288:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17392:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"17396:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17385:6:139"},"nodeType":"YulFunctionCall","src":"17385:22:139"},"nodeType":"YulExpressionStatement","src":"17385:22:139"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"17163:4:139","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"17172:6:139","type":""}],"src":"17138:275:139"},{"body":{"nodeType":"YulBlock","src":"17487:114:139","statements":[{"body":{"nodeType":"YulBlock","src":"17531:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"17533:16:139"},"nodeType":"YulFunctionCall","src":"17533:18:139"},"nodeType":"YulExpressionStatement","src":"17533:18:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"17503:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"17511:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17500:2:139"},"nodeType":"YulFunctionCall","src":"17500:30:139"},"nodeType":"YulIf","src":"17497:2:139"},{"nodeType":"YulAssignment","src":"17562:33:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17578:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"17581:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17574:3:139"},"nodeType":"YulFunctionCall","src":"17574:14:139"},{"kind":"number","nodeType":"YulLiteral","src":"17590:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17570:3:139"},"nodeType":"YulFunctionCall","src":"17570:25:139"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"17562:4:139"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"17467:6:139","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"17478:4:139","type":""}],"src":"17418:183:139"},{"body":{"nodeType":"YulBlock","src":"17653:220:139","statements":[{"nodeType":"YulVariableDeclaration","src":"17663:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17677:1:139"},{"name":"sum","nodeType":"YulIdentifier","src":"17680:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17673:3:139"},"nodeType":"YulFunctionCall","src":"17673:11:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17667:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"17749:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17751:16:139"},"nodeType":"YulFunctionCall","src":"17751:18:139"},"nodeType":"YulExpressionStatement","src":"17751:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17707:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17700:6:139"},"nodeType":"YulFunctionCall","src":"17700:10:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17716:1:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17731:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"17736:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17727:3:139"},"nodeType":"YulFunctionCall","src":"17727:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"17740:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17723:3:139"},"nodeType":"YulFunctionCall","src":"17723:19:139"},{"name":"x","nodeType":"YulIdentifier","src":"17744:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17719:3:139"},"nodeType":"YulFunctionCall","src":"17719:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"17712:3:139"},"nodeType":"YulFunctionCall","src":"17712:35:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17696:3:139"},"nodeType":"YulFunctionCall","src":"17696:52:139"},"nodeType":"YulIf","src":"17693:2:139"},{"body":{"nodeType":"YulBlock","src":"17820:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17822:16:139"},"nodeType":"YulFunctionCall","src":"17822:18:139"},"nodeType":"YulExpressionStatement","src":"17822:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17787:2:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17795:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17806:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"17811:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17802:3:139"},"nodeType":"YulFunctionCall","src":"17802:11:139"},{"name":"x","nodeType":"YulIdentifier","src":"17815:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17798:3:139"},"nodeType":"YulFunctionCall","src":"17798:19:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17791:3:139"},"nodeType":"YulFunctionCall","src":"17791:27:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17783:3:139"},"nodeType":"YulFunctionCall","src":"17783:36:139"},"nodeType":"YulIf","src":"17780:2:139"},{"nodeType":"YulAssignment","src":"17851:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17862:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"17865:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17858:3:139"},"nodeType":"YulFunctionCall","src":"17858:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17851:3:139"}]}]},"name":"checked_add_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17636:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"17639:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17645:3:139","type":""}],"src":"17606:267:139"},{"body":{"nodeType":"YulBlock","src":"17926:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"17953:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17955:16:139"},"nodeType":"YulFunctionCall","src":"17955:18:139"},"nodeType":"YulExpressionStatement","src":"17955:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17942:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17949:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17945:3:139"},"nodeType":"YulFunctionCall","src":"17945:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17939:2:139"},"nodeType":"YulFunctionCall","src":"17939:13:139"},"nodeType":"YulIf","src":"17936:2:139"},{"nodeType":"YulAssignment","src":"17984:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17995:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"17998:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17991:3:139"},"nodeType":"YulFunctionCall","src":"17991:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17984:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17909:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"17912:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17918:3:139","type":""}],"src":"17878:128:139"},{"body":{"nodeType":"YulBlock","src":"18056:148:139","statements":[{"body":{"nodeType":"YulBlock","src":"18079:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"18081:16:139"},"nodeType":"YulFunctionCall","src":"18081:18:139"},"nodeType":"YulExpressionStatement","src":"18081:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18076:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18069:6:139"},"nodeType":"YulFunctionCall","src":"18069:9:139"},"nodeType":"YulIf","src":"18066:2:139"},{"body":{"nodeType":"YulBlock","src":"18152:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18154:16:139"},"nodeType":"YulFunctionCall","src":"18154:18:139"},"nodeType":"YulExpressionStatement","src":"18154:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18120:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18127:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"18132:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18123:3:139"},"nodeType":"YulFunctionCall","src":"18123:11:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18117:2:139"},"nodeType":"YulFunctionCall","src":"18117:18:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18140:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18147:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18143:3:139"},"nodeType":"YulFunctionCall","src":"18143:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18137:2:139"},"nodeType":"YulFunctionCall","src":"18137:13:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18113:3:139"},"nodeType":"YulFunctionCall","src":"18113:38:139"},"nodeType":"YulIf","src":"18110:2:139"},{"nodeType":"YulAssignment","src":"18183:15:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18193:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"18196:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"18188:4:139"},"nodeType":"YulFunctionCall","src":"18188:10:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"18183:1:139"}]}]},"name":"checked_div_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18041:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"18044:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"18050:1:139","type":""}],"src":"18011:193:139"},{"body":{"nodeType":"YulBlock","src":"18255:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"18278:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"18280:16:139"},"nodeType":"YulFunctionCall","src":"18280:18:139"},"nodeType":"YulExpressionStatement","src":"18280:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18275:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18268:6:139"},"nodeType":"YulFunctionCall","src":"18268:9:139"},"nodeType":"YulIf","src":"18265:2:139"},{"nodeType":"YulAssignment","src":"18309:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18318:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"18321:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"18314:3:139"},"nodeType":"YulFunctionCall","src":"18314:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"18309:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18240:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"18243:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"18249:1:139","type":""}],"src":"18209:120:139"},{"body":{"nodeType":"YulBlock","src":"18385:526:139","statements":[{"nodeType":"YulVariableDeclaration","src":"18395:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18413:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"18418:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18409:3:139"},"nodeType":"YulFunctionCall","src":"18409:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"18422:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18405:3:139"},"nodeType":"YulFunctionCall","src":"18405:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18399:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18433:25:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18447:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"18450:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"18443:3:139"},"nodeType":"YulFunctionCall","src":"18443:15:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"18437:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18467:25:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18481:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"18484:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"18477:3:139"},"nodeType":"YulFunctionCall","src":"18477:15:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"18471:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"18540:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18542:16:139"},"nodeType":"YulFunctionCall","src":"18542:18:139"},"nodeType":"YulExpressionStatement","src":"18542:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"18512:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"18516:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18508:3:139"},"nodeType":"YulFunctionCall","src":"18508:11:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18524:1:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"18531:2:139"},{"name":"y","nodeType":"YulIdentifier","src":"18535:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"18527:3:139"},"nodeType":"YulFunctionCall","src":"18527:10:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18521:2:139"},"nodeType":"YulFunctionCall","src":"18521:17:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18504:3:139"},"nodeType":"YulFunctionCall","src":"18504:35:139"},"nodeType":"YulIf","src":"18501:2:139"},{"nodeType":"YulVariableDeclaration","src":"18571:21:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18585:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"18590:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18581:3:139"},"nodeType":"YulFunctionCall","src":"18581:11:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"18575:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18601:25:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18615:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"18618:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18611:3:139"},"nodeType":"YulFunctionCall","src":"18611:15:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"18605:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"18676:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18678:16:139"},"nodeType":"YulFunctionCall","src":"18678:18:139"},"nodeType":"YulExpressionStatement","src":"18678:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"18646:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"18650:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18642:3:139"},"nodeType":"YulFunctionCall","src":"18642:11:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18659:1:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"18667:2:139"},{"name":"x","nodeType":"YulIdentifier","src":"18671:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"18662:4:139"},"nodeType":"YulFunctionCall","src":"18662:11:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18655:3:139"},"nodeType":"YulFunctionCall","src":"18655:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18638:3:139"},"nodeType":"YulFunctionCall","src":"18638:37:139"},"nodeType":"YulIf","src":"18635:2:139"},{"nodeType":"YulVariableDeclaration","src":"18707:25:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18721:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"18724:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18717:3:139"},"nodeType":"YulFunctionCall","src":"18717:15:139"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"18711:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"18782:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18784:16:139"},"nodeType":"YulFunctionCall","src":"18784:18:139"},"nodeType":"YulExpressionStatement","src":"18784:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"18752:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"18756:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18748:3:139"},"nodeType":"YulFunctionCall","src":"18748:11:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18765:1:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"18773:2:139"},{"name":"y","nodeType":"YulIdentifier","src":"18777:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"18768:4:139"},"nodeType":"YulFunctionCall","src":"18768:11:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18761:3:139"},"nodeType":"YulFunctionCall","src":"18761:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18744:3:139"},"nodeType":"YulFunctionCall","src":"18744:37:139"},"nodeType":"YulIf","src":"18741:2:139"},{"body":{"nodeType":"YulBlock","src":"18854:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18856:16:139"},"nodeType":"YulFunctionCall","src":"18856:18:139"},"nodeType":"YulExpressionStatement","src":"18856:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"18824:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"18828:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18820:3:139"},"nodeType":"YulFunctionCall","src":"18820:11:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18837:1:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"18845:2:139"},{"name":"y","nodeType":"YulIdentifier","src":"18849:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"18840:4:139"},"nodeType":"YulFunctionCall","src":"18840:11:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18833:3:139"},"nodeType":"YulFunctionCall","src":"18833:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18816:3:139"},"nodeType":"YulFunctionCall","src":"18816:37:139"},"nodeType":"YulIf","src":"18813:2:139"},{"nodeType":"YulAssignment","src":"18885:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18900:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"18903:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"18896:3:139"},"nodeType":"YulFunctionCall","src":"18896:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"18885:7:139"}]}]},"name":"checked_mul_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18364:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"18367:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"18373:7:139","type":""}],"src":"18334:577:139"},{"body":{"nodeType":"YulBlock","src":"18968:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"19027:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19029:16:139"},"nodeType":"YulFunctionCall","src":"19029:18:139"},"nodeType":"YulExpressionStatement","src":"19029:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18999:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18992:6:139"},"nodeType":"YulFunctionCall","src":"18992:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18985:6:139"},"nodeType":"YulFunctionCall","src":"18985:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"19007:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19018:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19014:3:139"},"nodeType":"YulFunctionCall","src":"19014:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"19022:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"19010:3:139"},"nodeType":"YulFunctionCall","src":"19010:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19004:2:139"},"nodeType":"YulFunctionCall","src":"19004:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18981:3:139"},"nodeType":"YulFunctionCall","src":"18981:45:139"},"nodeType":"YulIf","src":"18978:2:139"},{"nodeType":"YulAssignment","src":"19058:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19073:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"19076:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"19069:3:139"},"nodeType":"YulFunctionCall","src":"19069:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"19058:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18947:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"18950:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"18956:7:139","type":""}],"src":"18916:168:139"},{"body":{"nodeType":"YulBlock","src":"19137:222:139","statements":[{"nodeType":"YulVariableDeclaration","src":"19147:22:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"19161:1:139"},{"name":"diff","nodeType":"YulIdentifier","src":"19164:4:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19157:3:139"},"nodeType":"YulFunctionCall","src":"19157:12:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19151:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"19226:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19228:16:139"},"nodeType":"YulFunctionCall","src":"19228:18:139"},"nodeType":"YulExpressionStatement","src":"19228:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19192:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19185:6:139"},"nodeType":"YulFunctionCall","src":"19185:10:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19201:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19212:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"19217:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19208:3:139"},"nodeType":"YulFunctionCall","src":"19208:11:139"},{"name":"y","nodeType":"YulIdentifier","src":"19221:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19204:3:139"},"nodeType":"YulFunctionCall","src":"19204:19:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19197:3:139"},"nodeType":"YulFunctionCall","src":"19197:27:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19181:3:139"},"nodeType":"YulFunctionCall","src":"19181:44:139"},"nodeType":"YulIf","src":"19178:2:139"},{"body":{"nodeType":"YulBlock","src":"19305:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19307:16:139"},"nodeType":"YulFunctionCall","src":"19307:18:139"},"nodeType":"YulExpressionStatement","src":"19307:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19264:2:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19272:1:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19287:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"19292:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19283:3:139"},"nodeType":"YulFunctionCall","src":"19283:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"19296:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19279:3:139"},"nodeType":"YulFunctionCall","src":"19279:19:139"},{"name":"y","nodeType":"YulIdentifier","src":"19300:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19275:3:139"},"nodeType":"YulFunctionCall","src":"19275:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"19268:3:139"},"nodeType":"YulFunctionCall","src":"19268:35:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19260:3:139"},"nodeType":"YulFunctionCall","src":"19260:44:139"},"nodeType":"YulIf","src":"19257:2:139"},{"nodeType":"YulAssignment","src":"19336:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19348:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"19351:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19344:3:139"},"nodeType":"YulFunctionCall","src":"19344:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19336:4:139"}]}]},"name":"checked_sub_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19119:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"19122:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19128:4:139","type":""}],"src":"19089:270:139"},{"body":{"nodeType":"YulBlock","src":"19413:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"19435:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19437:16:139"},"nodeType":"YulFunctionCall","src":"19437:18:139"},"nodeType":"YulExpressionStatement","src":"19437:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19429:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"19432:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19426:2:139"},"nodeType":"YulFunctionCall","src":"19426:8:139"},"nodeType":"YulIf","src":"19423:2:139"},{"nodeType":"YulAssignment","src":"19466:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19478:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"19481:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19474:3:139"},"nodeType":"YulFunctionCall","src":"19474:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19466:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19395:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"19398:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19404:4:139","type":""}],"src":"19364:125:139"},{"body":{"nodeType":"YulBlock","src":"19541:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"19572:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19574:16:139"},"nodeType":"YulFunctionCall","src":"19574:18:139"},"nodeType":"YulExpressionStatement","src":"19574:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19557:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19568:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19564:3:139"},"nodeType":"YulFunctionCall","src":"19564:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19554:2:139"},"nodeType":"YulFunctionCall","src":"19554:17:139"},"nodeType":"YulIf","src":"19551:2:139"},{"nodeType":"YulAssignment","src":"19603:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19614:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"19621:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19610:3:139"},"nodeType":"YulFunctionCall","src":"19610:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19603:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19523:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19533:3:139","type":""}],"src":"19494:135:139"},{"body":{"nodeType":"YulBlock","src":"19677:95:139","statements":[{"body":{"nodeType":"YulBlock","src":"19713:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19715:16:139"},"nodeType":"YulFunctionCall","src":"19715:18:139"},"nodeType":"YulExpressionStatement","src":"19715:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19693:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19704:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"19709:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19700:3:139"},"nodeType":"YulFunctionCall","src":"19700:11:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19690:2:139"},"nodeType":"YulFunctionCall","src":"19690:22:139"},"nodeType":"YulIf","src":"19687:2:139"},{"nodeType":"YulAssignment","src":"19744:22:139","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"19755:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"19760:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19751:3:139"},"nodeType":"YulFunctionCall","src":"19751:15:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19744:3:139"}]}]},"name":"negate_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19659:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19669:3:139","type":""}],"src":"19634:138:139"},{"body":{"nodeType":"YulBlock","src":"19809:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19826:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19833:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19838:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19829:3:139"},"nodeType":"YulFunctionCall","src":"19829:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19819:6:139"},"nodeType":"YulFunctionCall","src":"19819:31:139"},"nodeType":"YulExpressionStatement","src":"19819:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19866:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19869:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19859:6:139"},"nodeType":"YulFunctionCall","src":"19859:15:139"},"nodeType":"YulExpressionStatement","src":"19859:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19890:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19893:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19883:6:139"},"nodeType":"YulFunctionCall","src":"19883:15:139"},"nodeType":"YulExpressionStatement","src":"19883:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"19777:127:139"},{"body":{"nodeType":"YulBlock","src":"19941:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19958:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19965:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19970:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19961:3:139"},"nodeType":"YulFunctionCall","src":"19961:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19951:6:139"},"nodeType":"YulFunctionCall","src":"19951:31:139"},"nodeType":"YulExpressionStatement","src":"19951:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19998:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20001:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19991:6:139"},"nodeType":"YulFunctionCall","src":"19991:15:139"},"nodeType":"YulExpressionStatement","src":"19991:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20022:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20025:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20015:6:139"},"nodeType":"YulFunctionCall","src":"20015:15:139"},"nodeType":"YulExpressionStatement","src":"20015:15:139"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"19909:127:139"},{"body":{"nodeType":"YulBlock","src":"20073:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20090:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20097:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20102:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20093:3:139"},"nodeType":"YulFunctionCall","src":"20093:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20083:6:139"},"nodeType":"YulFunctionCall","src":"20083:31:139"},"nodeType":"YulExpressionStatement","src":"20083:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20130:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20133:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20123:6:139"},"nodeType":"YulFunctionCall","src":"20123:15:139"},"nodeType":"YulExpressionStatement","src":"20123:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20154:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20157:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20147:6:139"},"nodeType":"YulFunctionCall","src":"20147:15:139"},"nodeType":"YulExpressionStatement","src":"20147:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"20041:127:139"},{"body":{"nodeType":"YulBlock","src":"20218:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"20282:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20291:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20294:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20284:6:139"},"nodeType":"YulFunctionCall","src":"20284:12:139"},"nodeType":"YulExpressionStatement","src":"20284:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20241:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20252:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20267:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20272:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20263:3:139"},"nodeType":"YulFunctionCall","src":"20263:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"20276:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20259:3:139"},"nodeType":"YulFunctionCall","src":"20259:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20248:3:139"},"nodeType":"YulFunctionCall","src":"20248:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20238:2:139"},"nodeType":"YulFunctionCall","src":"20238:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20231:6:139"},"nodeType":"YulFunctionCall","src":"20231:50:139"},"nodeType":"YulIf","src":"20228:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20207:5:139","type":""}],"src":"20173:131:139"}]},"contents":"{\n    { }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_array_address_dyn_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let src := add(offset, _2)\n        if gt(add(add(offset, shl(5, _1)), _2), end) { revert(array, array) }\n        let i := array\n        for { } lt(i, _1) { i := add(i, 1) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(array, array) }\n            mstore(dst, abi_decode_array_address_dyn(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n            src := add(src, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_array_address_dyn_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_array$_t_address_$dyn_memory_ptr_$dyn_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value1, value1) }\n        value1 := abi_decode_array_array_address_dyn_dyn(add(headStart, offset_1), dataEnd)\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint256t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptrt_array$_t_int256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value4, value4) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value4, value4) }\n        let value1_1, value2_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(value4, value4) }\n        let value3_1, value4_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_array_address_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := end\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        let i := end\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n        }\n        if gt(i, length) { mstore(add(pos, length), end) }\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_array$_t_address_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_array_address_dyn(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IEmissionController_$33981__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"poolweight = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"not gauge\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"pool not whitelisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_2864dbbabd8157306aeef066484bac7e059f00045265f0ceb285d27d8f9c1415__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"not approved owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"gauge factory not whitelisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"gauge exists\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"invalid weights\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"transferFrom failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"votes = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"bribe factory not whitelisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d697e22a97894628682b7d9a4a7e811d58a2d795837aa4c6b889ef9af637382c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"invalid token code\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_fd1629d8986cdddafe47fe6d8b6a3372d9b0349af60f77a9e32ac92d16d119d4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"not token owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_array$_t_address_$dyn_memory_ptr__to_t_uint256_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_array_address_dyn(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint256_t_int256__to_t_uint256_t_int256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function checked_add_t_int256(x, y) -> sum\n    {\n        let _1 := slt(x, sum)\n        if and(iszero(_1), sgt(y, sub(sub(shl(255, 1), 1), x))) { panic_error_0x11() }\n        if and(_1, slt(y, sub(shl(255, 1), x))) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_int256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        if and(eq(x, shl(255, 1)), eq(y, not(0))) { panic_error_0x11() }\n        r := sdiv(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_mul_t_int256(x, y) -> product\n    {\n        let _1 := sub(shl(255, 1), 1)\n        let _2 := sgt(y, product)\n        let _3 := sgt(x, product)\n        if and(and(_3, _2), gt(x, div(_1, y))) { panic_error_0x11() }\n        let _4 := shl(255, 1)\n        let _5 := slt(y, product)\n        if and(and(_3, _5), slt(y, sdiv(_4, x))) { panic_error_0x11() }\n        let _6 := slt(x, product)\n        if and(and(_6, _2), slt(x, sdiv(_4, y))) { panic_error_0x11() }\n        if and(and(_6, _5), slt(x, sdiv(_1, y))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_int256(x, y) -> diff\n    {\n        let _1 := slt(y, diff)\n        if and(iszero(_1), slt(x, add(shl(255, 1), y))) { panic_error_0x11() }\n        if and(_1, sgt(x, add(sub(shl(255, 1), 1), y))) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function negate_t_int256(value) -> ret\n    {\n        if eq(value, shl(255, 1)) { panic_error_0x11() }\n        ret := sub(ret, value)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"37690":[{"length":32,"start":985},{"length":32,"start":1671},{"length":32,"start":1987},{"length":32,"start":2721},{"length":32,"start":2940},{"length":32,"start":3218},{"length":32,"start":3699},{"length":32,"start":4144},{"length":32,"start":4986},{"length":32,"start":5528},{"length":32,"start":5689},{"length":32,"start":5831},{"length":32,"start":6688},{"length":32,"start":7777},{"length":32,"start":8978},{"length":32,"start":10104},{"length":32,"start":10426}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061022d5760003560e01c806379e938241161013b578063aa79979b116100b8578063d560b0d71161007c578063d560b0d714610567578063e4fc6b6d14610317578063ea94ee441461057a578063f2fde38b1461058d578063fecdad60146105a057600080fd5b8063aa79979b146104ca578063ac4afa38146104ed578063af67c63814610500578063b9a09fd514610513578063d23254b41461053c57600080fd5b80639b6a9d72116100ff5780639b6a9d7214610448578063a61c713a1461045b578063a7cac8461461046e578063a86a366d1461048e578063a8c5d95a146104a157600080fd5b806379e93824146103b45780637b103999146103d45780638da5cb5b146103fb57806396c82e571461040c5780639b19251a1461041557600080fd5b806347b3c6ba116101c95780636dee20121161018d5780636dee2012146103605780636ecbe38a14610373578063715018a6146103865780637625391a1461038e5780637715ee75146103a157600080fd5b806347b3c6ba1461031757806353d786931461031f5780636138889b1461032757806363453ae11461033a578063698473e31461034d57600080fd5b806306d6a1b2146102325780631f7b6d321461027157806320b1cb6f14610283578063310bd74b1461029857806332145f90146102ab57806339393ac9146102be5780633c6b16ab146102d1578063402914f5146102e4578063411b1f7714610304575b600080fd5b61025b610240366004612c8a565b6006602052600090815260409020546001600160a01b031681565b6040516102689190612fdf565b60405180910390f35b6004545b604051908152602001610268565b610296610291366004612d4d565b6105b3565b005b6102966102a6366004612e36565b610685565b6102966102b9366004612e36565b6108b4565b6102966102cc366004612c8a565b610a2d565b6102966102df366004612e36565b610a9c565b6102756102f2366004612c8a565b60106020526000908152604090205481565b610296610312366004612e66565b610c5b565b610296610dbe565b610296610dcf565b610296610335366004612d13565b610dde565b610296610348366004612c8a565b610e30565b61029661035b366004612e66565b610e3c565b60025461025b906001600160a01b031681565b610296610381366004612c8a565b610f9f565b610296610fa8565b61029661039c366004612f42565b610fba565b6102966103af366004612dad565b61102e565b6102756103c2366004612e36565b600b6020526000908152604090205481565b61025b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031661025b565b61027560035481565b610438610423366004612c8a565b600d6020526000908152604090205460ff1681565b6040519015158152602001610268565b610296610456366004612f42565b611225565b610296610469366004612e95565b611299565b61027561047c366004612c8a565b60086020526000908152604090205481565b61025b61049c366004612f42565b611314565b61025b6104af366004612c8a565b6007602052600090815260409020546001600160a01b031681565b6104386104d8366004612c8a565b600c6020526000908152604090205460ff1681565b61025b6104fb366004612e36565b61134c565b61025b61050e366004612cc9565b611376565b61025b610521366004612c8a565b6005602052600090815260409020546001600160a01b031681565b61027561054a366004612e66565b600960209081526000928352604080842090915290825290205481565b610296610575366004612d13565b6118e8565b610296610588366004612e95565b611936565b61029661059b366004612c8a565b6119a8565b6102966105ae366004612ecc565b611a1e565b60005b8251811015610680578281815181106105df57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166331279d3d3384848151811061061657634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b815260040161063b929190612ff3565b600060405180830381600087803b15801561065557600080fd5b505af1158015610669573d6000803e3d6000fd5b5050505080806106789061327e565b9150506105b6565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106de57600080fd5b505afa1580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107169190612cad565b6001600160a01b031663430c208133836040518363ffffffff1660e01b8152600401610743929190613017565b60206040518083038186803b15801561075b57600080fd5b505afa15801561076f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190612e16565b6107b85760405162461bcd60e51b81526004016107af90613053565b60405180910390fd5b6107c181611c19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561081a57600080fd5b505afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190612cad565b6001600160a01b031663c1f0fb9f826040518263ffffffff1660e01b815260040161087f91815260200190565b600060405180830381600087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b5050505050565b6000818152600a602090815260408083208054825181850281018501909352808352919290919083018282801561091457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108f6575b505050505090506000815190506000816001600160401b0381111561094957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610972578160200160208202803683370190505b50905060005b82811015610a1b576009600086815260200190815260200160002060008583815181106109b557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106109fe57634e487b7160e01b600052603260045260246000fd5b602090810291909101015280610a138161327e565b915050610978565b50610a27848483611e4e565b50505050565b610a35612433565b6001600160a01b0381166000818152600d6020908152604091829020805460ff8082161560ff199092168217909255925192161515825233917fc8a125677224e7125b3579c5a10de1afe210f4c1c1d3c27be0f12b0c4a14c915910160405180910390a350565b610b387f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610af857600080fd5b505afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b309190612cad565b33308461248d565b600354600090610b5083670de0b6b3a7640000613209565b610b5a9190613172565b90508015610b7a5780600e6000828254610b74919061312c565b90915550505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd357600080fd5b505afa158015610be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0b9190612cad565b6001600160a01b0316336001600160a01b03167ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf5082684604051610c4f91815260200190565b60405180910390a35050565b336000908152600c602052604090205460ff16610c8a5760405162461bcd60e51b81526004016107af90613030565b8115610d81577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce957600080fd5b505afa158015610cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d219190612cad565b6001600160a01b031663986b7d8a836040518263ffffffff1660e01b8152600401610d4e91815260200190565b600060405180830381600087803b158015610d6857600080fd5b505af1158015610d7c573d6000803e3d6000fd5b505050505b60405182815233906001600160a01b038316907fae268d9aab12f3605f58efd74fd3801fa812b03fdb44317eb70f46dff0e19e2290602001610c4f565b600454610dcd90600090610fba565b565b600454610dcd90600090611225565b60005b8151811015610e2c57610e1a828281518110610e0d57634e487b7160e01b600052603260045260246000fd5b60200260200101516125f6565b80610e248161327e565b915050610de1565b5050565b610e39816125f6565b50565b336000908152600c602052604090205460ff16610e6b5760405162461bcd60e51b81526004016107af90613030565b8115610f62577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eca57600080fd5b505afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190612cad565b6001600160a01b031663fbd3a29d836040518263ffffffff1660e01b8152600401610f2f91815260200190565b600060405180830381600087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050505b60405182815233906001600160a01b038316907f60940192810a6fb3bce3fd3e2e3a13fd6ccc7605e963fb87ee971aba829989bd90602001610c4f565b610e39816129e3565b610fb0612433565b610dcd6000612ac6565b815b818110156106805761101c6005600060048481548110610fec57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054166125f6565b806110268161327e565b915050610fbc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561108757600080fd5b505afa15801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf9190612cad565b6001600160a01b031663430c208133836040518363ffffffff1660e01b81526004016110ec929190613017565b60206040518083038186803b15801561110457600080fd5b505afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190612e16565b6111585760405162461bcd60e51b81526004016107af90613053565b60005b8351811015610a275783818151811061118457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663a7852afa838584815181106111bb57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b81526004016111e092919061307f565b600060405180830381600087803b1580156111fa57600080fd5b505af115801561120e573d6000803e3d6000fd5b50505050808061121d9061327e565b91505061115b565b815b8181101561068057611287600560006004848154811061125757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452908301939093526040909101902054166129e3565b806112918161327e565b915050611227565b336000908152600c602052604090205460ff166112c85760405162461bcd60e51b81526004016107af90613030565b604080518481526020810183905233916001600160a01b038516917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d791015b60405180910390a3505050565b600a602052816000526040600020818154811061133057600080fd5b6000918252602090912001546001600160a01b03169150829050565b6004818154811061135c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b505050506001600160a01b0384811660009081526005602052604090205416156114425760405162461bcd60e51b815260206004820152600c60248201526b67617567652065786973747360a01b60448201526064016107af565b6001600160a01b0384166000908152600d602052604090205460ff166114a15760405162461bcd60e51b81526020600482015260146024820152731c1bdbdb081b9bdd081dda1a5d195b1a5cdd195960621b60448201526064016107af565b6001600160a01b0383166000908152600d602052604090205460ff166115095760405162461bcd60e51b815260206004820152601d60248201527f627269626520666163746f7279206e6f742077686974656c697374656400000060448201526064016107af565b6001600160a01b0382166000908152600d602052604090205460ff166115715760405162461bcd60e51b815260206004820152601d60248201527f676175676520666163746f7279206e6f742077686974656c697374656400000060448201526064016107af565b604051631af469cb60e21b81526000906001600160a01b03851690636bd1a72c906115c0907f000000000000000000000000000000000000000000000000000000000000000090600401612fdf565b602060405180830381600087803b1580156115da57600080fd5b505af11580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116129190612cad565b604051630e24707d60e11b81526001600160a01b03878116600483015280831660248301527f000000000000000000000000000000000000000000000000000000000000000081166044830152919250600091851690631c48e0fa90606401602060405180830381600087803b15801561168b57600080fd5b505af115801561169f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c39190612cad565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117569190612cad565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b8152600401611785929190613017565b602060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d79190612e16565b506001600160a01b03808216600081815260076020908152604080832080548689166001600160a01b031991821617909155948b16808452600583528184208054871686179055938352600682528083208054909516909317909355600c9092529020805460ff1916600117905561184e816129e3565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b03888116918217909255604051909184811691908416907f48d3c521fd0d5541640f58c6d6381eed7cb2e8c9df421ae165a4f4c2d221ee0d906118d7903390612fdf565b60405180910390a495945050505050565b60005b8151811015610e2c5761192482828151811061191757634e487b7160e01b600052603260045260246000fd5b60200260200101516129e3565b8061192e8161327e565b9150506118eb565b336000908152600c602052604090205460ff166119655760405162461bcd60e51b81526004016107af90613030565b604080518481526020810183905233916001600160a01b038516917ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679101611307565b6119b0612433565b6001600160a01b038116611a155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107af565b610e3981612ac6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7757600080fd5b505afa158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf9190612cad565b6001600160a01b031663430c208133876040518363ffffffff1660e01b8152600401611adc929190613017565b60206040518083038186803b158015611af457600080fd5b505afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612e16565b611b6a5760405162461bcd60e51b815260206004820152600f60248201526e3737ba103a37b5b2b71037bbb732b960891b60448201526064016107af565b828114611bab5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964207765696768747360881b60448201526064016107af565b6108ad8585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250611e4e92505050565b6000818152600a6020526040812080549091805b82811015611e12576000848281548110611c5757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101548883526009825260408084206001600160a01b03909216808552919092529120549091508015611dfd576001600160a01b03808316600090815260056020526040902054611cb391166129e3565b6001600160a01b03821660009081526008602052604081208054839290611cdb908490613228565b909155505060008781526009602090815260408083206001600160a01b038616845290915281208054839290611d12908490613228565b90915550506000811315611db6576001600160a01b038281166000908152600560209081526040808320548416835260079091529081902054905163278afc8b60e21b815260048101849052602481018a9052911690639e2bf22c90604401600060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050508084611daf91906130eb565b9350611dc3565b611dc08185613228565b93505b60408051888152602081018390527f6b3894ce60b9bbe9d93f1a4e6fc25b6b93cd8222e73ab6348d79c596f5b51de9910160405180910390a15b50508080611e0a9061327e565b915050611c2d565b508060036000828254611e259190613267565b90915550506000848152600b60209081526040808320839055600a9091528120610a2791612b18565b611e5783611c19565b60008251905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611eb857600080fd5b505afa158015611ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef09190612cad565b6001600160a01b031663e7e242d4866040518263ffffffff1660e01b8152600401611f1d91815260200190565b60206040518083038186803b158015611f3557600080fd5b505afa158015611f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6d9190612e4e565b90506000806000805b8581101561202a576000878281518110611fa057634e487b7160e01b600052603260045260246000fd5b602002602001015113611fe357868181518110611fcd57634e487b7160e01b600052603260045260246000fd5b6020026020010151611fde90613299565b61200c565b86818151811061200357634e487b7160e01b600052603260045260246000fd5b60200260200101515b61201690856130eb565b9350806120228161327e565b915050611f76565b5060005b8581101561230657600088828151811061205857634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03808216600090815260058452604080822054909216808252600c909452205490925060ff16156122f157600086888b86815181106120ba57634e487b7160e01b600052603260045260246000fd5b60200260200101516120cc9190613186565b6120d69190613144565b60008d81526009602090815260408083206001600160a01b0388168452909152902054909150156121355760405162461bcd60e51b81526020600482015260096024820152680766f746573203d20360bc1b60448201526064016107af565b806121735760405162461bcd60e51b815260206004820152600e60248201526d0706f6f6c776569676874203d20360941b60448201526064016107af565b61217c826129e3565b60008c8152600a6020908152604080832080546001810182559084528284200180546001600160a01b0319166001600160a01b03881690811790915583526008909152812080548392906121d19084906130eb565b909155505060008c81526009602090815260408083206001600160a01b0387168452909152812080548392906122089084906130eb565b9091555050600081131561228f576001600160a01b038083166000908152600760205260409081902054905163f320772360e01b815260048101849052602481018f905291169063f320772390604401600060405180830381600087803b15801561227257600080fd5b505af1158015612286573d6000803e3d6000fd5b5050505061229b565b61229881613299565b90505b6122a581866130eb565b94506122b181876130eb565b604080518e81526020810184905291975033917f1263a2295e53acd6ef8f655b8afc11fa0f2cf11925be7aa1757d741ef32a926c910160405180910390a2505b505080806122fe9061327e565b91505061202e565b506000811315612401577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d7b96d4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561236957600080fd5b505afa15801561237d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a19190612cad565b6001600160a01b031663fd4a77f1896040518263ffffffff1660e01b81526004016123ce91815260200190565b600060405180830381600087803b1580156123e857600080fd5b505af11580156123fc573d6000803e3d6000fd5b505050505b8160036000828254612413919061312c565b90915550506000978852600b602052604090972096909655505050505050565b6001546001600160a01b03163314610dcd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107af565b6000846001600160a01b03163b116124dc5760405162461bcd60e51b8152602060048201526012602482015271696e76616c696420746f6b656e20636f646560701b60448201526064016107af565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916125409190612fa6565b6000604051808303816000865af19150503d806000811461257d576040519150601f19603f3d011682016040523d82523d6000602084013e612582565b606091505b50915091508180156125ac5750805115806125ac5750808060200190518101906125ac9190612e16565b6125ee5760405162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b60448201526064016107af565b505050505050565b600260005414156126495760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107af565b6002600081905554604080516335155b0160e11b815290516001600160a01b0390921691636a2ab60291600480820192602092909190829003018186803b15801561269357600080fd5b505afa1580156126a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cb9190612e16565b1561273957600260009054906101000a90046001600160a01b03166001600160a01b031663161ad7066040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561272057600080fd5b505af1158015612734573d6000803e3d6000fd5b505050505b612742816129e3565b6001600160a01b03808216600081815260106020908152604091829020548251631ef0061b60e11b8152925190946399bcc052937f000000000000000000000000000000000000000000000000000000000000000090911692633de00c3692600480840193829003018186803b1580156127bb57600080fd5b505afa1580156127cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f39190612cad565b6040518263ffffffff1660e01b815260040161280f9190612fdf565b60206040518083038186803b15801561282757600080fd5b505afa15801561283b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285f9190612e4e565b811180156128795750600061287762093a8083613172565b115b156129da57600060106000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663b66503cf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b15801561291157600080fd5b505afa158015612925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129499190612cad565b836040518363ffffffff1660e01b8152600401612967929190613017565b600060405180830381600087803b15801561298157600080fd5b505af1158015612995573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507f4fa9693cae526341d334e2862ca2413b2e503f1266255f9e0869fb36e6d89b179060200160405180910390a35b50506001600055565b6001600160a01b0380821660009081526006602090815260408083205490931680835260089091529181205490811315612aa5576001600160a01b0383166000908152600f602052604081208054600e549182905591612a438383613267565b905080156125ee576000670de0b6b3a7640000612a608387613209565b612a6a9190613172565b6001600160a01b038816600090815260106020526040812080549293508392909190612a9790849061312c565b909155505050505050505050565b600e546001600160a01b0384166000908152600f6020526040902055505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b5080546000825590600052602060002090810190610e3991905b80821115612b465760008155600101612b32565b5090565b60008083601f840112612b5b578182fd5b5081356001600160401b03811115612b71578182fd5b6020830191508360208260051b8501011115612b8c57600080fd5b9250929050565b600082601f830112612ba3578081fd5b81356020612bb8612bb3836130c8565b613098565b80838252828201915082860187848660051b8901011115612bd7578586fd5b855b85811015612bfe578135612bec816132f5565b84529284019290840190600101612bd9565b5090979650505050505050565b600082601f830112612c1b578081fd5b81356020612c2b612bb3836130c8565b80838252828201915082860187848660051b8901011115612c4a578586fd5b855b85811015612bfe5781356001600160401b03811115612c69578788fd5b612c778a87838c0101612b93565b8552509284019290840190600101612c4c565b600060208284031215612c9b578081fd5b8135612ca6816132f5565b9392505050565b600060208284031215612cbe578081fd5b8151612ca6816132f5565b600080600060608486031215612cdd578182fd5b8335612ce8816132f5565b92506020840135612cf8816132f5565b91506040840135612d08816132f5565b809150509250925092565b600060208284031215612d24578081fd5b81356001600160401b03811115612d39578182fd5b612d4584828501612b93565b949350505050565b60008060408385031215612d5f578182fd5b82356001600160401b0380821115612d75578384fd5b612d8186838701612b93565b93506020850135915080821115612d96578283fd5b50612da385828601612c0b565b9150509250929050565b600080600060608486031215612dc1578283fd5b83356001600160401b0380821115612dd7578485fd5b612de387838801612b93565b94506020860135915080821115612df8578384fd5b50612e0586828701612c0b565b925050604084013590509250925092565b600060208284031215612e27578081fd5b81518015158114612ca6578182fd5b600060208284031215612e47578081fd5b5035919050565b600060208284031215612e5f578081fd5b5051919050565b60008060408385031215612e78578182fd5b823591506020830135612e8a816132f5565b809150509250929050565b600080600060608486031215612ea9578283fd5b833592506020840135612ebb816132f5565b929592945050506040919091013590565b600080600080600060608688031215612ee3578081fd5b8535945060208601356001600160401b0380821115612f00578283fd5b612f0c89838a01612b4a565b90965094506040880135915080821115612f24578283fd5b50612f3188828901612b4a565b969995985093965092949392505050565b60008060408385031215612f54578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b83811015612f9b5781516001600160a01b031687529582019590820190600101612f76565b509495945050505050565b60008251815b81811015612fc65760208186018101518583015201612fac565b81811115612fd45782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0383168152604060208201819052600090612d4590830184612f63565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152686e6f7420676175676560b81b604082015260600190565b6020808252601290820152713737ba1030b8383937bb32b21037bbb732b960711b604082015260600190565b828152604060208201526000612d456040830184612f63565b604051601f8201601f191681016001600160401b03811182821017156130c0576130c06132df565b604052919050565b60006001600160401b038211156130e1576130e16132df565b5060051b60200190565b600080821280156001600160ff1b038490038513161561310d5761310d6132b3565b600160ff1b8390038412811615613126576131266132b3565b50500190565b6000821982111561313f5761313f6132b3565b500190565b600082613153576131536132c9565b600160ff1b82146000198414161561316d5761316d6132b3565b500590565b600082613181576131816132c9565b500490565b60006001600160ff1b03818413828413808216868404861116156131ac576131ac6132b3565b600160ff1b848712828116878305891216156131ca576131ca6132b3565b8587129250878205871284841616156131e5576131e56132b3565b878505871281841616156131fb576131fb6132b3565b505050929093029392505050565b6000816000190483118215151615613223576132236132b3565b500290565b60008083128015600160ff1b850184121615613246576132466132b3565b6001600160ff1b0384018313811615613261576132616132b3565b50500390565b600082821015613279576132796132b3565b500390565b6000600019821415613292576132926132b3565b5060010190565b6000600160ff1b8214156132af576132af6132b3565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e3957600080fdfea2646970667358221220d093a75fe2e8967922fae5143bdb97d2eae9296785468b5266b078bc3619d27d64736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x22D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79E93824 GT PUSH2 0x13B JUMPI DUP1 PUSH4 0xAA79979B GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xD560B0D7 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD560B0D7 EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0xE4FC6B6D EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0xEA94EE44 EQ PUSH2 0x57A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x58D JUMPI DUP1 PUSH4 0xFECDAD60 EQ PUSH2 0x5A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAA79979B EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0xAC4AFA38 EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0xAF67C638 EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0xB9A09FD5 EQ PUSH2 0x513 JUMPI DUP1 PUSH4 0xD23254B4 EQ PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9B6A9D72 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x9B6A9D72 EQ PUSH2 0x448 JUMPI DUP1 PUSH4 0xA61C713A EQ PUSH2 0x45B JUMPI DUP1 PUSH4 0xA7CAC846 EQ PUSH2 0x46E JUMPI DUP1 PUSH4 0xA86A366D EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0xA8C5D95A EQ PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79E93824 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x47B3C6BA GT PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x6DEE2012 GT PUSH2 0x18D JUMPI DUP1 PUSH4 0x6DEE2012 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x6ECBE38A EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x7625391A EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x7715EE75 EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x47B3C6BA EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x53D78693 EQ PUSH2 0x31F JUMPI DUP1 PUSH4 0x6138889B EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x63453AE1 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x698473E3 EQ PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6D6A1B2 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x1F7B6D32 EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0x20B1CB6F EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x310BD74B EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x32145F90 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x39393AC9 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0x2D1 JUMPI DUP1 PUSH4 0x402914F5 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x411B1F77 EQ PUSH2 0x304 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B PUSH2 0x240 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x268 SWAP2 SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x268 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4D JUMP JUMPDEST PUSH2 0x5B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x296 PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0x8B4 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0xA2D JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0xA9C JUMP JUMPDEST PUSH2 0x275 PUSH2 0x2F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x312 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E66 JUMP JUMPDEST PUSH2 0xC5B JUMP JUMPDEST PUSH2 0x296 PUSH2 0xDBE JUMP JUMPDEST PUSH2 0x296 PUSH2 0xDCF JUMP JUMPDEST PUSH2 0x296 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D13 JUMP JUMPDEST PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x296 PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x2E66 JUMP JUMPDEST PUSH2 0xE3C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x25B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x381 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0xF9F JUMP JUMPDEST PUSH2 0x296 PUSH2 0xFA8 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F42 JUMP JUMPDEST PUSH2 0xFBA JUMP JUMPDEST PUSH2 0x296 PUSH2 0x3AF CALLDATASIZE PUSH1 0x4 PUSH2 0x2DAD JUMP JUMPDEST PUSH2 0x102E JUMP JUMPDEST PUSH2 0x275 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x25B JUMP JUMPDEST PUSH2 0x275 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x438 PUSH2 0x423 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x268 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x456 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F42 JUMP JUMPDEST PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x469 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E95 JUMP JUMPDEST PUSH2 0x1299 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x49C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F42 JUMP JUMPDEST PUSH2 0x1314 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x4AF CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x438 PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x4FB CALLDATASIZE PUSH1 0x4 PUSH2 0x2E36 JUMP JUMPDEST PUSH2 0x134C JUMP JUMPDEST PUSH2 0x25B PUSH2 0x50E CALLDATASIZE PUSH1 0x4 PUSH2 0x2CC9 JUMP JUMPDEST PUSH2 0x1376 JUMP JUMPDEST PUSH2 0x25B PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x54A CALLDATASIZE PUSH1 0x4 PUSH2 0x2E66 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x575 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D13 JUMP JUMPDEST PUSH2 0x18E8 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x588 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E95 JUMP JUMPDEST PUSH2 0x1936 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x59B CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0x19A8 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x5AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2ECC JUMP JUMPDEST PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x680 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x5DF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x31279D3D CALLER DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x616 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x63B SWAP3 SWAP2 SWAP1 PUSH2 0x2FF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x669 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP1 PUSH2 0x678 SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5B6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x716 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x430C2081 CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x743 SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x75B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x793 SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x7B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7C1 DUP2 PUSH2 0x1C19 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x81A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x82E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x852 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC1F0FB9F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x87F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x914 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 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 0x8F6 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x949 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x972 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xA1B JUMPI PUSH1 0x9 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x9B5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x9FE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0xA13 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x978 JUMP JUMPDEST POP PUSH2 0xA27 DUP5 DUP5 DUP4 PUSH2 0x1E4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xA35 PUSH2 0x2433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO PUSH1 0xFF NOT SWAP1 SWAP3 AND DUP3 OR SWAP1 SWAP3 SSTORE SWAP3 MLOAD SWAP3 AND ISZERO ISZERO DUP3 MSTORE CALLER SWAP2 PUSH32 0xC8A125677224E7125B3579C5A10DE1AFE210F4C1C1D3C27BE0F12B0C4A14C915 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0xB38 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB30 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST CALLER ADDRESS DUP5 PUSH2 0x248D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xB50 DUP4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x3209 JUMP JUMPDEST PUSH2 0xB5A SWAP2 SWAP1 PUSH2 0x3172 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB7A JUMPI DUP1 PUSH1 0xE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB74 SWAP2 SWAP1 PUSH2 0x312C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0B SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 DUP5 PUSH1 0x40 MLOAD PUSH2 0xC4F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST DUP2 ISZERO PUSH2 0xD81 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCFD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD21 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x986B7D8A DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD4E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xAE268D9AAB12F3605F58EFD74FD3801FA812B03FDB44317EB70F46DFF0E19E22 SWAP1 PUSH1 0x20 ADD PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0xDCD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0xFBA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0xDCD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1225 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xE2C JUMPI PUSH2 0xE1A DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE0D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x25F6 JUMP JUMPDEST DUP1 PUSH2 0xE24 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0xDE1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE39 DUP2 PUSH2 0x25F6 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xE6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST DUP2 ISZERO PUSH2 0xF62 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xECA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEDE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF02 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFBD3A29D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF2F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF5D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x60940192810A6FB3BCE3FD3E2E3A13FD6CCC7605E963FB87EE971ABA829989BD SWAP1 PUSH1 0x20 ADD PUSH2 0xC4F JUMP JUMPDEST PUSH2 0xE39 DUP2 PUSH2 0x29E3 JUMP JUMPDEST PUSH2 0xFB0 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0xDCD PUSH1 0x0 PUSH2 0x2AC6 JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x680 JUMPI PUSH2 0x101C PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xFEC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x25F6 JUMP JUMPDEST DUP1 PUSH2 0x1026 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0xFBC JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1087 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x109B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10BF SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x430C2081 CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10EC SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1118 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x113C SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x1158 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xA27 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1184 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA7852AFA DUP4 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x11BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11E0 SWAP3 SWAP2 SWAP1 PUSH2 0x307F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x120E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP1 PUSH2 0x121D SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x115B JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x680 JUMPI PUSH2 0x1287 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1257 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x29E3 JUMP JUMPDEST DUP1 PUSH2 0x1291 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1227 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x12C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDCBC1C05240F31FF3AD067EF1EE35CE4997762752E3A095284754544F4C709D7 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP DUP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x135C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x676175676520657869737473 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x14A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1C1BDBDB081B9BDD081DDA1A5D195B1A5CDD1959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x627269626520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1571 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x676175676520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1AF469CB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x6BD1A72C SWAP1 PUSH2 0x15C0 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1612 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE24707D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP1 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP6 AND SWAP1 PUSH4 0x1C48E0FA SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x168B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x169F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16C3 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x171E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1732 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1756 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 DUP3 PUSH1 0x0 NOT PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1785 SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17D7 SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 DUP10 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE SWAP5 DUP12 AND DUP1 DUP5 MSTORE PUSH1 0x5 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD DUP8 AND DUP7 OR SWAP1 SSTORE SWAP4 DUP4 MSTORE PUSH1 0x6 DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP6 AND SWAP1 SWAP4 OR SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x184E DUP2 PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP1 SWAP2 DUP5 DUP2 AND SWAP2 SWAP1 DUP5 AND SWAP1 PUSH32 0x48D3C521FD0D5541640F58C6D6381EED7CB2E8C9DF421AE165A4F4C2D221EE0D SWAP1 PUSH2 0x18D7 SWAP1 CALLER SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xE2C JUMPI PUSH2 0x1924 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1917 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x29E3 JUMP JUMPDEST DUP1 PUSH2 0x192E DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18EB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1965 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP1 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xF341246ADAAC6F497BC2A656F546AB9E182111D630394F0C57C710A59A2CB567 SWAP2 ADD PUSH2 0x1307 JUMP JUMPDEST PUSH2 0x19B0 PUSH2 0x2433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH2 0xE39 DUP2 PUSH2 0x2AC6 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AAF SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x430C2081 CALLER DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ADC SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B2C SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x1B6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x3737BA103A37B5B2B71037BBB732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST DUP3 DUP2 EQ PUSH2 0x1BAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x696E76616C69642077656967687473 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH2 0x8AD DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP10 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP1 SWAP4 POP DUP9 SWAP3 POP DUP8 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E4E SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1E12 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1C57 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP9 DUP4 MSTORE PUSH1 0x9 DUP3 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP1 DUP6 MSTORE SWAP2 SWAP1 SWAP3 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 ISZERO PUSH2 0x1DFD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1CB3 SWAP2 AND PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1CDB SWAP1 DUP5 SWAP1 PUSH2 0x3228 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1D12 SWAP1 DUP5 SWAP1 PUSH2 0x3228 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x1DB6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP5 AND DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x278AFC8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0x9E2BF22C SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP5 PUSH2 0x1DAF SWAP2 SWAP1 PUSH2 0x30EB JUMP JUMPDEST SWAP4 POP PUSH2 0x1DC3 JUMP JUMPDEST PUSH2 0x1DC0 DUP2 DUP6 PUSH2 0x3228 JUMP JUMPDEST SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x6B3894CE60B9BBE9D93F1A4E6FC25B6B93CD8222E73AB6348D79C596F5B51DE9 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1E0A SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1C2D JUMP JUMPDEST POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1E25 SWAP2 SWAP1 PUSH2 0x3267 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0xA SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH2 0xA27 SWAP2 PUSH2 0x2B18 JUMP JUMPDEST PUSH2 0x1E57 DUP4 PUSH2 0x1C19 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ECC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EF0 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE7E242D4 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F1D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F49 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F6D SWAP2 SWAP1 PUSH2 0x2E4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x202A JUMPI PUSH1 0x0 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1FA0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SGT PUSH2 0x1FE3 JUMPI DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1FCD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1FDE SWAP1 PUSH2 0x3299 JUMP JUMPDEST PUSH2 0x200C JUMP JUMPDEST DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x2003 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD JUMPDEST PUSH2 0x2016 SWAP1 DUP6 PUSH2 0x30EB JUMP JUMPDEST SWAP4 POP DUP1 PUSH2 0x2022 DUP2 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F76 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2306 JUMPI PUSH1 0x0 DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2058 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 DUP5 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0xC SWAP1 SWAP5 MSTORE KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x22F1 JUMPI PUSH1 0x0 DUP7 DUP9 DUP12 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x20BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x20CC SWAP2 SWAP1 PUSH2 0x3186 JUMP JUMPDEST PUSH2 0x20D6 SWAP2 SWAP1 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x0 DUP14 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x2135 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x766F746573203D203 PUSH1 0xBC SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST DUP1 PUSH2 0x2173 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x706F6F6C776569676874203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH2 0x217C DUP3 PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE DUP3 DUP5 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP4 MSTORE PUSH1 0x8 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x21D1 SWAP1 DUP5 SWAP1 PUSH2 0x30EB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x2208 SWAP1 DUP5 SWAP1 PUSH2 0x30EB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x228F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xF3207723 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE SWAP2 AND SWAP1 PUSH4 0xF3207723 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2286 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2298 DUP2 PUSH2 0x3299 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x22A5 DUP2 DUP7 PUSH2 0x30EB JUMP JUMPDEST SWAP5 POP PUSH2 0x22B1 DUP2 DUP8 PUSH2 0x30EB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP15 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE SWAP2 SWAP8 POP CALLER SWAP2 PUSH32 0x1263A2295E53ACD6EF8F655B8AFC11FA0F2CF11925BE7AA1757D741EF32A926C SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x22FE SWAP1 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x202E JUMP JUMPDEST POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x2401 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD7B96D4E 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2369 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x237D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23A1 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFD4A77F1 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23CE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2413 SWAP2 SWAP1 PUSH2 0x312C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 SWAP8 DUP9 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP8 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDCD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x24DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x696E76616C696420746F6B656E20636F6465 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x2540 SWAP2 SWAP1 PUSH2 0x2FA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x257D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2582 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x25AC JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x25AC JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x25AC SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST PUSH2 0x25EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1D1C985B9CD9995C919C9BDB4819985A5B1959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x2649 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x35155B01 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6A2AB602 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26CB SWAP2 SWAP1 PUSH2 0x2E16 JUMP JUMPDEST ISZERO PUSH2 0x2739 JUMPI PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x161AD706 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x2742 DUP2 PUSH2 0x29E3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD SWAP1 SWAP5 PUSH4 0x99BCC052 SWAP4 PUSH32 0x0 SWAP1 SWAP2 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27F3 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x280F SWAP2 SWAP1 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x283B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x285F SWAP2 SWAP1 PUSH2 0x2E4E JUMP JUMPDEST DUP2 GT DUP1 ISZERO PUSH2 0x2879 JUMPI POP PUSH1 0x0 PUSH2 0x2877 PUSH3 0x93A80 DUP4 PUSH2 0x3172 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x29DA JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB66503CF PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2925 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2949 SWAP2 SWAP1 PUSH2 0x2CAD JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2967 SWAP3 SWAP2 SWAP1 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2981 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2995 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP3 POP CALLER SWAP2 POP PUSH32 0x4FA9693CAE526341D334E2862CA2413B2E503F1266255F9E0869FB36E6D89B17 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x8 SWAP1 SWAP2 MSTORE SWAP2 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SGT ISZERO PUSH2 0x2AA5 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xE SLOAD SWAP2 DUP3 SWAP1 SSTORE SWAP2 PUSH2 0x2A43 DUP4 DUP4 PUSH2 0x3267 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x25EE JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH2 0x2A60 DUP4 DUP8 PUSH2 0x3209 JUMP JUMPDEST PUSH2 0x2A6A SWAP2 SWAP1 PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP DUP4 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x2A97 SWAP1 DUP5 SWAP1 PUSH2 0x312C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE39 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2B32 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B5B JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B71 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2B8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BA3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2BB8 PUSH2 0x2BB3 DUP4 PUSH2 0x30C8 JUMP JUMPDEST PUSH2 0x3098 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2BD7 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BFE JUMPI DUP2 CALLDATALOAD PUSH2 0x2BEC DUP2 PUSH2 0x32F5 JUMP JUMPDEST DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BD9 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C1B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2C2B PUSH2 0x2BB3 DUP4 PUSH2 0x30C8 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE DUP3 DUP3 ADD SWAP2 POP DUP3 DUP7 ADD DUP8 DUP5 DUP7 PUSH1 0x5 SHL DUP10 ADD ADD GT ISZERO PUSH2 0x2C4A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP6 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2BFE JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C69 JUMPI DUP8 DUP9 REVERT JUMPDEST PUSH2 0x2C77 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0x2B93 JUMP JUMPDEST DUP6 MSTORE POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C4C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C9B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2CA6 DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CBE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2CA6 DUP2 PUSH2 0x32F5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2CDD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2CE8 DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2CF8 DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x2D08 DUP2 PUSH2 0x32F5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D24 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D39 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2D45 DUP5 DUP3 DUP6 ADD PUSH2 0x2B93 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D5F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2D75 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2D81 DUP7 DUP4 DUP8 ADD PUSH2 0x2B93 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D96 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2DA3 DUP6 DUP3 DUP7 ADD PUSH2 0x2C0B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2DC1 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2DD7 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2DE3 DUP8 DUP4 DUP9 ADD PUSH2 0x2B93 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DF8 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2E05 DUP7 DUP3 DUP8 ADD PUSH2 0x2C0B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E27 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2CA6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E47 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E5F JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E78 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2E8A DUP2 PUSH2 0x32F5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2EA9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2EBB DUP2 PUSH2 0x32F5 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2EE3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2F00 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F0C DUP10 DUP4 DUP11 ADD PUSH2 0x2B4A JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2F24 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2F31 DUP9 DUP3 DUP10 ADD PUSH2 0x2B4A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F54 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F9B JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F76 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2FC6 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x2FAC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x2FD4 JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2D45 SWAP1 DUP4 ADD DUP5 PUSH2 0x2F63 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x6E6F74206761756765 PUSH1 0xB8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x12 SWAP1 DUP3 ADD MSTORE PUSH18 0x3737BA1030B8383937BB32B21037BBB732B9 PUSH1 0x71 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2D45 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2F63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x30C0 JUMPI PUSH2 0x30C0 PUSH2 0x32DF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x30E1 JUMPI PUSH2 0x30E1 PUSH2 0x32DF JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 SWAP1 SUB DUP6 SGT AND ISZERO PUSH2 0x310D JUMPI PUSH2 0x310D PUSH2 0x32B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP4 SWAP1 SUB DUP5 SLT DUP2 AND ISZERO PUSH2 0x3126 JUMPI PUSH2 0x3126 PUSH2 0x32B3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x313F JUMPI PUSH2 0x313F PUSH2 0x32B3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3153 JUMPI PUSH2 0x3153 PUSH2 0x32C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ PUSH1 0x0 NOT DUP5 EQ AND ISZERO PUSH2 0x316D JUMPI PUSH2 0x316D PUSH2 0x32B3 JUMP JUMPDEST POP SDIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3181 JUMPI PUSH2 0x3181 PUSH2 0x32C9 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 DUP5 SGT DUP3 DUP5 SGT DUP1 DUP3 AND DUP7 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x31AC JUMPI PUSH2 0x31AC PUSH2 0x32B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP5 DUP8 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP10 SLT AND ISZERO PUSH2 0x31CA JUMPI PUSH2 0x31CA PUSH2 0x32B3 JUMP JUMPDEST DUP6 DUP8 SLT SWAP3 POP DUP8 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x31E5 JUMPI PUSH2 0x31E5 PUSH2 0x32B3 JUMP JUMPDEST DUP8 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x31FB JUMPI PUSH2 0x31FB PUSH2 0x32B3 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP4 MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3223 JUMPI PUSH2 0x3223 PUSH2 0x32B3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0xFF SHL DUP6 ADD DUP5 SLT AND ISZERO PUSH2 0x3246 JUMPI PUSH2 0x3246 PUSH2 0x32B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x3261 JUMPI PUSH2 0x3261 PUSH2 0x32B3 JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3279 JUMPI PUSH2 0x3279 PUSH2 0x32B3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x3292 JUMPI PUSH2 0x3292 PUSH2 0x32B3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ ISZERO PUSH2 0x32AF JUMPI PUSH2 0x32AF PUSH2 0x32B3 JUMP JUMPDEST SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 SWAP4 0xA7 0x5F 0xE2 0xE8 SWAP7 PUSH26 0x22FAE5143BDB97D2EAE9296785468B5266B078BC3619D27D6473 PUSH16 0x6C634300080400330000000000000000 ","sourceMap":"897:12020:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1336:47;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1336:47:136;;;;;;;;;;:::i;:::-;;;;;;;;8582:86;8649:5;:12;8582:86;;;10798:25:139;;;10786:2;10771:18;8582:86:136;10753:76:139;10437:235:136;;;;;;:::i;:::-;;:::i;:::-;;2382:334;;;;;;:::i;:::-;;:::i;3746:373::-;;;;;;:::i;:::-;;:::i;6355:170::-;;;;;;:::i;:::-;;:::i;8674:402::-;;;;;;:::i;:::-;;:::i;1957:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;8116:256;;;;;;:::i;:::-;;:::i;11853:71::-;;;:::i;9422:78::-;;;:::i;12186:164::-;;;;;;:::i;:::-;;:::i;11757:90::-;;;;;;:::i;:::-;;:::i;7654:254::-;;;;;;:::i;:::-;;:::i;1101:45::-;;;;;-1:-1:-1;;;;;1101:45:136;;;9506:81;;;;;;:::i;:::-;;:::i;1831:101:4:-;;;:::i;12011:169:136:-;;;;;;:::i;:::-;;:::i;10678:472::-;;;;;;:::i;:::-;;:::i;1692:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;965:44;;;;;1201:85:4;1273:6;;-1:-1:-1;;;;;1273:6:4;1201:85;;1153:26:136;;;;;;1827:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10163:14:139;;10156:22;10138:41;;10126:2;10111:18;1827:41:136;10093:92:139;9250:166:136;;;;;;:::i;:::-;;:::i;7914:196::-;;;;;;:::i;:::-;;:::i;1471:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1625:45;;;;;;:::i;:::-;;:::i;1406:41::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1406:41:136;;;1782:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1209:22;;;;;;:::i;:::-;;:::i;6531:1117::-;;;;;;:::i;:::-;;:::i;1272:41::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1272:41:136;;;1536:59;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;9082:162;;;;;;:::i;:::-;;:::i;8378:198::-;;;;;;:::i;:::-;;:::i;2081::4:-;;;;;;:::i;:::-;;:::i;5904:445:136:-;;;;;;:::i;:::-;;:::i;10437:235::-;10549:9;10544:122;10568:7;:14;10564:1;:18;10544:122;;;10610:7;10618:1;10610:10;;;;;;-1:-1:-1;;;10610:10:136;;;;;;;;;;;;;;;-1:-1:-1;;;;;10603:28:136;;10632:10;10644:7;10652:1;10644:10;;;;;;-1:-1:-1;;;10644:10:136;;;;;;;;;;;;;;;10603:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10584:3;;;;;:::i;:::-;;;;10544:122;;;;10437:235;;:::o;2382:334::-;2472:8;-1:-1:-1;;;;;2472:15:136;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2455:53:136;;2526:10;2554:8;2455:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2434:186;;;;-1:-1:-1;;;2434:186:136;;;;;;;:::i;:::-;;;;;;;;;2630:16;2637:8;2630:6;:16::i;:::-;2673:8;-1:-1:-1;;;;;2673:15:136;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2656:43:136;;2700:8;2656:53;;;;;;;;;;;;;10798:25:139;;10786:2;10771:18;;10753:76;2656:53:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2382:334;:::o;3746:373::-;3797:26;3826:18;;;:8;:18;;;;;;;;3797:47;;;;;;;;;;;;;;;;;;;3826:18;;3797:47;;;3826:18;3797:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3797:47:136;;;;;;;;;;;;;;;;;;;;;;;3854:16;3873:9;:16;3854:35;;3899:24;3939:8;-1:-1:-1;;;;;3926:22:136;;;;;-1:-1:-1;;;3926:22:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3926:22:136;;3899:49;;3964:9;3959:107;3983:8;3979:1;:12;3959:107;;;4026:5;:15;4032:8;4026:15;;;;;;;;;;;:29;4042:9;4052:1;4042:12;;;;;;-1:-1:-1;;;4042:12:136;;;;;;;;;;;;;;;-1:-1:-1;;;;;4026:29:136;-1:-1:-1;;;;;4026:29:136;;;;;;;;;;;;;4012:8;4021:1;4012:11;;;;;;-1:-1:-1;;;4012:11:136;;;;;;;;;;;;;;;;;;:43;3993:3;;;;:::i;:::-;;;;3959:107;;;;4076:36;4082:8;4092:9;4103:8;4076:5;:36::i;:::-;3746:373;;;;:::o;6355:170::-;1094:13:4;:11;:13::i;:::-;-1:-1:-1;;;;;6442:15:136;::::1;;::::0;;;:9:::1;:15;::::0;;;;;;;;;;::::1;::::0;;::::1;6441:16;-1:-1:-1::0;;6423:34:136;;::::1;::::0;::::1;::::0;;;6472:46;;6502:15;;10163:14:139;10156:22;10138:41;;6484:10:136::1;::::0;6472:46:::1;::::0;10111:18:139;6472:46:136::1;;;;;;;6355:170:::0;:::o;8674:402::-;8746:69;8764:8;-1:-1:-1;;;;;8764:13:136;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8781:10;8801:4;8808:6;8746:17;:69::i;:::-;8886:11;;8851:14;;8869:13;:6;8878:4;8869:13;:::i;:::-;8868:29;;;;:::i;:::-;8851:46;-1:-1:-1;8954:10:136;;8950:56;;8989:6;8980:5;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;8950:56:136;9045:8;-1:-1:-1;;;;;9045:13:136;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9020:49:136;9033:10;-1:-1:-1;;;;;9020:49:136;;9062:6;9020:49;;;;10798:25:139;;10786:2;10771:18;;10753:76;9020:49:136;;;;;;;;8674:402;;:::o;8116:256::-;2055:10;2047:19;;;;:7;:19;;;;;;;;2039:41;;;;-1:-1:-1;;;2039:41:136;;;;;;;:::i;:::-;8250:11;;8246:68:::1;;8280:8;-1:-1:-1::0;;;;;8280:15:136::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8263:42:136::1;;8306:7;8263:51;;;;;;;;;;;;;10798:25:139::0;;10786:2;10771:18;;10753:76;8263:51:136::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8246:68;8329:36;::::0;10798:25:139;;;8345:10:136::1;::::0;-1:-1:-1;;;;;8329:36:136;::::1;::::0;::::1;::::0;10786:2:139;10771:18;8329:36:136::1;10753:76:139::0;11853:71:136;11904:5;:12;11890:27;;11901:1;;11890:10;:27::i;:::-;11853:71::o;9422:78::-;9480:5;:12;9462:31;;9477:1;;9462:14;:31::i;12186:164::-;12256:9;12251:93;12275:7;:14;12271:1;:18;12251:93;;;12310:23;12322:7;12330:1;12322:10;;;;;;-1:-1:-1;;;12322:10:136;;;;;;;;;;;;;;;12310:11;:23::i;:::-;12291:3;;;;:::i;:::-;;;;12251:93;;;;12186:164;:::o;11757:90::-;11821:19;11833:6;11821:11;:19::i;:::-;11757:90;:::o;7654:254::-;2055:10;2047:19;;;;:7;:19;;;;;;;;2039:41;;;;-1:-1:-1;;;2039:41:136;;;;;;;:::i;:::-;7786:11;;7782:68:::1;;7816:8;-1:-1:-1::0;;;;;7816:15:136::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7799:42:136::1;;7842:7;7799:51;;;;;;;;;;;;;10798:25:139::0;;10786:2;10771:18;;10753:76;7799:51:136::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7782:68;7865:36;::::0;10798:25:139;;;7881:10:136::1;::::0;-1:-1:-1;;;;;7865:36:136;::::1;::::0;::::1;::::0;10786:2:139;10771:18;7865:36:136::1;10753:76:139::0;9506:81:136;9562:18;9573:6;9562:10;:18::i;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;12011:169:136:-:0;12096:5;12079:95;12107:6;12103:1;:10;12079:95;;;12134:29;12146:6;:16;12153:5;12159:1;12153:8;;;;;;-1:-1:-1;;;12153:8:136;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12153:8:136;;;12146:16;;;;;;;;;;;;;;;;;12134:11;:29::i;:::-;12115:3;;;;:::i;:::-;;;;12079:95;;10678:472;10858:8;-1:-1:-1;;;;;10858:15:136;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10841:53:136;;10912:10;10940:8;10841:121;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10820:186;;;;-1:-1:-1;;;10820:186:136;;;;;;;:::i;:::-;11021:9;11016:128;11040:7;:14;11036:1;:18;11016:128;;;11082:7;11090:1;11082:10;;;;;;-1:-1:-1;;;11082:10:136;;;;;;;;;;;;;;;-1:-1:-1;;;;;11075:36:136;;11112:8;11122:7;11130:1;11122:10;;;;;;-1:-1:-1;;;11122:10:136;;;;;;;;;;;;;;;11075:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11056:3;;;;;:::i;:::-;;;;11016:128;;9250:166;9336:5;9319:91;9347:3;9343:1;:7;9319:91;;;9371:28;9382:6;:16;9389:5;9395:1;9389:8;;;;;;-1:-1:-1;;;9389:8:136;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9389:8:136;;;9382:16;;;;;;;;;;;;;;;;;9371:10;:28::i;:::-;9352:3;;;;:::i;:::-;;;;9319:91;;7914:196;2055:10;2047:19;;;;:7;:19;;;;;;;;2039:41;;;;-1:-1:-1;;;2039:41:136;;;;;;;:::i;:::-;8058:45:::1;::::0;;16806:25:139;;;16862:2;16847:18;;16840:34;;;8075:10:136::1;::::0;-1:-1:-1;;;;;8058:45:136;::::1;::::0;::::1;::::0;16779:18:139;8058:45:136::1;;;;;;;;7914:196:::0;;;:::o;1625:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1625:45:136;;-1:-1:-1;1625:45:136;;-1:-1:-1;1625:45:136:o;1209:22::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1209:22:136;;-1:-1:-1;1209:22:136;:::o;6531:1117::-;6663:7;6682:8;-1:-1:-1;;;;;6682:24:136;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;6756:13:136;;;6781:3;6756:13;;;:6;:13;;;;;;;:29;6748:54;;;;-1:-1:-1;;;6748:54:136;;13177:2:139;6748:54:136;;;13159:21:139;13216:2;13196:18;;;13189:30;-1:-1:-1;;;13235:18:139;;;13228:42;13287:18;;6748:54:136;13149:162:139;6748:54:136;-1:-1:-1;;;;;6846:16:136;;;;;;:9;:16;;;;;;;;6838:49;;;;-1:-1:-1;;;6838:49:136;;11716:2:139;6838:49:136;;;11698:21:139;11755:2;11735:18;;;11728:30;-1:-1:-1;;;11774:18:139;;;11767:50;11834:18;;6838:49:136;11688:170:139;6838:49:136;-1:-1:-1;;;;;6905:24:136;;;;;;:9;:24;;;;;;;;6897:66;;;;-1:-1:-1;;;6897:66:136;;14908:2:139;6897:66:136;;;14890:21:139;14947:2;14927:18;;;14920:30;14986:31;14966:18;;;14959:59;15035:18;;6897:66:136;14880:179:139;6897:66:136;-1:-1:-1;;;;;6981:24:136;;;;;;:9;:24;;;;;;;;6973:66;;;;-1:-1:-1;;;6973:66:136;;12819:2:139;6973:66:136;;;12801:21:139;12858:2;12838:18;;;12831:30;12897:31;12877:18;;;12870:59;12946:18;;6973:66:136;12791:179:139;6973:66:136;7067:81;;-1:-1:-1;;;7067:81:136;;7050:14;;-1:-1:-1;;;;;7067:40:136;;;;;:81;;7129:8;;7067:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7175:120;;-1:-1:-1;;;7175:120:136;;-1:-1:-1;;;;;8845:15:139;;;7175:120:136;;;8827:34:139;8897:15;;;8877:18;;;8870:43;7276:8:136;8949:15:139;;8929:18;;;8922:43;7050:98:136;;-1:-1:-1;7158:14:136;;7175:40;;;;;8762:18:139;;7175:120:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7158:137;;7313:8;-1:-1:-1;;;;;7313:13:136;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7306:31:136;;7338:6;-1:-1:-1;;7306:58:136;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;7374:14:136;;;;;;;:6;:14;;;;;;;;:23;;;;;-1:-1:-1;;;;;;7374:23:136;;;;;;;7407:13;;;;;;:6;:13;;;;;:22;;;;;;;;7439:20;;;:12;:20;;;;;:28;;;;;;;;;;;7477:7;:15;;;;;:22;;-1:-1:-1;;7477:22:136;7374:23;7477:22;;;7510:18;7381:6;7510:10;:18::i;:::-;7538:5;:17;;;;;;;-1:-1:-1;7538:17:136;;;;;;;;-1:-1:-1;;;;;;7538:17:136;-1:-1:-1;;;;;7538:17:136;;;;;;;;;7571:47;;7538:17;;7571:47;;;;;;;;;;;;7592:10;;7571:47;:::i;:::-;;;;;;;;7635:6;6531:1117;-1:-1:-1;;;;;6531:1117:136:o;9082:162::-;9151:9;9146:92;9170:7;:14;9166:1;:18;9146:92;;;9205:22;9216:7;9224:1;9216:10;;;;;;-1:-1:-1;;;9216:10:136;;;;;;;;;;;;;;;9205;:22::i;:::-;9186:3;;;;:::i;:::-;;;;9146:92;;8378:198;2055:10;2047:19;;;;:7;:19;;;;;;;;2039:41;;;;-1:-1:-1;;;2039:41:136;;;;;;;:::i;:::-;8523:46:::1;::::0;;16806:25:139;;;16862:2;16847:18;;16840:34;;;8541:10:136::1;::::0;-1:-1:-1;;;;;8523:46:136;::::1;::::0;::::1;::::0;16779:18:139;8523:46:136::1;16761:119:139::0;2081:198:4;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;12065:2:139;2161:73:4::1;::::0;::::1;12047:21:139::0;12104:2;12084:18;;;12077:30;12143:34;12123:18;;;12116:62;-1:-1:-1;;;12194:18:139;;;12187:36;12240:19;;2161:73:4::1;12037:228:139::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;5904:445:136:-:0;6080:8;-1:-1:-1;;;;;6080:15:136;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6063:53:136;;6134:10;6162:7;6063:120;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6042:182;;;;-1:-1:-1;;;6042:182:136;;15973:2:139;6042:182:136;;;15955:21:139;16012:2;15992:18;;;15985:30;-1:-1:-1;;;16031:18:139;;;16024:45;16086:18;;6042:182:136;15945:165:139;6042:182:136;6242:35;;;6234:63;;;;-1:-1:-1;;;6234:63:136;;13518:2:139;6234:63:136;;;13500:21:139;13557:2;13537:18;;;13530:30;-1:-1:-1;;;13576:18:139;;;13569:45;13631:18;;6234:63:136;13490:165:139;6234:63:136;6307:35;6313:7;6322:9;;6307:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6307:35:136;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6333:8:136;;-1:-1:-1;6333:8:136;;;;6307:35;;;6333:8;;6307:35;6333:8;6307:35;;;;;;;;;-1:-1:-1;6307:5:136;;-1:-1:-1;;;6307:35:136:i;2722:1018::-;2775:27;2805:18;;;:8;:18;;;;;2856:16;;2805:18;;2775:27;2916:702;2940:12;2936:1;:16;2916:702;;;2973:13;2989:9;2999:1;2989:12;;;;;;-1:-1:-1;;;2989:12:136;;;;;;;;;;;;;;;;;;;;;3031:15;;;:5;:15;;;;;;-1:-1:-1;;;;;2989:12:136;;;3031:22;;;;;;;;;;2989:12;;-1:-1:-1;3072:11:136;;3068:540;;-1:-1:-1;;;;;3114:13:136;;;;;;;:6;:13;;;;;;3103:25;;3114:13;3103:10;:25::i;:::-;-1:-1:-1;;;;;3146:14:136;;;;;;:7;:14;;;;;:24;;3164:6;;3146:14;:24;;3164:6;;3146:24;:::i;:::-;;;;-1:-1:-1;;3188:15:136;;;;:5;:15;;;;;;;;-1:-1:-1;;;;;3188:22:136;;;;;;;;;:32;;3214:6;;3188:15;:32;;3214:6;;3188:32;:::i;:::-;;;;-1:-1:-1;;3251:1:136;3242:10;;3238:306;;;-1:-1:-1;;;;;3290:13:136;;;3283:21;3290:13;;;:6;:13;;;;;;;;;;;3283:21;;:6;:21;;;;;;;;3276:136;;-1:-1:-1;;;3276:136:136;;;;;16806:25:139;;;16847:18;;;16840:34;;;3283:21:136;;;3276:39;;16779:18:139;;3276:136:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3450:6;3434:22;;;;;:::i;:::-;;;3238:306;;;3503:22;3519:6;3503:22;;:::i;:::-;;;3238:306;3566:27;;;16806:25:139;;;16862:2;16847:18;;16840:34;;;3566:27:136;;16779:18:139;3566:27:136;;;;;;;3068:540;2916:702;;2954:3;;;;;:::i;:::-;;;;2916:702;;;;3650:12;3627:11;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;3697:1:136;3673:21;;;:11;:21;;;;;;;;:25;;;3715:8;:18;;;;;3708:25;;;:::i;4125:1773::-;4261:16;4268:8;4261:6;:16::i;:::-;4287;4306:9;:16;4287:35;;4332:14;4386:8;-1:-1:-1;;;;;4386:15:136;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4369:48:136;;4418:8;4369:58;;;;;;;;;;;;;10798:25:139;;10786:2;10771:18;;10753:76;4369:58:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4332:105;;4447:23;4484:19;4517:18;4555:9;4550:128;4574:8;4570:1;:12;4550:128;;;4637:1;4623:8;4632:1;4623:11;;;;;;-1:-1:-1;;;4623:11:136;;;;;;;;;;;;;;;:15;:44;;4656:8;4665:1;4656:11;;;;;;-1:-1:-1;;;4656:11:136;;;;;;;;;;;;;;;4655:12;;;:::i;:::-;4623:44;;;4641:8;4650:1;4641:11;;;;;;-1:-1:-1;;;4641:11:136;;;;;;;;;;;;;;;4623:44;4603:64;;;;:::i;:::-;;-1:-1:-1;4584:3:136;;;;:::i;:::-;;;;4550:128;;;;4693:9;4688:1020;4712:8;4708:1;:12;4688:1020;;;4741:13;4757:9;4767:1;4757:12;;;;;;-1:-1:-1;;;4757:12:136;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4800:13:136;;;4783:14;4800:13;;;:6;:13;;;;;;;;;;4832:15;;;:7;:15;;;;;4757:12;;-1:-1:-1;4832:15:136;;4828:870;;;4867:18;4914:16;4903:7;4889:8;4898:1;4889:11;;;;;;-1:-1:-1;;;4889:11:136;;;;;;;;;;;;;;;:21;;;;:::i;:::-;4888:42;;;;:::i;:::-;4956:15;;;;:5;:15;;;;;;;;-1:-1:-1;;;;;4956:22:136;;;;;;;;;;4867:63;;-1:-1:-1;4956:27:136;4948:49;;;;-1:-1:-1;;;4948:49:136;;14571:2:139;4948:49:136;;;14553:21:139;14610:1;14590:18;;;14583:29;-1:-1:-1;;;14628:18:139;;;14621:39;14677:18;;4948:49:136;14543:158:139;4948:49:136;5023:16;5015:43;;;;-1:-1:-1;;;5015:43:136;;11036:2:139;5015:43:136;;;11018:21:139;11075:2;11055:18;;;11048:30;-1:-1:-1;;;11094:18:139;;;11087:44;11148:18;;5015:43:136;11008:164:139;5015:43:136;5076:18;5087:6;5076:10;:18::i;:::-;5113;;;;:8;:18;;;;;;;;:30;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5113:30:136;-1:-1:-1;;;;;5113:30:136;;;;;;;;5162:14;;:7;:14;;;;;:29;;5180:11;;5113:18;5162:29;;5180:11;;5162:29;:::i;:::-;;;;-1:-1:-1;;5209:15:136;;;;:5;:15;;;;;;;;-1:-1:-1;;;;;5209:22:136;;;;;;;;;:37;;5235:11;;5209:15;:37;;5235:11;;5209:37;:::i;:::-;;;;-1:-1:-1;;5282:1:136;5268:15;;5264:268;;;-1:-1:-1;;;;;5314:14:136;;;;;;;:6;:14;;;;;;;;5307:133;;-1:-1:-1;;;5307:133:136;;;;;16806:25:139;;;16847:18;;;16840:34;;;5314:14:136;;;5307:31;;16779:18:139;;5307:133:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5264:268;;;5501:12;5502:11;5501:12;:::i;:::-;5487:26;;5264:268;5549:26;5564:11;5549:26;;:::i;:::-;;-1:-1:-1;5593:27:136;5609:11;5593:27;;:::i;:::-;5643:40;;;16806:25:139;;;16862:2;16847:18;;16840:34;;;5593:27:136;;-1:-1:-1;5649:10:136;;5643:40;;16779:18:139;5643:40:136;;;;;;;4828:870;;4688:1020;;4722:3;;;;;:::i;:::-;;;;4688:1020;;;;5736:1;5722:11;:15;5718:73;;;5756:8;-1:-1:-1;;;;;5756:15:136;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5739:42:136;;5782:8;5739:52;;;;;;;;;;;;;10798:25:139;;10786:2;10771:18;;10753:76;5739:52:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5718:73;5824:12;5801:11;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;5847:21:136;;;;:11;:21;;;;;;:44;;;;-1:-1:-1;;;;;;4125:1773:136:o;1359:130:4:-;1273:6;;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;13862:2:139;1414:68:4;;;13844:21:139;;;13881:18;;;13874:30;13940:34;13920:18;;;13913:62;13992:18;;1414:68:4;13834:182:139;12356:559:136;12524:1;12504:5;-1:-1:-1;;;;;12504:17:136;;:21;12496:52;;;;-1:-1:-1;;;12496:52:136;;15266:2:139;12496:52:136;;;15248:21:139;15305:2;15285:18;;;15278:30;-1:-1:-1;;;15324:18:139;;;15317:48;15382:18;;12496:52:136;15238:168:139;12496:52:136;12618:147;;;-1:-1:-1;;;;;9234:15:139;;;12618:147:136;;;9216:34:139;9286:15;;;9266:18;;;9259:43;9318:18;;;;9311:34;;;12618:147:136;;;;;;;;;;9151:18:139;;;;12618:147:136;;;;;;;-1:-1:-1;;;;;12618:147:136;-1:-1:-1;;;12618:147:136;;;12594:181;;-1:-1:-1;;;;12594:10:136;;;;:181;;12618:147;12594:181;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12558:217;;;;12806:7;:57;;;;-1:-1:-1;12818:11:136;;:16;;:44;;;12849:4;12838:24;;;;;;;;;;;;:::i;:::-;12785:123;;;;-1:-1:-1;;;12785:123:136;;14223:2:139;12785:123:136;;;14205:21:139;14262:2;14242:18;;;14235:30;-1:-1:-1;;;14281:18:139;;;14274:49;14340:18;;12785:123:136;14195:169:139;12785:123:136;12356:559;;;;;;:::o;11156:595::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;15613:2:139;2317:63:22;;;15595:21:139;15652:2;15632:18;;;15625:30;15691:33;15671:18;;;15664:61;15742:18;;2317:63:22;15585:181:139;2317:63:22;1744:1;2455:7;:18;;;11249::136;11229:50:::1;::::0;;-1:-1:-1;;;11229:50:136;;;;-1:-1:-1;;;;;11249:18:136;;::::1;::::0;11229:48:::1;::::0;:50:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;11249:18;11229:50;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11225:126;;;11313:18;;;;;;;;;-1:-1:-1::0;;;;;11313:18:136::1;-1:-1:-1::0;;;;;11293:56:136::1;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11225:126;11361:18;11372:6;11361:10;:18::i;:::-;-1:-1:-1::0;;;;;11410:17:136;;::::1;11389:18;11410:17:::0;;;:9:::1;:17;::::0;;;;;;;;;11488:15;;-1:-1:-1;;;11488:15:136;;;;11410:17;;11468:19:::1;::::0;11488:8:::1;:13:::0;;::::1;::::0;::::1;::::0;:15:::1;::::0;;::::1;::::0;;;;;;:13;:15;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11468:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11455:10;:49;:90;;;;-1:-1:-1::0;11544:1:136::1;11520:21;1053:6;11520:10:::0;:21:::1;:::i;:::-;:25;11455:90;11438:307;;;11590:1;11570:9;:17;11580:6;-1:-1:-1::0;;;;;11570:17:136::1;-1:-1:-1::0;;;;;11570:17:136::1;;;;;;;;;;;;:21;;;;11612:6;-1:-1:-1::0;;;;;11605:33:136::1;;11639:8;-1:-1:-1::0;;;;;11639:13:136::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11656:10;11605:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11686:48:136::1;::::0;10798:25:139;;;-1:-1:-1;;;;;11686:48:136;::::1;::::0;-1:-1:-1;11703:10:136::1;::::0;-1:-1:-1;11686:48:136::1;::::0;10786:2:139;10771:18;11686:48:136::1;;;;;;;11438:307;-1:-1:-1::0;;1701:1:22;2628:7;:22;11156:595:136:o;9593:838::-;-1:-1:-1;;;;;9664:20:136;;;9648:13;9664:20;;;:12;:20;;;;;;;;;;;;9713:14;;;:7;:14;;;;;;;;9741:13;;9737:688;;;-1:-1:-1;;;;;9793:19:136;;9770:20;9793:19;;;:11;:19;;;;;;;9843:5;;9906:28;;;;9793:19;10018:21;9793:19;9843:5;10018:21;:::i;:::-;10001:38;-1:-1:-1;10115:10:136;;10111:197;;10145:14;10194:4;10163:27;10184:6;10171:9;10163:27;:::i;:::-;10162:36;;;;:::i;:::-;-1:-1:-1;;;;;10266:17:136;;;;;;:9;:17;;;;;:27;;10145:53;;-1:-1:-1;10145:53:136;;10266:17;;;:27;;10145:53;;10266:27;:::i;:::-;;;;-1:-1:-1;;;9737:688:136;;;10544:122;10437:235;;:::o;9737:688::-;10360:5;;-1:-1:-1;;;;;10338:19:136;;;;;;:11;:19;;;;;:27;9593:838;;;:::o;2433:187:4:-;2525:6;;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:395:139:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;166:8;156;149:26;108:2;-1:-1:-1;196:20:139;;-1:-1:-1;;;;;228:30:139;;225:2;;;278:8;268;261:26;225:2;322:4;314:6;310:17;298:29;;382:3;375:4;365:6;362:1;358:14;350:6;346:27;342:38;339:47;336:2;;;399:1;396;389:12;336:2;98:311;;;;;:::o;414:768::-;468:5;521:3;514:4;506:6;502:17;498:27;488:2;;543:5;536;529:20;488:2;583:6;570:20;609:4;633:60;649:43;689:2;649:43;:::i;:::-;633:60;:::i;:::-;715:3;739:2;734:3;727:15;767:2;762:3;758:12;751:19;;802:2;794:6;790:15;854:3;849:2;843;840:1;836:10;828:6;824:23;820:32;817:41;814:2;;;875:5;868;861:20;814:2;901:5;915:238;929:2;926:1;923:9;915:238;;;1000:3;987:17;1017:31;1042:5;1017:31;:::i;:::-;1061:18;;1099:12;;;;1131;;;;947:1;940:9;915:238;;;-1:-1:-1;1171:5:139;;478:704;-1:-1:-1;;;;;;;478:704:139:o;1187:879::-;1251:5;1304:3;1297:4;1289:6;1285:17;1281:27;1271:2;;1326:5;1319;1312:20;1271:2;1366:6;1353:20;1392:4;1416:60;1432:43;1472:2;1432:43;:::i;1416:60::-;1498:3;1522:2;1517:3;1510:15;1550:2;1545:3;1541:12;1534:19;;1585:2;1577:6;1573:15;1637:3;1632:2;1626;1623:1;1619:10;1611:6;1607:23;1603:32;1600:41;1597:2;;;1658:5;1651;1644:20;1597:2;1684:5;1698:339;1712:2;1709:1;1706:9;1698:339;;;1789:3;1776:17;-1:-1:-1;;;;;1812:11:139;1809:35;1806:2;;;1861:5;1854;1847:20;1806:2;1894:68;1958:3;1953:2;1939:11;1931:6;1927:24;1923:33;1894:68;:::i;:::-;1882:81;;-1:-1:-1;1983:12:139;;;;2015;;;;1730:1;1723:9;1698:339;;2071:257;2130:6;2183:2;2171:9;2162:7;2158:23;2154:32;2151:2;;;2204:6;2196;2189:22;2151:2;2248:9;2235:23;2267:31;2292:5;2267:31;:::i;:::-;2317:5;2141:187;-1:-1:-1;;;2141:187:139:o;2333:261::-;2403:6;2456:2;2444:9;2435:7;2431:23;2427:32;2424:2;;;2477:6;2469;2462:22;2424:2;2514:9;2508:16;2533:31;2558:5;2533:31;:::i;2599:539::-;2676:6;2684;2692;2745:2;2733:9;2724:7;2720:23;2716:32;2713:2;;;2766:6;2758;2751:22;2713:2;2810:9;2797:23;2829:31;2854:5;2829:31;:::i;:::-;2879:5;-1:-1:-1;2936:2:139;2921:18;;2908:32;2949:33;2908:32;2949:33;:::i;:::-;3001:7;-1:-1:-1;3060:2:139;3045:18;;3032:32;3073:33;3032:32;3073:33;:::i;:::-;3125:7;3115:17;;;2703:435;;;;;:::o;3143:368::-;3227:6;3280:2;3268:9;3259:7;3255:23;3251:32;3248:2;;;3301:6;3293;3286:22;3248:2;3346:9;3333:23;-1:-1:-1;;;;;3371:6:139;3368:30;3365:2;;;3416:6;3408;3401:22;3365:2;3444:61;3497:7;3488:6;3477:9;3473:22;3444:61;:::i;:::-;3434:71;3238:273;-1:-1:-1;;;;3238:273:139:o;3516:660::-;3659:6;3667;3720:2;3708:9;3699:7;3695:23;3691:32;3688:2;;;3741:6;3733;3726:22;3688:2;3786:9;3773:23;-1:-1:-1;;;;;3856:2:139;3848:6;3845:14;3842:2;;;3877:6;3869;3862:22;3842:2;3905:61;3958:7;3949:6;3938:9;3934:22;3905:61;:::i;:::-;3895:71;;4019:2;4008:9;4004:18;3991:32;3975:48;;4048:2;4038:8;4035:16;4032:2;;;4069:6;4061;4054:22;4032:2;;4097:73;4162:7;4151:8;4140:9;4136:24;4097:73;:::i;:::-;4087:83;;;3678:498;;;;;:::o;4181:728::-;4333:6;4341;4349;4402:2;4390:9;4381:7;4377:23;4373:32;4370:2;;;4423:6;4415;4408:22;4370:2;4468:9;4455:23;-1:-1:-1;;;;;4538:2:139;4530:6;4527:14;4524:2;;;4559:6;4551;4544:22;4524:2;4587:61;4640:7;4631:6;4620:9;4616:22;4587:61;:::i;:::-;4577:71;;4701:2;4690:9;4686:18;4673:32;4657:48;;4730:2;4720:8;4717:16;4714:2;;;4751:6;4743;4736:22;4714:2;;4779:73;4844:7;4833:8;4822:9;4818:24;4779:73;:::i;:::-;4769:83;;;4899:2;4888:9;4884:18;4871:32;4861:42;;4360:549;;;;;:::o;4914:297::-;4981:6;5034:2;5022:9;5013:7;5009:23;5005:32;5002:2;;;5055:6;5047;5040:22;5002:2;5092:9;5086:16;5145:5;5138:13;5131:21;5124:5;5121:32;5111:2;;5172:6;5164;5157:22;5216:190;5275:6;5328:2;5316:9;5307:7;5303:23;5299:32;5296:2;;;5349:6;5341;5334:22;5296:2;-1:-1:-1;5377:23:139;;5286:120;-1:-1:-1;5286:120:139:o;5411:194::-;5481:6;5534:2;5522:9;5513:7;5509:23;5505:32;5502:2;;;5555:6;5547;5540:22;5502:2;-1:-1:-1;5583:16:139;;5492:113;-1:-1:-1;5492:113:139:o;5610:325::-;5678:6;5686;5739:2;5727:9;5718:7;5714:23;5710:32;5707:2;;;5760:6;5752;5745:22;5707:2;5801:9;5788:23;5778:33;;5861:2;5850:9;5846:18;5833:32;5874:31;5899:5;5874:31;:::i;:::-;5924:5;5914:15;;;5697:238;;;;;:::o;5940:393::-;6017:6;6025;6033;6086:2;6074:9;6065:7;6061:23;6057:32;6054:2;;;6107:6;6099;6092:22;6054:2;6148:9;6135:23;6125:33;;6208:2;6197:9;6193:18;6180:32;6221:31;6246:5;6221:31;:::i;:::-;6044:289;;6271:5;;-1:-1:-1;;;6323:2:139;6308:18;;;;6295:32;;6044:289::o;6338:870::-;6468:6;6476;6484;6492;6500;6553:2;6541:9;6532:7;6528:23;6524:32;6521:2;;;6574:6;6566;6559:22;6521:2;6615:9;6602:23;6592:33;;6676:2;6665:9;6661:18;6648:32;-1:-1:-1;;;;;6740:2:139;6732:6;6729:14;6726:2;;;6761:6;6753;6746:22;6726:2;6805:70;6867:7;6858:6;6847:9;6843:22;6805:70;:::i;:::-;6894:8;;-1:-1:-1;6779:96:139;-1:-1:-1;6982:2:139;6967:18;;6954:32;;-1:-1:-1;6998:16:139;;;6995:2;;;7032:6;7024;7017:22;6995:2;;7076:72;7140:7;7129:8;7118:9;7114:24;7076:72;:::i;:::-;6511:697;;;;-1:-1:-1;6511:697:139;;-1:-1:-1;7167:8:139;;7050:98;6511:697;-1:-1:-1;;;6511:697:139:o;7213:258::-;7281:6;7289;7342:2;7330:9;7321:7;7317:23;7313:32;7310:2;;;7363:6;7355;7348:22;7310:2;-1:-1:-1;;7391:23:139;;;7461:2;7446:18;;;7433:32;;-1:-1:-1;7300:171:139:o;7476:463::-;7529:3;7567:5;7561:12;7594:6;7589:3;7582:19;7620:4;7649:2;7644:3;7640:12;7633:19;;7686:2;7679:5;7675:14;7707:3;7719:195;7733:6;7730:1;7727:13;7719:195;;;7798:13;;-1:-1:-1;;;;;7794:39:139;7782:52;;7854:12;;;;7889:15;;;;7830:1;7748:9;7719:195;;;-1:-1:-1;7930:3:139;;7537:402;-1:-1:-1;;;;;7537:402:139:o;7944:430::-;8073:3;8111:6;8105:13;8136:3;8148:129;8162:6;8159:1;8156:13;8148:129;;;8260:4;8244:14;;;8240:25;;8234:32;8221:11;;;8214:53;8177:12;8148:129;;;8295:6;8292:1;8289:13;8286:2;;;8330:3;8321:6;8316:3;8312:16;8305:29;8286:2;-1:-1:-1;8352:16:139;;;;;8081:293;-1:-1:-1;;8081:293:139:o;8379:203::-;-1:-1:-1;;;;;8543:32:139;;;;8525:51;;8513:2;8498:18;;8480:102::o;9356:358::-;-1:-1:-1;;;;;9563:32:139;;9545:51;;9632:2;9627;9612:18;;9605:30;;;-1:-1:-1;;9652:56:139;;9689:18;;9681:6;9652:56;:::i;9719:274::-;-1:-1:-1;;;;;9911:32:139;;;;9893:51;;9975:2;9960:18;;9953:34;9881:2;9866:18;;9848:145::o;11177:332::-;11379:2;11361:21;;;11418:1;11398:18;;;11391:29;-1:-1:-1;;;11451:2:139;11436:18;;11429:39;11500:2;11485:18;;11351:158::o;12270:342::-;12472:2;12454:21;;;12511:2;12491:18;;;12484:30;-1:-1:-1;;;12545:2:139;12530:18;;12523:48;12603:2;12588:18;;12444:168::o;16297:332::-;16504:6;16493:9;16486:25;16547:2;16542;16531:9;16527:18;16520:30;16467:4;16567:56;16619:2;16608:9;16604:18;16596:6;16567:56;:::i;17138:275::-;17209:2;17203:9;17274:2;17255:13;;-1:-1:-1;;17251:27:139;17239:40;;-1:-1:-1;;;;;17294:34:139;;17330:22;;;17291:62;17288:2;;;17356:18;;:::i;:::-;17392:2;17385:22;17183:230;;-1:-1:-1;17183:230:139:o;17418:183::-;17478:4;-1:-1:-1;;;;;17503:6:139;17500:30;17497:2;;;17533:18;;:::i;:::-;-1:-1:-1;17578:1:139;17574:14;17590:4;17570:25;;17487:114::o;17606:267::-;17645:3;17673:11;;;17700:10;;-1:-1:-1;;;;;17719:27:139;;;17712:35;;17696:52;17693:2;;;17751:18;;:::i;:::-;-1:-1:-1;;;17798:19:139;;;17791:27;;17783:36;;17780:2;;;17822:18;;:::i;:::-;-1:-1:-1;;17858:9:139;;17653:220::o;17878:128::-;17918:3;17949:1;17945:6;17942:1;17939:13;17936:2;;;17955:18;;:::i;:::-;-1:-1:-1;17991:9:139;;17926:80::o;18011:193::-;18050:1;18076;18066:2;;18081:18;;:::i;:::-;-1:-1:-1;;;18117:18:139;;-1:-1:-1;;18137:13:139;;18113:38;18110:2;;;18154:18;;:::i;:::-;-1:-1:-1;18188:10:139;;18056:148::o;18209:120::-;18249:1;18275;18265:2;;18280:18;;:::i;:::-;-1:-1:-1;18314:9:139;;18255:74::o;18334:577::-;18373:7;-1:-1:-1;;;;;18443:15:139;;;18477;;;18508:11;;;18527:10;;;18521:17;;18504:35;18501:2;;;18542:18;;:::i;:::-;-1:-1:-1;;;18611:15:139;;;18642:11;;;18662;;;18655:19;;18638:37;18635:2;;;18678:18;;:::i;:::-;18724:7;18721:1;18717:15;18707:25;;18777:1;18773:2;18768:11;18765:1;18761:19;18756:2;18752;18748:11;18744:37;18741:2;;;18784:18;;:::i;:::-;18849:1;18845:2;18840:11;18837:1;18833:19;18828:2;18824;18820:11;18816:37;18813:2;;;18856:18;;:::i;:::-;-1:-1:-1;;;18896:9:139;;;;;18385:526;-1:-1:-1;;;18385:526:139:o;18916:168::-;18956:7;19022:1;19018;19014:6;19010:14;19007:1;19004:21;18999:1;18992:9;18985:17;18981:45;18978:2;;;19029:18;;:::i;:::-;-1:-1:-1;19069:9:139;;18968:116::o;19089:270::-;19128:4;19157:12;;;19185:10;;-1:-1:-1;;;19204:19:139;;19197:27;;19181:44;19178:2;;;19228:18;;:::i;:::-;-1:-1:-1;;;;;19275:27:139;;19268:35;;19260:44;;19257:2;;;19307:18;;:::i;:::-;-1:-1:-1;;19344:9:139;;19137:222::o;19364:125::-;19404:4;19432:1;19429;19426:8;19423:2;;;19437:18;;:::i;:::-;-1:-1:-1;19474:9:139;;19413:76::o;19494:135::-;19533:3;-1:-1:-1;;19554:17:139;;19551:2;;;19574:18;;:::i;:::-;-1:-1:-1;19621:1:139;19610:13;;19541:88::o;19634:138::-;19669:3;-1:-1:-1;;;19690:22:139;;19687:2;;;19715:18;;:::i;:::-;19751:15;;19677:95::o;19777:127::-;19838:10;19833:3;19829:20;19826:1;19819:31;19869:4;19866:1;19859:15;19893:4;19890:1;19883:15;19909:127;19970:10;19965:3;19961:20;19958:1;19951:31;20001:4;19998:1;19991:15;20025:4;20022:1;20015:15;20041:127;20102:10;20097:3;20093:20;20090:1;20083:31;20133:4;20130:1;20123:15;20157:4;20154:1;20147:15;20173:131;-1:-1:-1;;;;;20248:31:139;;20238:42;;20228:2;;20294:1;20291;20284:12"},"methodIdentifiers":{"attachTokenToGauge(uint256,address)":"698473e3","bribes(address)":"a8c5d95a","claimBribes(address[],address[][],uint256)":"7715ee75","claimRewards(address[],address[][])":"20b1cb6f","claimable(address)":"402914f5","detachTokenFromGauge(uint256,address)":"411b1f77","distribute()":"e4fc6b6d","distribute(address)":"63453ae1","distribute(address[])":"6138889b","distribute(uint256,uint256)":"7625391a","distro()":"47b3c6ba","emissionController()":"6dee2012","emitDeposit(uint256,address,uint256)":"a61c713a","emitWithdraw(uint256,address,uint256)":"ea94ee44","gauges(address)":"b9a09fd5","isGauge(address)":"aa79979b","length()":"1f7b6d32","notifyRewardAmount(uint256)":"3c6b16ab","owner()":"8da5cb5b","poke(uint256)":"32145f90","poolForGauge(address)":"06d6a1b2","poolVote(uint256,uint256)":"a86a366d","pools(uint256)":"ac4afa38","registerGauge(address,address,address)":"af67c638","registry()":"7b103999","renounceOwnership()":"715018a6","reset(uint256)":"310bd74b","toggleWhitelist(address)":"39393ac9","totalWeight()":"96c82e57","transferOwnership(address)":"f2fde38b","updateAll()":"53d78693","updateFor(address[])":"d560b0d7","updateForRange(uint256,uint256)":"9b6a9d72","updateGauge(address)":"6ecbe38a","usedWeights(uint256)":"79e93824","vote(uint256,address[],int256[])":"fecdad60","votes(uint256,address)":"d23254b4","weights(address)":"a7cac846","whitelist(address)":"9b19251a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_emissionController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_governance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Abstained\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Attach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Detach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DistributeReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bribe\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"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\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whitelister\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"Whitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"attachTokenToGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"bribes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_bribes\",\"type\":\"address[]\"},{\"internalType\":\"address[][]\",\"name\":\"_tokens\",\"type\":\"address[][]\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"claimBribes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_gauges\",\"type\":\"address[]\"},{\"internalType\":\"address[][]\",\"name\":\"_tokens\",\"type\":\"address[][]\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"detachTokenFromGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_gauges\",\"type\":\"address[]\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finish\",\"type\":\"uint256\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distro\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emissionController\",\"outputs\":[{\"internalType\":\"contract IEmissionController\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emitDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emitWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"gauges\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isGauge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"length\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"poke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"poolForGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"poolVote\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pools\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_bribefactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gaugefactory\",\"type\":\"address\"}],\"name\":\"registerGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"reset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"what\",\"type\":\"address\"}],\"name\":\"toggleWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_gauges\",\"type\":\"address[]\"}],\"name\":\"updateFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"updateForRange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"}],\"name\":\"updateGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"usedWeights\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_poolVote\",\"type\":\"address[]\"},{\"internalType\":\"int256[]\",\"name\":\"_weights\",\"type\":\"int256[]\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"weights\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions 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\":{\"contracts/voter/BaseV1Voter.sol\":\"BaseV1Voter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/interfaces/IERC721Receiver.sol\":{\"keccak256\":\"0x7bd5dc796c245d4c52836610455d172cdfcc1f8dcf0d9b1c4cbde212fde02965\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2305d1c655365cb05fa89cfbf2725cb68f3c6adf5d73da0176cc01bedebe961\",\"dweb:/ipfs/QmS3tu5EST14obbRvPRTm4h8Etfjn3vSfsW3CnbNd4ho8W\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"contracts/interfaces/IBribe.sol\":{\"keccak256\":\"0x6598f44b1f30ff6a0d2384c8b6bda69a41af97601793b07259afb5b9f34f76f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67fb0d96642da60178066ab5e9b91a8ab5773db2050348b75f315dcc265885de\",\"dweb:/ipfs/QmUype1TPuTYCk3UJAeNhWNYgGSbG6PoMkzXsUuJFbxreQ\"]},\"contracts/interfaces/IBribeFactory.sol\":{\"keccak256\":\"0x17e891f801dd4fd0636bf0dc89640047601942d6c2191edff32e3344f7882e7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6d2b2922adf4dc632b67d2384fd481d0442183876bcf7a27620c2e0779804f4\",\"dweb:/ipfs/QmU27qrGnKbsh2ZEgKfADfS9URHhZXM9VaVvzdVeD27Ytu\"]},\"contracts/interfaces/IEmissionController.sol\":{\"keccak256\":\"0x215a5b7ff3746ff804247f59ea1b55155873be560f8e676fcaefd7a58c9fbd83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://747e34f194cd6ac87b4d2e317fae58d94f3e1b4d4fde66af99c15c794a7728ee\",\"dweb:/ipfs/QmdzD9zZX8YwxAK8yuP54sWMcMBAifF6p4zRa51gspFFgx\"]},\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeFactory.sol\":{\"keccak256\":\"0x3115db7b4b5e8881542331dc44dc88c3d44285ecc5f857460f1503b89b23fb53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://170c083969a897ed89d2fe5aef81b772344e3d66052b8b96b442ed3cd17720a6\",\"dweb:/ipfs/QmXuVFUv2PEDN6kNksH5FtpBa8FP3ww15mwHcvCNcC8Q2H\"]},\"contracts/interfaces/IGaugeVoter.sol\":{\"keccak256\":\"0x54c14e720f56dde83d9e55c0ad2d4e093a10fde653609e1237041e5bc50145cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf14df23ab1c55dbb4fe902aae06d8e479db5a747203e78437f63c78f7da9a2\",\"dweb:/ipfs/QmdpvgKgnyybD7oM68kCS6U9S8LBpUK6tQs6ZkSgdL3Zhd\"]},\"contracts/interfaces/IOldVotingEscrow.sol\":{\"keccak256\":\"0x61bba69802290944ff257142964ad303b57a278e543916d9857573a63cdb9db4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d37e163a5d1115e374d95a4bbb8ae7e0b5214e96888f559a3fa0f66d1266359\",\"dweb:/ipfs/QmUaVTGFH3MyMWe1RSUY5TePCKTfKpaxuGNeWJVnuC3GeP\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0xf96e272aaab4fa44e2c24916b9f6cc4e648962b4adf7ffd597b67d77168f0333\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb1b26c74a947eda590a3129b42c8aaaa124f4a781f4d3c2b35f043772193ffe\",\"dweb:/ipfs/QmUcNrUgiPFUBr6ZcGRyh4KgEx7eMRSi5ESJFVLyLtd4nA\"]},\"contracts/voter/BaseV1Voter.sol\":{\"keccak256\":\"0xc80a6a9f0ddec43978dbe010f25254ecccb57baf6031258027a59362ddf6c9e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a267cb8c43d13c2a73d96cae62b6ed8f756d0777490e05ed88a30e8b6fa7ca32\",\"dweb:/ipfs/QmZZJj9WKFpahezEXeBbgTfuHXtKLrE19nGaoBnJ7NTMTS\"]}},\"version\":1}"}},"contracts/voter/BaseV2Voter.sol":{"BaseV2Voter":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Abstained","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"Attach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"Detach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DistributeReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"GaugeCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"GaugeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","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":"voter","type":"address"},{"indexed":false,"internalType":"address","name":"tokenId","type":"address"},{"indexed":false,"internalType":"int256","name":"weight","type":"int256"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whitelister","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"attachStakerToGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"attachments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bribes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"detachStakerFromGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gauges","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isGauge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"length","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"poke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"poolForGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolVote","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pools","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_bribe","type":"address"},{"internalType":"address","name":"_gauge","type":"address"}],"name":"registerGaugeBribe","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"resetFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"what","type":"address"}],"name":"toggleWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"updateFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"updateForRange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"updateGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_newbribe","type":"address"},{"internalType":"address","name":"_newgauge","type":"address"}],"name":"updateGaugeBribe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"usedWeights","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_poolVote","type":"address[]"},{"internalType":"int256[]","name":"_weights","type":"int256[]"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"votes","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"weights","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:139","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:139"},"nodeType":"YulFunctionCall","src":"143:22:139"},"nodeType":"YulExpressionStatement","src":"143:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:139"},"nodeType":"YulFunctionCall","src":"112:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:139"},"nodeType":"YulFunctionCall","src":"108:32:139"},"nodeType":"YulIf","src":"105:2:139"},{"nodeType":"YulVariableDeclaration","src":"176:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:139"},"nodeType":"YulFunctionCall","src":"189:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:139"},"nodeType":"YulFunctionCall","src":"270:22:139"},"nodeType":"YulExpressionStatement","src":"270:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:139"},"nodeType":"YulFunctionCall","src":"249:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:139"},"nodeType":"YulFunctionCall","src":"245:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:139"},"nodeType":"YulFunctionCall","src":"234:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:139"},"nodeType":"YulFunctionCall","src":"224:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:139"},"nodeType":"YulFunctionCall","src":"217:50:139"},"nodeType":"YulIf","src":"214:2:139"},{"nodeType":"YulAssignment","src":"303:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:139","type":""}],"src":"14:310:139"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n        value0 := value\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b5060405162002a7638038062002a768339810160408190526200003491620000ac565b600160005562000044336200005a565b60601b6001600160601b031916608052620000dc565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208284031215620000be578081fd5b81516001600160a01b0381168114620000d5578182fd5b9392505050565b60805160601c61292e620001486000396000818161036601528181610547015281816107cb015281816109e201528181610b0f01528181610c0b01528181610d7d0152818161189901528181611df001528181611ef6015281816120170152612159015261292e6000f3fe608060405234801561001057600080fd5b50600436106101db5760003560e01c80638da5cb5b11610105578063b1a997ac1161009d578063b1a997ac1461047a578063b9a09fd51461048d578063c48f5af4146104b6578063cad1b906146104c9578063d560b0d7146104f4578063d826f88f14610507578063e32e4e881461050f578063e4fc6b6d14610522578063f2fde38b1461052a57600080fd5b80638da5cb5b1461038857806396c82e571461039957806397a302f7146103a25780639b19251a146103b55780639b6a9d72146103e8578063a7cac846146103fb578063a8c5d95a1461041b578063aa79979b14610444578063ac4afa381461046757600080fd5b806353d786931161017857806353d78693146102d2578063551e0566146102da5780636138889b146102ed57806363453ae1146103005780636405eacd146103135780636ecbe38a14610333578063715018a6146103465780637625391a1461034e5780637b1039991461036157600080fd5b80622f8de4146101e057806306d6a1b2146102135780631cdf2eb9146102495780631f7b6d321461025e57806320217176146102665780632efce57b1461027957806339393ac91461028c5780633c6b16ab1461029f578063402914f5146102b2575b600080fd5b6102006101ee366004612360565b600a6020526000908152604090205481565b6040519081526020015b60405180910390f35b61023c610221366004612360565b6005602052600090815260409020546001600160a01b031681565b60405161020a91906125ed565b61025c6102573660046123d7565b61053d565b005b600354610200565b61025c610274366004612360565b6107c9565b61025c61028736600461244c565b6108bc565b61025c61029a366004612360565b610971565b61025c6102ad36600461259c565b6109e0565b6102006102c0366004612360565b60106020526000908152604090205481565b61025c610bee565b61023c6102e83660046123d7565b610bff565b61025c6102fb3660046124b5565b610f9c565b61025c61030e366004612360565b610fee565b610200610321366004612360565b600d6020526000908152604090205481565b61025c610341366004612360565b610ff7565b61025c611000565b61025c61035c3660046125cc565b611012565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031661023c565b61020060025481565b61025c6103b0366004612360565b61108b565b6103d86103c3366004612360565b600c6020526000908152604090205460ff1681565b604051901515815260200161020a565b61025c6103f63660046125cc565b611125565b610200610409366004612360565b60076020526000908152604090205481565b61023c610429366004612360565b6006602052600090815260409020546001600160a01b031681565b6103d8610452366004612360565b600b6020526000908152604090205460ff1681565b61023c61047536600461259c565b611199565b61025c610488366004612360565b6111c3565b61023c61049b366004612360565b6004602052600090815260409020546001600160a01b031681565b61023c6104c4366004612421565b611349565b6102006104d736600461239f565b600860209081526000928352604080842090915290825290205481565b61025c6105023660046124b5565b611381565b61025c6113cf565b61025c61051d366004612360565b6113d8565b61025c611473565b61025c610538366004612360565b611482565b6105456114f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105a057600080fd5b505af11580156105b4573d6000803e3d6000fd5b505050506001600160a01b038381166000908152600460205260409020541661061b5760405162461bcd60e51b815260206004820152601460248201527319d85d59d9481b9bdd081c9959da5cdd195c995960621b60448201526064015b60405180910390fd5b6001600160a01b0383166000908152600c602052604090205460ff166106535760405162461bcd60e51b81526004016106129061263d565b6001600160a01b0382166000908152600c602052604090205460ff1661068b5760405162461bcd60e51b8152600401610612906126a2565b6001600160a01b0381166000908152600c602052604090205460ff166106c35760405162461bcd60e51b81526004016106129061266b565b6001600160a01b03838116600081815260046020908152604080832080548616808552600680855283862080546001600160a01b0319908116909155835481168a8a169081179094556005808752858820805483169055600b808852868920805460ff19908116909155958952928752858820805483169a8d169a909a1790995597855283862080549098169096179096559390915290208054909116600117905561076e82611552565b836001600160a01b0316836001600160a01b0316836001600160a01b03167f4d7ce501eb0e91cd95cabaadabaec91f7e30501bfcd995e6baccfed91da5294b336040516107bb91906125ed565b60405180910390a450505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082257600080fd5b505afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a9190612383565b6001600160a01b0316336001600160a01b0316146108b05760405162461bcd60e51b81526020600482015260136024820152721b9bdd081cdd185ad95c8818dbdb9d1c9858dd606a1b6044820152606401610612565b6108b981611636565b50565b8281146108fd5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964207765696768747360881b6044820152606401610612565b61096b338585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201919091525061188692505050565b50505050565b6109796114f8565b6001600160a01b0381166000818152600c6020908152604091829020805460ff8082161560ff199092168217909255925192161515825233917fc8a125677224e7125b3579c5a10de1afe210f4c1c1d3c27be0f12b0c4a14c915910160405180910390a350565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dee20126040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3957600080fd5b505afa158015610a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a719190612383565b6001600160a01b0316336001600160a01b031614610acb5760405162461bcd60e51b81526020600482015260176024820152763737ba1032b6b4b9b9b4b7b71031b7b73a3937b63632b960491b6044820152606401610612565b600254600090610ae383670de0b6b3a76400006127f7565b610aed9190612760565b90508015610b0d5780600e6000828254610b07919061271a565b90915550505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190612383565b6001600160a01b0316336001600160a01b03167ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf5082684604051610be291815260200190565b60405180910390a35050565b600354610bfd90600090611125565b565b6000610c096114f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6457600080fd5b505af1158015610c78573d6000803e3d6000fd5b505050506001600160a01b038481166000908152600460205260409020541615610cd35760405162461bcd60e51b815260206004820152600c60248201526b67617567652065786973747360a01b6044820152606401610612565b6001600160a01b0384166000908152600c602052604090205460ff16610d0b5760405162461bcd60e51b81526004016106129061263d565b6001600160a01b0383166000908152600c602052604090205460ff16610d435760405162461bcd60e51b8152600401610612906126a2565b6001600160a01b0382166000908152600c602052604090205460ff16610d7b5760405162461bcd60e51b81526004016106129061266b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610dd457600080fd5b505afa158015610de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0c9190612383565b6001600160a01b031663095ea7b3836000196040518363ffffffff1660e01b8152600401610e3b929190612601565b602060405180830381600087803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d919061257c565b506001600160a01b0380831660008181526006602090815260408083208054868a166001600160a01b031991821617909155948916808452600483528184208054871686179055938352600582528083208054909516909317909355600b9092529020805460ff19166001179055610f0482611552565b600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b03868116918217909255604051909185811691908516907f48d3c521fd0d5541640f58c6d6381eed7cb2e8c9df421ae165a4f4c2d221ee0d90610f8d9033906125ed565b60405180910390a45092915050565b60005b8151811015610fea57610fd8828281518110610fcb57634e487b7160e01b600052603260045260246000fd5b6020026020010151611d93565b80610fe28161286c565b915050610f9f565b5050565b6108b981611d93565b6108b981611552565b6110086114f8565b610bfd6000612282565b815b8181101561108657611074600460006003848154811061104457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190205416611d93565b8061107e8161286c565b915050611014565b505050565b336000908152600b602052604090205460ff166110ba5760405162461bcd60e51b81526004016106129061261a565b6001600160a01b0381166000908152600d60205260409020546110de90600161271a565b6001600160a01b0382166000818152600d602052604080822093909355915133927f641bf376905299ee0c14255d96d80f858c848237b2ac4f0ce467affe4e4b960591a350565b815b8181101561108657611187600460006003848154811061115757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190205416611552565b806111918161286c565b915050611127565b600381815481106111a957600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03811660009081526009602090815260408083208054825181850281018501909352808352919290919083018282801561122d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161120f575b5050505050905060008151905060008167ffffffffffffffff81111561126357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561128c578160200160208202803683370190505b50905060005b8281101561133d576001600160a01b038516600090815260086020526040812085519091908690849081106112d757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205482828151811061132057634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806113358161286c565b915050611292565b5061096b848483611886565b6009602052816000526040600020818154811061136557600080fd5b6000918252602090912001546001600160a01b03169150829050565b60005b8151811015610fea576113bd8282815181106113b057634e487b7160e01b600052603260045260246000fd5b6020026020010151611552565b806113c78161286c565b915050611384565b610bfd33611636565b336000908152600b602052604090205460ff166114075760405162461bcd60e51b81526004016106129061261a565b6001600160a01b0381166000908152600d602052604090205461142c90600190612855565b6001600160a01b0382166000818152600d602052604080822093909355915133927ff655d5448541f499e8d15e12be905bce1d45ff3df14aeca2d174cc9eda1664e591a350565b600354610bfd90600090611012565b61148a6114f8565b6001600160a01b0381166114ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610612565b6108b981612282565b6001546001600160a01b03163314610bfd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610612565b6001600160a01b0380821660009081526005602090815260408083205490931680835260079091529181205490811315611615576001600160a01b0383166000908152600f602052604081208054600e5491829055916115b28383612855565b9050801561160d576000670de0b6b3a76400006115cf83876127f7565b6115d99190612760565b6001600160a01b03881660009081526010602052604081208054929350839290919061160690849061271a565b9091555050505b505050505050565b600e546001600160a01b0384166000908152600f6020526040902055505050565b6001600160a01b038116600090815260096020526040812080549091805b8281101561184057600084828154811061167e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03898116845260088352604080852091909216808552925290912054909150801561182b576001600160a01b038083166000908152600460205260409020546116dc9116611552565b6001600160a01b03821660009081526007602052604081208054839290611704908490612816565b90915550506001600160a01b03808816600090815260086020908152604080832093861683529290529081208054839290611740908490612816565b909155505060008113156117e4576001600160a01b038281166000908152600460208181526040808420548516845260069091529182902054915163293311ab60e01b8152908101849052898316602482015291169063293311ab90604401600060405180830381600087803b1580156117b957600080fd5b505af11580156117cd573d6000803e3d6000fd5b5050505080846117dd91906126d9565b93506117f1565b6117ee8185612816565b93505b7fc1bfb37c7ef0c045eeb49dfda5c409cf0f4964f3a006b9ff1c487b39d1682c818782604051611822929190612601565b60405180910390a15b505080806118389061286c565b915050611654565b5080600260008282546118539190612855565b90915550506001600160a01b0384166000908152600a602090815260408083208390556009909152812061096b916122d4565b61188f83611636565b60008251905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118f057600080fd5b505afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119289190612383565b90506000816001600160a01b0316633a02a42d876040518263ffffffff1660e01b815260040161195891906125ed565b60206040518083038186803b15801561197057600080fd5b505afa158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a891906125b4565b90506000806000805b86811015611a655760008882815181106119db57634e487b7160e01b600052603260045260246000fd5b602002602001015113611a1e57878181518110611a0857634e487b7160e01b600052603260045260246000fd5b6020026020010151611a1990612887565b611a47565b878181518110611a3e57634e487b7160e01b600052603260045260246000fd5b60200260200101515b611a5190856126d9565b935080611a5d8161286c565b9150506119b1565b5060005b86811015611d55576000898281518110611a9357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03808216600090815260048452604080822054909216808252600b909452205490925060ff1615611d4057600086888c8681518110611af557634e487b7160e01b600052603260045260246000fd5b6020026020010151611b079190612774565b611b119190612732565b6001600160a01b03808f1660009081526008602090815260408083209388168352929052205490915015611b735760405162461bcd60e51b81526020600482015260096024820152680766f746573203d20360bc1b6044820152606401610612565b80611bb15760405162461bcd60e51b815260206004820152600e60248201526d0706f6f6c776569676874203d20360941b6044820152606401610612565b611bba82611552565b6001600160a01b038d8116600090815260096020908152604080832080546001810182559084528284200180546001600160a01b0319169488169485179055928252600790529081208054839290611c139084906126d9565b90915550506001600160a01b03808e16600090815260086020908152604080832093871683529290529081208054839290611c4f9084906126d9565b90915550506000811315611cd7576001600160a01b0380831660009081526006602052604090819020549051630463cd9760e41b8152600481018490528f8316602482015291169063463cd97090604401600060405180830381600087803b158015611cba57600080fd5b505af1158015611cce573d6000803e3d6000fd5b50505050611ce3565b611ce081612887565b90505b611ced81866126d9565b9450611cf981876126d9565b9550336001600160a01b03167f6313944499515bb2add64302f02a3082da9b13539bc2ca6317630260d7ebca628e83604051611d36929190612601565b60405180910390a2505b50508080611d4d9061286c565b915050611a69565b508160026000828254611d68919061271a565b90915550506001600160a01b039098166000908152600a602052604090209790975550505050505050565b60026000541415611de65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610612565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dee20126040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4757600080fd5b505afa158015611e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7f9190612383565b6001600160a01b0316636a2ab6026040518163ffffffff1660e01b815260040160206040518083038186803b158015611eb757600080fd5b505afa158015611ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eef919061257c565b15611fd8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dee20126040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4d57600080fd5b505afa158015611f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f859190612383565b6001600160a01b031663161ad7066040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b505050505b611fe181611552565b6001600160a01b03808216600081815260106020908152604091829020548251631ef0061b60e11b8152925190946399bcc052937f000000000000000000000000000000000000000000000000000000000000000090911692633de00c3692600480840193829003018186803b15801561205a57600080fd5b505afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120929190612383565b6040518263ffffffff1660e01b81526004016120ae91906125ed565b60206040518083038186803b1580156120c657600080fd5b505afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe91906125b4565b811180156121185750600061211662093a8083612760565b115b1561227957600060106000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663b66503cf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b057600080fd5b505afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190612383565b836040518363ffffffff1660e01b8152600401612206929190612601565b600060405180830381600087803b15801561222057600080fd5b505af1158015612234573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507f4fa9693cae526341d334e2862ca2413b2e503f1266255f9e0869fb36e6d89b179060200160405180910390a35b50506001600055565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b50805460008255906000526020600020908101906108b991905b8082111561230257600081556001016122ee565b5090565b8035612311816128e3565b919050565b60008083601f840112612327578081fd5b50813567ffffffffffffffff81111561233e578182fd5b6020830191508360208260051b850101111561235957600080fd5b9250929050565b600060208284031215612371578081fd5b813561237c816128e3565b9392505050565b600060208284031215612394578081fd5b815161237c816128e3565b600080604083850312156123b1578081fd5b82356123bc816128e3565b915060208301356123cc816128e3565b809150509250929050565b6000806000606084860312156123eb578081fd5b83356123f6816128e3565b92506020840135612406816128e3565b91506040840135612416816128e3565b809150509250925092565b60008060408385031215612433578182fd5b823561243e816128e3565b946020939093013593505050565b60008060008060408587031215612461578081fd5b843567ffffffffffffffff80821115612478578283fd5b61248488838901612316565b9096509450602087013591508082111561249c578283fd5b506124a987828801612316565b95989497509550505050565b600060208083850312156124c7578182fd5b823567ffffffffffffffff808211156124de578384fd5b818501915085601f8301126124f1578384fd5b813581811115612503576125036128cd565b8060051b604051601f19603f83011681018181108582111715612528576125286128cd565b604052828152858101935084860182860187018a1015612546578788fd5b8795505b8386101561256f5761255b81612306565b85526001959095019493860193860161254a565b5098975050505050505050565b60006020828403121561258d578081fd5b8151801515811461237c578182fd5b6000602082840312156125ad578081fd5b5035919050565b6000602082840312156125c5578081fd5b5051919050565b600080604083850312156125de578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152686e6f7420676175676560b81b604082015260600190565b6020808252601490820152731c1bdbdb081b9bdd081dda1a5d195b1a5cdd195960621b604082015260600190565b6020808252601d908201527f676175676520666163746f7279206e6f742077686974656c6973746564000000604082015260600190565b6020808252601d908201527f627269626520666163746f7279206e6f742077686974656c6973746564000000604082015260600190565b600080821280156001600160ff1b03849003851316156126fb576126fb6128a1565b600160ff1b8390038412811615612714576127146128a1565b50500190565b6000821982111561272d5761272d6128a1565b500190565b600082612741576127416128b7565b600160ff1b82146000198414161561275b5761275b6128a1565b500590565b60008261276f5761276f6128b7565b500490565b60006001600160ff1b038184138284138082168684048611161561279a5761279a6128a1565b600160ff1b848712828116878305891216156127b8576127b86128a1565b8587129250878205871284841616156127d3576127d36128a1565b878505871281841616156127e9576127e96128a1565b505050929093029392505050565b6000816000190483118215151615612811576128116128a1565b500290565b60008083128015600160ff1b850184121615612834576128346128a1565b6001600160ff1b038401831381161561284f5761284f6128a1565b50500390565b600082821015612867576128676128a1565b500390565b6000600019821415612880576128806128a1565b5060010190565b6000600160ff1b82141561289d5761289d6128a1565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108b957600080fdfea2646970667358221220a376823bd71dccacbed5518de5fa954e45a1b6eda03d80de62799224f784152764736f6c63430008040033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2A76 CODESIZE SUB DUP1 PUSH3 0x2A76 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xAC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE PUSH3 0x44 CALLER PUSH3 0x5A JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0xDC JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xBE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0xD5 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x292E PUSH3 0x148 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x366 ADD MSTORE DUP2 DUP2 PUSH2 0x547 ADD MSTORE DUP2 DUP2 PUSH2 0x7CB ADD MSTORE DUP2 DUP2 PUSH2 0x9E2 ADD MSTORE DUP2 DUP2 PUSH2 0xB0F ADD MSTORE DUP2 DUP2 PUSH2 0xC0B ADD MSTORE DUP2 DUP2 PUSH2 0xD7D ADD MSTORE DUP2 DUP2 PUSH2 0x1899 ADD MSTORE DUP2 DUP2 PUSH2 0x1DF0 ADD MSTORE DUP2 DUP2 PUSH2 0x1EF6 ADD MSTORE DUP2 DUP2 PUSH2 0x2017 ADD MSTORE PUSH2 0x2159 ADD MSTORE PUSH2 0x292E PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1DB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x105 JUMPI DUP1 PUSH4 0xB1A997AC GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xB1A997AC EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xB9A09FD5 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xC48F5AF4 EQ PUSH2 0x4B6 JUMPI DUP1 PUSH4 0xCAD1B906 EQ PUSH2 0x4C9 JUMPI DUP1 PUSH4 0xD560B0D7 EQ PUSH2 0x4F4 JUMPI DUP1 PUSH4 0xD826F88F EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0xE32E4E88 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0xE4FC6B6D EQ PUSH2 0x522 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x97A302F7 EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x9B6A9D72 EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0xA7CAC846 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xA8C5D95A EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xAA79979B EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0xAC4AFA38 EQ PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x53D78693 GT PUSH2 0x178 JUMPI DUP1 PUSH4 0x53D78693 EQ PUSH2 0x2D2 JUMPI DUP1 PUSH4 0x551E0566 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x6138889B EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x63453AE1 EQ PUSH2 0x300 JUMPI DUP1 PUSH4 0x6405EACD EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x6ECBE38A EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0x7625391A EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x2F8DE4 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x6D6A1B2 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x1CDF2EB9 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x1F7B6D32 EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0x20217176 EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0x2EFCE57B EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x39393AC9 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x402914F5 EQ PUSH2 0x2B2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x200 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23C PUSH2 0x221 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH2 0x25C PUSH2 0x257 CALLDATASIZE PUSH1 0x4 PUSH2 0x23D7 JUMP JUMPDEST PUSH2 0x53D JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x200 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x274 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x244C JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST PUSH2 0x25C PUSH2 0x29A CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x971 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x2AD CALLDATASIZE PUSH1 0x4 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x9E0 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x2C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0xBEE JUMP JUMPDEST PUSH2 0x23C PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x23D7 JUMP JUMPDEST PUSH2 0xBFF JUMP JUMPDEST PUSH2 0x25C PUSH2 0x2FB CALLDATASIZE PUSH1 0x4 PUSH2 0x24B5 JUMP JUMPDEST PUSH2 0xF9C JUMP JUMPDEST PUSH2 0x25C PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0xFEE JUMP JUMPDEST PUSH2 0x200 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x35C CALLDATASIZE PUSH1 0x4 PUSH2 0x25CC JUMP JUMPDEST PUSH2 0x1012 JUMP JUMPDEST PUSH2 0x23C PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x23C JUMP JUMPDEST PUSH2 0x200 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x3B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x108B JUMP JUMPDEST PUSH2 0x3D8 PUSH2 0x3C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20A JUMP JUMPDEST PUSH2 0x25C PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x25CC JUMP JUMPDEST PUSH2 0x1125 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x3D8 PUSH2 0x452 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x475 CALLDATASIZE PUSH1 0x4 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x1199 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x11C3 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x4C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2421 JUMP JUMPDEST PUSH2 0x1349 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x4D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x239F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x502 CALLDATASIZE PUSH1 0x4 PUSH2 0x24B5 JUMP JUMPDEST PUSH2 0x1381 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x13CF JUMP JUMPDEST PUSH2 0x25C PUSH2 0x51D CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x13D8 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x1473 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x538 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x1482 JUMP JUMPDEST PUSH2 0x545 PUSH2 0x14F8 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND PUSH2 0x61B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x19D85D59D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x263D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x68B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x26A2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x6C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x266B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 AND DUP1 DUP6 MSTORE PUSH1 0x6 DUP1 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE DUP4 SLOAD DUP2 AND DUP11 DUP11 AND SWAP1 DUP2 OR SWAP1 SWAP5 SSTORE PUSH1 0x5 DUP1 DUP8 MSTORE DUP6 DUP9 KECCAK256 DUP1 SLOAD DUP4 AND SWAP1 SSTORE PUSH1 0xB DUP1 DUP9 MSTORE DUP7 DUP10 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE SWAP6 DUP10 MSTORE SWAP3 DUP8 MSTORE DUP6 DUP9 KECCAK256 DUP1 SLOAD DUP4 AND SWAP11 DUP14 AND SWAP11 SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD SWAP1 SWAP9 AND SWAP1 SWAP7 OR SWAP1 SWAP7 SSTORE SWAP4 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x76E DUP3 PUSH2 0x1552 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x4D7CE501EB0E91CD95CABAADABAEC91F7E30501BFCD995E6BACCFED91DA5294B CALLER PUSH1 0x40 MLOAD PUSH2 0x7BB SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x85A SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1B9BDD081CDD185AD95C8818DBDB9D1C9858DD PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x1636 JUMP JUMPDEST POP JUMP JUMPDEST DUP3 DUP2 EQ PUSH2 0x8FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x696E76616C69642077656967687473 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x96B CALLER DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP10 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP1 SWAP4 POP DUP9 SWAP3 POP DUP8 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1886 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x979 PUSH2 0x14F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO PUSH1 0xFF NOT SWAP1 SWAP3 AND DUP3 OR SWAP1 SWAP3 SSTORE SWAP3 MLOAD SWAP3 AND ISZERO ISZERO DUP3 MSTORE CALLER SWAP2 PUSH32 0xC8A125677224E7125B3579C5A10DE1AFE210F4C1C1D3C27BE0F12B0C4A14C915 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6DEE2012 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA4D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA71 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xACB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH23 0x3737BA1032B6B4B9B9B4B7B71031B7B73A3937B63632B9 PUSH1 0x49 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xAE3 DUP4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x27F7 JUMP JUMPDEST PUSH2 0xAED SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB0D JUMPI DUP1 PUSH1 0xE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB07 SWAP2 SWAP1 PUSH2 0x271A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB9E SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 DUP5 PUSH1 0x40 MLOAD PUSH2 0xBE2 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xBFD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1125 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC09 PUSH2 0x14F8 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x676175676520657869737473 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x263D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x26A2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x266B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE0C SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 DUP4 PUSH1 0x0 NOT PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE3B SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE69 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE8D SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 DUP11 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE SWAP5 DUP10 AND DUP1 DUP5 MSTORE PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD DUP8 AND DUP7 OR SWAP1 SSTORE SWAP4 DUP4 MSTORE PUSH1 0x5 DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP6 AND SWAP1 SWAP4 OR SWAP1 SWAP4 SSTORE PUSH1 0xB SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xF04 DUP3 PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP1 SWAP2 DUP6 DUP2 AND SWAP2 SWAP1 DUP6 AND SWAP1 PUSH32 0x48D3C521FD0D5541640F58C6D6381EED7CB2E8C9DF421AE165A4F4C2D221EE0D SWAP1 PUSH2 0xF8D SWAP1 CALLER SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xFEA JUMPI PUSH2 0xFD8 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFCB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1D93 JUMP JUMPDEST DUP1 PUSH2 0xFE2 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x1D93 JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0x1008 PUSH2 0x14F8 JUMP JUMPDEST PUSH2 0xBFD PUSH1 0x0 PUSH2 0x2282 JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1086 JUMPI PUSH2 0x1074 PUSH1 0x4 PUSH1 0x0 PUSH1 0x3 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1044 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x1D93 JUMP JUMPDEST DUP1 PUSH2 0x107E DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1014 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x10BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x261A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10DE SWAP1 PUSH1 0x1 PUSH2 0x271A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD CALLER SWAP3 PUSH32 0x641BF376905299EE0C14255D96D80F858C848237B2AC4F0CE467AFFE4E4B9605 SWAP2 LOG3 POP JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1086 JUMPI PUSH2 0x1187 PUSH1 0x4 PUSH1 0x0 PUSH1 0x3 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1157 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x1552 JUMP JUMPDEST DUP1 PUSH2 0x1191 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x11A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x122D JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 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 0x120F JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1263 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x128C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x133D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 MLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x12D7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1320 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0x1335 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1292 JUMP JUMPDEST POP PUSH2 0x96B DUP5 DUP5 DUP4 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP DUP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xFEA JUMPI PUSH2 0x13BD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x13B0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1552 JUMP JUMPDEST DUP1 PUSH2 0x13C7 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1384 JUMP JUMPDEST PUSH2 0xBFD CALLER PUSH2 0x1636 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1407 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x261A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x142C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2855 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD CALLER SWAP3 PUSH32 0xF655D5448541F499E8D15E12BE905BCE1D45FF3DF14AECA2D174CC9EDA1664E5 SWAP2 LOG3 POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xBFD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1012 JUMP JUMPDEST PUSH2 0x148A PUSH2 0x14F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x14EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x2282 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP2 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SGT ISZERO PUSH2 0x1615 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xE SLOAD SWAP2 DUP3 SWAP1 SSTORE SWAP2 PUSH2 0x15B2 DUP4 DUP4 PUSH2 0x2855 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x160D JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH2 0x15CF DUP4 DUP8 PUSH2 0x27F7 JUMP JUMPDEST PUSH2 0x15D9 SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP DUP4 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x1606 SWAP1 DUP5 SWAP1 PUSH2 0x271A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1840 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x167E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP5 MSTORE PUSH1 0x8 DUP4 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 SWAP2 SWAP1 SWAP3 AND DUP1 DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 ISZERO PUSH2 0x182B JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x16DC SWAP2 AND PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1704 SWAP1 DUP5 SWAP1 PUSH2 0x2816 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1740 SWAP1 DUP5 SWAP1 PUSH2 0x2816 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x17E4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD DUP6 AND DUP5 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH4 0x293311AB PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP10 DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x293311AB SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP5 PUSH2 0x17DD SWAP2 SWAP1 PUSH2 0x26D9 JUMP JUMPDEST SWAP4 POP PUSH2 0x17F1 JUMP JUMPDEST PUSH2 0x17EE DUP2 DUP6 PUSH2 0x2816 JUMP JUMPDEST SWAP4 POP JUMPDEST PUSH32 0xC1BFB37C7EF0C045EEB49DFDA5C409CF0F4964F3A006B9FF1C487B39D1682C81 DUP8 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1822 SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1838 SWAP1 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1654 JUMP JUMPDEST POP DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1853 SWAP2 SWAP1 PUSH2 0x2855 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH2 0x96B SWAP2 PUSH2 0x22D4 JUMP JUMPDEST PUSH2 0x188F DUP4 PUSH2 0x1636 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1904 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1928 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3A02A42D DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1958 SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A8 SWAP2 SWAP1 PUSH2 0x25B4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1A65 JUMPI PUSH1 0x0 DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19DB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SGT PUSH2 0x1A1E JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1A08 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1A19 SWAP1 PUSH2 0x2887 JUMP JUMPDEST PUSH2 0x1A47 JUMP JUMPDEST DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1A3E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD JUMPDEST PUSH2 0x1A51 SWAP1 DUP6 PUSH2 0x26D9 JUMP JUMPDEST SWAP4 POP DUP1 PUSH2 0x1A5D DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x19B1 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A93 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0xB SWAP1 SWAP5 MSTORE KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x1D40 JUMPI PUSH1 0x0 DUP7 DUP9 DUP13 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x1AF5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1B07 SWAP2 SWAP1 PUSH2 0x2774 JUMP JUMPDEST PUSH2 0x1B11 SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1B73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x766F746573203D203 PUSH1 0xBC SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST DUP1 PUSH2 0x1BB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x706F6F6C776569676874203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x1BBA DUP3 PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE DUP3 DUP5 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 DUP9 AND SWAP5 DUP6 OR SWAP1 SSTORE SWAP3 DUP3 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C13 SWAP1 DUP5 SWAP1 PUSH2 0x26D9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C4F SWAP1 DUP5 SWAP1 PUSH2 0x26D9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x463CD97 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE DUP16 DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x463CD970 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1CE3 JUMP JUMPDEST PUSH2 0x1CE0 DUP2 PUSH2 0x2887 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x1CED DUP2 DUP7 PUSH2 0x26D9 JUMP JUMPDEST SWAP5 POP PUSH2 0x1CF9 DUP2 DUP8 PUSH2 0x26D9 JUMP JUMPDEST SWAP6 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6313944499515BB2ADD64302F02A3082DA9B13539BC2CA6317630260D7EBCA62 DUP15 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1D36 SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1D4D SWAP1 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A69 JUMP JUMPDEST POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D68 SWAP2 SWAP1 PUSH2 0x271A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP8 SWAP1 SWAP8 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1DE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6DEE2012 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E7F SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A2AB602 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ECB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EEF SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST ISZERO PUSH2 0x1FD8 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6DEE2012 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F61 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F85 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x161AD706 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1FE1 DUP2 PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD SWAP1 SWAP5 PUSH4 0x99BCC052 SWAP4 PUSH32 0x0 SWAP1 SWAP2 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x205A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x206E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2092 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20AE SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20FE SWAP2 SWAP1 PUSH2 0x25B4 JUMP JUMPDEST DUP2 GT DUP1 ISZERO PUSH2 0x2118 JUMPI POP PUSH1 0x0 PUSH2 0x2116 PUSH3 0x93A80 DUP4 PUSH2 0x2760 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x2279 JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB66503CF PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21E8 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2206 SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2234 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP3 POP CALLER SWAP2 POP PUSH32 0x4FA9693CAE526341D334E2862CA2413B2E503F1266255F9E0869FB36E6D89B17 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x8B9 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2302 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2311 DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2327 JUMPI DUP1 DUP2 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x233E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2371 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x237C DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2394 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x237C DUP2 PUSH2 0x28E3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x23BC DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CC DUP2 PUSH2 0x28E3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x23F6 DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2406 DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x2416 DUP2 PUSH2 0x28E3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2433 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x243E DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2461 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2478 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2484 DUP9 DUP4 DUP10 ADD PUSH2 0x2316 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x249C JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x24A9 DUP8 DUP3 DUP9 ADD PUSH2 0x2316 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24C7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x24DE JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x24F1 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2503 JUMPI PUSH2 0x2503 PUSH2 0x28CD JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x2528 JUMPI PUSH2 0x2528 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP11 LT ISZERO PUSH2 0x2546 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x256F JUMPI PUSH2 0x255B DUP2 PUSH2 0x2306 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x254A JUMP JUMPDEST POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x237C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25AD JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25C5 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25DE JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x6E6F74206761756765 PUSH1 0xB8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x14 SWAP1 DUP3 ADD MSTORE PUSH20 0x1C1BDBDB081B9BDD081DDA1A5D195B1A5CDD1959 PUSH1 0x62 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x676175676520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x627269626520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 SWAP1 SUB DUP6 SGT AND ISZERO PUSH2 0x26FB JUMPI PUSH2 0x26FB PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP4 SWAP1 SUB DUP5 SLT DUP2 AND ISZERO PUSH2 0x2714 JUMPI PUSH2 0x2714 PUSH2 0x28A1 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x272D JUMPI PUSH2 0x272D PUSH2 0x28A1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2741 JUMPI PUSH2 0x2741 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ PUSH1 0x0 NOT DUP5 EQ AND ISZERO PUSH2 0x275B JUMPI PUSH2 0x275B PUSH2 0x28A1 JUMP JUMPDEST POP SDIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x276F JUMPI PUSH2 0x276F PUSH2 0x28B7 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 DUP5 SGT DUP3 DUP5 SGT DUP1 DUP3 AND DUP7 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x279A JUMPI PUSH2 0x279A PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP5 DUP8 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP10 SLT AND ISZERO PUSH2 0x27B8 JUMPI PUSH2 0x27B8 PUSH2 0x28A1 JUMP JUMPDEST DUP6 DUP8 SLT SWAP3 POP DUP8 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x27D3 JUMPI PUSH2 0x27D3 PUSH2 0x28A1 JUMP JUMPDEST DUP8 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x27E9 JUMPI PUSH2 0x27E9 PUSH2 0x28A1 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP4 MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2811 JUMPI PUSH2 0x2811 PUSH2 0x28A1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0xFF SHL DUP6 ADD DUP5 SLT AND ISZERO PUSH2 0x2834 JUMPI PUSH2 0x2834 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x284F JUMPI PUSH2 0x284F PUSH2 0x28A1 JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2867 JUMPI PUSH2 0x2867 PUSH2 0x28A1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2880 JUMPI PUSH2 0x2880 PUSH2 0x28A1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ ISZERO PUSH2 0x289D JUMPI PUSH2 0x289D PUSH2 0x28A1 JUMP JUMPDEST SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8B9 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 PUSH23 0x823BD71DCCACBED5518DE5FA954E45A1B6EDA03D80DE62 PUSH26 0x9224F784152764736F6C63430008040033000000000000000000 ","sourceMap":"1165:10759:137:-:0;;;2385:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:22;1806:7;:22;936:32:4;719:10:38;936:18:4;:32::i;:::-;2426:31:137;;-1:-1:-1;;;;;;2426:31:137;;;1165:10759;;2433:187:4;2525:6;;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;14:310:139:-;84:6;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:139;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:139:o;:::-;1165:10759:137;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14770:139","statements":[{"nodeType":"YulBlock","src":"6:3:139","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:85:139","statements":[{"nodeType":"YulAssignment","src":"73:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:139"},"nodeType":"YulFunctionCall","src":"82:20:139"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:139"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"136:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"111:24:139"},"nodeType":"YulFunctionCall","src":"111:31:139"},"nodeType":"YulExpressionStatement","src":"111:31:139"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:139","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:139","type":""}],"src":"14:134:139"},{"body":{"nodeType":"YulBlock","src":"237:307:139","statements":[{"body":{"nodeType":"YulBlock","src":"286:26:139","statements":[{"expression":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"295:6:139"},{"name":"length","nodeType":"YulIdentifier","src":"303:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"288:6:139"},"nodeType":"YulFunctionCall","src":"288:22:139"},"nodeType":"YulExpressionStatement","src":"288:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"265:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"273:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"261:3:139"},"nodeType":"YulFunctionCall","src":"261:17:139"},{"name":"end","nodeType":"YulIdentifier","src":"280:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"257:3:139"},"nodeType":"YulFunctionCall","src":"257:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"250:6:139"},"nodeType":"YulFunctionCall","src":"250:35:139"},"nodeType":"YulIf","src":"247:2:139"},{"nodeType":"YulAssignment","src":"321:30:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"344:6:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"331:12:139"},"nodeType":"YulFunctionCall","src":"331:20:139"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:139"}]},{"body":{"nodeType":"YulBlock","src":"394:30:139","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"403:8:139"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"413:8:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"396:6:139"},"nodeType":"YulFunctionCall","src":"396:26:139"},"nodeType":"YulExpressionStatement","src":"396:26:139"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"366:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"374:18:139","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"363:2:139"},"nodeType":"YulFunctionCall","src":"363:30:139"},"nodeType":"YulIf","src":"360:2:139"},{"nodeType":"YulAssignment","src":"433:29:139","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"449:6:139"},{"kind":"number","nodeType":"YulLiteral","src":"457:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"445:3:139"},"nodeType":"YulFunctionCall","src":"445:17:139"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"433:8:139"}]},{"body":{"nodeType":"YulBlock","src":"522:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"531:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"534:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"524:6:139"},"nodeType":"YulFunctionCall","src":"524:12:139"},"nodeType":"YulExpressionStatement","src":"524:12:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"485:6:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"497:1:139","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"500:6:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"493:3:139"},"nodeType":"YulFunctionCall","src":"493:14:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:139"},"nodeType":"YulFunctionCall","src":"481:27:139"},{"kind":"number","nodeType":"YulLiteral","src":"510:4:139","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"477:3:139"},"nodeType":"YulFunctionCall","src":"477:38:139"},{"name":"end","nodeType":"YulIdentifier","src":"517:3:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"474:2:139"},"nodeType":"YulFunctionCall","src":"474:47:139"},"nodeType":"YulIf","src":"471:2:139"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"200:6:139","type":""},{"name":"end","nodeType":"YulTypedName","src":"208:3:139","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"216:8:139","type":""},{"name":"length","nodeType":"YulTypedName","src":"226:6:139","type":""}],"src":"153:391:139"},{"body":{"nodeType":"YulBlock","src":"619:187:139","statements":[{"body":{"nodeType":"YulBlock","src":"665:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"674:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"682:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"667:6:139"},"nodeType":"YulFunctionCall","src":"667:22:139"},"nodeType":"YulExpressionStatement","src":"667:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"640:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"649:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"636:3:139"},"nodeType":"YulFunctionCall","src":"636:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"661:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"632:3:139"},"nodeType":"YulFunctionCall","src":"632:32:139"},"nodeType":"YulIf","src":"629:2:139"},{"nodeType":"YulVariableDeclaration","src":"700:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"726:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"713:12:139"},"nodeType":"YulFunctionCall","src":"713:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"704:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"770:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"745:24:139"},"nodeType":"YulFunctionCall","src":"745:31:139"},"nodeType":"YulExpressionStatement","src":"745:31:139"},{"nodeType":"YulAssignment","src":"785:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"795:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"785:6:139"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"585:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"596:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"608:6:139","type":""}],"src":"549:257:139"},{"body":{"nodeType":"YulBlock","src":"892:180:139","statements":[{"body":{"nodeType":"YulBlock","src":"938:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"947:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"955:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"940:6:139"},"nodeType":"YulFunctionCall","src":"940:22:139"},"nodeType":"YulExpressionStatement","src":"940:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"913:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"922:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"909:3:139"},"nodeType":"YulFunctionCall","src":"909:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"934:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"905:3:139"},"nodeType":"YulFunctionCall","src":"905:32:139"},"nodeType":"YulIf","src":"902:2:139"},{"nodeType":"YulVariableDeclaration","src":"973:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"992:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"986:5:139"},"nodeType":"YulFunctionCall","src":"986:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"977:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1036:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1011:24:139"},"nodeType":"YulFunctionCall","src":"1011:31:139"},"nodeType":"YulExpressionStatement","src":"1011:31:139"},{"nodeType":"YulAssignment","src":"1051:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1061:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1051:6:139"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"858:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"869:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"881:6:139","type":""}],"src":"811:261:139"},{"body":{"nodeType":"YulBlock","src":"1164:311:139","statements":[{"body":{"nodeType":"YulBlock","src":"1210:26:139","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1219:6:139"},{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1212:6:139"},"nodeType":"YulFunctionCall","src":"1212:22:139"},"nodeType":"YulExpressionStatement","src":"1212:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1185:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1194:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1181:3:139"},"nodeType":"YulFunctionCall","src":"1181:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1206:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1177:3:139"},"nodeType":"YulFunctionCall","src":"1177:32:139"},"nodeType":"YulIf","src":"1174:2:139"},{"nodeType":"YulVariableDeclaration","src":"1245:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1271:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1258:12:139"},"nodeType":"YulFunctionCall","src":"1258:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1249:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1315:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1290:24:139"},"nodeType":"YulFunctionCall","src":"1290:31:139"},"nodeType":"YulExpressionStatement","src":"1290:31:139"},{"nodeType":"YulAssignment","src":"1330:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1340:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1330:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1354:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1386:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1397:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1382:3:139"},"nodeType":"YulFunctionCall","src":"1382:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1369:12:139"},"nodeType":"YulFunctionCall","src":"1369:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1358:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1435:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1410:24:139"},"nodeType":"YulFunctionCall","src":"1410:33:139"},"nodeType":"YulExpressionStatement","src":"1410:33:139"},{"nodeType":"YulAssignment","src":"1452:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1462:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1452:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1122:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1133:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1145:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1153:6:139","type":""}],"src":"1077:398:139"},{"body":{"nodeType":"YulBlock","src":"1584:435:139","statements":[{"body":{"nodeType":"YulBlock","src":"1630:26:139","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1639:6:139"},{"name":"value2","nodeType":"YulIdentifier","src":"1647:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1632:6:139"},"nodeType":"YulFunctionCall","src":"1632:22:139"},"nodeType":"YulExpressionStatement","src":"1632:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1605:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"1614:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1601:3:139"},"nodeType":"YulFunctionCall","src":"1601:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"1626:2:139","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1597:3:139"},"nodeType":"YulFunctionCall","src":"1597:32:139"},"nodeType":"YulIf","src":"1594:2:139"},{"nodeType":"YulVariableDeclaration","src":"1665:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1691:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1678:12:139"},"nodeType":"YulFunctionCall","src":"1678:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1669:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1735:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1710:24:139"},"nodeType":"YulFunctionCall","src":"1710:31:139"},"nodeType":"YulExpressionStatement","src":"1710:31:139"},{"nodeType":"YulAssignment","src":"1750:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"1760:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1750:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1774:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1806:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1817:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1802:3:139"},"nodeType":"YulFunctionCall","src":"1802:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1789:12:139"},"nodeType":"YulFunctionCall","src":"1789:32:139"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1778:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1855:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1830:24:139"},"nodeType":"YulFunctionCall","src":"1830:33:139"},"nodeType":"YulExpressionStatement","src":"1830:33:139"},{"nodeType":"YulAssignment","src":"1872:17:139","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1882:7:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1872:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"1898:47:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1930:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"1941:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1926:3:139"},"nodeType":"YulFunctionCall","src":"1926:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1913:12:139"},"nodeType":"YulFunctionCall","src":"1913:32:139"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"1902:7:139","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"1979:7:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1954:24:139"},"nodeType":"YulFunctionCall","src":"1954:33:139"},"nodeType":"YulExpressionStatement","src":"1954:33:139"},{"nodeType":"YulAssignment","src":"1996:17:139","value":{"name":"value_2","nodeType":"YulIdentifier","src":"2006:7:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1996:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1534:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1545:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1557:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1565:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1573:6:139","type":""}],"src":"1480:539:139"},{"body":{"nodeType":"YulBlock","src":"2111:238:139","statements":[{"body":{"nodeType":"YulBlock","src":"2157:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2166:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"2174:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2159:6:139"},"nodeType":"YulFunctionCall","src":"2159:22:139"},"nodeType":"YulExpressionStatement","src":"2159:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2132:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2141:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2128:3:139"},"nodeType":"YulFunctionCall","src":"2128:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2153:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2124:3:139"},"nodeType":"YulFunctionCall","src":"2124:32:139"},"nodeType":"YulIf","src":"2121:2:139"},{"nodeType":"YulVariableDeclaration","src":"2192:36:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2218:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2205:12:139"},"nodeType":"YulFunctionCall","src":"2205:23:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2196:5:139","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2262:5:139"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2237:24:139"},"nodeType":"YulFunctionCall","src":"2237:31:139"},"nodeType":"YulExpressionStatement","src":"2237:31:139"},{"nodeType":"YulAssignment","src":"2277:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"2287:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2277:6:139"}]},{"nodeType":"YulAssignment","src":"2301:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2328:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2339:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2324:3:139"},"nodeType":"YulFunctionCall","src":"2324:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2311:12:139"},"nodeType":"YulFunctionCall","src":"2311:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2301:6:139"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2069:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2080:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2092:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2100:6:139","type":""}],"src":"2024:325:139"},{"body":{"nodeType":"YulBlock","src":"2510:646:139","statements":[{"body":{"nodeType":"YulBlock","src":"2556:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2565:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2573:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2558:6:139"},"nodeType":"YulFunctionCall","src":"2558:22:139"},"nodeType":"YulExpressionStatement","src":"2558:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2531:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"2540:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2527:3:139"},"nodeType":"YulFunctionCall","src":"2527:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"2552:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2523:3:139"},"nodeType":"YulFunctionCall","src":"2523:32:139"},"nodeType":"YulIf","src":"2520:2:139"},{"nodeType":"YulVariableDeclaration","src":"2591:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2618:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2605:12:139"},"nodeType":"YulFunctionCall","src":"2605:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2595:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2637:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"2647:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2641:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2692:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2701:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2709:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2694:6:139"},"nodeType":"YulFunctionCall","src":"2694:22:139"},"nodeType":"YulExpressionStatement","src":"2694:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2680:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2688:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2677:2:139"},"nodeType":"YulFunctionCall","src":"2677:14:139"},"nodeType":"YulIf","src":"2674:2:139"},{"nodeType":"YulVariableDeclaration","src":"2727:96:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2795:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"2806:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2791:3:139"},"nodeType":"YulFunctionCall","src":"2791:22:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2815:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"2753:37:139"},"nodeType":"YulFunctionCall","src":"2753:70:139"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"2731:8:139","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"2741:8:139","type":""}]},{"nodeType":"YulAssignment","src":"2832:18:139","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"2842:8:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2832:6:139"}]},{"nodeType":"YulAssignment","src":"2859:18:139","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"2869:8:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2859:6:139"}]},{"nodeType":"YulVariableDeclaration","src":"2886:48:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2919:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"2930:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2915:3:139"},"nodeType":"YulFunctionCall","src":"2915:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2902:12:139"},"nodeType":"YulFunctionCall","src":"2902:32:139"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2890:8:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"2963:26:139","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2972:6:139"},{"name":"value3","nodeType":"YulIdentifier","src":"2980:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2965:6:139"},"nodeType":"YulFunctionCall","src":"2965:22:139"},"nodeType":"YulExpressionStatement","src":"2965:22:139"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2949:8:139"},{"name":"_1","nodeType":"YulIdentifier","src":"2959:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2946:2:139"},"nodeType":"YulFunctionCall","src":"2946:16:139"},"nodeType":"YulIf","src":"2943:2:139"},{"nodeType":"YulVariableDeclaration","src":"2998:98:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3066:9:139"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3077:8:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3062:3:139"},"nodeType":"YulFunctionCall","src":"3062:24:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3088:7:139"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"3024:37:139"},"nodeType":"YulFunctionCall","src":"3024:72:139"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"3002:8:139","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"3012:8:139","type":""}]},{"nodeType":"YulAssignment","src":"3105:18:139","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3115:8:139"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3105:6:139"}]},{"nodeType":"YulAssignment","src":"3132:18:139","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"3142:8:139"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3132:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_int256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2452:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2463:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2475:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2483:6:139","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2491:6:139","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2499:6:139","type":""}],"src":"2354:802:139"},{"body":{"nodeType":"YulBlock","src":"3256:1082:139","statements":[{"nodeType":"YulVariableDeclaration","src":"3266:12:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3276:2:139","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3270:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3323:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3332:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3340:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3325:6:139"},"nodeType":"YulFunctionCall","src":"3325:22:139"},"nodeType":"YulExpressionStatement","src":"3325:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3298:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"3307:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3294:3:139"},"nodeType":"YulFunctionCall","src":"3294:23:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3319:2:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3290:3:139"},"nodeType":"YulFunctionCall","src":"3290:32:139"},"nodeType":"YulIf","src":"3287:2:139"},{"nodeType":"YulVariableDeclaration","src":"3358:37:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3385:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3372:12:139"},"nodeType":"YulFunctionCall","src":"3372:23:139"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3362:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3404:28:139","value":{"kind":"number","nodeType":"YulLiteral","src":"3414:18:139","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3408:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3459:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3468:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3476:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3461:6:139"},"nodeType":"YulFunctionCall","src":"3461:22:139"},"nodeType":"YulExpressionStatement","src":"3461:22:139"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3447:6:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3455:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3444:2:139"},"nodeType":"YulFunctionCall","src":"3444:14:139"},"nodeType":"YulIf","src":"3441:2:139"},{"nodeType":"YulVariableDeclaration","src":"3494:32:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3508:9:139"},{"name":"offset","nodeType":"YulIdentifier","src":"3519:6:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3504:3:139"},"nodeType":"YulFunctionCall","src":"3504:22:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3498:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3574:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3583:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"3591:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3576:6:139"},"nodeType":"YulFunctionCall","src":"3576:22:139"},"nodeType":"YulExpressionStatement","src":"3576:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3553:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3557:4:139","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3549:3:139"},"nodeType":"YulFunctionCall","src":"3549:13:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3564:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3545:3:139"},"nodeType":"YulFunctionCall","src":"3545:27:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3538:6:139"},"nodeType":"YulFunctionCall","src":"3538:35:139"},"nodeType":"YulIf","src":"3535:2:139"},{"nodeType":"YulVariableDeclaration","src":"3609:26:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3632:2:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3619:12:139"},"nodeType":"YulFunctionCall","src":"3619:16:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"3613:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3658:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3660:16:139"},"nodeType":"YulFunctionCall","src":"3660:18:139"},"nodeType":"YulExpressionStatement","src":"3660:18:139"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"3650:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3654:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3647:2:139"},"nodeType":"YulFunctionCall","src":"3647:10:139"},"nodeType":"YulIf","src":"3644:2:139"},{"nodeType":"YulVariableDeclaration","src":"3689:20:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3703:1:139","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"3706:2:139"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3699:3:139"},"nodeType":"YulFunctionCall","src":"3699:10:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"3693:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3718:23:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3738:2:139","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3732:5:139"},"nodeType":"YulFunctionCall","src":"3732:9:139"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3722:6:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3750:56:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3772:6:139"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"3788:2:139"},{"kind":"number","nodeType":"YulLiteral","src":"3792:2:139","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3784:3:139"},"nodeType":"YulFunctionCall","src":"3784:11:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3801:2:139","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3797:3:139"},"nodeType":"YulFunctionCall","src":"3797:7:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3780:3:139"},"nodeType":"YulFunctionCall","src":"3780:25:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3768:3:139"},"nodeType":"YulFunctionCall","src":"3768:38:139"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3754:10:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"3865:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3867:16:139"},"nodeType":"YulFunctionCall","src":"3867:18:139"},"nodeType":"YulExpressionStatement","src":"3867:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3824:10:139"},{"name":"_2","nodeType":"YulIdentifier","src":"3836:2:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3821:2:139"},"nodeType":"YulFunctionCall","src":"3821:18:139"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3844:10:139"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3856:6:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3841:2:139"},"nodeType":"YulFunctionCall","src":"3841:22:139"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3818:2:139"},"nodeType":"YulFunctionCall","src":"3818:46:139"},"nodeType":"YulIf","src":"3815:2:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3903:2:139","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3907:10:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3896:6:139"},"nodeType":"YulFunctionCall","src":"3896:22:139"},"nodeType":"YulExpressionStatement","src":"3896:22:139"},{"nodeType":"YulVariableDeclaration","src":"3927:17:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3938:6:139"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"3931:3:139","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3960:6:139"},{"name":"_4","nodeType":"YulIdentifier","src":"3968:2:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3953:6:139"},"nodeType":"YulFunctionCall","src":"3953:18:139"},"nodeType":"YulExpressionStatement","src":"3953:18:139"},{"nodeType":"YulAssignment","src":"3980:22:139","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3991:6:139"},{"name":"_1","nodeType":"YulIdentifier","src":"3999:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3987:3:139"},"nodeType":"YulFunctionCall","src":"3987:15:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3980:3:139"}]},{"nodeType":"YulVariableDeclaration","src":"4011:22:139","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4026:2:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4030:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4022:3:139"},"nodeType":"YulFunctionCall","src":"4022:11:139"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"4015:3:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4079:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4088:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4096:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4081:6:139"},"nodeType":"YulFunctionCall","src":"4081:22:139"},"nodeType":"YulExpressionStatement","src":"4081:22:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4056:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"4060:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:139"},"nodeType":"YulFunctionCall","src":"4052:11:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4065:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4048:3:139"},"nodeType":"YulFunctionCall","src":"4048:20:139"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4070:7:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4045:2:139"},"nodeType":"YulFunctionCall","src":"4045:33:139"},"nodeType":"YulIf","src":"4042:2:139"},{"nodeType":"YulVariableDeclaration","src":"4114:15:139","value":{"name":"value0","nodeType":"YulIdentifier","src":"4123:6:139"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4118:1:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4183:124:139","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4204:3:139"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4228:3:139"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4209:18:139"},"nodeType":"YulFunctionCall","src":"4209:23:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4197:6:139"},"nodeType":"YulFunctionCall","src":"4197:36:139"},"nodeType":"YulExpressionStatement","src":"4197:36:139"},{"nodeType":"YulAssignment","src":"4246:19:139","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4257:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4262:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4253:3:139"},"nodeType":"YulFunctionCall","src":"4253:12:139"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4246:3:139"}]},{"nodeType":"YulAssignment","src":"4278:19:139","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4289:3:139"},{"name":"_1","nodeType":"YulIdentifier","src":"4294:2:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4285:3:139"},"nodeType":"YulFunctionCall","src":"4285:12:139"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"4278:3:139"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4149:1:139"},{"name":"_4","nodeType":"YulIdentifier","src":"4152:2:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4146:2:139"},"nodeType":"YulFunctionCall","src":"4146:9:139"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4156:18:139","statements":[{"nodeType":"YulAssignment","src":"4158:14:139","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4167:1:139"},{"kind":"number","nodeType":"YulLiteral","src":"4170:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4163:3:139"},"nodeType":"YulFunctionCall","src":"4163:9:139"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4158:1:139"}]}]},"pre":{"nodeType":"YulBlock","src":"4142:3:139","statements":[]},"src":"4138:169:139"},{"nodeType":"YulAssignment","src":"4316:16:139","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4326:6:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4316:6:139"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3222:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3233:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3245:6:139","type":""}],"src":"3161:1177:139"},{"body":{"nodeType":"YulBlock","src":"4421:219:139","statements":[{"body":{"nodeType":"YulBlock","src":"4467:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4476:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4484:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4469:6:139"},"nodeType":"YulFunctionCall","src":"4469:22:139"},"nodeType":"YulExpressionStatement","src":"4469:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4442:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4451:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4438:3:139"},"nodeType":"YulFunctionCall","src":"4438:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4463:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4434:3:139"},"nodeType":"YulFunctionCall","src":"4434:32:139"},"nodeType":"YulIf","src":"4431:2:139"},{"nodeType":"YulVariableDeclaration","src":"4502:29:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4521:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4515:5:139"},"nodeType":"YulFunctionCall","src":"4515:16:139"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4506:5:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"4584:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4593:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4601:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4586:6:139"},"nodeType":"YulFunctionCall","src":"4586:22:139"},"nodeType":"YulExpressionStatement","src":"4586:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4553:5:139"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4574:5:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4567:6:139"},"nodeType":"YulFunctionCall","src":"4567:13:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4560:6:139"},"nodeType":"YulFunctionCall","src":"4560:21:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4550:2:139"},"nodeType":"YulFunctionCall","src":"4550:32:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4543:6:139"},"nodeType":"YulFunctionCall","src":"4543:40:139"},"nodeType":"YulIf","src":"4540:2:139"},{"nodeType":"YulAssignment","src":"4619:15:139","value":{"name":"value","nodeType":"YulIdentifier","src":"4629:5:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4619:6:139"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4387:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4398:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4410:6:139","type":""}],"src":"4343:297:139"},{"body":{"nodeType":"YulBlock","src":"4715:120:139","statements":[{"body":{"nodeType":"YulBlock","src":"4761:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4770:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4778:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4763:6:139"},"nodeType":"YulFunctionCall","src":"4763:22:139"},"nodeType":"YulExpressionStatement","src":"4763:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4736:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4745:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4732:3:139"},"nodeType":"YulFunctionCall","src":"4732:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4757:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4728:3:139"},"nodeType":"YulFunctionCall","src":"4728:32:139"},"nodeType":"YulIf","src":"4725:2:139"},{"nodeType":"YulAssignment","src":"4796:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4819:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4806:12:139"},"nodeType":"YulFunctionCall","src":"4806:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4796:6:139"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4681:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4692:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4704:6:139","type":""}],"src":"4645:190:139"},{"body":{"nodeType":"YulBlock","src":"4921:113:139","statements":[{"body":{"nodeType":"YulBlock","src":"4967:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4976:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"4984:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4969:6:139"},"nodeType":"YulFunctionCall","src":"4969:22:139"},"nodeType":"YulExpressionStatement","src":"4969:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4942:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"4951:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4938:3:139"},"nodeType":"YulFunctionCall","src":"4938:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"4963:2:139","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4934:3:139"},"nodeType":"YulFunctionCall","src":"4934:32:139"},"nodeType":"YulIf","src":"4931:2:139"},{"nodeType":"YulAssignment","src":"5002:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5018:9:139"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5012:5:139"},"nodeType":"YulFunctionCall","src":"5012:16:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5002:6:139"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4887:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4898:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4910:6:139","type":""}],"src":"4840:194:139"},{"body":{"nodeType":"YulBlock","src":"5126:171:139","statements":[{"body":{"nodeType":"YulBlock","src":"5172:26:139","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5181:6:139"},{"name":"value0","nodeType":"YulIdentifier","src":"5189:6:139"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5174:6:139"},"nodeType":"YulFunctionCall","src":"5174:22:139"},"nodeType":"YulExpressionStatement","src":"5174:22:139"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5147:7:139"},{"name":"headStart","nodeType":"YulIdentifier","src":"5156:9:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5143:3:139"},"nodeType":"YulFunctionCall","src":"5143:23:139"},{"kind":"number","nodeType":"YulLiteral","src":"5168:2:139","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5139:3:139"},"nodeType":"YulFunctionCall","src":"5139:32:139"},"nodeType":"YulIf","src":"5136:2:139"},{"nodeType":"YulAssignment","src":"5207:33:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5230:9:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5217:12:139"},"nodeType":"YulFunctionCall","src":"5217:23:139"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5207:6:139"}]},{"nodeType":"YulAssignment","src":"5249:42:139","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5276:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5287:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5272:3:139"},"nodeType":"YulFunctionCall","src":"5272:18:139"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5259:12:139"},"nodeType":"YulFunctionCall","src":"5259:32:139"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5249:6:139"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5084:9:139","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5095:7:139","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5107:6:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5115:6:139","type":""}],"src":"5039:258:139"},{"body":{"nodeType":"YulBlock","src":"5403:102:139","statements":[{"nodeType":"YulAssignment","src":"5413:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5425:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5436:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5421:3:139"},"nodeType":"YulFunctionCall","src":"5421:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5413:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5455:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5470:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5486:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5491:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5482:3:139"},"nodeType":"YulFunctionCall","src":"5482:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5495:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5478:3:139"},"nodeType":"YulFunctionCall","src":"5478:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5466:3:139"},"nodeType":"YulFunctionCall","src":"5466:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5448:6:139"},"nodeType":"YulFunctionCall","src":"5448:51:139"},"nodeType":"YulExpressionStatement","src":"5448:51:139"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5372:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5383:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5394:4:139","type":""}],"src":"5302:203:139"},{"body":{"nodeType":"YulBlock","src":"5637:145:139","statements":[{"nodeType":"YulAssignment","src":"5647:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5659:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5670:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5655:3:139"},"nodeType":"YulFunctionCall","src":"5655:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5647:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5689:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5704:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5720:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5725:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5716:3:139"},"nodeType":"YulFunctionCall","src":"5716:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"5729:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5712:3:139"},"nodeType":"YulFunctionCall","src":"5712:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5700:3:139"},"nodeType":"YulFunctionCall","src":"5700:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5682:6:139"},"nodeType":"YulFunctionCall","src":"5682:51:139"},"nodeType":"YulExpressionStatement","src":"5682:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5753:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5764:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5749:3:139"},"nodeType":"YulFunctionCall","src":"5749:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"5769:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5742:6:139"},"nodeType":"YulFunctionCall","src":"5742:34:139"},"nodeType":"YulExpressionStatement","src":"5742:34:139"}]},"name":"abi_encode_tuple_t_address_t_int256__to_t_address_t_int256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5598:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5609:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5617:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5628:4:139","type":""}],"src":"5510:272:139"},{"body":{"nodeType":"YulBlock","src":"5916:145:139","statements":[{"nodeType":"YulAssignment","src":"5926:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5938:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"5949:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5934:3:139"},"nodeType":"YulFunctionCall","src":"5934:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5926:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5968:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5983:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5999:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6004:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5995:3:139"},"nodeType":"YulFunctionCall","src":"5995:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6008:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5991:3:139"},"nodeType":"YulFunctionCall","src":"5991:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5979:3:139"},"nodeType":"YulFunctionCall","src":"5979:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5961:6:139"},"nodeType":"YulFunctionCall","src":"5961:51:139"},"nodeType":"YulExpressionStatement","src":"5961:51:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6032:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6043:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6028:3:139"},"nodeType":"YulFunctionCall","src":"6028:18:139"},{"name":"value1","nodeType":"YulIdentifier","src":"6048:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6021:6:139"},"nodeType":"YulFunctionCall","src":"6021:34:139"},"nodeType":"YulExpressionStatement","src":"6021:34:139"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5877:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5888:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5896:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5907:4:139","type":""}],"src":"5787:274:139"},{"body":{"nodeType":"YulBlock","src":"6161:92:139","statements":[{"nodeType":"YulAssignment","src":"6171:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6183:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6194:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6179:3:139"},"nodeType":"YulFunctionCall","src":"6179:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6171:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6213:9:139"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6238:6:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6231:6:139"},"nodeType":"YulFunctionCall","src":"6231:14:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6224:6:139"},"nodeType":"YulFunctionCall","src":"6224:22:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6206:6:139"},"nodeType":"YulFunctionCall","src":"6206:41:139"},"nodeType":"YulExpressionStatement","src":"6206:41:139"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6130:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6141:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6152:4:139","type":""}],"src":"6066:187:139"},{"body":{"nodeType":"YulBlock","src":"6378:102:139","statements":[{"nodeType":"YulAssignment","src":"6388:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6400:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6411:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6396:3:139"},"nodeType":"YulFunctionCall","src":"6396:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6388:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6430:9:139"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6445:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6461:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6466:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6457:3:139"},"nodeType":"YulFunctionCall","src":"6457:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"6470:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6453:3:139"},"nodeType":"YulFunctionCall","src":"6453:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6441:3:139"},"nodeType":"YulFunctionCall","src":"6441:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6423:6:139"},"nodeType":"YulFunctionCall","src":"6423:51:139"},"nodeType":"YulExpressionStatement","src":"6423:51:139"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6347:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6358:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6369:4:139","type":""}],"src":"6258:222:139"},{"body":{"nodeType":"YulBlock","src":"6584:76:139","statements":[{"nodeType":"YulAssignment","src":"6594:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6606:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6617:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6602:3:139"},"nodeType":"YulFunctionCall","src":"6602:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6594:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6636:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"6647:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6629:6:139"},"nodeType":"YulFunctionCall","src":"6629:25:139"},"nodeType":"YulExpressionStatement","src":"6629:25:139"}]},"name":"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6553:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6564:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6575:4:139","type":""}],"src":"6485:175:139"},{"body":{"nodeType":"YulBlock","src":"6839:164:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6856:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6867:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6849:6:139"},"nodeType":"YulFunctionCall","src":"6849:21:139"},"nodeType":"YulExpressionStatement","src":"6849:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6890:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6901:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6886:3:139"},"nodeType":"YulFunctionCall","src":"6886:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"6906:2:139","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6879:6:139"},"nodeType":"YulFunctionCall","src":"6879:30:139"},"nodeType":"YulExpressionStatement","src":"6879:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6929:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6940:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6925:3:139"},"nodeType":"YulFunctionCall","src":"6925:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"6945:16:139","type":"","value":"poolweight = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6918:6:139"},"nodeType":"YulFunctionCall","src":"6918:44:139"},"nodeType":"YulExpressionStatement","src":"6918:44:139"},{"nodeType":"YulAssignment","src":"6971:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6983:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"6994:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6979:3:139"},"nodeType":"YulFunctionCall","src":"6979:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6971:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6816:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6830:4:139","type":""}],"src":"6665:338:139"},{"body":{"nodeType":"YulBlock","src":"7182:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7199:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7210:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7192:6:139"},"nodeType":"YulFunctionCall","src":"7192:21:139"},"nodeType":"YulExpressionStatement","src":"7192:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7233:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7244:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7229:3:139"},"nodeType":"YulFunctionCall","src":"7229:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7249:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7222:6:139"},"nodeType":"YulFunctionCall","src":"7222:29:139"},"nodeType":"YulExpressionStatement","src":"7222:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7271:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7282:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7267:3:139"},"nodeType":"YulFunctionCall","src":"7267:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7287:11:139","type":"","value":"not gauge"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7260:6:139"},"nodeType":"YulFunctionCall","src":"7260:39:139"},"nodeType":"YulExpressionStatement","src":"7260:39:139"},{"nodeType":"YulAssignment","src":"7308:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7320:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7331:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7316:3:139"},"nodeType":"YulFunctionCall","src":"7316:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7308:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7159:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7173:4:139","type":""}],"src":"7008:332:139"},{"body":{"nodeType":"YulBlock","src":"7519:170:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7536:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7547:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7529:6:139"},"nodeType":"YulFunctionCall","src":"7529:21:139"},"nodeType":"YulExpressionStatement","src":"7529:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7570:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7581:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7566:3:139"},"nodeType":"YulFunctionCall","src":"7566:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7586:2:139","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7559:6:139"},"nodeType":"YulFunctionCall","src":"7559:30:139"},"nodeType":"YulExpressionStatement","src":"7559:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7609:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7620:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7605:3:139"},"nodeType":"YulFunctionCall","src":"7605:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7625:22:139","type":"","value":"pool not whitelisted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7598:6:139"},"nodeType":"YulFunctionCall","src":"7598:50:139"},"nodeType":"YulExpressionStatement","src":"7598:50:139"},{"nodeType":"YulAssignment","src":"7657:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7669:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7680:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7665:3:139"},"nodeType":"YulFunctionCall","src":"7665:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7657:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7496:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7510:4:139","type":""}],"src":"7345:344:139"},{"body":{"nodeType":"YulBlock","src":"7868:228:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7885:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7896:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7878:6:139"},"nodeType":"YulFunctionCall","src":"7878:21:139"},"nodeType":"YulExpressionStatement","src":"7878:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7919:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7930:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7915:3:139"},"nodeType":"YulFunctionCall","src":"7915:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"7935:2:139","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7908:6:139"},"nodeType":"YulFunctionCall","src":"7908:30:139"},"nodeType":"YulExpressionStatement","src":"7908:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7958:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"7969:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7954:3:139"},"nodeType":"YulFunctionCall","src":"7954:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"7974:34:139","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7947:6:139"},"nodeType":"YulFunctionCall","src":"7947:62:139"},"nodeType":"YulExpressionStatement","src":"7947:62:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8029:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8040:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8025:3:139"},"nodeType":"YulFunctionCall","src":"8025:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8045:8:139","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8018:6:139"},"nodeType":"YulFunctionCall","src":"8018:36:139"},"nodeType":"YulExpressionStatement","src":"8018:36:139"},{"nodeType":"YulAssignment","src":"8063:27:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8075:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8086:3:139","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8071:3:139"},"nodeType":"YulFunctionCall","src":"8071:19:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8063:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7845:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7859:4:139","type":""}],"src":"7694:402:139"},{"body":{"nodeType":"YulBlock","src":"8275:169:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8292:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8303:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8285:6:139"},"nodeType":"YulFunctionCall","src":"8285:21:139"},"nodeType":"YulExpressionStatement","src":"8285:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8326:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8337:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8322:3:139"},"nodeType":"YulFunctionCall","src":"8322:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8342:2:139","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8315:6:139"},"nodeType":"YulFunctionCall","src":"8315:30:139"},"nodeType":"YulExpressionStatement","src":"8315:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8365:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8376:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8361:3:139"},"nodeType":"YulFunctionCall","src":"8361:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8381:21:139","type":"","value":"not staker contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8354:6:139"},"nodeType":"YulFunctionCall","src":"8354:49:139"},"nodeType":"YulExpressionStatement","src":"8354:49:139"},{"nodeType":"YulAssignment","src":"8412:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8424:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8435:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8420:3:139"},"nodeType":"YulFunctionCall","src":"8420:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8412:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_3d8fd27f60f801392ed4a805e9a616b67fbe330600529fe4c44f4e6236c37150__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8252:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8266:4:139","type":""}],"src":"8101:343:139"},{"body":{"nodeType":"YulBlock","src":"8623:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8640:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8651:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8633:6:139"},"nodeType":"YulFunctionCall","src":"8633:21:139"},"nodeType":"YulExpressionStatement","src":"8633:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8674:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8685:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8670:3:139"},"nodeType":"YulFunctionCall","src":"8670:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"8690:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8663:6:139"},"nodeType":"YulFunctionCall","src":"8663:30:139"},"nodeType":"YulExpressionStatement","src":"8663:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8713:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8724:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8709:3:139"},"nodeType":"YulFunctionCall","src":"8709:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"8729:31:139","type":"","value":"gauge factory not whitelisted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8702:6:139"},"nodeType":"YulFunctionCall","src":"8702:59:139"},"nodeType":"YulExpressionStatement","src":"8702:59:139"},{"nodeType":"YulAssignment","src":"8770:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8782:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"8793:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8778:3:139"},"nodeType":"YulFunctionCall","src":"8778:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8770:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8600:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8614:4:139","type":""}],"src":"8449:353:139"},{"body":{"nodeType":"YulBlock","src":"8981:162:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8998:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9009:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8991:6:139"},"nodeType":"YulFunctionCall","src":"8991:21:139"},"nodeType":"YulExpressionStatement","src":"8991:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9032:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9043:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9028:3:139"},"nodeType":"YulFunctionCall","src":"9028:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9048:2:139","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9021:6:139"},"nodeType":"YulFunctionCall","src":"9021:30:139"},"nodeType":"YulExpressionStatement","src":"9021:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9071:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9082:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9067:3:139"},"nodeType":"YulFunctionCall","src":"9067:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9087:14:139","type":"","value":"gauge exists"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9060:6:139"},"nodeType":"YulFunctionCall","src":"9060:42:139"},"nodeType":"YulExpressionStatement","src":"9060:42:139"},{"nodeType":"YulAssignment","src":"9111:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9123:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9134:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9119:3:139"},"nodeType":"YulFunctionCall","src":"9119:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9111:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8958:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8972:4:139","type":""}],"src":"8807:336:139"},{"body":{"nodeType":"YulBlock","src":"9322:165:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9339:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9350:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9332:6:139"},"nodeType":"YulFunctionCall","src":"9332:21:139"},"nodeType":"YulExpressionStatement","src":"9332:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9373:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9384:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9369:3:139"},"nodeType":"YulFunctionCall","src":"9369:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9389:2:139","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9362:6:139"},"nodeType":"YulFunctionCall","src":"9362:30:139"},"nodeType":"YulExpressionStatement","src":"9362:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9412:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9423:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9408:3:139"},"nodeType":"YulFunctionCall","src":"9408:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9428:17:139","type":"","value":"invalid weights"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9401:6:139"},"nodeType":"YulFunctionCall","src":"9401:45:139"},"nodeType":"YulExpressionStatement","src":"9401:45:139"},{"nodeType":"YulAssignment","src":"9455:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9467:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9478:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9463:3:139"},"nodeType":"YulFunctionCall","src":"9463:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9455:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9299:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9313:4:139","type":""}],"src":"9148:339:139"},{"body":{"nodeType":"YulBlock","src":"9666:170:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9683:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9694:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9676:6:139"},"nodeType":"YulFunctionCall","src":"9676:21:139"},"nodeType":"YulExpressionStatement","src":"9676:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9717:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9728:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9713:3:139"},"nodeType":"YulFunctionCall","src":"9713:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"9733:2:139","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9706:6:139"},"nodeType":"YulFunctionCall","src":"9706:30:139"},"nodeType":"YulExpressionStatement","src":"9706:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9756:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9767:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9752:3:139"},"nodeType":"YulFunctionCall","src":"9752:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"9772:22:139","type":"","value":"gauge not registered"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9745:6:139"},"nodeType":"YulFunctionCall","src":"9745:50:139"},"nodeType":"YulExpressionStatement","src":"9745:50:139"},{"nodeType":"YulAssignment","src":"9804:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9816:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"9827:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9812:3:139"},"nodeType":"YulFunctionCall","src":"9812:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9804:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_90e5fe8a3b3baedda5055cceb8ec58840506c5af7b9ff9e8302bbdb45aa5d707__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9643:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9657:4:139","type":""}],"src":"9492:344:139"},{"body":{"nodeType":"YulBlock","src":"10015:182:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10032:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10043:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10025:6:139"},"nodeType":"YulFunctionCall","src":"10025:21:139"},"nodeType":"YulExpressionStatement","src":"10025:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10066:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10077:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10062:3:139"},"nodeType":"YulFunctionCall","src":"10062:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10082:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10055:6:139"},"nodeType":"YulFunctionCall","src":"10055:30:139"},"nodeType":"YulExpressionStatement","src":"10055:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10105:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10116:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10101:3:139"},"nodeType":"YulFunctionCall","src":"10101:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10121:34:139","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10094:6:139"},"nodeType":"YulFunctionCall","src":"10094:62:139"},"nodeType":"YulExpressionStatement","src":"10094:62:139"},{"nodeType":"YulAssignment","src":"10165:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10177:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10188:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10173:3:139"},"nodeType":"YulFunctionCall","src":"10173:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10165:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9992:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10006:4:139","type":""}],"src":"9841:356:139"},{"body":{"nodeType":"YulBlock","src":"10376:173:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10393:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10404:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10386:6:139"},"nodeType":"YulFunctionCall","src":"10386:21:139"},"nodeType":"YulExpressionStatement","src":"10386:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10427:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10438:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10423:3:139"},"nodeType":"YulFunctionCall","src":"10423:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10443:2:139","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10416:6:139"},"nodeType":"YulFunctionCall","src":"10416:30:139"},"nodeType":"YulExpressionStatement","src":"10416:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10466:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10477:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10462:3:139"},"nodeType":"YulFunctionCall","src":"10462:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10482:25:139","type":"","value":"not emission controller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10455:6:139"},"nodeType":"YulFunctionCall","src":"10455:53:139"},"nodeType":"YulExpressionStatement","src":"10455:53:139"},{"nodeType":"YulAssignment","src":"10517:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10529:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10540:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10525:3:139"},"nodeType":"YulFunctionCall","src":"10525:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10517:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_a265803760dd6c3f1a514c81624e55a9b28174223c091f7c32672bd32a843e1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10353:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10367:4:139","type":""}],"src":"10202:347:139"},{"body":{"nodeType":"YulBlock","src":"10728:158:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10745:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10756:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10738:6:139"},"nodeType":"YulFunctionCall","src":"10738:21:139"},"nodeType":"YulExpressionStatement","src":"10738:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10779:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10790:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10775:3:139"},"nodeType":"YulFunctionCall","src":"10775:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"10795:1:139","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10768:6:139"},"nodeType":"YulFunctionCall","src":"10768:29:139"},"nodeType":"YulExpressionStatement","src":"10768:29:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10817:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10828:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10813:3:139"},"nodeType":"YulFunctionCall","src":"10813:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"10833:11:139","type":"","value":"votes = 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10806:6:139"},"nodeType":"YulFunctionCall","src":"10806:39:139"},"nodeType":"YulExpressionStatement","src":"10806:39:139"},{"nodeType":"YulAssignment","src":"10854:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10866:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"10877:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10862:3:139"},"nodeType":"YulFunctionCall","src":"10862:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10854:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10705:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10719:4:139","type":""}],"src":"10554:332:139"},{"body":{"nodeType":"YulBlock","src":"11065:179:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11082:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11093:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11075:6:139"},"nodeType":"YulFunctionCall","src":"11075:21:139"},"nodeType":"YulExpressionStatement","src":"11075:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11116:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11127:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11112:3:139"},"nodeType":"YulFunctionCall","src":"11112:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11132:2:139","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11105:6:139"},"nodeType":"YulFunctionCall","src":"11105:30:139"},"nodeType":"YulExpressionStatement","src":"11105:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11155:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11166:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11151:3:139"},"nodeType":"YulFunctionCall","src":"11151:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11171:31:139","type":"","value":"bribe factory not whitelisted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11144:6:139"},"nodeType":"YulFunctionCall","src":"11144:59:139"},"nodeType":"YulExpressionStatement","src":"11144:59:139"},{"nodeType":"YulAssignment","src":"11212:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11224:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11235:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11220:3:139"},"nodeType":"YulFunctionCall","src":"11220:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11212:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11042:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11056:4:139","type":""}],"src":"10891:353:139"},{"body":{"nodeType":"YulBlock","src":"11423:181:139","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11440:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11451:2:139","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11433:6:139"},"nodeType":"YulFunctionCall","src":"11433:21:139"},"nodeType":"YulExpressionStatement","src":"11433:21:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11474:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11485:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11470:3:139"},"nodeType":"YulFunctionCall","src":"11470:18:139"},{"kind":"number","nodeType":"YulLiteral","src":"11490:2:139","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11463:6:139"},"nodeType":"YulFunctionCall","src":"11463:30:139"},"nodeType":"YulExpressionStatement","src":"11463:30:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11513:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11524:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11509:3:139"},"nodeType":"YulFunctionCall","src":"11509:18:139"},{"kind":"string","nodeType":"YulLiteral","src":"11529:33:139","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11502:6:139"},"nodeType":"YulFunctionCall","src":"11502:61:139"},"nodeType":"YulExpressionStatement","src":"11502:61:139"},{"nodeType":"YulAssignment","src":"11572:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11584:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11595:2:139","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11580:3:139"},"nodeType":"YulFunctionCall","src":"11580:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11572:4:139"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11400:9:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11414:4:139","type":""}],"src":"11249:355:139"},{"body":{"nodeType":"YulBlock","src":"11710:76:139","statements":[{"nodeType":"YulAssignment","src":"11720:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11732:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11743:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11728:3:139"},"nodeType":"YulFunctionCall","src":"11728:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11720:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11762:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11773:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11755:6:139"},"nodeType":"YulFunctionCall","src":"11755:25:139"},"nodeType":"YulExpressionStatement","src":"11755:25:139"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11679:9:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11690:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11701:4:139","type":""}],"src":"11609:177:139"},{"body":{"nodeType":"YulBlock","src":"11920:145:139","statements":[{"nodeType":"YulAssignment","src":"11930:26:139","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11942:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"11953:2:139","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11938:3:139"},"nodeType":"YulFunctionCall","src":"11938:18:139"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11930:4:139"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11972:9:139"},{"name":"value0","nodeType":"YulIdentifier","src":"11983:6:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11965:6:139"},"nodeType":"YulFunctionCall","src":"11965:25:139"},"nodeType":"YulExpressionStatement","src":"11965:25:139"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12010:9:139"},{"kind":"number","nodeType":"YulLiteral","src":"12021:2:139","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12006:3:139"},"nodeType":"YulFunctionCall","src":"12006:18:139"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12030:6:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12046:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12051:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12042:3:139"},"nodeType":"YulFunctionCall","src":"12042:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12055:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12038:3:139"},"nodeType":"YulFunctionCall","src":"12038:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12026:3:139"},"nodeType":"YulFunctionCall","src":"12026:32:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11999:6:139"},"nodeType":"YulFunctionCall","src":"11999:60:139"},"nodeType":"YulExpressionStatement","src":"11999:60:139"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11881:9:139","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11892:6:139","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11900:6:139","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11911:4:139","type":""}],"src":"11791:274:139"},{"body":{"nodeType":"YulBlock","src":"12117:220:139","statements":[{"nodeType":"YulVariableDeclaration","src":"12127:21:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12141:1:139"},{"name":"sum","nodeType":"YulIdentifier","src":"12144:3:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12137:3:139"},"nodeType":"YulFunctionCall","src":"12137:11:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12131:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"12213:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12215:16:139"},"nodeType":"YulFunctionCall","src":"12215:18:139"},"nodeType":"YulExpressionStatement","src":"12215:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12171:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12164:6:139"},"nodeType":"YulFunctionCall","src":"12164:10:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12180:1:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12195:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"12200:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12191:3:139"},"nodeType":"YulFunctionCall","src":"12191:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12204:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12187:3:139"},"nodeType":"YulFunctionCall","src":"12187:19:139"},{"name":"x","nodeType":"YulIdentifier","src":"12208:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12183:3:139"},"nodeType":"YulFunctionCall","src":"12183:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12176:3:139"},"nodeType":"YulFunctionCall","src":"12176:35:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12160:3:139"},"nodeType":"YulFunctionCall","src":"12160:52:139"},"nodeType":"YulIf","src":"12157:2:139"},{"body":{"nodeType":"YulBlock","src":"12284:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12286:16:139"},"nodeType":"YulFunctionCall","src":"12286:18:139"},"nodeType":"YulExpressionStatement","src":"12286:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12251:2:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12259:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12270:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"12275:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12266:3:139"},"nodeType":"YulFunctionCall","src":"12266:11:139"},{"name":"x","nodeType":"YulIdentifier","src":"12279:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12262:3:139"},"nodeType":"YulFunctionCall","src":"12262:19:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12255:3:139"},"nodeType":"YulFunctionCall","src":"12255:27:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12247:3:139"},"nodeType":"YulFunctionCall","src":"12247:36:139"},"nodeType":"YulIf","src":"12244:2:139"},{"nodeType":"YulAssignment","src":"12315:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12326:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"12329:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12322:3:139"},"nodeType":"YulFunctionCall","src":"12322:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12315:3:139"}]}]},"name":"checked_add_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12100:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"12103:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12109:3:139","type":""}],"src":"12070:267:139"},{"body":{"nodeType":"YulBlock","src":"12390:80:139","statements":[{"body":{"nodeType":"YulBlock","src":"12417:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12419:16:139"},"nodeType":"YulFunctionCall","src":"12419:18:139"},"nodeType":"YulExpressionStatement","src":"12419:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12406:1:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12413:1:139"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12409:3:139"},"nodeType":"YulFunctionCall","src":"12409:6:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12403:2:139"},"nodeType":"YulFunctionCall","src":"12403:13:139"},"nodeType":"YulIf","src":"12400:2:139"},{"nodeType":"YulAssignment","src":"12448:16:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12459:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"12462:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12455:3:139"},"nodeType":"YulFunctionCall","src":"12455:9:139"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12448:3:139"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12373:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"12376:1:139","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12382:3:139","type":""}],"src":"12342:128:139"},{"body":{"nodeType":"YulBlock","src":"12520:148:139","statements":[{"body":{"nodeType":"YulBlock","src":"12543:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"12545:16:139"},"nodeType":"YulFunctionCall","src":"12545:18:139"},"nodeType":"YulExpressionStatement","src":"12545:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12540:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12533:6:139"},"nodeType":"YulFunctionCall","src":"12533:9:139"},"nodeType":"YulIf","src":"12530:2:139"},{"body":{"nodeType":"YulBlock","src":"12616:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12618:16:139"},"nodeType":"YulFunctionCall","src":"12618:18:139"},"nodeType":"YulExpressionStatement","src":"12618:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12584:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12591:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"12596:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12587:3:139"},"nodeType":"YulFunctionCall","src":"12587:11:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12581:2:139"},"nodeType":"YulFunctionCall","src":"12581:18:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12604:1:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12611:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12607:3:139"},"nodeType":"YulFunctionCall","src":"12607:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12601:2:139"},"nodeType":"YulFunctionCall","src":"12601:13:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12577:3:139"},"nodeType":"YulFunctionCall","src":"12577:38:139"},"nodeType":"YulIf","src":"12574:2:139"},{"nodeType":"YulAssignment","src":"12647:15:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12657:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"12660:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"12652:4:139"},"nodeType":"YulFunctionCall","src":"12652:10:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"12647:1:139"}]}]},"name":"checked_div_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12505:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"12508:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"12514:1:139","type":""}],"src":"12475:193:139"},{"body":{"nodeType":"YulBlock","src":"12719:74:139","statements":[{"body":{"nodeType":"YulBlock","src":"12742:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"12744:16:139"},"nodeType":"YulFunctionCall","src":"12744:18:139"},"nodeType":"YulExpressionStatement","src":"12744:18:139"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12739:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12732:6:139"},"nodeType":"YulFunctionCall","src":"12732:9:139"},"nodeType":"YulIf","src":"12729:2:139"},{"nodeType":"YulAssignment","src":"12773:14:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12782:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"12785:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12778:3:139"},"nodeType":"YulFunctionCall","src":"12778:9:139"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"12773:1:139"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12704:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"12707:1:139","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"12713:1:139","type":""}],"src":"12673:120:139"},{"body":{"nodeType":"YulBlock","src":"12849:526:139","statements":[{"nodeType":"YulVariableDeclaration","src":"12859:29:139","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12877:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"12882:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12873:3:139"},"nodeType":"YulFunctionCall","src":"12873:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"12886:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12869:3:139"},"nodeType":"YulFunctionCall","src":"12869:19:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12863:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12897:25:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12911:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"12914:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12907:3:139"},"nodeType":"YulFunctionCall","src":"12907:15:139"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12901:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12931:25:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12945:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"12948:7:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12941:3:139"},"nodeType":"YulFunctionCall","src":"12941:15:139"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"12935:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13004:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13006:16:139"},"nodeType":"YulFunctionCall","src":"13006:18:139"},"nodeType":"YulExpressionStatement","src":"13006:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"12976:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"12980:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12972:3:139"},"nodeType":"YulFunctionCall","src":"12972:11:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12988:1:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12995:2:139"},{"name":"y","nodeType":"YulIdentifier","src":"12999:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12991:3:139"},"nodeType":"YulFunctionCall","src":"12991:10:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12985:2:139"},"nodeType":"YulFunctionCall","src":"12985:17:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12968:3:139"},"nodeType":"YulFunctionCall","src":"12968:35:139"},"nodeType":"YulIf","src":"12965:2:139"},{"nodeType":"YulVariableDeclaration","src":"13035:21:139","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13049:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"13054:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13045:3:139"},"nodeType":"YulFunctionCall","src":"13045:11:139"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"13039:2:139","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13065:25:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13079:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"13082:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13075:3:139"},"nodeType":"YulFunctionCall","src":"13075:15:139"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"13069:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13140:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13142:16:139"},"nodeType":"YulFunctionCall","src":"13142:18:139"},"nodeType":"YulExpressionStatement","src":"13142:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"13110:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"13114:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13106:3:139"},"nodeType":"YulFunctionCall","src":"13106:11:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13123:1:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"13131:2:139"},{"name":"x","nodeType":"YulIdentifier","src":"13135:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"13126:4:139"},"nodeType":"YulFunctionCall","src":"13126:11:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13119:3:139"},"nodeType":"YulFunctionCall","src":"13119:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13102:3:139"},"nodeType":"YulFunctionCall","src":"13102:37:139"},"nodeType":"YulIf","src":"13099:2:139"},{"nodeType":"YulVariableDeclaration","src":"13171:25:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13185:1:139"},{"name":"product","nodeType":"YulIdentifier","src":"13188:7:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13181:3:139"},"nodeType":"YulFunctionCall","src":"13181:15:139"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"13175:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13246:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13248:16:139"},"nodeType":"YulFunctionCall","src":"13248:18:139"},"nodeType":"YulExpressionStatement","src":"13248:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"13216:2:139"},{"name":"_2","nodeType":"YulIdentifier","src":"13220:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13212:3:139"},"nodeType":"YulFunctionCall","src":"13212:11:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13229:1:139"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"13237:2:139"},{"name":"y","nodeType":"YulIdentifier","src":"13241:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"13232:4:139"},"nodeType":"YulFunctionCall","src":"13232:11:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13225:3:139"},"nodeType":"YulFunctionCall","src":"13225:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13208:3:139"},"nodeType":"YulFunctionCall","src":"13208:37:139"},"nodeType":"YulIf","src":"13205:2:139"},{"body":{"nodeType":"YulBlock","src":"13318:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13320:16:139"},"nodeType":"YulFunctionCall","src":"13320:18:139"},"nodeType":"YulExpressionStatement","src":"13320:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"13288:2:139"},{"name":"_5","nodeType":"YulIdentifier","src":"13292:2:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13284:3:139"},"nodeType":"YulFunctionCall","src":"13284:11:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13301:1:139"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13309:2:139"},{"name":"y","nodeType":"YulIdentifier","src":"13313:1:139"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"13304:4:139"},"nodeType":"YulFunctionCall","src":"13304:11:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13297:3:139"},"nodeType":"YulFunctionCall","src":"13297:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13280:3:139"},"nodeType":"YulFunctionCall","src":"13280:37:139"},"nodeType":"YulIf","src":"13277:2:139"},{"nodeType":"YulAssignment","src":"13349:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13364:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"13367:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"13360:3:139"},"nodeType":"YulFunctionCall","src":"13360:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"13349:7:139"}]}]},"name":"checked_mul_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12828:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"12831:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"12837:7:139","type":""}],"src":"12798:577:139"},{"body":{"nodeType":"YulBlock","src":"13432:116:139","statements":[{"body":{"nodeType":"YulBlock","src":"13491:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13493:16:139"},"nodeType":"YulFunctionCall","src":"13493:18:139"},"nodeType":"YulExpressionStatement","src":"13493:18:139"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13463:1:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13456:6:139"},"nodeType":"YulFunctionCall","src":"13456:9:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13449:6:139"},"nodeType":"YulFunctionCall","src":"13449:17:139"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13471:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13482:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13478:3:139"},"nodeType":"YulFunctionCall","src":"13478:6:139"},{"name":"x","nodeType":"YulIdentifier","src":"13486:1:139"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13474:3:139"},"nodeType":"YulFunctionCall","src":"13474:14:139"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13468:2:139"},"nodeType":"YulFunctionCall","src":"13468:21:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13445:3:139"},"nodeType":"YulFunctionCall","src":"13445:45:139"},"nodeType":"YulIf","src":"13442:2:139"},{"nodeType":"YulAssignment","src":"13522:20:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13537:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"13540:1:139"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"13533:3:139"},"nodeType":"YulFunctionCall","src":"13533:9:139"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"13522:7:139"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13411:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"13414:1:139","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"13420:7:139","type":""}],"src":"13380:168:139"},{"body":{"nodeType":"YulBlock","src":"13601:222:139","statements":[{"nodeType":"YulVariableDeclaration","src":"13611:22:139","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13625:1:139"},{"name":"diff","nodeType":"YulIdentifier","src":"13628:4:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13621:3:139"},"nodeType":"YulFunctionCall","src":"13621:12:139"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13615:2:139","type":""}]},{"body":{"nodeType":"YulBlock","src":"13690:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13692:16:139"},"nodeType":"YulFunctionCall","src":"13692:18:139"},"nodeType":"YulExpressionStatement","src":"13692:18:139"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13656:2:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13649:6:139"},"nodeType":"YulFunctionCall","src":"13649:10:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13665:1:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13676:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"13681:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13672:3:139"},"nodeType":"YulFunctionCall","src":"13672:11:139"},{"name":"y","nodeType":"YulIdentifier","src":"13685:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13668:3:139"},"nodeType":"YulFunctionCall","src":"13668:19:139"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13661:3:139"},"nodeType":"YulFunctionCall","src":"13661:27:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13645:3:139"},"nodeType":"YulFunctionCall","src":"13645:44:139"},"nodeType":"YulIf","src":"13642:2:139"},{"body":{"nodeType":"YulBlock","src":"13769:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13771:16:139"},"nodeType":"YulFunctionCall","src":"13771:18:139"},"nodeType":"YulExpressionStatement","src":"13771:18:139"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13728:2:139"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13736:1:139"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13751:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"13756:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13747:3:139"},"nodeType":"YulFunctionCall","src":"13747:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"13760:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13743:3:139"},"nodeType":"YulFunctionCall","src":"13743:19:139"},{"name":"y","nodeType":"YulIdentifier","src":"13764:1:139"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13739:3:139"},"nodeType":"YulFunctionCall","src":"13739:27:139"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"13732:3:139"},"nodeType":"YulFunctionCall","src":"13732:35:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13724:3:139"},"nodeType":"YulFunctionCall","src":"13724:44:139"},"nodeType":"YulIf","src":"13721:2:139"},{"nodeType":"YulAssignment","src":"13800:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13812:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"13815:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13808:3:139"},"nodeType":"YulFunctionCall","src":"13808:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"13800:4:139"}]}]},"name":"checked_sub_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13583:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"13586:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"13592:4:139","type":""}],"src":"13553:270:139"},{"body":{"nodeType":"YulBlock","src":"13877:76:139","statements":[{"body":{"nodeType":"YulBlock","src":"13899:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13901:16:139"},"nodeType":"YulFunctionCall","src":"13901:18:139"},"nodeType":"YulExpressionStatement","src":"13901:18:139"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13893:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"13896:1:139"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13890:2:139"},"nodeType":"YulFunctionCall","src":"13890:8:139"},"nodeType":"YulIf","src":"13887:2:139"},{"nodeType":"YulAssignment","src":"13930:17:139","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13942:1:139"},{"name":"y","nodeType":"YulIdentifier","src":"13945:1:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13938:3:139"},"nodeType":"YulFunctionCall","src":"13938:9:139"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"13930:4:139"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13859:1:139","type":""},{"name":"y","nodeType":"YulTypedName","src":"13862:1:139","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"13868:4:139","type":""}],"src":"13828:125:139"},{"body":{"nodeType":"YulBlock","src":"14005:88:139","statements":[{"body":{"nodeType":"YulBlock","src":"14036:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14038:16:139"},"nodeType":"YulFunctionCall","src":"14038:18:139"},"nodeType":"YulExpressionStatement","src":"14038:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14021:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14032:1:139","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14028:3:139"},"nodeType":"YulFunctionCall","src":"14028:6:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14018:2:139"},"nodeType":"YulFunctionCall","src":"14018:17:139"},"nodeType":"YulIf","src":"14015:2:139"},{"nodeType":"YulAssignment","src":"14067:20:139","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14078:5:139"},{"kind":"number","nodeType":"YulLiteral","src":"14085:1:139","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14074:3:139"},"nodeType":"YulFunctionCall","src":"14074:13:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14067:3:139"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13987:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"13997:3:139","type":""}],"src":"13958:135:139"},{"body":{"nodeType":"YulBlock","src":"14141:95:139","statements":[{"body":{"nodeType":"YulBlock","src":"14177:22:139","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14179:16:139"},"nodeType":"YulFunctionCall","src":"14179:18:139"},"nodeType":"YulExpressionStatement","src":"14179:18:139"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14157:5:139"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14168:3:139","type":"","value":"255"},{"kind":"number","nodeType":"YulLiteral","src":"14173:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14164:3:139"},"nodeType":"YulFunctionCall","src":"14164:11:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14154:2:139"},"nodeType":"YulFunctionCall","src":"14154:22:139"},"nodeType":"YulIf","src":"14151:2:139"},{"nodeType":"YulAssignment","src":"14208:22:139","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"14219:3:139"},{"name":"value","nodeType":"YulIdentifier","src":"14224:5:139"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14215:3:139"},"nodeType":"YulFunctionCall","src":"14215:15:139"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14208:3:139"}]}]},"name":"negate_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14123:5:139","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14133:3:139","type":""}],"src":"14098:138:139"},{"body":{"nodeType":"YulBlock","src":"14273:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14290:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14297:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14302:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14293:3:139"},"nodeType":"YulFunctionCall","src":"14293:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14283:6:139"},"nodeType":"YulFunctionCall","src":"14283:31:139"},"nodeType":"YulExpressionStatement","src":"14283:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14330:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14333:4:139","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14323:6:139"},"nodeType":"YulFunctionCall","src":"14323:15:139"},"nodeType":"YulExpressionStatement","src":"14323:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14354:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14357:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14347:6:139"},"nodeType":"YulFunctionCall","src":"14347:15:139"},"nodeType":"YulExpressionStatement","src":"14347:15:139"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14241:127:139"},{"body":{"nodeType":"YulBlock","src":"14405:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14422:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14429:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14434:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14425:3:139"},"nodeType":"YulFunctionCall","src":"14425:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14415:6:139"},"nodeType":"YulFunctionCall","src":"14415:31:139"},"nodeType":"YulExpressionStatement","src":"14415:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14462:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14465:4:139","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14455:6:139"},"nodeType":"YulFunctionCall","src":"14455:15:139"},"nodeType":"YulExpressionStatement","src":"14455:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14486:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14489:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14479:6:139"},"nodeType":"YulFunctionCall","src":"14479:15:139"},"nodeType":"YulExpressionStatement","src":"14479:15:139"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"14373:127:139"},{"body":{"nodeType":"YulBlock","src":"14537:95:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14554:1:139","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14561:3:139","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14566:10:139","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14557:3:139"},"nodeType":"YulFunctionCall","src":"14557:20:139"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14547:6:139"},"nodeType":"YulFunctionCall","src":"14547:31:139"},"nodeType":"YulExpressionStatement","src":"14547:31:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14594:1:139","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14597:4:139","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14587:6:139"},"nodeType":"YulFunctionCall","src":"14587:15:139"},"nodeType":"YulExpressionStatement","src":"14587:15:139"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14618:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14621:4:139","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14611:6:139"},"nodeType":"YulFunctionCall","src":"14611:15:139"},"nodeType":"YulExpressionStatement","src":"14611:15:139"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14505:127:139"},{"body":{"nodeType":"YulBlock","src":"14682:86:139","statements":[{"body":{"nodeType":"YulBlock","src":"14746:16:139","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14755:1:139","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14758:1:139","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14748:6:139"},"nodeType":"YulFunctionCall","src":"14748:12:139"},"nodeType":"YulExpressionStatement","src":"14748:12:139"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14705:5:139"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14716:5:139"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14731:3:139","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14736:1:139","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14727:3:139"},"nodeType":"YulFunctionCall","src":"14727:11:139"},{"kind":"number","nodeType":"YulLiteral","src":"14740:1:139","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14723:3:139"},"nodeType":"YulFunctionCall","src":"14723:19:139"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14712:3:139"},"nodeType":"YulFunctionCall","src":"14712:31:139"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14702:2:139"},"nodeType":"YulFunctionCall","src":"14702:42:139"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14695:6:139"},"nodeType":"YulFunctionCall","src":"14695:50:139"},"nodeType":"YulIf","src":"14692:2:139"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14671:5:139","type":""}],"src":"14637:131:139"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(length, length) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_int256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value3, value3) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value3, value3) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(value3, value3) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(value0, value0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _4)\n        dst := add(memPtr, _1)\n        let src := add(_3, _1)\n        if gt(add(add(_3, _5), _1), dataEnd) { revert(value0, value0) }\n        let i := value0\n        for { } lt(i, _4) { i := add(i, 1) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _1)\n            src := add(src, _1)\n        }\n        value0 := memPtr\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_int256__to_t_address_t_int256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IRegistry_$35522__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_stringliteral_133a7fe2eebf74ca06dae830f1cc0a4f8bf300fe74a4ab7747e402afcd480373__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"poolweight = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1355413e145dd895199a1470343662188ea09a767aa932f9652d308220ce7141__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"not gauge\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_21448b7701c49b1d00f0227c233dff37c8ba253b3bf31028e6a70f0915494f8f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"pool not whitelisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3d8fd27f60f801392ed4a805e9a616b67fbe330600529fe4c44f4e6236c37150__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"not staker contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_429934838f087ae299ad1231c2ee4a6a9c6f1c12bb587193d283724cb62953aa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"gauge factory not whitelisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5fd3c3b0149a394d085b2c080385c84ffac8f784fc0593041aaa37fd2a4a6805__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"gauge exists\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_75b92c04e3852cdfcf5bd4dc9a1e997ea23d913be5324d3059265011dfbe9289__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"invalid weights\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_90e5fe8a3b3baedda5055cceb8ec58840506c5af7b9ff9e8302bbdb45aa5d707__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"gauge not registered\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a265803760dd6c3f1a514c81624e55a9b28174223c091f7c32672bd32a843e1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"not emission controller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b1a1d28dc073f98552afa17cc2593efc877d9ee41ba8bcc494e1c5721fd0d480__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 9)\n        mstore(add(headStart, 64), \"votes = 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_cc9bc920f048fecb325dc70841739d76a7dc75fac403fcf2ee032fa7c37b7bf1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"bribe factory not whitelisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function checked_add_t_int256(x, y) -> sum\n    {\n        let _1 := slt(x, sum)\n        if and(iszero(_1), sgt(y, sub(sub(shl(255, 1), 1), x))) { panic_error_0x11() }\n        if and(_1, slt(y, sub(shl(255, 1), x))) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_div_t_int256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        if and(eq(x, shl(255, 1)), eq(y, not(0))) { panic_error_0x11() }\n        r := sdiv(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_mul_t_int256(x, y) -> product\n    {\n        let _1 := sub(shl(255, 1), 1)\n        let _2 := sgt(y, product)\n        let _3 := sgt(x, product)\n        if and(and(_3, _2), gt(x, div(_1, y))) { panic_error_0x11() }\n        let _4 := shl(255, 1)\n        let _5 := slt(y, product)\n        if and(and(_3, _5), slt(y, sdiv(_4, x))) { panic_error_0x11() }\n        let _6 := slt(x, product)\n        if and(and(_6, _2), slt(x, sdiv(_4, y))) { panic_error_0x11() }\n        if and(and(_6, _5), slt(x, sdiv(_1, y))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_int256(x, y) -> diff\n    {\n        let _1 := slt(y, diff)\n        if and(iszero(_1), slt(x, add(shl(255, 1), y))) { panic_error_0x11() }\n        if and(_1, sgt(x, add(sub(shl(255, 1), 1), y))) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function negate_t_int256(value) -> ret\n    {\n        if eq(value, shl(255, 1)) { panic_error_0x11() }\n        ret := sub(ret, value)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n}","id":139,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"39088":[{"length":32,"start":870},{"length":32,"start":1351},{"length":32,"start":1995},{"length":32,"start":2530},{"length":32,"start":2831},{"length":32,"start":3083},{"length":32,"start":3453},{"length":32,"start":6297},{"length":32,"start":7664},{"length":32,"start":7926},{"length":32,"start":8215},{"length":32,"start":8537}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101db5760003560e01c80638da5cb5b11610105578063b1a997ac1161009d578063b1a997ac1461047a578063b9a09fd51461048d578063c48f5af4146104b6578063cad1b906146104c9578063d560b0d7146104f4578063d826f88f14610507578063e32e4e881461050f578063e4fc6b6d14610522578063f2fde38b1461052a57600080fd5b80638da5cb5b1461038857806396c82e571461039957806397a302f7146103a25780639b19251a146103b55780639b6a9d72146103e8578063a7cac846146103fb578063a8c5d95a1461041b578063aa79979b14610444578063ac4afa381461046757600080fd5b806353d786931161017857806353d78693146102d2578063551e0566146102da5780636138889b146102ed57806363453ae1146103005780636405eacd146103135780636ecbe38a14610333578063715018a6146103465780637625391a1461034e5780637b1039991461036157600080fd5b80622f8de4146101e057806306d6a1b2146102135780631cdf2eb9146102495780631f7b6d321461025e57806320217176146102665780632efce57b1461027957806339393ac91461028c5780633c6b16ab1461029f578063402914f5146102b2575b600080fd5b6102006101ee366004612360565b600a6020526000908152604090205481565b6040519081526020015b60405180910390f35b61023c610221366004612360565b6005602052600090815260409020546001600160a01b031681565b60405161020a91906125ed565b61025c6102573660046123d7565b61053d565b005b600354610200565b61025c610274366004612360565b6107c9565b61025c61028736600461244c565b6108bc565b61025c61029a366004612360565b610971565b61025c6102ad36600461259c565b6109e0565b6102006102c0366004612360565b60106020526000908152604090205481565b61025c610bee565b61023c6102e83660046123d7565b610bff565b61025c6102fb3660046124b5565b610f9c565b61025c61030e366004612360565b610fee565b610200610321366004612360565b600d6020526000908152604090205481565b61025c610341366004612360565b610ff7565b61025c611000565b61025c61035c3660046125cc565b611012565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031661023c565b61020060025481565b61025c6103b0366004612360565b61108b565b6103d86103c3366004612360565b600c6020526000908152604090205460ff1681565b604051901515815260200161020a565b61025c6103f63660046125cc565b611125565b610200610409366004612360565b60076020526000908152604090205481565b61023c610429366004612360565b6006602052600090815260409020546001600160a01b031681565b6103d8610452366004612360565b600b6020526000908152604090205460ff1681565b61023c61047536600461259c565b611199565b61025c610488366004612360565b6111c3565b61023c61049b366004612360565b6004602052600090815260409020546001600160a01b031681565b61023c6104c4366004612421565b611349565b6102006104d736600461239f565b600860209081526000928352604080842090915290825290205481565b61025c6105023660046124b5565b611381565b61025c6113cf565b61025c61051d366004612360565b6113d8565b61025c611473565b61025c610538366004612360565b611482565b6105456114f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105a057600080fd5b505af11580156105b4573d6000803e3d6000fd5b505050506001600160a01b038381166000908152600460205260409020541661061b5760405162461bcd60e51b815260206004820152601460248201527319d85d59d9481b9bdd081c9959da5cdd195c995960621b60448201526064015b60405180910390fd5b6001600160a01b0383166000908152600c602052604090205460ff166106535760405162461bcd60e51b81526004016106129061263d565b6001600160a01b0382166000908152600c602052604090205460ff1661068b5760405162461bcd60e51b8152600401610612906126a2565b6001600160a01b0381166000908152600c602052604090205460ff166106c35760405162461bcd60e51b81526004016106129061266b565b6001600160a01b03838116600081815260046020908152604080832080548616808552600680855283862080546001600160a01b0319908116909155835481168a8a169081179094556005808752858820805483169055600b808852868920805460ff19908116909155958952928752858820805483169a8d169a909a1790995597855283862080549098169096179096559390915290208054909116600117905561076e82611552565b836001600160a01b0316836001600160a01b0316836001600160a01b03167f4d7ce501eb0e91cd95cabaadabaec91f7e30501bfcd995e6baccfed91da5294b336040516107bb91906125ed565b60405180910390a450505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082257600080fd5b505afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a9190612383565b6001600160a01b0316336001600160a01b0316146108b05760405162461bcd60e51b81526020600482015260136024820152721b9bdd081cdd185ad95c8818dbdb9d1c9858dd606a1b6044820152606401610612565b6108b981611636565b50565b8281146108fd5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964207765696768747360881b6044820152606401610612565b61096b338585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201919091525061188692505050565b50505050565b6109796114f8565b6001600160a01b0381166000818152600c6020908152604091829020805460ff8082161560ff199092168217909255925192161515825233917fc8a125677224e7125b3579c5a10de1afe210f4c1c1d3c27be0f12b0c4a14c915910160405180910390a350565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dee20126040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3957600080fd5b505afa158015610a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a719190612383565b6001600160a01b0316336001600160a01b031614610acb5760405162461bcd60e51b81526020600482015260176024820152763737ba1032b6b4b9b9b4b7b71031b7b73a3937b63632b960491b6044820152606401610612565b600254600090610ae383670de0b6b3a76400006127f7565b610aed9190612760565b90508015610b0d5780600e6000828254610b07919061271a565b90915550505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190612383565b6001600160a01b0316336001600160a01b03167ff70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf5082684604051610be291815260200190565b60405180910390a35050565b600354610bfd90600090611125565b565b6000610c096114f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f9fa21236040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6457600080fd5b505af1158015610c78573d6000803e3d6000fd5b505050506001600160a01b038481166000908152600460205260409020541615610cd35760405162461bcd60e51b815260206004820152600c60248201526b67617567652065786973747360a01b6044820152606401610612565b6001600160a01b0384166000908152600c602052604090205460ff16610d0b5760405162461bcd60e51b81526004016106129061263d565b6001600160a01b0383166000908152600c602052604090205460ff16610d435760405162461bcd60e51b8152600401610612906126a2565b6001600160a01b0382166000908152600c602052604090205460ff16610d7b5760405162461bcd60e51b81526004016106129061266b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b158015610dd457600080fd5b505afa158015610de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0c9190612383565b6001600160a01b031663095ea7b3836000196040518363ffffffff1660e01b8152600401610e3b929190612601565b602060405180830381600087803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d919061257c565b506001600160a01b0380831660008181526006602090815260408083208054868a166001600160a01b031991821617909155948916808452600483528184208054871686179055938352600582528083208054909516909317909355600b9092529020805460ff19166001179055610f0482611552565b600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b03868116918217909255604051909185811691908516907f48d3c521fd0d5541640f58c6d6381eed7cb2e8c9df421ae165a4f4c2d221ee0d90610f8d9033906125ed565b60405180910390a45092915050565b60005b8151811015610fea57610fd8828281518110610fcb57634e487b7160e01b600052603260045260246000fd5b6020026020010151611d93565b80610fe28161286c565b915050610f9f565b5050565b6108b981611d93565b6108b981611552565b6110086114f8565b610bfd6000612282565b815b8181101561108657611074600460006003848154811061104457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190205416611d93565b8061107e8161286c565b915050611014565b505050565b336000908152600b602052604090205460ff166110ba5760405162461bcd60e51b81526004016106129061261a565b6001600160a01b0381166000908152600d60205260409020546110de90600161271a565b6001600160a01b0382166000818152600d602052604080822093909355915133927f641bf376905299ee0c14255d96d80f858c848237b2ac4f0ce467affe4e4b960591a350565b815b8181101561108657611187600460006003848154811061115757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190205416611552565b806111918161286c565b915050611127565b600381815481106111a957600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03811660009081526009602090815260408083208054825181850281018501909352808352919290919083018282801561122d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161120f575b5050505050905060008151905060008167ffffffffffffffff81111561126357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561128c578160200160208202803683370190505b50905060005b8281101561133d576001600160a01b038516600090815260086020526040812085519091908690849081106112d757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205482828151811061132057634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806113358161286c565b915050611292565b5061096b848483611886565b6009602052816000526040600020818154811061136557600080fd5b6000918252602090912001546001600160a01b03169150829050565b60005b8151811015610fea576113bd8282815181106113b057634e487b7160e01b600052603260045260246000fd5b6020026020010151611552565b806113c78161286c565b915050611384565b610bfd33611636565b336000908152600b602052604090205460ff166114075760405162461bcd60e51b81526004016106129061261a565b6001600160a01b0381166000908152600d602052604090205461142c90600190612855565b6001600160a01b0382166000818152600d602052604080822093909355915133927ff655d5448541f499e8d15e12be905bce1d45ff3df14aeca2d174cc9eda1664e591a350565b600354610bfd90600090611012565b61148a6114f8565b6001600160a01b0381166114ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610612565b6108b981612282565b6001546001600160a01b03163314610bfd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610612565b6001600160a01b0380821660009081526005602090815260408083205490931680835260079091529181205490811315611615576001600160a01b0383166000908152600f602052604081208054600e5491829055916115b28383612855565b9050801561160d576000670de0b6b3a76400006115cf83876127f7565b6115d99190612760565b6001600160a01b03881660009081526010602052604081208054929350839290919061160690849061271a565b9091555050505b505050505050565b600e546001600160a01b0384166000908152600f6020526040902055505050565b6001600160a01b038116600090815260096020526040812080549091805b8281101561184057600084828154811061167e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03898116845260088352604080852091909216808552925290912054909150801561182b576001600160a01b038083166000908152600460205260409020546116dc9116611552565b6001600160a01b03821660009081526007602052604081208054839290611704908490612816565b90915550506001600160a01b03808816600090815260086020908152604080832093861683529290529081208054839290611740908490612816565b909155505060008113156117e4576001600160a01b038281166000908152600460208181526040808420548516845260069091529182902054915163293311ab60e01b8152908101849052898316602482015291169063293311ab90604401600060405180830381600087803b1580156117b957600080fd5b505af11580156117cd573d6000803e3d6000fd5b5050505080846117dd91906126d9565b93506117f1565b6117ee8185612816565b93505b7fc1bfb37c7ef0c045eeb49dfda5c409cf0f4964f3a006b9ff1c487b39d1682c818782604051611822929190612601565b60405180910390a15b505080806118389061286c565b915050611654565b5080600260008282546118539190612855565b90915550506001600160a01b0384166000908152600a602090815260408083208390556009909152812061096b916122d4565b61188f83611636565b60008251905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ebaf1db6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118f057600080fd5b505afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119289190612383565b90506000816001600160a01b0316633a02a42d876040518263ffffffff1660e01b815260040161195891906125ed565b60206040518083038186803b15801561197057600080fd5b505afa158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a891906125b4565b90506000806000805b86811015611a655760008882815181106119db57634e487b7160e01b600052603260045260246000fd5b602002602001015113611a1e57878181518110611a0857634e487b7160e01b600052603260045260246000fd5b6020026020010151611a1990612887565b611a47565b878181518110611a3e57634e487b7160e01b600052603260045260246000fd5b60200260200101515b611a5190856126d9565b935080611a5d8161286c565b9150506119b1565b5060005b86811015611d55576000898281518110611a9357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03808216600090815260048452604080822054909216808252600b909452205490925060ff1615611d4057600086888c8681518110611af557634e487b7160e01b600052603260045260246000fd5b6020026020010151611b079190612774565b611b119190612732565b6001600160a01b03808f1660009081526008602090815260408083209388168352929052205490915015611b735760405162461bcd60e51b81526020600482015260096024820152680766f746573203d20360bc1b6044820152606401610612565b80611bb15760405162461bcd60e51b815260206004820152600e60248201526d0706f6f6c776569676874203d20360941b6044820152606401610612565b611bba82611552565b6001600160a01b038d8116600090815260096020908152604080832080546001810182559084528284200180546001600160a01b0319169488169485179055928252600790529081208054839290611c139084906126d9565b90915550506001600160a01b03808e16600090815260086020908152604080832093871683529290529081208054839290611c4f9084906126d9565b90915550506000811315611cd7576001600160a01b0380831660009081526006602052604090819020549051630463cd9760e41b8152600481018490528f8316602482015291169063463cd97090604401600060405180830381600087803b158015611cba57600080fd5b505af1158015611cce573d6000803e3d6000fd5b50505050611ce3565b611ce081612887565b90505b611ced81866126d9565b9450611cf981876126d9565b9550336001600160a01b03167f6313944499515bb2add64302f02a3082da9b13539bc2ca6317630260d7ebca628e83604051611d36929190612601565b60405180910390a2505b50508080611d4d9061286c565b915050611a69565b508160026000828254611d68919061271a565b90915550506001600160a01b039098166000908152600a602052604090209790975550505050505050565b60026000541415611de65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610612565b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dee20126040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4757600080fd5b505afa158015611e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7f9190612383565b6001600160a01b0316636a2ab6026040518163ffffffff1660e01b815260040160206040518083038186803b158015611eb757600080fd5b505afa158015611ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eef919061257c565b15611fd8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dee20126040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4d57600080fd5b505afa158015611f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f859190612383565b6001600160a01b031663161ad7066040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b505050505b611fe181611552565b6001600160a01b03808216600081815260106020908152604091829020548251631ef0061b60e11b8152925190946399bcc052937f000000000000000000000000000000000000000000000000000000000000000090911692633de00c3692600480840193829003018186803b15801561205a57600080fd5b505afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120929190612383565b6040518263ffffffff1660e01b81526004016120ae91906125ed565b60206040518083038186803b1580156120c657600080fd5b505afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe91906125b4565b811180156121185750600061211662093a8083612760565b115b1561227957600060106000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663b66503cf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633de00c366040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b057600080fd5b505afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190612383565b836040518363ffffffff1660e01b8152600401612206929190612601565b600060405180830381600087803b15801561222057600080fd5b505af1158015612234573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507f4fa9693cae526341d334e2862ca2413b2e503f1266255f9e0869fb36e6d89b179060200160405180910390a35b50506001600055565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b50805460008255906000526020600020908101906108b991905b8082111561230257600081556001016122ee565b5090565b8035612311816128e3565b919050565b60008083601f840112612327578081fd5b50813567ffffffffffffffff81111561233e578182fd5b6020830191508360208260051b850101111561235957600080fd5b9250929050565b600060208284031215612371578081fd5b813561237c816128e3565b9392505050565b600060208284031215612394578081fd5b815161237c816128e3565b600080604083850312156123b1578081fd5b82356123bc816128e3565b915060208301356123cc816128e3565b809150509250929050565b6000806000606084860312156123eb578081fd5b83356123f6816128e3565b92506020840135612406816128e3565b91506040840135612416816128e3565b809150509250925092565b60008060408385031215612433578182fd5b823561243e816128e3565b946020939093013593505050565b60008060008060408587031215612461578081fd5b843567ffffffffffffffff80821115612478578283fd5b61248488838901612316565b9096509450602087013591508082111561249c578283fd5b506124a987828801612316565b95989497509550505050565b600060208083850312156124c7578182fd5b823567ffffffffffffffff808211156124de578384fd5b818501915085601f8301126124f1578384fd5b813581811115612503576125036128cd565b8060051b604051601f19603f83011681018181108582111715612528576125286128cd565b604052828152858101935084860182860187018a1015612546578788fd5b8795505b8386101561256f5761255b81612306565b85526001959095019493860193860161254a565b5098975050505050505050565b60006020828403121561258d578081fd5b8151801515811461237c578182fd5b6000602082840312156125ad578081fd5b5035919050565b6000602082840312156125c5578081fd5b5051919050565b600080604083850312156125de578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600990820152686e6f7420676175676560b81b604082015260600190565b6020808252601490820152731c1bdbdb081b9bdd081dda1a5d195b1a5cdd195960621b604082015260600190565b6020808252601d908201527f676175676520666163746f7279206e6f742077686974656c6973746564000000604082015260600190565b6020808252601d908201527f627269626520666163746f7279206e6f742077686974656c6973746564000000604082015260600190565b600080821280156001600160ff1b03849003851316156126fb576126fb6128a1565b600160ff1b8390038412811615612714576127146128a1565b50500190565b6000821982111561272d5761272d6128a1565b500190565b600082612741576127416128b7565b600160ff1b82146000198414161561275b5761275b6128a1565b500590565b60008261276f5761276f6128b7565b500490565b60006001600160ff1b038184138284138082168684048611161561279a5761279a6128a1565b600160ff1b848712828116878305891216156127b8576127b86128a1565b8587129250878205871284841616156127d3576127d36128a1565b878505871281841616156127e9576127e96128a1565b505050929093029392505050565b6000816000190483118215151615612811576128116128a1565b500290565b60008083128015600160ff1b850184121615612834576128346128a1565b6001600160ff1b038401831381161561284f5761284f6128a1565b50500390565b600082821015612867576128676128a1565b500390565b6000600019821415612880576128806128a1565b5060010190565b6000600160ff1b82141561289d5761289d6128a1565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108b957600080fdfea2646970667358221220a376823bd71dccacbed5518de5fa954e45a1b6eda03d80de62799224f784152764736f6c63430008040033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1DB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x105 JUMPI DUP1 PUSH4 0xB1A997AC GT PUSH2 0x9D JUMPI DUP1 PUSH4 0xB1A997AC EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xB9A09FD5 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xC48F5AF4 EQ PUSH2 0x4B6 JUMPI DUP1 PUSH4 0xCAD1B906 EQ PUSH2 0x4C9 JUMPI DUP1 PUSH4 0xD560B0D7 EQ PUSH2 0x4F4 JUMPI DUP1 PUSH4 0xD826F88F EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0xE32E4E88 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0xE4FC6B6D EQ PUSH2 0x522 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x97A302F7 EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x9B6A9D72 EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0xA7CAC846 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xA8C5D95A EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xAA79979B EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0xAC4AFA38 EQ PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x53D78693 GT PUSH2 0x178 JUMPI DUP1 PUSH4 0x53D78693 EQ PUSH2 0x2D2 JUMPI DUP1 PUSH4 0x551E0566 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x6138889B EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x63453AE1 EQ PUSH2 0x300 JUMPI DUP1 PUSH4 0x6405EACD EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x6ECBE38A EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0x7625391A EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x2F8DE4 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x6D6A1B2 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x1CDF2EB9 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x1F7B6D32 EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0x20217176 EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0x2EFCE57B EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x39393AC9 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x402914F5 EQ PUSH2 0x2B2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x200 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23C PUSH2 0x221 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH2 0x25C PUSH2 0x257 CALLDATASIZE PUSH1 0x4 PUSH2 0x23D7 JUMP JUMPDEST PUSH2 0x53D JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x200 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x274 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x244C JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST PUSH2 0x25C PUSH2 0x29A CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x971 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x2AD CALLDATASIZE PUSH1 0x4 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x9E0 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x2C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0xBEE JUMP JUMPDEST PUSH2 0x23C PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x23D7 JUMP JUMPDEST PUSH2 0xBFF JUMP JUMPDEST PUSH2 0x25C PUSH2 0x2FB CALLDATASIZE PUSH1 0x4 PUSH2 0x24B5 JUMP JUMPDEST PUSH2 0xF9C JUMP JUMPDEST PUSH2 0x25C PUSH2 0x30E CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0xFEE JUMP JUMPDEST PUSH2 0x200 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x35C CALLDATASIZE PUSH1 0x4 PUSH2 0x25CC JUMP JUMPDEST PUSH2 0x1012 JUMP JUMPDEST PUSH2 0x23C PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x23C JUMP JUMPDEST PUSH2 0x200 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x3B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x108B JUMP JUMPDEST PUSH2 0x3D8 PUSH2 0x3C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20A JUMP JUMPDEST PUSH2 0x25C PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x25CC JUMP JUMPDEST PUSH2 0x1125 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x3D8 PUSH2 0x452 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x475 CALLDATASIZE PUSH1 0x4 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x1199 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x11C3 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x23C PUSH2 0x4C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2421 JUMP JUMPDEST PUSH2 0x1349 JUMP JUMPDEST PUSH2 0x200 PUSH2 0x4D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x239F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x502 CALLDATASIZE PUSH1 0x4 PUSH2 0x24B5 JUMP JUMPDEST PUSH2 0x1381 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x13CF JUMP JUMPDEST PUSH2 0x25C PUSH2 0x51D CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x13D8 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x1473 JUMP JUMPDEST PUSH2 0x25C PUSH2 0x538 CALLDATASIZE PUSH1 0x4 PUSH2 0x2360 JUMP JUMPDEST PUSH2 0x1482 JUMP JUMPDEST PUSH2 0x545 PUSH2 0x14F8 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND PUSH2 0x61B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x19D85D59D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x263D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x68B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x26A2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x6C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x266B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 AND DUP1 DUP6 MSTORE PUSH1 0x6 DUP1 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE DUP4 SLOAD DUP2 AND DUP11 DUP11 AND SWAP1 DUP2 OR SWAP1 SWAP5 SSTORE PUSH1 0x5 DUP1 DUP8 MSTORE DUP6 DUP9 KECCAK256 DUP1 SLOAD DUP4 AND SWAP1 SSTORE PUSH1 0xB DUP1 DUP9 MSTORE DUP7 DUP10 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE SWAP6 DUP10 MSTORE SWAP3 DUP8 MSTORE DUP6 DUP9 KECCAK256 DUP1 SLOAD DUP4 AND SWAP11 DUP14 AND SWAP11 SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD SWAP1 SWAP9 AND SWAP1 SWAP7 OR SWAP1 SWAP7 SSTORE SWAP4 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x76E DUP3 PUSH2 0x1552 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x4D7CE501EB0E91CD95CABAADABAEC91F7E30501BFCD995E6BACCFED91DA5294B CALLER PUSH1 0x40 MLOAD PUSH2 0x7BB SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x85A SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x1B9BDD081CDD185AD95C8818DBDB9D1C9858DD PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x1636 JUMP JUMPDEST POP JUMP JUMPDEST DUP3 DUP2 EQ PUSH2 0x8FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x696E76616C69642077656967687473 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x96B CALLER DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP10 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP1 SWAP4 POP DUP9 SWAP3 POP DUP8 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1886 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x979 PUSH2 0x14F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO PUSH1 0xFF NOT SWAP1 SWAP3 AND DUP3 OR SWAP1 SWAP3 SSTORE SWAP3 MLOAD SWAP3 AND ISZERO ISZERO DUP3 MSTORE CALLER SWAP2 PUSH32 0xC8A125677224E7125B3579C5A10DE1AFE210F4C1C1D3C27BE0F12B0C4A14C915 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6DEE2012 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA4D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA71 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xACB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH23 0x3737BA1032B6B4B9B9B4B7B71031B7B73A3937B63632B9 PUSH1 0x49 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xAE3 DUP4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x27F7 JUMP JUMPDEST PUSH2 0xAED SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB0D JUMPI DUP1 PUSH1 0xE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB07 SWAP2 SWAP1 PUSH2 0x271A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB9E SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF70D5C697DE7EA828DF48E5C4573CB2194C659F1901F70110C52B066DCF50826 DUP5 PUSH1 0x40 MLOAD PUSH2 0xBE2 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xBFD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1125 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC09 PUSH2 0x14F8 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF9FA2123 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x676175676520657869737473 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x263D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x26A2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x266B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE0C SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 DUP4 PUSH1 0x0 NOT PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE3B SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE69 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE8D SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 DUP11 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE SWAP5 DUP10 AND DUP1 DUP5 MSTORE PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD DUP8 AND DUP7 OR SWAP1 SSTORE SWAP4 DUP4 MSTORE PUSH1 0x5 DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP6 AND SWAP1 SWAP4 OR SWAP1 SWAP4 SSTORE PUSH1 0xB SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xF04 DUP3 PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP1 SWAP2 DUP6 DUP2 AND SWAP2 SWAP1 DUP6 AND SWAP1 PUSH32 0x48D3C521FD0D5541640F58C6D6381EED7CB2E8C9DF421AE165A4F4C2D221EE0D SWAP1 PUSH2 0xF8D SWAP1 CALLER SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xFEA JUMPI PUSH2 0xFD8 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFCB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1D93 JUMP JUMPDEST DUP1 PUSH2 0xFE2 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x1D93 JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0x1008 PUSH2 0x14F8 JUMP JUMPDEST PUSH2 0xBFD PUSH1 0x0 PUSH2 0x2282 JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1086 JUMPI PUSH2 0x1074 PUSH1 0x4 PUSH1 0x0 PUSH1 0x3 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1044 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x1D93 JUMP JUMPDEST DUP1 PUSH2 0x107E DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1014 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x10BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x261A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10DE SWAP1 PUSH1 0x1 PUSH2 0x271A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD CALLER SWAP3 PUSH32 0x641BF376905299EE0C14255D96D80F858C848237B2AC4F0CE467AFFE4E4B9605 SWAP2 LOG3 POP JUMP JUMPDEST DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1086 JUMPI PUSH2 0x1187 PUSH1 0x4 PUSH1 0x0 PUSH1 0x3 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1157 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 SLOAD AND PUSH2 0x1552 JUMP JUMPDEST DUP1 PUSH2 0x1191 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x11A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x122D JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 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 0x120F JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1263 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x128C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x133D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 MLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x12D7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1320 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0x1335 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1292 JUMP JUMPDEST POP PUSH2 0x96B DUP5 DUP5 DUP4 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP DUP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xFEA JUMPI PUSH2 0x13BD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x13B0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1552 JUMP JUMPDEST DUP1 PUSH2 0x13C7 DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1384 JUMP JUMPDEST PUSH2 0xBFD CALLER PUSH2 0x1636 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1407 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x612 SWAP1 PUSH2 0x261A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x142C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2855 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD CALLER SWAP3 PUSH32 0xF655D5448541F499E8D15E12BE905BCE1D45FF3DF14AECA2D174CC9EDA1664E5 SWAP2 LOG3 POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xBFD SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1012 JUMP JUMPDEST PUSH2 0x148A PUSH2 0x14F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x14EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x8B9 DUP2 PUSH2 0x2282 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP2 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SGT ISZERO PUSH2 0x1615 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xE SLOAD SWAP2 DUP3 SWAP1 SSTORE SWAP2 PUSH2 0x15B2 DUP4 DUP4 PUSH2 0x2855 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x160D JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH2 0x15CF DUP4 DUP8 PUSH2 0x27F7 JUMP JUMPDEST PUSH2 0x15D9 SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP DUP4 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x1606 SWAP1 DUP5 SWAP1 PUSH2 0x271A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1840 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x167E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP5 MSTORE PUSH1 0x8 DUP4 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 SWAP2 SWAP1 SWAP3 AND DUP1 DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 ISZERO PUSH2 0x182B JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x16DC SWAP2 AND PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1704 SWAP1 DUP5 SWAP1 PUSH2 0x2816 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1740 SWAP1 DUP5 SWAP1 PUSH2 0x2816 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x17E4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SLOAD DUP6 AND DUP5 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH4 0x293311AB PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP10 DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x293311AB SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP5 PUSH2 0x17DD SWAP2 SWAP1 PUSH2 0x26D9 JUMP JUMPDEST SWAP4 POP PUSH2 0x17F1 JUMP JUMPDEST PUSH2 0x17EE DUP2 DUP6 PUSH2 0x2816 JUMP JUMPDEST SWAP4 POP JUMPDEST PUSH32 0xC1BFB37C7EF0C045EEB49DFDA5C409CF0F4964F3A006B9FF1C487B39D1682C81 DUP8 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1822 SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1838 SWAP1 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1654 JUMP JUMPDEST POP DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1853 SWAP2 SWAP1 PUSH2 0x2855 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SWAP1 SSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH2 0x96B SWAP2 PUSH2 0x22D4 JUMP JUMPDEST PUSH2 0x188F DUP4 PUSH2 0x1636 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5EBAF1DB 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1904 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1928 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3A02A42D DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1958 SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A8 SWAP2 SWAP1 PUSH2 0x25B4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1A65 JUMPI PUSH1 0x0 DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19DB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SGT PUSH2 0x1A1E JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1A08 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1A19 SWAP1 PUSH2 0x2887 JUMP JUMPDEST PUSH2 0x1A47 JUMP JUMPDEST DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1A3E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD JUMPDEST PUSH2 0x1A51 SWAP1 DUP6 PUSH2 0x26D9 JUMP JUMPDEST SWAP4 POP DUP1 PUSH2 0x1A5D DUP2 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x19B1 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A93 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0xB SWAP1 SWAP5 MSTORE KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x1D40 JUMPI PUSH1 0x0 DUP7 DUP9 DUP13 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x1AF5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1B07 SWAP2 SWAP1 PUSH2 0x2774 JUMP JUMPDEST PUSH2 0x1B11 SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1B73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x766F746573203D203 PUSH1 0xBC SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST DUP1 PUSH2 0x1BB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x706F6F6C776569676874203D203 PUSH1 0x94 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH2 0x1BBA DUP3 PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE DUP3 DUP5 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 DUP9 AND SWAP5 DUP6 OR SWAP1 SSTORE SWAP3 DUP3 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C13 SWAP1 DUP5 SWAP1 PUSH2 0x26D9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1C4F SWAP1 DUP5 SWAP1 PUSH2 0x26D9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 SGT ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x463CD97 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE DUP16 DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x463CD970 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1CE3 JUMP JUMPDEST PUSH2 0x1CE0 DUP2 PUSH2 0x2887 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x1CED DUP2 DUP7 PUSH2 0x26D9 JUMP JUMPDEST SWAP5 POP PUSH2 0x1CF9 DUP2 DUP8 PUSH2 0x26D9 JUMP JUMPDEST SWAP6 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6313944499515BB2ADD64302F02A3082DA9B13539BC2CA6317630260D7EBCA62 DUP15 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1D36 SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1D4D SWAP1 PUSH2 0x286C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A69 JUMP JUMPDEST POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D68 SWAP2 SWAP1 PUSH2 0x271A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP8 SWAP1 SWAP8 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD EQ ISZERO PUSH2 0x1DE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x612 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6DEE2012 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E7F SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A2AB602 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ECB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EEF SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST ISZERO PUSH2 0x1FD8 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6DEE2012 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F61 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F85 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x161AD706 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x1FE1 DUP2 PUSH2 0x1552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x1EF0061B PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD SWAP1 SWAP5 PUSH4 0x99BCC052 SWAP4 PUSH32 0x0 SWAP1 SWAP2 AND SWAP3 PUSH4 0x3DE00C36 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x205A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x206E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2092 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20AE SWAP2 SWAP1 PUSH2 0x25ED JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20FE SWAP2 SWAP1 PUSH2 0x25B4 JUMP JUMPDEST DUP2 GT DUP1 ISZERO PUSH2 0x2118 JUMPI POP PUSH1 0x0 PUSH2 0x2116 PUSH3 0x93A80 DUP4 PUSH2 0x2760 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x2279 JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB66503CF PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3DE00C36 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 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21E8 SWAP2 SWAP1 PUSH2 0x2383 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2206 SWAP3 SWAP2 SWAP1 PUSH2 0x2601 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2234 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP3 POP CALLER SWAP2 POP PUSH32 0x4FA9693CAE526341D334E2862CA2413B2E503F1266255F9E0869FB36E6D89B17 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x8B9 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2302 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2311 DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2327 JUMPI DUP1 DUP2 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x233E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2371 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x237C DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2394 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x237C DUP2 PUSH2 0x28E3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x23BC DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CC DUP2 PUSH2 0x28E3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x23F6 DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2406 DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x2416 DUP2 PUSH2 0x28E3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2433 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x243E DUP2 PUSH2 0x28E3 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2461 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2478 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2484 DUP9 DUP4 DUP10 ADD PUSH2 0x2316 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x249C JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x24A9 DUP8 DUP3 DUP9 ADD PUSH2 0x2316 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24C7 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x24DE JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x24F1 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2503 JUMPI PUSH2 0x2503 PUSH2 0x28CD JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x2528 JUMPI PUSH2 0x2528 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP11 LT ISZERO PUSH2 0x2546 JUMPI DUP8 DUP9 REVERT JUMPDEST DUP8 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x256F JUMPI PUSH2 0x255B DUP2 PUSH2 0x2306 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x254A JUMP JUMPDEST POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x237C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25AD JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25C5 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25DE JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x9 SWAP1 DUP3 ADD MSTORE PUSH9 0x6E6F74206761756765 PUSH1 0xB8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x14 SWAP1 DUP3 ADD MSTORE PUSH20 0x1C1BDBDB081B9BDD081DDA1A5D195B1A5CDD1959 PUSH1 0x62 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x676175676520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x627269626520666163746F7279206E6F742077686974656C6973746564000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 SWAP1 SUB DUP6 SGT AND ISZERO PUSH2 0x26FB JUMPI PUSH2 0x26FB PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP4 SWAP1 SUB DUP5 SLT DUP2 AND ISZERO PUSH2 0x2714 JUMPI PUSH2 0x2714 PUSH2 0x28A1 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x272D JUMPI PUSH2 0x272D PUSH2 0x28A1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2741 JUMPI PUSH2 0x2741 PUSH2 0x28B7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ PUSH1 0x0 NOT DUP5 EQ AND ISZERO PUSH2 0x275B JUMPI PUSH2 0x275B PUSH2 0x28A1 JUMP JUMPDEST POP SDIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x276F JUMPI PUSH2 0x276F PUSH2 0x28B7 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 DUP5 SGT DUP3 DUP5 SGT DUP1 DUP3 AND DUP7 DUP5 DIV DUP7 GT AND ISZERO PUSH2 0x279A JUMPI PUSH2 0x279A PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL DUP5 DUP8 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP10 SLT AND ISZERO PUSH2 0x27B8 JUMPI PUSH2 0x27B8 PUSH2 0x28A1 JUMP JUMPDEST DUP6 DUP8 SLT SWAP3 POP DUP8 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x27D3 JUMPI PUSH2 0x27D3 PUSH2 0x28A1 JUMP JUMPDEST DUP8 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x27E9 JUMPI PUSH2 0x27E9 PUSH2 0x28A1 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP4 MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2811 JUMPI PUSH2 0x2811 PUSH2 0x28A1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP1 ISZERO PUSH1 0x1 PUSH1 0xFF SHL DUP6 ADD DUP5 SLT AND ISZERO PUSH2 0x2834 JUMPI PUSH2 0x2834 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x284F JUMPI PUSH2 0x284F PUSH2 0x28A1 JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2867 JUMPI PUSH2 0x2867 PUSH2 0x28A1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2880 JUMPI PUSH2 0x2880 PUSH2 0x28A1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 EQ ISZERO PUSH2 0x289D JUMPI PUSH2 0x289D PUSH2 0x28A1 JUMP JUMPDEST SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8B9 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 PUSH23 0x823BD71DCCACBED5518DE5FA954E45A1B6EDA03D80DE62 PUSH26 0x9224F784152764736F6C63430008040033000000000000000000 ","sourceMap":"1165:10759:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1911:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6629:25:139;;;6617:2;6602:18;1911:46:137;;;;;;;;1555:47;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1555:47:137;;;;;;;;;;:::i;6992:916::-;;;;;;:::i;:::-;;:::i;:::-;;8316:86;8383:5;:12;8316:86;;2546:150;;;;;;:::i;:::-;;:::i;5735:221::-;;;;;;:::i;:::-;;:::i;5962:170::-;;;;;;:::i;:::-;;:::i;8408:420::-;;;;;;:::i;:::-;;:::i;2238:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;9174:78;;;:::i;6138:848::-;;;;;;:::i;:::-;;:::i;11184:173::-;;;;;;:::i;:::-;;:::i;10823:90::-;;;;;;:::i;:::-;;:::i;2094:55::-;;;;;;:::i;:::-;;;;;;;;;;;;;;9258:81;;;;;;:::i;:::-;;:::i;1831:101:4:-;;;:::i;11009:169:137:-;;;;;;:::i;:::-;;:::i;1235:44::-;;;;;1201:85:4;1273:6;;-1:-1:-1;;;;;1273:6:4;1201:85;;1372:26:137;;;;;;7914:180;;;;;;:::i;:::-;;:::i;2046:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6231:14:139;;6224:22;6206:41;;6194:2;6179:18;2046:41:137;6161:92:139;9002:166:137;;;;;;:::i;:::-;;:::i;1690:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1625;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1625:41:137;;;2001:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1428:22;;;;;;:::i;:::-;;:::i;3696:357::-;;;;;;:::i;:::-;;:::i;1491:41::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1491:41:137;;;1844:45;;;;;;:::i;:::-;;:::i;1755:59::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8834:162;;;;;;:::i;:::-;;:::i;2470:70::-;;;:::i;8100:210::-;;;;;;:::i;:::-;;:::i;10919:84::-;;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;6992:916:137:-;1094:13:4;:11;:13::i;:::-;7130:8:137::1;-1:-1:-1::0;;;;;7130:24:137::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;7204:13:137;;::::1;7229:3;7204:13:::0;;;:6:::1;:13;::::0;;;;;::::1;7196:62;;;::::0;-1:-1:-1;;;7196:62:137;;9694:2:139;7196:62:137::1;::::0;::::1;9676:21:139::0;9733:2;9713:18;;;9706:30;-1:-1:-1;;;9752:18:139;;;9745:50;9812:18;;7196:62:137::1;;;;;;;;;-1:-1:-1::0;;;;;7302:16:137;::::1;;::::0;;;:9:::1;:16;::::0;;;;;::::1;;7294:49;;;;-1:-1:-1::0;;;7294:49:137::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7361:20:137;::::1;;::::0;;;:9:::1;:20;::::0;;;;;::::1;;7353:62;;;;-1:-1:-1::0;;;7353:62:137::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7433:20:137;::::1;;::::0;;;:9:::1;:20;::::0;;;;;::::1;;7425:62;;;;-1:-1:-1::0;;;7425:62:137::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7517:13:137;;::::1;7498:16;7517:13:::0;;;:6:::1;:13;::::0;;;;;;;;;;::::1;7541:16:::0;;;:6:::1;:16:::0;;;;;;:29;;-1:-1:-1;;;;;;7541:29:137;;::::1;::::0;;;7580:25;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;7615:12:::1;:22:::0;;;;;;:35;;;::::1;::::0;;7660:7:::1;:17:::0;;;;;;:25;;-1:-1:-1;;7660:25:137;;::::1;::::0;;;7696:17;;;;;;;;;:29;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;7735:23;;;;;;:31;;;;::::1;::::0;;::::1;::::0;;;7776:18;;;;;;:25;;;;::::1;-1:-1:-1::0;7776:25:137::1;::::0;;7812:21:::1;7580:25:::0;7812:10:::1;:21::i;:::-;7895:5;-1:-1:-1::0;;;;;7848:53:137::1;7884:9;-1:-1:-1::0;;;;;7848:53:137::1;7861:9;-1:-1:-1::0;;;;;7848:53:137::1;;7872:10;7848:53;;;;;;:::i;:::-;;;;;;;;1117:1:4;6992:916:137::0;;;:::o;2546:150::-;2627:8;-1:-1:-1;;;;;2627:15:137;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2613:31:137;:10;-1:-1:-1;;;;;2613:31:137;;2605:63;;;;-1:-1:-1;;;2605:63:137;;8303:2:139;2605:63:137;;;8285:21:139;8342:2;8322:18;;;8315:30;-1:-1:-1;;;8361:18:139;;;8354:49;8420:18;;2605:63:137;8275:169:139;2605:63:137;2678:11;2685:3;2678:6;:11::i;:::-;2546:150;:::o;5735:221::-;5846:35;;;5838:63;;;;-1:-1:-1;;;5838:63:137;;9350:2:139;5838:63:137;;;9332:21:139;9389:2;9369:18;;;9362:30;-1:-1:-1;;;9408:18:139;;;9401:45;9463:18;;5838:63:137;9322:165:139;5838:63:137;5911:38;5917:10;5929:9;;5911:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5911:38:137;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5940:8:137;;-1:-1:-1;5940:8:137;;;;5911:38;;;5940:8;;5911:38;5940:8;5911:38;;;;;;;;;-1:-1:-1;5911:5:137;;-1:-1:-1;;;5911:38:137:i;:::-;5735:221;;;;:::o;5962:170::-;1094:13:4;:11;:13::i;:::-;-1:-1:-1;;;;;6049:15:137;::::1;;::::0;;;:9:::1;:15;::::0;;;;;;;;;;::::1;::::0;;::::1;6048:16;-1:-1:-1::0;;6030:34:137;;::::1;::::0;::::1;::::0;;;6079:46;;6109:15;;6231:14:139;6224:22;6206:41;;6091:10:137::1;::::0;6079:46:::1;::::0;6179:18:139;6079:46:137::1;;;;;;;5962:170:::0;:::o;8408:420::-;8515:8;-1:-1:-1;;;;;8515:27:137;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8501:43:137;:10;-1:-1:-1;;;;;8501:43:137;;8480:113;;;;-1:-1:-1;;;8480:113:137;;10404:2:139;8480:113:137;;;10386:21:139;10443:2;10423:18;;;10416:30;-1:-1:-1;;;10462:18:139;;;10455:53;10525:18;;8480:113:137;10376:173:139;8480:113:137;8638:11;;8603:14;;8621:13;:6;8630:4;8621:13;:::i;:::-;8620:29;;;;:::i;:::-;8603:46;-1:-1:-1;8706:10:137;;8702:56;;8741:6;8732:5;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;8702:56:137;8797:8;-1:-1:-1;;;;;8797:13:137;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8772:49:137;8785:10;-1:-1:-1;;;;;8772:49:137;;8814:6;8772:49;;;;6629:25:139;;6617:2;6602:18;;6584:76;8772:49:137;;;;;;;;8408:420;;:::o;9174:78::-;9232:5;:12;9214:31;;9229:1;;9214:14;:31::i;:::-;9174:78::o;6138:848::-;6271:7;1094:13:4;:11;:13::i;:::-;6290:8:137::1;-1:-1:-1::0;;;;;6290:24:137::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;6364:13:137;;::::1;6389:3;6364:13:::0;;;:6:::1;:13;::::0;;;;;::::1;:29:::0;6356:54:::1;;;::::0;-1:-1:-1;;;6356:54:137;;9009:2:139;6356:54:137::1;::::0;::::1;8991:21:139::0;9048:2;9028:18;;;9021:30;-1:-1:-1;;;9067:18:139;;;9060:42;9119:18;;6356:54:137::1;8981:162:139::0;6356:54:137::1;-1:-1:-1::0;;;;;6454:16:137;::::1;;::::0;;;:9:::1;:16;::::0;;;;;::::1;;6446:49;;;;-1:-1:-1::0;;;6446:49:137::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6513:17:137;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;6505:59;;;;-1:-1:-1::0;;;6505:59:137::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6582:17:137;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;6574:59;;;;-1:-1:-1::0;;;6574:59:137::1;;;;;;;:::i;:::-;6651:8;-1:-1:-1::0;;;;;6651:13:137::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6644:31:137::1;;6676:6;-1:-1:-1::0;;6644:58:137::1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;6712:14:137;;::::1;;::::0;;;:6:::1;:14;::::0;;;;;;;:23;;;;::::1;-1:-1:-1::0;;;;;;6712:23:137;;::::1;;::::0;;;6745:13;;::::1;::::0;;;:6:::1;:13:::0;;;;;:22;;;::::1;::::0;::::1;::::0;;6777:20;;;:12:::1;:20:::0;;;;;:28;;;;::::1;::::0;;::::1;::::0;;;6815:7:::1;:15:::0;;;;;:22;;-1:-1:-1;;6815:22:137::1;6712:23:::0;6815:22:::1;::::0;;6848:18:::1;6719:6:::0;6848:10:::1;:18::i;:::-;6876:5;:17:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;6876:17:137;;;;;::::1;::::0;;-1:-1:-1;;;;;;6876:17:137::1;-1:-1:-1::0;;;;;6876:17:137;;::::1;::::0;;::::1;::::0;;;6909:47:::1;::::0;6876:17;;6909:47;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;6930:10:::1;::::0;6909:47:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;6973:6:137;6138:848;-1:-1:-1;;6138:848:137:o;11184:173::-;11263:9;11258:93;11282:7;:14;11278:1;:18;11258:93;;;11317:23;11329:7;11337:1;11329:10;;;;;;-1:-1:-1;;;11329:10:137;;;;;;;;;;;;;;;11317:11;:23::i;:::-;11298:3;;;;:::i;:::-;;;;11258:93;;;;11184:173;:::o;10823:90::-;10887:19;10899:6;10887:11;:19::i;9258:81::-;9314:18;9325:6;9314:10;:18::i;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;11009:169:137:-:0;11094:5;11077:95;11105:6;11101:1;:10;11077:95;;;11132:29;11144:6;:16;11151:5;11157:1;11151:8;;;;;;-1:-1:-1;;;11151:8:137;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11151:8:137;;;11144:16;;;;;;;;;;;;;;;;;11132:11;:29::i;:::-;11113:3;;;;:::i;:::-;;;;11077:95;;;;11009:169;;:::o;7914:180::-;2336:10;2328:19;;;;:7;:19;;;;;;;;2320:41;;;;-1:-1:-1;;;2320:41:137;;;;;;;:::i;:::-;-1:-1:-1;;;;;8021:20:137;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:24:::1;::::0;8044:1:::1;8021:24;:::i;:::-;-1:-1:-1::0;;;;;7998:20:137;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:47;;;;8060:27;;8076:10:::1;::::0;8060:27:::1;::::0;::::1;7914:180:::0;:::o;9002:166::-;9088:5;9071:91;9099:3;9095:1;:7;9071:91;;;9123:28;9134:6;:16;9141:5;9147:1;9141:8;;;;;;-1:-1:-1;;;9141:8:137;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9141:8:137;;;9134:16;;;;;;;;;;;;;;;;;9123:10;:28::i;:::-;9104:3;;;;:::i;:::-;;;;9071:91;;1428:22;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1428:22:137;;-1:-1:-1;1428:22:137;:::o;3696:357::-;-1:-1:-1;;;;;3772:14:137;;3743:26;3772:14;;;:8;:14;;;;;;;;3743:43;;;;;;;;;;;;;;;;;;;3772:14;;3743:43;;;3772:14;3743:43;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3743:43:137;;;;;;;;;;;;;;;;;;;;;;;3796:16;3815:9;:16;3796:35;;3841:24;3881:8;3868:22;;;;;;-1:-1:-1;;;3868:22:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3868:22:137;;3841:49;;3906:9;3901:103;3925:8;3921:1;:12;3901:103;;;-1:-1:-1;;;;;3968:11:137;;;;;;:5;:11;;;;;3980:12;;3968:11;;;3980:9;;3990:1;;3980:12;;;;-1:-1:-1;;;3980:12:137;;;;;;;;;;;;;;;-1:-1:-1;;;;;3968:25:137;-1:-1:-1;;;;;3968:25:137;;;;;;;;;;;;;3954:8;3963:1;3954:11;;;;;;-1:-1:-1;;;3954:11:137;;;;;;;;;;;;;;;;;;:39;3935:3;;;;:::i;:::-;;;;3901:103;;;;4014:32;4020:4;4026:9;4037:8;4014:5;:32::i;1844:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1844:45:137;;-1:-1:-1;1844:45:137;;-1:-1:-1;1844:45:137:o;8834:162::-;8903:9;8898:92;8922:7;:14;8918:1;:18;8898:92;;;8957:22;8968:7;8976:1;8968:10;;;;;;-1:-1:-1;;;8968:10:137;;;;;;;;;;;;;;;8957;:22::i;:::-;8938:3;;;;:::i;:::-;;;;8898:92;;2470:70;2515:18;2522:10;2515:6;:18::i;8100:210::-;2336:10;2328:19;;;;:7;:19;;;;;;;;2320:41;;;;-1:-1:-1;;;2320:41:137;;;;;;;:::i;:::-;-1:-1:-1;;;;;8237:20:137;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:24:::1;::::0;8260:1:::1;::::0;8237:24:::1;:::i;:::-;-1:-1:-1::0;;;;;8214:20:137;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:47;;;;8276:27;;8292:10:::1;::::0;8276:27:::1;::::0;::::1;8100:210:::0;:::o;10919:84::-;10983:5;:12;10969:27;;10980:1;;10969:10;:27::i;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;7896:2:139;2161:73:4::1;::::0;::::1;7878:21:139::0;7935:2;7915:18;;;7908:30;7974:34;7954:18;;;7947:62;-1:-1:-1;;;8025:18:139;;;8018:36;8071:19;;2161:73:4::1;7868:228:139::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;1273:6;;-1:-1:-1;;;;;1273:6:4;719:10:38;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;10043:2:139;1414:68:4;;;10025:21:139;;;10062:18;;;10055:30;10121:34;10101:18;;;10094:62;10173:18;;1414:68:4;10015:182:139;9345:831:137;-1:-1:-1;;;;;9416:20:137;;;9400:13;9416:20;;;:12;:20;;;;;;;;;;;;9465:14;;;:7;:14;;;;;;;;9493:13;;9489:681;;;-1:-1:-1;;;;;9545:19:137;;9522:20;9545:19;;;:11;:19;;;;;;;9595:5;;9658:28;;;;9545:19;9770:21;9545:19;9595:5;9770:21;:::i;:::-;9753:38;-1:-1:-1;9867:10:137;;9863:190;;9897:14;9946:4;9915:27;9936:6;9923:9;9915:27;:::i;:::-;9914:36;;;;:::i;:::-;-1:-1:-1;;;;;10011:17:137;;;;;;:9;:17;;;;;:27;;9897:53;;-1:-1:-1;9897:53:137;;10011:17;;;:27;;9897:53;;10011:27;:::i;:::-;;;;-1:-1:-1;;;9863:190:137;9489:681;;;11077:95;11009:169;;:::o;9489:681::-;10105:5;;-1:-1:-1;;;;;10083:19:137;;;;;;:11;:19;;;;;:27;9345:831;;;:::o;2702:988::-;-1:-1:-1;;;;;2781:14:137;;2751:27;2781:14;;;:8;:14;;;;;2828:16;;2781:14;;2751:27;2888:688;2912:12;2908:1;:16;2888:688;;;2945:13;2961:9;2971:1;2961:12;;;;;;-1:-1:-1;;;2961:12:137;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3003:11:137;;;;;:5;:11;;;;;;2961:12;;;;3003:18;;;;;;;;;2961:12;;-1:-1:-1;3040:11:137;;3036:530;;-1:-1:-1;;;;;3082:13:137;;;;;;;:6;:13;;;;;;3071:25;;3082:13;3071:10;:25::i;:::-;-1:-1:-1;;;;;3114:14:137;;;;;;:7;:14;;;;;:24;;3132:6;;3114:14;:24;;3132:6;;3114:24;:::i;:::-;;;;-1:-1:-1;;;;;;;3156:11:137;;;;;;;:5;:11;;;;;;;;:18;;;;;;;;;;;:28;;3178:6;;3156:11;:28;;3178:6;;3156:28;:::i;:::-;;;;-1:-1:-1;;3215:1:137;3206:10;;3202:304;;;-1:-1:-1;;;;;3256:13:137;;;3249:21;3256:13;;;:6;:13;;;;;;;;;;;3249:21;;:6;:21;;;;;;;;3240:134;;-1:-1:-1;;;3240:134:137;;;;;11965:25:139;;;12026:32;;;12006:18;;;11999:60;3249:21:137;;;3240:41;;11938:18:139;;3240:134:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3412:6;3396:22;;;;;:::i;:::-;;;3202:304;;;3465:22;3481:6;3465:22;;:::i;:::-;;;3202:304;3528:23;3538:4;3544:6;3528:23;;;;;;;:::i;:::-;;;;;;;;3036:530;2888:688;;2926:3;;;;;:::i;:::-;;;;2888:688;;;;3608:12;3585:11;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;3631:17:137;;3651:1;3631:17;;;:11;:17;;;;;;;;:21;;;3669:8;:14;;;;;3662:21;;;:::i;4059:1670::-;4191:12;4198:4;4191:6;:12::i;:::-;4214:16;4233:9;:16;4214:35;;4260:17;4291:8;-1:-1:-1;;;;;4291:15:137;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4260:49;;4319:14;4343:6;-1:-1:-1;;;;;4343:23:137;;4367:4;4343:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4319:54;;4383:23;4420:19;4453:18;4491:9;4486:128;4510:8;4506:1;:12;4486:128;;;4573:1;4559:8;4568:1;4559:11;;;;;;-1:-1:-1;;;4559:11:137;;;;;;;;;;;;;;;:15;:44;;4592:8;4601:1;4592:11;;;;;;-1:-1:-1;;;4592:11:137;;;;;;;;;;;;;;;4591:12;;;:::i;:::-;4559:44;;;4577:8;4586:1;4577:11;;;;;;-1:-1:-1;;;4577:11:137;;;;;;;;;;;;;;;4559:44;4539:64;;;;:::i;:::-;;-1:-1:-1;4520:3:137;;;;:::i;:::-;;;;4486:128;;;;4629:9;4624:1002;4648:8;4644:1;:12;4624:1002;;;4677:13;4693:9;4703:1;4693:12;;;;;;-1:-1:-1;;;4693:12:137;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4736:13:137;;;4719:14;4736:13;;;:6;:13;;;;;;;;;;4768:15;;;:7;:15;;;;;4693:12;;-1:-1:-1;4768:15:137;;4764:852;;;4803:18;4850:16;4839:7;4825:8;4834:1;4825:11;;;;;;-1:-1:-1;;;4825:11:137;;;;;;;;;;;;;;;:21;;;;:::i;:::-;4824:42;;;;:::i;:::-;-1:-1:-1;;;;;4892:11:137;;;;;;;:5;:11;;;;;;;;:18;;;;;;;;;;4803:63;;-1:-1:-1;4892:23:137;4884:45;;;;-1:-1:-1;;;4884:45:137;;10756:2:139;4884:45:137;;;10738:21:139;10795:1;10775:18;;;10768:29;-1:-1:-1;;;10813:18:139;;;10806:39;10862:18;;4884:45:137;10728:158:139;4884:45:137;4955:16;4947:43;;;;-1:-1:-1;;;4947:43:137;;6867:2:139;4947:43:137;;;6849:21:139;6906:2;6886:18;;;6879:30;-1:-1:-1;;;6925:18:139;;;6918:44;6979:18;;4947:43:137;6839:164:139;4947:43:137;5008:18;5019:6;5008:10;:18::i;:::-;-1:-1:-1;;;;;5045:14:137;;;;;;;:8;:14;;;;;;;;:26;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5045:26:137;;;;;;;;;5090:14;;;:7;:14;;;;;:29;;5108:11;;5045:14;5090:29;;5108:11;;5090:29;:::i;:::-;;;;-1:-1:-1;;;;;;;5137:11:137;;;;;;;:5;:11;;;;;;;;:18;;;;;;;;;;;:33;;5159:11;;5137;:33;;5159:11;;5137:33;:::i;:::-;;;;-1:-1:-1;;5206:1:137;5192:15;;5188:266;;;-1:-1:-1;;;;;5240:14:137;;;;;;;:6;:14;;;;;;;;5231:131;;-1:-1:-1;;;5231:131:137;;;;;11965:25:139;;;12026:32;;;12006:18;;;11999:60;5240:14:137;;;5231:33;;11938:18:139;;5231:131:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:266;;;5423:12;5424:11;5423:12;:::i;:::-;5409:26;;5188:266;5471:26;5486:11;5471:26;;:::i;:::-;;-1:-1:-1;5515:27:137;5531:11;5515:27;;:::i;:::-;;;5571:10;-1:-1:-1;;;;;5565:36:137;;5583:4;5589:11;5565:36;;;;;;;:::i;:::-;;;;;;;;4764:852;;4624:1002;;4658:3;;;;;:::i;:::-;;;;4624:1002;;;;5659:12;5636:11;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5682:17:137;;;;;;;:11;:17;;;;;:40;;;;-1:-1:-1;;;;;;;4059:1670:137:o;10182:635::-;1744:1:22;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:22;;11451:2:139;2317:63:22;;;11433:21:139;11490:2;11470:18;;;11463:30;11529:33;11509:18;;;11502:61;11580:18;;2317:63:22;11423:181:139;2317:63:22;1744:1;2455:7;:18;;;;10275:8:137::1;-1:-1:-1::0;;;;;10275:27:137::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10255:59:137::1;;:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10251:165;;;10350:8;-1:-1:-1::0;;;;;10350:27:137::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10330:84:137::1;;:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10251:165;10427:18;10438:6;10427:10;:18::i;:::-;-1:-1:-1::0;;;;;10476:17:137;;::::1;10455:18;10476:17:::0;;;:9:::1;:17;::::0;;;;;;;;;10554:15;;-1:-1:-1;;;10554:15:137;;;;10476:17;;10534:19:::1;::::0;10554:8:::1;:13:::0;;::::1;::::0;::::1;::::0;:15:::1;::::0;;::::1;::::0;;;;;;:13;:15;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10534:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10521:10;:49;:90;;;;-1:-1:-1::0;10610:1:137::1;10586:21;1323:6;10586:10:::0;:21:::1;:::i;:::-;:25;10521:90;10504:307;;;10656:1;10636:9;:17;10646:6;-1:-1:-1::0;;;;;10636:17:137::1;-1:-1:-1::0;;;;;10636:17:137::1;;;;;;;;;;;;:21;;;;10678:6;-1:-1:-1::0;;;;;10671:33:137::1;;10705:8;-1:-1:-1::0;;;;;10705:13:137::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10722:10;10671:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10752:48:137::1;::::0;6629:25:139;;;-1:-1:-1;;;;;10752:48:137;::::1;::::0;-1:-1:-1;10769:10:137::1;::::0;-1:-1:-1;10752:48:137::1;::::0;6617:2:139;6602:18;10752:48:137::1;;;;;;;10504:307;-1:-1:-1::0;;1701:1:22;2628:7;:22;10182:635:137:o;2433:187:4:-;2525:6;;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:134:139:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:391::-;216:8;226:6;280:3;273:4;265:6;261:17;257:27;247:2;;303:6;295;288:22;247:2;-1:-1:-1;331:20:139;;374:18;363:30;;360:2;;;413:8;403;396:26;360:2;457:4;449:6;445:17;433:29;;517:3;510:4;500:6;497:1;493:14;485:6;481:27;477:38;474:47;471:2;;;534:1;531;524:12;471:2;237:307;;;;;:::o;549:257::-;608:6;661:2;649:9;640:7;636:23;632:32;629:2;;;682:6;674;667:22;629:2;726:9;713:23;745:31;770:5;745:31;:::i;:::-;795:5;619:187;-1:-1:-1;;;619:187:139:o;811:261::-;881:6;934:2;922:9;913:7;909:23;905:32;902:2;;;955:6;947;940:22;902:2;992:9;986:16;1011:31;1036:5;1011:31;:::i;1077:398::-;1145:6;1153;1206:2;1194:9;1185:7;1181:23;1177:32;1174:2;;;1227:6;1219;1212:22;1174:2;1271:9;1258:23;1290:31;1315:5;1290:31;:::i;:::-;1340:5;-1:-1:-1;1397:2:139;1382:18;;1369:32;1410:33;1369:32;1410:33;:::i;:::-;1462:7;1452:17;;;1164:311;;;;;:::o;1480:539::-;1557:6;1565;1573;1626:2;1614:9;1605:7;1601:23;1597:32;1594:2;;;1647:6;1639;1632:22;1594:2;1691:9;1678:23;1710:31;1735:5;1710:31;:::i;:::-;1760:5;-1:-1:-1;1817:2:139;1802:18;;1789:32;1830:33;1789:32;1830:33;:::i;:::-;1882:7;-1:-1:-1;1941:2:139;1926:18;;1913:32;1954:33;1913:32;1954:33;:::i;:::-;2006:7;1996:17;;;1584:435;;;;;:::o;2024:325::-;2092:6;2100;2153:2;2141:9;2132:7;2128:23;2124:32;2121:2;;;2174:6;2166;2159:22;2121:2;2218:9;2205:23;2237:31;2262:5;2237:31;:::i;:::-;2287:5;2339:2;2324:18;;;;2311:32;;-1:-1:-1;;;2111:238:139:o;2354:802::-;2475:6;2483;2491;2499;2552:2;2540:9;2531:7;2527:23;2523:32;2520:2;;;2573:6;2565;2558:22;2520:2;2618:9;2605:23;2647:18;2688:2;2680:6;2677:14;2674:2;;;2709:6;2701;2694:22;2674:2;2753:70;2815:7;2806:6;2795:9;2791:22;2753:70;:::i;:::-;2842:8;;-1:-1:-1;2727:96:139;-1:-1:-1;2930:2:139;2915:18;;2902:32;;-1:-1:-1;2946:16:139;;;2943:2;;;2980:6;2972;2965:22;2943:2;;3024:72;3088:7;3077:8;3066:9;3062:24;3024:72;:::i;:::-;2510:646;;;;-1:-1:-1;3115:8:139;-1:-1:-1;;;;2510:646:139:o;3161:1177::-;3245:6;3276:2;3319;3307:9;3298:7;3294:23;3290:32;3287:2;;;3340:6;3332;3325:22;3287:2;3385:9;3372:23;3414:18;3455:2;3447:6;3444:14;3441:2;;;3476:6;3468;3461:22;3441:2;3519:6;3508:9;3504:22;3494:32;;3564:7;3557:4;3553:2;3549:13;3545:27;3535:2;;3591:6;3583;3576:22;3535:2;3632;3619:16;3654:2;3650;3647:10;3644:2;;;3660:18;;:::i;:::-;3706:2;3703:1;3699:10;3738:2;3732:9;3801:2;3797:7;3792:2;3788;3784:11;3780:25;3772:6;3768:38;3856:6;3844:10;3841:22;3836:2;3824:10;3821:18;3818:46;3815:2;;;3867:18;;:::i;:::-;3903:2;3896:22;3953:18;;;3987:15;;;;-1:-1:-1;4022:11:139;;;4052;;;4048:20;;4045:33;-1:-1:-1;4042:2:139;;;4096:6;4088;4081:22;4042:2;4123:6;4114:15;;4138:169;4152:2;4149:1;4146:9;4138:169;;;4209:23;4228:3;4209:23;:::i;:::-;4197:36;;4170:1;4163:9;;;;;4253:12;;;;4285;;4138:169;;;-1:-1:-1;4326:6:139;3256:1082;-1:-1:-1;;;;;;;;3256:1082:139:o;4343:297::-;4410:6;4463:2;4451:9;4442:7;4438:23;4434:32;4431:2;;;4484:6;4476;4469:22;4431:2;4521:9;4515:16;4574:5;4567:13;4560:21;4553:5;4550:32;4540:2;;4601:6;4593;4586:22;4645:190;4704:6;4757:2;4745:9;4736:7;4732:23;4728:32;4725:2;;;4778:6;4770;4763:22;4725:2;-1:-1:-1;4806:23:139;;4715:120;-1:-1:-1;4715:120:139:o;4840:194::-;4910:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:2;;;4984:6;4976;4969:22;4931:2;-1:-1:-1;5012:16:139;;4921:113;-1:-1:-1;4921:113:139:o;5039:258::-;5107:6;5115;5168:2;5156:9;5147:7;5143:23;5139:32;5136:2;;;5189:6;5181;5174:22;5136:2;-1:-1:-1;;5217:23:139;;;5287:2;5272:18;;;5259:32;;-1:-1:-1;5126:171:139:o;5302:203::-;-1:-1:-1;;;;;5466:32:139;;;;5448:51;;5436:2;5421:18;;5403:102::o;5510:272::-;-1:-1:-1;;;;;5700:32:139;;;;5682:51;;5764:2;5749:18;;5742:34;5670:2;5655:18;;5637:145::o;7008:332::-;7210:2;7192:21;;;7249:1;7229:18;;;7222:29;-1:-1:-1;;;7282:2:139;7267:18;;7260:39;7331:2;7316:18;;7182:158::o;7345:344::-;7547:2;7529:21;;;7586:2;7566:18;;;7559:30;-1:-1:-1;;;7620:2:139;7605:18;;7598:50;7680:2;7665:18;;7519:170::o;8449:353::-;8651:2;8633:21;;;8690:2;8670:18;;;8663:30;8729:31;8724:2;8709:18;;8702:59;8793:2;8778:18;;8623:179::o;10891:353::-;11093:2;11075:21;;;11132:2;11112:18;;;11105:30;11171:31;11166:2;11151:18;;11144:59;11235:2;11220:18;;11065:179::o;12070:267::-;12109:3;12137:11;;;12164:10;;-1:-1:-1;;;;;12183:27:139;;;12176:35;;12160:52;12157:2;;;12215:18;;:::i;:::-;-1:-1:-1;;;12262:19:139;;;12255:27;;12247:36;;12244:2;;;12286:18;;:::i;:::-;-1:-1:-1;;12322:9:139;;12117:220::o;12342:128::-;12382:3;12413:1;12409:6;12406:1;12403:13;12400:2;;;12419:18;;:::i;:::-;-1:-1:-1;12455:9:139;;12390:80::o;12475:193::-;12514:1;12540;12530:2;;12545:18;;:::i;:::-;-1:-1:-1;;;12581:18:139;;-1:-1:-1;;12601:13:139;;12577:38;12574:2;;;12618:18;;:::i;:::-;-1:-1:-1;12652:10:139;;12520:148::o;12673:120::-;12713:1;12739;12729:2;;12744:18;;:::i;:::-;-1:-1:-1;12778:9:139;;12719:74::o;12798:577::-;12837:7;-1:-1:-1;;;;;12907:15:139;;;12941;;;12972:11;;;12991:10;;;12985:17;;12968:35;12965:2;;;13006:18;;:::i;:::-;-1:-1:-1;;;13075:15:139;;;13106:11;;;13126;;;13119:19;;13102:37;13099:2;;;13142:18;;:::i;:::-;13188:7;13185:1;13181:15;13171:25;;13241:1;13237:2;13232:11;13229:1;13225:19;13220:2;13216;13212:11;13208:37;13205:2;;;13248:18;;:::i;:::-;13313:1;13309:2;13304:11;13301:1;13297:19;13292:2;13288;13284:11;13280:37;13277:2;;;13320:18;;:::i;:::-;-1:-1:-1;;;13360:9:139;;;;;12849:526;-1:-1:-1;;;12849:526:139:o;13380:168::-;13420:7;13486:1;13482;13478:6;13474:14;13471:1;13468:21;13463:1;13456:9;13449:17;13445:45;13442:2;;;13493:18;;:::i;:::-;-1:-1:-1;13533:9:139;;13432:116::o;13553:270::-;13592:4;13621:12;;;13649:10;;-1:-1:-1;;;13668:19:139;;13661:27;;13645:44;13642:2;;;13692:18;;:::i;:::-;-1:-1:-1;;;;;13739:27:139;;13732:35;;13724:44;;13721:2;;;13771:18;;:::i;:::-;-1:-1:-1;;13808:9:139;;13601:222::o;13828:125::-;13868:4;13896:1;13893;13890:8;13887:2;;;13901:18;;:::i;:::-;-1:-1:-1;13938:9:139;;13877:76::o;13958:135::-;13997:3;-1:-1:-1;;14018:17:139;;14015:2;;;14038:18;;:::i;:::-;-1:-1:-1;14085:1:139;14074:13;;14005:88::o;14098:138::-;14133:3;-1:-1:-1;;;14154:22:139;;14151:2;;;14179:18;;:::i;:::-;14215:15;;14141:95::o;14241:127::-;14302:10;14297:3;14293:20;14290:1;14283:31;14333:4;14330:1;14323:15;14357:4;14354:1;14347:15;14373:127;14434:10;14429:3;14425:20;14422:1;14415:31;14465:4;14462:1;14455:15;14489:4;14486:1;14479:15;14505:127;14566:10;14561:3;14557:20;14554:1;14547:31;14597:4;14594:1;14587:15;14621:4;14618:1;14611:15;14637:131;-1:-1:-1;;;;;14712:31:139;;14702:42;;14692:2;;14758:1;14755;14748:12"},"methodIdentifiers":{"attachStakerToGauge(address)":"97a302f7","attachments(address)":"6405eacd","bribes(address)":"a8c5d95a","claimable(address)":"402914f5","detachStakerFromGauge(address)":"e32e4e88","distribute()":"e4fc6b6d","distribute(address)":"63453ae1","distribute(address[])":"6138889b","distribute(uint256,uint256)":"7625391a","gauges(address)":"b9a09fd5","isGauge(address)":"aa79979b","length()":"1f7b6d32","notifyRewardAmount(uint256)":"3c6b16ab","owner()":"8da5cb5b","poke(address)":"b1a997ac","poolForGauge(address)":"06d6a1b2","poolVote(address,uint256)":"c48f5af4","pools(uint256)":"ac4afa38","registerGaugeBribe(address,address,address)":"551e0566","registry()":"7b103999","renounceOwnership()":"715018a6","reset()":"d826f88f","resetFor(address)":"20217176","toggleWhitelist(address)":"39393ac9","totalWeight()":"96c82e57","transferOwnership(address)":"f2fde38b","updateAll()":"53d78693","updateFor(address[])":"d560b0d7","updateForRange(uint256,uint256)":"9b6a9d72","updateGauge(address)":"6ecbe38a","updateGaugeBribe(address,address,address)":"1cdf2eb9","usedWeights(address)":"002f8de4","vote(address[],int256[])":"2efce57b","votes(address,address)":"cad1b906","weights(address)":"a7cac846","whitelist(address)":"9b19251a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Abstained\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"}],\"name\":\"Attach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"}],\"name\":\"Detach\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DistributeReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bribe\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"GaugeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bribe\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"GaugeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"reward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NotifyReward\",\"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\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"weight\",\"type\":\"int256\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"whitelister\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"Whitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"gauge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"attachStakerToGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"attachments\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"bribes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"detachStakerFromGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_gauges\",\"type\":\"address[]\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finish\",\"type\":\"uint256\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"gauges\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isGauge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"length\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"}],\"name\":\"poke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"poolForGauge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"poolVote\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pools\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_bribe\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"}],\"name\":\"registerGaugeBribe\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"resetFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"what\",\"type\":\"address\"}],\"name\":\"toggleWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_gauges\",\"type\":\"address[]\"}],\"name\":\"updateFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"updateForRange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gauge\",\"type\":\"address\"}],\"name\":\"updateGauge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newbribe\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newgauge\",\"type\":\"address\"}],\"name\":\"updateGaugeBribe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"usedWeights\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_poolVote\",\"type\":\"address[]\"},{\"internalType\":\"int256[]\",\"name\":\"_weights\",\"type\":\"int256[]\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"weights\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions 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\":{},\"notice\":\"This contract is an extension of the BaseV1Voter that was originally written by Andre. This contract allows delegation and captures voting power of a user overtime. This contract is also compatible with openzepplin's Governor contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/voter/BaseV2Voter.sol\":\"BaseV2Voter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/governance/utils/Votes.sol\":{\"keccak256\":\"0x089922faffaa6662249c3fbea3bec2dc1d78a145253a4dbf9e91b7df6a434cf8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1b83cc2a7127ce6a4ca5c8ffa74013701ebe66d7232717a5acb6572e143d738\",\"dweb:/ipfs/QmWpyQwnkLkz5r4jS69R8Ax5jP6Yp7eNCLjb6gZbfhg3Tm\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0x2e109f03a05809288a1478d4d9fcd0804229207e18d1164ce0597fb0958a159c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9495415607fcbd1c940e726f396c46892af8c8772247c002650deacaf5199fb\",\"dweb:/ipfs/QmagLfEk1NCaJEMVDP3ix9BmXy6mccVUMfKAbWQFtjkjvJ\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x02686c31ccb9ee77a299fa5f47327af5271f251a707a0e24f321957166ff0434\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb562d8ae1da31249ca0d8553df9f89ef4c3c110a018c4449dde68ae30e51ec1\",\"dweb:/ipfs/QmUwxjtTUYB89ymeV46TZPmTsGnYrKNcgTHk7MQA1MG3hj\"]},\"contracts/interfaces/IBribeFactory.sol\":{\"keccak256\":\"0x17e891f801dd4fd0636bf0dc89640047601942d6c2191edff32e3344f7882e7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6d2b2922adf4dc632b67d2384fd481d0442183876bcf7a27620c2e0779804f4\",\"dweb:/ipfs/QmU27qrGnKbsh2ZEgKfADfS9URHhZXM9VaVvzdVeD27Ytu\"]},\"contracts/interfaces/IBribeV2.sol\":{\"keccak256\":\"0x741775fd0b90fab22bf36b05440bb246da6248f44634fca723bd32b07919f20a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bf5c773cd53bb0544ca70facb19205a7c7fbeeac2aa25dfda193aa957cd3f89\",\"dweb:/ipfs/QmTc8i7iXKGKX29AHW6si1Rw8PcxzJZBh9YcAC28ZTU8pY\"]},\"contracts/interfaces/IEmissionController.sol\":{\"keccak256\":\"0x215a5b7ff3746ff804247f59ea1b55155873be560f8e676fcaefd7a58c9fbd83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://747e34f194cd6ac87b4d2e317fae58d94f3e1b4d4fde66af99c15c794a7728ee\",\"dweb:/ipfs/QmdzD9zZX8YwxAK8yuP54sWMcMBAifF6p4zRa51gspFFgx\"]},\"contracts/interfaces/IEpoch.sol\":{\"keccak256\":\"0x2c5a127cb728ce5d2bd5c1a3d017e96d8eb13a846920a1aea64ffa1979316d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89512617e1fb067b242c55dfc7e03230e54436e46c51453dbee84b25f0391bd8\",\"dweb:/ipfs/QmQgVCVUp1eQafMQQHpTafDk6dADe15rsmjhTKT4YetdoC\"]},\"contracts/interfaces/IGauge.sol\":{\"keccak256\":\"0xdaa97894648d646bd592cc113510dc5900d22b1ac9a58713d8be03dae9b96a3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://276d19c98e7792386abed79c98a7ea33d8347edf32d91b679f412dd78382a43a\",\"dweb:/ipfs/QmUS6TwFKn7kcwPoU1JEzzVanNLBfrFkUr2L9p7x9pR5Hc\"]},\"contracts/interfaces/IGaugeVoterV2.sol\":{\"keccak256\":\"0x2920d264daa8497cc6363ca5de80fe889734c71ef26b874219fbe7f33d2905d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd933e05b285122e229ef09e72ecd5300d0bb542d29956ac4e0beb1a105d9733\",\"dweb:/ipfs/QmXGRNccNQGG1r9ry9fJRW9AHCAetLMJKWQ7HQZRMXMuZT\"]},\"contracts/interfaces/INFTStaker.sol\":{\"keccak256\":\"0x7d304fc4fc8b906d547b9457a2a41e079faf1a2c3960c80edea3e24bf202e821\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b19eeaafa1e4e33c8f113fcae2248dfe33c4f6a5c5702a9b4d2253c0cd45c59\",\"dweb:/ipfs/QmPer1f9LqnpMt8kEA5AR381GAm82aui6jbWJwPFKD9WwD\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x89b7f5558b6b862cb67d11ce6615aa27beb8ea3961e94ae30b35c2aea0d19124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41abe49d627f36748d6fd4f7172866d26c320e415903fe698a50910e9c15a63c\",\"dweb:/ipfs/QmRWNdZ7xj82jmNUyMD5vUKQiLmCasnRc4koz4tGAiruqF\"]},\"contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0xf96e272aaab4fa44e2c24916b9f6cc4e648962b4adf7ffd597b67d77168f0333\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb1b26c74a947eda590a3129b42c8aaaa124f4a781f4d3c2b35f043772193ffe\",\"dweb:/ipfs/QmUcNrUgiPFUBr6ZcGRyh4KgEx7eMRSi5ESJFVLyLtd4nA\"]},\"contracts/voter/BaseV2Voter.sol\":{\"keccak256\":\"0x3bee3b32400be2317a34d9396a97c9aaf05366c4636c2d3f2ee3b80e2cd6a2be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed445aac1ee37933a6b522e744a78a8523b3a455530e7de778cc824f8df031a4\",\"dweb:/ipfs/QmQ5o7fHBUBmEobhUFaXaSBgN4CzKCCKJsXe38tp1on8cU\"]}},\"version\":1}"}},"hardhat/console.sol":{"console":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220851000814973c61a3a3b729d4dc95937dce13cdbf1d680bcb089fa2f47f955a364736f6c63430008040033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 LT STOP DUP2 0x49 PUSH20 0xC61A3A3B729D4DC95937DCE13CDBF1D680BCB089 STATICCALL 0x2F SELFBALANCE 0xF9 SSTORE LOG3 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"67:63870:138:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;67:63870:138;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220851000814973c61a3a3b729d4dc95937dce13cdbf1d680bcb089fa2f47f955a364736f6c63430008040033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 LT STOP DUP2 0x49 PUSH20 0xC61A3A3B729D4DC95937DCE13CDBF1D680BCB089 STATICCALL 0x2F SELFBALANCE 0xF9 SSTORE LOG3 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ","sourceMap":"67:63870:138:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat/console.sol\":\"console\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[]},\"sources\":{\"hardhat/console.sol\":{\"keccak256\":\"0x60b0215121bf25612a6739fb2f1ec35f31ee82e4a8216c032c8243d904ab3aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e29880d33dd479bb046ba306993d26ccb779a4b1d94a046cb3567f22948bb4d\",\"dweb:/ipfs/QmfTY1qzPt5C63Wc7y6JqfZr5899NRvXYdCpyLzR5FXQic\"]}},\"version\":1}"}}}}}